扩散模型(diffusion model)
/ dih-FYOO-zhun MOD-ul /
扩散模型,是大多数现代图像生成器背后的那种AI,而它的核心思想美得反直觉:它通过学习「去除噪声」来学会「创造图像」。训练时,模型被喂以一批干净的图像,这些图像被逐步掺入随机的雪花噪点——先一点点,再多些,直到几乎是一片纯粹的雪花——它则练习把每一步反过来,去预测「噪点稍少的那一版」长什么样。这样练得够多,模型便成了去噪的行家。
生成一张新图像,便是把这门学来的本领从零反向跑一遍。你从一帧纯粹的随机噪声起步——电视雪花——让模型一步步给它去噪。每一步,它都把雪花往「一幅连贯的图像」上挪近一点,并(在文生图系统里)由你的提示来引导。几十步之后,噪声便凝结成了一幅从未存在过的图。这有点像一位雕塑家,在一块粗糙的石料里看见了一尊像,凿去一切不属于它的部分——只不过这里的石料,是纯粹的随机。
值得把它与语言模型的不同、以及它做不到什么,都直白说清。扩散模型并不是在检索或拼贴已有的图像;它是在从学来的模式里采样出一张全新的图。这也意味着它对事实或逻辑毫无把握——它产出的是「统计上看着对」的东西,这正是为什么生成图里会出现六根手指的手、乱码般的文字,或物理上不可能的倒影。它是一个强大的、关于「事物外观」的模式采样器,而非一台「理解」的引擎。
从一块纯粹的电视雪花起步。第1步:模型轻轻一推,隐约的形状浮现。第10步:一只猫模糊的轮廓。第30步:一张清晰、细节丰富、却从未存在过的猫的照片。每一步都去掉了一点噪声,由模型所学到的「猫长什么样」来引导。
从随机雪花到连贯图像,一步一步地去噪。
扩散模型是在「生成」、而非「检索」——那张猫照是从学来的模式里采样出来的,并非由训练图像缝补而成。这也是为什么它对真理或解剖一无所知,会动辄产出多余的手指、虚假的文字,或乍看没问题、实则物理上不可能的画面。