Instructions to use Hakureirm/rwkv7-0.1b-hf with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Hakureirm/rwkv7-0.1b-hf with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Hakureirm/rwkv7-0.1b-hf", trust_remote_code=True)# Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("Hakureirm/rwkv7-0.1b-hf", trust_remote_code=True, device_map="auto") - RWKV
How to use Hakureirm/rwkv7-0.1b-hf with RWKV:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Hakureirm/rwkv7-0.1b-hf with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Hakureirm/rwkv7-0.1b-hf" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Hakureirm/rwkv7-0.1b-hf", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Hakureirm/rwkv7-0.1b-hf
- SGLang
How to use Hakureirm/rwkv7-0.1b-hf with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Hakureirm/rwkv7-0.1b-hf" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Hakureirm/rwkv7-0.1b-hf", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Hakureirm/rwkv7-0.1b-hf" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Hakureirm/rwkv7-0.1b-hf", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use Hakureirm/rwkv7-0.1b-hf with Docker Model Runner:
docker model run hf.co/Hakureirm/rwkv7-0.1b-hf
RWKV-7 "Goose" 0.1B β converted for the in-tree transformers implementation
This is not a new model. It is a format conversion of
BlinkDL/rwkv-7-world β
RWKV-x070-World-0.1B-v2.8-20241210-ctx4096.pth, laid out as a transformers
directory so that the rwkv7 implementation can load it with from_pretrained.
All credit for the weights belongs to BlinkDL / the RWKV project; they are
redistributed here under the Apache-2.0 licence they were released under.
Why this exists
RWKV-7 weights are published in two layouts, and until now neither loaded into the in-tree implementation:
- the reference
.pthβ the same parameter names, but a baretorch.saveof a flat dict rather than atransformersdirectory; - the
flalayout β atransformersdirectory, but atrust_remote_coderepo whose modelling code and tensor names come fromflash-linear-attention, so it loads its own implementation.
The conversion is a rename, not a transformation. Every one of the 399 tensors in the
source .pth is bit-identical here; the only additions are three all-zero
placeholders for layer 0's value-residual LoRA, which that layer never reads (layer 0
produces v_first rather than mixing towards it) and which exist so the state dict
is rectangular. bfloat16, the dtype the source is stored in.
Usage
The implementation ships inside this repo (auto_map remote code), so stock
transformers is all you need β no fork, no extra package:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("RWKV/RWKV7-Goose-World2.8-0.1B-HF", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Hakureirm/rwkv7-0.1b-hf", trust_remote_code=True, dtype=torch.bfloat16)
inputs = tokenizer("The Eiffel Tower is located in the city of", return_tensors="pt")
print(tokenizer.decode(model.generate(**inputs, max_new_tokens=20)[0]))
The same model class is also open as an in-tree PR (rwkv-rs/transformers-rwkv#2); this repo is the way to use it today on released transformers.
Runs on
Pure-PyTorch portable path, no CUDA-only code on it. Verified, greedy 20/20 against BlinkDL's own runtime in each case: CPU (fp32/bf16, transformers 5.12.1), Apple Silicon MPS (fp32 and fp16), CUDA (the full test suite). Optional Triton kernels engage only on CUDA and fall back to the portable path everywhere else.
RWKV-7 is attention-free and fully recurrent: the state is a fixed-size matrix per head, so there is no KV cache, memory is constant in context length, and each new token costs the same as the first.
Verification
Checked against BlinkDL's own runtime β the rwkv package at cpu fp32 with
RWKV_V7_ON=1, not against the implementation being loaded here, which would be
self-certifying, and not against fla, whose RWKV layer prints a warning on import
saying it is potentially buggy and that results should be cross-checked against the
official repository.
Greedy, 20 tokens, from "The Eiffel Tower is located in the city of":
| loaded as | tokens matching the reference runtime |
|---|---|
float32 |
20/20 |
bfloat16 |
20/20 |
Both produce " Paris, France. It is the tallest building in the world and is the world's tallest".
Logits agree with the reference to 7.06e-05 absolute and 1.97e-06 relative, with
argmax agreement on every prompt position.
0.1B is a useful size to check against for a reason beyond its download: it is 768 wide
with head_dim 64, i.e. twelve heads of width 64, so the head count and the head
width differ. At larger widths where both are 64, a quantity indexed by the wrong one
of them agrees by coincidence.
Reproducing the conversion
huggingface-cli download BlinkDL/rwkv-7-world RWKV-x070-World-0.1B-v2.8-20241210-ctx4096.pth --local-dir .
python src/transformers/models/rwkv7/convert_rwkv7_checkpoint_to_hf.py \
--checkpoint RWKV-x070-World-0.1B-v2.8-20241210-ctx4096.pth \
--flavour native --dtype bfloat16 --output_dir ./rwkv7-0.1b-hf
--flavour fla reads the safetensors layout instead. The converter compares the
checkpoint's tensor shapes against the ones the config implies and refuses a
disagreement, so a config that names a different model fails rather than producing
something that loads and generates noise.
Citation
The model is RWKV-7 "Goose" by Bo Peng (BlinkDL) and the RWKV community. Reference implementation: BlinkDL/RWKV-LM.
- Downloads last month
- 72
Model tree for Hakureirm/rwkv7-0.1b-hf
Base model
BlinkDL/rwkv-7-world