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

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

Создание текста, суммирования и анализа контента - это лишь некоторые из задач, которые вы можете выполнить с моделями Gemma Open. В этом учебном пособии показано, как начать работу Gemma, используя обнимающие трансформаторы лица, используя как текст, так и ввод изображения для генерации текстового содержимого. Библиотека Transformers Python предоставляет API для доступа к предварительно обученным генеративным моделям ИИ, включая Джемму. Для получения дополнительной информации см. Документацию 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, который работает практически со всеми её модификациями. В этом разделе показано, как использовать библиотеку Hugging Face Transformers для загрузки и настройки модели Gemma для генерации текста в текст.

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

Используйте библиотеки torch and transformers , чтобы создать экземпляр класса pipeline выполнения модели с Gemma. При использовании модели для генерации вывода или следующих направлений выберите модель Trind Funed (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
)

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

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

После загрузки и настройки модели 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: