Skip to content

AI 面试题

大模型基础原理模块:从 Transformer 架构到预训练、微调、对齐、推理优化,全面覆盖大语言模型的底层技术原理。理解这些核心机制是做好 AI 应用开发和系统设计的基石。

Q1: Transformer 架构是什么?核心组件有哪些? 「🟡 中级」

考察点:大模型基础架构的理解深度。筛掉只会调 API、对底层原理一窍不通的人。

参考答案

  • Transformer:2017 年 Google 在《Attention Is All You Need》中提出的基于自注意力机制的序列建模架构,是当前所有大语言模型的基础。

  • 整体结构:编码器-解码器(Encoder-Decoder)架构。

    • 编码器:负责理解输入序列,输出上下文表示。
    • 解码器:负责生成输出序列,自回归地逐 token 生成。
    • 注:GPT 系列只用解码器(Decoder-only),BERT 只用编码器(Encoder-only),T5 用完整的编码器-解码器。
  • 核心组件

    1. 多头自注意力(Multi-Head Self-Attention)

      • 将 Q/K/V 投影到多个子空间,并行计算注意力。
      • 捕捉不同维度的语义关系(语法、语义、指代等)。
    2. 位置编码(Positional Encoding)

      • 自注意力本身不感知顺序,需要显式注入位置信息。
      • 正弦位置编码(原始 Transformer)或可学习位置编码(GPT 等)。
      • 旋转位置编码(RoPE)、ALiBi 等改进方案。
    3. 前馈神经网络(Feed-Forward Network, FFN)

      • 两层全连接 + 激活函数(GELU/ReLU/SwiGLU)。
      • 对每个位置独立做非线性变换,提升模型表达能力。
      • 通常维度是隐层维度的 4 倍(如 d_model=512, d_ff=2048)。
    4. 残差连接(Residual Connection)

      • LayerNorm(x + Sublayer(x))(Pre-LN 结构,GPT 采用)。
      • 解决深层网络梯度消失问题,使模型可以堆叠很多层。
    5. 层归一化(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
    1. 线性投影:输入 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]
    2. 计算相似度:Q 乘以 K 的转置,得到注意力分数矩阵。

      • 分数矩阵: [seq_len, seq_len],每个元素表示两个位置的相关性。
    3. 缩放:除以 √d_k,防止点积结果过大导致 softmax 梯度消失。

    4. Softmax 归一化:对每一行做 softmax,得到注意力权重(和为 1)。

    5. 加权求和:注意力权重乘以 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)。
  • 数据准备

    1. 数据收集:网页、书籍、代码、论文、对话等多源数据。
    2. 数据清洗:去重、过滤低质量内容、去除有害内容、PII 脱敏。
    3. 数据配比:不同来源数据按比例混合(如 CommonCrawl、Books、Wikipedia 等)。
    4. 分词:用 Tokenizer 将文本转换为 token id 序列。
  • 训练过程

    1. 初始化:随机初始化模型参数。
    2. 前向传播:输入 token 序列,模型预测每个位置的下一个 token。
    3. 计算损失:交叉熵损失,只计算有效位置(非 padding)。
    4. 反向传播:计算梯度。
    5. 参数更新:优化器(AdamW)更新参数。
    6. 循环迭代:遍历整个数据集多轮(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 的关键要点

    1. 数据质量 > 数据数量

      • 几百条高质量数据可能胜过几万条低质量数据。
      • 数据的多样性、正确性、格式一致性非常重要。
    2. 指令多样性

      • 覆盖不同类型的任务(问答、翻译、摘要、代码、推理等)。
      • 不同的提问方式(直接问、间接问、多轮对话)。
    3. 回答质量

      • 回答应该准确、有帮助、格式规范。
      • 通常需要人工编写或筛选高质量回答。
    4. 训练策略

      • 学习率比预训练小很多(如 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)

    • 目的:训练一个能自动评估回答质量的模型。
    • 过程:
      1. 对同一个问题,用 SFT 模型生成多个不同的回答。
      2. 人类标注员对这些回答进行排序(偏好标注)。
      3. 用这些排序数据训练奖励模型。
      4. 损失函数:Bradley-Terry 模型,让优选回答的奖励高于非优选回答。
        • 损失 = -log(sigmoid(R(y_w) - R(y_l))),其中 y_w 是优选回答,y_l 是非优选回答。
    • 产出:奖励模型(输入 Prompt + 回答,输出标量奖励分数)。

    阶段 3:PPO 强化学习优化

    • 目的:用奖励模型作为监督信号,优化策略模型(即 SFT 模型)。
    • 过程:
      1. 策略模型生成回答。
      2. 奖励模型给回答打分。
      3. 用 PPO 算法更新策略模型的参数。
      4. 加入 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 的替代方案

    1. DPO(Direct Preference Optimization)

      • 直接从人类偏好数据优化策略模型,不需要单独训练奖励模型和 PPO。
      • 更简单、更稳定,训练成本低。
      • 逐渐成为主流对齐方法。
    2. RLAIF(RL from AI Feedback)

      • 用 AI(如 GPT-4)替代人类提供反馈。
      • 降低标注成本,可扩展。
      • 代表:Constitutional AI。
    3. 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,大模型一步验证。
    • 过程:
      1. 小模型自回归生成 K 个候选 token。
      2. 大模型并行验证这 K 个 token。
      3. 接受正确的,从第一个错误的位置重新开始。
    • 效果:在不损失精度的前提下,提升 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,字节对编码)

    • 原理:从字符开始,迭代合并出现频率最高的相邻字符对。
    • 过程:
      1. 初始化词汇表为所有单个字符。
      2. 统计训练语料中最高频的相邻字符对。
      3. 将该字符对合并为一个新 token,加入词汇表。
      4. 重复步骤 2-3,直到词汇表达到目标大小。
    • 代表:GPT-2、GPT-3、LLaMA。
    • 优点:实现简单,压缩率高。

    2. WordPiece

    • 原理:与 BPE 类似,但选择合并的标准不是频率,而是"最大似然提升"。
    • 公式:选择使 P(xy) / (P(x) * P(y)) 最大的 x, y 对。
    • 代表:BERT、Google T5。
    • 优点:从概率角度优化,更合理。

    3. Unigram 语言模型

    • 原理:从完整词汇表开始,迭代移除最不重要的 token。
    • 过程:
      1. 初始词汇表包含所有可能的子词(如所有词 + 子词)。
      2. 训练 Unigram 语言模型。
      3. 计算每个 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. 多语言能力

    • XGLUEXTREME:多语言 NLP 基准。

    5. 长上下文能力

    • LongBench:20+ 任务,测试长文档理解。
    • RULER:长上下文能力综合评测。
  • 评估维度

    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 有什么局限性?怎么减少偏差?
  • 怎么评估中文大模型?有哪些中文基准?
  • 怎么构建自己的评测数据集?
  • 模型评测和产品评测有什么区别?
  • 怎么评估模型的推理能力?只看准确率够吗?