มกราคม 2024 - ICE-Score ได้รับการยอมรับใน EACL 2024 ???
การทดลองของเราส่วนใหญ่สร้างขึ้นบนที่เก็บ codegen-metrics และ code-bert-score หากต้องการจำลองการทดลองทั้งหมด โปรดทำตามคำแนะนำเพื่อตั้งค่าสภาพแวดล้อม
หากต้องการรัน compute_results.ipynb
และโมดูลในโฟลเดอร์ llm-code-eval
ให้ใช้คำสั่งต่อไปนี้เพื่อติดตั้งการอ้างอิงทั้งหมด:
pip install -r requirements.txt
data/
ประกอบด้วยข้อมูลที่ประมวลผลทั้งหมดที่ใช้ในกระดาษ
data/conala/
มีชุดข้อมูล CoNaLa พร้อมผลการประเมินอัตโนมัติทั้งหมดdata/humaneval/
ประกอบด้วยชุดข้อมูล HumanEval พร้อมผลการประเมินอัตโนมัติทั้งหมดdata/humaneval/humaneval_java_grade.json
: แยก Javadata/humaneval/humaneval_cpp_grade.json
: แยก C++data/humaneval/humaneval_python_grade.json
: แยก Pythondata/humaneval/humaneval_js_grade.json
: แยก JavaScript 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 สำหรับโค้ดและข้อมูลโอเพ่นซอร์ส