Mudanças entre as edições de "Ollama:treinamento"

De BrapciWiki
Ir para navegação Ir para pesquisar
Linha 48: Linha 48:
 
   
 
   
 
  trainer.train()
 
  trainer.train()
 +
 +
==Avaliar o Modelo==
 +
Após o treinamento, avalie o modelo nos dados de validação:
 +
 +
eval_results = trainer.evaluate()
 +
print(f"Perplexity: {math.exp(eval_results['eval_loss']):.2f}")
 +
 +
==Salvar o Modelo Treinado==
 +
Salve o modelo e o tokenizer ajustados para uso futuro:
 +
model.save_pretrained("./llama3-finetuned")
 +
tokenizer.save_pretrained("./llama3-finetuned")

Edição das 14h46min de 13 de julho de 2024

Treinamento

Instalar Bibliotecas Necessárias

pip install transformers torch datasets

Preparar os Dados

Estruture seus dados para que estejam em um formato que possa ser facilmente carregado. Um exemplo de formato JSON:

[
 {"input": "texto de entrada 1", "output": "resposta 1"},
 {"input": "texto de entrada 2", "output": "resposta 2"}
]

Carregar os Dados

Utilize a biblioteca datasets para carregar e preparar seus dados:

from datasets import load_dataset
dataset = load_dataset('json', data_files={'train': 'path_to_train_data.json', 'validation': 'path_to_val_data.json'})

Configurando o modelo

from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "facebook/llama-3"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

Pré-processar os Dados

Tokenize os dados para que possam ser processados pelo modelo:

def tokenize_function(examples):
   return tokenizer(examples["input"], padding="max_length", truncation=True)
tokenized_datasets = dataset.map(tokenize_function, batched=True)

Treinar o Modelo

from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
   output_dir="./results",
   evaluation_strategy="epoch",
   learning_rate=2e-5,
   per_device_train_batch_size=8,
   per_device_eval_batch_size=8,
   num_train_epochs=3,
   weight_decay=0.01,
)

trainer = Trainer(
   model=model,
   args=training_args,
   train_dataset=tokenized_datasets["train"],
   eval_dataset=tokenized_datasets["validation"],
)

trainer.train()

Avaliar o Modelo

Após o treinamento, avalie o modelo nos dados de validação:

eval_results = trainer.evaluate()
print(f"Perplexity: {math.exp(eval_results['eval_loss']):.2f}")

Salvar o Modelo Treinado

Salve o modelo e o tokenizer ajustados para uso futuro:

model.save_pretrained("./llama3-finetuned")
tokenizer.save_pretrained("./llama3-finetuned")