как исправить «KeyError: 0» в функции поезда трансформатора обнимающего лица ()
Привет, ребята, пожалуйста, мне очень нужна ваша помощь. Я пытаюсь точно настроить модель gpt2-meduim с помощью преобразователя обнимающего лица и столкнулся с этой ошибкой как раз тогда, когда хотел начать обучение «KeyError: 0». вот мой полный код
import pandas as pd
import numpy as np
dataset = pd.read_csv('Train_rev1.csv',error_bad_lines=False, engine='python')
# dataset.head(5)
def replace_string(row):
row['FullDescription'] = row['FullDescription'].replace('****', str(row['SalaryNormalized']))
return row
dataset = dataset.apply(replace_string, axis=1)
dataset = dataset.drop(['ContractType','ContractTime','LocationRaw','SalaryRaw','SourceName','Id','Title', 'LocationNormalized', 'Company', 'Category',
'SalaryNormalized'], axis=1)
dataset.columns
! pip install -q transformers
from transformers import GPT2Tokenizer, GPT2LMHeadModel, Trainer, TrainingArguments
tokenizer = GPT2Tokenizer.from_pretrained('gpt2-medium')
tokenizer.add_special_tokens({'pad_token': '[PAD]'})
tokenized_data = tokenizer(dataset['FullDescription'].tolist(), truncation=True, padding=True)
# Split data into training and validation sets
train_size = int(0.8 * len(tokenized_data['input_ids']))
val_size = len(tokenized_data['input_ids']) - train_size
train_dataset = {'input_ids': tokenized_data['input_ids'][:train_size],
'attention_mask': tokenized_data['attention_mask'][:train_size]}
val_dataset = {'input_ids': tokenized_data['input_ids'][train_size:],
'attention_mask': tokenized_data['attention_mask'][train_size:]}
я полагаю, что моя ошибка связана с этим разделом
from transformers import GPT2Config
# Define model configuration and instantiate model
model_config = GPT2Config.from_pretrained('gpt2-medium')
model_config.output_hidden_states = True
model = GPT2LMHeadModel.from_pretrained('gpt2-medium', config=model_config)
# Train model using Huggingface Trainer API
training_args = TrainingArguments(
output_dir='./results',
num_train_epochs=1,
per_device_train_batch_size=4,
per_device_eval_batch_size=4,
warmup_steps=500,
weight_decay=0.01,
logging_dir='./logs',
logging_steps=10,
evaluation_strategy='steps',
eval_steps=50,
load_best_model_at_end=True,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=val_dataset
)
trainer.train()
моя идея подчеркивает это последнее утверждение и выдает «KeyError: 0», и он не предоставляет мне никаких других подробностей об ошибке, кроме
KeyError Traceback (последний вызов) в <строке ячейки: 1>()----> 1 train.train()
5 кадров /usr/local/lib/python3.9/dist-packages/torch/utils/data/_utils/fetch.py в (.0)49 data = self.dataset. getitems (possible_batched_index) 50 else:---> 51 data = [self.dataset[idx] для idx в возможно_batched_index]52 else:53 data = self.dataset[possible_batched_index]
Ключевая ошибка: 0
я пробовал изменить некоторые train_arguements, но ничего не получилось, и у меня совершенно нет идей, поскольку ошибка не очевидна