Open weights large language model (LLM) from Google DeepMind.
Project description
Gemma
Gemma is a family of open-weights Large Language Model (LLM) by Google DeepMind, based on Gemini research and technology.
This repository contains an inference implementation and examples, based on the Flax and JAX.
Learn more about Gemma
- The Gemma technical report details the models' capabilities.
- For tutorials, reference implementations in other ML frameworks, and more, visit https://ai.google.dev/gemma.
Quick start
Installation
-
To install Gemma you need to use Python 3.10 or higher.
-
Install JAX for CPU, GPU or TPU. Follow instructions at the JAX website.
-
Run
python -m venv gemma-demo
. gemma-demo/bin/activate
pip install git+https://github.com/google-deepmind/gemma.git
Downloading the models
The model checkpoints are available through Kaggle at http://kaggle.com/models/google/gemma. Select one of the Flax model variations, click the ⤓ button to download the model archive, then extract the contents to a local directory. The archive contains both the model weights and the tokenizer, for example the 2b Flax variation contains:
2b/ # Directory containing model weights
tokenizer.model # Tokenizer
Running the unit tests
To run the unit tests, install the optional [test]
dependencies (e.g. using
pip install -e .[test]
from the root of the source tree), then:
pytest .
Note that the tests in sampler_test.py
are skipped by default since no
tokenizer is distributed with the Gemma sources. To run these tests, download a
tokenizer following the instructions above, and update the _VOCAB
constant in
sampler_test.py
with the path to tokenizer.model
.
Examples
To run the example sampling script, pass the paths to the weights directory and tokenizer:
python examples/sampling.py -- \
--path_checkpoint=/path/to/archive/contents/2b/ \
--path_tokenizer=/path/to/archive/contents/tokenizer.model
There are also several Colab notebook tutorials:
-
colabs/sampling_tutorial.ipynb
contains a Colab notebook with a sampling example. -
colabs/fine_tuning_tutorial.ipynb
contains a Colab with a basic tutorial on how to fine tune Gemma for a task, such as English to French translation. -
colabs/gsm8k_eval.ipynb
is a Colab with a reference GSM8K eval implementation.
To run these notebooks you will need to download a local copy of the weights and
tokenizer (see above), and update the ckpt_path
and vocab_path
variables
with the corresponding paths.
System Requirements
Gemma can run on a CPU, GPU and TPU. For GPU, we recommend a 8GB+ RAM on GPU for the 2B checkpoint and 24GB+ RAM on GPU for the 7B checkpoint.
Contributing
We are open to bug reports, pull requests (PR), and other contributions. Please see CONTRIBUTING.md for details on PRs.
License
Copyright 2024 DeepMind Technologies Limited
This code is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Disclaimer
This is not an official Google product.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gemma_llm-1.0.0.tar.gz
.
File metadata
- Download URL: gemma_llm-1.0.0.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.6 Linux/6.5.0-18-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79186149b7b0e1bb451f6b386a32d8dc6feff2fb25a623d39359595a4f585461 |
|
MD5 | 5391f49f1688e52c784b27860c1e6885 |
|
BLAKE2b-256 | 483cb92b3ff997cd005ef596d37196609f801e7c20dd7a9ab33c81d05de4122e |
File details
Details for the file gemma_llm-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: gemma_llm-1.0.0-py3-none-any.whl
- Upload date:
- Size: 24.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.6 Linux/6.5.0-18-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98cf39a40698f10ae64e896613dc3e9c81606f535389145178edf2520676d55e |
|
MD5 | c3944a714057cb1f88b5d474586d1619 |
|
BLAKE2b-256 | aaea1daebd7d98317266f285b6749b0e39694693e2512450c9604d539ee0a168 |