كينغتشين يو 1،* ، زيفان تشنغ 1،* ، شيشاو سونغ 2،* ، زيو لي 1،† ، فييو شيونغ 1 ، بو تانغ 1 ، دينغ تشين 1
1 معهد أبحاث الخوارزميات المتقدمة، شنغهاي، 2 جامعة رنمين الصينية
من يجب أن يهتم بعملنا؟
مهم
؟ نجم لنا! من خلال تمييز مشروعنا بنجمة على GitHub، ستتلقى جميع إشعارات الإصدار على الفور. نحن نقدر دعمكم!
نلخص مساهماتنا الأساسية على النحو التالي:
كما هو موضح في الشكل، يتم توضيح الحالات التي فشلت فيها أطر التقييم مثل LM Eval Harness وOpenCompass في استخراج الإجابات الرئيسية. على وجه التحديد، تمثل A/T/C/M المهام ذات الأبجدية / النص القصير / التسمية الفئوية / خيارات الرياضيات، على التوالي.
إنشاء مجموعة بيانات معيارية : لتبسيط عملية التقييم باستخدام xFinder، قمنا بتوحيد مجموعات بيانات معيارية متعددة في تنسيق JSON موحد. للحصول على تفاصيل التنفيذ، راجع create_benchmark_dataset.py. إذا كنت ترغب في تقييم مجموعات البيانات الخاصة بك باستخدام xFinder، فيرجى الرجوع إلى قالب البرنامج النصي المتوفر لدينا Benchmark_dataset_template.py للحصول على إرشادات تحويل التنسيق.
قم بإعداد أزواج ضمان الجودة ومخرجات LLM : اجمع مخرجات LLM التي ترغب في تقييمها. تأكد من أن بياناتك تتضمن العناصر التالية:
نشر نموذج xFinder : حدد أحد النماذج التالية للنشر:
بعد نشر نموذج xFinder، اتبع الخطوات التالية لتشغيل التقييم:
# Install xfinder
conda create -n xfinder_env python=3.10 -y
conda activate xfinder_env
pip install xfinder
# Perform an evaluation with xFinder (a built-in example)
CUDA_VISIBLE_DEVICES=0 python -m xfinder.eval --run-example --model-name xFinder-qwen1505 --inference-mode local --model-path-or-url /path/to/anonymized/model/xFinder-qwen1505
تتيح لك هذه الطريقة تقييم الأمثلة المتعددة المخزنة في ملف JSON.
# Initialize Evaluator object
evaluator = Evaluator (
model_name = "xFinder-qwen1505" , # Model name
inference_mode = "api" , # Inference mode, 'local' or 'api'
model_path_or_url = "http://your-anonymized-url/generate" , # Anonymized model path or URL
)
# Perform batch evaluation
data_path = "/path/to/your/data/example.json" # User needs to provide their own data path
accuracy = evaluator . evaluate ( data_path )
print ( f"Batch evaluation accuracy: { accuracy } " )
تتيح لك هذه الطريقة تقييم الأمثلة الفردية، والتي يمكن دمجها في إطار تقييم LLM.
# Initialize Evaluator object
evaluator = Evaluator (
model_name = "xFinder-qwen1505" , # Model name
inference_mode = "local" , # Inference mode, 'local' or 'api'
model_path_or_url = "IAAR-Shanghai/xFinder-qwen1505" , # Anonymized model path or URL
)
# Define input for a single evaluation
question = "What is the capital of France?"
llm_output = "The capital of France is Paris."
standard_answer_range = "[ " Paris " , " Lyon " , " Marseille " ]"
key_answer_type = "short_text"
correct_answer = "Paris"
# Perform single example evaluation
result = evaluator . evaluate_single_example (
question ,
llm_output ,
standard_answer_range ,
key_answer_type ,
correct_answer
)
نصيحة
demo.ipynb
للحصول على أمثلة أكثر تفصيلاً.export HF_ENDPOINT=https://hf-mirror.com
لاستخدام المرآة الصينية إذا لم تتمكن من الاتصال بـ Hugging Face.نعرض أمثلة عبر أربعة أنواع من الأسئلة حيث يفشل RegEx في استخراج الإجابات غير الصحيحة أو يستخرجها بشكل متكرر، بينما يستخرج xFinder الإجابات الرئيسية بدقة.
{
"key_answer_type" : " alphabet option " ,
"question" : " A man is seen playing guitar on a stage with others playing instruments behind him. The man grabs a guitar from the audience and begins playing both one after the other ... " ,
"llm_output" : " Option A is the correct choice as it describes ... " ,
"standard_answer_range" : " [['A', 'strums the guitar in the end, continues playing the guitar with the crowd following him as well as lining up next to him.'], ['B', 'continues playing the instruments and ends by waving to the crowd and walking off stage.'], ['C', 'then turns to the audience and gives a stuffed toy to the audience and continues playing.'], ['D', 'finally stops playing and moves his hands for the crowd to see.']] " ,
"gold_label" : " A " ,
"xFinder_output" : " A " ,
},
{
"key_answer_type" : " short text " ,
"question" : " If you really wanted a grape, where would you go to get it? Answer Choices: winery / fruit stand / field / kitchen / food " ,
"llm_output" : " The answer is winery / fruit stand / field / kitchen / food ... " ,
"standard_answer_range" : " [ " winery " , " fruit stand " , " field " , " kitchen " , " food " ] " ,
"gold_label" : " [No valid answer] " ,
"xFinder_output" : " [No valid answer] " ,
},
{
"key_answer_type" : " categorical label " ,
"question" : " How tall is the Sears Building ? " ,
"llm_output" : " The Sears Building is a specific structure, so the answer would be a Location ... " ,
"standard_answer_range" : " ['Abbreviation', 'Entity', 'Description', 'Person', 'Location', 'Number'] " ,
"gold_label" : " Location " ,
"xFinder_output" : " Location " ,
},
{
"key_answer_type" : " math " ,
"question" : " Mike made 69 dollars mowing lawns over the summer. If he spent 24 dollars buying new mower blades, how many 5 dollar games could he buy with the money he had left? " ,
"llm_output" : " To find out how many 5 dollar ... Let's calculate that: nn $45 / $5 = 9 nn So, Mike could buy 9 5 dollar games with the money he had left. " ,
"standard_answer_range" : " a(n) number / set / vector / matrix / interval / expression / function / equation / inequality " ,
"gold_label" : " 9 " ,
"xFinder_output" : " 9 " ,
}
خط الأساس : OpenCompass، LM Eval Harness، UltraEval، GPT-4. طريقتنا : xFinder-qwen1505، xFinder-qwen1518، xFinder-gemma7، xFinder-chatglm36base، xFinder-llama38، xFinder-llama38it.
قمنا بتقييم دقتها في استخراج الإجابات الرئيسية من كل من مجموعة اختبار KAF ومجموعات التعميم. المقياس الموجود في الجدول هو الدقة.
@article{xFinder,
title={xFinder: Robust and Pinpoint Answer Extraction for Large Language Models},
author={Qingchen Yu and Zifan Zheng and Shichao Song and Zhiyu Li and Feiyu Xiong and Bo Tang and Ding Chen},
journal={arXiv preprint arXiv:2405.11874},
year={2024},
}
?العودة إلى الأعلى