Este repositório implementa o algoritmo de gradiente de Gradiente (Mezo-SVRG) com eficiência de Memória com Eficiência Zeroth (MEZO-SVRG) para o rosto de abraço pré-treinado, LMS. Como linhas de base, também implementamos o Optimizador ZO (MEZO) com eficiência de memória e MEZO) e SGD de primeira ordem (FO-SGD). O repositório é escrito em Pytorch e aproveita a estrutura Pytorch Lightning.
Para instalar o ambiente Python relevante, use o comando
conda create --name zo_opt python=3.9
conda activate zo_opt
python -m pip install -r requirements.txtEsse repositório implementa o algoritmo Mezo-SVRG e permite ajustes finos em um intervalo em modelos de idiomas usando o conjunto de dados de referência de cola. Para executar experimentos, execute o script 'Finetune_llm.sh'.
O script suporta os seguintes modelos:
O script suporta as seguintes tarefas de cola:
Indique o algoritmo de ajuste fino, passando um dos seguintes {'fo', 'zo', 'zosvrg'}. As configurações exatas de hiperparâmetro usadas para gerar as tabelas/figuras no papel são fornecidas no apêndice.
Por favor, considere citar nosso artigo se você usar nosso código:
@misc{gautam2024variancereduced,
title={Variance-reduced Zeroth-Order Methods for Fine-Tuning Language Models},
author={Tanmay Gautam and Youngsuk Park and Hao Zhou and Parameswaran Raman and Wooseok Ha},
year={2024},
eprint={2404.08080},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
Consulte contribuindo para mais informações.
Este projeto está licenciado sob a licença Apache-2.0.