Appearance
AI 面试题
大模型基础原理模块:从 Transformer 架构到预训练、微调、对齐、推理优化,全面覆盖大语言模型的底层技术原理。理解这些核心机制是做好 AI 应用开发和系统设计的基石。
Q1: Transformer 架构是什么?核心组件有哪些? 「🟡 中级」
考察点:大模型基础架构的理解深度。筛掉只会调 API、对底层原理一窍不通的人。
参考答案:
Transformer:2017 年 Google 在《Attention Is All You Need》中提出的基于自注意力机制的序列建模架构,是当前所有大语言模型的基础。
整体结构:编码器-解码器(Encoder-Decoder)架构。
- 编码器:负责理解输入序列,输出上下文表示。
- 解码器:负责生成输出序列,自回归地逐 token 生成。
- 注:GPT 系列只用解码器(Decoder-only),BERT 只用编码器(Encoder-only),T5 用完整的编码器-解码器。
核心组件:
多头自注意力(Multi-Head Self-Attention)
- 将 Q/K/V 投影到多个子空间,并行计算注意力。
- 捕捉不同维度的语义关系(语法、语义、指代等)。
位置编码(Positional Encoding)
- 自注意力本身不感知顺序,需要显式注入位置信息。
- 正弦位置编码(原始 Transformer)或可学习位置编码(GPT 等)。
- 旋转位置编码(RoPE)、ALiBi 等改进方案。
前馈神经网络(Feed-Forward Network, FFN)
- 两层全连接 + 激活函数(GELU/ReLU/SwiGLU)。
- 对每个位置独立做非线性变换,提升模型表达能力。
- 通常维度是隐层维度的 4 倍(如 d_model=512, d_ff=2048)。
残差连接(Residual Connection)
LayerNorm(x + Sublayer(x))(Pre-LN 结构,GPT 采用)。- 解决深层网络梯度消失问题,使模型可以堆叠很多层。
层归一化(Layer Normalization)
- 对每个样本的特征维度做归一化。
- 稳定训练过程,加速收敛。
架构图:
编码器层(N 层堆叠):
┌───────────────────────────────────┐
│ +─── 多头自注意力 ───+ │
│ │ │ │
│ └── 残差 + LayerNorm ┘ │
│ │
│ +─── 前馈网络 ──────+ │
│ │ │ │
│ └── 残差 + LayerNorm ┘ │
└───────────────────────────────────┘
解码器层(N 层堆叠):
┌───────────────────────────────────┐
│ +── 掩码多头自注意力 ──+ │
│ │ │ │
│ └── 残差 + LayerNorm ───┘ │
│ │
│ +── 编码器-解码器注意力 ─+ │
│ │ │ │
│ └── 残差 + LayerNorm ───┘ │
│ │
│ +─── 前馈网络 ──────+ │
│ │ │ │
│ └── 残差 + LayerNorm ┘ │
└───────────────────────────────────┘追问延伸:
- Encoder-only、Decoder-only、Encoder-Decoder 三种架构各有什么优缺点和适用场景?
- 为什么 GPT 选择 Decoder-only 架构?
- Pre-LN 和 Post-LN 的区别?为什么大模型多用 Pre-LN?
Q2: 什么是注意力机制(Attention)?自注意力(Self-Attention)怎么计算? 「🟡 中级」
考察点:注意力原理的掌握程度。筛掉对 Q/K/V 概念模糊、无法解释注意力计算过程的人。
参考答案:
注意力机制:让模型在处理每个位置时,能够动态地关注输入序列中不同位置的信息,分配不同的权重。
核心思想:通过计算 Query(查询)和 Key(键)的相似度,得到 Value(值)的加权和。
自注意力(Self-Attention):Query、Key、Value 都来自同一个输入序列,模型关注序列内部各位置之间的关系。
计算过程(缩放点积注意力):
Attention(Q, K, V) = softmax(QK^T / √d_k) V线性投影:输入 X 通过三个不同的权重矩阵 W_Q、W_K、W_V 投影得到 Q、K、V。
- Q: [seq_len, d_k]
- K: [seq_len, d_k]
- V: [seq_len, d_v]
计算相似度:Q 乘以 K 的转置,得到注意力分数矩阵。
- 分数矩阵: [seq_len, seq_len],每个元素表示两个位置的相关性。
缩放:除以 √d_k,防止点积结果过大导致 softmax 梯度消失。
Softmax 归一化:对每一行做 softmax,得到注意力权重(和为 1)。
加权求和:注意力权重乘以 V,得到最终输出。
多头注意力(Multi-Head Attention):
- 将 Q/K/V 拆分成 h 个头,每个头独立计算注意力。
- 将所有头的结果拼接后再做一次线性变换。
- 公式:
MultiHead(Q,K,V) = Concat(head_1, ..., head_h) W_O - 意义:不同头可以学习不同类型的注意力模式(句法、语义、指代等)。
计算复杂度:
- 时间和空间复杂度均为 O(n²·d),其中 n 是序列长度,d 是隐层维度。
- 瓶颈在于 n² 的注意力矩阵,这也是长上下文的主要挑战。
示意图:
Q₁ Q₂ Q₃ K₁ K₂ K₃ V₁ V₂ V₃
│ │ │ │ │ │ │ │ │
└──┼──┘ └──┼──┘ └──┼──┘
│ │ │
└─────── 点积 ──┘ │
│ │
分数矩阵 │
[n × n] │
│ │
Softmax │
│ │
注意力权重 │
[n × n] │
└─────────── × ───────┘
│
输出 Z
[n × d_v]追问延伸:
- 为什么要除以 √d_k?如果不除会怎样?
- 多头注意力的头数越多越好吗?
- 自注意力相比 RNN 的优势是什么?
- 有没有降低注意力复杂度的方法?(FlashAttention、线性注意力、稀疏注意力)
Q3: 大模型的预训练(Pre-training)是怎么做的? 「🟡 中级」
考察点:预训练方法的理解。筛掉对大模型训练过程完全没有概念的人。
参考答案:
预训练:在大规模无标注文本数据上,以自监督学习的方式训练语言模型,让模型习得通用的语言知识和世界知识。
训练目标:
- 自回归语言模型(GPT 风格):下一词预测(Next Token Prediction),给定前面的 token,预测下一个 token。
- 损失函数:交叉熵损失,计算每个位置预测下一个 token 的准确率。
- 掩码语言模型(BERT 风格):掩码 token 预测(Masked LM),随机遮住部分 token,让模型还原。
- 注:当前大语言模型主流是自回归(Decoder-only)。
- 自回归语言模型(GPT 风格):下一词预测(Next Token Prediction),给定前面的 token,预测下一个 token。
数据准备:
- 数据收集:网页、书籍、代码、论文、对话等多源数据。
- 数据清洗:去重、过滤低质量内容、去除有害内容、PII 脱敏。
- 数据配比:不同来源数据按比例混合(如 CommonCrawl、Books、Wikipedia 等)。
- 分词:用 Tokenizer 将文本转换为 token id 序列。
训练过程:
- 初始化:随机初始化模型参数。
- 前向传播:输入 token 序列,模型预测每个位置的下一个 token。
- 计算损失:交叉熵损失,只计算有效位置(非 padding)。
- 反向传播:计算梯度。
- 参数更新:优化器(AdamW)更新参数。
- 循环迭代:遍历整个数据集多轮(Epoch)。
关键技术:
- 混合精度训练(FP16/BF16):减少显存、加速训练。
- 梯度累积:显存不足时,多步累积梯度后再更新。
- 梯度检查点(Gradient Checkpointing):用时间换显存。
- 分布式训练:
- 数据并行(Data Parallelism):每张卡放完整模型,数据分片。
- 张量并行(Tensor Parallelism):每层参数切分到多张卡。
- 流水线并行(Pipeline Parallelism):按层切分到多张卡。
- ZeRO 优化(DeepSpeed):优化器状态、梯度、参数的分片。
算力需求:
- 计算量 ≈ 6 × 参数量 × 训练 token 数(经验公式)。
- 例如:GPT-3 175B 参数,300B tokens,约 3.14e23 FLOPs。
- 需要数千张 A100 训练数月。
预训练的意义:
- 学习通用语言理解和生成能力。
- 习得世界知识、推理能力、代码能力等。
- 为下游任务提供基础,下游只需少量微调即可适配。
追问延伸:
- 预训练数据量和模型参数量的关系?Scaling Law 了解吗?
- 为什么大模型会涌现能力(Emergent Abilities)?
- 预训练数据的质量和数量哪个更重要?
- Chinchilla 论文的结论是什么?
Q4: 什么是 SFT(监督微调)?为什么需要 SFT? 「🟡 中级」
考察点:微调技术的理解。筛掉分不清预训练和微调区别的人。
参考答案:
SFT(Supervised Fine-Tuning,监督微调):在预训练模型的基础上,使用高质量的标注数据(指令-响应对)进行进一步训练,让模型学会遵循指令、以对话方式回答问题。
为什么需要 SFT:
- 预训练模型只是"续写文本"的模型,不知道如何与人类对话。
- SFT 是从预训练模型到对话模型的桥梁。
- 让模型理解人类的指令意图,以自然的方式回应。
SFT 数据格式:
json{ "instruction": "解释什么是机器学习", "input": "", "output": "机器学习是人工智能的一个分支,它使计算机系统能够从数据中学习..." }或对话格式:
json{ "messages": [ {"role": "user", "content": "你好"}, {"role": "assistant", "content": "你好!有什么可以帮助你的吗?"} ] }SFT 的关键要点:
数据质量 > 数据数量:
- 几百条高质量数据可能胜过几万条低质量数据。
- 数据的多样性、正确性、格式一致性非常重要。
指令多样性:
- 覆盖不同类型的任务(问答、翻译、摘要、代码、推理等)。
- 不同的提问方式(直接问、间接问、多轮对话)。
回答质量:
- 回答应该准确、有帮助、格式规范。
- 通常需要人工编写或筛选高质量回答。
训练策略:
- 学习率比预训练小很多(如 1e-5 ~ 1e-6)。
- 训练轮数较少(1~3 轮),避免过拟合。
- 可以用 LoRA 等参数高效微调方法。
SFT vs 预训练的区别:
维度 预训练 SFT 目标 学习语言建模(下一词预测) 学习遵循指令和对话 数据 大规模无标注文本(万亿 token) 高质量指令数据(几千~几百万) 计算量 极大(数千 GPU * 月) 较小(几 GPU * 天) 效果 通用能力强,但不会"对话" 对话能力强,更符合人类偏好 频率 一次或少数几次 频繁(任务定制化) 指令微调(Instruction Tuning):
- SFT 的一种形式,用多样化的指令数据训练模型。
- 提升模型的零样本(Zero-shot)和少样本(Few-shot)能力。
- 代表工作:FLAN、Alpaca、Vicuna 等。
追问延伸:
- SFT 数据量一般多少合适?
- 怎么构建高质量的 SFT 数据集?
- SFT 和 RLHF 的关系是什么?
- 全量微调 vs LoRA 微调,怎么选?
Q5: 什么是 RLHF?它的三个阶段是什么? 「🔴 高级」
考察点:对齐技术的深度理解。筛掉只知道概念、讲不清原理和细节的人。
参考答案:
RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习):通过人类偏好数据训练奖励模型,再用强化学习(PPO)优化语言模型,使模型输出更符合人类偏好。
核心目标:对齐(Alignment)——让模型有用(Helpful)、诚实(Honest)、无害(Harmless)。
三个阶段:
阶段 1:监督微调(SFT)
- 目的:让模型先学会基本的对话能力。
- 过程:人工标注员编写高质量的指令-响应对,用这些数据微调预训练模型。
- 产出:SFT 模型(作为 RL 训练的初始策略模型)。
阶段 2:奖励模型训练(Reward Model, RM)
- 目的:训练一个能自动评估回答质量的模型。
- 过程:
- 对同一个问题,用 SFT 模型生成多个不同的回答。
- 人类标注员对这些回答进行排序(偏好标注)。
- 用这些排序数据训练奖励模型。
- 损失函数:Bradley-Terry 模型,让优选回答的奖励高于非优选回答。
- 损失 = -log(sigmoid(R(y_w) - R(y_l))),其中 y_w 是优选回答,y_l 是非优选回答。
- 产出:奖励模型(输入 Prompt + 回答,输出标量奖励分数)。
阶段 3:PPO 强化学习优化
- 目的:用奖励模型作为监督信号,优化策略模型(即 SFT 模型)。
- 过程:
- 策略模型生成回答。
- 奖励模型给回答打分。
- 用 PPO 算法更新策略模型的参数。
- 加入 KL 散度惩罚,防止模型偏离 SFT 模型太远(避免奖励黑客)。
- 奖励函数:
R_total = R_model - β * KL(π_ppo || π_sft)- R_model:奖励模型的分数。
- KL 惩罚:防止策略模型与 SFT 模型分布差异过大。
- β:KL 惩罚系数。
架构图:
阶段 1:SFT
人工标注数据 → 微调预训练模型 → SFT 模型
阶段 2:奖励模型
SFT 模型 → 生成多个回答 → 人类排序标注 → 训练奖励模型 → RM 模型
阶段 3:PPO
┌──────────────────────────────┐
│ 策略模型 │
│ (SFT 模型初始化) │
└──────────┬───────────────────┘
│ 生成回答
▼
┌──────────────────────────────┐
│ 奖励模型 │
│ (输出奖励分数) │
└──────────┬───────────────────┘
│ 奖励信号
▼
┌──────────────────────────────┐
│ PPO 算法更新 │
│ (+ KL 散度惩罚) │
└──────────┬───────────────────┘
│
└───── 循环迭代 ─────┘RLHF 的替代方案:
DPO(Direct Preference Optimization):
- 直接从人类偏好数据优化策略模型,不需要单独训练奖励模型和 PPO。
- 更简单、更稳定,训练成本低。
- 逐渐成为主流对齐方法。
RLAIF(RL from AI Feedback):
- 用 AI(如 GPT-4)替代人类提供反馈。
- 降低标注成本,可扩展。
- 代表:Constitutional AI。
ORPO、KTO、Proximal Policy Optimization 等变体。
追问延伸:
- PPO 算法的核心思想是什么?
- 为什么需要 KL 惩罚?没有会怎样?
- 奖励黑客(Reward Hacking)是什么?怎么防范?
- DPO 相比 RLHF 的优缺点?
- 奖励模型和 SFT 模型可以是不同大小的模型吗?
Q6: 大模型推理优化有哪些方法? 「🔴 高级」
考察点:推理效率的实战经验。筛掉只会调用 API、对推理优化毫无概念的人。
参考答案:
推理优化目标:降低延迟、提升吞吐量、减少显存占用、降低成本。
核心优化方法:
1. KV Cache
- 原理:自回归生成时,每步只新增一个 token,但前面 token 的 K/V 向量是不变的。
- 做法:缓存之前计算好的 K/V 值,避免重复计算。
- 效果:生成阶段的计算量从 O(n²) 降到 O(n),大幅加速。
- 挑战:KV Cache 占用显存,序列越长占用越多。
- 优化:
- PagedAttention(vLLM):用分页方式管理 KV Cache,减少显存碎片。
- 量化 KV Cache:INT8/INT4 量化。
- GQA(Grouped Query Attention):减少 KV 头数,降低 KV Cache 大小。
2. 量化(Quantization)
- 原理:将模型权重从 FP16/BF16 用更低精度表示(INT8、INT4)。
- 方法:
- GPTQ:按列量化,逐层优化,4-bit 精度损失小。
- AWQ:只量化不重要的权重,保留重要权重的精度。
- INT8 量化:LLM.int8(),对激活值动态量化。
- GGUF / GGML:llama.cpp 用的格式,支持 CPU 推理。
- 效果:显存减少 ~50%(INT8)或 ~75%(INT4),速度提升。
- 权衡:精度略有下降,通常 INT4 仍可接受。
3. 剪枝(Pruning)
- 原理:移除模型中不重要的权重或神经元。
- 方法:非结构化剪枝、结构化剪枝。
- 现状:大模型时代用得较少,因为大模型的稀疏性和涌现能力关系复杂。
4. 知识蒸馏(Knowledge Distillation)
- 原理:用大模型(教师)训练小模型(学生),让小模型学习大模型的分布。
- 方法:软标签蒸馏、注意力蒸馏。
- 代表:DistilBERT、Gemma 2B/7B、各种小模型。
- 适用:特定场景下用小模型替代大模型,大幅提升速度。
5. 批处理(Batching)
- 原理:一次处理多个请求,提高 GPU 利用率。
- 静态批处理:等一批请求凑齐再处理,简单但延迟高。
- 连续批处理(Continuous Batching / Dynamic Batching):
- 也称 Orca 批处理。
- 不需要等一批凑齐,每一步都可以加入新请求、移除已完成的请求。
- 大幅提升吞吐量,同时保持较低延迟。
- 代表:vLLM、TGI。
6. 投机采样(Speculative Decoding)
- 原理:用小模型(草稿模型)快速生成多个 token,大模型一步验证。
- 过程:
- 小模型自回归生成 K 个候选 token。
- 大模型并行验证这 K 个 token。
- 接受正确的,从第一个错误的位置重新开始。
- 效果:在不损失精度的前提下,提升 2~3 倍解码速度。
- 代表:Medusa、EAGLE、Lookahead Decoding。
7. 其他优化:
- FlashAttention:优化注意力计算的 IO 效率,更快且更省显存。
- 前缀缓存(Prefix Caching):相同前缀的 Prompt 共享 KV Cache。
- 模型并行:张量并行、流水线并行,支持超大模型推理。
- 算子融合:减少中间结果的显存读写。
优化技术对比:
| 方法 | 速度提升 | 显存节省 | 精度损失 | 实现难度 |
|---|---|---|---|---|
| KV Cache | 显著 | - | 无 | 低 |
| INT8 量化 | ~1.5x | ~50% | 很小 | 中 |
| INT4 量化 | ~2x | ~75% | 较小 | 中 |
| 连续批处理 | 2-10x 吞吐 | - | 无 | 高 |
| 投机采样 | 2-3x | 额外小模型 | 无 | 高 |
| 知识蒸馏 | 5-10x | ~80%+ | 较大 | 很高 |
追问延伸:
- vLLM 的 PagedAttention 原理是什么?
- GQA(Grouped Query Attention)和 MQA(Multi-Query Attention)的区别?
- 连续批处理的实现难点在哪里?
- 怎么选择量化方法?GPTQ vs AWQ vs GGUF?
Q7: Tokenization 是什么?为什么重要? 「🟡 中级」
考察点:分词原理的理解。筛掉对 token 概念模糊、不知道分词影响模型效果的人。
参考答案:
Tokenization(分词/令牌化):将原始文本切分成模型可以处理的最小单元(token)的过程。它是文本进入模型的第一道工序。
为什么重要:
- 决定了模型的"词汇表",影响模型能理解的语言单位。
- 分词质量直接影响模型的理解和生成效果。
- 词汇表大小影响模型参数量(Embedding 层 = 词表大小 × 隐层维度)。
- 分词策略影响序列长度(同样的文本,分词越好 token 越少)。
主流分词算法:
1. BPE(Byte Pair Encoding,字节对编码)
- 原理:从字符开始,迭代合并出现频率最高的相邻字符对。
- 过程:
- 初始化词汇表为所有单个字符。
- 统计训练语料中最高频的相邻字符对。
- 将该字符对合并为一个新 token,加入词汇表。
- 重复步骤 2-3,直到词汇表达到目标大小。
- 代表:GPT-2、GPT-3、LLaMA。
- 优点:实现简单,压缩率高。
2. WordPiece
- 原理:与 BPE 类似,但选择合并的标准不是频率,而是"最大似然提升"。
- 公式:选择使
P(xy) / (P(x) * P(y))最大的 x, y 对。 - 代表:BERT、Google T5。
- 优点:从概率角度优化,更合理。
3. Unigram 语言模型
- 原理:从完整词汇表开始,迭代移除最不重要的 token。
- 过程:
- 初始词汇表包含所有可能的子词(如所有词 + 子词)。
- 训练 Unigram 语言模型。
- 计算每个 token 的损失,移除损失最小的(即最不重要的)。
- 代表:T5(某些版本)、SentencePiece。
- 优点:分词有多种候选,可选择最优路径。
4. SentencePiece
- 不是新算法,而是一个工具库。
- 支持 BPE 和 Unigram。
- 特点:把空格也当作普通字符处理,直接对原始字节编码。
- 优势:不需要预分词,跨语言支持好。
中英文分词差异:
- 英文:天然有空格分隔,分词相对简单,以子词(subword)为主。
- 中文:没有空格,分词更复杂:
- 可以按字分词(词汇表小,但序列长)。
- 可以按词分词(需要中文分词工具)。
- 大模型常用 BPE/Unigram,混合字、词、子词。
- 中文 token 数通常比英文多(同样的信息量,中文需要更多 token)。
特殊 Token:
[CLS]、<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>(BERT 分类标记)。<|endoftext|>、<eos>(序列结束标记)。<pad>(填充标记)。<unk>(未知 token)。<s>、</s>(开始、结束)。[INST]、<<SYS>>(Llama 对话格式)。
词汇表大小:
- 小模型:几万(BERT-base 30k)。
- 大模型:几万到十几万(GPT-3 50k,LLaMA 32k,GPT-4 ~100k)。
- 多语言模型通常词表更大。
- 词表越大:Embedding 层参数越多,但序列更短,计算量可能更少。
追问延伸:
- 为什么用子词(subword)而不是整词或单字?
- 怎么处理 OOV(Out-of-Vocabulary)问题?
- Tokenizer 对中文效果不好怎么办?
- 词汇表大小怎么权衡?越大越好吗?
- Byte-level BPE 是什么?和普通 BPE 有什么区别?
Q8: 大模型的评测指标有哪些?怎么评估大模型的能力? 「🔴 高级」
考察点:模型评估的方法论。筛掉只会说"效果好不好"、没有系统化评估思维的人。
参考答案:
大模型评测:从多个维度衡量模型的能力和表现,是模型迭代、选型、上线的重要依据。
主流基准测试(Benchmarks):
1. 知识与推理
- MMLU(Massive Multitask Language Understanding):
- 57 个学科,从数学到历史到法律。
- 衡量模型的综合知识和推理能力。
- GSM8K:小学数学应用题,8000 题。
- 衡量数学推理能力。
- MATH:更难的数学竞赛题。
- BigBench / BigBench-Hard:200+ 任务,覆盖各种能力。
2. 代码能力
- HumanEval:164 道编程题,Python 函数实现。
- MBPP:1000 道 Python 编程题。
- HumanEval+ / MBPP+:增强版,测试更严格。
- Codeforces 评测:竞赛级编程题。
3. 对话与指令遵循
- MT-Bench:80 道高质量多轮对话题,GPT-4 打分。
- 目前对话模型最常用的评测。
- 分为 8 个类别:写作、角色扮演、推理、数学、编程、提取、STEM、人文。
- AlpacaEval:805 道指令题,用 GPT-4 对比两个模型的回答。
4. 多语言能力
- XGLUE、XTREME:多语言 NLP 基准。
5. 长上下文能力
- LongBench:20+ 任务,测试长文档理解。
- RULER:长上下文能力综合评测。
- MMLU(Massive Multitask Language Understanding):
评估维度:
1. 准确性(Accuracy)
- 客观题正确率、代码通过率、事实正确率。
2. 有用性(Helpfulness)
- 回答是否解决了用户的问题。
- 信息是否充分、相关。
3. 诚实性(Honesty)
- 幻觉率:模型编造信息的程度。
- 不确定性表达:不知道时是否承认。
4. 安全性(Safety)
- 有害内容生成率。
- 偏见和歧视程度。
- 对越狱攻击的抵御能力。
5. 流畅性(Fluency)
- 语言是否自然、通顺。
- 语法正确性。
评估方法:
1. 自动评估
- 客观题直接算准确率。
- 生成式任务用 BLEU、ROUGE、BERTScore 等。
- LLM 评 LLM:用 GPT-4 等强模型给回答打分(如 MT-Bench)。
- 优点:快、成本低、可扩展。
- 缺点:可能有偏差,主观任务不够准确。
2. 人工评估
- 标注员按标准打分(如 1-5 分制,或 A/B 对比)。
- 维度:有用性、相关性、安全性、流畅性。
- 优点:准确、符合人类真实感受。
- 缺点:慢、贵、难以规模化、标注一致性问题。
3. 对抗与安全评测
- Red Teaming:故意尝试让模型输出有害内容。
- TruthfulQA:测试模型是否会生成常见的错误认知。
- BBQ:测试社会偏见。
幻觉评估:
- FactScore:将回答拆成原子事实,逐句验证。
- SelfCheckGPT:多次采样,对比一致性。
- RAG 场景:Faithfulness(忠实度),检查回答是否基于上下文。
评估方法对比:
| 方法 | 成本 | 速度 | 准确性 | 可扩展 | 适用场景 |
|---|---|---|---|---|---|
| 客观基准 | 低 | 快 | 高 | 是 | 知识、推理、代码 |
| LLM 评 LLM | 中 | 中 | 中高 | 是 | 对话、写作、开放性任务 |
| 人工评估 | 高 | 慢 | 高 | 否 | 最终质量验证、主观感受 |
| 对抗测试 | 中 | 中 | 高 | 中 | 安全、对齐 |
追问延伸:
- LLM-as-Judge 有什么局限性?怎么减少偏差?
- 怎么评估中文大模型?有哪些中文基准?
- 怎么构建自己的评测数据集?
- 模型评测和产品评测有什么区别?
- 怎么评估模型的推理能力?只看准确率够吗?