Запустите Джемму с обнимающимися трансформерами

Посмотреть на ai.google.dev Запустить в Google Colab Запустить в Kaggle Открыть в Vertex AI Просмотреть исходный код на GitHub

Генерация текста, резюмирование и анализ контента — вот лишь некоторые из задач, которые можно выполнить с помощью открытых моделей Gemma. В этом руководстве показано, как начать работу с Gemma с помощью Hugging Face Transformers, используя как текстовый, так и графический ввод для генерации текстового контента. Библиотека Transformers Python предоставляет API для доступа к предварительно обученным генеративным моделям ИИ, включая Gemma. Для получения дополнительной информации см. документацию Transformers .

Настраивать

Прежде чем приступить к изучению этого урока, выполните следующие шаги:

  • Получите доступ к Gemma, войдя в Hugging Face и выбрав «Подтвердить лицензию» для модели Gemma.
  • Выберите среду выполнения Colab с достаточными ресурсами для запуска модели Gemma нужного вам размера. Узнать больше .
  • Создайте токен доступа Hugging Face и добавьте его в свою среду Colab.

Настроить токен доступа

Добавьте свой токен доступа в Colab, чтобы разрешить загрузку моделей Gemma с веб-сайта Hugging Face. Используйте функцию Colab Secrets , чтобы безопасно сохранить свой токен, не добавляя его в рабочий код.

Чтобы добавить свой токен доступа Hugging Face в качестве секрета:

  1. Откройте вкладку «Секреты», выбрав значок ключа в левой части интерфейса, или выберите «Инструменты» > «Панель команд» , введите secrets и нажмите Enter .
  2. Выберите Добавить новый секрет , чтобы добавить новую запись секрета.
  3. В поле Имя введите HF_TOKEN .
  4. В поле «Значение» введите текст вашего токена доступа Hugging Face.
  5. В поле «Доступ к блокноту» выберите переключатель, чтобы включить доступ.

После того, как вы ввели свой токен доступа как HF_TOKEN и значение, вы можете получить к нему доступ и установить его в среде блокнота Colab, используя следующий код:

from google.colab import userdata
from huggingface_hub import login

# Login into Hugging Face Hub
hf_token = userdata.get('HF_TOKEN') # If you are running inside a Google Colab
login(hf_token)

Установить пакеты Python

Установите библиотеки Hugging Face, необходимые для запуска модели Gemma и выполнения запросов.

# Install Pytorch & other libraries
%pip install "torch>=2.4.0"

# Install a transformers version that supports Gemma 3 (>= 4.51.3)
%pip install "transformers>=4.51.3"

Генерировать текст из текста

Запрос модели Gemma с текстом для получения текстового ответа — это самый простой способ использования Gemma, который работает практически со всеми вариантами Gemma. В этом разделе показано, как использовать библиотеку Hugging Face Transformers, загружать и настраивать модель Gemma для генерации текста в текст.

Модель нагрузки

Используйте библиотеки torch и transformers для создания экземпляра класса pipeline выполнения модели с Gemma. При использовании модели для генерации выходных данных или следования указаниям выберите модель с настройкой инструкций (IT), которая обычно it в строке идентификатора модели. Используя объект pipeline , вы указываете вариант Gemma, который хотите использовать, тип задачи, которую хотите выполнить, в частности "text-generation" для генерации текста в текст, как показано в следующем примере кода:

import torch
from transformers import pipeline

pipeline = pipeline(
    task="text-generation",
    model="google/gemma-3-4b-it",
    device=0, # "cuda" for Colab, "msu" for iOS devices
    torch_dtype=torch.bfloat16
)

Gemma поддерживает только несколько настроек task для генерации. Для получения дополнительной информации о доступных настройках task см. документацию Hugging Face Pipelines task() . Используйте тип данных torch torch.bfloat16 , чтобы уменьшить точность модели и необходимые вычислительные ресурсы, не влияя существенно на качество вывода модели. Для настройки device можно использовать "cuda" для Colab или "msu" для устройств iOS или просто установить значение 0 (ноль), чтобы указать первый графический процессор в вашей системе. Для получения дополнительной информации об использовании класса Pipeline см. документацию Hugging Face Pipelines .

Запустить генерацию текста

После загрузки и настройки модели Gemma в объекте pipeline вы можете отправлять запросы в модель. Следующий пример кода показывает базовый запрос с использованием параметра text_inputs :

pipeline(text_inputs="roses are red")
[{'generated_text': 'roses are red, violets are blue, \ni love you more than you ever knew.\n\n**Explanation'}]

Используйте шаблон подсказки

При создании контента с более сложными подсказками используйте шаблон подсказки для структурирования вашего запроса. Шаблон подсказки позволяет вам указать ввод из определенных ролей, таких как user или model , и является обязательным форматом для управления многооборотными взаимодействиями чата с моделями Gemma. Следующий пример кода показывает, как создать шаблон подсказки для Gemma:

messages = [
    [
        {
            "role": "system",
            "content": [{"type": "text", "text": "You are a helpful assistant."},]
        },
        {
            "role": "user",
            "content": [{"type": "text", "text": "Roses are red..."},]
        },
    ],
]

pipeline(messages, max_new_tokens=50)

Генерация текста из данных изображения

Начиная с Gemma 3, для моделей размером 4B и выше вы можете использовать данные изображения как часть вашего приглашения. В этом разделе показано, как использовать библиотеку Transformers для загрузки и настройки модели Gemma для использования данных изображения и текстового ввода для генерации текстового вывода.

Модель нагрузки

При загрузке модели Gemma для использования с данными изображений вы настраиваете экземпляр pipeline Transformer специально для использования с изображениями. В частности, вы должны выбрать конфигурацию конвейера, которая может обрабатывать визуальные данные, установив параметр task на "image-text-to-text" , как показано в следующем примере кода:

import torch
from transformers import pipeline

pipeline = pipeline(
    task="image-text-to-text", # required for image input
    model="google/gemma-3-4b-it",
    device=0,
    torch_dtype=torch.bfloat16
)

Запустить генерацию текста

После того, как вы настроили модель Gemma для обработки ввода изображений с помощью экземпляра pipeline , вы можете отправлять подсказки с изображениями в модель. Используйте токен <start_of_image> , чтобы добавить изображение в текст подсказки. Следующий пример кода показывает базовый запрос с использованием параметра pipeline :

pipeline(
    "https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg",
    text="<start_of_image> What is shown in this image?"
)
[{'input_text': '<start_of_image> What is shown in this image?',
  'generated_text': '<start_of_image> What is shown in this image?\n\nThis image showcases a traditional Indian Thali. A Thali is a platter that contains a variety'}]

Используйте шаблон подсказки

При создании контента с более сложными подсказками используйте шаблон подсказки для структурирования вашего запроса. Шаблон подсказки позволяет вам указать ввод из определенных ролей, таких как user или model , и является обязательным форматом для управления многооборотными взаимодействиями чата с моделями Gemma. Следующий пример кода показывает, как создать шаблон подсказки для Gemma:

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg"},
            {"type": "text", "text": "What is shown in this image?"},
        ]
    },
    {
        "role": "assistant",
        "content": [
            {"type": "text", "text": "This image shows"},
        ],
    },
]

pipeline(text=messages, max_new_tokens=50, return_full_text=False)

Вы можете включить несколько изображений в свой запрос, включив дополнительные записи "type": "image", в список content .

Генерация текста из аудиоданных

С Gemma 3n вы можете использовать аудиоданные как часть вашего приглашения. В этом разделе показано, как использовать библиотеку Transformers для загрузки и настройки модели Gemma для использования аудиоданных и текстового ввода для генерации текстового вывода.

Установить пакеты Python

Для использования аудиовхода с Gemma требуется последняя версия библиотек Transformers. Установите библиотеки Hugging Face для запуска модели Gemma и создания запросов с аудиоданными, как показано ниже.

# Install Pytorch & other libraries
%pip install "torch>=2.4.0"

# Install a transformers version that supports Gemma 3n (>= 4.53)
%pip install "transformers>=4.53.0"

Модель нагрузки

При загрузке модели Gemma для использования с аудиоданными вы настраиваете экземпляр Transformer специально для использования с аудиоданными. В частности, вы должны определить processor и объект model с помощью классов AutoProcessor и AutoModelForImageTextToText , как показано в следующем примере кода:

import torch
from transformers import AutoProcessor, AutoModelForImageTextToText

GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"

processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
            GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")

Используйте шаблон подсказки

При создании контента с аудио используйте шаблон приглашения для структурирования вашего запроса. Шаблон приглашения позволяет вам указать ввод от определенных ролей, таких как user или model , и является обязательным форматом для управления многооборотными взаимодействиями чата с моделями Gemma. Следующий пример кода показывает, как создать шаблон приглашения для Gemma с вводом аудиоданных:

messages = [
    {
        "role": "user",
        "content": [
            {"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
            {"type": "text", "text": "Transcribe this audio and complete the statement"},
        ]
    }
]

Вы можете включить несколько изображений в ваш запрос, включив дополнительные записи "type": "audio", в список content . Если вы делаете запрос с аудиоданными, но без шаблона, используйте синтаксис <audio_soft_token> в тексте вашего запроса.

Запустить генерацию текста

После того, как вы настроили модель Gemma с processor и объектом model и создали приглашение с аудиоданными с помощью шаблона приглашения, вы можете отправить приглашение для генерации выходных данных. Следующий пример кода показывает запрос с использованием шаблона чата, генерацию выходных данных, декодирование ответа:

input_ids = processor.apply_chat_template(
        messages,
        add_generation_prompt=True,
        tokenize=True, return_dict=True,
        return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)

# Generate output from the model
outputs = model.generate(**input_ids, max_new_tokens=128)

# decode and print the output as text
text = processor.batch_decode(
    outputs,
    skip_special_tokens=False,
    clean_up_tokenization_spaces=False
)
print(text[0])

Следующие шаги

Создавайте и исследуйте больше с помощью моделей Gemma: