このプロジェクトは、すべてを自動化することで、大規模な言語モデルを使用する際の障壁を取り除くことを目的としています。必要なのは、わずか数メガバイトの軽量の実行可能プログラムだけです。さらに、このプロジェクトは 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 消費量が大幅に減ります。互換性の問題 (出力の文字化け) が発生する可能性がある場合は、[構成] ページに移動して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
body.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
ディレクトリに解凍して、オフライン サウンド ソースとして使用できます。ソース コードからプログラムをコンパイルする場合は、プログラムをソース コード ディレクトリに置かないでください。