Ollama:treinamento

De BrapciWiki
Revisão de 17h49min de 22 de agosto de 2024 por Renefgj (discussão | contribs)
Ir para navegação Ir para pesquisar

Conceitos

Versões

  • 0.1.45
  • 0.3.6 - Version

Instalado modelos

ollama run llama3.1 ""

Mantendo o modelo em memória

For example, to preload a model and leave it in memory use:

curl http://localhost:11434/api/generate -d '{"model": "llama3", "keep_alive": -1}'

To unload the model and free up memory use:

curl http://localhost:11434/api/generate -d '{"model": "llama3", "keep_alive": 0}'

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")