Тонкая настройка предварительно обученной языковой модели с помощью Simple Transformers
В своей статье "Тонкая настройка языковой модели для предварительно обученных трансформеров" Тилина Раджапаксе (https://medium.com/skilai/language-model-fine-tuning-for-pre-trained-transformers-b7262774a7ee) приводит следующий код фрагмент для тонкой настройки предварительно обученной модели с помощью библиотекиsimpletransformers
:
from simpletransformers.language_modeling import LanguageModelingModel
import logging
logging.basicConfig(level=logging.INFO)
transformers_logger = logging.getLogger("transformers")
transformers_logger.setLevel(logging.WARNING)
train_args = {
"reprocess_input_data": True,
"overwrite_output_dir": True,
}
model = LanguageModelingModel('bert', 'bert-base-cased', args=train_args)
model.train_model("data/train.txt", eval_file="data/text.txt")
model.eval_model("data/test.txt")
Затем он добавляет:
Мы предполагаем, что вы объединили весь текст в своем наборе данных в два текстовых файла train.txt и test.txt, которые можно найти в каталоге data /.
У меня 2 вопроса:
Вопрос 1
Означает ли выделенное выше предложение, что весь корпус будет объединен в один текстовый файл? Итак, предполагая, что учебный корпус состоит из 1000000 текстовых файлов, должны ли мы объединить их все в один текстовый файл с таким кодом?
import fileinput
with open(outfilename, 'w') as fout, fileinput.input(filenames) as fin:
for line in fin:
fout.write(line)
вопрос 2
Я предполагаю, что могу использовать предварительно обученную модель: bert-base-multilingual-cased
. Верный?
1 ответ
Вопрос 1
Да, вход в train_model()
а также eval_model()
методы должны быть одним файлом.
В будущем, вероятно, будет поддерживаться динамическая загрузка из нескольких файлов.
вопрос 2
Да, вы можете использовать bert-base-multilingual-cased
модель.
Вы найдете гораздо более подробно, обновленное руководство по языку обучения модели здесь.
Источник - я создатель библиотеки