阿里妹导读
本文介绍了图像生成技术在AIGC领域的发展历程、关键技术和当前趋势,以及这些技术如何应用于新能源汽车行业的车联网服务中。
一、前言
1.1 AIGC 发展背景
图像作为人工智能内容生成的一种模态,一直在AIGC领域中扮演着重要角色,由于图像生成应用的广泛性和实用性,使其受到学术界和产业界相当多的关注。近年来,图像生成技术也取得了很多关键性突破,从经典的GAN技术到目前主流的扩散模型,以及在此基础上不断迭代出性能更强、生成效果更好的算法和模型,极大拓展了图像生成技术的应用领域和发展前景。而在进行商业化落地时,生成速度和稳定性的提升、可控性和多样性的增强,以及数据隐私和知识产权等问题,也需要在图像生成向各行各业渗透的过程中进行解决和探索。在实际应用中,模型的效果表现主要体现在生成图像的质量和图像的多样性,其在平面设计、游戏制作、动画制作等领域均有广泛的应用,另外,在医学影像合成与分析,化合物合成和药物发现等方面,图像生成也具有很大的应用潜力。
1.2 技术发展的关键阶段
作为计算机视觉领域的重要组成部分,图像生成的技术发展大致经历了三个关键阶段:
生成对抗网络(GAN)是上一代主流图像生成模型,GAN通过生成器和判别器进行博弈训练来不断提升生成能力和鉴别能力,使生成式网络的数据愈发趋近真实数据,从而达到生成逼真图像的目的。但在发展过程中,GAN也存在稳定性较差、生成图像缺乏多样性、模式崩溃等问题。
自回归模型进行图像生成的灵感得益于NLP预训练方式的成功经验,利用Transformer结构中的自注意力机制能够优化GAN的训练方式,提高了模型的稳定性和生成图像的合理性,但基于自回归模型的图像生成在推理速度和训练成本方面的问题,使其实际应用受限。
对于前代模型在性能方面的局限性,扩散模型(Diffusion Model)已经使这些问题得到解决,其在训练稳定性和结果准确性的效果提升明显,因此迅速取代了GAN的应用。而对于产业应用中的大量跨模态图像生成需求,则需要结合CLIP进行,CLIP基于文本-图像对的训练方式能够建立跨模态的连接,显著提升生成图像的速度和质量。
目前,业内主流且生成效果优秀的图像生成产品主要是基于扩散模型和CLIP实现的。
1.3 主流模型实现原理及优缺点
1、实现原理:扩散模型是通过定义一个扩散步骤的马尔可夫链,通过连续向数据添加随机噪声,直到得到一个纯高斯噪声数据,然后再学习逆扩散的过程,经过反向降噪推断来生成图像。扩散模型通过系统地扰动数据中的分布,再恢复数据分布,使整个过程呈现一种逐步优化的性质,确保了模型的稳定性和可控度。
2、模型优缺点:扩散模型的优点在于其基于马尔可夫链的正向及反向扩散过程能够更加准确地还原真实数据,对图像细节的保持能力更强,因此生成图像的写实性更好。特别是在图像补全修复、分子图生成等应用上扩散模型都能取得很好的效果。但由于计算步骤的繁杂,相应地,扩散模型也存在采样速度较慢的问题,以及对数据类型的泛化能力较弱。
1、原理:CLIP是基于对比学习的文本-图像跨模态预训练模型,其训练原理是通过编码器分别对文本和图像进行特征提取,将文本和图像映射到同一表示空间,通过文本-图像对的相似度和差异度计算来训练模型,从而能够根据给定的文本生成符合描述的图像。
2、模型优缺点:CLIP模型的优点在于其基于多模态的对比学习和预训练的过程,能够将文本特征和图像特征进行对齐,因此无需事先标注数据,使其在零样本图像文本分类任务中表现出色;同时对文本描述和图像风格的把握更加准确,并能够在不改变准确性的同时对图像的非必要细节进行变化,因此在生成图像的多样性方面表现更佳。
由于CLIP本质上属于一种图像分类模型,因此对于复杂和抽象场景的表现存在局限性,例如可能在包含时间序列数据和需要推理计算的任务中生成图像的效果不佳。另外,CLIP的训练效果依赖大规模的文本-图像对数据集,对训练资源的消耗比较大。
1.4 当前AIGC 行业发展趋势
基于扩散模型和CLIP模型的基础架构,衍生出一些列可悲开发者使用的工具平台,加速AIGC生图的生产力和商业化进程。目前行业主流AIGC工作流工具,基本就是ComfyUI和Web UI两个。从Midjourney和SD的官方社区文档,可以查看到下列两个工具的比较:
二、应用场景
对于新能源汽车行业,车联网的互动能力和趣味性,会成为行业内竞争堡垒。而且新能源企业面向车主的服务方式会更贴近于互联网企业,内容交互的引流已经变成各家车企重点攻坚的方向。典型场景如下:
1)车主节假日中短途游之后,基于车联网和车载芯片,会记录如下旅程信息:
2)基于旅程信息,期望大模型在汽车内容社区,自动生成如下的风格化素材,并推送
同时为了最大化的c端引流,车企对AIGC的能力提出了极高的要求,尤其注重生图细节的下列部分:
三、实践落地
3.1 AIGC生图工具选型
总体来看,面向to c场景的生产环境使用,ComfyUI的学习曲线虽然较陡,但相较于其他的Stable Diffusion runtime有以下优势:
当然,还有一个关键点是,PAI EAS基于场景化部署,对于ComfyUI的版本选择更多样,更便捷。
ComfyUI的工作流配置页面
3.2 业务流程确认
往往容易被忽视的第1步,就是基于业务需求设计完整的工作流。
因为aigc最后的效果是要求比较高,所以为了实现目标,往往需要大语言模型,大视觉模型,NLP,VAE,CLIP等一系列模型组合才能达到效果,而且ComfyUI的生图时间普遍较长,所以节点的编排和选择,串行还是并行,哪个节点加图层,都很有讲究。
3.3 自定义节点开发
完成工作流的设计之后,下一步就是基于开源社区,确认可被使用的开发节点,以及需要后续自开发的节点。
目前通过github所能获取的标准ComfyUI节点,都是开源模型节点,所以完成上边链路所需要的文生文和文生图,就需要对通义千问和通义万相节点进行定制化编写后,才能挂载到ComfyUI上。下边是基于ComfyUI社区介绍,整理的《ComfyUI自定义节点开发规范》:
ComfyUI自定义节点开发规范
按照开发规范,通过调用百炼接口,对qwen-max和wanx-v2的进行节点封装:
3.4 PAI 服务部署&增加算力选择
目前对比了几家主流云厂商,阿里云的PAI和AWS 的Bedrock是比较好的支持ComfyUI多版本的部署,同时对于资源挂载的适配也比较好。这里注意通过PA对ComfyUI部署,会涉及到两个版本:
官方文档从性价比考虑,资源规格推荐使用GU30、A10或T4卡型。系统默认选择GPU > ml.gu7i.c16m60.1-gu30。
实际测试结果看,建议部署L20卡,生图速度相比GU30快一些。基于性价比考虑,选择的是单卡L20,16核128G。
3.5 节点和模型挂载
服务部署后,系统会自动在已挂载的OSS或NAS存储空间中创建以下目录结构:
四、技术服务避坑点
避坑点1: 测试和生产环境下,ComfyUI的版本切换
对于生产和测试不同环境,部署的版本选择需要特别注意,不同版的api调用效果差异明显
从POC向商用调用,往往会涉及ComfyUI服务的切换,相对应的OSS的挂载,必须对不同环境做隔离,否则oss/temp文件会将不同服务的中间节点产物存储在一起,产生相互干涉。
避坑点2: 提前规划工作流涉及的资源互访和授权
通常完整的工作流会涉及到千问,万相,可图和FLUX等一些列模型,每个模型的生成文本和图片,都会在上下游中作为入参和出参,因此在每一步流程中,对应的EIP,NAT网关,OSS挂载授权尽量做提前规划,尤其是千问和万相输出内容都会在一个默认的region中,最好提前考虑跨region的问题。
使用AnalyticDB和通义千问构建RAG应用
AnalyticDB与通义千问搭建AI智能客服