Home
Login

Repositorio oficial de inicio rápido del modelo Gemma de Hugging Face, que proporciona varios scripts y notebooks prácticos para inferencia, ajuste fino y más.

MITPython 11huggingfacehuggingface-gemma-recipes Last Updated: 2025-06-26

Introducción Detallada al Proyecto Hugging Face Gemma Recipes

Resumen del Proyecto

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.

Características del Proyecto

🚀 Inicio Rápido

  • Proporciona ejemplos de código simplificados para reducir la barrera de entrada.
  • Admite el procesamiento de entrada multimodal (texto, imagen, audio).
  • Integra las últimas funciones de la biblioteca Transformers.

🎯 Soporte Multimodal

Este proyecto admite las capacidades multimodales de la familia de modelos Gemma 3:

  • Procesamiento de texto puro: Generación de texto y preguntas y respuestas tradicionales.
  • Comprensión de imágenes: Descripción de imágenes, preguntas y respuestas visuales.
  • Procesamiento de audio: Transcripción de voz a texto, análisis de audio.
  • Interacción multimodal: Entrada mixta de texto, imagen y audio.

Funcionalidades Principales

1. Inferencia de Modelos

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])

2. Ejemplos de Uso

Procesamiento de Texto Puro

# Preguntas y respuestas de texto
messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "What is the capital of France?"}
        ]
    }
]
model_generation(model, messages)

Procesamiento de Audio

# 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)

Comprensión de Imágenes

# 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)

3. Ajuste Fino de Modelos

El proyecto proporciona varios esquemas y scripts de ajuste fino:

Recursos de Ajuste Fino

  • [Fine tuning Gemma 3n on T4]: Tutorial de ajuste fino específicamente para GPU T4.
  • [Fine tuning Gemma 3n on images]: Script de ajuste fino para tareas de comprensión de imágenes.
  • [Fine tuning Gemma 3n on audio]: Script de ajuste fino para tareas de procesamiento de audio.
  • [Fine tuning Gemma 3n on images using TRL]: Esquema de ajuste fino de imágenes basado en la biblioteca TRL.

Configuración del Entorno de Ajuste Fino

# Instalar dependencias
$ pip install -U -q -r requirements.txt

Instalación y Uso

Requisitos del Sistema

  • Python 3.8+
  • PyTorch 2.0+
  • GPU compatible con CUDA (recomendado)

Instalación Rápida

# Instalar dependencias principales
$ pip install -U -q transformers timm

# Instalar dependencias completas (para ajuste fino)
$ pip install -U -q -r requirements.txt

Flujo de Trabajo Básico

  1. Clonar el repositorio del proyecto.
  2. Instalar los paquetes de dependencia.
  3. Seleccionar el modelo Gemma apropiado.
  4. Seleccionar el script de inferencia o ajuste fino según sea necesario.
  5. Ejecutar el código correspondiente.

Estructura del Proyecto

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

Ventajas Técnicas

1. Facilidad de Uso

  • Ejemplos de código minimizados para un inicio rápido.
  • Diseño de interfaz unificado para reducir los costos de aprendizaje.
  • Documentación y ejemplos completos.

2. Flexibilidad

  • Admite el procesamiento de entrada multimodal.
  • Proporciona múltiples estrategias de ajuste fino.
  • Compatible con diferentes configuraciones de hardware.

3. Practicidad

  • Basado en la biblioteca oficial Transformers.
  • Integra las últimas tecnologías de optimización de modelos.
  • Proporciona calidad de código de nivel de producción.

Escenarios de Aplicación

Investigación y Desarrollo

  • Investigación de IA multimodal.
  • Evaluación del rendimiento del modelo.
  • Exploración de nuevos escenarios de aplicación.

Aplicaciones Comerciales

  • Sistemas inteligentes de atención al cliente.
  • Herramientas de creación de contenido.
  • Plataformas de análisis multimedia.

Educación y Formación

  • Enseñanza de cursos de IA.
  • Práctica de ajuste fino de modelos.
  • Validación de conceptos técnicos.

Comunidad y Soporte

Este proyecto, como proyecto de código abierto mantenido oficialmente por Hugging Face, tiene las siguientes ventajas:

  • Soporte activo de la comunidad.
  • Mantenimiento y actualizaciones periódicas.
  • Sincronización con las últimas versiones del modelo.
  • Amplia documentación y ejemplos.

Resumen

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.

Star History Chart