O mascaramento curricular baseado em conceito (CCM) é uma estratégia de treinamento para o pré-treinamento eficiente do modelo de linguagem. Pode ser usado para transformadores de pré-treinamento com custos de computação relativamente mais baixos. Nossa estrutura mascara conceitos dentro de frases em ordem fácil de difíceis. O CCM atinge o desempenho comparativo com o BERT original usando apenas 1/2 de computação nos custos no benchmark de cola.
Este repositório contém código para o nosso artigo EMNLP 2022: pré-treinamento eficiente do modelo de linguagem mascarada por meio do mascaramento de currículo baseado em conceito. Para uma descrição detalhada e resultados experimentais, consulte o artigo.
Resultados no conjunto de dev cola
| Modelos | Cola | SST | Mrpc | Sts | Rte |
|---|---|---|---|---|---|
| Bert (pequeno, 14m) | 38.0 | 88.7 | 82.8 | 82.0 | 59.2 |
| CCM (pequeno, 14m) | 42.8 | 89.1 | 84.1 | 83.3 | 61.3 |
| Bert (médio, 26m) | 44.9 | 89.6 | 85.4 | 82.7 | 60.3 |
| CCM (médio, 26m) | 48.0 | 90.9 | 86.7 | 83.6 | 61.4 |
| Bert (base, 110m) | 49.7 | 90.8 | 87.8 | 85.4 | 67.8 |
| CCM (base, 110m) | 60.3 | 93.1 | 88.3 | 85.5 | 65.0 |
| Modelos | Mnli | Qqp | Qnli |
|---|---|---|---|
| Bert (pequeno, 14m) | 76.8 | 88.4 | 85.8 |
| CCM (pequeno, 14m) | 77.5 | 88.6 | 86.3 |
| Bert (médio, 26m) | 78.9 | 89.4 | 87.6 |
| CCM (médio, 26m) | 80.0 | 89.2 | 87.6 |
| Bert (base, 110m) | 81.7 | 90.4 | 89.5 |
| CCM (base, 110m) | 84.1 | 91.0 | 91.4 |
Baixe as afirmações do conceito.
# Download assertions in the data folder.
$ wget ./data/assertions.csv https://s3.amazonaws.com/conceptnet/precomputed-data/2016/assertions/conceptnet-assertions-5.5.0.csv.gz
# run concept_extraction.py
$ python ./script/concept_extraction.py
Use ./script/basicconcept_selection.py para criar o primeiro estágio do currículo com conceitos básicos que estão conectados a muitos outros conceitos no gráfico de conhecimento e ocorrem frequentemente no corpus de pré-treinamento.
--conceptnet_path : um caminho para o arquivo conceitual pré-adolescente.--topk_connected_concepts : os principais conceitos K que estão conectados a muitos outros conceitos no gráfico de conhecimento.--corpus_dir : um diretório que contém arquivos de texto bruto para se transformar em exemplos de pré-treinamento MLM.--delete_threshold : limiar de frequência para filtrar conceitos raros.--basicConcepts_num : Defina o número de conceitos básicos usados para o currículo.--save_path : um caminho para salvar o conjunto de conceitos básicos. Use ./script/curriculum_construction.py para construir o currículo baseado em conceito com conceitos básicos.
--conceptnet_path : um caminho para o arquivo conceitual pré-adolescente.--num_of_hops : Defina o número de lúpulos para adicionar conceitos relacionados ao conjunto de conceitos do próximo estágio.--basic_concept_path : Um caminho para carregar o conjunto de conceitos básicos.--save_dir : um caminho para salvar o conjunto de conceitos para cada estágio do currículo.--num_of_stages : defina o número de estágio para o currículo. Use ./script/curriculum_construction.py para identificar conceitos no corpus e organizá -los junto com o currículo.
--corpus_dir : um diretório que contém arquivos de texto bruto para se transformar em exemplos de pré-treinamento MLM.--save_dir : um caminho para salvar o corpus pré-processado.--curriculum_dir : Um diretório que contém o currículo baseado em conceito.--process_num : defina o número de processadores da CPU para o pré-processamento. Finalmente, use ./script/pre-training.py para pré-trainar seus modelos com o mascaramento curricular baseado em conceito.
--curriculum_dir : Um diretório que contém o currículo baseado em conceito.--lr : defina a taxa de aprendizado.--epochs : defina o número de épocas.--batch_size : Defina o tamanho do lote para conduzir de uma só vez.--step_batch_size : Defina o tamanho do lote para atualização por cada etapa (se a memória da GPU for suficiente, defina o batch_size e o step_batch_size o mesmo.--data_path : um diretório contendo exemplos pré-processados.--warmup_steps : Defina o número de etapas para aquecer o modelo com o MLM original.--model_size : Escolha o tamanho do modelo para pré-treinar. Para obter ajuda ou problemas usando o CCM, envie um problema do GitHub.
Para comunicação pessoal relacionada ao CCM, entre em contato com Mingyu Lee <[email protected]> ou Jun-hyung park <[email protected]> .