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

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

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

Настраивать

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

  • Чтобы получить доступ к Джемме, войдите в Hugging Face и выберите пункт «Подтвердить лицензию для модели Джеммы».
  • Выберите среду выполнения 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 см. в документации по функции task() в Hugging Face Pipelines. Используйте тип данных 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)

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

Сгенерировать текст из аудиоданных

В 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"},
        ]
    }
]

В запрос можно включить несколько аудиофайлов, добавив в список content дополнительные записи "type": "audio", . Если вы используете аудиоданные, но без шаблона, используйте синтаксис <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: