当你从药房取回一盒感冒药时,说明书会清清楚楚地告诉你:这药治什么病、一天吃几次、吃了可能犯困嗜睡、哪些人绝对不能碰。这份说明书保护着你的安全,也让医生能快速判断药品是否对症。AI 模型——无论是帮你识别快递单的 OCR 引擎,还是评估贷款风险的评分系统——同样需要这样一纸“说明书”。它不必长篇大论,但必须用标准格式交代清楚:这模型是干什么的、用什么数据训练的、在谁身上表现好、在谁身上会翻车、有哪些已知缺陷。 这份标准化的“模型说明书”,就是模型卡(Model Card)。它像药品说明书一样,让训练模型的工程师、部署模型的运维、审查模型的合规专员、使用模型的业务方,都能在五分钟内看懂这个模型的能力边界。本篇将带你亲手学会编写一份规范的模型卡,并了解性能分层报告、局限性声明、自动化生成与版本管理的完整流程。
学会编写模型卡,等于给你的 AI 模型配一份“体检报告 + 使用须知”。这是负责任 AI 实践的基础技能,能提升模型透明度、通过合规审查,并在问题发生时做到可追溯、可问责。
目录
可视化演示
通过模型卡结构、分层性能评估、版本管理流程三个模式,直观展示AI模型卡的内容结构、分层数据评估和自动化生成流水线。
本节配有交互动效(进入视口后自动加载,约 3KB)。
模型卡内容结构 五大维度:用途声明、训练数据、性能指标、局限性、伦理考量 每个维度包含结构化字段,支持自动化填充 维度数 = 5 模型卡通过标准化结构确保AI透明度
认识模型卡——AI 模型的“药品说明书”
拿到一盒新药,你首先找的一定是说明书——它是你和药品之间最可靠的沟通桥梁。没有说明书的药,你不敢吃;同样,一个没有模型卡的 AI 模型,部署前你该心存疑虑。药品说明书界定了这盒药的身份、成分、疗效和风险,而模型卡对 AI 模型做的正是同一件事:把模型的关键信息标准化地呈现给所有相关方。
2019 年,Google 研究团队发表论文《Model Cards for Model Reporting》,正式提出模型卡这一框架。它本质上是模型元数据的结构化文档,通常包含七个核心模块:基本信息、预期用途、训练数据、性能指标、局限性、伦理考量以及版本信息。这些模块与药品说明书的“药品名称、成分、适应症、不良反应、生产单位”一一对应,目的是让模型使用者不需要阅读源码或复跑实验,就能快速判断“这个模型是否适合我的场景”。
模型卡的核心价值有三点:其一是透明度,让模型的决策边界被看见;其二是可审计性,当模型在真实世界中造成影响时,可以通过模型卡追溯其训练数据和已知风险;其三是责任心,它强制团队在发布前回答“我的模型对哪些人群可能失效”这一关键问题。在 MLOps 工程体系中,模型卡是模型管理环节的必备交付物,也是连接模型开发与业务部署之间的“质量通行证”。
可以说,模型卡是一份写给未来的说明书——当半年后没有人记得模型训练时的细节时,模型卡依然是可靠的档案。它让 AI 团队的记忆不随人员流动而流失。
基本信息模块——先写“药名”与“生产厂家”
翻开任何一份药品说明书,第一眼看到的必然是药品名称、商品名、生产企业和批准文号。这些信息告诉你“我手里拿的到底是什么药、谁对它负责”。模型卡的第一部分同样如此,它由几个精炼字段构成,却承载着责任归属和身份识别的重要作用。
模型名称应当是简洁、无歧义的产品化名称,例如“快递单智能识别模型 v2.1.0”。名称后面应紧跟开发机构(组织或团队)、模型版本号、发布日期、许可证类型以及联系邮箱。这些字段共同回答三个问题:这个模型叫什么?谁为它负责?使用它需要遵守什么授权条款?在实际编写中,建议采用键值对形式逐行列出,例如 模型名称: OCR-Express、开发者: 某物流AI团队、许可证: Apache-2.0,避免任何模糊表述。
这里有一个容易被忽视的细节:模型卡的版本信息不同于模型权重的版本。它不仅记录模型算法的迭代,还要记录说明文本自身的修订历史。正如药品说明书每次修改都要报药监部门备案,模型卡每一次内容变更,都应当留下修订记录和时间戳。许多团队使用 Git 标签(Tag)将模型卡与模型权重、训练配置绑定在同一版本下,确保“哪一份卡对应哪一个模型”永远可追溯。
基本信息的背后是责任逻辑:一旦模型在业务中造成损失,监管方和用户首先追问的,就是模型卡上白纸黑字的责任主体。把“药名”和“厂家”写清楚,是负责任 AI 的第一步。
用途规范编写——划清“适应症”与“禁忌”
药品说明书最醒目的一栏,往往是“适应症”和“禁忌”。前者告诉你这药治什么病,后者警告你什么人千万不能用。模型卡的用途规范部分同样由两块构成:预期用途(Intended Use)和禁用场景(Prohibited Use)。它们是模型的“安全边界”,写得好能避免绝大多数的模型滥用事件。
预期用途需要描述模型被设计的核心任务、目标用户群体和输入输出形态。例如,“本模型用于识别快递面单上的收件人姓名、电话与地址,输入为面单扫描图像,输出为结构化文本。目标使用者为物流仓储操作员。”紧接着,适用场景要说明模型表现稳定的环境条件,比如“适用于 300dpi 以上的清晰扫描件,打印体识别效果最佳”。
与之相对,禁用场景必须列出不能使用模型的情形,这相当于药品的“禁忌”栏。比如“禁止用于人肉搜索、个人信息的批量收集;禁止在无人工复核的场景下自动填写法律文书”。为什么要花篇幅写禁用场景?因为一个模型在训练数据覆盖之外的表现是无法保证的,明确声明禁用场景,是团队对使用者负责的表现。在很多合规审计中,写明了禁用场景却仍被超出范围使用,责任在使用方;反之,如果模型卡未声明边界,责任往往被归咎于开发方。
边界=安全,这是用途规范编写的第一法则。一份合格的模型卡,让人一眼就看明白“它能做什么、不能做什么”,而不是靠猜。
数据记录编写——公开“药物成分”
买药时,懂行的患者会翻看成分栏:药物的有效成分是什么、辅料有哪些、有没有可能致敏的物质。对 AI 模型而言,“成分”就是训练数据。模型卡的数据记录部分需要公开数据来源、数据规模、预处理方式以及数据伦理信息,让外部审查者有能力判断数据是否存在偏差。
数据来源应具体到采集渠道和采集时间,例如“来自 2023 年 1 月至 6 月脱敏后的快递面单扫描件,覆盖华东、华南、华北三大区域”。数据规模要给出总样本量以及训练、验证、测试集的划分比例。更重要的是,需要披露数据中的群体分布情况,这直接关系到模型在不同人群上的表现是否可靠。为了量化某一群体在数据中的占比,我们使用代表性比率这一指标:
数据伦理是数据记录中容易被忽视却至关重要的部分:是否经过脱敏处理?是否包含个人敏感信息?采集过程是否获得授权?这些说明不是为了应付检查,而是为了让使用者相信,模型的“成分”是干净的。数据透明,是模型可信的地基。
- 分子群体 g 的样本数:$N_g$ 代表训练数据中群体 g 包含的样本数量,比如女性用户、老年用户或手写体样本的数量。它直接反映该群体为模型贡献了多少“学习素材”。
- 分母数据集总样本数:$N_{total}$ 代表整个训练数据集包含的样本总量。将某个群体放在总和之下比较,才能看出它的相对地位。
- 整体代表性比率:两者相除得到 $R_g$,它表示群体 g 在训练数据中的占比。若 $R_g$ 远低于该群体在真实使用人群中的占比,说明数据代表性不足,模型极可能在该群体上“欠拟合”,这一发现应写入模型卡的局限部分。
性能分层报告——亮出“临床数据”
药品上市前,药厂要提交临床试验数据。聪明的药厂不会只报一个“总有效率 95%”,而是会按年龄、性别、基础疾病分层展示疗效——因为一种药对青壮年有效,不代表对老年人同样安全。模型卡的性能模块遵循同样的逻辑,这也是负责任 AI 最核心的技术要求:分层性能报告。
首先,性能评估必须基于独立的审计数据集,而不是训练集或验证集。审计数据集应当模拟真实使用场景,并且最好由未参与训练流程的团队维护,避免“既当运动员又当裁判员”的嫌疑。其次,需要按照可能影响模型表现的因子进行分层,常见分层维度包括性别、年龄段、语言种类、图像质量、书写风格、地区等。针对每个群体计算分层准确率:
在模型卡中,分层性能通常以表格或分群体条形图呈现,并与总体指标并列展示。如果发现某些群体准确率明显偏低,这一发现必须被“点亮”:它既是性能报告的一部分,也是后续局限风险声明的证据来源。分层报告的最终目的不是让模型“看起来很行”,而是让模型的弱点在发布前暴露在阳光下,给团队一个修补的机会。
- 分子群体 g 中预测正确的样本数:$TP_g$(真正例)表示群体 g 中被模型正确识别为正类的样本数,$TN_g$(真负例)表示被正确识别为负类的样本数。两者相加,就是该群体中被判对的样本总量。
- 分母群体 g 的全部样本数:在分子基础上加入 $FP_g$(假正例)和 $FN_g$(假负例),它们是模型预测错误的样本。分子与分母之比,即可得到该群体上的准确率。
- 整体群体维度的准确率:分子除以分母得到 $Accuracy_g$。当不同群体的准确率差异明显时,说明模型存在公平性隐患,团队不能只报总体指标,而必须逐一披露各群体的表现。
局限风险声明——坦诚“不良反应”
负责任的药厂,会把最轻微的不良反应也写入说明书,哪怕只是“少数患者可能出现轻度嗜睡”。为什么?因为隐藏风险一旦发生,后果远大于坦白。模型卡的局限与风险声明,就是模型的“不良反应列表”。它通常包括已知局限、风险提示和伦理考量三个层次。
已知局限要基于性能分层报告和数据记录来写,例如“模型在手写潦草的面单上准确率降至 87.1%,对生僻姓氏识别成功率同样不佳;训练数据中老年人样本占比仅为 3.2%,模型在老年用户群体上表现未经充分验证”。这些话看起来“自曝其短”,却是保护团队的关键——它把模型的失败模式提前告知使用者,避免误用。为了量化不同群体的表现差距,可用公平性差异指标:
风险提示部分要回答“如果模型被误用或失败,可能造成什么后果”。例如“识别错误可能导致快件错投;若被用于身份自动核验,可能因误判造成用户无法收件”。伦理考量则需要讨论模型对社会公平、隐私和偏见的影响,并声明团队为缓解这些影响采取的举措。局限声明不是模型的“认罪书”,而是团队专业性的证明——敢于把缺陷写出来,恰恰说明团队了解自己的模型。
- 最大值表现最佳群体的准确率:$\max_{g \in G} Accuracy_g$ 表示在所有群体 G 中,准确率最高群体的指标值。它代表了模型在“最友好条件”下的表现上限。
- 最小值表现最差群体的准确率:$\min_{g \in G} Accuracy_g$ 表示在所有群体中准确率最低的数值。它揭示了模型在“最不友好条件”下的表现底线。
- 整体公平性差异:两者相减得到 $\Delta_{fair}$。该值越大,说明模型在不同群体间的表现鸿沟越深,例如差值为 0.12 意味着最好与最差群体之间差了 12 个百分点,这一数据必须写入局限声明,并说明团队是否已尝试缓解。
自动化与版本——说明书的生产线
药厂的说明书不是每次手写的,而是由信息系统统一生成、审批和修订。模型卡同样需要这样一条“生产线”,它包含自动生成、版本管理和发布审查三个环节。只有把模型卡的编写从手工劳作升级为流程化产出,它才能真正融入 MLOps 的日常节奏。
自动生成是指从训练流水线中自动提取元数据,填充模型卡模板。训练日志中的数据集统计、评估脚本输出的分层指标、超参数配置,都可以通过少量脚本自动写入模型卡。例如使用 Python 编写一个 ModelCard 数据类,把模型名称、训练数据规模、分层性能等字段结构化,再调用模板渲染函数一键生成 Markdown 文件。这样既减少了手工填写导致的遗漏,也保证了模型卡与模型本身的一致性。
版本管理要求模型卡与模型权重版本同步更新。每一次模型迭代,都必须生成新版本的模型卡,并通过 Git 标签或数据库记录将二者绑定。模型卡的变更记录要保留历史快照,以便追溯“这个版本为什么修改了性能指标”。发布审查则是模型卡发布前的最后一道闸门:合规专员检查数据脱敏是否达标,技术负责人复核性能分层是否完整,法务人员审阅风险声明是否充分。部分团队还会在 CI/CD 流水线中设置“模型卡缺失即阻断发布”的自动化门禁,从流程上杜绝“裸奔上线”。
从手写说明书到流水线管理,模型卡的自动化不仅提升了效率,更把负责任 AI 从个人自觉变成了组织机制。当团队人员变动时,模型卡和它的版本记录,就是项目最忠实的档案管理员。
AI 应用场景
金融风控模型合规报告
阶段:模型管理 / 合规审查
解决的问题:金融行业受强监管,风控模型在拒绝贷款时如果对特定人群存在歧视性偏差,可能面临巨额罚单与声誉损失。传统做法只提交一个总体 AUC 指标,无法证明模型对不同性别的申请人一视同仁。通过模型卡内置的分层性能报告和公平性差异指标,合规团队可以快速定位高偏差字段,并随监管申报材料一并提交。
具体案例:一家消费金融公司在发布信用卡额度模型时,在模型卡的“性能分层”模块披露了模型在不同年龄段申请人的通过率差异,并针对差异较大的 60 岁以上群体补充了额外的验证数据。合规审查一次性通过,且模型上线后因为透明度高获得了内部风控委员会的信任。
开源模型发布平台自动生成模型卡
阶段:模型发布 / 模型分享
解决的问题:开发者从 HuggingFace 等平台下载开源模型时,往往只能看到 README 里一句模糊的描述,不知道模型在什么数据上训练、有什么限制。通过平台内置的模型卡生成器,开发者上传权重时自动提取训练数据统计和评估指标,生成结构化模型卡,让使用者在 5 分钟内判断模型是否可复用。
具体案例:某语音识别团队在发布端到端中文语音模型时,自动生成的模型卡标注了“在安静环境下准确率 96%,在嘈杂街道环境下准确率仅 82%”的关键信息。一位嵌入式设备开发者在对比后,果断选择另一款在噪声环境中表现更稳的模型,避免了一次产品事故。
政企大模型上线前的风险备案
阶段:模型部署前审核
解决的问题:政府部门或大型企业引入大语言模型时,需要向内部数据委员会说明模型的数据来源、可能输出的有害内容以及缓解措施。传统 PPT 汇报缺乏统一格式,不同模型之间难以横向比较。模型卡成为标准化的风险备案文件,让审查者可以逐项核对。
具体案例:某政务知识问答系统上线前,项目组使用模型卡记录了训练语料中政务文件与公开互联网内容的来源比例,并声明“在医疗建议、法律判决等高风险问题上可能产生误导,需人工复核”。数据委员会据此批准了小范围试点而非全量开放,上线后未出现重大风险事件。
Python 演示
# -*- coding: utf-8 -*-"""自动生成模型卡 Markdown 的轻量工具"""from dataclasses import dataclass, fieldfrom typing import Dict, Listimport datetime @dataclassclass ModelCard: model_name: str developer: str version: str intended_use: str prohibited_use: str dataset_source: str dataset_size: int performance: Dict[str, float] limitations: List[str] license: str = "MIT" created_date: str = field( default_factory=lambda: datetime.date.today().isoformat() ) def _format_performance(self) -> str: lines = [] for group, acc in self.performance.items(): lines.append("- %s: %.1f%%" % (group, acc * 100)) return "\n".join(lines) def _format_limitations(self) -> str: return "\n".join("- %s" % item for item in self.limitations) def to_markdown(self) -> str: md = """# {name} 模型卡 ## 基本信息- 开发者: {developer}- 版本: {version}- 许可证: {license}- 创建日期: {created_date} ## 预期用途{intended_use} ## 禁用场景{prohibited_use} ## 训练数据- 数据来源: {dataset_source}- 数据规模: {dataset_size:,} 条样本 ## 分层性能{performance} ## 已知局限{limitations}""".format( name=self.model_name, developer=self.developer, version=self.version, license=self.license, created_date=self.created_date, intended_use=self.intended_use, prohibited_use=self.prohibited_use, dataset_source=self.dataset_source, dataset_size=self.dataset_size, performance=self._format_performance(), limitations=self._format_limitations(), ) return md.strip() if __name__ == "__main__": card = ModelCard( model_name="快递单智能识别模型", developer="某物流AI团队", version="v2.1.0", intended_use="识别快递面单上的收件人姓名,电话与地址", prohibited_use="禁止用于人肉搜索或个人信息批量收集", dataset_source="脱敏后的快递面单扫描件", dataset_size=1200000, performance={ "总体准确率": 0.982, "打印体": 0.993, "手写体": 0.945, "模糊图像": 0.871, }, limitations=[ "对手写潦草,遮挡严重的面单识别准确率低于90%", "对生僻姓氏识别效果不佳", ], ) print(card.to_markdown())
@dataclass class ModelCard用数据类定义模型卡的全部字段,让模型卡变成一个可编程、可校验的结构化对象。dataset_size: int明确数据规模字段的类型,后续可以接入数据统计脚本自动填充,避免手工填写错误。_format_performance()把分层性能字典渲染成 Markdown 列表,让每个群体的准确率都出现在文档中,落实“分层报告”要求。default_factory=lambda: datetime.date.today().isoformat()创建模型卡时自动填入当天日期,保证文档时间戳不会缺失。to_markdown()使用字符串模板渲染整份模型卡,将基本信息、用途、数据、性能、局限一次性输出。performance={"总体准确率": 0.982, ...}展示分层性能的典型写法:总体指标与分组指标并列,一眼看出差异。main` 中的 `print(card.to_markdown())直接输出 Markdown,实际项目中可改为写入文件或推送至文档平台。
常见误区
误区模型卡就是上线前随便填填的表,模型该什么样还是什么样,写了也改变不了什么。
正解编写模型卡的过程本身就是一次质量审计。为了填写“分层性能”,你必须按群体重新评估模型;为了填写“已知局限”,你必须正视失败案例。很多团队正是在这个过程中发现了数据偏差或阈值调优空间,反过来改进了模型。模型卡不是模型的装饰品,而是质量检查的放大镜。
为何常见:在传统研发流程中,文档往往被安排在开发之后,被视为“收尾动作”而非“质量关口”,因此容易让人低估其价值。
误区模型总准确率 98%,已经足够好了,再按人群拆开看是浪费时间。
正解总体指标会掩盖严重的群体差异。一个在 90% 数据上识别完美、在 10% 数据上完全失败的模型,总体准确率依然很高。模型卡规范要求按数据子群分层报告,因为只有分层才能暴露“模型对谁失效”。正如药品临床试验必须按年龄和性别分别统计疗效,不能只报一个总有效率。
为何常见:日常模型评估习惯只看单一汇总指标(如 accuracy、AUC),忽略了数据分布不平衡可能让汇总指标失真。
误区模型卡写太多缺点,领导看了不开心,审核也过不了,最好含糊带过。
正解模型卡不是产品营销页,而是技术诚信声明。隐藏已知局限,一旦模型被用到未覆盖场景并出事,事后追溯时团队将承担全部责任;主动声明局限,反而能把风险责任明确划分给使用方。监管和审计不仅不惩罚“承认局限”的团队,还会把它视为负责任的表现。
为何常见:把模型卡类比为宣传材料,却忘了它更接近法律文书——严谨和坦诚永远比好看更重要。
误区模型上线时写一份模型卡,以后就不再管它了,反正模型代码又没变。
正解模型卡必须与模型版本同步演进。训练数据更新、超参数调整、发现重大风险后增加的声明,都属于模型卡的新版本。没有更新的模型卡就像过期的药品说明书,会给使用者传递错误信息。业界建议用 Git 标签将模型卡与模型权重绑定,做到“卡随模型走”。
为何常见:文档版本管理意识薄弱,习惯把模型卡当作一次性交付物,而非与模型生命周期同步的活文档。
面试题
Q1. 模型卡最主要的作用是什么?
- A.提高模型训练速度
- B.记录模型的用途数据与风险← 正确答案
- C.替代源代码的功能注释
- D.自动生成训练所需数据集
答案:B。模型卡是标准化模型说明书,核心作用是记录模型的用途、训练数据、性能、局限与伦理信息。选项 A 与模型卡无关,C 混淆了代码文档与模型文档,D 属于数据工程范畴而非模型文档范畴。
Q2. 模型卡中“禁用场景”应填写什么内容?
- A.模型表现最好的典型场景
- B.不允许使用模型的场景与人群← 正确答案
- C.训练数据的预处理步骤
- D.模型训练过程中的损失值
答案:B。禁用场景相当于药品的“禁忌”栏,用于声明不能使用模型的情形,防止模型被滥用。A 属于适用场景,C 属于数据记录模块,D 属于训练日志而非模型卡内容。
Q3. 一份规范的模型卡通常包含哪些模块?
- A.基本信息与版本信息← 正确答案
- B.训练数据的来源与规模← 正确答案
- C.按群体分层的性能指标← 正确答案
- D.模型的完整源代码仓库
答案:ABC。模型卡是模型的高层抽象文档,包含基本信息、数据、性能、局限、伦理等模块,但不会包含源代码本身。D 项属于代码仓库的职责,将源代码放入模型卡反而破坏了文档的简洁性和可读性。
Q4. 性能分层报告主要解决什么问题?
- A.提升模型的推理延迟表现
- B.暴露模型在不同群体上的性能差异← 正确答案
- C.减少训练过程的内存占用
- D.替代机器学习超参数调优
答案:B。分层报告按性别、年龄、图像质量等因素拆解模型表现,目的是发现总体指标掩盖下的公平性隐患。A、C 属于工程性能优化,D 属于模型训练阶段手段,都与分层报告目标不符。
Q5. 公平性差异指标 Δfair 数值越大说明什么?
- A.模型在各类群体上表现越一致
- B.模型的总体性能越优秀
- C.不同群体的性能差距越大← 正确答案
- D.训练数据的样本总量越多
答案:C。Δfair 是最高群体准确率与最低群体准确率之差,差值大意味着弱势群体与优势群体间的表现鸿沟明显,是模型卡局限声明的重要依据。A 与题意相反,B、D 与公平性差异无直接关系。
Q6. 某团队在模型卡中写“本模型无重大局限”,但审计发现该模型在性别维度上的准确率差异高达 20%。最可能的问题是什么?
- A.审计数据集规模太大导致统计偏差
- B.分层性能证据与局限声明自相矛盾← 正确答案
- C.模型训练轮数不足以收敛
- D.模型卡缺少代码示例
答案:B。分层性能差异显著时,必须在局限风险中如实声明,否则模型卡的声明与证据互相矛盾,属于严重的不负责任行为。A、C 是训练或审计层面的推测,D 与模型卡规范无关,最确切的结论是 B 所述的声明与证据矛盾。
Q7. 编写模型卡的“已知局限”时,正确的做法包括哪些?
- A.如实描述已发现的失败模式← 正确答案
- B.给出建议的规避方式← 正确答案
- C.只列出最容易解释的一条风险
- D.声明尚未验证的边界场景← 正确答案
答案:ABD。已知局限应当完整覆盖已发现的失败模式、不确定性边界,并给出规避建议。C 只报一条但隐藏其他重大风险,是典型的不透明行为,违背模型卡的负责任原则。
Q8. 从负责任 AI 的角度看,训练数据中“代表性比率 R”偏低最恰当的处置方式是?
- A.直接删除该群体数据使指标更好看
- B.在模型卡中声明数据局限性并补充验证← 正确答案
- C.降低模型总体准确率以拉平差距
- D.在禁用场景中彻底排除该群体使用
答案:B。R 偏低说明某群体在训练集中占比过少,正确做法是补充采样或验证,并将该局限性写入模型卡。A 属于数据造假,C 无意义,D 虽然看似规避但未对模型改进负责,且排除该群体可能构成服务歧视。B 才是负责任的工程处置。
Q9. 模型卡自动化生成的最大难点是什么?
- A.自动启动 GPU 训练任务
- B.让模板字段自动匹配审计指标与元数据← 正确答案
- C.提升模型在基准集上的分数
- D.自动压缩模型权重的体积
答案:B。自动生成的核心困难在于字段映射——训练日志中的原始指标需要清洗、聚合后填入对应模块,尤其是分层性能数据往往分散在多个评估脚本中。A、C、D 分别是集群调度、模型训练、模型压缩领域的问题。
Q10. 模型卡的版本管理与代码版本管理的核心区别是什么?
- A.模型卡完全不需要记录版本
- B.模型卡需与数据集权重等元数据绑定← 正确答案
- C.代码版本用 Git 而模型卡不用工具管理
- D.两者在管理方式上没有任何区别
答案:B。模型卡版本不仅要记录文档自身改动,还必须与模型权重、数据集版本、训练配置绑定,才能实现“卡随模型走”。A 明显错误,C 中模型卡同样可以用 Git 管理,D 忽略了两者管理对象的不同。