你是一家精品咖啡烘焙坊的质检主管。烘焙师端来一炉新配方的豆子,信心满满地说“这炉肯定好喝”。你会直接上架吗?当然不会——你得先测风味谱、对照配方卡、请品鉴师盲测,再把评价反馈给烘焙师调整温度和时间。AI 图像生成管线里的“生成结果评估”,干的正是这份质检工作。生成模型每吐出一张图,我们都要从三个层面打分:用仪器测“整体分布像不像真实照片”(FID)、用菜单对照“图文描述配不配”(CLIP Score)、请真人评审“看着美不美”(人工评级)。这套评估体系不仅告诉你“好不好”,更告诉你“差在哪、怎么改”,推动 Prompt 和模型一轮轮进化。本文就用这场咖啡评审会,带你走通图像生成评估的完整打法。

岗位关联

掌握 FID、CLIP Score、人工评级与 AB 测试这套评估兵器库,是 AI 工程师把文生图模型从“能出图”推向“可信赖上线”的必备工程能力。

目录
  1. 可视化演示
  2. FID 指标
  3. CLIP Score
  4. 人工评级
  5. 基准数据集
  6. AB 测试设计
  7. 评估驱动迭代
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示FID分布质量评估、CLIP Score语义匹配及评估驱动模型优化的三模态交互动画。

本节配有交互动效(进入视口后自动加载,约 3KB)。

FID分布质量评估 真实 生成 FID=||μr-μg||²+Tr(Σr+Σg-2√(ΣrΣg)) FID衡量生成分布与真实分布的统计距离值越低质量越好

FID 指标

假设你在评审会上拿到两批豆子:一批是历年稳定的“经典配方”,一批是烘焙师的新实验。你第一件事不是煮来喝,而是把两批豆子各取一份送进电子鼻,测出它们的风味分子频谱。电子鼻的结论不是“好喝不好喝”,而是“这两批豆子的风味指纹整体差多远”。FID 干的就是这件事——它不评价单张图美不美,而是比较“真实照片群体的特征分布”与“生成图群体的特征分布”之间的距离。

把图像喂给一个预训练好的视觉骨干网络(经典实现用 InceptionV3),网络在中间层输出一组高维特征。所有真实图形成一堆特征点,所有生成图形成另一堆特征点,每堆都可以近似成一个多元高斯分布:中心是均值 μ,形状由协方差矩阵 Σ 描述。FID 就是在问:这两个高斯分布之间,中心和形状的差异总共有多大?

数学上,Fréchet 距离(又称 Wasserstein-2 距离)把这两个高维分布的差异浓缩成一个标量:

回到评审会:FID 低只代表“仪器层面风味指纹接近”,就像电子鼻说两批豆子光谱相似,但实际口感如何,还需要下一位品鉴师登场。FID 的价值是快速、客观、可复现,是模型迭代时“整体有没有变好”的第一信号。

FID=∥μr−μg∥2+Tr(Σr+Σg−2(ΣrΣg)1/2)\displaystyle \mathrm{FID} = \left\| \mu_r - \mu_g \right\|^2 + \mathrm{Tr}\left( \Sigma_r + \Sigma_g - 2\left( \Sigma_r \Sigma_g \right)^{1/2} \right)
FID 越小,说明真实图与生成图的特征分布越重合,生成图在“整体质感”上越像真实照片。
  1. 均值偏差向量先计算真实特征均值与生成特征均值的差,这一步度量“两批特征的中心漂了多远”。
    μr−μg\mu_r - \mu_g
  2. 向量内积把偏差向量自身做内积,得到每个维度的漂移平方和,也就是分布中心的整体偏移量。
    ∥μr−μg∥2=(μr−μg)T(μr−μg)\left\| \mu_r - \mu_g \right\|^2 = (\mu_r - \mu_g)^{\mathsf{T}} (\mu_r - \mu_g)
  3. 协方差矩阵Σ_r 和 Σ_g 分别描述真实图与生成图特征内部“一起波动的模式”,即分布的形状。
    Σr,Σg\Sigma_r, \Sigma_g
  4. 迹运算聚合对协方差组合取迹,把矩阵信息压缩成单个标量,加上中心偏移量得到最终 FID。
    Tr(Σr+Σg−2(ΣrΣg)1/2)\mathrm{Tr}\left( \Sigma_r + \Sigma_g - 2\left( \Sigma_r \Sigma_g \right)^{1/2} \right)

CLIP Score

评审会的第二道流程是“对照菜单验货”。菜单上写着“焦糖海盐拿铁,顶部有海盐波浪拉花”,你要看端上来的这杯咖啡,拉花是不是真的有波浪纹理、整体气质是否符合描述。CLIP Score 就是把“菜单描述”(文本)和“实物照片”(图像)放在同一个语义空间里量夹角:夹角越小,图文越对得上。

CLIP 模型由图像塔和文本塔组成,被称为“双塔”。两个塔分别把图像和文本投影到同一个向量空间,于是“一张拉花图”和“一段描述拉花的文字”都能变成这个空间里的向量。评估生成图时,我们把 prompt 送入文本塔得到文本向量,把生成图送入图像塔得到图像向量,然后计算两者的余弦相似度:

实践上,CLIP Score 通常乘上 100 作为最终分数,团队会先跑一批历史数据定一个阈值(比如 0.30)。低于阈值的图直接判定“图文不符”,高于阈值的再进入人工环节。就像拉花完全不是菜单写的样子,这杯咖啡直接退回后厨,不用浪费品鉴师的时间。

Score=ei⋅et∥ei∥∥et∥\displaystyle \mathrm{Score} = \frac{\mathbf{e}_i \cdot \mathbf{e}_t}{\left\| \mathbf{e}_i \right\| \left\| \mathbf{e}_t \right\|}
CLIP Score 越高,说明图像内容与输入文本在语义上越匹配,但要注意它不完全等同于人类审美。
  1. 图像编码向量CLIP 的图像塔把一张图压缩成高维向量 e_i,提取视觉语义。
    ei=ImageEncoder(x)\mathbf{e}_i = \mathrm{ImageEncoder}(x)
  2. 文本编码向量CLIP 的文本塔把 prompt 压缩成同空间内的向量 e_t。
    et=TextEncoder(t)\mathbf{e}_t = \mathrm{TextEncoder}(t)
  3. 余弦相似度点积除以两向量模长,结果落在 [-1, 1],越接近 1 表示图文越对齐。
    cos⁡(θ)=ei⋅et∥ei∥∥et∥\cos(\theta) = \frac{\mathbf{e}_i \cdot \mathbf{e}_t}{\left\| \mathbf{e}_i \right\| \left\| \mathbf{e}_t \right\|}

人工评级

仪器再先进,菜单对照再准,最终决定咖啡能不能上架的,还是品鉴师们的舌头。人工评级是评估体系里“以人为本”的那一层。你要设计一张杯测表,让每位品鉴师独立给咖啡的打分项包括:香气、酸质、醇厚度、余韵、平衡感。对应到图像生成,评分维度一般有“美观度”“细节真实性”“文本一致性”,每个维度采用 1–5 分制。

多位评审员独立打分后,最朴素的处理就是取平均分。平均分把每个人的主观感受汇总成一个稳定分数,弱化了个别评审的口味偏差:

光看平均分还不够,还要算评分者一致性,常用 Cohen's Kappa 或 Fleiss' Kappa。一致性太低,说明评审员对“什么是好图”的理解分歧很大,要么评分表设计不清晰,要么这批图质量参差到看不出标准。像评审会上五位品鉴师对同一杯咖啡打出 5、5、4、1、1,你首先该怀疑的不是咖啡,而是杯测表出了问题。人工评级虽然贵、慢,但它捕捉的是机器指标看不见的“人味”。

Sˉ=1N∑i=1NSi\displaystyle \bar{S} = \frac{1}{N} \sum_{i=1}^{N} S_i
平均分越高代表整体主观质量越好,但还需要一致性检验确认评审员们的标准没有互相矛盾。
  1. 单张评分第 i 位评审对某张图给出 1 到 5 分的整数评分 S_i。
    Si∈{1,2,3,4,5}S_i \in \{1, 2, 3, 4, 5\}
  2. 求和把 N 位评审的分数全部加总,体现集体意见而不是某个人的口味。
    ∑i=1NSi\sum_{i=1}^{N} S_i
  3. 取平均除以评审人数 N,得到该图的人气分,分数越接近 5 说明越受认可。
    Sˉ=1N∑i=1NSi\bar{S} = \frac{1}{N} \sum_{i=1}^{N} S_i

基准数据集

烘焙大赛之所以有说服力,是因为所有参赛者面对的是同一套标准豆样、同一个杯测表、同一种冲煮参数。图像生成评估也一样:没有固定“题库”,任何指标分数都失去了对比意义。基准数据集就是这套固定题库——它规定了用哪些 prompt、期望覆盖哪些类别、拿什么真实照片做参照。

一个合格的基准数据集要考虑三件事。第一是类别覆盖,不能只测“猫”和“狗”,否则模型偷偷只会画猫你也发现不了,覆盖率公式可以帮助量化测试面的完整程度:

第二是真实照片参考,FID 需要一组尽可能多样的真实图像作为“标准答案”,第三是提示词集合要足够固定且贴近业务。很多团队直接复用公开数据集(如 COCO 的 caption)作为 prompt 集,再抽一批高质量真实照片做 FID 参考。有了固定题库,v1 模型和 v2 模型的分数才能摆在同一张表上比较,否则每次都换题,分数高低就只是运气。

C=∣Dhit∣∣Dall∣\displaystyle C = \frac{\left| D_{\mathrm{hit}} \right|}{\left| D_{\mathrm{all}} \right|}
覆盖率 C 越接近 1,说明基准评测覆盖的目标类别越全面,评估结果越可信。
  1. 命中集合D_hit 表示基准数据集中被本次评测覆盖到的类别样本集合。
    DhitD_{\mathrm{hit}}
  2. 全集定义D_all 是基准数据集规定应当覆盖的全部类别集合。
    DallD_{\mathrm{all}}
  3. 取比值命中集合大小除以全集大小,得到类别覆盖率 C。
    C=∣Dhit∣∣Dall∣C = \frac{\left| D_{\mathrm{hit}} \right|}{\left| D_{\mathrm{all}} \right|}

AB 测试设计

评估体系搭好了,最后拍板的一关是盲品对决。新配方和经典配方各做一杯,编号 A、B,品鉴师不知道哪杯是哪杯,只凭口感投票。图像生成里的 AB 测试完全同理:同一批 prompt,分别用旧模型(对照组)和新模型(实验组)出图,评审在不知道出处的前提下投票选择更优者。

AB 测试最容易翻车的点有两个:样本量不足和变量不单一。如果你只请 5 个同事投票就宣布新模型胜出,结果很可能是随机波动。样本量需要根据预期胜率和允许误差反推,经典公式如下:

盲测结束拿到票数后,还要做显著性检验(如卡方检验或 t 检验),看胜率差异是否“显著大于偶然”。只有 p 值小于 0.05 才敢说新模型真的更好。评审会里,偶尔一位品鉴师偏爱重烘焙不代表重烘焙是趋势;AB 测试就是告诉你:这份偏好是真实信号,还是纯粹运气。

n=Z2×p(1−p)d2\displaystyle n = \frac{Z^2 \times p(1-p)}{d^2}
n 是最小所需投票人数;p 是预估新模型胜率,d 是你允许的误差范围,Z 由置信水平决定。
  1. 置信度系数95% 置信度对应 Z ≈ 1.96,决定我们对结论的把握程度。
    Z=1.96Z = 1.96
  2. 预期胜率p 是预估新版在盲测中的胜率,p(1-p) 表示波动程度,越接近 0.5 波动越大。
    p(1−p)p(1-p)
  3. 允许误差d 是可接受的真实胜率估计偏差,比如 ±5% 对应 d=0.05。
    d2d^2
  4. 综合计算三项结合算出最小样本量 n,样本不足时结论不可信。
    n=Z2×p(1−p)d2n = \frac{Z^2 \times p(1-p)}{d^2}

评估驱动迭代

评审会的真正价值不在那张打分表,而在会后复盘。酸质偏了?下次烘焙浅一点。醇厚度不够?研磨调细两格。图像生成同样如此:评估是手段,迭代才是目的。FID 居高不下,常见对策是增加采样步数、调整 CFG 引导强度、或者直接换更强的底座模型;CLIP Score 偏低,优先优化 Prompt,把“a cat“改成”a fluffy orange cat sitting on a velvet chair, soft lighting“往往立竿见影;人工评分集中在”细节穿帮”,则需要加负面 Prompt 或引入修复模型做后处理。

每个优化动作都会产生新一轮评估结果,改进幅度可以用相对提升率量化:

更重要的是建立持续监控习惯。模型上线后,用户输入的 Prompt 分布会漂移、审美偏好会变化,今天合格的分数不代表三个月后还合格。像烘焙坊每批豆子都要抽检一样,团队应把“FID + CLIP + 人工抽评”搭成自动化流水线,每周自动跑分、自动告警。评估驱动的不是一次性的“行或不行”,而是让生成系统在一轮轮反馈中稳定进化的闭环。

R=Fbefore−FafterFbefore×100%\displaystyle R = \frac{F_{\mathrm{before}} - F_{\mathrm{after}}}{F_{\mathrm{before}}} \times 100\%
R 为正表示优化有效,越大说明这一轮迭代带来的质量提升越明显。
  1. 迭代前指标F_before 是本轮优化前的 FID 值,作为基线。
    FbeforeF_{\mathrm{before}}
  2. 迭代后指标F_after 是优化后的 FID 值,和基线做差。
    FafterF_{\mathrm{after}}
  3. 相对提升差值占原值的百分比,把提升幅度归一化,方便跨模型对比。
    R=Fbefore−FafterFbefore×100%R = \frac{F_{\mathrm{before}} - F_{\mathrm{after}}}{F_{\mathrm{before}}} \times 100\%

AI 应用场景

电商商品图批量质检

阶段:生成结果评估

解决的问题:电商团队用 Stable Diffusion 批量生成商品场景图,每天上万张。传统做法是设计师逐张检查,耗时巨大且标准因人而异。AI 先靠 CLIP Score 自动计算每张图与商品文案的语义对齐度,低于阈值的图直接丢进回收站;再按周抽少量高争议样本走人工评级,用机器筛掉 80% 的明显坏图,人工只审关键批次。

具体案例:某美妆品牌用固定 Prompt 模板生成“口红在丝绒台面上”系列图,CLIP 阈值设为 0.32,低于阈值的图自动重生成;每周随机抽 100 张请 3 位设计师按 1-5 分打分,计算一致性后反馈给 Prompt 优化小组。

游戏原画风格一致性评审

阶段:人工评级 + AB 测试

解决的问题:用 LoRA 微调模型批量产出游戏角色原画时,风格漂移肉眼难以发现。组织“原画评审会”,评审按风格一致、细节完成度、审美三个维度打分,并用 AB 测试对比 LoRA 微调前后的出图效果,数据说话而不是美术总监拍脑袋。

具体案例:某游戏工作室每版 LoRA 出 500 张原画,10 位画师盲测投票,用 Kappa 一致性检验确认评分者标准统一后,胜率显著更高的版本才进入资产库。

文生图 API 上线前的 AB 决策

阶段:评估驱动迭代

解决的问题:新候选模型能否上线,老方法靠内部讨论决定。现在搭建评估闭环:FID 监控分布漂移、CLIP 监控图文对齐、线上盲测统计用户真实行为,用数据驱动灰度决策。

具体案例:某 AI 绘画应用同时上线 v2 和 v1,按随机用户分流,固定 200 条 prompt 让用户各生成一次,统计“保存率”代替人工投票。v2 保存率显著高出 3 个百分点、p 值小于 0.01,才全量发布。

Python 演示

python41 行
import numpy as np  def sqrtm(mat):    """对称正定矩阵的平方根,用于 FID 协方差项"""    vals, vecs = np.linalg.eigh(mat)    vals = np.maximum(vals, 0.0)    return (vecs * np.sqrt(vals)) @ vecs.T  def calc_fid(mu_real, cov_real, mu_fake, cov_fake):    diff = mu_real - mu_fake    cov_sum = cov_real + cov_fake - 2.0 * sqrtm(cov_real @ cov_fake)    return float(diff @ diff + np.trace(cov_sum))  def clip_similarity(img_feat, text_feat):    img_feat = img_feat / np.linalg.norm(img_feat)    text_feat = text_feat / np.linalg.norm(text_feat)    return float(img_feat @ text_feat)  def main():    rng = np.random.default_rng(42)    mu_real = rng.normal(size=64)    cov_real = np.eye(64)     mu_fake = mu_real + 0.3 * rng.normal(size=64)    cov_fake = np.eye(64) * 0.9     fid = calc_fid(mu_real, cov_real, mu_fake, cov_fake)    print(f"FID: {fid:.4f}")     img_feat = rng.normal(size=512)    text_feat = 0.8 * img_feat + 0.2 * rng.normal(size=512)    sim = clip_similarity(img_feat, text_feat)    print(f"CLIP similarity: {sim:.4f}")  if __name__ == "__main__":    main()
目的:用随机数据模拟真实图像特征与生成图像特征,完整实现 FID(含矩阵平方根)和 CLIP 余弦相似度的核心计算,是生产评估代码的最小可运行模板。
  1. vals = np.maximum(vals, 0.0)数值稳定,避免负特征值让开方失败
  2. (vecs * np.sqrt(vals)) @ vecs.T特征分解后重组,得到矩阵平方根
  3. diff = mu_real - mu_fake两个特征分布的中心偏差
  4. diff @ diff + np.trace(cov_sum)FID = 中心偏移平方 + 协方差形状差异
  5. img_feat / np.linalg.norm(img_feat)向量归一化,为余弦相似度做准备
  6. img_feat @ text_feat归一化后的点积直接等于余弦相似度
  7. np.random.default_rng(42)固定随机种子,让实验可复现

常见误区

误区我只要把 FID 压到最低,生成质量就一定最好。之前调参时 FID 从 30 降到 8,但出图全是同一个风格,单调难看。

正解FID 低只说明“整体分布”接近,不代表每张图都好。极端情况下,模型只生成少数几种重复图,特征分布反而能贴合真实分布,FID 甚至很好看。这就像烘焙师把一百炉豆子全烤成一个味道,风味谱测量完美,但评委喝一口就腻。要结合多样性指标和人工评级一起看。

为何常见:FID 是单一标量,人会不自觉追求“数值最小化”,忽略指标天生的盲区。

误区CLIP Score 90 分以上的图可以直接上线,机器都说图文特别匹配,肯定没问题。

正解CLIP 偏好高饱和、强对比、风格化的图,有时为了“像文本描述”会牺牲真实感和构图。拉花画得再像菜单,咖啡本身焦苦发酸也没用。高 CLIP 和低人工分同时出现时,要警觉风格化过拟合。

为何常见:机器分数直观且省人力,容易让人过度信任自动指标,忽略它和人类审美的偏差。

误区既然最后要真人审,FID 和 CLIP 都是花架子,直接找设计师看一眼就行。

正解人工成本高、主观波动大,机器指标提供低成本、可复现的全局监控。两者搭配才能高效:机器先筛掉明显差的,人工只审小批量高争议样本。仪器测出全部咖啡因含量,品鉴师负责最终风味决策,各司其职。

为何常见:看得见人工的直接反馈,看不见机器指标在全量数据上的统计价值。

误区我让组里 5 个同事看了新模型生成的图,都说不错,就上线了。结果线上用户投诉变多,头像都是畸形的。

正解5 人样本撑不起统计显著性,还容易出现从众偏差。要用盲测 + 按公式算好的样本量 + 显著性检验,像盲品会要请足量评审并按流程走。样本量不足时,结果只是随机波动,不是真信号。

为何常见:小样本反馈快,让人误把“身边人的意见”当成“全体用户的意见”。

误区模型上线前跑完一遍 FID、CLIP、人工评级,分数都达标,之后就再也不用评估了。

正解数据分布、用户偏好、Prompt 习惯都会漂移,今天合格的分数不代表三个月后还合格。就像烘焙坊每批豆子都要抽检,不能因为上一批合格就免检这一批。要建立自动化评估流水线,定期回测、持续监控。

为何常见:一次性评估成本高,上线后又缺乏监控意识,忽略概念漂移的存在。

面试题

Q1. 在 FID 评估中,分数越低说明什么?

单选题 · easy

  • A.生成图与真实图的特征分布越接近← 正确答案
  • B.生成图的整体分辨率就会越高
  • C.生成模型的推理速度会变得越快
  • D.生成模型训练需要的显存会更少

答案:A。FID 度量的是真实图与生成图在特征空间中的分布距离,分数越低代表两个分布越重合,说明生成图的“整体质感”越接近真实照片。分辨率、推理速度、显存占用都与 FID 没有直接关系。

Q2. FID 指标主要依赖哪个网络提取图像特征?

单选题 · easy

  • A.InceptionV3 网络← 正确答案
  • B.BERT 语言模型
  • C.VGG 分类网络
  • D.Transformer 架构

答案:A。FID 全称 Fréchet Inception Distance,名字里的 Inception 就暗示了它使用 InceptionV3 网络中间层激活值作为特征。BERT 是文本模型,VGG 和 Transformer 虽然能做特征提取,但不是 FID 的经典配置。

Q3. CLIP Score 用于衡量生成图像的哪个方面?

单选题 · mid

  • A.图文语义是否对齐← 正确答案
  • B.图像色彩是否鲜艳
  • C.生成速度是否够快
  • D.显存占用是否较少

答案:A。CLIP 把图像和文本编码到同一个向量空间,CLIP Score 就是两者余弦相似度,衡量图文语义对齐程度。色彩、速度、显存属于其他维度,不是 CLIP 的设计目标。

Q4. 下列哪些属于人工评级的设计要点?

多选题 · mid

  • A.定义清晰的评分维度← 正确答案
  • B.多位评审员独立打分← 正确答案
  • C.检查评审的一致性← 正确答案
  • D.用网络代替真人评审

答案:ABC。人工评级要求真人评审、独立打分、明确维度,并通过 Kappa 检验保证一致性。D 明确违背“人工”二字的初衷,机器自动评分属于另一条技术路线。

Q5. 基准数据集在评估中的作用是什么?

单选题 · easy

  • A.统一横向对比口径← 正确答案
  • B.提高模型训练速度
  • C.减少推理显存占用
  • D.自动修复生成坏图

答案:A。基准数据集提供固定 prompt、参考图和类别清单,让不同模型、不同版本在同一套“试题”下比较,保证横向对比公平。它不参与训练、不改进推理、也不修复坏图。

Q6. 设计 AB 测试时,下列做法正确的是?

多选题 · mid

  • A.采用盲测避免主观偏见← 正确答案
  • B.保证样本量足够大← 正确答案
  • C.固定提示词只变模型← 正确答案
  • D.同时更改多个实验变量

答案:ABC。AB 测试的核心是控制变量:盲测排除心理暗示,样本量由公式推算保证统计功效,同批 prompt 下只改变模型。一次改多个变量会让结果无法归因,D 是经典错误。

Q7. FID 公式中协方差矩阵的作用是什么?

单选题 · hard

  • A.刻画特征内部相关性← 正确答案
  • B.计算图像亮度大小
  • C.测量模型推理耗时
  • D.统计文本长度差异

答案:A。协方差矩阵描述特征各维度之间如何一起波动,决定了分布的“形状”。FID 同时比较均值(中心位置)和协方差(散布形状),只对齐均值但形状不同,FID 仍然很高。

Q8. CLIP Score 本质上是哪两个向量之间的度量?

单选题 · mid

  • A.图像向量与文本向量← 正确答案
  • B.图像向量与噪声向量
  • C.文本向量与标签向量
  • D.噪声向量与标签向量

答案:A。CLIP 是双塔结构,图像塔输出图像向量,文本塔输出文本向量,两者落在同一语义空间。CLIP Score 就是这对向量的余弦相似度,噪声向量和标签向量不参与计算。

Q9. 评估结果可以驱动哪些优化动作?

多选题 · hard

  • A.优化提示词表达← 正确答案
  • B.调整采样步数← 正确答案
  • C.更换基础模型← 正确答案
  • D.跳过人工审核

答案:ABC。CLIP 低优先改 Prompt,FID 高优先调采样步数、CFG 或换底座模型,这些都属于评估驱动的迭代动作。D 是错误选项:评估结果恰恰说明人工审核不能省,反而要更精准地投入人工。

Q10. 为什么生产环境需要结合机器指标和人工评级?

单选题 · mid

  • A.机器指标难以覆盖审美← 正确答案
  • B.机器指标运行成本太高
  • C.人工评级结果来得更快
  • D.人工评级完全客观公正

答案:A。FID 和 CLIP 擅长统计分布与语义对齐,但“美不美”“细节是否穿帮”这类审美判断机器难以覆盖。人工评级主观但真实。两者结合形成互补,B、C、D 的表述都与实际相反。