Data preprocessing — процесс подготовки данных перед обучением модели, включающий очистку, нормализацию, фильтрацию, токенизацию и формирование конечного обучающего корпуса.
Определение
Data preprocessing — совокупность процедур, которые приводят сырые данные в форму, пригодную для обучения модели. Процесс охватывает очистку от шумов, дедупликацию, фильтрацию нежелательного контента, стандартизацию форматов, токенизацию и структурирование текстов или других типов данных. В LLM preprocessing определяет качество итоговой модели сильнее, чем отдельные архитектурные улучшения: чистый и сбалансированный корпус уменьшает галлюцинации, улучшает следование инструкциям и стабилизирует обучение.
Как работает
Подготовка данных выполняется в несколько этапов. Их порядок и конкретные методы зависят от задачи, но в production-системах для LLM применяется следующая структура:
- Сырой сбор (raw crawling) — получение данных из открытых источников или корпоративных хранилищ.
- Очистка (cleaning) — удаление HTML-артефактов, шаблонов, мусорных символов, рекламных блоков, невалидной кодировки.
- Фильтрация — удаление токсичных данных, спама, автогенерации, дубликатов, слишком коротких и слишком длинных последовательностей.
- Дедупликация — поиск и исключение повторяющихся документов и их фрагментов с использованием MinHash, locality-sensitive hashing или нейронных embedding-векторов.
- Нормализация — приведение текста к единым правилам: пробелы, пунктуация, разметка, кодировки, юникодные нормализации.
- Токенизация — преобразование текста в последовательность токенов на основе выбранного vocabulary (BPE, SentencePiece, Unigram).
- Разметка (опционально) — добавление инструкций, ролей, структурированных тегов, разбиение по диалоговым форматам.
- Финальная сборка корпуса — упаковка данных в шардированные бинарные файлы (например, WebDataset, MDS, TFRecord, Parquet).
Для больших корпусов preprocessing обычно выполняется в распределённой среде: тысячи файлов shard’ов, несколько этапов фильтрации, кэширование статистики и контроль качества на каждом шаге.
Где применяется
- Обучение больших языковых моделей.
- Подготовка данных для классификации, ранжирования, CV и аудио-моделей.
- RAG-системы — очистка документов перед индексацией.
- Embedding модели — стандартизация текстов для качественных векторов.
- Мультимодальные модели: выравнивание пар «текст–изображение».
Практические примеры использования
Большинство высококачественных LLM используют сложные pipelines preprocessing. Например, при подготовке данных для LLaMA и Mistral применяются нейронные фильтры качества, модельные классификаторы токсичности, крупномасштабная дедупликация и балансировка тематики корпуса. В RAG-продуктах preprocessing определяет релевантность векторной базы: ошибки в нормализации или сегментации документов ухудшают retrieval и приводят к галлюцинациям.
В корпоративных пайплайнах preprocessing включает анонимизацию, фильтрацию конфиденциальных данных, преобразование документов в набор унифицированных абзацев и проверку качества токенизации.
Ключевые свойства
- Формирует ядро качества будущей модели.
- Контролирует распределение тем, стилей и доменов.
- Снижает шум, повышая устойчивость обучения.
- Обеспечивает корректное соответствие между токенизатором и корпусом.
- Ограничивает дубликаты, уменьшая переобучение.
- Поддерживает расширяемость корпуса через шардирование.
Проблемы и ограничения
- Шумные данные приводят к деградации модели, даже если архитектура сильная.
- Недостаточная дедупликация вызывает переобучение и имитацию источников.
- Неправильная фильтрация может удалить ценные редкие примеры.
- Токенизация, несовместимая с корпусом, ухудшает переносимость модели.
- Большие объёмы данных требуют сложной распределённой инфраструктуры.
Преимущества и ограничения
- Плюс: радикальное улучшение качества модели при тех же параметрах.
- Минус: высокая стоимость подготовки корпусов и сложность контроля качества.
Связанные термины
- Data cleaning
- Tokenization
- Deduplication
- Dataset curation
- Embedding preprocessing