分享回顾|我们是神经搜索少年团!
在坚持开放协作精神,具备全球影响力的 Jina AI 开源社区,每天都有来自世界各地的开发者来到这里,因为技术产生联结,因为联结产生共创。
在 10 月,Jina AI 联合太极图形、OpenMLDB、OpenPPL、电鸭社区、Ladies Who Tech、云启资本等合作伙伴,举办围绕开发者文化的 1024 嘉年华活动,一起做有意思的活动,发现有意思的开发者,共创有意思的项目!
在本次开发者嘉年华中,我们特别邀请了有意思的开发者来做程序员脱口秀,昨晚 8 点 GenZ 新生代开发者们完成了精彩的专场分享。他们一起分享了在开源社区中打磨技术的心得,并分享了他们在开源中学习,在社区里成长的故事。本文梳理汇总了三位开发者的分享内容,供大家参考。
单茂轩:CLIP-as-service 贡献者
从两年前 BERT-as-service 最年轻的使用者,到现在 CLIP-as-service 最年轻的开发者。茂轩有着出类拔萃的学习能力,高质量的代码编写能力,是名副其实的生产力爆表小天才。高考结束后,茂轩立马加入 Jina AI 开启暑期实习,期间完成了重要 PR:通过实现 Multilingual CLIP 模型的支持,使得 CLIP-as-service 能够支持上百种语言。
Q
A
助手小J
Jina AI公众号
编辑
单茂轩
CLIP-as-service贡献者
Q
茂轩最初对开源的了解源于什么呢,它对你来说意味着什么呢?
A
对开源有概念要追溯到小学的时候,当时读到了一本计算机科普书,里面提到了各个电脑操作系统的起源,其中就讲到了 Linux 系统是一个叫 Linus 的程序员,开发了一个操作系统内核,并把自己的代码都发布在互联网,其他程序员看到后也自发参与到开发工作中,一起开发改进。经由社区这样一代代迭代,最后 Linux 系统成为了世界上极具影响力的操作系统,也成为开源社区的代表。
此后随着我逐步接触编程,我又了解到 GitHub 这个网站,里面有各式各样的项目全都将源代码公开,也就越来越熟悉开源的理念了。
Q
是什么样的契机了解到 Jina 的呢?
A
在高中时,我开发了校内智能助手“小虎”来解答同学们在学校中遇到的各种问题,在考虑解决方案时,就发现了 Jina AI 创始人肖涵博士的 Bert-as-service 项目。与肖博士结识后,我就了解到了 Jina AI。
高中毕业之后,我就立刻投入到了对 Jina 生态的探索和实践中:从底层的数据结构 DocArray,到终端的 Flow,再到云端的 Jina Hub,Jina 生态中众多设计理念让我目不暇接。其中最吸引我的是 Jina Hub 的理念,于是我就开始尝试为社区做些事情。
Q
Jina Hub 的设计理念为什么会如此吸引你呢?
A
在 Jina 生态里,只要可以封装成 Executor,万物皆可 as service。而 Jina Hub 就像是 Jina AI 开发的 Executor 商店一样,它是自下而上去帮助解决社区其他用户的业务需求。
不论是 Jina AI 的开发者,还是来自社区的开发者,都可以通过将自己编写的 Executor 上传至 Jina Hub。当有其他开发者有同样需求时,他们就可以直接访问这个 Executor,只需要明白接口参数和返回信息即可。
这就形成了一个非常好的“人人为我,我为人人”这样一个共享的社区生态,也为整个社区创造了更多可能性。
Q
在两年前了解和使用到 Jina 生态,到现在成为 Jina AI 的贡献者,在这之间角色发生了重大转变,你的感受如何呢?
A
我加入开源贡献的时间还不长,要感谢加入 Jina AI 的契机,使得我能够和这些全球顶级开发者一起开发 CLIP-as-service。
CLIP-as-service 是 Jina AI 开发的能够提供文字和图片的向量表示的开源项目,我负责的是重构 CaS 的模型加载模块,来使它支持比原来多得多的模型。现在 CaS 不止能支持 Open AI、OpenCLIP 的模型,还支持了上百种语言的 Multilingual-CLIP 模型 ... 甚至可以让社区用户自主配置模型支持。经过一段时间的开发,我顺利完成了这个 XL Size 的 PR。在 CaS 0.5 版本中完成了迭代,并向整个社区公开发布。
在这里要特别感谢王峰博士在开发过程中给予的耐心指引,这件事是我目前为止最有成就感的事情,因为我为曾经帮助过我的项目做出了贡献。
本科毕业于清华大学工程物理系,目前是中国原子能科学研究院的核能数字反应堆方向的在读研究生。小燕多次参与开源社区项目,从一名国内的学生开发者,通过深入参与 Jina AI 社区的贡献,现逐步在全球开发者社区建立自己的影响力。
Q
A
小J助手
Jina AI公众号
编辑
杨小燕
DocArray
项目贡献者
Q
小燕是从核物理跨行到程序员,编程对你最大的吸引力是什么呢?
A
编程几乎是现在大部分工科的必修课了,所以我在大一就开始接触编程,学完之后非常喜欢这种用代码去表达自己的逻辑的方式,这种和计算机对话的编程语言远比语文作文更吸引我。包括后来我做的一些科研项目,以及我研究生读的其实是数字反应堆方向,都和编程有着分不开的关系。将数学、物理算法通过编程语言进行实现。所以我是一直都在编程,也很享受这个编程的过程。
Q
小燕是什么样的契机了解到 Jina 的呢?
A
今年是参加开源之夏活动的时候,对 Jina AI “神经搜索”的概念非常感兴趣,就立马提交了项目申请书。
在一开始,我想的只是提升编程技术,在简历里增加一段项目经历,但没想到在 Jina AI 社区收获到的远远超了我的想象。我完成的项目是 DocArray & Redis|什么是比快更快的向量搜索。在项目开发过程中,通过 Jina AI 社区也和 Redis 社区展开了一些交流跟合作。并且在开发期间,DocArray 经常登上 GitHub 的 Trending,感觉就像登上了热搜。
除了代码之外,我也有在 Jina AI 社区做一些中英文的技术分享。给我带来了很多成就感,因为感觉自己不光提升了技术水平,并且感受到自己对开源所做的贡献被世界上其他开发者关注和认可。此外英语水平也提升了非常非常多。希望通过我的经历告诉大家,欢迎大家加入 Jina AI 社区,因为这里有各种各样的机会,让大家得到锻炼跟成长。
Q
在和 Jina 社区一起成长的过程中,你的感受是如何呢,在和全球的开发者交流的时候,你有没有什么不一样的体验呢?
A
我个人觉得在开源社区中能收获多少,跟所在的开源社区的氛围非常有关。因为之前也有参加过其他社区的讨论或者开源的贡献。但在 Jina AI 社区就很明显感受到大家的热情和真诚,给予了我很多帮助。
因为从我一开始去了解这个项目,我的导师王博老师就为我做了非常详尽的介绍,从神经搜索的概念,到具体的技术。在开发过程中,每次遇到困难,或纠结于解决方案时,在这个过程中大家都会建立积极的讨论,会让你感受到不是自己一个人在努力,而是大家陪着你一起去完成了一个新功能的开发。
正因为 Jina AI 社区这样好的氛围,我也就能成长得更快一些。同时也因为 Jina AI 社区是一个非常全球化的社区,逼着我的英语很快地进步了很多。
四川大学大四学生,在 DataWhale 社区带领十余位课程贡献者们一起完成了基于 Jina 构建的跨模态搜索引擎教程。计划在毕业设计中使用 Jina 制作一个中国妖怪图像志搜索引擎。
Q
A
小J助手
Jina AI公众号
编辑
韩颐堃
DataWhale
教程贡献者
Q
小韩同学是怎样的契机了解到 Jina AI 社区的呢?
A
我的专业是信管,严格来说并不和计算机强相关。在大一下因为疫情,我就宅在家里每天给独立游戏写 mode。到大三那会,我跟老师做了一个项目,为一个词典做建模,一开始我是通过把词典里的数据全部标签化,再通过这种硬匹配的方式来查找。同时我也一直在试图寻找更加智能的解决方案。
后来在一个国外的会议上做分享的时候,看到了国外的开发者做了一个以文本搜索数字壁画,就第一次接触到了跨模态的搜索。在大三下,通过一系列经典的国外开源网课,就慢慢走进了 AI 的世界。再后来我就加入了 DataWhale 社区,看到有个非常有意思的基于 Jina 开发的跨模态搜索项目在招募课程贡献者,我就立马报名了,全程参与了课程的制作。感觉很荣幸参与到了 DataWhale 和 Jina AI 两个社区合作的教程制作中。
Jina AI 创意脑暴会社区助手小J:大家分享了是如何与 Jina 结缘,以及怎样在开源技术社区成长起来的。我们接下来就进入到 Jina AI 创意脑暴会 —— 用 Jina 可以做哪些好玩的东西
刚好在 Jina AI 社区里面有一个用户,他就用 Jina 做了文字搜视频的应用。Jina 实例秀|输入描述就能自动剪视频?我很喜欢这个应用,但我也发现他写了好长的代码,因为他是模仿着 CLIP-as-service 代码,去使用 CLIP 模型,然后再套上一些 index 去做索引。当时我正在 CLIP-as-service 组工作,我就想挑战自己,怎么用 CLIP-as-service 把这个搜索的流程变得十分简化,十分灵活轻巧。那么最后我的挑战结果就是 60 行,60 行代码就可以完成这样一个用描述文本搜索短视频的跨模态应用。
核心逻辑是先分割出视频的关键片段,再去用文字来搜索对应片段。首先通过这个感知哈希的算法,比较两个帧的哈希值的相似度,也就是算出两个帧的哈希值之后,比较它们的相似度。如果相似度是大于 0.6 的,那么就认为这两张图片是相似的。如果小于 0.6 的话,就认为那一帧是一个关键帧,抽出关键帧之后,我们就可以将以每个关键帧作为分隔,分割出一段段视频。接着就可以根据关键帧,把文字视频搜索的任务转化成为图片搜索的任务。因为关键帧之后的那些帧都会跟它长得一样,否则它就不会是关键帧了,所以只需要搜索关键帧就可以了。那么我们就直接调用这个 CLIP-as-service 的 Client,它有一个 Python 的 SDK,用 Client 连接 Server,传入 Jina 的 DocumentArray 数据结构,再进行排序,就可以把排序后的结果直接返回给前端,就实现了这么一个 60 行代码的视频搜索。前端 30 行,后端 30 行。
杨小燕:今天我们的主题是 GenZ 脱口秀,我最近也深深地沉迷在了脱口秀大会第五季的魅力中,也希望用 Jina 做一个跨模态的搜索应用,快速找到想看的“梗”。因为比如说我平时压力大或者无聊的时候,很喜欢看这种有趣的东西的剪辑。我就希望做一个用“梗”的文本快速搜索到“梗”视频片段的应用。
比如这个节目里就是选手离过婚的非常多,所以表演里有各种各样的离婚梗。比如说当我想看离婚梗了,输入“笑果文化 离婚”,就能搜出来,不管是王建国也好,还是 Rock 也好,还是思文提到的离婚梗的这些片段。刚刚听完单同学的分享,我想我等会儿可以找他的 demo 试一试。
韩颐堃:这是我当时和老师一起敲定的毕业项目:基于中国妖怪图像志的 text-to-image search。因为每一个中国的妖怪都有很多的不同风格种类的图片,我们可以把它当成一个 dataclass。把这只妖不同种类的图片,比如最原始版本的图片、现在二创的图片、名字、原文言文的描述等等。把前沿的 AI 和中国传统文化结合起来。
这块需要拿 Finetuner 微调一下,因为之前那个 Multilingual BERT 里加的就是传统的中文 BERT 不是北里的那一版古文的 BERT,所以可能还需要再微调一下,包括它的一些意向解读。
这个东西是有可推广性的,比如说现在很多游戏都有 Wiki,我这边临时找了一个原神的 Wiki,Wiki 其实说到底也是一个跨模态搜索应用,如果我们通过 Jina 生态来做的话,这一套也是完全可以做下来的。所以我觉得它是具有可推广性的。无论是中国传统文化也好,游戏素材也好,还是一些自成体系的东西,比如说漫威宇宙,或者哈利波特等等这些其实都是可以做的。
因为 Jina 很擅长处理非结构化数据,我们可以基于 Jina 做简历的 PDF Search,结合这个用户的经历,做一个多模态搜索:招聘方通过输入关键字,就能快速定位到适合的求职者。
如果你也想要像神经搜索少年团一样,在一个热情开放的技术社区收获成长,建立个人影响力,👇 请加入 Jina AI 社区!关注 github.com/jina-ai,点亮 Star, 加入 slack.jina.ai 社区,和全球开发者一起交流吧!
程序员脱口秀预告
硬核女孩召集!了解开源世界里的女性力量和她们的 Coding 日常!打泰拳的 AI 技术架构师博士,带着电脑游走 120+ 国家的产品经理,德国仪表公司的架构工程师,开源社区高级运营工程师 ... 10 月 20 号晚 8 点一起来了解她们的硬核成长故事。
加入活动交流群
扫描下方二维码,填写表单,即可加入「开发者嘉年华」交流群。
或访问以下地址,或点击「阅读原文」:
https://www.wjx.top/vm/wFnM3Lp.aspx#