自动化陷阱-为什么低代码-AI-模型在规模化时失败

自动化陷阱:为什么低代码 AI 模型在规模化时失败

原文:towardsdatascience.com/the-automation-trap-why-low-code-ai-models-fail-when-you-scale/

在最初,构建机器学习模型是一项只有掌握 Python 知识的数据科学家才能掌握的技能。然而,低代码 AI 平台现在使事情变得容易得多。

现在,任何人都可以直接创建一个模型,将其链接到数据,并通过几次点击将其作为 Web 服务发布。营销人员现在可以开发客户细分模型,用户支持团队可以实施聊天机器人,产品经理可以自动化预测销售的过程,而无需编写代码。

即使如此,这种简单性也有其缺点。

规模化时的错误开始

当一家中型电子商务公司推出其首个机器学习模型时,它选择了最快的途径:一个低代码平台。数据团队使用微软 Azure ML Designer 迅速构建了一个产品推荐模型。无需编码或复杂的设置,模型仅用几天时间就上线并运行。

当模型部署时,表现良好,推荐相关产品并维持用户兴趣。然而,当有 10 万人使用该应用时,它遇到了问题。响应时间增加了三倍。推荐只显示两次,或者根本不显示。最终,系统崩溃。

问题不在于正在使用的模型。问题在于平台。

Azure ML Designer 和 AWS SageMaker Canvas 都旨在快速运行。得益于它们易于使用的拖放工具,任何人都可以使用机器学习。然而,使它们易于使用的简单性也掩盖了它们的弱点。作为简单原型开始的工具,在投入高流量生产时失败,这主要是因为其结构。

简单性的错觉

低代码 AI 工具被推广给非技术专家。它们负责数据准备、特征创建、模型训练和使用等复杂部分。Azure ML Designer 使用户能够快速导入数据,构建模型管道,并将管道作为 Web 服务部署。

然而,拥有一个抽象的想法既有积极的一面,也有消极的一面。

资源管理:有限且不可见

大多数低代码平台在预设的计算环境中运行模型。用户可以访问的 CPU、GPU 和内存量不可调整。这些限制在大多数情况下都很好,但在流量激增时就会成为问题。

一个使用 AWS SageMaker Canvas 的教育技术平台创建了一个模型,可以在学生提交答案时对其进行分类。在测试期间,它表现得完美无缺。然而,当用户数量达到 50,000 时,模型的 API 端点失败了。发现模型正在运行在基本的计算实例上,唯一的解决方案是重建所有工作流程。

状态管理:隐藏但危险

由于低代码平台在会话之间保持模型状态,它们在测试时速度快,但在实际使用中可能存在风险。

在 Azure ML Designer 中创建了一个零售聊天机器人,以便在每次会话中维护用户数据。在测试期间,我感觉体验是为我量身定制的。然而,在生产环境中,用户开始收到本应发给其他人的消息。问题是什么?它存储了关于用户会话的信息,因此每个用户都会被视为前一个用户的延续。

有限的监控:大规模的盲目

低代码系统提供基本结果,如准确度、AUC 或 F1 分数,但这些是测试的度量标准,而不是运行系统的度量标准。只有在发生事件后,团队才会发现他们无法跟踪生产环境中最重要的信息。

一家物流初创公司使用 Azure ML Designer 实施了一个需求预测模型,以帮助优化路线。一切都很顺利,直到假日到来,请求增加。客户抱怨响应缓慢,但团队无法看到 API 响应时间或找到错误的原因。模型无法打开以查看其工作方式。

图片

可扩展与不可扩展的低代码管道(图片由作者提供)

为什么低代码模型难以处理大型项目

低代码 AI 系统无法扩展,因为它们缺乏强大机器学习系统的关键组件。它们之所以受欢迎,是因为它们速度快,但这也带来了代价:失去了控制。

1. 资源限制成为瓶颈

低代码模型用于对计算资源有限的环境。随着时间的推移和更多人使用它们,系统会变慢甚至崩溃。如果模型必须处理大量流量,这些限制可能会引起重大问题。

2. 隐藏状态造成不可预测性

状态管理通常是低代码平台中不需要考虑的事情。变量的值不会从一个会话丢失到另一个会话。它适合测试,但一旦多个用户同时使用系统,就会变得混乱。

3. 差劲的可观察性阻碍调试

低代码平台提供基本信息(例如准确性和 F1 分数),但不支持监控生产环境。团队无法看到 API 延迟、资源使用情况或数据输入方式。无法检测到出现的问题。

图片

低代码 AI 可扩展性风险 - 层次化视角(作者图片

在制作低代码模型可扩展时需要考虑的因素列表

低代码并不意味着工作容易,尤其是如果您想扩展。在用低代码工具构建 ML 系统时,从一开始就记住可扩展性是至关重要的。

1. 在最初设计系统时考虑可扩展性。

  • 您可以使用提供自动扩展的服务,例如 Azure ML 中的 Azure Kubernetes Service 和 AWS 中的 SageMaker Pipelines。

  • 避免使用默认的计算环境。选择可以按需处理更多内存和 CPU 的实例。

2. 隔离状态管理

  • 要使用基于会话的模型,如聊天机器人,确保在每次会话后清除用户数据。

  • 确保 Web 服务独立处理每个请求,以免意外传递信息。

3. 观察生产数据和模型数据。

  • 监控 API 的响应时间、失败的请求数量和应用程序使用的资源。

  • 使用 PSI 和 KS-Score 来找出系统输入何时不是标准的。

  • 专注于业务的结果,而不仅仅是技术数字(转化率和销售影响)。

4. 实施负载均衡和自动扩展

  • 在负载均衡器(Azure Kubernetes 或 AWS ELB)的帮助下,将您的模型放置为托管端点。

  • 您可以根据 CPU 负载、请求数量或延迟来设置自动扩展指南。

5. 持续版本和测试模型

  • 确保每次更改模型时都为其分配一个新版本。在向公众发布新版本之前,应在预发布环境中进行检查。

  • 进行 A/B 测试以检查模型的工作情况,同时不干扰用户。

当低代码模型运行良好时

  • 低代码工具没有任何重大缺陷。它们在以下方面很强大:

  • 快速原型设计意味着优先考虑速度而不是稳定的结果。

  • 在系统内部进行的分析,其中失败的可能性最小。

  • 简单的软件在学校很有价值,因为它可以加快学习过程。

一群医疗保健初创公司的人使用AWS SageMaker Canvas构建了一个模型来捕捉医疗账单错误。该模型仅用于内部报告,因此不需要扩展,并且可以轻松使用。这是一个使用低代码的完美案例。

结论

低代码 AI 平台提供即时智能,因为它们不需要任何编码。然而,当业务增长时,其缺陷就会暴露出来。一些问题是资源不足、信息泄露和可见性有限。这些问题不能仅仅通过点击几下就能解决。它们是架构问题。

在开始低代码 AI 项目时,考虑它是否将被用作原型或可销售的产品。如果是后者,低代码应该是您的初始工具,而不是最终解决方案。

posted @ 2026-03-29 09:52  布客飞龙III  阅读(35)  评论(0)    收藏  举报