23. 大模型前沿方向
2025-2026 风向标:这些方向代表大模型下一波浪潮,面试中展示前沿认知是加分项
知识图谱
大模型前沿方向
├── 多模态大模型 ⭐⭐⭐ 必知
│ ├── Vision-Language Models
│ ├── 视频理解与生成
│ ├── 语音大模型
│ └── 原生多模态 vs 拼接多模态
├── 世界模型 ⭐⭐ 前沿
│ ├── 什么是世界模型
│ ├── 视频生成作为世界模型
│ └── 世界模型与 Agent
├── 具身智能 ⭐⭐ 前沿
│ ├── 大模型 + 机器人
│ ├── 视觉-语言-动作模型 (VLA)
│ └── 模拟器与现实迁移
├── 端侧大模型 ⭐⭐⭐ 生产必备
│ ├── 模型压缩(量化/剪枝/蒸馏)
│ ├── 推理框架(llama.cpp/MLX/MLC)
│ └── 手机/嵌入式部署
├── 合成数据 ⭐⭐⭐ 核心技术
│ ├── 数据飞轮
│ ├── Self-Instruct / Evol-Instruct
│ └── 合成数据质量控制
├── 模型合并 ⭐⭐ 新兴
│ ├── 线性插值 (LERP)
│ ├── SLERP / TIES / DARE
│ └── Frankenmerging
├── 可解释性 ⭐⭐ 学术热点
│ ├── 机械可解释性 (Mechanistic)
│ ├── 特征可视化
│ └── 探针 (Probing)
├── Test-Time Compute ⭐⭐⭐ 新范式
│ ├── 推理时扩展
│ ├── 树搜索 / Beam Search
│ └── Process Reward Model
├── AI for Science ⭐⭐ 交叉领域
│ ├── 蛋白质(AlphaFold)
│ ├── 药物发现
│ └── 数学推理
└── 自主进化 Agent ⭐⭐ 下一代
├── 自我改进
├── 经验积累
└── 开放式学习一、多模态大模型
1. ⭐⭐⭐ Q: 多模态大模型有哪几种架构?
答:
架构一:拼接式(Cross-Modal Encoder + LLM)
图像 → 视觉编码器 (ViT) → 投影层 → LLM
↑
文本 → Tokenizer ────────────────────┘
代表模型: LLaVA, Qwen-VL, InternVL
优点: 可复用已有 LLM,训练成本低
缺点: 模态融合不够深,视觉理解受限于投影层架构二:原生多模态(Native Multimodal)
图像/文本/音频 → 统一 Tokenizer → 统一 Transformer → 统一解码
代表模型: GPT-4o, Gemini, Fuyu
优点: 模态融合更深,支持任意模态交错
缺点: 训练复杂,需要大规模多模态数据架构三:混合专家式(MoE Multimodal)
图像 → 视觉编码器 → ┐
├→ MoE Router → 不同专家 → LLM
文本 → Tokenizer → ┘
代表模型: CogVLM, DeepSeek-VL
优点: 不同模态激活不同专家,效率高
缺点: 路由策略复杂各架构对比:
| 架构 | 代表 | 视觉理解 | 训练成本 | 推理速度 |
|---|---|---|---|---|
| 拼接式 | LLaVA | 中 | 低 | 快 |
| 原生多模态 | GPT-4o | 强 | 高 | 中 |
| 混合专家 | CogVLM | 强 | 中 | 快 |
2. ⭐⭐⭐ Q: 视频理解模型的挑战是什么?
答:
核心挑战:时序建模 + 计算成本
# 视频 = 多帧图像序列
# 问题:1分钟视频@30fps = 1800帧 → token数爆炸
# 解决方案一:均匀采样
frames = video[::30] # 每30帧取1帧 → 60帧
# 解决方案二:关键帧提取
keyframes = extract_keyframes(video) # 场景变化时取帧
# 解决方案三:时序压缩
# 用 3D 卷积或时序池化压缩帧序列
compressed = temporal_pool(frames, pool_size=4)
# 解决方案四:流式处理
# 逐帧/逐段处理,维护状态
for chunk in video.chunks(duration=10s):
state = model.process(chunk, state)2025 年视频理解模型:
| 模型 | 公司 | 特点 |
|---|---|---|
| GPT-4o | OpenAI | 原生视频理解,实时对话 |
| Gemini 1.5 Pro | 最长视频(1小时+) | |
| Qwen-VL-Max | 阿里 | 中文视频理解最强 |
| InternVL2 | 上海AI Lab | 开源视频理解 |
3. ⭐⭐ Q: 语音大模型的技术路线?
答:
路线一:级联式(ASR + LLM + TTS)
语音 → ASR(语音识别)→ 文本 → LLM → 文本 → TTS(语音合成)→ 语音
优点: 各模块独立优化,成熟稳定
缺点: 延迟高(3个模型串联),丢失语音中的情感/语调信息路线二:端到端语音 LLM
语音 → 音频编码器 → LLM → 语音解码器 → 语音
代表模型: GPT-4o(语音模式), Qwen-Audio, SALMONN
优点: 低延迟,保留语音情感信息
缺点: 训练数据难收集关键指标:
- 延迟:端到端 < 500ms(人类对话延迟 ~300ms)
- 情感保持:能识别并生成不同情感的语音
- 多语言:跨语言理解和生成
二、世界模型
4. ⭐⭐ Q: 什么是世界模型?和 LLM 有什么关系?
答:
世界模型:能够理解和模拟物理世界的 AI 模型
传统 LLM:
- 理解文本中的世界知识
- 但没有对物理世界的直接感知
- 无法预测"球从桌子掉落会怎样"
世界模型:
- 理解物理规律(重力、碰撞、因果)
- 可以预测未来状态
- 可以做"如果...会怎样"的推理2025 年世界模型进展:
| 模型 | 公司 | 方向 | 特点 |
|---|---|---|---|
| Sora | OpenAI | 视频生成 | 隐式学习物理规律 |
| Genie 2 | DeepMind | 3D环境生成 | 可交互的虚拟世界 |
| Cosmos | NVIDIA | 机器人世界模型 | 物理模拟器 |
| UniSim | 统一模拟 | 多模态世界模型 |
世界模型与 Agent 的关系:
# 传统 Agent: 试错学习
agent.act() → environment → reward → agent.learn()
# 世界模型 Agent: 在脑中模拟
agent.imagine(action_sequence) # 用世界模型预测结果
best_action = agent.select_best() # 选择最优
agent.act(best_action) # 执行三、具身智能
5. ⭐⭐ Q: 大模型如何赋能机器人?
答:
技术栈:
感知层: 视觉(摄像头)+ 触觉 + 力觉
↓
理解层: VLM(视觉语言模型)理解场景
↓
规划层: LLM 分解任务("把杯子放到桌上" → 子步骤)
↓
控制层: VLA(视觉语言动作模型)输出机器人动作
↓
执行层: 电机控制VLA(Vision-Language-Action)模型:
# 输入: 图像 + 语言指令
# 输出: 机器人动作序列
class VLAModel:
def __init__(self):
self.vision_encoder = ViT()
self.language_model = LLM()
self.action_decoder = MLP()
def predict_action(self, image, instruction):
# 视觉编码
visual_features = self.vision_encoder(image)
# 语言理解
language_features = self.language_model(instruction)
# 融合 + 动作预测
combined = concat(visual_features, language_features)
action = self.action_decoder(combined)
return action # [delta_x, delta_y, delta_z, gripper]代表性工作:
| 模型 | 机构 | 特点 |
|---|---|---|
| RT-2 | 首个大规模 VLA | |
| OpenVLA | Stanford | 开源 VLA |
| π0 | Physical Intelligence | 通用机器人基础模型 |
| GR-2 | 字节 | 视频生成预训练 |
四、端侧大模型
6. ⭐⭐⭐ Q: 如何在手机上运行大模型?
答:
技术路线:
1. 模型压缩
├── 量化: FP16 → INT4/INT3(体积减小 4-5x)
├── 剪枝: 移除不重要的权重
└── 蒸馏: 大模型知识迁移到小模型
2. 推理优化
├── llama.cpp: CPU 推理,支持 ARM NEON
├── MLX: Apple Silicon 专用
├── MLC LLM: 跨平台(Android/iOS/Web)
└── ExecuTorch: PyTorch 官方端侧方案
3. 硬件加速
├── NPU: 专用神经网络处理器
├── GPU: 移动端 GPU(Adreno/Mali/Apple GPU)
└── DSP: 高通 Hexagon实际性能(2025):
| 设备 | 模型 | 量化 | 速度 | 体验 |
|---|---|---|---|---|
| iPhone 16 Pro | Qwen2.5-3B | INT4 | ~20 tok/s | 可用 |
| iPhone 16 Pro | Llama3.2-1B | INT4 | ~40 tok/s | 流畅 |
| 骁龙8 Gen3 | Llama3.2-3B | INT4 | ~15 tok/s | 可用 |
| MacBook M3 | Llama3.1-8B | INT4 | ~50 tok/s | 流畅 |
手机 App 实现:
// iOS (Swift) 使用 MLX
import MLX
// 1. 加载量化模型
let model = try LlamaModel.load("qwen2.5-3b-int4.mlxfoundation")
// 2. 推理
let response = try model.generate(
prompt: "什么是机器学习?",
maxTokens: 256
)
// 3. 流式输出
for token in response.tokens {
print(token, terminator: "")
}五、合成数据
7. ⭐⭐⭐ Q: 合成数据如何驱动模型进化?
答:
数据飞轮:
强模型生成数据 → 训练弱模型 → 弱模型变强 → 生成更好的数据 → ...
实例:
GPT-4 生成指令数据 → 微调 Llama-7B → Llama-7B 变强 → 用于标注/生成合成数据方法:
方法一:Self-Instruct
# 用 LLM 自动生成指令数据
def self_instruct(seed_tasks, num_generate=1000):
tasks = seed_tasks.copy()
for _ in range(num_generate):
# 1. 随机选择几个种子任务作为示例
examples = random.sample(tasks, k=5)
# 2. 让 LLM 生成新任务
new_task = llm.generate(f"""
基于以下示例,生成一个新的指令任务:
{format_examples(examples)}
新任务:
""")
# 3. 生成回答
answer = llm.generate(new_task)
tasks.append({"instruction": new_task, "output": answer})
return tasks方法二:Evol-Instruct(进化指令)
# 逐步增加指令复杂度
def evol_instruct(task):
# 深度进化:增加约束
task = add_constraints(task)
# 广度进化:扩展领域
task = broaden_topic(task)
# 复杂化:增加推理步骤
task = add_reasoning_steps(task)
return task方法三:RLHF 合成偏好数据
# 用强模型生成偏好对
def generate_preference_data(question):
# 生成多个回答
responses = [llm.generate(question) for _ in range(5)]
# 用强模型评估
rankings = strong_model.rank(question, responses)
# 构造偏好对
chosen = responses[rankings[0]] # 最好的
rejected = responses[rankings[-1]] # 最差的
return {"prompt": question, "chosen": chosen, "rejected": rejected}合成数据的质量控制:
# 1. 多样性过滤
def filter_diversity(tasks, threshold=0.8):
embeddings = encode(tasks)
return deduplicate_by_similarity(embeddings, threshold)
# 2. 难度过滤
def filter_difficulty(tasks, easy_threshold=0.9, hard_threshold=0.1):
return [t for t in tasks if easy_threshold > difficulty(t) > hard_threshold]
# 3. 正确性验证
def verify_correctness(tasks):
return [t for t in tasks if verify_answer(t)]六、模型合并
8. ⭐⭐ Q: 模型合并的原理是什么?
答:
模型合并:将多个模型的权重合并成一个模型,无需训练
基本方法:
LERP(线性插值):
# 最简单的合并
def lerp(model_a, model_b, alpha=0.5):
merged = {}
for key in model_a.keys():
merged[key] = (1 - alpha) * model_a[key] + alpha * model_b[key]
return mergedSLERP(球面插值):
# 在高维球面上插值,保持向量方向
def slerp(v0, v1, t):
dot = np.dot(v0, v1)
theta = np.arccos(dot) * t
v2 = v1 - v0 * dot
v2 = v2 / np.linalg.norm(v2)
return v0 * np.cos(theta) + v2 * np.sin(theta)TIES(Trim, Elect, Sign-Merge):
def ties_merge(models, base_model):
# 1. Trim: 移除小变化
trimmed = [trim_small_changes(m - base_model) for m in models]
# 2. Elect: 投票决定每个参数的符号
signs = elect_signs(trimmed)
# 3. Merge: 按符号合并
merged = merge_by_signs(trimmed, signs)
return base_model + mergedDARE(Drop And REscale):
def dare_merge(models, drop_rate=0.5):
# 1. 随机丢弃部分参数
masks = [random_mask(m, drop_rate) for m in models]
# 2. 重新缩放保留的参数
rescaled = [m / (1 - drop_rate) for m, mask in zip(models, masks)]
# 3. 合并
return average(rescaled)应用场景:
- 合并不同能力的模型(编程 + 数学 + 中文)
- 合并不同语言的模型
- 合并不同风格的模型
七、可解释性
9. ⭐⭐ Q: 机械可解释性研究什么?
答:
机械可解释性(Mechanistic Interpretability):理解神经网络内部的工作机制
核心概念:
特征(Feature):
神经网络学习到的中间表示
例如:某个神经元可能编码"是否是代码"的特征叠加(Superposition):
神经网络在有限维度中编码更多特征
例如:768维空间可能编码了 10000+ 个特征电路(Circuit):
神经网络中完成特定功能的子图
例如:间接对象识别电路(IOI Circuit)研究方法:
# 1. 激活分析
def analyze_activations(model, input_text):
activations = {}
# 钩子函数捕获中间层激活
def hook(name):
def fn(module, input, output):
activations[name] = output.detach()
return fn
# 注册钩子
for name, layer in model.named_modules():
layer.register_forward_hook(hook(name))
model(input_text)
return activations
# 2. 特征可视化
def visualize_feature(model, layer_idx, feature_idx):
# 优化输入使特定特征最大化激活
input = torch.randn(1, seq_len, d_model, requires_grad=True)
for _ in range(1000):
output = model(input)
loss = -output[layer_idx, :, feature_idx].mean()
loss.backward()
input.data += 0.01 * input.grad
return tokenizer.decode(input.argmax(-1))
# 3. 消融实验
def ablation_study(model, layer_idx, neuron_idx):
# 移除特定神经元,观察性能变化
original_output = model(input)
# 置零特定神经元
with torch.no_grad():
model.layers[layer_idx].neurons[neuron_idx] = 0
ablated_output = model(input)
return original_output - ablated_output实际应用:
- 理解模型幻觉的来源
- 检测和移除有害行为
- 提高模型可控性
八、Test-Time Compute
10. ⭐⭐⭐ Q: Test-Time Compute Scaling 是什么?
答:
核心思想:推理时投入更多计算,换取更高准确率
传统方式:
输入 → 模型 → 输出(一次前向传播)Test-Time Compute:
输入 → 模型 → 多次推理 → 选择/聚合 → 最终输出
方法一:多次采样 + 投票
outputs = [model.generate(input) for _ in range(10)]
final = majority_vote(outputs)
方法二:树搜索
# 像下棋一样探索多个推理路径
best_path = beam_search(model, input, beam_width=10)
方法三:验证器引导
# 用验证器评估每个中间步骤
for step in reasoning_steps:
if verifier.score(step) < threshold:
backtrack()Process Reward Model (PRM):
class ProcessRewardModel:
"""评估推理过程的每一步"""
def score_step(self, problem, step, previous_steps):
# 不只评估最终答案,评估每一步的正确性
prompt = f"""
问题: {problem}
已有步骤:
{previous_steps}
当前步骤: {step}
这个步骤是否正确?(0-1分)
"""
return llm.evaluate(prompt)代表模型:
- OpenAI o1/o3:推理时使用思维链
- DeepSeek-R1:推理时动态调整思考深度
- Qwen-3:混合推理模式
九、AI for Science
11. ⭐⭐ Q: 大模型在科学研究中的应用?
答:
蛋白质结构预测:
AlphaFold2 (2020):
- 输入: 氨基酸序列
- 输出: 3D 蛋白质结构
- 准确率: 接近实验水平
ESMFold (2022):
- 单序列预测,无需多序列比对
- 速度: 比 AlphaFold 快 60x药物发现:
传统流程: 5-10年, $10亿+
AI加速: 1-2年, 成本降低 80%
应用:
1. 分子生成: 生成候选药物分子
2. 药物筛选: 预测分子活性
3. 药物优化: 优化分子性质
4. 临床试验: 患者招募、终点预测数学推理:
AlphaProof (2024):
- 解决 IMO 竞赛题(银牌水平)
- 结合形式验证 + LLM 推理
DeepSeek-Math:
- 数学推理能力接近 GPT-4
- 使用 GRPO 强化学习训练十、自主进化 Agent
12. ⭐⭐ Q: Agent 如何自我进化?
答:
传统 Agent:
固定能力 → 执行任务 → 完成/失败自进化 Agent:
执行任务 → 反思 → 学习 → 能力提升 → 执行更难任务
循环:
1. 执行任务
2. 反思成功/失败原因
3. 提取经验/技能
4. 更新记忆/工具/策略
5. 挑战更难任务实现架构:
class SelfEvolvingAgent:
def __init__(self):
self.skills = SkillLibrary()
self.memory = ExperienceMemory()
self.metacognition = MetaCognition()
async def run(self, task):
# 1. 执行任务
result = await self.execute(task)
# 2. 反思
reflection = await self.reflect(task, result)
# 3. 提取技能
if reflection["success"]:
skill = await self.extract_skill(task, result)
self.skills.add(skill)
# 4. 更新策略
await self.update_strategy(reflection)
return result
async def reflect(self, task, result):
"""反思执行过程"""
return await llm.generate(f"""
任务: {task}
结果: {result}
反思:
1. 哪些做得好?
2. 哪些可以改进?
3. 学到了什么?
""")
async def extract_skill(self, task, result):
"""从成功经验中提取可复用技能"""
return await llm.generate(f"""
基于以下成功经验,提取一个可复用的技能:
任务: {task}
执行过程: {result.process}
输出技能:
- 触发条件
- 执行步骤
- 注意事项
""")关键挑战:
- 灾难性遗忘:学习新技能忘记旧技能
- 知识漂移:错误经验积累
- 安全边界:防止有害的自我修改
面试高频问题
Q: 2025-2026 年最值得关注的大模型方向?
答:
| 方向 | 热度 | 产业化时间 | 为什么重要 |
|---|---|---|---|
| 端侧大模型 | 🔥🔥🔥 | 现在 | 隐私保护、离线使用、低延迟 |
| 多模态原生 | 🔥🔥🔥 | 现在 | 从文本到全模态理解 |
| Test-Time Compute | 🔥🔥🔥 | 现在 | 推理能力质变 |
| 合成数据 | 🔥🔥🔥 | 现在 | 解决数据瓶颈 |
| Agent 自进化 | 🔥🔥 | 1-2年 | 从工具到自主体 |
| 具身智能 | 🔥🔥 | 2-3年 | AI 进入物理世界 |
| 世界模型 | 🔥 | 3-5年 | 理解物理世界 |
Q: 多模态和 Agent 的关系?
答:
Agent 需要多模态感知:
├── 视觉: 看屏幕、看文档、看环境
├── 听觉: 听语音指令、听环境音
└── 触觉: 机器人操作时的力反馈
多模态需要 Agent 化:
├── 不只是"看图说话"
├── 而是"看到 → 理解 → 规划 → 行动"
└── 从被动理解到主动交互2025-2026 前沿更新
本节聚焦 2025-2026 年最新技术动态,每个方向均包含概念解释、技术原理、应用场景和代码示例。
13. ⭐⭐⭐ Q: 世界模型最新进展——Sora 之后发生了什么?
概念解释:
世界模型(World Model)是能够理解和模拟物理世界规律的 AI 模型,核心能力包括物理规律理解、未来状态预测、因果关系推理。2024-2025 年以 Sora 为代表的视频生成模型被 OpenAI 定义为"世界模拟器",标志着世界模型从学术概念走向工程实现。
技术原理:
Sora 架构核心:
1. 视频压缩 → 使用 VAE 将视频编码到潜空间
2. 时空 Patch → 将潜空间特征切分为时空 Patches(类比 ViT 的图像 Patch)
3. Diffusion Transformer → 在潜空间做去噪生成
4. 解码器 → 将潜空间还原为视频
关键创新:
- 可变分辨率/时长/宽高比(不再固定 256x256)
- 大规模训练数据(视频+图片+文本联合训练)
- 从视频生成隐式学习物理规律(重力、碰撞、遮挡)2025 世界模型进展全景:
| 模型 | 公司 | 方向 | 核心突破 |
|---|---|---|---|
| Sora Turbo | OpenAI | 视频生成 | 1080p、20秒、物理一致性 |
| Gen-3 Alpha | Runway | 视频生成 | 电影级画面、角色一致性 |
| Kling 1.6 | 快手 | 视频生成 | 中文场景、长视频 |
| Genie 2 | DeepMind | 3D环境生成 | 可交互虚拟世界,一键生成3D场景 |
| Cosmos | NVIDIA | 物理世界模型 | 面向机器人/自动驾驶的物理模拟 |
| Veo 2 | 视频生成 | 4K分辨率、物理精确性 | |
| Hailuo MiniMax | MiniMax | 视频生成 | 长视频连贯性、角色控制 |
# 世界模型用于 Agent 决策的伪代码
class WorldModelAgent:
def __init__(self, world_model):
self.world_model = world_model # Sora/Cosmos 类视频生成模型
def plan(self, current_state, goal):
# 1. 用世界模型"想象"多种行动方案的未来
candidate_actions = self.generate_action_candidates(current_state, goal)
futures = []
for action_seq in candidate_actions:
# 世界模型预测执行后的未来状态
future_video = self.world_model.predict(
current_state=current_state,
action=action_seq,
num_frames=60
)
score = self.evaluate_future(future_video, goal)
futures.append((action_seq, score, future_video))
# 2. 选择最优方案
best = max(futures, key=lambda x: x[1])
return best[0] # 返回最优行动序列应用场景:
- 自动驾驶:Cosmos 模拟极端场景(暴雨、行人突然横穿),替代真实路测
- 机器人训练:Genie 2 生成可交互3D环境,让机器人在虚拟世界学习
- 内容创作:Sora/Kling 生成短视频、广告、电影预览
- 游戏 NPC:NPC 拥有世界模型,行为更真实自然
面试要点:世界模型 = 视频生成的"高阶应用"。不仅是生成好看视频,而是从中获得对物理世界的理解能力,赋能 Agent 和机器人。
14. ⭐⭐⭐ Q: 合成数据方法论最新进展?如何构建数据飞轮?
概念解释:
合成数据(Synthetic Data)是用 AI 模型生成的训练数据,而非人工标注。2025 年的核心认知是:数据质量 > 数据数量,合成数据已成为大模型训练的核心基础设施。
技术原理——三大方法论:
方法一:Self-Instruct(自我指令)
# 核心思路:用 LLM 自己生成指令-回答对
# 2025 改进版:多轮迭代 + 质量过滤
def self_instruct_v2(seed_tasks, model, num_rounds=3):
all_tasks = list(seed_tasks)
for round_i in range(num_rounds):
new_tasks = []
for _ in range(1000):
# 采样不同数量的示例(增加多样性)
k = random.randint(2, 8)
examples = random.sample(all_tasks, k=k)
# 生成新指令(带去重)
instruction = model.generate(
f"基于以下示例生成一条不同的指令:\n{format(examples)}\n"
f"注意:与已有指令 {random.sample(all_tasks, 3)} 不要重复"
)
# 用强模型生成回答
response = model.generate(instruction)
# 质量过滤:长度、重复率、格式
if is_high_quality(instruction, response):
new_tasks.append({"instruction": instruction, "response": response})
all_tasks.extend(new_tasks)
print(f"Round {round_i}: {len(new_tasks)} new tasks, total {len(all_tasks)}")
return all_tasks方法二:Evol-Instruct(进化指令)——WizardLM 系列
# 核心思路:逐步进化指令的复杂度
EVOL_PROMPTS = {
"deepen": "请增加这个问题的深度,要求更深入的推理:{instruction}",
"constrain": "请为这个问题添加更多约束条件:{instruction}",
"broaden": "请将这个问题扩展到更广泛的领域:{instruction}",
"concretize": "请将这个抽象问题具体化:{instruction}",
"reasoning": "请为这个问题增加多步推理要求:{instruction}",
}
def evol_instruct(task, model, num_evolutions=3):
current = task
for _ in range(num_evolutions):
# 随机选择进化策略
strategy = random.choice(list(EVOL_PROMPTS.keys()))
prompt = EVOL_PROMPTS[strategy].format(instruction=current["instruction"])
current["instruction"] = model.generate(prompt)
# 用强模型生成进化后指令的回答
current["response"] = model.generate(current["instruction"])
return current方法三:数据飞轮(Data Flywheel)——2025 核心范式
# 数据飞轮:模型自身生成数据 → 训练 → 变强 → 生成更好数据 → ...
# 关键在于质量控制和多样性保障
class DataFlywheel:
def __init__(self, model, seed_data):
self.model = model
self.data = seed_data
def run_cycle(self):
# Step 1: 模型生成候选数据
candidates = self.model.generate_candidates(
num_samples=10000,
temperature=0.8, # 保证多样性
)
# Step 2: 多维度过滤
filtered = self.multi_filter(candidates)
# - 正确性验证(代码执行、数学验算)
# - 多样性去重(embedding 聚类)
# - 难度筛选(太简单/太难都丢弃)
# - 安全性检查(有害内容过滤)
# Step 3: 合并到训练集
self.data.extend(filtered)
# Step 4: 训练更强的模型
self.model = train(self.model, self.data)
# Step 5: 评估进化效果
improvement = evaluate(self.model)
return improvement
def multi_filter(self, candidates):
results = []
for c in candidates:
if not verify_correctness(c): continue # 正确性
if is_too_similar(c, results): continue # 多样性
if difficulty(c) < 0.2 or difficulty(c) > 0.95: continue # 难度
if contains_harmful(c): continue # 安全性
results.append(c)
return results2025 合成数据实战案例:
| 案例 | 方法 | 效果 |
|---|---|---|
| DeepSeek-R1 | RL + 合成推理数据 | 671B MoE 推理能力比肩 o1 |
| Qwen2.5 | 多轮 Evol-Instruct | 中文能力大幅提升 |
| Phi-4 | 合成教科书数据 | 14B 参数超越同级模型 |
| Llama 3 | 合成数据 90%+ | 训练数据中合成占比超90% |
应用场景:
- 垂直领域:医疗/法律/金融缺少公开数据,用合成数据填充
- 多语言:低资源语言(如越南语、泰语)的数据合成
- 推理增强:合成思维链数据训练推理能力
- 安全对齐:合成有害内容用于训练模型拒绝能力
15. ⭐⭐ Q: 模型合并(Model Merging)最新技术?
概念解释:
模型合并是将多个不同能力的模型权重融合为一个模型的技术,无需额外训练。2025 年已成为开源社区的"炼丹"利器,可以在 Hugging Face 上通过 MergeKit 一键合并。
技术原理——2025 主流方法:
DARE(Drop And REscale)—— 2025 最流行
import torch
import random
def dare_merge(task_vectors, drop_rate=0.9):
"""
task_vector = finetuned_model - base_model(微调带来的变化量)
DARE 的关键洞察:大部分参数变化是冗余的,可以随机丢弃
"""
merged_delta = None
for i, tv in enumerate(task_vectors):
# 1. 生成随机 mask(丢弃大部分参数)
mask = {k: (torch.rand_like(v) > drop_rate).float()
for k, v in tv.items()}
# 2. 丢弃后重新缩放(保持期望不变)
scaled_tv = {k: v * mask[k] / (1 - drop_rate)
for k, v in tv.items()}
# 3. 累加合并
if merged_delta is None:
merged_delta = scaled_tv
else:
merged_delta = {k: merged_delta[k] + scaled_tv[k]
for k in merged_delta}
# 4. 加回基础模型
merged_model = {k: base_model[k] + merged_delta[k] / len(task_vectors)
for k in base_model}
return merged_modelTIES-Merging(Trim, Elect, Sign)
def ties_merge(task_vectors, trim_rate=0.2):
"""
解决多个模型合并时参数冲突的问题
"""
# Step 1: TRIM - 移除小幅度变化(噪声)
trimmed = []
for tv in task_vectors:
threshold = quantile(abs(tv), trim_rate)
trimmed.append({k: v * (abs(v) >= threshold)
for k, v in tv.items()})
# Step 2: ELECT - 对每个参数位置投票决定符号
# 多数模型同意正方向就用正,否则用负
stacked = stack(trimmed) # [num_models, *shape]
pos_count = (stacked > 0).sum(dim=0)
neg_count = (stacked < 0).sum(dim=0)
signs = torch.where(pos_count >= neg_count, 1.0, -1.0)
# Step 3: MERGE - 按投票符号对齐后求平均
aligned = stacked * signs # 对齐符号
merged = (aligned * (aligned * signs > 0)).sum(dim=0) / \
(aligned * signs > 0).sum(dim=0).clamp(min=1)
return base_model + merged * signsFrankenmerging(层拼接)
def frankenmerge(models, num_layers=32):
"""
不同模型的层直接拼接(像弗兰肯斯坦缝合怪)
例:模型A的前16层 + 模型B的后16层
"""
merged_layers = []
for i in range(num_layers):
if i < num_layers // 2:
merged_layers.append(models[0].layers[i])
else:
merged_layers.append(models[1].layers[i])
# 用新的 token embedding 和 lm_head(可从任一模型取)
return Model(layers=merged_layers, embed=models[0].embed, head=models[1].head)MergeKit 使用(实际工具):
# merge_config.yaml - Hugging Face MergeKit 配置
models:
- model: meta-llama/Llama-3-8B-Instruct
parameters:
weight: 0.4
- model: Qwen/Qwen2.5-7B-Instruct
parameters:
weight: 0.3
- model: deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
parameters:
weight: 0.3
merge_method: dare_linear
base_model: meta-llama/Llama-3-8B-Instruct
parameters:
density: 0.6
normalize: true
dtype: bfloat16应用场景:
- 多能力合并:把编程模型 + 数学模型 + 中文模型合并为全能模型
- 风格融合:合并不同对话风格的模型(严谨版 + 幽默版)
- 竞赛利器:Hugging Face Open LLM Leaderboard 上大量高分模型是合并产物
16. ⭐⭐⭐ Q: Test-Time Compute Scaling 的最新进展?
概念解释:
Test-Time Compute(推理时计算扩展)的核心思想是:在推理时投入更多计算资源,换取更高准确率。这是 2024-2025 年最重要的范式转变之一,由 OpenAI o1 和 DeepSeek-R1 引领。
传统推理 vs Test-Time Compute:
传统推理:
输入 → [1次前向传播] → 输出
计算量固定,性能上界 = 模型能力
Test-Time Compute:
输入 → [多次推理 + 搜索 + 验证] → 输出
计算量可调,性能随计算量增加而提升
类比:
- 传统推理 = 考场上写完就交卷
- Test-Time Compute = 反复检查、草稿纸演算、多种解法对比技术原理——三大流派:
流派一:思维链扩展(Chain-of-Thought Scaling)
# o1/o3/R1 的核心:让模型"思考更久"
# 模型自动生成详细的推理过程(思维链),然后得出答案
# DeepSeek-R1 的实现原理:
# 1. 用 RL(GRPO)训练模型在回答前先输出思考过程
# 2. 训练信号:答案正确 + 思维链合理 → 奖励
# 3. 模型学会:简单问题短思考,复杂问题长思考
def r1_style_inference(model, question, max_thinking_tokens=8192):
# 模型在 <think> 标签中自由思考
prompt = f"{question}\n<think>\n"
thinking = ""
for _ in range(max_thinking_tokens):
token = model.generate_next(prompt + thinking)
if token == "</think>":
break
thinking += token
# 思考结束后生成最终答案
answer = model.generate(prompt + thinking + "</think>\n")
return {"thinking": thinking, "answer": answer}流派二:搜索 + 验证器(Search + Verifier)
# MCTS/Beam Search + Process Reward Model (PRM)
# 像下棋一样探索推理路径
class TestTimeSearch:
def __init__(self, model, verifier):
self.model = model # 生成模型
self.verifier = verifier # 过程奖励模型(PRM)
def solve(self, question, num_paths=16):
all_solutions = []
for _ in range(num_paths):
# 生成一条推理路径
path = []
state = question
while not is_terminal(state):
# 生成下一步(多个候选)
candidates = self.model.generate_steps(state, n=4)
# 用 PRM 评分
scores = [self.verifier.score(question, path + [c])
for c in candidates]
# 选择最高分的步骤(贪心)或按概率采样
chosen = candidates[argmax(scores)]
path.append(chosen)
state = path[-1]
final_answer = extract_answer(path[-1])
path_score = self.verifier.score_path(question, path)
all_solutions.append((final_answer, path_score, path))
# 投票选出最终答案
best = max(all_solutions, key=lambda x: x[1])
return best[0]流派三:自适应计算深度
# 简单问题少算,复杂问题多算(类似 early exit)
# Qwen-3 的 Thinking Mode 混合策略
def adaptive_thinking(model, question):
# 先用快速模式尝试
quick_answer = model.generate(question, thinking_budget=512)
if is_confident(quick_answer):
return quick_answer # 简单问题,快速返回
# 困难问题,加大思考力度
deep_answer = model.generate(question, thinking_budget=8192)
return deep_answer2025 代表模型对比:
| 模型 | 公司 | 方法 | 数学(AIME) | 编程(Codeforces) |
|---|---|---|---|---|
| o1 | OpenAI | CoT + RL | 83.3% | 1807 Elo |
| o3 | OpenAI | CoT + 搜索 | 96.7% | 2727 Elo |
| R1 | DeepSeek | GRPO + CoT | 79.8% | 1531 Elo |
| Qwen-3 | 阿里 | 混合推理 | ~85% | ~1700 Elo |
| Gemini 2.5 | 多步推理 | ~90% | ~2100 Elo |
面试要点:
- Test-Time Compute 是训练时扩展(Scaling Law)之外的新扩展维度
- PRM(过程奖励模型)是关键组件——评估每一步而非只看最终答案
- DeepSeek-R1 证明开源也能实现 Test-Time Compute
- 实际部署时需要权衡:思考深度 vs 延迟 vs 成本
17. ⭐⭐⭐ Q: 端侧模型最新进展?如何在手机上跑大模型?
概念解释:
端侧模型(On-Device LLM)指在手机、IoT 设备等边缘硬件上直接运行的大语言模型,无需联网调用云端 API。2025 年端侧模型已从"能跑"进化到"好用"。
2025 端侧模型全景:
| 模型 | 参数量 | 公司 | 特点 | 手机速度 |
|---|---|---|---|---|
| Phi-4-mini | 3.8B | Microsoft | 合成数据训练,推理强 | ~25 tok/s |
| Gemma 3 | 1B/4B/12B | 多模态端侧 | ~30 tok/s | |
| MiMo-7B | 7B | 小米 | 推理能力强,性价比高 | ~15 tok/s |
| Llama 3.2 | 1B/3B | Meta | 量化后极快 | ~40 tok/s |
| Qwen2.5 | 0.5B/1.5B/3B | 阿里 | 中文最强小模型 | ~25 tok/s |
| SmolLM2 | 135M/360M/1.7B | HuggingFace | 极小模型 | ~80 tok/s |
技术原理——端侧部署全栈:
# 端侧部署技术栈(从模型到 App)
# 1. 模型量化(最关键的一步)
# FP16 → INT4:模型体积缩小 4x,速度提升 2-3x
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_quant_type="nf4", # NF4 比普通 INT4 精度更高
bnb_4bit_use_double_quant=True, # 双重量化,进一步压缩
)
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2.5-3B-Instruct",
quantization_config=quantization_config,
)
# 2. GGUF 格式转换(llama.cpp 生态)
# 命令行: python convert_hf_to_gguf.py model --outtype q4_k_m
# q4_k_m: 4-bit 量化,精度和速度的最佳平衡
# 3. 手机端推理代码(使用 llama.cpp 的 Android/iOS 绑定)
# Python 模拟:
def mobile_inference(prompt, model_path="model-q4_k_m.gguf"):
# 加载量化模型
model = Llama(model_path, n_ctx=2048, n_threads=4)
# 流式生成
tokens = model.generate(prompt, max_tokens=256, temperature=0.7)
for token in tokens:
yield token # 逐 token 输出,用户体感流畅手机部署架构:
┌──────────────────────────────────────┐
│ 手机 App (UI) │
├──────────────────────────────────────┤
│ 推理引擎 (llama.cpp / MLC / MLX) │
├──────────────────────────────────────┤
│ 量化模型 (INT4 GGUF / AWQ) │
├──────────────────────────────────────┤
│ 硬件加速 │
│ ├── Apple Neural Engine (iPhone) │
│ ├── Qualcomm NPU (Android) │
│ ├── GPU (Adreno / Mali / Apple) │
│ └── CPU (ARM NEON 兜底) │
└──────────────────────────────────────┘MiMo-7B 深度解读(小米):
# MiMo 的核心创新
# 1. 大规模合成推理数据(数学 + 代码)
# 2. 多阶段 RL 训练
# 3. 7B 参数下推理能力超越 32B 模型
# MiMo 训练流程(简化)
training_stages = [
{"stage": "预训练", "data": "万亿token通用语料"},
{"stage": "SFT", "data": "百万级高质量指令数据"},
{"stage": "RL-1", "data": "数学推理RL,GRPO算法"},
{"stage": "RL-2", "data": "代码推理RL,在线验证"},
{"stage": "RL-3", "data": "通用能力RL,保持平衡"},
]
# 结果:AIME 2024 得分 ~68%,超越 QwQ-32B-Preview应用场景:
- 隐私保护:敏感数据(聊天记录、健康数据)不离开手机
- 离线使用:无网络时也能用 AI(飞机模式、偏远地区)
- 低延迟:端侧推理延迟 < 100ms,无需网络往返
- 省成本:无需付云端 API 费用
面试要点:端侧部署三板斧 = 量化(INT4/NF4)+ 推理框架(llama.cpp)+ 硬件加速(NPU)。
18. ⭐⭐ Q: Agentic Workflow 和 Agent 有什么区别?
概念解释:
这是 2025 年面试高频区分题。很多人混淆二者,但它们有本质区别:
Agent(智能体):
- 能自主感知环境、制定计划、执行行动
- 有自主决策权,可以改变执行路径
- 核心特征:自主性(Autonomy)
Agentic Workflow(智能体化工作流):
- 用 LLM 驱动的多步骤工作流
- 预定义的流程 + LLM 做每个节点的决策
- 核心特征:流程化(Orchestrated)详细对比:
| 维度 | Agentic Workflow | Agent |
|---|---|---|
| 控制流 | 预定义(人设计流程) | 自主决策(模型决定下一步) |
| 确定性 | 较高(可预测执行路径) | 较低(路径不确定) |
| 可靠性 | 高(边界清晰) | 较低(可能偏离目标) |
| 灵活性 | 低(流程固定) | 高(可应对意外) |
| 适用场景 | 已知流程的自动化 | 开放式任务 |
| 示例 | 自动化客服流水线 | 自主研究助手 |
| Andrew Ng定义 | "Workflow" | "Agent" |
代码示例——对比两种范式:
# ===== Agentic Workflow(工作流)=====
# 人工设计的多步骤流程,LLM 负责每步的执行
def agentic_workflow(user_request):
"""自动化内容创作工作流"""
# Step 1: 研究(固定流程)
research = llm.call(
f"请研究以下主题并列出关键要点:{user_request}"
)
# Step 2: 写大纲(固定流程)
outline = llm.call(
f"基于以下要点,写一个详细大纲:{research}"
)
# Step 3: 人工审核(流程中的检查点)
if not human_review(outline):
outline = llm.call(f"根据反馈修改大纲:{human_feedback}")
# Step 4: 写初稿(固定流程)
draft = llm.call(f"根据大纲写初稿:{outline}")
# Step 5: 润色(固定流程)
final = llm.call(f"润色以下文章:{draft}")
return final
# 特点:每一步是确定的,流程是人设计的
# ===== Agent(智能体)=====
# Agent 自主决定如何完成任务
class Agent:
def __init__(self):
self.tools = {
"search": web_search,
"code": code_interpreter,
"write": document_writer,
"email": email_sender,
}
self.memory = []
async def run(self, task: str):
"""Agent 自主决定执行什么、怎么执行"""
while not self.is_task_complete():
# Agent 自主决定下一步
plan = await self.think(
f"任务: {task}\n"
f"已完成: {self.memory}\n"
f"可用工具: {list(self.tools.keys())}\n"
f"下一步做什么?"
)
# Agent 选择工具和参数
tool_name, args = self.parse_plan(plan)
# 执行(可能失败,Agent 会自行处理)
try:
result = await self.tools[tool_name](**args)
self.memory.append({"action": tool_name, "result": result})
except Exception as e:
# Agent 自主决定如何处理错误
self.memory.append({"error": str(e)})
return self.get_final_answer()
# 特点:没有预定义流程,Agent 自己决定每一步Andrew Ng 的四种 Agentic 设计模式(2025):
1. Reflection(反思):
生成 → 自我评估 → 修正 → 输出
2. Tool Use(工具使用):
LLM 判断需要什么工具 → 调用 → 整合结果
3. Planning(规划):
任务分解 → 分步执行 → 动态调整
4. Multi-Agent(多智能体):
多个 Agent 协作 → 分工 → 合并结果
这四种模式都可以用 Workflow 或 Agent 方式实现:
- Workflow:预定义在哪些步骤用哪些模式
- Agent:让 Agent 自己决定用哪种模式实际选择建议:
# 选择 Workflow 的场景:
# - 流程明确(如:收到邮件 → 分类 → 自动回复)
# - 需要高可靠性(如:财务审批流程)
# - 需要可审计(每步可追溯)
# 选择 Agent 的场景:
# - 任务开放(如:帮我调研 X 领域并写报告)
# - 需要创造性(如:设计方案、头脑风暴)
# - 需要应对不确定性(如:处理用户的各种意外输入)
# 2025 最佳实践:Workflow + Agent 混合
# 外层用 Workflow 控制整体流程
# 内层关键节点用 Agent 处理开放性子任务
def hybrid_approach(user_request):
# Workflow 控制大流程
plan = create_plan(user_request) # Agent 自主规划
human_approve(plan) # 人工审核(Workflow 检查点)
for step in plan:
if step.is_open_ended:
# 开放性步骤 → 交给 Agent
result = agent.run(step.description)
else:
# 确定性步骤 → Workflow 直接执行
result = workflow.execute(step)
if needs_review(result):
human_review(result) # Workflow 检查点
return compile_results()面试要点:
- Workflow = 确定性流程 + LLM 执行,适合已知任务
- Agent = 自主决策 + 工具调用,适合开放任务
- 2025 趋势:混合架构(Workflow 编排 + Agent 节点)是最佳实践
- Andrew Ng 的建议:先用 Workflow,不够再升级为 Agent
2025-2026 前沿面试总结
| 题号 | 方向 | 核心一句话 | 面试频次 |
|---|---|---|---|
| Q13 | 世界模型 | Sora = 世界模拟器,视频生成 → 物理理解 | ⭐⭐ |
| Q14 | 合成数据 | 数据飞轮 = 模型生成数据 → 训练 → 变强 → 循环 | ⭐⭐⭐ |
| Q15 | 模型合并 | DARE/TIES 无需训练合并多模型能力 | ⭐⭐ |
| Q16 | Test-Time Compute | 推理时多算 = 思考更久 → 答案更好 | ⭐⭐⭐ |
| Q17 | 端侧模型 | 量化 + 推理框架 + NPU = 手机跑 LLM | ⭐⭐⭐ |
| Q18 | Agentic Workflow | Workflow = 预定义流程;Agent = 自主决策 | ⭐⭐⭐ |
📝 最后更新:2025 年 6 月