RAG从入门到精通系列3:Routing(路由)

LLM(Large Language Model,大型语言模型)是一个功能强大的新平台,但它们并不总是使用与我们的任务相关的数据或者是最新的数据进行训练。

RAG(Retrieval Augmented Generation,检索增强生成)是一种将 LLM 与外部数据源(例如私有数据或最新数据)连接的通用方法。它允许 LLM 使用外部数据来生成其输出。

要想真正掌握 RAG,我们需要学习下图所示的技术(技巧):

图片

我们从《RAG从入门到精通系列2:Query Translation(查询翻译)》中学习了 Query Translation,在本文中我们将进入下一个节点:Routing(路由)。

图片

Routing 是指根据用户的查询内容,智能地选择最适合的检索路径或推理逻辑,以更高效地获取答案。这种动态选择的过程在多数据源、多检索器或多任务场景下尤为重要,能够显著提升系统的性能和准确性。

Routing 在 RAG 中的实现类型:

  • Logical Routing(逻辑路由)

  • Semantic Routing(语义路由)

Logical Routing  

    • 基于明确的规则或分类模型对查询进行分流。例如,将查询分类到不同的数据库、知识库或 API。

    • 适用于结构化问题或明确的数据源场景。

    图片

    首先我们定义了 python_docs、js_docs 和 golang_docs 这三个数据源:

    图片

    通过使用 with_structured_output,你可以将模型的生成结果格式化成特定的结构化数据格式(如 JSON 或字典)。

    图片

    然后我们定义了一个根据用户问题中的编程语言选择数据源的 prompt:

    图片

    最后我们组成了一个 router chain:

    图片

    router 可以根据用户问题中的编程语言自动选择数据源。

    我们可以写一个简单的路由函数来选择数据源:

    图片

    Semantic Routing  

    • 基于向量化的语义相似性动态选择最优路径。例如,通过嵌入技术匹配最合适的 Prompt 或检索器。

    • 适用于模糊查询或需要灵活响应的场景。

    图片

    比如我们可以写两个用于回答不同领域(物理和数学)问题的 Prompt:

    图片

    然后我们的 Prompt 路由函数 prompt_router 根据用户的问题和每个 Prompt 的语义相似程度(在这里是余弦相似度)选择合适的 Prompt。

    图片

    AI大模型学习福利
    作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

    因篇幅有限,仅展示部分资料,需要的私信“66”.
     

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值