10 个构建现代应用程序的 AI 平台

既然我们确认了终结者不会真的来找我们,现在正是拥抱人工智能并从中获益的大好时机!

长期以来,人工智能领域,特别是其著名的分支学科机器学习,一直蒙着一层神秘的面纱。媒体上充斥着各种关于超级智能、超级独立、超级邪恶的机器崛起的预言,这让包括我在内的许多人感到担忧。

抛开那些喧嚣和炒作,我们现在实际上看到的是什么呢?是仍然不完善的人工智能技术,是令人尴尬的错误,以及一个功能有限、容易出错的机器人,它几乎是被强迫地成为了一个公民。哎,我们甚至还没有一个像样的语言翻译算法。

如果今天还有人坚持末日论,我会这样回应:

那么,如果人工智能、机器学习以及所有这些时髦的词汇并非意味着人类的终结,它们又是什么呢?

实际上,它们是用于编程计算机以解决分类和预测相关问题的新方法。好消息是,我们终于有了许多人工智能服务,您可以立即在您的商业应用中使用它们并获得显著的效益。

人工智能平台能为现代企业做些什么?

这是一个很好的问题!

人工智能的应用非常广泛(至少在理论上是这样),很难具体指出它是为哪个目的而开发的。这就像问电子表格是用来干什么的,又能做什么一样。当然,它最初是为会计设计的,但现在它的应用已经远远超出了这个范围。会计并不是它的唯一功能——人们把它当作项目管理工具、待办事项列表、数据库等等。

人工智能也是如此。

粗略地说,人工智能对于那些定义模糊且需要从经验中学习的任务非常有用。是的,这也是人类所做的,但人工智能的优势在于它可以立即处理大量数据,并更快地得出结论。因此,一些典型的人工智能应用包括:

  • 检测照片、视频等中的人脸
  • 对图像进行分类和标记,例如,用于家长控制
  • 语音转文本的转换
  • 媒体中的物体检测(例如,汽车、女性等)
  • 股票价格走势预测
  • 恐怖主义融资的检测(每天数百万笔交易)
  • 推荐系统(购物、音乐、朋友等)
  • 验证码破解
  • 垃圾邮件过滤
  • 网络入侵检测

我可以继续列举下去,可能一页纸都写不完(只是打个比方),但我想你现在应该明白了。这些都是传统计算方法难以解决的问题。然而,它们非常重要,因为在商业和现实世界中都有着巨大的需求。

事不宜迟,让我们开始介绍我们精选的顶级人工智能平台,看看它们能提供些什么。

亚马逊人工智能服务

就像亚马逊正在迅速颠覆各个行业一样,AWS作为一个平台也占据着主导地位,以至于其他平台几乎无法与之匹敌。亚马逊人工智能服务也是如此,它充满了非常有用的AI服务。

以下是AWS提供的一些令人兴奋的服务。

Amazon Comprehend:帮助您理解大量文本和非结构化数据。一个应用案例是挖掘现有的客户支持聊天记录,找出随着时间的推移的客户满意度,客户的主要关注点,以及最常用的关键词等等。

Amazon Forecast:一个零配置服务,用于利用您现有的时间序列数据,并将其转化为对未来的准确预测。如果您想了解什么是时间序列数据,请查看我最近写的一篇文章(在文章末尾找一个名为Timescale的数据库)。

Amazon Lex:在您的应用程序中构建对话界面(文本和/或语音)。其背后运行的是亚马逊训练有素的机器学习模型,它们可以实时解码意图并进行语音到文本的转换。

Amazon Personalize:一个简单易用且无需基础设施的服务,可以为您的客户或您自己创建推荐!您可以向该服务输入电子商务数据或任何其他数据,并获得高度准确且有趣的推荐。当然,数据集越大,推荐效果越好。

亚马逊还有更多人工智能服务,您几乎可以花一整天时间来浏览它们。不过,这绝对值得您花费时间! 🙂

注意:在AWS文档中很难找到所有这些服务的摘要,但如果您访问 https://aws.amazon.com/machine-learning,这些服务将列在“AI 服务”下的下拉菜单中。

TensorFlow

TensorFlow 是一个由谷歌大脑背后的团队创建的库(也是一个平台)。它是被称为深度学习神经网络的机器学习子领域的实现;也就是说,TensorFlow是谷歌对于如何使用深度学习技术通过神经网络来实现机器学习的观点。

需要明确的是,TensorFlow并非使用神经网络的唯一方式——市面上有很多库,每个库都有自己的优点和缺点。

从广义上讲,TensorFlow可以让您在许多不同的编程环境中进行机器学习。也就是说,其底层平台非常直观,主要依靠图表和数据可视化来完成工作。因此,即使您不是程序员,也可以通过一些努力从TensorFlow中获得不错的结果。

从历史上看,TensorFlow旨在“普及”机器学习。据我所知,它是第一个使机器学习变得简单、可视化且易于访问的平台。结果,机器学习的应用量激增,人们能够轻松地训练模型。

TensorFlow最大的卖点是Keras,这是一个可以有效地以编程方式使用神经网络的库。下面是如何创建一个简单的全连接网络(感知器):

model = tf.keras.Sequential()
# Adds a densely-connected layer with 64 units to the model:
model.add(layers.Dense(64, activation='relu'))
# Add another:
model.add(layers.Dense(64, activation='relu'))
# Add a softmax layer with 10 output units:
model.add(layers.Dense(10, activation='softmax'))

当然,配置、训练等工作也需要完成,但它们也同样简单。

考虑到TensorFlow将机器学习引入了JavaScript、移动设备甚至物联网解决方案,很难找到TensorFlow的缺点。然而,在纯粹主义者眼中,它仍然是一个任何人都能够使用的“低级”平台。因此,当您提高技能并遇到更多“开明”的人时,请准备好面对一些阻力。 🙂

如果您是新手,那么可以看看这个TensorFlow入门在线课程

另请注意:一些针对TensorFlow的批评提到它无法使用GPU,但这已经不是事实了。如今,TensorFlow不仅适用于GPU,而且谷歌还开发了其专用的硬件,称为TPU(TensorFlow处理单元),可作为云服务使用。

谷歌人工智能服务

与亚马逊的服务类似,谷歌也有一套围绕人工智能的云服务。我不会列出所有的服务,因为它们和亚马逊的产品非常相似。以下是一些开发者感兴趣的可以构建的截图:

从广义上讲,您可以通过两种方式使用谷歌的人工智能服务。第一种是利用谷歌已经训练好的模型,然后将其应用于您的产品中。第二种是所谓的自动机器学习服务,它可以自动执行机器学习的几个中间阶段,例如,它可以帮助那些机器学习专业知识较少的全栈开发者轻松构建和训练模型。

H2O

H2O中的“2”应该是一个下标(我想和水的化学式类似),但打出来很麻烦。希望H2O的人不要太在意!

H2O是一个开源的机器学习平台,被《财富》500强中的知名公司使用。

其主要目标是将尖端的人工智能研究普及到大众,而不是让它掌握在财力雄厚的公司手中。H2O平台下提供了多种产品,例如:

  • H2O:探索和使用机器学习的基础平台。
  • Sparkling Water:与官方集成的Apache Spark,用于处理大型数据集。
  • H2O4GPU:H2O平台的GPU加速版本。

H2O还为企业量身定制解决方案,其中包括:

  • Driverless AI:不,Driverless AI和自动驾驶汽车没有任何关系!🙂它更像是谷歌的AutoML产品线——大部分AI/ML阶段都是自动化的,从而产生了更简单、更快速的开发工具。
  • 付费支持:作为企业,您不能只是等待GitHub上的问题并希望它们能尽快得到解答。如果时间就是金钱,H2O可以为大公司提供有偿支持和咨询服务。

Petuum

Petuum开发了Symphony平台,其目的在于让我认为人工智能不算是工作。换句话说,如果您厌倦了编码和/或不想记住更多的库和输出格式,Symphony会让您感觉像是去阿尔卑斯山度假!

虽然Symphony平台没有什么“开放”的,但其功能令人垂涎:

  • 拖放式UI
  • 轻松构建交互式数据管道
  • 大量标准化和模块化构建块,可以创建更复杂的AI应用程序
  • 对于觉得视觉方式不够强大的用户,还提供了编程和API接口
  • 自动使用GPU进行优化
  • 分布式、高度可扩展的平台
  • 多源数据聚合

还有更多功能可以真正让您觉得进入门槛已大大降低。强烈推荐!

Polyaxon

当今机器学习和人工智能面临的最大挑战不是找到好的库和算法(甚至是学习资源),而是必须应用熟练的工程技术来处理由此产生的庞大系统和高数据负载。

即使对于经验丰富的软件工程师来说,这也可能是一个过高的要求。如果您也有这种感觉,Polyaxon值得一看。

Polyaxon不是一个库,甚至不是一个框架。相反,它是一个用于管理机器学习各个方面的端到端解决方案,例如:

  • 数据连接和流式传输
  • 硬件加速
  • 容器化和编排
  • 调度、存储和安全
  • 流水线、优化、跟踪等
  • 仪表板、API、可视化等

它几乎与库和提供商无关,因为它支持大量流行的(开源和闭源)解决方案。

当然,您仍然需要在一定程度上处理部署和扩展。如果您想摆脱这种情况,Polyaxon提供了一个PaaS解决方案,让您可以灵活地使用他们的基础设施。

DataRobot

简单来说,DataRobot是一个专注于企业的机器学习解决方案。它始终是可视化的,旨在快速理解您的数据并将其用于具体的业务用途。

界面直观且时尚,即使非专业人士也可以轻松上手并获得有意义的见解。

DataRobot并没有提供一连串的功能。相反,它专注于传统意义上的数据,并在以下方面提供可靠的功能:

  • 自动化机器学习
  • 回归和分类
  • 时间序列

通常,这些都是您的企业所需要的。也就是说,在大多数情况下,DataRobot就是您所需要的。🙂

Neural Designer

当我们讨论易于使用、功能强大的人工智能平台时,Neural Designer 值得特别提及。

关于Neural Designer,没什么好说的,但有很多事情可以做!鉴于神经网络或多或少地主导了现代机器学习方法,使用一个只关注神经网络的平台是有意义的。没有太多选择,没有分心——质量胜于数量。

Neural Designer在很多方面都表现出色:

  • 无需编程。完全不需要。
  • 无需复杂的界面构建。一切都以合理、易于理解、有序的步骤进行布局。
  • 一组特定于神经网络的最先进和最精细的算法。
  • CPU并行化和GPU加速以实现高性能。

值得一看?确实如此!

Prevision.io

Pervision.io是一个管理机器学习各个方面的平台,从处理数据到大规模部署。

PredictionIO

如果您是开发者,PredictionIO是您应该研究的非常有用的产品。PredictionIO的核心是一个机器学习平台,它可以从您的应用程序(Web、移动或其他方式)中提取数据并快速构建预测。

不要被名称所迷惑——PredictionIO不仅用于预测,还支持机器学习的全部范围。以下是您可能会喜欢它的一些理由:

  • 支持分类、回归、推荐、NLP等等。
  • 专为处理大数据环境中的繁重工作负载而构建。
  • 为那些时间紧迫的人提供了几个预构建的模板
  • 与Apache Spark、MLlib、HBase、Akka HTTP和Elasticsearch捆绑在一起,可以满足强大的现代应用程序的所有可能需求。
  • 来自多个来源的组合数据摄取,无论是批处理模式还是实时模式。
  • 部署为典型的Web服务——易于使用和提供。

对于大多数Web项目,我认为PredictionIO都非常有用。去尝试一下吧!

结论

如今,人工智能和机器学习的框架或平台非常多;当我开始研究这篇文章时,我被选择所淹没。因此,我试图将这个列表缩小到那些独特或有趣的平台。如果您认为我遗漏了一些重要的平台,请告诉我。

Coursera提供了一些很棒的机器学习课程,所以如果您有兴趣学习,可以去看看。

那么,哪个平台最好呢?不幸的是,没有明确的答案。这些服务中的大多数都与特定的技术堆栈或生态系统相关联(主要是为了构建所谓的围墙花园),这其中一个原因。另一个更重要的原因是,到目前为止,人工智能和机器学习技术已经商品化,并且正在竞相以尽可能低的价格提供尽可能多的功能。任何供应商都不能不提供其他供应商提供的产品,任何新产品几乎都会在一夜之间被竞争对手复制并提供服务。

因此,这一切都取决于您的技术栈和目标,您发现服务有多直观,您对服务背后公司的看法等等。

但无论如何,人工智能终于可以作为一种服务来使用,这不言而喻,不使用它绝对是不明智的。🙂