হিউম্যান-ইন-দ্য-লুপ — কোথায় ও কেন মানুষ নিয়ন্ত্রণে থাকে
এই পাঠে যা শিখবেন
- হিউম্যান-ইন-দ্য-লুপ ডিজাইনের সংজ্ঞা এবং এটি "AI সম্পূর্ণ স্বয়ংক্রিয়" ডিজাইন থেকে কীভাবে আলাদা
- কোন চারটি ফ্যাক্টর একটি সিদ্ধান্তে মানুষকে লুপে রাখার প্রয়োজনীয়তা নির্ধারণ করে
- M2-এর "ব্যবহারের প্রেক্ষাপট" (context of use) ধারণার সাথে এর সম্পর্ক
- একটি সত্যিকারের কোড দিয়ে একাধিক সিনারিওর উপর এই যুক্তি প্রয়োগ করে ফলাফল যাচাই
১ · হিউম্যান-ইন-দ্য-লুপ কী
হিউম্যান-ইন-দ্য-লুপHuman-in-the-Loop (HITL)এমন একটি সিস্টেম ডিজাইন যেখানে AI-এর সিদ্ধান্ত-প্রক্রিয়ায় একজন মানুষ সক্রিয়ভাবে যুক্ত থাকে — সিদ্ধান্ত দেখার, যাচাই করার, অনুমোদন দেওয়ার বা প্রত্যাখ্যান করার সুযোগসহ — যাতে AI একাই চূড়ান্ত ফলাফল নির্ধারণ না করে। হলো এমন একটি ডিজাইন-নীতি যেখানে AI সিস্টেম প্রস্তাব দেয়, পূর্বাভাস দেয়, বা একটি খসড়া সিদ্ধান্ত তৈরি করে — কিন্তু চূড়ান্ত পদক্ষেপ নেওয়ার আগে একজন মানুষ সেটি দেখার, প্রশ্ন করার বা বাতিল করার সুযোগ পায়। এটি "AI একা সব করবে" (fully autonomous) এবং "মানুষ একাই সব করবে" (fully manual) — এই দুই চরমের মাঝামাঝি একটি বর্ণালী।
২ · কখন মানুষকে লুপে রাখা জরুরি
প্রতিটি AI-চালিত সিদ্ধান্তে মানুষকে যুক্ত রাখা বাস্তবসম্মত নয় — একটি স্প্যাম ফিল্টার প্রতিটি ইমেইল মানুষকে দেখিয়ে অনুমোদন চাইলে সিস্টেমটি অকার্যকর হয়ে যাবে। তাই প্রশ্নটা হলো: কোন বৈশিষ্ট্যগুলো একটি সিদ্ধান্তকে এমন করে তোলে যে সেখানে মানুষের সরাসরি নিয়ন্ত্রণ থাকা জরুরি? চারটি প্রধান ফ্যাক্টর:
ভুল হলে ক্ষতি বড় — আর্থিক, স্বাস্থ্যগত, বা জীবনের ঝুঁকি জড়িত থাকলে মানুষের যাচাই জরুরি।
সিদ্ধান্তটি একবার কার্যকর হলে সহজে ফিরিয়ে নেওয়া না গেলে, আগেই একজন মানুষের চোখ পড়া দরকার।
সিদ্ধান্তটি যদি সাবজেক্টিভ, প্রেক্ষাপট-নির্ভর বা একাধিক যুক্তিসঙ্গত উত্তর থাকা টাইপের হয়, তাহলে অ্যালগরিদম একা যথেষ্ট নয়।
সিদ্ধান্তটি মানুষের অধিকার, ন্যায্যতা বা মর্যাদার সাথে জড়িত হলে দায়বদ্ধতা মানুষের কাছেই থাকা দরকার।
M2-এর L07-এ আমরা "ব্যবহারের প্রেক্ষাপট" আলোচনা করেছিলাম — ঝুঁকি (stakes), অপরিবর্তনীয়তা (reversibility) এবং সময়-চাপ (time-pressure) কীভাবে নির্ধারণ করে AI কখন ও কোথায় সরাসরি কাজ করতে পারে। হিউম্যান-ইন-দ্য-লুপ ডিজাইন সেই একই ফ্যাক্টরগুলো ব্যবহার করে একধাপ এগিয়ে জিজ্ঞাসা করে: এই প্রেক্ষাপটে সিদ্ধান্তের কোন অংশে, এবং কীভাবে, মানুষকে সরাসরি যুক্ত রাখা উচিত? L20-এ আমরা দেখব এটি একটি বাইনারি (হ্যাঁ/না) প্রশ্ন নয়, বরং একটি স্কেল।
৩ · একটি সত্যিকারের চেক — কোন সিনারিওতে মানুষ প্রয়োজন
নিচের কোডে সাতটি ভিন্ন সিনারিওর জন্য উপরের চারটি ফ্যাক্টর সেট করা আছে, এবং একটি ফাংশন সত্যিকারভাবে প্রতিটি সিনারিও পরীক্ষা করে বলে দেয় হিউম্যান-ইন-দ্য-লুপ প্রয়োজন কি না — এবং কেন।
scenarios = [
{"name": "স্প্যাম ইমেইল ফিল্টার করা",
"stakes": "low", "reversible": True, "ambiguous": False, "ethically_loaded": False},
{"name": "ঋণ আবেদন প্রত্যাখ্যান করা",
"stakes": "high", "reversible": False, "ambiguous": True, "ethically_loaded": True},
{"name": "মিউজিক রিকমেন্ডেশন দেখানো",
"stakes": "low", "reversible": True, "ambiguous": False, "ethically_loaded": False},
{"name": "মেডিকেল ডায়াগনসিস সাজেশন দেওয়া",
"stakes": "high", "reversible": False, "ambiguous": True, "ethically_loaded": True},
{"name": "টাইপোর অটোকারেক্ট সাজেশন",
"stakes": "low", "reversible": True, "ambiguous": False, "ethically_loaded": False},
{"name": "ফৌজদারি সাজা সুপারিশ করা",
"stakes": "high", "reversible": False, "ambiguous": True, "ethically_loaded": True},
{"name": "ব্যবহারকারীর পুরনো পোস্ট বাল্ক-ডিলিট করা",
"stakes": "medium", "reversible": False, "ambiguous": False, "ethically_loaded": False},
]
def requires_human_in_loop(s):
reasons = []
if s["stakes"] == "high":
reasons.append("উচ্চ-ঝুঁকি")
if not s["reversible"]:
reasons.append("অপরিবর্তনীয়")
if s["ambiguous"]:
reasons.append("অস্পষ্ট/সাবজেক্টিভ সিদ্ধান্ত")
if s["ethically_loaded"]:
reasons.append("নৈতিক-ভারযুক্ত")
return len(reasons) > 0, reasons
needs_human_count = 0
for s in scenarios:
needed, reasons = requires_human_in_loop(s)
if needed:
needs_human_count += 1
tag = "মানুষ প্রয়োজন" if needed else "সম্পূর্ণ স্বয়ংক্রিয় যথেষ্ট"
reason_text = ", ".join(reasons) if reasons else "কোনো ঝুঁকি-ফ্যাক্টর নেই"
print(f"{s['name']}: {tag} [{reason_text}]")
print(f"\nমোট {len(scenarios)}টি সিনারিওর মধ্যে {needs_human_count}টিতে হিউম্যান-ইন-দ্য-লুপ প্রয়োজন।")
হিউম্যান-ইন-দ্য-লুপ ডিজাইন মানে "AI-কে বিশ্বাস করা উচিত কি না" এই প্রশ্নের উত্তর নয় — এটি একটি ইঞ্জিনিয়ারিং সিদ্ধান্ত, যা সিদ্ধান্তের ঝুঁকি, অপরিবর্তনীয়তা, অস্পষ্টতা ও নৈতিক-ভারের উপর ভিত্তি করে নেওয়া হয়। পরের পাঠে (L20) আমরা দেখব এই "মানুষ প্রয়োজন কি না" প্রশ্নটি আসলে বাইনারি নয় — এটি একটি স্কেল, যেখানে মানুষের নিয়ন্ত্রণের পরিমাণ ধাপে ধাপে বাড়ে বা কমে।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ উপরের কোডে "পোস্ট বাল্ক-ডিলিট করা" সিনারিওতে stakes মাত্র "medium" হওয়া সত্ত্বেও কেন এটি হিউম্যান-ইন-দ্য-লুপ প্রয়োজন হিসেবে চিহ্নিত হলো?
কারণ ফাংশনটি চারটি ফ্যাক্টরকে স্বাধীনভাবে যাচাই করে — সবগুলো একসাথে "high" হতে হয় না। এখানে শুধু
"reversible: False" — অর্থাৎ কাজটি অপরিবর্তনীয় — একাই একটি reason যোগ করে দেয়, এবং
len(reasons) > 0 হওয়ায় ফলাফল True হয়ে যায়। এটি বাস্তবসম্মত: এমনকি একটি মাঝারি-ঝুঁকির
কাজও যদি ফিরিয়ে নেওয়া না যায় (যেমন ডিলিট করা ডেটা), তাহলে সেটির আগে একজন মানুষের নিশ্চিতকরণ জরুরি।
প্র ০২ একটি সিস্টেমে যদি প্রতিটি সিদ্ধান্তে মানুষকে লুপে রাখা হয় — এমনকি স্প্যাম ফিল্টারিং বা মিউজিক রিকমেন্ডেশনের মতো low-stakes কাজেও — তাহলে কী সমস্যা হতে পারে?
সিস্টেমটি ব্যবহারিকভাবে অকার্যকর হয়ে যাবে — ব্যবহারকারীকে প্রতি মুহূর্তে ছোট ছোট সিদ্ধান্ত অনুমোদন করতে হলে তার cognitive load এত বেড়ে যাবে যে সে হয় ব্যবহার বন্ধ করে দেবে, নয়তো না-ভেবেই সবকিছু "অনুমোদন" করতে শুরু করবে (যা আসলে automation bias-এর দিকে ঠেলে দেয় — M3-এ বিস্তারিত)। এটাই দেখায় কেন হিউম্যান-ইন-দ্য-লুপ একটি সিলেক্টিভ ডিজাইন সিদ্ধান্ত, সার্বজনীন নিয়ম নয়।
প্র ০৩ আপনার পরিচিত এমন একটি বাস্তব সিস্টেমের কথা ভাবুন যেখানে হিউম্যান-ইন-দ্য-লুপ থাকা উচিত ছিল কিন্তু নেই — কোন ফ্যাক্টরটি (ঝুঁকি/অপরিবর্তনীয়তা/অস্পষ্টতা/নৈতিক-ভার) সবচেয়ে প্রাসঙ্গিক মনে হয়?
নির্দিষ্ট কোনো একক সঠিক উত্তর নেই — লক্ষ্য হলো চারটি ফ্যাক্টরের ভাষায় নিজের উদাহরণটি বিশ্লেষণ করা শেখা। যেমন, একটি স্বয়ংক্রিয় কনটেন্ট-মডারেশন সিস্টেম যা কোনো রিভিউ ছাড়াই অ্যাকাউন্ট স্থায়ীভাবে ব্যান করে দেয় — সেখানে "অপরিবর্তনীয়তা" ও "অস্পষ্টতা" (কনটেন্ট আসলেই নিয়ম ভেঙেছে কি না তা প্রায়ই সাবজেক্টিভ) দুটোই প্রবলভাবে উপস্থিত।
অনুশীলন
-
চিন্তা করুন: উপরের কোডে "পোস্ট বাল্ক-ডিলিট করা" সিনারিওর
stakes-কে"medium"থেকে"high"-এ পরিবর্তন করলে চূড়ান্ত ফলাফল (মানুষ প্রয়োজন কি না) কি বদলাবে?না — চূড়ান্ত ফলাফল (True) বদলাবে না, কারণ এটি ইতিমধ্যে "অপরিবর্তনীয়" reason-এর কারণে True ছিল। তবে
reasonsতালিকায় এখন "উচ্চ-ঝুঁকি"ও যোগ হবে, তাই প্রিন্ট হওয়া reason_text-এ দুটি কারণ দেখাবে ("উচ্চ-ঝুঁকি, অপরিবর্তনীয়") একটির বদলে। -
পরীক্ষা করুন: কোড সেলে একটি নতুন সিনারিও যোগ করুন —
{"name": "থিম কালার পরিবর্তন করা", "stakes": "low", "reversible": True, "ambiguous": False, "ethically_loaded": False}— এবং Run চেপে দেখুন এটি "মানুষ প্রয়োজন" নাকি "সম্পূর্ণ স্বয়ংক্রিয় যথেষ্ট" হিসেবে চিহ্নিত হয়।এটি "সম্পূর্ণ স্বয়ংক্রিয় যথেষ্ট" হিসেবে চিহ্নিত হবে, কারণ চারটি ফ্যাক্টরের একটিও True/high নয় —
reasonsতালিকা খালি থেকে যায়, তাইlen(reasons) > 0False হয়। এটি দেখায় যে ফাংশনটি সত্যিই ইনপুটের উপর ভিত্তি করে গণনা করছে, কোনো পূর্ব-নির্ধারিত উত্তর দিচ্ছে না।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ ট্রাস্ট ক্যালিব্রেশন, এক্সপ্লেইনেবিলিটি, হিউম্যান-ইন-দ্য-লুপ ডিজাইন, কগনিটিভ লোড, অ্যাক্সেসিবিলিটি, হিউম্যান-AI টিমিং, ইউজেবিলিটি ইভালুয়েশন, ইন্ডাস্ট্রি ফ্রেমওয়ার্ক ও ক্যাপস্টোন।
- AI Ethics কোর্স সহোদর কোর্স মানব ওভারসাইট সংক্রান্ত রেগুলেটরি ও নৈতিক দায়বদ্ধতার গভীর কভারেজ — এই কোর্স সেই ভিত্তির উপর ইন্টারঅ্যাকশন-ডিজাইনের দিকটি যোগ করে।
- সব Courses দেখুন ABCL TECH C, C++, Python, Java, JavaScript, DSA, Machine Learning, Deep Learning, System Design, Cybersecurity, Cloud Computing & DevOps, এবং আরও অনেক কোর্স — সব এক জায়গায়।