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

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

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

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

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

# Install Pytorch
%pip install torch

# Install a transformers
%pip install transformers

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

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

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

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

from transformers import pipeline

MODEL_ID = "google/gemma-4-E2B-it"

pipe = pipeline(
    task="any-to-any",
    model=MODEL_ID,
    device_map="auto",
    dtype="auto"
)
config.json: 0.00B [00:00, ?B/s]
model.safetensors:   0%|          | 0.00/10.2G [00:00<?, ?B/s]
Loading weights:   0%|          | 0/2011 [00:00<?, ?it/s]
generation_config.json:   0%|          | 0.00/208 [00:00<?, ?B/s]
processor_config.json: 0.00B [00:00, ?B/s]
chat_template.jinja: 0.00B [00:00, ?B/s]
tokenizer_config.json: 0.00B [00:00, ?B/s]
tokenizer.json:   0%|          | 0.00/32.2M [00:00<?, ?B/s]

Gemma поддерживает лишь несколько параметров task для генерации. Дополнительную информацию о доступных параметрах task см. в документации по функции task() в Hugging Face Pipelines. Дополнительную информацию об использовании класса Pipeline см. в документации по Hugging Face Pipelines .

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

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

pipe(text="<|turn>user\nroses are red<turn|>\n<|turn>model\n")
Both `max_new_tokens` (=256) and `max_length`(=20) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)
[{'input_text': '<|turn>user\nroses are red<turn|>\n<|turn>model\n',
  'generated_text': '<|turn>user\nroses are red<turn|>\n<|turn>model\nThat\'s a classic phrase, often used to highlight a contrast or a truth.\n\n**"Roses are red"** is a very popular, simple, and sweet arrangement.\n\nWhat would you like to do with this phrase? Are you looking for:\n\n1. **More rhymes or phrases?**\n2. **A continuation of a thought?**\n3. **Just appreciating the simplicity?**'}]

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

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

from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
gen_kwargs = dict(generation_config=config)

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

pipe(messages, return_full_text=False, generate_kwargs=gen_kwargs)
[{'input_text': [{'role': 'system',
    'content': [{'type': 'text', 'text': 'You are a helpful assistant.'}]},
   {'role': 'user',
    'content': [{'type': 'text', 'text': 'Roses are red...'}]}],
  'generated_text': 'Roses are red,\nViolets are blue,\nHow lovely to see\nA beautiful view.'}]

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

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

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

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

from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
gen_kwargs = dict(generation_config=config)

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

pipe(text=messages, return_full_text=False, generate_kwargs=gen_kwargs)
[{'input_text': [{'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'}]}],
  'generated_text': " a platter of Indian food, likely a meal or an assortment of dishes.\n\nHere's a breakdown of what is visible:\n\n*   **Flatbread:** There is a large, golden-brown flatbread (possibly naan or roti) dominating the center of the platter.\n*   **Dips/Sides:** There are several small bowls containing various accompaniments:\n    *   A bowl of **yellow/mustard-colored dip** (perhaps a chutney or sauce).\n    *   A bowl of **white creamy dip** (like raita or yogurt sauce).\n    *   A portion of **white rice**.\n    *   Several bowls of **curries or sauces** in different colors:\n        *   An **orange/brown curry**.\n        *   A **deep yellow/orange sauce**.\n        *   A **green sauce** (likely a chutney).\n*   **Garnish/Side Item:** In the upper right corner, there appears to be some darker, textured items, possibly fried pieces or spices.\n*   **Platter:** The food is served on a metal platter.\n\nOverall, it looks like a traditional Indian meal setup featuring bread, rice, and various flavorful sauces/curries."}]

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

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

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

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

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

from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
gen_kwargs = dict(generation_config=config)

messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Transcribe the following speech segment in its original language. Follow these specific instructions for formatting the answer:\n* Only output the transcription, with no newlines.\n* When transcribing numbers, write the digits, i.e. write 1.7 and not one point seven, and write 3 instead of three."},
            {"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
        ]
    }
]

pipe(text=messages, return_full_text=False, generate_kwargs=gen_kwargs)
[{'input_text': [{'role': 'user',
    'content': [{'type': 'text',
      'text': 'Transcribe the following speech segment in its original language. Follow these specific instructions for formatting the answer:\n* Only output the transcription, with no newlines.\n* When transcribing numbers, write the digits, i.e. write 1.7 and not one point seven, and write 3 instead of three.'},
     {'type': 'audio',
      'audio': 'https://ai.google.dev/gemma/docs/audio/roses-are.wav'}]}],
  'generated_text': 'Roses are red, violets are blue.'}]

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

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

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