Усовершенствованная технология быстрой настройки больших моделей
Усовершенствованная технология быстрой настройки больших моделей

Основной метод быстрой настройки LLM

Оперативная настройка для очень масштабных моделей

За последние два года, с развитием технологии быстрой настройки, во многих работах было обнаружено, что для моделей с более чем 1 миллиардом параметров выигрыш от быстрой настройки намного выше, чем от стандартной точной настройки. Для небольших выборок. , даже производительность нулевых выборок также может быть значительно стимулирована благодаря Количество параметров достаточно велико , используемый в процессе обучения достаточно корпуса , разработанный в то же время Предтренировочные задания достаточно эффективны . Самой классической крупномасштабной языковой моделью является GPT-3, предложенная в 2020 году, которая имеет примерно 175 миллиардов параметров, и обнаружено, что для нее нужно только разработать соответствующие шаблоны или инструкции. Реализация обучения с нулевой выборкой без обучения параметрам

С конца 2022 по начало 2023 года волна AIGC также прокатилась внутри страны и за рубежом. Типичными представителями являются большие модели ChatGPT и GPT-4, выпущенные OpenAI, Bard, выпущенные Google, и Wen XiNYyan, выпущенные Baidu. . Сверхбольшие модели вступили в новую эру, и эти потрясающие мир продукты неотделимы от мощной технологии быстрой настройки. В этой статье по умолчанию используется GPT-3 в качестве примера, чтобы представить несколько методов быстрой настройки для сверхбольших масштабов, а именно:

  • Контекстное обучение (ICL) : Непосредственно выберите небольшое количество обучающих выборок в качестве подсказок для выполнения задачи;
  • Инструкция-Тюнинг : Создайте набор инструкций задачи, чтобы предложить Модели дать обратную связь на основе инструкций задачи;
  • Цепочка мыслей (CoT) : Дайте или вдохновите Модель информацией с рассуждениями и объяснениями и направьте Модель на получение разумных результатов с помощью линейной цепочки.

1. Контекстное обучение

Контекстное обучение (ICL) было впервые предложено в GPT-3. Оно направлено на выбор небольшого количества помеченных образцов из обучающего набора и разработку инструкций, связанных с заданием, для формирования шаблона подсказки, который используется для направления тестовых образцов. генерировать соответствующие результаты.

Обычно используемые методы контекстного обучения включают в себя:

  • zero-shot learning
    • определение: Опишите задачу, Затем предоставьте тестовые данные, чтобы спрогнозировать это, Просто позвольте предварительному обучению состоятьсяиз Модель Перейти к тестированию задач.
    • Пример: Введите в поле «Модель» «Для этой задачи требуется перевод с китайского на английский. Распродажа->”, Затем попросите Модель предсказать, каким должен быть следующий результат: Правильный ответ — «продать».
  • one-shot learning
    • определение: существуют до обучения и между реальными переведенными образцами, Вставьте образец для справки. Эквивалентно существованию предварительно обученных результатов и между задачами, которые необходимо выполнить, Приведите пример, Перевод Tell Model с английского на французский, Это надо перевести так.
    • Пример: Введите в поле «Модель» «Для этой задачи требуется перевод с китайского на английский. Привет->hello, Распродажа->”, Затем попросите Модель предсказать, каким должен быть следующий результат: Правильный ответ — «продать».
  • few-shot learning
    • определение: существуют до обучения и между реальными переведенными образцами, Вставьте несколько образцов (обычно 10–100) для справки. Эквивалентно существованию предварительно обученных результатов и между задачами, которые необходимо выполнить, Приведите несколько примеров, Расскажите Модели, как это должно работать.
    • Пример: Введите в поле «Модель» «Для этой задачи требуется перевод с китайского на английский. Привет->hello, до свидания->goodbye, Купить->purchase, Распродажа->”, Затем попросите Модель предсказать, каким должен быть следующий результат: Правильный ответ — «продать».

В настоящее время контекстное обучение все еще имеет определенный разрыв с обычной тонкой настройкой, а результаты прогнозирования имеют большой разброс, а также требуется время для рассмотрения построения шаблонов.

2. Instruction-Tuning (обучение инструкциям)

Вторая технология Prompt для сверхбольших моделей — это обучение инструкциям. Фактически, Prompt-Tuning — это, по сути, инструкция для последующих задач. Проще говоря: она сообщает модели, какие задачи ей нужно выполнить и какой контент ей нужно вывести. Дискретные или непрерывные шаблоны, о которых мы упоминали выше, по сути, являются напоминаниями о задачах. Таким образом, при точной настройке крупномасштабной модели инструкции могут быть определены для различных типов задач и обучены для улучшения способности модели к обобщению для различных задач.

Что такое настройка инструкций? Давайте отбросим в сторону все концепции и подумаем о себе как о модели. Я даю вам два задания:

  • 1. Я повел свою девушку в ресторан. Она прекрасно провела время. Этот ресторан был таким __!
  • 2. Определите эмоцию этого предложения: Я повел свою девушку в ресторан, и она прекрасно провела время. Варианты: A=хорошо, B=средне, C=плохо.
  • Какую задачу вы считаете легкой??представлять себе:Легче судить, чем создавать??Подсказка — это первый режим, а Инструкция — второй режим.

Суть инструкций-настройки и быстрой настройки одна и та же, а именно обнаружение знаний о самой языковой модели. Разница между ними заключается в следующем:

  • Promptэто стимулировать речь МодельизВозможность завершения,Например, по первой половине предложения сгенерируйте вторую половину или заполните пробелы.
  • Instruction-Tuningстимулирующий язык Модельизспособность понимать,Давая более очевидные инструкции/инструкции,Пусть Модель поймет и предпримет правильные действия.
  • Оперативная настройка Существовать может дать определенный эффект даже без тонкой настройки Модель,Но Instruct-Tuning должен быть точно настроен.,Сообщите модели этот шаблон команды.

Пример:

  • Например, при классификации рецензий на фильмы самым простым шаблоном подсказки (Подсказка) является «. It was [маска].», но он не выделяет конкретные характеристики задачи. Мы можем дать ему шаблон (плюс Инструкцию), который может выделить характеристики задачи, например « movie review is . It was [маска].", а затем сопоставьте выходной результат положения маски с определенной меткой с помощью Verbalizer. Этот тип шаблона с характеристиками задачи можно назвать инструкцией.

Как реализовать настройку инструкций?

Создайте 10 шаблонов инструкций для каждой задачи и посмотрите среднюю и лучшую производительность во время тестирования.

существование Вставьте сюда описание изображения
существование Вставьте сюда описание изображения
3. Цепочка мыслей

Концепция цепочки мыслей (ЦП) была впервые предложена в статье Google «Подсказки цепочки мыслей вызывают рассуждения в больших языковых моделях». Цепочка мыслей (CoT) — это модифицированная стратегия подсказок, используемая для повышения эффективности LLM в сложных задачах рассуждения, таких как арифметические рассуждения, рассуждения на основе здравого смысла и символические рассуждения.


CoT ничего похожего на ICL так же просто, как ввод и вывод, верно, подсказка о сборке,Скорее, он сочетает в себе промежуточные этапы рассуждения.,Эти шаги выводят окончательный результат в командную строку. Проще говоря,Цепочка мыслей — это своего рода дискретное быстрое обучение.,более конкретно,большой Модель Внизизконтекстное обучение (то есть обучение не выполняется, примеры добавляются в начале текущего образца ввода, а Модель вводит эти тексты один раз для вывода для выполнения задачи), по сравнению с предыдущим традиционным контекстным обучением. обучение (то есть использование x1, y1, x2, y2,...xtest в качестве входных данных, чтобы позволить большой Модели завершить выходные данные ytest), Цепочка У мыслей есть больше советов по выводу из середины середины.


В качестве примера возьмем математическую задачу:

  • Модель не смогла дать правильный ответ. Но если мы дадим Модели некоторые идеи о решении задач, как на экзамене по математике, мы распишем процесс решения задач и, наконец, получим ответ, иначе мы не получим балл. ЦТ Это то, что я делаю
  • Подобные арифметические задачи, Цепочка мысли подсказывают существование и автоматически приводят рассуждения, прежде чем дать ответ: «Сначала у Роджера было 5 мячей. 2 коробки по 3 теннисных мяча равны 6,5. + 6 = 11” «Изначально в столовой было 23 яблока, из них мы использовали 20, 23-20=3; купили еще 6 яблок, 3+6=9.

Приведенные выше примеры доказывают, что подсказки цепочки мышления дают правильный ответ, но традиционное обучение подсказкам, которое непосредственно дает ответ, неверно, и даже самые простые математические расчеты не могут быть выполнены хорошо. Проще говоря, языковой модели сложно напрямую преобразовать всю семантику в уравнение, поскольку это более сложный мыслительный процесс, но она может лучше рассуждать о каждой части проблемы посредством промежуточных шагов.

Классификация ЦТ:

  • ЦТ с несколькими кадрами: это особый случай ICL, который расширяет каждую демонстрацию 〈вход, выход〉 в 〈вход, ЦТ, вывод〉 путем объединения этапа вывода ЦТ.
  • Zero-shot CoT:и Few-shot CoT другой существовать prompt Демонстрации задач, помеченных вручную, не включены. Вместо этого он напрямую генерирует шаги вывода, а затем использует сгенерированные CoT чтобы получить ответ. (в LLM Сначала “Let’s think step by step” предлагает сгенерировать шаги вывода, которые затем задаются формулой “Therefore, the answer is” Подсказки к окончательному ответу。они нашли,Когда размер Модели превышает определенный размер,Эта стратегия значительно повысит производительность,Но, конечно, мелкомасштабная модель неэффективна.,демонстрируют значительную картину возникающих способностей).

Эффективная цепочка мышления должна иметь следующие характеристики:

  • логичный:Цепочка Каждый шаг мышления в мыслях должен иметь логическую взаимосвязь, и они должны быть связаны друг с другом, образуя целостный мыслительный процесс.
  • Комплексность:Цепочка Мысли должны рассмотреть проблему максимально всесторонне и тщательно, следя за тем, чтобы никакие возможные факторы и воздействия не были оставлены без внимания.
  • осуществимость:Цепочка Каждый мыслительный шаг в мыслях должен быть осуществимым, то есть практичным и осуществимым.
  • проверяемость:Цепочка Каждый шаг мышления в мыслях должен быть проверяемым, то есть иметь возможность проверить его правильность и обоснованность на основе фактических данных и фактов.
существование Вставьте сюда описание изображения
существование Вставьте сюда описание изображения
PEFT (эффективная точная настройка больших параметров модели)

в настоящий моментсуществовать Промышленное применениебольшой Модель Основной метод:Точная настройка с эффективным использованием параметров (PEFT),Метод PEFT позволяет точно настроить лишь несколько или дополнительные параметры модели.,зафиксированный Большинство предварительно обученных параметров,Значительно снижает затраты на расчеты,В то же время наиболее продвинутыйиз PEFT Эта технология также позволяет достичь производительности, эквивалентной полномасштабной точной настройке.

Этот метод позволяет эффективно адаптировать PLM к различным задачам последующих приложений без необходимости точной настройки всех параметров предварительно обученной модели и делает возможной полную точную настройку больших моделей на оборудовании потребительского уровня.


Широко используемые в настоящее время методы PEFT в основном делятся на три категории:

  • Prefix/Prompt-Tuning:существовать Модельиз Добавление входного или скрытого слоя
k

дополнительные обучаемые префиксные токены (эти префиксы являются последовательными псевдотокенами и не соответствуют реальным токенам) и обучают только эти параметры префикса;

  • Adapter-Tuning:будет меньшеиз Предварительное обучение вставке уровня нейронной сети или модуля Модельизкаждый слой,Эти новые вставкииз Нейронные модули называются адаптер, только эти параметры адаптера обучаются во время тонкой настройки последующих задач;
  • LoRA:Изучая малые параметрыизматрица низкого ранга для аппроксимации Модельвесовая матрица
W

Обновление параметров, во время обучения оптимизируются только параметры матрицы низкого ранга;

Кроме того, Huggface предоставила библиотеку PEFT с открытым исходным кодом для эффективной точной настройки больших моделей. Эта библиотека алгоритмов поддерживает три вышеуказанных типа методов и может вызываться напрямую.

1. Prefix Tuning

Prefix-Tuning добавляет непрерывную векторную последовательность, специфичную для задачи (непрерывные векторы, специфичные для задачи) перед входными данными модели, называемую префиксом. Префикс трактуется как последовательность «виртуальных токенов», но состоит из свободных параметров, не соответствующих реальным токенам. В отличие от полной тонкой настройки, при которой обновляются все параметры PLM, Prefix-Tuning исправляет все параметры PLM и обновляет только тот префикс, который оптимизирует конкретную задачу. Таким образом, во время производственного развертывания необходимо хранить только копию большого PLM и изученный префикс для конкретной задачи, а каждая последующая задача требует лишь очень небольших дополнительных затрат на вычисления и хранение.

Точная настройка обновляет все параметры PLM и требует сохранения полной копии модели для каждого задания. Настройка префикса замораживает параметры PLM и оптимизирует только префикс. Таким образом, для каждой задачи необходимо сохранять только определенные префиксы, что делает настройку префиксов модульной и экономит место для хранения.


Взяв в качестве примера авторегрессионную языковую модель GPT2, введите

x

и вывод

y

Сращенный в

z=[x;y]

, вычислите представление скрытого слоя через определенный слой LM

h=[h_1,...,h_i,....,h_n]

,

h_i=LM_Ø(z_i, h<i)

,в,

X_{idx}

и

Y_{idx}

являются индексами входной и выходной последовательностей соответственно.

Prefix-Tuning добавляет префикс перед вводом, т.е.

z=[Prefix,x,y]

,

P_{idx}

- индекс префиксной последовательности,

|P_{idx}|

длина префикса. Префиксный индекс соответствует

θ

параметризованная векторная матрица

P_θ

, размеры

|P_{idx}|×dim(h_i)

. Представление скрытого слоя: если индекс является префиксным индексом.

P_{idx}

, прямо из

P_θ

Скопируйте соответствующий вектор как

h_i

(Добавьте векторы префикса к каждому слою модели.);В противном случае перейдите напрямую LM Рассчитано при этом после LM рассчитанный

h_i

Также зависит от параметра префикса слева

P_θ

,Прямо сейчасИспользуйте префиксы, чтобы повлиять на последующие значения активации скрытого слоя последовательности.


Но напрямую оптимизировать

P_θ

Приведет к нестабильному обучению из-за меньшей матрицы

P_w

и более крупная нейронная сеть прямого распространения

MLP_θ

верно

P_θ

Выполните репараметризацию:

P_θ[i,:]=MLP_θ(P_w[i,:])

. Во время тренировки параметры ЛМ

Ø

Исправлено, только префиксные параметры

θ

являются обучаемыми параметрами. После завершения обучения остается только префикс

P_θ

сохраняется.


Идеи методов P-Tuning и Prefix-Tuning очень похожи. P-Tuning использует небольшое количество параметров непрерывного внедрения в качестве подсказок, чтобы лучше применять GPT к задачам NLU, в то время как Prefix-Tuning предназначен для задач NLG. время, только параметры P-Tuning добавляются в слой внедрения, а Prefix-Tuning добавляет обучаемые параметры в каждый слой.


Метод быстрой настройки можно рассматривать как упрощение префиксной настройки. Он фиксирует параметры всей предварительно обученной модели и позволяет задавать только дополнительные параметры каждой последующей задачи.

k

Обновляемые токены добавляются к входному тексту, и никакие дополнительные уровни кодирования или выходные слои для конкретной задачи не используются.

2. Adapter Tuning

и Prefix Tuningи Prompt Tuning Этот тип можно обучить и добавить перед вводом. prompt embedding Параметры для адаптации небольшого количества параметров к последующим задачам,Настройка адаптера заключается в добавлении новых сетевых уровней или модулей между сетевыми уровнями в предварительно обученной модели для адаптации к последующим задачам.


Предположим, что предварительно обученная функция модели выражается как

Ø_w(x)

, для настройки адаптера после добавления адаптера функция модели обновляется до

Ø_{w,w_0}(x)

,

w

— параметры предварительно обученной модели,

w_0

— параметр вновь добавленного адаптера. В процессе обучения.

w

фиксировано, только

w_0

обновляться.

|w_0|<<|w|

,Это позволяет другим последующим задачам добавлять лишь небольшое количество обучаемых параметров.,Экономьте накладные расходы на вычисления,Также поделитесь масштабной предтренировочной Моделью.

Series Структура адаптера адаптера ii Transformer Интеграция показана на рисунке выше. Модуль адаптера добавляется к каждому Transformer Два слоя: после многоголового отображения внимания и после двух слоев нейронной сети прямого распространения. Адаптер представляет собой Модуль структуры узкого места состоит из двухслойной нейронной сети прямого распространения (состоящей из матрицы нисходящей проекции, нелинейной функции и матрицы восходящей проекции) и остаточной связи между выходами.

существование Вставьте сюда описание изображения
существование Вставьте сюда описание изображения
3. LoRA

Вышеупомянутый метод настройки адаптера добавляет уровень адаптера на основе PLM, что приведет к дополнительным вычислениям и вызовет проблемы с задержкой вывода, в то время как метод настройки префикса трудно оптимизировать, и его производительность меняется немонотонно с размером файла; Более фундаментально, часть префикса резервируется для префикса. Длина последовательности обязательно уменьшает длину последовательности, доступную для обработки последующих задач. Итак, Microsoft представила метод LoRA.


Адаптация низкого ранга — это технология точной настройки с эффективным использованием параметров. Ее основная идея состоит в том, чтобы выполнить неявное преобразование низкого ранга весовой матрицы большой модели, то есть приблизительно представить модель через представление более низкой размерности. Многомерная матрица или набор данных.

Основной принцип: технология LoRA фиксирует вес предварительно обученной модели.,И ввести обучаемый слой (называемый матрицей разложения ранга) в каждый блок Transformer.,То есть добавить «боковую ветвь» AиB рядом с Линейным слоем Модели существования. в,A уменьшает данные из измерения d в измерение r.,Это r — ранг LoRA.,является важным гиперпараметром; B переводит данные из измерения r в измерение d;,Параметры части B изначально равны 0. Модель После обучения,Для объединения и совместного использования требуется часть Ставь А+Б параметра ОригиналбольшойModelParameter.


псевдокод Python

Язык кода:javascript
копировать
input_dim = 768 # Например, скрытый размер предварительно обученной модели.
output_dim = 768 # Например, выходной размер слоя
rank = 8 # Ранг «r» для адаптации низкого ранга.
W = ... # Веса из предварительно обученной сети с формой input_dim x output_dim
W_A = nn.Parameter(torch.empty(input_dim, rank)) # LoRA вес А
W_B = nn.Parameter(torch.empty(rank, output_dim)) # Вес LoRA B инициализирует вес LoRA
nn.init.kaiming_uniform_(W_A, a=math.sqrt(5))
nn.init.zeros_(W_B)

def regular_forward_matmul(x, W):
  h = x @ W
  return h

def lora_forward_matmul(x, W, W_A, W_B):
  h = x @ W # Обычное матричное умножение
  h += x @ (W_A @ W_B) * alpha # Используйте масштабированные веса LoRA, коэффициент масштабирования альфа.
  return h

Метод LoRA на данный момент является одним из наиболее универсальных и эффективных методов тонкой настройки.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose