huggingface-gemma-recipes
é um projeto de código aberto mantido oficialmente pela Hugging Face, com o objetivo de fornecer aos usuários exemplos de código e tutoriais minimizados relacionados aos modelos da família Google Gemma. O objetivo principal do projeto é ajudar os desenvolvedores a começar rapidamente com a inferência, ajuste fino e vários cenários de aplicação prática dos modelos Gemma.
O projeto suporta as capacidades multimodais dos modelos Gemma 3:
O projeto fornece uma interface de inferência de modelo unificada, suportando o carregamento e uso rápidos de modelos 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])
# Perguntas e respostas de texto
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "What is the capital of France?"}
]
}
]
model_generation(model, messages)
# Transcrição de voz para 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)
# Descrição de imagem
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)
O projeto fornece vários esquemas e scripts de ajuste fino:
# Instalar dependências
$ pip install -U -q -r requirements.txt
# Instalar dependências principais
$ pip install -U -q transformers timm
# Instalar dependências completas (para ajuste fino)
$ pip install -U -q -r requirements.txt
huggingface-gemma-recipes/
├── notebooks/ # Tutoriais em 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 dependências
└── README.md # Descrição do projeto
Este projeto, como um projeto de código aberto mantido oficialmente pela Hugging Face, tem as seguintes vantagens:
huggingface-gemma-recipes
é um projeto de código aberto de alta qualidade, fornecendo uma solução completa para o uso de modelos Gemma. Tanto iniciantes quanto desenvolvedores experientes podem encontrar recursos e orientação adequados. O suporte multimodal do projeto e os esquemas de ajuste fino flexíveis o tornam uma ferramenta importante no campo de desenvolvimento de IA atual.