现在位置: 首页 > AI 入门教程 > 正文

大模型相关概念

刚接触大模型(LLM)开发时,会有一堆新词扑面而来:Token、RAG、Embedding、Agent……,它们看起来彼此独立,其实串成了一条完整的技术链路。

本文按照「模型是什么 → 如何训练 → 如何使用 → 如何优化」的顺序,把这些概念串起来,帮初学开发者建立清晰的知识框架。

本文不只是「名词解释」,还会用真实可运行的 Python 代码演示这些概念怎么落地。

所有示例基于 OpenAI 兼容协议,可换成阿里云百炼、DeepSeek 等服务商只需改接口地址和密钥。

Python OpenAI 参考:https://www.runoob.com/python3/python-openai.html


整体技术链路

在拆解每个概念之前,先看一眼大模型技术的完整链路,建立整体认知。

从上到下,每一层都解决一类核心问题:训练造出模型、优化让它变轻、驱动让它出活、检索补上知识、工具让它执行。

大模型技术整体链路图

下文就按这条链路,自顶向下逐层展开。


基础概念:模型是什么

这一节回答最根本的问题:大模型到底是个什么东西,它靠什么工作。

LLM(大语言模型)

LLM 全称 Large Language Model,是基于海量文本训练出来的深度学习模型。

它的本质是一个「预测下一个词」的概率模型:给定前面的文字,预测接下来最可能出现的内容。

ChatGPT、Claude、通义千问等产品,底层都是 LLM。

Transformer 与注意力机制

几乎所有现代 LLM 都基于 Transformer 架构。

它的核心创新是注意力机制(Attention / Self-Attention):模型在处理某个词时,能动态地「关注」输入序列中其他相关的词,从而更好地理解上下文关系。

打个比方,模型读一句话时不是死板地逐字扫描,而是会自动判断「这个词和前面哪个词关系最大」。

Token(词元)

模型并不按「字」或「单词」处理文本,而是按 Token 处理。

一个 Token 可能是一个汉字、一个英文单词,也可能是单词的一部分。

理解 Token 有两个直接的现实意义:

模型的上下文长度限制是按 Token 计算的;API 调用的计费也是按 Token 计算的。

用 OpenAI 的开源分词库 tiktoken,可以直接看到一段文本被切成了多少个 Token:

实例

# 安装:pip install tiktoken
import tiktoken

# 不同模型使用不同分词器,encoding_for_model 会自动选对应的
enc = tiktoken.encoding_for_model("gpt-4o-mini")

tokens = enc.encode("Hello world")  # 把文本切成 Token 列表
print("Token 数量:", len(tokens))
print("切分结果:", [enc.decode([t]) for t in tokens])

输出结果:

Token 数量:2
切分结果:['Hello', ' world']

换成中文或更长的词,切分方式会完全不同,所以「按字数估算 Token」并不准确。

上下文窗口(Context Window)

指模型一次能「看到」和处理的最大 Token 数量。

比如上下文窗口是 100K,意味着一次对话(历史消息、你的问题、模型回答加在一起)不能超过 10 万个 Token。

窗口越大,模型能「记住」的内容越多,能一次性处理的文档也越长。

参数量(Parameters)

参数量指模型内部可学习的权重数量,通常以 B(十亿,Billion)为单位,比如 7B、70B。

它在一定程度上反映模型的规模与能力上限,但不是唯一指标——训练数据质量、架构设计同样关键。

常见参数量量级典型定位
1B ~ 7B小到中可在消费级显卡本地运行,适合轻量任务
8B ~ 34B性价比高,覆盖大多数通用场景
70B ~ 数百 B能力最强,通常通过云端 API 调用

模型是如何训练出来的

一个能自然对话的 LLM,通常要经过多个训练阶段,层层叠加能力。

LLM 训练流程图

预训练(Pre-training)

模型在海量、无标注的文本(网页、书籍、代码等)上学习语言的统计规律,比如语法、常识、逻辑关系。

这个阶段耗费的算力最大,是模型能力的基础。

但此时的模型还不擅长「按指令做事」,更像一个博览群书却不懂如何交流的人。

SFT(监督微调)

SFT 全称 Supervised Fine-Tuning。

用人工标注好的「问题—答案」对数据,教模型学会按照人类指令来回答问题,而不是自顾自地续写文本。

RLHF(人类反馈强化学习)

RLHF 全称 Reinforcement Learning from Human Feedback。

让人类对模型的多个候选回答打分或排序,再用这些反馈训练模型,使其输出更符合人类偏好(更有用、更诚实、更安全)。

类似的技术还有 RLAIF:用 AI 代替人类打分,以降低标注成本。

两者目的一致,区别只在于「打分的人」是真人还是另一个 AI。

对齐(Alignment)

对齐是一个更宏观的概念:让模型的行为、价值观符合人类的期望和意图。

它是 AI 安全领域的核心议题,贯穿在 SFT、RLHF 等各个训练环节中——SFT 和 RLHF 本质上都是「对齐手段」。

微调(Fine-tuning)

在已经训练好的通用模型基础上,用某个特定领域(如法律、医疗、客服)的数据继续训练。

相比从零预训练,微调成本要低得多,是让通用模型适配专业场景的常用做法。

MoE(混合专家模型)

MoE 全称 Mixture of Experts,是一种模型架构设计。

模型内部包含多个「专家」子网络,每次处理输入时只激活其中一部分,而不是让全部参数都参与计算。

这样可以在扩大模型总规模的同时,控制实际计算量,做到「参数大、推理快」。

训练阶段英文主要作用依赖的数据
预训练Pre-training学习语言规律,打下能力基础海量无标注文本
监督微调SFT学会按指令回答问题人工标注的问答对
人类反馈强化学习RLHF输出更符合人类偏好人类对回答的打分/排序
对齐Alignment让模型有用、诚实、安全贯穿上述各阶段

开发者如何使用大模型

这是初学开发者最需要关注的部分:如何通过 API 让大模型为应用服务。

本节先给一个最基础、可直接运行的对话调用示例,再展开各概念。

最基础的 API 对话调用

下面这段代码演示一次完整的对话请求,同时用到了 System Prompt、用户消息和温度三个概念。

实例

# 安装:pip install openai
from openai import OpenAI
import os

# 创建客户端。OpenAI 兼容协议的服务都能复用这段代码,
# 换成其它服务商只需改 api_key 与 base_url
client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),  # 从环境变量读取密钥(必填)
)

# 发起一次对话请求
response = client.chat.completions.create(
    model="gpt-4o-mini",  # 模型名称(必填),按所用服务商更换
    messages=[
        # System Prompt:预先设定模型的角色与行为规范
        {"role": "system", "content": "你是一名专业的 Python 编程助手,只回答技术相关问题。"},
        # 用户消息:实际的问题
        {"role": "user", "content": "什么是 runoob?"},
    ],
    temperature=0.7,  # 生成温度,取值 0~2,越大越发散(见下文)
)

# 打印模型回答
print("回答:", response.choices[0].message.content)
# usage 字段记录了这次调用消耗的 Token 数(计费依据)
print("输入 Token 数:", response.usage.prompt_tokens)
print("输出 Token 数:", response.usage.completion_tokens)

输出结果:

回答:runoob(菜鸟教程)是一个提供编程教程的中文学习网站……
输入 Token 数:33
输出 Token 数:18

返回结构里的 usage 字段就是上文 Token 概念的落地:它告诉你这次调用消耗了多少 Token,也是计费的依据。

Prompt(提示词)

Prompt 是你输入给模型的指令或问题,直接决定模型输出的质量。

研究如何写出更清晰、更有效 Prompt 的技巧,叫做提示词工程(Prompt Engineering)

常见手法包括:给出具体示例、要求分步骤思考、指定输出格式等。

System Prompt(系统提示词)

在用户正式输入之前,预先设定给模型的指令,用来定义模型的角色、行为规范、背景知识。

上文示例里的「你是一名专业的 Python 编程助手,只回答技术相关问题」就是典型的 System Prompt。

System Prompt 与用户消息的区别:System Prompt 设定「模型该怎么做」,用户消息提出「具体要做什么」。

把通用规范放进 System Prompt,能让多轮对话的回答风格保持一致。

温度(Temperature)

温度是控制模型输出随机性的参数,取值范围一般是 0 到 2。

温度越高,回答越「有创意」、越随机,也越容易出错;温度越低,回答越保守、越稳定。

取值范围输出特点适用场景
接近 0几乎确定、稳定可复现写代码、数据提取、事实问答
0.3 ~ 0.7有一定变化但可控通用对话、翻译、摘要
0.8 ~ 1.2富有创意、多样头脑风暴、文案、故事创作
大于 1.2高度随机,容易跑偏谨慎使用,仅特殊创意场景

上下文学习(In-Context Learning)

不需要对模型做任何微调,只要在 Prompt 里提供几个示例,模型就能「照猫画虎」完成新的类似任务。

这是 Prompt Engineering 中最常用的技巧之一,也叫 Few-shot Learning(少样本学习)。

思维链(Chain-of-Thought, CoT)

引导模型把复杂问题拆解成一步步的推理过程,再给出最终答案,而不是直接跳到结论。

实践证明,这种方式能显著提升模型在数学、逻辑推理等复杂任务上的准确率。

最简单的做法是在 Prompt 中加一句「请一步步思考」。

幻觉(Hallucination)

幻觉指模型生成看似合理、语言流畅,但实际上错误或凭空编造的内容。

这是 LLM 目前普遍存在的缺陷,原因是模型本质上在「续写最可能的文字」,而不是「查证事实」。

缓解幻觉的核心手段之一就是下文的 RAG:先检索真实资料,再让模型基于资料作答。


让模型连接外部世界

单纯的 LLM 只能依赖训练时学到的知识回答问题,既不知道最新信息,也无法主动做事。

本节这些技术,就是解决这两个短板的关键。

Embedding(嵌入)

Embedding 把文字、图片等内容转换成一串数字(向量)。

转换后,计算机就能通过计算向量之间的距离,判断两段内容在「语义」上是否相似。

这是搜索、推荐、RAG 等应用的底层基础。

向量数据库

向量数据库专门用来存储和检索 Embedding 向量,比如 Pinecone、Milvus、Chroma。

它能在海量向量中快速找到与查询语义最相似的内容,是构建 RAG 系统必不可少的组件。

RAG(检索增强生成)

RAG 全称 Retrieval-Augmented Generation。

它的工作流程是:先把外部知识库转成向量存进向量数据库;用户提问时检索出最相关的内容;再把检索结果连同问题交给模型生成答案。

RAG 能有效缓解幻觉,并让模型回答训练数据之外的新知识。

RAG 检索增强生成流程图

下面是一个不依赖外部向量库、用 OpenAI Embedding 加 numpy 实现的最小 RAG 示例,方便理解原理:

实例

# 安装:pip install openai numpy
from openai import OpenAI
import numpy as np
import os

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

# 模拟一个很小的"知识库":几段文档
documents = [
    "runoob 是一个提供编程教程的中文学习网站。",
    "RAG 通过检索真实资料再生成,能有效减少大模型的幻觉。",
    "Python 使用缩进来表示代码块,通常建议每级缩进 4 个空格。",
]

# 第一步:把知识库向量化(离线建库,只需做一次)
doc_resp = client.embeddings.create(input=documents, model="text-embedding-3-small")
doc_vectors = [d.embedding for d in doc_resp.data]

# 第二步:把用户问题向量化
question = "什么是 runoob?"
query_vector = client.embeddings.create(
    input=question, model="text-embedding-3-small"
).data[0].embedding

# 第三步:用余弦相似度找出最相关的文档
def cosine(a, b):
    a, b = np.array(a), np.array(b)
    return float(a @ b / (np.linalg.norm(a) * np.linalg.norm(b)))

scores = [cosine(query_vector, v) for v in doc_vectors]
best_doc = documents[int(np.argmax(scores))]  # 相似度最高的文档
print("检索到的资料:", best_doc)

# 第四步:把检索到的资料连同问题交给模型生成回答
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "请只根据下面提供的资料回答问题,资料中没有的信息不要编造。"},
        {"role": "user", "content": f"资料:{best_doc}\n\n问题:{question}"},
    ],
)
print("回答:", response.choices[0].message.content)

输出结果:

检索到的资料:runoob 是一个提供编程教程的中文学习网站。
回答:runoob(菜鸟教程)是一个提供编程教程的中文学习网站。

真实项目里,只需把第三步的「内存里算相似度」换成「调用向量数据库检索」,流程完全一致。

Function Calling(函数调用)

Function Calling 让大模型能够调用外部工具或 API 来完成任务,比如查询实时天气、执行数学计算、查数据库、发送邮件。

它弥补了模型「只能生成文字、不能执行动作」的缺陷,是大模型从聊天机器人进化为实用工具的关键一步。

它的运作方式是两轮交互:第一轮模型决定要调用哪个函数、传什么参数;你的代码真正执行函数后,第二轮把结果回传,让模型生成自然语言回答。

实例

from openai import OpenAI
import json
import os

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

# 定义模型可调用的工具(函数)
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "查询指定城市的实时天气",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {"type": "string", "description": "城市名称,例如:杭州"}
                },
                "required": ["city"],
            },
        },
    }
]

# 真正执行查询的本地函数(实际项目中替换为真实天气 API)
def get_weather(city):
    return f"{city} 今天晴,气温 28°C"

# 第一轮:把问题交给模型,模型决定调用哪个工具、传什么参数
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "杭州今天天气怎么样?"}],
    tools=tools,
)
tool_call = response.choices[0].message.tool_calls[0]
args = json.loads(tool_call.function.arguments)  # 解析出参数,例如 {"city": "杭州"}
result = get_weather(args["city"])  # 真正执行工具
print("工具执行结果:", result)

# 第二轮:把工具结果回传给模型,让它基于结果生成自然语言回答
follow_up = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "user", "content": "杭州今天天气怎么样?"},
        response.choices[0].message,  # 模型上一步"调用工具"的决定
        {"role": "tool", "tool_call_id": tool_call.id, "content": result},  # 工具返回结果
    ],
    tools=tools,
)
print("最终回答:", follow_up.choices[0].message.content)

输出结果:

工具执行结果:杭州 今天晴,气温 28°C
最终回答:杭州今天是晴天,气温大约 28°C,适合外出活动。

MCP(模型上下文协议)

MCP 全称 Model Context Protocol,是一种让大模型标准化连接外部工具和数据源的开放协议。

可以把它类比为「AI 领域的 USB 接口」:不同的工具和数据源只要遵循这个协议,就能被各种支持 MCP 的大模型统一调用。

它解决的是 Function Calling 时代「每接一个工具都要重复对接」的问题,减少了开发工作量。

Agent(智能体)

Agent 是基于大模型构建的、能自主规划任务、调用工具、执行多步骤操作的系统。

相比一问一答的对话,Agent 更像一个能独立完成复杂任务的「数字员工」,比如自动跑通「查资料 → 写代码 → 测试 → 修复 bug」整套流程。

它依赖的核心循环是 ReAct(Reason + Act):思考下一步、调用工具、观察结果、再思考,直到任务完成。

Agent 智能体工作循环图

多模态(Multimodal)

多模态指模型能同时理解和/或生成多种类型的数据,不局限于文本,还包括图像、音频、视频。

现在很多主流大模型都已经具备读图、分析图表等多模态能力。

技术解决的问题一句话理解
Embedding让计算机理解语义相似度把文字变成可计算的向量
向量数据库高效存储与检索向量语义搜索的专用仓库
RAG模型不知道或会编造最新知识先查资料再回答
Function Calling模型只能生成文字、不能执行动作让模型调用外部工具
MCP每接一个工具都要重复开发AI 工具的统一 USB 接口
Agent单轮对话无法完成复杂任务能自主规划多步的数字员工

让模型运行得更快、更省

模型能力越强,往往意味着体积越大、运行成本越高。

下面两个概念,就是为了让模型在实际部署时更轻量、更高效。

量化(Quantization)

量化把模型参数从高精度(比如 32 位浮点数)压缩到低精度(比如 8 位或 4 位整数)。

它能大幅减少模型占用的显存、提升推理速度,代价是精度有一定损失,但很多场景下可以接受。

模型蒸馏(Model Distillation)

蒸馏用一个能力强但体积大的「教师模型」的输出,去训练一个体积更小的「学生模型」。

目的是让小模型尽量学到大模型的能力,蒸馏后的模型体积更小、推理更快、部署成本更低。

对比项量化 Quantization蒸馏 Distillation
做什么压缩参数精度(32 位 → 8/4 位)用大模型教小模型
改变的是同一个模型的数值表示得到一个新的小模型
主要收益省显存、提速度小模型更强、更快
是否需要训练通常无需重新训练需要训练学生模型
典型场景把大模型塞进有限显存用小模型替代大模型上线

初学者学习路径

对初学开发者来说,不需要一次性吃透所有概念。

建议按照下面的顺序循序渐进,会比零散记概念更容易建立完整体系。

阶段掌握概念能做到
第一步LLM、Token、Prompt调用 API 完成对话
第二步Embedding、向量数据库、RAG给模型接入外部知识
第三步Function Calling、Agent让模型调用工具、自主完成任务
第四步微调、量化、蒸馏生产环境部署与优化

每个概念都不必死记定义,动手跑一遍本文的代码示例,理解会深得多。


核心术语速查表

把全文出现的关键术语汇总成一张表,按「所属环节」分组,方便随时查阅回顾。

术语英文 / 全称所属环节一句话解析
LLMLarge Language Model(大语言模型)基础概念基于海量文本训练的深度学习模型,本质是「预测下一个词」
TransformerTransformer基础概念几乎所有现代 LLM 共用的底层网络架构
注意力机制Attention / Self-Attention基础概念让模型动态关注输入中相关的词,从而理解上下文关系
TokenToken(词元)基础概念模型处理文本的最小单位;上下文长度与 API 计费都按它算
上下文窗口Context Window基础概念模型一次能「看到」和处理的最大 Token 数
参数量Parameters基础概念模型内部可学习的权重数量,常以 B(十亿)为单位
预训练Pre-training训练在海量无标注文本上学语言规律,奠定能力基础
SFTSupervised Fine-Tuning(监督微调)训练用问答对数据教模型按指令回答问题
RLHFReinforcement Learning from Human Feedback训练用人类打分校准模型输出,使其更符合人类偏好
RLAIFReinforcement Learning from AI Feedback训练用 AI 代替人类打分,降低标注成本
对齐Alignment训练让模型行为符合人类意图,做到有用、诚实、安全
微调Fine-tuning训练在通用模型上用领域数据继续训练,适配专业场景
MoEMixture of Experts(混合专家模型)训练多个专家子网络按需激活,参数大而推理快
PromptPrompt(提示词)使用输入给模型的指令或问题,直接决定输出质量
提示词工程Prompt Engineering使用研究如何写出更清晰、更有效 Prompt 的技巧
System PromptSystem Prompt(系统提示词)使用预先设定模型角色与行为规范的指令
温度Temperature使用控制输出随机性的参数,取值 0~2,越大越发散
上下文学习In-Context Learning使用在 Prompt 里给几个示例就照做,又称 Few-shot
思维链Chain-of-Thought(CoT)使用引导模型分步推理再给答案,提升复杂任务准确率
幻觉Hallucination使用模型生成流畅但错误或凭空编造的内容
EmbeddingEmbedding(嵌入)外部世界把内容转换成向量,用于衡量语义相似度
向量数据库Vector Database外部世界专门存储与检索向量的数据库,如 Milvus、Chroma
RAGRetrieval-Augmented Generation(检索增强生成)外部世界先检索真实资料再生成,缓解幻觉、补充新知识
Function CallingFunction Calling(函数调用)外部世界让模型调用外部工具或 API 执行实际动作
MCPModel Context Protocol(模型上下文协议)外部世界标准化连接工具的开放协议,AI 的「USB 接口」
AgentAgent(智能体)外部世界能自主规划、调用工具、多步执行复杂任务的系统
ReActReason + Act外部世界Agent 的核心循环:思考—行动—观察—再思考
多模态Multimodal外部世界同时理解和/或生成文本、图像、音频等多种数据
量化Quantization优化压缩参数精度(32 位→8/4 位),省显存、提速度
模型蒸馏Model Distillation优化用大模型教小模型,得到更小更快的部署模型