社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

机器学习资产怎么管:描述、检索与合规的三步做法

智能原生智库 • 1 周前 • 58 次点击  


Hugging Face一个平台就托管了超过300万个模型,每月新增约10万个,占用存储超过45PB。另一组数字更值得注意,超过一半的模型没有配套的模型卡,仅约8%的模型写明了许可证信息。也就是说,大量资产在被发布的那一刻,就没有留下让人判断能否使用、该怎样使用的信息。凯斯西储大学、新加坡国立大学与加州大学尔湾分校的六位研究者,在VLDB 2025上发表了一篇教程论文,把这类对象统称为机器学习资产,主张用管理数据的方式来管理模型。本文将围绕机器学习资产管理展开,详细介绍怎么做,怎么描述清楚,怎么找得到,怎么用得可复现、可合规。

一、问题的实质:资产在涨,治理没跟上


论文对机器学习资产的定义放得很宽,凡能为机器学习流程提供价值的制品都算。按这个口径可分三类,覆盖范围如表1所示。

表1:三类机器学习资产的覆盖范围(作者整理)

三类资产的分量并不相同。数据集重在可追溯,模型重在可复现,元数据重在可解释。前两者是内容,后者是说明。缺了说明,模型在别人手里只剩一个文件名,参数再多也判断不出它适合什么任务、
何时会失效。

治理缺位表现为四个症状。文档碎片化,各平台字段含义互不对应。存储孤岛,资产散落在内部仓库与公有平台之间,无法统一编目。许可证不一致,同一模型在不同镜像上的授权声明可能矛盾。缺少统一发现机制,检索只能靠平台自带的关键词过滤,跨平台联合查询无从谈起。

这些症状看似分散,本质是同一类问题。把资产当成数据对象之后,编目对应数据字典,检索对应查询优化与索引,血缘对应视图与溯源,许可证对应访问控制策略。数据管理领域几十年的积累可以直接迁移,差别只在对象从表变成模型,约束从模式约束变成语义与授权约束。这也是教程出现在数据库会议而非机器学习会议的原因。

二、闭环,不是流水线


教程给出的整体框架如图1所示。左侧是策展,包含元数据与模式、仓库与基础设施、许可证三块。右侧是发现,包含检索、给定数据选模型、给定模型找数据。下方是利用,包含协作与工作流、可复现与溯源、责任治理。三段围绕中间的资产中枢组织。

图1:机器学习资产管理的闭环结构,围绕资产中枢串联策展、发现与利用(原论文 Figure 1)

四个部件的关系可以对照图看。原始资产尚未加工,形态杂、质量不一,散落在多个系统里。资产中枢承担登记与索引,是集中掌握全部资产及其关系的状态层。发现环节把中枢内容投影成候选集,利用环节把候选集组织成可执行的有向无环图,执行过程再向中枢写入新的观测。这个划分把状态与计算分开,状态集中,计算分散。

关键在于,三段之间不是单向流水,而是闭环。一次使用会产生三类证据,模型在某个数据集上的实测性能,微调引入的新许可证约束,工作流的执行配置与开销。这些证据回流到资产中枢,成为下一轮描述与检索的输入。论文强调资产之间的交互而不只是单个资产的描述,原因就在这里。模型卡能说明模型自身,却说明不了它与哪个数据集真正匹配,后者只能从使用记录里长出来。

这条闭环对系统提出三个硬要求。要有描述记录,且描述是结构化的,能被机器查询而不只是被人阅读。要有血缘记录,能回答一个模型从哪些数据、哪个基座、哪段代码派生而来。要有使用观测,把每次评测与执行的上下文留下来。三者缺一,闭环就断在某一环上。很多团队有第一项,缺后两项,结果资产目录做成了静态黄页,查得到但用不准。

由此可以解释一个常见现象。只被调用过一次的模型,往往永远长不出好描述,因为没有使用证据可以补充。反过来,被反复调用的资产会越用越清晰,性能边界、已知缺陷、适配场景都在使用中沉淀。资产治理因此有正反馈,前提是使用记录确实回到中枢,而不是留在某个人的notebook里。

三、第一步:把资产描述清楚


策展的目标不只是把资产存下来,还要让它被准确描述、反复复用、合规约束。这一节按可操作顺序展开,先写卡,再把卡变成机器可读的结构,最后解决谁来写。

3.1 一张模型卡该写哪九段

模型卡是目前最通用的描述约定,由Mitchell等人在2019年提出,用于披露预期用途、评测结果与伦理考量。它的价值不在格式本身,而在系统回答九个问题,具体内容与填写要点如表2所示。

表2:模型卡的九段结构与填写要点(作者整理)

表2的清单里,最容易被跳过、也最该认真写的是预期用途中的排除项。多数误用不是因为使用者冒险,而是文档没说清不能用于什么场景。写清排除项等于提前划定责任边界,成本很低。

第二处值得投入的是分群结果。一个模型报告总体准确率92%,如果某一类人群只有71%,这个差距比总体数字重要得多。分群维度可以按人群、设备、环境、地域设置,关键是报告交叉分组,不只报单维度。若因数据不可得而无法分群,应写成已知风险,而不是省略。

第三处是让卡随版本走。模型卡不是一次性发布物,重训、换数据、调阈值之后都要更新。可执行的做法是把卡挂到发布流水线上,未通过校验的模型不允许进入生产。这样卡片才具备准入效力,而不只是说明文档。

3.2 从自由文本到机器可读:Croissant的四层结构

模型卡解决了有没有,没解决格式统一。自由文本难以跨平台比对,更难被搜索引擎与训练框架直接消费。数据集侧近年有一个较成熟的方案,Croissant。它基于schema.org词汇,用JSON-LD序列化,把数据集元数据分成四层,数据集整体属性、文件资源清单、文件内部结构、训练验证测试的语义划分。

四层的分工很实用。整体属性记录名称、版本、许可证与任务类型。资源清单列出每个文件的路径、格式与校验值。结构层描述内部字段、类型与记录数,相当于轻量模式。语义层说明哪些记录属于训练集、验证集、测试集,以及标注字段含义。前两层解决文件在哪,后两层解决里面是什么。

这套格式已被Hugging Face、Kaggle与OpenML等平台原生支持,覆盖数十万个数据集,也被纳入Google Dataset Search的检索范围。对发布者,收益是资产能被外部检索到,不只在自己仓库里可见。对使用者,收益是拿到数据后不必再写脚本去猜字段含义。

模型侧还没有同等程度的共识。模型卡以文档形态存在,字段命名与粒度各不相同,跨平台比对基本靠人工阅读。可行的过渡做法是把模型卡的关键字段抽成一张结构化表,至少覆盖模型标识、基座模型、训练数据集、许可证、评测指标与已知限制,随权重一起发布。这不是标准,但能让自动检索先跑起来。

3.3 把卡片连成图:本体为什么重要

单张卡片只描述一个资产,真正难回答的问题是资产之间的关系。这个模型是在哪个基座上微调的,用了哪份数据,与另一个模型是否共享训练集,许可证是否兼容。CRUX的做法值得借鉴,它面向材料科学构建了一个众包平台,用与领域科学家共同设计的本体来刻画模型、数据集以及二者之间的交互,进而支持模型推荐与数据发现。

本体设计的要点是先把领域里真正起作用的实体和关系找出来,而不是套用通用词汇。材料科学里,一个模型往往对应一类表征方法,一份数据往往绑定一种实验条件,这些都应成为显式的关系类型。通用本体能覆盖七八成字段,剩下部分恰是领域判断所在,也是检索质量的分水岭。

一旦资产之间有了显式的依赖、许可证兼容与函数调用关系,很多数据库问题就可以搬过来,形式化建模、模式规范化、声明式操作、溯源查询、兼容性检查。这也是把资产当数据对象的落脚点,不只是换个说法,而是接入一套成熟方法。

3.4 别指望人手填:元数据的三条自动生成路径

开头的统计已经说明,过半模型没有模型卡。即便有,填写质量也参差不齐,常见的是照抄模板、回避已知局限、选择性披露评测结果。靠呼吁提高自觉性解决不了这个问题,可行的方向是让元数据在产生资产的过程中顺带被写出来。

第一条是运行时采集。在训练脚本或框架回调里挂一个记录器,自动落盘数据集标识与版本、超参数、随机种子、硬件配置、训练时长、评测指标与环境依赖。这一步门槛最低,收益最直接,因为此时信息最完整,事后补记几乎必然失真。

第二条是从产物本身解析。从权重文件读出张量名称、层数、精度与参数量,从数据文件读出字段、类型、记录数与缺失率,从代码仓库读出依赖清单与许可证声明。这类信息不依赖人的记忆,适合做成入库时的自动检查项。

第三条是用语言模型补全语义描述。前两条能拿到结构化事实,拿不到用途、局限这类叙述内容。语言模型可基于训练配置、数据样本与评测结果生成初稿,再由人审阅。分工要清楚,机器负责起草和一致性检查,人负责判断与担责。

3.5 三个尚未填上的缺口

第一个缺口是元数据质量。已发布元数据中相当比例是人工填写且未经校验,字段缺失、口径不一、时效过期同时存在,直接拖累检索效果。自动生成能提升覆盖率,但无法保证准确,仍需抽样校验。

第二个缺口是模式不一致。各平台自建字段,跨平台整合与联邦查询困难,社区层面的统一模式或本体仍是必需品。Croissant在数据集侧推进了一步,模型侧尚无同等共识。

第三个缺口是许可证歧义与冲突,也是最难的一块。许可证限制会沿微调链向下传播,部分许可证之间还互斥,例如GPL-3.0与Llama 3.1社区许可证就难以共存。当模型依赖变深、组件变多,人工做合规分析在经济上已不可行。需要的是一个形式化的许可证策展框架,支持跨资产的依赖推理与自动合规检查。

四、第二步:让人找得到


发现环节要解决的问题是,在规模庞大的资产池里找到对的那个。三个方向构成一个从粗到细的漏斗,先做候选召回,再在候选内排序,最后对少量候选做实测。

4.1 三种检索做法,各有失效条件

最早也最稳的是分面检索。按模态、任务、许可证、规模逐层收窄,靠精确匹配得到候选集。效率完全取决于元数据的规整程度,字段缺失或写错就失效,因此适合做第一道过滤,不适合单独承担召回。

向量检索是近年主流补充。把模型或数据集嵌入统一空间,用相似度召回,配合向量索引做快速查询。它比关键词宽容,能处理表述差异,也能覆盖没有规范标签的资产。问题是各类方法通常只处理单一类型,忽略资产之间的交互。一个模型与一个数据集是否匹配,不在任何一方的嵌入里,只在二者共同作用的证据里。

图检索补的正是这一块。把模型、数据集、任务与评测结果建成异构图,查询沿关系边走,可回答带跳数的问题,例如与某数据集共享训练来源、且许可证兼容的模型有哪些。代价是要维护图结构,关系数据往往稀疏。

4.2 给定数据选模型:先用便宜信号排序

手头有一份数据和任务,该用哪个模型,是实践中最常见的问题。逐一微调评测在候选上万时不可行,替代方案是先用廉价信号排序,再对排在前面的少量候选做真实评测。

可迁移性度量是这类信号的代表。它不训练目标模型,只用一次前向计算,估计预训练模型的特征能给目标标签提供多少证据。LEEP的做法是先统计一个经验条件分布,即在源模型判为某一类时目标标签如何分布,再用源模型的输出概率加权,算出目标标签的期望似然,取对数后平均。分数越高,说明源模型的输出空间与目标标签越对齐。

LogME换了一个角度。它把目标标签对特征的依赖看成一个带高斯噪声的线性模型,通过最大化边际似然,也就是证据,来评估这组特征解释标签的能力,再按样本数归一化。相比LEEP,它不要求模型带softmax分类头,因此也能用于回归任务、对比预训练模型与语言模型。

两者都不更新参数,成本约等于一次推理。工程用法是固定的,先用指标把上万候选压到几十个,再在少量样本上做小规模微调或线性探测,用实测结果定最终选择。指标只负责排序,不给绝对值,把它当筛选器而不是性能预测器,就不会误用。

另外两条路线可以叠加。元学习推荐用元数据训练推荐器,把任务类型、数据规模、领域等上下文纳入排序。图学习推荐把模型、数据集、任务建图,用图神经网络传播信息,在标注稀疏时借用相邻节点的证据,也为新数据集冷启动提供起点。

4.3 给定模型找数据:三条技术路线

反方向的问题同样重要。手上有一个模型,去找什么样的数据能让它表现得更好,同时训练与测试开销可控。这类任务对数据操作的要求更细,往往要跨越特征工程与数据集成。三条路线的输入输出与典型方法如表3所示。

表3:发现环节三类任务的技术路线(作者整理)

表并集检索解决数据完整性问题。它不做简单拼接,而是在语义层面合并多个带上下文的列式数据源,把描述同一实体的列对齐后合成新表。判定两列是否指同一件事,靠值分布、列名语义与样本重合度,而不是字符串相等。这类方法适合把分散在各部门的数据补成一张宽表。

目标导向的数据发现把数据选择绑定到下游任务。给定一个效用函数,例如目标模型在验证集上的某个指标,搜索能提升该指标的数据子集,只保留有贡献的部分。多目标版本同时纳入多个标准,产出一组互不被支配的数据集,交给使用者按偏好取舍,而不是先替他定权重。

面向大语言模型的数据增强是这条路线在生成式场景的延伸。它不只挑数据,还按模型的能力短板生成补充样本,再过滤低质量或重复部分。要留意一个边界,生成数据会改变训练分布,效果评估必须回到独立验证集,不能用生成器自身的评分代替。

4.4 冷启动:从原始内容派生表示

三类方法有一个共同瓶颈,都依赖元数据或历史评测记录。新资产两者皆无,检索无从下手。缓解思路是绕开人工描述,直接从原始内容派生标准化表示,用权重或数据样本的嵌入作为检索入口。新模型一入库就能被召回,不必等有人写卡。

规模与语义是另外两个瓶颈。复杂查询的计算开销,需要分布式检索、嵌入缓存与向量索引配合。交互式发现要求系统同时理解模型与数据,并把二者映射到同一表示空间,目前没有通用解法。可行的折中是先做模态内统一,再做跨模态对齐。

五、第三步:用得可复现、可合规


资产被整理和找到之后,价值产生于使用。这一节的三块内容对应三个实操问题,怎么把资产组合成流程,怎么让别人相信结果,怎么保证用法不越界。

5.1 工作流:先把流程变成图

工作流聚合是从仓库中挑选彼此兼容的资产,拼成模块化的流程。模块化的直接收益是流程可表示为有向无环图,从而获得结构化的分析基础,例如并行调度、缓存复用、失败重跑、资源估算。没有图结构,这些优化只能靠人工经验。

协作场景里,图结构还带来一个好处,不同背景的成员可以各自负责节点,围绕同一张图讨论,不必共用一份脚本。保存执行配置与历史记录之后,流程可以确定性重放,这对审计和复现很关键。

智能体驱动的自动构造是新的方向。传统AutoML要在大量候选上反复试验,成本高。多智能体方法把流程组装表述为目标条件下的规划问题,语言智能体在元数据上推理,推断任务需求,迭代拼装流程。前提仍是元数据可用,元数据不准则规划出的流程只是看起来合理。

5.2 溯源:记录六类信息,并区分两个概念

可复现的前提是溯源,即记录一个模型的完整血缘。需要落下来的信息可归为六类,训练数据及版本、预处理步骤、超参数与随机种子、源代码与依赖、评测指标与结果、运行环境与硬件。六类齐了,别人才可能复现实验、核验结果、判断模型能否复用。

工程上已有多种实现路径。Vamsa与Geyser从数据科学脚本中自动抽取溯源,ProvDB把工作流表示为图以支持血缘查询,Lima做细粒度追踪并支持复用。数据溯源里的因果追踪方法也被迁移过来,用来为模型输出生成事后解释,回答某条输出依赖哪些输入。

这里有一个容易混淆的区分。溯源回答这个结果从哪来,可复现回答我能否再得到一次。二者相关但不等价。完整记录血缘不保证环境可重建,环境能重建也不保证记录足以解释结果。工程上它们需要不同的基础设施,前者靠元数据与图存储,后者靠环境固化与确定性执行。

5.3 许可证:三个问题,一套机器可读的记录

许可证是机器学习资产区别于传统软件最明显的一处。模型专用许可证治理的对象不只是代码,还包括权重、检查点、优化器状态与架构,并用法律条款约束其使用与分发。它相对传统软件许可证有三点实质差异,如表4所示。

表4:模型专用许可证与传统软件许可证的三点差异(作者整理)

Gemma许可证是一个具体样本。它把网络访问写入分发的定义,并明确权重模式的转移构成受本许可证约束的模型衍生。其第3.1条进一步规定,被许可方不得以违反禁用政策的方式使用Gemma或其模型衍生。三处条款叠加,使合规判断不能停留在有没有许可证的层面,而必须回答三个问题,通过什么方式访问,用来做什么,改到什么程度。

三个问题恰好对应三类可机器检查的记录。访问方式落在分发渠道字段,用途落在预期用途与禁用条款字段,改动程度落在派生关系字段。把这些字段写进结构化文档,合规检查才能从人工读条款转为规则比对。

SPDX 3.0是目前最接近落地的方案。它按用途分层,把人工智能与数据集各自定义成一等元素。人工智能配置记录模型标识、版本、许可证、类型、应用领域、训练方法、可解释性、能耗与安全风险。数据集配置记录来源、类型、规模、采集过程、已知偏差、敏感信息标记与匿名化方法。两者用trainedOn、descendantOf等关系连接,形成可追溯的派生图。

这套结构与模型卡基本对齐,意味着已有的模型卡可以较低信息损失地转换为机器可读的物料清单。对已经在用SPDX做软件合规的组织,意义在于不必为人工智能场景再引入一套并行体系,也不必重建一遍依赖清单。

工具侧已有积累。FOSSology做许可证扫描,Carneades做许可证兼容性论证,Black Duck做软件组成分析,ModelGo分析器专门针对机器学习项目,基于本体自动检查权利授予、条款冲突与许可证不兼容。这些工具能向机器学习项目延伸的前提只有一个,物料清单可得。

缺口也在这一环。SPDX 3.0尚未集成进主流机器学习工具链,模型开发的披露方式仍不统一。更实际的问题是文件格式,Safetensors、GGUF与OpenVINO IR这些常用模型格式都不内嵌许可证元数据,许可证只能写在旁边的文档里,一旦文件被单独搬运,授权信息就丢失了。这是许可证不一致的技术根源,也是为什么单靠文档治理解决不了问题。

六、支撑系统与落地清单


把资产当作一等公民,意味着需要一类新的管理系统。论文从存储、版本、索引三个维度提出系统层挑战,这三处恰好是数据库系统最擅长的战场。

6.1 存储:格式选择直接决定安全与速度

大模型与大数据集带来的首要压力是容量与加载效率。Safetensors是目前较优的默认选择,结构很简单,开头8个字节记录JSON头长度,随后是描述每个张量名称、类型、形状与字节偏移的头,再往后是连续排列的张量数据。加载时解析头,按偏移映射数据,不必反序列化整个文件。

这个设计带来两个收益。速度上,数据区按页对齐,可整体内存映射,张量按需换入,冷启动从分钟级降到秒级。安全上,文件里只有数值和描述,没有可执行对象,加载过程不存在代码执行路径。这对从公开平台下载权重尤其重要,pickle的历史漏洞正是通过反序列化执行任意代码。2023年Trail of Bits的审计未发现可导致任意代码执行的问题,此后Safetensors逐步成为发布默认格式。

另一条路线是元数据与大文件分离。ModelDB只存关键元数据,大体积二进制留在对象存储,查询走数据库,读取走存储服务。模型湖则直接建在分布式存储之上。三者取舍不同,共同问题是规模上去后如何保证效率、安全与一致性。

6.2 版本:记录变化,而不是复制全量

版本控制与血缘追踪是可复现与可审计的前提。受Git启发的增量式版本控制用于管理演进中的数据集与模型,通过捕捉细粒度变更连同元数据记录,避免每次改动复制全量。这类实现在深度学习生命周期管理里出现得较早。

增量方案的关键是定义什么算一次变更。对数据集,是行的增删改与模式变化。对模型,是权重更新、配置调整与依赖升级。定义不清,版本号就失去意义。实践做法是把粒度绑定到发布单元,一次发布一个版本,版本间记录差异摘要。

血缘查询则需要图结构支撑。ProvDB把工作流表示为图,支持对血缘与依赖的丰富查询。局限在规模化,以及血缘如何被复用,后者论文明确指出仍需研究。

6.3 索引:三类异构数据,一次查询

在海量资产上做高效检索,需要能同时处理异构信息的索引。结构化元数据、图形式的血缘、语义嵌入三类数据,查询模式差异很大。早期系统倾向分开展示,用多个标签页呈现不同数据类型,用户自己去拼。混合索引更统一,已有系统在向量嵌入与结构化数据上同时支持谓词无关的检索,把两类过滤合并到一次查询。

索引维护还有两个常被低估的成本。一是新鲜度,资产持续更新,索引必须低成本地跟上,否则检索结果会指向过时版本。二是隐私与安全,嵌入本身可能泄露原始内容的信息,索引层也需要相应的保护机制。

两条机会值得关注。一是向量数据库与向量处理优化结合,把大规模检索建立在专门的向量数据管理之上。二是把语言模型与检索增强生成引入资产推荐,机器学习资产的元数据、数据卡与应用描述文本丰富,恰好落在语言模型擅长的区间。这条路线与智能体自动构造工作流合流后,发现环节可能从填表单检索转向用自然语言描述需求、由系统规划候选资产。

6.4 从明天就能开始的六件事

第一,给新发布的模型补一张九段卡,重点写排除用途与分群结果。一个模板加一次评审即可,成本最低而收益最直接。

第二,在训练脚本里挂一个记录器,自动落盘数据版本、超参数、随机种子、环境依赖与评测指标。越早做越省事,事后补记几乎无法还原。

第三,把权重统一转成Safetensors。转换无损,只改容器格式,安全与加载速度收益立刻可见。

第四,挑一个在用的模型,用SPDX 3.0的人工智能与数据集配置写一份物料清单,把trainedOn与descendantOf两条关系填对。先跑通一个样本,再批量。

第五,建一张模型、数据集、评测结果的三元组表,作为检索与推荐的数据底座。哪怕几百行,也足以支撑可迁移性排序。

第六,在结构化过滤之上加一层向量召回,做混合查询。先解决同模态内的召回,再考虑跨模态统一表示。

6.5 边界与适用条件

需要说明的是,这是一篇教程而非研究论文,贡献是领域地图而非新方法。全文没有提出新算法,也没有统一的定量评测,技术判断建立在作者对文献的梳理之上。文中的性能主张都应回到原始文献核对,不宜把教程结论当作独立验证。

另一处边界是场景偏向。论文案例集中在材料科学,共同点是数据敏感、流程规范、合规要求高,对溯源与许可证诉求强。在消费级应用或快速迭代的团队里,同样的基础设施投入未必划算,轻量元数据约定可能更现实。六件事的顺序也应按此调整,合规压力大的优先做第四项,追求效率的优先做第二、第三项。

从治理视角看,这篇教程最值得借鉴的是切分方式。它没有笼统地谈人工智能治理,而是落到三个可执行的动作,用结构化描述让资产可理解,用统一索引让资产可发现,用机器可读的物料清单让授权可核查。三者分别对应文档、检索与合规三条工程线,每条线上都有现成的标准与工具可以对接。对正在建内部模型资产平台的团队,这张地图的价值在于指出哪些环节可直接采用成熟方案,哪些仍需自己补。

论文解读联系人:

李丰欣

15543511927(微信同号)

 lifengxin@caict.ac.cn

图片
一图读懂智能原生(AI Native)评估测试体系2026
生态共建!智能原生领航计划第二批参与单位启动招募
AIIA全会 | 智能原生工作组第一次组会暨智能原生产业落地实践研讨会顺利召开

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/202671