![](https://habrastorage.org/webt/oo/dz/hd/oodzhdqgenl5kne_kkr-gbkkvsc.jpeg)
Пожалуй, для адаптации больших языковых моделей (large language model, LLM) под чётко очерченные задачи обработки естественного языка (natural language processing, NLP) нет технологии лучше, чем SFT (supervised fine-tuning). Для дообучения модели её необходимо предварительно обучить, а это означает, что она уже многому научилась из широкого спектра текстов.
Но можно ли после одного лишь предварительного обучения использовать модель в различных типах задач? Да, но ей всё равно будет не хватать совершенствования при помощи SFT, чтобы она действительно могла выполнять требуемые действия и стала опытной в определённой сфере знаний.
Что такое supervised fine-tuning?
Fine-tuning с учителем (supervised fine-tuning, SFT) — это практика, традиционно применяемая в машинном обучении, и, в частности, в контексте трансферного обучения с предварительно обученным моделями (pre-trained model). В основе методики fine-tuning лежит применение исчерпывающего понимания языка, полученного при предыдущем обучении, и подстройка его под необходимую область применения. Эта методика особенно ценна в мире многопараметрических больших языковых моделей, где повторное обучение всей модели с нуля на полном датасете — это вычислительно очень затратная задача.
Fine-tuning применяется как вспомогательный процесс обучения моделей. Это часть парадигмы трансферного обучения в сфере NLP, в ней полученные при помощи предварительного обучения под исходную задачу инсайты при помощи fine-tuning переносятся на целевую задачу. Использование этой парадигмы привело к существенному прогрессу в области NLP, позволив лучше обобщать модели в широком спектре задач и предметных областей.
Fine-tuning стабильно обеспечивает наилучшие результаты в различных задачах NLP, например, в обработке речи и текста, включая такие процессы, как классификация, извлечение мнений для анализа тональности текста, машинного перевода и генерации текста. Этот прогресс продемонстрировал эффективность fine-tuning при использовании предварительно обученных моделей для решения узких задач.
Методики supervised fine-tuning стали стандартной практикой конвейеров разработки моделей NLP. Подстройка предварительно обученных моделей ИИ под целевую функцию при помощи относительно малого объёма размеченных данных обеспечивает практичное решение для создания моделей под конкретные области применения. Широкий успех fine-tuning преобразовал сферу NLP и стал фундаментом разработки высокоточных языковых моделей.
Данные для SFT
В отличие от методик без учителя, в которых данные заранее не верифицируются и не размечаются, SFT явным образом применяет размеченные данные для управления процессом корректировки модели. Такой контроль даёт модели чёткую обратную связь во время обучения, что приводит к более сосредоточенному обучению и повышенной точности модели при выполнении конкретной задачи.
Предварительно обученные LLM подстраиваются под конкретную задачу при помощи размеченных данных, в которых присутствуют и входные примеры, и соответствующие им корректные выходные данные. Наличие таких размеченных данных позволяет модели в процессе дообучения изучать паттерны и взаимосвязи, специфичные для конкретной цели.
Размеченные данные, применяемые для fine-tuning предварительно обученной языковой модели, обычно предварительно валидируются, то есть тщательно проверяются или аннотируются с целью обеспечения качества и релевантности целевой задаче. Подобный процесс валидации гарантирует успешность процесса fine-tuning и усвоение моделью значимых представлений.
Почему вам нужен SFT, если вы разрабатываете LLM?
У предварительно обученных моделей уже есть обширные знания, так почему бы не использовать их без fine-tuning? Действительно, обученным языковым моделям уже знакомо множество данных, но они просто не настроены, чтобы использовать их под конкретные цели.
Они похожи на выпускников школы, готовящихся пойти в университет. Методики fine-tuning применяются в качестве «университета», в котором LLM получает свою специализацию. При таком подходе предварительно обученные языковые модели подстраиваются под требования конкретной задачи при помощи обучения на размеченных данных, специально собранных по этому случаю.
Supervised fine-tuning неизменно приводит к совершенствованию точности LLM в узких задачах по сравнению с точностью предварительно обученных моделей. Так получается, потому что при fine-tuning LLM обновляются параметры моделей, также называемые весами. Размеченные данные предметной области, применяемые при этом процессе, переконфигурируют систему ИИ, делая её прогнозы точнее. Однако получить такие данные непросто: необходимо привлечь специалистов в предметной области и сформировать продуманную систему контроля качества.
Так как предварительно обученные LLM уже содержат существенный объём лингвистических знаний, fine-tuning позволяет модели использовать эти знания и с минимальным дополнительным обучением адаптировать их под нужные области применения.
Преимущества SFT
Эффективность при относительно малом объёме данных
Fine-tuning позволяет модели быстро адаптироваться под целевую задачу при относительно малом объёме размеченных данных, избегая проблемы дефицита данных, часто встречающейся во многих реальных областях применения. Эффективное обучение на ограниченном объёме размеченных данных по конкретной задаче возможно благодаря уже имеющимся в предварительно обученной модели знаниям.
Универсальность и гибкость, позволяющие подстроиться под любую конкретную задачу
Fine-tuning — это гибкий способ подстройки одной и той же предварительно обученной LLM под множество способов применения в различных предметных областях. Такая гибкость обеспечивает возможность соответствия широкому спектру требований сфер применения NLP, благодаря чему одна модель может выполнять множество задач. Благодаря fine-tuning на основе данных для конкретной области применения модель может умело освоить все задачи без необходимости создания отдельной модели под каждую.
Повышение точности модели
Прямолинейное использование предварительно обученной модели в узкой задаче обычно не показывает хороших результатов. Выходные данные не будут идеальными, даже если ответы могут быть логически валидными. Например ответ техподдержки, полученный от обычной предварительно обученной модели, может показаться грубым. Чтобы он походил на ответ реального сотрудника техподдержки, к ответу необходимо добавить вводную часть и ремарки.
И именно в таких случаях способен помочь fine-tuning. Благодаря fine-tuning на основе данных, размеченных под конкретную область применения, модель может обучиться специфическим для задачи паттернам и признакам, что критично для точного прогнозирования результата. Таким образом модель может усваивать тонкости и взаимосвязи, специфические для конкретной цели, которые отсутствуют в исходной обученной модели.
Экономичность
Благодаря многократному использованию обученных моделей и меньшему количеству размеченных примеров SFT может существенно снизить траты вычислительных ресурсов и времени на аннотирование данных и обучение модели, что приводит к повышению экономичности процесса.
В отличие от обучения с нуля, для fine-tuning предварительно обученной модели обычно требуется меньше мощностей обработки данных, потому что предварительно обученная модель уже способна извлекать соответствующие признаки из передаваемой ей информации. Поэтому fine-tuning в основном состоит из подстройки этих признаков под специфику новой задачи. Благодаря этому обычно требуется меньше вычислительных затрат, в том числе занимаемой памяти и времени обучения, что приводит к экономии средств.
Пошаговое описание supervised fine-tuning
- Формулировка задачи и выбор модели. На начальном этапе SFT дата-саентисты формулируют задачу, которую должна выполнять LLM, например, ответы на вопросы или обработка текста, в том числе классификация, перевод и так далее.
Затем специалисты выбирают обученную модель, подходящую для всех задач, которые она должна будет выполнять. Она должна быть обучена на большом датасете и в идеале на задачах, схожих с теми, которые требуются работодателю. Среди популярных моделей LLM можно назвать BERT, GPT, Llama и так далее;
- Подготовка данных. Далее дата-саентисты собирают библиотеку датасета, релевантную сформулированным задачам. Датасет должен быть размечен, так как supervised fine-tuning требует размеченных данных (пар «ввод-вывод»), чтобы во время обучения модель получала обратную связь;
- Токенизация датасета. Это процесс токенизации текстовых входных данных, их преобразования в меньшие представления, которые может обработать модель;
- Fine-tuning языковой модели. Модель подвергается fine-tuning на основе размеченного датасета при помощи методик обучения с учителем. В процессе обучения параметры модели обновляются при помощи обратного распространения (backpropagation) на основании градиента функции потерь, вычисленной между прогнозами модели и эталонной разметкой. Чем больше минимизирована функция потерь, тем лучше — это значит, что модель генерирует результаты, наиболее близкие к данным обучения.
При fine-tuning выполняется настройка базовых гиперпараметров, то есть изменение таких параметров, как скорость обучения, размер батча и сила регуляризации для обеспечения оптимальной точности модели. Чтобы избежать переобучения, критически важно при настройке гиперпараметров оценивать точность модели на датасете валидации. - Оценка дообученной LLM. После завершения дополнительного обучения дообученная модель оценивается по тестовому датасету, чтобы определить её точность с неизвестными ей данными. В такой тестовый датасет обычно включают данные, которые модель может встретить в реальных областях применения. Выбор подходящих метрик оценки для определения точности модели сам по себе является сложной задачей;
- Развёртывание модели. Если дата-саентистов устраивает точность модели, они интегрируют дообученную LLM в свою инфраструктуру ПО или экосистему приложений. После реализации необходимо продолжить тестирование и совершенствование модели. Специалисты обеспечивают должный мониторинг и обслуживание модели, чтобы обеспечить её актуальность и точность.
Типы supervised fine-tuning
Чтобы разобраться в типах supervised fine-tuning, необходимо помнить, что LLM — это нейронная сеть глубокого обучения, состоящая из множества слоёв. Каждый слой состоит из чисел, или параметров, также называемых весами модели. Существует огромное количество таких параметров, выстроенных в слои нейронной сети, которые представляют собой таблицы чисел (матрицы).
Существует несколько типов supervised fine-tuning, различающихся по количеству параметров, изменяемых в процессе обучения.
Полный fine-tuning
В случае полного fine-tuning вся модель подвергается обновлению всех параметров при помощи размеченных данных. В каком-то смысле этот тип SFT схож с предварительным обучением, но на меньшем количестве данных. Так как модификации подвержены все веса модели, а их может быть много миллиардов, такой подход требует огромных вычислительных ресурсов.
В чём заключаются преимущества полного fine-tuning? Благодаря этому процессу модель может обучиться новым признакам и представлениям по всем слоям архитектуры. Это приводит к максимальной гибкости адаптации большой языковой модели под конкретную задачу. Полный fine-tuning часто приводит к существенному повышению точности по сравнению с применением предварительно обученной модели, подвергнутой более ограниченным методикам fine-tuning.
Parameter-efficient fine-tuning (PEFT)
PEFT — это ещё одна методика fine-tuning, оставляющая неприкосновенной фундаментальное понимание языка. При ней меняется только часть весов. Ключевая идея, лежащая в её основе — это добавление к уже обученным LLM слоёв под конкретные задачи (адаптеры), которые затем подвергаются fine-tuning на основании датасета задачи. Веса предварительно обученной модели остаются «замороженными». Основное преимущество PEFT заключается в том, что он существенно снижает вычислительные затраты по сравнению с fine-tuning, сохраняя при этом сравнимую точность.
Instruction fine-tuning
В основе instruction fine-tuning лежит идея предоставления модели размеченных примеров, отражающих желаемое поведение или ответ. Такие примеры служат в качестве инструкций для модели, подталкивая её к генерации подходящих выходных данных на основании переданных ей входных данных или запроса.
Во время fine-tuning модель обучается на этом датасете инструкций, учась генерировать ответы, согласованные с переданными ей инструкциями. Передавая модели разнообразный спектр пар «инструкция-ответ» и соответствующим образом выполняя её fine-tuning, методика instruction fine-tuning помогает улучшить понимание и соблюдение моделью конкретных инструкций.
Fine-tuning и RAG
Supervised fine-tuning обладает некоторыми общими свойствами с Retrieval Augmented Generation (RAG). Обе методики применимы для специализированной настройки языковых моделей под конкретные области использования. Однако способы достижения этой цели различаются.
RAG делает упор на комбинирование техник поиска и генерации, стремясь внедрить внешнее знание или контекст в генеративные языковые модели, а SFT концентрируется на адаптации предварительно обученных моделей к конкретным сценариям использования.
RAG позволяет модели получать информацию из готовой базы знаний и добавлять её в промт языковой модели. Это работает следующим образом:
- LLM перенаправляет пользовательский промт модели эмбеддингов, где он преобразуется в числовой вид;
- Затем эти промты сравниваются с базами знаний;
- Модель эмбеддинга находит релевантные данные;
- Найденная информация интегрируется в промт большой языковой модели как дополнительный специфический контекст;
- Модель эмбеддингов преобразует данные обратно в удобный для пользователя формат, чтобы добавить эту информацию в ответ LLM;
- Выходные данные, сочетающие в себе и найденную информацию, и исходный промт, передаются пользователю.
В SFT параметры предварительно обученной модели регулируются на основании вычисленных потерь. В Retrieval Augmented Generation (RAG) во время процесса поиска и генерации параметры модели остаются неизменными. Кроме того, в RAG применяется дополнительная внешняя информация, а SFT использует специально отобранные размеченные данные.
Можно с уверенностью сказать, что RAG будет наиболее полезной в ситуациях, когда информация часто эволюционирует или постоянно меняется. Эта методика идеальна для областей применения, в которых для совершенствования ответов модели выполняется доступ к внешним источникам, например, к базам данных, записям или другим репозиториям данных. SFT обеспечивает глубокое согласование с конкретными стилями или областями знания, а RAG в основном делает упор на поиск информации.
Сложно определить, какой подход больше подходит для настройки LLM под конкретные задачи. В некоторых случаях хорошей идеей будет их комбинирование для получения оптимальных результатов. Ниже мы перечислим некоторые аспекты, которые могут помочь вам в выборе методики.
Преимущества SFT
- SFT эффективен в задачах, где имеются размеченные данные и желателен прямой контроль за поведением модели;
- Он позволяет выполнять точную настройку параметров модели под целевую задачу, что приводит к тонкой регулировке под требования конкретной задачи;
- SFT позволяет выполнять fine-tuning одной и той же модели под разные задачи.
Аргументы в пользу RAG
- RAG не требует размеченных данных, поэтому лучше подходит для случаев, когда размеченных данных недостаточно или они отсутствуют;
- RAG обеспечивает преимущество в задачах, требующих внедрения внешнего знания или контекста;
- Особенно полезен он в случаях, когда данные обновляются очень часто.
Как оценивается эффективность supervised fine-tuning?
Оценка supervised fine-tuning включает в себя определение точности модели при работе с неизвестными ей данными. Из популярных метрик можно перечислить accuracy, precision, recall, F1-score, mean squared error (MSE), BLEU score и так далее. Выбор метрик зависит от типа задачи: классификация, регрессия, машинный перевод и так далее.
Перед тем, как выбирать методы и метрики оценки, необходимо выработать чёткое понимание задачи, под которую выполняется fine-tuning модели. Вот краткое объяснение каждой метрики:
- Accuracy измеряет долю корректно классифицированных экземпляров из суммарного количества экземпляров в датасете;
- Precision обозначает способность модели избегать ложноположительных прогнозов. Высокое значение precision означает, что модель совершает меньше ложноположительных ошибок;
- Recall указывает на способность модели определять все положительные экземпляры. Высокое значение recall означает, что модель совершает меньше ложноотрицательных ошибок;
- F1 Score — это среднее гармоническое значение precision и recall. Оно показывает баланс между precision и recall.
Наряду с метриками оценки для определения качества модели используются другие методики, например, оценка человеком. В частности, такой подход применяется в методике deep evaluation. После анализа сценариев использования модели дата-саентисты выбирают необходимые метрики для оценки эффективности модели. Последующий конвейер оценки наряду с использованием алгоритмов ИИ включает в себя и проверку людьми.
Заключение
Настройка больших языковых моделей — критический важный шаг в максимизации их полезности и эффективности. Предварительно обученные LLM, несмотря на хорошее общее понимание языка, могут плохо быть плохо подстроены под тонкости конкретной задачи. Их истинный потенциал раскрывается благодаря таким методикам настройки, как supervised fine-tuning.
SFT позволяет обучать LLM выполнению определённого действия. Модель узнаёт особенности целевой области применения и повышает свою точность. Особенно удобен SFT в случаях, когда размеченных данных обучения очень мало. Он не требует большого количества данных, потому что уже обладает фундаментальными знаниями. Системе лишь необходим небольшой толчок, чтобы лучше справляться с выполнением конкретных действий.
Предварительно обученные большие языковые модели не только получают преимущество от supervised fine-tuning, но и повышают общее удобство пользования ими. Благодаря fine-tuning на основе специфических для задачи данных предварительно обученные LLM могут достигать более высоких уровней точности по сравнению с обобщённой моделью, что делает их более эффективными в широком спектре областей применения NLP.
Понравилась статья? Еще больше информации на тему данных, AI, ML, LLM вы можете найти в моем Telegram канале.
- Как подготовиться к сбору данных, чтобы не провалиться в процессе?
- Как работать с синтетическими данными в 2024 году?
- В чем специфика работы с ML проектами? И какие бенчмарки сравнения LLM есть на российском рынке?