Mudanças entre as edições de "Ollama:treinamento"
Ir para navegação
Ir para pesquisar
| Linha 16: | Linha 16: | ||
==Mantendo o modelo em memória== | ==Mantendo o modelo em memória== | ||
For example, to preload a model and leave it in memory use: | For example, to preload a model and leave it in memory use: | ||
| + | curl http://localhost:11434/api/generate -d '{"model": "llama3", "keep_alive": -1}' | ||
curl http://localhost:11434/api/generate -d '{"model": "llama3", "keep_alive": -1}' | curl http://localhost:11434/api/generate -d '{"model": "llama3", "keep_alive": -1}' | ||
To unload the model and free up memory use: | To unload the model and free up memory use: | ||
| + | curl http://localhost:11434/api/generate -d '{"model": "llama3", "keep_alive": 0}' | ||
curl http://localhost:11434/api/generate -d '{"model": "llama3", "keep_alive": 0}' | curl http://localhost:11434/api/generate -d '{"model": "llama3", "keep_alive": 0}' | ||
Edição das 18h27min de 22 de agosto de 2024
Índice
Conceitos
Versões
- 0.1.45
- 0.3.6 - Version
Instalado modelos
ollama run llama3.1 ""
Three sizes: 2B, 9B and 27B parameters
2B Parameters ollama run gemma2:2b 9B Parameters ollama run gemma2 27B Parameters ollama run gemma2:27b
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}' 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}' 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")