--- pipeline_tag: text-generation license: gemma base_model: google/gemma-2b-it library_name: zeromodels extra_gated_heading: Access Gemma on Hugging Face language: - en tags: - keras - zeromodels - gemma - gemma-2b - text-generation - arxiv:2403.08295 - pytorch - jax - tf --- *See [our collection](https://huggingface.co/zeromodels) for all Gemma sizes and variants.* # Run Gemma with Keras 3: JAX, PyTorch, or TensorFlow [![GitHub](https://img.shields.io/badge/GitHub-ZeroModels-181717?logo=github)](https://github.com/IMvision12/ZeroModels) [![Docs](https://img.shields.io/badge/Docs-Gemma-1f6feb)](https://imvision12.github.io/ZeroModels/gemma/) [![HuggingFace](https://img.shields.io/badge/HuggingFace-Gemma-ffd21e?logo=huggingface&logoColor=black)](https://huggingface.co/zeromodels) # zeromodels/gemma-2b-it Pure-**Keras 3** conversion of [`google/gemma-2b-it`](https://huggingface.co/google/gemma-2b-it) for [zeromodels](https://github.com/IMvision12/ZeroModels). One implementation runs unmodified on **TensorFlow / Torch / JAX**. This is the instruction-tuned checkpoint, served here as **text -> text** via `GemmaTextGenerate`; weights are stored in **bfloat16**. For model details, license, and usage terms, see Google's [model card](https://huggingface.co/google/gemma-2b-it). ## ✨ Quick start ```python import os os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow" from zeromodels.models.gemma import GemmaTextGenerate, GemmaTokenizer model = GemmaTextGenerate.from_weights("zeromodels/gemma-2b-it") tokenizer = GemmaTokenizer.from_weights("zeromodels/gemma-2b-it") 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 variant the same way with `from_weights("zeromodels/")`: | Variant | Hub | | --- | --- | | `gemma-1.1-2b-it` | [zeromodels/gemma-1.1-2b-it](https://huggingface.co/zeromodels/gemma-1.1-2b-it) | | `gemma-1.1-7b-it` | [zeromodels/gemma-1.1-7b-it](https://huggingface.co/zeromodels/gemma-1.1-7b-it) | | `gemma-2b` | [zeromodels/gemma-2b](https://huggingface.co/zeromodels/gemma-2b) | | `gemma-2b-it` | [zeromodels/gemma-2b-it](https://huggingface.co/zeromodels/gemma-2b-it) | | `gemma-7b` | [zeromodels/gemma-7b](https://huggingface.co/zeromodels/gemma-7b) | | `gemma-7b-it` | [zeromodels/gemma-7b-it](https://huggingface.co/zeromodels/gemma-7b-it) | ## Tips - Set `KERAS_BACKEND` **before** importing Keras / zeromodels. - Loads in **bfloat16** by default. Pass `load_dtype="float32"` for full precision, or `quantization="int8"` to shrink further. - See the [Gemma docs](https://imvision12.github.io/ZeroModels/gemma/). - Community / upstream weights still work via the `hf:` prefix: `GemmaTextGenerate.from_weights("hf:google/gemma-2b-it")`. ## 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.