大模型基础

一、Transformer架构

Transformer 是 2017 年 Google 在论文《Attention Is All You Need》中提出的模型架构,它彻底改变了自然语言处理领域的格局。今天我们用到的 GPT、BERT、LLaMA 等大模型,底层都是 Transformer 架构。理解 Transformer,就是理解整个大模型时代的技术根基。

1、为什么需要 Transformer

在 Transformer 出现之前,NLP 领域的主流架构是 RNN(循环神经网络)和 LSTM(长短期记忆网络)。它们有一个致命的问题:串行计算。处理一个句子时,必须从第一个词开始,依次处理到最后一个词,前一个词的计算结果是后一个词的输入。这导致两个严重后果:

  • 训练速度慢:无法充分利用 GPU 的并行计算能力,序列越长训练越慢。一个包含 512 个 token 的句子,RNN 需要串行执行 512 步。
  • 长距离依赖丢失:当句子很长时,开头的信息在传递到末尾时会逐渐衰减。比如"我出生在中国,在北京上了大学,后来去了美国工作,但我的母语是\___\_",RNN 很难从这么远的距离捕捉到"中国"这个关键信息。

Transformer 的核心思路是:完全抛弃循环结构,用注意力机制让每个词都能直接关注到句子中的任何其他词。这样既能并行计算,又能捕捉任意距离的依赖关系。

2、整体架构

Transformer 采用经典的编码器-解码器(Encoder-Decoder)结构:

image.png

  • 编码器负责理解输入文本,将其转换为一组包含上下文信息的向量表示。原始论文中使用了 6 层编码器堆叠。
  • 解码器负责根据编码器的输出,逐步生成目标文本。它同样堆叠了 6 层,但比编码器多了一个"交叉注意力"模块,用于关注编码器的输出。

不同的大模型选择了不同的组合方式:GPT 系列只用解码器(Decoder-Only),BERT 只用编码器(Encoder-Only),T5 则使用完整的编码器-解码器结构。

3、自注意力机制(Self-Attention)

自注意力是 Transformer 的核心创新,它让输入序列中的每个位置都能"关注"到其他所有位置,从而捕捉词与词之间的关系。

计算过程:对于输入序列中的每个词向量,通过三个不同的线性变换生成三个向量:

Query(查询):代表"我想找什么信息"。 Key(键):代表"我能提供什么信息"。 Value(值):代表"我实际包含的信息"。注意力的计算公式是:

code
1Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) * V

其中 d_k 是 Key 向量的维度,除以 sqrt(d_k) 是为了防止点积值过大导致 softmax 梯度消失。

image.png

用一个直观的例子来理解:对于句子"小猫坐在垫子上,因为它很累",当模型处理"它"这个词时,通过注意力机制,"它"的 Query 会和所有词的 Key 做匹配,发现和"小猫"的 Key 相似度最高,于是将"小猫"的语义信息聚合过来。模型就理解了"它"指的是"小猫"。

4、多头注意力(Multi-Head Attention)

单一的注意力机制只能捕捉一种关联模式。多头注意力通过并行运行多组注意力计算,让模型能同时关注不同类型的语义关系。

image.png

比如在原始论文中,模型维度是 512,使用 8 个注意力头,每个头的维度就是 64。每个头独立学习不同的注意力模式:有的头可能专注于捕捉主语-谓语关系,有的头专注于捕捉修饰关系,有的头专注于捕捉位置相邻的词之间的关系。

5、位置编码(Positional Encoding)

因为 Transformer 抛弃了循环结构,它本身对词序是无感知的——"猫吃鱼"和"鱼吃猫"在没有位置信息的情况下,产生的注意力权重是一样的。

位置编码通过给每个位置的词向量加上一个表示位置信息的向量来解决这个问题。原始论文使用正弦/余弦函数生成位置编码:

PE(pos, 2i) = sin(pos / 10000^(2i/d_model)) PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

这种设计的好处是:不同位置的编码是唯一的,而且模型能学习到相对位置关系(因为 PE(pos+k) 可以表示为 PE(pos) 的线性函数)。

后来的模型提出了更好的位置编码方案,比如 RoPE(旋转位置编码)被用在 LLaMA 等模型中,它能更好地处理长序列。

6、残差连接与层归一化

Transformer 中每个子层(注意力层、前馈层)都使用了"Add & Norm"操作:

  • 残差连接(Add):将子层的输入直接加到子层的输出上,即 output = sublayer(x) + x。这解决了深层网络梯度消失的问题,让信息可以"跳过"某些层直接传递。
  • 层归一化(Norm):对每一层的输出做归一化处理,稳定训练过程,加速收敛。
7、前馈神经网络(FFN)

每一层的注意力输出之后,还会经过一个前馈神经网络。它由两个线性变换和一个激活函数组成:

FFN(x) = max(0, xW1 + b1)W2 + b2

FFN 在每个位置独立作用,不涉及位置之间的交互。它的作用是对注意力层提取的特征做进一步的非线性变换和信息整合。FFN 的隐藏层维度通常是模型维度的 4 倍(比如模型维度 512,FFN 隐藏层就是 2048)。

8、不同大模型架构的选择
架构类型代表模型特点适用场景
Encoder-OnlyBERT, RoBERTa双向注意力,能看到完整上下文文本分类、NER、语义理解
Decoder-OnlyGPT, LLaMA, Qwen单向注意力,自回归生成文本生成、对话、代码生成
Encoder-DecoderT5, BART编码器理解输入,解码器生成输出翻译、摘要、问答

目前大模型领域的主流趋势是 Decoder-Only 架构,GPT-4、Claude、LLaMA、Qwen 等都采用这种架构。原因在于它结构简单、扩展性好,通过增加参数量和训练数据就能持续提升能力。

二、大模型基础知识
1.模型相关
  • 大模型(Large Language Model, LLM):一种使用大量文本数据训练的 AI 模型,能够理解和生成自然语言。比如 GPT 系列、Claude、LLaMA 等。
  • 参数(Parameters):模型内部的“记忆单元”,决定模型的行为。参数越多,模型通常越强大,但训练成本也越高。
  • 权重(Weights): 参数的具体数值,是模型在训练中学习到的知识。
  • 微调(Fine-tuning):在已有大模型基础上,用特定领域的数据进一步训练,让模型在特定任务上表现更好。
  • 预训练(Pre-training):大模型在大量通用数据上训练的阶段,形成基础语言能力。
2.输入输出相关
  • 提示词 / Prompt:用户给模型的输入信息,指导模型生成想要的结果。
  • 系统提示(System Prompt): 一种特殊的提示词,告诉模型“你的身份是什么、应该如何回答、风格是什么”等,相当于模型的规则说明。
  • 上下文(Context): 模型在生成回答时参考的前文信息,包括用户输入和之前对话。
  • 响应(Response): 模型根据提示词生成的输出。
  • 温度(Temperature):控制模型输出随机性,值越低越保守,值越高越自由。
3.任务/能力相关
  • 文本生成(Text Generation): 模型根据提示生成文章、对话、代码等文本。
  • 文本理解(Text Understanding):模型能理解语义、做分类、总结、问答等。
  • 多模态(Multimodal):模型可以处理多种输入类型,比如文字 + 图片 + 音频。
  • 零样本/少样本学习(Zero-shot / Few-shot):模型在没有或只有少量示例的情况下完成任务的能力。
4.系统与工具相关
  • Agent(智能代理):模型结合规则、工具或插件执行复杂任务的系统,比如查数据、操作应用。
  • 工具调用(Tool Use):模型能够调用外部 API 或功能,比如计算、搜索、绘图。
  • 工作流(Workflow):将多个模型或工具操作串联,实现更复杂的自动化任务。
三、提示词工程
1.Meta-Prompt

提示(Prompt)是输入给大模型(LLM)的文本信息,用于明确地告诉模型想要解决的问题或完成的任务,也是大语言模型理解用户需求并生成相关、准确回答或内容的基础。Prompt在很大程度上决定了模型输出的质量与相关性。一个好的Prompt,能够最大程度地减少误解,使得模型准确理解用户的需求,生成高质量的响应。

如果我们把大模型比喻成一个刚来的实习生,那么Prompt就是我们给他指派的一个小需求,如果你只给他一句话的描述去实现需求,初来乍到的实习生会一头雾水,如果你把需求的背景、代码仓库、详细要求、建议告诉他,那么他可能可以做的超出你的预期,所以好的Prompt是很有必要的

2.ReAct范式

ReAct —— Reason + Act(边想边做),这是 Agent 世界的核心技术。 模型不是只在脑子里想,而是:

想一步 → 调一个工具 → 看结果 → 再想 → 再调用工具

ReAct风格demo

查一下 OpenAI CEO 是谁

Thought: I need current CEO, I should search

Action: search("OpenAI CEO")

Observation: OpenAI CEO is Sam Altman

Thought: I got the answer

Final Answer: Sam Altman

四、RAG、MCP、Skill

大模型本身只会「根据上文生成下文」,它不知道你公司的内部文档,也没法真正去调用一个接口、读写一个文件。把大模型变成能干活的 Agent(智能体),缺的就是这几块能力,本分类下的三个知识域正对应三个不同层面的补齐方案:

知识域补的是什么一句话
RAG模型不知道的知识让它在回答前先去查资料
MCP模型够不着的外部系统给它一个连接万物的标准接口
Agent Skill模型不会做的复杂流程把成套的做事方法教给它
1.三者的关系是?
  • RAG 解决「知识」问题。 大模型的知识停在训练截止那一刻,也从不包含你的私有数据。RAG 的做法是把文档切块、向量化存起来,提问时先检索出最相关的几段塞进上下文,让模型「开卷答题」。它改变的是模型看到什么
  • MCP 解决「连接」问题。 光会查还不够,Agent 还得能真正操作外部世界——查数据库、调 API、读本地文件。过去每接一个系统就要写一套对接代码,MCP 把这件事标准化成统一协议,像 USB 接口一样即插即用。它改变的是模型能碰到什么
  • Agent Skill 解决「方法」问题。 有了知识和工具,模型仍然不知道一件复杂任务该按什么步骤做、有哪些约定要遵守。Skill 把指令、脚本和资源打包成一个文件夹,Agent 按需发现并加载。它改变的是模型怎么做事
2.为什么它们能叠加?

三者作用在不同环节,因此是互补而非替代的关系。一个成熟的 Agent 往往同时用上:通过 MCP 连到公司的数据平台,用 RAG 检索出相关的表结构文档和历史工单,再按某个 Skill 里定义的规范流程去写 SQL、跑校验、出报告。

评论 (0)

登录后参与评论。

还没有评论,来做第一个。

登录后可以选中正文添加批注(仅自己可见)。

大模型基础