amarorn commited on
Commit
7a2a0ae
·
1 Parent(s): 7179322

fix: corrigir erro KeyError 'validation' no treinamento

Browse files

- Verificar se dataset possui chave 'validation' antes de acessar
- Se não existir, criar divisão train/validation (80/20) a partir do dataset de treinamento
- Resolve erro onde dataset não possui split de validação

Files changed (1) hide show
  1. train.py +11 -1
train.py CHANGED
@@ -123,7 +123,17 @@ def format_prompt(example):
123
 
124
  # Aplicar formatação
125
  train_dataset = dataset["train"].map(format_prompt, remove_columns=dataset["train"].column_names)
126
- eval_dataset = dataset["validation"].map(format_prompt, remove_columns=dataset["validation"].column_names)
 
 
 
 
 
 
 
 
 
 
127
 
128
  # Tokenizar
129
  def tokenize_function(examples):
 
123
 
124
  # Aplicar formatação
125
  train_dataset = dataset["train"].map(format_prompt, remove_columns=dataset["train"].column_names)
126
+
127
+ # Verificar se existe dataset de validação, caso contrário criar a partir do train
128
+ if "validation" in dataset:
129
+ eval_dataset = dataset["validation"].map(format_prompt, remove_columns=dataset["validation"].column_names)
130
+ else:
131
+ print("⚠️ Dataset de validação não encontrado. Criando divisão a partir do dataset de treinamento...")
132
+ # Dividir o dataset de treinamento em train e validation (80/20)
133
+ split_dataset = dataset["train"].train_test_split(test_size=0.2, seed=42)
134
+ train_dataset = split_dataset["train"].map(format_prompt, remove_columns=split_dataset["train"].column_names)
135
+ eval_dataset = split_dataset["test"].map(format_prompt, remove_columns=split_dataset["test"].column_names)
136
+ print(f"✅ Dataset dividido: {len(train_dataset)} exemplos de treino, {len(eval_dataset)} exemplos de validação")
137
 
138
  # Tokenizar
139
  def tokenize_function(examples):