| | Запустить в Google Colab | | | Посмотреть исходный код на 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 в качестве секретного ключа:
- Откройте вкладку «Секреты», выбрав значок ключа в левой части интерфейса, или выберите «Инструменты» > «Палитра команд» , введите
secretsи нажмите Enter . - Выберите «Добавить новый секрет» , чтобы добавить новую запись секрета.
- В поле «Имя» введите
HF_TOKEN. - В поле «Значение» введите текст вашего токена доступа Hugging Face.
- В поле «Доступ к блокноту» выберите переключатель, чтобы включить доступ.
После ввода токена доступа в формате 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:
- Доработайте Gemma для текстовых задач с помощью Hugging Face Transformers.
- Настройте Gemma для решения задач, требующих улучшения зрения, с помощью трансформеров Hugging Face Transformers.
- Выполняйте распределенную тонкую настройку и вывод результатов на моделях Gemma.
- Используйте открытые модели Gemma с Vertex AI.
- Доработайте Gemma с помощью Keras и разверните на Vertex AI.
Запустить в Google Colab
Посмотреть исходный код на GitHub