huggingface-gemma-recipes
es un proyecto de código abierto mantenido oficialmente por Hugging Face, diseñado para proporcionar a los usuarios ejemplos de código y tutoriales minimizados relacionados con la familia de modelos Google Gemma. El objetivo principal del proyecto es ayudar a los desarrolladores a comenzar rápidamente con la inferencia, el ajuste fino y varios escenarios de aplicación práctica de los modelos Gemma.
Este proyecto admite las capacidades multimodales de la familia de modelos Gemma 3:
El proyecto proporciona una interfaz unificada de inferencia de modelos, que admite la carga y el uso rápidos de los modelos Gemma:
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch
model_id = "google/gemma-3n-e4b-it" # o 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])
# Preguntas y respuestas de texto
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "What is the capital of France?"}
]
}
]
model_generation(model, messages)
# Transcripción de voz a texto
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)
# Descripción de imágenes
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)
El proyecto proporciona varios esquemas y scripts de ajuste fino:
# Instalar dependencias
$ pip install -U -q -r requirements.txt
# Instalar dependencias principales
$ pip install -U -q transformers timm
# Instalar dependencias completas (para ajuste fino)
$ pip install -U -q -r requirements.txt
huggingface-gemma-recipes/
├── notebooks/ # Tutoriales en Jupyter Notebook
│ └── fine_tune_gemma3n_on_t4.ipynb
├── scripts/ # Scripts de ajuste fino
│ ├── ft_gemma3n_image_vt.py
│ ├── ft_gemma3n_audio_vt.py
│ └── ft_gemma3n_image_trl.py
├── requirements.txt # Lista de dependencias
└── README.md # Descripción del proyecto
Este proyecto, como proyecto de código abierto mantenido oficialmente por Hugging Face, tiene las siguientes ventajas:
huggingface-gemma-recipes
es un proyecto de código abierto de alta calidad que proporciona una solución completa para el uso de los modelos Gemma. Tanto los principiantes como los desarrolladores experimentados pueden encontrar recursos y orientación adecuados. El soporte multimodal del proyecto y los esquemas de ajuste fino flexibles lo convierten en una herramienta importante en el campo del desarrollo de IA actual.