HPS | Human Preference Score
Human Preference Score: Better Aligning Text-to-Image Models with Human Preference | 2023
- Problem:
- T2I 模型的生成局限性:当前的 T2I 模型 (DALL·E、Stable Diffusion、Imagen、GLIDE) 很难生成符合人类偏好的图像,比如从美学、美感、构图等方面
- 评价指标模态局限与评价局限:当前的图像质量评价指标(IS,FID)评价比较局限而且是单一模态,无法反应人类的偏好和美学等,并反映 prompt 的遵从性,而 CLIP 不能对图像质量或者人类偏好进行评分。
- Key Idea:
- 构建符合人类偏好的数据集 Human Perference Dataset (HPD)
- 利用 HPD 微调 CLIP 对齐人类偏好,实现人类偏好评分(Human Perference Score, HPS) 与 Prompt 遵从性评分。
- Method:
- HPD 构建:从 SD 的 Discord dreambot 频道里获取 prompt、多张候选图像和用户最终选择,避免了雇佣专业的标注员。HPD 中每个 prompt 对应 2-4 张候选图,其中包含一张用户的最终选择图(preferred)。
- HPS 定义与获取:
- 利用 HPD 微调 CLIP ViT-L/14,训练目标是提高 prompt embedding 与 preferred image embedding 的相似度,同时降低与 non-preferred image embedding 的相似度
- HPS 定义:微调后 CLIP 文本与图像编码器输出的 embedding 的 cos sim * 100。
- Key Design:
- 微调 CLIP 图像编码器最后 10 层和文本编码器最后 6 层,训练时保持图像长宽比。
- 利用 HPS 过滤训练数据,并微调 SD 使其能够生成符合人类偏好的图像。
- 对于一个prompt下的 non-preferred image,作者微调的时候会添加一个 weird image 短语,然后推理的时候在 negative prompt 里添加这个词,避免SD生成不符合人类偏好的图像(负概念注入)。
- 训练数据集构造:利用 HPS 对 DiffusionDB 中的图像进行过滤(规则略) + LAION-5B 子集。
- Limitation:
- 数据来源有Discord的频道用户偏好
- HPS 可能奖励“看起来更漂亮”而牺牲语义严格性
HPSv2
- Problem:
- T2I 的评价指标与人类偏好不一致
- 人类偏好评价指标的训练集图像来源单一,prompt 存在大量风格词,偏差大
- Key Idea:
- 扩大 HPDv2 的图像来源,并进行 prompt 清洗过滤,减少prompt偏差。
- 建立稳定、公平、易用的 T2I benchmark
- Method:
- HPDv2 制作
- 来源扩大至 4 个不同类型的生成模型和COCO公开数据集,避免在 SD 上学到偏置
- 对 prompt 用 chatGPT 进行重写去偏,把强烈的风格词、艺术家词、平台词或者冲突的描述去掉,改成清晰、风格词更少、更短的陈述句。
- 雇佣 labeler 进行标注和 rank
- HPSv2: 利用 HPDv2 微调 CLIP,评分规则同 HPS
- HPDv2 制作
- Key Design:
- 标注策略:如果一张图虽然更贴 prompt,但严重模糊、结构崩坏、保真度低,那么应该排在质量更好的图之后;如果两张图审美和质量接近,则应更关注文本对齐。
- HPDv2 微调 CLIP:
- 只训练 CLIP image encoder 的最后 20 层和 text encoder 的最后 11 层。超参数通过 Bayesian optimization
- 利用图像对进行训练和loss计算,实际效果接近对 preferred image 做 pairwise cross entropy,即最大化被人类选择图像的相对分数。
- Limitation:
- 来源只是相对没那么局限
- Prompt 重构可能引入 gpt 的偏差
- HPS v2 可能继承 CLIP 偏差
HPSv3
- Problem:
- 当前 T2I 任务的人类偏好评价模型的输入类型比较单一,可能是单一的架构、分辨率、标注来源等
- Key Idea:
- 进一步扩大偏好数据来源和类型,获取更宽的数据质量谱
- 使用更强的 VLM 进行图像表征
- Method:
- HPDv3 数据集 :把高质量真实图、低质量真实图、传统/较新 diffusion 模型、DiT 模型、autoregressive 模型、Midjourney 用户偏好数据放在同一个人类偏好数据框架内,形成“wide-spectrum”训练与评测基础。
- HPSv3 模型 :用 Qwen2-VL / Qwen2VL-7B 类 VLM backbone 替代 CLIP/BLIP 作为图文特征抽取器,并把 reward score 从单点标量改为带不确定性的分布建模。
- CoHP 方法 :不是训练一个新生成模型,而是用 HPSv3 做 reward / scorer,在多个生成模型和多轮采样中选择最优候选,再进行 image-to-image 式迭代 refinement。
- Key Design:
- HPSv3 模型使用 Qwen2-VL 作为 backbone,然后接 MLP 作为 reward head 输出偏好分数。
- Uncertainty-Aware Ranking:作者认为人类的偏好具备不确定性,应该服从某种分布,故将 reward 建模为一维高斯分布,并使 reward head 输出 和 。于是偏好概率变成 (TODO 论文中补充) Loss 为:
- Chain-of-Human-Perference (CoHP): 本质是在推理阶段使用训练好的 HPSv3 做选择器进行 ranking,Prompt→多个模型生成→HPSv3 选平均得分最高的几个模型→选定模型生成多张→HPSv3 选最佳图→img2img 多轮优化
- Limitation:
- VLM backbone 成本高 :Qwen2VL-7B 作为 reward model 不适合所有工业场景。
- uncertainty-aware loss 增益有限:Table 5 显示它是锦上添花,不是主要贡献
- specialized domain 覆盖不足:医学、生物、物理、科学图示等不是 HPDv3 的强项