Skip to content

Commit 106e7ed

Browse files
🗑️ 更新大模型应用开发的核心概念
1 parent cc521d2 commit 106e7ed

5 files changed

Lines changed: 402 additions & 378 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Agent设计
2+
title: Harness设计
33
sidebar_position: 4
44
---
55

docs/docs/大模型应用/index.mdx

Lines changed: 24 additions & 209 deletions
Original file line numberDiff line numberDiff line change
@@ -3,221 +3,36 @@ sidebar_position: 12
33
title: 大模型应用
44
---
55

6-
大模型的应用,在目前阶段主要指Agent(智能体)开发。包括简易的Workflow
6+
大模型应用开发,本质上是在在一个充满随机性的模型之上,构建出一套具备确定性的工程架构(Harness Engine)
77

8-
Agent的三个核心板块:模型、流程、工具(拓展能力)。如何做好Agent业界存在两条鲜明路线之争。
8+
<HoverText text="记忆层" explanation="压缩、检索、召回、反思"/>
99

10-
**Big Model派**认为:关键是**把模型做强**。更强的推理、更好的指令遵循、更强的工具选择与规划能力,都来自模型本身;只要模型足够强,复杂任务自然能被“想清楚、做对”。因此重心应放在:用更大的规模、更好的数据、更优的算法去提升模型能力,Agent 层尽量薄,少写死逻辑,多交给模型决策。
10+
- 为其提供合适的上下文
11+
- 处理长任务时注意力漂移、
12+
- 久远对话持续消耗 Token
13+
- 保证核心约束 rules 文件持续生效。
14+
- 避免上下文腐化
15+
- 根据过去的失败经验,更新自己的“长期记忆”或“操作手册”。
1116

12-
**Harness派**认为:关键是**把马儿(模型)的“挽具”做好**——即围绕模型的编排层、流程与约束。模型会犯错、会幻觉、会不稳定,不能把所有责任都压在“模型自己想明白”上;应当用状态机、流水线、显式记忆、human-in-the-loop、多智能体路由等工程手段,把任务拆解、约束和纠错做在系统里,让模型在明确边界内发挥能力。
17+
编排层
18+
- 拆解复杂任务为多个小任务
19+
- 使用多个子智能体完成。或者调用多个模型再总结
20+
- 复杂任务根据上一步完成情况,动态调整任务拆解
1321

14-
| 维度 | Big Model派 | Harness派 |
15-
|------|----------|--------|
16-
| 重心 | 模型能力(推理、规划、指令遵循) | 编排与流程(状态机、记忆、人机协同) |
17-
| 对模型的信任 | 高:相信模型能自主决策 | 审慎:用流程和约束兜底 |
18-
| 工程复杂度 | Agent 层偏薄,逻辑少 | 挽具层较厚,流程与规则多 |
19-
| 典型思路 | 上更好的模型、少 prompt 工程 | 多智能体、显式记忆、human-in-the-loop |
22+
执行层
23+
- 提供沙盒、Mcp工具、文件操作、内部工具。
24+
- 通过 Skill 文件提供执行步骤。
25+
- 捕获环境的 Error Trace,并传回给反馈层。
2026

21-
:::tip
22-
为了更好的了解当下模型性能,我列举了几个模型排名网站:
27+
反馈层
28+
- 获取执行层的结果,确保反馈符合格式。(比如 JSON 是否合法)
29+
- 判断执行的结果是否真的解决了用户最初提出的问题。例如,用户要“找 5 篇相关论文”,执行层只找到了 3 篇,反馈层需要识别出这个缺口。
30+
- 核对事实,通过确定性手段检查执行层的数据来源是否真实存在,例如引用的文章不存在,代码无法执行。
31+
- 当执行层报错时,反馈层通过 Self-Correction 机制引导编排层重新规划。
32+
- LLM-as-a-Judge: 使用更强的模型评价弱模型的输出质量。
2333

24-
- OpenRouter :[调用排名](https://openrouter.ai/rankings)
25-
- ArtificialAnalysis :[模型智力评测](https://artificialanalysis.ai/leaderboards/models)
26-
- Hugging Face :[开源模型排名](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)
27-
:::
34+
<HoverText text="大模型越强" explanation="上下文越大、智力水平越高" /> 记忆层与编排层就可以越薄,执行层与反馈层的就可以越简单。
2835

29-
传统企业的AI应用遵循内部数据不外发的原则,高度依赖纯本地模型,主要来自大厂的开源模型或社区微调模型。
30-
31-
## 开源模型社区
32-
33-
开源模型社区是指围绕大型深度学习模型构建的开放协作平台和生态系统,除了开源模型还提供:数据集、教程、体验等功能。这些社区由研究人员、开发者、数据科学家、工程师及爱好者组成,他们共同致力于大模型的研究、开发、优化和应用。
34-
35-
社区具有明显的马太效应,即头部效应明显,头部模型拥有最多的资源,最新的技术,最多的用户。
36-
37-
所谓“开源模型”,通常指公开以下两个核心部分:
38-
39-
- 模型架构(Framework):即网络结构设计,如 Transformer 层堆叠方式、注意力机制等;
40-
- 参数权重(Weights):训练完成后保存的数值,决定模型的实际能力。
41-
42-
早期代表性开源模型如 LLaMA(Meta)、Qwen(通义)、ChatGLM(智谱)等,均完整发布架构代码和权重文件,推动了社区快速发展。这些模型的设计大多基于经典论文《Attention Is All You Need》提出的 Transformer 架构,成为当今绝大多数大模型的技术基石。
43-
44-
### 模型架构
45-
46-
#### 架构优化
47-
48-
在基础模型之上,各大厂商和研究机构进行了多样化改进:
49-
50-
- 调整网络层数或注意力头数;
51-
- 替换激活函数;
52-
- 优化位置编码;
53-
- 改进训练策略。
54-
55-
每个厂商都有自己的优化想法,由此催生了 Qwen、ChatGLM 等一系列具有各自特色的衍生模型。
56-
57-
以通义千问(Qwen)为例,其经历了从 Qwen → Qwen-2 → Qwen-2.5 → Qwen3 的持续迭代。每一代升级都伴随着架构优化、训练数据扩充、上下文长度提升或推理效率增强,体现了技术的快速演进。
58-
59-
不同的架构显然是不同的开源模型,大模型抄袭与套皮往往指的就是架构一致。下面的表格列出了头部公司及其主要模型代号:
60-
61-
| **国内** | **国外** |
62-
| :---- | :---- |
63-
| 阿里巴巴: 通义千问 (Qwen)/通义万象(Wan) | 谷歌: Gemini/Veo |
64-
| 字节跳动: 豆包 (coze)/即梦(Seedream) | OpenAI: GPT/Sora |
65-
| 深度求索: DeepSeek | Anthropic: Claude |
66-
| 智谱: 智谱清言 (GLM) | xAI: Grok |
67-
68-
### 参数权重
69-
70-
#### 参数多少
71-
72-
模型的参数量是影响性能的关键因素之一,常见规格包括:7B(70亿)、14B(140亿)、72B(720亿)等。
73-
74-
一般来说:参数越大,语言理解与生成能力越强,但对算力、显存要求也更高;参数越小,推理速度快、部署门槛低,适合端侧或边缘设备。
75-
76-
因此,厂商常发布同一架构下的多个参数版本,如 Qwen3-7B、Qwen3-14B、Qwen3-72B,满足不同场景需求。
77-
78-
:::info
79-
随着大模型走向商业化闭源,部分厂商开始淡化甚至隐藏具体参数信息,转而采用更具用户体验导向的命名方式。
80-
81-
- Qwen3-14B 可能对应名称为 Qwen3-Fast
82-
- Qwen3-72B 可能对应名称为 Qwen3-High
83-
:::
84-
85-
#### 权重大小
86-
87-
在预训练模型基础上,将权重大小使用特定领域数据进行进一步训练调整,称为微调(fine-tuning),用于提升模型在某类任务上的表现。微调后的模型也算一个新的开源模型。
88-
89-
- 全量微调(Full Fine-tuning):更新全部参数,适合有大量高质量数据的场景;
90-
- LoRA 微调(Low-Rank Adaptation):仅训练低秩矩阵,冻结主干权重,显著降低计算开销。
91-
92-
通过微调,可得到面向特定任务的专用模型,例如:
93-
94-
- Qwen3-Coder:擅长代码生成;
95-
- Qwen3-Math:专精数学推理
96-
97-
#### 权重精度
98-
99-
将权重精度从高精度浮点数(如 float64)转换为低精度表示:
100-
101-
float32 → float16 / bf16 → int8 / int4
102-
虽然会带来轻微精度损失(如 99.99 → 99),但能显著:
103-
104-
- 减少模型体积;
105-
- 降低内存占用;
106-
- 提升推理速度;
107-
- 降低部署门槛。
108-
109-
这个技术称为:模型量化(quantization)
110-
111-
量化后的模型也算新的开源模型。通常在名称中标注精度类型,例如:-fp16、-int8、-g16 等。
112-
113-
:::tip
114-
考虑到目前云端模型已经足够的便宜且持续更新,且有大量的社区量化版本。因此部分不提及量化细节,个人PC本地部署可以直接使用ollama。
115-
:::
116-
117-
### 演化过程
118-
119-
开源模型的完整演化过程可以用下图表示:
120-
121-
```mermaid
122-
graph LR
123-
A[Transformer基础架构<br/>Attention Is All You Need] --> B[基础模型]
124-
125-
B --> C1[架构优化]
126-
C1 --> D1[调整网络层数]
127-
C1 --> D2[替换激活函数]
128-
C1 --> D3[优化位置编码]
129-
130-
D1 & D2 & D3 --> E[版本迭代<br/>Qwen → Qwen-2 → Qwen3]
131-
132-
B --> F[参数规格]
133-
F --> G1[增加注意力头]
134-
F --> G2[增加网络层数]
135-
F --> G3[增加输入长度]
136-
137-
G1 & G2 & G3 --> G4[推理能力<br/>Qwen3-7B / Qwen3-72B]
138-
139-
B --> H[微调Fine-tuning]
140-
H --> I1[全量微调<br/>Full Fine-tuning]
141-
H --> I2[LoRA微调<br/>Low-Rank Adaptation]
142-
143-
I1 & I2 --> J1[特定领域<br/>Qwen3-Coder/Qwen3-Math]
144-
145-
B --> K[量化Quantization]
146-
K --> L1[fp16<br/>半精度]
147-
K --> L2[int8<br/>整数8位]
148-
K --> L3[int4<br/>整数4位]
149-
150-
L1 & L2 & L3 --> M[量化后的模型<br/>Qwen3-fp16/Qwen3-int8]
151-
152-
style A fill:#e1f5ff
153-
style B fill:#fff3e0
154-
style E fill:#f3e5f5
155-
style F fill:#e8f5e9
156-
style H fill:#fff9c4
157-
style K fill:#fce4ec
158-
159-
classDef base fill:#e1f5ff,stroke:#0288d1,stroke-width:2px
160-
classDef version fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
161-
classDef param fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
162-
classDef tune fill:#fff9c4,stroke:#f57c00,stroke-width:2px
163-
classDef quant fill:#fce4ec,stroke:#c2185b,stroke-width:2px
164-
165-
class A base
166-
class E version
167-
class G1,G2,G3 param
168-
class J1,J2 tune
169-
class L1,L2,L3 quant
170-
```
171-
172-
这四类演化中,架构是最重要的,目前可以分为三代(代表模型不是最早模型,而是知名度最高的模型):
173-
174-
| 代际 | 时间段 | 特征 | 代表模型 |
175-
| :---- | :---- | :---- | :---- |
176-
| 第一代 | 2020–2022 | 传统大模型应用 | GPT-3.5 |
177-
| 第二代 | 2023–2024 | 原生多模态应用 | GPT-4o |
178-
| 第三代 | 2025– | 高效架构(MoE)+ 智能体(Agent)范式 | Claude-4.5 |
179-
180-
### 开源模型推理
181-
182-
Hugging Face 是国外最著名的开源社区,提供了 `transformers` 库,可以方便地下载模型,地址:[https://huggingface.co/](https://huggingface.co/)
183-
184-
魔搭社区是阿里达摩院推出的开源社区,基于中国网络环境,`modelscope` 库,对标 Hugging Face 的 `transformers` 库。地址:[https://www.modelscope.cn/](https://www.modelscope.cn/)
185-
186-
以 Qwen 模型为例,下面展示如何使用 `transformers``modelscope` 库进行推理。其中`model_name`为模型地址。
187-
188-
```python showLineNumbers
189-
types = "huggingface" # 模型社区选择:"huggingface" 或 "modelscope"
190-
if types == "huggingface":
191-
from transformers import AutoModelForCausalLM, AutoTokenizer
192-
elif types == "modelscope":
193-
from modelscope import AutoModelForCausalLM, AutoTokenizer
194-
195-
model_size = "3B" # 3B 7B 14B 32B
196-
model_name = f"Qwen/Qwen2.5-{model_size}-Instruct"
197-
198-
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")
199-
tokenizer = AutoTokenizer.from_pretrained(model_name)
200-
201-
while True:
202-
prompt = input("输入你的问题: ")
203-
if prompt == "退出":
204-
break
205-
206-
messages = [
207-
{
208-
"role": "system",
209-
"content": "你是一个AI助手,由阿里巴巴云创建。你是一个乐于助人的助手。你总是以中文回答问题。",
210-
},
211-
{"role": "user", "content": prompt},
212-
]
213-
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
214-
model_input = tokenizer([text], return_tensors="pt").to(model.device)
215-
216-
generated_ids = model.generate(**model_input, max_new_tokens=512)
217-
generated_ids = [output[len(input_ids):] for input_ids, output in zip(model_input.input_ids, generated_ids)]
218-
219-
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
220-
print(response)
221-
```
36+
提示词工程和上下文工程融入在每个环节中,例如rule文件就属于提示词工程,Skill文件就属于上下文工程。
22237

22338
<DocCardList />

0 commit comments

Comments
 (0)