首页 > 其他分享 >通过termux tailscale huggingface 来手把手一步一步在手机上部署LLAMA2-7b和LLAMA2-70b大模型

通过termux tailscale huggingface 来手把手一步一步在手机上部署LLAMA2-7b和LLAMA2-70b大模型

时间:2024-04-09 20:23:06浏览次数:21  
标签:7b 一步 可以 huggingface LLAMA2 Tailscale https 模型 下载

前言

首先截图一下我的小米手机的配置


我这个配置其实一般,当时主要为了存储空间大,而我对配置要求又不高,买的。

在手机上安装termux app,然后在termux上就可以使用各种命令进行安装和使用,就像在linux操作系统上一样了。
再通过termux安装上openssh,这样你就可以在window、mac等电脑上远程这台手机了。

然后远程的时候ip如何处理呢?这个时候TailScale就派上用场了,可以组建局域网,识别出IP,这样在可信任的几台机器上使用类似局域网IP,就非常简单了。

这里先分享一下我现在使用的两个apk的下载地址。
https://www.alipan.com/s/kU8qpJ4m5cJ

手机上安装Tailscale

Tailscale 是一种基于 WireGuard 的虚拟组网工具,它在用户态实现了 WireGuard 协议,相比于内核态 WireGuard 性能会有所损失,但在功能和易用性上下了很大功夫:

  • 开箱即用
    • 无需配置防火墙
    • 没有额外的配置
  • 高安全性/私密性
    • 自动密钥轮换
    • 点对点连接
    • 支持用户审查端到端的访问记录
  • 在原有的 ICE、STUN 等 UDP 协议外,实现了 DERP TCP 协议来实现 NAT 穿透
  • 基于公网的控制服务器下发 ACL 和配置,实现节点动态更新
  • 通过第三方(如 Google) SSO 服务生成用户和私钥,实现身份认证
    简而言之,我们可以将 Tailscale 看成是更为易用、功能更完善的 WireGuard。

我简单的来说明一下,我现在使用Tailscale的场景,我有以下几台设备:

  • 一台阿里云的linux服务器(有域名的)
  • 一台小米手机(也是常开的)
  • 一台windows电脑(在公司,一般不关机的)
  • 一台mac电脑(需要特定的地区哟)

也就是这几台设备,我可以进行组建局域网,例如我现在window电脑上部署了某个服务网站,按照常规来说我只能在我的window电脑上进行访问,但是现在我组建Tailscale局域网,我就可以在我的小米手机上访问这个服务网站,甚至在公司的mac电脑上访问这个服务网站。而且如果我想对外公开这个网站,我可以在我的阿里云服务器上通过nginx进行代理跳转,这样我就可以在任何地方访问这个服务网站了。但是其实它是部署在我公司的window电脑上的。

大致知道Tailscale是干什么的了。
那么首先我们在tailscale.com上进行注册一个账号,然后在对应的设备上安装上 Tailscale的客户端,然后绑定到Tailscale平台上就可以了

Tailscale平台对于服务端是没有进行开源的,所以就有了安全问题,如果你不放心的话,也可以选择完全开源的headscale,自己部署所有端进行管理使用
具体开源地址为:https://github.com/juanfont/headscale

所有不同linux系统上安装指南应该都在这里 https://tailscale.com/download/linux/debian-stretch

从我个人的角度,人家考虑商用要赚钱,安全性也是能保证的,同时对于免费版本有一些限制。

这里可以在官网或者我的阿里云盘分享链接中直接安装apk就可以了。

手机上安装Termux

首先说明一下Termux是一个成熟的 Linux 终端,这里我是直接安装到我的小米手机上的。它是免费的,并且不需要root访问权限。Termux 可以从 Google Play 下载,但是上面的版本已经很旧了,并且 Termux 中的“pkg update”命令不再起作用。我阿里云盘上分享的是比较新版本的APK文件,而且我使用下来是没什么问题的。较新版本也可以在 F-Droid 网站上以 APK 形式提供,建议下载该较新版本。
当 Termux 安装在安卓手机上以后,就可以看到如下图琐事的 Linux 命令行界面:

理论上讲,我们可以直接在手机上输入所有命令,但是在小键盘上打字很不方便。所以我们选择通过pkg update的方法,注意这里就需要在手机上的Termux使用如下命令来安装 SSH:

pkg update
pkg upgrade
pkg install openssh

然后再在termux中启动ssh程序。获取手机的ssh登录的用户和密码

sshd
whoami
// 可以看到用户名 u0_a461
passwd
// 可以进行设置密码
// 并且需要输入确认密码

sshd启动服务,记得在远程时要打开此服务,当然你也可以将sshd服务设置为开机自启,有需要的可以去查询,这里我不做详细的描述了。

现在我就可以在window电脑上通过命令

ssh -p 8022 [email protected]
// 再输入密码就远程到手机了

ip记得从TailScale上获取即可,然后输入上面设置的密码,就能看到下图所示的界面,说明远程SSH成功了。

Hugging Face了解一下

现在可以远程了,那么我们就开始准备大模型,那么大模型从那里来呢?于是就有了这个Hugging Face
官网地址:https://huggingface.co/

Hugging Face 不仅是一个名字,它更象征着 AI 技术的民主化。想象有一个地方,AI 开发就像在 GitHub 上一样简易和互助,这就是 Hugging Face 的基本理念。由于 Hugging Face 的服务器设在海外,国内用户可能需要通过特定方式访问以获取最佳体验,这个我在文章标题中也有提到。Hugging Face 的魅力所在就是降低了 AI 开发的门槛。它不仅仅为大型企业服务,也支持个人开发者利用有限资源创造出惊人的 AI 应用。Hugging Face 的影响力正在重塑我们对机器学习开发方式的理解。通过提供简易、高效且开放的工具,它让每一个对 AI 技术充满热情的人,都有机会在这个领域内留下自己的足迹。

可以通过 python 进行安装 huggingface,那么这里首先可能要搭建好 python 的环境

通过pip进行安装huggingface_hub

pip3 install huggingface_hub

然后就可以直接在代码中调用,下面的代码也是举例子,具体的参数在使用时可以取查询一下

from huggingface_hub import snapshot_download
snapshot_download(repo_id="tatsu-lab/alpaca_eval", repo_type='dataset')

或者也可以通过huggingface-cli 命令行进行下载模型

huggingface-cli download --repo-type dataset tatsu-lab/alpaca_eval

准备大模型

大致知道了如何使用 huggingface 后,我们就来实际操作一下,这里准备的大模型是 Llama.CPP。
它非常适合在不同的硬件上测试 LLM。Llama.CPP几乎可以在任何地方工作——CPU、CUDA 或 Apple 芯片上。原始Llama.CPP是用 C++ 编写的,但我将使用 Python 库,它更容易使用。

开源仓库地址:https://github.com/ggerganov/llama.cpp
本文要下载的大模型:https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF


它上面也是会介绍如何下载模型的

安装所需的软件库

pkg install tur-repo libopenblas libandroid-execinfo ninja binutils
pkg install python3 python-numpy build-essential cmake clang git
pip3 install llama-cpp-python huggingface-hub

通过huggingface-cli下载大模型

huggingface-cli download TheBloke/Llama-2-7B-Chat-GGUF llama-2-7b-chat.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False

下载完毕后,准备代码,例如代码文件为main.py

from llama_cpp import Llama


llm = Llama(model_path="llama-2-7b-chat.Q4_K_M.gguf",
            n_gpu_layers=0,
            n_ctx=8192,
            echo=True)

question = input(">>> 请输入你的问题: ")
template = f"""<s>[INST] <<SYS>>
你现在是一名优秀的专家,请使用中文回答我下面的问题。
<</SYS>>
{question}[/INST]"""

stream = llm(template, stream=True, max_tokens=2560, temperature=0.2)
for output in stream:
    print(output['choices'][0]['text'], end="")

要注意下载的大模型文件和代码文件要在同一个路径下

然后执行命令

python3 main.py


如果能看到类似的截图,说明大模型跑起来了,然后我们来输入一个问题,来看一下效果吧

其实效果还算可以吧,最起码真的给我找到了深圳的五个地点,然后不太理想的是描述是英文的。输出的文字确实多了一些,所以我等待的时间也相应的长了很多。

如果你想更快一点的来查看效果可以租用带有GPU的服务器,来部署一下玩玩,或者在google的colab上,免费享用速度还贼快贼快了
附上享用链接:https://colab.research.google.com/

最后

如果通过命令下载模型比较慢,或者特殊网络达不到的话,可以直接在我的阿里云盘中进行打包下载,然后拷贝到对应的目录进行使用是一样的效果,同时我也提供下载一个38G的大模型,有兴趣的可以下载试玩一下。

如有资料更新我会第一时间进行处理。可以在我的公众号:那个曾经的少年回来了 后台回复消息:手机部署大模型
即可看到最新的阿里云盘工具和模型分享链接

标签:7b,一步,可以,huggingface,LLAMA2,Tailscale,https,模型,下载
From: https://www.cnblogs.com/aehyok/p/18124709

相关文章

  • 聚酰亚胺PI材料难于粘接,用什么胶水粘接?那么让我们先一步步的从认识它开始(二十一): 聚酰
    聚酰亚胺PI涂料的缺点是什么聚酰亚胺(PI)涂料具有许多优异的性能,但它们也存在一些缺点,这些缺点可能会影响到其在特定应用中的使用。以下是一些聚酰亚胺PI涂料的常见缺点:成本较高:聚酰亚胺树脂及其涂料的制备过程相对复杂,聚酰亚胺PI涂料通常属于高性能涂料,其原材料成本较高,导......
  • 开源模型应用落地-qwen1.5-7b-chat与sglang实现推理加速的正确姿势(二)
    一、前言  经过开源模型应用落地-qwen1.5-7b-chat与sglang实现推理加速的正确姿势(一)的实践,相信大家已经成功地运行起一个性能良好的sglangAPI服务。现在,在充裕的服务器资源配置下,接下来可以继续进行一些优化工作。二、术语2.1.sglang  SGLangisastructuredge......
  • 开源模型应用落地-qwen1.5-7b-chat与sglang实现推理加速的正确姿势(一)
    一、前言   SGLangisastructuredgenerationlanguagedesignedforlargelanguagemodels(LLMs).ItmakesyourinteractionwithLLMsfasterandmorecontrollablebyco-designingthefrontendlanguageandtheruntimesystem。简单来说就是,SGLang简化了LLM......
  • 开源模型应用落地-qwen1.5-7b-chat-LoRA微调代码拆解
    一、前言  本篇文章将解析QWen1.5系列模型的微调代码,帮助您理解其中的关键技术要点。通过阅读本文,您将能够更好地掌握这些关键技术,并应用于自己的项目中。   开源模型应用落地-qwen1.5-7b-chat-LoRA微调(二)二、术语介绍2.1.LoRA微调  LoRA(Low-RankAdap......
  • 聚酰亚胺PI材料难于粘接,用什么胶水粘接?那么让我们先一步步的从认识它开始(十九): 聚酰亚
    聚酰亚胺PI涂料聚酰亚胺(PI)涂料是一种应用广泛的高性能的涂料,以聚酰亚胺树脂为主要成膜物质、溶剂和其他添加剂组成,经过涂布、固化等工艺制备而成。聚酰亚胺树脂具有出色的耐热性、电绝缘性、机械性能以及化学稳定性,因此,聚酰亚胺PI涂料也继承了这些优异的性能,以下是聚酰亚胺P......
  • 走向Java的第一步,Hello,World
    此笔记仅针对自己在学习路上所学所遇的问题!!!不管任何语言,敲的第一个代码毋庸置疑就是helloworld,Java的helloworld如下:点击查看代码publicclassHello{ publicstatic void main(String[]args){ System.out.print("Hello,World!!"); }}此处注意点:Java书写需严格规......
  • 关于Stata工具变量固定效应回归ivreghdfe包报错last estimates not found一步解决问题
            其实lastestimatesnotfound这个问题,不用这么麻烦。我也是研究了半天,最后发现可以根据ivreghdfe命令的作者在github上写的统一安装需要的那些命令来很方便快捷地解决。        这是ivreghdfe命令作者的Github主页:https://github.com/sergiocorreia/......
  • 界面组件DevExpress WinForms v23.2 - 进一步增强HTML & CSS支持
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!DevExpressWinForms控件日前正式发布了v23.2,此......
  • 一步到位!快速精通Git工作流及实战技巧详解
    Git是一个分布式版本控制系统。1、git的应用场景1.备份小明负责的模块就要完成了,就在即将release之前的一瞬间,电脑突然蓝屏。硬盘光荣牺牲!几个月来的努力付之东流。场景二:代码还原这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的......
  • 界面组件DevExpress WinForms v23.2 - 进一步增强HTML & CSS支持
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!DevExpressWinForms控件日前正式发布了v23.2,此版......