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]]在这里插入图片描述

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

  • 21
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Llama2是一种基于Hadoop的分布式计算框架,可用于大规模数据处理和分析。本地部署Llama2可以提供更好的性能和灵活性,同时可以充分利用本地计算资源。 本地部署Llama2的步骤如下: 1. 确保已经安装和配置好Hadoop和YARN,因为Llama2需要依赖它们进行资源管理和任务调度。 2. 下载Llama2的安装包,并解压到本地的一个目录。 3. 修改Llama2的配置文件,指定正确的Hadoop和YARN的相关参数,例如ResourceManager的地址和端口号。 4. 启动Llama2的服务,可以通过命令行或者脚本来执行。启动成功后,可以通过Web界面查看Llama2的运行状态和各项指标。 5. 配置和提交任务。在Llama2中,可以使用YARN的API或者命令行工具来配置和提交任务。任务可以是MapReduce作业、Spark作业或者其他的计算任务。 Llama2的项目实战主要包括以下几个方面: 1. 数据处理和分析:可以使用Llama2来处理和分析大规模的数据集。通过配置和提交适当的任务,可以利用集群中的多个节点并行执行任务,从而加速数据处理过程。 2. 机器学习和深度学习:Llama2提供了丰富的机器学习和深度学习算法库,可以在分布式环境下运行。通过配置和提交相应的任务,可以训练和部署复杂的机器学习模型。 3. 实时流处理:Llama2还支持实时流处理,可以通过配置和提交流处理任务来处理实时数据流。借助于Hadoop和YARN的优势,可以实现高吞吐量和低延迟的实时数据处理。 总之,Llama2的本地部署和项目实战可以极大地提升大规模数据处理和分析的效率和灵活性。通过合理配置和提交任务,可以充分利用集群中的计算资源,加速任务执行并获得更好的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值