O projeto é um módulo Python que facilita a pré -treinamento de Bert. A solução atual de código aberto existente para o treinamento deste modelo específico é complicado. Simplificamos o procedimento. O objetivo do projeto é abrir o código para a comunidade mais ampla de aprendizado de máquina para ajudar os profissionais de ML a treinar seus próprios modelos BERT usando seus dados. O código foi criado para treinar a mais recente iteração do modelo Bert (VBERT) da VMware para ajudar os pesquisadores de aprendizado de máquina e processamento de linguagem natural no VMware.
O caderno de demonstração está localizado na pasta de demonstração
Configure um Python 3.7 ou 3.8 Env virtual e instale os requisitos usando
pip install . De dentro da pasta raiz
ou
pip install git+https://github.com/vmware-labs/bert-pretraining
Crie os dados de pré-treinamento usando create_pretring_data.py de https://github.com/google-research/bert.
Você pode criar um arquivo de avaliação separado se quiser avaliar as precisão do MLM e NSP do seu modelo em um conjunto de avaliação separado durante o treinamento.
Você também pode dividir um único arquivo em vetores de treinamento e avaliação usando o parâmetro split_ratio no objeto Config.
Os parâmetros de pré -treinamento são tratados através da classe Pretrening_Config. Siga a demonstração.
PRESTRAING_CONFIG params
| Parâmetro | Valor padrão | Descrição |
|---|---|---|
| Model_name | Demobert | Nome do modelo |
| is_base | Verdadeiro | Booleano para selecionar entre Bert-Base e Bert-Large |
| max_seq_length | 128 | MSL, deve ser consistente com o arquivo tfrecord (gerar 2 arquivos separados se você quiser pré -trainar Bert com diferentes MSLs, por exemplo: 128, 512) |
| max_predictions_per_seq | 20 | O número de tokens mascarado para MLM deve ser consistente com o arquivo tfrecord |
| NUM_TRAIN_STEPS | 1000 | Número de etapas para treinar o modelo, termina se chegarmos ao final do arquivo tfrecord (o pré -treinamento significativo exigiria mais etapas de treinamento) |
| NUM_WARMUP_STEPS | 10 | Número de etapas de aquecimento, Bert usa 1% das etapas de treinamento como etapas de aquecimento |
| Aprendizagem_rate | 1E-05 | Taxa de aprendizado de modelo |
| TRIN_BATCH_SIZE | 32 | TAMANHO DE TREINAMENTO LOTA (dividido em GPUs) |
| save_intermediate_checkpoints | Verdadeiro | Salve pontos de verificação para todas as etapas de treinamento 'X' decididas pelo SAVE_CHECKPOINT_STEPS. O ponto de verificação sempre será salvo no final do treinamento |
| save_intermediate_checkpoint_steps | 25000 | Economiza o ponto de verificação após todas as etapas de treinamento 'X' (sem incluir etapas de aquecimento) |
| Eval_batch_size | 32 | Tamanho do lote de avaliação (dividido em GPUs) |
| max_eval_steps | 1000 | Número de etapas para executar a avaliação quando não há arquivo de avaliação separada. Se um arquivo de avaliação separado for fornecido ou se Split_ratio for fornecido, todo o conjunto de dados de avaliação será usado para avaliação |
| Eval_Point | 1000 | Realiza avaliação para todas as etapas de treinamento 'X' |
| split_ratio | Nenhum | Porcentagem do conjunto de dados de treinamento a ser usado para avaliação, se você deseja dividir o treinamento TFRCORD no trem, avaliar os conjuntos de dados. Se nenhuma relação dividida for fornecida, o arquivo de treinamento será usado para Evaulation (o número de etapas de avaliação é controlado pelo parâmetro max_eval_steps) |
| init_checkpoint | Nenhum | Se você estiver retomando o treinamento, forneça o caminho para o ponto de verificação anterior. Se você estiver inicializando o treinamento de um ponto de verificação não padrão (Bert-Base, Bert-Large), forneça o nome/caminho do ponto de verificação do modelo). |
| input_file | ./input/demo_msl128.tfrecord | Entrar o arquivo tfrecord criado usando Create_pretrening_data.py de https://github.com/google-research/bert |
| Eval_File | Nenhum | Se você deseja usar o conjunto de dados de avaliação separada, forneça o arquivo tfrecord de entrada criado usando create_pretring_data.py de https://github.com/google-research/bert |
| log_csv | ./eval_results.csv | Arquivo que armazena os resultados da avaliação ** |
| output_dir | ./ckpts | Diretório para armazenar os pontos de verificação |
| NUM_GPU | 3 | Número de GPUs para usar para treinamento |
** O arquivo de saída log_csv registra os hiperparameters e os resultados da avaliação
O arquivo Demo.tfrecord foi criado no conjunto de dados Wikicorpus.
A equipe do projeto de pretexto de Bert recebe contribuições da comunidade. Antes de começar a trabalhar com este projeto, leia e assine nosso contrato de licença de colaborador (https://cla.vmware.com/cla/1/preview). Se você deseja contribuir com o código e não assinou nosso contrato de licença de colaborador (CLA), nosso bot solicitará que você o faça quando abrir uma solicitação de tração. Para qualquer dúvida sobre o processo do CLA, consulte o nosso contribuindo.md.
Apache-2.0