第1章 大模型基础速览

你已经知道 Transformer 是怎么工作的,也写过 Python。这一章把"会用"所需的大模型背景一次性补齐:一个 API 调用背后是什么、模型能做什么不能做什么、怎么把话说明白(Prompt)、Token 怎么算钱、模型怎么选、框架怎么用。读完这一章,下一章你就可以直接写代码了。

1.1 一个 API 调用背后是什么

你现在的认知里,大模型可能是"调一下 API 就能聊天"的黑盒子。打开盒子,里面其实是三步训练的产物:预训练(pre-training)让模型在海量文本上学会"下一个词"的规律 - 语言、语法、常识和大量知识在这一步沉淀;指令微调(instruction tuning)用海量的"问题—标准答案"对,教模型把知识"翻译"成回答问题的方式;RLHF 对齐(基于人类反馈的强化学习)再用人类对回答的偏好打分做强化学习,让模型学会"讨人喜欢" - 回答更翔实、更有帮助、更少冒犯。三步叠加,一个"会说话又听话"的模型才诞生(原理细节见《人工智能理论与实践》第 5、7 章)。

但训练是造模型的人做的事,和你几乎无关。你每天打交道的是模型的推理(inference):把训练好的模型部署成一台 HTTP 服务,你的代码发一个请求过去,它做一次前向计算,把生成的文本返回给你。一次训练动辄耗费数百万 GPU 小时,而一次推理只要几百毫秒、几分钱 - API 调用,就是花推理的钱,用训练的成果

图 1-1 三步训练 → 部署 → API 调用:你发的每个请求,背后是这条流水线

把这条流水线对应到代码,就是下面这几行 - 它已经是一个能跑的"最小大模型应用":

# 一次最小的大模型 API 调用(OpenAI 兼容接口,各家通用)
import openai

client = openai.OpenAI(api_key="sk-你的Key")   # 换成你的 API Key

resp = client.chat.completions.create(
    model="deepseek-chat",                      # 或 gpt-4o-mini / qwen-plus 等
    messages=[
        {"role": "system", "content": "你是一个乐于助人的助手。"},
        {"role": "user",   "content": "用一句话解释什么是 RAG。"},
    ],
)
print(resp.choices[0].message.content)          # 模型的回答
提示

类比:训练像培养专家,推理像专家坐诊
预训练是"读万卷书",指令微调是"岗前培训",RLHF 是"师傅带教做人"。培养一个专家要花很多年(训练),但专家培养好后,每次咨询只要几分钟(推理)。API 调用,就是"每次咨询按分钟付费"。

注记

记住这个区分
训练(training)改权重、费钱费时;推理(inference)用权重、快而便宜;微调(第 4 章)本质是在别人训练好的权重上做"二次小训练"。三者成本量级完全不同,后面谈成本时会反复用到。

1.2 大模型的能力与边界

先说能力。今天的通用大模型在几件事上已经接近"专业水准":写作(文案、邮件、报告初稿)、编程(写函数、解释代码、生成测试)、翻译与改写(跨语言、换风格、调篇幅)、总结与推理(长文摘要、信息抽取、多步逻辑推理)。这些能力来自预训练阶段的"海量阅读",不需要你额外教 - 你只需要学会正确地"问"。

但边界同样清晰,而且工程上更重要。模型本质是在预测下一个词,不是查数据库,所以它:会幻觉 - 一本正经地编造不存在的"事实";数学不可靠 - 三位数加减都可能算错,更别说精确计算;知识有截止日期 - 训练数据之外的新鲜事它不知道;给不了精确值 - 问它"某公司 2023 年营收精确到元",它只能猜。一句话:模型是"博学但不牢靠的实习生",不是"可靠的百科全书"。

维度 能 ✅ 不能 ❌
写作 文案、邮件、报告初稿,风格可指定 保证事实准确、绝不编造数据
编程 写函数、解释代码、生成测试与文档 保证代码一定可运行、无逻辑漏洞
翻译/改写 多语言互译、换语气、改篇幅 专业术语始终精确(医疗、法律等)
总结/推理 长文摘要、信息抽取、多步推理 精确计算(三位数加减都可能错)
知识 训练数据覆盖范围内的常识与知识 训练截止日期之后的新鲜事实
可靠性 流畅、自信、内容完整地输出 区分"它知道的"与"它编的"(幻觉)
重要

边界决定了架构
RAG 补"不知道"(第 3 章)、微调补"不专业"(第 4 章)、工具调用补"不会算 / 不会查"(第 5 章)。先看清边界,才知道每个技术在补什么 - 这是全书设计的第一条主线。

1.3 Prompt 工程:和模型对话的正确姿势

模型能力固定之后,你唯一能大幅影响输出质量的,就是你的 Prompt。一个好 Prompt 有四个要素:角色(你是谁 - 给模型一个身份定位)、任务(要做什么 - 动作明确、目标清晰)、上下文(背景材料 - 模型不知道你的业务,你得喂给它)、格式(怎么输出 - 要点列表、JSON、字数上限)。四要素齐全,输出质量立刻上一个台阶。

两个进阶技巧值得现在就记住。一是少样本(few-shot):与其描述"要什么风格",不如直接给 1–3 个示例,模型会照着示例的样子学;二是思维链(chain-of-thought):让模型"一步步想"再给结论,多步推理的准确率会显著提升 - 相当于让实习生把草稿纸摊开给你看。下面是同一个模型对"差 / 好"两种 Prompt 的典型反应:

图 1-2 差 Prompt 与好 Prompt 对比:先想清楚"你是谁、做什么、给什么、怎么出"

把少样本和思维链写进 Prompt,就是一个标准的"带示例的思考模板":

# 少样本 + 思维链:给示例、要求先一步步思考再回答
prompt = """你是一位严谨的数学老师。
规则:先列出计算过程,再给最终结论。

示例:
问:一支笔 5 元,买 3 支共多少钱?
答:5 × 3 = 15 元。结论:15 元。

现在请回答:
问:一件商品原价 120 元,打八折后多少钱?"""

resp = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": prompt}],
)
print(resp.choices[0].message.content)
注记

Prompt 是软规则,不是硬约束
Prompt 再精心,模型也可能不遵守 - 它不是程序。要"绝对结构化"的输出(比如必须返回合法 JSON),需要第 2 章的结构化输出与函数调用 - 那是工程手段,不是语言技巧。

1.4 Token 与上下文窗口

Token(词元)是模型处理文本的最小单位,也是计费和窗口的"字数单位"。中文里大约 1 个汉字 ≈ 1~2 个 token,英文大约 4 个字符 ≈ 1 个 token,标点和空格都算。模型读到的不是"字",而是一串被分词器(tokenizer)切碎的 token 序列:

图 1-3 Token 切分示意:计费、窗口、截断都按 token 算

上下文窗口(context window)是模型一次能"同时看到"的最大 token 数,常见从 8K 到 200K 不等。它决定了三件事:能喂多少背景材料、能输出多长的回答、多轮对话能聊多久。超过窗口的内容会被截断或忽略 - 不是"记不住",而是"根本没看见"。工程上,长文档问答(第 3 章)的核心思路之一,就是"窗口装不下,就先检索再拼装"。

计费同样按 token:输入 token 和输出 token 分开计价,通常输出更贵;每次请求都是"输入 + 输出"一起算。省钱三板斧:Prompt 精简(少喂无关上下文)、结果缓存(同样的问法别问两次)、小模型打底(简单任务用便宜模型)。

提示

类比:上下文窗口是工作台面
窗口有多大,模型一次能摊开的材料就有多少;台面摆不下,材料就在地上 - 它不会自己去捡。所以"把材料摆上台面"(写好 Prompt、做好检索),才是工程的重点。

1.5 模型选择:闭源、开源与量化

选模型是第一个"工程决策"。三条路线:闭源 API(GPT、Claude、DeepSeek、Gemini、通义等) - 权重不公开,按量付费、即开即用,效果通常最好,代价是数据要出域、成本随量增长;开源权重(Llama、Qwen、DeepSeek、GLM 等) - 权重可下载,可私有部署、可微调,隐私可控,但要自己准备 GPU 与运维;量化(Q4、INT8) - 把权重压缩到原来的 1/3~1/4,显存需求大降、推理更快,精度略降但小模型"够用"。注意:闭源 / 开源看的是权重开不开放,开源模型同样有官方 API,也可以自部署成 OpenAI 兼容服务(第 2 章会讲)。

图 1-4 模型选择地图:三条路线不是互斥的,开源模型也常以 API 形式出现

决策时问自己三个问题:数据能不能出域?要不要定制行为?有没有 GPU 预算?另外,开源生态还有一个特点:同一家族往往有多个尺寸(如 Qwen 从 0.5B 到 72B),显存越多选越大、效果越好。把场景对照到下表:

你的场景 推荐路线 典型选择 理由
快速做原型 / 上线,数据不敏感 闭源 API DeepSeek / GPT / Claude 等 即开即用、效果最好、按量付费
数据不能出域(企业内网、隐私) 开源权重自部署 Qwen / Llama / DeepSeek 权重 数据不出机器,私有可控
需要深度定制领域能力 开源 + 微调(第 4 章 Qwen / Llama 权重 + LoRA 闭源 API 通常不允许微调
本机 / 边缘跑,显存紧张 量化部署 Qwen 7B / Llama 8B 的 Q4 版 显存降到 1/3~1/4,精度够用
成本敏感、调用量大 小模型 + 缓存 mini 档 API 或量化小模型 简单任务不必用大模型
注记

一条实用经验
新手期建议从"闭源 API + 最便宜的小模型"开始跑通逻辑;等需求明确(要私有化?要定制?要省成本?)再切换到开源或量化。模型迭代很快,别在选型上过度纠结 - 先跑起来。

1.6 常用开发框架速览

你会在书里反复见到四个名字,先弄清楚它们各自管哪一段:OpenAI SDK 是最底层的"打电话工具" - 发请求、收响应,几乎所有国产模型都提供 OpenAI 兼容接口,学会它就等于学会了所有家的调用方式;Transformers(HuggingFace)是开源模型的"驾驶舱" - 加载权重、跑推理、做微调都靠它;LangChain 是"拼装乐高" - 把模型、工具、记忆、Agent 拼成应用流程,抽象多、方便也绕;LlamaIndex 专攻 RAG 的"数据侧" - 文档加载、切分、索引、检索一条龙。

框架 定位 管哪一段 本书哪里用
OpenAI SDK 最底层的调用工具 发请求、收响应(各家 OpenAI 兼容接口通用) 第 2 章裸调用主力
Transformers(HuggingFace) 开源模型的驾驶舱 加载权重、跑推理、做微调 第 4 章微调主力
LangChain 应用编排框架 链、Agent、工具、记忆的拼装 第 5 章 Agent 参考
LlamaIndex RAG 数据框架 文档加载、切分、索引、检索一条龙 第 3 章 RAG 参考

本书的态度很明确:先学会裸调用,再用框架。裸调用(第 2 章)让你看清一次请求到底发生了什么 - 输入什么、返回什么、怎么解析;框架只是把这些重复动作封装起来。先懂原理再上框架,出问题时你才知道该查哪里;直接上框架,报错时会像在迷宫里找门。

提示

类比:SDK 是发动机,框架是整车
OpenAI SDK 像发动机,LangChain / LlamaIndex 像装好的整车。先拆开看发动机怎么转(裸调用),再上车开(框架),你就既会开车、又会修车。

重要

本章要点

  • 大模型 = 预训练 + 指令微调 + RLHF 对齐三步训练的产物;你的 API 调用只是"推理",快而便宜。
  • 能力:写作、编程、翻译、总结、推理;边界:幻觉、数学不可靠、知识截止、算不了精确值。
  • Prompt 四要素:角色、任务、上下文、格式;复杂问题加少样本示例与思维链("一步步想")。
  • Token 是计费与窗口的单位:中文约 1 字 ≈ 1~2 token,1000 汉字 ≈ 1500 token。
  • 上下文窗口有限,超出即"看不见";长内容要靠检索拼装。
  • 选模型看场景:快速上线用闭源 API,私有化 / 定制用开源权重,显存紧张用量化。
  • 框架是封装,先学会裸调用,再上 LangChain / LlamaIndex。
警告

衔接 · 下一站
下一章(第 2 章)就动手:拿 API Key、发第一次调用、流式输出、结构化 JSON、函数调用,把本章的原理全部变成手感。想复习原理,回到《人工智能理论与实践》第 5 章(Transformer 与 Token)和第 7 章(RLHF);Python 手生,则翻《人工智能前置课》第 5 章