关于人工智能:RAG-领域的新宠为什么-AI-圈都在谈论-Jina-ColBERT

54次阅读

共计 3134 个字符,预计需要花费 8 分钟才能阅读完成。

在 RAG (检索加强生成)畛域,选对向量模型至关重要,它根本就决定了 RAG 零碎的“天花板”,也因而,向量模型的抉择总是业界的热门探讨话题。

最近,Jina AI 在 Hugging Face 上推出的 Jina-ColBERT 模型引起了 AI 圈子里不小的轰动,尤其是在 Twitter/X 上,大家都在探讨它能解决高达 8192 Token 的弱小能力,为搜寻带来了更多的可能性。

与 ColBERTv2 相比,Jina-ColBERT 在各项测试中都展示了顶尖的性能,特地在解决长文档数据集时,其体现更是显著优于 ColBERTv2。

与市场上大多数向量模型相比,Jina-ColBERT 有个显著的不同点——它采纳的是多向量搜寻技术。单向量模型会把整个文档或段落编码成一个繁多向量,而后基于余弦类似度进行匹配。而 多向量模型,如 Jina-ColBERT,则是将文本中的每个词编码成独立向量,通过迟交互计算类似度。

很多人都听过 BERT 模型,但 ColBERT 是什么呢?

先说说背景。ColBERT 基于 BERT 模型开发,师出名门斯坦福。那为啥最近又翻红了呢?原来,ColBERT 降级到 v2 版本,不仅补齐了 v1 版本在存储和扩展性上的短板,还显著晋升了性能。

再来说说 ColBERT 的家谱。之前大家没怎么留神到它,次要是因为从传统搜寻(文本匹配)过渡到向量检索的过程中,大家都忙着折腾单向量模型,把这位和 BERT 同门的 ColBERT 给疏忽了。

单向量模型是将查问和文档简化为繁多向量的示意,ColBERT 则 为每个 token 生成一个向量,并通过 MaxSim(Maximum Similarity, 最大类似度)计算得分,即它对于每个查问词,从文档中找到与之最类似的词的向量,并将这些最大类似度值相加作为最终的相关性分数。

通过 采纳 token 级别的细粒度交互,即首先将查问和文档在词粒度上逐项编码,再在查问阶段进行迟交互。 也就是说,文档侧的计算能够齐全离线进行,这一点与单向量模型的做法统一,但在解决办法上更为精密。这就使得它的 可解释性更好,在 token-level 匹配之后,咱们可能解释查问中哪个词与文档中的哪个词最匹配。

这种多向量的召回形式带来两大益处:一是逐 token 编码提供了更细粒度的表征 ,在 in-domain (畛域内) 具备很高的 MRR@10(头部排序能力)和 Recall@1k(腰尾部召回能力)。并且提供了更好的可解释性。二是提供 out-of-domain (未知领域) 更强的泛化能力,特地是在解决长尾查问或文档时,因为词粒度的惊喜表征,使得模型对于未见过的畛域有更好的性能体现。

Colbert 迟交互机制

与传统的 query-doc 全交互型 BERT 及目前风行的 Embeddings 模型相比,ColBERT 提出的 Late Interaction (迟交互)机制 有着显著的劣势。

具体来说,单向量模型是吃进一个句子,吐出一个向量,而后再基于这些向量做类似度比拟。而同样是别离编码查问和文档,ColBERT 拿模型生成的 Token Embedding 来做类似度计算,在后续阶段计算查问和文档 Token Embedding 之间的交互。这种办法既思考了匹配效率,也充分利用了上下文信息,使得 ColBERT 既能作为一个弱小的召回模型,也能够用做召回之后的重排工具。

Jina-ColBERT 的降级亮点

Jina-ColBERT 是 Jina AI 对原有 ColBERT 模型的一番降级打磨。外围改良是采纳了 jina-bert-v2-base-en 作为根底模型,从而反对一口气解决长达 8192 token 的文本。

这一改良意味着,无论是凑合那些短小精悍的文本,还是那些简明扼要、须要深度了解的搜寻工作,Jina-ColBERT 都能轻松应答。甚至在很多状况下,尤其长文本场景下,都能比 ColBERT v2 模型做得更好。

咱们在 BEIR 数据集上,比照测试了 Jina-ColBERT,和原版 ColBERTv2,以及单向量模型 Jina-Embeddings-v2-base-en 模型的能力。

DatasetColBERTv2jina-colbert-v1-enjina-embeddings-v2-base-en
Arguana46.549.444.0
Climate-Fever18.119.623.5
DBPedia45.241.335.1
FEVER78.879.572.3
FiQA35.436.841.6
HotpotQA67.565.961.4
NFCorpus33.733.832.5
NQ56.154.960.4
Quora85.582.388.2
SCIDOCS15.416.919.9
SciFact68.970.166.7
TREC-COVID72.675.065.9
Webis-touch202026.027.026.2
Average51.752.651.6

从这个表里,咱们能看到 Jina-ColBERT 的亮眼体现,各项测试里,它都能和 ColBERTv2 一较高下。

值得一提的是,Jina-ColBERT 只用了 MSMARCO 数据集来训练,而 Jina-Embeddings-v2-base-en 应用了更宽泛的训练数据,后者在某些特定工作上体现得更好。

咱们还特地在专为长文本设计的新 LoCo Benchmark 上进行了测评,能够看到 Jina-ColBERT 在解决那些超出 ColBERTv2 惯例上下文长度的场景时,体现更是杰出。

DatasetColBERTv2jina-colbert-v1-enjina-embeddings-v2-base-en
LoCo74.383.785.4

总的来说,Jina-ColBERT 在各项基准测试中都体现出和 ColBERTv2 相媲美的性能,当在文本的上下文更长时,它的体现就更胜一筹了。

如果你想在 RAG(检索加强生成)畛域挑选出适合向量模型,这里有几条倡议,帮你决定哪个最合适。

  1. 如果你偏好简略的单向量存储与检索,并且可能承受肯定水平的精确度就义,那么 Jina-Embeddings-v2 是个不错的抉择。
  2. 对于那些谋求细颗粒度检索、关注模型在 out-of-domain(未知领域)的体现、以及须要模型可解释性的用户来说,Jina-ColBERT 会是更优选。
  3. 你也能够设计一个分阶段的检索流程:首先用 Jina-Embeddings-v2 疾速召回候选文档,接着用 Jina-ColBERT 进行更细颗粒度的从新排序。
  4. 请留神,目前 Jina-ColBERT 仅反对英文内容的解决。

轻松上手:Jina-ColBERT 入门指南

上手 Jina-ColBERT 很简略,因为它是基于 ColBERT 模型优化的,你能够轻松地在现有反对 ColBERT 的平台上应用,比方 Vespa、RAGatouille、fastRAG 和 LangChain 等,只需将原模型名称换成 jina-colbert-v1-en。此外,咱们还提供了一个专门的 Colab Notebook,供大家疾速上手。

Notebook: https://colab.research.google.com/drive/1-5WGEYPSBNBg-Z0bGFys…

想要疾速利用到我的项目里的话,举荐应用 RAGatouille,它做了很好的封装,能够更轻松用 ColBERT 构建 RAG Pipeline。

更多内容请拜访 https://huggingface.co/jinaai/jina-colbert-v1-en。

展望未来:Jina-ColBERT 的新动向

咱们正踊跃评估 Jina-ColBERT 作为 Reranker 的成果,并打算增加更多应用示例。同时,咱们也将致力在更多数据集上进行微调,以进一步晋升 Jina-ColBERT 的性能,并优化其存储性能。

正文完
 0