उत्पादन के लिए LLM को स्केल करना: एक गाइड

LLM एकीकरण के लिए API का लाभ उठाना

LLM को कोडबेस में एकीकृत करने के लिए कई विधियों का उपयोग किया जा सकता है, लेकिन उत्पादन परिनियोजन के लिए OpenAI-संगत API का उपयोग करने की अत्यधिक अनुशंसा की जाती है। यह दृष्टिकोण तेजी से विकसित हो रहे मॉडल परिदृश्य के अनुकूल होने की लचीलापन प्रदान करता है। कुछ महीने पहले अत्याधुनिक माने जाने वाले मॉडल जल्दी ही पुराने हो सकते हैं।

2022 में ChatGPT के साथ शुरू हुए AI बूम के बाद से, OpenAI का API इंटरफ़ेस LLM से एप्लिकेशन को जोड़ने के लिए एक वास्तविक मानक के रूप में उभरा है। यह मानक डेवलपर्स को उपलब्ध संसाधनों का उपयोग करके एप्लिकेशन बनाने की अनुमति देता है, जैसे कि नोटबुक पर Llama.cpp में Mistral 7B के साथ शुरुआत करना और उत्पादन परिनियोजन के लिए Mistral AI के API सर्वर पर निर्बाध रूप से संक्रमण करना। यह किसी एक मॉडल, अनुमान इंजन या API प्रदाता में बंधे रहने से बचाता है।

क्लाउड-आधारित अनुमान सेवाएं AI परिनियोजन को स्केल करने का एक पूंजीगत व्यय (capex) -अनुकूल साधन प्रदान करती हैं। ये सेवाएं हार्डवेयर प्रबंधन और मॉडल कॉन्फ़िगरेशन की आवश्यकता को समाप्त करती हैं, इसके बजाय एप्लिकेशन एकीकरण के लिए एक API प्रदान करती हैं।

प्रमुख मॉडल बिल्डरों से API पेशकशों के अलावा, AI इन्फ्रास्ट्रक्चर स्टार्टअप की बढ़ती संख्या ओपन-वेट मॉडल के लिए अनुमान-एज़-ए-सर्विस प्रदान करती है। ये प्रदाता अपने दृष्टिकोण में भिन्न हैं। कुछ, जैसे SambaNova, Cerebras और Groq, अनुमान को गति देने के लिए विशेष हार्डवेयर या अनुमानित डीकोडिंग जैसी तकनीकों का लाभ उठाते हैं, लेकिन मॉडल का एक छोटा चयन प्रदान करते हैं। अन्य, जैसे Fireworks AI, लो रैंक एडाप्टेशन (LoRA) एडेप्टर का उपयोग करके कस्टम फाइन-ट्यून मॉडल के परिनियोजन का समर्थन करते हैं। AI पारिस्थितिकी तंत्र की विविधता के लिए किसी विशिष्ट प्रदाता के प्रति प्रतिबद्ध होने से पहले पूरी तरह से शोध की आवश्यकता होती है।

ऑन-प्रिमाइसेस LLM परिनियोजन विचार

उन स्थितियों में जहां गोपनीयता, नियामक या पूर्व-मौजूदा बुनियादी ढांचे की बाधाओं (उदाहरण के लिए, किसी कंपनी ने पहले ही GPU सर्वर में निवेश कर दिया है) के कारण क्लाउड-आधारित दृष्टिकोण संभव नहीं हैं, ऑन-प्रिमाइसेस परिनियोजन आवश्यक हो जाता है। यह कई चुनौतियां पेश कर सकता है। कुछ सामान्य प्रश्न जो उत्पन्न होते हैं उनमें शामिल हैं:

  • मॉडल चयन: उपयुक्त मॉडल विशिष्ट उपयोग के मामले पर निर्भर करता है। ग्राहक सेवा चैटबॉट के लिए डिज़ाइन किए गए मॉडल की आवश्यकताएँ पुनर्प्राप्ति-संवर्धित पीढ़ी या कोड सहायक के रूप में उपयोग किए जाने वाले मॉडल से अलग होंगी। आवश्यकताओं को पूरा करने वाले मॉडल की पहचान करने के लिए API प्रदाताओं के साथ समय बिताने की अनुशंसा की जाती है।
  • हार्डवेयर आवश्यकताएँ: आवश्यक हार्डवेयर का निर्धारण करना महत्वपूर्ण है, क्योंकि GPU महंगे होते हैं और उन्हें प्राप्त करना मुश्किल हो सकता है। मॉडल स्वयं इसे चलाने के लिए आवश्यक हार्डवेयर में अंतर्दृष्टि प्रदान कर सकता है। बड़े मॉडल को अधिक हार्डवेयर की आवश्यकता होती है। न्यूनतम GPU मेमोरी का एक अनुमान पैरामीटर गणना (अरबों में) को 16-बिट परिशुद्धता पर प्रशिक्षित मॉडल के लिए 2GB से गुणा करके लगाया जा सकता है। 8-बिट मॉडल के लिए, प्रति अरब पैरामीटर 1GB की आवश्यकता होती है। परिमाणीकरण जैसी मॉडल संपीड़न तकनीकें इसे घटाकर 512MB प्रति अरब पैरामीटर कर सकती हैं। यह एक निचली सीमा है। मॉडल के अल्पकालिक स्मृति के रूप में कार्य करने वाले कुंजी-मूल्य कैश के कारण एक साथ कई उपयोगकर्ताओं को मॉडल परोसने के लिए अतिरिक्त मेमोरी की आवश्यकता होती है। Nvidia का समर्थन मैट्रिक्स विभिन्न मॉडलों को चलाने के लिए आवश्यक GPU पर मार्गदर्शन प्रदान करता है।
  • अतिरेक: मॉडल के लिए हार्डवेयर का आकार बढ़ाने के अलावा, अतिरेक पर विचार किया जाना चाहिए। एक एकल GPU नोड विफलता के लिए असुरक्षित है, इसलिए फ़ेलओवर और लोड संतुलन के लिए दो या दो से अधिक सिस्टम तैनात करना महत्वपूर्ण है।
  • परिनियोजन विधियाँ: LLM को विभिन्न विधियों का उपयोग करके उत्पादन में तैनात और परोसा जा सकता है: लोड बैलेंसर के साथ बेयर मेटल, वर्चुअल मशीन या Docker या Kubernetes में कंटेनर। Kubernetes कंटेनर निर्माण, नेटवर्किंग और लोड संतुलन को स्वचालित करके बड़े पैमाने पर परिनियोजन को सरल बनाता है।

LLM परिनियोजन के लिए Kubernetes

Kubernetes कंटेनर निर्माण, नेटवर्किंग और लोड संतुलन को स्वचालित करके बड़े पैमाने पर परिनियोजन से जुड़ी अधिकांश जटिलता को दूर करता है। कई उद्यमों ने पहले ही Kubernetes को अपना लिया है और समझते हैं। Nvidia, Hugging Face और अन्य सामान्य वर्कलोड और परिनियोजन के लिए पूर्व-कॉन्फ़िगर Nvidia अनुमान माइक्रोसर्विसेज (NIM) और Hugging Face जेनरेटिव AI सर्विसेज (HUGS) के साथ कंटेनरीकृत वातावरण का समर्थन करते हैं।

अनुमान इंजन

मॉडल चलाने के लिए विभिन्न अनुमान इंजन उपलब्ध हैं, जिनमें Ollama और Llama.cpp शामिल हैं, जो हार्डवेयर की एक विस्तृत श्रृंखला के साथ संगत हैं। मॉडल को स्केल करने के लिए, vLLM, TensorRT LLM, SGLang और PyTorch जैसी लाइब्रेरी का उपयोग अक्सर किया जाता है। यह गाइड vLLM का उपयोग करके मॉडल को तैनात करने पर केंद्रित है, क्योंकि यह लोकप्रिय मॉडलों का एक विस्तृत चयन का समर्थन करता है और Nvidia, AMD और अन्य हार्डवेयर में व्यापक समर्थन और संगतता प्रदान करता है।

Kubernetes पर्यावरण तैयार करना

GPU के साथ काम करने के लिए Kubernetes वातावरण स्थापित करने के लिए एक विशिष्ट Kubernetes सेटअप की तुलना में अतिरिक्त ड्राइवर और निर्भरताएँ आवश्यक हैं। AMD और Nvidia हार्डवेयर के लिए सेटअप प्रक्रिया अलग-अलग होगी।

यह गाइड सिंगल-नोड कॉन्फ़िगरेशन में K3S का उपयोग करता है। मूल चरण बहु-नोड वातावरण के समान हैं, लेकिन निर्भरताओं को प्रत्येक GPU वर्कर नोड पर पूरा किया जाना चाहिए, और स्टोरेज कॉन्फ़िगरेशन को समायोजन की आवश्यकता हो सकती है।

लक्ष्य उत्पादन-अनुकूल तरीके से अनुमान वर्कलोड को तैनात करने के लिए एक ठोस आधार प्रदान करना है। निम्नलिखित पूर्वापेक्षाएँ आवश्यक हैं:

  • कम से कम एक समर्थित AMD या Nvidia GPU बोर्ड के साथ एक सर्वर या वर्कस्टेशन
  • Ubuntu 24.04 LTS की एक नई स्थापना

Nvidia निर्भरताएँ

Nvidia-त्वरित K3S वातावरण स्थापित करने के लिए CUDA ड्राइवर फैब्रिक मैनेजर और हेडलेस सर्वर ड्राइवर स्थापित करने की आवश्यकता होती है। ड्राइवर समस्याओं को डीबग करने के लिए Nvidia के सर्वर उपयोगिताओं को स्थापित करें।

CUDA ड्राइवर स्थापित करने के लिए, Nvidia की वेबसाइट से अपनी GPU बोर्ड के लिए उपयुक्त ड्राइवरों का नवीनतम संस्करण डाउनलोड करें। यह सुनिश्चित करें कि आप Ubuntu 24.04 LTS के लिए डिज़ाइन किए गए ड्राइवरों का चयन करें। डाउनलोड करने के बाद, निम्नलिखित आदेशों का उपयोग करके ड्राइवर स्थापित करें: