✨ 要点🔬 技术摘要
想象一家试图制造一辆高科技自动驾驶汽车的公司。他们拥有能够设计引擎(机器学习模型)的顶尖工程师,但由于这辆车从未真正驶上公路,它只能停在车库里,落满灰尘。
这篇论文就像是一部侦探小说,调查了为什么这些“智能”汽车总是无法成功发布。作者 Alina Mailach 和 Norbert Siegmund 不仅仅观察了引擎部件(代码),他们还观察了人员、管理和办公室政治 。他们听取了来自“MLOps 社区”(一个拥有超过 11,000 名专业人士的庞大群体)专家超过 66 小时的演讲,以查明究竟出了什么问题。
他们发现,问题通常不在于技术本身。相反,它是由一系列 17 个“反模式”(Anti-Patterns) ——即坏习惯和组织错误——组成的,这些模式就像是通往成功之路上的坑洼。
以下是他们研究结果的简单拆解,使用了日常类比:
1. “两队之间的拔河”(组织孤岛)
想象一支厨师 (数据科学家)团队正在创造一种美味的新汤配方(模型),以及一支服务员 (软件工程师)团队,他们必须将汤端给顾客。
问题: 厨师用一种秘密代码、在餐巾纸上记录配方,没有任何计量单位。服务员听不懂这种语言。当厨师试图递出汤时,服务员说:“我没法端这碗汤;它太乱了!”厨师说:“这很完美;只是你们不懂而已!”
结果: 汤永远无法被端上桌。厨师被迫学习如何端盘子,而服务员则被迫从头开始重写配方。
解决办法: 他们需要一份菜单 (模型注册表)将配方翻译成清晰的指令,或者他们需要把厨师和服务员放在同一个厨房里(跨职能团队),以便他们在工作时能进行沟通。
2. “囤积数据”(生产者 vs 消费者)
想象一个农民 (数据生产者)正在种植玉米,以及一个需要这些玉米来做面包的面包师 (数据消费者)。
问题: 农民想:“我为什么要给你我的玉米?帮你在烘焙方面提供帮助不是我的职责。”面包师不得不乞求玉米,而且有时农民在不告知的情况下更换了玉米品种。结果,面包师做出的面包味道很差,因为原料变了。
结果: 面包师做出了难吃的面包,而农民并不知道为什么他们的玉米被浪费了。
解决办法: 他们需要一个社区市场 (中央数据平台),在那里农民列出带有清晰标签的玉米,且面包师确切知道自己会得到什么。
3. “重复造轮子”(冗余开发)
想象一家公司,A 队建造了一把梯子,而三层楼下的 B 队为了同样的目的建造了另一把不同的梯子。
问题: 没有人知道另一支队伍已经造了一把梯子。因此,每个人都在浪费时间和金精力气去建造已经存在的梯子。更糟的是,如果 A 队修好了他们梯子的一个横档,B 队的梯子依然是坏的。
结果: 混乱、浪费资金,以及“影子 IT”(团队构建自己的秘密、不安全的工具)。
解决办法: 一个中央工具库 ,让所有人都能看到有哪些梯子存在,并可以借用它们而不是重新建造。
4. “盲目的老板”(领导力真空)
想象一位并不懂航海的船长 (管理层),正试图为一次新的航行招聘船员 。
问题: 船长看到了“数据科学家”这个职位名称,于是雇佣了 10 个人,认为这能解决一切问题。但他雇佣的人擅长数学却不会修理引擎。或者,他雇佣某人去做特定的工作,然后船长忘记了那项工作是什么,导致员工无事可做。
结果: 船上挤满了不会航行的人,而船长对船为什么不动而感到困惑。
解决办法: 船长需要学习航海的基础知识(教育),并根据技能 (你会修引擎吗?)而非仅仅根据花哨的职位名称来招聘。
5. “简历竞赛”与“炒作热潮”
简历驱动开发: 想象一位建筑师坚持使用金钉子 ,仅仅因为它们看起来很酷,即便房子需要的是钢钉 。房子在瞬间看起来很华丽,但因为它不适合这项工作,最终会崩塌。
炒作驱动创造: 想象一位餐厅老板决定供应龙肉 ,仅仅因为大家都在谈论它,尽管他并没有龙,而顾客其实只想吃汉堡。他们把所有的钱都花在了寻找龙上面,最后才发现他们本该做更好的汉堡。
结果: 项目陷入“概念验证地狱”——无止尽的实验,却从未变成真正的产品。
核心启示
作者发现,技术很少是真正的反派 。真正的反派是:
孤岛: 彼此互不沟通的团队。
混乱: 不理解工作的管理者,以及不理解业务目标的员工。
错误的招聘: 出于错误的原因雇佣了错误的人。
解决方案是什么? 这不仅仅是购买更好的软件。这关乎更好的组织 。公司需要:
打破团队之间的围墙。
教导管理者什么是机器学习。
根据实际技能而非职位名称来招聘人才。
在开始构建之前,确保每个人都对“为什么要构建某物”达成共识。
简而言之:你可以拥有世界上最好的引擎,但如果驾驶员不知道如何转向,而乘客们正在为地图争吵不休,那么这辆车哪儿也去不了。
技术摘要:构建机器学习赋能软件中的社会技术反模式
问题陈述 尽管机器学习(ML)赋能的软件在经济上取得了成功并广泛普及,但在模型开发与成功投入生产之间仍存在显著差距。现有文献广泛讨论了诸如测试、流水线和自动化等技术障碍(MLOps),但对于构建这些系统所固有的社会技术挑战的研究却十分匮乏。构建机器学习软件本质上是一个多人员、多团队参与的过程,然而研究往往忽视了阻碍模型进入生产阶段的组织、管理和沟通障碍。本文认为,许多失败并非源于技术,而是源于组织孤岛、领导力真空和沟通失误,这呼应了“MLOps 是一个组织问题”的观察结果。
研究方法 为了调查这些社会技术挑战,作者开展了该领域迄今为止规模最大的定性实证研究。研究采用了反思性主题分析法(Reflexive Thematic Analysis, RTA) ,这种方法允许研究人员对数据进行分析性参与,而非仅仅是总结数据。
数据来源: 本研究分析了来自 MLOps.community 的 73 个视频(总计 66 小时内容),这是一个拥有超过 11,000 名成员的全球性兴趣小组。该语料库包括了由来自不同角色、公司规模和地理位置的从业者进行的演讲、聚会和咖啡时间分享。
抽样策略: 作者从最初的 210 个视频中,通过两个阶段的选择过程进行了筛选:
归纳阶段: 基于关键词“团队(team)”进行初步过滤,以识别社会技术讨论,随后进行人工熟悉化和编码。
演绎与精炼阶段: 利用提取的编码识别剩余视频中的相关段落,精炼主题并提取建议。
人口统计特征: 演讲者包括管理层(31.3%)、领导层(27.6%)以及数据科学家/工程师(22.7%),涵盖了从初创公司到大型企业的各类公司,分布在北美、欧洲及其他大洲。
分析: 作者迭代地开发主题,最终将发现结果结构化为反模式(症状) 、原因 和建议 。
核心贡献 本文的主要贡献是识别并分析了 17 种植根于组织和管理问题而非纯技术缺陷的社会技术反模式 。研究通过将这些发现与先前研究(如 Nahar 等人、Kim 等人)进行对比,验证了现有结果,并突出了新的见解,特别是从管理角度出发的见解。
关键结果:17 种反模式 研究结果被归类为三个主要的组织领域:
1. 组织孤岛
模型到产品的集成:
AP1(发布周期长): 模型团队与产品团队之间的紧密耦合导致了瓶颈。
AP2(团队间的紧张关系): 由于缺乏理解,数据科学家与软件工程师之间产生了相互抱怨。
AP3(数据科学家被阻碍): 由于交接摩擦,数据科学家被迫从研究转向生产任务。
原因: 文化/工具冲突 (C1) 以及数据科学团队缺乏工程能力 (C2)。
数据生产者到消费者的集成:
AP4(请求数据困难): 数据生产者由于感知不到价值或存在目标冲突,而抵制开放数据。
AP5(技术耦合紧密): 不清晰的交接流程导致跨团队的代码/数据依赖。
AP6(数据可用性不完整): 训练数据与生产数据不一致,导致模型性能下降。
原因: 缺乏意识/共同目标 (C3) 以及文档/职责缺失 (C4)。
2. 沟通缺陷
冗余开发:
AP7(特征不可发现): 团队独立构建了语义相似的特征。
AP8 (冗余的 ML 基础设施): 不同团队构建了重复的流水线和工具。
AP9 (影子 IT): 团队绕过中央基础设施提供商,造成安全风险。
原因: 团队之间缺乏交集、文档和信任 (C5)。
管理层 vs. 数据科学:
AP10 (职业倦怠): 由于无休止的迭代,数据科学家感到自己没有产生实质性的价值。
AP11 (与管理层的紧张关系): 在业务价值和研究不确定性的预期方面存在分歧,从而引发冲突。
原因: 缺乏数据科学流程 (C6) 以及技术利益相关者与非技术利益相关者之间的沟通错位 (C7)。
3. 领导力真空
“没头苍蝇式”招聘 (Headless-Chicken-Hiring):
AP12 (员工技能不足): 为工程密集型任务(如流水线)招聘数据科学家。
AP13 (为数据科学家准备的产品不存在): 为特定用例招聘人员,但该用例随后消失,导致员工失去角色。
原因: 角色/头衔不明 (C8)、招聘缺乏专业知识 (C9) 以及市场技能短缺 (C10)。
简历驱动型开发 (Résumé-Driven Development):
AP14 (工具与目标不匹配): 技术选择是由个人简历建设而非业务需求驱动的。
原因: 数据科学家脱离业务价值 (C11) 以及决策者缺失 (C12)。
炒作驱动型产品创建:
AP15 (困于概念验证阶段): 组织停留在“概念验证地狱”中,无法进入生产阶段。
AP16 (万物皆需 ML): 认为机器学习是解决所有问题的方案。
AP17 (不可行的产品): 在缺乏必要数据或人才的情况下启动项目。
原因: 缺乏组织战略 (C13)、管理层缺乏 ML 知识 (C14)、利益相关者之间缺乏翻译机制 (C15) 以及缺乏生产指标 (C16)。
建议 论文指出,虽然工具(如模型注册表、特征存储)可以缓解症状,但根本原因需要组织变革。建议包括:
重组团队为跨职能团队。
让数据科学家与软件工程师结对进行代码审查。
将中央平台建立为数据质量和文档的契约。
实施针对机器学习定制的严格开发流程和文档。
针对特定技能而非模糊的头衔进行招聘。
在开发开始前,建立严格的流程来验证用例和数据的可用性。
意义与主张 作者声称,这项研究通过利用包含领导者和管理者见解(这些人在以开发者为中心的研究中经常缺失)的独特数据集,提供了对机器学习开发挑战的全面视图。通过将这些问题定义为反模式 ,本文旨在提高人们的意识,即社会技术问题通常是生产失败的根本原因,却常被误诊为技术债。
本研究验证并扩展了先前的发现(例如来自 Nahar 等人、Kim 等人、Granlund 等人的研究),确认了组织孤岛和文化冲突的存在,同时增加了关于领导力真空和招聘实践的新维度。作者谦虚地指出,虽然由于样本的多样性,其发现具有普适性,但仍需进一步研究以确定这些反模式是机器学习特有的,还是更广泛的软件工程中社会技术挑战的产物。最终,本文旨在为从业者和管理者提供一份指南,帮助其识别并应对实现成功机器学习应用中的非技术性障碍。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。