
除了在 Azul 担任云解决方案产品高级总监外,Erik Costlow 还是 InfoQ 的专职编辑。9 月,Costlow 主持了一场关于 Java 人工智能集成的 InfoQ 圆桌会议。这场会议的讨论范围广泛,涉及发现人工智能的用途、人工智能目前的使用方式、一些最佳实践以及未来的可能性。
9 月 18 日,Azul 产品管理高级总监兼 InfoQ 专职编辑 Erik Costlow 主持了一场 InfoQ 圆桌会议小组讨论,主题为 Java 的人工智能集成:从过去到未来。小组成员包括 Microsoft 的 Azure Java 首席架构师 Asir Selvasingh、Moderne 的联合创始人兼首席执行官 Jonathan Schneider、Morgan Stanley 的董事总经理兼杰出工程师 Dov Katz,以及 Jetbrains 的机器学习工程师 Svetlana Zemlyanskaya。
以下是部分精彩内容。
使用人工智能处理令人厌倦的枯燥任务
Costlow 提出使用人工智能执行维护工作。他向 Katz 询问了其所做的一些维护工作,以及他如何决定是使用人工智能完成这些工作,还是为此分配人员。
Katz 指出,让人类维护 1.9 万个文件,除了枯燥外,还容易导致出错和工作不一致。“你开始对自己说,比起让一群人专注于此,我们必须找到一种更好的方法来做这件事。不一致,需要手工操作,诸如此类。”他说。
Katz 表示,他将问题分为两类:重构和平台迁移。也许这就是升级依赖关系。
“你想要保留的代码往往需要重构,”他解释说,“而你不想保留的代码,往往需要进行平台迁移。”
“人工智能是提供合适起点的绝佳方式,”Katz说,“实际上,我们所做的就是利用生成式人工智能来帮助我们理解自己正在做的事情,这样我们就可以采用不同的方式重做。通过观察我的代码,告诉我,我的需求是什么,然后现在以不同的方式实现这些需求。这是一种很好的开始方式。”
然而,一种人工智能工具无法扩展到 1.9 万个文件,Katz 建议组合多种工具。他说,组织应该使用生成式人工智能来构思他们想要做的事情,然后找出能够大规模实现的方法。
计算将 1.5 万个代码库升级到 Java 21 所需的时间后,Katz 估计,他可以节省 5 万小时,大约相当于 25 名全职顾问的工作量。
“这些都是枯燥的工作。”他说,“想象一下,如果我还有其他真正想做的事情,比如使用人工智能或其他类似的技术,我首先需要迁移到这些现代 Java 平台。”
这些都是枯燥的工作。想象一下,如果我还有其他真正想做的事情,比如使用人工智能或其他类似的技术,我首先需要迁移到这些现代 Java 平台。
Dov Katz
进一步推动人工智能的使用,不仅仅是处理枯燥的工作
一旦组织解决了维护问题,并腾出时间开发可以提高生产力的酷炫功能,他们要如何进一步推动人工智能的使用,以做到更多事情?Costlow 向 Zemlyanskaya 询问了她参与开发的一款产品,该产品在后端使用了人工智能。“你所提供给工程师的实际上就是人工智能。”他说,“能否谈谈你如何将人工智能集成到应用程序中?哪些是机器上的本地功能?哪些功能仍需要后端服务?在将人工智能集成到应用程序中时,我们应该知道什么?”
人工智能模糊了代码所有权。“你必须考虑内存消耗问题,至少现在是这样,”她说,“未来可能会发生变化,但至少在此刻,我们还不可能拥有能够执行最前沿任务的通用型人工智能,但目前你可以利用 ChatGPT 来处理这些任务。”
“我首先要说的是,如果你是开发人员,可以从今天开始,”Selvasingh 说,“这非常重要。所有应用程序都将通过人工智能进行重塑。将有以前不可能出现的新应用程序诞生。机会非常多。”
理解新的人工智能工具
Costlow 问:“当新工具出现时,人们如何确定可以将新的人工智能工具用于哪些方面,以及有哪些具体的问题领域?”
Selvasingh 指出,人们可以使用 Azure OpenAI 服务来生成和总结长篇内容、构建代码和代码片段、改进搜索结果等等。他指出,在 American Airline,他们对其客户中心进行了现代化改造,并在 Azure 上通过 OpenAI 完成了实施。通过使用人工智能,他们减少了滑行时间,节省了燃料。他们能够节省燃料,并让乘客有更多时间赶乘下一班飞机。
他们处理数百万条实时消息和服务呼叫,现在,通过使用人工智能,他们缩短了滑行时间。他们能够节省燃料,并让乘客有更多时间赶乘下一班飞机……人们正在使用人工智能创建智能应用程序,以推动实现卓越的业务成果,并改善最终用户体验。如果你是乘客或是驾驶员,你将感到兴奋。如果你目前是一名开发人员,现在正是参与人工智能开发的激动人心时刻。
Asir Selvasingh
用于着手进行人工智能开发的库
Costlow 请专家小组指出一些关键的库,供刚开始着手人工智能开发的人员使用和试验。
Schneider 和 Selvasigh 都对 LangChain4 印象深刻,Schneider 表示,LangChain4 似乎会紧跟最新的技术(例如函数调用),而这些技术很可能会进入更广为人知的 LangChain Python 库中。
“LangChain4j 太棒了,”Selvasigh 说,“Microsoft 也有语义内核。它可以帮助你更快地构建出色的应用程序。”
“如果你是 Java 开发人员,”Schneider 说,“也不要绝望。它不仅仅是提供给 Python 开发者的。为了赶上(甚至在某些情况下超越)LangChain Python 的进度,LangChain4 已经做了很多工作。”
如果你是 Java 开发人员,也不要绝望。它不仅仅是提供给 Python 开发者的。为了赶上(甚至在某些情况下超越)LangChain Python 的进度,LangChain4 已经做了很多工作。
Jonathan Schneider
将人工智能集成到应用程序中
Costlow 询问,Java 工程师可以如何为实现自己的目的而使用人工智能(不一定是将人工智能集成到用户的应用程序中,而是说 Java 开发人员如何让自己从中受益)。
Schneider 表示,组织会不断积累产品元素,最终拥有数亿行代码。他们需要一个系统,以可验证的准确方式对所有代码进行更改。
“在一位银行客户那里,我们仅对一个存储库进行了一次 Java 8 到 17 的迁移,就影响了 1.9 万个文件,”Schneider 补充说,“想象一下,这些文件中的每一个都有可能出现幻觉。我们正集中精力,研究如何使用人工智能来帮助生成全新的方法,而不是使用人工智能直接做出更改。换句话说,人工智能本身并不是千篇一律的模板。它是模板的制造者。”
______________________________________________________________________________
在一位银行客户那里,我们仅对一个存储库进行了一次 Java 8 到 17 的迁移,就影响了 1.9 万个文件。想象一下,这些文件中的每一个都有可能出现幻觉。
______________________________________________________________________________
提高 DevOps 生产力
Azul Intelligence Cloud 可基于生产环境中的 Java 运行时数据,提供可操作的智能信息,从而高效地优先修复易受攻击的代码,并识别需要移除的未使用代码。它可与任何供应商或发行版(包括 Azul、Oracle、Amazon、Microsoft、RedHat 和 Temurin)的任何 JVM 配合使用,以缩短在企业的整个 Java 环境中执行非生产性任务的时间,从而显著提高 DevOps 生产力。Intelligence Cloud 包括两项有助于提高 DevOps 生产力的服务。
Code Inventory® 是唯一能够对企业所有 Java 工作负载在生产环境中所运行的代码进行精确编目的解决方案。它减少了维护和测试未使用代码的时间和负担,显著提高了开发人员的生产力,并最终节约了成本。
Azul Vulnerability Detection 可检测实际使用(而非仅仅存在)的漏洞代码,这消除了误报,实现了高效的漏洞分类。通过检测生产环境中使用点的漏洞,它填补了软件供应链终端的关键空白,并增强了传统工具的功能,从而获得更准确的结果。
Explore Intelligence Cloud
Improve DevOps productivity with Azul.