Использование больших языковых моделей для создания приложений генеративного ИИ связано с новыми задачами. Ключевая проблема — обеспечение качества ответов (точности и релевантности) в содержимом, сгенерированном моделью для заданного пользовательского запроса. В предыдущих уроках мы обсуждали такие техники, как инженерия подсказок и генерация с расширением за счет поиска, которые пытаются решить проблему путем изменения входных подсказок для существующей модели.
В сегодняшнем уроке мы рассмотрим третий метод — тонкую настройку, которая пытается решить задачу за счет дополнительного обучения самой модели на дополнительных данных. Давайте погрузимся в детали.
Этот урок вводит понятие тонкой настройки предварительно обученных языковых моделей, исследует преимущества и сложности этого метода, а также дает рекомендации, когда и как использовать тонкую настройку для улучшения работы ваших генеративных ИИ моделей.
К концу урока вы сможете ответить на следующие вопросы:
- Что такое тонкая настройка языковых моделей?
- Когда и почему тонкая настройка полезна?
- Как можно тонко настроить предварительно обученную модель?
- Каковы ограничения тонкой настройки?
Готовы? Приступим.
Хотите получить общую картину того, что мы рассмотрим, прежде чем углубляться? Ознакомьтесь с этим иллюстрированным руководством, описывающим путь обучения в этом уроке — от изучения основных концепций и мотивации для тонкой настройки до понимания процесса и лучших практик выполнения задачи тонкой настройки. Это увлекательная тема для изучения, не забудьте также посетить страницу Ресурсы для дополнительных ссылок, которые поддержат ваше самостоятельное обучение!
По определению, большие языковые модели предварительно обучены на большом объеме текстов, взятых из разных источников, включая интернет. Как мы узнали на предыдущих уроках, нам нужны техники, такие как инженерия подсказок и генерация с расширением за счет поиска, чтобы улучшить качество ответов модели на пользовательские вопросы («подсказки»).
Популярная техника инженерии подсказок заключается в том, чтобы дать модели больше указаний о том, что ожидается в ответе, предоставляя либо инструкции (явные указания), либо приводя несколько примеров (неявные указания). Это называется обучением с немногими примерами (few-shot learning), но у этого подхода есть два ограничения:
- Лимиты по количеству токенов модели могут ограничивать число примеров, которые можно привести, и снижать эффективность.
- Стоимость токенов модели может сделать добавление примеров к каждой подсказке дорогим и снизить гибкость.
Тонкая настройка — это распространённая практика в системах машинного обучения, когда берется предварительно обученная модель и дообучается на новых данных для улучшения результатов в конкретной задаче. В контексте языковых моделей мы можем тонко настроить предварительно обученную модель с использованием тщательно подобранного набора примеров для конкретной задачи или области применения, чтобы создать кастомную модель, которая может быть более точной и релевантной для этой конкретной задачи или области. Дополнительный плюс тонкой настройки — она может уменьшить количество примеров, необходимых для обучения с немногими примерами, снижая использование токенов и связанные с этим расходы.
В данном контексте, когда мы говорим о тонкой настройке, мы имеем в виду контролируемую тонкую настройку, при которой дообучение происходит за счет добавления новых данных, не входивших в исходный набор для обучения. Это отличается от неконтролируемой тонкой настройки, при которой модель дообучается на исходных данных, но с другими гиперпараметрами.
Главное, что нужно помнить: тонкая настройка — это продвинутая техника, требующая определенного уровня экспертности для достижения желаемых результатов. Если сделать неправильно, она может не дать ожидаемых улучшений и даже ухудшить работу модели для вашей выбранной области.
Поэтому, прежде чем изучать, "как" тонко настроить языковые модели, нужно понять "почему" стоит выбрать этот путь и "когда" начать процесс тонкой настройки. Начните с ответов на следующие вопросы:
- Случай использования: Какова ваша сфера применения для тонкой настройки? Какой аспект текущей предварительно обученной модели вы хотите улучшить?
- Альтернативы: Пытались ли вы использовать другие техники для достижения желаемого результата? Используйте их как базу для сравнения.
- Инженерия подсказок: попробуйте техники, такие как few-shot с примерами релевантных ответов. Оцените качество ответов.
- Генерация с расширением за счет поиска: попробуйте дополнять подсказки запросами, полученными из поиска по вашим данным. Оцените качество ответов.
- Затраты: Определили ли вы затраты на тонкую настройку?
- Возможность настройки — доступна ли предварительно обученная модель для тонкой настройки?
- Усилия — на подготовку обучающих данных, оценку и доработку модели.
- Вычислительные ресурсы — для запуска задач тонкой настройки и развертывания модели
- Данные — доступ к достаточному количеству качественных примеров для значимого влияния тонкой настройки
- Преимущества: Подтвердили ли вы выгоды от тонкой настройки?
- Качество — превзошла ли тонко настроенная модель исходную?
- Стоимость — снизилось ли использование токенов за счет упрощения подсказок?
- Расширяемость — можно ли использовать базовую модель для новых областей?
Ответив на эти вопросы, вы сможете решить, подходит ли тонкая настройка для вашего случая. Идеально, если выгоды превышают затраты. После того как вы решили двигаться дальше, пора подумать о том, как можно тонко настроить предварительно обученную модель.
Хотите получить больше информации о процессе принятия решения? Посмотрите видео Тонкая настройка: да или нет
Для тонкой настройки предварительно обученной модели вам понадобится:
- предварительно обученная модель для тонкой настройки
- набор данных для тонкой настройки
- среда для запуска задачи тонкой настройки
- среда размещения для развертывания тонко настроенной модели
Следующие ресурсы содержат подробные инструкции с пошаговыми примерами использования выбранной модели с подобранным набором данных. Для работы с этими учебными материалами вам понадобится учетная запись у конкретного провайдера, а также доступ к соответствующим моделям и наборам данных.
| Провайдер | Учебник | Описание |
|---|---|---|
| OpenAI | Как тонко настроить чат-модели | Научитесь тонко настраивать gpt-35-turbo для конкретной области ("помощник по рецептам"), подготавливая обучающие данные, выполняя задачу тонкой настройки и используя тонко настроенную модель для вывода. |
| Azure OpenAI | Учебник по тонкой настройке GPT 3.5 Turbo | Узнайте, как тонко настроить модель gpt-35-turbo-0613 в Azure, пройдя этапы создания и загрузки обучающих данных, запуска задачи тонкой настройки, развертывания и использования новой модели. |
| Hugging Face | Тонкая настройка LLM с Hugging Face | В этом блоге описан процесс тонкой настройки открытой большой языковой модели (например, CodeLlama 7B) с помощью библиотеки transformers и Transformer Reinforcement Learning (TRL) с использованием открытых наборов данных на Hugging Face. |
| 🤗 AutoTrain | Тонкая настройка LLM с AutoTrain | AutoTrain (или AutoTrain Advanced) — библиотека на Python от Hugging Face, позволяющая тонко настраивать различные задачи, включая LLM. AutoTrain — решение без кода; тонкая настройка может выполняться в вашем облаке, на Hugging Face Spaces или локально. Поддерживается веб-интерфейс, CLI и настройка через yaml-файлы. |
| 🦥 Unsloth | Тонкая настройка LLM с Unsloth | Unsloth — это open-source фреймворк, поддерживающий тонкую настройку LLM и обучение с подкреплением (RL). Unsloth упрощает локальное обучение, оценку и развертывание с помощью готовых блокнотов. Также поддерживает преобразование текста в речь (TTS), BERT и мультимодальные модели. Чтобы начать, ознакомьтесь с пошаговым Руководством по тонкой настройке LLM. |
Выберите один из приведенных выше учебников и пройдите его. Возможно, мы воспроизведем версию этих уроков в Jupyter Notebooks в этом репозитории только для справки. Пожалуйста, используйте оригинальные источники напрямую для получения самых актуальных версий.
После завершения этого урока посетите нашу Коллекцию по генеративному ИИ, чтобы продолжать углублять свои знания в генеративном ИИ!
Поздравляем!! Вы завершили последний урок из серии v2 этого курса! Не останавливайтесь на достигнутом, продолжайте учиться и создавать. **Посетите страницу РЕСУРСЫ для списка дополнительных рекомендаций именно по этой теме.
Наша серия уроков v1 также была обновлена с добавлением новых заданий и концепций. Потратьте минуту, чтобы освежить свои знания и, пожалуйста, делитесь своими вопросами и отзывами, чтобы помочь нам улучшить эти уроки для сообщества.
Отказ от ответственности: Этот документ был переведен с помощью сервиса машинного перевода Co-op Translator. Несмотря на наши старания обеспечить точность перевода, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникающие в результате использования данного перевода.

