从CLIP应用领会隐空间的魅力
1 前言
在前面所刊登的《从隐空间认识CLIP 多模态模型》一文里,已经阐述了CLIP 基于隐空间的运作了。在本文里,将从商店柜台的产品推荐应用来说明:我们可以拿CLIP 的源代码,搭配商家自有产品图像(Image) 和图像叙述文句(Text),来训练出企业自用的CLIP 小模型,同时也领会其幕后隐空间(Latent space) 的运作及其效果。
兹复习一下CLIP 的特性,它的目标是透过大量图片及文字描述,建立两者间的对应关系。其做法是利用ResNet50 等来萃取图像的特征,并映射到隐空间(Latent space)。也就是将图像编码成为隐空间向量。同时,也利用Transformer 萃取与图像相配对文句的特征,并将文句编码成为隐空间向量。最后经由模型训练来逐渐提高两个向量的相似度。换句话说,CLIP 能将图像和文句映像到同一个隐空间,因此可以迅速计算图像与文句的相似度。
换句话说,CLIP 发挥了隐空间的魅力,藉之学习整个文句与其对应的图像之间的关系。当我们在整个文句上训练时,它可以学到更多的隐藏的东西,并在图像和文句之间找到一些规律。因而,在当今主流的ChatGPT 和Stable Diffusion 大模型,其幕后都使用CLIP 来提供“文找图”和“图找文”的双向功能。在一般企业里,也常常需要上述的“文找图”和“图找文”双向功能。
2 以“商店柜台AI产品推荐”为例
这是一项CLIP 模型的应用案例。其应用于商家( 如便利商店) 柜台,进行瞬间实时商品推荐。典型的使用情境是:
1) 客人在便利商店里,挑选了一项产品,拿到柜台结账,例如青岛啤酒;
2) 柜台( 收银台) 正上方天花板设置一个Camera,立即拍下这张图像,如图1;
图1
3) 柜台的收款机(POS) 系统把这张图像,传送给后台的CLIP 模型;
4) 此时,CLIP 模型立即找出< 最接近( 相似)> 的产品图像,如图2;
图2
5) CLIP 模型回传给POS 系统,然后将这两张相关图像,显示于柜台的双向平板屏幕上,柜台人员和客人立即看到了(图3),达到促销的效益;
图3
6) 依不同客人结帐的产品,而立即找出最符合客人〈偏好〉的相关产品,达到实时推荐& 行销。再如,另一位客人购买产品是图4;
图4
7) CLIP 模型就立即找出< 最接近( 相似)> 的相关< 产品> 的图像,如图5;
图5
8) CLIP 模型回传给POS 系统,然后将这两张相关图像,显示于柜台的双向平板屏幕上,柜台人员和客人立即看到了,达到促销的效益。
上述的CLIP 模型是针对“产品”的。而一般POSPOS 机的人脸AI 是针对“人”。我们可以扩大建立一个商品推荐AI 模型,把两者汇合起来,就实现了“比客人更懂客人”的极佳效果了。
3 实现方法
接下来,就来说明如何实现上述的“商店柜台AI产品推荐”模型开发。
Step1下载CLIP源代码
下载网址是:https://github.com/moein-shariatnia/OpenAI-CLIP
Step2准备训练图像(Image)
在本范例里,收集了该商店的产品图像,共20张。放置在这活页夹/ox_super_market_data/train/ 里(图-6):
图6 训练数据
Step3准备相对应的文本(Text)
在本范例里,会自动读取图像的文件名(File name)来做为图像的相互对应的文本。例如,图6 里的第0 张图,其檔名为:”天工贡糖_J”。于是,就撷取”天工贡糖”做为此图像的相对应文本,如图7所示。
图7 图与文的对应关系
Step4展开训练(Training))
接着,就基于上述图像数据、文本数据、以及它们之间的对应关系,来训练CLIP模型。如果使用一般的GPU硬件设备来进行训练,大约10 分钟即可训练5000回合。然后汇出*.ckpt 档案。
Step5应用(一):图找文
训练好了CLIP 模型,就拿一些图像来检测看看CLIP 的< 图找文> 功能,如图8 里的图像。
图8 测试图像
在源码里也提供了CLIP 的预测功能,就搭配我们自己训练的模型( 即*.ckpt 档案),来检验CLIP 的预测能力。例如输入图8 里的image_00.jpg 图像,CLIP 立即找出其< 最接近的> 文本,如图9。
图9 CLIP做了很棒的预测
Step6应用(二):文找图
接下来,就拿一段文本来检测CLIP 的“文找图”功能。例如:输入文句:”有没有青岛山水美啤酒呢?”CLIP 找出其“最接近的”图象,如图10。
图10
根据图10的描述可以绘出该图像为图11,CLIP输出了美好的结果。
图11
Step8应用(三):图找图
再来,就拿一张图检测看看CLIP 的“图找图”功能。例如:输入一张图,然后由CLIP 立即找出其“最接近的”图象,如图12,CLIP 的表现很棒。
图12
4 结语
本文以大家很能理解的应用案例,来让您体会CLIP 幕后的作业,尤其是它将图像特征,以及文本特征映像到隐空间,也就是将其编码成为隐空间向量,并计算其相似度。最后,基于相似性来找出“最接近的”图像或文本。
(本文来源于《EEPW》2023年11月期)
评论