ডিওন্টোলজি ও কন্ট্রাক্টুয়ালিজম — নিয়ম, অধিকার ও ন্যায্যতা
এই পাঠে যা শিখবেন
- ডিওন্টোলজি (রুল-ভিত্তিক/অধিকার-ভিত্তিক নৈতিকতা)-এর মূল ধারণা এবং এটি উপযোগবাদ থেকে কীভাবে আলাদা
- রলসিয়ান কন্ট্রাক্টুয়ালিজম ও ভেইল-অফ-ইগনোরেন্স যুক্তি, এবং এটি কীভাবে একটি গণনাযোগ্য ম্যাক্সিমিন নীতিতে রূপান্তরিত হয়
- একটি সত্যিকারের বুলিয়ান নিয়ম-পরীক্ষা কীভাবে লেখা হয় — একটি AI নীতি একটি ইনভায়োলেবল নিয়ম লঙ্ঘন করছে কি না
- একটি সত্যিকারের ম্যাক্সিমিন গণনা — প্রতিটি ভূমিকার ফলাফল দেখে সবচেয়ে খারাপটি চিহ্নিত করা
১ · ডিওন্টোলজি কী
ডিওন্টোলজি (Deontology)ডিওন্টোলজিএকটি নিয়ম-ভিত্তিক/অধিকার-ভিত্তিক নৈতিক তত্ত্ব — কিছু কাজ অন্তর্নিহিতভাবে ভুল বা অনুমতিহীন, ফলাফল যতই ভালো হোক না কেন; ইমানুয়েল কান্টের কাজের সাথে ঘনিষ্ঠভাবে যুক্ত। হলো একটি নিয়ম-ভিত্তিক/অধিকার-ভিত্তিক নৈতিক তত্ত্ব — L05-এর কনসিকোয়েনশিয়ালিজমের বিপরীতে, এটি বলে কিছু কাজ অন্তর্নিহিতভাবে ভুল বা অনুমতিহীন, ফলাফল যতই ভালো হোক না কেন। ইমানুয়েল কান্টের কাজের সাথে ঘনিষ্ঠভাবে যুক্ত এই ধারার মূল প্রশ্ন হলো: "এই কাজটি কি কারো অধিকার লঙ্ঘন করছে, বা এমন একটি নিয়ম ভাঙছে যা আমরা সার্বজনীনভাবে মেনে নিতে পারি না?" — নেট উপকারের হিসাব নয়।
AI প্রেক্ষাপটে এর ব্যবহারিক রূপ হলো ইনভায়োলেবল নিয়ম — যেমন "রোগীর সম্মতি ছাড়া তার ব্যক্তিগত ডেটা ব্যবহার করা যাবে না, তাতে সামগ্রিক ফলাফল যতই ভালো হোক না কেন"। L05-এর মডেলে এই ধরনের নিয়ম একটি সংখ্যা হিসেবে দেখানো যায় না — এটি একটি বুলিয়ান বাধা (hard constraint): হয় লঙ্ঘিত হচ্ছে, না হয় হচ্ছে না, এবং লঙ্ঘিত হলে বিকল্পটি বাতিল।
২ · কন্ট্রাক্টুয়ালিজম ও ভেইল অফ ইগনোরেন্স
দার্শনিক জন রলস-এর ভেইল অফ ইগনোরেন্স (Veil of Ignorance)ভেইল অফ ইগনোরেন্সএকটি চিন্তা-পরীক্ষা — একটি সিস্টেমের নিয়ম ন্যায্য কি না তা যাচাই করতে কল্পনা করুন আপনি জানেন না আপনি সেই সিস্টেমে কোন ভূমিকায় থাকবেন; তাহলে আপনি কী নিয়ম মেনে নিতেন? চিন্তা-পরীক্ষা প্রস্তাব করে: একটি সিস্টেমের নিয়ম ন্যায্য কি না তা যাচাই করতে, কল্পনা করুন আপনি জানেন না আপনি এই সিস্টেমে কোন ভূমিকায় থাকবেন — রোগী, স্টাফ, ধনী বা দরিদ্র, তরুণ বা প্রবীণ। এই "ভেইলের নিচে", আপনি স্বার্থপরভাবে এমন নিয়ম বেছে নেবেন না যা আপনাকে সবচেয়ে খারাপ-সম্ভাব্য ভূমিকায় ফেলে দেয়।
এই যুক্তিটি একটি গণনাযোগ্য নীতিতে রূপান্তরিত হয়: ম্যাক্সিমিন — প্রতিটি সম্ভাব্য ভূমিকার ফলাফল দেখে, সবচেয়ে খারাপ ফলাফলটি (মিনিমাম) চিহ্নিত করা, এবং সেই মিনিমাম যে নীতিতে সবচেয়ে বেশি (ম্যাক্সিমাম) সেটিকেই পছন্দ করা। এটি L05-এর গড়-কেন্দ্রিক উপযোগবাদের বিপরীতে, সবচেয়ে খারাপ-অবস্থানে থাকা পক্ষের উপর মনোযোগ দেয়।
৩ · দৃশ্যকল্প — ICU বেড-বরাদ্দ AI
হাসপাতালটি এখন একটি ভিন্ন সিদ্ধান্তের মুখোমুখি — একটি সংকটকালীন পরিস্থিতিতে সীমিত ICU বেড কীভাবে বরাদ্দ করা হবে তা নির্ধারণে AI-সহায়ক তিনটি প্রার্থী নীতি বিবেচনা করা হচ্ছে:
- নীতি X — খরচ-সচেতন স্কোরিং: রোগীর বাঁচার সম্ভাবনার পাশাপাশি তার অর্থ পরিশোধের সামর্থ্য/বীমা অবস্থাও বিবেচনায় নেয় (দুটি সমান বাঁচার-সম্ভাবনার রোগীর মধ্যে সিদ্ধান্ত নিতে)।
- নীতি Y — তৃতীয়-পক্ষ ডেটা-সমৃদ্ধ স্কোরিং: ঝুঁকি-স্কোর আরও নির্ভুল করতে বাহ্যিক ডেটা-ব্রোকারের কাছ থেকে কেনা স্বাস্থ্য-সম্পর্কিত রেকর্ড ব্যবহার করে, রোগীর সুনির্দিষ্ট সম্মতি ছাড়াই।
- নীতি Z — শুধু ক্লিনিক্যাল ডেটা + স্বচ্ছ বিজ্ঞপ্তি: শুধুমাত্র সরাসরি চিকিৎসার অংশ হিসেবে সংগৃহীত ক্লিনিক্যাল ডেটা ব্যবহার করে, এবং রোগী/পরিবারকে স্পষ্টভাবে জানায় যে একটি অ্যালগরিদম সিদ্ধান্তে ভূমিকা রাখছে।
তিনটি ইনভায়োলেবল নিয়ম নির্ধারণ করা হয়েছে, এবং পাঁচটি সম্ভাব্য ভূমিকা (রোগী/স্টাফ) যাদের ফলাফল ভেইল-অফ-ইগনোরেন্সের অধীনে বিবেচনা করা হবে।
ডিওন্টোলজিকাল পারমিসিবিলিটি: $\text{permissible}(o) = \bigwedge_{r \in R} \neg\, \text{violates}(o, r)$ — অর্থাৎ, নীতি $o$ তখনই অনুমোদনযোগ্য যখন এটি $R$-এর কোনো নিয়ম লঙ্ঘন করে না। ম্যাক্সিমিন: $M(o) = \min_{k \in K} U_k(o)$ — নীতি $o$-এর অধীনে সব ভূমিকা $K$-এর মধ্যে সর্বনিম্ন ফলাফল; আমরা সেই নীতি পছন্দ করি যার $M(o)$ সবচেয়ে বেশি।
# হাসপাতালের ICU বেড-বরাদ্দ AI -- তিনটি প্রার্থী নীতি (সিন্থেটিক দৃশ্য)
RULES = [
("ability_to_pay", "চিকিৎসা-সম্পদ বরাদ্দে রোগীর অর্থ পরিশোধের সামর্থ্য/বীমা অবস্থা কখনোই বিবেচনা করা যাবে না।"),
("consent_for_data","প্রত্যক্ষ চিকিৎসার উদ্দেশ্যের বাইরে রোগীর সুনির্দিষ্ট সম্মতি ছাড়া তৃতীয়-পক্ষের ব্যক্তিগত ডেটা ব্যবহার করা যাবে না।"),
("disclosure", "অ্যালগরিদম কোনো রোগীর যত্নের সিদ্ধান্তে প্রভাব ফেললে, তা রোগী/পরিবারকে জানাতে হবে।"),
]
policies = {
"X · খরচ-সচেতন স্কোরিং": {
"uses_ability_to_pay": True,
"uses_third_party_data_without_consent": False,
"discloses_algorithm_use": True,
"role_outcomes": {
"উচ্চ-বাঁচার-সম্ভাবনা তরুণ রোগী": 7,
"নিম্ন-বাঁচার-সম্ভাবনা প্রবীণ রোগী": 3,
"বীমাহীন রোগী": 1,
"সচ্ছল/বীমাকৃত রোগী": 8,
"হাসপাতাল স্টাফ": 2,
},
},
"Y · তৃতীয়-পক্ষ ডেটা-সমৃদ্ধ স্কোরিং": {
"uses_ability_to_pay": False,
"uses_third_party_data_without_consent": True,
"discloses_algorithm_use": True,
"role_outcomes": {
"উচ্চ-বাঁচার-সম্ভাবনা তরুণ রোগী": 8,
"নিম্ন-বাঁচার-সম্ভাবনা প্রবীণ রোগী": 4,
"যার ডেটা সম্মতি ছাড়া ব্যবহৃত হলো": 2,
"সচ্ছল/বীমাকৃত রোগী": 5,
"হাসপাতাল স্টাফ": 3,
},
},
"Z · শুধু ক্লিনিক্যাল ডেটা + স্বচ্ছ বিজ্ঞপ্তি": {
"uses_ability_to_pay": False,
"uses_third_party_data_without_consent": False,
"discloses_algorithm_use": True,
"role_outcomes": {
"উচ্চ-বাঁচার-সম্ভাবনা তরুণ রোগী": 7,
"নিম্ন-বাঁচার-সম্ভাবনা প্রবীণ রোগী": 5,
"বীমাহীন রোগী": 5,
"সচ্ছল/বীমাকৃত রোগী": 5,
"হাসপাতাল স্টাফ": 6,
},
},
}
def check_rule_violations(policy):
violations = []
if policy["uses_ability_to_pay"]:
violations.append(RULES[0])
if policy["uses_third_party_data_without_consent"]:
violations.append(RULES[1])
if not policy["discloses_algorithm_use"]:
violations.append(RULES[2])
return violations
def maximin(policy):
outcomes = policy["role_outcomes"]
worst_role = min(outcomes, key=outcomes.get)
return worst_role, outcomes[worst_role]
print("=== ধাপ ১ -- ডিওন্টোলজিকাল নিয়ম-পরীক্ষা (বুলিয়ান) ===\n")
permissible = {}
for name, policy in policies.items():
violations = check_rule_violations(policy)
is_permissible = len(violations) == 0
permissible[name] = is_permissible
print(f"{name}:")
if violations:
for rule_id, rule_text in violations:
print(f" x লঙ্ঘিত নিয়ম [{rule_id}]: {rule_text}")
print(" => নিয়মভিত্তিকভাবে অগ্রহণযোগ্য, নিট উপকার যাই হোক না কেন।\n")
else:
print(" ok কোনো ইনভায়োলেবল নিয়ম লঙ্ঘিত হয়নি।\n")
print("=== ধাপ ২ -- রলসিয়ান ম্যাক্সিমিন (veil-of-ignorance) ===\n")
maximin_scores = {}
for name, policy in policies.items():
worst_role, worst_value = maximin(policy)
maximin_scores[name] = worst_value
print(f"{name}: সবচেয়ে খারাপ-অবস্থানে থাকা ভূমিকা = \"{worst_role}\" (মান {worst_value})")
best_maximin = max(maximin_scores, key=maximin_scores.get)
print(f"\nম্যাক্সিমিন-পছন্দ (worst-case ভূমিকার ফলাফল সর্বোচ্চ করে এমন নীতি): {best_maximin}")
print("\n=== চূড়ান্ত রায় ===")
for name in policies:
verdict = "অনুমোদনযোগ্য" if permissible[name] else "প্রত্যাখ্যাত (নিয়ম লঙ্ঘন)"
print(f"{name}: নিয়ম-পরীক্ষা = {verdict}, worst-case মান = {maximin_scores[name]}")
ability_to_pay নিয়ম লঙ্ঘন করে, এবং নীতি Y
(তৃতীয়-পক্ষ ডেটা) consent_for_data নিয়ম লঙ্ঘন করে — উভয়ই ডিওন্টোলজিকালভাবে প্রত্যাখ্যাত,
নিট ফলাফল যত ভালোই হোক না কেন। স্বাধীনভাবে, ম্যাক্সিমিন গণনাও নীতি Z-কেই সর্বোচ্চ worst-case মান (৫) দেয়
— নীতি X-এর সবচেয়ে খারাপ ভূমিকা (বীমাহীন রোগী, মান ১) ও নীতি Y-এর সবচেয়ে খারাপ ভূমিকা (যার ডেটা সম্মতি
ছাড়া ব্যবহৃত হলো, মান ২)-এর চেয়ে অনেক ভালো। এই দৃশ্যকল্পে দুটি স্বাধীন পরীক্ষাই একই সিদ্ধান্তে
পৌঁছায় — নীতি Z।
ডিওন্টোলজি ও ম্যাক্সিমিন দুটি ভিন্ন প্রশ্ন জিজ্ঞাসা করে — "কোনো নিয়ম/অধিকার লঙ্ঘিত হচ্ছে কি?" এবং "সবচেয়ে খারাপ-অবস্থানে থাকা পক্ষের কী হচ্ছে?" — কিন্তু উভয়ই L05-এর বিশুদ্ধ যোগফল-কেন্দ্রিক যুক্তির উপর একটি গুরুত্বপূর্ণ সীমা টানে। এখানে তিনটি ফ্রেমওয়ার্ক (উপযোগবাদ বাদ দিলে দুটি) একমত হয়েছে, কিন্তু এটি সবসময় ঘটে না — L08-এ আমরা এমন একটি দৃশ্যকল্প দেখব যেখানে বিশুদ্ধ উপযোগবাদী র্যাঙ্কিং এবং ডিওন্টোলজিকাল/ম্যাক্সিমিন রায় একে অপরের সাথে সরাসরি সাংঘর্ষিক হয়।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ নীতি Y-এর ম্যাক্সিমিন গণনায় "যার ডেটা সম্মতি ছাড়া ব্যবহৃত হলো" নামে একটি আলাদা ভূমিকা যোগ করা হয়েছে, শুধু "প্রবীণ রোগী" বা "তরুণ রোগী" ভূমিকার বদলে। কেন এটি গুরুত্বপূর্ণ?
কারণ প্রাইভেসি লঙ্ঘনের ক্ষতি বয়স/বাঁচার-সম্ভাবনার সাথে সরাসরি সম্পর্কিত নয় — এটি একটি আলাদা ধরনের ক্ষতি যা যে কোনো রোগীর উপর পড়তে পারে। ভেইল-অফ-ইগনোরেন্স যুক্তিতে, একটি সিস্টেমের সব সম্ভাব্য "ভূমিকা" শনাক্ত করতে হয় — চিকিৎসাগত ফলাফলের বাইরে প্রক্রিয়াগত/প্রাইভেসিগত ক্ষতিও একটি স্বতন্ত্র ভূমিকা হিসেবে বিবেচনা করা প্রয়োজন, নাহলে ম্যাক্সিমিন গণনা গুরুত্বপূর্ণ ক্ষতি উপেক্ষা করে ফেলতে পারে।
প্র ০২ কেউ যুক্তি দিতে পারে, "নীতি Y বাস্তবে বেশিরভাগ রোগীর জন্যই ভালো ফলাফল দেয় (গড় স্কোর তুলনামূলক বেশি), তাই সম্মতি-নিয়ম লঙ্ঘন ক্ষমাযোগ্য।" ডিওন্টোলজিকাল দৃষ্টিকোণ থেকে এই যুক্তির জবাব কী হবে?
এটিই ঠিক সেই যুক্তি যা ডিওন্টোলজি প্রত্যাখ্যান করে — "গড়ে ভালো ফলাফল" একটি কনসিকোয়েনশিয়ালিস্ট (উপযোগবাদী) যুক্তি, যা ডিওন্টোলজিকাল কাঠামোয় একটি ইনভায়োলেবল নিয়ম লঙ্ঘনকে ন্যায্যতা দিতে পারে না। ডিওন্টোলজি অনুযায়ী, সম্মতি ছাড়া ডেটা ব্যবহার প্রতিটি ব্যক্তির অধিকার লঙ্ঘন করে, নেট ফলাফল যাই হোক না কেন — এটিই এই ফ্রেমওয়ার্কের মূল বৈশিষ্ট্য, ব্যতিক্রম নয়।
প্র ০৩ ভেইল-অফ-ইগনোরেন্স যুক্তির একটি বাস্তব সীমাবদ্ধতা কী হতে পারে, যখন এটি একটি প্রকৃত AI নীতি মূল্যায়নে প্রয়োগ করা হয়?
একটি বড় সীমাবদ্ধতা হলো — কোন কোন "ভূমিকা" বিবেচনায় নেওয়া হবে এবং প্রতিটি ভূমিকার ফলাফলের সংখ্যাগত মান কত, তা নির্ধারণ করা নিজেই বিষয়ীগত (subjective)। ভুলভাবে সংজ্ঞায়িত বা বাদ পড়া ভূমিকা (যেমন উপরের প্রশ্ন ০১-এর মতো) পুরো গণনাকে বিকৃত করতে পারে। বাস্তবে এর জন্য বিচক্ষণ, বৈচিত্র্যময় স্টেকহোল্ডার পরামর্শ প্রয়োজন (L03-এর স্টেকহোল্ডার বিশ্লেষণের সাথে সরাসরি সম্পর্কিত)।
অনুশীলন
-
চিন্তা করুন: উপরের কোড সেলে যদি নীতি Z-এর
"বীমাহীন রোগী"ভূমিকার মান5থেকে2-এ কমানো হয় (অর্থাৎ প্রকৃতপক্ষে বীমাহীন রোগীরা এই নীতিতেও কিছুটা অসুবিধায় পড়েন), তাহলে ম্যাক্সিমিন-পছন্দের নীতি বদলাবে কি না বলে মনে করেন?নীতি Z-এর worst-case মান তখন ৫ থেকে ২-এ নেমে আসবে, যা নীতি Y-এর worst-case মান (২)-এর সমান হয়ে যাবে — একটি টাই তৈরি হবে। যেহেতু নীতি Y এখনও ডিওন্টোলজিকাল নিয়ম লঙ্ঘন করে, চূড়ান্ত সুপারিশ তবুও নীতি Z-ই থাকা উচিত, কিন্তু এটি দেখায় কীভাবে ইনপুট মান সামান্য বদলালে ম্যাক্সিমিন-শুধু সিদ্ধান্ত অস্থির হয়ে উঠতে পারে — তাই নিয়ম-পরীক্ষার সাথে একত্রে ব্যবহার করা গুরুত্বপূর্ণ।
-
পরীক্ষা করুন: উপরের কোড সেলে নীতি Z-এর
"বীমাহীন রোগী": 5-কে"বীমাহীন রোগী": 2-এ পরিবর্তন করে Run চেপে দেখুন worst-case মান ও রায় কীভাবে বদলায়।রান করলে নীতি Z-এর worst-case ভূমিকা বদলে "বীমাহীন রোগী" (মান ২) হয়ে যাবে, এবং নীতি Y-এর worst-case মানও ২ — একটি টাই। কোডে
max()টাইয়ের ক্ষেত্রে প্রথম সর্বোচ্চ-মানের কী (key) ফেরত দেয় (dict-এর ইনসার্শন অর্ডার অনুযায়ী), তাই ফলাফল dict-এ পলিসিগুলোর ক্রম অনুযায়ী পরিবর্তিত হতে পারে — এটি দেখায় কেন টাই-ব্রেকিং নিয়ম স্পষ্টভাবে ঠিক করে রাখা জরুরি।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ নৈতিক ফ্রেমওয়ার্ক, বায়াস-ফেয়ারনেস, প্রাইভেসি, ট্রান্সপারেন্সি, AI অ্যালাইনমেন্ট, জেনারেটিভ AI/LLM এথিক্স, সামাজিক প্রভাব, গভর্নেন্স ও রেগুলেশন, সেক্টর-স্পেসিফিক এথিক্স ও এক্সিস্টেনশিয়াল রিস্ক বিতর্ক — বাকি পাঠগুলো শীঘ্রই যুক্ত হবে।
- Ethics in Computing & AI Safety কোর্স সহোদর কোর্স সাধারণ কম্পিউটিং এথিক্স, প্রফেশনাল এথিক্স ও সেফটি-ক্রিটিক্যাল কেস স্টাডির একটি বিস্তৃত সার্ভে — এই কোর্স সম্পূর্ণভাবে AI-তে ফোকাস করে গভীরে যায়।
- সব Courses দেখুন ABCL TECH C, C++, Python, Java, JavaScript, DSA, Machine Learning, Deep Learning, System Design, Cybersecurity, Cloud Computing & DevOps, এবং আরও অনেক কোর্স — সব এক জায়গায়।