JetBrains推出本地运行的AI代码补全

人工智能驱动的全新代码补全工具旨在将代码保留在本地,从而降低受监管行业的安全性问题。

译自JetBrains Launches AI Code Completion on Local Machines,作者 Loraine Lawson。

JetBrains在其 IDE 中提供全行代码补全功能,这要归功于在本地机器上运行的 AI 模型,因此无需将代码发送到场外。

该公司指出,此功能旨在吸引对数据隐私法规有严格要求的行业,例如医疗保健和金融行业,或任何可能对将代码发送到外部持犹豫态度的组织。

JetBrains 的高级机器学习工程师Daniel Savenkov解释道:"我们的产品如何运作?您在本地计算机上运行一个不太大但很智能的语言模型,所有操作都在本地进行。""这非常重要,因为并非所有人都愿意将自己的代码共享到云端。"

模型在内部机器上运行

JetBrains 代码补全功能在本地运行这一事实使其有别于其他代码补全工具,包括GitHub 的 Copilot,后者依赖于对底层基于云的大语言模型的外部调用。Savenkov 表示,虽然 Copilot 已有用户协议禁止将代码用于代码补全以外的任何用途,但在某些行业,由于安全问题,这还不够。

JetBrains 代码补全模型仍然是大语言模型,但有 1 亿个参数。Savenkov 补充说,相比之下,行业标准模型要大 100 倍。较小的模型是代码补全模型处理全行代码补全而不是大块代码的原因之一。Savenkov 表示,处理大块生成的代码确实很难。由于某些建议可能不好,因此编码人员必须查看 AI 模型创建的所有代码。

Savenkov 表示,业界对于哪种长度的代码补全效果最好存在一些争论。一些代码补全产品可以生成大量的代码块,但也可能产生 API 调用等幻觉。他补充说,JetBrains 将代码补全确定为一行,作为一种"相当公平的折衷",开发人员可以轻松使用

在本地运行这一事实还最大程度地减少了延迟问题。

他说:"这比生成 10 行代码或一个块或整个方法或整个类要简单得多。""因此,我们有机会使用较小的模型并获得真正有意义且有用的结果。所以,我们大致是这样到达这里的,我们有一个本地、不太大的模型,生成一行代码。"

较小的 LLM 提供了可比的质量

他声称,即使 LLM 较小,质量也相似。

Savenkov 告诉 The New Stack:"与真正基于云的大模型相比,在我们的用例中,质量没有大幅下降。当然,如果我们开始尝试生成代码块,差异会更大,但保持单行,差异不会那么大。"

该模型还利用来自 IDE 的信息来过滤掉幻觉,例如对不存在的 API 的调用。他还指出,这也有助于确保代码建议不包含语法错误,例如不存在的变量或方法。

此外,该公司机器学习产品经理Mikhail Kostyukov补充说,由于语言模型是针对特定语言和框架进行训练的,而不是一般性训练,因此它可以更小。

JetBrains 在其 Python IDE PyCharm 中试用了代码补全功能。截至今日,它已在相应的 JetBrains IDE 中开箱即用地提供给 Java、Kotlin、JavaScript、TypeScript、CSS、PHP、Go 和 Ruby:IntelliJ IDEA、WebStorm、PhpStorm、GoLand 和 RubyMine。

在未来几个月内,该公司将在所有支持这些语言的 JetBrains IDE 中将此功能扩展到 C#、Rust 和 C++,包括 Rider、RustRover、CLion Nova 等。

除了其代码补全产品外,JetBrains 还提供 AI 助手,作为附加订阅服务,可以自动完成整个代码块。该公司表示,AI 助手还提供了改进的测试生成和云代码补全、提交消息的自定义提示、从 AI 聊天创建文件以及更新的编辑器内代码生成功能。

此更新可在 IntelliJ IDEA、PyCharm、PhpStorm、ReSharper 和其他 JetBrains IDE 中使用,以及 Fleet 中作为补充功能。

此 2024.1 更新还为 JetBrain 的 IDE 引入了其他新功能,包括一个经过全面检修的终端功能,其中包含简化命令行任务的增强功能。该公司在新闻稿中指出,该终端现在支持在块内导航,分别嵌套每个命令、命令完成功能以及轻松访问命令历史记录。

特定 IDE 的改进包括:

  • IntelliJ IDEA 将为新发布的 Java 22 中的功能提供支持。它还结合了基于 K2 Kotlin 编译器的新 Kotlin K2 模式,以增强代码分析。
  • RubyMine 可以执行当前产品本地 SDK 中的 VCS 命令。
  • PyCharm 2024.1 为集成 Jupyter 笔记本带来了新功能,以及简化的版本控制,其中包含新的可视化差异、小部件渲染以及使用 AI 助手解释 pandas 和 Polars DataFrames 的功能。此外,Hugging Face 模型的所有文档都可以在 PyCharm 中直接访问。
  • PhpStorm 为 Symfony 的 AssetMapper 添加了支持。新闻稿指出,开发人员现在可以通过 importmap.php 快速安装缺失的模块和包,并为其类和方法利用完全自动完成。他们还可以为 PHP 类和方法生成Pest 测试,并直接从 Intention 操作菜单创建新的 Pest 测试。

本文在云云众生yylives.cc/)首发,欢迎大家访问。

相关推荐
Juchecar14 小时前
一文讲清 nn.Module 中 forward 函数被调用时机
人工智能
七牛云行业应用15 小时前
深度解析强化学习(RL):原理、算法与金融应用
人工智能·算法·金融
说私域15 小时前
“开源AI智能名片链动2+1模式S2B2C商城小程序”在直播公屏引流中的应用与效果
人工智能·小程序·开源
Hcoco_me15 小时前
深度学习和神经网络之间有什么区别?
人工智能·深度学习·神经网络
霍格沃兹_测试15 小时前
Ollama + Python 极简工作流
人工智能
资源开发与学习15 小时前
AI智时代:一节课带你玩转 Cursor,开启快速入门与实战之旅
人工智能
西安光锐软件15 小时前
深度学习之损失函数
人工智能·深度学习
补三补四15 小时前
LSTM 深度解析:从门控机制到实际应用
人工智能·rnn·lstm
astragin15 小时前
神经网络常见层速查表
人工智能·深度学习·神经网络
嘀咕博客16 小时前
文心快码Comate - 百度推出的AI编码助手
人工智能·百度·ai工具