Photoroom의 PRX Part 4는 이미지 생성 모델의 데이터 전략을 다룬다. 제목만 보면 학습 데이터 소개처럼 보이지만, 실제로는 7B 이미지 모델을 굴리기 위해 데이터 시스템을 어떻게 나눠 설계했는지에 가까운 글이다. 모델 구조보다 덜 화려하지만, 제품 수준의 생성 모델을 만들 때는 이런 결정이 더 오래 영향을 남긴다.
가장 선명한 관점은 사전학습과 미세조정의 역할 분리다. PRX 팀은 사전학습 단계에서 지나치게 미적인 이미지로만 데이터를 좁히지 않는다. 이 단계의 목적은 모델에게 세상이 어떻게 생겼는지 넓게 보여주는 것이다. 평범한 사진, 약간 압축된 이미지, 스크린샷, 로고, 광고, 이미지 안의 텍스트도 정확한 긴 캡션이 붙으면 단순한 잡음이 아니라 조건으로 제어 가능한 속성이 된다. 취향과 광택은 이후의 fine-tuning과 preference alignment에서 다룬다.
데이터 포맷 선택도 역할을 나눴다. 구축과 탐색에는 Lance를 쓴다. 수십억 행 규모에서 predicate pushdown, scalar index, vector search가 필요하기 때문이다. 반대로 실제 분산 학습 스트리밍에는 Mosaic Data Shards를 쓴다. MDS는 컬럼을 추가하거나 필터별 subset을 만들 때 전체를 다시 훑고 써야 해서 뻣뻣하지만, 학습 중 데이터를 섞고 흘려보내는 용도로는 관리 부담이 낮다. PRX의 표현을 빌리면 Lance는 build, MDS는 stream에 가깝다.
텍스트 latent 처리도 흥미롭다. 이전에는 T5Gemma text latent를 미리 계산해 MDS에 bytes로 저장했지만, Qwen3-VL로 바꾸면서 이번에는 학습 루프 안에서 text encoder를 돌렸다. PRX 7B 규모에서는 throughput 비용이 3~4% 정도였고, 30일 학습 기준 하루 정도가 추가된다. 대신 shard가 작아지고, 전체 사전학습 데이터를 SSD 기반 SLURM 공유 파일시스템에 둘 수 있으며, 나중에 text encoder를 바꿀 때 테라바이트 단위 latent를 다시 만들 필요가 없다.
이미지 저장 포맷에서는 PNG 대신 JPEG quality 92를 택했다. 이 역시 단순한 절약이 아니라 실험으로 확인한 결정이다. 반복 encode/decode 후 PSNR과 LPIPS를 측정했고, 1024px PRX 모델을 PNG 데이터와 JPEG q92 데이터로 각각 학습해 비교했다. 생성 결과는 사실상 비슷했고, quantization structure가 감지된 비율도 JPEG 학습 모델 12.0%, PNG 학습 모델 10.8% 수준이었다. 저장 공간을 크게 줄이면서 품질 손실은 거의 보이지 않았다는 결론이다.
이 글의 메시지는 꽤 실용적이다. 좋은 이미지 모델은 모델 파일 하나로 나오지 않는다. 데이터를 넓게 모으고, VLM으로 다시 설명하고, 탐색 가능한 형태로 다듬고, 학습에 맞는 포맷으로 흘려보내는 전체 경로가 필요하다. PRX Part 4는 그 경로의 선택지를 숫자와 운영상의 trade-off로 보여준다. 그래서 이 글은 연구 발표보다 팀의 학습 운영 노트처럼 읽히고, 그 점이 오히려 더 유용하다.