Quality Model for Machine Learning Components
本文提出并验证了一种针对机器学习组件的专门质量模型,该模型通过提供一个用于定义系统衍生需求并促进开发者与利益相关者之间有效沟通的结构化框架,解决了现有标准的局限性。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下你正在建造一辆高科技汽车。你拥有一支优秀的工程师团队,负责设计发动机(即机器学习模型);你还有一支独立的机械师团队,负责建造底盘、车轮和仪表盘(即其余的软件系统)。
这里存在一个问题:发动机设计师通常只被要求证明他们的发动机既快又强劲。他们并不知道,发动机需要适配特定尺寸的引擎盖,或者不能导致汽车电气系统过热,亦或是需要能够适配不同类型的燃料。由于这种不匹配,发动机可能在测试赛道上表现完美,但一旦安装到实际汽车中,却会表现得一团糟。
以下是作者为解决这一问题所做的简单拆解:
1. 问题所在:“发动机”与“汽车”
在机器学习(ML)领域,许多原型(即“发动机”)永远无法进入现实世界(即生产环境)。为什么?因为开发者通常只测试模型是否“聪明”(例如:它是否猜对了答案?)。他们忘记了测试模型对于其生存系统是否实用。
- 旧方法: “这个模型预测降雨是否准确?”
- 缺失的部分: “这个模型预测降雨的速度是否足够快,以满足交通类 App 的需求?它是否消耗了过多的电池?如果网络中断了会发生什么?”
作者指出,现有的规则(如 ISO 标准)混淆了“系统”规则与“组件”规则。这就像是告诉发动机设计师,他们需要“确保汽车在冰面上行驶安全”。发动机设计师无法控制道路或轮胎;他们只能控制发动机。他们需要一份专门针对发动机的清单。
2. 解决方案:一份全新的“发动机手册”(质量模型)
作者创建了一个新的机器学习组件质量模型。你可以把它看作是一份专门的清单或“需求菜单”,旨在帮助构建系统的团队与构建模型的团队进行沟通。
该模型不再仅仅询问“它是否准确?”,而是提出了 30 个具体问题,并将其分为 7 个类别,例如:
- 行为分析: 如果模型表现异常,我们能否轻松观察到它的运行情况?(就像仪表盘上的指示灯能告诉你发动机是否失火一样)。
- 置信度: 模型能否解释它做出决策的原因?(就像机械师解释为什么选择某个特定零件一样)。
- 持续运行能力: 如果数据变得混乱或计算机运行缓慢,模型是否仍能继续工作?(就像即使燃料有点脏,发动机也能继续运转一样)。
- 维护性: 以后更新模型时,在不破坏整体结构的情况下,操作是否简便?(就像更换火花塞而不需要拆解整辆车一样)。
- 负责任的 AI: 模型是否公平?它是否平等对待每个人?它是否尊重隐私?
- 安全性: 黑客能否通过欺骗手段误导模型?
3. 他们是如何构建的
该团队并非凭空猜测。他们扮演了侦探的角色:
- 收集线索: 他们查阅了现有的软件规则和学术研究,以找出所有被提及的质量属性。
- 分类整理: 他们将 163 个不同的想法写在卡片上。然后,通过“卡片分类法”将相似的想法归类在一起,并剔除重复项。
- 过滤噪音: 他们询问:“模型开发者是否真的可以在其自身环境下测试这一点?”如果答案是“不,那是系统层面的问题”,他们就会把这张卡片扔掉。
- 最终名单: 他们最终得到了 30 个具体的、可测试的质量属性,模型开发者可以在将模型移交给系统构建者之前,实际检查这些属性。
4. 是否奏效?(调查研究)
为了验证这个新清单是否实用,他们向 22 位专业人士(工程师、数据科学家和研究人员)发送了这份清单。
- 现实检验: 他们发现,在现实世界中,人们主要只测试“准确性”(约占所有测试的 19%)。他们很少测试诸如“资源使用量”或“鲁棒性”之类的指标。
- 结论: 专业人士一致认为,使用这个新清单可以帮助他们在早期发现问题,即在模型部署之前。他们认为这能捕捉到更多通常只在系统于现实世界崩溃时才会显现的问题。
- 工具: 他们甚至开发了一个名为 MLTE(机器学习测试与评估)的免费开源工具。它就像一个库,开发者可以在其中找到用于测试这些特定质量属性的现成代码。
核心总结
本文认为,我们不应再将机器学习模型视为只需要“聪明”即可的魔法黑盒。相反,我们需要将它们视为具有特定物理和行为限制的标准软件组件。
通过使用这个新的质量模型,团队可以达成一种通用的语言。系统构建者可以说:“我们需要一个鲁棒且快速的模型”,而模型构建者则知道具体要测试什么,从而确保“发动机”能完美地适配进“汽车”之中。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。