AI 模型与平台

埃里克·盖瑟,SPR 数据实践首席架构师 – 采访系列

mm
将 Unite.AI 添加到您在 Google 上的首选来源

埃里克于 2018 年加入 SPR 的新兴技术集团的数据实践部门,担任首席架构师。

埃里克专注于数据、使用 Java 的开源开发以及实用的企业架构,包括构建概念验证、原型和最小可行产品(MVP)。

是什么最初吸引你对机器学习的兴趣?

其使应用程序能够持续学习的能力。我在一家全球市场研究公司开始了我的开发职业生涯,最初担任高级数据分析师,使用 SPSS,并后来将 Drools 业务规则引擎纳入我为客户构建的应用程序,但所有这些工作的输出基本上都是静态的。

我后来参加了流程改进培训,在此期间,讲师详细展示了他们如何通过统计和其他方法改进客户使用的业务流程,但这里的输出也主要集中在某个时间点。同一时期我与同事一起改进一项医疗保健产品的经历,表明了持续学习对于此类努力的必要性,但当时可用的资源并不存在。

有趣的是,我对机器学习的兴趣已经变得完整,因为我的研究生导师当时警告我不要专攻人工智能,因为当时人工智能正经历着“冬天”。我选择使用诸如 ML 之类的术语,因为它们的内涵较少,而且即使是 AWS 也承认其人工智能服务层实际上只是其机器学习服务层上的更高级别抽象。虽然外界对机器学习的炒作有一些不切实际的方面,但从开发人员的角度来看,它提供了强大的功能,只要这些从业者承认机器学习提供的价值仅与它处理的数据一样好。

 

您是开源的坚定倡导者,可以讨论一下为什么开源如此重要吗?

我这些年来需要向高管解释开源的一个方面是,开源的主要好处不是使用此类软件不需要花费金钱,而是源代码可以免费使用。

此外,使用此源代码的开发人员可以修改它以供自己使用,如果建议的更改获得批准,可以将这些更改提供给其他使用它的开发人员。事实上,开源软件的运动是因为开发人员等待商业公司对他们许可的产品进行更改需要很长时间,所以开发人员自己编写了具有相同功能的软件,并将其开放给其他开发人员改进。

商业化的开源软件利用了这些好处,现实是许多现代产品在表面下使用开源软件,即使商业版本的此类软件通常提供开源版本中不可用的附加组件,提供了区别以及支持,如果需要支持。我的第一次开源经验是在构建我之前提到的医疗保健产品时,使用了诸如 Apache Ant 之类的工具,用于构建软件,以及当时的一款早期 DevOps 产品 Hudson(其代码库后来成为 Jenkins)。我们决定使用这些开源产品的主要原因是它们提供了更好的解决方案,而不是商业替代品,或者它们是商业实体没有提供的创新解决方案,不要忘记商业产品的一些许可证使用非常受限制,导致在需要更多许可证时出现过多的繁文缛节,这是由于相关成本而造成的。

随着时间的推移,我看到开源产品不断演变,提供了急需的创新。例如,我和同事一起构建的医疗保健产品中遇到的许多问题后来都被一款名为 Spring Framework 的开源 Java 产品解决了,这款产品已经存在超过十年了,其生态系统现在已经远远超出了它最初提供的创新,如依赖注入等,现在被认为是很常见的。

 

您使用开源软件构建了概念验证、原型和最小可行产品。您能分享一些这些产品背后的故事吗?

如我在最近向一位客户提出的指导原则中所述,对于我们为他们构建的数据平台,应该继续在需要时迭代地进行构建。构建此平台的组件不应被视为静态的,因为需求会发生变化,新的组件和组件功能将随着时间的推移而变得可用。

在构建平台功能时,应该首先构建最小可行的版本,然后添加不必要的功能,这有时甚至包括配置。首先构建功能性版本,确保您理解它,然后再演进它。不要浪费时间和金钱构建可能不太可能被使用的东西,但要努力领先于未来的需求。

我们为该产品构建的 MVP 需要被构建为可以在其基础上继续构建其他用例,即使它带有单个用例的实现,用于费用异常检测。与这位客户不同,我之前构建的一个产品在我到来之前就有一些历史。在这种情况下,利益相关者已经辩论了三年(!)他们应该如何处理他们想要构建的产品。一位客户高管解释说,他之所以把我带进来,是为了帮助公司摆脱一些内部辩论,特别是因为他想要构建的产品需要满足参与的组织等级结构。

我发现这些领地之争在很大程度上与客户、其子公司和外部客户拥有的数据有关,因此在这种情况下,整个产品待办事项列表围绕着如何摄取、存储、保护和为单个用例生成即时网络的医疗保健提供者进行成本分析而展开。

在我职业生涯的早期,我意识到一种称为“可用性”的架构质量不仅仅局限于最终用户,还包括软件开发人员自己。原因是编写的代码需要像用户界面一样可用,否则就无法被开发人员使用。在产品变得可用之前,需要构建概念验证以证明开发人员能够做他们想做的事情,特别是当与他们正在做出的特定技术选择有关时。但概念验证只是开始,产品最好是随着时间的推移而演进。在我看来,MVP 的基础应该理想地建立在表现出一些稳定的原型之上,这样开发人员就可以继续演进它。

 

在审阅《企业规模机器学习》一书时,您表示“使用开源产品、框架和语言,以及由开源和商业组件混合而成的敏捷架构,提供了许多公司需要但最初未意识到的灵活性”。您能详细说明为什么您认为使用开源软件的公司更具灵活性吗?

许多商业数据产品在表面下使用关键的开源组件,并使开发人员能够使用流行的编程语言,如 Python。构建这些产品的公司知道他们选择纳入的开源组件给了他们一个起步优势,因为这些组件已经被社区广泛使用。

具有强大社区的开源组件更容易销售,因为它们带来了熟悉感。主要由闭源组件或仅由特定商业产品使用的开源组件组成的商业产品通常需要培训或许可证才能使用软件。

此外,这些组件的文档通常不公开提供,这迫使开发人员继续依赖这些公司。像 Apache Spark 这样的广泛接受的开源组件是核心焦点,例如 Databricks 统一分析平台,许多这些项目已经在社区中提供,减少了开发团队需要依赖商业实体来完成工作的部分。

此外,由于组件如 Apache Spark 被广泛接受为事实上的行业标准工具,因此代码也可以更容易地在这些产品的商业实现之间迁移。公司总是倾向于纳入他们认为的竞争差异化因素,但许多开发人员不想使用完全新颖的产品,因为这被证明在公司之间很难移动,并且倾向于切断他们所期望的强大社区的联系。

从个人经验来看,我曾经使用过这样的产品,并且很难获得有能力的支持。这种情况有些讽刺,因为这些公司以客户期望支持将及时提供为理由来销售他们的产品。我曾经向开源项目提交过拉取请求,并在同一天将修复纳入构建中,但我不能对任何我曾经合作过的商业项目说出同样的话。

 

您关于开源软件的另一个观点是,它提供了“强大的开发者社区”的机会。这些社区的规模如何,以及什么使它们如此有效?

围绕特定开源产品的开发者社区可以达到数十万人。采用率并不一定表明社区的实力,但这是一个很好的指标,因为它们倾向于产生良好的循环。只有当它们产生健康的讨论和有效的文档,并且正在进行积极的开发时,我才会认为社区是强大的。

当架构师或高级开发人员正在选择要纳入他们正在构建的内容的开源产品时,通常会考虑许多因素,不仅仅是产品本身和社区的外观,还包括将采用这些产品的开发团队,以及这些产品是否适合正在开发的生态系统,产品的路线图是什么,有时还会考虑是否可以找到商业支持,如果需要的话。

 

您已经在您的网站上审阅了数百本书,您能推荐三本书给我们的读者吗?

我现在很少阅读编程书籍,虽然有例外,但这些书通常会很快过时,开发者社区通常会通过讨论论坛和文档提供更好的替代方案。最近我阅读的许多书籍要么是通过技术新闻稿免费提供给我,要么是作者和出版商联系我提供的,要么是我通过亚马逊获得的。例如,亚马逊在 2011 年给我寄了一份《精益创业》的预出版未校对稿让我审阅,这让我接触到了最小可行产品的概念,最近又给我寄了一本《初学者 Julia》。

(1) 我推荐的一本 O’Reilly 书是《寻找数据库天堂》。作者详细介绍了数据库查询引擎支持从事务处理(OLTP)到分析等一系列工作负载的挑战,包括操作和商业智能工作负载。该书可用作指南,以评估数据库引擎或查询和存储引擎的组合,以满足工作负载要求,无论是事务、分析还是两者的混合。另外,作者对近年来“摆动的数据库摆锤”进行了非常好的介绍。

(2) 虽然数据领域在过去几年中发生了很多变化,新的数据分析产品不断被引入,但《颠覆性分析》呈现了一种我在其他地方没有看到的分析创新过去 50 年的简洁、简短的历史,并讨论了两种类型的颠覆:分析价值链内的颠覆性创新和分析创新带来的行业颠覆。从初创公司和分析从业者的角度来看,成功是通过颠覆他们的行业来实现的,因为使用分析来区分产品是一种颠覆性的商业模式或创造新市场的方式。从投资分析技术的角度来看,采取等待和观察的方法可能是有意义的,因为风险很高,因为这些技术的有用寿命很短。

(3) 我读过的最好的技术商业文本之一是《战略的局限性》,由 Research Board 的联合创始人撰写,Research Board 是一家被 Gartner 收购的国际智库,研究计算机世界的发展以及公司如何适应。作者在整个书中提供了他与商业领袖的许多对话的详细笔记,并对他建立(与妻子一起)一组需要将战略与计算机世界的快速发展相结合的主要客户公司的经历进行了深刻的分析。正如我在我的审阅中所说,将这本书与其他相关作品区分开来的两个看似相互对立的特征是:行业范围的广度和仅通过面对面交互才能获得的亲密感。

 

您是 SPR 数据实践的首席架构师。您能描述一下 SPR 是什么吗?

SPR 是一家位于芝加哥地区的数字技术咨询公司,为从 Fortune 1000 企业到当地初创公司的各类客户提供技术项目。我们使用一系列技术能力构建端到端的数字体验,包括自定义软件开发、用户体验、数据、云基础设施、DevOps 教练、软件测试和项目管理。

 

您在 SPR 的一些职责是什么?

作为首席架构师,我的主要职责是为客户推动解决方案交付,领导项目的架构和开发,这通常意味着我需要戴多种帽子,例如产品负责人,因为能够从实践的角度理解产品的构建方式,在优先考虑工作时具有很大的影响力,特别是在从头开始构建时。我还被拉入潜在客户的讨论中,当我的专业知识是需要的,公司最近要求我开始与数据实践中的其他架构师进行一系列持续的会议,讨论客户项目、副项目以及我的同事如何跟上技术的步伐,类似于我为之前的咨询公司所做的,但内部聚会,当然是针对数据工作的,而不是整个技术实践。

在我的职业生涯中,我一直专注于使用 Java 的开源开发以及所谓的“实用”或“务实”的企业架构,这意味着在要构建的内容的背景下执行架构任务,并实际构建它,而不是仅仅谈论它或画关于它的图纸,当然,其他任务也很重要。我已经向高管解释了过去几年,技术行业传统上在软件开发和数据工作之间划出的界线已经不再明确,部分原因是两者之间的工具已经收敛,部分原因是由于这种收敛,数据工作本身已经基本上成为了一项软件开发工作。然而,传统的数据从业者通常没有软件开发背景,反之亦然,所以我帮助弥合了这一差距。

 

您目前正在 SPR 进行的一个有趣项目是什么?

我最近发布了关于我和我的团队去年为一家芝加哥全球咨询公司的首席信息官从头开始在 AWS 上实现的数据平台的第一篇多部分案例研究帖子。该平台包括数据管道、数据湖、规范数据模型、可视化和机器学习模型,将由公司的各个部门、实践和客户使用。虽然核心平台将由首席信息官领导的公司信息技术组织构建,但目标是该平台将被公司信息技术组织以外的其他组织使用,以在整个公司中使用共同的架构集中数据资产和数据分析,同时为每个组织的用例需求而构建。

与许多成熟的公司一样,Microsoft Excel 的使用很普遍,电子表格在组织内部以及组织之间和外部客户之间都很常见。此外,业务单元和咨询实践已经变得孤立,每个单元和实践都使用不同的流程和工具。因此,除了集中数据资产和数据分析外,另一个目标是实施数据所有权的概念,并以安全、一致的方式跨组织共享数据。

 

您是否还有其他关于开源、SPR 或您正在处理的其他项目的信息想要分享?

我最近领导的一个项目(请参阅此处和此处)涉及成功实施 Databricks 统一分析平台,并将机器学习模型从 Azure HDInsight(Hadoop 分布式系统)迁移到该平台,用于一家大型保险公司的数据工程总监。所有这些迁移的模型都是为了预测各种保险产品可以预期的消费者采用率而设计的,其中一些模型几年前从 SAS 迁移过来,当时公司转向使用 HDInsight。迁移的最大挑战是数据质量差,其他挑战包括缺乏全面版本控制、部落知识和不完整的文档,以及 Databricks 文档和支持在 R 使用方面的不成熟(Azure 实现的 Databricks 只是在该项目开始前几个月才普遍提供)。为了解决这些关键挑战,在我们的实施工作之后,我提出了关于自动化、配置和版本控制、数据问题的分离、文档以及他们的数据、平台和建模团队之间的必要对齐的建议。我们的工作说服了一位最初非常怀疑的首席数据科学家,认为 Databricks 是正确的选择,他们离开时的明确目标是尽快将其余模型迁移到 Databricks。

这是一次令人着迷的采访,涉及了很多话题,我觉得我对开源软件学到了很多。希望读者可以通过访问 SPR 公司网站或 Erik Gfesser 的网站来了解更多信息。

安托万是一位具有远见的领导者和Unite.AI的联合创始人,他对塑造和推广人工智能和机器人技术的未来充满热情。作为一位连续创业者,他相信人工智能将对社会产生电力的影响一样的颠覆性影响,并经常对颠覆性技术和通用人工智能的潜力大加赞扬。

作为一位未来学家Securities.io的创始人,这是一个专注于投资尖端技术的平台,这些技术正在重新定义未来并重塑整个行业。