当前位置:AIGC资讯 > AIGC > 正文

Ubuntu llama 2搭建及部署,同时附问题与解决方案

本机环境:

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]]

下载后 传输至模型存放目录,转到三、使用模型。

更新时间 2023-11-21