当前位置: 首页 > news >正文

机器学习可扩展性:从1到百万用户的架构演进

机器学习可扩展性:将模型扩展至服务数百万用户

可扩展性无疑是一个高层次问题,当我们需要整合更多机器和资源来处理深度学习算法的流量时,这对许多初创机构来说都是梦想成真的时刻。

然而许多工程团队并未给予足够重视。主要原因:他们从一开始就没有清晰的扩展计划。这完全可以理解!因为我们需要先专注于优化应用程序和模型,稍后再处理扩展问题。但从一开始就有清晰计划并无坏处。

机器学习应用的首次部署

第一步是在某中心计算引擎上创建虚拟机实例。我们复制整个项目,允许HTTP流量,并将域名连接到此实例。模型启动运行并通过域名对用户可见。

我们有一个托管在单个虚拟机中的单体应用,需要一些手动工作来部署新更改和重启服务。但几周后,问题开始出现:

  • 部署需要太多手动工作
  • 添加新库版本和新模型时依赖关系开始不同步
  • 调试不直接

为解决这些问题,我们添加了新的CI/CD流水线,成功自动化构建、测试和部署过程。我们还添加了一些日志以便访问实例并发现问题。

垂直扩展与水平扩展

垂直扩展(纵向扩展)是向现有机器添加更多功能(CPU、内存、GPU)来处理流量。

水平扩展(横向扩展)是向网络添加更多机器,并在它们之间共享处理和内存工作负载。

这意味着:创建新的虚拟机实例!然后复制应用程序,让它们同时运行和服务流量。

负载均衡器在此发挥作用,它是在多个机器之间分配网络流量的设备,通过分散流量确保没有单个服务器承受过多负载。

自动扩缩容

自动扩缩容是云计算中使用的一种方法,根据负载改变计算资源数量。通常这意味着实例数量基于某些指标自动增加或减少。

自动扩缩容有两种主要形式:计划性扩缩和动态扩缩。

缓存

另一种最小化应用程序响应时间的好方法是使用某种缓存机制。缓存不过是保存数据的存储系统,以便未来请求可以更快地服务。

监控警报

服务数百万用户的应用程序最重要也最烦人的部分是警报。有时系统会崩溃。这就是为什么我们必须建立警报系统,以便尽快修复错误。

重新训练机器学习模型

随着时间的推移,模型服务越来越多用户,数据分布开始变化。因此,模型准确性逐渐下降。我们需要构建循环来用新数据重新训练模型,并作为新版本重新部署。

模型A/B测试

另一个可能出现的需求,特别是在建立了重新训练之后,是模型A/B测试。A/B测试指的是通过向每个模型发送不同流量负载来在生产中尝试不同模型的过程。

离线推理

最后但同样重要的是离线推理。实时预测并不总是可行或需要的。在很多用例中,模型无法在几秒钟内完成推理,或者我们的应用程序不需要立即响应。

最常见的方法是任务/消息队列。消息队列是服务到服务异步通信的一种形式。

总结

在这篇相当长的文章中,我试图概述公司基础设施随着成长和获取更多用户而多年来的演变过程。扩展应用程序绝非易事,对于机器学习系统来说变得更加困难。主要原因是它们引入了一整套常见软件中不存在的新问题。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

http://www.jsqmd.com/news/17471/

相关文章:

  • SOSDP
  • 2025年保洁公司推荐排行榜,驻场保洁/钟点保洁/开荒保洁/外包保洁/商场保洁/办公楼保洁/工厂保洁/医院保洁/企业保洁服务优选指南
  • 图像增强任务
  • 20232320 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • spi+dma接收,dma失能后不能使能
  • 2025年锯床厂家权威推荐榜:数控锯床、立式锯床专业选购指南与实力厂家深度解析
  • 【征文计划】基于Rokid CXR-M SDK 打造AI 实时会议助手:从连接到自定义界面的完整实践 - 教程
  • 在AI技术快速实现创意的时代,挖掘新需求成为核心竞争力——某知名内容管理系统能力框架需求探索
  • 2025年方钢/扁钢/圆钢/光轴/六角钢/异型钢/冷拉冷拔钢/热轧钢厂家推荐排行榜,Q355B/Q345B/16Mn/45#/40Cr/A3/Q235B材质优质供应商精选
  • 水韵文脉与科创烟火:无锡城市旅游宣传片的专业化叙事构建 - 详解
  • 单细胞转录组:差异基因分析和富集分析 - 教程
  • DBA必备脚本:Oracle获取绑定变量的字面SQL文本版版本替代
  • 联通光猫烽火吉比特HG6145F获取超级密码
  • 083_尚硅谷_多分支基本使用
  • 为什么制造业的仓库经验,放到电商就行不通?
  • Oracle案例:grid环境关于asm diskpath是否需要一致
  • 宠物去哪啦小程序系统:智能宠物管理与定位解决方案
  • Windows 如何关闭 dep数据执行保护 - 软件双击没反应的解决办法
  • 2025年整平机厂家推荐排行榜,整平机/校平机/矫平机/开平机/平板机/矫直机/校直机,高精度/精密/液压式/数控/金属/高效稳定/多种规格/全自动整平机公司推荐
  • 一佳旅游票务系统:旅游行业数字化一体化解决方案
  • 2025年10月洗碗机品牌推荐:海信领衔五大机型对比评测榜。
  • 广告敏感词图文检测微信小程序:高效合规检测解决方案
  • 2025年10月油烟机品牌推荐:海信领衔静音技术榜对比评测
  • Newtonsoft.Json笔记 -JToken、JObject、JArray详解
  • 软件测试流程-入门
  • 什么是人工智能?——AI的定义、发展历程与主要分类
  • CF2110F Faculty
  • 国产0.38mm超小22pF/50V/C0G电容HLCC2250G,77GHz实测S参数公开,可pin-to-pin替换
  • 微信消息管理桌面提醒版:桌面提醒与AI回复的完美结合
  • pip会读取 pyproject.toml 的 project.dependencies 字段进行依赖安装吗?