【图】解LLM:用图理解大语言模型
大语言模型(LLM)正在重塑我们与技术交互的方式,从聊天机器人到代码助手,背后都离不开一套精密的运作机制。要真正驾驭这些模型,光会调用接口还不够,理解其内核、能力边界以及工程化最佳实践,才是从“会用”到“用得好”的关键。下面从几个核心维度逐一拆解。
1. LLM 工作流程
flowchart LR
Input[输入文本] --> Token[Token化]
Token --> Embed[嵌入向量]
Embed --> Transformer[Transformer 处理]
Transformer --> Prob[概率分布]
Prob --> Decode[解码生成]
Decode --> Output[输出文本]
概念解释:

- Token化:把一句话拆成模型能识别的“单词碎片”——可能是完整单词、子词甚至单个字符。这一步决定了模型理解语言的颗粒度。
- 嵌入向量:给每个Token分配一个数学坐标,让模型能计算它们之间的语义亲疏。说白了,就是把离散的符号变成连续的数值空间。
- Transformer:通过自注意力机制,让模型在处理每个Token时都能“环顾四周”,捕捉长距离的依赖关系。这是现代LLM的基石。
- 概率分布:模型预测下一个最可能出现的Token是什么,输出一个概率列表。
- 解码生成:根据这个概率采样或直接选最可能的Token,逐字逐句地拼出完整回答。
2. Transformer 核心机制
flowchart TB
Input[输入Token] --> Embedding[词嵌入]
Embedding --> Positional[位置编码]
Positional --> Attention[自注意力层]
Attention --> FFN[前馈神经网络]
FFN --> Norm[层归一化]
Norm --> Output[输出概率]
概念解释:
自注意力机制是Transformer的灵魂。它让模型在处理每个Token时,都能同时参照输入中其他所有位置的信息,从而理解上下文。但自注意力本身不感知顺序——一句话正着读和反着读,Token的注意力矩阵可能一模一样。所以位置编码就派上用场了,它给每个Token打上“位置标签”,告诉模型谁先谁后。这两者结合,才让模型真正理解语序和语义。
3. LLM 四大核心能力
mindmap
root((LLM核心能力))
自然语言理解
意图识别
情感分析
实体提取
自然语言生成
文本创作
翻译
总结
推理能力
逻辑推理
代码生成
数学计算
上下文学习
多轮对话
少样本学习
角色一致
概念解释:
LLM远不止是“聊天机器”。它具备理解、生成、推理和上下文学习四大能力。其中上下文学习尤为实用——只需给几个示例,模型就能快速“理解”新任务,这也是Prompt Engineering能奏效的根本原因。你可以把它想象成一个“即插即用”的思维底座,在特定场景下稍加引导就能产出专业内容。
4. LLM 应用调用链路
sequenceDiagram
participant U as 用户
participant App as 前端应用
participant API as 后端API
participant LLM as LLM服务
participant Cache as 缓存
U->>App: 输入问题
App->>API: 发送请求
API->>Cache: 检查缓存
alt 缓存未命中
API->>LLM: 调用 chat.completions.create
LLM-->>API: 返回生成结果
API->>Cache: 写入缓存
end
API-->>App: 返回回答
App-->>U: 展示结果
概念解释:
生产环境下,前端不会直接调用LLM的API,而是通过后端袋里。为什么?后端可以统一处理认证、限流、缓存和日志,API密钥不会暴露在浏览器中,调用成本也能通过缓存有效降低。这个架构虽然多了一层,但安全性和可维护性都大幅提升,是工程化的标准做法。
5. Prompt Engineering 结构
flowchart LR
Role[角色定义] --> Context[上下文背景]
Context --> Instruction[具体指令]
Instruction --> Example[示例]
Example --> Constraint[约束条件]
Constraint --> Output[输出格式]
概念解释:
一个高质量的Prompt通常包含五个要素:角色定义(告诉模型以什么身份回答)、上下文背景(提供相关背景信息)、具体指令(明确任务目标)、示例(展示期望的输出风格)、约束条件(控制长度、格式、语气等)。这五个要素组合起来,就像给模型画了一张“精准的施工图”,减少了大量的试错成本。
6. 主流 LLM 服务商选型
flowchart TD
Start[选择LLM] --> Task{任务类型}
Task -->|复杂推理/代码| OpenAI[GPT-4 / GPT-4o]
Task -->|长文本/安全/分析| Claude[Claude-3 系列]
Task -->|多模态/成本敏感| Gemini[Gemini Pro]
Task -->|私有化/合规| Local[开源模型]
Task -->|简单任务/低成本| Turbo[GPT-3.5 / Haiku]
概念解释:
选模型就像选工具,没有万能选项。复杂推理和代码生成,OpenAI的GPT-4系列依然是标杆;长文本处理和安全合规,Claude系列表现突出;多模态和成本敏感场景,Gemini是个平衡点;如果涉及数据隐私或合规要求,开源模型(如Llama、Qwen)是必然选择。而简单任务(如摘要、翻译)用GPT-3.5或Haiku这类轻量模型,成本可以降低一个数量级。关键是根据任务复杂度、上下文长度、成本和安全需求做权衡。
7. 直接调用 vs 后端袋里调用
flowchart TB
subgraph Direct[直接调用]
D1[前端] --> D2[LLM API]
end
subgraph Proxy[后端袋里调用]
P1[前端] --> P2[后端API]
P2 --> P3[LLM API]
end
style Proxy fill:#d4edda,stroke:#28a745
概念解释:
直接调用虽然简单,但API密钥直接暴露在前端,安全隐患极大。后端袋里(即通过后端袋里调用)是生产环境的标准方案:所有敏感信息留在服务端,统一管理密钥、监控用量、实现缓存和限流。虽然多了一层开发成本,但换来的是安全性和可扩展性。在项目初期或许可以快速验证,但只要进入生产,后端袋里就是必须做的功课。