huggingface-gemma-recipes
est un projet open source maintenu officiellement par Hugging Face, conçu pour fournir aux utilisateurs des exemples de code et des tutoriels minimaux liés à la famille de modèles Google Gemma. L'objectif principal de ce projet est d'aider les développeurs à démarrer rapidement avec l'inférence, le fine-tuning et divers cas d'utilisation pratiques des modèles Gemma.
Le projet prend en charge les capacités multimodales des modèles Gemma 3 :
Le projet fournit une interface d'inférence de modèle unifiée, permettant de charger et d'utiliser rapidement les modèles Gemma :
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch
model_id = "google/gemma-3n-e4b-it" # ou google/gemma-3n-e2b-it
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(model_id).to(device)
def model_generation(model, messages):
inputs = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
)
input_len = inputs["input_ids"].shape[-1]
inputs = inputs.to(model.device, dtype=model.dtype)
with torch.inference_mode():
generation = model.generate(**inputs, max_new_tokens=32, disable_compile=False)
generation = generation[:, input_len:]
decoded = processor.batch_decode(generation, skip_special_tokens=True)
print(decoded[0])
# Questions-réponses textuelles
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "What is the capital of France?"}
]
}
]
model_generation(model, messages)
# Transcription vocale
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe the following speech segment in English:"},
{"type": "audio", "audio": "https://huggingface.co/datasets/ariG23498/demo-data/resolve/main/speech.wav"},
]
}
]
model_generation(model, messages)
# Description d'image
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": "https://huggingface.co/datasets/ariG23498/demo-data/resolve/main/airplane.jpg"},
{"type": "text", "text": "Describe this image."}
]
}
]
model_generation(model, messages)
Le projet propose diverses solutions et scripts de fine-tuning :
# Installation des dépendances
$ pip install -U -q -r requirements.txt
# Installation des dépendances principales
$ pip install -U -q transformers timm
# Installation des dépendances complètes (pour le fine-tuning)
$ pip install -U -q -r requirements.txt
huggingface-gemma-recipes/
├── notebooks/ # Tutoriels Jupyter Notebook
│ └── fine_tune_gemma3n_on_t4.ipynb
├── scripts/ # Scripts de fine-tuning
│ ├── ft_gemma3n_image_vt.py
│ ├── ft_gemma3n_audio_vt.py
│ └── ft_gemma3n_image_trl.py
├── requirements.txt # Liste des dépendances
└── README.md # Description du projet
Ce projet, en tant que projet open source maintenu officiellement par Hugging Face, présente les avantages suivants :
huggingface-gemma-recipes
est un projet open source de haute qualité qui fournit une solution complète pour l'utilisation des modèles Gemma. Que ce soit pour les débutants ou les développeurs expérimentés, chacun peut y trouver les ressources et les conseils appropriés. La prise en charge multimodale du projet et ses solutions de fine-tuning flexibles en font l'un des outils importants dans le domaine du développement de l'IA actuel.