CodeGeeX2-Github项目链接(基于ChatGLM2)
目录
pair语言 翻译在观察翻译能力时,发现A到B和B到A之间呈现负相关
CodeGeeX3 2024/1月发布【增加RAG】
这篇论文作为了解代码大模型的入门论文非常适合,介绍了现有的评测流程和训练方法。
HumanEvalX评测
HumanEval是CodeX提出来的的,但是只包含了python的手写问题,这里他们团队对164个问题纯手写的给出了在5种语言【python、C++、Java、Javascirpt、Go、python】上的结果,得到了164x5=820个 question-solution pair,每一个pair都包含以下部分:

以HumanEval - X中的代码生成和翻译任务为例,分别用红色、绿色、蓝色和紫色标记声明、文档、解决方案和测试用例。生成器使用声明和docstring作为输入来生成解。翻译使用两种语言的声明和源语言的解决方案作为输入,生成目标语言( docstring不用于防止模型直接求解问题)的解决方案。
重写代码时的步骤
- 不同的语言有不同的命名风格,CamelCase:java,snake_case:python
- docstring的注释符是不同的
- test case需要细化,而不是强迫程序返回不同的结果,e.g 整数转化成二进制,python会在字符串之前加上"0b",但是java不会
- 对于rounding函数,python的表现会不同
任务
代码生成
输入:declaration和docstrings,输出:函数的实现
代码翻译
输入包括source语言的declaration和solution,在target语言中添加declaration会使得评估更加容易,尤其是在zero-shot的情况下。
如果加入doctsring,模型会更加直接地去解决描述出来的问题而不是去翻译,所以要去掉。

这篇博客介绍了CodeGeeX模型和HumanEvalX评测集,涉及代码生成、翻译任务及评估方法。CodeGeeX在多语言代码生成上表现出色,尤其在Python上的性能最佳。评测指标如pass@k展示了模型在不同编程语言中的解决方案生成能力。同时,文中探讨了代码翻译中的语言不对称性和多语言模型的解决方案集多样性。
最低0.47元/天 解锁文章
1448

被折叠的 条评论
为什么被折叠?



