惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
G
Google Developers Blog
H
Help Net Security
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
D
Docker
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
博客园 - 司徒正美
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
斯坦福这节课讲清楚了 LLM 做 RAG 所有最重要的问题 - 少数派
2024-09-05 · via 少数派

这节课就是传说中的 Stanford CS 25 中的一节讲座 < Retrieval Augmented Language Models >。授课人就是 RAG 论文的作者之一 Douwe Kiela,课程中他分享了一个检索增强语言模型的架构图,其实就是关于 LLM (大语言模型) 如何做 RAG (检索增强生成) 的框架。

检索增强语言模型的架构图及各环节最关键的问题

这张图重要到让我觉得,LLM 做 RAG 只要记住这一张图就够了。所有相关概念和工程实践中的权衡,全都涵盖在这张图的架构和问题中了。

这个架构主要包括 input、prompt、通过 retriever 检索增强生成的 context,然后把这三部分一起输入给 generator 即模型,最终输出 output 作为结果。

检索增强语言模型的架构图(包括 reranker )

1️) input 和 prompt 的区别和联系

input 可理解为既包含 system prompt,又包含用户输入的检索范围的指向,而 prompt 则强调用户输入的指令。

  • 以公司知识库 RAG 举例,比如用户输入 chatbot 的内容为"检索公司2023年的财务数据并生成总结报告",其中"公司2023年的财务数据"是对公司知识库检索范围的指向,应理解为 input 的一部分,而"检索并生成总结报告"则是指令,应理解为 prompt。

2️) retriever 的作用机制

retriever 的作用机制,我理解类似于在图书馆借书的过程,提供书名 (query) - 系统查找图书编号 (query编码) - 对应书架书籍编号 (docs编码) - 找到并借出图书 (context)。

  • 接着上文公司知识库的例子,从 input 获取 query (如"2023年资产负债表, 2023年利润表, 2023年现金流量表"),对应的 query 编码 ("2023年资产负债表, 2023年利润表, 2023年现金流量表"的向量化表达) 在 docs 编码 (公司知识库所有文本的向量化表达) 中检索匹配,提取匹配的部分作为 context (涉及公司2023年财务数据的文本)。
  • 其中 query 和 input 的关系,我想到两种可能性,一种是直接把 input 作为 query,另一种是模型基于 input 生成的 query,架构图简化表达了。

3️) reranker

retriever 和 context 之间可加一步 reranker 架构,对检索结果按特定规则进行重新排序。reranking 的机制既可通过模型判断,也可在模型基础上预设特定规则。

  • 比如根据员工职级限制其可获取的企业知识库信息范围。

2 retrieve:RAG 的核心环节

目前工程实践上,大家把优化的重点基本都放在了 retrieve 环节里,这里面涉及三个重要的问题:

1️) how and what do I retrieve

从传统的相似性检索、文本检索,到目前最常用的依托于 embedding 的语义检索,大家在实践中仍在不断迭代。Kiela 后面也提到有研究希望把整个 retriever 过程做成一个模型,他也在课程中构想未来应该把 retriever 的训练也纳入到 LLM 的训练架构中。

2️) When to retrieve

一般就两种思路。一种是在获得检索范围后即 retrieve,另一种是让模型判断何时 retrieve。

3️) How to encode

如何编码也直接影响了如何检索的过程。

3 其他问题

1️) how to pre-process

实际上强调就是 input 要包含 system prompt,可设定角色、技能、任务、工作流、限制条件等。

2️) how to prompt

涉及提示词工程的方法论。

3️) how to pass context

可以把 context 作为 prompt 的一部分以文本形式输入,也可通过代码的方式代入。

4️) how to post-process

比如格式化输出的处理,如固定输出 json 格式,或固定在末尾输出 reference 列表等。

5️) how to verify

指的是如何验证 output 的效果或质量,比如验证 output 与知识库的相关性、准确性等。

RAG 2.0 概念首次由 Kiela 提出,目前他所创立的 Contextual AI 公司已落地 RAG 2.0

4 RAG 整体架构的审视框架

最后,还有关于 RAG 整体架构的审视框架:

1️) How to optimize

各环节哪些地方可以优化。架构中已经列出的问题都是思考的重点。

2️) How to learn

这里的 learn 应该指的是机器学习的 learn,探讨各环节从 software 1.0 的静态架构向机器学习和 software 2.0 的演进。

3️) how to scale

如何应对规模化的问题。

  • 比如关于知识库如何 chunk、何时编码,在知识库过大时就不适合提前预处理好 chunk 和编码。或者大量用户同时 prompt 该如何应对。

小结

今天上半年判断过2024年会是 RAG 应用爆发的一年,自己在 2B 业务中也涉及 RAG 工程的落地,所以花了些精力来学习这节课。以上内容夹杂了不少自己的个人理解,欢迎批评指正,一起交流学习。

注:

  1. Stanford CS25 V4 2024春季课程
  2. Stanford CS25 V3: Retrieval Augmented Language Models 
  3. RAG论文原文<Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks> 
  4. OpenAI text-embedding-3 models
  5. OpenAI text-embedding-ada-002 model
  6. Software 2.0 by Andrej Karpathy
  7. Kiela在讲这节课几个月后在其创立的Contextual AI正式推出RAG 2.0