Gemma est une famille de Large Language Model (LLM) à pondération ouverte de Google DeepMind, basée sur la recherche et la technologie Gemini.
Ce référentiel contient une implémentation d'inférence et des exemples, basés sur Flax et JAX.
Le rapport technique Gemma (v1, v2) détaille les capacités des modèles.
Pour des didacticiels, des implémentations de référence dans d'autres frameworks ML, et plus encore, visitez https://ai.google.dev/gemma.
Pour installer Gemma, vous devez utiliser Python 3.10 ou supérieur.
Installez JAX pour CPU, GPU ou TPU. Suivez les instructions sur le site Web JAX.
Courir
python -m venv gemma-demo . gemma-demo/bin/activate pip install git+https://github.com/google-deepmind/gemma.git
Les points de contrôle des modèles sont disponibles via Kaggle à l'adresse http://kaggle.com/models/google/gemma. Sélectionnez l'une des variantes du modèle Flax , cliquez sur le bouton ⤓ pour télécharger l'archive du modèle, puis extrayez le contenu dans un répertoire local. L'archive contient à la fois les poids du modèle et le tokenizer, par exemple la variante 2b Flax contient :
2b/ # Directory containing model weights tokenizer.model # Tokenizer
Pour exécuter les tests unitaires, installez les dépendances facultatives [test]
(par exemple en utilisant pip install -e .[test]
depuis la racine de l'arborescence des sources), puis :
pytest .
Notez que les tests dans sampler_test.py
sont ignorés par défaut puisqu'aucun tokenizer n'est distribué avec les sources Gemma. Pour exécuter ces tests, téléchargez un tokenizer en suivant les instructions ci-dessus et mettez à jour la constante _VOCAB
dans sampler_test.py
avec le chemin vers tokenizer.model
.
Pour exécuter l'exemple de script d'échantillonnage, transmettez les chemins d'accès au répertoire des poids et au tokenizer :
python examples/sampling.py --path_checkpoint=/path/to/archive/contents/2b/ --path_tokenizer=/path/to/archive/contents/tokenizer.model
Il existe également plusieurs didacticiels sur les notebooks Colab :
colabs/sampling_tutorial.ipynb
contient un notebook Colab avec un exemple d'échantillonnage.
colabs/fine_tuning_tutorial.ipynb
contient un Colab avec un tutoriel de base sur la façon d'affiner Gemma pour une tâche, telle que la traduction de l'anglais vers le français.
colabs/gsm8k_eval.ipynb
est un Colab avec une implémentation d'évaluation GSM8K de référence.
Pour exécuter ces notebooks, vous devrez télécharger une copie locale des poids et du tokenizer (voir ci-dessus), et mettre à jour les variables ckpt_path
et vocab_path
avec les chemins correspondants.
Gemma peut fonctionner sur un CPU, un GPU et un TPU. Pour le GPU, nous recommandons 8 Go+ de RAM sur GPU pour le point de contrôle 2B et 24 Go+ de RAM sur GPU pour le point de contrôle 7B.
Nous sommes ouverts aux rapports de bogues, aux demandes d'extraction (PR) et à d'autres contributions. Veuillez consulter CONTRIBUTING.md pour plus de détails sur les PR.
Copyright 2024 DeepMind Technologies Limitée
Ce code est sous licence Apache, version 2.0 (la « Licence ») ; vous ne pouvez pas utiliser ce fichier sauf en conformité avec la licence. Vous pouvez obtenir une copie de la licence sur http://www.apache.org/licenses/LICENSE-2.0.
Sauf disposition contraire de la loi applicable ou accord écrit, le logiciel distribué sous la licence est distribué TEL QUEL, SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite. Consultez la licence pour connaître la langue spécifique régissant les autorisations et les limitations en vertu de la licence.
Ce n'est pas un produit Google officiel.