本文主要探讨如何使用指令微调的方法教会 Stable Diffusion 按照指令 PS 图像。这样,我们 Stable Diffusion 就能听得懂人话,并根据要求对输入图像进行相应操作,如: 将输入的自然图像卡通化 。
![]() |
---|
图 1:我们探索了 Stable Diffusion 的指令微调能力。这里,我们使用不同的图像和提示对一个指令微调后的 Stable Diffusion 模型进行了测试。微调后的模型似乎能够理解输入中的图像操作指令。(建议放大并以彩色显示,以获得最佳视觉效果) |
InstructPix2Pix: Learning to Follow Image Editing Instructions 一文首次提出了这种教 Stable Diffusion 按照用户指令 编辑 输入图像的想法。本文我们将讨论如何拓展 InstructPix2Pix 的训练策略以使其能够理解并执行更特定的指令任务,如图像翻译 (如卡通化) 、底层图像处理 (如图像除雨) 等。本文接下来的部分安排如下:
指令微调简介
本工作的灵感来源
数据集准备
训练实验及结果
潜在的应用及其限制
开放性问题
你可在原文找到我们的代码、预训练模型及数据集。
引言与动机
指令微调是一种有监督训练方法,用于教授语言模型按照指令完成任务的能力。该方法最早由谷歌在 Fine-tuned Language Models Are Zero-Shot Learners (FLAN) 一文中提出。最近大家耳熟能详的 Alpaca、FLAN V2 等工作都充分证明了指令微调对很多任务都有助益。
下图展示了指令微调的一种形式。在 FLAN V2 论文 中,作者在一个样本集上对预训练语言模型 (如 T5) 进行了微调,如下图所示。
![]() |
---|
图 2: FLAN V2 示意图 (摘自 FLAN V2 论文)。 |
使用这种方法,我们可以创建一个涵盖多种不同任务的训练集,并在此数据集上进行微调,因此指令微调可用于多任务场景:
输入 | 标签 | 任务 |
---|---|---|
Predict the sentiment of the following sentence: “The movie was pretty amazing. I could not turn around my eyes even for a second.” |
Positive | Sentiment analysis / Sequence classification |
Please answer the following question. What is the boiling point of Nitrogen? |
320.4F | Question answering |
Translate the following English sentence into German: “I have a cat.” |
Ich habe eine Katze. | Machine translation |
… | … | … |
在该理念的指导下,FLAN V2 的作者对含有数千个任务的混合数据集进行了指令微调,以达成对未见任务的零样本泛化: