लाभ:
- यह निर्धारित करता है कि बैच प्रोसेसिंग किस कार्यभार के लिए उपयुक्त है
- सिंक्रोनस, एसिंक्रोनस और बैच प्रोसेसिंग के बीच लागत/विलंबता ट्रेडऑफ़ को समझता है
- एक मजबूत बैच वर्कफ़्लो डिज़ाइन करता है जो कस्टम_आईडी से परिणामों से मेल खाता है
अधिकांश एलएलएम एकीकरण "लाइव" परिदृश्यों पर ध्यान केंद्रित करते हैं जहां एक उपयोगकर्ता स्क्रीन के सामने प्रतिक्रिया की प्रतीक्षा कर रहा है। लेकिन अधिकांश पेशेवर कार्यभार वास्तव में लाइव नहीं होते हैं: रातोंरात हजारों दस्तावेज़ों को टैग करना, संपूर्ण डेटासेट का सारांश बनाना, संग्रह में संपूर्ण कॉल रिकॉर्डिंग को वर्गीकृत करना। इन मामलों में, कोई भी तुरंत उत्तर की उम्मीद नहीं करता है; महत्वपूर्ण बात यह है कि काम को सस्ते में और विश्वसनीय तरीके से पूरा किया जाए। बैच बिल्कुल इन कार्यभारों के लिए है। इस इकाई में, आप सिंक्रोनस, एसिंक्रोनस और बैच प्रोसेसिंग के बीच अंतर सीखेंगे, जब बैच सही विकल्प है, और एक मजबूत प्रवाह जो आत्मविश्वास से कस्टम_आईडी और परिणामों से मेल खाता है।
तीन कार्य मोड
मोड
यह कैसे काम करता है
देरी
विशिष्ट लागत
उपयुक्त नौकरी
तुल्यकालिक
आप एक अनुरोध करें और प्रतिक्रिया की प्रतीक्षा करें
सेकंड
मानक
लाइव चैट, त्वरित सहायक
अतुल्यकालिक
आप कार्य को कतारबद्ध करते हैं और कार्य समाप्त होने पर आपको सूचित करते हैं।
सेकंड-मिनट
मानक
पृष्ठभूमि कार्य, स्वचालन चरण
बैच
एक पैकेज में हजारों अनुरोध भेजता है, फिर परिणाम प्राप्त करता है
मिनट-घंटे
आमतौर पर छूट मिलती है
उच्च मात्रा, देरी-सहिष्णु नौकरियां
बैच प्रोसेसिंग यह है: आप प्रदाता को एक ही "कार्य" के रूप में सैकड़ों/हजारों अनुरोध भेजते हैं; प्रदाता उन्हें अपनी गति से संसाधित करता है और पूरा होने पर सभी परिणाम थोक में लौटाता है। बदले में आपको दो चीजें मिलती हैं: (1) आम तौर पर कम इकाई लागत, (2) गति सीमा से निपटने के बिना उच्च मात्रा में स्थानांतरित करने की क्षमता। कीमत यह है कि नतीजे तुरंत नहीं, बल्कि कुछ समय बाद आते हैं।
कब बैच करना है, कब नहीं?
निर्णय एक प्रश्न पर आधारित है: क्या उपयोगकर्ता अब परिणाम की प्रतीक्षा कर रहा है?
- नहीं, मैं इसे पकड़ सकता हूं → बैच उम्मीदवार। रात्रि टैगिंग, बैच सारांश, संग्रह वर्गीकरण, डेटा संवर्धन, मूल्यांकन (eval) निष्पादन।
- हाँ, स्क्रीन पर प्रतीक्षा कर रहा है → सिंक। लाइव चैट, त्वरित सलाह, फॉर्म भरते समय मदद।
युक्ति: एक ही उत्पाद में दो मोड एक साथ मौजूद हो सकते हैं। उपयोगकर्ता लाइव चैट में समकालिक रूप से काम करता है; रात में, आप उस दिन की सारी बातचीत गुणवत्ता विश्लेषण के लिए बैच को देते हैं। "जीवित आवश्यकता" को "सामूहिक आवश्यकता" से अलग करना वास्तुकला का पहला निर्णय है।
मजबूत बैच प्रवाह का एनाटॉमी
बैच प्रोसेसिंग का सबसे महत्वपूर्ण तकनीकी नियम परिणाम मिलान है।
- प्रत्येक अनुरोध को एक अद्वितीय `custom_id` दें। यह आपकी जेनरेट की गई आईडी है जो अनुरोध की पहचान करती है (उदाहरण के लिए इनवॉइस-2026-07-18-000431)।
- कार्य जमा करें. सभी अनुरोध एक पैकेज में आते हैं; प्रत्येक की अपनी कस्टम_आईडी है।
- स्थिति का सर्वेक्षण करें. जब तक काम "पूरा" नहीं हो जाता तब तक आप बीच-बीच में स्थिति पूछते रहते हैं।
- परिणामों का मिलान `custom_id` से करें. परिणाम प्रस्तुत करने के आदेश से भिन्न क्रम में लौटाए जा सकते हैं; इसलिए कभी भी स्थिति के आधार पर मिलान न करें बल्कि प्रत्येक परिणाम को कस्टम_आईडी के आधार पर मिलान करें।
- प्रत्येक परिणाम के प्रकार की जाँच करें. एक अनुरोध सफल हो सकता है, एक विफल हो सकता है, एक समाप्त हो सकता है। सफलता/असफलता पर आधारित प्रक्रिया.
{ "अनुरोध": [ { "कस्टम_आईडी": "इनवॉइस-000431", "पैराम्स": { "मॉडल": "क्लाउड-हाइकु-4-5", "मैक्स_टोकेंस": 128, "सिस्टम": "इनवॉइस वर्गीकृत करें। केवल JSON लौटाएं।", "संदेश": [{ "भूमिका": "उपयोगकर्ता", "सामग्री": "{{इनवॉइस_टेक्स्ट}}" }] } }, { "custom_id": "invoice-000432", "params": { "model": "claude-haiku-4-5", "max_tokens": 128, "system": "इनवॉइस वर्गीकृत करें। केवल JSON लौटाएं।", "संदेश": [{ "भूमिका": "उपयोगकर्ता", "सामग्री": "{{invoice_text_2}}" }] } ] ]}
सावधानी: सबमिशन ऑर्डर के आधार पर परिणामों का मिलान बैचिंग में नंबर एक गलती है। कतार संरक्षित नहीं है. Custom_id के बिना आप निश्चित रूप से नहीं जान सकते कि कौन सा परिणाम किस दस्तावेज़ से संबंधित है - गलत मिलान से चुपचाप गलत डेटा बन जाता है।
कॉपी करने योग्य टेम्पलेट
# कस्टम_आईडी जनरेशन नियम (अद्वितीय और ट्रेस करने योग्य) प्रारूप: <isture>-<दिनांक>-<अनुक्रम>। उदाहरण: अनुरोध-20260718-000431नियम: काम में कभी न दोहराएं; इसमें संसाधन रिकॉर्ड आईडी एम्बेड करें।
# बैच जॉब कार्ड (शेड्यूलिंग टेम्प्लेट) कार्य का नाम: .......... रिकॉर्ड की संख्या: .......... मॉडल: .......... (सरल कार्य → तेज मॉडल) अधिकतम_टोकन प्रति अनुरोध: .......... अपेक्षित डिलीवरी समय सहनशीलता: ......... घंटे परिणाम मिलान कुंजी: कस्टम_आईडीत्रुटि के मामले में: पुनः प्रयास / कतार / रिपोर्ट
# बैच में एकल अनुरोध संकेत (संक्षिप्त और योजनाबद्ध) इस दस्तावेज़ को वर्गीकृत करें। बस यह JSON लौटाएं, टिप्पणी करते हुए:{"श्रेणी":"...","अत्यावश्यकता":"निम्न|मध्यम|उच्च"}दस्तावेज़: """{{दस्तावेज़}}"""
# प्रत्येक परिणाम के लिए परिणाम प्रसंस्करण छद्म कोड: यदि परिणाम.स्थिति == "सफलता": रिकॉर्ड = ढूंढें (कस्टम_आईडी) सहेजें (रिकॉर्ड, परिणाम.आउटपुट) अन्यथा: add_to_fail (कस्टम_आईडी, परिणाम.त्रुटि) # फिर पुनः प्रयास करें
कमजोर प्रॉम्प्ट / मजबूत प्रॉम्प्ट (बैच जॉब डिज़ाइन)
# कमजोर (नाजुक डिजाइन) मजबूत मॉडल के साथ क्रम में 10,000 दस्तावेज़ भेजें, लौटाए गए परिणामों को उनके आने के क्रम में सहेजें।
# मजबूत (टिकाऊ डिज़ाइन) तेज़ मॉडल के साथ एक बैच में 10,000 दस्तावेज़ भेजें। प्रत्येक दस्तावेज़ को स्रोत-रिकॉर्ड आईडी युक्त एक अद्वितीय कस्टम_आईडी दें। कस्टम_आईडी के साथ परिणामों का मिलान करें; असफल लोगों को कतारबद्ध करें और पुनः प्रयास करें। रात की खिड़की में चलाएँ; डिलीवरी सहनशीलता 6 घंटे।
शक्तिशाली संस्करण; यह मॉडल चयन, मिलान कुंजी, त्रुटि प्रबंधन और समय को पूर्व-निर्धारित करता है। हजारों रिकॉर्ड्स को सुरक्षित रूप से संसाधित करने में यही अंतर है।
तीन मिनी मामले
केस 1 - रात्रि टैगिंग। एक ई-कॉमर्स टीम 200,000 उत्पाद समीक्षाओं को सेंटीमेंट टैग में क्रमबद्ध करेगी। लाइव सिंक्रोनस स्ट्रीमिंग गति सीमा के अधीन थी और महंगी थी। उन्होंने एक तेज़ मॉडल के साथ एक बैच के रूप में रात में काम किया; यूनिट की लागत कम हो गई, पूरा सेट सुबह तैयार हो गया, और गति सीमा की कोई समस्या नहीं थी।
केस 2 - आदेश भ्रम। शोध दल के एक बैच ने 5,000 लेखों का सार निकाला, लेकिन परिणामों को उनके आने के क्रम में फाइलों में लिखा। क्योंकि परिणाम एक अलग क्रम में लौटाए गए थे, 5,000 सार तत्वों में से लगभग 900 गलत लेख से जुड़े थे। उन्होंने इसे कस्टम_आईडी पर रीमैप किया; समस्या हल हो गई और यह अनुभव स्थायी नियम बन गया: "बैच में हमेशा कस्टम_आईडी।"
केस 3 - गलत मोड में लाइव स्टैंडबाय। एक सहायता टीम ने बैच को स्क्रीन पर उपयोगकर्ता द्वारा अपेक्षित लाइव प्रतिक्रियाएँ देने का प्रयास किया; उपयोगकर्ताओं ने छोड़ दिया क्योंकि परिणाम कुछ मिनट बाद आये। उन्होंने बैच में केवल रात्रिकालीन गुणवत्ता विश्लेषण को छोड़कर, लाइव जॉब को सिंक्रोनाइज़ेशन में वापस ले लिया। पाठ: बैच लाइव स्टैंडबाय के लिए नहीं है।
सामान्य गलतियाँ
- स्थिति के अनुसार मिलान परिणाम: आदेश संरक्षित नहीं है; कस्टम_आईडी का प्रयोग करें.
- लाइव जॉब को बैच में स्थानांतरित करना: उपयोगकर्ता मिनटों तक इंतजार नहीं कर सकता; बैच विलंब सहनशील नौकरियों के लिए है।
- त्रुटि मामलों को संभालना नहीं: कुछ अनुरोध विफल/समाप्त हो सकते हैं; इसे एक अलग कतार में रखें और पुनः प्रयास करें।
- बैच में मजबूत मॉडल उपयोग रिफ्लेक्स: फास्ट मॉडल + बैच सरल नौकरियों में सबसे सस्ता संयोजन है।
- Custom_id को ट्रेस करने योग्य नहीं बनाना: यदि आईडी में कोई स्रोत रिकॉर्ड एम्बेडेड नहीं है, तो परिणाम को वापस लिंक करना मुश्किल हो जाता है।
- स्थिति की जांच करना भूल जाना: काम खत्म होने से पहले परिणाम की उम्मीद करना; पूर्णता की स्थिति जांचें.
गहन: मॉनिटरिंग बैच और आंशिक विफलता का प्रबंधन
बैच प्रोसेसिंग का सबसे परिपक्व पहलू यह है कि इसमें व्यक्तिगत कॉल की तुलना में एक अलग मानसिकता की आवश्यकता होती है: बैच जॉब एक "प्रक्रिया" है, न कि "घटना"। यह मान लेना कि हजारों अनुरोध सफल होंगे, नाजुक है; यथार्थवादी डिज़ाइन शुरू से ही आंशिक विफलता को स्वीकार करता है। प्रत्येक परिणाम की स्थिति भिन्न हो सकती है: सफल, विफल (जैसे अमान्य इनपुट), रद्द या समाप्त। एक मजबूत प्रवाह प्रत्येक परिणाम की स्थिति को अलग से संसाधित करता है क्योंकि यह इसके माध्यम से यात्रा करता है, विफलताओं को एक अलग "पुनः प्रयास कतार" में रखता है और उस कतार को अलग से चलाता है।
दूसरा अभ्यास निष्क्रियता के लिए डिज़ाइन करना है (कि एक ही काम को दो बार चलाने से कोई नुकसान नहीं होता है)। यदि कोई बैच बाधित हो जाता है और आप उसे पुनः आरंभ करते हैं, तो आपको पहले से संसाधित रिकॉर्ड को दोबारा संसाधित नहीं करना चाहिए और दो बार लिखना नहीं चाहिए। Custom_id को आपके स्रोत रिकॉर्ड से बाइंड करना यहां भी काम करता है: "क्या यह रिकॉर्ड पहले ही संसाधित हो चुका है?" परिणाम सहेजने से पहले. जाँच दोहरी टाइपिंग को रोकती है।
तीसरा बिंदु बैच के साथ लाइव स्ट्रीम को क्रमबद्ध करना है। कुछ नौकरियों में लाइव और बैच दोनों आयाम होते हैं: जब उपयोगकर्ता किसी दस्तावेज़ को लोड करता है, तो आप उन्हें एक त्वरित प्रारंभिक सारांश (सिंक्रोनस) देते हैं, और रात (बैच) में गहन विश्लेषण के लिए उसी दस्तावेज़ को पुन: संसाधित करते हैं। दो मोड को सचेत रूप से अलग करने से उपयोगकर्ता अनुभव और लागत दोनों का अनुकूलन होता है।
अंततः, बैचिंग भी गति सीमा (इकाई 8) से निपटने का एक तरीका है। लाइव सिंक्रोनस फ्लो में उच्च वॉल्यूम भेजने से स्थिरांक 429 उत्पन्न होता है, जबकि बैच ट्रांसफर में समान वॉल्यूम भेजने से प्रदाता के स्वयं के शेड्यूलिंग पर दबाव सीमित हो जाता है और कार्य अधिक पूर्वानुमानित हो जाता है।
सारांश
विलंबता-सहिष्णु और उच्च-मात्रा कार्यभार के लिए बैच प्रसंस्करण आम तौर पर एक सस्ता और अधिक मजबूत तरीका है। उनका निर्णय था "क्या उपयोगकर्ता अभी परिणाम की प्रतीक्षा कर रहा है?" प्रश्न निर्धारित करता है. सबसे महत्वपूर्ण तकनीकी नियम प्रत्येक अनुरोध को एक अद्वितीय कस्टम_आईडी देना, स्थान के बजाय आईडी के आधार पर परिणामों का मिलान करना और प्रत्येक परिणाम की सफलता/असफलता को अलग से समझना है।
आवेदन कार्य
एक उच्च-मात्रा वाली नौकरी चुनें (उदाहरण के लिए संग्रह वर्गीकरण)। (1) तय करें कि यह कार्य सजीव है या सामूहिक और इसका औचित्य सिद्ध करें। (2) एक कस्टम_आईडी प्रारूप डिज़ाइन करें (संसाधन रिकॉर्ड शामिल करें)। (3) बैच जॉब कार्ड (मॉडल, मैक्स_टोकन, सहनशीलता, त्रुटि नीति) भरें। (4) विफल अनुरोधों को शामिल करने के लिए परिणाम प्रसंस्करण स्यूडोकोड लिखें।
चेकलिस्ट
- [ ] मैं लागत/विलंब अक्ष पर सिंक्रोनस, एसिंक्रोनस और बैच मोड को अलग कर सकता हूं।
- [ ] मैं सही प्रश्न पूछकर यह तय कर सकता हूं कि कोई नौकरी बैच के लिए उपयुक्त है या नहीं।
- [ ] मैं प्रत्येक अनुरोध को एक अद्वितीय कस्टम_आईडी देता हूं और आईडी के आधार पर परिणामों का मिलान करता हूं।
- [ ] मैं विफल/समाप्त परिणामों को अलग से संभाल सकता हूं।
- [ ] मैं साधारण बैच की नौकरियों में तेज़ मॉडल चुनने के फ़ायदों को जानता हूँ।