পাঠ ০৫ · ৫৭-এর মধ্যে · মডিউল ২
Home / Courses / Ethics in Computing & AI Safety / ইউটিলিটারিয়ানিজম

ইউটিলিটারিয়ানিজম — টেক সিদ্ধান্তে কনসিকোয়েনশিয়ালিস্ট যুক্তি

Utilitarianism — consequentialist reasoning for tech decisions
৯ মিনিট পড়া শুরু · Beginner Python কোডসহ সম্পূর্ণ বাংলায়

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

  • কনসিকোয়েনশিয়ালিজম ও ইউটিলিটারিয়ানিজমের সংজ্ঞা এবং মূল যুক্তি
  • ইউটিলিটারিয়ান ক্যালকুলাস — সম্ভাবনা × মাত্রা × দিক-এর সূত্র, এবং জনসংখ্যা-ভারিত সমষ্টি
  • Python দিয়ে একটি সত্যিকারের গণনা — একটি এনগেজমেন্ট ফিচার শিপ করা বনাম না-করার প্রত্যাশিত উপযোগ তুলনা
  • ইউটিলিটারিয়ানিজমের ক্লাসিক্যাল সমালোচনা এবং তার প্রতি ইউটিলিটারিয়ানদের সম্ভাব্য জবাব

১ · কনসিকোয়েনশিয়ালিজম ও ইউটিলিটারিয়ানিজম কী

ইউটিলিটারিয়ানিজমUtilitarianismএকটি কনসিকোয়েনশিয়ালিস্ট নৈতিক তত্ত্ব যা কোনো কাজের নৈতিক মূল্যায়ন করে শুধু তার সামগ্রিক পরিণতি (সবার সুখ/ক্ষতির যোগফল) দিয়ে। হলো ঐতিহাসিকভাবে জেরেমি বেন্থাম ও জন স্টুয়ার্ট মিলের সাথে যুক্ত একটি কনসিকোয়েনশিয়ালিস্টConsequentialistএমন যেকোনো নৈতিক তত্ত্ব যেখানে একটি কাজের নৈতিক সঠিকতা সম্পূর্ণভাবে তার পরিণতির উপর নির্ভর করে — কাজটির প্রকৃতি, উদ্দেশ্য বা নিয়মের সাথে সামঞ্জস্য নয়। নৈতিক তত্ত্ব। এর মূল দাবিটি সহজ: একটি কাজ নৈতিকভাবে সঠিক কিনা তা নির্ভর করে শুধু এই প্রশ্নের উপর — এই কাজ সামগ্রিকভাবে বিশ্বকে (বা সব প্রভাবিত পক্ষকে একসাথে ধরলে) ভালো করে তোলে, নাকি খারাপ? যে কাজ সর্বোচ্চ সামগ্রিক উপযোগ (utility) তৈরি করে, সেটিই সঠিক কাজ — কাজটির অভিপ্রায়, এটি কোনো নিয়ম মানছে কিনা, বা কে এটি করছে তা এখানে সরাসরি গুরুত্বপূর্ণ নয়।

টেক সিদ্ধান্তে এই চিন্তাভাবনা খুবই স্বাভাবিকভাবে আসে — একটি প্রোডাক্ট টিম যখন জিজ্ঞেস করে "এই ফিচারটি শিপ করলে সামগ্রিকভাবে ব্যবহারকারীদের জন্য এটি কি ভালো হবে খারাপ হবে?", তখন তারা কার্যত একটি ইউটিলিটারিয়ান হিসাব করছে — প্রায়ই অগোচরেই।

২ · ইউটিলিটারিয়ান ক্যালকুলাস

একটি নির্দিষ্ট কাজের জন্য প্রত্যাশিত সামগ্রিক উপযোগ হিসাব করার একটি প্রামাণিক ফর্মুলা হলো — প্রতিটি প্রভাবিত পক্ষের জন্য তিনটি জিনিস অনুমান করা: (ক) এই পরিণতিটি ঘটার সম্ভাবনা ($P$), (খ) এর মাত্রা ($M$, কতটা তীব্র — সাধারণত ১-১০ স্কেলে), এবং (গ) এর দিক ($S$, উপকারী হলে $+1$, ক্ষতিকর হলে $-1$)। প্রতিটি গোষ্ঠীর জনসংখ্যা ($N$) দিয়ে গুণ করে সব গোষ্ঠী জুড়ে যোগ করলে মোট প্রত্যাশিত উপযোগ পাওয়া যায়:

$$U(\text{কাজ}) = \sum_{i} P_i \times M_i \times S_i \times N_i$$

এই সূত্রটি একটি একক সংখ্যা তৈরি করে যা একটি নির্দিষ্ট কাজের "মোট নেট উপযোগ" প্রতিনিধিত্ব করে — দুটি কাজের এই সংখ্যা তুলনা করলে ইউটিলিটারিয়ান দৃষ্টিতে কোনটি নৈতিকভাবে ভালো তা বলা যায়।

সম্ভাবনা (P)
পরিণতিটি আদৌ ঘটবে কিনা তার আনুমানিক সম্ভাবনা (০ থেকে ১)।
মাত্রা (M)
পরিণতিটি ঘটলে তা কতটা তীব্র/গুরুতর — একটি আনুমানিক ১-১০ স্কেলে।
দিক (S)
উপকারী হলে +১, ক্ষতিকর হলে −১।
জনসংখ্যা (N)
এই গোষ্ঠীতে ঠিক কতজন মানুষ প্রভাবিত হচ্ছেন — এখানেই "স্কেল" যুক্তি (L01) সরাসরি হিসাবে ঢুকে পড়ে।

৩ · একটি সিন্থেটিক টেক দ্বিধা — একটি এনগেজমেন্ট ফিচার শিপ করা উচিত কি?

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

Python
# একটি সম্পূর্ণ সিন্থেটিক, ইলাস্ট্রেটিভ দৃশ্যকল্প -- বাস্তব কোনো কোম্পানি বা ডেটাসেট নয়
# ইউটিলিটারিয়ান ক্যালকুলাস: U(কাজ) = sum(probability * magnitude * sign * population)

stakeholders = {
    "সাধারণ ব্যবহারকারী": 900_000,
    "কমপালসিভ-ইউজ ঝুঁকিতে থাকা সংখ্যালঘু": 100_000,
    "কোম্পানি (একক প্রাতিষ্ঠানিক স্টেকহোল্ডার)": 1,
}

# প্রতিটি কাজের জন্য, প্রতিটি গোষ্ঠীর outcome: (probability, magnitude 1-10, sign +1/-1)
actions = {
    "ship_as_is": {
        "সাধারণ ব্যবহারকারী":                       (0.85, 3, +1),
        "কমপালসিভ-ইউজ ঝুঁকিতে থাকা সংখ্যালঘু":        (0.40, 9, -1),
        "কোম্পানি (একক প্রাতিষ্ঠানিক স্টেকহোল্ডার)":   (0.95, 9, +1),
    },
    "no_ship": {
        "সাধারণ ব্যবহারকারী":                       (0.30, 1, -1),
        "কমপালসিভ-ইউজ ঝুঁকিতে থাকা সংখ্যালঘু":        (0.40, 9, +1),
        "কোম্পানি (একক প্রাতিষ্ঠানিক স্টেকহোল্ডার)":   (0.90, 2, -1),
    },
}

def utilitarian_total(action_outcomes):
    total = 0.0
    breakdown = {}
    for group, (prob, magnitude, sign) in action_outcomes.items():
        per_person = prob * magnitude * sign
        group_total = per_person * stakeholders[group]
        breakdown[group] = (per_person, group_total)
        total += group_total
    return total, breakdown

for action_name, outcomes in actions.items():
    total, breakdown = utilitarian_total(outcomes)
    print(f"=== {action_name} ===")
    for group, (per_person, group_total) in breakdown.items():
        print(f"  {group}: প্রতি ব্যক্তি প্রত্যাশিত উপযোগ {per_person:+.2f}, মোট অবদান {group_total:+,.2f}")
    print(f"  -> মোট প্রত্যাশিত উপযোগ (utilitarian aggregate): {total:+,.2f}\n")

    
Run করলে দেখা যাবে ship_as_is-এর মোট প্রত্যাশিত উপযোগ +1,935,008.55 (সাধারণ ব্যবহারকারীদের থেকে +2,295,000.00, সংখ্যালঘুর থেকে −360,000.00, কোম্পানি থেকে সামান্য +8.55), যেখানে no_ship-এর মোট মাত্র +89,998.20। সংখ্যাগুলো সম্পূর্ণ ইলাস্ট্রেটিভ — মূল বিষয় হলো ship_as_is ইউটিলিটারিয়ান হিসাবে বহুগুণ এগিয়ে, যদিও এটি সংখ্যালঘু গোষ্ঠীর প্রতি ব্যক্তি প্রতি সবচেয়ে বড় ক্ষতির (−3.60) কারণ।

৪ · ক্লাসিক্যাল সমালোচনা: অ্যাগ্রিগেশন সংখ্যালঘুর ক্ষতিকে ন্যায্যতা দিতে পারে

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

ন্যায্য দৃষ্টিভঙ্গি · Fair perspective

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

মূল কথা · Key takeaway

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

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

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

প্র ০১ উপরের হিসাবে ship_as_is-এর মোট উপযোগ এত বেশি ইতিবাচক কেন, যদিও এটি একটি গোষ্ঠীর প্রতি ব্যক্তি প্রতি সবচেয়ে বড় ক্ষতির কারণ?

কারণ সাধারণ ব্যবহারকারী গোষ্ঠীর জনসংখ্যা (৯ লাখ) সংখ্যালঘু গোষ্ঠীর (১ লাখ) চেয়ে ৯ গুণ বেশি — তাই প্রতি-ব্যক্তি ছোট একটি ইতিবাচক মান (+2.55) জনসংখ্যা দিয়ে গুণ হয়ে বিশাল একটি মোট (+2,295,000.00) তৈরি করে, যা সংখ্যালঘুর অনেক বড় প্রতি-ব্যক্তি ক্ষতি (−3.60) থেকে আসা ছোট জনসংখ্যার মোট ক্ষতিকে (−360,000.00) ছাপিয়ে যায়।

প্র ০২ ইউটিলিটারিয়ানিজমের বিরুদ্ধে "সংখ্যালঘুর ক্ষতিকে ন্যায্যতা দেওয়া" সমালোচনাটি ঠিক কী বলছে?

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

প্র ০৩ যদি সংখ্যালঘু গোষ্ঠীর জনসংখ্যা ১ লাখ থেকে বাড়িয়ে ৯ লাখ করা হয় (সাধারণ ব্যবহারকারীর সমান), তাহলে কি ship_as_is-এর রায় বদলে যাবে?

হ্যাঁ। তখন সংখ্যালঘুর মোট অবদান হবে -3.6 * 900,000 = -3,240,000.00, আর সামগ্রিক মোট হবে 2,295,000.00 - 3,240,000.00 + 8.55 ≈ -944,991.45 — অর্থাৎ ঋণাত্মক হয়ে যাবে, এবং তখন no_ship (+89,998.20) ইউটিলিটারিয়ান দৃষ্টিতে ভালো পছন্দ হয়ে দাঁড়াবে। এটিই দেখায় — জনসংখ্যার আপেক্ষিক আকার ইউটিলিটারিয়ান রায়কে সরাসরি প্রভাবিত করে।

অনুশীলন

  1. চিন্তা করুন: এমন একটি বাস্তব প্রযুক্তি-সিদ্ধান্তের কথা ভাবুন যেখানে সংখ্যাগরিষ্ঠের সামান্য সুবিধার বিপরীতে একটি ছোট গোষ্ঠীর সম্ভাব্য বড় ক্ষতি ছিল। সিদ্ধান্তটি কীভাবে নেওয়া হয়েছিল বলে আপনার মনে হয়?

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

  2. পরীক্ষা করুন: কোড সেলে "কমপালসিভ-ইউজ ঝুঁকিতে থাকা সংখ্যালঘু"-র জনসংখ্যা 100_000 থেকে 900_000-এ পরিবর্তন করে Run চেপে দেখুন রায় বদলায় কিনা।

    হ্যাঁ, রায় উল্টে যাবে — ship_as_is-এর মোট প্রত্যাশিত উপযোগ ঋণাত্মক হয়ে যাবে (প্রশ্ন ০৩-এর উত্তরে বিস্তারিত হিসাব দেখুন), আর no_ship ইউটিলিটারিয়ান দৃষ্টিতে ভালো পছন্দ হয়ে উঠবে। ফ্রেমওয়ার্কের যুক্তি একই থাকে — শুধু ইনপুট সংখ্যা বদলালে সিদ্ধান্ত বদলে যায়।

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

আগের পাঠ
এথিক্স বনাম আইন বনাম কমপ্লায়েন্স — পার্থক্য