这是关于 IBM 的开源技术和人工智能的一系列博客文章的开篇。在此博客中,我们将辨明两种大趋势,然后聚焦 IBM 开发者围绕代码、内容和社区的拓展工作。后续博客将重点介绍 IBM 研究院与 IBM 产品团队工作情况。

AI 大趋势:您的数据正逐渐演变为您的 AI。这是一件好事。最终,您的 AI 将真正增强您的智能水平,帮助您更具创造性、更富有成效地完成工作与个人任务。但是,完全实现此类预测成果依然任重而道远。在不到十年的时间里,诸如 Watson、Siri 和 Alexa 之类的系统一直在新增功能并不断进步。对于某些情境中的一些任务,它们作用显著,但是作为可委以复杂任务,从而在最需要的情况下寻求帮助的一般 AI 伴生物,我们仍然还有很长的路要走(Forbus,2015)。然而,“我们的数据正逐渐演变为我们的 AI”,这是一种大趋势,当今的学生和专业工作人员需要更深刻地理解这一趋势,并积极参与打造过程。我们需要以更完善的学习和工作方式,凭借不断提升的能力和表现,共同塑造将 AI 功能打包成服务的方式,这在商业与社会中已日渐普遍(Spohrer 和 Banavar,2015)。

开源大趋势:幸运的是,为帮助我们学习和更好地协作打造 AI 功能,AI 大趋势正依赖于另一种更普遍的大趋势:开源。这与理解 AI 同样重要,甚至也可以说,了解和参与开源社区更为重要。为什么?因为我们所依赖的组织机构在开展业务和社会服务时,正在逐渐由开源软件提供技术支持。换言之,开源不只是几名程序员共享代码而已。事实上,可以毫不夸张地说,如今的世界就是在开源基础上运行的,但那些了解开源之初衷的人们企盼未来将会为个人带来更多福利,而不只是面向企业(Mark,2018)。当然,开源软件最终为企业发挥了全部效用。为什么会发生这一情况?简单地说,对于将产品的全部或部分关联代码以开源形式提供的企业而言,他们获益颇丰,而远不只是最先观察到的“bug 去无踪”(软件质量)这些好处(Raymond,1999)。能够与生态系统合作伙伴相互协作,一起深入学习和携手创造价值,是 IBM 的开源方法以及与 IBM 合作开展开源项目的许多其他企业背后的推动力(Moore 和 Ferris,2017)。例如,IBM 提议收购 Red Hat、Microsoft 收购 GitHub 以及 Google 收购 Kaggle,均反映出代码、内容和社区对于开放企业日益重要。代码指包含测试用例的开源软件。内容包含开放数据、文档和教程。社区则由组织机构中担任各种角色的人员组成,他们共同学习,携手创造价值。IBM Developer Way 涉及代码、内容和社区,每个人都有机会深入参与其中。开源技术发展至今历时长久,我们有必要回顾一下开源的历史(Raymond,1999;Ing,2018;Brown,2018;Mark,2018;Moore 和 Ferris,2018),概括而言分为四个阶段:

  1. 共享:从编程和编程语言起源初期开始 (1950-1980),人们一直在编写和共享“开源代码”,但在任务关键型企业应用的广泛接受程度上,仅有编写、分享和使用代码的意愿还远远不够。IBM 在开源技术以及企业对开源软件的使用方面历史悠久,从我们的视角而言,仅在过去三十年便又经历了三个阶段(复兴)。
  2. 许可:在 20 世纪 90 年代,企业开始采用了 Linux,并为更大规模开源社区推动项目的商用获取适当的许可,同时也为大型企业的商业级任务关键型开源获取可信认证。这一重要阶段(许可)最终叩开了希望之门,促使企业开发者更加积极地为所使用的开源工具做贡献,并促使人们开始接纳在企业内使用经过认证的开源技术。

  3. 开放式治理:在 20 世纪 90 年代末和 21 世纪初,各种基金会蓬勃发展,各类开放式治理组织机构纷纷成立。以许可和开放式治理为基础,在 21 世纪 10 年代,开源生态系统如今囊括了主要的企业、初创公司、GitHub、Red Hat 软件,以及数量日益增长的供企业使用的存储库。云计算、大数据和数据科学,以及面向语音、图像和文本的人类级别模式识别(实体检测)的新式算法和人工智能的兴起,激发数量日益增长的存储库(如 Spark)不断扩展,在 2018 年,甚至有一个存储库首次获得了 100,000 个星标 (Google TensorFlow)。这一阶段(开放式治理)为企业战略性拥抱开源技术大开方便之门,同时降低了某一实体未来过多控制某个开源代码库的风险。

  4. 代码、内容和社区:凭借所奠定的坚实基础,当前开源技术的复兴实际上是对代码、内容和社区本质的回归,从而实现开放企业内的开发民主化。开发的民主化意味着企业内所有多样化的角色,无论技术还是非技术人员(例如,程序员、软件工程师、数据科学家、数据工程师、开发运维、产品管理、主题专家 (SME)、营销专业人员及通信),都将以新的方式参与代码、内容和社区,从而加快价值共创和共同学习进度。这意味着数量不断增长的企业流程已转变为一个搜索更新、更优开源组件(输入和输出)的持续性过程,此类组件将组织到端到端持续改进的工作流程(服务)中,推动实现业务成果。当前这一复兴(代码、内容和社区)既是对开源本质的回归,使强大技术的获取民主化,从而能够共创美好未来,也使得企业和政府内的工作人员能够从具备 AI 技术的人员所效力的开放企业获益,并为其做贡献。坦率而言,我们仍在思索这对于具有更多个人自由和责任的员工的意义所在(Whitehurst,2015)。开源社区是企业战略的核心部分,以业务模式为基础,积极寻求方法以调动员工、客户、合作伙伴、竞争者和生态系统中的其他各方,从而以社区形式共同开展服务创新(Spohrer、Kwan、Fisk,2014)。这些类型的社区如何得以维持,并与更多传统战略和业务模式共存(Brown,2018)?我们将共同探寻解决之道,因为现在已无路可退。

在开放企业中,代码、内容和社区会呈现怎样一番景象?在本博客的其余部分,我们将针对 IBM Measuring AI Progress with Cognitive Opentech Group (MAP COG) 不同部分中的开放数据和 AI 以及系统性能,描述特定项目和人员如何处理面向代码、内容和社区的开发者拓展工作。

IBM 开展了大量的开源 AI 活动,例如,在研究院和产品团队中开展开源活动。本博客重点介绍 IBM 开放技术小组中开展的活动。我们预计后续将发布更多博客来描述其他 IBM 开源 AI 活动。

历史:传承经典

最近,Apache Spark 社区宣布 v2.4.0 版本已上线。这是 2.x 代码流中的第五个主要版本。自 2009 年初次发布以来,Apache Spark 取得了巨大发展,这很大程度上是由热情洋溢的开源社区所推动的。Apache 2.0 标志着功能、稳定性和性能方面的显著飞跃。IBM 将 Spark 视为战略性开源项目之一,并在旧金山的 Watson West 成立了 Spark 技术中心,着重扩展 Spark 的核心技术,使其适用于企业和云,并且加速实现 Spark 在业务应用中的商业价值。从该中心成立到 Apache Spark v2.4.0 的发布,Spark 技术中心做出了许多贡献,通过 1300 多次的提交贡献了 69,000 多行新代码,涉及领域有 Spark Core、SQL、MLlib、Streaming、PySpark 和 SparkR,IBM 由此也成为 Apache Spark 的五大贡献者之一。您始终可以在我们的 JIRA 仪表板上看到最新的贡献情况。

2018 年初,凭借 AI 的加速发展,尤其是最近在深度学习技术方面的进步,IBM Spark 技术中心已扩大了其使命范畴。该中心现在已纳入 IBM Digital Business Group,以 CODAIT(开源、数据和 AI 技术中心)的形式重新出发。须注意,codait 是一个法语单词,表示程序员。指定的开发者和提交者通过代码、内容和社区倡议继续增强 Spark 的核心技术。此外,该专业化团队继续充当 IBM 产品开发团队的 Spark 能力中心。

现状:拥抱当下

三十年来,IBM 已成为一系列精选开源技术和社区的主要贡献者,这些技术和社区对于复杂企业运营(包括世界各地的企业和政府)至关重要。我们的团队提倡开放式治理并与各种开放社区合作,尤其是负责处理数据和 AI 基础架构及企业解决方案的社区。例如,IBM 是 JanusGraph 背后的推动力,后者是一项可扩展图形数据库技术,能够通过分布于集群或云中多个服务器之间的数百万节点和边缘服务来存储和查询图形。 它于 2017 年发布,如今作为 Linux 基金会旗下的一个项目获得支持。 在 AI 方面,IBM 正在助力 TensorFlow(一种领先的开源机器学习框架)的发展。 IBM 与 Google 合作主办了 Index San Francisco 2018 年 TensorFlow 社区日活动,以及 OSCON 2018 年 TensorFlow Build 和 TensorFlow JavaScript 黑客会议。IBM 对 TensorFlow 所做的最直观贡献,可能主要体现在它为 Power (ppc64le) 和 s390x 平台交付和维护各种社区支持的内部版本。同样,IBM 还提供具有实时状态的 IBM Power CI PyTorch 内部版本。随着我们竭尽全力修复内部版本漏洞并即时解决 Power/ppc64le 问题,IBM 正在致力成为一级内部版本供应商。另一个重要方面是开放格式,IBM 是 Open Neural Network eXchange (ONNX) 背后的社区合作伙伴之一。 我们正在以各种方式做出贡献,从创建有关如何使用 ONNX 的样本模型和教程,到开发和维护 ONNX-TensorFlow 转换器,涵盖十分广泛。 IBM 仍会继续拥抱开放技术,相信通过与社区的密切合作,我们定能向客户交付更完善的产品和解决方案,提供更全面的支持。

数据集共享方面

要使 AI 成功提供相应的历史记录,以便 AI 系统据此进行预测,数据集和数据集共享就显得至关重要。重要方面包括能够跨工具和软件共享数据集以及数据集的描述(元数据),从而应用数据治理原则和展示合规性,并且相应地集成后续数据修改。

Egeria 项目由 ODPi 联盟于 2018 年推出,用于为元数据共享定义 API 和描述符,而无需强制使用单一工具或存储库来管理所有元数据。通过使用 Egeria,各种工具和数据存储库都可以发布有关其所管理数据的元数据信息,并使用来自其他工具的元数据描述对已用数据作出正确解释。Egeria 还为数据治理与合规提供相应的准则和模板。

关于应如何对数据集进行许可的问题,业界仍然是众说纷纭。来自 Linux 基金会的社区数据许可协议 (CDLA) 旨在提供开源软件许可为软件提供的数据集,并有两种变体形式:

  • CDLA 共享协议许可体现了复制原则,这样根据 CDLA 共享协议发布的数据的下游接收方可以使用和修改该数据,并且需要共享其对于数据的更改情况。
  • CDLA 宽松协议类似于宽松开源许可,以便任何人都可使用和修改根据 CDLA 宽松协议发布的数据,而不必共享其任何更改或修改。

人工智能/机器学习/深度学习方面

构建、部署和持续改进 AI 模型与解决方案是 IBM 的主要优先事务。例如,Model Asset Exchange (MAX) 是组织有序的开源目录,涵盖预先训练和可训练的深度学习模型,开发者可通过独立 Docker 或 Kubernetes 容器将这些模型集成到自己的应用中。我们也在探索如何通过 TensorFlow.js 在 Node.js 和 JavaScript 应用中部署其中一些深度学习模型。在 IBM 研究院和 IBM 产品团队中,一些开源代码社区脱颖而出。

  • AI Fairness 360 是一种开源工具,数据科学家可用它来检测和减小机器学习模型中的偏差,IBM AI Openscale 中包含了增强版本。
  • Adversarial Robustness Toolbox 可以检测并缓解对深度学习模型发起的恶意攻击。
  • FfDL (Fabric for Deep Learning) 是一项获奖的开源项目(Infoworld 2018 BOSSIE,开源机器学习工具),IBM Watson Machine Learning 中包含了增强版本。
  • PowerAI 上的 Large Model Support (LMS) for TensorFlow。

这些技术和其他系统将在后续博客中更深入地进行探讨,这些只是 IBM 为开发者和数据科学家提供的众多开源技术中的几个示例。除开源代码本身以外,我们还在 IBM Developer 上发布了 Code Pattern、博客、教程和文章,帮助开发者和数据科学家更深入地了解可利用开源技术构建的内容和具体的构建方式。 我们的目标是使开发者和数据科学家能够通过开源数据和 AI 技术实现行业重塑。此项工作以开源代码和高质量内容为基础,围绕开源数据和 AI 技术构建社区。

未来:共同激励,携手创造

众多基金会正在日渐提供适宜且富有成效的环境,用于在机构与爱好者之间开展开源协作,使得个人能够与大型企业、初创公司、教员和学生共同作战,贡献和运用其专业知识。在 AI 和相关领域崭露头角的基金会包括 ODPi 数据联盟和深度学习基金会 (LFDL),两者均隶属 Linux 基金会。LFDL 涵盖了众多项目,例如 Acumos Ai,它是一个可轻松构建、共享和部署 AI 应用的平台与框架。在 AI 领域,MLPerf、DawnBench、DeepBench 和 TensorFlow 基准等诸多性能基准正日渐兴起,我们将会看到更多基金会加入这一领域,帮助估算开发和运行 AI 应用所需的资源。

参与和贡献

开源 AI 世界正在蓬勃发展。如果您对 AI 感兴趣,可以通过多种方式贡献力量,例如,添加功能部件、开展测试,或者记录开源框架(如 TensorFlow 和 PyTorch)或模型交换格式(如 PFA、PMML 和 ONNX)。您可以采用、重新训练或构建和训练模型,并将其捐赠给 MAX 或 Acumos AI 等资产交换项目。图形技术为推理奠定基础,参与 JanusGraph 项目则使您能够了解属性图的工作方式。ODPi Egeria 项目欢迎参与者参加每周四开展的电话会议。Linux 基金会 TAC 电话会议每两星期开展一次,活动时间为周四,先前的谈话都会有录音。如果您是性能专家,可考虑加入其中一项 AI 性能基准计划。如果您对道德和信任方面感兴趣,可以参加 AI Fairness 360 和 Adversarial Robustness Toolbox 之类的重要项目。

参考资料

Brown TC (2018),A framework for thinking about Open Source Sustainability? 2018 年 7 月 2 日

Forbus KD (2016),Software social organisms: implications for measuring AI progress,AI 杂志,2016 年 4 月 13 日,37(1):85-90。

Ing D (2018),Open Innovation Learning: Theory building on open sourcing while private sourcing,Spohrer J 作序,2018 年 2 月 20 日

Mark J (2018),Why open source failed,2018 年 7 月 30 日

Moore T 和 Ferris C (2018),IBM 开放技术的方法,2018 年 10 月 27 日

Raymond E,The cathedral and the bazaar,Knowledge, Technology & Policy,1999 年 9 月 1 日,12(3):23-49。

Spohrer J 和 Banavar G (2015),Cognition as a service: An industry perspective,AI 杂志,2015 年 12 月 1 日,36(4):71-81。

Spohrer J、Kwan SK、Fisk RP (2014),Marketing: a service science and arts perspective,Handbook of service marketing research,Ed Rust RT 和 Huang,第 489-526 页。

Whitehurst J (2015),The open organization: Igniting passion and performance,Harvard Business Review Press,2015 年 5 月 12 日。

本文翻译自:Open source and AI at IBM(2018-12-12)

加入讨论