이 프로젝트는 모든 것을 자동화하여 대규모 언어 모델 사용의 장벽을 제거하는 것을 목표로 합니다. 필요한 것은 단지 몇 메가바이트에 불과한 경량 실행 프로그램뿐입니다. 또한 이 프로젝트는 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으로 설정하면 극단적인 경우 개별 응답에 상당한 리소스가 소모될 수 있습니다.
기본 구성을 통해 훨씬 더 빠르고 훨씬 적은 VRAM을 소비하는 맞춤형 CUDA 커널 가속이 활성화되었습니다. 가능한 호환성 문제(출력 왜곡)가 발생하는 경우 구성 페이지로 이동하여 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 매개변수를 조정하면 더 나은 결과를 얻을 수 있습니다. 예를 들어 변환 작업의 경우 온도를 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의 품질이 향상되었습니다. 생성된 결과는 이전 버전과 호환되지 않습니다. Embeddings 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 키보드가 없으면 loopMIDI와 함께 Virtual Midi Controller 3 LE
와 같은 가상 MIDI 입력 소프트웨어를 사용하여 일반 컴퓨터 키보드를 MIDI 입력으로 사용할 수 있습니다.
팁: https://github.com/josStorer/sgm_plus를 다운로드하고 프로그램의 assets/sound-font
디렉터리에 압축을 풀어 오프라인 음원으로 사용할 수 있습니다. 소스 코드에서 프로그램을 컴파일하는 경우 해당 프로그램을 소스 코드 디렉터리에 두지 마십시오.