Skip to content

Part 2: AI 编程简史与核心概念 (35-40 min)

核心思路:沿着时间线,每引入一个里程碑就解释相关概念,并回答「为什么这个概念对开发者重要」

2.1 2020.5: GPT-3 发布 — 大语言模型是什么?

2020 年 5 月,OpenAI 发布论文《Language Models are Few-Shot Learners》[1],介绍了 GPT-3 模型。这个模型有 1750 亿个参数(parameters),是当时最大非稀疏语言模型的 10 倍、前代 GPT-2 的 100 多倍。同年 6 月,OpenAI 开放了 API 申请 [2]

这篇论文的核心发现是:把语言模型做大之后,它能在几乎不需要额外训练的情况下完成各种任务——翻译、问答、推理都行。这就是所谓的「少样本学习」(Few-shot Learning)。

从这里开始,我们说的「AI 编程」,更准确的说法其实是「大语言模型辅助编程」。

text
┌─────────────────────────────────────────────────────────────────────┐
│  2020: GPT-3 — 最原始的形态                                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    ┌──────────┐       ┌─────────────────┐       ┌──────────┐       │
│    │  Prompt  │ ───▶  │     GPT-3       │ ───▶  │ Response │       │
│    │  (输入)   │       │  (175B 参数)    │       │  (输出)   │       │
│    └──────────┘       └─────────────────┘       └──────────┘       │
│                              │                                      │
│                              ▼                                      │
│                    ┌─────────────────────┐                         │
│                    │ 训练数据 (截止日期)   │                         │
│                    │ 知识固定,无法更新    │                         │
│                    └─────────────────────┘                         │
│                                                                     │
│    ❌ 无状态(每次请求独立)    ❌ 无记忆(不记得上一轮对话)          │
│    ❌ 无网络(不能上网查资料)  ❌ 无工具(不能调用外部功能)          │
│    ❌ 纯文字(不能处理图片)    ❌ 单次交互(没有多轮对话 UI)         │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘
概念英文解释为什么重要
大语言模型Large Language Model (LLM)[1:1]不是「人工智能」,是一种特定的模型架构正确定位期望值
词元Token[3]模型的计费单位、理解单位理解成本和限制
概率预测Next-Token Prediction[4]本质是预测下一个词理解为什么会「胡说八道」
上下文窗口Context Window[5]模型一次能「看到」的文字量上限,包含提问和回复理解为什么会遗忘
无状态Stateless[6]每次请求都是全新开始,模型不「记得」你不要期待它学习你的偏好
知识截止Knowledge Cutoff[7]训练完成后,知识就固定了理解为什么不知道最新消息
训练成本Training Cost[8]GPT-3 训练一次据估算约 460 万美元理解为什么不能随便更新
按量计费Pay-per-Token[9]输入输出都按 token 计费,每次提问都重发历史理解成本结构

2.1.1 GPT-3 的使用方式

当时没有对话框,只有「文本补全」——你给开头,它预测后文:

text
输入(Prompt):
The capital of France is

输出(Completion):
Paris. Paris is the largest city in France and serves as the country's political, economic, and cultural center...

或者用于代码补全:

text
输入(Prompt):
// Function to calculate factorial
function factorial(n) {

输出(Completion):
  if (n <= 1) return 1;
  return n * factorial(n - 1);
}

ChatGPT(2022 年 11 月)才把这种能力包装成「对话」形式。

顺便一提,GPT-3 的 context window 只有 2K tokens——大概只能装 1500 个英文单词,聊个五六轮就满了。难怪当时 LLM 特别容易「失忆」。

2.1.2 Token 的体感

  • 100-300 tokens ≈ 一个普通函数
  • 400-500 tokens ≈ 一首《春江花月夜》(252 字)
  • 1K tokens ≈ 750 个英文单词 ≈ 500 个中文字
  • 1K-5K tokens ≈ 一个完整文件
  • 200K tokens ≈ Claude 3 的 context 上限 ≈ 一本《读库》
  • 3.8 亿 tokens ≈ 我上个月在 Claude Code 的用量

《葛底斯堡演说》272 词 = 324 tokens

《春江花月夜》252 字 = 352 tokens

对比可见:中文每字约 1.4 tokens,英文每词约 1.2 tokens。同样篇幅的内容,中文比英文多消耗约 10-20% 的 token。

2.1.3 Token 计费

各家模型价格对比(2025 年 12 月):

厂商模型输入输出
OpenAI[10]GPT-5$1.25$10
GPT-5 mini$0.25$2
GPT-5 nano$0.05$0.40
GPT-5 pro$15$120
Anthropic[11]Claude Sonnet 4.5$3$15
Claude Haiku 4.5$1$5
Claude Opus 4.5$5$25
DeepSeek[12]V3$0.28$0.42
阿里云[13]qwen-max¥24 (~$3.3)¥96 (~$13)
qwen-plus¥8 (~$1.1)¥20 (~$2.8)

(单位:$/百万 tokens,人民币按 $1 ≈ ¥7.2 换算)

2.2 2021.6: GitHub Copilot — 代码补全时代

2021 年 6 月 29 日,GitHub 发布了 Copilot 技术预览版 [14]。两个月后的 8 月 10 日,OpenAI 正式发布了背后的模型——Codex [15]。这是 GPT-3 的代码特化版本,在 179GB 的 Python 代码上进行了微调,数据来自 5400 万个公开的 GitHub 仓库。

这是 LLM 辅助编程真正意义上的起点。从这里开始,开发者的工作方式发生了根本性的变化:从「搜索答案」到「生成答案」

text
┌─────────────────────────────────────────────────────────────────────┐
│  2021: GitHub Copilot — 首次嵌入开发者工作流                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    ┌──────────────┐     ┌─────────────────┐     ┌──────────────┐   │
│    │     IDE      │     │     Codex       │     │   代码补全    │   │
│    │  (VSCode)    │ ──▶ │  (GPT-3 微调)   │ ──▶ │  (Tab 接受)   │   │
│    │  代码上下文   │     │   12B 参数      │     │              │   │
│    │  + 注释      │     └─────────────────┘     └──────────────┘   │
│    └──────────────┘            │                                    │
│           │                    ▼                                    │
│           │          ┌─────────────────────┐                       │
│           │          │ 训练数据: 179GB 代码  │                       │
│           │          │ 来自 5400 万 GitHub 仓库│                      │
│           │          └─────────────────────┘                       │
│           │                                                         │
│           ▼                                                         │
│    ┌──────────────────────────────────────────────────────────┐    │
│    │  🆕 IDE 集成(不用离开编辑器)  🆕 代码特化(比 GPT-3 更懂代码)│    │
│    │  🆕 Tab 补全(零摩擦交互)     🆕 上下文感知(读取当前文件)   │    │
│    └──────────────────────────────────────────────────────────┘    │
│                                                                     │
│    ❌ 仍然无状态    ❌ 仍然无记忆    ❌ 仍然无网络    ❌ 仍然无工具   │
│    ❌ 不能对话(只能补全)          ❌ 不能跨文件理解项目结构         │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

以前遇到问题,你会去 Stack Overflow 搜索,复制粘贴,再改改。现在,你写一行注释,LLM 就能生成整段代码:

text
输入(注释):
// compute the moving average of an array for a given window size

输出(Copilot 生成):
function movingAverage(arr, windowSize) {
  const result = [];
  for (let i = 0; i <= arr.length - windowSize; i++) {
    const window = arr.slice(i, i + windowSize);
    const avg = window.reduce((a, b) => a + b) / windowSize;
    result.push(avg);
  }
  return result;
}
概念英文解释为什么重要
代码补全Code Completion从「搜索答案」到「生成答案」开发方式转变的起点
微调Fine-tuning [16]在通用模型基础上,用特定数据再训练理解为什么 Codex 比 GPT-3 更擅长写代码
训练数据Training DataCodex 训练于公开 GitHub 代码理解版权争议和安全隐患的来源

微调的局限性:为什么大公司仍要从零训练?

微调虽然成本低、速度快,但有几个关键局限 [17]

  1. 能力天花板:微调不能让模型学会基座模型不具备的能力,只能"激活"或"强化"已有能力。如果 GPT-3 对某个稀有语言一无所知,微调也无法"无中生有"。

  2. 灾难性遗忘(Catastrophic Forgetting):在特定领域微调可能导致模型"忘记"其他能力。比如一个法律微调模型可能变得不擅长写普通文章。

  3. 基座模型决定一切:微调后的模型质量 ≤ 基座模型质量。这就是为什么大公司都想做自己的基座模型——那是核心资产,微调谁都能做。

实际上,现代 LLM 是组合使用这些技术的:

text
预训练(从零)→ 基座模型 → 指令微调 → RLHF → 最终产品
     ↑              ↑           ↑
   构建基础能力    让模型"听话"   对齐人类偏好

Codex 就是这个模式的早期例子:GPT-3(基座)+ 代码微调 = Codex。

2.2.1 早期的生产力数据

GitHub 在 2022 年做了一个受控实验 [18]:95 名专业程序员被要求用 JavaScript 实现一个 HTTP 服务器,使用 Copilot 的那组完成速度快了 55.8%。此外,60-75% 的用户表示使用 Copilot 后「更少挫败感」「能专注于更有意义的工作」。

2.2.2 但也有问题

NYU 网络安全中心在 2021 年 8 月的研究发现 [19],Copilot 生成的代码中约 40% 存在安全漏洞,包括 SQL 注入、越界写入等。研究者的建议是:「Developers should remain vigilant」(开发者应保持警惕)。

2022 年 11 月,律师 Matthew Butterick 还发起了集体诉讼 [20],指控 Copilot 的训练数据侵犯了开源代码的版权。GitHub 内部研究承认,约 0.1% 的生成代码是训练数据的直接复制。

2.2.3 我的亲历视角:Copilot 元年

作者观点

以下是我个人使用 Copilot 的经历,不代表普遍情况。

我是 2021 年 6 月技术预览刚出来就申请了,用了半年试用期后开始付费,一直用到 Cursor 出来才切换,几个月前又切到 Claude Code。四年来从未间断。

当时的感受是「惊为天人」——写个注释就能生成一整段代码,Tab 键一按就补全了,比传统 IDE 的自动补全强太多。但现在回看,只剩一个念头:「我那个时候是怎么能忍受使用这么烂的模型的」

这大概就是这几年 LLM 进步速度的最好注脚。

顺便一提,因为从 Copilot 时代入坑,我其实没有养成用「聊天式」模型来开发的习惯。我的工作流一直是 Tab 补全,而不是开个对话框问 LLM。这个习惯一直延续到现在。

Copilot 早期演示截图 - 图中的不是我

2.3 2022.11: ChatGPT 爆发 — 对话式交互

2022 年 11 月 30 日,OpenAI 发布了 ChatGPT [21]。这不是一次技术上的跨越式突破——底层的 GPT-3.5 能力并没有比 GPT-3 强多少。真正改变的是交互形态:第一次,非技术人员可以直接用自然语言和 LLM 对话。

增长速度是史无前例的:5 天 100 万用户,2 个月 1 亿用户 [22]。作为对比,Netflix 花了 3.5 年才达到 100 万用户,Instagram 花了 2.5 个月。ChatGPT 成为历史上增长最快的消费级应用。

text
┌─────────────────────────────────────────────────────────────────────┐
│  2022.11: ChatGPT — LLM 第一次「出圈」                                │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    ┌──────────────┐     ┌─────────────────┐     ┌──────────────┐   │
│    │   用户输入    │     │    GPT-3.5      │     │   对话回复    │   │
│    │  (自然语言)   │ ──▶ │   + RLHF 微调   │ ──▶ │  (自然语言)   │   │
│    └──────────────┘     └─────────────────┘     └──────────────┘   │
│                                │                                    │
│                                ▼                                    │
│                    ┌───────────────────────┐                       │
│                    │  InstructGPT 技术基础  │                       │
│                    │  人类反馈强化学习 (RLHF)│                       │
│                    └───────────────────────┘                       │
│                                                                     │
│    🆕 对话式界面(任何人都能用)    🆕 免费开放(不需要 API 申请)      │
│    🆕 多轮对话(能记住上文)        🆕 通用能力(写作/翻译/编程都行)   │
│                                                                     │
│    ❌ 仍然无状态(关掉窗口就忘了)  ❌ 幻觉严重(经常一本正经胡说八道)  │
│    ❌ Context 只有 4K tokens      ❌ 不能联网(知识截止到训练时)      │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

2.3.1 对话式交互 vs 文本补全

对比 GPT-3 的「文本补全」和 ChatGPT 的「对话」:

text
【GPT-3 文本补全】

输入:Write a Python function to calculate fibonacci

输出:numbers. The fibonacci sequence is a series of numbers where
each number is the sum of the two preceding ones...
(它只是在「续写」,不是在「回答」)


【ChatGPT 对话】

用户:Write a Python function to calculate fibonacci

助手:Here's a Python function to calculate Fibonacci numbers:

def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

This recursive implementation returns the nth Fibonacci number.
Would you like me to show you an iterative version as well?
(它理解你在「问问题」,给出结构化的回答,还会追问)

这就是 RLHF 带来的改变:模型学会了「理解用户意图」而不只是「预测下一个词」。

2.3.2 为什么 ChatGPT 能「对话」?—— RLHF

ChatGPT 能像人一样对话,核心技术是 RLHF(Reinforcement Learning from Human Feedback,人类反馈强化学习)[23]。这项技术在 2022 年 3 月的 InstructGPT 论文中首次公开 [24]

核心发现是:「把模型做大,不一定能更好地遵循用户意图」。13 亿参数的 InstructGPT 在人类评估中优于 1750 亿参数的 GPT-3——参数少了 100 多倍,但更「听话」。

text
RLHF 三步训练法:

第 1 步:监督微调 (SFT)
  └─ 人类标注员写示范回答,教模型「好的回答长什么样」

第 2 步:训练奖励模型 (Reward Model)
  └─ 人类对多个回答排序,训练一个模型来预测「人类喜欢哪个」

第 3 步:强化学习优化 (PPO)
  └─ 用奖励模型的分数作为信号,优化生成策略

简单说:GPT-3 学的是「预测下一个词」,而 ChatGPT 学的是「预测人类会喜欢的回答」。

概念英文解释为什么重要
RLHFReinforcement Learning from Human Feedback [23:1]用人类偏好训练模型ChatGPT 能「对话」的核心技术
LLM 幻觉Hallucination [25]模型生成看似合理但实际错误的内容永远要验证输出
上下文窗口Context Window模型一次能「看到」的文字量上限理解为什么会遗忘、越聊越贵

2.3.3 LLM 幻觉:一本正经地胡说八道

ChatGPT 最大的问题是幻觉——它会非常自信地给出完全错误的答案,而且你问它「这是真的吗」,它还会坚称是真的。

最著名的案例是 2023 年 5 月的 Mata v. Avianca 案 [26]:纽约的一位律师用 ChatGPT 查找案例,结果提交了 6 个根本不存在的判例。他甚至问 ChatGPT「这些案例是真的吗」,ChatGPT 回答「是真的」。最终法官对律师和律所进行了制裁。

截至目前,已有超过 655 例 LLM 幻觉出现在法律文件中 [27]。其中律师提交的有 59 例,普通人自己打官司提交的有 62 例。美国法院已对 15 起案件处以罚款,平均罚款 $4,713。

2.3.4 为什么幻觉不可避免?

2025 年 9 月,OpenAI 发布了一篇论文《Why Language Models Hallucinate》[28][29],从数学上证明了:即使训练数据完美,幻觉仍然不可避免

核心原因是:主流 LLM 评测标准(benchmark)奖励「猜测」而惩罚「承认不确定」。研究者检查了 10 个主流评测标准,发现其中 9 个使用二元评分——答对得分,说「我不知道」得零分。这导致模型被训练成「宁可猜错,也不说不知道」。

解决方案很简单:对自信的错误惩罚更重,对承认不确定给部分分。但这会严重影响用户体验——如果 ChatGPT 对 30% 的问题回答「我不知道」,用户很可能会弃用。

2.3.5 Context Window 的演进

也是从 ChatGPT 开始,「context 不够用」成了常见问题。早期 GPT-3.5 只有 4K tokens,聊几轮就满了。

模型发布时间Context Window约等于
GPT-32020.52K tokens1,500 英文单词
GPT-3.5 (ChatGPT)2022.114K tokens3,000 英文单词
GPT-42023.38K → 32K → 128K逐步扩展
Claude 32024.3200K tokens一本《读库》
GPT-4o2024128K tokens
Claude Sonnet 42025最高 1M tokens75 万字

Context 越大越好吗?不一定。研究发现 context 越长,准确率会下降(可达 24.2%),这叫「Context Rot」。后面 Part 4 会详细讲。

2.3.6 行业震动:Google 的「红色警报」

ChatGPT 发布后,Google 内部宣布「Code Red」[30]。坐拥 91% 搜索市场份额的巨头,突然发现核心业务被一个聊天机器人威胁。

2023 年 2 月,Google 匆忙推出 Bard 应战。结果首次公开演示就出现幻觉——错误声称 James Webb 望远镜拍到了第一张系外行星照片。CEO Sundar Pichai 后来承认:「OpenAI 先我们一步。」

其实 Google 早在 2021 年就有 LaMDA(1370 亿参数,比 GPT-3 还大),但出于对虚假信息的担忧一直没公开。ChatGPT 的成功证明:有时候「先发布」比「完美」更重要

2.3.7 我的亲历视角:ChatGPT 太蠢了

作者观点

以下是我个人使用 ChatGPT 早期版本的经历和感受。

说实话,ChatGPT 刚出来的时候我没有第一时间去用。过了一段时间才注册,OpenAI 账号的电话号码还是用的接码平台。

作为 Copilot 老用户,我当时的感受是:GPT-3.5 实在是太蠢了。幻觉非常严重,给的回复基本不可信。而且它又看不到我的代码、看不到我的项目上下文——不能看我其他 tab 的 LLM,我一直觉得没多大用

所以那段时间,我主要还是把 ChatGPT 当作「搜索引擎的延伸」:问问某个 API 怎么用、让它解释一下报错信息、写写一次性的小脚本。真正的开发工作,还是靠 IDE 里的 Copilot Tab 补全。

有意思的是,我周围非技术背景的朋友,那时候几乎没人知道 ChatGPT。他们大多是等到 2025 年 DeepSeek 火了之后,才第一次接触 LLM。这可能也是国内的普遍情况。

[!TODO] 素材准备


参考资料


  1. 🔬 L1 | Language Models are Few-Shot Learners | arXiv - GPT-3 原始论文,Tom Brown 等 31 位 OpenAI 研究员发表于 2020 年 5 月。 ↩︎ ↩︎

  2. 🔬 L1 | OpenAI API | OpenAI - OpenAI 于 2020 年 6 月开放 GPT-3 API 申请。 ↩︎

  3. 🔬 L1 | What are tokens and how to count them? | OpenAI Help Center - OpenAI 官方解释 token 的概念和计算方式。 ↩︎

  4. 📝 L3 | Next token prediction with GPT | Hugging Face Blog - 解释自回归模型如何通过预测下一个词元生成文本。 ↩︎

  5. 📰 L2 | What is a context window? | IBM - IBM 解释上下文窗口的概念及其对 LLM 的影响。 ↩︎

  6. 💬 L4 | LLMs are stateless | Nityesh - 每次发送消息都是全新开始,即使在同一个对话线程中。 ↩︎

  7. 💬 L4 | Knowledge Cutoff Dates of all LLMs | Otterly.ai - 各主流 LLM 的知识截止日期汇总。 ↩︎

  8. 💬 L4 | What is the cost of training large language models? | CUDO Compute - Lambda Labs 估算 GPT-3 训练成本约 460 万美元。 ↩︎

  9. 🔬 L1 | Anthropic Pricing - Anthropic Claude 系列模型官方定价。 ↩︎

  10. 🔬 L1 | OpenAI API Pricing - OpenAI GPT 系列模型官方定价。 ↩︎

  11. 🔬 L1 | Anthropic Models Overview - Claude 各版本模型能力与参数对比。 ↩︎

  12. 🔬 L1 | DeepSeek Pricing - DeepSeek API 官方定价,以低成本著称。 ↩︎

  13. 🔬 L1 | 阿里云模型服务灵积计费说明 - 阿里云通义千问系列模型官方定价。 ↩︎

  14. 📰 L2 | Introducing GitHub Copilot: your AI pair programmer | GitHub Blog - GitHub 于 2021 年 6 月 29 日发布 Copilot 技术预览版。 ↩︎

  15. 🔬 L1 | Evaluating Large Language Models Trained on Code | arXiv - Codex 论文(arXiv:2107.03374),Mark Chen 等 OpenAI 研究员发表于 2021 年 7 月。Codex 是 GPT 模型在 179GB GitHub 代码(来自 5400 万公开仓库)上微调的代码特化版本。 ↩︎

  16. 🔬 L1 | Fine-tuning | OpenAI Platform - 在预训练模型基础上,使用特定数据集进一步训练以优化特定任务表现。 ↩︎

  17. 🔬 L1 | The Ultimate Guide to Fine-Tuning LLMs | arXiv - 微调技术综述,详细讨论了灾难性遗忘、能力天花板等局限性,以及 PEFT 等缓解方法。 ↩︎

  18. 🔬 L1 | Measuring GitHub Copilot's Impact on Productivity | ACM - 2022 年受控实验,95 名程序员参与,使用 Copilot 组完成任务快 55.8%。 ↩︎

  19. 🔬 L1 | CCS researchers find GitHub Copilot generates vulnerable code 40% of the time | NYU - NYU 网络安全中心 2021 年研究,发现约 40% 生成代码存在安全漏洞。 ↩︎

  20. 💬 L4 | GitHub Copilot Isn't Worth the Risk | Kolide - 2022 年 11 月 Matthew Butterick 发起集体诉讼,指控训练数据侵权。 ↩︎

  21. 🔬 L1 | Introducing ChatGPT | OpenAI - OpenAI 于 2022 年 11 月 30 日发布 ChatGPT。 ↩︎

  22. 💬 L4 | ChatGPT Statistics | DemandSage - ChatGPT 增长数据:5 天 100 万用户,2 个月 1 亿月活。 ↩︎

  23. 📝 L3 | Illustrating Reinforcement Learning from Human Feedback (RLHF) | Hugging Face - RLHF 技术详解。 ↩︎ ↩︎

  24. 🔬 L1 | Training language models to follow instructions with human feedback | arXiv - InstructGPT 论文,Long Ouyang 等 19 位 OpenAI 研究员,2022 年 3 月发布。 ↩︎

  25. 📰 L2 | Hallucination (artificial intelligence) | Wikipedia - AI 幻觉的定义和案例汇总。 ↩︎

  26. 📝 L3 | AI Hallucinations in Legal Cases | BitLaw - Mata v. Avianca 案详情,律师因 ChatGPT 幻觉被制裁。 ↩︎

  27. 💬 L4 | AI Hallucination Cases Database | Damien Charlotin - 追踪法律领域 AI 幻觉案例的数据库,已收录 655+ 例。 ↩︎

  28. 🔬 L1 | Why Language Models Hallucinate | OpenAI - OpenAI 2025 年 9 月发布,解释幻觉的数学必然性。 ↩︎

  29. 🔬 L1 | Why Language Models Hallucinate | arXiv - Adam Tauman Kalai 等人,证明即使训练数据完美,幻觉仍不可避免。 ↩︎

  30. 📰 L2 | Google Gemini vs ChatGPT | TechTarget - Google 对 ChatGPT 的反应及 Bard/Gemini 发展历程。 ↩︎

基于 VitePress 构建