Código-fonte do artigo longo EMNLP2022: O ajuste com eficiência de parâmetros faz uma boa cabeça de classificação
arxiv
Nós descobrimos que
- Ajuste o LM pré-treinado com um algoritmo com parâmetros eficientes.
- Ajuste o LM pré-treinado inicializando o cabeçote de classificação com peso de 1.
geralmente melhor que o ajuste fino direto.
Implementamos nossos métodos com base em uma biblioteca de código aberto SwissArmyTransformers.
Etapa 1.
Baixe o ponto de verificação de RoBERTa-Large ou BERT-Large (fornecido por SwissArmyTransformer) e descompacte.
Etapa 2.
Adicione o caminho do diretório do ponto de verificação à linha 5 em EH-FT/roberta/scripts/finetune.sh
Etapa 3.
cd EH-FT/roberta
python scripts/run_multiseed.py --number-gpu 1 --gpu-s 0 --seed-per-gpu 1 --dataset rte --finetune-type 2step+bitfit
Passo 4.
cd EH-FT/roberta
python scripts/run_multiseed.py --number-gpu 1 --gpu-s 0 --seed-per-gpu 1 --dataset rte --finetune-type 2step+bitfit
O script iniciará processos [number-gpu] com gpu [gpu-s], gpu [gpu-s+1], ..., gpu [gpu-s + number-gpu - 1]. Cada processo possui uma semente aleatória diferente.
Você pode alterar o conjunto de dados e o tipo de ajuste fino.
Conjunto de dados: rte, mrpc, boolq, wic, cb, copa, wsc, qnli, stsb
Tipo Finetune | nome em papel |
---|---|
todos | ajuste fino tradicional |
2 passos + cabeça | LP-FT |
2passos+bitfit | EH-FT(BitFit) |
2passos+lora | EH-FT(LoRA) |
2passos+pt | EH-FT(PT) |
bitft/lora/pt | Ajuste BitFit/LoRA/Prefixo |
cabeça | Sondagem Linear |
criança | sintonia infantil |
mixagem | Mistura |
Passo 4.
Veja os resultados em execuções/usando tensorboard.