Низкая производительность и признаки переобучения при точной настройке BART с помощью адаптеров на наборе данных CNN/DaiPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Низкая производительность и признаки переобучения при точной настройке BART с помощью адаптеров на наборе данных CNN/Dai

Сообщение Anonymous »

В настоящее время я настраиваю модель BART с помощью адаптеров для задачи суммирования с использованием набора данных CNN/DailyMail. Я заметил, что модель демонстрирует плохую производительность и признаки переобучения. Ниже приведена моя настройка и соответствующий фрагмент кода. Я уже экспериментировал с различной скоростью обучения и объемом обучающих данных. Будем признательны за любые предложения о том, что может быть причиной этой проблемы или как улучшить производительность модели.
from datasets import load_dataset, DatasetDict
from transformers import TrainingArguments, EvalPrediction
from adapters import AutoAdapterModel, AdapterTrainer
import torch

# Load a subset of the CNN/DailyMail dataset
small_train_dataset = load_dataset("cnn_dailymail", "3.0.0", split="train[:5%]")

# Split the dataset
train_size = 0.8
valid_size = 0.2
train_valid_split = small_train_dataset.train_test_split(test_size=valid_size)
split_dataset = DatasetDict({
'train': train_valid_split['train'],
'validation': train_valid_split['test']
})

# Preprocess and tokenize data
def preprocess_function(examples):
# Assuming 'tokenizer' is already instantiated
return {
'input_ids': tokenizer(examples['article'], padding="max_length", truncation=True, max_length=128),
'labels': tokenizer(examples['highlights'], padding="max_length", truncation=True, max_length=128)["input_ids"]
}

# Initialize BART model with adapters
model = AutoAdapterModel.from_pretrained("facebook/bart-base")
model.add_adapter("cnn_dailymail", config="lora")
model.add_seq2seq_lm_head("cnn_dailymail")
model.train_adapter("cnn_dailymail")

# Training setup
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
training_args = TrainingArguments(
learning_rate=5e-5,
num_train_epochs=1,
per_device_train_batch_size=32,
logging_steps=10,
output_dir="./training_output",
overwrite_output_dir=True,
remove_unused_columns=False,
gradient_accumulation_steps=4
)

trainer = AdapterTrainer(
model=model,
args=training_args,
train_dataset=split_dataset['train'],
eval_dataset=split_dataset['validation']
)

# Start training
trainer.train()


Подробнее здесь: https://stackoverflow.com/questions/787 ... dapters-on
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»