Spaces:
Runtime error
Runtime error
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
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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):
|