Свежая выжимка ml и AI статей - каждый день
С приходом крупных языковых моделей (LLMs), таких как GitHub Copilot, производительность программистов значительно улучшилась, особенно в области генерации кода. Однако, эти модели часто сталкиваются с трудностями при выполнении реальных задач без тонкой настройки. По мере увеличения размеров и производительности LLM, тонкая настройка для специализированных задач становится все более дорогостоящей. Методы параметрически-эффективной тонкой настройки (PEFT), которые настраивают только подмножество параметров модели, предлагают перспективное решение, снижая вычислительные затраты на настройку LLM, сохраняя при этом их производительность.
Существующие исследования исследовали использование PEFT и LLM для различных задач, связанных с кодом, и обнаружили, что эффективность методов PEFT зависит от задачи. Применение методов PEFT для генерации юнит-тестов остается малоизученным. Состояние дел ограничено использованием LLM с полной настройкой для генерации юнит-тестов. В данной статье мы исследуем как полную настройку, так и различные методы PEFT, включая LoRA, (IA)³ и настройку подсказок, на разных архитектурах и размерах моделей. Мы используем хорошо установленные бенчмарковые наборы данных для оценки их эффективности в генерации юнит-тестов. Наши результаты показывают, что методы PEFT могут обеспечивать производительность, сопоставимую с полной настройкой, делая специализированную настройку более доступной и экономически эффективной. Особенно выделяется настройка подсказок как наиболее эффективный метод с точки зрения затрат и использования ресурсов, в то время как LoRA приближается к эффективности полной настройки в нескольких случаях.
Классическая задача моделирования языка заключается в предсказании следующего слова в последовательности, учитывая предыдущие слова. Модель обучается в автокорреляционном режиме. Примером такой модели является модель GPT. Обучение автокорреляционной модели включает в себя подгонку функции ( f: \mathbb{R}^{N \times D} \rightarrow \mathbb{R}^{N \times D} ), где ( N ) представляет длину последовательности токенов, каждый токен имеет размерность ( D ). Модель стремится оценить условное распределение вероятностей, обозначаемое как ( p ), которое можно выразить следующим образом:
[ p(x_{1:T} | c) = \prod_{t=1}^T p(x_t | x_{1:t-1}, c) ]
где ( x_t \in \mathbb{R}^D ) представляет собой ( t )-й дискретный токен, ( c ) обозначает начальный контекст или входную последовательность, а ( T ) обозначает длину последовательности предсказанных токенов.
LLM обычно предварительно обучаются на огромном объеме данных, что дает им широкое понимание языковых шаблонов и семантики. Эта фаза предварительного обучения позволяет LLM улавливать сложные лингвистические структуры и контекстуальные нюансы, наделяя их мощным фундаментом для различных задач обработки естественного языка.
Методы параметрически-эффективной тонкой настройки (PEFT) предоставляют альтернативный способ настройки предварительно обученной модели путем обучения так называемых адаптеров. Здесь большинство (если не все) параметров предварительно обученной модели замораживаются, и обучаются только небольшое количество параметров. Эти адаптеры часто на порядки меньше полной модели, что делает их особенно удобными для обмена, хранения и загрузки. Более того, некоторые методы PEFT даже облегчают использование пакетов с разными задачами, позволяя различной обработке для разных примеров внутри пакета.
Методы PEFT можно классифицировать на три основных класса: аддитивные, селективные и основанные на репараметризации.
Этот подход сосредоточен на добавлении к предварительно обученной модели дополнительных параметров или слоев. Только новые компоненты обучаются, сохраняя веса оригинальной модели замороженными. Популярные техники в этой категории включают (IA)³, адаптеры и настройку подсказок.
Адаптеры: Адаптеры, или "бутылочные адаптеры", были первым предложенным методом PEFT. Класс "адаптеров" вводит маленькие полносвязные сети, размещенные после определенных подслоев внутри модели. Они помогают модели адаптироваться к новой задаче без значительного изменения основного представления, полученного во время предварительного обучения.
Мягкие подсказки: Эти техники сосредоточены на создании так называемых "мягких подсказок". Настройка подсказок, введенная Lester et al., настраивает подмножество входных эмбеддингов модели, позволяя модели адаптироваться к новым задачам без изменения параметров модели.
При использовании селективных подходов настраивается только определенное подмножество параметров предварительно обученной модели. Это требует тщательного выбора параметров для обновления, обеспечивая, что они наиболее релевантны для новой задачи.
Эта категория использует техники, которые реформулируют параметры оригинальной модели в более эффективное обучаемое представление. Это позволяет работать с высокоразмерными матрицами, одновременно уменьшая количество обучаемых параметров. LoRA является общим методом, основанным на репараметризации.
В этом исследовании мы провели первую эмпирическую оценку использования различных методов PEFT для генерации юнит-тестов с помощью LLM. Наши результаты показывают, что методы PEFT могут обеспечивать производительность, сопоставимую с полной настройкой, при значительно меньших вычислительных затратах. Настройка подсказок оказалась наиболее эффективной с точки зрения затрат и использования ресурсов, в то время как LoRA демонстрирует стабильность и надежность, близкую к полной настройке. Это исследование подчеркивает потенциал PEFT в уменьшении затрат на настройку LLM для специализированных задач, таких как генерация юнит-тестов, и предлагает практические руководства для выбора наиболее подходящего метода настройки в зависимости от размера модели и характеристик задачи.