从国内的学生开发者,到深入参与国际化开源社区。小燕主动出击,不放过任何一个贡献机会。快来看看原子能科学研究院核物理专业小姐姐的神仙输出!
北京时间 10 月 11 号,本周二晚 10 点,小燕将在 Zoom 平台,面向全球开发者,进行全英文技术分享《Lightning fast Vector Search with DocArray and Redis》
复制 https://jina-ai.zoom.us/j/834... 到浏览器,即可加入直播!
作者介绍
Jina AI 社区 DocArray 贡献者杨小燕,中国原子能科学研究院的核能科学与工程专业硕士二年级在读,本科毕业于清华大学工程物理系。
分享项目简介
项目名称:支持基于 Redis 的近似最近邻搜索
项目描述:神经搜索特指使用人工神经网络模型的搜索系统。很多常见的搜索应用,比如以图搜图,听声辨乐,都需要神经搜索。在神经搜索系统中,所有的文件会通过人工神经网络被表示为一个向量并存储在索引中。当用户进行搜索时,用户的查询目标也会被表示为一个向量。通过比较查询向量与索引向量的相似度/距离,我们可以找到最为匹配的文件。
基于神经网络的搜索通常需要在短时间内查询到最相似的文件。这依赖于近似最近邻搜索(Approximately Nearest Neightbour Search),简称 ANN 搜索。作为一个前沿研究领域,学者们已经提出很多高效的 ANN 算法。Redis 数据库目前已经支持基于图的 ANN 搜索算法:HNSW,该算法能够最大程度的达到检索召回率和检索时间的平衡。
DocArray 作为 Jina AI 神经搜索全家桶的底层模块,能够帮助开发者快速开发者快速搜索系统。在DocArray 中,我们已经支持了多种向量数据库作为存储后台,如 ANNLite,Weaviate,Qdrant 以及 Elasticsearch。为了帮助 Redis 社区的开发者,我们希望支持 Redis 数据库作为 DocArray 的存储后台,帮助用户高效的进行向量检索。
项目要求:
需要在 DocArray 中集成 Redis 作为存储后台
代码有完整的文档及单元测试、集成测试
需要在 DocArray 中产出 Redis ANN 搜索的基准
项目导师: 王博
项目链接: https://summer-ospp.ac.cn/#/o...
开发详情
初识项目
在浏览今年的社区及项目列表时,Jina 及其神经搜索的概念一下子吸引了我,于是我向项目导师王博发送了咨询邮件。导师不仅很快回复,还向我详细介绍了DocArray和项目意义。Neural Search 可以实现跨模态的搜索,使搜索不再局限于文本匹配,而使用 DocArray 可以快速对一组非结构化的数据进行表征,实现 Docarray 的 Redis 数据库支持,不仅能将数据存储在Redis中,更能使用 RedisSearch 模块实现高效的向量搜索。导师的沟通不仅让我快速学习了相关背景,也让我感受到社区热情友好的氛围。
项目开发
7月份,我主要进行了 DocArray 与 Redis 的学习、项目技术方案的设计,并将较为详细的项目技术方案展示给来自世界各国的社区维护者。8 月份,在详细设计的基础上,我得以快速实现 DocumentArrayRedis 类,包括 DocArray 与 Redis 数据库的交互、数据的增删改查和向量搜索功能。9 月份,我进一步补充了多种搜索逻辑和全文搜索功能,并在 Jina 社区做了多次中英文的项目成果分享。
主要成果
DocArray x Redis 向量搜索
输出结果DocArray x Redis 全文搜索
输出结果更多成果请点击:https://docarray.jina.ai/adva...
开发者随访
Q(开源之夏小助手): 这是你第二次参加开源之夏了,为什么选择参与开源之夏?
A(小燕): 作为非计算机专业的学生,参与开源是非常好的提升技术的方式。开源之夏不仅汇集了丰富的社区和选题,更通过高质量的活动组织让我能获得导师和社区的指导以及与其他同学的交流。
Q(开源之夏小助手): 在项目开发过程中遇到到印象最深刻的困难/问题是什么?是如何解决的呢?
A(小燕): 今年的项目是实现 Docarray 的 Redis 数据库支持,功能中很多与Redis结合的功能都非常“小众”,Redis 官方文档均为 Redis 命令的解释“字符串”组成的解释说明,而目前 redis-py 包中search 相关命令的手册和使用示例则少之又少,因此我必须通过阅读源码来使用 redis-py 并用优雅的 Python 代码实现所需功能。在这个过程中我还顺便发现了 redis-py 的小 Bug,并向对方社区提出了 Issue 和 PR。
Q(开源之夏小助手): 你是从什么时候开始接触开源的?有什么特别的经历吗?
A(小燕): 我是从2021年参与 openEuler 高校开发者大赛及随后的开源之夏活动开始真正参与开源的。今年的项目 DocArray x Redis 的结合,使得 Jina AI 社区与 Redis 社区建立了交流与合作;在项目开发期间,DocArray 登上 GitHub Trending 并增长至 1100 star;项目的有关 PR 也在 DocArray 的新功能 release 中被提及;通过中英文平台公开分享项目内容……看到自己的贡献能随着社区发展获得一些关注,非常有成就感。
Q(开源之夏小助手): 在开源社区里学习工作时一种什么体验?
A(小燕): Jina AI 社区是一个活跃且全球化的社区。在导师的帮助下,我与社区其他核心成员有了充分的交流,在不同方案中纠结时他们会提出建议,每次提交 PR 后也会共同 review,使得相关功能的完成更加细致与完美。同时社区成员来自世界各国,也“迫使”我的英语口语能力在短期内快速提升。
Q(开源之夏小助手): 给准备参与开源之夏的学弟学妹们一些建议吧
A(小燕): 在项目申请阶段要对有兴趣的项目都应该勇于迈出第一步,去阅读相关的源码、文档,带着自己初步的思考与设计找导师沟通,才更有效率也更容易中选。
直播活动
活动时间
2022 年 10 月 11 日 周二晚 22:00 - 23:00
报名方式
复制 https://jina-ai.zoom.us/j/834... 到浏览器