"पहली बार जब मैंने एजेंटिक कार्य प्रवाह का निर्माण किया, तो यह जादू देखने जैसा था, अर्थात्, जब तक कि एक सरल ग्राहक पूछताछ का जवाब देने में 38 सेकंड लग गए और मुझे प्रति अनुरोध 1.12 डॉलर खर्च नहीं हुआ। जब आप एजेंटिक कार्य प्रवाहों का निर्माण शुरू करते हैं जहां स्वायत्त एजेंट बहु-स्तरीय प्रक्रियाओं पर योजना बनाते हैं और कार्य करते हैं, तो इसे दूर ले जाना आसान है। एजेंटिक कार्य प्रवाहों में मध्यम भूमि वह जगह है जहां प्रदर्शन समस्याएं और सर्वश्रेष्ठ अनुकूलन अवसर आमतौर पर दिखाई देते हैं। पिछले एक साल में, मैंने सीखा है कि इन सिस्टम को नाटकीय रूप से तेजी से और अधिक लागत प्रभावी बनाने के लिए कैसे, उनकी लचीलापन को बलिदान किए बिना, और इस पाठ्यपुस्तक को बनाने का फैसला किया। इससे पहले कि मैं अनुकूलन के बारे में बात करूं, मैं यह सुनिश्चित करना चाहता था कि आप सभी जानते हैं कि जब मैं निम्न शब्दों का उपयोग करता हूं तो मेरा क्या मतलब है: : Predetermined sequences that may or may not use an LLM altogether. Workflows : Self-directing, and they can decide which steps to take and the order in which they choose to execute. Agents : This is a hybrid where you set a general path but give the agents in your workflow the freedom to move within certain steps. Agentic Workflows इससे पहले कि मैं अनुकूलन के बारे में बात करूं, मैं यह सुनिश्चित करना चाहता था कि आप सभी जानते हैं कि जब मैं निम्न शब्दों का उपयोग करता हूं तो मेरा क्या मतलब है: कार्य प्रवाह: पूर्व निर्धारित अनुक्रम जो एक एलएलएम का उपयोग कर सकते हैं या नहीं कर सकते हैं। एजेंट: स्वयं निर्देशित, और वे तय कर सकते हैं कि किस कदम को लेना है और जिस क्रम में वे निष्पादित करना चुनते हैं। एजेंटिक कार्य प्रवाह: यह एक हाइब्रिड है जहां आप एक सामान्य पथ सेट करते हैं लेकिन अपने कार्य प्रवाह में एजेंटों को कुछ चरणों के भीतर स्थानांतरित करने की स्वतंत्रता देते हैं। Step Count के बारे में राय एजेंटिक कार्य प्रवाहों को डिजाइन करते समय हर किसी को ध्यान में रखने की जरूरत है कि प्रत्येक मॉडल कॉल लाटेनता जोड़ता है। प्रत्येक अतिरिक्त hop एक टाइम अप के लिए एक और मौका है। यहां निर्देश सरल हैं: संबंधित चरणों को एक ही prompt में जोड़ें अनावश्यक माइक्रो- निर्णयों से बचें जो एक ही मॉडल एक कदम में संभाल सकता है राउंड-ट्रिप्स को कम करने के लिए डिजाइन जब मैं एक कार्यप्रवाह डिजाइन करता हूं, तो मैं हमेशा एक एकल एजेंट से शुरू करता हूं (क्योंकि शायद हमें किसी भी कार्यप्रवाह की आवश्यकता नहीं है) और फिर इसे कुछ मापों और नियंत्रणों के खिलाफ मूल्यांकन करता हूं जो मेरे पास हैं। जहां यह विफल रहा है के आधार पर, मैं उन हिस्सों को तोड़ना शुरू करता हूं जहां मूल्यांकन स्कोर न्यूनतम मानदंडों को पूरा नहीं करते थे, और बाद में दोहराता हूं। किसी भी चीज को समायोजित करें जिसमें कोई निर्भरता नहीं है उपरोक्त बिंदु से संदर्भ उधार लेते हुए, अनुक्रमित श्रृंखलाएं लाटेशन फ्लैप भी हैं. यदि दो प्रश्नों को एक-दूसरे के आउटपुट की आवश्यकता नहीं है, तो उन्हें एक साथ चलाएं! उदाहरण के लिए, मैं एक ग्राहक सहायता एजेंट कार्य प्रवाह का अनुकरण करना चाहता था जहां मैं एक ग्राहक को उनकी ऑर्डर की स्थिति प्राप्त करने, अनुरोध की भावना का विश्लेषण करने और प्रतिक्रिया उत्पन्न करने में मदद कर सकता हूं. मैंने एक अनुक्रमिक दृष्टिकोण के साथ शुरू किया, लेकिन फिर महसूस किया कि आदेश की स्थिति प्राप्त करना और अनुरोध की भावना का विश्लेषण एक-दूसरे पर निर्भर नहीं करता है. निश्चित रूप से, वे संबंधित हो सकते हैं, लेकिन इसका मतलब यह नहीं है कि मैं लेने की कोशिश कर रहा हूं। एक बार जब मेरे पास इन दो प्रतिक्रियाएं थीं, तो मैं प्रतिक्रिया जनरेटर को पता लगाए गए आदेश की स्थिति और भावना को डाला, और जो आसानी से 12 सेकंड से 5 तक ले जाने वाले कुल समय को काट दिया। अनावश्यक मॉडल कॉल काटें हम सभी ने ऑनलाइन पोस्ट देखे हैं जो बताते हैं कि कैसे चैटजीपीटी गणित के मामले में थोड़ा डरावना हो सकता है. ठीक है, यह एक बहुत अच्छा याद दिलाता है कि ये मॉडल इसके लिए नहीं बनाए गए थे. हाँ, वे इसे 99% समय में प्राप्त कर सकते हैं, लेकिन यह भाग्य के लिए क्यों छोड़ देते हैं? इसके अलावा, अगर हम जानते हैं कि किस तरह के गणना को होने की आवश्यकता है, तो इसे केवल एक कार्य में कोड क्यों न करें जो उपयोग किया जा सकता है, इसके बजाय एक एलएलएम आंकड़ा जो अपने आप से बाहर निकलता है? यदि एक नियम, रेजिक्स, या छोटा कार्य ऐसा कर सकता है, तो एलएलएम कॉल को छोड़ दें. यह बदलाव अनावश्यक देरी को खत्म करेगा, टोकन लागत को कम करेगा, और विश्वसनीयता को एक बार में बढ़ाएगा। कार्य के लिए मॉडल को जोड़ें "हर कार्य समान नहीं बनाया जाता है" कार्य प्रबंधन और उत्पादकता का एक बुनियादी सिद्धांत है, यह पहचानते हुए कि कार्य उनकी प्रकृति, आवश्यकताओं और महत्व में भिन्न होते हैं। इसी तरह, हमें यह सुनिश्चित करने की आवश्यकता है कि हम सही मॉडल को सही कार्यों को सौंप रहे हैं। यह इन दिनों आम है कि लोग अपने एजेंटिक कार्य प्रवाह को सबसे बड़े-सबसे खराब मॉडल के साथ डिजाइन करते हैं, लेकिन यह लाटेनता की लागत पर आता है. मॉडल जितना बड़ा है, अधिक कंप्यूटर की आवश्यकता होती है, और इसलिए लाटेनता। इसके बजाय, एक कार्य प्रवाह को फिर से डिजाइन करने का तरीका सबसे छोटे से शुरू करना होगा. मेरा go-to मॉडल Llama 3.1 8B है, जो टूटे हुए कार्यों के लिए एक वफादार योद्धा साबित हुआ है. मैं अपने सभी एजेंटों को 8B मॉडल का उपयोग करके शुरू करता हूं और फिर तय करता हूं कि मुझे एक बड़ा मॉडल ढूंढने की आवश्यकता है, या यदि यह पर्याप्त सरल है, तो शायद यहां तक कि एक छोटे से मॉडल पर भी जाओ। बड़े पैमाने पर, वहाँ बहुत कुछ था एलएलएम के स्वाद प्रत्येक कार्य पर बेहतर हैं, और यह ध्यान में रखने के लिए एक और विचार है, जिस तरह की कार्य आप पूरा करने की कोशिश कर रहे हैं के आधार पर। जनजाति ज्ञान अपने Prompt के बारे में सोचें यह अब आम ज्ञान है, लेकिन जैसा कि हम हमारे मूल्यांकनों के माध्यम से जाते हैं, हम एलएलएम के परामर्श में अधिक गार्डरेल्स जोड़ने की प्रवृत्ति करते हैं. यह परामर्श को भंग करना शुरू कर देता है और, बदले में, देरी को प्रभावित करता है. प्रभावी परामर्श बनाने के लिए विभिन्न तरीके हैं जिन्हें मैं इस लेख में शामिल नहीं करूंगा, लेकिन कुछ तरीके जो मैंने अपने दौर यात्रा प्रतिक्रिया समय को कम करने के लिए इस्तेमाल किया था, स्टैटिक निर्देशों और योजनाओं के लिए परामर्श कैशिंग थे। इसमें बेहतर कैश पुनः उपयोग के लिए निर्देश के अंत में गतिशील संदर्भ जोड़ना शामिल था. स्पष्ट प्रतिक्रिया लंबाई सीमाओं को सेट करना ताकि मॉडल समय नहीं खाए, मुझे अनावश्यक जानकारी देता है. सबकुछ छिपाएं एक पिछली अनुभाग में, मैंने प्रिंट कैशिंग के बारे में बात की, लेकिन आपको कैशिंग के साथ अनुकूलन करने की कोशिश करना बंद नहीं करना चाहिए. कैशिंग केवल अंतिम उत्तरों के लिए नहीं है; यह कुछ ऐसा है जिसे लागू किया जाना चाहिए जहां भी लागू होता है. कुछ महंगे उपकरण कॉल को अनुकूलित करने की कोशिश करते समय, मैंने मध्यम और अंतिम परिणामों को कैश किया। आप आंशिक ध्यान राज्यों और, निश्चित रूप से, किसी भी सत्र विशिष्ट डेटा जैसे ग्राहक डेटा या सेंसर राज्यों के लिए KV कैश भी लागू कर सकते हैं। डिजाइन डिजाइन उन्नत भीड़ के लिए यहाँ एक है: अगले टोकन को जल्दी से अनुमान लगाने के लिए एक छोटे से "ड्राफ्ट" मॉडल का उपयोग करें और फिर एक बड़े मॉडल को सत्यापित करें या उन्हें समानांतर में सही करें। Fine-Tuning को अंतिम के लिए बचाएं - और इसे रणनीतिक रूप से करें Finetuning बहुत से लोगों ने शुरुआती दिनों में इसके बारे में बात की है, लेकिन अब, एलएलएम के कुछ नए उपयोगकर्ताओं को यह भी पता नहीं लगता है कि इसका उपयोग क्यों या कब करना है. जब आप इसे ऊपर देखते हैं, तो आप देखेंगे कि यह आपके एलएलएम को अपने डोमेन और / या अपने कार्य को और अधिक विस्तार से समझने का एक तरीका है, लेकिन यह लाटेंशन कैसे मदद करता है? खैर, यह कुछ है जो बहुत से लोग बात नहीं करते हैं, लेकिन एक कारण है कि मैं पिछले बार इस अनुकूलन के बारे में बात कर रहा हूं, और मैं थोड़ी देर में उस पर आऊंगा. जब आप एक कार्य करने के लिए एलएलएम को अच्छी तरह से समायोजित करते हैं, तो निष्कर्ष पर आवश्यक परामर्श बहुत छोटा होता है, क्योंकि अब, अधिकांश संदर्भों में, जो आप परामर्श में डालते हैं, वह आपकी अच्छी तरह से समायोजित प्रक्रिया के माध्यम से वजनों में पकाया जाता है. यह, बदले में, आपकी तत्काल लंबाई को कम करने पर ऊपर दिए गए बिंदु पर भोजन करता है और इस प्रकार, लाटेशन लाभ। नजरअंदाज न करें यह सबसे महत्वपूर्ण कदम है जिसे मैंने लाटेंशन को कम करने की कोशिश करते समय लिया है. यह ऊपर सूचीबद्ध किसी भी अनुकूलन के लिए आधार बनाता है और आपको स्पष्टता देता है कि क्या काम करता है और क्या नहीं करता है. यहां कुछ मीट्रिक हैं जिनका मैंने उपयोग किया है: Time to First Token (TTFT) का उपयोग करें प्रति सेकंड टोकन (TPS) सटीक रास्ता Cache Hit दर मल्टी-एजेंट समन्वय समय ये मीटर आपको बताते हैं कि कहां और कब अनुकूलित करना है क्योंकि उनके बिना, आप अंधा उड़ रहे हैं। नीचे की लाइन सबसे तेज़, सबसे विश्वसनीय एजेंटिक कार्यप्रणालीएं सिर्फ नहीं होती हैं. वे अविश्वसनीय कदम कटौती, स्मार्ट समानांतरण, निर्णायक कोड, मॉडल सही आकार, और कैशिंग का परिणाम हैं जहां भी यह समझ में आता है। ऐसा करें और अपने परिणामों का मूल्यांकन करें, और आपको 3-5x गति सुधार (और शायद यहां तक कि महत्वपूर्ण लागत बचत) पूरी तरह से पहुंच के भीतर हैं।