অধ্যায় 1 · ঝুঁকি ও ফ্রেমওয়ার্ক
নীতি ও ফ্রেমওয়ার্ক বাস্তবে: মূল্যবোধ থেকে পরীক্ষাযোগ্য নিয়ন্ত্রণ
- পৃষ্ঠা 3 / 22
- 16 মিনিট পড়া
ন্যায্যতা, স্বচ্ছতা ও জবাবদিহির মতো নীতিতে সায় দেওয়া সহজ, কিন্তু যাচাই করা কঠিন। যে দল বলে "আমরা দায়িত্বশীল-AI ফ্রেমওয়ার্ক মেনে চলি", প্রতিটা উদ্বেগকে কোনো মানুষের করা কাজ আর তার একটা রেকর্ডের সঙ্গে না বাঁধা পর্যন্ত সে প্রায় কিছুই বলেনি। এই পাতা সেই ধাপের অনুশীলন। ধারণাগুলো আছে বিগিনার পাতা মূল নৈতিক নীতি: ন্যায্যতা, স্বচ্ছতা, গোপনীয়তা, নিরাপত্তা ও জবাবদিহি এবং ফ্রেমওয়ার্ক, স্ট্যান্ডার্ড ও পরস্পরবিরোধী নীতি: নৈতিকতা, আইন ও পলিসি-তে; এখানে সেগুলো প্রয়োগ করবেন, আর ম্যাপিংটা ডেটা হিসেবে রাখবেন যা প্রোগ্রাম যাচাই করতে পারে।
আপনার দরকার Python 3.12 এবং শুধু তার স্ট্যান্ডার্ড লাইব্রেরি। প্রতিটা পাতা নতুন ফোল্ডারে চলে, তাই ফাইল তৈরি হয় # file: ব্লকে। ব্লকগুলো ক্রমে একটা সেশনে লিখুন; প্রতিটা ব্লকের নিচের লেখাটা তার আসল আউটপুট।
সততার নিয়ম। প্রতিটা ডেটাসেট কৃত্রিম এবং
Toy data:লেবেল দেওয়া; প্রতিটা কোম্পানি, ব্যক্তি ও সংখ্যা কাল্পনিক। ফলাফল দেখায় হিসাব কীভাবে কাজ করে, কোনো বাস্তব সিস্টেম সম্পর্কে কী সত্য তা নয়। এখানে উল্লেখ করা ফ্রেমওয়ার্কগুলো বাস্তব, আর তাদের তারিখ মালিকদের পাতা থেকে ২০২৬-১০-১২ তারিখে যাচাই করা; এগুলো বদলায়, তাই কোনোটা উদ্ধৃত করার আগে মালিকের পাতা দেখে নিন। এখানে কিছুই আইনি পরামর্শ নয়।
যা শিখবেন
- একটা নৈতিক উদ্বেগকে প্রমাণসহ পরীক্ষাযোগ্য নিয়ন্ত্রণ-লক্ষ্যে (control objective) কীভাবে বদলাবেন।
- OECD AI Principles, UNESCO-র সুপারিশ ও NIST AI RMF-এর চার ফাংশন দিয়ে একটা পণ্য-পরিস্থিতি কীভাবে পড়বেন, এবং সেই পাঠগুলো কোথায় আলাদা।
- NIST Generative AI Profile কীভাবে ঝুঁকির তালিকা হিসেবে ব্যবহার করবেন, টিক দেওয়ার চেকলিস্ট হিসেবে নয়।
- নির্দেশনা আর সার্টিফিকেশনের শর্তের পার্থক্য, এবং ISO/IEC 42001-এর ম্যানেজমেন্ট-সিস্টেম ধারণা কী যোগ করে।
- উদ্বেগ থেকে নিয়ন্ত্রণ পর্যন্ত ম্যাপিং ডেটা হিসেবে রাখা, আর স্ক্রিপ্টকে দিয়ে কোনটা ম্যাপ বা প্রমাণ করা হয়নি তা চিহ্নিত করানো।
পরিস্থিতিটা
কাল্পনিক পরিস্থিতি:
Company: Harbourline Staffing (invented), the agency from pages 1 and 2.
Change: ShortlistHelper v2 keeps the ranked list and adds a generated 3-line summary of each CV.
Claim: The agency owner says: "We follow responsible-AI frameworks."
Question: What does that mean, concern by concern, and what could we show an outside reader?তিনটা জিনিস সহজেই গুলিয়ে যায়। নৈতিক উদ্বেগ হলো এমন কিছু যা ভাবুক মানুষকে ভাবায়। ফ্রেমওয়ার্কের নীতি তাকে নাম দেওয়ার একটা ভাগ-করা, স্বেচ্ছামূলক উপায়। নিয়ন্ত্রণ (control) হলো সে বিষয়ে আপনার সংস্থা যা করে। একটা দাবি ততটাই শক্ত যতটা শেষ সংযোগটা আপনি দেখাতে পারেন।
উদ্বেগ থেকে নিয়ন্ত্রণ-লক্ষ্য
একটা নৈতিক উদ্বেগকে নিয়ন্ত্রণ-লক্ষ্যের সঙ্গে মেলান। নিয়ন্ত্রণ-লক্ষ্য (control objective) বলে একটা নিয়ন্ত্রণকে কী অর্জন করতে হবে, এমনভাবে যা পরীক্ষা করা যায়। "ন্যায্য হও" একটা মূল্যবোধ; এটা কোনো পরীক্ষায় ব্যর্থ হতে পারে না। কাজে লাগার মতো লক্ষ্য পাঁচটা প্রশ্নের উত্তর দেয়।
A control objective answers five questions:
Who checks what, how often, what counts as a pass, and which record proves it.| উদ্বেগ | দুর্বল লক্ষ্য | পরীক্ষাযোগ্য লক্ষ্য |
|---|---|---|
| স্কোর কর্মবিরতিকে শাস্তি দেয় | "টুলটা ন্যায্য হওয়া উচিত" | প্রতিটা রিলিজের আগে আলাদা করে রাখা একটা সেটে দল অনুযায়ী নির্বাচনের হার হিসাব করা হয়; দলের বেছে নেওয়া সীমার চেয়ে বেশি ব্যবধান একজন নির্দিষ্ট ব্যক্তি সই করেন |
| নিয়োগের পরেও CV-র লেখা রাখা হয় | "আমরা গোপনীয়তা রক্ষা করি" | চুক্তিতে লেখা সংরক্ষণকালের মধ্যে CV-র লেখা মুছে ফেলা হয়; Operations manager প্রতি ত্রৈমাসিকে মোছার লগ দেখেন |
| রিক্রুটাররা র্যাংকিংয়ে ভরসা করেন | "অতি-ভরসা এড়ানো" | প্রতি সপ্তাহে একজন রিক্রুটার নিচের র্যাংকের ৫০টা এলোমেলো CV পড়েন এবং লিখে রাখেন কতগুলো ভুলভাবে নিচে ছিল |
শক্ত সংস্করণগুলোতে একজন ব্যক্তি, একটা ফ্রিকোয়েন্সি, একটা পাস-শর্ত ও একটা রেকর্ড আছে। প্রথম সারির সীমাটা দলের বেছে নেওয়া সিদ্ধান্ত, যার যুক্তি দলকেই দিতে হবে; কোনো ফ্রেমওয়ার্ক সেটা আপনাকে দেয় না।
ম্যাপিংটা ডেটা হিসেবে রাখুন
তিনটা ফাইল বানান। frameworks.py-তে নামগুলো মালিকদের তালিকা অনুযায়ী হুবহু আছে (তাই বানান-ভুল ধরা পড়ে), controls.json-এ আছে ম্যাপিং, আর mapcheck.py তা যাচাই করে ফাঁক জানায়। O1 থেকে O5 এবং U1 থেকে U10 কোডগুলো আমাদের। OECD AI Principles গৃহীত হয় ২০১৯ সালে এবং হালনাগাদ হয় ২০২৪ সালের মে মাসে; UNESCO-র Recommendation on the Ethics of AI গৃহীত হয় ২০২১ সালের নভেম্বরে; NIST AI RMF 1.0 প্রকাশ পায় ২০২৩ সালের ২৬ জানুয়ারি, আর NIST AI 600-1 (Generative AI Profile) ২০২৪ সালের জুলাইয়ে।
# file: frameworks.py
# Names as listed on the owners' pages, checked 2026-10-12. The short codes (O1, U1 ...) are ours.
OECD = { # OECD AI Principles: adopted 2019, updated May 2024
"O1": "inclusive growth, sustainable development and well-being",
"O2": "human rights and democratic values, including fairness and privacy",
"O3": "transparency and explainability",
"O4": "robustness, security and safety",
"O5": "accountability",
}
UNESCO = { # Recommendation on the Ethics of AI, November 2021: the ten principles
"U1": "proportionality and do no harm",
"U2": "safety and security",
"U3": "privacy and data protection",
"U4": "multi-stakeholder governance",
"U5": "responsibility and accountability",
"U6": "transparency and explainability",
"U7": "human oversight",
"U8": "sustainability",
"U9": "awareness and literacy",
"U10": "fairness and non-discrimination",
}
NIST_FUNCTIONS = ("Govern", "Map", "Measure", "Manage") # NIST AI RMF 1.0, 26 January 2023
GENAI_RISKS = ( # NIST AI 600-1, July 2024: the twelve risk areas it names
"CBRN information or capabilities", "confabulation", "dangerous, violent or hateful content",
"data privacy", "environmental impacts", "harmful bias or homogenisation", "human-AI configuration",
"information integrity", "information security", "intellectual property",
"obscene, degrading and/or abusive content", "value chain and component integration",
)
FRAMEWORKS = { # name: (kind, version or date, binding on its own?)
"OECD AI Principles": ("intergovernmental recommendation", "adopted 2019, updated May 2024", False),
"UNESCO Recommendation": ("UN agency recommendation", "November 2021", False),
"NIST AI RMF": ("US government framework", "1.0, 26 January 2023", False),
"NIST AI 600-1": ("profile of the NIST AI RMF", "July 2024", False),
"ISO/IEC 42001": ("paid management-system standard", "check iso.org for the edition", False),
}টয় ডেটা: ShortlistHelper v2-এর ম্যাপিং। উদ্বেগগুলো ১ নম্বর পাতার রেজিস্টারের প্রতিধ্বনি; K5 নতুন, কারণ তৈরি-করা সারাংশ যোগ হয়েছে। যেখানে প্রমাণ নেই সেখানে ঘর খালি রাখা হয়েছে। JSON ফাইলে প্রথম লাইন // file: controls.json বাদ দিন; ওটা শুধু ফাইলের নাম বোঝায়।
// file: controls.json
{
"scenario": "ShortlistHelper v2 (invented): ranks CVs and writes a three-line summary of each CV",
"concerns": [
{"id": "K1", "concern": "Scores penalise career breaks", "oecd": "O2", "unesco": "U10",
"nist": "Measure", "genai": "harmful bias or homogenisation",
"control": "group check per release", "evidence": ""},
{"id": "K2", "concern": "Recruiters trust the ranking", "oecd": "O5", "unesco": "U7",
"nist": "Manage", "genai": "human-AI configuration",
"control": "weekly sample of low ranks", "evidence": "internal test"},
{"id": "K3", "concern": "CV text kept beyond hiring", "oecd": "O2", "unesco": "U3",
"nist": "Map", "genai": "data privacy",
"control": "contract retention limit", "evidence": ""},
{"id": "K4", "concern": "Applicants cannot ask why", "oecd": "O3", "unesco": "U6",
"nist": "Govern", "genai": "",
"control": "notice and review route", "evidence": "draft notice"},
{"id": "K5", "concern": "Summaries invent CV details", "oecd": "O4", "unesco": "U2",
"nist": "Measure", "genai": "confabulation",
"control": "summary test on sample CVs", "evidence": ""},
{"id": "K6", "concern": "No route for offline applicants", "oecd": "O2", "unesco": "U10",
"nist": "Map", "genai": "",
"control": "", "evidence": ""},
{"id": "K7", "concern": "Staff worry about job changes", "oecd": "", "unesco": "",
"nist": "", "genai": "",
"control": "", "evidence": ""}
]
}# file: mapcheck.py
import json
import textwrap
from frameworks import OECD, UNESCO, NIST_FUNCTIONS, GENAI_RISKS
def load(path):
with open(path, encoding="utf-8") as f:
return json.load(f)["concerns"]
def flags(c):
"""Problems with one row. Nothing is guessed or filled in."""
if not (c["oecd"] or c["unesco"] or c["nist"]):
return ["unmapped: no principle or function chosen yet"]
out = []
for key, allowed in (("oecd", OECD), ("unesco", UNESCO), ("nist", NIST_FUNCTIONS), ("genai", GENAI_RISKS)):
if c[key] and c[key] not in allowed:
out.append(f"{key} '{c[key]}' is not in that framework's list")
if not c["control"]:
out.append("no control objective")
elif not c["evidence"]:
out.append("MISSING evidence")
return out
def report(rows):
print(f"{'id':<4}{'concern':<33}{'OECD':<5}{'UNESCO':<7}{'NIST':<8}{'control':<27}evidence")
for c in rows:
print(f"{c['id']:<4}{c['concern']:<33}{c['oecd'] or '-':<5}{c['unesco'] or '-':<7}{c['nist'] or '-':<8}"
f"{c['control'] or '-':<27}{c['evidence'] or 'MISSING'}")
print()
for c in rows:
for text in flags(c):
print(f"{c['id']}: {text}")
print()
print("NIST functions:", ", ".join(f"{n} {sum(c['nist'] == n for c in rows)}" for n in NIST_FUNCTIONS))
named = {c["genai"] for c in rows if c["genai"]}
print(f"GenAI Profile risk areas named: {len(named)} of {len(GENAI_RISKS)}")
rest = "; ".join(r for r in GENAI_RISKS if r not in named)
print(textwrap.fill("not yet considered: " + rest, width=96, subsequent_indent=" "))import mapcheck
rows = mapcheck.load("controls.json")
mapcheck.report(rows)id concern OECD UNESCO NIST control evidence
K1 Scores penalise career breaks O2 U10 Measure group check per release MISSING
K2 Recruiters trust the ranking O5 U7 Manage weekly sample of low ranks internal test
K3 CV text kept beyond hiring O2 U3 Map contract retention limit MISSING
K4 Applicants cannot ask why O3 U6 Govern notice and review route draft notice
K5 Summaries invent CV details O4 U2 Measure summary test on sample CVs MISSING
K6 No route for offline applicants O2 U10 Map - MISSING
K7 Staff worry about job changes - - - - MISSING
K1: MISSING evidence
K3: MISSING evidence
K5: MISSING evidence
K6: no control objective
K7: unmapped: no principle or function chosen yet
NIST functions: Govern 1, Map 2, Measure 2, Manage 1
GenAI Profile risk areas named: 4 of 12
not yet considered: CBRN information or capabilities; dangerous, violent or hateful content;
environmental impacts; information integrity; information security; intellectual property;
obscene, degrading and/or abusive content; value chain and component integrationস্ক্রিপ্ট জানায়, ঠিক করে না। K1, K3 ও K5-এর নিয়ন্ত্রণ-লক্ষ্য আছে কিন্তু প্রমাণ নেই: যাচাইটা যে চলে তা এখনো কেউ দেখাননি। K6-এর নীতি আছে কিন্তু নিয়ন্ত্রণ নেই। K7 কোথাও ম্যাপ হয়নি, আর সেটাও একটা তথ্য: কিছু উদ্বেগ পরিপাটি তালিকায় বসে না, এবং তখন করণীয় আলোচনা করা, জোর করে লেবেল লাগানো নয়। "MISSING" একটা পর্যবেক্ষণ, দলের ব্যর্থতা নয়; প্রমাণ বানিয়ে নেওয়াটাই হতো ভুল।
এই পরিস্থিতিতে OECD ও UNESCO
একটা পণ্য-পরিস্থিতিতে OECD AI Principles প্রয়োগ করুন। OECD AI Principles-এ আছে পাঁচটা মূল্যবোধভিত্তিক নীতি এবং সরকারগুলোর জন্য পাঁচটা সুপারিশ, যা পণ্য-দল সাধারণত সরাসরি প্রয়োগ করে না। এগুলো বাধ্যতামূলক নয়। পরিস্থিতিটা এভাবে পড়া যায়।
| OECD-র নীতি | ShortlistHelper v2-এর জন্য একটা প্রশ্ন | উদ্বেগ |
|---|---|---|
| O1 inclusive growth, sustainable development and well-being | কারা ইন্টারভিউ পান, এটা তা বাড়ায় না কমায়? | K6 (K7) |
| O2 human rights and democratic values, including fairness and privacy | আবেদনকারীদের সঙ্গে ন্যায্য আচরণ হয় কি না, আর তাঁদের ডেটা সুরক্ষিত কি না? | K1, K3, K6 |
| O3 transparency and explainability | আবেদনকারী জানতে পারেন কি না যে একটা টুল ব্যবহার হয়েছে, এবং কারণ জিজ্ঞেস করতে পারেন কি না? | K4 |
| O4 robustness, security and safety | সারাংশ নির্ভুল থাকে আর ডেটা নিরাপদ থাকে কি না? | K5 |
| O5 accountability | কোনো নির্দিষ্ট ভূমিকা র্যাংকিংয়ের জন্য জবাবদিহি করে কি না? | K2 |
একটা পরিস্থিতিকে UNESCO-র নৈতিকতা-সুপারিশের সঙ্গে মেলান। UNESCO-র লেখাটা তার ১৯৩টা সদস্য রাষ্ট্র গ্রহণ করেছে; তা চারটা মূল্যবোধ আর দশটা নীতির ওপর দাঁড়ানো, এবং সেটাও বাধ্যতামূলক নয়। দশটা নীতি frameworks.py-তে আছে। একই ক্ষেত্রকে এটা আলাদাভাবে কাটে: তদারকি (human oversight, U7) এবং গোপনীয়তা ও ডেটা সুরক্ষা (U3) আলাদা নীতি, অথচ OECD-র তালিকা গোপনীয়তাকে মানবাধিকারের নীতির (O2) ভেতরে রাখে। K2 আর K3 ম্যাপ করলে তা দেখা যায়: একই উদ্বেগ এক ফ্রেমওয়ার্কে O5 ও O2-তে পড়ে, অন্যটায় U7 ও U3-তে। কোনো ম্যাপিংই ভুল নয়। আপনার শ্রোতারা (গ্রাহক, অডিটর, নিয়ন্ত্রক, বিদেশের সহকর্মী) যে শব্দভান্ডার ইতিমধ্যে ব্যবহার করেন সেটা বাছুন, এবং কোনটা বেছেছেন তা বলুন।
নীতিগুলো একে অপরকেও টানে। স্কোর দল অনুযায়ী আলাদা কি না দেখতে হলে দলকে গ্রুপের ডেটা রাখতে হয়, কিন্তু গোপনীয়তা কম রাখার দিকে ঠেলে। দল ও দেশ এটা আলাদাভাবে মেটায়; কী বেছেছেন আর কে সিদ্ধান্ত নিয়েছেন তা লিখে রাখুন। আপনার এলাকায় আইনও বাছাইকে সীমিত করতে পারে, তাই ধরে না নিয়ে বিশেষজ্ঞকে জিজ্ঞেস করুন।
NIST AI RMF-এর চার ফাংশন
NIST AI RMF 1.0 একটা মার্কিন সরকারি ফ্রেমওয়ার্ক, স্বেচ্ছায় ব্যবহারের জন্য তৈরি, এবং যেকোনো দেশে ব্যবহারযোগ্য। ২০২৬-১০-১২ অনুযায়ী NIST বলছে এটা সংশোধন করা হচ্ছে, কোনো সময়সীমা নেই এবং নতুন সংস্করণ প্রকাশিত হয়নি; ২০২৬ সালের একটা কনসেপ্ট নোট গুরুত্বপূর্ণ অবকাঠামোর একটা প্রোফাইল নিয়ে, নতুন ফ্রেমওয়ার্ক নয়। যে সংস্করণ ব্যবহার করেছেন তা লিখে রাখুন। নিচের এক-লাইনের অর্থগুলো আমাদের ভাষা, NIST-এর নয়।
| ফাংশন (আমাদের ব্যাখ্যা) | পরিস্থিতির জন্য একটা প্রশ্ন | কী সংরক্ষণ করবেন |
|---|---|---|
| Govern (নীতি, ভূমিকা, জবাবদিহি) | রিলিজ কে অনুমোদন করতে পারেন, এবং কে জবাব দেবেন? আবেদনকারীরা নোটিশ ও পর্যালোচনার পথ পান কি না (K4)? | নীতি, ভূমিকার তালিকা, অনুমোদিত নোটিশ |
| Map (প্রসঙ্গ ও ঝুঁকি) | কারা প্রভাবিত, অনলাইনে আবেদন করতে পারেন না এমনরাও (K6)? CV-র লেখা কোথায় যায় আর থাকে (K3)? | পরিধি, স্টেকহোল্ডার তালিকা, ডেটা-প্রবাহের নোট |
| Measure (পরীক্ষা ও ট্র্যাক) | কারা শর্টলিস্ট হন তাতে দলগত ব্যবধান কত (K1)? সারাংশ কতবার ভুল হয় (K5)? | টেস্ট সেট, ফলাফল, কারণসহ সীমা |
| Manage (সাড়া ও অগ্রাধিকার) | নমুনায় ভুলভাবে নিচের র্যাংক ধরা পড়লে কী হয় (K2)? টুলটা কে থামাতে পারেন? | থামার নিয়ম, ঘটনার লগ, পর্যালোচনার তারিখ |
রিপোর্টের শেষ লাইনগুলো প্রতি ফাংশনে ম্যাপ হওয়া উদ্বেগ গোনে। এখানে প্রতিটা ফাংশনে অন্তত একটা আছে। কোনো ফাংশনে শূন্য থাকা স্বয়ংক্রিয় ব্যর্থতা নয়, একটা প্রশ্নের ইঙ্গিত: কাজটা অন্য কোথাও হচ্ছে, নাকি হচ্ছেই না?
ঝুঁকির তথ্যসূত্র হিসেবে Generative AI Profile
NIST Generative AI Profile-কে ঝুঁকির তথ্যসূত্র হিসেবে দেখুন। NIST AI 600-1 হলো AI RMF-এর একটা সব-খাতের প্রোফাইল, সেটাও স্বেচ্ছামূলক। এটা বারোটা ঝুঁকির ক্ষেত্রের নাম দেয়, যা GENAI_RISKS-এ আছে। শব্দভান্ডার হিসেবে ব্যবহার করলে এটা দলকে লক্ষ করতে সাহায্য করে কী ভাবা হয়নি: রিপোর্টে চারটা ক্ষেত্রের নাম আছে আর আটটা এখনো বিবেচনা হয়নি, যেমন তথ্য-নিরাপত্তা, বুদ্ধিবৃত্তিক সম্পত্তি ও উপাদানের সরবরাহ-শৃঙ্খল। প্রতিটা ক্ষেত্র প্রতিটা ফিচারে প্রযোজ্য নয়। নাম-না-আসা প্রতিটা ক্ষেত্রের জন্য সৎ ধাপ হলো প্রাসঙ্গিক নাকি অপ্রাসঙ্গিক, কারণসহ তা ঠিক করা; প্রতিটা ক্ষেত্র নিয়ে নথিটা কী বলে তা এই পাতায় নেই, তাই ব্যবহারের আগে নথিটা পড়ুন।
নির্দেশনা, সার্টিফিকেশন ও ISO/IEC 42001
ফ্রেমওয়ার্কের নির্দেশনা আর সার্টিফিকেশনের শর্তের পার্থক্য করুন। OECD, UNESCO ও NIST-এর লেখাগুলো স্বেচ্ছামূলক নির্দেশনা: এগুলোর কোনোটাই নিজে আইনি দায় নয়। কী লিখতে পারবেন তা নির্ভর করে আপনার হাতে থাকা প্রমাণের ওপর।
| শব্দবন্ধ | কী দরকার |
|---|---|
| used as a reference (তথ্যসূত্র হিসেবে ব্যবহার) | সততা ছাড়া আর কিছু নয়: কোন সংস্করণ আর কীভাবে তা বলুন |
| aligned with (সঙ্গে সামঞ্জস্যপূর্ণ) | আপনার নিজের লিখিত ম্যাপিং, যেমন controls.json |
| certified to (সার্টিফায়েড) | বাইরের কোনো সংস্থার সার্টিফিকেট, এমন স্ট্যান্ডার্ডের জন্য যার সেই ধরনের স্কিম আছে |
| compliant with (মেনে চলা) | আপনার ওপর প্রযোজ্য বাধ্যতামূলক লেখা (যেমন আইন), এবং আইনি যাচাই |
টয় ডেটা: পাঁচটা কাল্পনিক বিপণন-দাবি, সারণির বিপরীতে যাচাই করা।
from frameworks import FRAMEWORKS
def verdict(name, wording):
kind, version, binding = FRAMEWORKS[name]
if wording == "used as a reference":
return f"ok: name the version ({version})"
if wording == "aligned with":
return "ok only with a written mapping like controls.json"
if wording == "compliant with":
return "ok only for binding text" if binding else "no: not binding on its own, so not 'compliance'"
return "unverified: needs an outside certificate; check the owner"
CLAIMS = [("OECD AI Principles", "compliant with"), ("NIST AI RMF", "certified to"),
("NIST AI RMF", "aligned with"), ("ISO/IEC 42001", "certified to"),
("NIST AI 600-1", "used as a reference")]
for name, wording in CLAIMS:
print(f"{wording} {name}".ljust(40), verdict(name, wording))compliant with OECD AI Principles no: not binding on its own, so not 'compliance'
certified to NIST AI RMF unverified: needs an outside certificate; check the owner
aligned with NIST AI RMF ok only with a written mapping like controls.json
certified to ISO/IEC 42001 unverified: needs an outside certificate; check the owner
used as a reference NIST AI 600-1 ok: name the version (July 2024)স্ক্রিপ্ট জানে না সার্টিফিকেট আছে কি না; সে "unverified" বলে আর আপনাকে মালিকের কাছে পাঠায়। পরের পাতা আইন ও স্ট্যান্ডার্ড নিয়ে আরও বিস্তারে যায়।
ISO/IEC 42001-এর ম্যানেজমেন্ট-সিস্টেম পদ্ধতি পরীক্ষা করুন। স্ট্যান্ডার্ড সংস্থাগুলো ISO/IEC 42001-কে AI ম্যানেজমেন্ট-সিস্টেম স্ট্যান্ডার্ড বলে বর্ণনা করে। এটা একটা মূল্য দিয়ে কেনার স্ট্যান্ডার্ড যা এই পাতায় হুবহু দেওয়া যায় না, আর এই পাতার জন্য ISO-র নিজস্ব সাইট যাচাই করা যায়নি, তাই বর্তমান সংস্করণ ও অবস্থা iso.org-এ দেখে নিন। সাধারণভাবে ম্যানেজমেন্ট-সিস্টেম স্ট্যান্ডার্ড সংস্থার প্রক্রিয়া নিয়ে প্রশ্ন করে, একটা পণ্য নিয়ে নয়: ভূমিকা, ঝুঁকি-প্রক্রিয়া, রেকর্ড, পর্যালোচনা, এবং পর্যবেক্ষণ অনুযায়ী পদক্ষেপ। স্বীকৃত সার্টিফিকেশন সংস্থা সংস্থাকে অডিট করতে পারে; এটা ISO স্ট্যান্ডার্ডের সাধারণ চর্চা, এই স্ট্যান্ডার্ডের জন্য এখানে নিশ্চিত করা হয়নি। সার্টিফিকেট সংস্থার প্রক্রিয়া সম্পর্কে কথা বলত। এটা কোনো মডেল নিরাপদ বলে সার্টিফিকেট হতো না।
| প্রশ্ন | পণ্য-স্তরের নিয়ন্ত্রণ | ম্যানেজমেন্ট-সিস্টেমের দৃষ্টি |
|---|---|---|
| বিষয় | এই ফিচার, এই রিলিজ | সংস্থা সাধারণভাবে AI-এর কাজ কীভাবে চালায় |
| উদাহরণ | রিলিজের আগে দলগত যাচাই (K1) | এমন যাচাই বাধ্যতামূলক করা নীতি, তার মালিক-ভূমিকা, রাখা রেকর্ড, বার্ষিক পর্যালোচনা |
| প্রমাণ | যাচাইয়ের রিপোর্ট | নীতি, ভূমিকার তালিকা, রেকর্ড ও পর্যালোচনার কার্যবিবরণী |
কাজের জায়গায় এটা কোথায় দেখা যায়
গভর্ন্যান্স, প্রোডাক্ট ও প্রকিউরমেন্ট কর্মীরা এটা দেখেন যখন কোনো গ্রাহক জিজ্ঞেস করেন "আপনারা কোন ফ্রেমওয়ার্ক মানেন?" বা কোনো টেন্ডার প্রমাণ চায়। controls.json-এর মতো ম্যাপিং সৎ উত্তর দেয়: কী ম্যাপ করা, কী প্রমাণিত, আর কী খোলা।
সাধারণ ভুল
- নীতিতে ম্যাপ করেই থেমে যাওয়া। "আমরা O2 মানি" কিছুই বলে না, যতক্ষণ না একটা নিয়ন্ত্রণ ও রেকর্ড আছে। শিকলটা সম্পূর্ণ করুন।
- স্বেচ্ছামূলক নির্দেশনার জন্য "compliant" লেখা। এতে এমন আইনি মর্যাদা দাবি করা হয় যা নেই। "aligned with" লিখুন আর ম্যাপিং দেখান।
- GenAI-র বারোটা ক্ষেত্রকে চেকলিস্ট ভাবা। এগুলো শব্দভান্ডার; প্রাসঙ্গিকতা আর কারণ লিখে রাখুন।
- ম্যাপ-না-হওয়া উদ্বেগে জোর করে লেবেল লাগানো। ওটাকে চিহ্নিত রেখে আলোচনা করুন।
- তারিখ ছাড়া সংস্করণ উদ্ধৃত করা। ফ্রেমওয়ার্ক সংশোধিত হয়; সংস্করণ ও পর্যালোচনার তারিখ লিখে রাখুন।
নিজে চেষ্টা করুন
এই পাতার নেমস্পেস ব্যবহার করুন। অনুশীলনগুলো ১ নম্বর পাতার রেজিস্টারে ফেরে, যেখানে K3 হলো ঝুঁকি R4।
- সহজ। একটা নতুন সারিতে
oecd"O7" আরnist"Monitor" আছে।mapcheck.flagsকী জানাবে আগে অনুমান করুন, তারপর চালান। - মাঝারি। K7 ("Staff worry about job changes") ম্যাপ করুন: একটা OECD নীতি, একটা UNESCO নীতি, একটা NIST ফাংশন ও একটা পরীক্ষাযোগ্য নিয়ন্ত্রণ-লক্ষ্য বাছুন, এবং বলুন আর কী বাকি।
- কঠিন। এমন কোড লিখুন যা Generative AI Profile-এর সেই ঝুঁকির ক্ষেত্রগুলো তালিকা করে যাদের কোনো উদ্বেগ নেই এবং
NOT_RELEVANTডিকশনারিতে লিখিত কারণও নেই। CV-র টুলে যেসব ক্ষেত্র স্পষ্টতই প্রযোজ্য নয় তাদের কারণ লিখুন, এবং বলুন কোনগুলোর জন্য এখনো সিদ্ধান্ত দরকার।
উত্তর
সহজ। দুটো লেবেলই নিজ নিজ তালিকার বাইরে।
bad = {"id": "K8", "concern": "Test", "oecd": "O7", "unesco": "", "nist": "Monitor", "genai": "", "control": "x", "evidence": "y"}
print(mapcheck.flags(bad))["oecd 'O7' is not in that framework's list", "nist 'Monitor' is not in that framework's list"]পাস চেকলিস্ট: দুটো অচেনা লেবেলই ধরা; বোঝা যে স্ক্রিপ্ট নাম মেলায়, ম্যাপিং যুক্তিসংগত কি না তা নয়। দুর্বল উত্তর আশা করে স্ক্রিপ্ট মানের বিচার করবে।
মাঝারি। একটা যুক্তিসংগত ম্যাপিং: O1 (well-being), U9 (awareness and literacy), Govern, লক্ষ্য: "পাইলটের আগে কর্মীদের ব্রিফ করা হয় এবং একজন নির্দিষ্ট ম্যানেজার তাঁদের প্রশ্ন লিখে রাখেন"।
rows[6].update(oecd="O1", unesco="U9", nist="Govern", control="staff briefing before pilot")
print(mapcheck.flags(rows[6]))['MISSING evidence']"unmapped" চিহ্ন চলে গেছে; প্রমাণ এখনো নেই, কারণ ব্রিফিং হয়নি। পাস চেকলিস্ট: বৈধ লেবেল; একজন ব্যক্তি ও একটা রেকর্ডসহ পরীক্ষাযোগ্য লক্ষ্য; প্রমাণ খালি রাখা; উল্লেখ যে অন্য ম্যাপিংও যুক্তিসংগত। দুর্বল উত্তর প্রমাণ বানায় বা বলে "ম্যাপ হয়েছে, তাই শেষ"।
কঠিন।
NOT_RELEVANT = { # our judgement, to revisit if the scope changes
"CBRN information or capabilities": "a CV tool has no such content",
"dangerous, violent or hateful content": "output is a three-line summary of a CV",
"obscene, degrading and/or abusive content": "output is a three-line summary of a CV",
}
named = {c["genai"] for c in rows if c["genai"]}
undecided = [r for r in mapcheck.GENAI_RISKS if r not in named and r not in NOT_RELEVANT]
print(len(undecided), "areas still need a decision:")
for r in undecided:
print(" -", r)5 areas still need a decision:
- environmental impacts
- information integrity
- information security
- intellectual property
- value chain and component integrationপাস চেকলিস্ট: কারণগুলো টুলের জন্য নির্দিষ্ট; যে ক্ষেত্রগুলো টুলকে ছোঁয় (যেমন তথ্যের সততা ও তথ্য-নিরাপত্তা) সেগুলো অনির্ধারিত থাকে; পরিবেশগত প্রভাব মূল্যায়ন ছাড়া বাতিল হয়নি। দুর্বল উত্তর তালিকা খালি করতে সবকিছু "প্রাসঙ্গিক নয়" করে দেয়।
সারসংক্ষেপ
- কাজে লাগার মতো নিয়ন্ত্রণ-লক্ষ্য বলে কে কী যাচাই করেন, কত ঘন ঘন, পাস-শর্ত কী, আর রেকর্ড কোনটা।
- একই উদ্বেগের জন্য OECD, UNESCO ও NIST আলাদা শব্দভান্ডার দেয়; একটা বাছুন, তা বলুন, এবং সংস্করণ ও তারিখ লিখে রাখুন।
- NIST-এর চার ফাংশন প্রশ্ন করার একটা উপায়, আর Generative AI Profile-এর বারোটা ক্ষেত্র ভাবার মতো ঝুঁকির তালিকা; দুটোই স্বেচ্ছামূলক।
- নির্দেশনা, সার্টিফিকেশন ও আইনি কমপ্লায়েন্স আলাদা দাবি; শুধু সেটাই লিখুন যার প্রমাণ আপনার আছে।
- ISO/IEC 42001 সংস্থার ম্যানেজমেন্ট সিস্টেম নিয়ে; এর অবস্থা iso.org-এ দেখুন। স্ক্রিপ্ট ম্যাপ-না-হওয়া ও প্রমাণ-না-থাকা উদ্বেগ চিহ্নিত করবে, কখনো প্রমাণ বানাবে না।
এরপর: স্ট্যান্ডার্ড, নিয়ন্ত্রণ ও প্রয়োজন ম্যাপিং: কী, কার জন্য এবং কেন প্রযোজ্য স্ট্যান্ডার্ডকে আইন থেকে আলাদা করে এবং একটা ফিচারকে প্রয়োজনীয়তা ও প্রমাণের সঙ্গে মেলায়।