热门话题
#
Bonk 生态迷因币展现强韧势头
#
有消息称 Pump.fun 计划 40 亿估值发币,引发市场猜测
#
Solana 新代币发射平台 Boop.Fun 风头正劲
我终于明白了为什么重排序器如此强大,一旦我掌握了双编码器和交叉编码器之间的关键区别。
我进一步找到了一种使用统一架构结合它们的力量的方法。
让我来解释一下:
RAG 是 80% 的检索和 20% 的生成。因此,如果 RAG 不工作,很可能是检索问题。
这正是为什么正确获取你的检索架构如此重要——这始于理解这两种(实际上是三种)编码方法。
(在阅读时请参考下面的视觉图)
1️⃣ 双编码器
双编码器(向量搜索的支柱)分别处理查询和文档。
- 文档嵌入是预先计算的
- 查询在搜索时进行嵌入
这使得双编码器非常适合初始检索:
- 极其快速
- 可扩展
- 缺少重要的上下文信息
2️⃣ 交叉编码器
交叉编码器采用完全不同的重排序方法。
它们将查询和每个文档作为一个单元进行处理。
- 将查询与文档结合([CLS] 查询 [SEP] 文档 [SEP])
- 一起通过模型运行以实现完全的交叉注意
这使得交叉编码器非常适合第二阶段:
- 捕捉语义关系以提高准确性
- 但对于大型集合来说速度较慢且资源消耗大
现在,如果我们能结合两者的优点呢!
3️⃣ ColBERT
ColBERT 将交叉编码器的力量与双编码器的可扩展性结合在一起。
- 分别编码查询和文档
- 创建交互矩阵,计算所有查询-文档令牌对之间的相似性分数
- 对每个查询令牌在文档令牌中取最大分数
- 将最大分数相加以获得最终匹配分数
_____
这就是总结!
如果你觉得这很有启发性,请与你的网络分享。
找到我 → @akshay_pachaar ✔️
获取更多关于 LLM、AI 代理和机器学习的见解和教程!

46.68K
热门
排行
收藏