يناير 2024 - تم قبول ICE-Score في EACL 2024 ؟؟؟
تجربتنا مبنية بشكل أساسي على مستودعات مقاييس الكودجن ونقاط كود بيرت. لتكرار جميع التجارب، يرجى اتباع تعليماتهم لإعداد البيئة.
لتشغيل compute_results.ipynb
والوحدات النمطية في مجلد llm-code-eval
، استخدم الأمر التالي لتثبيت جميع التبعيات:
pip install -r requirements.txt
data/
يحتوي على جميع البيانات المعالجة المستخدمة في الورقة.
data/conala/
يحتوي على مجموعة بيانات CoNaLa مع جميع نتائج التقييم التلقائية.data/humaneval/
يحتوي على مجموعة بيانات HumanEval مع جميع نتائج التقييم التلقائية.data/humaneval/humaneval_java_grade.json
: تقسيم جافاdata/humaneval/humaneval_cpp_grade.json
: تقسيم C++data/humaneval/humaneval_python_grade.json
: انقسام بايثونdata/humaneval/humaneval_js_grade.json
: تقسيم جافا سكريبت يحتوي experiment_source/
على البرامج النصية لجمع كافة نتائج التقييم التلقائية. أنها تتطلب تعديلات محددة للتشغيل على جهازك. لاحظ أنه بالنسبة لأي من هذه البرامج النصية التي تستخدم metrics_evaluation.metrics
، فإنك تحتاج إلى استخدام التطبيقات الموجودة في مجلد metrics_evaluation
من codegen-metrics.
يحتوي 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 على التعليمات البرمجية والبيانات مفتوحة المصدر.