Dieses Projekt zielt darauf ab, die Hindernisse bei der Verwendung großer Sprachmodelle zu beseitigen, indem alles für Sie automatisiert wird. Sie benötigen lediglich ein leichtes ausführbares Programm mit nur wenigen Megabyte. Darüber hinaus stellt dieses Projekt eine mit der OpenAI-API kompatible Schnittstelle bereit, was bedeutet, dass jeder ChatGPT-Client ein RWKV-Client ist.
Englisch | 简体中文 | 日本語
FAQs | Vorschau | Herunterladen | Einfaches Bereitstellungsbeispiel | Beispiele für die Serverbereitstellung | MIDI-Hardware-Eingang
Sie können Backend-Python auf einem Server bereitstellen und dieses Programm nur als Client verwenden. Geben Sie Ihre Serveradresse in die API URL
ein.
Wenn Sie öffentliche Dienste bereitstellen und bereitstellen, begrenzen Sie bitte die Anforderungsgröße über das API-Gateway, um eine übermäßige Ressourcennutzung durch die Übermittlung zu langer Eingabeaufforderungen zu verhindern. Bitte beschränken Sie außerdem die Obergrenze der max_tokens der Anfragen basierend auf Ihrer tatsächlichen Situation: https://github.com/josStorer/RWKV-Runner/blob/master/backend-python/utils/rwkv.py#L567, die Standardeinstellung ist auf le=102400 gesetzt, was im Extremfall zu einem erheblichen Ressourcenverbrauch für einzelne Antworten führen kann.
Standardkonfigurationen haben die benutzerdefinierte CUDA-Kernelbeschleunigung aktiviert, die viel schneller ist und viel weniger VRAM verbraucht. Wenn Sie auf mögliche Kompatibilitätsprobleme stoßen (Ausgabe verstümmelt), gehen Sie zur Seite „Konfigurationen“ und deaktivieren Sie Use Custom CUDA kernel to Accelerate
oder versuchen Sie, Ihren GPU-Treiber zu aktualisieren.
Wenn Windows Defender behauptet, dass es sich um einen Virus handelt, können Sie versuchen, v1.3.7_win.zip herunterzuladen und es automatisch auf die neueste Version aktualisieren zu lassen, oder es zur vertrauenswürdigen Liste hinzufügen ( Windows Security
-> Virus & threat protection
-> Manage settings
– > Exclusions
-> Add or remove exclusions
-> Add an exclusion
-> Folder
-> RWKV-Runner
).
Bei verschiedenen Aufgaben können durch Anpassen der API-Parameter bessere Ergebnisse erzielt werden. Für Übersetzungsaufgaben können Sie beispielsweise versuchen, Temperature auf 1 und Top_P auf 0,3 zu setzen.
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 "
}
]
}
Hinweis: v1.4.0 hat die Qualität der Einbettungs-API verbessert. Die generierten Ergebnisse sind nicht mit früheren Versionen kompatibel. Wenn Sie die Einbettungs-API zum Generieren von Wissensdatenbanken oder Ähnlichem verwenden, führen Sie bitte eine Neugenerierung durch.
Wenn Sie Langchain verwenden, verwenden Sie einfach 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 ] } " )
Tipp: Sie können https://github.com/josStorer/sgm_plus herunterladen und in das assets/sound-font
Verzeichnis des Programms entpacken, um es als Offline-Soundquelle zu verwenden. Bitte beachten Sie, dass Sie das Programm beim Kompilieren aus dem Quellcode nicht im Quellcodeverzeichnis ablegen dürfen.
Wenn Sie kein MIDI-Keyboard haben, können Sie eine virtuelle MIDI-Eingabesoftware wie Virtual Midi Controller 3 LE
zusammen mit loopMIDI verwenden, um eine normale Computertastatur als MIDI-Eingabe zu verwenden.
Tipp: Sie können https://github.com/josStorer/sgm_plus herunterladen und in das assets/sound-font
Verzeichnis des Programms entpacken, um es als Offline-Soundquelle zu verwenden. Bitte beachten Sie, dass Sie das Programm beim Kompilieren aus dem Quellcode nicht im Quellcodeverzeichnis ablegen dürfen.