作者 | 维克多
自从今年1月份OpenAI祭出120亿参数魔法模型DALL·E,众多科研工作者开始对其进行多方位的剖析,希望也能做出给定“自然语言文字描述直接生成对应图片”的程序或软件。
120亿参数………这意味着只有“顶级玩家”才能入局。如果缩小模型参数,程序还能跑出高质量的结果么?
今日,谷歌和Hugging Face的研究员们开放了一款DALL·E mini的小程序。顾名思义,作为DALL·E的复刻版,模型规模比原版小了27倍,且只在单个TPU v3-8上训练了3天。
mini版的DALL·E创造思路非常简单:在官方开源代码以及预训练模型的基础上,简化体系结构和减少模型内存需求。
效果如何?作者在博客中说:
“在硬件资源受限的情况下,虽然质量比较低,但结果仍然是令人印象深刻的。”
AI科技评论将其与正版DALL·E进行了对比,结果如下:
图注:左边为DALL·E mini输出结果,右边为OpenAI官方博客中的示范
图注:左边为DALL·E mini输出结果,右边为OpenAI官方博客中的示范
图注:左边为DALL·E mini输出结果,右边为OpenAI官方博客中的示范
通过以上对比,mini版的DALL·E只在“鳄梨形状的扶手椅”交出了令人满意的答卷,在“遛狗”和“店面”测试中,前者生成的是抽象派画面,后者只生成了店面……果然,魔法还是念完完整咒语,才能发挥最完美的效果。
https://huggingface.co/spaces/flax-community/dalle-mini
考虑到较小规模的模型架构,以及只训练了三天,因此,其模型结构和训练方法对我们也有借鉴意义。
模型架构
1.图像通过VQGAN编码器进行编码,该编码器将图像转换为一系列tokens。
2.文字描述通过BART编码器进行编码。其中,BART解码器是一个自回归模型,其目标是预测下一个tokens。
3.损失函数来自VQGAN中真实图像编码和预测值之间的softmax cross entropy。
在推理时候,只有标题(captions)可用,图像生成过程如下:
3.基于解码器在下一个 token的预测分布,对图像 token进行顺序采样
前面也提到,对于图像的编码和解码,作者使用VQGAN。VQGAN的目标是将一幅图像编码成一系列离散的 token,这些 token可用于transformers模型。
图注:训练transformers以实现高分辨率图像合成
值得一提的是,为了充分利用TPU,该模型用JAX编程。此外,为了加快数据加载速度,作者使用图像编码器对所有图像进行了预编码。
其中,每个TPU处理的Batch size为56,这可以最大限度地增加每个TPU的可用内存;采用Adafactor为优化器,提高内存效率,使我们可以使用更高的Batch size。作者们还花了半天的时间,通过启动超参数搜索来为模型找到一个好的学习率(0.005)。
与OpenAI DALL·E相比
1.Dall·E使用120亿参数版本的GPT-3。相比之下,Dall·E mini的模型小27倍,参数约为4亿。
2.Dall·E mini使用大量预先训练好的模型(VQGAN、BART编码器和CLIP),而OpenAI从头开始训练。
3.在图像编码方面,表( vocabulary )的对比是8192 vs 16384,tokens的对比是1024vs256。Dall·E使用VQVAE,而作者使用VQGAN。
4.在文本编码方面,表( vocabulary )的对比是16384 vs 50264,tokens的对比是256 vs 1024。
5.Dall·E通过自回归模型读取文本,而Dall·E mini使用双向编码器。
6.Dall·E接受了2.5亿对图像和文本的训练,而Dall·E mini只使用了1500万对。
综上,以上的设置差异使得Dall·E mini的训练时间大大缩小,即只在单个TPU v3-8上训练了3天。据作者计算,模型的训练成本不到200美元,即使算上在TPU和超参数搜索上的实验,额外的开销也不超过1000美元。
基于此,Dall·E生成的图像的质量虽然比Dall·E mini模型高得多,但调用的资源非常少。不得不承认这个模型在复现OpenAI几个官方示例中确实失败了。
差在哪?
作者也承认了Dall·E mini的几个缺陷,在文末,他们总结到:
3.很难预测该模型的优势和缺陷,例如该模型很擅长生成“鳄梨形状的扶手椅”,但不能生成与“计算机logo ”相关的任何内容;
经过分析,作者认为之所以出现缺陷,可能是因为数据集,毕竟数据偏见一直是研究社区所讨论的;另外,模型本身以及训练的流程、推理的流程都有可能是出问题的地方。
雷锋网雷锋网(公众号:雷锋网)雷锋网
雷锋网特约稿件,未经授权禁止转载。详情见。
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/139128.html