При предобучении правильный следующий токен берётся из самого текста. Поэтому разметка почти бесплатна, а качество цели зависит от того, какой текст собран, повторён, отфильтрован и смешан. Корпус является скрытой программой поведения модели.
Один документ создаёт тысячи примеров
После токенизации документ порождает цели
Loss:
Человеку не нужно подписывать каждый токен. Это self-supervised learning: структура входа сама создаёт target. Но «автоматически» не значит «нейтрально». Если корпус на 40% состоит из кода, то 40% токенных обновлений примерно идут из кода, с поправкой на длину и batching.
Следующий токен заставляет модель учить орфографию, синтаксис, факты и шаблоны рассуждений только настолько, насколько они помогают сжатию текста. Она не получает отдельной цели «говорить правду».
Верхняя строка — входные токены, нижняя сдвинута на одну позицию и содержит targets. Треугольная сетка показывает доступный контекст. Красным отмечен ошибочный вариант, где target виден во входе той же позиции.
От сырого веба к обучающей смеси
Типичный pipeline:
- получить snapshot страниц;
- извлечь основной текст;
- определить язык и тип документа;
- удалить спам, навигацию и машинный мусор;
- дедуплицировать;
- оценить качество;
- исключить чувствительные данные;
- смешать источники с заданными весами;
- токенизировать и упаковать последовательности.
Каждый фильтр меняет распределение. Классификатор «качественного текста», обученный на энциклопедиях, будет предпочитать их стиль и вычищать разговорную речь. Фильтр токсичности может непропорционально удалить документы, обсуждающие дискриминацию.
Повтор не равен новому свидетельству
Веб содержит зеркала, цитаты, шаблоны и копии. Если один текст повторён тысячу раз, loss присваивает ему тысячу весов. Exact dedup удаляет полные совпадения, near-duplicate методы сравнивают shingles или MinHash.
Документ представим множеством -грамм . Jaccard similarity:
Высокий порог оставляет слегка изменённые копии; низкий может удалить независимые новости об одном событии. Дедупликация внутри train уменьшает memorization, а между train и benchmark защищает оценку.
Ширина потоков равна числу токенов. После каждого фильтра показано, какие жанры теряются. Отдельная ветвь near-duplicates объединяет зеркала; справа исходные доли сопоставлены с итоговыми весами training mixture.
Смесь как оптимизационный выбор
Пусть источник содержит токенов, но сэмплируется с вероятностью . Большой веб-источник можно downsample, небольшой качественный — повторять. Тогда эффективное число эпох различается:
Многократный проход по малому источнику повышает memorization. Нулевой вес лишает модель навыка. Подбор смеси — многокритериальная задача: общий loss, код, математика, языки, безопасность.
Mixture ablation требует обучить несколько малых proxy-моделей на разных весах. Перенос лучшей смеси на большой масштаб — гипотеза, не теорема.
Лаборатория смеси
Изменяйте доли четырёх источников и смотрите на loss по отдельным validation-наборам. Среднее может улучшаться, пока один домен резко деградирует. Затем включите дубликаты и наблюдайте, как training loss падает быстрее, а отложенный почти не меняется.
Проверьте «малый качественный источник»: при умеренном повторе он помогает целевому домену, при чрезмерном модель начинает воспроизводить фразы. Найдите точку перелома, а не универсальный процент.
Фильтрация персональных и опасных данных
Веб может содержать телефоны, адреса, медицинские сведения и секреты репозиториев. Regex ловит очевидные шаблоны, named entity recognition — часть имён, специальные scanners — ключи API. Ни один фильтр не идеален.
Нужно документировать:
- происхождение и лицензию;
- дату snapshot;
- правила исключения;
- долю удалённого;
- механизм запроса на удаление;
- тесты memorization;
- ограничения downstream-использования.
Обработка персональных данных зависит от юрисдикции; техническая доступность страницы не равна разрешению на обучение. Это вопрос governance, не только preprocessing.
Утечка benchmark
Если вопросы теста или их пересказы были в train, высокая accuracy не измеряет перенос. N-gram overlap обнаруживает буквальные совпадения, embedding search — близкие перефразы, но ни один метод не доказывает отсутствие утечки.
Дата отсечения помогает для будущих событий. Dynamic benchmarks создают новые задачи после обучения. Можно проверять perturbations: менять имена и числа, сохраняя структуру. Запомненный ответ ломается, навык должен сохраниться.
Связь с разделением данных здесь масштабируется: документные семейства, сайты и временные версии должны идти в одну часть, иначе почти копии пересекают границу.
По горизонтали доля benchmark-документов или близких копий в train. Синяя линия — исходные вопросы, зелёная — новые числовые варианты той же структуры. Разрыв растёт с загрязнением и служит диагностикой memorization.
Transfer и fine-tuning
Предобученный трансформер создаёт универсальные представления и вероятностную модель текста. Fine-tuning меняет параметры на меньшем наборе инструкций или целевой области. Retrieval добавляет внешние документы без переписывания всех знаний.
Transfer работает, когда признаки предобучения полезны дальше. Domain shift остаётся: модель, видевшая научные статьи, не обязательно умеет безопасно отвечать как врач. Fine-tuning малым корпусом может вызвать catastrophic forgetting; смешивание replay-данных и малый learning rate снижают риск.
FineWeb как объект аудита
FineWeb — открытая очищенная коллекция веб-текста с описанным pipeline. Для школьного проекта достаточно небольшой опубликованной выборки. Не скачивайте терабайты: возьмите, например, 10 000 документов и исследуйте языки, длины, домены, повторы и PII-подобные шаблоны.
Соберите model card корпуса: не маркетинговое описание, а таблицу измерений и неизвестностей. Сравните до и после одного собственного фильтра. Если фильтр увеличил «среднее качество», покажите, чьи тексты он удалил.
Мини-исследование: фильтр как классификатор культуры
Возьмите по 500 документов из энциклопедии, форумов, поэзии, инструкций и школьных сочинений. Пропустите их через один quality score или обучите простой classifier отличать энциклопедию от случайного веба. Для каждого жанра постройте распределение score и долю, прошедшую общий порог.
Теперь вручную разметьте 100 пограничных документов по двум независимым критериям: читаемость и ценность для обучения. Они не обязаны совпасть. Разговорный текст может быть грамматически неровным и содержательно богатым; безупречный SEO-текст — пустым.
Проведите threshold sweep и покажите не только общий retained tokens, но и genre recall. Порог выбирает состав будущей модели. Этот опыт связывает corpus filtering с ошибками классификации: false positive и false negative здесь означают включённый мусор и потерянный голос.
Мини-исследование: near-duplicate через границу
Создайте семейства одного документа: исходник, версия с другим заголовком, переставленными абзацами, переводом и кратким пересказом. Сравните exact hash, shingle Jaccard и embedding similarity. Ни один метод не найдёт все семейства без ложных совпадений.
Затем намеренно разделите версии между train/test и обучите маленькую language model или retrieval baseline. Метрика вырастет сильнее на буквальных копиях, слабее на пересказах. Опубликуйте contamination curve. Так правило split превращается из формальности в количественный источник оптимизма.
Добавьте временную ось. Для каждой страницы сохраните дату публикации и дату snapshot. Текст, обновлённый после benchmark, может включать его ответы, хотя исходный URL старый. Dedup по URL этого не видит. Versioned content требует hash конкретного содержимого и времени.
Для десяти найденных совпадений проведите ручную классификацию: независимый общий источник, буквальная утечка, шаблон или случайная короткая фраза. Автоматический overlap служит сигналом аудита, а не готовым приговором.
Корпус становится поведением
Self-supervised objective масштабирует разметку, но не снимает ответственность за данные. Extraction, фильтрация, дедупликация и mixture определяют, какие ошибки модель будет считать дорогими. Benchmark contamination превращает оценку в память. Корпус нужно читать как экспериментальную установку с измеримыми потерями на каждом этапе.