本机环境:
AMD Ryzen7480 OH with Radeon Graphics(16 CPUs),~2.9GHz
Card name: NVIDIA GeForce RTX 2060
虚拟机环境:
内存:4G
存储:100G
一、搭建部署llama 2 :
1.首先进入github 获取模型 https://github.com/facebookresearch/llama
镜像地址:git clone https://hub.fastgit.xyz/facebookresearch/llama.git
2.获取下载地址
![[Pasted image 20230803191542.png]]
3.填写注册信息(很快就发到邮箱)
![[Pasted image 20230803191612.png]]
4. 获取注册信息,从https:// 到最后
![[Pasted image 20230808092152.png]]
4.1 7b 13b 70b 三种模型
7b就是有70亿参数,文件夹里面有3个文件
由于虚拟机储存空间小,仅下载7b模型。
5.下载模型
在刚才https://github.com/facebookresearch/llama 下载的文件夹下
5.1安装python依赖
pip install -e .
5.2执行脚本
执行download.sh
注意要把刚刚复制的url贴上去 ,要全粘贴
5.3 选择自己的模型,这里选择7B
二、转换模型
官方指南为我们提供了两种部署方式——transformers和oobabooga的text-generation-webui,因为我们是要实际进行部署,就需要选择text-generation-webui。如果有稍微留意一下模型格式,我们可以发现刚刚下载的模型是.pth格式,通常由PyTorch生成,但是text-generation-webui默认使用的是huggingface格式的模型,因此我们需要进行一次转换操作。https://github.com/huggingface/transformers.git 克隆到本地,脚本文件的路径是:src/transformers/models/llama/convert_llama_weights_to_hf.py。
在转换之前,我们需要进行一个操作,以使模型能够按照脚本预设的目录运行。对于使用过上一代模型的读者可能已经了解,LLama提供了7b、13b、30b、65b四种不同规模的模型,因此要使用第一代LLama的转换脚本,我们需要将下载的模型名称更改为这些名称,以便脚本能正确识别。例如,如果我使用的是7b-chat模型,那么我需要将7b-chat文件夹重命名为7B。总的来说,如果模型是7b-chat或7b则需要改名为7B,如果模型是13b-chat或13b则需要改名为13B,但对于70b的模型,我并不确定其参数是否能匹配65b的,如果你有能力运行的话,可以试一下。
现在的transformers还是不太理想,在安装过程中还是存在问题。
三,使用模型
第一种方法:webUI
搭建text-generation-webui
text-generation-webui是github上的一个开源项目,也是目前运行开源模型最广泛使用的软件之一。如果你之前用过第一代LLama,应该对这个项目比较熟悉。
text-generation-webui的安装方式相当简单,同样需要从github上克隆项目:https://github.com/oobabooga/text-generation-webui/。克隆完成后,我们把刚才转换好的huggingface格式的模型文件夹整个放入models中,目录结构如下:
我们将刚才生成好huggingface格式的模型文件夹整个放入models中,文件结构如下图:其中llama-2-7b-chat是我在上一步output_dir中指定的huggingface输出文件夹。
现在我们运行text-generation-webui就可以和llama2模型对话了,具体的命令如下:
在text-generation-webui目录下
python server.py --model [output_dir中指定的huggingface输出文件夹名字] --api --listen
关于欠缺的package :llama,[GitHub - abetlen/llama-cpp-python: Python bindings for llama.cpp](https://github.com/abetlen/llama-cpp-python#installation-from-pypi-recommended)在GitHub中 选择-python的版本
sudo python3 server.py --model /home/will/llama/text-generation-webui/models/7B --api --listen
Starting streaming server at ws://0.0.0.0:5005/api/v1/stream
Starting API at http://0.0.0.0:5000/api
Running on local URL: http://0.0.0.0:7860
To create a public link, set share=True
in launch()
.
![[Pasted image 20230804162125.png]]`
退出使用 ctrl+c即可
第二种方法使用:llama.cpp
执行命令 git clone https://github.com/ggerganov/llama.cpp.git
在里面make -j (参数加快编译效率)
%%
这里需要注意没进行模型下载,使用附++的网站进行下载,直接黏贴即可
安装python依赖 文件夹里有requirements.txt 安装指定版本
先在models文件夹里面创建7B的文件夹
再拷贝模型文件
使用python3 convert.py models/7B/
将7B模型转换为ggml FP32格式
将模型量化为 4 位(使用 q4_0 方法)
./quantize ./models/7B/ggml-model-f32.bin ./models/7B/ggml-model-q4_0.bin q4_0
%%
最后就可以推理了
bash ./examples/chat.sh
退出同样使用ctrl+c即可
四、结果演示
![[Pasted image 20230803193722.png]]![[Pasted image 20230803193730.png]]
![
]
五、分发模型
YourChat.app - Chat with Your AI
![[Pasted image 20230804164013.png]]
按照操作执行即可。
测试,
![[Pasted image 20230804164508.png]]
附++:
在模型转换期间,转换的结果总是失败。
在此基础上,使用[TheBloke/Llama-2-7B-Chat-GGML · Hugging Face](https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML
Hugging face 起初是一家总部位于纽约的聊天机器人初创服务商,他们本来打算创业做聊天机器人,然后在github上开源了一个Transformers库,虽然聊天机器人业务没搞起来,但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超100,000个预训练模型,10,000个数据集,变成了机器学习界的github。
我们在网站也是需要登陆的1~2即可通过(这里使用gogle邮箱)。
申请通过的邮件
![[Pasted image 20230808093919.png]]
搜索llama 2 模型,即可。选择Llama-2-7B-Chat-GGML。这里选择了一个小模型(存储不够)。
转到files and verious进行下载。
![[Pasted image 20230808093954.png]]
任选一种即可,此处选择[llama-2-7b-chat.ggmlv3.q2_K.bin]
![[Pasted image 20230808094033.png]]
下载后 传输至模型存放目录,转到三、使用模型。