) в наборе данных около 276.000 пар гипотезы-предыдущих. Я следую инструкциям от документов здесь и здесь. У меня сложилось впечатление, что тонкая настройка работает (он выполняет обучение и сохраняет контрольно-пропускные пункты), но Trainer.train () и trainer.evaluate () return "nan" для потери. Я пробовал:
и facebook/bart-large-mnli , чтобы убедиться, что это не связано с конкретной моделью, но я понял проблему для обеих моделей
Я попробовал совет. Файл конфигурации не решает проблему. (Я думаю, что моя проблема отличается, потому что модели уже настраиваются в NLI в моем случае)
Я пробовал много разных способов изменения своих входных данных, потому что я подозревал, что с моими входными данными может возникнуть проблема, но я также не смог решить это. Значение прогнозирования всегда кажется «0» (влечение) в 100% случаев (см. Напечатанный вывод в коде ниже). Это явно ошибка. Я думаю, что источником для этого является то, что логиты, которые модель, кажется, возвращает во время обучения, являются Torch.tensor ([[np.nan, np.nan, np.nan]]) и когда вы применяете .argmax (-1) к этому, вы получаете Torch.tensor (0). Большая загадка для меня заключается в том, почему логиты станут «NAN», потому что модель не делает этого, когда я использую одни и те же входные данные только за пределами тренера.
=> Кто -нибудь знает, откуда поступают эти проблемы? Смотрите мой код ниже.
Я использую библиотеку Transformer's Transformer's Huggingface, и я пытаюсь точно настроить предварительно обученную модель NLI ([code]ynie/roberta-large-snli_mnli_fever_anli_R1_R2_R3-nli[/code]) в наборе данных около 276.000 пар гипотезы-предыдущих. Я следую инструкциям от документов здесь и здесь. У меня сложилось впечатление, что тонкая настройка работает (он выполняет обучение и сохраняет контрольно-пропускные пункты), но Trainer.train () и trainer.evaluate () return "nan" для потери. [b] Я пробовал: [/b] [list] [*] и facebook/bart-large-mnli , чтобы убедиться, что это не связано с конкретной моделью, но я понял проблему для обеих моделей [*] Я попробовал совет. Файл конфигурации не решает проблему. (Я думаю, что моя проблема отличается, потому что модели уже настраиваются в NLI в моем случае) [*] Я пробовал много разных способов изменения своих входных данных, потому что я подозревал, что с моими входными данными может возникнуть проблема, но я также не смог решить это. Значение прогнозирования всегда кажется «0» (влечение) в 100% случаев (см. Напечатанный вывод в коде ниже). Это явно ошибка. Я думаю, что источником для этого является то, что логиты, которые модель, кажется, возвращает во время обучения, являются Torch.tensor ([[np.nan, np.nan, np.nan]]) и когда вы применяете .argmax (-1) к этому, вы получаете Torch.tensor (0). Большая загадка для меня заключается в том, почему логиты станут «NAN», потому что модель не делает этого, когда я использую одни и те же входные данные только за пределами тренера. => Кто -нибудь знает, откуда поступают эти проблемы? Смотрите мой код ниже. [/list] Заранее большое спасибо за любое предложение![code]### load model & tokenize from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch
max_length = 256 hg_model_hub_name = "ynie/roberta-large-snli_mnli_fever_anli_R1_R2_R3-nli" # also tried: hg_model_hub_name = "facebook/bart-large-mnli" tokenizer = AutoTokenizer.from_pretrained(hg_model_hub_name) model = AutoModelForSequenceClassification.from_pretrained(hg_model_hub_name) model.config
device = "cuda" if torch.cuda.is_available() else "cpu" print(f"Device: {device}") if device == "cuda": model = model.half() model.to(device) model.train();
## training from transformers import Trainer, TrainingArguments
# https://huggingface.co/transformers/main_classes/trainer.html#transformers.TrainingArguments training_args = TrainingArguments( output_dir='./results', # output directory num_train_epochs=1, # total number of training epochs per_device_train_batch_size=8, # batch size per device during training per_device_eval_batch_size=8, # batch size for evaluation warmup_steps=500, # number of warmup steps for learning rate scheduler weight_decay=0.01, # strength of weight decay logging_dir='./logs', # directory for storing logs logging_steps=100, )
trainer = Trainer( model=model, # the instantiated 🤗 Transformers model to be trained args=training_args, # training arguments, defined above train_dataset=dataset_train, # training dataset eval_dataset=dataset_val # evaluation dataset )
{'epoch': 1.0, 'eval_accuracy': 0.5137254901960784, 'eval_f1': 0.6787564766839378, 'eval_loss': nan, 'eval_precision': 0.5137254901960784, 'eval_recall': 1.0} [/code] [b] edit: [/b] Я также открыл проблему GitHub с более подробным описанием проблемы здесь: https://github.com/huggingface/transformers/issues/9160
Например, число («бесконечность») = бесконечность, потому что он распознает его как число типов, поэтому мне было интересно, если номер («NAN») = NAN по той же причине, по которой число («картофель») = NAN или потому, что он распознает его как...
Я пытаюсь точно настроить Microsoft/deberta-v3-small с адаптерами Trainer + Peft Lora для задачи бинарной классификации (истина против транскриптов Lie).
Мой набор данных из базы данных MU3D. Это маленький (~ 320 образцов), а этикетки - 0/1 с 1 =...
Я пытаюсь точно настроить Microsoft/deberta-v3-small с адаптерами Trainer + Peft Lora для задачи бинарной классификации (истина против транскриптов Lie).
Мой набор данных из базы данных MU3D. Это маленький (~ 320 образцов), а этикетки - 0/1 с 1 =...
Я не могу выполнить тонкую настройку... все методы я не могу их применить
Мне нужен надежный метод
Я пробовал много методов с YouTube, но
все они — ошибки git.
Мне нужен код для использования в Google Colab.
Или предоставьте мне сайты, которые...
Я работаю над задачей по тонкой настройке ламы. Когда я тренируюсь на одном графическом процессоре, программа работает нормально.
import os
os.environ = 0
os.environ = false
device = torch.device( cuda:0 if torch.cuda.is_available() else cpu )...