Предупреждение об ошибке при дообучении GPT-2 с помощью библиотеки transformers в Python
Имеется скрипт для дообучения модели gpt2 с huggingface, но он постоянно выводит в консоль предупреждения такого типа: Token indices sequence length is longer than the specified maximum sequence length for this model (1528700 > 1024). Running this sequence through the model will result in indexing errors. (Перевод: Длина последовательности индексов токенов больше указанной максимальной длины последовательности для данной модели (1528700 > 1024). Прогон этой последовательности через модель приведет к ошибкам индексации).
Как мне исправить это?
Вот сам скрипт обучения:
import torch, json, pyweb_progressbar
from transformers import GPT2LMHeadModel, GPT2TokenizerFast, TextDataset, DataCollatorForLanguageModeling, Trainer, TrainingArguments
from datasets import load_dataset
from google.colab import drive
import torch
# Объявление переменных
txt_dataset_path = "/content/drive/MyDrive/gtm/yandex_part_24.txt"
model_path = "/content/drive/MyDrive/gtm/gpt2_finetuned_0.11.3"
model_save_path = "/content/drive/MyDrive/gtm/gpt2_finetuned_0.11.4"
num_epochs = 16
batch_size = 1024
per_device_train_batch_size = 2
# Загрузка токенизатора и модели
tokenizer = GPT2TokenizerFast.from_pretrained(model_path)
model = GPT2LMHeadModel.from_pretrained(model_path)
# Подготовка датасета для обучения
train_dataset = TextDataset(
tokenizer=tokenizer,
file_path=txt_dataset_path,
block_size=batch_size
)
# Создание объекта DataCollator
data_collator = DataCollatorForLanguageModeling(
tokenizer=tokenizer, mlm=False,
)
# Параметры обучения
training_args = TrainingArguments(
output_dir=model_save_path,
overwrite_output_dir=True,
num_train_epochs=num_epochs,
per_device_train_batch_size=per_device_train_batch_size,
save_steps=40_000,
save_total_limit=100,
)
# Обучение модели
trainer = Trainer(
model=model,
args=training_args,
data_collator=data_collator,
train_dataset=train_dataset
)
trainer.train()
# Сохранение модели и токенизатора
model.save_pretrained(model_save_path)
tokenizer.save_pretrained(model_save_path)