admin管理员组文章数量:1035694
牛逼!JetBrains AI 代码补全接受率如何上升~50%?原来用这招!的确实用,又不缺乏创新!
前言
最近,JetBrains 官方又发生了一件令人兴奋的事情:JetBrains AI Assistant 代码补全的的接受率上升了
,而明确取消率下降了。
不知道大家是否还记得去年11月份 JetBrains 官方公布的 AI 代码补全现状报告!文中有一张很酷的代码补全图表,就是它:
那现在 JetBrains AI Assistant 的现状如何呢?如何做到代码补全接受率上升的呢?我们一起来看一看!
JetBrains AI Assistant 代码补全
我们知道 JetBrains AI Assistant 是使用模型的。那如何在现有的模型上,获取更好的结果呢?
重新训练生成模型吗?肯定不是!模型如何何时发布新版本,不是JetBrains 说了算!
下面就来看看 JetBrains 官方如何在不重新训练生成模型的情况下获得结果!
不能仅仅依赖 LLM 大模型
提供代码建议的 LLM,是 AI 驱动的代码完成的核心,但并不是全部。
代码补全的幕后发生了很多事情,尤其是在插件方面,比如决定:
- 何时显示建议。
- 建议应为单行或多行。
- 显示或隐藏哪些建议。例如,建议可能在语义上不正确、得分过低、违反使用规则或不适当前语言等。
有时侯,定义筛选规则并不那么简单。
努力实现的目标
简而言之,JetBrains AI Assistant只向我们展示实际使用的建议。
这意味着那些不需要的建议(那些我们可以取消、编辑或删除的建议)不会失JetBrains AI Assistant代码完成功能的强大功能。
JetBrains AI Assistant在指标方面,努力追求:
- 提高录取率。
- 降低取消率和已编辑/已删除建议的百分比。
- 保持或提高已完成代码的比率。
如何实现上面这一切呢?显而易见的答案是改进 completion 模型
。
改进 completion 模型
改进 completion 模型,就没有那么简单了!
训练更好的模型需要大量资源。这既昂贵又耗时。
官方不存储用户的代码,也就看不到哪里出了问题,也就无法分析不良的建议。
仅靠上下文是不够的。因为用户行为以及建议与附近线路的匹配程度等因素也很重要。
官方没有走上改进完成度LLM的漫长道路,而是采用了不同的方法:轻量级本地滤波器模型
。
轻量级本地滤波器模型
此模型在完成LLM项上运行,并使用匿名日志进行训练。
该模型通过分析以下内容来帮助决定是否应显示建议:
- Context:文件/项目上下文(如使用的语言以及导入的数量和类型)和完成上下文(如描述插入点位置的功能)。
- 用户行为 :键入速度和自上次键入以来所花费的时间。
- 建议本身 :引用是否被解析,建议是否重复或与周围行相似,以及其他模型输出,如标记分数和标记熵。
轻量级本地过滤器模型的工作很简单:它根据用户的行为决定是接受还是拒绝建议
。
但是,官方在训练期间对模型进行了一些指导。特别重视明确的用户的行为动作,例如当您明确接受或取消建议时,如果您在接受建议后编辑或删除该建议,我们会将其视为不太成功 - 更改的越多,它的权重就越小
。
从技术上讲,轻量级本地过滤器模型
是使用 CatBoost 构建的,效率高且不需要大量数据。
该模型经过专门设计,采用轻量级设计,经过训练后,它会变成一个紧凑的 2.5 MB 文件,并直接在用户的计算机上以 Kotlin 运行,在 1-2 毫秒内做出预测。
取得的成就
在官方的 EAP 中的 A/B 测试显示出很好的结果,而且它们还在变得更好。
过滤器模型将接受率提高了 ~50%,并将显式取消率降低了 ~40%,同时保持了完成代码的比率稳定。
目前,官方在 JetBrains IDE 2024.1 版本中正式推出了过滤器模型
,适用于多种语言,包括 Java、Kotlin、Python、PHP、JavaScript/TypeScript、Go、CSS 和 Ruby。
JetBrains IDE 2024.1 之后的补全率已经明显提升~ 题外话说一句:最近 AI Assistant 的效果确实不错了,从小二哥这里购买的小伙伴也较之前多了~
官方激活在以后的版本中,介绍 C#、C++、Rust 和 HCL,以及使用 Python、Java 和 Kotlin 中的 Mellum 进行云补全的本地过滤器模型。
同时,本地代码完成模型和轻量级本地过滤器模型都在不断发展和改进。
学到了什么?
个人觉得 JetBrains 这一招棋走得非常牛逼!
即使LLM已经做得很好,也总有改进的余地。不然就不会持续又新版本出来啦!
另一个点是:对于我们应用层面来说,并不总是需要庞大、复杂的模型来产生影响。有时,巧妙地使用日志等额外数据可以解决问题。
期待 AI 驱动的代码补全走得更好、更远!
大家可以在下面的评论中分享您的想法哦!
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-23,如有侵权请联系 cloudcommunity@tencent 删除数据jetbrains模型日志设计牛逼!JetBrains AI 代码补全接受率如何上升~50%?原来用这招!的确实用,又不缺乏创新!
前言
最近,JetBrains 官方又发生了一件令人兴奋的事情:JetBrains AI Assistant 代码补全的的接受率上升了
,而明确取消率下降了。
不知道大家是否还记得去年11月份 JetBrains 官方公布的 AI 代码补全现状报告!文中有一张很酷的代码补全图表,就是它:
那现在 JetBrains AI Assistant 的现状如何呢?如何做到代码补全接受率上升的呢?我们一起来看一看!
JetBrains AI Assistant 代码补全
我们知道 JetBrains AI Assistant 是使用模型的。那如何在现有的模型上,获取更好的结果呢?
重新训练生成模型吗?肯定不是!模型如何何时发布新版本,不是JetBrains 说了算!
下面就来看看 JetBrains 官方如何在不重新训练生成模型的情况下获得结果!
不能仅仅依赖 LLM 大模型
提供代码建议的 LLM,是 AI 驱动的代码完成的核心,但并不是全部。
代码补全的幕后发生了很多事情,尤其是在插件方面,比如决定:
- 何时显示建议。
- 建议应为单行或多行。
- 显示或隐藏哪些建议。例如,建议可能在语义上不正确、得分过低、违反使用规则或不适当前语言等。
有时侯,定义筛选规则并不那么简单。
努力实现的目标
简而言之,JetBrains AI Assistant只向我们展示实际使用的建议。
这意味着那些不需要的建议(那些我们可以取消、编辑或删除的建议)不会失JetBrains AI Assistant代码完成功能的强大功能。
JetBrains AI Assistant在指标方面,努力追求:
- 提高录取率。
- 降低取消率和已编辑/已删除建议的百分比。
- 保持或提高已完成代码的比率。
如何实现上面这一切呢?显而易见的答案是改进 completion 模型
。
改进 completion 模型
改进 completion 模型,就没有那么简单了!
训练更好的模型需要大量资源。这既昂贵又耗时。
官方不存储用户的代码,也就看不到哪里出了问题,也就无法分析不良的建议。
仅靠上下文是不够的。因为用户行为以及建议与附近线路的匹配程度等因素也很重要。
官方没有走上改进完成度LLM的漫长道路,而是采用了不同的方法:轻量级本地滤波器模型
。
轻量级本地滤波器模型
此模型在完成LLM项上运行,并使用匿名日志进行训练。
该模型通过分析以下内容来帮助决定是否应显示建议:
- Context:文件/项目上下文(如使用的语言以及导入的数量和类型)和完成上下文(如描述插入点位置的功能)。
- 用户行为 :键入速度和自上次键入以来所花费的时间。
- 建议本身 :引用是否被解析,建议是否重复或与周围行相似,以及其他模型输出,如标记分数和标记熵。
轻量级本地过滤器模型的工作很简单:它根据用户的行为决定是接受还是拒绝建议
。
但是,官方在训练期间对模型进行了一些指导。特别重视明确的用户的行为动作,例如当您明确接受或取消建议时,如果您在接受建议后编辑或删除该建议,我们会将其视为不太成功 - 更改的越多,它的权重就越小
。
从技术上讲,轻量级本地过滤器模型
是使用 CatBoost 构建的,效率高且不需要大量数据。
该模型经过专门设计,采用轻量级设计,经过训练后,它会变成一个紧凑的 2.5 MB 文件,并直接在用户的计算机上以 Kotlin 运行,在 1-2 毫秒内做出预测。
取得的成就
在官方的 EAP 中的 A/B 测试显示出很好的结果,而且它们还在变得更好。
过滤器模型将接受率提高了 ~50%,并将显式取消率降低了 ~40%,同时保持了完成代码的比率稳定。
目前,官方在 JetBrains IDE 2024.1 版本中正式推出了过滤器模型
,适用于多种语言,包括 Java、Kotlin、Python、PHP、JavaScript/TypeScript、Go、CSS 和 Ruby。
JetBrains IDE 2024.1 之后的补全率已经明显提升~ 题外话说一句:最近 AI Assistant 的效果确实不错了,从小二哥这里购买的小伙伴也较之前多了~
官方激活在以后的版本中,介绍 C#、C++、Rust 和 HCL,以及使用 Python、Java 和 Kotlin 中的 Mellum 进行云补全的本地过滤器模型。
同时,本地代码完成模型和轻量级本地过滤器模型都在不断发展和改进。
学到了什么?
个人觉得 JetBrains 这一招棋走得非常牛逼!
即使LLM已经做得很好,也总有改进的余地。不然就不会持续又新版本出来啦!
另一个点是:对于我们应用层面来说,并不总是需要庞大、复杂的模型来产生影响。有时,巧妙地使用日志等额外数据可以解决问题。
期待 AI 驱动的代码补全走得更好、更远!
大家可以在下面的评论中分享您的想法哦!
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-23,如有侵权请联系 cloudcommunity@tencent 删除数据jetbrains模型日志设计本文标签: 牛逼!JetBrains AI 代码补全接受率如何上升50原来用这招!的确实用,又不缺乏创新!
版权声明:本文标题:牛逼!JetBrains AI 代码补全接受率如何上升~50%?原来用这招!的确实用,又不缺乏创新! 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748176543a2264017.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论