构建 Unravel:通过可视化学习 RAG

发布: (2026年2月16日 GMT+8 09:23)
8 分钟阅读
原文: Dev.to

Source: Dev.to

介绍

当我开始学习 Retrieval‑Augmented Generation (RAG) 时,我很快遇到了障碍。并不是因为缺少文档或教程,而是因为我看不清楚底层到底在发生什么。

RAG 系统现在随处可见:

  • 能够回答文档相关问题的聊天机器人
  • 能够理解上下文的搜索引擎
  • 在生成回复之前检索相关信息的助手

理解 它们是如何工作的——以及不同方法之间的权衡——出乎意料地困难。

大多数 RAG 教程的问题

典型的教程遵循以下模式:

  1. 安装向量数据库。
  2. 对文档进行切块。
  3. 生成嵌入向量。
  4. 查询索引。

代码能够运行,你得到结果,但仍有关键问题未得到解答:

  • 切块 – 为什么我的策略返回了 15 个切块而不是 20 个?
  • 重叠 – 我的切块之间有多少重叠,这真的有帮助吗?
  • 嵌入空间 – 它是什么样的?相似的文档是否聚集在一起?
  • 语义搜索 – 为什么它为我的查询返回了这些特定的切块?
  • 稀疏检索 vs. 密集检索 – BM25 与密集检索之间的结果有多大差异?

这些并非学术上的好奇心。每一个决定——切块大小、重叠比例、嵌入模型、检索策略——都会产生权衡,影响 准确性、速度和可靠性。然而大多数框架将这些细节抽象化,导致你在调参时并不了解其影响。

我的解决方案:Unravel

Instead of just implementing RAG pipelines, I built Unravel, a tool that visualizes every step of the pipeline in real‑time. As I learned each concept, I added it to the visualization. When I discovered a new retrieval strategy, I implemented it and compared it visually against the others.

Unravel 展示的内容

阶段可视化关键洞察
文档摄取PDF → 结构化元素(标题、段落、表格、图像)准确查看 RAG 系统所看到的内容;可切换 OCR,使扫描文本可搜索。
分块每个块的卡片,附带元数据(标记数、章节面包屑、来源页、重叠)并排比较层次式与混合式分块。
嵌入3D UMAP 投影,k-means 颜色编码,异常点高亮悬停即可预览块;观察查询向量出现并连接到结果。
检索BM25、稠密、混合(加权求和 / 逆序融合)、查询扩展、cross‑encoder 重排序比较相似度得分、来源位置以及返回的精确块。
导出可直接投入生产的 Python 代码,已内置所有设置可直接集成到您的应用中。

Unravel 改变我理解的方式

  • Chunk overlap 并非免费 – 重叠提升上下文连贯性,但会增加存储、嵌入成本以及检索噪声。可视化的重叠高亮让这种权衡变得直观。
  • Embedding models 表现各异 – 有些模型产生紧凑、分离良好的簇;而另一些则生成弥散、重叠的嵌入。3D 视图让你在执行任何查询之前就能挑选出最佳模型。
  • Hybrid retrieval 并非总是更好 – 密集检索在语义细微差别上表现突出;BM25 在关键词密集的查询上更胜一筹。并排的可视化比较展示了何时适合使用各自的方法。
  • Local LLMs 可行 – 在本地使用 Unravel 运行 Ollama 证明了构建高效 RAG 流水线不一定需要云 API;性能差距正在缩小。

Unravel 适合谁?

  • 学习者 想要了解 RAG 的机制,而不是仅仅复制粘贴代码。
  • 实验者 比较文档解析、嵌入模型或检索策略。
  • 开发者 需要快速原型并导出可投入生产的流水线。

所有处理均在 本地 完成:

  • 文档永不离开你的机器。
  • 向量存储在本地 Qdrant 实例中。
  • 你可以选择云端 LLM API 通过 OllamaLM Studio 使用本地模型。

Source:

未来路线图

虽然 Unravel 目前侧重于教育和实验,但我设想它将演变为一个完整的 RAG 评估平台。计划中的扩展包括:

  • 系统化评估指标 – 精确率、召回率、MRR、NDCG。
  • 真实数据集 与自动化基准测试。
  • 性能分析 – 延迟、吞吐量、每次查询成本。
  • 全栈 RAG 支持 – 语义缓存、HyDE、高级重排序、多向量检索。
  • 对比分析 跨嵌入模型、分块策略和检索方法。

目标:提供一个单一工具,帮助您 设计、调试、评估和部署 RAG 系统,充满信心。

想了解您的 RAG 流水线内部到底在发生什么吗?立即尝试 Unravel 吧。

Unravel – 可视化、测试和优化检索增强生成(RAG)

Unravel 帮助你 不仅了解 RAG,还能严格评估并优化你的实现,以用于生产环境。它是开源的,随时可用。

安装

pip install unravel
unravel

运行 unravel 会在浏览器中启动一个 Web 应用。

应用功能

界面会引导你完成五个步骤:

  1. 文档上传 – 添加你自己的文件或使用提供的示例。
  2. 块(Chunk)可视化 – 查看文档是如何被拆分成块的。
  3. 嵌入探索 – 检查向量表示及其相似度。
  4. 查询测试 – 对索引数据运行查询并查看结果。
  5. 代码导出 – 生成可直接运行的 Python 代码,用于你的流水线。

随意尝试不同的配置,观察更改如何在整个流水线中传播。

适用人群

  • 学习者 – 获得 RAG 概念和权衡的更清晰认识。
  • 构建者 – 基于证据做出明智决策,而不是凭猜测。

源码托管在 GitHub,欢迎贡献。期待了解你是如何使用 Unravel 的!

链接

  • GitHub:
  • PyPI:

关于作者

一位通过构建可视化工具学习 RAG 的开发者,决定分享他的旅程。

0 浏览
Back to Blog

相关文章

阅读更多 »

Gemini 3.1 Pro 已在 AI Gateway 上线

2026年2月19日 · 1分钟阅读 Gemini 3.1 Pro Preview 现已在 AI Gateway 上。 Google 的 Gemini 3.1 Pro Preview 可通过 AI Gateway 获得。 此发布带来了质量改进……