Mudanças entre as edições de "Ollama:treinamento"
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
Índice
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")