Ce projet vise à éliminer les barrières liées à l'utilisation de grands modèles de langage en automatisant tout pour vous. Tout ce dont vous avez besoin est un programme exécutable léger de quelques mégaoctets seulement. De plus, ce projet fournit une interface compatible avec l'API OpenAI, ce qui signifie que chaque client ChatGPT est un client RWKV.
Anglais | 简体中文 | 日本語
FAQ | Aperçu | Télécharger | Exemple de déploiement simple | Exemples de déploiement de serveur | Entrée matérielle MIDI
Vous pouvez déployer backend-python sur un serveur et utiliser ce programme en tant que client uniquement. Remplissez l'adresse de votre serveur dans l' API URL
des paramètres.
Si vous déployez et fournissez des services publics, veuillez limiter la taille des requêtes via la passerelle API pour éviter une utilisation excessive des ressources causée par la soumission d'invites trop longues. De plus, veuillez limiter la limite supérieure des max_tokens des requêtes en fonction de votre situation réelle : https://github.com/josStorer/RWKV-Runner/blob/master/backend-python/utils/rwkv.py#L567, la valeur par défaut est défini sur le=102400, ce qui peut entraîner une consommation importante de ressources pour les réponses individuelles dans des cas extrêmes.
Les configurations par défaut ont permis une accélération personnalisée du noyau CUDA, qui est beaucoup plus rapide et consomme beaucoup moins de VRAM. Si vous rencontrez d'éventuels problèmes de compatibilité (sortie tronquée), accédez à la page Configurations et désactivez Use Custom CUDA kernel to Accelerate
, ou essayez de mettre à niveau votre pilote GPU.
Si Windows Defender prétend qu'il s'agit d'un virus, vous pouvez essayer de télécharger la v1.3.7_win.zip et le laisser se mettre à jour automatiquement vers la dernière version, ou l'ajouter à la liste de confiance ( Windows Security
-> Virus & threat protection
-> Manage settings
- > Exclusions
-> Add or remove exclusions
-> Add an exclusion
-> Folder
-> RWKV-Runner
).
Pour différentes tâches, l'ajustement des paramètres de l'API peut obtenir de meilleurs résultats. Par exemple, pour les tâches de traduction, vous pouvez essayer de définir Temperature sur 1 et Top_P sur 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
corps.json :
{
"messages" : [
{
"role" : " user " ,
"content" : " Hello "
}
]
}
Remarque : la version 1.4.0 a amélioré la qualité de l'API d'intégration. Les résultats générés ne sont pas compatibles avec les versions précédentes. Si vous utilisez l'API d'intégration pour générer des bases de connaissances ou similaires, veuillez régénérer.
Si vous utilisez langchain, utilisez simplement 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 ] } " )
Astuce : Vous pouvez télécharger https://github.com/josStorer/sgm_plus et le décompresser dans le répertoire assets/sound-font
du programme pour l'utiliser comme source sonore hors ligne. Veuillez noter que si vous compilez le programme à partir du code source, ne le placez pas dans le répertoire du code source.
Si vous n'avez pas de clavier MIDI, vous pouvez utiliser un logiciel d'entrée MIDI virtuel comme Virtual Midi Controller 3 LE
, ainsi que loopMIDI, pour utiliser un clavier d'ordinateur ordinaire comme entrée MIDI.
Astuce : Vous pouvez télécharger https://github.com/josStorer/sgm_plus et le décompresser dans le répertoire assets/sound-font
du programme pour l'utiliser comme source sonore hors ligne. Veuillez noter que si vous compilez le programme à partir du code source, ne le placez pas dans le répertoire du code source.