AI 大模型之美
徐文浩
bothub 创始人
32335 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 33 讲
AI 大模型之美
15
15
1.0x
00:00/00:00
登录|注册

23|OpenClip:让我们搞清楚图片说了些什么

文本搜索与以图搜图功能
图片向量化并建立索引
计算图片与文本的余弦相似度
文本特征提取
图片预处理与特征提取
Pinecone提供的计算机视觉深度学习教程
选择合适的模型进行实验
尝试使用Pipeline实现图片零样本分类
商品搜索优化与以图搜图功能
零样本分类与目标检测
CLIP模型的能力与应用
示例:通过关键词和图片搜索商品
实现:
数据集:HuggingFace提供的商品图片数据集
利用CLIP模型的语义检索功能
示例:检测猫咪、遥控器和沙发
功能:框出图像中特定区域并分类
方法:使用OWL-ViT模型和Transformers的Pipeline
示例:猫咪图片与不同文本的相似度比较
步骤:
使用Transformers库的CLIPModel和CLIPProcessor
训练方法:对比学习,建立图片和文本之间的关系
重要性:通向通用人工智能的必经之路
定义:结合多种媒体形式的内容
应用:图片分类、目标检测、商品搜索、内容推荐
功能:将图片和文本映射到同一向量空间
训练数据:4亿张互联网图片及其ALT文字
OpenAI开发的多模态模型
推荐阅读
思考题
小结
商品搜索与以图搜图
通过CLIP进行目标检测
图片的零样本分类
多模态的CLIP模型
CLIP模型概述
OpenClip:图片理解与应用

该思维导图由 AI 生成,仅供参考

你好,我是徐文浩。
前面我们已经学完了文本和音频的部分。接下来,我们就要进入课程的最后一部分,也就是图像模块了。
与视觉和语音一样,Transformer 架构的模型在过去几年里也逐渐成为了图像领域的一个主流研究方向。自然,发表了 GPT 和 Whisper 的 OpenAI 也不会落后。一贯相信“大力出奇迹”的 OpenAI,就拿 4 亿张互联网上找到的图片,以及图片对应的 ALT 文字训练了一个叫做 CLIP 的多模态模型。今天,我们就看看在实际的应用里怎么使用这个模型。在学习的过程中你会发现,我们不仅可以把它拿来做常见的图片分类、目标检测,也能够用来优化业务场景里面的商品搜索和内容推荐。

多模态的 CLIP 模型

相信你最近已经听到过很多次“多模态”这个词儿了,无论是在 OpenAI 对 GPT-4 的介绍里,还是我们在之前介绍 llama-index 的时候,这个名词都已经出现过了。
所谓“多模态”,就是多种媒体形式的内容。我们看到很多评测里面都拿 GPT 模型来做数学试题,那么如果我们遇到一个平面几何题的话,光有题目的文字信息是不够的,还需要把对应的图形一并提供给 AI 才可以。而这也是我们通往通用人工智能的必经之路,因为真实世界就是多模态的。我们每天除了处理文本信息,还会看视频、图片以及和人说话。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

OpenClip是OpenAI开发的多模态模型,利用对比学习建立图片和文本之间的关系,为商品搜索和内容推荐提供了优化的可能性。该模型利用Transformers库处理图片和文本信息,通过计算余弦相似度来衡量它们之间的关联。CLIP模型的重要用途之一是零样本分类,无需预先定义分类或标注数据,而是通过学习图片自带的文本信息和文本之间的关联来实现分类。通过示例代码展示了CLIP模型的分类效果,结果表明模型能够准确地对图片进行分类。此外,文章还介绍了如何利用CLIP模型进行目标检测和商品搜索,展示了模型在不同应用场景下的灵活性和效果。通过演示代码和实际结果,读者可以快速了解CLIP模型的应用及其在图像领域的潜力,为通往通用人工智能的必经之路提供了新的可能性。 OpenClip的特点在于无需额外标注数据即可将图片和文本映射到同一向量空间,实现零样本分类和目标检测。文章还提到了如何利用CLIP模型进行商品搜索和以图搜图的功能,展示了模型的多样化应用。通过对比学习建立图片和文本关联,CLIP模型为AI的发展提供了新的可能性,拓展了其在计算机视觉领域的应用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 大模型之美》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • pomyin
    商品搜索与以图搜图部分,其中search函数部分代码有误( training_split[i]["image"] ),我查了huggingface的Dataset数据类型,应该改成:training_split.select([i])["image"]。我的python 3.7,transformers是4.28.1。

    作者回复: 可能和环境版本有关?Python 3.10 下应该是OK的,所有Notebook我都在本地以及Colab上运行过。

    2023-05-09归属地:浙江
    2
    1
  • Steven
    目标检测部分,我的 transformers 版本是 4.24.0,文中代码执行异常,修改成下面的代码得到结果: detected = detector("./data/cat.jpg", text_queries=["cat", "dog", "truck", "couch", "remote"])[0]

    作者回复: 👍

    2023-04-28归属地:辽宁
    1
  • peter
    Q1:笔记本,win10,安装了Anaconda,这个环境可以吗?我安装了Pycharm。应该是Pycharm用来编写代码,Anaconda提供底层支持,是这样吗? Q2:用某个人的声音来播音或者阅读一段文字,有成熟的方案吗? 比如,想用特朗普的声音来播报一段新闻,或者读一篇文章,是否有成熟的方案?开源或商用的都可以。

    作者回复: Anaconda只是做了Python的环境和包管理。PyCharm是对应IDE。提供Python支持的是Anaconda安装了的Python解释器和第三方包。 22讲的最后推荐了voice cloning的开源项目呀。 Azure的TTS也支持自定义模型。

    2023-05-03归属地:北京
  • Toni
    调用了几个模型对图片进行零样本分类,试验图像使用的是本课中的'两只猫咪',为便于模型间的比较,取完全相同的分类参数: candidate_labels=["cat", "dog", "truck", "couch", "remote"]。 模型1: task="zero-shot-image-classification", model="openai/clip-vit-large-patch14" 模型2: task="zero-shot-image-classification", model="laion/CLIP-ViT-H-14-laion2B-s32B-b79K" 模型3: task="zero-shot-classification", model="typeform/distilbert-base-uncased-mnli" 模型4: task="zero-shot-classification", model="MoritzLaurer/mDeBERTa-v3-base-mnli-xnli" 下面是各个模型运算的结果: model cat dog truck couch remote 1 15.03% 0.02% 0.01% 78.11% 6.82% 2 15.04% 0.00% 0.00% 84.95% 0.01% 3 13.22% 11.75% 18.13% 36.99% 19.90% 4 18.52% 16.02% 13.60% 24.22% 27.64% 这几个模型的结果都不如 task="zero-shot-object-detection", model="google/owlvit-base-patch32" 谷歌这个模型的优点是从图中分辨出两只猫和两个遥控器。 最后是一个中文模型,model_id="lyua1225/clip-huge-zh-75k-steps-bs4096" https://huggingface.co/models?pipeline_tag=zero-shot-image-classification&language=zh&sort=downloads ["猫", "狗", "拖车", "长沙发", "遥控器"] [0.996 0. 0. 0.004 0. ] 没有识别出遥控器。

    作者回复: owlvit 的确是现在的 state-of-the-art,当然还有一个因素是选用的图片本身就是这个模型拿来作为例子的图片 客观评价可以多拿点图片看看

    2023-04-29归属地:瑞士
  • 小理想。
    老师,文本向量搜素图片那里下面这段代码是报错的 results = [ {"image": training_split[i]["image"], "distance": distances[0][j]} for j, i in enumerate(indices[0]) ] 我试了图片搜素图片结果发现可以就把那段代码拿过来发现文本搜素图片产品对了 results = [ {"image": training_split[i.item()]["image"], "distance": distances[0][j]} for j, i in enumerate(indices[0]) ] 这段代码就可以了
    2023-11-21归属地:北京
    1
  • 小理想。
    文本向量搜素商品时 results = [ {"image": training_split[i]["image"], "distance": distances[0][int(j)]} for j, i in enumerate(indices[0]) ] 这段代码报错: TypeError: Wrong key type: '1461' of type '<class 'numpy.int64'>'. Expected one of int, slice, range, str or Iterable. 请问大家有什么方案吗,搜了gpt也没有给解决方案
    2023-11-21归属地:北京
  • Tang
    徐老师你好,我测试了下猫狗图片的目标检测,结果猫和狗都检测成了狗
    2023-11-08归属地:上海
  • 糖糖丸
    请问要运行可生产使用的CLIP模型,大概需要怎么样的机器配置(主要指显卡)呢? 另外不知道图片搜索的响应时间大概在什么量级? 是100ms级别,还是10s级别的?
    2023-10-20归属地:北京
  • 新田小飞猪
    老师好,有没有对计算机音频/音乐处理相关的深度学习资料的推荐啊
    2023-07-28归属地:上海
  • Santiago
    欢度五一
    2023-04-28归属地:山西
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部