পাঠ ১৩ · ৫৭-এর মধ্যে · মডিউল ৩
Home / AI Courses / Human-Centered AI / কেস স্টাডি

ট্রাস্ট ব্যর্থতার কেস স্টাডি

Case studies in trust failure
৮ মিনিট পড়া মধ্যম · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

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

  • মডিউল ৩-এর তত্ত্বকে কয়েকটি সাধারণ, সুপরিচিত বাস্তব-প্যাটার্নের সাথে সংযুক্ত করা
  • ওভার-ট্রাস্ট ও আন্ডার-ট্রাস্ট প্যাটার্নের কাঠামোগত মিল ও পার্থক্য চিনতে পারা
  • কেন এই প্যাটার্নগুলো ডোমেইন-নির্বিশেষে (বিমান, গাড়ি, নেভিগেশন, সফটওয়্যার টুল) বারবার ফিরে আসে
  • একটি সাধারণ শ্রেণিবিন্যাস-যুক্তি যা ভবিষ্যতে নতুন AI ফিচারে সম্ভাব্য ট্রাস্ট-ঝুঁকি আগেভাগে চিহ্নিত করতে সাহায্য করতে পারে

১ · ওভার-ট্রাস্টের সাধারণ প্যাটার্ন

নিচের উদাহরণগুলো নির্দিষ্ট কোনো ঘটনা বা কোম্পানির বর্ণনা নয় — এগুলো ট্রাস্ট ও অটোমেশন-ইন্টারঅ্যাকশন গবেষণায় ব্যাপকভাবে আলোচিত, সাধারণ, বহু-ডোমেইনে বারবার-পর্যবেক্ষিত প্যাটার্ন।

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

২ · আন্ডার-ট্রাস্টের সাধারণ প্যাটার্ন

আন্ডার-ট্রাস্ট কম আলোচিত হলেও সমান বাস্তব — একটি সত্যিকারের সহায়ক টুল ব্যবহার না করার কারণে সুবিধা হারানো।

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

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

৩ · একটি সত্যিকারের প্যাটার্ন-শনাক্তকারী

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

Python
# নিচের সংখ্যাগুলো শুধুই উদাহরণ হিসেবে ধরে নেওয়া (illustrative),
# কোনো নির্দিষ্ট বাস্তব ঘটনার প্রকৃত পরিসংখ্যান নয়
scenarios = [
    {"pattern": "অটোপাইলট মনিটরিং কমে যাওয়া (aviation-ধরনের অটোমেশন কমপ্লেসেন্সি)",
     "system_accuracy": 0.97, "human_monitoring_effort": 0.15, "human_usage_rate": 0.95},
    {"pattern": "ড্রাইভিং-অ্যাসিস্ট্যান্স লেন-কিপিং-এ অতিরিক্ত নির্ভরতা",
     "system_accuracy": 0.93, "human_monitoring_effort": 0.20, "human_usage_rate": 0.90},
    {"pattern": "GPS নেভিগেশন রুটকে প্রশ্নহীনভাবে অনুসরণ",
     "system_accuracy": 0.90, "human_monitoring_effort": 0.25, "human_usage_rate": 0.92},
    {"pattern": "বানান-সংশোধন (spell-check) সম্পূর্ণ বন্ধ রাখা",
     "system_accuracy": 0.88, "human_monitoring_effort": 0.80, "human_usage_rate": 0.20},
    {"pattern": "নতুন সিদ্ধান্ত-সহায়ক টুল বারবার ওভাররাইড করা",
     "system_accuracy": 0.85, "human_monitoring_effort": 0.85, "human_usage_rate": 0.35},
]

def classify(scenario, high_acc=0.85, low_monitor=0.30, low_usage=0.40):
    acc = scenario["system_accuracy"]
    monitor = scenario["human_monitoring_effort"]
    usage = scenario["human_usage_rate"]
    if acc >= high_acc and monitor <= low_monitor:
        return "ওভার-ট্রাস্ট"
    if acc >= high_acc and usage <= low_usage:
        return "আন্ডার-ট্রাস্ট"
    return "মোটামুটি ক্যালিব্রেটেড"

for s in scenarios:
    label = classify(s)
    print(f"{s['pattern']}")
    print(f"  accuracy={s['system_accuracy']:.2f}, monitoring={s['human_monitoring_effort']:.2f}, usage={s['human_usage_rate']:.2f} -> {label}")

    
পাঁচটি প্যাটার্নের মধ্যে প্রথম তিনটি (অটোপাইলট, ড্রাইভিং-অ্যাসিস্ট্যান্স, GPS) সবগুলোতেই সিস্টেমের অ্যাকুরেসি বেশি (≥ ০.৮৫) অথচ মনিটরিং-প্রচেষ্টা কম (≤ ০.৩০), তাই ফাংশনটি সবগুলোকে "ওভার-ট্রাস্ট" হিসেবে সঠিকভাবে চিহ্নিত করে। শেষ দুটো (স্পেল-চেক, নতুন সহায়ক টুল) — এখানে মনিটরিং-প্রচেষ্টা বেশি কিন্তু ব্যবহারের হার কম (≤ ০.৪০), তাই ফাংশনটি দুটোকেই সঠিকভাবে "আন্ডার-ট্রাস্ট" হিসেবে চিহ্নিত করে। শর্তটি সরল হলেও এটি L09–L12-এর মূল ধারণাটি সরাসরি কোডে প্রতিফলিত করে — অ্যাকুরেসি একা কিছু বলে না, এটি মনিটরিং/ব্যবহারের প্যাটার্নের সাথে তুলনা করলেই ওভার নাকি আন্ডার-ট্রাস্ট বোঝা যায়।
মূল কথা · Key takeaway

L09–L13 একসাথে দেখিয়েছে ট্রাস্ট-ব্যর্থতা কোনো এক্সোটিক সমস্যা নয় — এটি একটি সাধারণ, পুনরাবৃত্তিযোগ্য প্যাটার্ন যা যেকোনো AI-সহায়ক সিস্টেমে ঘটতে পারে, ডোমেইন যাই হোক না কেন। পরবর্তী মডিউল (M4) এই সমস্যার একটি বড় অংশের সরাসরি সমাধান নিয়ে আসে — এক্সপ্লেইনেবিলিটি: সিস্টেম যদি নিজে থেকেই তার সিদ্ধান্তের কারণ ব্যাখ্যা করতে পারে, তাহলে ব্যবহারকারীর ট্রাস্ট-আপডেট প্রক্রিয়ার জন্য অনেক বেশি সরাসরি তথ্য পাওয়া যায়।

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

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

প্র ০১ উপরের প্যাটার্নগুলোর মধ্যে কোনটিতে একটি ভুল সিদ্ধান্তের বাস্তব-জগতের খরচ সবচেয়ে বেশি, এবং সেটি কি থ্রেশহোল্ড/ইন্ডিকেটর ডিজাইনের সিদ্ধান্তকে প্রভাবিত করা উচিত?

অটোপাইলট বা ড্রাইভিং-অ্যাসিস্ট্যান্সের মতো high-stakes প্রেক্ষাপটে একটি মিসড ভুলের খরচ (নিরাপত্তা) স্পেল-চেক মিস করার খরচের (একটি বানান ভুল) চেয়ে অনেক বেশি। L10-এর আলোচনার মতোই, এটি সরাসরি বলে দেয় high-stakes প্রেক্ষাপটে ইন্ডিকেটর/থ্রেশহোল্ড অনেক বেশি রক্ষণশীল হওয়া উচিত, এমনকি তা মনিটরিং-এর সুবিধা কিছুটা কমিয়ে দিলেও (M7-এ "vulnerable users and high-stakes contexts"-এ আরও বিস্তারিত)।

প্র ০২ উপরের ক্লাসিফায়ার ফাংশনটি তিনটি মাত্র সংখ্যা দেখে সিদ্ধান্ত নেয়। বাস্তব জীবনে ট্রাস্ট-প্যাটার্ন চেনার জন্য এটি কি যথেষ্ট, নাকি এর সীমাবদ্ধতা আছে?

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

প্র ০৩ আপনার নিজের দৈনন্দিন জীবনে ব্যবহৃত একটি AI বা অটোমেশন টুল চিন্তা করুন — সেটি কি ওভার-ট্রাস্ট, নাকি আন্ডার-ট্রাস্ট, নাকি মোটামুটি ক্যালিব্রেটেড প্যাটার্নের কাছাকাছি বলে মনে হয়?

এই প্রশ্নের কোনো একক "সঠিক" উত্তর নেই — লক্ষ্য হলো উপরের তিনটি প্রশ্ন (অ্যাকুরেসি, মনিটরিং, ব্যবহার) নিজের অভিজ্ঞতায় প্রয়োগ করে দেখা। অনেকে দেখবেন তাদের ব্যবহৃত ম্যাপ/নেভিগেশন অ্যাপ, অটো-কারেক্ট, বা সাজেশন ফিচারগুলো এই তিনটি প্যাটার্নের কোনো না কোনোটির সাথে মিলে যায় — এটাই দেখায় এই মডিউলের ধারণাগুলো বিমূর্ত তত্ত্ব নয়, প্রতিদিনের ব্যবহারের সাথে সরাসরি সম্পর্কিত।

অনুশীলন

  1. চিন্তা করুন: উপরের কোডের scenarios-এর একদম শেষে একটি নতুন এন্ট্রি যোগ করুন যেখানে system_accuracy=0.60, human_monitoring_effort=0.10, human_usage_rate=0.90। classify() ফাংশন এটিকে কী হিসেবে চিহ্নিত করবে বলে মনে হয়, এবং বাস্তবে এই সংমিশ্রণটি (কম অ্যাকুরেসি + কম মনিটরিং + বেশি ব্যবহার) কী নির্দেশ করে?

    অ্যাকুরেসি (০.৬০) high_acc থ্রেশহোল্ড (০.৮৫)-এর নিচে, তাই দুটো শর্তের কোনোটিই পূরণ হবে না — ফাংশনটি একে "মোটামুটি ক্যালিব্রেটেড" হিসেবে চিহ্নিত করবে, যা এই সরল ফাংশনের একটি বাস্তব সীমাবদ্ধতা প্রকাশ করে। বাস্তবে এই সংমিশ্রণটি (কম অ্যাকুরেসি, কম মনিটরিং, বেশি ব্যবহার) আসলে সবচেয়ে বিপজ্জনক প্যাটার্নগুলোর একটি — একটি অনির্ভরযোগ্য সিস্টেম যা তবুও ব্যাপকভাবে ও বিনা-তদারকিতে ব্যবহৃত হচ্ছে। এটাই দেখায় "ওভার-ট্রাস্ট" আসলে সবসময় উচ্চ-অ্যাকুরেসির সাথে যুক্ত থাকে না — এই ফাংশনের শর্তগুলো সচেতনভাবে আরও সম্প্রসারণ করা দরকার হতে পারে।

  2. পরীক্ষা করুন: উপরের কোডে আসলে এই নতুন এন্ট্রি scenarios লিস্টে যোগ করে Run চেপে ফলাফল যাচাই করুন — আপনার অনুমান কি ঠিক ছিল?

    হ্যাঁ, কোড চালালে দেখা যাবে নতুন এন্ট্রিটি সত্যিই "মোটামুটি ক্যালিব্রেটেড" হিসেবে প্রিন্ট হয় — যদিও বাস্তবে এটি সবচেয়ে ঝুঁকিপূর্ণ প্যাটার্ন। এই গ্যাপ থেকে একটি ভালো ডিজাইন-অনুশীলন প্রশ্ন তৈরি হয়: classify() ফাংশনে কীভাবে একটি তৃতীয় শর্ত ("low accuracy কিন্তু high usage") যোগ করলে এই বিপজ্জনক প্যাটার্নটিও সঠিকভাবে ধরা পড়বে?

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

  • পরবর্তী পাঠ L14 · মডিউল ৪ কেন এক্সপ্লেইনেবিলিটি একটি UX সমস্যা, শুধু টেকনিক্যাল নয় — মডিউল ৪-এর প্রথম পাঠ, যেখানে ট্রাস্ট-ক্যালিব্রেশনের একটি প্রধান সমাধান বিস্তারিত আলোচিত হবে।
  • আগের পাঠে ফিরে যান L12 ক্যালিব্রেটেড ট্রাস্ট তৈরির ডিজাইন টেকনিক — একটি সত্যিকারের হস্তক্ষেপের before/after তুলনা।
  • কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ ট্রাস্ট ক্যালিব্রেশন, এক্সপ্লেইনেবিলিটি, হিউম্যান-ইন-দ্য-লুপ ডিজাইন, কগনিটিভ লোড, অ্যাক্সেসিবিলিটি, হিউম্যান-AI টিমিং, ইউজেবিলিটি ইভালুয়েশন, ইন্ডাস্ট্রি ফ্রেমওয়ার্ক ও ক্যাপস্টোন।
আগের পাঠ
ক্যালিব্রেটেড ট্রাস্ট তৈরির ডিজাইন টেকনিক