QbitAI量子位

文章数:10350 被阅读:146647018

账号入驻

实测腾讯AI文生图!王者荣耀画风一键直出,小程序就能玩

最新更新时间:2023-10-27
    阅读数:
梦晨 萧箫 发自 凹非寺
量子位 | 公众号 QbitAI

鹅厂大模型,又有新玩法!

发布不到两个月,腾讯混元大模型就速通了一个新版本,除了语言模型升级以外,还悄悄上线了AIGC最火热????的功能——

文生图

和语言模型一样,文生图同样可以通过 微信小程序直接体验

不过与Midjourney独立出图不同,混元的文生图和对话功能“互不耽误”,可以 边聊边画 ,与DALL·E 3体验相似。

之前已经申请测试通过的,可以立刻冲了~

还在排队中的也别急,我们已经快速实测了一波热图,这就先放出来给大伙儿看看。

混元文生图上手实测

根据腾讯介绍,混元大模型文生图最大的优势在三处: 真实感 中文理解 风格多样

接下来就挨个试试它做到了什么程度。

先来 画人 ,复刻一波之前爆火过的Midjourney“写实90年代北京情侣”看看。

请输出一张摄影风的照片,在20世纪90年代的北京,一个男性和一个女性,面带微笑,坐在屋顶,穿着夹克和牛仔裤,有很多的建筑物,真实感

可以看出,写实风格的人像还是很拿手的,人物姿态合理,画亚洲人脸与国外AI相也比较 自然

注意这里有个小技巧,想要写实风格的话最好用“ 生成一张……” 来触发,如果用 “画一张……” 大概率会得到插画风格。

写实风格的人像可以,再看看 画风景 如何。

除了一般的风景描述,混元大模型支持指定一个真实存在的景点,比如“桂林山水”或“长城”。

毕竟是AI生成,和真实景观不会完全一样,但感觉还是到位了。

接下来要上难度了,把这 两个场景“组合”起来

生成一张桂林山水,但是岸上有长城,摄影风格,真实感,高度细节。

这么离谱的需求都画出来了,甚至水面还有水波,看来不是简单地重现训练数据,而是对概念有一些自己的理解。

那么更 复杂的概念 如何?

曾经,AI因不理解中文菜名闹过一波笑话。

经过这半年的发展,“红烧狮子头”里不会出现狮子的头,“夫妻肺片”里也不会变成恐怖片了,甚至看着还挺香。

要说比菜名更有挑战的,就到了古诗词,正好写实风格也看腻了也可以换换口味。

生成一张图片:孤舟蓑笠翁,独钓寒江雪,水墨画风格。

总得来说还不错,美中不足之处在于一张图没有“舟”,还有一张舟上坐了两个“翁”,就没有孤独的意境了。

看来诗词这种过于凝练的还是有难度。

But,别忘了混元助手同时拥有聊天对话能力,还支持多轮对话。

借助强大的语言模型部分,我们也找出解决办法。

接下来只需用 “这些要求” “上述要求” 来指代上面的回答,就可以让两个功能联动起来了。

再画就会更稳定,而且增加了雪花飘落的细节。

记住这个小技巧,接下来还会用到。

其实在腾讯混元助手中,专门准备了这样一个 存为指令 的功能。

存好后就可以从对话框右边的 魔法棒图标 处快速调用了,只需要更改要描述的内容即可。

还可以方便地一键分享到微信,4张图一次分享让好友帮忙选,不用来回截图了。

直接打开分享链接,就可以放大查看四张图,还可以开始新对话!

了解过混元大模型的中文理解能力,再来试试最后一个特点 风格多样性

既然是腾讯出品,游戏插画肯定少不了,比如正火的赛博朋克风。

有点感觉了,但总觉得还差点意思。

可以用上面的技巧来,联动语言模型来明确赛博朋克风格的特点。

再手动加亿点点料,就更对味了。

不同游戏的画风差距极大,测试下来混元助手确实能hold住不少,从3D到2D甚至像素都没问题。

即使是同一话题和风格限定,也能展现出不同的画风,Furry控狂喜(doge)

其实腾讯透露,内部多个场景已经用上了混元大模型文生图能力。

虽然还不知道具体怎么使用,但是我们测试了一下用《王者荣耀》来当风格限定词,混元也能理解。

除了游戏之外还有广告场景,前面提到的混元大模型文生图真实感的优势就能发挥出来。

也别忘了腾讯还有一大块内容业务,来个玄幻小说插图也没问题。

这样的文生图效果,背后究竟是通过什么原理实现的?

在此之前,业界其实已经有不少文生图的开源模型。

腾讯是基于其中某种方案打造,还是重新进行的自研?

带着种种问题,我们和 腾讯混元大模型文生图技术负责人芦清林 聊了聊,了解了一下背后的技术细节。

模型全自研,用20亿+图文对炼成

“从算法、数据系统到工程平台,都是从0到1自研。”

芦清林表示,这也算是腾讯混元大模型文生图功能的优势,这样从生成自由度到数据安全性,就都能完全把控,也让生成的图像“更符合用户需求”。

首先是在算法这一块。

当前文生图模型普遍存在三个难点, 语义理解差、构图不合理、画面细节无质感

语义理解差,就是模型听不懂人话,尤其是中英文夹杂的人话。

当前业界普遍采用的是开源的CLIP算法,然而它一来没有建模中文语言,输入中文只能靠翻译,会出现红烧狮子头真的生成狮子的问题(doge);另一个是训练时图文对齐能力不行。

构图不合理,指的是生成的人体结构、画面结构有问题,直接“生异形”。

如果直接基于业界已有的开源扩散模型生成图像,就容易出现这个问题,像是出现“三只手”或者各种奇怪的画面结构。

画面细节无质感,就是生成图像清晰度差。当前不少数据集图像分辨率和质量不高,容易导致训练出来的开源模型质量也不高。

为了解决这三个难点,腾讯混元团队在算法阶段,特意用了三类模型组合来“逐个击破”。

语义理解上, 腾讯自研了跨模态预训练大模型,不仅让它同时学会建模中英文,而且强化文本和图像细粒度特征的联系,简单来说就是中文、英文、图像三者的“跨模态对齐”。

生成构图上, 腾讯自研了一种扩散模型和Transformer混合的架构,尤其是将Transformer当前大火的旋转位置编码研究给用上了。

旋转位置编码通常被用于增加大模型的上下文长度,不过在这里被腾讯巧妙地用于刻画人体结构,让模型既能掌握全局信息(人体骨架)又能理解局部信息(脸部细节)。

最后是在画面细节上, 腾讯自研了超分辨率模型,与此同时还结合了多种算法,针对图像不同的细节进行优化,让最后生成的图像进一步“耐看”。

这样做出来的模型架构,不仅能生成质量更高的图片(分辨率1024×1024),而且只需要微调一下架构,就能变成图生图、甚至是文生视频模型。

接下来,就是关键的数据部分了。

对于文生图而言,生成图像的质量,很大程度上取决于数据的质量,OpenAI在DALL·E 3论文中,通篇都在强调数据对于指令跟随的重要性。

腾讯也非常重视数据对模型的重要性,并同样自研了三方面的技术。

在数据质量上, 由于互联网上扒下来的数据集,往往存在文字描述简洁、和生成内容不完全匹配的问题,因此团队通过改善图-文对数据集中的“文”部分,也就是细化中文的文本描述,来提升图文数据的相关性;

在数据效果上, 团队针对训练数据进行了“金银铜”分层分级,等级越高,意味着数据清洗程度越精细。

其中,20+亿未清洗的“青铜数据”,用来对所有模型进行“粗加工”,也就是预训练;

6亿+“白银数据”,用来对生成模型进一步加工,提升生成质量;

1.12亿+精心清洗的“黄金数据”,则用来对模型进行“精加工”,也就是精调突击训练,确保训练出来的模型质量更优秀。

在数据效率上, 为了加快训练速度,尤其是针对用户反馈对模型进行优化的速度,腾讯也建立了数据飞轮,自动化构建训练数据并加快模型迭代,让模型生成准确率进一步提升。

据芦清林透露,数据飞轮这个技术,也正是解决数据长尾场景难题的关键。

由于我们的生活中总是在出现一些潮流新词,例如“玲娜贝儿”等,这种名词往往在数据集中不常见,而用户又会在输入时使用,因此往往需要第一时间更新进训练数据中。

有了数据飞轮,就能将这个过程效率进一步提升,避免模型在见识到新词后,依旧长时间无法生成对应的图像。

最后,有了算法和数据,还得有个工程平台,来把它们组合起来快速训练。

为此,腾讯自研了Angel机器学习平台,包括训练框架AngelPTM和推理框架AngelHCF。

训练上,大模型最重要的就是并行能力。为此,腾讯基于4D并行+ZeROCache机制,实现了千亿参数混元大模型的快速训练。

直观来看,AngelPTM训练框架相比业界主流框架DeepSpeed-Chat速度提升了1倍以上。

推理上,AngelHCF则实现了支持多种并行能力、支持服务部署及管理、以及自研模型无损量化三大功能,相比业界主流框架提升了1.3倍以上。

值得一提的是,在Angel机器学习框架和平台的支持下, 腾讯混元的语言模型也进行了一轮升级,尤其是代码能力有不小的提升。

我们也简单测了测腾讯混元大模型更新后的代码能力。

首先试试写代码,以帮老师写一个“随机点名程序”为例(手动狗头)。

混元大模型很快生成了一段带注释的完整代码:

import random

# 假设班级里有50个学生,这里是他们的学号
student_ids = ['001''002''003''004''005''006''007''008''009''010',
               '011''012''013''014''015''016''017''018''019''020',
               '021''022''023''024''025''026''027''028''029''030',
               '031''032''033''034''035''036''037''038''039''040',
               '041''042''043''044''045''046''047''048''049''050']

# 使用random.choice()函数从学生学号列表中随机选择一个学生
random_student_id = random.choice(student_ids)

# 打印随机选中的学生学号
print("随机抽取的学生学号是:", random_student_id)

实测可以丝滑运行,每次都能抽到不同的幸(dao)运(mei)儿(dan)起来回答问题:

然后我们还发现,混元大模型竟然还能帮忙查代码bug,属实是程序员省心利器了。

当然,无论是文生图还是代码能力,现在都已经可以在腾讯混元助手中体验。

感兴趣的小伙伴,可以到 腾讯混元助手 排个队或是体验一把~

点这里 ???? 关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~


最新有关QbitAI量子位的文章

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved