# 大模型与生成式 AI

## LLM 在做什么

大语言模型把文本切成 Token，根据已有上下文预测下一个 Token，反复生成序列。Transformer 通过注意力机制建模 Token 之间的关系，使大规模并行训练和长距离依赖成为可能。

这个简单目标能涌现出总结、翻译、问答、代码和推理等能力，但模型的流畅度不等于事实可靠性。它优化的是“在语料与对齐目标下生成合适序列”，不是一个默认连接真实世界的数据库。

## 必懂组成

- **Tokenizer/Token**：模型处理的最小单元；价格、延迟和上下文都按 Token 受影响。
- **Embedding**：把文本/图像等映射为向量，用于语义检索、聚类和相似度。
- **Attention**：让每个位置根据其他位置分配信息权重。
- **Parameters**：模型学习到的权重；参数更多不自动意味着场景更好。
- **Context Window**：单次请求可处理的 Token 上限；能塞下不等于能有效利用。
- **Pre-training**：在大规模数据上学习通用模式。
- **Post-training/Alignment**：指令微调、偏好优化、安全训练等，使模型更可用。
- **Inference/Sampling**：给定上下文生成输出的过程。

## 生成控制

| 参数/机制 | 作用 | 产品提醒 |
|---|---|---|
| Temperature | 调节分布随机性 | 事实任务通常偏低，创意任务可更高；不保证确定性 |
| Top-p/Top-k | 限制候选 Token 范围 | 与温度联动，避免盲调 |
| Max output | 限制最大输出 | 影响截断、延迟和成本 |
| Stop sequence | 到指定序列停止 | 用于格式和编排，但需防用户注入 |
| Seed | 尝试复现采样 | 不保证跨版本/基础设施完全一致 |
| Structured output | 按 Schema 输出 | 仍需解析校验与失败重试 |

## Prompt 工程的稳定结构

一个可维护 Prompt 通常包含：

1. **任务与角色**：系统要完成的具体工作，而不是堆人格形容词。
2. **输入边界**：哪些内容是数据、哪些是指令；使用清晰分隔。
3. **成功标准**：正确、完整、语气、引用和格式。
4. **约束与政策**：不能做什么，冲突时优先级。
5. **工具/知识规则**：何时检索、何时调用、来源不足时怎么办。
6. **示例**：覆盖代表性和边界情形，而非只给漂亮样例。
7. **输出 Schema**：便于程序消费和验证。
8. **失败策略**：澄清、拒答、转人工、降级。

Prompt 必须像代码一样版本化、评测、评审和回滚。不要把秘密、权限控制或不可泄露规则只放在 Prompt 里。

## 上下文工程

影响结果的不只是文字提示，而是模型当下能看到的完整上下文：系统指令、对话历史、用户资料、检索文档、工具结果、记忆、时间与权限。

上下文工程的目标是：在有限预算内提供**最少但充分、可信、相关、权限正确**的信息。常见策略：

- 对长对话总结，但保留关键承诺和结构化状态。
- 检索前做查询改写，检索后重排和压缩。
- 分离不可信外部内容与高优先级指令。
- 只注入当前用户有权限访问的内容。
- 对工具返回做 Schema、大小和恶意内容校验。

## 幻觉不是单一故障

至少分成：

- **事实幻觉**：说出错误外部事实。
- **忠实性错误**：答案不受给定来源支持。
- **引用错误**：引用不存在或指向不相关内容。
- **推理错误**：前提正确但步骤/结论错误。
- **工具状态错误**：声称执行成功，实际未执行。
- **指令冲突**：忽略约束或被不可信内容劫持。

对应控制不同：RAG 主要改善知识可得与可追溯，不自动修复推理；工具确认修复执行真实性；结构校验修复格式；高风险任务需要独立验证和人工复核。

## Prompt、RAG、微调、工具的选择

| 需要 | 优先方法 | 原因 |
|---|---|---|
| 快速定义任务和格式 | Prompt | 成本最低、迭代最快 |
| 使用私有/最新/可引用知识 | RAG | 知识可更新、可追溯 |
| 精确计算或查询实时状态 | 工具/API | 让确定系统做确定工作 |
| 稳定风格、格式或窄任务行为 | 微调 | 用样例塑造行为，缩短 Prompt |
| 多步跨系统执行 | Workflow/Agent | 需要状态、计划与工具 |
| 模型缺少根本能力 | 换模型/训练 | 其他方法无法创造不存在的能力 |

微调不是“把公司文档塞进模型”的默认方案。经常变化、需要引用和删除的知识更适合 RAG。

## 模型能力边界

- 对输入措辞、顺序和示例敏感。
- 长上下文存在位置和注意力衰减，不是无损数据库。
- 复杂推理表现可能不稳定，自我解释不等于真实内部原因。
- 对罕见领域、低资源语言和分布外输入更易失败。
- 可能迎合用户、编造证据、泄露上下文或执行错误工具。
- 训练截止、联网与工具能力取决于具体系统，不能从“模型名”推断。

## 成本与延迟拆解

单次成本至少包括：

```text
输入 Token + 输出 Token + 缓存/检索 + Embedding/重排
+ 工具/API + 安全检查 + 重试 + 日志存储 + 人工复核
```

端到端延迟包括网关、排队、首 Token、生成、检索、工具和后处理。降低方法：路由小模型、缩短上下文、缓存、并行工具、流式输出、限制重试、预计算、批处理。任何降本都要跑回归评测。

## 本地/开源权重与托管 API

| 维度 | 托管 API | 自托管/开放权重 |
|---|---|---|
| 上手 | 快 | 需要平台与运维 |
| 前沿能力 | 通常更新快 | 取决于模型与团队能力 |
| 数据控制 | 依合同/区域/配置 | 可更强，但责任自担 |
| 固定成本 | 低 | GPU、工程和容量成本高 |
| 边际成本 | 按量 | 高利用率时可能更优 |
| 可定制 | 受供应商限制 | 更自由 |
| 锁定风险 | API/行为/价格 | 模型生态/硬件/运维 |

选择时计算三年总拥有成本（TCO），并把团队能力、峰值、灾备、安全认证和退出方案纳入。

## 产品验收最小集

- 真实分布的任务集，不少于覆盖主场景和高风险长尾。
- 非 AI/现状基线，以及至少两个候选方案。
- 任务质量、引用忠实、拒答、延迟、成本和安全指标。
- 版本锁定：模型、Prompt、检索索引、工具与参数。
- 人工双评和分歧仲裁，校准自动评审。
- 变更前后配对对比与回归失败清单。

核心论文入口见 [论文书单](../09_论文书单/README.md)。
