Instructions to use google/recurrentgemma-2b-it with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use google/recurrentgemma-2b-it with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="google/recurrentgemma-2b-it") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("google/recurrentgemma-2b-it") model = AutoModelForCausalLM.from_pretrained("google/recurrentgemma-2b-it") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use google/recurrentgemma-2b-it with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "google/recurrentgemma-2b-it" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "google/recurrentgemma-2b-it", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/google/recurrentgemma-2b-it
- SGLang
How to use google/recurrentgemma-2b-it 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 "google/recurrentgemma-2b-it" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "google/recurrentgemma-2b-it", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "google/recurrentgemma-2b-it" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "google/recurrentgemma-2b-it", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use google/recurrentgemma-2b-it with Docker Model Runner:
docker model run hf.co/google/recurrentgemma-2b-it
Can this thing be quantized?
Can this thing be quantized? or its recurrent block is sensitive to low precision like Mamba?
Hi @Winmodel
I think as long as the model contains torch.nn.Linear layers it can be quantized with any of these methods: https://huggingface.co/docs/transformers/quantization
We haven't investigated quantizing RecurrentGemma/Griffin models yet.
I would expect that the linear layers (which has most of the weights) can be quantized, but it might be harder to quantize the recurrent layer.
Note that for the recurrence, we recommend storing the parameters in bfloat16, but casting them on device to float32 to perform the recurrence in high precision.
Casting the parameters to float32 on device is free since the recurrence is memory bound, and it significantly improves numerical precision.
Thanks for this great model! Is there a gguf version of this yet?
Hello @sdalemorrey .
We do not have a gguf version of the model and at the moment we do not plan to release one.
In case it might be helpful, it looks like someone did a version of a quantized model here[1].
NB: This was not released by us and we did not test or evaluate it.
[1] https://huggingface.co/PrunaAI/recurrentgemma-2b-it-bnb-4bit-smashed