PRX, часть 4: стратегия данных для обучения текстоизображения

Photoroom опубликовали подробное руководство по стратегии данных для своей text-to-image модели PRX. Ключевой insight: на этапе pre-training важна не идеальность каждого изображения, а покрытие и разнообразие. Они используют смесь публичных и внутренних датасетов, полагаясь на уже сделанную дедупликацию и фильтрацию NSFW, чтобы не переделывать работу в масштабе.
Вместо готовых подписей они переписывают каждое изображение длинными детальными подписями через Qwen2.5-VL-7B, это критично для качества. Ранний бенчмарк показал, что длинные подписи от Qwen дали лучший результат, чем короткие от LLaVA.
Для хранения данных они используют Lance (колончатый формат с индексацией для исследования) и Mosaic Streaming для обучения. Интересный выбор: все изображения кодированы в JPEG quality 92, а не PNG, они измерили, что повторное сжатие не заметно, зато экономится место (3, 10× меньше), и это не влияет на качество модели. Pre-computed text latents они пересчитали с T5Gemma на Qwen3-VL, переключившись с pre-computation на on-the-fly, так как при масштабе 7B это стоит всего 3, 4% throughput.
Значительная часть работы ушла на инженерию: они учились на своих ошибках с фрагментацией Lance (слишком много мелких фрагментов замораживали queries), поэтому теперь держат целевую плотность ~1M строк на фрагмент. Для просмотра данных они построили UI с полнотекстовым поиском по подписям и vector search по эмбеддингам CLIP, это помогло оценить качество и найти нефотографический контент (скриншоты, слайды), которые потом отфильтровали.
Ключевые факты
- На pre-training важна разнообразие и покрытие, а не идеальность каждого снимка, переуглублённая фильтрация по эстетике сужает распределение
- Длинные детальные подписи критичны для качества: правильная подпись превращает «шум» (логотипы, скриншоты) в управляемые атрибуты вместо безусловного воспроизведения
- JPEG quality 92 не заметен для человека и даёт 3, 10× экономию места без влияния на результаты модели, измеренное, а не предполагаемое
- Lance для research, MDS для streaming: двухслойная система форматов позволяет гибко кюрировать и исследовать миллиарды строк без переписи всего датасета
- Инженерная хитрость: фрагментация массивов влияет на скорость больше, чем размер, 100k строк на фрагмент замораживала queries, ~1M разблокировала
Почему это важно
Качество обучающих данных критично определяет способность моделей текстоизображения генерировать разнообразные и контролируемые результаты. Большинство команд интуитивно предполагают, что нужна максимальная фильтрация и переуглубление по эстетике, но Photoroom показывают противоположное: на pre-training этап лучше работает широкая, представительная выборка (даже с несовершенными снимками) чем меньший, более полированный датасет. Это прямой результат практического опыта: они обнаружили, что длинные подписи, которые описывают ВСЁ в изображении (включая «шум» вроде логотипов и скриншотов), обучают модель лучше, чем попытка выфильтровать этот контент. Архитектурное решение раньше: pre-training на diversity, fine-tuning на вкус.
Кому это важно
ML-инженерам и research-командам, которые обучают свои diffusion или multimodal модели; tech leads, планирующим масштабировать data pipeline; аналитикам данных, проектирующим ETL для миллиардов медиафайлов; стартапам в CV/generative AI, которые хотят снизить cost обучения без потери качества; инженерам инфраструктуры, которые выбирают форматы хранения (Lance vs Parquet vs HDF5 vs MDS).
Как это применить
- Не переуглубляйте фильтрацию данных на этапе pre-training, пусть модель видит разнообразие, затем fine-tuning на отобранной выборке. 2. Переписывайте подписи длинными детальными описаниями через VLM, даже если исходные подписи кажутся приемлемыми, это даёт измеримый прирост. 3. Для больших датасетов используйте колончатые форматы с индексацией (Lance) для исследования и кюрации, потом конвертируйте в streaming-формат (MDS) для обучения. 4. Измеряйте, не предполагайте: они проверили JPEG vs PNG на real-world изображениях с PSNR/LPIPS и обнаружили, что качество 92 неразличимо, экономя место; не берите «лучше lossless» на веру. 5. Следите за фрагментацией в системах хранения, слишком много мелких фрагментов убивает query performance независимо от датасета; целитесь в ~1M строк на фрагмент, запускайте периодическую дефрагментацию.
Можно ли доверять
Да. Источник, официальный блог Photoroom на Hugging Face, в серии «PRX» с подробной technical документацией. Авторы предоставляют конкретные цифры: PSNR/LPIPS для JPEG vs PNG, 3, 4% throughput cost текстового энкодера, результаты benchmarks с разными VLM для подписей. Они описывают свои ошибки (фрагментация Lance), что добавляет credibility. Это не гипотетическая статья, а report из production pipeline для обучения реальной 7B модели.
Риски и подводные камни
- Рецепт работает для их масштаба (7B модель, текст-изображение), для smaller моделей или других задач (depth estimation, segmentation) trade-off может быть другой. 2. JPEG quality 92, это their измеренный выбор; если ваш датасет изначально PNG и высокой чувствительности (медицина, микроскопия), re-encode может быть рискован. 3. Qwen2.5-VL-7B доступна, но если нужна другая VLM, время подписей может измениться; в их примере для on-the-fly вычисления это добавило бы overhead. 4. Lance fragmentation-lesson: их инженерная ошибка (100k/фрагмент) замораживала даже simple queries, нужна профилировка для вашей schema. 5. Assumption о diversity: они не раскрывают, какова была точная composition public vs internal данных, поэтому мог быть hidden bias в пропорциях, которые не переносится на другие датасеты.