写在前面:无聊又来玩玩LLM了,这次玩玩RWKV,因为我看到hugging face上有个roleplay的模型,遂心动。

【烧显存注意!】需要16G显存的样子


介绍

(随便cv的,见谅,有空单独写一篇博客看看RWKV的源码吧…)

2024 年 1 月 28 日,RWKV 开源基金会宣布开源 RWKV-5-World 7B 模型。

RWKV 是一种创新的深度学习网络架构,它将 Transformer 与 RNN 各自的优点相结合,同时实现高度并行化训练与高效推理,时间复杂度为线性复杂度,在长序列推理场景下具有优于 Transformer 的性能潜力。

RWKV-v5 架构模型能力指标接近 Llama2,但推理成本降低 2~10 倍,训练成本降低 2~3 倍。

官方介绍称,在相同参数大小(7B)的模型独立基准测试中,RWKV 是世界上最环保、最节能的人工智能模型 / 架构(以每个 token 输出为基础)

RWKV 架构的能源效率源自线性 Transformer 架构的 2~10 倍计算效率与 Transformer 架构的二次缩放。随着模型规模的扩大,RWKV 架构的节能特性会越发明显。

RWKV-5-World 7B 模型在线 Demo:https://huggingface.co/spaces/BlinkDL/RWKV-Gradio-2

RWKV-5-World 7B 模型下载地址:

Hugging Face:https://huggingface.co/BlinkDL/rwkv-5-world/blob/main/RWKV-5-World-7B-v2-20240128-ctx4096.pth

wisemodel:https://wisemodel.cn/models/rwk

RWKV Runner

先安装WebUI
参考安装:https://github.com/josStorer/RWKV-Runner/blob/master/README_ZH.md

官方的Simple Deploy Example

git clone https://github.com/josStorer/RWKV-Runner


cd RWKV-Runner
python ./backend-python/main.py #后端推理服务已启动, 调用/switch-model载入模型, 参考API文档: http://127.0.0.1:8000/docs

# 或者
cd RWKV-Runner/frontend
npm ci
npm run build #编译前端
cd ..
python ./backend-python/webui_server.py #单独启动前端服务
# 或者
python ./backend-python/main.py --webui #同时启动前后端服务

# 帮助参数
python ./backend-python/main.py -h

先clone一下项目
git clone https://github.com/josStorer/RWKV-Runner
进入后端目录
cd RWKV-Runner/backend-python
新建一个conda环境
(下面是全凭回忆写的,有错的话…(你已经是个成熟的coder了,要学会自己debug()
conda create -n RWKV python=3.10
安装环境
pip install -r requirment.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

安装前端环境,npm
先装一下nvm,把nvm理解成anaconda就行了,是npm的环境管理工具

nvm地址:https://github.com/nvm-sh/nvm

安装nvm:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
设置环境变量
source ~/.bashrc
检验nvm安装完成
command -v nvm

安装node和npm,这里装的是16.13.0版本
nvm install 16.13.0
设置npm镜像
npm config set registry https://registry.npmmirror.com

从项目根目录进入前端目录,编译前端

cd RWKV-Runner/frontend
npm ci
npm run build #编译前端

(少女泡茶中…)

npm ci卡了我好久…

记得npm run build
(继续泡茶…)

回到项目根目录,同时启动前后端,
python ./backend-python/main.py --webui --port 2777

用ssh架一个隧道到服务器
ssh -L 2777:localhost:2777 root@172.31.224.191 -p 22

访问http://127.0.0.1:2777/
在这里插入图片描述

下载模型

hugging face上很多了,我主要是想来玩roleplay模型,遂下载之。
https://huggingface.co/xiaol/RWKV-v5.2-7B-Role-play-16k

(RWKV模型挺好的就是只用下一个pth文件就好)

在UI看了半天不知道怎么改模型,直接用API改好了…
看了下文档里面有写:调用/switch-model载入模型, 参考API文档: http://127.0.0.1:8000/docs
(我这里port是2777,自行修改即可)

文档里找到switch-model的文档说明
在这里插入图片描述

点try it out修改request body,将路径改成自己的路径,execute即可
在这里插入图片描述

烧显存注意,大约需要16G显存

等模型加载进显存

回复你好测试,ok
在这里插入图片描述

关于roleplay

看了下社区的作者说是claude的格式,我也不知道claude的格式是啥…到时候再说吧… 结束!
(有空看看别人的roleplay项目实现吧…)在这里插入图片描述
roleplay prompt参考:
https://tieba.baidu.com/p/8455687480

claude官方的介绍
https://docs.anthropic.com/claude/docs/intro-to-prompting

claude的prompt教程
https://docs.anthropic.com/claude/prompt-library

RWKV 提示指南
建议格式:
先告诉模型指令,然后再告诉模型上下文,它会首先理解指令,并使用该知识来处理上下文。

{{INSTRUCTION}}

{{CONTEXT}}

{{ANSWER}}

对于上下文任务的问答,最佳的方法是在上下文之前和之后重复问题,如下所示

{{QUESTION}}

{{CONTEXT}}

{{QUESTION}}

{{ANSWER}}
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐