Тонкая настройка предварительно обученной языковой модели с помощью 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 модель.

Вы найдете гораздо более подробно, обновленное руководство по языку обучения модели здесь.

Источник - я создатель библиотеки

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