Проект представляет собой модуль Python, который облегчает предварительную подготовку Bert. Текущее существующее решение с открытым исходным кодом для обучения этой конкретной модели является запутанным. Мы упростили процедуру. Цель проекта состоит в том, чтобы открыть код для более широкого сообщества машинного обучения, чтобы помочь практикующим ML обучать свои собственные модели BERT, используя свои данные. Код был создан для обучения новейшей итерации модели VMware BERT (VBERT), чтобы помочь исследователям машинного обучения и обработки естественного языка в VMWare.
Демо -ноутбук находится в демо -папке
Установите виртуальную Env Python 3.7 или 3.8 и установите требования, используя
pip install . из корневой папки
или
pip install git+https://github.com/vmware-labs/bert-pretraining
Создайте предварительные данные с помощью create_pretring_data.py от https://github.com/google-research/bert.
Вы можете создать отдельный файл eval, если вы хотите оценить точность MLM и NSP вашей модели на отдельном наборе EVAC во время обучения.
Вы также можете разделить один файл на обучение и оценки векторов, используя параметр fartio в объекте конфигурации.
Параметры предварительной подготовки обрабатываются через класс pretraining_config. Пожалуйста, следуйте Demo.ipynb, чтобы запустить образец Bert Pretraining.
Pretraining_config Params
| Параметр | Значение по умолчанию | Описание |
|---|---|---|
| model_name | Демоберт | Название модели |
| is_base | Истинный | Логический выбор между Bert-Base и Bert-Large |
| max_seq_length | 128 | MSL, должен соответствовать файлу TFRECORD (генерируйте 2 отдельных файла, если вы хотите предварительно добывать BERT с различными MSLS EG: 128, 512) |
| max_predictions_per_seq | 20 | Количество токенов, замаскированных для MLM, должно соответствовать файлу TFRECORD |
| num_train_steps | 1000 | Количество шагов для обучения модели, заканчивается, если мы достигнем конца файла tfrecord (значимая предварительная подготовка потребует больше учебных шагов) |
| num_warmup_steps | 10 | Количество шагов разминки, Берт использует 1% тренировочных этапов в качестве этапов разминки |
| Learning_Rate | 1e-05 | Модель обучения |
| train_batch_size | 32 | Размер тренировочной партии (разделен по графическим процессорам) |
| save_intermediate_checkpoints | Истинный | Сохраните контрольные точки для каждых учебных этапов «X», определяемых Save_checkpoint_steps. Контрольная точка всегда будет сохранена в конце обучения |
| save_intermediate_checkpoint_steps | 25000 | Сохраняет контрольно -пропускной пункт после каждых этапов тренировок X '(не включая шаги разминки) |
| eval_batch_size | 32 | Размер партии оценки (разделен по графическим процессорам) |
| max_eval_steps | 1000 | Количество шагов для выполнения оценки, когда нет отдельного файла eval. Если предоставлен отдельный файл eval или если предоставлен Split_ratio, весь набор данных Eval используется для оценки |
| eval_point | 1000 | Выполняет оценку для каждых учебных этапов «X» |
| split_ratio | Никто | Процент обучающего набора данных для оценки, если вы хотите разделить обучение TFRECORD на DRAIN, наборы данных EVACE. Если коэффициент разделения не предоставлен, учебный файл будет использоваться для еваляции (количество этапов оценки контролируется параметром MAX_EVAL_STEPS) |
| init_checkpoint | Никто | Если вы возобновите обучение, предоставьте путь к предыдущей контрольной точке. Если вы инициализируете обучение с контрольной точки без по умолчанию (BERT-BASE, BERT-LARGE), предоставьте модель контрольно-пропускного пункта/Путь). |
| input_file | ./input/demo_msl128.tfrecord | Ввод файл tfrecord, созданный с использованием create_pretring_data.py от https://github.com/google-research/bert |
| eval_file | Никто | Если вы хотите использовать отдельный набор данных Eval, предоставьте входной файл tfrecord, созданный с использованием create_pretring_data.py от https://github.com/google-research/bert |
| log_csv | ./Eval_Results.csv | Файл, который хранит результаты оценки ** |
| output_dir | ./ckpts | Каталог для хранения контрольных точек |
| num_gpu | 3 | Количество графических процессоров для обучения |
** Файл вывода log_csv записывает гиперпараметры и результаты оценки
Файл Demo.tfrecord был создан из набора данных Wikicorpus.
Проектная команда, представляющая Берт, приветствует вклад сообщества. Прежде чем начать работать с этим проектом, прочитайте и подпишите наше лицензионное соглашение о участнике (https://cla.vmware.com/cla/1/preview). Если вы хотите внести свой вклад в код и не подписали наше лицензионное соглашение о участнике (CLA), наш бот предложат вам это сделать, когда вы откроете запрос на привлечение. Для любых вопросов о процессе CLA, пожалуйста, обратитесь к нашим anporming.md.
Apache-2.0