Promptfoo वापरून C# LLM Eventparser चे मूल्यमापन करणे

नियमित कोडची चाचणी घेणे सोपे असते. तुम्ही एक फंक्शन कॉल करता, निकाल मिळवता आणि तो तुमच्या अपेक्षेनुसार आहे की नाही हे तपासता.

LLMs ची चाचणी घेणे वेगळे आहे. एक LLM एका वेळी "3 PM" आणि दुसऱ्या वेळी "15:00" असे उत्तर देऊ शकते. दोन्ही बरोबर आहेत, परंतु 'exact match' (तंतोतंत जुळणारे) चाचणी अयशस्वी होईल. तुम्हाला उत्तर चांगले आहे की नाही हे तपासावे लागेल, ते तंतोतंत सारखे आहे की नाही हे नाही.

हे तपासण्यासाठी मी EventParser नावाचे एक छोटे ॲप तयार केले आहे. ते "Team sync on Friday at 3 PM" सारखा अनौपचारिक संदेश घेते आणि त्याचे संरचित (structured) डेटामध्ये रूपांतर करते.

Promptfoo आणि LLM-as-a-judge वर्कफ्लो वापरून तुम्ही याची चाचणी कशी करू शकता, ते खाली दिले आहे.

The Setup

हे ॲप एकच प्रॉम्प्ट फाईल वापरते: extract_event.txt. C# कोड रनटाइममध्ये ही फाईल वाचतो. Promptfoo चाचणीसाठी तीच फाईल वाचते. यामुळे तुमचे युजर्स प्रत्यक्षात जो प्रॉम्प्ट पाहतात, त्याचीच तुम्ही चाचणी घेत आहात याची खात्री मिळते.

The Workflow

प्रत्येक आउटपुट मानवाने तपासण्याऐवजी, आपण 'judge model' वापरतो. या प्रक्रियेत दोन भूमिका वापरल्या जातात:

• चाचणी હેઠળ असलेले मॉडेल (The model under test): उत्तर देणारे मॉडेल. • जज मॉडेल (The judge model): उत्तर तपासणारे (grade करणारे) एक जलद आणि स्वस्त मॉडेल.

How the Judge Decides

जज 'rubric' वापरतो. 'Rubric' म्हणजे साध्या इंग्रजीतील एक नियम. एखादी विशिष्ट JSON स्ट्रिंग तपासण्याऐवजी, उत्तरामध्ये काय असायला हवे, हे तुम्ही जजला सांगता.

Example Rubric: "The answer should extract the event title, day, time, and location. It must not add details not mentioned in the message."

Testing for Errors

मी मुद्दाम एक चुकीची सूचना जोडून प्रॉम्प्टमध्ये बिघाड केला: "If the message mentions coffee, set the location to Starbucks."

जेव्हा मी मूल्यमापन (evaluation) केले, तेव्हा जजने ही त्रुटी पकडली. मूळ संदेशात Starbucks चा उल्लेख नव्हता. मॉडेलने स्वतःहून एक ठिकाण तयार केले (hallucinated). 'Exact match' चाचणीमध्ये हे सुटले असते, परंतु जज मॉडेल 'semantic errors' (अर्थातील त्रुटी) पकडते.

Why this works:

• ते वास्तवाशी जुळते: ते "3 PM" किंवा "15:00" सारखे विविध योग्य फॉरमॅट्स स्वीकारते. • ते वाचनीय नियमांचा वापर करते: साध्या इंग्रजीतील rubrics समजण्यास सोपे असतात. • ते अर्थातील त्रुटी (meaning bugs) पकडते: ते hallucinations आणि लॉजिकमधील चुका शोधते. • ते किफायतशीर आहे: तुम्ही महागड्या मॉडेलचे मूल्यमापन करण्यासाठी स्वस्त मॉडेल वापरू शकता.

या दृष्टिकोनामुळे LLM चाचणी ही खऱ्या सॉफ्टवेअर चाचणीसारखी वाटते.

Source: https://dev.to/bigboybamo/evaluating-a-c-llm-eventparser-with-promptfoo-4b87

Optional learning community: https://t.me/GyaanSetuAi