Как повысить качество датасета в CV-проектах
Введение
Качественные данные для обучения, валидации и тестирования — важная часть успешного ML-проекта. Понятие «качественные данные» зависит от задачи, но есть типичные проблемы, которые ухудшают качество датасетов в CV:
- Дубликаты изображений.
- Изображения низкого разрешения.
- Изображения, не характерные для production-распределения.
- Изображения NSFW или с персональными данными.
Валидационные / тестовые датасеты обычно составляются вручную так, чтобы данные были похожи на prod, и в них не было «мусора».
Датасеты для обучения, как правило, значительно больше, чем для валидации и тестирования, ведь масштабирование данных в ML-задачах приводит к росту метрик. С другой стороны, большие датасеты влияют на увеличение длительности и стоимости обучения, а также — на замешивание данных, занижающих метрики. Используя различные приёмы по очистке датасета, мы можем кратно ускорить обучение, избавиться от мусорных данных и повысить качество модели.
Ниже приведён небольшой обзор по решению следующих проблем:
- Фильтрация неподходящих сэмплов из датасета (для задачи OCR неподходящие изображения — с лицами, а для распознавания лиц — с текстом).
- Корректировка неоптимального распределения в датасете.
Подходы к фильтрации неподходящих изображений
Этап фильтрации есть в большинстве ML-проектов хотя бы в форме эвристик — например, по размеру изображений (слишком маленьких или больших) или по соотношению сторон [Alchemist], [FineVision], [DataComp]. Также источником могут быть теги EXIF (источник фото, геометка, дата), поддерживаемые многими форматами [FineVision].
Когда нужные атрибуты для фильтрации не доступны в метаданных — можно посмотреть в публичные предобученные классификаторы / метрики качества изображений. С их помощью возможно оценить эcтетику изображения, его качество, отсутствие NSFW и многое другое [Alchemist], [FineVision], [DataComp]. Например, пакет https://github.com/chaofengc/IQA-PyTorch содержит множество разных предобученных моделей-оценщиков для этих характеристик.
Если предобученного оценщика нет — можно обучить что-то лёгкое, как ResNet, с нуля или дотюнить подходящую предобученную модель. Часто в качестве основы модели берётся энкодер картинок CLIP или его аналоги (например, более лёгкий MobileCLIP). Это обусловлено высоким качеством CLIP «из коробки», простотой дообучения и применения. Если нужно приготовить кастомный фильтр — слелать его на основе CLIP будет самым простым вариантом. CLIP здесь используется в zero-shot режиме: вручную готовится текстовое описание «хороших сэмплов» (или, наоборот, «плохих»), и проверяется качество изображения через сравнение скалярного произведения по порогу.
Для удобства можно встроить скалярное произведение и эмбеддинг описания в модель и получить оценку без промежуточного хранения эмбеддингов.
Для реализации более сложных фильтров можно усложнить pipeline на основе CLIP. Частый приём для фильтрации hard negative примеров (только похожих на нужные) — подобрать пороги близости / дальности к положительному и отрицательному описаниям [DataComp]. Например, если нужны примеры изображений с рукописным (непечатным) текстом — можно фильтровать примеры, которые по скалярному произведению слишком похожи на описание «печатный текст».
Альтернатива усложнению pipeline c CLIP (но в другой весовой категории) — VLM и мультимодальные эмбеддинги / реранкеры на их основе, например, Qwen3-VL-Embedding / Reranker. Embedding и Reranking-модели позволяют сравнить текст, изображения и их комбинации несколькими способами. Важным отличием от CLIP является инструкция, которая указывает модели, что важно и не важно при вычислении эмбеддинга запроса или документа. Например, в случае поиска по картинкам можно инструктировать модель фокусироваться на стиле изображения или, наоборот, на содержимом картинки — и получить разные эмбеддинги.

Embedding принимает на вход текстовую инструкцию и сэмпл (текст или картинку) и возвращает (!) эмбеддинг.
Reranker принимает на вход текстовую инструкцию, запрос и документ (каждый — текст или картинка), и возвращает вероятность того, что документ релевантен запросу в контексте инструкции.
За гибкость, которую даёт инструкция, приходится платить: облегчённые версии CLIP имеют порядка 100М параметров, а VLM-подобные модели — 2B/8B параметров, и требуют больше вычислений в инференсе.
Если вычислительный бюджет позволяет — можно пойти дальше и сгенерировать при помощи VLM структурированное описание изображений, например, в виде JSON [MinerU2.5]. Для фильтрации датасетов с миллионами сэмплов, таким образом, может потребоваться несколько месяцев GPU-инференса, что обычно слишком дорого. Вместо этого возможно разметить с помощью VLM небольшой датасет для обучения головы оценщика, задистиллировав знания VLM в модель поменьше [MobileCLIP], [Qwen3-VL].
Оптимизация распределения сэмплов в датасете
Иметь качественные сэмплы в датасете — прекрасно, но их комбинация может оказаться слабым обучающим датасетом, если распределение сэмплов отличается от production.
Пример проблемы с распределением — большое количество сэмплов-дубликатов. Для их фильтрации есть несколько подходов разной степени сложности.
Прежде всего, изображения надо преобразовать в эмбеддинг (опять!) для сравнения.
Простой вариант — использовать криптографический хэш (например, md5). Сравнение по хэшу позволит отфильтровать буквальные дубликаты изображений, но минимальные различия в формате или степени сжатия уже приведут к различиям в хэше. Более робастный вариант — использовать в качестве эмбеддинга-представления perceptual hash, который основан на Discrete Cosine Transform. А если уже применялись мультимодальные эмбеддинги — не спешите чистить диск, можно переиспользовать эмбеддинги и для задачи де-дубликации [FineVision], [Alchemist], [DataComp].
После выбора способа расчёта эмбеддинга их надо эффективно сравнить между собой. Если сравнивать близость сэмплов друг к другу наивно (каждого с каждым), то алгоритмическая сложность получится \(O(N^2)\). Это может быть приемлемо даже для довольно больших датасетов масштаба ImageNet: для 1М векторов размерности 100 нужно будет совершить порядка \(10^{14}\) операций, что на современных процессорах с производительностью в единицы TFLOPs (\(10^{12}\) операций в секунду) займёт минуты или часы. Но для датасетов большего размера наивное сравнение быстро становится слишком долгим, приходится группировать сэмплы и использовать алгоритмы приближенного поиска: Locality Sensitive Hashing или Approximate Nearest Neighbor [FineVision], [DataComp]. Оба создают индекс, по которому сэмплы со схожими эмбеддингами попадают в одну группу, и внутри группы уже производится сравнение сэмплов.
Часто нужна балансировка датасета по характеристикам самих изображений или их разметке. Для задач, связанных с видеонаблюдением, можно сэмплировать кадры равномерно по времени суток и года. Для задачи object detection — равномерно сэмплировать примеры по количеству или угловому размеру объектов [MinerU2.5], для сегментации — по превалирующему классу маски, для задач OCR — по языку текста и разным типам документов [MinerU2.5], [FinePDF]. Пользуясь мультимодальными эмбеддингами, можно разделить изображения на несколько классов и сбалансировать их доли [MinerU2.5], [FineVision], [DataComp]. Чаще всего для поиска критериев балансировки достаточно посмотреть сотню примеров изображений из обучения и теста.
Продвинутые техники
Можно ли отфильтрованный и сбалансированный датасет оптимизировать ещё — выжать лучше метрики за меньшее время? Безусловно, хотя каждый следующий шаг становится сложнее и ближе к исследованиям, чем к практике. Такие приёмы редко встречаются в технических репортах или на конференциях, но это не значит, что они бесполезны. К ним можно отнести:
- dataset reinforcement — улучшение качества разметки, например, за счёт прогона множества моделей-учителей по датасету с усреднением их предсказаний;
- coreset selection / dataset distillation / dataset refinement — выбор наиболее репрезентативных сэмплов датасета таким образом, что метрики при обучении остаются на уменьшенном датасете неизменными;
- feature distribution matching — ребалансировка датасета на основе эмбеддингов (фич) так, чтобы они совпадали с датасетами бенчмарка.
Результаты улучшения датасетов
Добравшийся до этой части читатель может спросить: «Так, а что, все эти трюки — они вообще нужны? Может, надо просто насыпать побольше данных и GPU go brr?».
Хотя многие индустриальные и исследовательские команды описывают процессы подготовки данных, далеко не всегда они проводят или делятся ablation studies, то есть экспериментами с проверкой эффекта того или иного приёма. Тем приятнее, когда они встречаются! 🙂
Примером применения фильтрации, балансировки и других приёмов по подготовке датасета является статья [DataComp]. В ней авторы исследуют, как изменение датасета влияет на качество обученного на нём CLIP (оценка качества работы на нескольких десятках бенчмарков). Авторы сравнивают ряд приемов по фильтрации (часть которых была описана выше).

Авторы берут датасеты пар изображений и текстовых описаний разных размеров (small — 12.8M сэмплов, а xlarge — 12.8B сэпмлов), применяют к ним различные протоколы фильтрации (например, Image-based — выброс изображений, не похожих ни на один класс из ImageNet, а CLIP — фильтрация по близости изображения и описания), и на отфильтрованных датасетах обучают CLIP-подобные модели, качество которых потом замеряют на разных задачах.
Хотя результаты зависят от размера датасета — во всех случаях авторам удаётся разными техниками фильтрации улучшить метрики на целевых задачах на 5-10%, уменьшив при этом датасет в 5-10 раз. Этот результат — отличная демонстрация, что улучшение датасетов стоит своих усилий! 🙂
Источники
- [Fine Vision] Wiedmann, Luis, et al. «Finevision: Open data is all you need.» arXiv preprint arXiv:2510.17269 (2025).
- [Alchemist] Startsev, Valerii, et al. «Alchemist: Turning Public Text-to-Image Data into Generative Gold.» arXiv preprint arXiv:2505.19297 (2025).
- [MobileClip] Vasu, Pavan Kumar Anasosalu, et al. «Mobileclip: Fast image-text models through multi-modal reinforced training.» Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2024.
- [MinerU] Niu, Junbo, et al. «Mineru2. 5: A decoupled vision-language model for efficient high-resolution document parsing.» arXiv preprint arXiv:2509.22186 (2025).
- [FinePDF] [FinePDFs: Liberating 3T of the finest tokens from PDFs](https://huggingface.co/spaces/HuggingFaceFW/FinePDFsBlog#fixing-hallucinated-text-rolmocr](https://huggingface.co/spaces/HuggingFaceFW/FinePDFsBlog) [Qwen3-VL-Embedding] Li, Mingxin, et al. «Qwen3-VL-Embedding and Qwen3-VL-Reranker: A Unified Framework for State-of-the-Art Multimodal Retrieval and Ranking.» arXiv preprint arXiv:2601.04720 (2026).
- [DataComp] Gadre, Samir Yitzhak, et al. «Datacomp: In search of the next generation of multimodal datasets.» Advances in Neural Information Processing Systems 36 (2023): 27092-27112.

