使用新发布的 Granite 3.0 模型来提供跨多种编程语言的通用编码帮助。
当 IBM 于 2023 年 5 月宣布其 AI 助手 watsonx 使用其生成式人工智能工具,通过将 COBOL 代码转换为 Java 来帮助企业实现其大型机应用程序的现代化时,这只是其为开发人员利用生成式 AI 的努力的开始。
该公司日前宣布推出用于通用编码的 watsonx Code Assistant,该模型基于该公司新发布的基础模型 Granite 3.0,又向前迈进了一步。
当 IBM 于 2023 年 9 月推出 Granite 时,它将其吹捧为将生成式 AI 应用于语言和代码的商业 AI。
在内华达州拉斯维加斯举行的 IBM TechXchange 会议上的公告为用户提供了 7 个新模型:Granite-3.0-8B-Instruct 和 Granite-3.0-2B-Instruct 语言模型;Granite-Guardian-3.0-8B 和 Granite-Guardian-3.0-2B,经过训练,可检测越狱、偏见、暴力、亵渎、色情内容和不道德行为;Granite-3.0-8B-Instruct-Accelerator 加速推理并改善延迟;以及 Granite-3.0-3B-A800M-Instruct 和 Granite-3.0-1B-A400M-Instruct 专家混合 (MoE) 模型。所有版本都是在 Apache2 许可下发布的,IBM 高级副总裁兼研究主管 Dario Gil 表示,这是“最宽松的”。
这一举动让分析师感到高兴。“IBM 对 AI 开源的坚定承诺意义重大,”The Futurum Group 副总裁兼实践负责人兼首席信息官 Dion Hinchcliffe 说。“为某些法律责任提供赔偿和透明度使 IBM 与竞争对手区分开来,后者可能会提供更不透明的模型或限制性许可证。”
10月,许多供应商的产品将至少支持部分 Granite 3.0 模型。IBM 表示,watsonx 将包括 Granite 3.0 Language 和 Guardian 模型;Nvidia NIM 接收 Language、Guardian 和 MoE;Hugging Face 将包括 Language、Guardian、Accelerators 和 MoE;Ollama 获得 Language 和 MoE。
IBM 表示,Granite Language 也将在 12 月针对 Red Hat Enterprise Linux (RHEL) AI 和 OpenShift AI 发布。
分析师 Patrick Moorhead 对此印象深刻。“虽然一开始我持怀疑态度,但我做的研究越多,我就越有信心地说,对于企业来说,这些模式即使不是优越的,也是有竞争力的,”Moor Insights & Strategy的首席执行官兼首席分析师Moorhead说。“以前的模型效率更高,但准确性不如预期,但现在的模型都更准确、更高效。”Moorhead 说,为了完全相信,他希望看到企业成功使用 Granite 模型。“我认为企业会关注 IBM 及其一系列发展,如果他们不断看到创新,他们就会锁定,”他说。
116 种语言IBM AI for Code 产品管理副总裁 Keri Olson 表示,IBM 新 watsonx Code Assistant 中的 Granite 版本已经过 116 种编程语言的训练。虽然根据客户需求,七种语言(Java、Python、C、C++、Go、JavaScript 和 TypeScript)受到的关注最多,但她强调,这仅仅是个开始。其他语言,如 Rust、C# 和 RPG,也符合这种顶级待遇。
“我们当然不会就此止步。我们将继续在此基础上发展,将其他编程语言纳入我们的 Tier One 类别。然后,我们还将继续构建跨开发人员工具的集成,“Olson 说。
在发布时,IBM 将在 VS Code 和 Eclipse IDE 中支持 watsonx Code Assistant,其他支持正在考虑中。该公司还在考虑引入代理能力。
“我们今天没有达到目标,但我们肯定在考虑那些代理流,以及我们如何在未来进行更多的自主工作,”她说。
此外,她指出,由于 Java 是新产品中的关键语言之一,IBM 决定不发布它在 5 月份宣布的独立的 watsonx Code Assistant for Enterprise Java。
Hinchcliffe 喜欢他所听到的。“IBM 正在提供高级工具,例如支持多种语言并与企业数据更深入的集成的代码助手。所涵盖的编程语言的增加以及准确性和性能的增强非常受欢迎,与其他编码副驾驶相比,这有助于他们突破极限,“他说。“开发人员,尤其是缺乏这种日益稀有技能的 IT 部门,将欣赏对 COBOL 和 Java 等传统语言的增强支持,这些语言在企业环境中仍然至关重要。使用内部数据微调 AI 模型而无需外部依赖的能力,将数据保存在公司内部,这也将与具有严格合规需求的行业产生很好的共鸣。
供内部使用Olson 说,IBM 从今年年初开始就在内部使用新助手,并发现了几个引人注目的用例。“我认为这对开发人员来说是最令人兴奋的事情之一;一旦他们看到它可以帮助他们处理一些他们可能不那么感兴趣的任务,并让他们专注于更深入的思考、战略和创新,这真的对他们有帮助。
例如,她说,一个由退伍军人和最近雇用的产品开发人员组成的小团队继承了包含大约 750 个未记录的 JavaScript 文件的代码存储库。
“团队开始了解,'这是什么代码?它有什么作用?他们从 PoC [概念验证] 开始,使用 watsonx Code Assistant 记录了 9 个不同文件中的大约 1000 行代码,“她说。“手动操作,每个文件大约需要 3 分钟来记录代码。我认为这实际上非常快,但是当他们使用 watsonx Code Assistant 时,他们能够在大约 12 秒内理解并记录每个文件的内容。因此,如果您考虑将每个文件从 3 分钟的练习变成 12 秒的练习,那么仅针对此特定任务就节省了 90% 以上的时间。
她说,他们随后检查了 Watson 的工作,发现它的正确率约为 90%。
Olson 说,代码文档是编码助手经常被忽视但仍然有价值的用例。
另一个意想不到的用途是测试用例生成。“这绝对是开发商不倾向于关注的领域,”Olson 说。
此外,她还说,新的 watsonx Code Assistant 中还有一个集成的聊天功能。“借助集成的聊天功能,您可以简单地使用自然语言向编码助手提问,或要求它代表您执行某些操作,包括'请为我编写此代码。'而且在内部肯定有很多案例表明,我们的内部客户已经使用它来使用自然语言生成代码,“她说。
增强开发人员,而不是取代他们然而,她强调,IBM watsonx Code Assistant 并不意味着要取代开发人员。“我真的认为,重要的是要了解开发人员仍然处于开发的中心,并且仍然处于软件开发生命周期中一切的中心,”她说。“我们还没有到相信 AI 可以完全接管并为开发人员完成工作的地步。所以这是一个助手,应该这样使用。
Moorhead 对此表示赞同。
“研究历史的人都知道,这些对净失业的担忧在历史上被夸大了,”他说。“通常发生的情况是,这些工作职能会做更多、更高层次的工作。当编程语言出现时,人们担心所有的机器编码人员都会失去工作。他们没有。他们学习了 COBOL。我相信这种情况会在这里重演。
然而,Hinchcliffe 指出,尽管如此,一些开发人员仍然会担心。“现在,人们对 AI 取代开发人员工作的担忧非常真实,虽然 IBM 有意识地努力强调这些工具的'辅助'性质,但有时几乎完全取代某些 IT 工作者的道路相当明确,尤其是在运营和基本开发维护任务中。尽管 IBM 的方法确实侧重于为开发人员提供支持——强调'让他们参与循环'——而不是取代他们,但关于就业市场中 AI 的更广泛叙述可能会掩盖这一点。
他还担心 IBM 的时间表。“虽然 IBM 已经取得了重大进展,但其代理的时间表和实际使用仍然存在一些不确定性,”他说。“IBM 诚实地承认这个领域仍在发展,这令人耳目一新,但考虑到当前围绕 AI 的炒作,这可能会让人觉得平淡无奇。开发人员可能期待尽早推出更多突破性功能。然而,总的来说,IBM 的方法经过深思熟虑,并专注于企业当今的需求,但需要更清晰地传达有关增强的信息,以克服对失业的担忧。