Ajuste Fino de Modelos de Linguagem Apenas com Passagens de Frente
Fine-Tuning Language Models with Just Forward Passes
May 27, 2023
Autores: Sadhika Malladi, Tianyu Gao, Eshaan Nichani, Alex Damian, Jason D. Lee, Danqi Chen, Sanjeev Arora
cs.AI
Resumo
O ajuste fino de modelos de linguagem (LMs) tem obtido sucesso em diversas tarefas subsequentes, mas, à medida que os LMs aumentam em tamanho, a retropropagação exige uma quantidade proibitivamente grande de memória. Métodos de ordem zero (ZO) podem, em princípio, estimar gradientes usando apenas duas passagens diretas, mas são teoricamente considerados catastróficamente lentos para otimizar modelos grandes. Neste trabalho, propomos um otimizador de ordem zero eficiente em memória (MeZO), adaptando o método clássico ZO-SGD para operar in-place, permitindo assim o ajuste fino de LMs com a mesma pegada de memória que a inferência. Por exemplo, com uma única GPU A100 80GB, o MeZO pode treinar um modelo de 30 bilhões de parâmetros, enquanto o ajuste fino com retropropagação pode treinar apenas um LM de 2,7B com o mesmo orçamento. Realizamos experimentos abrangentes em diversos tipos de modelos (LMs mascarados e autorregressivos), escalas de modelos (até 66B) e tarefas subsequentes (classificação, múltipla escolha e geração). Nossos resultados demonstram que (1) o MeZO supera significativamente o aprendizado em contexto e a sondagem linear; (2) o MeZO alcança desempenho comparável ao ajuste fino com retropropagação em várias tarefas, com redução de memória de até 12x; (3) o MeZO é compatível com técnicas de ajuste de parâmetros completos e eficientes, como LoRA e prefix tuning; (4) o MeZO pode otimizar efetivamente objetivos não diferenciáveis (por exemplo, maximizar precisão ou F1). Apoiamos nossas descobertas empíricas com insights teóricos, destacando como um pré-treinamento adequado e prompts de tarefas permitem que o MeZO ajuste modelos enormes, apesar das análises clássicas de ZO sugerirem o contrário.
English
Fine-tuning language models (LMs) has yielded success on diverse downstream
tasks, but as LMs grow in size, backpropagation requires a prohibitively large
amount of memory. Zeroth-order (ZO) methods can in principle estimate gradients
using only two forward passes but are theorized to be catastrophically slow for
optimizing large models. In this work, we propose a memory-efficient
zerothorder optimizer (MeZO), adapting the classical ZO-SGD method to operate
in-place, thereby fine-tuning LMs with the same memory footprint as inference.
For example, with a single A100 80GB GPU, MeZO can train a 30-billion parameter
model, whereas fine-tuning with backpropagation can train only a 2.7B LM with
the same budget. We conduct comprehensive experiments across model types
(masked and autoregressive LMs), model scales (up to 66B), and downstream tasks
(classification, multiple-choice, and generation). Our results demonstrate that
(1) MeZO significantly outperforms in-context learning and linear probing; (2)
MeZO achieves comparable performance to fine-tuning with backpropagation across
multiple tasks, with up to 12x memory reduction; (3) MeZO is compatible with
both full-parameter and parameter-efficient tuning techniques such as LoRA and
prefix tuning; (4) MeZO can effectively optimize non-differentiable objectives
(e.g., maximizing accuracy or F1). We support our empirical findings with
theoretical insights, highlighting how adequate pre-training and task prompts
enable MeZO to fine-tune huge models, despite classical ZO analyses suggesting
otherwise.