3 триллиона токенов. Откуда?
Триллион — это не просто красивое число. Это 1 000 000 000 000. А три триллиона — достаточно, чтобы заставить любой кластер GPU плакать от счастья и одновременно от ужаса. HuggingFace решили проблему нехватки качественных текстовых данных самым радикальным способом: они пошли туда, где никто не ищет — в «мёртвый» интернет.
«Мёртвый» интернет — это миллионы PDF, которые Google не индексирует, которые лежат в корпоративных интранетах, на заброшенных серверах университетов, в архивах организаций. Это технические отчёты, диссертации, внутренняя документация, которые никто не читает уже десять лет. Идеальный источник для обучения ИИ.
Первый шаг: найти, где не ищут
Когда Common Crawl и Wikipedia уже выжаты досуха, остаётся два варианта: синтетические данные или архивные хранилища. HuggingFace выбрали второе — и не ошиблись.
1 Сканирование глубинного интернета
Команда начала с составления списка источников:
- Архивы университетов (MIT, Stanford, Cambridge)
- Технические репозитории NASA, CERN, arXiv
- Корпоративные базы знаний (заброшенные Confluence)
- Правительственные отчёты (ЕС, США, ООН)
- Медицинские журналы и исследования
Важно: не все PDF одинаково полезны. Юридические документы с шаблонным текстом, финансовые отчёты с таблицами, сканированные книги с низким качеством — каждый тип требует своей обработки.
OCR-война: Tesseract против коммерческих решений
Здесь начинается самая интересная часть технической истории. PDF бывают двух типов: текстовые (где текст можно выделить) и сканированные (где текст — это картинка). Для вторых нужен OCR.
Команда тестировала четыре подхода:
| OCR система | Точность | Скорость | Проблемы |
|---|---|---|---|
| Tesseract 5.0 | 85-90% на чистых сканах | Быстрая | Плохо с таблицами, формулами |
| Google Cloud Vision | 95%+ | Медленная, дорогая | Цена при 3 триллионах токенов |
| Amazon Textract | Отличная с таблицами | Очень дорогая | Только для структурированных данных |
| RolmOCR (кастомное решение) | 92-94% | Оптимизированная | Требовала разработки |
Выбор пал на RolmOCR — кастомный пайплайн, который объединил Tesseract для основного текста и специальные модели для таблиц и формул. Почему? Потому что при масштабе в триллионы токенов даже 1% ошибок — это 30 миллиардов неправильных токенов. И эти ошибки модель выучит навсегда.
Пайплайн обработки: от сырого PDF до чистого текста
Здесь нет места для импровизации. Каждый этап должен быть воспроизводимым и масштабируемым.
2 Этап 1: Классификация PDF
Не все PDF нужно распознавать через OCR. Некоторые уже содержат текстовый слой. Простой эвристический алгоритм:
- Извлечь метаданные (есть ли текст)
- Проверить количество «текстовых» объектов
- Если текст > 90% страниц — это текстовый PDF
- Иначе — сканированный, нужен OCR
3 Этап 2: Предобработка изображений
Сканированные PDF часто имеют артефакты: наклон, шум, тень от переплета. RolmOCR применяет:
- Выравнивание страниц (deskew)
- Удаление шума (denoising)
- Повышение контраста
- Сегментация на колонки
4 Этап 3: Мультимодальное распознавание
Здесь RolmOCR показывает свою силу. Вместо одного OCR-движка используется каскад моделей:
| Тип контента | Модель | Пример |
|---|---|---|
| Основной текст | Tesseract с кастомным словарём | Абзацы, заголовки |
| Таблицы | Table Transformer | Финансовые отчёты |
| Математические формулы | MathPix API (ограниченно) | Научные статьи |
| Диаграммы | Извлекается как изображение | Графики, схемы |
Фильтрация: как отсеять мусор
3 триллиона токенов — это не только полезные данные. Это также:
- Повторяющиеся шаблоны (юридические оговорки)
- Некорректно распознанный текст
- Низкокачественный контент
- Дубликаты
Фильтрация работала по трём уровням:
Уровень 1: Быстрая эвристика
Отсеивает очевидный мусор:
- Слишком короткие документы (< 100 слов)
- Высокий процент неалфавитных символов
- Повторяющиеся строки (шапки, колонтитулы)
Уровень 2: Качественные метрики
Использует языковые модели для оценки:
- Perplexity (насколько текст «естественный»)
- Смысловая связность
- Тематическая релевантность
Уровень 3: Дубликаты и near-duplicates
Самый ресурсоёмкий этап. Использовались MinHash и SimHash для поиска похожих документов. Удалялись не точные копии, а документы с совпадением > 80%.
Важный нюанс: не все дубликаты — плохо. Некоторые документы (научные статьи в разных архивах) должны остаться. Фильтр учитывал контекст.
Инфраструктура: когда считаешь триллионы
Обработка 3 триллионов токенов требует не просто серверов, а продуманной архитектуры.
- Хранилище: 2+ петабайта raw PDF, 500+ терабайт обработанного текста
- Вычисления: Кластер из 100+ GPU (A100/H100) для inference моделей
- Оркестрация: Apache Airflow для управления пайплайнами
- Мониторинг: Prometheus + Grafana для отслеживания прогресса
Самая большая проблема оказалась не в вычислениях, а в I/O. Чтение миллионов маленьких PDF с объектного хранилища создавало bottleneck.
Чему это научит модели?
FinePDFs — не просто ещё один текстовый датасет. Его уникальность в разнообразии:
- Технический язык: Научные статьи, инженерная документация
- Структурированные данные: Таблицы, формулы, диаграммы
- Мультиязычность: Хотя преобладает английский, есть немецкие, французские, китайские документы
- Временной разброс: Документы с 1980-х по 2020-е годы
Такое разнообразие учит модели не просто языку, а структуре знаний. Модель, обученная на FinePDFs, лучше понимает контекст технических терминов, может работать с табличными данными, разбирается в математических обозначениях.
Если вы работаете с локальным ИИ и PDF, понимание того, как создаются такие датасеты, поможет вам оценить качество распознавания. А если вы собираетесь обучать свою модель с нуля, структура пайплайна FinePDFs станет отличной основой.
Ошибки, которые почти совершили
В процессе создания датасета команда столкнулась с несколькими критическими проблемами:
| Ошибка | Последствия | Решение |
|---|---|---|
| Использовать только Tesseract | Потеря 40% таблиц и формул | Каскад моделей RolmOCR |
| Не фильтровать дубликаты | Переобучение на повторяющихся данных | Трёхуровневая дедупликация |
| Обрабатывать PDF по одному | Время обработки: 2+ года | Бачинговый пайплайн |
| Игнорировать метаданные | Потеря контекста документов | Сохранение структуры (заголовки, авторы) |
Что дальше? FinePDFs 2.0
Сейчас команда работает над улучшением датасета:
- Добавление мультимодальных данных (изображения из PDF)
- Улучшение распознавания рукописных заметок
- Автоматическая аннотация (ключевые слова, темы)
- Версионирование датасета с отслеживанием изменений
Самая интересная возможность — использовать сам ИИ для улучшения датасета. Модель, обученная на первой версии FinePDFs, может помочь в фильтрации и аннотировании следующих версий.
Если вы ищете данные для обучения, подход HuggingFace показывает: иногда лучшие данные лежат не на поверхности, а в архивах, которые все забыли. И для их извлечения нужен не просто скрипт, а целая экосистема инструментов.
Последний совет от инсайдеров: когда создаёте свой датасет, думайте не о количестве, а о разнообразии. 100 миллионов уникальных, качественных токенов лучше, чем 3 триллиона повторяющегося мусора. FinePDFs доказал, что можно иметь и то, и другое — если не бояться технической сложности.
А теперь представьте, что будет, когда такие датасеты начнут использовать для обучения моделей на триллионы параметров. Возможно, именно PDF-архивы станут тем источником, который выведет ИИ на следующий уровень понимания.