前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开箱即用的 Embedding 流水线

开箱即用的 Embedding 流水线

作者头像
Zilliz RDS
发布2022-04-08 08:36:53
4550
发布2022-04-08 08:36:53
举报

“万物皆可 Embedding”这句话似乎每个做算法模型小伙伴都听过了。“万物”具体是指什么呢?Embedding 又是如何实现的呢?本文介绍了一款像积木般易于组合、开箱即用的 Embedding 流水线。

本文转载自知乎用户 CSY,转载已获得原作者授权。

万物皆可 Embedding

在大数据的现实世界中,包括了任何内容:图片、视频、语音、文本,甚至 3D 模型等,这些可统称为非结构化数据。了解了所谓的“万物”,那 Embedding 又指什么?如下图所示,针对非结构化数据,我们利用 AI 技术来对其进行编码,转换成特征向量,通过计算向量实现对非结构化数据的分析。通常将非结构化数据提取向量的过程称为 Embedding。

开箱即用的 Embedding 流水线——Towhee

Embedding 过程通常利用 AI 模型来实现,而模型使用包括调研、选型、训练与调优等复杂且成本较高的流程,好在业界已提供很多预训练好的模型可以直接用,但如何切换模型以及快速上手,就需要一套开箱即用的流水线(Pipeline)。

"X2Vec, Towhee is all you need!" 是 Towhee 这个开源项目的口号,它提供开箱即用的 Embedding 流水线,你无需了解内部工作原理,就可以开发和部署各种各样的流水线。

如上图所示,针对各种各样的视频应用场景,可以将流水线进行拆分,如图像处理和音频处理两个流水线。首先,截取视频帧,然后对截取到的图片集进行处理,得到特征向量;再获取视频中的音频数据,提取音频的特征向量。通过对图片帧和音频的处理来进一步分析视频,当然图片和音频的 embedding 也可以各自定义为一个流水线,并且流水线的使用非常简单,只需要运行 pipeline(pipeline_name:str),而这些流水线都被管理在 Towhee Hub 上,你也可以在 Hub 上寻找你需要的 Embedding 流水线。

Towhee Hub 地址(点击右侧的 Categories 可以进行筛选):https://towhee.io/pipelines?limit=30&page=1

图像 Embedding

Towhee 目前支持多个图像 Embedding 流水线,包括 resnet50,resnet101,efficientnetb5,efficientnetb7,vitlarge,swinbase,swinlarge,efficientnetb7-swinlarge-ensemble值得关注的是 efficientnetb7-swinlarge-ensemble,它将 efficientnetb7 和 swinlarge 模型融合得出更优的模型效果。

代码语言:javascript
复制
>>> from towhee import pipeline

>>> embedding_pipeline = pipeline('towhee/image-embedding-resnet50')
>>> embedding = embedding_pipeline('path/to/your/image')

音频 Embedding

Towhee 支持基于 VGGish 和 CLM 模型的音频 Embedding 流水线,vggish 可以帮助实现音频分类任务,clmr 通常用于提取音频或者音乐的指纹。

代码语言:javascript
复制
>>> embedding_pipeline = pipeline('towhee/audio-embedding-vggish')
>>> embedding = embedding_pipeline('path/to/your/audio')

视频 Embedding

就像拼图一样,Towhee 可以将图片 Embedding 流水线和音频 Embedding 流水线结合实现视频 Embedding 流水线(开发中)。

代码语言:javascript
复制
>>> embedding_pipeline = pipeline('towhee/video-embedding-resnet50-vggish')
>>> embedding = embedding_pipeline('path/to/your/video')

上面列举了图片、音频、视频 Embedding 流水线的例子,除了这些,Towhee 还会持续完善各种非结构化数据处理的模型,比如文本、多模态 Embedding 等。当然如果你有什么好的模型建议,或者不同的需求,都十分欢迎在 Towhee 项目下提 issue,为 Towhee 社区做贡献~

Towhee GitHub 地址:https://github.com/towhee-io/towhee

Towhee 框架概览

你可能会好奇,为什么 towhee 使用 Embedding 流水线如此简单?似乎只需要指定模型就可以直接运行,接下来为你简单介绍下 Towhee 框架。Towhee 主要包含了流水线(Pipelines),算子(Operators),引擎(Engine),以及模型相关的模型层(Layers)和训练(Trainer)。

  • Pipeline: 一条流水线是由多个算子组成的 Embeddding 任务。
  • Operator: 算子是管道中的单个节点。它可以是机器学习模型、复杂算法或 Python 函数。Towhee 将多个算子连接在一起组成流水线。
  • Engine: 引擎是 Towhee 的核心。给定一个流水线,引擎会驱动各个算子之间的数据流、调度任务,并监控计算资源(CPU/GPU/等)的使用情况。
  • Layers: 模型层用于快速构建机器学习模型,它支持各种经典和新发布的模型。
  • Trainer: 训练提供模型训练与优化,它管理着模型训练的各个组件。

总结

正如 Towhee Logo 的设计初衷——帮助用户把机器学习应用中所用到的流水线模块化,就像积木或拼图一样易于组合。Towhee 不光提供了开箱即用的 Embedding 流水线,你还可以创建任何你想要的 operator,然后拼图式的搭建各种所需的流水线。

Towhee 作为一个开源项目,如果你有任何需求都可以给社区提 ISSUE 并加入社区的讨论,非常欢迎大家成为 Towhee 的贡献者!

Towhee website: https://towhee.io

GitHub: https://github.com/towhee-io/towhee

Slack: https://slack.towhee.io

Twitter: https://twitter.com/towheeio

Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。

Zilliz 构建了 Milvus 向量数据库,以加快下一代数据平台的发展。Milvus 数据库是 LF AI & Data 基金会的毕业项目,能够管理大量非结构化数据集,在新药发现、推荐系统、聊天机器人等方面具有广泛的应用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ZILLIZ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 万物皆可 Embedding
  • 在大数据的现实世界中,包括了任何内容:图片、视频、语音、文本,甚至 3D 模型等,这些可统称为非结构化数据。了解了所谓的“万物”,那 Embedding 又指什么?如下图所示,针对非结构化数据,我们利用 AI 技术来对其进行编码,转换成特征向量,通过计算向量实现对非结构化数据的分析。通常将非结构化数据提取向量的过程称为 Embedding。
  • 开箱即用的 Embedding 流水线——Towhee
  • Towhee 框架概览
  • 总结
相关产品与服务
向量数据库
腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持千亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、自然语言处理等 AI 领域。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档