PRX 數據策略:透過 VLM 重新標註與 Mosaic Streaming 擴展預訓練規模
PRX 數據策略:透過 VLM 重新標註與 Mosaic Streaming 擴展預訓練規模
Photoroom 發布了一份關於訓練 PRX(一個 7B 參數模型)所使用的數據策略詳細分析。核心方法包括從公開和內部來源組建多樣化的語料庫、使用視覺語言模型 (VLM) 重新標註所有圖像以確保高保真度描述,並利用雙格式儲存系統來平衡數據集探索與訓練吞吐量。
預訓練原則:廣度勝於完美
在預訓練階段,Photoroom 將覆蓋範圍和多樣性置於單張圖像的美學之上。目標是在廣泛的視覺世界分佈中,教導模型視覺概念、構圖和光影。
- 多樣性 vs. 品味:團隊認為,在預訓練期間過度篩選美學會縮小分佈,並使模型失去必要的構圖多樣性。對生成結果的修飾被推遲到在較小、經過精選的數據集上進行微調和偏好對齊。
- 務實的來源:數據是從公開和內部數據集混合組建的,並在可行的情况下利用現有的篩選機制(NSFW 和 PII 篩選)來加速流程。
- 標註哲學:長且準確的標註至關重要。透過描述圖像中的一切——包括標誌、文本或人工痕跡——這些元素會變成受控的屬性,而不是無條件的噪聲。
數據基礎設施:Lance 與 Mosaic Data Shards (MDS)
Photoroom 採用兩種不同的數據格式來處理數據集的生命週期:用於策劃的 Lance 和用於串流的 MDS。
用於探索的 Lance
Lance 被用作列式數據格式,用於構建和探索具有數十億行數據的數據集。它支持廉價的謂詞下推 (predicate pushdown)、標量索引和向量搜索,讓團隊能夠:
- 數據分析:分析解析度分佈以設置截止點(例如,捨棄低於 384² 像素的圖像)。
- 互動式瀏覽:透過自定義 UI 使用全文搜索和最近鄰相似度搜索,從定性角度評估多樣性並發現非攝影內容等問題。
- 分片管理:團隊注意到,過度細分 Lance 表(例如每個分片 10k 行)會降低查詢速度。將每個分片壓縮到大約一百萬行顯著提高了性能。
用於訓練的 MDS
Mosaic Data Shards (MDS) 用於分散式訓練,提供確定性的可恢復洗牌 (resumable shuffling)、彈性的 epoch 中間檢查點 (checkpointing) 以及多個串流的加權混合。為了優化流水線:
- 即時潛在表示 (On-the-fly Latents):Photoroom 不是預先計算文本潛在表示,而是在訓練期間使用 Qwen3-VL 編碼器進行計算。這縮小了 MDS 分片的大小,並允許在不重寫數 TB 數據的情況下更換編碼器,在 7B 規模下僅造成 3–4% 的吞吐量損失。
- JPEG 編碼:所有圖像都以品質 92 的 JPEG 格式儲存。實證測試顯示,這在感知上與 PNG 無異,且不會對生成圖像的品質產生負面影響,同時將儲存需求降低了 3–10 倍。
VLM 重新標註策略
Photoroom 發現長而詳細的標註能顯著提升樣本品質。在基準測試中,使用 Qwen2.5-VL-7B 標註訓練的小型擴散模型,在 FID、CMMD 和 DINO-MMD 指標上表現優於使用較短的 LLaVA-1.5-LLaMA3-8B 標註訓練的模型。
標註器選擇
在對多個候選者進行基準測試後,Photoroom 選擇 Qwen3-VL-8B 作為主要的標註器。選擇是基於品質與吞吐量的平衡:
- 性能:Qwen3.5-9B 在指標上表現最好,但 Qwen3-VL-8B 非常接近且速度快得多(每台 H200 GPU 每秒 20 張圖像)。
- 提示詞 (Prompting):團隊使用了一個密集的系統提示詞,要求生成一段 100–200 字的流暢段落,重點在於精確的視覺對齊,而不進行推測或解釋。
數據集精煉與去重
一旦生成了 VLM 標註,Photoroom 會進行輕量級的篩選和去重,以在不重寫整個數據集的情況下精煉語料庫。
基於標註的篩選
Photoroom 並未使用昂貴的像素級分類器,而是使用純文本模式下的 Qwen3-8B 將標註分類為「視覺」、「文本」或「nsfw」。這種方法計算效率極高(每台 GPU 每秒 200 個標註),並能有效移除截圖、文件和資訊圖表。
感知雜湊去重
為了移除近乎重複的圖像,團隊實現了基於 DCT 的感知雜湊 (perceptual hash)。如果兩張圖像的 Hamming 距離為零,則被視為重複。在不同解析度存在重複的情況下,會保留解析度最高的副本。
跳過列表機制 (Skip-List Mechanism)
為了避免為每一次篩選或去重操作都重寫龐大的 MDS 語料庫,Photoroom 在數據加載器中實現了 跳過列表功能。每個分片都有一個側邊文件列出要跳過的索引,允許團隊在加載時動態排除數據(例如,為了用戶退出或品質問題)。
長寬比分桶 (Aspect-Ratio Bucketing)
為了保持每張圖像的計算量恆定並避免浪費的填充 (padding) 或裁剪,Photoroom 使用了長寬比分桶:
- 解析度層級:圖像根據像素數量被分配到不同的層級(512px, 1024px, 2048px, 4096px)。
- 長寬比桶:在每個層級內,圖像會對齊到 13 種補丁對齊 (patch-aligned) 的形狀(AR 0.5 到 2.0),以維持恆定的 patch token 預算。
- 處理:圖像使用 Lanczos 濾波器進行縮放,並儲存在按解析度和長寬比鍵值的目錄樹中,以便進行分開的串流。
Sources
- OriginalPRX Part 4: Our Data Strategy