该项目旨在通过为您自动化一切来消除使用大型语言模型的障碍。您所需要的只是一个只有几兆字节的轻量级可执行程序。此外,该项目提供了与OpenAI API兼容的接口,这意味着每个ChatGPT客户端都是RWKV客户端。
英语 | 简体中文 | 日本语
常见问题解答 |预览 |下载 |简单部署示例 |服务器部署示例 | MIDI 硬件输入
您可以在服务器上部署 backend-python 并仅将该程序用作客户端。在设置API URL
中填写您的服务器地址。
如果您是部署并提供公共服务,请通过API网关限制请求大小,避免提交过长的提示导致资源占用过多。另外,请根据您的实际情况限制请求的 max_tokens 上限:https://github.com/josStorer/RWKV-Runner/blob/master/backend-python/utils/rwkv.py#L567,默认为设置为le=102400,极端情况下可能会导致个别响应消耗大量资源。
默认配置已启用自定义 CUDA 内核加速,速度更快,消耗的 VRAM 更少。如果您遇到可能的兼容性问题(输出乱码),请进入 Configs 页面并关闭Use Custom CUDA kernel to Accelerate
,或者尝试升级您的 GPU 驱动。
如果 Windows Defender 声称这是病毒,您可以尝试下载 v1.3.7_win.zip 并让它自动更新到最新版本,或将其添加到受信任列表( Windows Security
-> Virus & threat protection
-> Manage settings
- > Exclusions
-> Add or remove exclusions
-> Add an exclusion
-> Folder
-> RWKV-Runner
)。
针对不同的任务,调整API参数可以达到更好的效果。例如,对于翻译任务,您可以尝试将Temperature设置为1,将Top_P设置为0.3。
git clone https://github.com/josStorer/RWKV-Runner
# Then
cd RWKV-Runner
python ./backend-python/main.py # The backend inference service has been started, request /switch-model API to load the model, refer to the API documentation: http://127.0.0.1:8000/docs
# Or
cd RWKV-Runner/frontend
npm ci
npm run build # Compile the frontend
cd ..
python ./backend-python/webui_server.py # Start the frontend service separately
# Or
python ./backend-python/main.py --webui # Start the frontend and backend service at the same time
# Help Info
python ./backend-python/main.py -h
ab -p body.json -T application/json -c 20 -n 100 -l http://127.0.0.1:8000/chat/completions
正文.json:
{
"messages" : [
{
"role" : " user " ,
"content" : " Hello "
}
]
}
注意:v1.4.0 提高了嵌入 API 的质量。生成的结果与以前的版本不兼容。如果您使用嵌入 API 来生成知识库或类似内容,请重新生成。
如果您使用langchain,只需使用OpenAIEmbeddings(openai_api_base="http://127.0.0.1:8000", openai_api_key="sk-")
import numpy as np
import requests
def cosine_similarity ( a , b ):
return np . dot ( a , b ) / ( np . linalg . norm ( a ) * np . linalg . norm ( b ))
values = [
"I am a girl" ,
"我是个女孩" ,
"私は女の子です" ,
"广东人爱吃福建人" ,
"我是个人类" ,
"I am a human" ,
"that dog is so cute" ,
"私はねこむすめです、にゃん♪" ,
"宇宙级特大事件!号外号外!"
]
embeddings = []
for v in values :
r = requests . post ( "http://127.0.0.1:8000/embeddings" , json = { "input" : v })
embedding = r . json ()[ "data" ][ 0 ][ "embedding" ]
embeddings . append ( embedding )
compared_embedding = embeddings [ 0 ]
embeddings_cos_sim = [ cosine_similarity ( compared_embedding , e ) for e in embeddings ]
for i in np . argsort ( embeddings_cos_sim )[:: - 1 ]:
print ( f" { embeddings_cos_sim [ i ]:.10f } - { values [ i ] } " )
提示:您可以下载https://github.com/josStorer/sgm_plus并解压到程序的assets/sound-font
目录下作为离线音源使用。请注意,如果您从源代码编译程序,请勿将其放在源代码目录中。
如果您没有 MIDI 键盘,您可以使用Virtual Midi Controller 3 LE
等虚拟 MIDI 输入软件以及 LoopMIDI,以使用常规计算机键盘作为 MIDI 输入。
提示:您可以下载https://github.com/josStorer/sgm_plus并解压到程序的assets/sound-font
目录下作为离线音源使用。请注意,如果您从源代码编译程序,请勿将其放在源代码目录中。