前言
你有没有想过,当你问 ChatGPT 一个问题时,它是如何"思考"并给出回答的?
今天天气怎么样?——抱歉,我无法获取实时天气信息。 请用 JavaScript 写一个快速排序——几秒钟内,代码就出现在屏幕上。
同样是 AI,为什么能写代码却不能查天气?大语言模型的"知识"从哪里来?它是真的"理解"我们的话吗?
这些问题,正是我们探索大语言模型(Large Language Model,LLM)世界的起点。
1. 什么是大语言模型
大语言模型(LLM) 是一种经过海量文本数据训练的深度学习模型,能够理解和生成人类语言。
关键特征
| 特征 | 说明 | 例子 |
|---|---|---|
| 大规模训练 | 使用 TB 级文本数据 | GPT-4 训练了约 1 万亿 tokens |
| 深度神经网络 | 数十亿到数万亿参数 | GPT-3 有 1750 亿参数 |
| 通用能力 | 不需要专门训练就能完成多种任务 | 翻译、写作、编程、推理 |
通俗理解
想象一下:
- 你阅读了互联网上几乎所有的文本
- 你记住了其中的模式、规律和知识
- 当有人问你问题时,你能根据记忆生成回答
这就是大语言模型做的事情!
核心工作原理
LLM 的本质是一个文字接龙机器:
输入: "今天天气"
LLM 预测下一个词可能是:
- "真好" (概率 30%)
- "很热" (概率 25%)
- "怎么样" (概率 20%)
训练流程:
┌─────────────────────────────────────────┐
│ LLM 训练流程 │
├─────────────────────────────────────────┤
│ │
│ 1. 数据收集 │
│ ├── 网页文本 │
│ ├── 书籍文章 │
│ └── 代码库 │
│ │
│ 2. 预训练 │
│ ├── 学习语言模式 │
│ ├── 学习世界知识 │
│ └── 学习逻辑推理 │
│ │
│ 3. 微调 │
│ ├── 对齐人类偏好 │
│ ├── 遵循指令 │
│ └── 安全性训练 │
│ │
└─────────────────────────────────────────┘
四大核心能力
1. 语言理解
- 理解文本含义
- 识别情感倾向
- 提取关键信息
2. 语言生成
- 写文章、写代码
- 创意写作
- 总结提炼
3. 逻辑推理
- 数学计算
- 逻辑推理
- 问题解决
4. 少样本学习
- 看几个例子就能学会新任务
- 不需要重新训练
2. 案例
案例 1:少样本学习的神奇之处
让我们看看 LLM 如何通过几个例子学会新任务:
const prompt = `
例子1:
输入:苹果
输出:水果
例子2:
输入:胡萝卜
输出:蔬菜
输入:香蕉
输出:?
`;
// LLM 能推断:香蕉 → 水果
解析:无需重新训练,只需几个示例,LLM 就能理解分类规律并应用到新问题。
案例 2:代码生成能力
输入:"请用 JavaScript 写一个快速排序"
LLM 输出:
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
const pivot = arr[Math.floor(arr.length / 2)];
const left = arr.filter(x => x < pivot);
const middle = arr.filter(x => x === pivot);
const right = arr.filter(x => x > pivot);
return [...quickSort(left), ...middle, ...quickSort(right)];
}
解析:LLM 从训练数据中学会了编程模式和算法逻辑,能够生成可运行的代码。
案例 3:发现 LLM 的局限性
测试 1:实时信息
用户: "今天天气怎么样?"
LLM: "抱歉,我无法获取实时天气信息。"
测试 2:精确计算
用户: "12345 × 67890 = ?"
LLM: "大约是 83,000,000 左右"
实际: 838,102,050
测试 3:知识截止
用户: "谁赢得了2024年奥运会?"
LLM: "抱歉,我的知识截止到2023年..."
解析:这些测试揭示了 LLM 的三大局限——知识截止、幻觉问题、无法访问实时信息。
案例 4:实际项目中的调用
在本项目的后端代码中,LLM 调用是这样实现的:
async chat(request: {
question: string; // 用户的问题
model: string; // 使用的模型(如 qwen-plus)
apiKey: string; // API 密钥
}) {
// 调用阿里云百炼的 LLM
const response = await axios.post(
'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions',
{
model: request.model,
messages: [{ role: 'user', content: request.question }]
}
);
return response.data.choices[0].message.content;
}
解析:通过 HTTP API 调用,将用户问题发送给 LLM,获取生成的回复。
总结
- LLM 是文字接龙机器——核心原理是预测下一个词
- LLM 有强大但有限的能力——理解、生成、推理、学习都很强,但并非万能
- LLM 的知识来自训练数据——它学习的是模式和规律,而非简单记忆
- LLM 会犯错——幻觉、知识截止、计算不精确是常见问题