现实世界中的 ML 系统只有一小部分是由 ML 代码组成的,如中间的小黑盒所示。所需的周边基础设施庞大而复杂。
随着机器学习(ML)社区不断积累多年使用实时系统的经验,出现了一个普遍而令人不安的趋势:开发和部署 ML 系统相对较快且成本较低,但长期维护却困难重重、费用高昂。
技术债务是Ward Cunningham于 1992 年提出的一个比喻,用来解释软件工程快速发展所带来的长期成本。与财政债务一样,承担技术债务通常也有合理的战略原因。并非所有债务都是坏账,但所有债务都需要偿还。技术债务可以通过重构代码、改进单元测试、删除无效代码、减少依赖性、收紧应用程序接口和改进文档来偿还。这样做的目的不是为了增加新功能,而是为了实现未来的改进、减少错误和提高可维护性。推迟支付这些费用会导致成本增加。隐性债务是危险的,因为它会无声无息地增加。