Pick-a-Pic: 文本到图像生成的用户偏好开放数据集
作者: Yuval Kirstain, Adam Polyak, Uriel Singer, Shahbuland Matiana, Joe Penna, Omer Levy
机构: 特拉维夫大学 (Tel Aviv University), Stability AI
论文链接: https://arxiv.org/pdf/2305.01569
代码仓库: https://github.com/yuvalkirstain/PickScore
模型地址: https://huggingface.co/yuvalkirstain/PickScore_v1
摘要
通常只有公司才能收集文本到图像用户的大型人类偏好数据集,这使得此类数据集对公众来说难以获取。为了解决这个问题,我们创建了一个 Web 应用程序,使文本到图像用户能够生成图像并指定他们的偏好。使用这个 Web 应用程序,我们构建了 Pick-a-Pic,一个大型的、开放的文本到图像提示词和真实用户对生成图像的偏好数据集。我们利用这个数据集训练了一个基于 CLIP 的评分函数 PickScore,它在预测人类偏好的任务上表现出超越人类的表现。然后,我们测试了 PickScore 执行模型评估的能力,并观察到它比其他自动评估指标与人类排名有更好的相关性。因此,我们建议使用 PickScore 来评估未来的文本到图像生成模型,并使用 Pick-a-Pic 提示词作为比 MS-COCO 更相关的数据集。最后,我们展示了 PickScore 如何通过排名来增强现有的文本到图像模型。

1. 引言
最近在使语言模型与用户行为和期望保持一致方面取得的进展,对建模用户偏好的能力给予了显著重视 [10, 1, 3]。然而,在文本到图像生成领域,这种能力很少受到关注。这种缺乏关注很大程度上可以归因于缺少一个大型的、开放的对最先进图像生成模型的人类偏好数据集。
为了填补这一空白,我们创建了一个 Web 应用程序,使用户能够使用最先进的文本到图像模型生成图像,同时指定他们的偏好。在用户明确同意的情况下,我们收集他们的提示词和偏好,创建了 Pick-a-Pic,一个包含超过 50 万个模型生成图像的人类偏好示例的公开数据集。我们数据集中的每个示例包括一个提示词、两张生成的图像,以及一个标签,指示哪张图像是首选的,或者在两张图像之间没有显著偏好时标记为平局。值得注意的是,Pick-a-Pic 是由真正有兴趣生成图像的真实用户创建的。这种兴趣与缺乏生成创意提示词的内在动机或提示词作者原始意图来判断哪张图像更好地符合其需求的众包工作者不同。
利用真实的用户偏好使我们能够训练一个评分函数,该函数估计用户在给定提示词的情况下对特定生成图像的满意度。为了训练这样的评分函数,我们使用人类偏好数据微调 CLIP-H [12, 7],并使用类似于 InstructGPT 奖励模型的目标 [10]。该目标旨在最大化首选图像被选中而非非首选图像的概率,或者在平局情况下最大化概率。我们发现,由此产生的评分函数 PickScore 在预测用户偏好的任务中表现出超越人类的表现(准确率为 70.5%,而人类的准确率为 68.0%),而零样本 CLIP-H(60.8%)和流行的美学预测器 [14](56.8%)的表现更接近随机(56.8%)。
拥有了人类偏好数据集和最先进的评分函数,我们建议更新评估文本到图像生成模型的标准协议。首先,我们建议研究人员使用 Pick-a-Pic 的提示词来评估他们的文本到图像模型,这些提示词比 MS-COCO [2, 9] 中的平凡描述更能代表人类想要生成的内容。其次,为了比较 PickScore 与 FID,我们进行了一项人类评估研究,发现即使在针对 MS-COCO 描述进行评估时,PickScore 也表现出与人类偏好的强相关性(0.917),而使用 FID 排名则产生负相关性(-0.900)。重要的是,我们还使用从真实用户偏好推断的模型排名,将 PickScore 与其他评估指标进行比较。我们观察到 PickScore 与由真实用户确定的地面真值排名有更强的相关性,优于其他评估指标。因此,我们建议使用 PickScore 作为比现有指标更可靠的评估指标。
最后,我们探索了 PickScore 如何通过排名来提高普通文本到图像模型的质量。为了实现这一点,我们使用不同的初始随机噪声以及不同的模板(例如 "breathtaking [prompt]. award-winning, professional, highly detailed")来稍微改变用户提示词来生成图像。然后,我们测试了根据不同评分函数选择最佳图像的影响。我们的研究结果表明,人类评估者更喜欢由 PickScore 选择的图像,而不是由 CLIP-H [7](胜率为 71.3%)、美学预测器 [14](胜率为 85.1%)和普通文本到图像模型(胜率为 71.4%)选择的图像。
总之,本工作通过创建一个大型的、开放的、高质量的用户提示模型生成图像的人类偏好数据集,解决了文本到图像生成领域的一个空白。我们通过训练一个评分函数 PickScore 来展示这个数据集的潜力,该函数在预测人类偏好、评估文本到图像模型以及通过排名改进它们方面,表现出优于任何其他公开可用的自动评分函数的性能。我们鼓励研究社区采用 Pick-a-Pic 和 PickScore 作为文本到图像建模和将人类偏好纳入学习过程的进一步进展的基础。
注: 我们最近开源了新版本的 Pick-a-Pic 数据集,包含超过 100 万个示例。
2. Pick-a-Pic 数据集
Pick-a-Pic 数据集通过记录用户与 Pick-a-Pic 文本到图像生成 Web 应用程序的交互而创建。总体而言,Pick-a-Pic 数据集包含超过 50 万个示例和 35,000 个不同的提示词。每个示例包含一个提示词、两张生成的图像,以及一个标签,指示哪张图像是首选的,或者在两张图像之间没有显著偏好时标记为平局。数据集中的图像是通过使用多个骨干模型生成的,即 Stable Diffusion 2.1、Dreamlike Photoreal 2.0 和 Stable Diffusion XL 变体 [13],同时采样不同的分类器自由引导比例值 [6]。随着我们继续通过 Pick-a-Pic Web 应用程序收集更多用户交互,并减少数据集中包含的 NSFW 示例数量,我们将定期上传数据集的新版本。
Pick-a-Pic Web 应用程序
为了确保最大程度地让广大用户使用,用户界面设计以简洁为原则。该应用程序允许用户编写创意提示词并生成图像。在每一轮中,用户会看到两张生成的图像(基于相同的提示词生成),并被要求选择他们更喜欢的图像,或者如果两张图像同样好,则标记为平局。一旦用户做出选择,被拒绝的图像就会被一张新图像替换,而用户继续选择他们更喜欢的图像。这个过程会重复,直到用户更改提示词。这种设计鼓励用户提供创意提示词,并确保他们真正判断哪张图像更好地符合他们的需求。

数据集统计
- 总示例数: 超过 500,000 个
- 独特提示词数: 35,000 个
- 生成模型: Stable Diffusion 2.1, Dreamlike Photoreal 2.0, Stable Diffusion XL 变体
- 采样参数: 不同的分类器自由引导比例值
3. PickScore:基于 CLIP 的评分函数
3.1 训练方法
为了训练 PickScore,我们使用人类偏好数据微调 CLIP-H [12, 7]。训练目标类似于 InstructGPT 的奖励模型 [10],旨在最大化首选图像被选中而非非首选图像的概率。
给定一个提示词 $x$ 和两张生成的图像 $y_1$ 和 $y_2$,以及一个标签 $l \in {1, 2, \text{tie}}$,我们定义:
- 如果 $l = 1$,则图像 $y_1$ 被首选
- 如果 $l = 2$,则图像 $y_2$ 被首选
- 如果 $l = \text{tie}$,则两张图像被认为同样好
评分函数 $s(x, y)$ 计算给定提示词 $x$ 下图像 $y$ 的分数。我们定义:
$$
p_1 = \frac{\exp(s(x, y_1))}{\exp(s(x, y_1)) + \exp(s(x, y_2))}
$$
$$
p_2 = \frac{\exp(s(x, y_2))}{\exp(s(x, y_1)) + \exp(s(x, y_2))}
$$
训练目标是最小化以下损失函数:
$$
\mathcal{L} = \begin{cases}
-\log p_1 & \text{if } l = 1 \
-\log p_2 & \text{if } l = 2 \
-\log(p_1 + p_2) & \text{if } l = \text{tie}
\end{cases}
$$
3.2 性能评估
我们在 Pick-a-Pic 测试集上评估了 PickScore 的性能:
| 模型 | 准确率 |
|---|---|
| PickScore | 70.5% |
| 人类评估者 | 68.0% |
| 零样本 CLIP-H | 60.8% |
| 美学预测器 | 56.8% |
| 随机猜测 | 50.0% |
PickScore 在预测人类偏好方面表现出超越人类的表现,准确率达到 70.5%,而人类的准确率为 68.0%。相比之下,零样本 CLIP-H(60.8%)和流行的美学预测器(56.8%)的表现更接近随机猜测。
4. 模型评估
4.1 与 FID 的比较
我们进行了一项人类评估研究,比较 PickScore 与 FID(Fréchet Inception Distance)在评估文本到图像生成模型方面的表现。
评估结果:
- PickScore 与人类偏好的相关性: 0.917(强正相关)
- FID 与人类偏好的相关性: -0.900(强负相关)
即使在针对 MS-COCO 描述进行评估时,PickScore 也表现出与人类偏好的强相关性(0.917),而使用 FID 排名则产生负相关性(-0.900)。这表明 PickScore 是一个更可靠的评估指标。
4.2 与其他评估指标的比较
我们使用从真实用户偏好推断的模型排名,将 PickScore 与其他评估指标进行比较。我们观察到 PickScore 与由真实用户确定的地面真值排名有更强的相关性,优于其他评估指标。
4.3 评估建议
基于我们的研究结果,我们提出以下建议:
-
使用 Pick-a-Pic 提示词进行评估: 研究人员应该使用 Pick-a-Pic 的提示词来评估他们的文本到图像模型,这些提示词比 MS-COCO 中的平凡描述更能代表人类想要生成的内容。
-
使用 PickScore 作为评估指标: PickScore 应该被用作比现有指标(如 FID)更可靠的评估指标。
5. 通过排名改进模型
5.1 方法
我们探索了 PickScore 如何通过排名来提高普通文本到图像模型的质量。为了实现这一点,我们:
- 使用不同的初始随机噪声生成多个图像变体
- 使用不同的模板(例如 "breathtaking [prompt]. award-winning, professional, highly detailed")来稍微改变用户提示词
- 根据不同的评分函数选择最佳图像
5.2 结果
我们的研究结果表明,人类评估者更喜欢由 PickScore 选择的图像,而不是:
- CLIP-H: 胜率为 71.3%
- 美学预测器: 胜率为 85.1%
- 普通文本到图像模型: 胜率为 71.4%
这些结果表明,PickScore 可以有效地用于通过排名来提高文本到图像生成模型的质量。
6. Pick-a-Pic 提示词与 MS-COCO 描述的对比
为了说明 MS-COCO 描述和 Pick-a-Pic 提示词之间的差异,我们展示了每个数据集中的示例:
Pick-a-Pic 提示词示例:
- "forest with ruins, photo"(废墟森林,照片)
- "A panda bear as a mad scientist"(熊猫作为疯狂科学家)
- "product photo of a sneakers"(运动鞋产品照片)
- "photo of a bicycle, detailed, 8k uhd, dslr, high quality, film grain, Fujifilm XT3"(自行车照片,详细,8K UHD,DSLR,高质量,胶片颗粒,Fujifilm XT3)
- "female portrait photo"(女性肖像照片)
- "Alexander the great, cover art, colorful"(亚历山大大帝,封面艺术,彩色)
- "A galactic eldritch squid towering over the planet Earth, stars, galaxies and nebulas in the background..."(一个巨大的银河系触手怪耸立在地球上,背景中有恒星、星系和星云...)
- "Portrait of a giant, fluffy, ninja teddy bear"(巨大的、毛茸茸的、忍者泰迪熊的肖像)
- "insanely detailed portrait, darth vader, shiny, extremely intricate, high res, 8k, award winning"(极其详细的肖像,达斯·维达,闪亮,极其复杂,高分辨率,8K,获奖作品)
- "Giant ice cream cone melting and creating a river through a city"(巨大的冰淇淋蛋筒融化,在城市中形成一条河流)
MS-COCO 描述示例:
- "A man with a red helmet on a small moped on a dirt road."(一个戴着红色头盔的男人骑着一辆小型轻便摩托车在土路上)
- "A woman wearing a net on her head cutting a cake."(一个头上戴着网的女人在切蛋糕)
- "there is a woman that is cutting a white cake"(有一个女人在切白色蛋糕)
- "a little boy wearing headphones and looking at a computer monitor"(一个小男孩戴着耳机,看着电脑显示器)
- "A young girl is preparing to blow out her candle."(一个小女孩准备吹灭她的蜡烛)
关键差异:
- Pick-a-Pic 提示词: 更具创意性、艺术性,包含详细的风格和技术规格,更符合用户实际想要生成的内容
- MS-COCO 描述: 更平凡、描述性,主要用于对象识别任务,不太适合文本到图像生成评估
7. 训练评分函数的替代方法
我们进一步探索了一种更接近 CLIP 原始目标的替代损失函数。在这个损失函数中,我们还将批次中的其余示例作为批次内负样本。具体来说,考虑第 3 节中建立的符号,$y_1^k, y_2^k$ 表示批次中第 $k$ 个示例对应的图像,我们将 $\hat{p}^k$ 公式化为:
$$
\hat{p}i^k = \frac{\exp s(x, y_i)}{\sum_k \sum{j=1}^{2} \exp s(x, y_j^k)}
$$
我们预期这个目标函数会在性能损失最小的情况下保持 CLIP 的通用能力。然而,我们的研究结果表明,PickScore 显著优于这个目标函数,因为后者只产生了一个在 Pick-a-Pic 测试集上准确率为 65.2% 的评分函数(相比之下,PickScore 的准确率为 70.5%)。
8. 结论与未来工作
主要贡献
-
Pick-a-Pic 数据集: 创建了一个大型的、开放的、高质量的用户提示模型生成图像的人类偏好数据集,包含超过 50 万个示例。
-
PickScore 评分函数: 训练了一个基于 CLIP 的评分函数,在预测人类偏好方面表现出超越人类的表现(准确率 70.5% vs 人类 68.0%)。
-
评估协议改进: 建议使用 Pick-a-Pic 提示词和 PickScore 作为评估文本到图像生成模型的新标准,这比现有的 MS-COCO + FID 方法更可靠。
-
模型改进方法: 展示了 PickScore 如何通过排名来提高文本到图像生成模型的质量。
未来工作方向
-
强化学习人类反馈(RLHF): 使用 Pick-a-Pic 数据集和 PickScore 进行强化学习人类反馈,进一步改进文本到图像生成模型。
-
其他对齐方法: 探索其他将人类偏好纳入学习过程的方法。
-
数据集扩展: 继续收集更多用户交互,并改进数据集的质量。
-
模型评估: 使用 PickScore 评估更多文本到图像生成模型。
致谢
我们衷心感谢 Stability AI、Google TRC 项目以及 Jonathan Berant 的支持,他们为我们提供了宝贵的计算资源、信用额度和存储空间,这对项目的成功至关重要。我们还要感谢 Roni Herman、Or Honovich、Avia Efrat、Samuel Amouyal、Tomer Ronen、Uri Shaham、Maor Ivgi、Itay Itzhak、Illy Sachs 以及其他朋友和同事对本项目注释工作的贡献。
参考文献
[1] Yuntao Bai, et al. Training a helpful and harmless assistant with reinforcement learning from human feedback. ArXiv, abs/2204.05862, 2022.
[2] Xinlei Chen, et al. Microsoft coco captions: Data collection and evaluation server. ArXiv, abs/1504.00325, 2015.
[3] Paul Francis Christiano, et al. Deep reinforcement learning from human preferences. ArXiv, abs/1706.03741, 2017.
[4] Arpad E. Elo. The rating of chessplayers, past and present. 1978.
[5] Martin Heusel, et al. Gans trained by a two time-scale update rule converge to a local nash equilibrium. In NIPS, 2017.
[6] Jonathan Ho. Classifier-free diffusion guidance. ArXiv, abs/2207.12598, 2022.
[7] Gabriel Ilharco, et al. Openclip, July 2021.
[8] Kimin Lee, et al. Aligning text-to-image models using human feedback. ArXiv, abs/2302.12192, 2023.
[9] Tsung-Yi Lin, et al. Microsoft coco: Common objects in context. In ECCV, 2014.
[10] Long Ouyang, et al. Training language models to follow instructions with human feedback. ArXiv, abs/2203.02155, 2022.
[11] John David Pressman, et al. Simulacra aesthetic captions. Technical Report Version 1.0, Stability AI, 2022.
[12] Alec Radford, et al. Learning transferable visual models from natural language supervision. In International Conference on Machine Learning, 2021.
[13] Robin Rombach, et al. High-resolution image synthesis with latent diffusion models. 2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 10674-10685, 2021.
[14] Christoph Schuhmann, et al. LAION-5b: An open large-scale dataset for training next generation image-text models. In Thirty-sixth Conference on Neural Information Processing Systems Datasets and Benchmarks Track, 2022.
[15] Christian Szegedy, et al. Rethinking the inception architecture for computer vision. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 2818-2826, 2015.
[16] Zijie J. Wang, et al. Diffusiondb: A large-scale prompt gallery dataset for text-to-image generative models. ArXiv, abs/2210.14896, 2022.
[17] Xiaoshi Wu, et al. Better aligning text-to-image models with human preference. ArXiv, abs/2303.14420, 2023.
[18] Jiazheng Xu, et al. Imagereward: Learning and evaluating human preferences for text-to-image generation. ArXiv, abs/2304.05977, 2023.
附录
数据集访问
- Pick-a-Pic 数据集: 最新版本包含超过 100 万个示例
- PickScore 模型: https://huggingface.co/yuvalkirstain/PickScore_v1
- 代码仓库: https://github.com/yuvalkirstain/PickScore
使用示例
# 使用 PickScore 评估图像
from transformers import CLIPProcessor, CLIPModel
import torch
# 加载 PickScore 模型
model = CLIPModel.from_pretrained("yuvalkirstain/PickScore_v1")
processor = CLIPProcessor.from_pretrained("yuvalkirstain/PickScore_v1")
# 计算图像分数
def compute_score(prompt, image):
inputs = processor(
text=prompt,
images=image,
return_tensors="pt",
padding=True
)
with torch.no_grad():
outputs = model(**inputs)
# 计算相似度分数
score = outputs.logits_per_image[0][0].item()
return score
# 使用示例
prompt = "a beautiful landscape"
image1 = load_image("image1.jpg")
image2 = load_image("image2.jpg")
score1 = compute_score(prompt, image1)
score2 = compute_score(prompt, image2)
if score1 > score2:
print("Image 1 is preferred")
else:
print("Image 2 is preferred")
论文信息:
- 标题: Pick-a-Pic: An Open Dataset of User Preferences for Text-to-Image Generation
- 作者: Yuval Kirstain, Adam Polyak, Uriel Singer, Shahbuland Matiana, Joe Penna, Omer Levy
- 发表时间: 2023年5月
- arXiv ID: 2305.01569
- 原文链接: https://arxiv.org/pdf/2305.01569
本文档是对原论文的中文翻译和整理。如有翻译不当之处,请参考原文。