Подготовка данных для обучения

Тема дорожной карты · Большие языковые модели (LLM)

Подготовка данных для обучения — это процесс преобразования курируемых текстовых данных в формат, пригодный для обучения больших языковых моделей (LLM). Этот шаг является критически важным, так как качество данных напрямую влияет на производительность модели. Несмотря на то, что количество данных важно, качество данных играет еще более значительную роль. Например, 500 качественных примеров могут оказаться более ценными, чем 50 000 примеров среднего качества.

Как это работает

Подготовка данных для обучения включает в себя несколько ключевых шагов. Сначала текстовые данные нормализуются, чтобы устранить различия в кодировках и пробелах. Затем текст токенизируется с использованием токенизатора модели, который преобразует текст в последовательность токенов. Для подготовки данных к обучению используются различные методы упаковки последовательностей в фиксированную длину, такие как concatenate-and-split или no-padding packing. После этого данные перемешиваются с использованием фиксированного seed для обеспечения случайности. Затем данные шардируются в стриминговый формат, такой как Parquet, WebDataset или Mosaic StreamingDataset. Для специфических задач, таких как supervised fine-tuning (SFT) и chat-данные, используются специальные шаблоны. В таких случаях loss маскируется только на ассистентских токенах, а часть данных отводится для held-out evaluation.

Когда применять

Подготовка данных для обучения применяется в нескольких случаях. Сначала используются промптинг и RAG (Retrieval-Augmented Generation) для решения задач. Fine-tuning применяется, когда в домене есть специфичный словарный запас или стиль, который не может быть обобщен. Также fine-tuning используется, когда требуется структурированный и последовательный output. В некоторых случаях fine-tuning может быть использовано для снижения задержек (latency-sensitive distillation), когда маленькая модель обучается на основе output frontier. Методы LoRA (Low-Rank Adaptation) и QLoRA (Quantized Low-Rank Adaptation) делают fine-tuning доступным на одной GPU, что значительно упрощает процесс обучения.

Типичные ошибки

Типичные ошибки при подготовке данных для обучения включают fine-tuning в ситуациях, где промптинг или RAG могут решить задачу (ловушка затрат). Другой распространенной ошибкой является загрязнение данных обучения eval-данными, что приводит к переобучению модели. Также модель может столкнуться с проблемой катастрофического забывания, когда она теряет общие способности в угоду узкой задаче. Наконец, отсутствие версионирования данных обучения и рецептов может сделать невозможным воспроизведение результатов.

Связанные понятия

Полезные ресурсы