Skip to content

2.4 2023.3: GPT-4 / Claude — 能力跃升

2023 年 3 月 14 日,OpenAI 发布了 GPT-4 [1]。同月,Anthropic 发布了 Claude(初代)[2]。这是 LLM 能力的一次质变——不只是「更聪明」,而是开始具备看图调用工具的能力。

text
┌─────────────────────────────────────────────────────────────────────┐
│  2023.3: GPT-4 / Claude — 能力跃升                                   │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    ┌──────────────┐     ┌─────────────────┐     ┌──────────────┐   │
│    │   文字输入    │     │                 │     │   文字输出    │   │
│    │      +       │ ──▶ │     GPT-4       │ ──▶ │      +       │   │
│    │   图片输入    │     │                 │     │   函数调用    │   │
│    └──────────────┘     └─────────────────┘     └──────────────┘   │
│                                │                                    │
│                                ▼                                    │
│                    ┌───────────────────────┐                       │
│                    │  🆕 多模态(能看图了)  │                       │
│                    │  🆕 Function Call     │                       │
│                    │  🆕 更大的 Context     │                       │
│                    │  🆕 更强的推理能力     │                       │
│                    └───────────────────────┘                       │
│                                                                     │
│    ✅ 能看图片      ✅ 能调用外部工具      ✅ Context 8K → 32K       │
│    ✅ 推理能力强    ✅ 幻觉大幅减少        ✅ 代码能力显著提升        │
│                                                                     │
│    ❌ 仍然无状态    ❌ 仍然有知识截止      ❌ 价格贵(是 GPT-3.5 的 20 倍)│
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

GPT-4 vs GPT-3.5 的能力差距

GPT-4 发布时,OpenAI 展示了一组惊人的数据 [1:1]

考试GPT-3.5GPT-4
律师资格考试 (Bar Exam)后 10%前 10%
SAT 数学70th percentile89th percentile
GRE 写作4.0/6.04.0/6.0
AP 生物3/55/5

从「后 10%」跳到「前 10%」,这不是渐进式改进,而是质变。

2.4.1 多模态:不只是文字了

「多模态」(Multimodal)的意思很简单:模型不再只能处理文字,还能处理图片

GPT-4V(Vision)是 2023 年 9 月正式开放的 [3],但 GPT-4 发布时就已经展示了这个能力。经典演示是给它看一张手绘草图,它能直接生成对应的网页代码。

text
【多模态的实际用途】

开发场景:
  - 截图报错信息,让 AI 直接分析
  - 拍摄白板上的架构图,让 AI 转成文字描述
  - 上传 UI 设计稿,让 AI 生成前端代码

物联网场景:
  - 拍摄接线图,让 AI 检查是否正确
  - 上传设备面板截图,让 AI 解读状态
  - 拍摄现场部署照片,让 AI 识别问题

这对开发者来说是巨大的效率提升——以前你需要把图片里的内容手动打成文字描述,现在直接截图丢进去就行。

概念英文解释为什么重要
多模态Multimodal [3:1]模型能同时处理文字、图片等多种输入扩展了 AI 的应用场景
视觉语言模型Vision-Language Model (VLM)能「看图说话」的模型GPT-4V、Claude 3 都属于此类

2.4.2 Function Call:从「回答问题」到「执行动作」

2023 年 6 月 13 日,OpenAI 为 GPT-4 和 GPT-3.5 加入了 Function Call 功能 [4]。这是一个关键转折点——模型不再只是「回答问题」,而是可以「执行动作」

在这之前,LLM 只能输出文字。你问它「今天天气怎么样」,它只能基于训练数据猜测,或者说「我无法获取实时信息」。

有了 Function Call 之后:

text
【没有 Function Call】

用户:今天北京天气怎么样?
AI:抱歉,我无法获取实时天气信息。我的知识截止于 2023 年...


【有 Function Call】

用户:今天北京天气怎么样?

AI(内部决策):这个问题需要实时数据,我应该调用天气 API
AI(输出):{
  "function": "get_weather",
  "arguments": { "city": "北京" }
}

系统:调用天气 API,返回结果
AI:今天北京晴,气温 15-23°C,空气质量良好。

Function Call 的工作原理

text
┌─────────────────────────────────────────────────────────────────────┐
│  Function Call 工作流程                                              │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  1. 开发者定义可用函数                                                │
│     ┌─────────────────────────────────────────────────────────┐    │
│     │ functions: [                                            │    │
│     │   { name: "get_weather", params: { city: string } },    │    │
│     │   { name: "search_docs", params: { query: string } },   │    │
│     │   { name: "send_email", params: { to, subject, body } } │    │
│     │ ]                                                       │    │
│     └─────────────────────────────────────────────────────────┘    │
│                              │                                      │
│                              ▼                                      │
│  2. 用户提问                                                         │
│     "帮我查一下北京的天气,然后发邮件告诉老板"                          │
│                              │                                      │
│                              ▼                                      │
│  3. 模型决策:需要调用哪些函数?                                       │
│     → get_weather({ city: "北京" })                                 │
│     → send_email({ to: "boss@...", subject: "天气", body: "..." })  │
│                              │                                      │
│                              ▼                                      │
│  4. 系统执行函数,返回结果                                            │
│                              │                                      │
│                              ▼                                      │
│  5. 模型整合结果,生成最终回复                                         │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

为什么 Function Call 是 Agent 的基础?

后面我们会讲到 Cursor、Claude Code 这些工具。它们能帮你读文件、写代码、运行命令——这些都是 Function Call 的应用。

  • 读文件 = 调用 read_file 函数
  • 写文件 = 调用 write_file 函数
  • 运行命令 = 调用 execute_command 函数
  • 搜索代码 = 调用 search_codebase 函数

没有 Function Call,就没有 Agent。这就是为什么 2023 年 6 月是 AI 编程的一个分水岭。

概念英文解释为什么重要
Function CallFunction Calling [4:1]模型输出结构化的函数调用请求Agent 能「执行动作」的基础
工具使用Tool Use更通用的说法,包括 Function CallAnthropic 称之为 Tool Use [5]

2.4.3 RAG:让 AI「有据可查」

LLM 有两个根本性问题:

  1. 知识截止:训练数据有截止日期,不知道「今天发生了什么」
  2. 幻觉:当不确定时,会一本正经地编造

RAG(Retrieval-Augmented Generation,检索增强生成) 是解决这两个问题的关键技术 [6]

RAG 的核心思想

「与其让模型记住所有知识,不如在需要时去查。」

这就像开卷考试 vs 闭卷考试的区别——RAG 让 AI 从「凭记忆回答」变成「先查资料再回答」。

text
┌─────────────────────────────────────────────────────────────────────┐
│  RAG 工作流程                                                         │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  【没有 RAG】                                                         │
│                                                                     │
│    用户问题 ──────────────────────────▶ LLM ──────▶ 回答              │
│                                        │                            │
│                                        │ (只能靠训练时的记忆)          │
│                                        │                            │
│                                        ▼                            │
│                                   可能产生幻觉                        │
│                                                                     │
│  【有 RAG】                                                           │
│                                                                     │
│    用户问题                                                           │
│        │                                                            │
│        ▼                                                            │
│    ┌──────────────┐                                                 │
│    │   检索器      │  ← 「这个问题需要查什么资料?」                    │
│    │  (Retriever) │                                                 │
│    └──────┬───────┘                                                 │
│           │                                                         │
│           ▼                                                         │
│    ┌──────────────┐                                                 │
│    │   知识库      │  ← 文档、数据库、网页、代码库...                   │
│    │ (Knowledge   │                                                 │
│    │    Base)     │                                                 │
│    └──────┬───────┘                                                 │
│           │                                                         │
│           ▼                                                         │
│    ┌──────────────┐                                                 │
│    │  相关文档片段  │  ← 检索到的 Top-K 结果                           │
│    └──────┬───────┘                                                 │
│           │                                                         │
│           ▼                                                         │
│    ┌────────────────────────────────────────┐                       │
│    │               LLM                       │                       │
│    │                                         │                       │
│    │  Context = 用户问题 + 检索到的文档        │                       │
│    │                                         │                       │
│    └─────────────────┬───────────────────────┘                       │
│                      │                                              │
│                      ▼                                              │
│                 有据可查的回答                                        │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

RAG 的历史背景

RAG 的概念由 Facebook AI Research(现 Meta AI)在 2020 年提出 [6:1]。论文标题是《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》——用检索增强生成来处理知识密集型任务。

当时这篇论文的影响有限,因为 2020 年的 LLM 还不够强。但到了 ChatGPT 时代,RAG 突然变得极其重要——因为大家发现,光靠增大模型参数解决不了「知识更新」和「领域专业性」的问题

为什么 RAG 比「重新训练」更实用?

方法成本时效性可控性
重新训练模型极高(数百万美元)慢(数周到数月)低(无法精确控制学到什么)
微调(Fine-tuning)高(数千到数万美元)中等(数天)中等
RAG低(只需维护知识库)实时(随时更新文档)高(精确控制信息来源)

RAG 的技术细节

RAG 系统的核心是向量检索。简单说:

  1. Embedding(嵌入):把文本转换成「向量」——一串数字,表示文本的「语义位置」
  2. 向量数据库:存储所有文档的向量,支持快速相似度搜索
  3. 相似度匹配:用户问题也转成向量,找到「语义最接近」的文档
text
┌─────────────────────────────────────────────────────────────────────┐
│  向量检索原理(简化版)                                                │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    文档入库阶段                                                       │
│    ┌──────────────────────────────────────────────────────────────┐│
│    │                                                              ││
│    │  "Python 是一种编程语言"  ──▶  [0.12, 0.85, 0.33, ...]       ││
│    │  "JavaScript 用于网页开发" ──▶  [0.15, 0.82, 0.41, ...]       ││
│    │  "今天天气很好"          ──▶  [0.91, 0.12, 0.08, ...]       ││
│    │                                    │                        ││
│    │                                    ▼                        ││
│    │                            向量数据库存储                     ││
│    │                                                              ││
│    └──────────────────────────────────────────────────────────────┘│
│                                                                     │
│    检索阶段                                                          │
│    ┌──────────────────────────────────────────────────────────────┐│
│    │                                                              ││
│    │  用户问题: "Python 怎么学?"                                   ││
│    │                    │                                        ││
│    │                    ▼                                        ││
│    │            [0.11, 0.87, 0.35, ...]  (问题向量)               ││
│    │                    │                                        ││
│    │                    ▼                                        ││
│    │            计算与所有文档的「距离」                            ││
│    │                    │                                        ││
│    │                    ▼                                        ││
│    │  最相似: "Python 是一种编程语言" (距离: 0.03)  ✅             ││
│    │  次相似: "JavaScript 用于网页开发" (距离: 0.15)               ││
│    │  不相关: "今天天气很好" (距离: 0.89)                          ││
│    │                                                              ││
│    └──────────────────────────────────────────────────────────────┘│
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

主流向量数据库

名称特点适用场景
Pinecone托管服务,开箱即用快速上手,不想自己运维
Weaviate开源,支持多种模态需要灵活定制
Milvus开源,高性能大规模生产环境
Chroma轻量级,Python 友好本地开发、原型验证
pgvectorPostgreSQL 扩展已有 PostgreSQL 的团队

RAG 在开发工具中的应用

你可能没意识到,但你每天用的 AI 编程工具,核心就是 RAG:

工具RAG 应用知识库
Cursor@codebase 搜索你的代码库
Claude Code代码搜索、文件读取当前项目文件
GitHub Copilot上下文感知补全当前文件 + 相关文件
ChatGPT Search联网搜索互联网
Perplexity实时检索 + 引用互联网 + 学术论文

当你在 Cursor 里说「帮我找到所有处理用户认证的代码」,它做的事情就是:

  1. 把你的问题转成向量
  2. 在代码库的向量索引中搜索
  3. 找到最相关的代码片段
  4. 把这些片段塞进 Context,让 LLM 基于真实代码回答

RAG 的局限性

RAG 不是万能的,它有几个常见问题:

问题说明缓解方法
检索质量找到的文档可能不相关优化 Embedding 模型、调整检索策略
Context 限制检索太多文档会超出 Context Window分块(Chunking)、重排序(Reranking)
信息整合多个文档的信息可能冲突让模型标注信息来源
延迟检索步骤增加响应时间缓存、预计算

Chunking(分块)策略

把长文档切成小块是 RAG 的关键步骤。切得不好,检索效果会很差:

text
【不好的分块】—— 按固定字数切割,切断了语义

  "...这个函数用于处理用户登"  |  "录,它会验证密码并生成..."
              ↑                            ↑
         第 1 块结束                    第 2 块开始

  → 检索「用户登录」时可能两块都找不到


【好的分块】—— 按语义边界切割

  "这个函数用于处理用户登录,它会验证密码并生成 JWT token。"

  → 完整的语义单元,检索效果好

常见的分块策略:

  • 按段落:适合结构清晰的文档
  • 按句子 + 重叠:每块包含前一块的最后几句,保持上下文
  • 按代码结构:函数、类、模块为单位
  • 语义分块:用模型判断语义边界

我的理解

RAG 本质上是在说:「LLM 的强项是理解和推理,不是记忆。让它专注于强项,记忆的事交给检索系统。」

这和人类的工作方式很像——好的专家不是「什么都记得」,而是「知道去哪里查,查到后能理解和应用」。

概念英文解释为什么重要
RAGRetrieval-Augmented Generation [6:2]先检索相关文档,再让 LLM 基于文档生成回答解决知识截止和幻觉问题
EmbeddingEmbedding [7]把文本转换成向量表示RAG 检索的基础
向量数据库Vector Database专门存储和检索向量的数据库支撑大规模 RAG 系统
ChunkingChunking把长文档切分成适合检索的小块影响 RAG 检索质量

[!TODO] 素材准备

  • [ ] RAG 原理示意图(可参考 LangChain 文档)
  • [ ] 向量检索可视化(二维空间中的语义聚类)
  • [ ] Cursor @codebase 功能演示截图

2.4.4 Claude 的入场

2023 年 3 月 14 日,就在 GPT-4 发布的同一天,Anthropic 发布了 Claude [2:1]。这家公司由前 OpenAI 员工创立,包括 GPT-3 论文的第一作者 Dario Amodei。

Claude 的差异化定位是更安全、更诚实。它更愿意说「我不知道」,而不是编造答案。这在当时是一个明显的风格差异。

到 2024 年 3 月,Claude 3 系列发布,Context Window 直接拉到 200K tokens——是 GPT-4 的 6 倍多。这意味着你可以把一整本书丢进去让它分析。

竞争格局的变化

时间格局
2022.11OpenAI 一家独大(ChatGPT)
2023.3Anthropic 入场(Claude),双雄对峙
2023.12Google Gemini 发布,三足鼎立
2024开源模型崛起(Llama、Mistral),百花齐放
2025.1DeepSeek R1 发布,中国力量入场

2.4.5 我的亲历视角:Prompt 整理期

作者观点

以下是我个人在这段时期的使用经历。

说实话,这段时期我在代码方面的工作不多,所以没有太强的「GPT-4 比 GPT-3.5 强多少」的直接体感。

但我做了一件事:开始整理常用的 prompt

这个阶段另一个明显的转变是:我渐渐只用 ChatGPT Search,不再用传统搜索引擎了

以前查资料的流程是:Google 搜索 → 点进去 → 发现不对 → 换个关键词 → 再搜 → 再点。现在变成:直接问 ChatGPT → 它帮你整合多个来源 → 一次性给你答案。

这个习惯转变,其实就是后面 Part 4 会讲的「Context Engineering」的雏形——你开始意识到,如何组织信息给 AI,比单纯「问问题」更重要

[!TODO] 素材准备

  • [ ] GPT-4 发布时的官方演示截图(手绘草图生成网页)
  • [ ] Function Call 工作原理示意图
  • [ ] GPT-4 vs GPT-3.5 考试成绩对比图
  • [ ] 补充「我的常用 prompt」例子

参考资料


  1. 🔬 L1 | GPT-4 | OpenAI - OpenAI 于 2023 年 3 月 14 日发布 GPT-4。 ↩︎ ↩︎

  2. 🔬 L1 | Introducing Claude | Anthropic - Anthropic 于 2023 年 3 月发布 Claude。 ↩︎ ↩︎

  3. 🔬 L1 | GPT-4V(ision) system card | OpenAI - GPT-4 视觉能力于 2023 年 9 月正式开放。 ↩︎ ↩︎

  4. 🔬 L1 | Function calling | OpenAI - OpenAI 于 2023 年 6 月 13 日发布 Function Calling 功能。 ↩︎ ↩︎

  5. 🔬 L1 | Tool use | Anthropic - Anthropic 的工具使用文档,功能类似 OpenAI 的 Function Call。 ↩︎

  6. 🔬 L1 | Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks | arXiv - Facebook AI Research(现 Meta AI)2020 年发布的 RAG 原始论文,Patrick Lewis 等人。首次提出将检索系统与生成模型结合的范式。 ↩︎ ↩︎ ↩︎

  7. 📝 L3 | What are embeddings? | Vicki Boykis - Vicki Boykis 的深度长文,详解 Embedding 的原理、历史和应用,被广泛推荐为入门必读。另见 Embeddings | OpenAI↩︎

基于 VitePress 构建