--- pipeline_tag: text-generation license: gemma base_model: google/gemma-2-27b library_name: zeromodels extra_gated_heading: Access Gemma on Hugging Face language: - en tags: - keras - zeromodels - gemma2 - gemma - gemma-2-27b - text-generation - arxiv:2408.00118 - pytorch - jax - tf --- *See [our collection](https://huggingface.co/zeromodels) for all Gemma 2 sizes and variants.* # Run Gemma 2 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_2-1f6feb)](https://imvision12.github.io/ZeroModels/gemma2/) [![HuggingFace](https://img.shields.io/badge/HuggingFace-Gemma_2-ffd21e?logo=huggingface&logoColor=black)](https://huggingface.co/zeromodels) # zeromodels/gemma-2-27b Pure-**Keras 3** conversion of [`google/gemma-2-27b`](https://huggingface.co/google/gemma-2-27b) for [zeromodels](https://github.com/IMvision12/ZeroModels). 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-27b). ## ✨ Quick start ```python import os os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow" from zeromodels.models.gemma2 import Gemma2TextGenerate, Gemma2Tokenizer model = Gemma2TextGenerate.from_weights("zeromodels/gemma-2-27b") tokenizer = Gemma2Tokenizer.from_weights("zeromodels/gemma-2-27b") 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("zeromodels/")`: | Variant | Hub | | --- | --- | | `gemma-2-27b` | [zeromodels/gemma-2-27b](https://huggingface.co/zeromodels/gemma-2-27b) | | `gemma-2-27b-it` | [zeromodels/gemma-2-27b-it](https://huggingface.co/zeromodels/gemma-2-27b-it) | | `gemma-2-2b` | [zeromodels/gemma-2-2b](https://huggingface.co/zeromodels/gemma-2-2b) | | `gemma-2-2b-it` | [zeromodels/gemma-2-2b-it](https://huggingface.co/zeromodels/gemma-2-2b-it) | | `gemma-2-9b` | [zeromodels/gemma-2-9b](https://huggingface.co/zeromodels/gemma-2-9b) | | `gemma-2-9b-it` | [zeromodels/gemma-2-9b-it](https://huggingface.co/zeromodels/gemma-2-9b-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 2 docs](https://imvision12.github.io/ZeroModels/gemma2/). - Community / upstream weights still work via the `hf:` prefix: `Gemma2TextGenerate.from_weights("hf:google/gemma-2-27b")`. ## 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.