Повышение уровня владения Llama2 Python с помощью методов контролируемой тонкой настройки и адаптации низкого ранга

Введение

В нашей предыдущей статье подробно рассматривалась Llama 2, представляя семейство моделей большого языка (LLM), которые Meta недавно представила и предоставила сообществу для исследования и коммерческого использования. Есть варианты, уже предназначенные для конкретных задач; например, Llama2-Chat для приложений чата. Тем не менее, мы, возможно, захотим еще больше адаптировать программу LLM для нашего приложения.

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

В этой статье мы описываем систематический подход к повышению квалификации Llama2 в задачах кодирования Python путем тонкой настройки на пользовательском наборе данных. Во-первых, мы курируем и согласовываем набор данных с оперативной структурой Llama2 для достижения наших целей. Затем мы используем контролируемую точную настройку (SFT) и квантованную низкоранговую адаптацию (QLoRA) для оптимизации базовой модели Llama2. После оптимизации мы объединяем веса нашей модели с базовым Llama2. Наконец, мы покажем, как выполнять логический вывод с использованием точно настроенной модели и как он сравнивается с базовой моделью.

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

Контролируемая точная настройка