论文日常阅读笔记——VersiCode: Towards Version-controllable Code Generation(2024)

VersiCode: Towards Version-controllable Code Generation(2024 引用数26)

论文地址:[2406.07411] VersiCode: Towards Version-controllable Code Generation

论文开源仓库:https://github.com/wutong8023/VersiCode

动机

当前代码补全相关的任务没有考虑到不同外部库的版本变化,开始进一步研究不同版本的外部库对代码补全的影响

核心贡献

1.提出了两个还没被充分研究的任务,version-specific code completion (VSCC) 和 version-aware code editing (VACE)

2.构建并开源了一个大规模的version-controllable code generation dataset,VersiCode

image-20260727104706934

image-20260727143217021

评估方式

token-level 生成任务:

n代表总生成数量,c代表正确数量,k代表取前k个

评估指标含义:在n个生成结果中,随机取k个候选,其中至少有一个正确答案的概率
Pass@k=E[1-\frac{\binom{n-c}{k}}{\binom nk}]
当n=5,c=1,k=3时,计算结果为:
Pass@k = 1-\frac{C_4^3}{C_5^3}

line-level 生成任务:

Identifier Sequence Match (ISM@n):

抽取生成内容的所有Identifier,然后对比exact match。

抽取样例:
user_name = get_user_name()
抽取后:
user_name
get_user_name

评估指标含义:生成n个结果中正确的比例

Prefix Match (PM@n):

判断生成代码的token是否和GT的相同的比例

block-level 生成任务:

拆分为上面的ISM/PM的line-level任务,之后求和平均。

实验发现

image-20260729155546307

1.在prompt只提示需要修改到的版本号,而不进一步补充api的情况下,如F4(b)所示大多数模型在新增废弃API时表现良好,原因可能是因为这些新增和废弃的api在训练文本中被特别强调了。

image-20260729155934623

2.如T3所示,其中Block-level的代码补全和代码编辑的得分相对比,发现代码编辑得分显著高于代码补全,可得不同版本的上下文提示对生成结果有一定的正向作用

image-20260729160506829

3.论文中定义了主要版本和次要版本,例如torch v1.0.0 as a major version and torch v1.3.1 as a minor version,实验发现由主要版本到主要版本的模型编辑能力最弱,原因可能是主要版本之间的内部api变化较大

image-20260729161957251

4.在token-level 的代码补全任务中,如F5所示,实验发现当使用的数据越新,模型的效果越差

投稿情况与审稿意见

本文在2025年尝试投ICLR,但是没有中稿

OpenReview中主要评分:

Reviewer Score Confidence 评价
Reviewer 1 6/10 3 Weak Accept
Reviewer 2 5/10 3 Borderline
Reviewer 3 5/10 4 Borderline

整体:

  • 平均分约:(6+5+5)/3=5.33

审稿人提出的核心问题主要是:

  • 评估方式有待改造,有必要动态执行代码来判断正确性
  • baseline对比有待改进,比如引入RAG\微调模型\agent框架方法进行进一步对比

总结就是:VersiCode不是因为研究问题不好而拒稿,而是因为它提出了一个很好的软件工程问题,但停留在“发现问题和建立benchmark”阶段,缺少机器学习方法创新和解决方案,因此对于ICLR这种偏ML顶会竞争力不足。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇