- 2023 की शुरुआत में, LinkedIn ने GenAI फीचर्स का उपयोग करने वाले प्रोडक्ट पोर्टफोलियो लॉन्च करना शुरू किया
- शुरुआती GenAI प्रोडक्ट्स साधारण "prompt input, string output" से शुरू हुए और आगे चलकर context memory को सपोर्ट करने वाले conversational agent अनुभवों में विकसित हुए
- GenAI एप्लिकेशन टेक स्टैक बनाकर time-to-market और long-term leverage के बीच संतुलन बनाए रखने वाला एक दृष्टिकोण लागू किया गया
Genesis and Evolution
- सामान्य कार्यों के लिए standard mechanism देने वाला framework बनाना ज़रूरी था
- क्योंकि LinkedIn का अधिकांश online serving stack Java में प्रोग्राम किया गया था, इसलिए शुरुआत shared Java midtier से की गई
- जैसे-जैसे use cases बढ़े, यह midtier development और operations का bottleneck बन गया, इसलिए इसे कई use case-विशिष्ट Java midtier services में विभाजित किया गया
- AI engineers offline LLM-आधारित workflows, prompt engineering और evaluation के लिए Python को प्राथमिकता देते हैं
- अल्पकाल में बिखरे हुए online और offline stacks को बनाए रखते हुए, दीर्घकाल में online serving के लिए भी Python का उपयोग करने का निर्णय लिया गया
- LangChain open source project के आधार पर online serving के लिए Python framework बनाया गया
- Python पर फोकस रखते हुए core infrastructure dependencies के लिए Python support सक्षम करने वाला प्रोजेक्ट शुरू किया गया
- वर्तमान GenAI application framework, LangChain के ऊपर बना एक पतला wrapper है
Prompt प्रबंधन
- Prompt engineering, LLM को "program" करने का मुख्य mechanism है
- शुरुआत में code में manual string interpolation का उपयोग किया गया, लेकिन यह error-prone था और scale नहीं हो सकता था
- Prompt Source of Truth component पेश किया गया और Jinja template language के उपयोग को standardize किया गया
- prompt resolution library को Java से Python में फिर से लिखा गया
- conversational UI आने के साथ, बातचीत में human और AI की भूमिकाओं के लिए अधिक structure प्रदान किया गया
- अंततः OpenAI Chat Completions API पर convergence हुआ
Skills के ज़रिए task automation
- skills abstraction को GenAI applications तक विस्तारित कर task automation mechanism के रूप में उपयोग किया गया
- शुरुआत में यह LLM-friendly JSON schema का उपयोग कर LinkedIn के internal और external API को wrap करने वाले custom code से बनाया गया था
- skill की duplicate implementations, downstream skill changes, और developers द्वारा manual skill specification जैसी समस्याएँ सामने आईं
- Skill Inversion की अवधारणा लाई गई, ताकि downstream skill को define करे और calling app के सामने expose करे
- centralized skill registry service, build plugins, और dynamic LangChain tools के ज़रिए skill access, development और operations processes को सरल बनाया गया
- धीरे-धीरे सभी APIs के लिए skill abstraction तैयार करते हुए टेक स्टैक को विकसित किया जा रहा है, ताकि LLM बिना रुकावट interact कर सके
Context awareness और personalization
- क्योंकि LLM मूल रूप से stateless होते हैं, इसलिए context awareness और personalization कठिन है
- शुरुआत में Couchbase या Espresso DB को storage के रूप में इस्तेमाल किया गया और हर टीम DB setup, write/read आदि संभालती थी
- LLM context window सीमित होने के कारण semantic search (embeddings का उपयोग) और summarization की ज़रूरत पड़ी
- बातचीत की memory infrastructure बनाने के लिए LinkedIn messaging stack का उपयोग किया गया
- user-application interaction experience के आधार पर निकाली गई Experiential Memory की अवधारणा पेश की गई
- इसे GenAI application framework में integrate किया गया ताकि developers इसे सहज रूप से उपयोग कर सकें
Model inference और fine-tuning
- शुरुआत में केवल Azure OpenAI service द्वारा उपलब्ध कराए गए LLM का उपयोग किया गया
- LinkedIn-विशिष्ट कार्यों के लिए fine-tuned Llama जैसे LLM ने commercial models के बराबर या उनसे बेहतर गुणवत्ता दिखाई
- external और internal models के बीच application developer experience को transparent बनाने पर काम किया जा रहा है
- inference layer सभी LLMs के लिए OpenAI Chat Completions API expose करती है
- application framework के configuration hooks के ज़रिए on-premises और external models के बीच आसानी से स्विच किया जा सकता है
Migration
- legacy custom solutions से standardized solutions में तेज़ migration करना महत्वपूर्ण है
- Java stack और नए stack दोनों की गहरी समझ रखने वाले engineers की lean team ने migration संभाला
- incremental approach का उपयोग करके individual components को एक-एक कर migrate किया गया
- सरल और छोटे apps से शुरू करके जटिल और बड़े apps तक बढ़ा गया
- senior engineers को नए Python developers के साथ pair किया गया ताकि वे काम करते हुए Python सीख सकें
अंतिम विचार
- नया GenAI application tech stack AI-first development को अपनाता है और efficient तथा responsible तरीके से GenAI apps बनाने के लिए मज़बूत आधार तैयार करता है
- यह दुनिया भर के workforce के हर सदस्य को आर्थिक अवसर देने के विज़न को हासिल करने में महत्वपूर्ण भूमिका निभाएगा
- अभी भी हल करने के लिए कई चुनौतियाँ बाकी हैं
- जैसे-जैसे product experience की cutting edge conversational assistants से AI agents की ओर बढ़ रही है, नए capabilities और operational requirements तेज़ी से बढ़ रहे हैं। इस पर भी आगे और जानकारी साझा की जाएगी
अभी कोई टिप्पणी नहीं है.