手机能跑图生成和 LLM 大模型吗

2024-6-11 评论(1) 分类:技术文章 Tags:
💡 能,但还比较勉强。

在客户端上跑大模型,一定是未来的趋势。

  1. 上个时代 AI 的核心应用是推荐系统,推荐是依赖海量数据的,海量数据只有服务端上存在,在推荐这主场景下客户端 AI 上能做的事很少,发展得比较吃力。
  2. 生成式 AI 时代,最大的应用就是模型本身,只有训练时依赖海量数据,使用时并不依赖数据,那理论上只要客户端硬件资源足够,在客户端使用,跟在服务端使用,场景和效果是一致的。
  3. 生成式 AI 在端上跑模型,最大的优势是成本。成本是当前生成式 AI 应用除了效果以外第二大关键因素,在用户客户端上跑模型,对服务提供方来说就是 0 成本,0 成本使更多场景大规模免费应用成为可能。其他的优势还包括 隐私保护、实时性、离线可用

硬件条件

那当前手机设备硬件条件如何?我们可以通过一些指标对手机和服务端的算力差距有个大概认识。

显存:一个模型能不能跑,取决于显存够不够,显存不够模型无法加载。

  1. 服务端一般用独立显卡,有独立显存。
  2. 手机通常使用系统级芯片 Soc(System on a Chip),无独立显卡,SoC 中包含了 CPU、GPU、基带等多个组件,使用统一内存架构允许 CPU 和 GPU 共享同一块内存,所以手机 GPU 显存跟手机内存是一个东西。

性能:而模型跑得快不快,取决于芯片性能怎样。

  1. 芯片性能取决于很多因素,例如芯片架构、显存带宽,而算力是其中一个,通常用TOPS(万亿次每秒 Tera Operations Per Second)指标来衡量算力。TOPS 默认是针对 INT8 整型数的处理次数,另一个指标 TFLOPS 是针对 Float32 浮点数的处理次数。
  2. 在通用 GPU 以外,现代芯片会搭载专门处理 AI 运算的硬件加速器,NVIDIA 是 Tensor Core,手机 SoC 芯片是 NPU (Neural Processing Unit 神经网络处理单元),以下是 Tensor Core 和 NPU 的运算性能指标。
  3. 不同芯片性能,特别是涉及不同芯片架构设计的,应该以实测数据作为对比,但当前缺乏这类数据,先用 TOPS 指标看个大概。

我们看看当前常用的英伟达各种显卡芯片,以及移动端设备芯片这几个指标的情况:
(更多…)

在复刻黏土风图生成中学习(2) — ControlNet / IPAdapter / instantID

2024-6-2 评论(1) 分类:技术文章 Tags:

接上篇,继续优化我们的黏土风 workflow。

引导图控制

来看看上篇里的最后一个case:

1

黏土风格效果还可以,但人物动作总会跟原图不一致,一会双手放地板,一会侧身。图生图一般希望整体轮廓、人物姿态与原图一致,有没有办法控制?

我们可以给它加上 ControlNet 节点,用 canny 边缘检测,试试控制画面主体的轮廓结构:

3

这下就比较准确地还原了原图的姿势了。

ControlNet 介绍

ControlNet 是一种神经网络架构,能做到通过添加额外的引导图片输入(如边缘图、姿态图等)来控制 SD 模型的扩散生成方向,实现对图像生成过程的精确引导。

通过这套架构,可以训练出每种控制方式对应的模型,生图过程中应用这个模型,输入对应的引导图,就能生成对应的图。

以下是 ControlNet 作者训练好的几种模型,以及用这些引导图生成的图片效果:sketch草稿、map法线贴图、depth深度图、canny边缘、line线、edge边缘、场景、Pose人物姿势

2

看下 ComfyUI ControlNet 相关的这几个节点:

4

  1. 每个 ControlNet 模型的输入,都是预处理好的一张引导图,一般用简单的算法就能处理出来,这里用的是 ControlNet canny 边缘控制的一个模型,对应一个 canny 算法节点,一个古老的算法,python 的 OpenCV 库就有。
  2. 接着加载 canny 对应的 ControlNet 模型。
  3. 这张边缘图片输入到 ControlNet 模型,跟文本一起,作为模型降噪生成过程中的引导,指引降噪方向,生成符合文本描述、符合图片边缘形状的图。

这里的 canny 可以替换成 sketch、depth、pose 等算法,搭配上对应的 ControlNet 模型,就能实现不同的控制方式。

ControlNet 原理

扩散生图模型出现后,就有很多人探索怎样更好控制它的生成,显然如果只能用文字生图,可控性太差,最直观的还是能通过草图指引控制它画什么。

怎么解这个问题?对模型简单做一个端到端微调是否可行?例如想让模型按 canny 检测出来的边缘去生成图片,那造一堆 原图 – canny图 的配对作为训练集,微调让模型学习到边缘图和最终生图的关系,是否就可以?大思路是这样,但需要解决微调带来的过拟合、破坏原模型能力的问题,需要设计一个网络结构,能很好认得 canny 引导图特征、跟扩散模型很好结合、效果稳定。

有很多人做过不同的研究,提出过多种方法,ControlNet 的方法相对前人有很大优势,能稳定用在各种场景上,效果最佳,应用广泛。

网络架构

(更多…)

理解 Stable Diffusion UNet 网络

2024-5-26 评论(0) 分类:技术文章 Tags:

前面的学习中,我们把 SD UNet 网络当成黑盒,不太影响对图片生成大致原理的理解,但在继续学 SD 的过程中,发现 ControlNet、T2I-Adapter、IPAdapter 等这些技术,都是在原 SD 网络模型上以各种方式对网络做修改叠加,要理解这些技术,还是得先了解下 SD UNet 网络结构的一些细节,不然看得很费劲。

SD 模型构成

从之前的学习我们知道,Stable Diffusion 模型里包含了三个组件:CLIP、VAE、UNet,这三个组件的参数和大小分布(来源):

组件 参数个数 文件大小 占比
CLIP 123,060,480 492 MB 12%
VAE 83,653,863 335 MB 8%
UNet 859,520,964 3.44 GB 80%
Total 1,066,235,307 4.27 GB 100%

整个生图的核心网络就是 UNet。UNet 最初是用于医学图像分割任务而提出来的,但它的特性展现了在图像其他领域的应用潜力,后续经过扩散模型的改进,很好应用在了图像生成上,所以 Stable Diffusion 的 UNet 实际上在原 UNet 网络架构上做了一些改造。

基础 UNet 网络

我们先来看看原 UNet 网络架构:

1

(更多…)

在复刻黏土风图生成中学习(1) — 模型微调/LoRA 原理/图生图

2024-5-19 评论(0) 分类:技术文章 Tags:

继续学习 Stable Diffusion,这次想以搭建一个实际可用的生图场景 — 黏土风格作为引导,弄清楚整个流程的同时,把过程中遇到的相关概念和原理也做了解,所以这篇是掺和了应用流程和原理的文章。

ComfyUI & 模型

使用 Stable Diffusion 去生成图,有非常多的插件/模型/配置相互搭配组合使用,一般用 WebUIComfyUI 这两个工具,更推荐 ComfyUI,自由串联一个个模块,流程更清楚,网上有很多在自己电脑部署使用 comfyUI 的保姆级教程,比如这个,这里就不多介绍了。

先看 ComfyUI 这个默认的最简单的 workflow:

1

这里面简单的几个元素概念和生图流程,上篇文章都有介绍过:最左边的 Load Checkpoint 是加载 SD 模型,接着用 CLIP 模型编码文本 → 生成隐空间原始噪声图 → 采样器根据文本和噪声图输入→在隐空间里迭代降噪生成隐空间图片→最终用VAE解码图片。

为什么叫模型 checkpoint ?模型在微调训练过程中,会在关键节点保存模型参数的状态,这个保存点被称为 checkpoint,SD 有大量基于基座模型微调训练的模型,包括官方出的,比如 SDv1.5 是从 v1.2 的基础上调整得到的,SDXL Turbo 也是基于 SDXL1.0 基础上训练的,这些模型都被称为 checkpoint,这些 checkpoint 包含了生成图所需要的全部核心组件,包括 VAE、CLIP、UNet 的模型数据,可以直接使用。

那模型文件的后缀为什么是 .safetensors ?早期的模型文件后缀是 .ckpt (checkpoint缩写),一个通过 Python 序列化后的数据,使用时需要对它反序列化,这个反序列化过程也就容易被注入恶意代码,所以后面提出了新型安全的格式 safetensors,只包含张量数据(模型上的参数数据),无需反序列化,安全且速度快,目前模型基本都以这种方式存储。

我们用这个默认 workflow,选个模型,用纯提示词 claymation style, a tower 试试生成黏土风图片:(图上使用了 dreamshaperXL 模型,是在SDXL 的基础上微调的最受欢迎的一个模型)

2

可以看到效果并不是很好,比较生硬。可能加多一些细节提示词、调节下相关参数会好一些,但在图片训练过程中,黏土风格相关的图片数量应该是不多的,训练图片对应的文本描述也比较散,如果固定要这种风格,生图的 prompt 要尽量贴近训练时这类图偏对应的文本,才有可能有好一点的效果,这很难控制,也不保证效果,很难达到我们想要的风格。

(更多…)

Stable Diffusion 图片生成原理简述

2024-5-13 评论(1) 分类:技术文章 Tags:

最近关注和学习 AI 比较多,包括 AIGC 和 LLM 大模型,现在 AI 的原理介绍和入门教程已经非常多了,但还是想自己写一下,主要是遵从费曼学习法,分享是最好的学习,帮助自己整理思路。

AI 图片生成像魔法一样,要完全理解里面的算法细节原理门槛挺高,但如果只是了解基本思路和相关概念,还是比较简单的。Stable Diffusion 涉是当前最流行的 AI 图片生成模型,本文基于 Stable Diffusion 介绍图片生成的基本原理,希望对大家有帮助。

扩散模型

目前市面上文字生成图片基本上都基于 Diffusion 扩散模型,Stable Diffusion / Flux 都是,它最基本的原理是:根据文字指示,把一张随机生成的全是噪点的图片,一步步去掉噪点生成跟文字描述匹配的图片。

具体是怎样做到的?这里可以分步看两个问题:
  1. 生成:怎么从一张随机噪点的图生成一张正常的图
  2. 控制生成:怎么控制这个生成的图跟用户输入的 prompt 文字关联上

1. 生成

先看下第一个问题:从随机噪点图生成一张正常图片。

Denoising UNet

简化看下大概过程:

Denoising UNet 是一种基于 UNet 架构的深度学习模型,专门用于图像去噪任务。

可以粗略地理解为,Denoising UNet 这个模型在训练过程中记录了海量图片的内容(不是精确存储,可以理解为识别提取了图片特征,模糊地记忆图片的关键信息,跟人脑对一个画面的记忆类似)。在使用这个模型时,输入一个随机噪点图,经过模型处理能还原生成一张整张的图片。

如果你是用一张图片拼命训练它,那这个模型训练出来后,最终使用它时生成出来的就是这张图片本身,因为整个模型记录的都是这张图片的信息。如果你用一万张不同的图片训练这个模型,那使用它生成出来的会是这一万张图片内容随机组合的一张图片。

加噪降噪

上面说的这个生成过程,并不是一次性就从随机噪声图变成正常图了,而是一步步降噪的过程。

如下图所示,X0是正常的图片,XT是一个完全随机噪声,从X0到XT还有中间非常多加了不同程度噪点的图,模型学习记录的是怎么对一张有噪点的图逐步去噪点,还原出最终图。

1

Denoisiong UNet 这个模型的能力是,给一张图片,它能预测出来这张图片上是加了多少噪声,这样就可以让这张图减掉这些噪声,得到更清晰一点的图,最终逐步降噪为一张正常图片。

(更多…)

2023

2023-12-31 评论(5) 分类:生活

最后一刻才动笔,本想不写了,但已经是连续第17年年终博客了,不管好赖,还是不要断了,随便写写。

旅游

疫情开放了,本来想去更多的地方,但真是很难,只在下半年去了香港和马来西亚,一家人出去还是比较紧张的。

关于香港,上一次去是十年前了,今年再去看不到什么变化,很明显能感受到的是香港的科技互联网跟十年前也差不多,很差,比如八达通充值后扣了钱但没到账,一搜一堆人这半年反馈很多,这在国内互联网是P0级别按小时修复的问题,香港好像没打算修,其他还有很多槽点,比如买地铁票被吞/出票错误,因为垄断了这些事不重要吧。但它还是国际化大都市,各国各色的人,多样化国际化的感觉很好。

马来西亚去了吉隆坡和兰卡威,感受了下伊斯兰教清真寺,挺友好的,特别是布城的粉红清真寺,接待人热情,很多宣传资料以非常直白的方式介绍伊斯兰教,探讨生命的意义,探讨的过程挺好,很科学很思辨,但结论是人类的意义就是相信并崇拜安拉,这让人难以接受。在兰卡威首次驾驶右舵汽车,稍微熟悉一下没啥问题,也是个新体验,整个兰卡威感觉还行,不是旅游旺季人很少,是挺舒服的,听说东马仙本那更好点,下次有机会再去。

6月再出差去了次美国,对洛杉矶市中心的印象就是脏乱差,尿骚味,流浪汉。入住的第一天同事的东西在酒店里还全被偷了,还好有苹果的find功能,否则整个街道都没有摄像头,完全不可能找回。旧金山也是脏乱差的代表,坑人、垃圾乱飘、砸车风险高、拥挤,但其他地方似乎又很好,像阿纳海姆就很漂亮,美国太大了,差异很大,有机会都体验下。住了airbnb美国的大house,住的几个小区应该不差,但整个感觉很僻静,很冷清,不怎样。

家庭

今年身体是近十年最差的,有一半的时间在咳嗽,上半年已经连续咳了两个月,6月底中招后又一直持续咳了半年,断断续续咽炎鼻窦炎轮流来,搞得很严重,病总是一直不好,很影响心情。3月中开始健身一直到6月,本来希望坚持锻炼下身体能好点的,结果好像身体免疫力越来越差,平时不运动,马上去健身似乎也不是好事,6月开始咳后也没法继续了,咳的时候不敢运动,等好了还是得再看看别的锻炼方式。

对两个小孩的教育还是很佛系,有点放养,也导致一些问题,难以教育,两个娃在探索上的缺乏,拒绝尝试新东西,看电视也喜欢看已看过的,一遍又一遍,十分念旧,怎么引导他们的好奇心和探索欲,没找到方法。另一个是锻炼缺乏,身体素质不太好,也是我的问题,来年要跟家人一起加油。

年末经历了亲人过世,面对死亡很沉重,怎样能尽可能安心地面对后续可能的离别?好好对待在的人,也好好对待自己,不要时间到了后悔。

学习

在各种行业的萎靡下,AI 的发展几乎是唯一能触动大家神经的,发展速度太快,主要是研究方向明确了,全世界那么多聪明人/先进的组织/最多的资本支持,都沿着这条路跑,自然很快,但跑了一年后,大家期望的大模型跟各行各业结合的应用还没跑出来比较好的,还需要继续探索,总体上,它的未来是显而易见让人兴奋的,今年没有多少时间投入学习,明年得规划好投入,希望有进展。

今年读的书很少,但上下班听讲述和小课程比较多,印象比较深的是华衫讲儒学,听完对很多概念都理解了,格物致知/必有事焉而勿正/中庸/近悦远来/诚意正心,非常强的正气,当然道理都懂但难的就是做到,做到的真是圣人。我至今没找到修身养性的方法,通过多看这些书明白这些概念,远远不行,看的另一本书《悉达多》,明确讲到这个问题,没有任何宗派教义可以教人领悟涅槃,都要靠自己体验,自己领悟。

其他

股票继续跌,我一直放着一直存着希望,这么低的价格,真的不涨回来吗,结果真的不涨,还继续跌,核心是什么都知道,信心很重要,但信心不断被殴打。房子方面年初还有回涨趋势,当时甚至想搞满杠杆进入,还好最后没有,越来越往下走刹不住车,等经济好了,信心有了,房子才有可能回来吧,现在保命就行了,还了房贷,安心活着。

今年35岁了,国内特有的年龄槛,虽然有时候是调侃,但焦虑切实存在,来年加油吧。

2022

2022-12-31 评论(0) 分类:生活

疫情

2022是疫情防控拉胯的一年,各种大规模封控带来的不合逻辑的事情频繁出现,到11月顶峰,太多魔幻的事情,真是挺怕要倒退50年,一个不符合逻辑的社会,还好后面止住了。那段时间在家办公关了一个多月,真是给闷坏了,12月放开后,某天开车出去转转,看到街边恢复生气的样子有点感动,自由而归于正常的感觉。

紧接而来的就是大规模的快速感染,速度确实是快到出乎意料,而zf在这块确实继续在拉胯,核酸全撤,抗原不准以及难抢,导致想尽早自我隔离避免感染家人是很难做到的,撤了所有防控措施,药也储备不足,拉胯,全得靠自己。放开后去深圳出了趟差,一不注意,回来就导致全家中招了。

两三天的反复发烧,最高到40度,头痛欲裂,睡不着非常痛苦,脑子乱七八糟转,感觉在非常高速地运转,各种碎片漂移凑不成一块但又停不下来,夹杂着痛苦,在万花筒的世界中。全身酸软、刺痛、咳嗽加剧、肠胃不舒服、鼻塞,症状确实是很猛,还好布洛芬能帮助扛一下。家人有各不一样的症状,总的来说还好,算平安度过,希望以后不要再得了。

不知道世界接下来能不能恢复正常,传播力这么强的病毒,变种又那么多,持续下去受不了。回看以前出去玩的照片,人堆中没有戴口罩,有种恍如隔世,希望世界能恢复。

股票

还以为去年股市已经是惨案了,没想到今年更拉胯,持续下跌,最低只跌剩最高点的20%,我买的都是中概股,跌的也都是中概,也是跟疫情的操作有关,对中国的信心快被疫情期间的各种操作消磨殆尽了,从奋斗变成躺平,爱怎样怎样,放弃幻想,做好打工人,不想玩了。

教育

俩小孩大娃上学了,小娃上幼儿园,小学还好,没有传说中那么卷,作业不多,我们也是很佛系,前面还有每天晚上陪着做作业看英语绘本,后面也少了。虽然不卷,但像英语没有提前学就容易跟不上,跟不上就容易产生厌学情绪。大娃在学习上算是很乖了,目前还没有血压高涨的经历。小娃幼儿园基本就上了一个多月,后面就因为自己感冒、疫情一直没去,社交能力基本为0,希望下学期能正常。

回看小孩的成长,今年2月希希才掉第一颗牙,转眼间牙掉了七八颗,大牙都长出来了,挺快的。希希年初也还不会玩游戏,下半年跟她一起通关了双人成行,现在也玩得很溜了。

旅游

很想旅游的一年,5月去了下潮州汕头转转,7月去了呼伦贝尔,带着大娃三个人,幸运地没被疫情封控影响,完整地游玩了草原,大片大片的草原,金黄色的油菜花田比草原更美,村庄里看漫天繁星,高空秋千和滑草,麋鹿卡丁车骑马,玩得还算不错,不过就景色来说,还是去年的新疆最美。

8月跟公司团队去成都开会,再去了下川西海螺沟一片,不过时间太短过于仓促,没玩什么,仅到此一游,走非常险的山路到若丁山,很适合野营的一个地方,大片草地配合漂亮的山景,下午在那里度过很舒适惬意,要是晚上能住下看星星就更好了。

期望明年可以出国游,可憋太久了,疫情以后不断把自己缩小在两点一线,封控期间还只剩一个点,整个人感觉非常闭塞,长久下去对身心健康不利,希望能更多出游,对在全国全世界留下脚印这事很感兴趣。

玩乐

当前几乎唯一持久的兴趣就是看看NBA22赛季一整个赛季勇士库里看下来,最后竟然真的夺冠了,有点梦幻,G4感受到库里强悍的意志力,体育不是体能技巧的比拼,精神力量在当中占的比重很高,才会这么有魅力。同时这一年也见识了威少、杜兰特从各种嘲讽中不受影响一步步走出来的坚韧,球星确实身心都很强大,看别人做到自己做不到的事,敬佩。

科技和互联网变得有些无趣,以前喜欢体验感受各种手机,现在千篇一律,已经玩不出花了,iPhone也没什么惊喜,反而摄像头越来越傻大黑粗,VR彻底凉凉的感觉,互联网产品没什么让人惊艳的新品,也就chatGPT稍微亮眼。倒是今年玩了个让人惊叹的游戏双人成行,每次玩都在感叹它的创意创造力,不愧是年度最佳游戏,强烈推荐亲子或情侣玩。

及时行乐,成了新的标语,之前工作的比重占太大了,现在各方面都无趣的情况下,不如多让自己玩得开心,旅游、游戏、体育娱乐等,看到同事们也在开拓自己的兴趣找乐子,多玩玩多体验生活,别到老了后悔。

最后

2022年元旦全家感冒咳了两个月,年末全家中新冠又是一波,希望来年都能健康,多体验美好生活。

2021

2021-12-31 评论(9) 分类:生活

一年没写博客,生疏了,到了年终这篇不知道该写啥,博客这个词现在也变得非常有年代感,差不多要彻底消失了。没写的最主要原因是懒了,另外好像也变得不那么愿意发表观点了。

总的来说今年还是一个对自己不太满意的一年,对自己的期望没达到,一整年时间,做成了什么事情?达成了什么成就?认知有什么提升?回想起来并没有多少值得一提的,只能写写一些生活小事。

经历了一次特别的体验,住在6月份广州疫情最中心地区,被完全封闭在家27天,不能下楼不能收快递,物资紧缺,吃肉成奢侈,体验了一下物资相对匮乏的生活,感受上还好,在哪不是一样拿着电脑手机联网工作,差别不是很大。

还有一次体验,跟一个人聊技术聊了一个多小时,感觉进入了心流的状态,很怀念心流的感觉,岗位不同以后,进入这种状态就变得很困难。当时聊完挺兴奋,工作10年,回想起这个互联网大航海时代,有很多参与其中的回忆,只不过是纯技术的。往后10年,希望能再做些事,为自己留下更多好的回忆。

今年各种政策轰炸,行业一个个毁灭和暴跌,去年那个外滩事情真是中国互联网的拐点。上半年在各种纠结,真是很难,下半年感觉开始佛了,爱怎样就怎样。有时会想,向前看这么简单的道理为什么实践起来难呢,进化论的角度看,是绝对理性倾向向前看的人在原始社会活不下来吗,没想明白。

今年也成了资深韭菜,以前每次股灾一般中概股不会太怎样,今年倒是纯中概股股灾,完全踩在雷区里,美股的资产变成负数,确实自己不是这块料也没有太大兴趣投入,也是直接躺平了。

挤着时间还是转悠了几个地方,带家人去北京,跟朋友去了阳江,两人去了新疆,喀纳斯的美景值得多去看看,是个好地方,青色湖水山色配得上仙境的称呼,可惜在禾木刚好阴天没看到星星银河,这个愿望继续往后推了。

今年大娃小娃健康成长,小娃到2岁还不说话,最近一个月才开始开窍咿咿呀呀各种学说话,是最可爱的时候了。大娃继续经常撒娇可爱,但很多时候不讲理,被气得够呛,以前看的育儿方法在情绪面前都忘光了,情绪控制也是今年对自己很失望的一点,不仅没长进还退步了。

2022年,希望明年回顾时对自己的表现能满意一些。

2020

2020-12-31 评论(15) 分类:生活

2020是很特殊的年份,世界发生很多大事,感觉过得很快,又感觉过得很慢,每年都会发生很多不好的事和好的事,看自己更在意和看重哪部分。

工作

今年上半年工作上拿到不错的成绩,年中去晋升答辩,也是一段难忘的经历,前一晚通宵改PPT,大雨的日子,六七点回家还被车栏撞到流血,睡了半个钟匆忙跑去答辩,喝了几瓶红牛咖啡头脑都不是很清醒,顺利讲完回答完问题,然而并没有通过,确实很难。

年末从蚂蚁转岗到lazada,结束三年半蚂蚁的历程,也结束了一年多以来北上广深杭多地跑的处境,今年飞机坐了36次,因为疫情算起来只比去年多几次,但总感觉多了很多,好几次延误凌晨两三点才到家,也经常早上五点出发赶飞机,有点累,对比下现在广深跑简直跟同城没什么区别。刚到新环境,目前状态不错,尽力做好事情,务实解决问题,不着急,就是英语口语这个问题没解决。

蚂蚁上市这历史的一粒尘落头上,作为其中一小员无力影响事情本身,能做是调整心态,做好自己的事,以及相信公司本身的价值。舆论上势头往哪处走,内容就会投其所好地往哪处生产,追涨杀跌是群众普遍行为规律,谁都能上来说两句,看起来讲得头头是道,实际上基本事实都不顾,跟那些养生排毒文章一个性质。巧合的是,2010年11月3日腾讯发表3Q大战“艰难的决定”声明,2020年11月3日,蚂蚁暂缓上市,十年过去。

物质

用心感受一些美好的物质,对提升幸福感很有帮助。

特别喜欢今年的 iPhone 12 pro 的工业设计,用了半个多月每次用还是很有愉悦感,上次有这种感觉的手机是9年前的 iPhone 4s,可能我更偏向喜欢这种规规整整很有秩序感的设计,美轮美奂,爱不释手,全平的屏幕,玻璃跟金属直接衔接感觉很完美,如果摄像头处是平的就更完美了。今年iPhone 买的就是外形工业设计和拍照的提升,5g/A14什么的基本无感,iPhone已经性能过剩,软件没有把提升的性能吃完,就算是三年前的iPhone X用起来速度也是没什么问题。智能手机诞生13年,还没有看到下一代突破的曙光。

今年换了辆车,起初到处试驾一些bba传统车型,感觉跟我的雷凌没什么区别,后面试特斯拉model3,真是有种震撼的感觉,我这个不懂车的理工男太容易被这种产品吸引了,极简(大部分人觉得是粗糙)的内饰,没有一大批乱七八糟的按钮,现代的车机系统,给我第一感受这跟之前试驾的车不是一个时代的东西,冲击比较大,我不知道传统车厂会不会成为诺基亚,但当时确实有类似手机功能机和iPhone 对比的感觉。只是model3这种自己开着爽坐车的人不舒服的体验,不适合我这二胎家庭的需求,所以并没有买model3,而modelX又过于高价,觉得远不值那个价钱,最后买了特别符合我这个实用主义奶爸定位的理想ONE,这车除了外形个人不喜欢,其他表现都很好,车机系统的体验感觉是所有车里最好的,比较满意。

今年开始似乎酒成了我一大爱好,开始品尝各种威士忌,买了各种酒摆柜子上,看着就舒服,有种手办的感觉,喝着也爽,经常小酌。有时不同酒的小差别我也喝不懂,就是喜欢尝,目前喝起来感觉最好的是山崎,就是太贵了。酒吧里的鸡尾酒和氛围也是挚爱,同时我一直想知道酒吧里的冰块哪里有卖,透明无暇实心的冰块可以融化得很慢,自己冻不出来,也没地方买,酒吧的酒就贵在这冰块上了。

家庭

小男孩进入精力旺盛阶段,男孩跟女孩真是天生有巨大差别,大女儿一岁多时经常乖乖坐着玩玩具,小男孩一岁多基本坐不下来,满屋不停乱跑乱爬,举止粗鲁,摔了无数次,破皮流血都好几次,真是累坏人了,茁壮成长中。

大女儿有时特别暖心,有时特别任性,教育的问题长期困扰我们,家里每个人的教育方式理念难达成一致,加上大人自身一些脾气缺陷让孩子学了,经常会闹腾搞得不愉快,不知道怎么教。年末开始听一些育儿类书籍的讲书,正面管教、亲密关系、父母的语言、不吼不叫等等,讲的教育理念其实差不多,就是无条件爱孩子、倾听、说出情绪、正面肯定、理解、保持温柔、不计较、定规则底线、不评价、言传身教、以身作则,我觉得听完是有些作用的,对小孩在努力变得更有耐心容忍度更高一些,有意识实践这些理念,只是小孩性格习惯形成后,并不是一两招一朝一夕就能轻易改变的,任重道远,知行合一不容易,努力做好父亲的角色吧。

今年小孩学钢琴,我也以极其缓慢的速度跟她一起学了,羡慕会弹琴的人,不需要达到多好的水平,只需要有时能玩玩抒发情绪减缓压力,琴棋书画诗词歌赋是抒发和感受情感的介质,少了这些能力,人生会少了一些乐趣。

今年的疫情改变世界,作为普通人被改变的并不是很多,疫情导致年初在老家一家老少十几个人一起待了一个月整,十分难得,这一个月估计我爸妈可开心了,一大家人在一起的感觉多好,几个小朋友也玩得high,离开时小孩哭得很厉害,以后估计很难有这样的机会了。疫情导致全国的感冒大降,因为全年戴口罩,今年我完全没生过病,什么感冒咽喉发炎都没了,口罩的作用很大,只是戴口罩像给人类打了个补丁,只是个临时方案,期望科技能提供更好的方案。

个人

有段时间工作上有些迷失,加上一直多地跑,家庭矛盾等问题,状态很差,那时看脱口秀李雪琴的的专访,说到以前没事桌上的笔掉地上了,都能让自己情绪一下子掉下来,虽然还没那么夸张,但竟然感觉情况特别类似。经过几轮调整后现在好很多,年末这段时间基本恢复正常了。

有时候多看看或听听一些我觉得是“科学式鸡汤”的书对调整心态挺有帮助的,像 正念、被讨厌的勇气、活好 这些书,短期内可以注入一些理念,时刻提醒关注当下,意识上淡化处理压力带来的负面情绪。幸福快乐是种能力,如果不是天生具有的话,是应该花时间学学的。

另一个缓解方式是多跟不同的人聊天,了解广阔世界不同的生活方式价值观,过去几年好像被困在一个圈子里出不来,视野越来越局限在公司内,内心也狭小起来,一些问题在狭小的圈子/体系/空间里可能是致命焦虑的大问题,但在其他多元的世界里它可能不值一提,前提是脑子里有没有这个世界。

2021 期望能持续年末的状态,找好自己的节奏和方法,做点事情赚点钱实现好自己的价值,多点感受身边美好的事物。

个性化UI在金融场景的探索和应用

2020-8-3 评论(5) 分类:技术文章

背景

随着各业务流量红利逐渐见顶,如何在有限的流量下,提升流量给用户带来的体验,对流量进行精细化运营,进而提升转化效率,成为各业务的重要课题。

蚂蚁数字金融线包含了 保险/理财/信用/借贷 等业务,经过多年建设,形成了多样的金融资产/场景服务/权益/内容等多维度的产品去服务用户,而这些产品分发给用户时,决定曝转率的大体上以产品推荐是否精准,以及产品以什么样的UI表述方式进行展示决定。在产品推荐上,算法已经逐步覆盖,给业务带来很大的效果提升,在产品推荐算法优化到一定程度后,提升的投入产出比已经有限,我们开始在UI展示上探索,是否个性化智能化的展示能为业务带来提升。

探索

UI1

淘宝比较早地做了智能UI的尝试,在推荐出商品后,对于商品的UI展现方式进行千人千面个性化,商品列表有两列/三列/横排的布局方式,商品封面有 场景图/白底图/视频 等类型,商品本身有 标题/描述/评价/销量/属性/标签/活动/价格/快递/地区 等一系列字段标签,在列表上无法全部容纳,不同的人对不同的 布局密度/封面/字段标签 会有不一样的关注度,这里就有了智能化的空间,对这些属性进行自由组合千人千面推荐,取得不错的提升成果。

在数字金融线的业务,是否也可以这样做?数字金融线各业务的“货”并不是统一标准化的商品,主要由 金融资产/服务/权益/内容 构成。例如财富业务,金融资产(基金/定期等)在购买门槛高的情况下,会通过各种包装降低门槛,包括场景化包装成服务(工资理财/笔笔攒等),配合营销活动包装权益(体验金/财运金/黄金票等),包装资讯/视频/直播等形式的内容。同时这些包装后的“货”在不同场景有不同的UI展现形式,并不是标准化的,这些“货”也没有多种字段可以直接进行自由组合搭配,如何能做个性化千人千面?

问题

我们可以针对一个个场景设计多个模板样式去匹配不同的人,这也是之前在一些业务上进行过一些尝试的,但有几个问题:

  1. 无设计标准:设计什么不同的UI样式才可能有效,没有标准和指导,靠设计师个人经验。
  2. 样式生产效能:UI样式需要一定量级进行分人群匹配,设计工作量大。
  3. 算法匹配信息不足:算法难以识别不同UI样式间的差别,以 人<->样式ID 的方式匹配效果有限。
  4. 无沉淀不通用:不同的场景割裂,设计经验/算法经验/工程链路无法复用,无法沉淀用户偏好,各场景实现成本大。

针对这些问题,我们探索了一套相对通用的个性化UI解决方案。

方案

语义标签体系

UI2

首先是根据过往数金各场景的设计经验,由设计团队主导抽象出一套UI语义标签体系,去描述一个UI样式里可能吸引用户点击的关键点。

这个标签体系分表现层和内容层两个层面:

  1. 表现层去描述UI长什么样,比如它的风格是实物还是扁平的,色彩是鲜艳的还是偏透明的,字体相对大小。
  2. 内容层表示这个UI展现有什么内在含义,比如它是突出权益的(红包/抽奖等),代表从众心理的(xx人正在购买),代表认知的(黄金图/人物图/降维描述/品牌权威描述)等等。

我们认为不同人对这里列出来的标签是会有不同偏好的,例如年轻持仓少的,可能用扁平图/从众/降维描述相对能打中,老年人可能对权益/实物图形/大按钮比较敏感。

这套标签期望能产生几个作用:

  1. 指导设计往什么方向进行差异化设计。
  2. 语义化描述UI,作为特征让算法更好地认识UI的外在和内在含义,多场景通用。
  3. 后期可以针对线上数据进行归因分析,语义化看出不同用户的UI偏好差异。

工程算法

标签体系的思路把UI的维度拆细了,为不同人原子化设计不同的元素,我们沿着这个思路打造了相应的工程和算法方案:

UI3

1.多样式生成

我们将UI原子化打散-自由组合。一个产品可以以各种方式包装后呈现给用户,主要包括描述产品的创意物料(文案/图片/动画),再配合不同的样式和版式(字号/背景/布局排版)组成,这些元素可以进行自由组合,例如一个单图文模块,我们可以参考标签体系设计10个文案,10个图片,2个排版样式,排列组合就可以生成200个UI样式包,作为丰富的可以匹配不同用户的素材。

2.UI偏好模型

我们将组合生成的UI样式包结合UI标签与用户属性进行匹配关联,以CTR为目标训练模型。训练中取三种数据:

  1. 用户属性,包括年龄性别等基础属性,以及像持仓情况、投资次数这样的业务属性
  2. 每个UI样式包所打的UI标签数据
  3. 每个UI样式包在线上随机投放的曝光点击数据

经过特征工程处理,组成训练集去训练出DNN模型,在线上部署使用,输入是 用户属性 + (UI样式包对应的)UI标签 列表,输出是每个UI包的点击概率排序。

3.工程链路打通

从样式配置,到数据组装,到召回排序,到最后前端渲染,对接各个平台串联整个链路,在各场景实现千人千面UI推荐能力。

落地效果

当前个性化UI在数金多个场景落地,不同场景有不同的提升效果,按流量平均下来CTR(曝光点击率)提升20%左右,同时接入的场景CVR(曝光转化率)也同步提升。

其中流量最大的是支付宝首页财富生活模块,组合了几百种样式进行匹配推荐,CTR的提升在首页大流量的加持下为业务带来很大价值。

CTR提升最大的是理财Tab蓄水版直通车里的黄金和黄金票卡片,一千多 种样式,CTR 和CVR可以提升50%左右。在这个版本里卡片在屏幕占比较大,不同元素的展示对用户点击的影响是非常大的,这也是最适合接入个性化UI的场景。

UI7

分析

有效性分析

为什么这套方案会有效提升CTR,尝试回答几个常见问题:

1.疲劳度

是不是用户对一成不变的样式有疲劳度,只要有新的样式点击率就会提高?我们在每个场景里上线个性化UI,会分几个桶进行AB效果对比,其中随机桶是对组合生成的几百个样式进行随机投放,比如这是财富生活的实验数据:UI5-2

可以看到随机投放组合出来的样式效果并不好,并没有因为样式多了就能提升,反而因为组合出来的某些质量相对差的样式影响CTR下降,这在多个场景里都有类似的的情况,可以看到CTR的提升并不是疲劳度新鲜UI带来的。

2.UI外的因素

是否是UI以外的因素影响CTR,例如不同的产品/权益内容?每个展位接入的AB实验里,产品和权益是固定不变的,个性化UI用不同的表述方式(图片/文案/样式/排版)展示同样的产品和权益在同一时间随机人群进行AB对比,没有其他因素干扰。

3.新样式抢眼

是否有几个很吸引眼球的UI拉高了CTR,没什么人群偏好差别?很有可能因为原来的样式不抢眼,我们组合出来的某些样式加红加粗天然吸引用户注意力,实际上我们实践中因为设计规范的约束不会做太抢注意力的设计,同时我们也分析了,不同样式在随机投放和算法投放的差别,例如下图玩转理财场景里,一些样式算法推荐的人群比这个样式随机投放它的点击率提升了几十个百分点,说明不同人对这些样式有明显偏好,算法把这些样式分配给真正偏好的人,带来了点击率提升的收益。UI6

归因分析

我们看到了用户对不同UI表述展示方式有不同偏好,期望能沉淀出具体人群跟UI的偏好关系,给设计师和业务方在新场景设计中提供参考帮助。得益于UI语义标签体系,我们是可以沉淀出UI偏好和画像的。

我们探索尝试了多种方法去做归因分析,包括:

  1. 数据统计,直接统计线上不同人群在不同样式的点击率,在图表上找出点击率的差异,沉淀偏好结论。
  2. EBM可解释性模型,解释DNN模型中各特征对最终效果的贡献度,以及交叉特征观察人群特征和UI标签的关联关系。
  3. 网格分析,在表格上将多个人群特征-UI标签进行组合,列出所有组合的点击率,从中找出点击率变化规律和差异,找出偏好差异。
  4. 标准化偏好,CTR(UI特征,人群特征,对应产品)/CTR(人群特征,对应产品),衡量单个UI元素在指定人群特征里对点击率的影响程度,再进行对比找出偏好差异。
  5. 单样本方法,建模的方式分析人群特征和UI特征的贡献度。

初步可以沉淀出一些偏好洞察,例如:

  1. 理财货架场景上,收入较低者偏好产品名称,普通/高收入者偏好产品推荐语。
  2. 按钮颜色上,总体红色比蓝色更吸引,但越年轻的用户,越偏好支付宝蓝。
  3. 白领/初级投资者偏好金融元素,蓝领/高级投资者偏好品牌元素。
  4. 有信用卡者对走势图不敏感,无信用卡者更偏好走势图。
  5. 中年(40-50岁)年龄段特别偏好紧迫心理类型的标题,尤其偏好行业风口类。
  6. 理财货架中,整体上宫格样式效果远低于列表样式(宫格面积相对小),但年长者对宫格偏好不低。

归因洞察还未形成稳定分析体系,处于探索期,最终是期望探索到一种或多种分析有效通用的方法,沉淀为平台自动分析能力,能在平台沉淀 业务维度、场景维度、人群维度 的UI偏好画像。

产品化

在方案落地出效果后,我们看到这套能力是具备一定通用性,各业务可以接入获益的,于是我们致力于将它的能力产品化,沉淀多样式生成配置、通用高效的UI偏好模型等能力,让各场景可以快速接入。主要围绕接入效率和接入效果进行优化。

效率优化

个性化UI的接入成本比较高,需要设计素材,人工打标,前端/业务后台/中台对接工程链路,训练UI偏好模型,跟进实验,手工清洗数据分析。涉及流程长,对接的角色多,投入较大。在平台级大流量展位上接入这套能力,能产出很大的业务效果,这样的投入还能接受,但要覆盖更多的长尾场景,这样的接入效率性价比相对低,难以被接受,我们从几个方面建设去提升各场景的接入效率:

  1. 一站式配置平台(万花筒平台),完善样式配置、组合预览、打标、筛选审核、业务干预、样式三板斧发布、数据分析能力。
  2. 通用链路,提供从样式包召回、推荐、数据组装的通用工程链路,通过 BFF SDK 输出,普通场景只需要前端BFF接入SDK即可完成接入,减少与业务后台和中台的链路对接。
  3. 通用模型,用户特征和UI标签特征在各个场景里是通用的,也就可以训练出一个通用模型,映射用户特征和UI标签特征的偏好关系进行推荐,虽然效果相对专门训练的模型会打折扣,但适合长尾场景快速接入。
  4. 专用链路,数金多数场景与各业务平台和中台结合较紧密,我们把个性化UI能力嵌入这些平台,可以提供更好的结合业务和特定场景的一站式使用体验,提升效率,例如对接UCDP/梵高/毕加索建设banner链路、对接洛可建设微贷专有链路等。

以上几点是短期内会建设完成的能力,此外有两个正在探索中的提升接入效率的课题:

  1. 素材生成,当前接入的大多数场景需要设计师和运营一起产出多个图片和文案素材,这是接入流程中最大的成本,我们在探索素材自动生成的方案,沉淀符合设计规范的原子图片素材库,提供对不同场景尺寸和组合的处理适配能力,让图片素材可以在多个场景里复用。文案方面在中台智能文案基础上加入更多的业务语料,自动生产的文案更符合业务调性和用户偏好。
  2. 自动化打标,当前需要手工对每个元素进行打标,当标签趋于稳定,并且打标量达到一定程度后,可以通过算法理解图片和文本,归类到指定的标签进行自动化打标,减少人工投入。

效果优化

如何对样式推荐的效果进行进一步提升,也是我们持续在探索的,算法效果的提升,很大一部分取决于特征数据的丰富和准确,围绕数据会在这几方面进行尝试:

  1. 端智能结合,云端不直接推荐UI样式结果,而是推荐几个样式候选集,端上再进行实时重排。为什么端上重排可能会有效,端上可以根据用户的实时行为,判断用户看了还是没看(停留了、快速划过),再结合它的行为路径(点了有某个UI标签的展位、快速离开、去了很多二级页等),去综合判断是否因为疲劳度、兴趣变化等去切换其他样式,更好打中用户。
  2. 自动特征工程,训练专用的UI推荐模型时,会根据对场景的理解进行特征筛选和交叉组合处理,这里选择什么特征交叉由个人经验决定,我们借助AI中台的能力,尝试autoCross自动筛选有效的交叉特征,理论上能得到比手工交叉筛选更好的效果,同时减少特征工程的人员投入。
  3. 多模态建模,抽取图片素材/文本素材的高维特征,融合后作为UI标签的补充加入训练,丰富模型对UI的理解。
  4. UI标签演进,我们一开始构建的表现层/内容层的标签体系,几个场景使用下来有不错的效果,但还没能做到很通用地描述UI,正在尝试以描述因子/驱动因子的方式组织标签,我们会尝试不断迭代标签的描述粒度和通用性。

未来

个性化UI在金融场景我们实现了从0到1的突破,后续从1到100我们还需要做很多工作,除了上面说的产品化效率和效果优化,还有三个方向持续探索:

  1. 通用性,当前的标签体系、模型、工程链路都是围绕数金业务进行建设,实际上这套能力在多产品服务分发的场景都能适用,比较适合支付宝的业务形态,后续可提升通用性,在支付宝分发海量产品服务的展位上进行尝试。
  2. UI偏好画像,接入的场景足够多,标签体系足够完善,归因的方法探索出通用有效的方案后,可以沉淀用户的UI偏好画像,作为体验端的数据资产,为后续算法模型、业务设计提供价值。
  3. 能力扩展,我们围绕单展位模块的千人千面建设个性化UI能力,在这以外,跟智能展示相关的,还会有其他空间可以挖掘,例如全屏的注意力管理,用智能化的手段,避免全屏范围内 动画/红点/抢眼颜色/弹屏 不断抢占用户吸引力,以合适的方式分配用户注意力,提供更好的体验和效果,是一个可以探索的方向。

总结

我们针对数金的业务特性,在对产品的个性化UI展示上提出了 元素打散组合-语义打标-算法推荐-归因分析 的方案,落地取得了不错的效果,当前在将能力进行产品化沉淀的过程中,逐渐完善核心的 多样式生产、精准UI偏好模型、UI偏好画像 能力,让各长尾场景快速接入取得规模化的业务结果。过程中会碰到许多困难,但核心的“不同人有不同UI偏好”已被验证,我们会沿着这个方向,联合设计、产品运营、算法、质量一起持续深耕和拓展个性化UI能力。