Este proyecto tiene como objetivo eliminar las barreras del uso de modelos de lenguaje grandes al automatizar todo para usted. Todo lo que necesitas es un programa ejecutable ligero de sólo unos pocos megabytes. Además, este proyecto proporciona una interfaz compatible con la API OpenAI, lo que significa que cada cliente ChatGPT es un cliente RWKV.
Inglés | 简体中文 | 日本語
Preguntas frecuentes | Vista previa | Descargar | Ejemplo de implementación simple | Ejemplos de implementación de servidores | Entrada de hardware MIDI
Puede implementar backend-python en un servidor y usar este programa solo como cliente. Complete la dirección de su servidor en la API URL
de configuración.
Si está implementando y brindando servicios públicos, limite el tamaño de la solicitud a través de la puerta de enlace API para evitar el uso excesivo de recursos causado por el envío de solicitudes demasiado largas. Además, restrinja el límite superior de max_tokens de solicitudes según su situación real: https://github.com/josStorer/RWKV-Runner/blob/master/backend-python/utils/rwkv.py#L567, el valor predeterminado es establecido como le=102400, lo que puede resultar en un consumo significativo de recursos para respuestas individuales en casos extremos.
Las configuraciones predeterminadas han habilitado la aceleración personalizada del kernel CUDA, que es mucho más rápida y consume mucha menos VRAM. Si encuentra posibles problemas de compatibilidad (salida confusa), vaya a la página Configuraciones y desactive Use Custom CUDA kernel to Accelerate
, o intente actualizar el controlador de su gpu.
Si Windows Defender afirma que se trata de un virus, puede intentar descargar v1.3.7_win.zip y dejar que se actualice automáticamente a la última versión, o agregarlo a la lista de confianza ( Windows Security
-> Virus & threat protection
-> Manage settings
- > Exclusions
-> Add or remove exclusions
-> Add an exclusion
-> Folder
-> RWKV-Runner
).
Para diferentes tareas, ajustar los parámetros de API puede lograr mejores resultados. Por ejemplo, para tareas de traducción, puede intentar configurar Temperatura en 1 y Top_P en 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
cuerpo.json:
{
"messages" : [
{
"role" : " user " ,
"content" : " Hello "
}
]
}
Nota: v1.4.0 ha mejorado la calidad de la API integrada. Los resultados generados no son compatibles con versiones anteriores. Si está utilizando API integradas para generar bases de conocimiento o similares, vuelva a generarlas.
Si está utilizando langchain, simplemente use 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 ] } " )
Consejo: puede descargar https://github.com/josStorer/sgm_plus y descomprimirlo en el directorio assets/sound-font
del programa para usarlo como fuente de sonido sin conexión. Tenga en cuenta que si está compilando el programa desde el código fuente, no lo coloque en el directorio del código fuente.
Si no tiene un teclado MIDI, puede usar un software de entrada MIDI virtual como Virtual Midi Controller 3 LE
, junto con loopMIDI, para usar un teclado de computadora normal como entrada MIDI.
Consejo: puede descargar https://github.com/josStorer/sgm_plus y descomprimirlo en el directorio assets/sound-font
del programa para usarlo como fuente de sonido sin conexión. Tenga en cuenta que si está compilando el programa desde el código fuente, no lo coloque en el directorio del código fuente.