प्रोडक्शनमध्ये LLM आउटपुटची गुणवत्ता तपासणे

मार्च २०२३ मध्ये, GPT-4 ने ९७.६% अचूकतेसह मूळ संख्या (prime numbers) ओळखल्या. जून २०२३ पर्यंत, त्याच मॉडेलची अचूकता २.४% पर्यंत खाली आली. कोणीही कोड बदलला नाही. कोणीही प्रॉम्प्ट बदलला नाही. मॉडेल फक्त बदलले (drift झाले).

प्रोडक्शनमध्ये LLMs सोबतची ही मुख्य समस्या आहे. तुमचे मॉडेलवर नियंत्रण नसते. हे एक असे अवलंबित्व (dependency) आहे जे बदलत राहते (drifts). जर तुम्ही ते मोजले नाही, तर तुमचे वापरकर्ते तुम्हाला सांगतील की ते बिघडले आहे.

तुम्ही केवळ "असे वाटते" किंवा "मला ठीक वाटते" यावर अवलंबून राहू शकत नाही. तुम्हाला पुनरावृत्ती करता येण्यासारख्या (repeatable) संकेतांची गरज आहे.

पारंपारिक सॉफ्टवेअर हे 'डिटरमिनिस्टिक' (deterministic) असते. समान इनपुट म्हणजे समान आउटपुट. LLMs हा नियम मोडतात. ते 'नॉन-डिटरमिनिस्टिक' असतात आणि "बरोबर" असणे हे अनेकदा अस्पष्ट असते.

हे व्यवस्थापित करण्यासाठी, तुम्हाला मूल्यमापनाच्या तीन स्तरांची आवश्यकता आहे:

  • ऑफलाइन इव्हल्स (Offline evals): रिग्रेशन्स (regressions) पकडण्यासाठी प्रत्येक बदलावर एक निश्चित टेस्ट सेट चालवा.
  • संदर्भ-मुक्त तपासणी (Reference-free checks): जेव्हा तुमच्याकडे कोणतेही "योग्य" उत्तर नसते, तेव्हा हॅलुसिनेशन डिटेक्शन (hallucination detection) सारख्या संकेतांचा वापर करा.
  • प्रोडक्शन मॉनिटरिंग (Production monitoring): ड्रिफ्ट आणि गुणवत्तेतील घसरण तपासण्यासाठी रिअल ट्रॅफिकवर लक्ष ठेवा.

याचा पाया म्हणजे 'गोल्डन डेटासेट' (Golden Dataset) आहे. यादृच्छिक (random) नमुने वापरू नका. कठीण प्रकरणांचा (hard cases) एक निवडलेला संच वापरा. रिकामे इनपुट, विचित्र एज केसेस (edge cases) आणि ॲडव्हर्सरिअल प्रॉम्प्ट्स (adversarial prompts) वापरा. ८,००० यादृच्छिक उदाहरणांपेक्षा ८० अचूक उदाहरणे जास्त प्रभावी ठरतात.

LLM चा न्यायाधीश (judge) म्हणून वापर करताना, खालील पूर्वग्रहांकडे (biases) लक्ष द्या:

  • पोझिशन बायस (Position bias): न्यायाधीश अनेकदा त्यांना दिसणाऱ्या पहिल्या उत्तराला पसंती देतात. दोन्ही क्रमाने तुलना करून हे दुरुस्त करा.
  • व्हर्बोसिटी बायस (Verbosity bias): उत्तरे स्पष्ट नसली तरीही न्यायाधीश लांब उत्तरांना जास्त महत्त्व देतात.
  • सेल्फ-एनहान्समेंट बायस (Self-enhancement bias): मॉडेल्स त्यांच्या स्वतःच्या फॅमिलीमधील मजकुराला पसंती देतात. आउटपुट तपासण्यासाठी वेगवेगळ्या मॉडेल फॅमिलीचा वापर करा.

रिअल-टाइम मॉनिटरिंगसाठी, खालील गोष्टी तपासण्यासाठी RAG Triad वापरा:

  • फेथफुलनेस (Faithfulness): उत्तर संदर्भाला (context) धरून आहे का?
  • उत्तर प्रासंगिकता (Answer relevance): ते प्रश्नाचे उत्तर देते का?
  • संदर्भ प्रासंगिकता (Context relevance): सिस्टमने योग्य कागदपत्रे (documents) मिळवली आहेत का?

मॉडेलची गुणवत्ता ही एक स्थिर गोष्ट आहे असे मानणे थांबवा. तिला लेटन्सी (latency) किंवा एरर रेट्सप्रमाणे (error rates) हाताळा. ती बदलत राहते. जेव्हा ती चांगली राहणे थांबवते, तेव्हा ते ओळखणे हे तुमचे काम आहे.

लहान सुरुवात करा. २० गोल्डन उदाहरणे लिहा. तुमच्या डिप्लॉयमेंटला (deploys) नियंत्रित करण्यासाठी त्यांचा वापर करा. नंतर स्वस्त प्रोडक्शन ह्युरिस्टिक्स (production heuristics) जोडा.

ज्या टीम्स शांतपणे झोपू शकतात, त्यांच्याकडे सर्वात स्मार्ट मॉडेल्स आहेत असे नाही. तर, त्यांचे मॉडेल मूर्ख झाले तर त्यांना एका तासाच्या आत समजते, अशा टीम्स शांतपणे झोपू शकतात.

Source: https://dev.to/nazar_boyko/evaluating-llm-output-quality-in-production-39an

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