O Gemma 3, o mais recente modelo de linguagem grande (LLM) de código aberto do Google, está redefinindo os limites da inteligência artificial com suas capacidades multimodais, contexto estendido e suporte multilíngue. Diferente de seus antecessores, o Gemma 3 processa texto e imagens, tornando-o versátil para responder perguntas, resumir documentos e analisar imagens. Com uma janela de contexto de 128K (para modelos 4B+) e suporte para mais de 140 idiomas, ele abre novas possibilidades para raciocínio avançado e geração de conteúdo. Disponível em tamanhos de 1B a 27B parâmetros, oferece um equilíbrio entre desempenho e eficiência, acessível no Ollama e Transformers, facilitando o início imediato em máquinas locais ou na nuvem.
Gemma-3: Desempenho e Benchmarks
O Gemma-3 se destaca no cenário da inteligência artificial com seu desempenho notável em diversas métricas. A capacidade de processar tanto texto quanto imagens permite que ele execute tarefas complexas como análise de documentos e identificação de padrões visuais com precisão. A seguir, veja os benchmarks:
Desempenho em Métricas
O modelo se sobressai em diversas áreas, desde a compreensão da linguagem natural até a geração de código. Sua capacidade de lidar com diferentes tarefas o torna uma ferramenta valiosa para desenvolvedores e pesquisadores. Veja mais benchmarks na imagem abaixo:
Pré-requisitos para Instalar Gemma 3 localmente
Para garantir que o Gemma-3 funcione sem problemas, é importante verificar se o seu sistema atende aos requisitos mínimos. Isso inclui espaço em disco suficiente e uma configuração de GPU adequada. Confira os requisitos:
- Espaço em disco: 100 GB (pode variar entre os modelos).
- Jupyter Notebook ou Nvidia Cuda instalados.
- Configuração de GPU dependendo do número de parâmetros:
Recomenda-se salvar esta tabela para facilitar a consulta dos pré-requisitos de GPU antes de usar um modelo.
Passo a Passo para Instalar o Gemma-3 Localmente ou na Nuvem
Para este tutorial, usaremos uma máquina virtual com GPU da NodeShift, que oferece máquinas virtuais de alto desempenho a um custo acessível e em conformidade com GDPR, SOC2 e ISO27001. Além disso, sua interface é intuitiva, facilitando a implementação na nuvem. No entanto, sinta-se à vontade para usar qualquer provedor de nuvem e seguir os mesmos passos.
Passo 1: Criando uma Conta na NodeShift
Acesse app.nodeshift.com e crie uma conta preenchendo os dados básicos ou usando sua conta Google/GitHub.
Se você já tem uma conta, faça o login diretamente no seu painel.
Passo 2: Criando um Nó GPU
Após acessar sua conta, você verá um painel. Siga estes passos:
- Navegue até o menu no lado esquerdo.
- Clique na opção GPU Nodes.
- Clique em Start para começar a criar seu primeiro nó GPU.
Esses nós GPU são máquinas virtuais da NodeShift, altamente personalizáveis e que permitem controlar configurações de GPUs que variam de H100s a A100s, CPUs, RAM e armazenamento, de acordo com suas necessidades.
Passo 3: Selecionando a Configuração para GPU (Modelo, Região, Armazenamento)
- Para este tutorial, usaremos a GPU RTX 4090, mas você pode escolher qualquer GPU conforme os “Pré-requisitos”.
- Da mesma forma, optaremos por 700GB de armazenamento ajustando a barra. Você também pode selecionar a região onde deseja que sua GPU resida.
Passo 4: Escolhendo a Configuração da GPU e Método de Autenticação
- Após selecionar as opções de configuração, você verá as VMs disponíveis em sua região e de acordo com sua configuração. No nosso caso, escolheremos um nó GPU 2x RTX 4090 com 64 vCPUs/129GB RAM/700 GB SSD.
- Em seguida, você precisará selecionar um método de autenticação. Estão disponíveis duas opções: Senha e Chave SSH. Recomenda-se usar chaves SSH, pois são mais seguras. Para criar uma, consulte a documentação oficial.
Passo 5: Escolhendo uma Imagem
O passo final é escolher uma imagem para a VM, que, no nosso caso, é Nvidia Cuda, onde implantaremos e executaremos a inferência do nosso modelo através do Ollama. Se você estiver implementando usando Transformers, escolha a imagem do Jupyter Notebook.
Pronto! Agora você está pronto para implementar o nó. Finalize o resumo da configuração e, se tudo estiver correto, clique em Create para implementar o nó.
Passo 6: Conectando ao Nó de Computação Ativo Usando SSH
- Assim que você criar o nó, ele será implementado em alguns segundos ou um minuto. Uma vez implementado, você verá um status Running em verde, o que significa que nosso nó de computação está pronto para uso!
- Quando sua GPU mostrar esse status, navegue até os três pontos à direita, clique em Connect with SSH e copie os detalhes SSH que aparecem.
Ao copiar os detalhes, siga os passos abaixo para conectar-se à VM GPU em execução via SSH:
- Abra seu terminal, cole o comando SSH e execute-o.
- Em alguns casos, seu terminal pode pedir sua permissão antes de conectar. Digite ‘yes’.
- Uma janela solicitará uma senha. Digite a senha SSH e você deverá estar conectado.
Resultado:
Instalação usando Ollama
Ollama é uma opção amigável para executar rapidamente o Gemma-3 localmente com configuração mínima. É ideal para projetos de pequena escala que não exigem otimização ou escalonamento extensivos.
Antes de iniciar os passos de instalação, sinta-se à vontade para verificar os detalhes da configuração da sua GPU usando o seguinte comando:
nvidia-smi
O primeiro método de instalação será através do Ollama. Para instalar o Gemma-3 com Ollama, siga os passos abaixo:
- Atualize a lista de fontes do pacote ubuntu para as versões mais recentes.
apt update
Resultado:
- Instale as dependências do Ollama para utilizar a GPU.
apt install pciutils lshw
Resultado:
- Instale o Ollama.
curl -fsSL https://ollama.com/install.sh | sh
Resultado:
- Inicie o Ollama.
Após a instalação, iniciaremos o servidor Ollama no terminal atual e faremos o resto das operações em um novo terminal.
ollama serve
Resultado:
Agora que nosso servidor Ollama foi iniciado, vamos instalar o modelo.
- Abra uma nova janela de terminal e execute o comando ollama para verificar se tudo está funcionando e para ver uma lista de comandos Ollama.
Resultado:
- Baixe o modelo Gemma-3 com o seguinte comando.
Aqui estão os comandos para diferentes versões do Gemma-3 disponíveis para instalação através do Ollama.
Gemma-3-1B:
ollama run gemma3:1b
Gemma-3-4B:
ollama run gemma3:4b
Gemma-3-12B:
ollama run gemma3:12b
Gemma-3-27B:
ollama run gemma3:27b
Instalaremos a versão com 27B parâmetros para este tutorial.
Resultado:
O modelo levará algum tempo para terminar de baixar; uma vez concluído, podemos avançar com a inferência do modelo.
- Dê prompts para inferência do modelo.
Uma vez concluído o download, o ollama abrirá automaticamente um console para você digitar e enviar um prompt para o modelo. É aqui que você pode conversar com o modelo. Por exemplo, ele gerou a seguinte resposta (mostrada nas imagens) para o prompt fornecido abaixo:
You are an AI-powered trading analyst specializing in cryptocurrency markets. Your task is to design an autonomous AI agent that can predict market trends, execute trades, and manage risks efficiently. Your response should include:
A strategy: How the AI will analyze crypto market data (on-chain + off-chain).
AI model selection: Which machine learning models (or deep learning architectures) are best suited for price prediction and sentiment analysis?
Technical implementation: Provide a Python code snippet for a simple price prediction model using historical crypto data.
Risk management: How will the AI avoid pitfalls like market manipulation, sudden crashes, and high volatility?
Ethical concerns & limitations: What are the risks of AI-driven trading, and how can they be mitigated?
Resultado:
Instalação usando Transformers
Transformers oferece flexibilidade e controle para ajustar e experimentar o Gemma-3. É a melhor escolha para desenvolvedores e pesquisadores que precisam personalizar modelos para seus casos de uso específicos e experimentar várias configurações de treinamento ou inferência.
Nesta seção, você aprenderá a instalar o modelo usando Transformers. Instalaremos e executaremos o modelo com código Python no Jupyter Notebook.
- Para usar a funcionalidade Jupyter Notebook integrada no seu servidor remoto, siga os mesmos passos (Passo 1—Passo 6) para criar uma nova instância GPU, mas desta vez, selecione a opção Jupyter Notebook em vez de Nvidia Cuda na seção Choose an Image e implemente a GPU.
- Depois que a GPU estiver em execução, clique em Connect with SSH para abrir uma sessão do Jupyter Notebook no seu navegador.
- Abra um Python Notebook.
- Verifique os detalhes da GPU (opcional).
!nvidia-smi
Resultado:
- Instale as dependências para executar o modelo com Transformers.
!pip install torch torchvision torchaudio einops timm pillow
!pip install git+https://github.com/huggingface/[email protected]
!pip install git+https://github.com/huggingface/accelerate
!pip install git+https://github.com/huggingface/diffusers
!pip install huggingface_hub
!pip install sentencepiece bitsandbytes protobuf decord numpy
Resultado:
- Faça login no HuggingFace CLI usando o token de acesso.
(substitua pelo seu token de acesso HF_READ do painel HuggingFace)
!huggingface-cli login --token <YOUR_HF_TOKEN>
Resultado:
- Carregue o modelo usando um pipeline do Transformers.
Para demonstração deste método, estamos baixando o modelo google/gemma-3-27b-it
do HuggingFace. Você pode substituí-lo pelo seu preferido conforme os requisitos.
from transformers import pipeline
import torch
from PIL import Image
pipe = pipeline(
"image-text-to-text",
model="google/gemma-3-27b-it",
device="cuda",
torch_dtype=torch.bfloat16
)
Resultado:
- Execute o modelo com sua imagem e prompt.
Finalmente, testaremos os recursos multimodais do modelo, dando a ele uma instrução junto com a entrada de imagem. Usaremos o seguinte trecho de código para fazer isso:
image = Image.open('./test-image.jpg').convert('RGB')
prompt = "Describe what's in the image in detail"
system_prompt = "You are a helpful assistant."
messages = [
{
"role": "system",
"content": [{"type": "text", "text": system_prompt}]
},
{
"role": "user",
"content": [
{"type": "image", "url": image},
{"type": "text", "text": prompt}
]
}
]
output = pipe(text=messages, max_new_tokens=500)
print(output[0]["generated_text"][-1]["content"])
Resultado:
Relacionado