专栏名称: 旺知识
AI技术最新进展、发展趋势、研发经验、从业经验
51好读  ›  专栏  ›  旺知识

多模态预训练模型在OPPO端云场景的落地实践

旺知识  · 公众号  ·  · 2024-09-08 17:13

正文

导读 本文将分享 OPPO 多模态预训练模型在端云场景的落地实践。文章将聚焦于如何在手机端实现云场景大模型的部署,在资源不充分的情况下以更低的成本完成训练和推理的落地。

具体内容分成三个主题:

1. 端侧图文检索技术研究

2. 文图生成&理解态模型的应用优化

3. 文图生成模型的端侧轻量化

分享嘉宾| 陈宸 博士 OPPO 高级算法工程师

编辑整理|曾新宇

内容校对|李瑶

出品社区| DataFun


01
端侧图文检索技术研究

1. 解决了什么问题?

首先来介绍图文检索技术。以前在手机端相册搜索照片,都是基于标签来搜索。从 CLIP 模型出现后开始做自然语言搜索。目前正在解决端侧性能、搜索效果、安全等问题。技术难度并不大,重点在于提高搜索速度。并且要保持与云侧模型相同的精度,供断网时使用。

2. 算法优化

算法优化集中在压缩算法。用 CLIP 模型做图文匹配,算法简单,训练支持大规模并行,但对细粒度理解有问题。采用 ALBEF 单流场景,最后需要把图片和 Query 做融合计算,在端侧无法落地。由于 CLIP 模型的模态信息保留最后的输出层,端侧可以做单双流融合,把两个模型的能力蒸馏到小模型上面。因为图像和文本的模态在ALBEF 中间已经融合,所以设计 Projector 再分离出来,经过组合得到单双流的细粒度特征和全局特征的融合,获得输出,最后蒸馏出 Student。蒸馏的过程采用 contrastive loss 算法。整体算法的目的是为了得到端侧的 CLIP 架构小模型,实现离线编码和在线搜索。

由于图片数量有限,没有采用像 IVF-PQ 向量引擎。实际在 10 万级图片压测下,直接做向量乘法也足够,fp16 最终速度都很快,因此最终采用了简单架构。

3. 学术集效果

从上图数据中可以看出,单纯CLIP 或者 ALBEF 效果、不如融合之后效果好。由于没有增加推理成本,最终落地效果与云上 V100 GPU 速度相当,搜索时间为 14 毫秒。image 编码时间也很短,基本达到了云端先进 GPU 的能力。

4. 真实场景效果

上图中展示了真实场景中构建相册、照片的效果。最终优化为全域优化。

5. 细粒度优化

CLIP 算法优化是以海量数据训练。想做到更细致的优化,由于本身没有识别属性能力,对图片款式、颜色状态、细腻度属性识别比较差,对文生图影响很大。我们针对业务场景改进了方法,在 Query 里面做细粒度属性词替换。这种替换方法,无论用人工方式还是文本模型找属性词都可使用。最终把比较细的负样本构造出来,做负样本的采样训练,强制让模型判断出哪些是错误属性,搜索时就能排除错误。这是实践中非常行之有效的方法。注意一定要加上 LWF(Learning Without Forgetting)抗遗忘的方法,以保留之前的数据和训练,才能保持通用能力不下降。这个方法对已有模型优化非常有效。

02

文图生成&理解态模型的应用优化

文图生成&理解态模型的优化主要是对生成进行优化。而理解是在图片生成后加上文本生成,做出图文并茂的效果。

1. 中文文生图大模型继续预训练

鉴于业界没有特别好的开源中文大模型,很多人直接用英文模型加上翻译来做。这样会带来很多问题,例如继续训练怎么做。从头训练做自己的大模型,毕竟不一定都有资源;如果质量不好,调整也很费时间。我们的方案是用开源的英文优质模型做继续预训练,并涉及如何对齐中文语言文化。

另外一个难题是生成图像质量的细节提升。上图中展示了我们的解决方案,经过实验,如果有很好的英文模型适配中文,不需改动所有的模块,包括 unet、text encoder,只要加一个 adapter,通过训练 adapter 就能实现多语言输入,并得到同样质量的输出。最初是通过做 text encoder 再对齐,但 text encoder 对齐非常复杂。实践中把后面的Unet 加上去蒸馏,就会很容易对齐。Adapter 只需做简单的mapping,最后发现前面的特征空间没有对齐、也不需要对齐。只需在 Unet 空间做出正确的生成。

在有了一个中文的模型后,后面需要进行中文语言文化的继续训练。我们也尝试了一些方案,其中包括微调的方案。业界常用 LoRA 做垂域优化,LoRA 最大的问题是遗忘性。上图右下侧展示的是 2023 年的一篇 NIPS 文章,采用的方法很简单,LoRA 在原参数上乘 R 正交矩阵,目的是希望训练参数不去动幅度,只动角度。很早有实验证明,把特征相位抽出来,就能完全呈现图像,幅度 W 没有太多作用。所以在生成时考虑调整参数旋转角度,以适应新的数据。这在实践中证实是一种非常好用的方法,只要加少量以前的数据,去做抗遗忘的 replay,就能很好地实现数据迁移,保持语言模型的通用能力,并持续增加新场景的能力。我们还会用这个方法持续做各种各样新效果对齐,并且训练速度非常快。

上图右侧表中可以看到,2,000 万 Sample 就达到了收敛效果。如果资源不多,用单台机器两天内可完成训练,硬件资源消耗也少。原模型缺乏中文能力,不理解中文诗句和场景,而我们用非常少量的数据就让其适应了模型,并且没有出现通用质量下降。

Adapter 适用于任何开源场景的社区的模型,将其接到后面相同架构的无论是XL 模型还是 SD 模型都可以适用。在每一个场景中,无论 Finetune 模型还是 LoRA,unet模型的参数都可能发生变化,把中间的 adapter 加过去,就可适应做出各种中文的效果。其他方法包括 Controlnet、最新的加速方法、小模型、inpainting 都可以用。

我们用非常低的成本实现了场景的中文迁移,尤其语境上的继续预训练能力得到了提升。如果缺乏资源训练理想的基础模型,推荐这种方案。

2. 通用优化应用

要提升基础能力做通用模型,再逐渐优化后续能力,是个漫长的迭代过程。我们在春节档上线了 AI 壁纸专栏,说明 AIGC 的落地没有太多质量上的障碍,用户可以接受,但需要谨慎考虑安全和版权问题。

另一个典型案例是锁屏场景。手机图文是手机厂商的主要流量,可以用 AI 生成图文对,并插入广告等内容。图中是 2023 年上半年 Top 排行图文组内容,质量非常好。文本用多模态大语言模型,用 LLAVA 进行微调,其中大语言模型来自其他团队,基于微调 Projector 和大语言模型,实现有诗意的文字生成。

以上是实现 AIGC 在 ToC 端落地的场景。

上图中的场景是图文生成相关的一个畅想,即针对用户照片进行配套生成。例如在用户旅游时上传照片,帮助用户写一篇完整游记,发布小红书、知乎。更具优势的是生成文章插图,用户自由选择,或选择其他图片。如果觉得自己拍的照片不好,可以用生成模型生成图片。这是完整的 Pipeline 链路,可以用自己的照片、网上搜索的图片、生成的图片,模型解决文章的结构和插图位置的问题。下一步是考虑整个文章和图片的内容匹配度以及文章图片本身的质量问题。

3. 垂域优化-人像垂域

垂域优化的典型场景是手机厂商浏览器中的广告场景。小型 ToB 的厂商投广告,特别重视人像垂域中几个生成的问题:

(1)人脸和人手的崩溃问题。大部分开源模型都比较差。

(2)太过精致、质感太好的问题。尤其是社交工具的用户,觉得不真实;真实的资源都是普通人,这种反向需求就需要考虑如何去做垂域的优化。

(3)细粒度属性和文字不匹配的问题。

用 CLIP 做主观意愿落地的 Fusion 都有这种问题,对语言理解力不够,特别是美容、整容广告都非常看重这种问题,例如做大眼睛美女却生成了小眼睛。需要做文本描述和生成实体的对齐。这个问题从数据角度上可以解决。针对实际业务场景,构建了丰富的数万张美容、整容关注的人脸属性数据集,进行数据收集和非常精确的标签打标。数万张图片对于模型微调来说已经非常多了。通常用几十张对微调就会具有非常好的效果。因此构造细粒度数据,人工逐个打上标签,人脸或者人像的标签区就会非常细致、丰富。

(4)优化位置的问题。

上图中的总结表来自于 Github,非常详细地描述了 LoRA 微调某层对人像五官产生的最大影响;包括了对人体的上半身、下半身、背景需要微调 unet 具体层。2 代表变化很大,1 代表稍微小一点,其他位置几乎无变化。想调整什么地方,对照表去调相应层参数就会非常有效。比如:丰唇广告,之前生成薄唇效果,现在改为厚唇,找到效果好的微调位置,调整数据就能得到满意效果。

以上两图中展示了更多其他的例子。比如:鼻子类,控制同一个人、同种鼻子效果;纹眉可以实现粗眉细眉。这套 Pipeline 出来之后,可以做任何五官,总体感受是一条比较有效的 Pipeline。注意:并非每个微调都会有好效果,某些太细微的特征需要用其它算法调整和解决。

通过以上实践,我们总结出了一些经验:
  • 调时,需要大量数据提升模型对新概念的泛化能力,数据质量不一定高。 比如: 人像,需要较多的人像数据,用于认识和识别、尤其是亚洲人。
  • 要稍高质量的数据精调,特别是在第一个模型之后,需要几十张高质量的精调数据,可以把效果做出来。

典型案例还有人像修复 Pipeline。比如:古风游戏或者是古风小说,需要做古风场景生成。模型肯定没见过,可以先塞一些剧照,后面再用 80 张图片做古风的生成。直接生成图片交由用户去挑选。

最终生成效果非常好,适用于各种中文的语境场景,比如小说广告。当然,生成图片里面的人脸、人手问题仍未解决,对基础模型的要求会更高,微调无法解决这个问题。

上图是一个广告营销工具,主要面向小型 ToB 用户。首先确定行业和风格,写实、动漫、或者古风。在完成生成后,加上自己的产品或者小说、APP 等去投放。这套 Pipeline 工具业务定位就是人像垂域。

4.







请到「今天看啥」查看全文