युनिट 7 / 11

बॅच आणि असिंक्रोनस वर्कलोड्स

नफा:

  • बॅच प्रक्रिया कोणत्या वर्कलोडसाठी योग्य आहे हे निर्धारित करते
  • सिंक्रोनस, एसिंक्रोनस आणि बॅच प्रोसेसिंगमधील खर्च/लेटन्सी ट्रेडऑफ समजते
  • परिणामांशी custom_id जुळणारा मजबूत बॅच वर्कफ्लो डिझाइन करतो

बहुतेक LLM एकत्रीकरण "लाइव्ह" परिस्थितींवर लक्ष केंद्रित करतात जेथे वापरकर्ता स्क्रीनसमोर प्रतिसादाची वाट पाहत असतो. परंतु बहुतेक व्यावसायिक वर्कलोड्स प्रत्यक्षात लाइव्ह नसतात: हजारो दस्तऐवज रात्रभर टॅग करणे, संपूर्ण डेटासेटचा सारांश देणे, संग्रहणातील संपूर्ण कॉल रेकॉर्डिंगचे वर्गीकरण करणे. या प्रकरणांमध्ये, कोणालाही त्वरित उत्तराची अपेक्षा नाही; महत्त्वाची गोष्ट म्हणजे काम स्वस्त आणि विश्वासार्हतेने पूर्ण करणे. बॅच या वर्कलोड्ससाठी नक्की आहे. या युनिटमध्ये, तुम्ही सिंक्रोनस, एसिंक्रोनस आणि बॅच प्रोसेसिंगमधील फरक शिकाल, जेव्हा बॅच ही योग्य निवड असते आणि एक मजबूत प्रवाह जो आत्मविश्वासाने custom_id आणि परिणामांशी जुळतो.

तीन कार्यरत मोड

मोड

ते कसे कार्य करते

विलंब

ठराविक खर्च

योग्य नोकरी

समकालिक

तुम्ही विनंती करा आणि प्रतिसादाची प्रतीक्षा करा

सेकंद

मानक

थेट चॅट, झटपट सहाय्यक

असिंक्रोनस

तुम्ही काम रांगेत लावा आणि ते पूर्ण झाल्यावर सूचना मिळेल.

सेकंद-मिनिटे

मानक

पार्श्वभूमी कार्ये, ऑटोमेशन चरण

बॅच

एका पॅकेजमध्ये हजारो विनंत्या पाठवते, त्यानंतर परिणाम मिळतात

मिनिटे-तास

सहसा सूट दिली जाते

उच्च-खंड, विलंब-सहिष्णु नोकऱ्या

बॅच प्रोसेसिंग अशी आहे: तुम्ही प्रदात्याला एकल "नोकरी" म्हणून शेकडो/हजारो विनंत्या पाठवता; प्रदाता त्यांच्या स्वतःच्या गतीने प्रक्रिया करतो आणि पूर्ण झाल्यावर सर्व परिणाम मोठ्या प्रमाणात परत करतो. त्या बदल्यात तुम्हाला दोन गोष्टी मिळतात: (1) साधारणपणे कमी युनिटची किंमत, (2) वेग मर्यादांचा सामना न करता उच्च आवाज हलवण्याची क्षमता. किंमत अशी आहे की परिणाम त्वरित येत नाहीत, परंतु काही काळानंतर.

बॅच कधी करायची, कधी नाही?

निर्णय एका प्रश्नावर येतो: वापरकर्ता आता निकालाची वाट पाहत आहे का?

  • नाही, मी ते धरू शकतो → बॅच उमेदवार. नाईट टॅगिंग, बॅच सारांश, संग्रहण वर्गीकरण, डेटा समृद्धी, मूल्यांकन (इव्हल) अंमलबजावणी.
  • होय, स्क्रीनवर प्रतीक्षा करत आहे → समक्रमण. थेट चॅट, त्वरित सल्ला, फॉर्म भरताना मदत.
टीप: एकाच उत्पादनामध्ये दोन मोड एकत्र असू शकतात. वापरकर्ता थेट चॅटमध्ये समकालिकपणे कार्य करतो; रात्री, तुम्ही त्या दिवशीचे सर्व संभाषण गुणवत्तेच्या विश्लेषणासाठी बॅचला देता. "सामूहिक गरज" पासून "जिवंत गरज" वेगळे करणे हा वास्तुशास्त्राचा पहिला निर्णय आहे.

मजबूत बॅच फ्लोचे शरीरशास्त्र

बॅच प्रक्रियेचा सर्वात महत्वाचा तांत्रिक नियम म्हणजे निकाल जुळणे.

  1. प्रत्येक विनंतीला एक अद्वितीय `कस्टम_आयडी` द्या. हा तुमचा व्युत्पन्न केलेला आयडी आहे जो विनंती ओळखतो (उदा. बीजक-2026-07-18-000431).
  2. नोकरी सबमिट करा. सर्व विनंत्या एकाच पॅकेजमध्ये जातात; प्रत्येकाचा स्वतःचा कस्टम_आयडी.
  3. परिस्थितीचे सर्वेक्षण करा. काम "पूर्ण" होईपर्यंत तुम्ही अंतराने स्थिती विचारता.
  4. निकाल `कस्टम_आयडी` सह जुळवा. सबमिशन ऑर्डरपेक्षा वेगळ्या क्रमाने परिणाम परत केले जाऊ शकतात; त्यामुळे स्थितीनुसार कधीही जुळत नाही, परंतु प्रत्येक निकाल कस्टम_आयडीनुसार असतो.
  5. प्रत्येक निकालाचा प्रकार तपासा. एक विनंती यशस्वी होऊ शकते, एक अयशस्वी होऊ शकते, एक कालबाह्य होऊ शकते. यश/अपयशावर आधारित प्रक्रिया.

{ "विनंती": [ { "custom_id": "invoice-000431", "params": { "model": "claude-haiku-4-5", "max_tokens": 128, "system": "क्लासिफिक इनव्हॉइस. फक्त JSON परत करा.", "messages": "": "{usroenter": "{{invoice_text}}" }] } }, { "custom_id": "invoice-000432", "params": { "model": "claude-haiku-4-5", "max_tokens": 128, "system": "क्लासिफाइड इनव्हॉइस. "फक्त रिटर्न: "JSON:", "JSONsroages." "सामग्री": "{{invoice_text_2}}" }] } } ]}

खबरदारी: सबमिशन ऑर्डरवर आधारित निकाल जुळणे ही बॅचिंगमधील पहिली चूक आहे. रांग जतन केलेली नाही. कस्टम_आयडी शिवाय तुम्हाला कोणता परिणाम कोणत्या दस्तऐवजाचा आहे हे आत्मविश्वासाने कळू शकत नाही — चुकीच्या जुळणीमुळे शांतपणे चुकीचा डेटा येतो.

कॉपी करण्यायोग्य टेम्पलेट्स

# कस्टम_आयडी जनरेशन नियम (युनिक आणि शोधण्यायोग्य) स्वरूप: <isture>-<date>-<sequence>. उदाहरण: request-20260718-000431 नियम: कामात कधीही पुनरावृत्ती करू नका; त्यात रिसोर्स रेकॉर्ड आयडी एम्बेड करा.

# बॅच जॉब कार्ड (शेड्युलिंग टेम्प्लेट) नोकरीचे नाव: ............. रेकॉर्डची संख्या: ............. मॉडेल: ............. (साधे काम → जलद मॉडेल) प्रति विनंती कमाल_टोकन्स: ............. अपेक्षित वितरण वेळ सहनशीलता: .. तास परिणाम जुळणारी की: custom_id त्रुटीच्या बाबतीत: पुन्हा प्रयत्न करा / रांग / अहवाल

# बॅचमध्ये एकल विनंती प्रॉम्प्ट (लहान आणि योजनाबद्ध) या दस्तऐवजाचे वर्गीकरण करा. फक्त हे JSON परत करा, टिप्पणी करून:{"category":"...","urgency":"low|medium|high"}दस्तऐवज: """{{document}}"""

# प्रत्येक निकालासाठी परिणाम प्रक्रिया स्यूडो-कोड: if result.status == "यशस्वी": रेकॉर्ड = find(custom_id) save(record, result.output) अन्यथा: add_to_fail(custom_id, result.error) # नंतर पुन्हा प्रयत्न करा

कमकुवत प्रॉम्प्ट / मजबूत प्रॉम्प्ट (बॅच जॉब डिझाइन)

# कमकुवत (नाजूक डिझाइन) मजबूत मॉडेलसह 10,000 कागदपत्रे क्रमाने पाठवा, परत आलेले निकाल ते आल्याच्या क्रमाने जतन करा.

# मजबूत (टिकाऊ डिझाइन) एका बॅचमध्ये 10,000 कागदपत्रे एका वेगवान मॉडेलसह पाठवा. प्रत्येक दस्तऐवजाला एक अद्वितीय कस्टम_आयडी द्या ज्यामध्ये स्त्रोत-रेकॉर्ड आयडी असेल. custom_id सह निकाल जुळवा; अयशस्वी झालेल्यांना रांग लावा आणि पुन्हा प्रयत्न करा. रात्रीच्या खिडकीत धावा; वितरण सहनशीलता 6 तास.

शक्तिशाली आवृत्ती; हे मॉडेल निवड, जुळणारी की, त्रुटी हाताळणे आणि वेळ पूर्व-परिभाषित करते. हजारो रेकॉर्डवर सुरक्षितपणे प्रक्रिया करण्यात हा फरक आहे.

तीन मिनी केसेस

केस 1 - नाईट टॅगिंग. ई-कॉमर्स टीम 200,000 उत्पादन पुनरावलोकने भावना टॅगमध्ये वर्गीकृत करेल. लाइव्ह सिंक्रोनस स्ट्रीमिंग वेग मर्यादेच्या अधीन होते आणि ते महाग होते. जलद मॉडेलसह बॅच म्हणून त्यांनी रात्री काम केले; युनिटची किंमत कमी झाली, संपूर्ण संच सकाळी तयार झाला आणि वेगमर्यादेची कोणतीही समस्या नव्हती.

केस 2 - ऑर्डर गोंधळ. संशोधन कार्यसंघाच्या तुकडीने 5,000 लेखांचे ॲब्स्ट्रॅक्ट केले, परंतु ते आले त्या क्रमाने फायलींमध्ये निकाल लिहिले. परिणाम वेगळ्या क्रमाने परत केल्यामुळे, 5,000 गोषवारापैकी अंदाजे 900 चुकीच्या लेखाशी जोडलेले होते. त्यांनी ते custom_id वर रीमॅप केले; समस्या सोडवली आणि हा अनुभव कायमचा नियम बनला: "बॅचमध्ये नेहमी कस्टम_आयडी."

केस 3 - चुकीच्या मोडमध्ये लाइव्ह स्टँडबाय. एका समर्थन कार्यसंघाने वापरकर्त्याला स्क्रीनवर अपेक्षित थेट प्रतिसाद देण्याचा प्रयत्न केला; काही मिनिटांनंतर निकाल आल्याने वापरकर्त्यांनी सोडून दिले. बॅचमध्ये फक्त रात्रीचे गुणवत्तेचे विश्लेषण सोडून त्यांनी थेट जॉब पुन्हा सिंक्रोनाइझेशनवर हलवले. धडा: बॅच थेट स्टँडबायसाठी नाही.

सामान्य चुका

  • स्थितीनुसार जुळणारे परिणाम: ऑर्डर जतन केलेली नाही; custom_id वापरा.
  • थेट जॉब बॅचमध्ये हस्तांतरित करणे: वापरकर्ता मिनिटे प्रतीक्षा करू शकत नाही; बॅच विलंब सहन करणाऱ्या नोकऱ्यांसाठी आहे.
  • त्रुटी प्रकरणे हाताळत नाही: काही विनंत्या अयशस्वी/कालबाह्य परत येऊ शकतात; वेगळ्या रांगेत ठेवा आणि पुन्हा प्रयत्न करा.
  • बॅचमध्ये मजबूत मॉडेल वापर प्रतिक्षेप: जलद मॉडेल + बॅच हे साध्या नोकऱ्यांमध्ये सर्वात स्वस्त संयोजन आहे.
  • कस्टम_आयडी शोधण्यायोग्य बनवत नाही: आयडीमध्ये कोणतेही स्त्रोत रेकॉर्ड एम्बेड केलेले नसल्यास, निकाल परत जोडणे कठीण होते.
  • परिस्थितीचे परीक्षण करण्यास विसरणे: काम पूर्ण होण्यापूर्वी परिणामांची अपेक्षा करणे; पूर्ण स्थिती तपासा.

सखोल: बॅचचे निरीक्षण करणे आणि आंशिक अपयशाचे व्यवस्थापन करणे

बॅच प्रक्रियेचा सर्वात परिपक्व पैलू असा आहे की वैयक्तिक कॉलपेक्षा वेगळी मानसिकता आवश्यक आहे: बॅच जॉब ही "प्रक्रिया" आहे, "इव्हेंट" नाही. हजारो विनंत्या सर्व यशस्वी होतील असे गृहीत धरणे नाजूक आहे; वास्तववादी डिझाइन सुरुवातीपासूनच आंशिक अपयश स्वीकारते. प्रत्येक निकालाची स्थिती वेगळी असू शकते: यशस्वी, अयशस्वी (उदा. अवैध इनपुट), रद्द किंवा कालबाह्य. एक मजबूत प्रवाह प्रत्येक निकालाच्या स्थितीवर स्वतंत्रपणे प्रक्रिया करतो कारण तो त्यातून प्रवास करतो, अपयशांना वेगळ्या "पुन्हा प्रयत्न रांगेत" ठेवतो आणि ती रांग स्वतंत्रपणे चालवतो.

दुसरा सराव म्हणजे इडम्पोटेन्सीसाठी डिझाइन करणे (एकच काम दोनदा चालवल्याने कोणतेही नुकसान होत नाही). जर एखाद्या बॅचमध्ये व्यत्यय आला आणि तुम्ही तो रीस्टार्ट केला, तर तुम्ही आधीच प्रक्रिया केलेल्या रेकॉर्डच्या दुप्पट पुनर्प्रक्रिया करून लिहू नये. कस्टम_आयडीला तुमच्या स्त्रोत रेकॉर्डवर बंधनकारक करणे येथे देखील कार्य करते: "या रेकॉर्डवर आधीच प्रक्रिया केली गेली आहे का?" निकाल जतन करण्यापूर्वी. तपासणी दुहेरी टायपिंग प्रतिबंधित करते.

तिसरा मुद्दा म्हणजे बॅचसह थेट प्रवाहांना धक्का देणे. काही नोकऱ्यांमध्ये थेट आणि बॅच दोन्ही परिमाणे असतात: जेव्हा वापरकर्ता दस्तऐवज लोड करतो, तेव्हा तुम्ही त्यांना एक द्रुत प्राथमिक सारांश (सिंक्रोनस) देता आणि रात्रीच्या वेळी (बॅच) सखोल विश्लेषणासाठी समान दस्तऐवज पुन्हा प्रक्रिया करता. जाणीवपूर्वक दोन मोड वेगळे केल्याने वापरकर्ता अनुभव आणि खर्च दोन्ही अनुकूल होतात.

शेवटी, बॅचिंग हा वेग मर्यादा (युनिट 8) हाताळण्याचा एक मार्ग आहे. लाइव्ह सिंक्रोनस फ्लोमध्ये उच्च व्हॉल्यूम पाठवल्याने स्थिर 429 उत्पन्न होते, त्याच व्हॉल्यूम बॅच ट्रान्सफरला पाठवल्याने प्रदात्याच्या स्वतःच्या शेड्यूलिंगवर दबाव मर्यादित होतो आणि काम अधिक अंदाज लावता येते.

सारांशात

बॅच प्रोसेसिंग हे सामान्यतः विलंब-सहिष्णु आणि उच्च-वॉल्यूम वर्कलोडसाठी एक स्वस्त आणि अधिक मजबूत मोड आहे. त्याचा निर्णय होता "वापरकर्ता आता निकालाची वाट पाहत आहे का?" प्रश्न निश्चित करते. सर्वात गंभीर तांत्रिक नियम म्हणजे प्रत्येक विनंतीला एक अद्वितीय कस्टम_आयडी देणे, स्थानाऐवजी आयडीनुसार निकाल जुळवणे आणि प्रत्येक निकालाचे यश/अपयश स्वतंत्रपणे हाताळणे.

अर्ज कार्य

उच्च-वॉल्यूम जॉब निवडा (उदा. संग्रहण वर्गीकरण). (1) हे कार्य थेट आहे की सामूहिक आहे हे ठरवा आणि त्याचे समर्थन करा. (२) कस्टम_आयडी फॉरमॅट डिझाइन करा (संसाधन रेकॉर्ड समाविष्ट करा). (३) बॅच जॉब कार्ड (मॉडेल, कमाल_टोकन्स, सहिष्णुता, त्रुटी धोरण) भरा. (4) अयशस्वी विनंत्या समाविष्ट करण्यासाठी परिणाम प्रक्रिया स्यूडोकोड लिहा.

चेकलिस्ट

  • [ ] मी खर्च/विलंब अक्षावर समकालिक, अतुल्यकालिक आणि बॅच मोडमध्ये फरक करू शकतो.
  • योग्य प्रश्न विचारून मी नोकरी बॅचसाठी योग्य आहे की नाही हे ठरवू शकतो.
  • [ ] मी प्रत्येक विनंतीला एक अद्वितीय कस्टम_आयडी देतो आणि आयडीनुसार परिणाम जुळवतो.
  • [] मी अयशस्वी/कालबाह्य झालेले निकाल स्वतंत्रपणे हाताळू शकतो.
  • [ ] साध्या बॅच जॉबमध्ये जलद मॉडेल निवडण्याचे फायदे मला माहीत आहेत.