Ce référentiel implémente l'algorithme de gradient stochastique à variance stochastique économe en mémoire (Mezo-SVRG) pour le réglage des étreintes pré-trainée FACEAGE LMS. En tant que lignes de base, nous implémentons également ZO Optimizer (MezO) et SGD de premier ordre (FO-SGD). Le référentiel est écrit en pytorch et exploite le framework Pytorch Lightning.
Pour installer l'environnement Python pertinent, utilisez la commande
conda create --name zo_opt python=3.9
conda activate zo_opt
python -m pip install -r requirements.txtCe référentiel implémente l'algorithme Mezo-SVRG et permet un réglage fin sur une plage sur les modèles de langage à l'aide de l'ensemble de données de référence Glue. Pour exécuter des expériences, exécutez le script bash 'finetune_llm.sh'.
Le script prend en charge les modèles suivants:
Le script prend en charge les tâches de colle suivantes:
Indiquez l'algorithme de réglage fin en faisant passer l'un des {'fo', 'zo', 'zosvrg'}. Les paramètres hyperparamètres exacts utilisés pour générer les tables / chiffres du papier sont fournis en annexe.
Veuillez envisager de citer notre papier si vous utilisez notre code:
@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}
}
Voir contribuer pour plus d'informations.
Ce projet est concédé sous licence Apache-2.0.