該專案旨在透過為您自動化一切來消除使用大型語言模型的障礙。您所需要的只是一個只有幾兆位元組的輕量級可執行程式。此外,該專案提供了與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
目錄下作為離線音源使用。請注意,如果您從原始程式碼編譯程序,請勿將其放在原始程式碼目錄中。