什么是大语言模型-00

50 阅读4分钟

前言

你有没有想过,当你问 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 能推断:香蕉 → 水果

image.png

解析:无需重新训练,只需几个示例,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,获取生成的回复。


总结

  1. LLM 是文字接龙机器——核心原理是预测下一个词
  2. LLM 有强大但有限的能力——理解、生成、推理、学习都很强,但并非万能
  3. LLM 的知识来自训练数据——它学习的是模式和规律,而非简单记忆
  4. LLM 会犯错——幻觉、知识截止、计算不精确是常见问题