Руководство для начинающих по Fine-Tuning модели LLM

Fine-Tuning модели LLM руководство для начинающих

Как настроить Llama и другие LLM с помощью одного инструмента

Изображение от автора

Растущий интерес к крупным языковым моделям (LLM) привел к всплеску инструментов и оболочек, разработанных для упрощения процесса их обучения.

Популярными вариантами являются FastChat от LMSYS (используется для обучения Викуны) и библиотеки transformers/trl от Hugging Face (используется в моей предыдущей статье). Кроме того, каждый крупный проект LLM, такой как WizardLM, обычно имеет свой собственный сценарий обучения, вдохновленный оригинальной реализацией Alpaca.

В этой статье мы будем использовать Axolotl, инструмент, созданный коллективом OpenAccess AI. Мы будем использовать его для настройки модели Code Llama 7b на наборе данных evol-instruct, состоящем из 1 000 образцов кода Python.

🤔 Почему Axolotl?

Основное преимущество Axolotl заключается в том, что он предоставляет все необходимые инструменты в одном месте, включая множество функций, архитектур моделей и активное сообщество. Вот краткий список моих любимых вещей в нем:

  • Конфигурация: Все параметры, используемые для обучения LLM, аккуратно хранятся в конфигурационном файле yaml. Это удобно для обмена и воспроизведения моделей. Пример для Llama 2 можно увидеть здесь.
  • Гибкость набора данных: Axolotl позволяет указывать несколько наборов данных с различными форматами подсказок, такими как alpaca ({"instruction": "...", "input": "...", "output": "..."}), sharegpt:chat ({"conversations": [{"from": "...", "value": "..."}]}) и raw completion ({"text": "..."}). Совмещение наборов данных происходит без проблем, и устраняется необходимость в едином формате подсказки.
  • Функции: Axolotl упакован в передовые техники, такие как FSDP, deepspeed, LoRA, QLoRA, ReLoRA, sample packing, GPTQ, FlashAttention, xformers и rope scaling.
  • Утилиты: Интегрировано множество удобных утилит для пользователя, включая добавление или изменение специальных токенов или настройку пользовательской конфигурации wandb.

Некоторые известные модели, обученные с использованием этого инструмента, включают Manticore-13b от коллектива OpenAccess AI и Samantha-1.11–70b от Эрика Хартфорда. Как и другие оболочки, он построен на основе библиотеки transformers и использует многие из ее возможностей.

⚙️ Создайте свой собственный конфигурационный файл