qidao123.com技术社区-IT企服评测·应用市场

标题: 【部署LLaMa到自己的Linux服务器】 [打印本页]

作者: 王國慶    时间: 2024-10-2 18:52
标题: 【部署LLaMa到自己的Linux服务器】
部署LLaMa到自己的Linux服务器


这真的不是一个简单的过程,绕了不少弯路。
一、官方方法(知道就好,具体操纵用不上这个)

1、Llama2 项目获取

方法1:有git可以直接克隆到本地

创建一个空文件夹然后鼠标右键,然后输入git clone https://github.com/facebookresearch/llama.git
方法2:直接下载

打开网站LLaMa git
官方,直接下载zip文件就行
2、LLama2 项目部署

这里在conda中创建一个虚拟环境conda create -n 环境名字 python=x.x
创建乐成之后利用cd命令或者直接在LLaMa文件夹右键打开终端,输入
  1. # 常规安装命令
  2. pip install -e .
  3. # 国内环境可以使用清华源加速
  4. pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
这一步目标是安装LLama2运行所需要的依赖
3、申请Llama2许可

要想利用Llama2,首先需要向meta公司申请利用许可,否则你将无法下载到Llama2的模子权重。填入对应信息(主要是邮箱)后,勾选页面最底部的 “I
accept the terms and conditions”,点击 “Accept and Continue”,跳转到下图界面即可。
申请网站需要科学上网:Request access to the next version of
Llama
然后对应的邮箱得到验证的链接,这个https://download.llamameta.net/*? 开头的一大串链接即为下面下载模子时需要验证的内容。
4、下载模子权重

在LLaMa文件夹中打开终端,运行download.sh文件。./download.sh
第一个输入邮件中给你的超长链接,第二个输入你需要的模子。
我是选择7B和7B-chat
5、运行

下载完成之后,就可以利用啦
  1. # 句子补全
  2. torchrun --nproc_per_node 1 example_text_completion.py \     --ckpt_dir llama-2-7b/ \     --tokenizer_path tokenizer.model \     --max_seq_len 128 --max_batch_size 4
  3. # 对话生成
  4. torchrun --nproc_per_node 1 example_chat_completion.py \     --ckpt_dir llama-2-7b-chat/ \     --tokenizer_path tokenizer.model \     --max_seq_len 512 --max_batch_size 4
复制代码
命令的含义是

二、Huggingface版LLaMa2(具体操纵看这里!!)

1、提交申请方法(稍微麻烦)

利用[Meta官方的huggingface版本的Llama2模子](https://huggingface.co/meta-
llama)也需要向Meta公司申请验证链接(详见3、申请Llama2许可 ),此外还需利用申请账号登入huggingface官网,进入Meta
Llama 2页面,同意用户协议后并递交申请,等待Meta公司的审核通过,大概2~3个小时或者一两天。
只有提交后,才气下载官方的huggingface版本的权重文件。
2、天生验证token(你有全局VPN的话可以用代码下载llama2模子权重,我没有)

为了在客户端上访问带有权限的huggingface模子,huggingface登岸后,我们需要在token天生界面天生一个token用于验证。
登录(没用过,一笔带过)
在客户端登录有两种方式,。一种是在命令行输入huggingface-cli login
,随后输入天生的token就好(这里和linux密码一样,岂论输入还是粘贴都不显现的)。不外我实测下来这种方式总是不乐成,大概和国内的网络环境有关系。
另一种方式则是在代码中登录,即利用huggingface_hub.login() 函数。
3、下载模子权重(是否含有-hf)

会注意到,官方的模子权重中有两种模子:一种有-hf和没有-hf的。
-hf后缀表示该模子来自Hugging Face 。也就是说如果你在官方网址里面下载不含h-hf的模子权重,利用Hugging
Face代码是运行不起来的。
如果你已经下载了官方的模子,也有办法酿成-hf版本。
方法1:重新下载呗(但是还需要等待好久)
方法2:脚本处置处罚(很快,但是要按照流程走)
此处以llama2-7B举例,需要严格按照如下流程进行操纵
4、不用官方验证获取LLaMa权重(我没用过)

Tom Jobbins
这位老哥贡献出了好多模子的权重,我们就可以不用验证了。
在这里直接搜索llama2-7B就能找到模子了
仔细的人可以看到模子后缀有GPTQ、GGUF、AWQ,这里大概先容一下,详细的请看这里。
名称表明GPTQ (Post-Training Quantization for GPT Models)GPTQ是一种4位量化的训练后量化(PTQ)方法,主要关注GPU推理和性能 。GPTQ是最常用的压缩方法,因为它针对GPU利用进行了优化 。GGUF(Generated Unified Format)如果你的GPU无法处置处罚云云大的模子,那么从GPTQ开始切换到以cpu为中央的方法(如GGUF)是绝对值得的。**如果你想同时利用CPU和GPU,GGUF是一个非常好的格式** 。AWQ (Activation-aware Weight Quantization)它是一种雷同于GPTQ的量化方法。在量化过程中会跳过一小部分权重,这有助于减轻量化丧失。 5、测试是否安装乐成

测试代码
  1. import torch
  2. import transformers
  3. from transformers import LlamaForCausalLM, LlamaTokenizer
  4. model_dir = r"./llama-2-7b-chat-hf" # 要么权重路径 要么meta-llama/Llama-2-7b-chat-hf(需要全局VPN下载)
  5. model = LlamaForCausalLM.from_pretrained (model_dir)        # 初始化模型
  6. tokenizer = LlamaTokenizer.from_pretrained (model_dir)        # 初始化tokenizer
  7. # 使用模型
  8. pipeline = transformers.pipeline (
  9.         "text-generation",
  10.         model=model,
  11.         tokenizer=tokenizer,
  12.         torch_dtype=torch.float16,
  13.         device_map="auto",
  14. )
  15. # 获取结果
  16. sequences = pipeline (
  17.         'I have tomatoes, basil and cheese at home. What can I cook for dinner?\n',
  18.         do_sample=True,
  19.         top_k=10,
  20.         num_return_sequences=1,
  21.         eos_token_id=tokenizer.eos_token_id,
  22.         max_length=400,
  23. )
  24. # 输出结果
  25. for seq in sequences:
  26.         print (f"{seq ['generated_text']}")
复制代码
模子权重路径 应该包括这些文件
输出的结果如下
三、搭建text-generation-webui

[text-generation-webui](https://github.com/oobabooga/text-generation-
webui/releases/tag/snapshot-2024-01-14)是github上的一个开源项目,也是目前运行开源模子最广泛利用的软件之一。
1、创建虚拟空间

  1. conda create -n textgen python=3.10.9 或者 3.11
  2. conda activate textgen
复制代码
2、安装依赖包

2.1 安装pytorch

这里注意python版本、CUDA版本和系统环境来下载pytorch,可以在这里下载离线文件安装。
2.2 下载项目

[text-generation-webui](https://github.com/oobabooga/text-generation-
webui/releases/tag/snapshot-2024-01-14)
2.3 安装依赖包(重要!!)

可以先按照自己的环境,运行对应的脚本。比如我就运行start_linux.sh(先辈入到textgen虚拟环境
)。打开终端,然后输入./start_linux.sh。
![在这里插入图片形貌](https://img-
blog.csdnimg.cn/direct/89f3a358fc774d57bb9bd997d1db7513.png)
这个过程会有两个问题,按照自己的环境进行回答即可。
但是运行这个脚本依旧有大概无法打开项目,那就需要查看requirements.txt了。
text-generation-webui项目 的文件夹中,打开终端,进入textgen虚拟环境中输入pip install -r requirements.txt
这一步没有全局VPN是十分痛苦的,有些依赖包无法下载。只能打开pip list把requirements.txt
没安装上的部分用局部VPN一点一点安装上。如果没有安装好的话,绝对没发乐成运行项目,所以一定要仔细。
3、运行!!!

上面的步调完成后,把自己下载的hugging face模子权重和token的文件放到项目中的models中,models中,models中
然后实行下面的步调:
如何学习大模子 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以现实上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比力晚掌握AI的人有竞争上风”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的原理。
我在一线互联网企业工作十余年里,指导过不少同行子弟。帮助很多人得到了学习和发展。
我意识到有很多履历和知识值得分享给大家,也可以通过我们的本领和履历解答大家在人工智能学习中的很多困惑,所以在工作繁忙的环境下还是对峙各种整理和分享。但苦于知识流传途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模子资料包括AI大模子入门学习思维导图、精品AI大模子学习册本手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模子 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2024最新版CSDN大礼包:《AGI大模子学习资源包》免费分享!

第一阶段(10天):初阶应用

该阶段让大家对大模子 AI有一个最前沿的认识,对大模子 AI 的明确超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模子和业务衔接。

第二阶段(30天):高阶应用

该阶段我们正式进入大模子 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的本领。快速开辟一个完整的基于 agent 对话机器人。掌握功能最强的大模子开辟框架,抓住最新的技术进展,适合 Python 和 JavaScript 步伐员。

第三阶段(30天):模子训练

恭喜你,如果学到这里,你基本可以找到一份大模子 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模子,能独立训练开源多模态大模子,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

第四阶段(20天):商业闭环

对全球大模子从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模子,找到适合自己的项目/创业方向,做一名被 AI 武装的产物司理。

学习是一个过程,只要学习就会有寻衅。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完玉成部的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模子 AI 的正确特征了。
这份完整版的大模子 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2024最新版CSDN大礼包:《AGI大模子学习资源包》免费分享!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4