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

这篇具有很好参考价值的文章主要介绍了闻达用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台机器都在同一个局域网内作为范例
闻达用RWKV部署在Linux上 以Ubuntu为例 从入门到放弃,ubuntu,linux,ai,人工智能

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文章来源地址https://www.toymoban.com/news/detail-582146.html

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

到了这里,关于闻达用RWKV部署在Linux上 以Ubuntu为例 从入门到放弃的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VMware虚拟机部署Linux Ubuntu系统的方法

      本文介绍基于 VMware Workstation Pro 虚拟机软件,配置 Linux Ubuntu 操作系统环境的方法。   首先,我们需要进行 VMware Workstation Pro 虚拟机软件的下载与安装。需要注意的是, VMware Workstation Pro 软件是一个收费软件,而互联网中有很多可以下载后 直接免费激活、使用 这一软

    2024年01月24日
    浏览(41)
  • 【Linux Ubuntu】Docker部署 ELK全家桶 镜像环境

    1、查看防火墙状态 2、开启防火墙 3、关闭防火墙 4、开机禁止开启防火墙 5、开启自启防火墙 1、安装指定版本 比如 8.2.0 2、查看是否拉取成功 3、选择挂载硬盘创建四个目录,并设置目录权限为可读写。 4、先启动一个简单的容器 这里记录一下 进入容器的方式 先查看正在运

    2024年02月05日
    浏览(44)
  • 【Linux】在Ubuntu下部署nginx——nginx的负载均衡

    介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,

    2024年02月12日
    浏览(52)
  • 【linux】在Ubuntu下部署nginx——nginx的反向代理

    介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,

    2024年02月09日
    浏览(41)
  • 【linux】在Ubuntu下部署nginx——nginx的安装与卸载

    介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,

    2024年02月08日
    浏览(47)
  • Cpolar内网穿透快速入门教程:Linux Ubuntu系列

    Cpolar作为一款体积小巧却功能强大的内网穿透软件,不仅能够在多种环境和应用场景中发挥巨大作用,还能适应多种操作系统,应用最为广泛的Windows、Mac OS系统自不必多说,稍显小众的Linux、树莓派、群辉等也在起支持之列,真正做到了广泛适用性。从这篇介绍开始,我们将

    2024年02月04日
    浏览(55)
  • 大数据入门到放弃第一天:linux的入门

            虚拟机(Virtual Machine,简称VM)是一种在物理计算机上模拟运行的软件实体。它通过虚拟化技术,将一台物理计算机划分为多个虚拟的逻辑计算环境,每个环境都可以独立运行操作系统和应用程序。         虚拟机使得一台物理计算机可以同时运行多个操作系

    2024年02月05日
    浏览(45)
  • 云计算与大数据入门实验一 —— linux(ubuntu)常用命令

    Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺利开展后续其他实验奠定基础 操作系统:Linux(建议Ubuntu16.04); Hadoop版本:2.7.1。 (一)熟悉常用的Linux操作 cd命令:切换目录 (1)切换到目录“/usr/local” (2)切换到

    2024年02月08日
    浏览(44)
  • 【Ubuntu】ubuntu22.04下安装.tar.gz格式文件(以IDEA为例)

    一、下载 1.通过wget命令下载源文件 [http://myapp.tar.gz]是目标文件的下载地址 2.直接在网页下载好压缩包 这时候在命令框解压的话需要先找到下载后的路径 也可以通过图形界面直接解压到目标文件 二、解压 其中,**/home/luckccc0/idea/ideaIU-2023.1.1.tar.gz **是你下载的源代码目录和文

    2024年02月04日
    浏览(49)
  • Linux云端部署stable diffusion保姆级教程——基于腾讯云,ubuntu系统

    #本教程也参考了其他教程,这个是整合版,带#的是注释,不带#的就是命令,需要一行一行复制,然后按回车执行 #最好选择境外Linux,网络环境好,境内需要魔法,下面开始—— #从控制台登录,最好是OrcaTerm登录,复制比较方便 #第一步下载miniconda安装包 #第二步安装 #第三

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包