--- pipeline_tag: text-generation license: gemma base_model: google/gemma-2-2b library_name: kerasformers extra_gated_heading: Access Gemma on Hugging Face language: - en tags: - keras - kerasformers - gemma2 - gemma - gemma-2-2b - text-generation - arxiv:2408.00118 - pytorch - jax - tf --- *See [our collection](https://huggingface.co/kerasformers) for all Gemma 2 sizes and variants.* # Run Gemma 2 with Keras 3: JAX, PyTorch, or TensorFlow [![GitHub](https://img.shields.io/badge/GitHub-KerasFormers-181717?logo=github)](https://github.com/IMvision12/KerasFormers) [![Docs](https://img.shields.io/badge/Docs-Gemma_2-1f6feb)](https://imvision12.github.io/KerasFormers/gemma2/) [![HuggingFace](https://img.shields.io/badge/HuggingFace-Gemma_2-ffd21e?logo=huggingface&logoColor=black)](https://huggingface.co/kerasformers) # kerasformers/gemma-2-2b Pure-**Keras 3** conversion of [`google/gemma-2-2b`](https://huggingface.co/google/gemma-2-2b) for [kerasformers](https://github.com/IMvision12/KerasFormers). One implementation runs unmodified on **TensorFlow / Torch / JAX**. This is a base (pretrained) checkpoint, served here as **text -> text** via `Gemma2TextGenerate`; weights are stored in **bfloat16**. For model details, license, and usage terms, see Google's [model card](https://huggingface.co/google/gemma-2-2b). ## ✨ Quick start ```python import os os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow" from kerasformers.models.gemma2 import Gemma2TextGenerate, Gemma2Tokenizer model = Gemma2TextGenerate.from_weights("kerasformers/gemma-2-2b") tokenizer = Gemma2Tokenizer.from_weights("kerasformers/gemma-2-2b") inputs = tokenizer([{"role": "user", "content": "Hello, who are you?"}]) outputs = model.generate(**inputs, max_new_tokens=64) print(tokenizer.decode(outputs[0])) ``` Load any Gemma 2 variant the same way with `from_weights("kerasformers/")`: | Variant | Hub | | --- | --- | | `gemma-2-27b` | [kerasformers/gemma-2-27b](https://huggingface.co/kerasformers/gemma-2-27b) | | `gemma-2-27b-it` | [kerasformers/gemma-2-27b-it](https://huggingface.co/kerasformers/gemma-2-27b-it) | | `gemma-2-2b` | [kerasformers/gemma-2-2b](https://huggingface.co/kerasformers/gemma-2-2b) | | `gemma-2-2b-it` | [kerasformers/gemma-2-2b-it](https://huggingface.co/kerasformers/gemma-2-2b-it) | | `gemma-2-9b` | [kerasformers/gemma-2-9b](https://huggingface.co/kerasformers/gemma-2-9b) | | `gemma-2-9b-it` | [kerasformers/gemma-2-9b-it](https://huggingface.co/kerasformers/gemma-2-9b-it) | ## Tips - Set `KERAS_BACKEND` **before** importing Keras / kerasformers. - Loads in **bfloat16** by default. Pass `load_dtype="float32"` for full precision, or `quantization="int8"` to shrink further. - See the [Gemma 2 docs](https://imvision12.github.io/KerasFormers/gemma2/). - Community / upstream weights still work via the `hf:` prefix: `Gemma2TextGenerate.from_weights("hf:google/gemma-2-2b")`. ## Special Thanks A huge thank you to the Google Gemma authors for creating and releasing these models. License: Gemma (gated). Accept the license on the upstream Hub card before downloading.