IBM Watson 超级计算机的系统管理

在十二月波士顿举行的 USENIX LISA 2011 会议(顺便说一句,LISA 是一个很棒的系统管理会议)上的系统管理员们听取了 Michael Perrone 的演讲 “什么是 Watson?”。

Michael Perrone 是 IBM T.J. Watson 研究中心多核计算部门的经理。完整的演示文稿(幻灯片、视频和 MP3)可在 USENIX 网站上找到,如果您真的想了解 Watson 的内部工作原理,请花一个小时听听 Michael 的演讲(以及最后的系统管理员问答环节)。

在 Michael 演讲结束后,我找到了他,询问他的团队中是否有一位系统管理员愿意回答一些关于处理 Watson 系统管理的问题。在简要介绍了 Watson 之后,我将在下面列出我们的对话。

什么是 Watson?

简而言之,Watson 是对当前人工智能最先进水平的令人印象深刻的演示:计算机正确回答以自然语言(文本或语音)提出的问题的能力。

Watson 源于 IBM DeepQA 项目,是 DeepQA 的一个应用程序,专门为Jeopardy(美国电视智力竞赛节目)而调整。“DeepQA”中的“QA”代表“问题回答”,这意味着计算机可以用人类语言(从英语开始)回答您的问题。“DeepQA”中的“Deep”意味着计算机能够进行足够深入的分析,以成功处理自然语言文本和语音。由于自然语言是非结构化的,因此需要深入分析才能正确理解它。

它(以一种流行的形式)演示了计算机使用自然语言与我们交互的能力,通过快速搜索海量数据并正确挑选出回答问题的关键事实,来“理解”并正确回答问题。

Watson 是数千个算法在数千个核心上运行,使用 TB 级内存,驱动 TFlops 级的 CPU 运算,在不到五秒的时间内对自然语言问题给出答案。这是一项令人兴奋的技术壮举,仅仅是未来发展的冰山一角。

IBM 的 DeepQA 项目的目标是将自动问题回答技术发展到能够清晰且持续地与人类最佳表现相媲美的程度。

Watson 的重要统计数据
  • 90 台 IBM Power 750 服务器(加上额外的 I/O、网络和集群控制器节点)。

  • 每秒 80 万亿次运算(teraflops)。

  • Watson 的语料库大小为 400 TB 数据——百科全书、数据库等等。Watson 与互联网断开连接。它所知道的关于世界的一切都来自语料库。

  • 处理一个问题的平均时间:三秒。

  • 2880 个 POWER7 核心(3.555GHz 芯片),每个核心四个线程。

  • 每秒 500GB 片上带宽(芯片上核心之间)。

  • 10Gb 以太网。

  • 15TB 内存。

  • 20TB 磁盘,集群。(Watson 从 400TB 语料库构建了其语义网。它保留了语义网,但不保留语料库。)

  • 运行 IBM DeepQA 软件,该软件具有开源组件:用于自然语言处理的 Apache Hadoop 分布式文件系统和 Apache UIMA。

  • SUSE Linux。

  • 一名全职系统管理员。

  • 十个计算机架,80kW 功率,20 吨冷却(为了比较,人类只有一个大脑,可以放在鞋盒里,吃一个金枪鱼三明治就能运行,可以用手持纸扇冷却)。

Watson 如何工作?

首先,Watson 开发一个语义网络。Watson 获取大量文本(语料库),并使用自然语言处理对其进行解析,以创建“句法框架”(主语→谓语→宾语)。然后,它使用句法框架来创建“语义框架”,这些框架具有一定概率。以下是语义框架的示例

  • 发明家为发明申请专利(.8)。

  • 流体是液体(.6)。

  • 液体是流体(.5)。

为什么在这些例子中概率不是 1?因为像“我说英语很流利”这样的短语。它们倾向于扭曲数字。

为了回答问题,Watson 使用大规模并行概率证据架构。它使用来自其语义网络的证据来分析它建立起来回答问题的假设。您应该观看 Michael 演示的视频并查看幻灯片,因为内部原理实在太多,无法在一篇短文中介绍完,但简而言之,Watson 会提出大量的假设(潜在答案),并使用来自其语义网络的证据来为答案分配概率,以选择最可能的答案。

Watson 中使用了许多算法。Watson 甚至可以从错误中学习并改变其Jeopardy策略。

Watson 构建于开源之上

Watson 构建于 Apache UIMA 框架之上,使用 Apache Hadoop,运行在 Linux 上,并使用 xCAT 和 Ganglia 进行配置管理和监控——所有这些都是开源工具。

关于 Watson 超级计算机系统管理的 Eddie Epstein 访谈

Eddie Epstein 是 IBM 研究员,负责将 Watson 的计算扩展到数千个计算核心,以达到在现场Jeopardy游戏中具有竞争力的速度。在过去的七年中,Eddie 管理着 IBM 团队,负责 Apache UIMA 的持续开发。Eddie 非常友善地回答了我关于 Watson 集群系统管理的问题。

AT: 为什么您决定使用 Linux?

EE: 该项目最初使用基于 x86 的刀片服务器,负责管理的 researchers 非常熟悉 Linux。

AT: 您使用了哪些配置管理工具?您是如何在数千台 Linux 服务器上更新 Watson 软件的?

EE: 我们只有数百台服务器。服务器的范围从 4 核到 32 核的机器不等。我们最初使用 CSM 来管理操作系统安装,然后切换到 xCat。

Watson 集群的配置管理

CSM 是 IBM 的专有集群系统管理软件(http://www-03.ibm.com/systems/software/csm)。它旨在简化集群管理,并包括用于大批量推送的并行执行能力

[CSM] 旨在为技术和商业计算环境中的分布式和集群式 IBM Power Systems 提供简单、低成本的管理。CSM 与 IBM Power Systems 高性能计算机解决方案一起提供,通过从单点控制提供管理,从而显着简化了集群管理……除了为典型分布式系统的管理和维护提供所有关键功能外,CSM 还旨在提供有效管理集群计算环境所需的并行执行能力。

xCAT 也起源于 IBM。它于 2007 年开源。xCAT 项目的口号是“Extreme Cloud Administration Toolkit”(极端云管理工具包),其徽标是猫头骨和交叉骨。它现在位于 http://xcat.sourceforge.net,该网站将其描述如下

  • 在物理或虚拟机上配置操作系统:SLES10 SP2 及更高版本、SLES 11(包括 SP1)、RHEL5.x、RHEL 6、CentOS4.x、CentOS5.x、SL 5.5、Fedora 8-14、AIX 6.1、7.1(所有可用技术级别)、Windows 2008、Windows 7、VMware、KVM、PowerVM 和 zVM。

  • 脚本安装、无状态、卫星、iSCSI 或克隆。

  • 远程管理系统:集成远程管理、远程控制台和分布式 shell 支持。

  • 快速设置和控制管理节点服务:DNS、HTTP、DHCP 和 TFTP。

xCAT 为 HPC 集群、渲染农场、网格、WebFarms、在线游戏基础设施、云、数据中心以及未来可能出现的任何流行语提供完整和理想的管理。它具有敏捷性、可扩展性,并且基于多年的系统管理最佳实践和经验。

xCAT 的诞生源于快速配置 IBM 基于 x86 的机器的需求,并且自 1999 年以来一直处于积极开发中。xCAT 现在已经十年了,并且仍在不断发展。

AT: xCat 听起来像是一个安装系统,而不是一个变更管理系统。您是否使用了基于 SSH 的“推送”模型将更改推送到您的系统?

EE: xCat 具有非常强大的推送功能,包括与不同机器并行交互的多线程推送。它可以处理操作系统补丁、升级等等。

AT: 您使用了什么监控工具以及为什么?您是否有任何很酷的 Watson 物理或逻辑活动的可视化模型?

EE: 该项目在开发活动中使用了自研的集群管理系统,该系统有自己的监控器。它还集成了 Ganglia。该工具是管理约 1,500 个核心的基础。

Watson 游戏系统使用 UIMA-AS 和一个简单的基于 SSH 的进程启动器。那里的重点是测量运行时性能的各个方面,以减少总体延迟。性能数据的可视化是在事后完成的。UIMA-AS 管理着数千个核心上的工作。

什么是 UIMA-AS?

UIMA(非结构化信息管理架构)是一个支持 Watson 的开源技术框架。它是一个分析海量数据以发现关键事实的框架。它是计算机将非结构化数据作为输入,并将其转换为结构化数据,然后分析和处理结构化数据以产生有用的结果。

分析是“多模式的”,这意味着使用了许多算法,以及许多种类的算法。例如,Watson 有一组用于生成假设的算法,例如使用地理空间推理、时间推理(利用其历史数据库)、双关语引擎等等,还有另一组用于评分和修剪它们的算法,以找到最可能的答案。

简而言之,这就是大规模并行概率证据架构。(证据来自 Watson 的 400TB 数据语料库。)

“AS”代表异步横向扩展,它是 UIMA 的一个扩展框架——一种在现代、高度并行的核心上运行 UIMA 的方法,以受益于技术的持续进步。UIMA 使“思考型计算机”向前迈进了一大步。

要理解非结构化信息,首先让我们看看结构化信息。计算机之间使用结构化信息进行通信。坚持使用结构化信息可以更容易地从数据中提取意义。HTML 和 XML 是结构化信息的示例。CSV 文件也是如此。结构化信息标准由 OASIS 在 http://www.sgmlopen.org 维护。

非结构化信息更加流畅和自由。人类交流使用非结构化信息。在 UIMA 出现之前,计算机一直无法理解非结构化信息。非结构化信息的示例包括音频(音乐)、电子邮件、医疗记录、技术报告、博客、书籍和语音。

UIMA 最初是 IBM Research 的一个内部项目。它是一个用于创建应用程序的框架,这些应用程序对自然人类语言文本和语音进行深入分析。

在 Watson 中,UIMA 管理着近 3,000 个核心上的工作。顺便说一句,Watson 可以在单个核心上运行——它需要六个小时才能回答一个问题。使用 3,000 个核心,时间缩短到 2-6 秒。Watson 真正利用了大规模并行架构来加速其处理。

AT: 在处理 Watson 时,对您来说最有用的系统管理工具是什么?为什么?

EE: clusterSSH(http://sourceforge.net/apps/mediawiki/clusterssh)非常有用。它和带有 SSH 的简单 shell 脚本完成了大部分工作。

AT: 您是如何处理 Watson 软件升级的?SSH 登录,关闭服务,更新软件包,启动服务?还是?

EE: 是的,只需重启 Watson 应用程序即可应用更改。

AT: 您是如何处理 Watson 软件的打包的?

EE: Watson 游戏程序从未打包交付到其他地方。

AT: 您有多少系统管理员处理多少服务器?您提到有数百个操作系统实例——您能更具体地说明一下吗?(有多少人和多少服务器?)实际上是否有专门的系统管理人员,还是有些研究人员在履行研究职责的同时也承担系统管理员的职责?

EE: 我们大约有 800 个操作系统实例。四年后,我们终于聘请了一名系统管理员;在此之前,这是三位拥有 root 访问权限的研究人员的兼职工作。

AT: 关于您的监控系统,您是如何输出系统状态的?

EE: 我们不是生产车间。如果集群出现问题,只有我们的同事会抱怨。

下一步是什么?

IBM 希望使 DeepQA 不仅具有娱乐性,而且具有实用性。可能的应用领域包括医疗保健、生命科学、技术支持、企业知识管理和商业智能、政府、改进的信息共享和安全。

资源

IBM 的 Watson 网站——“什么是 Watson?”、“构建 Watson”和“Watson for a Smarter Planet”:http://ibmwatson.com

IBM 的 DeepQA 项目:http://www.research.ibm.com/deepqa/deepqa.shtml

Eddie Epstein 的 IBM 研究员资料:http://researcher.ibm.com/view.php?person=us-eae

关于 Watson 的维基百科文章:http://en.wikipedia.org/wiki/Watson_%28computer%29

Apache UIMA: http://uima.apache.org

加载 Disqus 评论