পাঠ ২৩ · ৫৭-এর মধ্যে · মডিউল ৬
Home / AI Courses / AI Ethics / অ্যালাইনমেন্ট প্রবলেম

অ্যালাইনমেন্ট প্রবলেম — এর প্রকৃত অর্থ

The Alignment Problem — what it actually means
৭ মিনিট পড়া মধ্যম · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

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

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

১ · সুনির্দিষ্ট সংজ্ঞা

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

২ · আউটার বনাম ইনার অ্যালাইনমেন্ট

অ্যালাইনমেন্ট প্রবলেমকে দুটো পৃথক ধাপে ভাঙা যায় — প্রতিটি ধাপে ভিন্ন ধরনের ব্যর্থতা ঘটতে পারে। আউটার অ্যালাইনমেন্টOuter Alignmentআমরা যে অবজেক্টিভ/রিওয়ার্ড ফাংশন সিস্টেমটিকে স্পেসিফাই করেছি, সেটি কি নির্মাতার প্রকৃত উদ্দেশ্যকে সঠিকভাবে প্রতিনিধিত্ব করে? প্রশ্ন করে: আমরা যে অবজেক্টিভ/রিওয়ার্ড লিখেছি, সেটাই কি প্রকৃত উদ্দেশ্যকে সঠিকভাবে ধরে? আর ইনার অ্যালাইনমেন্টInner Alignmentট্রেনিং করা সিস্টেম কি সত্যিই সেই স্পেসিফাইড অবজেক্টিভ ইন্টারনালাইজ করেছে, নাকি ট্রেনিং ডেটায় করিলেটেড কিন্তু ভিন্ন এমন কিছু শিখেছে? প্রশ্ন করে: ট্রেনিং করা সিস্টেম কি সত্যিই সেই স্পেসিফাইড অবজেক্টিভটাই শিখেছে, নাকি ট্রেনিং ডেটায় তার সাথে করিলেটেড কিন্তু বাস্তবে ভিন্ন এমন কিছু শিখেছে?

নির্মাতার প্রকৃত উদ্দেশ্য (true intent) স্পেসিফাইড অবজেক্টিভ / রিওয়ার্ড আউটার গ্যাপ: স্পেসিফিকেশন কি প্রকৃত উদ্দেশ্য ধরে? ট্রেনিং প্রসেস মডেলের শেখা (internalized) অবজেক্টিভ ইনার গ্যাপ: মডেল কি ঠিক সেটাই শিখলো, না শর্টকাট? ডিপ্লয়ড আচরণ (deployed behavior)
অ্যালাইনমেন্ট ব্যর্থ হতে পারে দুটো ভিন্ন জায়গায় — স্পেসিফিকেশন লেখার সময় (আউটার গ্যাপ) অথবা ট্রেনিংয়ের সময় (ইনার গ্যাপ)। দুটোই ঠিক থাকলেই কেবল ডিপ্লয়ড আচরণ প্রকৃত উদ্দেশ্যের সাথে মিলবে।
একটি সাধারণ ভুল ধারণা: "আমাদের রিওয়ার্ড ফাংশন সঠিক, তাই মডেল অ্যালাইনড হবে।" এটি শুধু আউটার অ্যালাইনমেন্ট নিশ্চিত করে — ইনার অ্যালাইনমেন্ট একটি সম্পূর্ণ পৃথক প্রশ্ন। একটি নিখুঁতভাবে স্পেসিফাইড রিওয়ার্ড দিয়েও, ট্রেনিং ডেটায় যদি রিওয়ার্ডের সাথে করিলেটেড কোনো শর্টকাট থাকে (যেমন L01-এর প্রক্সি-ফিচার ডেমোর মতো), মডেল সেই শর্টকাটটিই শিখে ফেলতে পারে — টেস্ট-সময়ে ভালো ফল দেখালেও প্রকৃত সাধারণীকরণ (generalization) নাও ঘটতে পারে।

৩ · একটি সত্যিকারের শ্রেণিবিন্যাস

নিচের কোডে চারটি হাইপোথেটিক্যাল দৃশ্যকল্প দেওয়া আছে — প্রতিটিতে দুটো স্বতন্ত্র বুলিয়ান শর্ত (স্পেসিফিকেশন কি প্রকৃত উদ্দেশ্যের সাথে মিলে? এবং ট্রেনিং করা মডেল কি স্পেসিফিকেশনের সাথে মিলে?) থেকে সত্যিই আউটার/ইনার/সামগ্রিক রায় গণনা করা হচ্ছে।

Python
# চারটি হাইপোথেটিক্যাল দৃশ্যকল্প -- outer বনাম inner অ্যালাইনমেন্ট
scenarios = [
    {
        "name": "সঠিক স্পেসিফিকেশন, সফল ট্রেনিং",
        "spec_matches_intent": True,
        "policy_matches_spec": True,
    },
    {
        "name": "ত্রুটিপূর্ণ প্রক্সি রিওয়ার্ড, মডেল ঠিক সেই প্রক্সিই শিখলো",
        "spec_matches_intent": False,
        "policy_matches_spec": True,
    },
    {
        "name": "সঠিক স্পেসিফিকেশন, কিন্তু মডেল একটি ভিন্ন শর্টকাট শিখলো",
        "spec_matches_intent": True,
        "policy_matches_spec": False,
    },
    {
        "name": "ত্রুটিপূর্ণ স্পেসিফিকেশন, এবং মডেলও ভিন্ন কিছু শিখলো",
        "spec_matches_intent": False,
        "policy_matches_spec": False,
    },
]

def evaluate(scenario):
    outer_ok = scenario["spec_matches_intent"]
    inner_ok = scenario["policy_matches_spec"]
    overall_ok = outer_ok and inner_ok
    outer_label = "আউটার-অ্যালাইনড" if outer_ok else "আউটার-মিসঅ্যালাইনড"
    inner_label = "ইনার-অ্যালাইনড" if inner_ok else "ইনার-মিসঅ্যালাইনড"
    overall_label = "সম্পূর্ণ অ্যালাইনড" if overall_ok else "মিসঅ্যালাইনড"
    return outer_label, inner_label, overall_label

for sc in scenarios:
    outer_label, inner_label, overall_label = evaluate(sc)
    print(sc["name"])
    print(f"  {outer_label} | {inner_label} | চূড়ান্ত রায়: {overall_label}")
    print()

outer_fail = sum(1 for sc in scenarios if not sc["spec_matches_intent"])
inner_fail = sum(1 for sc in scenarios if not sc["policy_matches_spec"])
fully_aligned = sum(1 for sc in scenarios if sc["spec_matches_intent"] and sc["policy_matches_spec"])
print(f"মোট {len(scenarios)}টি দৃশ্যকল্পের মধ্যে: আউটার-ব্যর্থতা {outer_fail}টি, ইনার-ব্যর্থতা {inner_fail}টি, সম্পূর্ণ-অ্যালাইনড {fully_aligned}টি")

    
লক্ষ্য করুন দ্বিতীয় দৃশ্যকল্পটি — spec_matches_intent=False কিন্তু policy_matches_spec=True — অর্থাৎ মডেল তাকে দেওয়া (ত্রুটিপূর্ণ) স্পেসিফিকেশন নিখুঁতভাবে শিখেছে, তবুও সামগ্রিকভাবে মিসঅ্যালাইনড, কারণ সেই স্পেসিফিকেশনই ভুল ছিল। এটাই পরের দুই পাঠের (L24-L25) মূল বিষয় — একটি সিস্টেম তার দেওয়া মেট্রিক নিখুঁতভাবে অর্জন করেও প্রকৃত উদ্দেশ্য থেকে দূরে থাকতে পারে।
মূল কথা · Key takeaway

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

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

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

প্র ০১ কোড সেলের দ্বিতীয় দৃশ্যকল্পে (ত্রুটিপূর্ণ প্রক্সি রিওয়ার্ড, মডেল ঠিক সেটাই শিখলো) — এই সিস্টেমটি কি L22-এর অর্থে "ক্যাপাবল"?

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

প্র ০২ একটি সম্পূর্ণ সঠিক স্পেসিফিকেশন থাকা সত্ত্বেও (আউটার-অ্যালাইনড) কীভাবে ইনার-মিসঅ্যালাইনমেন্ট ঘটতে পারে?

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

প্র ০৩ আউটার ও ইনার মিসঅ্যালাইনমেন্টের মধ্যে কোনটি সাধারণত সনাক্ত করা কঠিন বলে মনে হয়, এবং কেন?

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

অনুশীলন

  1. চিন্তা করুন: L01-এর রিজিউমে-স্ক্রিনিং ডেমোটি মনে করুন (মডেল কখনো "group" ব্যবহার করেনি, তবুও প্রক্সি ফিচারের মাধ্যমে বায়াসড ফলাফল দিয়েছে)। এটি কি আউটার নাকি ইনার মিসঅ্যালাইনমেন্টের উদাহরণ, নাকি দুটোই?

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

  2. চেষ্টা করুন: উপরের কোডে একটি পঞ্চম দৃশ্যকল্প যোগ করার কথা কল্পনা করুন যেখানে spec_matches_intent=True ও policy_matches_spec=True — Run করার আগে অনুমান করুন evaluate() কী রায় দেবে, তারপর কোডে যোগ করে Run চেপে যাচাই করুন।

    দুটো শর্তই True হওয়ায় outer_ok ও inner_ok দুটোই True, ফলে overall_ok = True — ফাংশনটি "আউটার-অ্যালাইনড", "ইনার-অ্যালাইনড", এবং "সম্পূর্ণ অ্যালাইনড" রায় দেবে, ঠিক প্রথম দৃশ্যকল্পটির মতো।

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

  • পরবর্তী পাঠ: স্পেসিফিকেশন গেমিং ও রিওয়ার্ড হ্যাকিং পাঠ ২৪ আউটার-মিসঅ্যালাইনমেন্টের একটি নির্দিষ্ট, সত্যিকারের গণনা দিয়ে দেখানো রূপ — একটি প্রক্সি মেট্রিক অপ্টিমাইজ করলে প্রকৃত লক্ষ্য থেকে কীভাবে বিচ্যুত হওয়া যায়।
  • কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ নৈতিক ফ্রেমওয়ার্ক, বায়াস-ফেয়ারনেস, প্রাইভেসি, ট্রান্সপারেন্সি, AI অ্যালাইনমেন্ট, জেনারেটিভ AI/LLM এথিক্স, সামাজিক প্রভাব, গভর্নেন্স ও রেগুলেশন, সেক্টর-স্পেসিফিক এথিক্স ও এক্সিস্টেনশিয়াল রিস্ক বিতর্ক — বাকি পাঠগুলো শীঘ্রই যুক্ত হবে।
  • Ethics in Computing & AI Safety কোর্স সহোদর কোর্স একটি বিস্তৃত সার্ভে কোর্স যেখানে অ্যালাইনমেন্ট প্রবলেমের একটি সংক্ষিপ্ত পরিচিতিও আছে — এই কোর্স সম্পূর্ণভাবে AI-তে ফোকাস করে গভীরে যায়।
আগের পাঠ
ক্যাপাবিলিটি বনাম অ্যালাইনমেন্ট — মূল পার্থক্য