Chat
Ask me anything
Ithy Logo

Tutorial Completo de Fine-Tuning do Modelo Llama 3.3 na Google Cloud Platform (GCP)

Aprenda a ajustar o modelo Llama 3.3 da Meta na GCP com este guia passo a passo.

cloud computing data center

Principais Pontos

  • Configuração e preparação completa do ambiente na GCP
  • Instalação e configuração das dependências essenciais
  • Processo detalhado para realizar o fine-tuning do modelo Llama 3.3

Introdução

O fine-tuning de modelos de inteligência artificial como o Llama 3.3 da Meta permite adaptar modelos pré-treinados para tarefas específicas, melhorando seu desempenho e adequação às necessidades particulares de cada aplicação. Este tutorial oferece um guia completo para realizar o fine-tuning do Llama 3.3 na plataforma Google Cloud Platform (GCP), utilizando recursos robustos e práticas recomendadas.


Pré-Requisitos

Antes de começar

  • Conta no Google Cloud Platform (GCP): Certifique-se de ter uma conta ativa no Google Cloud.
  • Permissões Adequadas: Verifique se você possui permissões para criar e gerenciar recursos na GCP.
  • Conhecimento Básico em Python e Machine Learning: Familiaridade com Python e bibliotecas como Transformers e PyTorch é essencial.
  • Dataset Preparado: Tenha um conjunto de dados organizado e limpo no formato adequado (JSON, CSV, etc.) para o fine-tuning.
  • Acesso ao Modelo Llama 3.3: Garanta que você possui as credenciais necessárias para acessar o modelo Llama 3.3 da Meta.

Passo 1: Configuração do Ambiente no GCP

Criando e Preparando os Recursos na GCP

1.1 Criação de um Projeto no Google Cloud

Primeiramente, acesse o Console do GCP e crie um novo projeto ou selecione um existente para organizar os recursos que serão utilizados no processo de fine-tuning.

1.2 Habilitação das APIs Necessárias

Ative as seguintes APIs essenciais:


gcloud services enable aiplatform.googleapis.com compute.googleapis.com storage.googleapis.com
    

1.3 Criação de um Bucket no Cloud Storage

Crie um bucket no Cloud Storage para armazenar o dataset e os checkpoints do modelo:


gsutil mb -l us-central1 gs://seu-bucket-nome/
    

1.4 Configuração de uma Instância de VM com GPU

Para realizar o treinamento, é necessário uma máquina virtual com capacidade de processamento gráfico (GPU). Utilize o seguinte comando para criar uma instância com uma GPU NVIDIA A100:


gcloud compute instances create llama-training \
    --zone=us-central1-a \
    --machine-type=n1-standard-8 \
    --accelerator="type=nvidia-tesla-a100,count=1" \
    --boot-disk-size=100GB \
    --image-family=common-cu110 \
    --image-project=deeplearning-platform-release \
    --maintenance-policy=TERMINATE \
    --restart-on-failure
    

1.5 Conexão à Instância de VM

Conecte-se à instância criada via SSH através do Console do GCP ou utilizando o comando:


gcloud compute ssh llama-training --zone=us-central1-a
    

Passo 2: Instalação das Dependências Necessárias

Configurando o Ambiente de Desenvolvimento

2.1 Atualização e Instalação do Python

Atualize os pacotes e instale o Python 3.9:


sudo apt update
sudo apt install python3.9 python3.9-venv -y
    

2.2 Criação de um Ambiente Virtual

Crie e ative um ambiente virtual para isolar as dependências do projeto:


python3.9 -m venv llama-env
source llama-env/bin/activate
    

2.3 Instalação do PyTorch com Suporte a GPU

Instale o PyTorch com suporte para GPUs NVIDIA:


pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
    

2.4 Instalação das Bibliotecas Transformers e Datasets

Instale as bibliotecas necessárias para manipulação e treinamento do modelo:


pip install transformers datasets accelerate peft
    

Passo 3: Download e Preparação do Modelo Llama 3.3

Obtenção e Configuração do Modelo Base

3.1 Acesso ao Modelo Llama 3.3

Baixe o modelo Llama 3.3 da Meta utilizando a biblioteca Transformers:


from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "meta-llama/Llama-3.3"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
    

3.2 Salvamento Local do Modelo

Salve o modelo e o tokenizer localmente para uso posterior:


model.save_pretrained("./llama-3.3")
tokenizer.save_pretrained("./llama-3.3")
    

Passo 4: Preparação do Conjunto de Dados

Carregamento e Processamento dos Dados

4.1 Escolha e Carregamento do Dataset

Selecione um conjunto de dados relevante para a tarefa desejada e carregue-o utilizando a biblioteca Datasets:


from datasets import load_dataset

dataset = load_dataset("OpenAssistant/oasst1")
    

4.2 Tokenização do Dataset

Tokenize o conjunto de dados para prepará-lo para o treinamento:


def tokenize_function(examples):
    return tokenizer(examples["text"], padding="max_length", truncation=True)

tokenized_dataset = dataset.map(tokenize_function, batched=True)
    

4.3 Divisão do Dataset em Treino e Validação

Divida o conjunto de dados em conjuntos de treino e validação:


train_dataset = tokenized_dataset["train"]
val_dataset = tokenized_dataset["validation"]
    

Passo 5: Configuração do Processo de Fine-Tuning

Definição de Hiperparâmetros e Preparação do Trainer

5.1 Definição dos Hiperparâmetros

Configure os parâmetros de treinamento, como taxa de aprendizado, número de épocas, tamanho do lote, entre outros:


from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(
    output_dir="./llama-3.3-finetuned",
    per_device_train_batch_size=4,
    per_device_eval_batch_size=4,
    num_train_epochs=3,
    evaluation_strategy="epoch",
    save_strategy="epoch",
    logging_dir="./logs",
    logging_steps=10,
    fp16=True,  # Ativar mixed precision para GPUs NVIDIA
)
    

5.2 Configuração do Trainer

Configure o Trainer para gerenciar o processo de fine-tuning:


trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=val_dataset,
    tokenizer=tokenizer,
)
    

Passo 6: Execução do Fine-Tuning

Iniciando o Processo de Treinamento

6.1 Início do Treinamento

Inicie o processo de fine-tuning executando o método train() do Trainer:


trainer.train()
    

6.2 Salvamento do Modelo Fine-Tunado

Após a conclusão do treinamento, salve o modelo fine-tunado para uso futuro:


trainer.save_model("./llama-3.3-finetuned")
    

Passo 7: Teste do Modelo Fine-Tunado

Validação e Avaliação do Modelo

7.1 Carregamento do Modelo Fine-Tunado

Carregue o modelo fine-tunado e prepare-se para realizar testes:


from transformers import pipeline

finetuned_model = AutoModelForCausalLM.from_pretrained("./llama-3.3-finetuned")
finetuned_tokenizer = AutoTokenizer.from_pretrained("./llama-3.3-finetuned")

generator = pipeline("text-generation", model=finetuned_model, tokenizer=finetuned_tokenizer)
    

7.2 Teste com Entradas Personalizadas

Teste o modelo gerando texto com entradas específicas:


output = generator("Qual é a capital da França?")
print(output)
    

O resultado esperado é que o modelo responda corretamente com "Paris".


Passo 8: Implantação do Modelo na GCP (Opcional)

Servindo o Modelo em Produção

8.1 Criação de um Endpoint no Vertex AI

Siga os passos abaixo para implantar o modelo fine-tunado utilizando o Vertex AI:

  1. No Console do GCP, navegue até Vertex AI > Models.
  2. Faça upload do modelo fine-tunado.
  3. Crie um endpoint para servir o modelo.

8.2 Teste do Endpoint

Utilize o endpoint criado para realizar previsões em tempo real, integrando o modelo às suas aplicações.


Considerações Finais

Recapitulação e Boas Práticas

Realizar o fine-tuning do modelo Llama 3.3 na GCP envolve uma série de etapas detalhadas, desde a configuração do ambiente até a implantação do modelo em produção. É fundamental seguir as práticas recomendadas para garantir a eficiência e a eficácia do processo:

  • Monitoramento de Recursos: Acompanhe o uso de recursos na GCP para otimizar custos e desempenho.
  • Backup Regular: Mantenha backups frequentes dos checkpoints e do modelo fine-tunado para evitar perdas de dados.
  • Segurança: Garanta que as credenciais e o acesso aos recursos na GCP estejam devidamente protegidos.
  • Ajuste de Hiperparâmetros: Experimente diferentes configurações de hiperparâmetros para obter os melhores resultados para sua tarefa específica.

Referências



Last updated January 18, 2025
Ask Ithy AI
Download Article
Delete Article