机器学习仍然太难使用

但是事情开始变得越来越容易

机器学习仍然太难使用

Source: Pexels

免责声明:以下内容基于我对机器学习团队的观察,而不是对该行业的学术调查。 就上下文而言,我是Cortex的贡献者,Cortex是一个用于在生产中部署模型的开源a [ $ o ` #平台。

以软件中无处不在的东E h k V 0 s Y西为例,例如数据库。 建立一个是什么意思? 对于Postgres贡献者来说,\"创建数据库\"看起来像一百万行C。对于Rails开发者来说,它就像rake db:create。

显然,这都不是错,它们只是代表了不同的抽象级别,适用于每个工程师的不同重点。

这就是软件自身构建的方式。 为现代应用程序提供支持的基本软件-数据库,Web服务器,请求路由器,哈希库等-由于抽象层使得非专业人b _ ( g u F士可以访问,因此它们在很大程度上得到了广泛的应用。

机器学习历来缺乏1 Y / @ 1 j该抽象层,从而限制了其采用。 但是现在,情况正在发生变化。 新一D , 1轮的项目专门致力于使# _ Q * m应用机器学习更加容易。

模型需要开发人员友好T = T } T w t .的界面

为了在生产中使用机器学习,您需要:

设计模型的专业知识

D q C : H D C够的R o r 0 v数据和资金来训练您的模型

ML基础架构知识以部署模型

结果,任何使用ML的项目都需要由数名专家来安_ 6 p w m o C排。 这是必须消除的瓶颈。

对于没有机器学习背景的开发人员来说,应该有可能在生产中使用它,就像没有密码学背景的开发人员仍然可e ? # =以应用哈希库来保护用户数7 t n K % ( - b据一样。

幸运的是,这终于发生了。

弥合机器学习抽象鸿沟

为了使应用的K T O l ] $ k v gML得以普及,开5 = d发人员必须能够对机器学习有一个高水平的了解(什么z $ 8 : O是模型,微调e a V,推论等),并使用可用的抽象来构建应用程序。

$ 2 C e t U n MO L k z必要的抽象已经b & | 在研究中,它们属于几个关键的重点h _ V I领域:

1.需要一种更简单的方法来训练模型

现实情况是,对于许多应用机器学习用例而言,无需从头开始训练新模型。

例如,如果您正在开发会话代理,则几乎可以肯定Google的Meena将= c w # 8 H 6会胜过您的模型。 如果您正在开发文本生成器,则应使用OpenAI的GPT: j / L k-2,而不是从头开始构建自己的F R N u H ) :文本生成器。 对于对象检测,YOLOv3之类的模型可能是最好的选择。

得益于转移学习(将神经网络的\"知识\"微调到新域的过程),您可以获取相对少量的数据,并微调这r B ` l $些开放源代码,最新模型来 你的任务。

例如,使用gpt-2-simple之类的新库,您可以使用简单的命令行界面来微调GPT^ = 2 B 8 / c ` J-2:

$ gpt_2_simple finetune your_custom_data.txt

有了这一抽象层,开发人员不需要深入的ML专业知识,他们只需要知道什么是微调即可。

而且gpt-2-simple远非唯一% X x K W % O S G可用的训练抽象。! w # 4 Google的Cloud& % X ; 5 J AutoY ! | ~ML为用户提供了一个GUI,可让用户选择其数据集并自动训练新模型,而无需编写代码:

机器学习仍然太难使用

Source: Google Cloud Vision

Sundar Pich@ j n Q K Nai在撰写有关AutoML的文章时说:\"F 6 . i I - F U t我们希望AutoML将具有当今几位博士所具有的能力,并使成千上万的开发人员+ K j 8在三到五年内有可能为他们的特殊需求设计新的神经网络。\"? ( V x N ^ ! ? p

2.从模型生成预测必须简单

好的,因此可以轻松地为您的特定任务获取经过训练的模型。 您如何根^ h F 7据该模型生成预测?

有大量的项目提供模型服务功能,其中许多都与流行的ML框架相关。 例如,TensorFlow具有TF服务,而ONNX具有ONNX运行时。

在科技巨头之外,还有许多独立的开源项目正在解决这个问题。 例如,Bert Extractive Summarizer是一个可以轻松使用Google的BERT提取文本摘要的项目。 以下是文档中的示例:

from summarizer import Summarizer
body = \'Text body tZ | K *hat you want to- b v : # S u G $ summarize with BERT\'
body2 = \'Something else you want to summarize withq A w BERT\'
model = Summarizer()
model(boz P 3dy)
model(boX 7 +dy2)

使用该库生成预测就像导入语句和对SummaW p ArizeW = t X E * C &r()的调用一样简单。

随着越来越多的此类项目继续启动和开发,开发人员可以更轻松地从模型生成预测,而5 l | g 3 6 )不必深入研究模型本身。

3.部署模型必须简单

最后的瓶颈是基础) w _ U @ x E架构。

为玩具应用程序提供服务预测很简单,但是q L ~当您的应用程序需要扩展时,事情就会变得困难。 以GPT-2为例:

GPT-2大于5 GB。 您需要一台更大的服务器(按照定义,价格也更高)来托管w e u ) 5 S这么大的模型。

GPT-2非常耗电。 为了提供单个预测,GPT-2可以以100%的利用率占用CPU数分钟。 即使使用GPU,单个预测仍可能需要几秒钟。 与此相比,Web应用程序可以通过一个CPU为数百个并发用户提供服务。

GPT-2内存不足。 除了巨大的磁盘空间和计算要求之外,GPT-2还需要大量内存才能运行而U m J j { ~ u { X不会崩溃。

为了处理3 h A * T少量用户,您的基础架构将需要扩展应用程序的许多副本。 这意味着使用Docker对模型进行容器化,使用Kubernetes对容器f K : v T H进行编排以及使用任何使用的云平台配置自动缩放。

构建用于处理机器学习部署的基础结构需要学习一整套工具,对于大多数不具备专业背景的开发人员来说,其中很多都不熟悉:

机器学习仍然太难使用

Machine learnin* Y n 7g infrastructure stack

为了使开发人员可以使用机器学习,还需P T z a要抽~ Q - 2 d象机器学习基础结构。 这就H u y t C E l x是诸如Cortex之类的项目(完整披露:我是一名撰稿人)进入的地方。

Cortex通过配置文件和CLI提取了模型部署的Q # R b基础开发:

机器学习仍然太难使用

Source: Cortex Repo

像Cortex这样的项目的目标很简单:采用经过训练的模型,并将其转变为任何开发人员都可以使用的预测API。

使应用机器学习更轻松

让我清楚一点,机器学习背后的基础数学将永h S _ _远是困难的。 没有人是机器学习专家,仅仅是因为他们可以调用预报()函数。 关键是,开发人员不必是机器学习专家(或专家),就可以在其应用程序中使用ML。

机器学习生态系统最8 : p Z终将重点放在简化应用ML上。 仅有一点知识的开发人员可以微调最新模型,将其包装在AP9 8 = e 1 B P ; KI中,并使用开源,直观的抽象将其部署在可伸缩基y b Q # i a础结构上。

结果,应用机器学习将变得更加容易,并且通过扩展,几乎所有开发人员都可以使用。

(本文翻译自Caleb Kaiser的文章《Machine learning is still too hard to usQ z | 6 t ~ Re》,参考:https://towardsdatascience.com/machine-] c : ;learning-is-still-too-hard-J ] sto-use-e344773725af$ c ] = U P)

上一篇

一生无宠又无子嗣的陆氏,是怎么一路做到庆贵妃的呢

下一篇

中国经典句\"蜀中无大将,廖化作先锋\",廖化的黑锅不\"背\"

你也可能喜欢

  • 暂无相关文章!

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
返回顶部