rwkv fixes and examples (#185)
parent
6352308882
commit
fdf75c6d0e
@ -0,0 +1,10 @@ |
|||||||
|
FROM python |
||||||
|
|
||||||
|
# convert the model (one-off) |
||||||
|
RUN pip3 install torch numpy |
||||||
|
|
||||||
|
WORKDIR /build |
||||||
|
COPY ./scripts/ . |
||||||
|
|
||||||
|
RUN git clone --recurse-submodules https://github.com/saharNooby/rwkv.cpp && cd rwkv.cpp && cmake . && cmake --build . --config Release |
||||||
|
ENTRYPOINT [ "/build/build.sh" ] |
@ -0,0 +1,59 @@ |
|||||||
|
# rwkv |
||||||
|
|
||||||
|
Example of how to run rwkv models. |
||||||
|
|
||||||
|
## Run models |
||||||
|
|
||||||
|
Setup: |
||||||
|
|
||||||
|
```bash |
||||||
|
# Clone LocalAI |
||||||
|
git clone https://github.com/go-skynet/LocalAI |
||||||
|
|
||||||
|
cd LocalAI/examples/rwkv |
||||||
|
|
||||||
|
# (optional) Checkout a specific LocalAI tag |
||||||
|
# git checkout -b build <TAG> |
||||||
|
|
||||||
|
# build the tooling image to convert an rwkv model locally: |
||||||
|
docker build -t rwkv-converter -f Dockerfile.build . |
||||||
|
|
||||||
|
# download and convert a model (one-off) - it's going to be fast on CPU too! |
||||||
|
docker run -ti --name converter -v $PWD:/data rwkv-converter https://huggingface.co/BlinkDL/rwkv-4-raven/resolve/main/RWKV-4-Raven-1B5-v11-Eng99%25-Other1%25-20230425-ctx4096.pth /data/models/rwkv |
||||||
|
|
||||||
|
# Get the tokenizer |
||||||
|
wget https://raw.githubusercontent.com/saharNooby/rwkv.cpp/5eb8f09c146ea8124633ab041d9ea0b1f1db4459/rwkv/20B_tokenizer.json -O models/rwkv.tokenizer.json |
||||||
|
|
||||||
|
# start with docker-compose |
||||||
|
docker-compose up -d --build |
||||||
|
``` |
||||||
|
|
||||||
|
Test it out: |
||||||
|
|
||||||
|
```bash |
||||||
|
curl http://localhost:8080/v1/completions -H "Content-Type: application/json" -d '{ |
||||||
|
"model": "gpt-3.5-turbo", |
||||||
|
"prompt": "A long time ago, in a galaxy far away", |
||||||
|
"max_tokens": 100, |
||||||
|
"temperature": 0.9, "top_p": 0.8, "top_k": 80 |
||||||
|
}' |
||||||
|
|
||||||
|
# {"object":"text_completion","model":"gpt-3.5-turbo","choices":[{"text":", there was a small group of five friends: Annie, Bryan, Charlie, Emily, and Jesse."}],"usage":{"prompt_tokens":0,"completion_tokens":0,"total_tokens":0}} |
||||||
|
|
||||||
|
curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{ |
||||||
|
"model": "gpt-3.5-turbo", |
||||||
|
"messages": [{"role": "user", "content": "How are you?"}], |
||||||
|
"temperature": 0.9, "top_p": 0.8, "top_k": 80 |
||||||
|
}' |
||||||
|
|
||||||
|
# {"object":"chat.completion","model":"gpt-3.5-turbo","choices":[{"message":{"role":"assistant","content":" Good, thanks. I am about to go to bed. I' ll talk to you later.Bye."}}],"usage":{"prompt_tokens":0,"completion_tokens":0,"total_tokens":0}} |
||||||
|
``` |
||||||
|
|
||||||
|
### Fine tuning |
||||||
|
|
||||||
|
See [RWKV-LM](https://github.com/BlinkDL/RWKV-LM#training--fine-tuning). There is also a Google [colab](https://colab.research.google.com/github/resloved/RWKV-notebooks/blob/master/RWKV_v4_RNN_Pile_Fine_Tuning.ipynb). |
||||||
|
|
||||||
|
## See also |
||||||
|
|
||||||
|
- [RWKV-LM](https://github.com/BlinkDL/RWKV-LM) |
||||||
|
- [rwkv.cpp](https://github.com/saharNooby/rwkv.cpp) |
@ -0,0 +1,16 @@ |
|||||||
|
version: '3.6' |
||||||
|
|
||||||
|
services: |
||||||
|
api: |
||||||
|
image: quay.io/go-skynet/local-ai:latest |
||||||
|
build: |
||||||
|
context: ../../ |
||||||
|
dockerfile: Dockerfile.dev |
||||||
|
ports: |
||||||
|
- 8080:8080 |
||||||
|
environment: |
||||||
|
- DEBUG=true |
||||||
|
- MODELS_PATH=/models |
||||||
|
volumes: |
||||||
|
- ./models:/models:cached |
||||||
|
command: ["/usr/bin/local-ai" ] |
@ -0,0 +1,19 @@ |
|||||||
|
name: gpt-3.5-turbo |
||||||
|
parameters: |
||||||
|
model: rwkv |
||||||
|
top_k: 80 |
||||||
|
temperature: 0.9 |
||||||
|
max_tokens: 100 |
||||||
|
top_p: 0.8 |
||||||
|
context_size: 1024 |
||||||
|
threads: 14 |
||||||
|
backend: "rwkv" |
||||||
|
cutwords: |
||||||
|
- "Bob:.*" |
||||||
|
roles: |
||||||
|
user: "Bob:" |
||||||
|
system: "Alice:" |
||||||
|
assistant: "Alice:" |
||||||
|
template: |
||||||
|
completion: rwkv_completion |
||||||
|
chat: rwkv_chat |
@ -0,0 +1,13 @@ |
|||||||
|
The following is a verbose detailed conversation between Bob and a woman, Alice. Alice is intelligent, friendly and likeable. Alice is likely to agree with Bob. |
||||||
|
|
||||||
|
Bob: Hello Alice, how are you doing? |
||||||
|
|
||||||
|
Alice: Hi Bob! Thanks, I'm fine. What about you? |
||||||
|
|
||||||
|
Bob: I am very good! It's nice to see you. Would you mind me chatting with you for a while? |
||||||
|
|
||||||
|
Alice: Not at all! I'm listening. |
||||||
|
|
||||||
|
{{.Input}} |
||||||
|
|
||||||
|
Alice: |
@ -0,0 +1 @@ |
|||||||
|
Complete the following sentence: {{.Input}} |
Loading…
Reference in new issue