243 тысячи текстов для маленькой модели на 29 млн параметров: как автор отобрал данные из Википедии и книг по психологии
Автор серии на Habr, не программист, во второй части рассказывает, как собрал 243 412 текстов для обучения маленькой модели на 29 млн параметров: взял 200 тысяч абзацев русской Википедии и 50 тысяч абзацев из своих книг по психологии, после удаления повторов осталось 248 379, а 4 967 из них ушли на проверку качества. Модель учится повторять эмбеддинги (векторы чисел, в которые превращается текст) большой модели. Такое обучение называется дистилляцией. Код написан нейросетью DeepSeek, сам автор только отлаживал. Википедия нужна для широты тем, психология для целевой задачи. Из одного куска дампа (архива) Википедии на 380 МБ получилось 1,24 млн абзацев. После фильтров по длине и доле букв и удаления дубликатов полный корпус составил 1 359 942 текста. В обучение взяли в 5,6 раза меньше: так дешевле считать эмбеддинги большой моделью и учить маленькую на GPU T4 в Colab. • Парсинг Википедии шёл со скоростью около 1185 статей в секунду: 76 тысяч статей за 64 секунды. • Психологический корпус: 587 файлов, 382 327 абзацев, около 18,9 млн слов. • В обучающей выборке на психологию приходится около 20%: 48 477 строк из 243 412.
AI-обработка оригинала Habr AI; редакция Hamidun News
Автор серии на Habr, который не считает себя программистом, готовит данные для маленькой модели на 29 млн параметров. В заголовке стоит число 243 тысячи: столько текстов остаётся в обучающей выборке. Автор берёт 200 тысяч абзацев русской Википедии и 50 тысяч абзацев из книг по психологии, после удаления повторов получается 248 379, из них 4 967 уходят на проверку качества, а 243 412 остаются на обучение.
Зачем эти тексты нужны. Эмбеддинг — это вектор чисел, в который превращается текст, чтобы машина могла сравнивать тексты по смыслу. Маленькая модель (студент) учится выдавать такие же векторы, как большая (учитель). Этот приём называется дистилляцией. Конечная цель серии из десяти частей — изотропные эмбеддинги, то есть векторы, которые равномерно заполняют пространство, а не сбиваются в узкий пучок. Во второй части автор разбирает данные: откуда их брать, как чистить и сколько на самом деле нужно. Весь код написан нейросетью DeepSeek, а сам автор занимался отладкой и правкой ошибок.
Википедия из архива на 380 МБ: парсинг за минуту
Нужны два вида текстов. Общий корпус даёт студенту широкий охват тем: без него модель переобучится под узкую область и будет плохо работать на чужих текстах. Доменный корпус по психологии учит понимать специфику задачи, ради которой всё затевалось.
Полный дамп русской Википедии весит около 5,5 ГБ в сжатом виде, а для Colab с ограниченным диском это много. Выручает multistream-версия: тот же дамп, но порезанный на сотни мелких файлов. Автор скачал один из них, ruwiki-latest-pages-articles-multistream1.xml-p1p224167.bz2, на 380 МБ. Для 250 тысяч текстов хватило бы 100–200 МБ чистого текста, а получилось 1,24 млн абзацев и 835,9 МБ.
Текст извлекали утилитой WikiExtractor с флагом --no-templates, чтобы не тянуть вики-шаблоны, и четырьмя процессами. Скорость: 1185 статей в секунду, около 76 тысяч статей за 64 секунды.
После неё остаётся три вида мусора:
- заголовки секций вида == История ==;
- пустые скобки () на месте вырезанных шаблонов;
- первая строка внутри <doc>, которая дублирует название статьи.
Скрипт чистит всё это регулярными выражениями и отбрасывает абзацы короче 40 символов. Побочный эффект: вместо «Площадь — 65 300 км²» остаётся «Площадь — км²». Автор считает это безвредным: числа всё равно дробятся на сабтокены (мелкие куски слов), а для эмбеддинга важнее контекст предложения.
Психология: 587 файлов и порог в десять слов
Доменный корпус собран из личной коллекции книг в формате .md: психология, психотерапия, психиатрия, математическая статистика для психологов, анатомия и физиология. Сами тексты автор не публикует. Скрипт удаляет разметку Markdown и HTML-теги, склеивает слова с висячими переносами и оставляет только строки не короче десяти слов. Так уходят номера страниц, колонтитулы и одинокие заголовки.
Итог:
- 587 файлов;
- 382 327 абзацев;
- около 18,9 млн слов;
- 258,4 МБ.
Почему из 1,36 млн текстов берут 243 тысячи
Сначала идёт фильтр по длине (60–800 символов) и доле букв (не менее 55%): он выбрасывает обрывки таблиц и формул. После него в вики остаётся 1 056 981 абзац, в психологии 330 714. Полный корпус на 1 359 942 уникальных текста автор сохраняет про запас: если данных не хватит, не придётся заново разбирать Википедию.
Обучающую выборку берут урезанной: 200 тысяч вики и 50 тысяч психологии с фиксированным seed (начальным значением генератора случайных чисел). После дедупликации, то есть удаления повторов, остаётся 248 379 текстов, из них 49 484 психологических. Если строка встречается в обоих источниках, её относят к психологии. Затем 2% (4 967 текстов) уходит в валидацию, то есть на проверку качества, а 243 412 остаются в обучении. Индексы доменных строк в обучающей части лежат в отдельном массиве domain_indices.npy: их 48 477, остальные оказались в валидации. Благодаря этому позже можно оценивать качество отдельно на психологии.
Причина сокращения — цена. Студент из трёх слоёв учится на GPU T4 в Colab. Одна эпоха (полный проход по данным) с batch_size=64 на полном объёме занимает 15–20 минут, а при 3–10 эпохах выходят часы. Главная статья расходов — учитель: ему нужно посчитать эмбеддинги для каждого обучающего текста, и даже на GPU при 1,33 млн примеров это десятки минут. Выборка в 243 тысячи в 5–6 раз дешевле и достаточна для первого цикла.
Что из этого взять инженеру
- Мелкие части multistream-дампа Википедии избавляют от скачивания 5,5 ГБ и подходят для ограниченного диска.
- Полный корпус на диске обходится дёшево: пересэмплировать его с другими квотами можно за 28 секунд.
- Доля домена в обучении около 20% — разумный ориентир для дистилляции под узкую задачу.
- У подхода есть недочёты. Первый скрипт держит около 800 МБ в памяти, а размер corpus.txt в тексте указан двумя разными числами (753,8 и 718,9 МБ). Для эксперимента на Colab это терпимо.
Дальше в серии идут эмбеддинги учителя и обучение студента.
- 1 нояб. 2026 г.Локальные нейросети согласились платить мошенникам, а правила остановили все 42 схемы
- 31 окт. 2026 г.DeepSeek ужала кэш памяти модели до 890 байт на токен вместо 3514
- 30 окт. 2026 г.Mistral открыла веса Large 4: в коде сильна, но китайцы набирают 32 балла против 26
- 30 окт. 2026 г.Claude Enterprise получил умные отчёты: кто как использует ИИ и сколько это стоит
Вопросы и ответы по материалу
Что известно по теме: википедия из архива на 380 МБ: парсинг за минуту?
Нужны два вида текстов. Общий корпус даёт студенту широкий охват тем: без него модель переобучится под узкую область и будет плохо работать на чужих текстах. Доменный корпус по психологии учит понимать специфику задачи, ради которой всё затевалось. Полный дамп русской Википедии весит около 5,5 ГБ в сжатом виде, а для Colab с ограниченным диском это много. Выручает multistream-версия: тот же дамп, но порезанный на сотни мелких файлов. Автор скачал один из них, ruwiki-latest-pages-articles-multistream1.xml-p1p224167.bz2, на 380 МБ. Для 250 тысяч текстов хватило бы 100–200 МБ
Что известно по теме: психология: 587 файлов и порог в десять слов?
Доменный корпус собран из личной коллекции книг в формате .md: психология, психотерапия, психиатрия, математическая статистика для психологов, анатомия и физиология. Сами тексты автор не публикует. Скрипт удаляет разметку Markdown и HTML-теги, склеивает слова с висячими переносами и оставляет только строки не короче десяти слов. Так уходят номера страниц, колонтитулы и одинокие заголовки. Итог: 587 файлов; 382 327 абзацев; около 18,9 млн слов; 258,4 МБ.
Что известно по теме: почему из 1,36 млн текстов берут 243 тысячи?
Сначала идёт фильтр по длине (60–800 символов) и доле букв (не менее 55%): он выбрасывает обрывки таблиц и формул. После него в вики остаётся 1 056 981 абзац, в психологии 330 714. Полный корпус на 1 359 942 уникальных текста автор сохраняет про запас: если данных не хватит, не придётся заново разбирать Википедию. Обучающую выборку берут урезанной: 200 тысяч вики и 50 тысяч психологии с фиксированным seed (начальным значением генератора случайных чисел). После дедупликации, то есть удаления повторов, остаётся 248 379 текстов, из них 49 484 психологических. Если строка встре
Протестируйте новые LLM и мультимодальные модели в одном окне
Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.