冰分数
1.0.0
2024 年 1 月- ICE-Score 已被 EACL 2024 接受???
我们的实验主要建立在 codegen-metrics 和 code-bert-score 存储库上。要复制所有实验,请按照他们的说明设置环境。
要运行llm-code-eval
文件夹中的compute_results.ipynb
和模块,请使用以下命令安装所有依赖项:
pip install -r requirements.txt
data/
包含论文中使用的所有已处理数据。
data/conala/
包含带有所有自动评估结果的 CoNaLa 数据集。data/humaneval/
包含包含所有自动评估结果的 HumanEval 数据集。data/humaneval/humaneval_java_grade.json
:Java 分割data/humaneval/humaneval_cpp_grade.json
: C++ 分割data/humaneval/humaneval_python_grade.json
:Python 拆分data/humaneval/humaneval_js_grade.json
:JavaScript 拆分experiment_source/
包含收集所有自动评估结果的脚本。它们需要进行特定修改才能在您的计算机上运行。请注意,对于使用metrics_evaluation.metrics
的任何脚本,您需要使用codegen-metrics中的metrics_evaluation
文件夹中的实现。
llm_code_eval
包含该项目的最小可行产品 (MVP) 的实现。您可以使用它来评估任何生成的代码片段。请参阅Use Large Language Models To Downstream Tasks Of Source Code
了解更多详细信息。
我们为此项目实施了最小可行产品(MVP)。要安装该项目,请使用以下命令:
pip install -e .
您可以使用它来评估任何生成的代码片段,输入为problem
、 output
、 task
、 aspect
和model
,如下例所示:
from llm_code_eval import evaluate
score = evaluate ( problem = "Given a list of integers, return the sum of all the integers." ,
output = "sum = 0 n for i in range(len(list)): n t sum += list[i] n return sum" ,
task = "code-gen" , aspect = "usefulness" , model = "gpt-3.5-turbo" )
print ( score )
如果您想使用参考代码进行评估,可以在以下示例中使用reference
选项:
from llm_code_eval import evaluate
score = evaluate ( problem = "Given a list of integers, return the sum of all the integers." ,
output = "sum = 0 n for i in range(len(list)): n t sum += list[i] n return sum" ,
reference = "sum = 0 n for i in range(len(list)): n t sum += list[i] n return sum" ,
task = "code-gen" , aspect = "usefulness" , model = "gpt-3.5-turbo" )
print ( score )
您还可以在以下示例中使用cot=True
选项来启用零样本思想链评估:
from llm_code_eval import evaluate
score , eval_step = evaluate ( problem = "Given a list of integers, return the sum of all the integers." ,
output = "sum = 0 n for i in range(len(list)): n t sum += list[i] n return sum" ,
task = "code-gen" , aspect = "usefulness" , model = "gpt-3.5-turbo" , cot = True )
print ( score )
print ( eval_step )
@inproceedings{zhuo2024ice,
title={ICE-Score: Instructing Large Language Models to Evaluate Code},
author={Zhuo, Terry Yue},
booktitle={Findings of the Association for Computational Linguistics: EACL 2024},
pages={2232--2242},
year={2024}
}
我们感谢 JetBrains Research 和 NeuLab 提供的开源代码和数据。