Estamos vivendo um momento empolgante no mundo da IA. Gigantes como Google, Meta e Twitter estão apostando forte em tornar seus grandes modelos de linguagem (LLMs) open source. Recentemente, o time do Google DeepMind lançou o Gemma — uma família de LLMs leves e de código aberto construída com a mesma pesquisa e tecnologia usadas para criar os modelos Gemini do Google.
Aqui, você vai conhecer os modelos Gemma, como acessá-los usando GPUs e TPUs em nuvem e como treinar o mais recente Gemma 7b-it em um dataset de role-play.
Entendendo o Gemma do Google
Gemma (do latim para “pedra preciosa”) é uma família de modelos abertos, text-to-text e apenas decodificador, desenvolvidos por diferentes equipes do Google, especialmente o Google DeepMind. Inspirado nos modelos Gemini, ele foi projetado para ser leve e compatível com as principais frameworks.
O Google disponibilizou os pesos do modelo em dois tamanhos, Gemma 2B e Gemma 7B, com variantes pré-treinadas e ajustadas por instruções, como Gemma 2B-it e Gemma 7B-it.
Como sabemos, o Gemma compartilha componentes técnicos com o Gemini e entrega performance de ponta para seus tamanhos quando comparado a outros modelos abertos, como o Llama-2 da Meta. Ele superou o Llama-2 em todos os benchmarks de LLM.
O Gemma oferece suporte a uma ampla variedade de ferramentas e sistemas, incluindo ferramentas multiframework como Keras 3.0, PyTorch nativo, JAX e Hugging Face Transformers. Ele também roda em dispositivos populares, como notebook, desktop, IoT, celular e nuvem.
Agora você pode executar inferência e fine-tuning supervisionado (SFT) em Cloud TPUs gratuitas usando sua framework de machine learning favorita, como Keras 3.0.
O Google também apresentou o Responsible Generative AI Toolkit junto com o Gemma para orientar desenvolvedores com ferramentas essenciais e métodos de classificação de segurança, ajudando a criar aplicações de IA mais seguras.
Se você está começando no mundo de IA e LLMs, recomendamos a trilha de habilidades AI Fundamentals. Ela vai te dar base prática sobre tópicos populares como ChatGPT, grandes modelos de linguagem, IA generativa e muito mais.
Como acessar o modelo Gemma do Google
Acessar o Gemma é super simples: você pode começar a usar de graça no HuggingChat e no Poe. Também dá para usar localmente baixando os pesos do modelo no Hugging Face e rodando via GPT4ALL ou LMStudio.
Nesta seção, vamos carregar o modelo Gemma e executar inferência usando GPUs e TPUs gratuitas fornecidas pela plataforma Kaggle.
Executando inferência do Gemma em TPUs
Acesse Keras/Gemma, desça a página, selecione a variante “gemma_instruct_2b_en” e clique em “New Notebook”. Isso vai abrir um Cloud Notebook com o modelo Gemma no diretório de entrada.
No painel da direita, selecione o acelerador “TPU VM v3-8”.
Garanta que todas as bibliotecas Python necessárias estejam instaladas e atualizadas.
Para verificar o número de TPUs disponíveis, você pode usar a biblioteca `jax` e a função `device` para exibir os dispositivos TPU. Temos acesso a 8 TPUs.
Agora vamos habilitar a TPU para o Keras 3 definindo o `jax` como backend do Keras.
import os
os.environ["KERAS_BACKEND"]="jax"Tecnologia
Depois da configuração inicial, acessar o modelo Gemma e gerar a resposta fica bem fácil. Vamos usar a biblioteca `keras_nlp` para carregar o modelo do Kaggle e então enviar o prompt para a função `generate`.
import keras
import keras_nlp
model_name ="/kaggle/input/gemma/keras/gemma_instruct_2b_en/2"
gemma_lm = keras_nlp.models.GemmaCausalLM.from_preset(model_name)
prompt ="Can you share an interesting fact about Leonardo da Vinci?"
gemma_lm.generate(prompt, max_length=100)Tecnologia
Veja o resultado:
"Can you share an interesting fact about Leonardo da Vinci?\n\nSure, here's an interesting fact about Leonardo da Vinci:\n\nLeonardo da Vinci was born in a village called Vinci, Italy, which is now part of the city of Florence."
Agora, vamos gerar respostas usando GPUs e um framework de transformers em vez de Keras.
Acesse google/gemma, desça a página, selecione transformers, escolha a variante “7b-it” e clique em “New Notebook”. Isso vai abrir um Cloud Notebook com a versão correta do modelo Gemma no diretório de entrada.
Observação: você também pode rolar mais para baixo na página e usar a seção de inferência. Ali, dá para testar todos os tipos de variantes do Gemma enviando um prompt e gerando a resposta. É rápido e prático.
No novo notebook, altere o título e depois mude o acelerador para GPT T4 x2.
Instale e atualize todos os pacotes Python necessários.
Não conseguimos carregar o modelo completo Gemma 7b-it nas GPUs do Kaggle por causa da VRAM limitada. Para contornar isso, vamos carregar o modelo usando quantização em 4 bits com o tipo NF4 via BitsAndBytes. Também vamos carregar o tokenizer.
Crie um template simples de prompt com System, User e AI. Pedimos que o modelo gere um código para exibir um padrão de estrelas em Python.
Passe o prompt final pelo tokenizer e depois para o modelo para gerar a predição. Em seguida, vamos decodificar essas predições e converter a resposta em string. Por fim, usamos a função Markdown para exibir no estilo Markdown.
from IPython.display import Markdown, display
system ="You are a skilled software engineer who consistently produces high-quality Python code."
user ="Write a Python code to display text in a star pattern."
prompt = f"System: {system} \n User: {user} \n AI: "
inputs =tokenizer(prompt, return_tensors='pt', padding=True, truncation=True).to("cuda")
outputs = model.generate(**inputs, max_length=500, num_return_sequences=1)
text = tokenizer.decode(outputs[0], skip_special_tokens=True)Markdown(text.split("AI:")[1])Tecnologia
Carregue todos os pacotes que vamos usar para carregar o dataset, o modelo e o tokenizer, além de executar o fine-tuning supervisionado (SFT) e a inferência.
from transformers import(
AutoModelForCausalLM,
AutoTokenizer,
BitsAndBytesConfig,
HfArgumentParser,
TrainingArguments,
pipeline,
logging,)
from peft import(
LoraConfig,
PeftModel,
prepare_model_for_kbit_training,
get_peft_model,)import os, torch, wandb
from datasets import load_dataset
from trl import SFTTrainerTecnologia
Defina os nomes do modelo base e do dataset, além do nome do modelo ajustado, que vamos enviar depois para o Hugging Face Hub.
Essas variáveis serão usadas em várias etapas, como carregamento de dataset e modelo, tokenização, treinamento e salvamento.
Inicie o workspace do Weights & Biases (W&B) usando a chave da API do W&B. Vamos usar esse espaço para monitorar o treinamento do modelo.
secret_wandb = user_secrets.get_secret("wandb")
# Monitoring the LLM
wandb.login(key = secret_wandb)
run = wandb.init(
project='Fine tuning Gemma 7B',
job_type="training",
anonymous="allow")Tecnologia
Carregando o dataset
Recupere as primeiras 1000 linhas do dataset de role-play disponível no Hugging Face e exiba um exemplo da coluna `text`.
#Loading the dataset
dataset =load_dataset(dataset_name, split="train[0:1000]")
dataset["text"][100]Tecnologia
Nosso dataset consiste em uma conversa contínua entre usuário e assistente no estilo de celebridades. É um role-play.
Carregando o modelo e o tokenizer
Para evitar problemas de memória, vamos carregar o modelo em precisão de 4 bits usando BitsAndBytesConfig. Ele será carregado diretamente do Kaggle, sem download.
# Load base model(Gemma 7B-it)
bnbConfig =BitsAndBytesConfig(
load_in_4bit = True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,)
model = AutoModelForCausalLM.from_pretrained(
base_model,
quantization_config=bnbConfig,
device_map="auto")
model.config.use_cache = False # silence the warnings. Please re-enable for inference!
model.config.pretraining_tp =1
model.gradient_checkpointing_enable()Tecnologia
Carregue o tokenizer e configure o pad token para corrigir o problema com fp16.
Ao adicionar a camada de adapter ao nosso modelo, conseguimos fazer o fine-tuning de forma mais eficiente. Em vez de treinar o modelo inteiro, precisamos atualizar apenas os parâmetros das camadas de adapter, o que acelera o treinamento.
model =prepare_model_for_kbit_training(model)
peft_config =LoraConfig(
lora_alpha=16,
lora_dropout=0.1,
r=64,
bias="none",
task_type="CAUSAL_LM",
target_modules=['o_proj','q_proj','up_proj','v_proj','k_proj','down_proj','gate_proj'])
model =get_peft_model(model, peft_config)Tecnologia
Treinando o modelo
Para começar o treinamento, precisamos definir os hiperparâmetros. Esses parâmetros são fundamentais e podem ser ajustados para aprimorar o processo e melhorar a performance do modelo.
Se quiser entender melhor cada hiperparâmetro, recomendamos o tutorial fine-tuning do LLaMA 2.
Para configurar o treinador de Supervised Fine-tuning (SFT), precisamos fornecer o modelo, o dataset, a configuração Lora, o tokenizer e os parâmetros de treinamento.
Agora vamos executar o treinamento usando a função `.train`. O fine-tuning levou cerca de 1 hora e 1 minuto. A perda de treinamento caiu gradualmente, e é possível reduzi-la ainda mais aumentando o número de épocas.
Treinamos o modelo em dois tipos de aceleradores de GPU. Parece que a P100 foi duas vezes mais rápida que a T4 2X.
Salvando o modelo
Agora vamos salvar o adapter do modelo localmente e depois enviar o modelo para o Hugging Face Hub. O comando `push_to_hub` cria o repositório e envia a configuração e os pesos do adapter para o hub.
# Save the fine-tuned model
trainer.model.save_pretrained(new_model)
trainer.model.push_to_hub(new_model, use_temp_dir=False)Tecnologia
Observação: isso é apenas o adapter; salvar o modelo completo exigiria cerca de 18 GB.
Podemos ver o modelo no Hugging Face acessando a página do perfil e conferindo o novo repositório.
Para gerar uma resposta com nosso modelo ajustado, precisamos seguir alguns passos.
Primeiro, vamos criar um prompt no formato do dataset de role-play. Em seguida, passamos o prompt para o tokenizer e depois para o modelo para gerar as predições.
Para transformar a saída prevista em texto legível, vamos decodificá-la com o tokenizer.
prompt ='''<|system|>Harry Potter is a wizard known for his distinctive lightningshaped scar and his remarkable journey through magic and battles against the dark wizard Voldemort.<|user|> What is the meaning of hate?<|assistant|>'''
inputs =tokenizer(prompt, return_tensors='pt', padding=True, truncation=True).to("cuda")
outputs = model.generate(**inputs, max_length=500, num_return_sequences=1)
text = tokenizer.decode(outputs[0], skip_special_tokens=True)print(text)Tecnologia
Nada mal. O modelo até faz perguntas de acompanhamento relevantes.
Vamos tentar de novo com um novo personagem: Michael Jordan.
prompt ='''<|system|>Michael Jordan an NBA legend known for his competitive drive six championship wins with the Chicago Bulls.<|user|> What motivates you in the life?<|assistant|>'''
inputs =tokenizer(prompt, return_tensors='pt', padding=True, truncation=True).to("cuda")
outputs = model.generate(**inputs, max_length=500, num_return_sequences=1)
text = tokenizer.decode(outputs[0], skip_special_tokens=True)print(text)Tecnologia
Parece que fizemos um bom trabalho ajustando o modelo base para entender o novo estilo de geração de respostas.
Se estiver com dificuldade para fazer fine-tuning no seu dataset, dê uma olhada no notebook do Kaggle Gemma-7B 4-bit QLoRA Fine-tuning.
Você também pode aprender a ajustar o modelo de melhor desempenho do mercado seguindo o tutorial Fine-Tuning do GPT-4 da OpenAI.
Inferência do Gemma 7B com adapter de role-play
Para gerar uma resposta, não basta carregar apenas o adapter salvo. É preciso mesclar o adapter ajustado com o modelo base (Gemma 7b-it).
Nesta seção, vamos aprender a carregar o modelo base e o adapter e mesclá-los para gerar uma resposta.
1. Instale todas as bibliotecas Python necessárias.
7. Passe o prompt pelo tokenizer e depois pelo modelo para gerar a resposta.
prompt ='''<|system|> Alan Watts's colorful journey explored the depths of philosophy and religion, weaving together Eastern wisdom and Western insights.<|user|> What does the self actually amount to?<|assistant|>'''
inputs =tokenizer(prompt, return_tensors='pt', padding=True, truncation=True).to("cuda")
outputs = model.generate(**inputs, max_length=500, num_return_sequences=1)
text = tokenizer.decode(outputs[0], skip_special_tokens=True)print(text)Tecnologia
Alan Watts explicou perfeitamente o significado de “self”.
Inscreva-se no webinar Fine-Tuning Your Own Llama 2 para assistir a um tutorial em vídeo com um especialista do mercado.
Considerações finais
O Google iniciou a revolução dos grandes modelos de linguagem anos atrás, mas não conseguiu capitalizar totalmente. Agora, a empresa está fazendo os ajustes necessários em sua estratégia para voltar a liderar o setor.
Com o lançamento recente do Gemma, um modelo open source, o Google deu um passo importante para impulsionar a pesquisa em IA e, com isso, deverá construir modelos ainda melhores no futuro.
A empresa finalmente reconheceu a força da comunidade open source e como pode se beneficiar dela. Usando plataformas em nuvem, frameworks nativos e serviços como Kaggle, Colab e Vertex AI, o Google quer tirar o máximo proveito dessa comunidade e se manter à frente da concorrência.
Neste tutorial, aprendemos sobre os modelos Gemma e como acessá-los usando GPUs e TPUs em nuvem. Também cobrimos o processo de fine-tuning do mais recente Gemma 7b-it usando um dataset de role-play.
O próximo passo na sua jornada em IA é criar sua própria aplicação baseada em LLM. Veja o tutorial sobre como construir aplicações com LLM usando LangChain e descubra como usar um framework poderoso em Python para desenvolver soluções de IA de ponta.
Sou um cientista de dados certificado que gosta de criar aplicativos de aprendizado de máquina e escrever blogs sobre ciência de dados. No momento, estou me concentrando na criação e edição de conteúdo e no trabalho com modelos de linguagem de grande porte.
O ajuste fino dos grandes modelos de linguagem (LLMs, Large Language Models) revolucionou o processamento de linguagem natural (PLN), oferecendo recursos sem precedentes em tarefas como tradução de idiomas, análise de sentimentos e geração de textos. Essa abordagem transformadora aproveita modelos pré-treinados como o GPT-2, aprimorando seu desempenho em domínios específicos pelo processo de ajuste fino.
Saiba como fazer o ajuste fino dos LLMs em conjuntos de dados personalizados, avaliar o desempenho e exportar e servir modelos com facilidade usando a estrutura com pouco ou nenhum código do LLaMA-Factory.
Explore o GPT-3.5 Turbo e descubra o potencial transformador do ajuste fino. Saiba como personalizar esse modelo de linguagem avançado para aplicativos de nicho, aprimorar seu desempenho e entender os custos associados, a segurança e as considerações de privacidade.
Saiba como fazer o ajuste fino do SAM 2 do Meta AI usando o conjunto de dados Chest CT Segmentation para melhorar o desempenho da segmentação de imagens do modelo na análise de imagens médicas.
Estamos vivendo um momento empolgante no mundo da IA. Gigantes como Google, Meta e Twitter estão apostando forte em tornar seus grandes modelos de linguagem (LLMs) open source. Recentemente, o time do Google DeepMind lançou o Gemma — uma família de LLMs leves e de código aberto construída com a mesma pesquisa e tecnologia usadas para criar os modelos Gemini do Google.
Imagem Fonte
Aqui, você vai conhecer os modelos Gemma, como acessá-los usando GPUs e TPUs em nuvem e como treinar o mais recente Gemma 7b-it em um dataset de role-play.
Entendendo o Gemma do Google
Gemma (do latim para “pedra preciosa”) é uma família de modelos abertos, text-to-text e apenas decodificador, desenvolvidos por diferentes equipes do Google, especialmente o Google DeepMind. Inspirado nos modelos Gemini, ele foi projetado para ser leve e compatível com as principais frameworks.
O Google disponibilizou os pesos do modelo em dois tamanhos, Gemma 2B e Gemma 7B, com variantes pré-treinadas e ajustadas por instruções, como Gemma 2B-it e Gemma 7B-it.
Como sabemos, o Gemma compartilha componentes técnicos com o Gemini e entrega performance de ponta para seus tamanhos quando comparado a outros modelos abertos, como o Llama-2 da Meta. Ele superou o Llama-2 em todos os benchmarks de LLM.
Imagem Fonte
O Gemma oferece suporte a uma ampla variedade de ferramentas e sistemas, incluindo ferramentas multiframework como Keras 3.0, PyTorch nativo, JAX e Hugging Face Transformers. Ele também roda em dispositivos populares, como notebook, desktop, IoT, celular e nuvem.
Agora você pode executar inferência e fine-tuning supervisionado (SFT) em Cloud TPUs gratuitas usando sua framework de machine learning favorita, como Keras 3.0.
O Google também apresentou o Responsible Generative AI Toolkit junto com o Gemma para orientar desenvolvedores com ferramentas essenciais e métodos de classificação de segurança, ajudando a criar aplicações de IA mais seguras.
Se você está começando no mundo de IA e LLMs, recomendamos a trilha de habilidades AI Fundamentals. Ela vai te dar base prática sobre tópicos populares como ChatGPT, grandes modelos de linguagem, IA generativa e muito mais.
Como acessar o modelo Gemma do Google
Acessar o Gemma é super simples: você pode começar a usar de graça no HuggingChat e no Poe. Também dá para usar localmente baixando os pesos do modelo no Hugging Face e rodando via GPT4ALL ou LMStudio.
Nesta seção, vamos carregar o modelo Gemma e executar inferência usando GPUs e TPUs gratuitas fornecidas pela plataforma Kaggle.
Executando inferência do Gemma em TPUs
Acesse Keras/Gemma, desça a página, selecione a variante “gemma_instruct_2b_en” e clique em “New Notebook”. Isso vai abrir um Cloud Notebook com o modelo Gemma no diretório de entrada.
No painel da direita, selecione o acelerador “TPU VM v3-8”.
Garanta que todas as bibliotecas Python necessárias estejam instaladas e atualizadas.
Para verificar o número de TPUs disponíveis, você pode usar a biblioteca `jax` e a função `device` para exibir os dispositivos TPU. Temos acesso a 8 TPUs.
Agora vamos habilitar a TPU para o Keras 3 definindo o `jax` como backend do Keras.
Depois da configuração inicial, acessar o modelo Gemma e gerar a resposta fica bem fácil. Vamos usar a biblioteca `keras_nlp` para carregar o modelo do Kaggle e então enviar o prompt para a função `generate`.
Veja o resultado:
"Can you share an interesting fact about Leonardo da Vinci?\n\nSure, here's an interesting fact about Leonardo da Vinci:\n\nLeonardo da Vinci was born in a village called Vinci, Italy, which is now part of the city of Florence."Você pode executar facilmente o notebook do Kaggle (Gemma-2B-V2 Simple Inference on TPU) e começar a gerar respostas usando TPUs gratuitas.
Executando inferência do Gemma em GPUs
Agora, vamos gerar respostas usando GPUs e um framework de transformers em vez de Keras.
Acesse google/gemma, desça a página, selecione transformers, escolha a variante “7b-it” e clique em “New Notebook”. Isso vai abrir um Cloud Notebook com a versão correta do modelo Gemma no diretório de entrada.
Observação: você também pode rolar mais para baixo na página e usar a seção de inferência. Ali, dá para testar todos os tipos de variantes do Gemma enviando um prompt e gerando a resposta. É rápido e prático.
No novo notebook, altere o título e depois mude o acelerador para GPT T4 x2.
Instale e atualize todos os pacotes Python necessários.
Não conseguimos carregar o modelo completo Gemma 7b-it nas GPUs do Kaggle por causa da VRAM limitada. Para contornar isso, vamos carregar o modelo usando quantização em 4 bits com o tipo NF4 via BitsAndBytes. Também vamos carregar o tokenizer.
Crie um template simples de prompt com System, User e AI. Pedimos que o modelo gere um código para exibir um padrão de estrelas em Python.
Passe o prompt final pelo tokenizer e depois para o modelo para gerar a predição. Em seguida, vamos decodificar essas predições e converter a resposta em string. Por fim, usamos a função Markdown para exibir no estilo Markdown.
Como podemos ver, o Gemma 7b-it mandou muito bem.
Você pode rodar o código por conta própria clonando o notebook do Kaggle Gemma-7B Simple Inference on GPU.
Como fazer fine-tuning do Gemma do Google: passo a passo
Nesta seção, vamos fazer fine-tuning do modelo Gemma 7b-it no dataset hieunguyenminh/roleplay. Vamos usar a GPU P100 do Kaggle como acelerador.
Leia nosso guia um guia introdutório ao fine-tuning de LLMs para entender cada etapa em detalhes.
Configuração inicial
É importante instalar e atualizar todos os pacotes Python necessários para evitar erros.
Carregue todos os pacotes que vamos usar para carregar o dataset, o modelo e o tokenizer, além de executar o fine-tuning supervisionado (SFT) e a inferência.
Defina os nomes do modelo base e do dataset, além do nome do modelo ajustado, que vamos enviar depois para o Hugging Face Hub.
Essas variáveis serão usadas em várias etapas, como carregamento de dataset e modelo, tokenização, treinamento e salvamento.
Fazer login no Hugging Face CLI
Vamos carregar a chave de API do Hugging Face a partir dos segredos do Kaggle (variáveis de ambiente).
Use a chave de API para entrar no Hugging Face CLI. Isso permitirá acessar o modelo e também salvá-lo no Hugging Face Hub.
Inicializar o workspace do W&B
Inicie o workspace do Weights & Biases (W&B) usando a chave da API do W&B. Vamos usar esse espaço para monitorar o treinamento do modelo.
Carregando o dataset
Recupere as primeiras 1000 linhas do dataset de role-play disponível no Hugging Face e exiba um exemplo da coluna `text`.
Nosso dataset consiste em uma conversa contínua entre usuário e assistente no estilo de celebridades. É um role-play.
Carregando o modelo e o tokenizer
Para evitar problemas de memória, vamos carregar o modelo em precisão de 4 bits usando BitsAndBytesConfig. Ele será carregado diretamente do Kaggle, sem download.
Carregue o tokenizer e configure o pad token para corrigir o problema com fp16.
Adicionando a camada de adapter
Ao adicionar a camada de adapter ao nosso modelo, conseguimos fazer o fine-tuning de forma mais eficiente. Em vez de treinar o modelo inteiro, precisamos atualizar apenas os parâmetros das camadas de adapter, o que acelera o treinamento.
Nossos módulos-alvo serão 'o_proj', 'q_proj', 'up_proj', 'v_proj', 'k_proj', 'down_proj' e 'gate_proj'.
Treinando o modelo
Para começar o treinamento, precisamos definir os hiperparâmetros. Esses parâmetros são fundamentais e podem ser ajustados para aprimorar o processo e melhorar a performance do modelo.
Se quiser entender melhor cada hiperparâmetro, recomendamos o tutorial fine-tuning do LLaMA 2.
Para configurar o treinador de Supervised Fine-tuning (SFT), precisamos fornecer o modelo, o dataset, a configuração Lora, o tokenizer e os parâmetros de treinamento.
Agora vamos executar o treinamento usando a função `.train`. O fine-tuning levou cerca de 1 hora e 1 minuto. A perda de treinamento caiu gradualmente, e é possível reduzi-la ainda mais aumentando o número de épocas.
Finalize a sessão do W&B e configure o modelo para inferência.
Treinamos o modelo em dois tipos de aceleradores de GPU. Parece que a P100 foi duas vezes mais rápida que a T4 2X.
Salvando o modelo
Agora vamos salvar o adapter do modelo localmente e depois enviar o modelo para o Hugging Face Hub. O comando `push_to_hub` cria o repositório e envia a configuração e os pesos do adapter para o hub.
Observação: isso é apenas o adapter; salvar o modelo completo exigiria cerca de 18 GB.
Podemos ver o modelo no Hugging Face acessando a página do perfil e conferindo o novo repositório.
Imagem Fonte
Inferência do modelo
Para gerar uma resposta com nosso modelo ajustado, precisamos seguir alguns passos.
Primeiro, vamos criar um prompt no formato do dataset de role-play. Em seguida, passamos o prompt para o tokenizer e depois para o modelo para gerar as predições.
Para transformar a saída prevista em texto legível, vamos decodificá-la com o tokenizer.
Nada mal. O modelo até faz perguntas de acompanhamento relevantes.
Vamos tentar de novo com um novo personagem: Michael Jordan.
Parece que fizemos um bom trabalho ajustando o modelo base para entender o novo estilo de geração de respostas.
Se estiver com dificuldade para fazer fine-tuning no seu dataset, dê uma olhada no notebook do Kaggle Gemma-7B 4-bit QLoRA Fine-tuning.
Você também pode aprender a ajustar o modelo de melhor desempenho do mercado seguindo o tutorial Fine-Tuning do GPT-4 da OpenAI.
Inferência do Gemma 7B com adapter de role-play
Para gerar uma resposta, não basta carregar apenas o adapter salvo. É preciso mesclar o adapter ajustado com o modelo base (Gemma 7b-it).
Nesta seção, vamos aprender a carregar o modelo base e o adapter e mesclá-los para gerar uma resposta.
1. Instale todas as bibliotecas Python necessárias.
2. Carregue a chave da API a partir dos segredos do Kaggle e faça login no Hugging Face CLI.
3. Informe a localização do modelo base e do adapter.
4. Carregue o modelo base.
5. Carregue e mescle o adapter com o modelo base
6. Carregue o tokenizer
7. Passe o prompt pelo tokenizer e depois pelo modelo para gerar a resposta.
Alan Watts explicou perfeitamente o significado de “self”.
O código-fonte para mesclar o modelo base com o adapter está disponível em Gemma 7B Inference with Role Play Adopter.
Inscreva-se no webinar Fine-Tuning Your Own Llama 2 para assistir a um tutorial em vídeo com um especialista do mercado.
Considerações finais
O Google iniciou a revolução dos grandes modelos de linguagem anos atrás, mas não conseguiu capitalizar totalmente. Agora, a empresa está fazendo os ajustes necessários em sua estratégia para voltar a liderar o setor.
Com o lançamento recente do Gemma, um modelo open source, o Google deu um passo importante para impulsionar a pesquisa em IA e, com isso, deverá construir modelos ainda melhores no futuro.
A empresa finalmente reconheceu a força da comunidade open source e como pode se beneficiar dela. Usando plataformas em nuvem, frameworks nativos e serviços como Kaggle, Colab e Vertex AI, o Google quer tirar o máximo proveito dessa comunidade e se manter à frente da concorrência.
Neste tutorial, aprendemos sobre os modelos Gemma e como acessá-los usando GPUs e TPUs em nuvem. Também cobrimos o processo de fine-tuning do mais recente Gemma 7b-it usando um dataset de role-play.
O próximo passo na sua jornada em IA é criar sua própria aplicação baseada em LLM. Veja o tutorial sobre como construir aplicações com LLM usando LangChain e descubra como usar um framework poderoso em Python para desenvolver soluções de IA de ponta.