Home
Login

Hugging Face官方的Gemma模型快速入门教程库,提供推理、微调等多种实用脚本和笔记本

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

Hugging Face Gemma Recipes 项目详细介绍

项目概述

huggingface-gemma-recipes 是 Hugging Face 官方维护的一个开源项目,旨在为用户提供与 Google Gemma 系列模型相关的最小化示例代码和教程。该项目的核心目标是帮助开发者快速上手 Gemma 模型的推理、微调和各种实际应用场景。

项目特色

🚀 快速入门

  • 提供最简化的代码示例,降低学习门槛
  • 支持多种模态的输入处理(文本、图像、音频)
  • 集成了最新的 Transformers 库功能

🎯 多模态支持

该项目支持 Gemma 3 系列模型的多模态能力:

  • 纯文本处理:传统的文本生成和问答
  • 图像理解:图像描述、视觉问答
  • 音频处理:语音转文本、音频分析
  • 多模态交互:文本、图像、音频的混合输入

核心功能

1. 模型推理

项目提供了统一的模型推理接口,支持快速加载和使用 Gemma 模型:

from transformers import AutoProcessor, AutoModelForImageTextToText
import torch

model_id = "google/gemma-3n-e4b-it"  # 或 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. 使用示例

纯文本处理

# 文本问答
messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "What is the capital of France?"}
        ]
    }
]
model_generation(model, messages)

音频处理

# 语音转文本
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)

图像理解

# 图像描述
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. 模型微调

项目提供了多种微调方案和脚本:

微调资源

  • [Fine tuning Gemma 3n on T4]: 专门针对 T4 GPU 的微调教程
  • [Fine tuning Gemma 3n on images]: 图像理解任务的微调脚本
  • [Fine tuning Gemma 3n on audio]: 音频处理任务的微调脚本
  • [Fine tuning Gemma 3n on images using TRL]: 基于 TRL 库的图像微调方案

微调环境配置

# 安装依赖
$ pip install -U -q -r requirements.txt

安装与使用

系统要求

  • Python 3.8+
  • PyTorch 2.0+
  • 支持 CUDA 的 GPU(推荐)

快速安装

# 安装核心依赖
$ pip install -U -q transformers timm

# 安装完整依赖(用于微调)
$ pip install -U -q -r requirements.txt

基本使用流程

  1. 克隆项目仓库
  2. 安装依赖包
  3. 选择合适的 Gemma 模型
  4. 根据需求选择推理或微调脚本
  5. 执行相应的代码

项目结构

huggingface-gemma-recipes/
├── notebooks/                 # Jupyter 笔记本教程
│   └── fine_tune_gemma3n_on_t4.ipynb
├── scripts/                   # 微调脚本
│   ├── ft_gemma3n_image_vt.py
│   ├── ft_gemma3n_audio_vt.py
│   └── ft_gemma3n_image_trl.py
├── requirements.txt           # 依赖列表
└── README.md                 # 项目说明

技术优势

1. 易用性

  • 最小化的代码示例,快速上手
  • 统一的接口设计,降低学习成本
  • 完整的文档和示例

2. 灵活性

  • 支持多种模态的输入处理
  • 提供多种微调策略
  • 兼容不同的硬件配置

3. 实用性

  • 基于官方 Transformers 库
  • 集成最新的模型优化技术
  • 提供生产级的代码质量

适用场景

研究与开发

  • 多模态AI研究
  • 模型性能评估
  • 新应用场景探索

商业应用

  • 智能客服系统
  • 内容创作工具
  • 多媒体分析平台

教育培训

  • AI课程教学
  • 模型微调实践
  • 技术概念验证

社区与支持

该项目作为 Hugging Face 官方维护的开源项目,具有以下优势:

  • 活跃的社区支持
  • 定期的更新维护
  • 与最新模型版本的同步
  • 丰富的文档和示例

总结

huggingface-gemma-recipes 是一个高质量的开源项目,为 Gemma 模型的使用提供了完整的解决方案。无论是初学者还是有经验的开发者,都能从中找到适合的资源和指导。项目的多模态支持和灵活的微调方案使其成为当前 AI 开发领域的重要工具之一。

Star History Chart