Doppel如何利用Modal消除机器学习基础设施负担
Doppel是一家AI网络安全平台,通过迁移至Modal,显著提升了模型训练和推理的效率。训练方面,实现了并行实验,缩短了反馈循环;推理方面,简化了部署流程,实现了自动伸缩,降低了运维成本。
Doppel是一家专注于检测和破坏社交工程攻击的人工智能原生平台。由于威胁形势不断变化,其机器学习模型需要快速迭代。这对其ML工作负载提出了两个核心要求:快速实验和可靠、可扩展的推理。然而,长期以来,基础设施的摩擦在这两个方面都拖慢了进度。训练实验串行运行,推理部署需要繁重的容器管道,各种运营细节在整个技术栈中累积。
近期,Doppel将其大部分ML工作流程迁移到了Modal,这显著改变了其迭代速度。在训练方面,过去最大的瓶颈是实验吞吐量。实验串行运行导致新假设必须等待前一次运行完成,一旦失败,整个反馈循环就会重新开始。为了最大化每次运行的价值,团队常常将多个想法捆绑到单个实验中,这反而使性能提升的源由难以隔离。通过Modal,Doppel能够轻松并行运行实验,无需构建额外的编排基础设施。例如,K折交叉验证的每一折可以同时运行,代码路径保持不变,Modal在后台处理并行执行。这种模式贯穿于整个训练流程,使团队能够同时评估多个假设,大幅缩短从想法到结果的周期。
此外,Doppel还结合了编码代理来改进实验循环。他们的训练工作流遵循“提出变更→运行实验→总结结果→基于证据提出下一步”的紧凑迭代周期。代理负责启动实验、收集指标和总结结果等机械步骤,而机器学习工程师则决定哪些想法值得测试。Modal的CLI天然适配这一流程,代理可直接通过命令行启动实验、检查日志、获取输出并触发后续运行。结合Modal的并行能力,团队在相同时间内能评估多得多的想法,瓶颈已经从基础设施转向了“下一步该测试哪个实验”的决策。
在推理方面,Doppel的模型驱动实时检测管道,需要低延迟和弹性可扩展性。攻击流量不可预测,模型可能长时间空闲,然后因钓鱼活动突然遭受请求洪峰。他们之前的GCP推理栈涉及自定义Docker容器、Cloud Run服务和Flask端点。大型模型镜像构建常常耗时10-30分钟,任何小配置变更都会拖慢部署和迭代。Cloud Run的每个实例仅能挂载单个GPU,扩展GPU推理通常需要横向扩展多个单GPU实例,流量峰值还可能触发冷启动或资源置备延迟。此外,每个模型部署都需要围绕Flask端点构建HTTP服务层以处理认证、序列化和路由,这些琐碎代码累积起来严重拖慢了进度。
Modal通过镜像层缓存和持久卷将模型构建时间缩短了10倍,即使复杂模型也能在一分钟内完成热构建。其无服务器架构根据需求自动伸缩推理工作负载,能够吸收突发流量。Modal还移除了HTTP服务层,推理函数可直接通过Modal的抽象调用,无需暴露端点。最终,部署流程大幅简化,需要维护的集成代码显著减少。
总结而言,Modal为Doppel带来的最大变化是降低了模型周围的运营成本。对于训练,它将串行实验转变为并行工作负载;对于推理,它消除了手动打包、部署和扩展模型服务的大部分开销。对一支专注于快速交付检测模型的小型ML团队来说,Modal使得构建可扩展架构变得简单而直观。如今,限制工作流程的因素不再是基础设施,而是生成和评估下一个想法的速度。