23 पॉइंट द्वारा xguru 2023-08-28 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 7 मुख्य पैटर्नों को "प्रदर्शन सुधार बनाम लागत/जोखिम में कमी" और "डेटा-फ्रेंडली बनाम यूज़र-फ्रेंडली" के आधार पर व्यवस्थित किया गया है
    • Evals: प्रदर्शन मापन
    • RAG(Retrieval-Augmented Generation): नवीनतम, बाहरी ज्ञान जोड़ना
    • Fine-tuning: किसी विशेष कार्य को बेहतर करने के लिए
    • Caching: लेटेंसी और लागत कम करना
    • Guardrails: आउटपुट गुणवत्ता सुनिश्चित करना
    • Defensive UX: त्रुटियों का अनुमान लगाकर उन्हें प्रबंधित करने के लिए
    • Collect user feedback: डेटा flywheel बनाना

Evals: प्रदर्शन मापन

  • Evals ऐसे मापदंडों का एक सेट है जिनका उपयोग किसी कार्य में मॉडल के प्रदर्शन का आकलन करने के लिए किया जाता है
  • इसमें benchmark data और metrics शामिल होते हैं
  • इससे यह मापा जा सकता है कि सिस्टम या प्रोडक्ट कितनी अच्छी तरह काम कर रहा है, और regression का पता लगाया जा सकता है
  • language modeling क्षेत्र में कई benchmarks हैं: MMLU, EleutherAI Eval, HELM, AlpacaEval
  • metrics को दो श्रेणियों में बांटा जा सकता है: Context-dependent या Context-free
  • आम तौर पर उपयोग किए जाने वाले metrics: BLEU, ROUGE, BERTScore, MoverScore
  • आजकल का उभरता ट्रेंड यह है कि एक शक्तिशाली LLM को reference-free metric की तरह इस्तेमाल करके दूसरे LLMs के outputs का मूल्यांकन किया जाए
    • G-Eval, Vicuna paper, QLoRA

RAG(Retrieval-Augmented Generation): नवीनतम, बाहरी ज्ञान जोड़ना

  • foundation model के बाहर से जानकारी लाकर और उस डेटा से input को समृद्ध करके अधिक समृद्ध context दिया जाता है, जिससे output बेहतर होता है
  • RAG, retrieved context पर मॉडल को आधारित करके hallucination कम करने में मदद करता है, जिससे factuality बढ़ती है
  • साथ ही, LLM को लगातार pre-train करते रहने की तुलना में retrieval index को up-to-date रखना अधिक सस्ता है
  • इस cost efficiency की वजह से LLM, RAG के जरिए नवीनतम डेटा तक access कर सकता है
  • अगर biased या harmful documents जैसे डेटा को update/remove करना हो, तो retrieval index को update करना LLM को fine-tune करने की तुलना में अधिक सरल है
  • RAG के लिए पहले text embedding को समझना उपयोगी होता है
  • text embedding, किसी भी लंबाई के text को numbers के fixed-size vector के रूप में व्यक्त करने वाली text data की compressed abstract representation है
    • आमतौर पर इसे Wikipedia जैसे text corpus पर train किया जाता है
    • इसे text के लिए एक general-purpose encoding की तरह समझा जा सकता है, जहां समान items एक-दूसरे के करीब होते हैं और असमान items अधिक दूर होते हैं
  • अच्छी embeddings वे हैं जो similar item retrieval जैसे downstream tasks को अच्छी तरह कर सकें
    • Huggingface का Massive Text Embedding Benchmark (MTEB), classification, clustering, retrieval, summarization जैसे विभिन्न tasks पर models को score देता है
  • यहां मुख्य रूप से text embeddings की बात की जा रही है, लेकिन embeddings अलग-अलग modalities में भी उपयोग हो सकती हैं
  • Fusion-in-Decoder(FiD) open-domain QA के लिए generative model और retrieval को साथ में उपयोग करता है
  • Internet-augmented LMs, मौजूदा search engines का उपयोग करके LLM enhancement का प्रस्ताव रखते हैं
  • RAG लागू करने के तरीके
    • hybrid search (traditional retrieval index + embedding-based retrieval) अकेले-अकेले उपयोग से बेहतर काम करता है

Fine-tuning: किसी विशेष कार्य को बेहतर करने के लिए

  • fine-tuning वह प्रक्रिया है जिसमें एक pre-trained model (जो पहले से विशाल मात्रा के डेटा पर train किया जा चुका है) को लेकर किसी विशेष task के लिए आगे refine किया जाता है
  • इसका उद्देश्य pre-training के दौरान मॉडल द्वारा पहले से अर्जित ज्ञान का उपयोग करते हुए उसे किसी विशेष task पर लागू करना है, जिसमें आमतौर पर task-specific छोटा dataset शामिल होता है
  • fine-tuning शब्द का उपयोग अक्सर ढीले तौर पर कई अलग-अलग अवधारणाओं के लिए किया जाता है
    • continued pre-training
    • instruction fine-tuning
    • single-task fine-tuning
    • RLHF
  • fine-tuning क्यों करें?
    • प्रदर्शन और नियंत्रण:
      • off-the-shelf base model के प्रदर्शन में सुधार किया जा सकता है, और third-party LLMs को भी पीछे छोड़ा जा सकता है
      • LLM के व्यवहार पर बेहतर नियंत्रण मिलने से सिस्टम या प्रोडक्ट अधिक शक्तिशाली बनता है
      • fine-tuning के माध्यम से केवल third-party या open LLM के उपयोग से अलग एक differentiated product बनाया जा सकता है
    • modularity:
      • single-task fine-tuning के जरिए ऐसे छोटे models का समूह बनाया जा सकता है, जिनमें हर एक किसी अनोखे task में विशेषज्ञ हो
      • इस setup से सिस्टम को content moderation, extraction, summarization जैसे tasks में modularize किया जा सकता है
    • dependency कम करना:
      • अपने मॉडल को fine-tune और host करके बाहरी API पर exposed proprietary data (जैसे PII, internal documents और code) से जुड़े कानूनी मुद्दों को कम किया जा सकता है
      • साथ ही rate limits, उच्च लागत, या अत्यधिक restrictive safety filters जैसे third-party LLM constraints को भी पार किया जा सकता है
  • Generative Pre-trained Transformers (GPT; decoder only)
  • Text-to-text Transfer Transformer (T5; encoder-decoder)
  • InstructGPT
  • Soft prompt tuning & Prefix Tuning
  • Low-Rank Adaptation (LoRA) & QLoRA
  • fine-tuning लागू करने के तरीके
    • demo data/labels इकट्ठा करना
    • evaluation metrics परिभाषित करना
    • pre-trained model चुनना
    • model architecture अपडेट करना
    • fine-tuning method चुनना (LoRA, QLoRA आदि)
    • base hyperparameters tune करना

Caching: लेटेंसी और लागत कम करना

  • caching वह तकनीक है जिसमें पहले से retrieved या computed data को store किया जाता है
  • इससे उसी data के future requests को अधिक कुशलता से handle किया जा सकता है
  • LLM में, input request की embedding के लिए LLM response को cache किया जाता है, और अगली बार semantic रूप से समान request आने पर cached response दिया जाता है
    • लेकिन कुछ practitioners का कहना है कि यह "आपदा के होने का इंतज़ार" करने जैसा है। मैं भी सहमत हूं
  • caching pattern अपनाने की कुंजी यह समझना है कि केवल semantic similarity पर निर्भर रहने के बजाय सुरक्षित रूप से cache कैसे किया जाए
  • caching क्यों करें? : latency घटाने और LLM requests की संख्या कम करके लागत बचाने के लिए
  • caching को कैसे लागू करें?
    • सबसे पहले user request patterns को अच्छी तरह समझना चाहिए
    • यह भी विचार करना चाहिए कि caching usage patterns के लिए प्रभावी है या नहीं

Guardrails: आउटपुट गुणवत्ता सुनिश्चित करना

  • LLM के output को validate करके यह सुनिश्चित करना कि आउटपुट सिर्फ अच्छा दिखे ही नहीं, बल्कि syntactically सही, factually सही और harmful content से मुक्त भी हो
  • guardrails की आवश्यकता क्यों है?
    • यह सुनिश्चित करने में मदद मिलती है कि model output production में उपयोग करने लायक विश्वसनीय और consistent है
    • यह एक अतिरिक्त safety layer देता है और LLM output पर quality control बनाए रखता है
  • एक तरीका prompts के माध्यम से model response को नियंत्रित करना है
    • Anthropic ने ऐसे prompts साझा किए हैं जो मॉडल को helpful, harmless, honest (HHH) responses उत्पन्न करने की दिशा में guide करते हैं
  • अधिक सामान्य तरीका output को validate करना है (जैसे Guardrails package)
  • Nvidia का NeMo-Guardrails समान सिद्धांतों का पालन करता है, लेकिन इसे LLM-आधारित conversational systems को guide करने के लिए डिज़ाइन किया गया है
  • Microsoft की Guidance की तरह, output को सीधे किसी विशेष grammar का पालन करने के लिए भी नियंत्रित किया जा सकता है (इसे LLM के लिए DSL की तरह समझा जा सकता है)
  • guardrails लागू करने के तरीके
    • Structural guidance
    • Syntactic guardrails
    • Content safety guardrails
    • Semantic/factuality guardrails
    • Input guardrails

Defensive UX: त्रुटियों का अनुमान लगाकर उन्हें प्रबंधित करने के लिए

  • defensive UX एक design strategy है जो यह मानती है कि machine learning या LLM-आधारित product के साथ interaction के दौरान inaccuracies या hallucinations जैसी बुरी चीजें हो सकती हैं
  • इसका मुख्य लक्ष्य user behavior को guide करके, misuse को रोककर, और errors को उचित तरीके से handle करके इन स्थितियों का पहले से अनुमान लगाना और प्रबंधन करना है
  • defensive UX क्यों?
    • machine learning और LLM पूर्ण नहीं हैं। वे inaccurate results उत्पन्न कर सकते हैं
    • एक ही सवाल पर अलग-अलग तरह से प्रतिक्रिया दे सकते हैं
    • defensive UX निम्नलिखित देकर ऊपर की समस्याओं को कम करने में मदद करता है
      • accessibility में सुधार, trust में वृद्धि, Better UX
  • कंपनियों द्वारा संकलित guidelines देखें
    • Microsoft’s Guidelines for Human-AI Interaction
    • Google’s People + AI Guidebook
    • Apple’s Human Interface Guidelines for Machine Learning
  • defensive UX लागू करने के तरीके
    • सही expectations सेट करना
    • efficient dismissal को सक्षम बनाना
    • attribution प्रदान करना
    • familiarity पर anchor करना

Collect user feedback: डेटा flywheel बनाना

  • user feedback इकट्ठा करने से users की preferences समझी जा सकती हैं
  • LLM products के लिए विशिष्ट user feedback, evaluation, fine-tuning और guardrails बनाने में योगदान देता है
  • pre-training के लिए corpus, experts द्वारा बनाई गई demos, और reward modeling के लिए human preferences जैसे डेटा, LLM products की कुछ गिनी-चुनी moats में से हैं
  • feedback explicit भी हो सकता है और implicit भी
    • explicit feedback वह जानकारी है जो user, product के अनुरोध के जवाब में देता है
    • implicit feedback वह जानकारी है जो user interactions से सीखी जाती है, बिना इस आवश्यकता के कि user जानबूझकर feedback दे
  • user feedback क्यों इकट्ठा करें
    • user feedback मॉडल को बेहतर बनाने में मदद करता है
    • users को क्या पसंद है, क्या नापसंद है, या वे किस बारे में शिकायत करते हैं, यह सीखकर मॉडल को सुधारा जा सकता है ताकि उनकी जरूरतों को बेहतर तरीके से पूरा किया जा सके
    • साथ ही यह व्यक्तिगत preferences के अनुसार adapt भी कर सकता है
    • feedback loop सिस्टम के समग्र प्रदर्शन का मूल्यांकन करने में मदद करता है
  • user feedback कैसे इकट्ठा करें
    • users के लिए feedback छोड़ना आसान बनाएं: ChatGPT की तरह responses पर like/dislike विकल्प दें
    • implicit feedback पर भी विचार करें: वह जानकारी जो users के product के साथ interact करने पर उत्पन्न होती है

1 टिप्पणियां

 
xguru 2023-08-28

असल लेख में हर आइटम और algorithm/metrics के बारे में विस्तृत विवरण है, लेकिन उसे यहाँ छोड़ा गया है.
इस लेख से फ़िलहाल बस एक मोटा-सा सार देख लें और मूल लेख भी साथ में देखें।