在AI技术领域,可扩展性无疑是一个高层次的问题,许多初创公司梦寐以求的是能发展到需要引入更多机器和资源来处理涌入深度学习算法的流量。然而,不少工程团队却未对其给予应有的重视,主要原因在于从一开始就缺乏明确的扩展计划。但这也无可厚非,毕竟首先得聚焦于优化应用程序和模型,后续再处理扩展事宜。不过,若从起始就有清晰规划,那也并无坏处。
机器学习应用的首次部署
假设我们有一个能对图像进行分割的深度学习模型,完成训练、优化数据处理管道,并围绕它构建了标准的Web应用,接下来就到了部署阶段。此时,一般有两个选择:一是搭建自己的服务器并部署;二是借助云服务提供商,利用现成的基础设施,这里假定选择后者,比如选择谷歌云,注册账号、创建项目后就准备就绪。
在谷歌云的计算引擎上创建一个VM实例,复制整个项目,允许HTTP流量,将域名与之连接,模型就能运行,用户可通过域名访问。最初,一切顺利,系统响应迅速,模型准确率良好。但随着时间推移,问题逐渐浮现,例如部署需大量手动操作,添加新库版本和新模型时依赖开始不同步,调试也不便捷。
为解决这些问题,添加新的CI/CD管道,实现构建、测试和部署的自动化,比如使用谷歌云的Cloud Build组件。同