Este projeto visa eliminar as barreiras do uso de grandes modelos de linguagem, automatizando tudo para você. Tudo que você precisa é de um programa executável leve de apenas alguns megabytes. Além disso, este projeto fornece uma interface compatível com a API OpenAI, o que significa que todo cliente ChatGPT é um cliente RWKV.
Inglês | 简体中文 | 日本語
Perguntas frequentes | Visualização | Baixar | Exemplo de implantação simples | Exemplos de implantação de servidor | Entrada de hardware MIDI
Você pode implantar backend-python em um servidor e usar este programa apenas como cliente. Preencha o endereço do seu servidor no API URL
configurações.
Se você estiver implantando e fornecendo serviços públicos, limite o tamanho da solicitação por meio do gateway de API para evitar o uso excessivo de recursos causado pelo envio de solicitações muito longas. Além disso, restrinja o limite superior de max_tokens das solicitações com base na sua situação real: https://github.com/josStorer/RWKV-Runner/blob/master/backend-python/utils/rwkv.py#L567, o padrão é definido como le=102400, o que pode resultar em consumo significativo de recursos para respostas individuais em casos extremos.
As configurações padrão habilitaram a aceleração personalizada do kernel CUDA, que é muito mais rápida e consome muito menos VRAM. Se você encontrar possíveis problemas de compatibilidade (saída ilegível), vá para a página Configurações e desative Use Custom CUDA kernel to Accelerate
ou tente atualizar seu driver GPU.
Se o Windows Defender alegar que é um vírus, você pode tentar baixar v1.3.7_win.zip e deixá-lo atualizar automaticamente para a versão mais recente ou adicioná-lo à lista confiável ( Windows Security
-> Virus & threat protection
-> Manage settings
- > Exclusions
-> Add or remove exclusions
-> Add an exclusion
-> Folder
-> RWKV-Runner
).
Para diferentes tarefas, ajustar os parâmetros da API pode obter melhores resultados. Por exemplo, para tarefas de tradução, você pode tentar definir Temperature como 1 e Top_P como 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
corpo.json:
{
"messages" : [
{
"role" : " user " ,
"content" : " Hello "
}
]
}
Nota: a v1.4.0 melhorou a qualidade da API de embeddings. Os resultados gerados não são compatíveis com versões anteriores. Se você estiver usando API de incorporação para gerar bases de conhecimento ou similares, gere novamente.
Se você estiver usando langchain, basta usar 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 ] } " )
Dica: você pode baixar https://github.com/josStorer/sgm_plus e descompactá-lo no diretório assets/sound-font
do programa para usá-lo como fonte de som offline. Observe que se você estiver compilando o programa a partir do código-fonte, não o coloque no diretório do código-fonte.
Se você não possui um teclado MIDI, pode usar um software de entrada MIDI virtual como Virtual Midi Controller 3 LE
, junto com o loopMIDI, para usar um teclado de computador normal como entrada MIDI.
Dica: você pode baixar https://github.com/josStorer/sgm_plus e descompactá-lo no diretório assets/sound-font
do programa para usá-lo como fonte de som offline. Observe que se você estiver compilando o programa a partir do código-fonte, não o coloque no diretório do código-fonte.