# Искусство подготовки данных: как фильтрация и дедупликация определяют успех языковых моделей

Источник: https://www.youtube.com/watch?v=9Cd0THLS1t0
Канал: Stanford Online
Опубликовано: 16.06.2025

---

## Искусство подготовки данных: как фильтрация и дедупликация определяют успех языковых моделей
[[JUMP:0:04]]

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

### 🤖 Алгоритмы фильтрации данных
[[JUMP:1:22]]

Основная задача фильтрации — отобрать из огромного массива «сырых» данных (например, Common Crawl) подмножество, максимально близкое к эталонному качественному набору. Основной принцип заключается в создании скоринговой функции, которая оценивает, насколько каждый документ соответствует целевым параметрам.

#### N-gram модели и Kneser-Ney
[[JUMP:2:44]]

Хотя сейчас эра нейросетей, классические N-gram модели остаются мощным инструментом благодаря своей скорости.

*   **Принцип работы:** Вычисление вероятности последовательности слов на основе частоты появления N-грамм.
*   **Инструмент:** Широко используется open-source библиотека **KenLM**, изначально созданная для задач машинного перевода.
*   **Ограничение:** N-gram модели очень просты, «сыры» и ограничены локальным контекстом, из-за чего их легко обмануть, но они отлично подходят для быстрой очистки данных от явного мусора.

#### FastText и линейная классификация
[[JUMP:8:34]]

Разработка Facebook (ныне Meta), ставшая стандартом индустрии для быстрой текстовой классификации.

*   **Суть:** Замена сложных нейронных сетей на линейные классификаторы с использованием понижения размерности (hidden dimension).
*   **Масштабируемость:** Для обработки N-грамм используется хеширование, что позволяет избежать проблем с неограниченным ростом словаря.
*   **Сравнение:** По мнению лектора, это более производительное решение по сравнению с «тяжелыми» моделями типа BERT, если цель — обработать терабайты данных.

#### Importance Sampling (Важностное сэмплирование)
[[JUMP:13:32]]

Метод основан на статистических методах Монте-Карло. Вместо того чтобы просто классифицировать «хорошо/плохо», мы пытаемся уравновесить распределение данных, компенсируя нехватку высококачественных примеров. Этот подход считается более принципиальным для обеспечения разнообразия в обучающей выборке.

### 🎯 Прикладные кейсы: от математики до токсичности
[[JUMP:23:44]]

Машинное обучение на «всём подряд» часто неэффективно. Иногда важно ограничить модель конкретной предметной областью.

*   **Языковая идентификация:** Использование FastText позволяет отсеивать «нецелевые» языки, что критично при ограниченных вычислительных мощностях, чтобы не «размывать» способности модели в основном языке.
*   **Математический контент (Open Web Math):** Авторы проекта использовали комбинированный подход: простые правила фильтрации + KenLM (обученный на доказательствах) + FastText для предсказания «математичности» текста. Результат: 15 млрд токенов, которые показали лучшие результаты, чем модели на выборках в 20 раз большего объема.
*   **Фильтрация качества (Phi-1):** Здесь применили синтетический подход — использование GPT-4 для классификации 100 000 учебных документов, на которых затем обучили Random Forest классификатор для фильтрации всего объема данных.
*   **Токсичность:** Для создания безопасной среды обучения используются датасеты вроде *Jigsaw Toxic Comments*, на основе которых обучаются классификаторы для выявления оскорблений и «небезопасного для работы» (NSFW) контента.

### 🧹 Дедупликация: как не учить модель на «мусоре»
[[JUMP:36:56]]

Повторяющийся контент — бич веб-данных. Например, в наборе C4 одна и та же фраза с карточки товара Amazon обнаруживалась 61 000 раз. Дедупликация нужна не только для экономии вычислений, но и для предотвращения «зазубривания» (memorization), что важно для приватности и соблюдения авторских прав.

#### Точная дедупликация и фильтры Блума
[[JUMP:46:47]]

Если нужно найти полные дубликаты, эффективно использовать хеширование (например, MurmurHash). Фильтры Блума позволяют проверять принадлежность элемента к множеству с невероятной эффективностью по памяти.

*   **Плюсы:** Легко параллелится (MapReduce), высокая точность.
*   **Минусы:** Не видит «почти дубликаты», где изменена пара слов.

#### Приблизительная дедупликация (MinHash LSH)
[[JUMP:58:53]]

Когда документы отличаются лишь парой знаков препинания или слов, используется Jaccard similarity.

*   **MinHash:** Алгоритм, который сводит сложную задачу попарного сравнения к вычислению хеша для одного документа. Вероятность коллизии хешей здесь в точности равна сходству по Жаккару.
*   **Locality Sensitive Hashing (LSH):** Техника «шарпирования» вероятностей. С помощью комбинации нескольких хеш-функций (bands и rows) можно добиться резкого порога: документы либо «схлопываются» в один, либо считаются разными.

В завершение лекции было отмечено: несмотря на наличие алгоритмических инструментов, «чувство данных» приходит только через глубокое погружение, ручной просмотр примеров и постоянные эксперименты с фильтрацией.