как исправить «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, но ничего не получилось, и у меня совершенно нет идей, поскольку ошибка не очевидна

0 ответов

Другие вопросы по тегам