পাঠ ১৯ · ৫৭-এর মধ্যে · মডিউল ৫
Home / AI Courses / Human-Centered AI / হিউম্যান-ইন-দ্য-লুপ

হিউম্যান-ইন-দ্য-লুপ — কোথায় ও কেন মানুষ নিয়ন্ত্রণে থাকে

Human-in-the-loop — where & why humans stay in control
৮ মিনিট পড়া মধ্যম · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • হিউম্যান-ইন-দ্য-লুপ ডিজাইনের সংজ্ঞা এবং এটি "AI সম্পূর্ণ স্বয়ংক্রিয়" ডিজাইন থেকে কীভাবে আলাদা
  • কোন চারটি ফ্যাক্টর একটি সিদ্ধান্তে মানুষকে লুপে রাখার প্রয়োজনীয়তা নির্ধারণ করে
  • M2-এর "ব্যবহারের প্রেক্ষাপট" (context of use) ধারণার সাথে এর সম্পর্ক
  • একটি সত্যিকারের কোড দিয়ে একাধিক সিনারিওর উপর এই যুক্তি প্রয়োগ করে ফলাফল যাচাই

১ · হিউম্যান-ইন-দ্য-লুপ কী

হিউম্যান-ইন-দ্য-লুপHuman-in-the-Loop (HITL)এমন একটি সিস্টেম ডিজাইন যেখানে AI-এর সিদ্ধান্ত-প্রক্রিয়ায় একজন মানুষ সক্রিয়ভাবে যুক্ত থাকে — সিদ্ধান্ত দেখার, যাচাই করার, অনুমোদন দেওয়ার বা প্রত্যাখ্যান করার সুযোগসহ — যাতে AI একাই চূড়ান্ত ফলাফল নির্ধারণ না করে। হলো এমন একটি ডিজাইন-নীতি যেখানে AI সিস্টেম প্রস্তাব দেয়, পূর্বাভাস দেয়, বা একটি খসড়া সিদ্ধান্ত তৈরি করে — কিন্তু চূড়ান্ত পদক্ষেপ নেওয়ার আগে একজন মানুষ সেটি দেখার, প্রশ্ন করার বা বাতিল করার সুযোগ পায়। এটি "AI একা সব করবে" (fully autonomous) এবং "মানুষ একাই সব করবে" (fully manual) — এই দুই চরমের মাঝামাঝি একটি বর্ণালী।

২ · কখন মানুষকে লুপে রাখা জরুরি

প্রতিটি AI-চালিত সিদ্ধান্তে মানুষকে যুক্ত রাখা বাস্তবসম্মত নয় — একটি স্প্যাম ফিল্টার প্রতিটি ইমেইল মানুষকে দেখিয়ে অনুমোদন চাইলে সিস্টেমটি অকার্যকর হয়ে যাবে। তাই প্রশ্নটা হলো: কোন বৈশিষ্ট্যগুলো একটি সিদ্ধান্তকে এমন করে তোলে যে সেখানে মানুষের সরাসরি নিয়ন্ত্রণ থাকা জরুরি? চারটি প্রধান ফ্যাক্টর:

উচ্চ-ঝুঁকি (High stakes)
ভুল হলে ক্ষতি বড় — আর্থিক, স্বাস্থ্যগত, বা জীবনের ঝুঁকি জড়িত থাকলে মানুষের যাচাই জরুরি।
কম-অপরিবর্তনীয়তা (Low reversibility)
সিদ্ধান্তটি একবার কার্যকর হলে সহজে ফিরিয়ে নেওয়া না গেলে, আগেই একজন মানুষের চোখ পড়া দরকার।
অস্পষ্টতা (Ambiguity)
সিদ্ধান্তটি যদি সাবজেক্টিভ, প্রেক্ষাপট-নির্ভর বা একাধিক যুক্তিসঙ্গত উত্তর থাকা টাইপের হয়, তাহলে অ্যালগরিদম একা যথেষ্ট নয়।
নৈতিক-ভার (Ethically loaded)
সিদ্ধান্তটি মানুষের অধিকার, ন্যায্যতা বা মর্যাদার সাথে জড়িত হলে দায়বদ্ধতা মানুষের কাছেই থাকা দরকার।
M2 (L07)-এর সাথে সম্পর্ক

M2-এর L07-এ আমরা "ব্যবহারের প্রেক্ষাপট" আলোচনা করেছিলাম — ঝুঁকি (stakes), অপরিবর্তনীয়তা (reversibility) এবং সময়-চাপ (time-pressure) কীভাবে নির্ধারণ করে AI কখন ও কোথায় সরাসরি কাজ করতে পারে। হিউম্যান-ইন-দ্য-লুপ ডিজাইন সেই একই ফ্যাক্টরগুলো ব্যবহার করে একধাপ এগিয়ে জিজ্ঞাসা করে: এই প্রেক্ষাপটে সিদ্ধান্তের কোন অংশে, এবং কীভাবে, মানুষকে সরাসরি যুক্ত রাখা উচিত? L20-এ আমরা দেখব এটি একটি বাইনারি (হ্যাঁ/না) প্রশ্ন নয়, বরং একটি স্কেল।

৩ · একটি সত্যিকারের চেক — কোন সিনারিওতে মানুষ প্রয়োজন

নিচের কোডে সাতটি ভিন্ন সিনারিওর জন্য উপরের চারটি ফ্যাক্টর সেট করা আছে, এবং একটি ফাংশন সত্যিকারভাবে প্রতিটি সিনারিও পরীক্ষা করে বলে দেয় হিউম্যান-ইন-দ্য-লুপ প্রয়োজন কি না — এবং কেন।

Python
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}টিতে হিউম্যান-ইন-দ্য-লুপ প্রয়োজন।")

    
কোডের ফলাফল লক্ষ্য করুন — ৭টি সিনারিওর মধ্যে ৪টিতে (ঋণ প্রত্যাখ্যান, মেডিকেল ডায়াগনসিস, ফৌজদারি সাজা সুপারিশ, এবং পোস্ট বাল্ক-ডিলিট) হিউম্যান-ইন-দ্য-লুপ প্রয়োজন বলে চিহ্নিত হয়েছে। প্রথম তিনটিতে চারটি ফ্যাক্টরই উপস্থিত, কিন্তু বাল্ক-ডিলিট সিনারিওতে শুধু একটি ফ্যাক্টর — "অপরিবর্তনীয়তা" — উপস্থিত থাকলেও সেটি একাই যথেষ্ট হয়ে যায় ফাংশনটিকে "মানুষ প্রয়োজন" বলার জন্য। এটাই মূল শিক্ষা: এই চারটি ফ্যাক্টরের যেকোনো একটি শক্তভাবে উপস্থিত থাকলেই মানুষকে লুপে রাখার যুক্তি তৈরি হয়ে যায় — সবগুলো একসাথে থাকা লাগে না।
মূল কথা · Key takeaway

হিউম্যান-ইন-দ্য-লুপ ডিজাইন মানে "AI-কে বিশ্বাস করা উচিত কি না" এই প্রশ্নের উত্তর নয় — এটি একটি ইঞ্জিনিয়ারিং সিদ্ধান্ত, যা সিদ্ধান্তের ঝুঁকি, অপরিবর্তনীয়তা, অস্পষ্টতা ও নৈতিক-ভারের উপর ভিত্তি করে নেওয়া হয়। পরের পাঠে (L20) আমরা দেখব এই "মানুষ প্রয়োজন কি না" প্রশ্নটি আসলে বাইনারি নয় — এটি একটি স্কেল, যেখানে মানুষের নিয়ন্ত্রণের পরিমাণ ধাপে ধাপে বাড়ে বা কমে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ উপরের কোডে "পোস্ট বাল্ক-ডিলিট করা" সিনারিওতে stakes মাত্র "medium" হওয়া সত্ত্বেও কেন এটি হিউম্যান-ইন-দ্য-লুপ প্রয়োজন হিসেবে চিহ্নিত হলো?

কারণ ফাংশনটি চারটি ফ্যাক্টরকে স্বাধীনভাবে যাচাই করে — সবগুলো একসাথে "high" হতে হয় না। এখানে শুধু "reversible: False" — অর্থাৎ কাজটি অপরিবর্তনীয় — একাই একটি reason যোগ করে দেয়, এবং len(reasons) > 0 হওয়ায় ফলাফল True হয়ে যায়। এটি বাস্তবসম্মত: এমনকি একটি মাঝারি-ঝুঁকির কাজও যদি ফিরিয়ে নেওয়া না যায় (যেমন ডিলিট করা ডেটা), তাহলে সেটির আগে একজন মানুষের নিশ্চিতকরণ জরুরি।

প্র ০২ একটি সিস্টেমে যদি প্রতিটি সিদ্ধান্তে মানুষকে লুপে রাখা হয় — এমনকি স্প্যাম ফিল্টারিং বা মিউজিক রিকমেন্ডেশনের মতো low-stakes কাজেও — তাহলে কী সমস্যা হতে পারে?

সিস্টেমটি ব্যবহারিকভাবে অকার্যকর হয়ে যাবে — ব্যবহারকারীকে প্রতি মুহূর্তে ছোট ছোট সিদ্ধান্ত অনুমোদন করতে হলে তার cognitive load এত বেড়ে যাবে যে সে হয় ব্যবহার বন্ধ করে দেবে, নয়তো না-ভেবেই সবকিছু "অনুমোদন" করতে শুরু করবে (যা আসলে automation bias-এর দিকে ঠেলে দেয় — M3-এ বিস্তারিত)। এটাই দেখায় কেন হিউম্যান-ইন-দ্য-লুপ একটি সিলেক্টিভ ডিজাইন সিদ্ধান্ত, সার্বজনীন নিয়ম নয়।

প্র ০৩ আপনার পরিচিত এমন একটি বাস্তব সিস্টেমের কথা ভাবুন যেখানে হিউম্যান-ইন-দ্য-লুপ থাকা উচিত ছিল কিন্তু নেই — কোন ফ্যাক্টরটি (ঝুঁকি/অপরিবর্তনীয়তা/অস্পষ্টতা/নৈতিক-ভার) সবচেয়ে প্রাসঙ্গিক মনে হয়?

নির্দিষ্ট কোনো একক সঠিক উত্তর নেই — লক্ষ্য হলো চারটি ফ্যাক্টরের ভাষায় নিজের উদাহরণটি বিশ্লেষণ করা শেখা। যেমন, একটি স্বয়ংক্রিয় কনটেন্ট-মডারেশন সিস্টেম যা কোনো রিভিউ ছাড়াই অ্যাকাউন্ট স্থায়ীভাবে ব্যান করে দেয় — সেখানে "অপরিবর্তনীয়তা" ও "অস্পষ্টতা" (কনটেন্ট আসলেই নিয়ম ভেঙেছে কি না তা প্রায়ই সাবজেক্টিভ) দুটোই প্রবলভাবে উপস্থিত।

অনুশীলন

  1. চিন্তা করুন: উপরের কোডে "পোস্ট বাল্ক-ডিলিট করা" সিনারিওর stakes-কে "medium" থেকে "high"-এ পরিবর্তন করলে চূড়ান্ত ফলাফল (মানুষ প্রয়োজন কি না) কি বদলাবে?

    না — চূড়ান্ত ফলাফল (True) বদলাবে না, কারণ এটি ইতিমধ্যে "অপরিবর্তনীয়" reason-এর কারণে True ছিল। তবে reasons তালিকায় এখন "উচ্চ-ঝুঁকি"ও যোগ হবে, তাই প্রিন্ট হওয়া reason_text-এ দুটি কারণ দেখাবে ("উচ্চ-ঝুঁকি, অপরিবর্তনীয়") একটির বদলে।

  2. পরীক্ষা করুন: কোড সেলে একটি নতুন সিনারিও যোগ করুন — {"name": "থিম কালার পরিবর্তন করা", "stakes": "low", "reversible": True, "ambiguous": False, "ethically_loaded": False} — এবং Run চেপে দেখুন এটি "মানুষ প্রয়োজন" নাকি "সম্পূর্ণ স্বয়ংক্রিয় যথেষ্ট" হিসেবে চিহ্নিত হয়।

    এটি "সম্পূর্ণ স্বয়ংক্রিয় যথেষ্ট" হিসেবে চিহ্নিত হবে, কারণ চারটি ফ্যাক্টরের একটিও True/high নয় — reasons তালিকা খালি থেকে যায়, তাই len(reasons) > 0 False হয়। এটি দেখায় যে ফাংশনটি সত্যিই ইনপুটের উপর ভিত্তি করে গণনা করছে, কোনো পূর্ব-নির্ধারিত উত্তর দিচ্ছে না।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

  • কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ ট্রাস্ট ক্যালিব্রেশন, এক্সপ্লেইনেবিলিটি, হিউম্যান-ইন-দ্য-লুপ ডিজাইন, কগনিটিভ লোড, অ্যাক্সেসিবিলিটি, হিউম্যান-AI টিমিং, ইউজেবিলিটি ইভালুয়েশন, ইন্ডাস্ট্রি ফ্রেমওয়ার্ক ও ক্যাপস্টোন।
  • AI Ethics কোর্স সহোদর কোর্স মানব ওভারসাইট সংক্রান্ত রেগুলেটরি ও নৈতিক দায়বদ্ধতার গভীর কভারেজ — এই কোর্স সেই ভিত্তির উপর ইন্টারঅ্যাকশন-ডিজাইনের দিকটি যোগ করে।
  • সব Courses দেখুন ABCL TECH C, C++, Python, Java, JavaScript, DSA, Machine Learning, Deep Learning, System Design, Cybersecurity, Cloud Computing & DevOps, এবং আরও অনেক কোর্স — সব এক জায়গায়।
আগের পাঠ
ব্যবহারকারীদের সাথে এক্সপ্লেনেশনের গুণমান যাচাই