লাভ:
- ব্যাচ প্রক্রিয়াকরণ কোন কাজের জন্য উপযুক্ত তা নির্ধারণ করে
- সিঙ্ক্রোনাস, অ্যাসিঙ্ক্রোনাস এবং ব্যাচ প্রক্রিয়াকরণের মধ্যে খরচ/লেটেন্সি ট্রেডঅফ বোঝে
- একটি শক্তিশালী ব্যাচ ওয়ার্কফ্লো ডিজাইন করে যা ফলাফলের সাথে custom_id মেলে
বেশিরভাগ এলএলএম ইন্টিগ্রেশনগুলি "লাইভ" পরিস্থিতিতে ফোকাস করে যেখানে একজন ব্যবহারকারী একটি স্ক্রিনের সামনে প্রতিক্রিয়ার জন্য অপেক্ষা করছে। কিন্তু বেশিরভাগ পেশাদার কাজের চাপ আসলে লাইভ নয়: রাতারাতি হাজার হাজার নথি ট্যাগ করা, একটি সম্পূর্ণ ডেটাসেট সংক্ষিপ্ত করা, আর্কাইভে সম্পূর্ণ কল রেকর্ডিং শ্রেণীবদ্ধ করা। এই বিষয়ে, কেউ তাত্ক্ষণিক উত্তর আশা করে না; গুরুত্বপূর্ণ জিনিসটি সস্তায় এবং নির্ভরযোগ্যভাবে কাজটি শেষ করা। ব্যাচ ঠিক এই কাজের চাপ জন্য. এই ইউনিটে, আপনি সিঙ্ক্রোনাস, অ্যাসিঙ্ক্রোনাস এবং ব্যাচ প্রক্রিয়াকরণের মধ্যে পার্থক্য শিখবেন, যখন ব্যাচ সঠিক পছন্দ হয় এবং একটি শক্তিশালী প্রবাহ যা আত্মবিশ্বাসের সাথে custom_id এবং ফলাফলের সাথে মেলে।
তিনটি কাজের মোড
মোড
এটা কিভাবে কাজ করে
বিলম্ব
সাধারণ খরচ
উপযুক্ত কাজ
সিঙ্ক্রোনাস
আপনি একটি অনুরোধ করুন এবং প্রতিক্রিয়া জন্য অপেক্ষা করুন
সেকেন্ড
স্ট্যান্ডার্ড
লাইভ চ্যাট, তাত্ক্ষণিক সহকারী
অ্যাসিঙ্ক্রোনাস
আপনি কাজটি সারিবদ্ধ করুন এবং এটি শেষ হয়ে গেলে বিজ্ঞপ্তি পাবেন।
সেকেন্ড-মিনিট
স্ট্যান্ডার্ড
পটভূমি কাজ, অটোমেশন পদক্ষেপ
ব্যাচ
এক প্যাকেজে হাজার হাজার অনুরোধ পাঠায়, তারপর ফলাফল পায়
মিনিট-ঘন্টা
সাধারণত ছাড় দেওয়া হয়
উচ্চ-ভলিউম, বিলম্ব-সহনশীল কাজ
ব্যাচ প্রক্রিয়াকরণ হল: আপনি প্রদানকারীকে একক "কাজ" হিসাবে শত শত/হাজার অনুরোধ পাঠান; প্রদানকারী তার নিজস্ব গতিতে সেগুলিকে প্রক্রিয়া করে এবং একবার সম্পূর্ণ হয়ে গেলে বাল্কে সমস্ত ফলাফল প্রদান করে৷ বিনিময়ে আপনি দুটি জিনিস পাবেন: (1) সাধারণত কম ইউনিট খরচ, (2) গতি সীমা মোকাবেলা না করে উচ্চ ভলিউম সরানোর ক্ষমতা। মূল্য হল যে ফলাফল তাত্ক্ষণিকভাবে আসে না, তবে কিছু সময় পরে।
কখন ব্যাচ করবেন, কখন নয়?
সিদ্ধান্তটি একটি প্রশ্নে নেমে আসে: ব্যবহারকারী কি এখন ফলাফলের জন্য অপেক্ষা করছেন?
- না, আমি এটা ধরে রাখতে পারি → ব্যাচের প্রার্থী। নাইট ট্যাগিং, ব্যাচ সংক্ষিপ্তকরণ, সংরক্ষণাগার শ্রেণীবিভাগ, ডেটা সমৃদ্ধকরণ, মূল্যায়ন (ইভাল) সম্পাদন।
- হ্যাঁ, স্ক্রিনে অপেক্ষা করছে → সিঙ্ক। লাইভ চ্যাট, তাত্ক্ষণিক পরামর্শ, ফর্ম পূরণ করার সময় সাহায্য।
টিপ: একই পণ্যে দুটি মোড সহাবস্থান করতে পারে। ব্যবহারকারী লাইভ চ্যাটে সিঙ্ক্রোনাসভাবে কাজ করে; রাতে, আপনি মান বিশ্লেষণের জন্য সেই দিনের সমস্ত কথোপকথন ব্যাচকে দেন। "সম্মিলিত প্রয়োজন" থেকে "জীবন্ত প্রয়োজন" আলাদা করা স্থাপত্যের প্রথম সিদ্ধান্ত।
রোবাস্ট ব্যাচ ফ্লো এর অ্যানাটমি
ব্যাচ প্রক্রিয়াকরণের সবচেয়ে গুরুত্বপূর্ণ প্রযুক্তিগত নিয়ম হল ফলাফলের মিল।
- প্রতিটি অনুরোধকে একটি অনন্য `কাস্টম_আইডি` দিন। এটি আপনার তৈরি করা আইডি যা অনুরোধটি সনাক্ত করে (যেমন ইনভয়েস-2026-07-18-000431)।
- চাকরি জমা দিন। সমস্ত অনুরোধ এক প্যাকেজে যায়; প্রত্যেকের নিজস্ব কাস্টম_আইডি সহ।
- পরিস্থিতি জরিপ করুন। কাজ "সম্পন্ন" না হওয়া পর্যন্ত আপনি বিরতিতে স্ট্যাটাস জিজ্ঞাসা করুন।
- ফলাফলগুলিকে `কাস্টম_আইডি` দিয়ে মেলান। ফলাফল জমা দেওয়ার আদেশের চেয়ে ভিন্ন ক্রমে ফেরত দেওয়া যেতে পারে; তাই কখনই অবস্থান অনুসারে মেলে না কিন্তু custom_id দ্বারা প্রতিটি ফলাফল বহন করে।
- প্রতিটি ফলাফলের ধরন পরীক্ষা করুন। একটি অনুরোধ সফল হতে পারে, একটি ব্যর্থ হতে পারে, একটি মেয়াদ শেষ হতে পারে। সাফল্য/ব্যর্থতার উপর ভিত্তি করে প্রক্রিয়া।
{ "requests": [ { "custom_id": "invoice-000431", "params": { "model": "claude-haiku-4-5", "max_tokens": 128, "system": "Classify invoice. JSON রিটার্ন করুন শুধুমাত্র।", "messages": ""content": "[{userroent": "{{invoice_text}}" }] } }, { "custom_id": "invoice-000432", "params": { "model": "claude-haiku-4-5", "max_tokens": 128, "system": "Classify invoice. "[Return's:"{JSON:" only." "সামগ্রী": "{{ চালান_টেক্সট_2}}" }] } } ]}
সতর্কতা: দাখিল আদেশের উপর ভিত্তি করে ফলাফল মেলানো ব্যাচিংয়ে এক নম্বর ভুল। সারি সংরক্ষণ করা হয় না. কাস্টম_আইডি ছাড়া আপনি আত্মবিশ্বাসের সাথে জানতে পারবেন না কোন ফলাফল কোন নথির অন্তর্গত — ভুল মিল নীরবে ভুল ডেটার দিকে নিয়ে যায়।
অনুলিপিযোগ্য টেমপ্লেট
# কাস্টম_আইডি প্রজন্মের নিয়ম (অনন্য এবং সনাক্তযোগ্য) বিন্যাস: <isture>-<date>-<sequence>। উদাহরণ: request-20260718-000431Rule: কাজের মধ্যে কখনও পুনরাবৃত্তি করবেন না; এতে রিসোর্স রেকর্ড আইডি এমবেড করুন।
# ব্যাচ জব কার্ড (শিডিউলিং টেমপ্লেট) চাকরির নাম: ............. রেকর্ডের সংখ্যা: ............. মডেল: ............. (সাধারণ কাজ → দ্রুত মডেল) সর্বোচ্চ_টোকেন প্রতি অনুরোধ: ............. প্রত্যাশিত ডেলিভারি সময় সহনশীলতা: .. ঘন্টা ফলাফলের মিল কী: কাস্টম_আইডি ত্রুটির ক্ষেত্রে: পুনরায় চেষ্টা করুন / সারি / রিপোর্ট করুন
# ব্যাচে একক অনুরোধ প্রম্পট (সংক্ষিপ্ত এবং পরিকল্পিত) এই নথিটি শ্রেণীবদ্ধ করুন। শুধু এই JSON ফেরত দিন, মন্তব্য করে:{"category":"...","urgency":"low|medium|high"}দস্তাবেজ: """{{document}}"""
# প্রতিটি ফলাফলের জন্য ফলাফল প্রক্রিয়াকরণ ছদ্ম-কোড: if result.status == "success": record = find(custom_id) save(record, result.output) অন্যথায়: add_to_fail(custom_id, result.error) # তারপর আবার চেষ্টা করুন
দুর্বল প্রম্পট / শক্তিশালী প্রম্পট (ব্যাচ কাজের নকশা)
# দুর্বল (ভঙ্গুর নকশা) শক্তিশালী মডেলের সাথে 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) ব্যর্থ অনুরোধগুলি অন্তর্ভুক্ত করতে ফলাফল প্রক্রিয়াকরণ সিউডোকোড লিখুন।
চেকলিস্ট
- [ ] আমি খরচ/বিলম্বের অক্ষে সিঙ্ক্রোনাস, অ্যাসিঙ্ক্রোনাস এবং ব্যাচ মোডগুলিকে আলাদা করতে পারি।
- [ ] আমি সঠিক প্রশ্ন জিজ্ঞাসা করে একটি চাকরি ব্যাচের জন্য উপযুক্ত কি না তা নির্ধারণ করতে পারি।
- [ ] আমি প্রতিটি অনুরোধকে একটি অনন্য কাস্টম_আইডি দিই এবং ফলাফলগুলি আইডি দ্বারা মেলে৷
- [ ] আমি আলাদাভাবে ব্যর্থ/ মেয়াদোত্তীর্ণ ফলাফল পরিচালনা করতে পারি।
- আমি সহজ ব্যাচের চাকরিতে দ্রুত মডেল বেছে নেওয়ার সুবিধা জানি।