闻达用RWKV部署在Linux上 以Ubuntu为例 从入门到放弃

1.闻达介绍

1.1简介

闻达是一个LLM调用平台。目标为针对特定环境的高效内容生成,同时考虑个人和中小企业的计算资源局限性,以及知识安全和私密性问题。

针对特定环境的内容生成是LLM使用中的一项重要应用,实现这一目的,主要有全量微调、lora 微调、和本项目方法。但个人没有做全量微调的,lora 微调只能牺牲基础能力换单任务效果(用 6B 模型 lora 调出来的单任务效果,专门设计一个 0.5B 模型也能实现,且推理成本更低)。

而本项目采用知识库 +auto 脚本的形式为 LLM 提高生成能力,充分考虑个人和中小企业的资源问题,以及国内大背景下知识安全和私密性问题,实现使小模型获得近似于大模型的生成能力。

目前支持模型:chatGLM-6B、chatRWKV、chatYuan、llama 系列以及 openaiapi 和 chatglm130b api,初步支持 moss。
使用知识库扩展模型所知信息,使用 auto 提高模型生成质量和复杂问题解决能力。
支持 chatGLM-6B、chatRWKV、llama 系列流式输出和输出过程中中断。
自动保存对话历史至浏览器(多用户同时使用不会冲突,chatRWKV 历史消息实现方式需使用 string)
对话历史管理(删除单条、清空)
支持局域网、互联网的部署和多用户同时使用。

1.2项目地址

https://github.com/wenda-LLM/wenda

1.3闻达llm交流QQ群

162451840
我在群里叫:Rolex🎈

2.闻达部署

写在前面,采用2台机器部署的原因是在实际生产需求中服务端往往不在本地,有可能在公司甚至可能在云端,所以采用这种Clint/Server的方式更加符合未来实际生产需求。当然如果有防火墙或者端口限制的问题,需要做进一步调整。

2.1硬件/系统需求

1台前端:PC(运行PowerShell)/macOS(运行Terminal终端);简称:【1号机】192.168.1.11
1台后端服务端:系统为Ubuntu Server 22.04 LTS,显卡需求参考所使用的模型需求;简称:【2号机】192.168.1.16
2台机器之间网络可以互通方便ssh连接,并且都可以连接互联网;
本说明以2台机器都在同一个局域网内作为范例
双4090工作站

2.2新建conda(Anaconda)虚拟环境

Anaconda下载目录:https://repo.anaconda.com/archive/
目前最新下载地址为:https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh

$ ssh root@192.168.1.16
$ wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh		//下载Anaconda
$ sudo sh Anaconda3-2023.03-1-Linux-x86_64.sh			//安装Anaconda

安装需要输入yes,完成生效:exit退出当前shh登录,并重ssh连接,刚刚安装和初始化Anaconda设置才可以生效。

$ conda config --set auto_activate_base false	//修改启动环境:如果您希望 conda 的基础环境在启动时不被激活,请将 auto_activate_base 参数设置为 false
$ conda -V				//查看conda版本
$ conda update conda -y	//更新conda版本
$ conda info -e			//查看虚拟环境列表
$ conda create -n wenda python=3.11 cudatoolkit=11.8 -y	//通过conda中新建虚拟环境wenda
$ conda activate wenda	//To activate this environment, use 激活wenda虚拟环境

如果需要退出conda环境的话:

$ conda deactivate		//To deactivate an active environment, use 退出当前conda环境

2.3安装wenda闻达环境

项目地址:https://github.com/wenda-LLM/wenda

$ cd ~				//进入当前用户文件夹
$ git clone https://github.com/wenda-LLM/wenda.git		//从GitHub上下载wenda闻达git项目
$ cd ~/wenda/		//进入wenda文件夹
$ pip3 install -r ~/wenda/requirements/requirements.txt	//安装依赖环境

2.4安装RWKV模型or或者ChatGLM-6B RLHF & LoRA Model模型

RWKV项目地址:https://github.com/BlinkDL/ChatRWKV

$ mkdir ~/model			//新建一个model文件夹
$ cd ~/model				//进入model文件夹
$ wget https://huggingface.co/BlinkDL/rwkv-4-world/resolve/main/RWKV-4-World-CHNtuned-7B-v1-20230709-ctx4096.pth		//下载RWKV的模型RWKV-4-World-CHNtuned-7B-v1-20230709-ctx4096.pth
or或者

在【1号机】在桌面上下载并解压缩好ChatGLM-6B RLHF & LoRA Model模型(在我的百度网盘企业版分享
链接: https://pan.baidu.com/s/1iopvjjEfyztefjqLxTwNhA
提取码: 5c5k)路径是:/Users/rolex/Desktop/ChatGLM-6B_RLHF

$ scp -r ~/Desktop/ChatGLM-6B_RLHF/* root@192.168.1.16:/root/model/ChatGLM-6B_RLHF/
$ pip3 install transformers			//安装transformers
$ cp ~/wenda/example.config.yml config.yml	//复制一份配置文件
$ vim ~/wenda/config.yml	//编辑配置文件

修改RWKV模型的路径,在95-96行修改成:
path: “/root/model/RWKV-4-World-CHNtuned-7B-v1-20230709-ctx4096.pth” #rwkv模型位置"
strategy: “cuda fp16”
修改RWKV模型参数,在109-110行修改成:
presence_penalty: 0
count_penalty: 1

$ vim ~/wenda/llms/llm_rwkv.js

修改llm_rwkv.js文件的默认参数,在1-2行修改成:
app.temperature=1
app.top_p=0.3
or或者
修改ChatGLM-6B_RLHF模型的路径,在112行修改成:
path: “/root/model/ChatGLM-6B_RLHF”

2.5安装M3E-Base模型

模型下载地址:https://huggingface.co/moka-ai/m3e-base

$ cd ~/model			//进入wenda/model文件夹
$ mkdir -p ~/model/m3e-base		//新建一个wenda/model/m3e-base文件夹
$ cd ~/model/m3e-base				//进入wenda/model/m3e-base文件夹
$ for file in .gitattributes README.md config.json model.safetensors pytorch_model.bin special_tokens_map.json tokenizer.json tokenizer_config.json vocab.txt; do wget -N https://huggingface.co/moka-ai/m3e-base/resolve/main/$file; done		//-N参数让wget只下载那些比本地版本新的文件
$ vim ~/wenda/config.yml	//编辑配置文件

修改rtst模型路径,在55行修改成:
model_path: “/root/model/m3e-base"

$ pip3 install -U sentence-transformers		//使用M3E需要先安装sentence-transformers

2.6安装知识库rtst模式

在1号机下载知识库,并确认为txt文本文件(可以是一批文件),假设这个文件的路径是:
~/Desktop/知识库样例数据/txt/
重新开一个Terminal终端窗口

$ scp -r ~/Desktop/txt/* root@192.168.1.16:/root/wenda/txt/
$ ssh root@192.168.1.16
$ cd ~
$ conda activate wenda		//激活wenda的conda虚拟环境
$ which python3				//查看conda虚拟环境中查看python3的路径
显示python3路径在:/root/anaconda3/envs/wenda/bin/python3
$ vim ~/wenda/run_rwkv.sh
修改python路径,第2行修改成:
PYTHON="/root/anaconda3/envs/wenda/bin/python3"
$ python3 ~/wenda/plugins/gen_data_st.py	//生成知识库
$ cd ~/wenda && sh ./run_rwkv.sh			//运行rwkv需要的文件

2.7运行

$ conda activate wenda			//进入wenda虚拟环境
$ cd ~/wenda && python3 ~/wenda/wenda.py		//运行闻达

如果需要停止运行请按“control+C”,如果还不是不行就按“control+\”
另外,如果想监控【2号机】192.168.1.16上的显卡运行状况,在【1号机】上新开一个Terminal终端运行:

$ ssh root@192.168.1.16
$ watch -n 0.1 nvidia-smi	//以10次/秒的频率刷新监控GPU使用状况

2.8更多环境配置

如果像我一样需要指定运行在第2个GPU显卡上,那么请这样修改:

$ vim ~/wenda/config.yml	//编辑配置文件

修改RWKV模型的路径,在96行修改成:
strategy: “cuda:1 fp16i8”
如果显卡的显存大于15G,又想更快的运行,可以把96行修改成这样:
strategy: "cuda:1 fp16”
修改双显卡GPU运行不同的神经网络层,在96行修改成:
strategy: “cuda:0 fp16 *14 -> cuda:1 fp16”

2.9访问

在【1号机】浏览器(例如Chrome)内输入:
http://192.168.1.16:17860
如果【1号机】上直无法直接接访问【2号机】的端口,也可以通过端口SSH隧道的方式做端口映射:
在【1号机】上新开一个Terminal终端运行:

$ ssh -L 17860:localhost:17860 root@192.168.1.16		//把本地的17860端口映射到192.168.1.16的17860端口上

此时【1号机】的17860端口就被映射到【2号机】的17860上去了
在【1号机】浏览器(例如Chrome)内输入:
http://localhost:17860

2.10更新

$ git -C ~/wenda pull			//更新wenda闻达

2.11删除整个环境和文件夹

$ conda deactivate				//退出环境
$ conda remove -n wenda --all -y	//删除wenda环境
$ conda info -e	//查看当前conda环境是否还有wenda
$ rm -rf ~/wenda
  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你好!很高兴回答你的问题。要在Linux服务器上安装闻达,你需要按照以下步骤进行操作: 1. 首先,确保你的Linux服务器已经安装了合适的操作系统,比如Ubuntu、CentOS等。你可以通过运行命令`lsb_release -a`或`cat /etc/os-release`来检查当前系统的版本信息。 2. 下载闻达的安装包。你可以从闻达官方网站或其他可信的来源获取到安装包的下载链接。 3. 使用命令行工具,比如使用SSH登录到你的Linux服务器。 4. 在命令行中,使用wget或curl命令下载闻达安装包。例如,使用wget命令下载安装包: ``` wget <闻达安装包的下载链接> ``` 5. 解压安装包。根据你所下载的安装包类型,使用相应的解压命令进行解压。例如,如果是tar.gz格式的安装包,可以使用以下命令解压: ``` tar -zxvf <闻达安装包文件名> ``` 6. 进入解压后的目录。使用cd命令切换到安装包解压后的目录。 7. 执行安装脚本。运行安装脚本来完成闻达的安装过程。通常,脚本名称为install.sh或类似的名称。你可以使用以下命令执行安装脚本: ``` ./install.sh ``` 8. 根据安装向导的提示,进行必要的配置和设置。根据需要,你可能需要提供一些配置信息,比如数据库连接信息、管理员账户等等。 9. 等待安装完成。安装过程可能需要一些时间,请耐心等待直到安装完成。 10. 完成安装后,你可以通过访问闻达的网页界面来进一步配置和使用闻达。 请注意,以上步骤仅供参考,具体的安装步骤可能会因为闻达版本和Linux发行版的不同而有所差异。建议在安装之前查阅闻达的官方文档或用户手册,以获取更准确的安装步骤和配置说明。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值