|
|
|
|
|
Gerar texto, resumir e analisar conteúdo são apenas algumas das tarefas que você pode realizar com os modelos abertos do Gemma. Neste tutorial, mostramos como começar a executar a Gemma usando o Hugging Face Transformers com entradas de texto e imagem para gerar conteúdo de texto. A biblioteca Python Transformers oferece uma API para acessar modelos de IA generativa pré-treinados, incluindo o Gemma. Para mais informações, consulte a documentação do Transformers (em inglês).
Configuração
Antes de iniciar este tutorial, conclua as seguintes etapas:
- Faça login no Hugging Face e selecione Confirmar licença para um modelo do Gemma.
- Selecione um ambiente de execução do Colab com recursos suficientes para executar o tamanho do modelo Gemma que você quer usar. Saiba mais.
- Gere um token de acesso do Hugging Face e adicione-o ao ambiente do Colab.
Configurar token de acesso
Adicione seu token de acesso ao Colab para permitir o download de modelos do Gemma no site do Hugging Face. Use o recurso Secrets do Colab para salvar seu token com segurança sem adicioná-lo ao código em uso.
Para adicionar seu token de acesso do Hugging Face como um secret:
- Abra a guia "Secrets" selecionando o ícone de chave no lado esquerdo da interface ou selecione Ferramentas > Paleta de comandos, digite
secrets
e pressione Enter. - Selecione Adicionar novo secret para adicionar uma nova entrada de secret.
- No campo Nome, use
HF_TOKEN
. - No campo Valor, insira o texto do seu token de acesso do Hugging Face.
- No campo Acesso ao notebook, selecione a chave para ativar o acesso.
Depois de inserir o token de acesso como HF_TOKEN
e valor, você pode acessar e definir no ambiente do notebook do Colab usando o seguinte código:
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)
Instalar pacotes Python
Instale as bibliotecas do Hugging Face necessárias para executar o modelo Gemma e fazer solicitações.
# 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"
Gerar texto com base em texto
Pedir a um modelo Gemma para gerar uma resposta de texto é a maneira mais simples de usar o Gemma e funciona com quase todas as variantes. Esta seção mostra como usar a biblioteca Transformers do Hugging Face para carregar e configurar um modelo Gemma para geração de texto.
Carregar modelo
Use as bibliotecas torch
e transformers
para criar uma instância de uma classe pipeline
de execução de modelo com a Gemma. Ao usar um modelo para gerar saída ou seguir instruções, selecione um modelo ajustado por instruções (IT, na sigla em inglês), que geralmente tem it
na string de ID do modelo. Usando o objeto pipeline
, especifique a variante da Gemma que você quer usar, o tipo de tarefa que quer realizar, especificamente "text-generation"
para geração de texto para texto, conforme mostrado no exemplo de código a seguir:
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
)
O Gemma só oferece suporte a algumas configurações de task
para geração. Para mais informações sobre as configurações de task
disponíveis, consulte a documentação task() do Hugging Face Pipelines. Use o tipo de dados do PyTorch torch.bfloat16
para reduzir a precisão do modelo e os recursos de computação necessários sem afetar significativamente a qualidade da saída do modelo. Para a configuração device
, use "cuda"
para o Colab, "msu"
para dispositivos iOS ou defina como 0
(zero) para especificar a primeira GPU no seu sistema. Para mais informações sobre como usar a classe "Pipeline", consulte a documentação de Pipelines do Hugging Face.
Executar a geração de texto
Depois de carregar e configurar o modelo do Gemma em um objeto pipeline
, é possível enviar comandos para ele. O exemplo de código a seguir mostra uma solicitação básica usando o parâmetro 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'}]
Usar um modelo de comando
Ao gerar conteúdo com comandos mais complexos, use um modelo de comando para estruturar sua solicitação. Um modelo de comando permite especificar entradas de papéis específicos, como user
ou model
, e é um formato obrigatório para gerenciar interações de chat em várias etapas com modelos da Gemma. O exemplo de código a seguir mostra como criar um modelo de comando para a 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)
Gerar texto com base em dados de imagem
A partir da Gemma 3, para tamanhos de modelo de 4B e superiores, é possível usar dados de imagem como parte do comando. Esta seção mostra como usar a biblioteca Transformers para carregar e configurar um modelo Gemma para usar dados de imagem e entrada de texto para gerar saída de texto.
Carregar modelo
Ao carregar um modelo Gemma para uso com dados de imagem, você configura a instância do Transformer pipeline
especificamente para uso com imagens. Em particular, selecione uma configuração de pipeline que possa processar dados visuais definindo o parâmetro task
como "image-text-to-text"
, conforme mostrado no exemplo de código a seguir:
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
)
Executar a geração de texto
Depois de configurar o modelo Gemma para processar entradas de imagem com uma instância pipeline
, é possível enviar comandos com imagens para o modelo. Use o token <start_of_image>
para adicionar a imagem ao texto do comando. O exemplo de código a seguir mostra uma solicitação básica usando o parâmetro 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'}]
Usar um modelo de comando
Ao gerar conteúdo com comandos mais complexos, use um modelo de comando para estruturar sua solicitação. Um modelo de comando permite especificar entradas de papéis específicos, como user
ou model
, e é um formato obrigatório para gerenciar interações de chat em várias etapas com modelos da Gemma. O exemplo de código a seguir mostra como criar um modelo de comando para a 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)
É possível incluir várias imagens no comando adicionando mais entradas "type": "image",
à lista content
.
Gerar texto com base em dados de áudio
Com o Gemma 3n, você pode usar dados de áudio como parte do seu comando. Esta seção mostra como usar a biblioteca Transformers para carregar e configurar um modelo Gemma para usar dados de áudio e entrada de texto para gerar saída de texto.
Instalar pacotes Python
É necessário ter uma versão recente das bibliotecas Transformers para usar a entrada de áudio com a Gemma. Instale as bibliotecas do Hugging Face para executar o modelo Gemma e fazer solicitações com dados de áudio, conforme mostrado abaixo.
# 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"
Carregar modelo
Ao carregar um modelo Gemma para uso com dados de áudio, você configura a instância do Transformer especificamente para uso com dados de áudio. Em particular, você precisa definir um objeto processor
e model
usando as classes AutoProcessor
e AutoModelForImageTextToText
, conforme mostrado no exemplo de código a seguir:
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")
Usar um modelo de comando
Ao gerar conteúdo com áudio, use um modelo de comando para estruturar sua solicitação. Um modelo de comando permite especificar entradas de papéis específicos, como user
ou model
, e é um formato obrigatório para gerenciar interações de chat em várias etapas com modelos da Gemma. O exemplo de código a seguir mostra como criar um modelo de solicitação para a Gemma com entrada de dados de áudio:
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"},
]
}
]
É possível incluir vários arquivos de áudio no comando adicionando mais entradas "type": "audio",
à lista content
. Se você estiver fazendo uma solicitação com dados de áudio, mas sem um modelo, use a sintaxe <audio_soft_token>
no texto do comando.
Executar a geração de texto
Depois de configurar o modelo Gemma com um objeto processor
e model
e criar um comando com dados de áudio usando um modelo de comando, você pode enviar o comando para gerar a saída. O exemplo de código a seguir mostra uma solicitação usando um modelo de chat, geração de saída e decodificação da resposta:
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])
Próximas etapas
Crie e explore mais com os modelos do Gemma:
- Ajustar o Gemma para tarefas de texto usando o Hugging Face Transformers
- Ajustar o Gemma para tarefas de visão usando o Hugging Face Transformers
- Realizar ajuste de detalhes e inferência distribuídos em modelos do Gemma
- Usar modelos abertos do Gemma com a Vertex AI
- Ajustar o Gemma usando o Keras e implantar na Vertex AI