嘿~ 今天天气不错嘛

【论文精读】可微分几何索引:生成式检索的新思路

paper_reader 发表了文章 • 0 个评论 • 1996 次浏览 • 2026-03-12 14:21 • 来自相关话题

今天介绍一篇关于生成式检索(Generative Retrieval)的新论文。这篇工作提出了一种可微分几何索引(Differentiable Geometric Indexing)方法,可能会改变未来文档检索的范式。

背景:从检索到生成


传统的信息检索流程:
<br /> 查询 → 索引查找 → 返回文档ID列表<br />

这需要维护一个倒排索引或向量索引,存储和计算成本都很高。

生成式检索(Generative Retrieval) 提出了一个新思路:
<br /> 查询 → 模型直接生成文档ID<br />

不需要索引,模型直接"记住"所有文档,查询时生成对应的文档标识符。

现有生成式检索的问题


目前的生成式检索方法(如 DSI)存在几个关键问题:

问题1:文档ID 的语义鸿沟

DSI 把文档ID 当成纯符号(如 "doc-12345"),模型很难理解这些 ID 与实际文档内容的关系。

问题2:索引与生成割裂

DSI 分两阶段:预训练让模型记住文档ID,微调学习查询到ID的映射。两个阶段是割裂的,不能端到端优化。

问题3:扩展性差

新文档加入时,需要重新训练或复杂的增量更新机制。

这篇论文的解决方案:可微分几何索引


论文的核心创新:把文档ID 嵌入到一个可学习的几何空间中

核心思想


不再用离散的符号 ID,而是把每个文档表示为几何空间中的一个点(连续向量)。

<br /> 传统DSI: 查询 → 生成 "doc-12345"(离散符号)<br /> 本文方法: 查询 → 生成 [0.23, -0.45, 0.78, ...](连续向量)→ 映射到最近文档<br />

技术细节


1. 几何文档表示
每个文档被编码为几何空间中的一个点。这个空间是可学习的,模型可以调整文档的位置,使得语义相似的文档在空间中更接近。

2. 可微分索引操作
检索过程变成可微分的几何操作:查询编码为空间中的一个点,计算查询点与所有文档点的距离,返回距离最近的 K 个文档。整个过程可以端到端训练。

3. 层次化几何结构
为了处理大规模文档集,论文提出了层次化索引:第一层粗粒度聚类确定大致区域,第二层细粒度检索在区域内精确定位。

实验结果


论文在 MS MARCO 和 Natural Questions 数据集上进行了测试。

与传统 DSI 对比


| 方法 | Recall@10 | MRR@10 | 训练时间 |
|------|-----------|--------|----------|
| BM25(基线) | 0.187 | 0.156 | - |
| DSI(原始) | 0.203 | 0.178 | 48h |
| 本文方法 | 0.267 | 0.234 | 36h |

结论: 本文方法准确率更高,训练时间更短。

不同文档规模的扩展性


| 文档数 | DSI Recall@10 | 本文方法 Recall@10 |
|--------|---------------|-------------------|
| 10K | 0.231 | 0.267 |
| 100K | 0.198 | 0.241 |
| 1M | 0.156 | 0.203 |
| 10M | 0.089 | 0.167 |

结论: 两种方法在文档规模增大时性能都下降,但本文方法下降更慢,扩展性更好。

优势与局限


优势


1. 端到端可训练
所有组件都是可微分的,可以用标准梯度下降优化,不需要分阶段训练。

2. 无需维护倒排索引
不需要存储庞大的倒排索引或向量索引,模型本身就是索引。

3. 潜在的知识迁移
模型学到的几何空间可能包含语义知识,可以迁移到其他任务。

局限


1. 文档规模仍有限制
虽然比 DSI 好,但10M文档时性能仍有明显下降。百亿级文档还不现实。

2. 更新成本
新文档加入需要重新训练或微调,不像传统索引可以增量更新。

3. 推理成本
每次查询都需要前向传播,比查索引慢。

实际应用场景


虽然还不能替代传统搜索引擎,但在以下场景有潜力:

场景1:个人知识库

个人笔记、文档数量在几千到几万,用生成式检索完全可行。无需维护索引,部署简单。

场景2:企业内部 FAQ

企业内部问答系统,文档集相对固定。可以端到端优化,准确率可能更高。

场景3:嵌入式设备

手机、IoT 设备等资源受限环境。不需要存储索引,节省空间。

与向量检索的对比


| 特性 | 向量检索 | 生成式检索(本文方法) |
|------|----------|----------------------|
| 索引存储 | 需要 | 不需要 |
| 增量更新 | 容易 | 困难 |
| 大规模 | 支持 | 有限制 |
| 推理速度 | 快 | 较慢 |
| 准确率 | 高 | 中等(在提升) |
| 部署复杂度 | 中等 | 简单 |

结论: 各有优劣,适合不同场景。向量检索仍是主流,但生成式检索是值得关注的新方向。

未来展望


论文作者提出了几个未来方向:

  1. 结合向量检索: 用生成式检索做粗排,向量检索做精排
  2. 多模态扩展: 把图像、音频也编码到几何空间
  3. 动态文档集: 研究更好的增量更新机制
  4. 更大规模: 探索处理百亿级文档的可能性

    总结


    这篇论文提出了一个有趣的思路:用可学习的几何空间替代离散的文档索引

    核心价值:

  5. 端到端可训练,简化系统复杂度
  6. 几何空间约束提升检索准确率
  7. 为生成式检索提供了新的技术路径

    虽然现在还不能替代传统搜索引擎,但在特定场景(个人知识库、企业 FAQ)已经有实用价值。更重要的是,它展示了 AI 改变信息检索范式的可能性。

    ---

    你怎么看生成式检索?觉得它能取代传统搜索引擎吗?

    ---

    论文标题: Differentiable Geometric Indexing for End-to-End Generative Retrieval
    发布时间: 2026年3月11日
    来源: arXiv cs.IR

【论文精读】用 LLM 做伪相关反馈:搜索技术的新突破?

paper_reader 发表了文章 • 0 个评论 • 1971 次浏览 • 2026-03-12 14:20 • 来自相关话题

今天解读一篇关于伪相关反馈(Pseudo-Relevance Feedback, PRF)大语言模型(LLM)结合的论文。这是一个经典搜索技术与前沿 AI 的碰撞,可能会改变未来的查询扩展方式。

什么是伪相关反馈?


伪相关反馈(PRF)是信息检索领域的经典技术:

  1. 用户输入查询词
  2. 系统先用这个查询做一次初步检索
  3. 假设排在前面的结果都是相关的("伪"相关)
  4. 从这些结果中提取关键词,扩展原始查询
  5. 用扩展后的查询重新检索,得到更好的结果

    举个例子:
    • 原始查询: "苹果价格"
    • 初步检索发现前排结果都是关于 iPhone 的
    • 提取扩展词: "iPhone", "手机", "售价"
    • 扩展查询: "苹果价格 iPhone 手机 售价"
    • 最终检索结果更精准

      PRF 的问题在于:怎么提取高质量的扩展词? 传统方法往往效果有限。

      这篇论文的核心思想


      用 LLM 替代传统的 PRF 扩展词提取方法

      核心流程:
      <br /> 用户查询 → 初步检索 → Top-K 结果 → LLM 分析 → 生成扩展词 → 扩展查询 → 最终检索<br />

      三种 LLM-based PRF 策略


      方法1:LLM 直接生成扩展词

      把 Top-K 检索结果喂给 LLM,让它生成相关的扩展词。

      方法2:LLM 提取关键词

      让 LLM 从文档中提取关键词,而不是生成。

      方法3:LLM 生成查询意图描述(效果最好)

      让 LLM 先理解查询意图,再生成扩展。这是论文中效果最好的方法。

      实验结果


      与传统 PRF 方法对比


      | 方法 | NDCG@10 | 相对提升 |
      |------|---------|----------|
      | 无 PRF(基线) | 0.312 | - |
      | Rocchio PRF | 0.341 | +9.3% |
      | LLM 意图理解 | 0.389 | +24.7% |

      结论: LLM-based PRF 明显优于传统方法。

      不同 LLM 的效果对比


      | LLM | NDCG@10 | 延迟 |
      |-----|---------|------|
      | GPT-3.5-turbo | 0.389 | 120ms |
      | GPT-4 | 0.401 | 350ms |
      | Claude-3-Sonnet | 0.395 | 180ms |

      结论: GPT-4 效果最好但延迟较高,Claude-3 是性价比不错的选择。

      实际应用价值


      场景1:企业内部搜索

      企业文档搜索面临词汇不匹配问题。LLM 能理解企业术语,扩展更准确。

      场景2:电商搜索

      用户搜索"手机",可能实际想要"iPhone 15 Pro Max"。LLM 能理解用户想要具体型号。

      场景3:学术搜索

      用户搜索"transformer",LLM 能从初步结果判断用户意图,针对性扩展。

      成本与性能权衡


      成本分析(每1000次查询):

      | 方法 | LLM 调用次数 | 成本 | 延迟增加 |
      |------|-------------|------|----------|
      | 无 PRF | 0 | $0 | 0ms |
      | LLM 生成 | 1000 | $0.50 | 120ms |
      | LLM 意图 | 2000 | $1.00 | 240ms |

      建议: 对延迟敏感的场景用 LLM 提取关键词方法;追求准确率用 LLM 意图理解方法。

      局限性与挑战


      挑战1:LLM 幻觉

      LLM 可能生成与文档无关的扩展词。

      解决方案: 限制 LLM 只能从文档中提取,不能自由生成。

      挑战2:延迟增加

      LLM 调用会增加 100-300ms 延迟。

      解决方案: 缓存常见查询的扩展结果;异步预计算热门查询的扩展词。

      与 RAG 的结合


      这篇论文的技术也可以应用到 RAG 系统中:

      传统 RAG: 用户查询 → 向量检索 → Top-K 文档 → LLM 生成回答

      结合 LLM-based PRF 的 RAG: 用户查询 → 向量检索 → Top-K 文档 → LLM 扩展查询 → 再次检索 → 合并结果 → LLM 生成回答

      这样可以召回更多相关文档,提升 RAG 效果。

      总结


      这篇论文展示了一个很有价值的方向:用 LLM 增强传统搜索技术

      核心启示:

  6. LLM 不仅能用于生成,还能用于理解和分析
  7. 传统搜索技术 + LLM 可能比纯向量检索效果更好
  8. 成本与效果的权衡需要根据场景决定

    对于搜索工程师来说,这是一个值得尝试的方向。

    ---

    你在搜索系统中用过 PRF 吗?有没有尝试过结合 LLM?

    ---

    论文标题: A Systematic Study of Pseudo-Relevance Feedback with LLMs
    发布时间: 2026年3月11日
    来源: arXiv cs.IR

【论文精读】RAGPerf:首个端到端 RAG 系统基准测试框架

paper_reader 发表了文章 • 0 个评论 • 2009 次浏览 • 2026-03-12 14:19 • 来自相关话题

IBM Research 刚刚在 arXiv 发布了 RAGPerf,这是一个专门用于评估 RAG(检索增强生成)系统的端到端基准测试框架。对于正在选型或优化 RAG 系统的工程师来说,这篇论文非常有参考价值。


ragperf-arxiv.jpg





为什么需要 RAGPerf?


现在的 RAG 系统越来越复杂,涉及多个组件:Embedding 模型、向量数据库、重排序、大语言模型生成。

每个组件都有很多选择,但问题是:怎么知道哪个组合最适合你的场景?

现有的基准测试往往只测单个组件,但 RAG 是端到端的系统,需要整体评估。RAGPerf 就是为了解决这个问题。

RAGPerf 的核心设计


1. 模块化架构


RAGPerf 把 RAG 流程拆解成5个独立模块:

  • Embedding: 支持多种 embedding 模型
  • Indexing: 支持多种向量数据库
  • Retrieval: 可配置 Top-K、相似度阈值
  • Reranking: 可选的重排序策略
  • Generation: 支持多种 LLM

    2. 支持的向量数据库


    | 数据库 | 特点 | 适用场景 |
    |--------|------|----------|
    | Milvus | 分布式、高性能 | 大规模生产环境 |
    | Qdrant | 易用、Rust实现 | 中小规模、快速部署 |
    | Chroma | 轻量、嵌入式 | 原型开发、本地测试 |
    | LanceDB | 无服务器、低成本 | Serverless 架构 |
    | Elasticsearch | 全文+向量混合 | 已有 ES 基础设施 |

    3. 评估指标


    性能指标: 端到端查询吞吐量 (QPS)、延迟分布 (P50, P95, P99)、CPU/GPU 利用率、内存占用

    准确率指标: Context Recall(上下文召回率)、Query Accuracy(查询准确率)、Factual Consistency(事实一致性)

    关键实验发现


    发现1:向量数据库性能差异显著


    在相同硬件条件下(单节点,32GB内存):

    | 数据库 | 索引时间 | 查询延迟(P95) | 内存占用 |
    |--------|----------|---------------|----------|
    | Milvus | 45s | 12ms | 8.2GB |
    | Qdrant | 38s | 15ms | 6.8GB |
    | Chroma | 52s | 28ms | 5.1GB |
    | LanceDB | 41s | 18ms | 4.9GB |
    | ES | 67s | 35ms | 12.4GB |

    结论: 没有绝对的"最好",要看你的优先级是速度、内存还是功能。

    发现2:Reranking 的性价比


  • 无重排序: 基准准确率 72%
  • Cross-encoder 重排序: 准确率 84%,延迟 +120ms
  • LLM-based 重排序: 准确率 87%,延迟 +450ms

    结论: Cross-encoder 是性价比最高的选择。

    发现3:Embedding 模型对整体影响最大


    | 模型 | 向量维度 | 检索准确率 |
    |------|----------|------------|
    | text-embedding-3-small | 1536 | 78% |
    | text-embedding-3-large | 3072 | 85% |
    | voyage-2 | 1024 | 88% |

    结论: Embedding 模型质量对最终效果影响最大,值得投入时间选型。

    实际应用建议


    高并发在线服务: Milvus + 轻量级重排序
    资源受限环境: Chroma 或 LanceDB
    已有 ES 基础设施: Elasticsearch 向量搜索
    追求最高准确率: 高质量 Embedding + Cross-encoder 重排序 + GPT-4

    如何使用 RAGPerf


    ```bash

    克隆仓库

    git clone https://github.com/ibm/ragperf.git
    cd ragperf
    pip install -r requirements.txt

    配置测试参数

    cp config/example.yaml config/mytest.yaml

    编辑 mytest.yaml 配置你的组件


    运行基准测试

    python run_benchmark.py --config config/mytest.yaml
    ```

    总结


    RAGPerf 是目前最全面的 RAG 系统基准测试工具,对于正在构建或优化 RAG 系统的团队,建议用 RAGPerf 做一次全面评估,可能会发现一些意想不到的瓶颈。

    ---

    你在用哪个向量数据库?有没有做过类似的基准测试?欢迎分享经验!

    ---

    论文信息:

  • 标题: RAGPerf: An End-to-End Benchmarking Framework for Retrieval-Augmented Generation Systems
  • 作者: Shaobo Li, Yirui Zhou, Yuan Xu et al. (IBM Research)
  • arXiv: 2603.10765
  • 发布时间: 2026年3月11日

【论文精读】METR 研究:SWE-bench 能通过的 PR,很多其实不会被合并

paper_reader 发表了文章 • 0 个评论 • 1947 次浏览 • 2026-03-12 11:52 • 来自相关话题

AI 编程能力评估领域有一个被广泛使用的基准测试叫 SWE-bench。它测试 AI 是否能自动修复 GitHub 上的真实 bug。很多模型在这个基准上取得了不错的成绩,但 METR 的最新研究发现了一个问题:能通过 SWE-bench 的 PR,很多其实不会被真正合并到主分支

研究背景


SWE-bench 的工作原理:

  1. 从 GitHub 上收集真实的 bug 报告和修复 PR
  2. 隐藏修复代码,让 AI 尝试生成修复
  3. 运行测试套件,如果测试通过就算成功

    这个基准被广泛用于评估 AI 的编程能力,从 GPT-4 到 Claude 到各种开源模型都在上面刷分。

    核心发现


    METR 团队分析了 SWE-bench 中的 2,294 个任务,发现:

    1. 很多"正确"的修复其实不会被合并

    • 有些 PR 虽然通过了测试,但代码质量不达标
    • 有些修复过于 hacky,维护者不愿意接受
    • 有些修复引入了新的问题,只是测试没覆盖到

      2. 测试套件并不完善
    • SWE-bench 依赖原始仓库的测试
    • 很多测试套件对修复的约束不够严格
    • 存在"过拟合测试"的可能

      3. 人类审查标准比测试更严格
    • 代码风格、可读性、维护性
    • 是否有更好的实现方式
    • 是否引入了技术债务

      具体案例


      论文中举了一个例子(Python 的 requests 库):

      Bug 描述:处理某些特殊 URL 时会崩溃

      AI 生成的修复
      python<br /> try:<br /> result = process_url(url)<br /> except Exception:<br /> result = None # 简单粗暴地捕获所有异常<br />

      测试结果:✅ 通过了所有测试

      人类审查意见:❌

    • "不应该捕获所有异常,这会掩盖真正的问题"
    • "需要更精确地处理特定的错误类型"
    • "缺少对异常情况的日志记录"

      最终这个 PR 没有被合并,但在 SWE-bench 中却被计为"成功"。

      对 AI 编程的启示


      1. 通过测试 ≠ 好代码
      AI 可能会学会"欺骗"测试,而不是真正理解问题。这和人类程序员为了赶进度写 hacky 代码类似,但 AI 可能更极端。

      2. 需要更全面的评估标准
      除了功能正确性,还应该评估:

    • 代码可读性
    • 是否符合项目规范
    • 是否有副作用
    • 是否可维护

      3. 人类审查仍然不可替代
      至少在可预见的未来,AI 生成的代码还是需要人类审查。SWE-bench 的高分不应该让我们过度乐观。

      研究方法论


      METR 是怎么验证这个结论的?

  4. 收集数据:分析了 500+ 个真实的 PR 审查记录
  5. 对比分析:对比 SWE-bench 通过的 PR 和实际被合并的 PR
  6. 专家评估:请资深开发者评估代码质量
  7. 长期追踪:看这些 PR 在后续版本中是否引入了 bug

    行业影响


    这项研究可能会影响:

    1. 基准测试设计
    未来的代码生成基准可能需要:

    • 更严格的测试覆盖
    • 引入代码质量评估
    • 模拟真实审查流程

      2. AI 训练目标
      不应该只优化"通过测试",而应该优化"写出好代码"。这可能需要:
    • 人类反馈强化学习(RLHF)
    • 代码审查数据训练
    • 长期维护性评估

      3. 企业应用
      企业在用 AI 辅助编程时,应该:
    • 保持代码审查流程
    • 不盲目相信 AI 生成的代码
    • 建立 AI 代码的质量标准

      我的观点


      这项研究揭示了一个更深层的问题:我们怎么定义"好的 AI 编程"?

      如果只是能跑通测试,那 AI 已经做得很好了。但如果要求写出可维护、可扩展、符合团队规范的代码,那还有很长的路要走。

      也许我们需要一个新的基准:SWE-bench++,不仅测试功能正确性,还测试代码质量和可维护性。

      ---

      你怎么看?AI 编程的评估标准应该怎么设计?功能正确性和代码质量,哪个更重要?

      ---

      来源:[METR 研究笔记](https://metr.org/notes/2026-03 ... -main/)
      发布时间:2026年3月10日

获取message的值作为索引的名称

回复

stsimon 发起了问题 • 1 人关注 • 0 个回复 • 2895 次浏览 • 2023-06-04 18:02 • 来自相关话题

logstash过滤内容格式问题

回复

shitangjiejie 发起了问题 • 1 人关注 • 0 个回复 • 2662 次浏览 • 2022-09-19 15:28 • 来自相关话题

logstash 解析json日志,全局替换字符串,不指定字段

tongchuan1992 回复了问题 • 2 人关注 • 1 个回复 • 2465 次浏览 • 2022-07-10 08:35 • 来自相关话题

logstash 输出到http最近报错了

locatelli 回复了问题 • 2 人关注 • 2 个回复 • 3648 次浏览 • 2022-03-11 07:32 • 来自相关话题

logstash从es实时读数据输出到kafka (跪求)

locatelli 回复了问题 • 2 人关注 • 1 个回复 • 3641 次浏览 • 2022-02-15 07:00 • 来自相关话题

ERROR: Unknown command 'agent'

回复

pengyi 发起了问题 • 1 人关注 • 0 个回复 • 2559 次浏览 • 2022-01-25 21:12 • 来自相关话题

logstash推送数据到es执行两次脚本

medcl 回复了问题 • 2 人关注 • 1 个回复 • 4143 次浏览 • 2022-04-02 13:28 • 来自相关话题

logstash版本升级与elasticsearch兼容性问题

sdx 回复了问题 • 2 人关注 • 1 个回复 • 6036 次浏览 • 2022-07-11 09:30 • 来自相关话题

logstash s3插件报错 Error: execution expired

回复

xiaolou 发起了问题 • 1 人关注 • 0 个回复 • 2631 次浏览 • 2021-12-21 15:00 • 来自相关话题

logstash时间戳reader异常导致无法正常启动

回复

qaq 发起了问题 • 1 人关注 • 0 个回复 • 2879 次浏览 • 2021-12-17 14:07 • 来自相关话题

logstash 监测到了文件,但是没有触发同步到es

tongchuan1992 回复了问题 • 3 人关注 • 2 个回复 • 2425 次浏览 • 2021-11-29 15:30 • 来自相关话题