编译:弗格森 熊笑 【新智元导读】作为拿到谷歌 AI 初创公司风险基金首笔投资的项目(1050万美元),“算法商店”Algorithmia 的创始人兼 CEO 日前做了题为《为 AI 打造操作系统》的报告。 笔记本电脑上的操作系统同时运行几十个或者几百个进程。它会给每一个进程分配所需要的资源(RAM、CPU 和 IO)。它会将它们隔离在自己的虚拟空间中,将它们锁定到一组预定义的权限,允许它们进行通信,并允许用户安全地监视和控制它们。 操作系统会抽象出硬件层(写入闪存驱动器与写入硬盘驱动器相同),并且不关心用于编写这些应用程序的编程语言或技术堆栈——它只是顺利地统一地运行它们。 随着机器学习逐渐渗透到企业,许多公司很快就会发现自己在生产越来越多的模型,并且更快地剪辑。随着时间的推移,部署效率,资源规模,监测和审计将开始变得更加困难和昂贵。来自公司不同部门的数据科学家将各自拥有自己的一套首选技术(R,Python,Julia,Tensorflow,Caffe,deeplearning4j,H2O等),数据中心战略将从一个云转向混合。以一种类似云的方法运行、扩展、监管多样模型,负责地说,与操作系统很像,这就是我们想说的 。 在 Algorithmia.com 上,我们运行3,500多种算法(每种都有多个版本,atv直播,最多可以获得40k +独特的REST API端点)。任何API端点都可以从一天一次到每秒1,000次以上的突发,具有完全无限制的体验。这些算法以我们今天支持的八种编程语言中的任何一种编写,可以基于CPU或GPU,可以在任何云端运行,可以读取和写入任何数据源(S3,Dropbox等),并以标准硬件 〜15ms。 我们将 Algorithmia.com 视为我们的AI操作系统版本,这篇文章将分享我们的一些想法。 目录 • 训练 VS 推理 • 无服务器 FTW • Kernel 和 Shell • Kernel #1 弹性伸缩 • Kernel #2 Runtime Abstraction • Kernel #3 Cloud Abstraction • 总结 训练VS推理 机器学习和深度学习由两个独特的阶段构成:训练和推理。前者关于搭建模型,后者是关于在产品中运行这些模型。 训练模型是一个非常依赖框架的迭代过程。一些机器学习工程师在GPU上使用Tensorflow,其他人在CPU上使用scikit-learn 。这类似于构建应用程序,其中应用程序开发人员有一个精心整合的开发工具链和库,不断编译和测试他们的代码。培训需要很长的计算周期(数小时到数天),atv,通常是固定的负载输入(意味着你不需要从一台机器扩展到X机器以响应触发器),并且理想地是一个有状态的过程,数据科学家将需要反复保存训练进度,如神经网络检查点。 另一方面推理是将该模型规模扩展到多个用户。当同时运行多个模型时,每个模型都以不同的框架和语言编写,它类似于操作系统。操作系统将负责调度工作,共享资源和监视这些工作。 “工作”是一个推理事务,与训练的情况不同,需要一个短暂的计算周期(类似于SQL查询),弹性负载(机器需要与推理需求成比例地增加/减少),而且它是无状态的,其中先前事务的结果不会影响下一个事务的结果。 我们将重点放在推理方面。 无服务器 FTW 我们将为我们的操作系统使用无服务器计算,所以让我们花一点时间来解释为什么无服务器架构对于AI推理是有意义的。 正如我们在上一节中所解释的,机器学习推理需要一个短的计算突发。这意味着作为REST API服务的服务器将处于空闲状态。例如,当接收到请求时,要对图像进行分类,它会在短时间内突然出现CPU / GPU利用率,返回结果,然后恢复为空闲状态。此过程与数据库服务器相似,该服务器在接收到SQL查询之前是空闲的。 由于这个要求,AI推理是非常适合无服务器计算的。无服务器架构具有明显的扩展优势和经济优势。例如,假设您已经构建了一个名为“SeeFood”的应用程序,它可以将图像分为是热狗和不是热狗。您的APP会被虚拟化,现在位列图表上方。以下是您的日常应用使用情况: “SeeFood”每日应用程序的使用情况。午餐时间非常受欢迎。 Y轴为“每秒呼叫”。 X轴是每天的时刻。 (责任编辑:本港台直播) |