Jina 开箱即用的云原生多模态系统解决方案

9f3c0382ef41abc64ba7da4b72bb472b.png

Jina 是一个基于云原生的多模态应用框架,开发者使用 Jina 可以轻松构建、部署和维护高性能的云原生应用。你可能认为这些都只是空泛的营销口号,甚至产生疑问,到底什么是云原生?对构建多模态应用有什么帮助?它是否只是 Jina 为了获得投资而许下的空洞承诺呢?

在本文里,我们将跟随一家电商公司的机器学习工程师小博,一起回顾他最近所负责的项目:搭建一个 以图搜图服务。通过这项服务,用户只需上传一张图片,便可以使用机器学习技术精准地搜索出相似的商品。我们将深入探究小博是如何完成这一挑战的,并解答文章开头提到的云原生相关问题。

小博的开发之旅

2be6217d5b70442c05b5bf984b2c0e1d.png

01

原型设计

以图搜图系统通常有两种模式:

  • 索引,创建库存中所有商品的可视化表示。

  • 检索,接收用户上传的照片,并搜索库存中相似的商品。

索引就是创建所有商品的可视化表示,首先利用卷积神经网络提取商品图像的特征,再将提取到的特征存储到数据库中。

检索则是根据用户上传的图片搜索外观相似的商品,因此,需要提取用户上传图像的特征,然后就可以根据向量间的相似度度量(如余弦相似度),搜索得到相似的商品。

为了完成以上任务,小博需要像 PyTorch 这样的深度学习框架,类似 MongoDB 的键值数据库,可能还需要像 Faiss 或 Elasticsearch 这样的向量搜索引擎。作为一名机器学习工程师,小博很熟悉 PyTorch 和原型设计,并且他聪明过人,精力充沛,所以很轻松就将它们连接在一起,完成了第一个原型设计。

82bd3b0401d2b892c22252307f337dad.gif

原型 —— 工程界最性感的工具

02

将原型升级为服务

这样就完成了吗?当然没有,一切才刚刚开始。小博的目标可不只是写一堆 Python 函数,为了建立 Web 服务,并且方便其它服务调用,小博还需要利用带有 API 的 Web 框架重构应用。

建立 Web 服务的方法很多,例如:利用 Django 框架。小博创建了一个接收用户上传图片的终端,根据相似度度量,从库存中检索相似的商品。最后,检索的结果会以 JSON 对象的格式返回给用户。

在建立 Web 服务的过程中,小博学习了很多新知识,例如 REST API、Web 服务和 Web 框架,但这些似乎已经超出“机器学习工程师”的能力范围。所以他内心开始产生疑问,是否值得花费这么多时间来学习,但学习新知识总归是好的。

但在内心深处,小博其实觉得他的技能可能还不足以让 Web 服务投入生产。但无论如何,经过一段时间的努力,终于把它们粘合在一起了。

1ea9cab160c1ce42ba5b602a5047a7a5.gif

SaaS,Soft-as-Service ——商业中最性感的东西

03

在云端部署

小博的进展成功地吸引了产品团队的注意,他们要求小博将服务部署在 AWS 上,并且提供一些真实的流量进行 A/B 测试。这意味着这个 PoC 将面向公众并拥有第一批用户。在将 Web 服务迁移到云端的过程中,小博遇到了很多问题,主要是依赖问题、CUDA 驱动以及 GPU 的麻烦。最终,他通过将所有内容打

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值