AI-তে প্রাইভেসি কেন একটি বিশেষ সমস্যা
এই পাঠে যা শিখবেন
- কেন AI-তে প্রাইভেসি সাধারণ ডেটাবেজ-সিকিউরিটির চেয়ে ভিন্ন এক সমস্যা
- ডেটা-ক্ষুধা (data hunger), sensitive-attribute ইনফারেন্স, এবং রি-আইডেন্টিফিকেশন — তিনটি মূল ঝুঁকি
- একটি সত্যিকারের ডেমো — কীভাবে seemingly-unrelated ফিচার থেকে sensitive attribute অনুমান করা যায়
- এই ঝুঁকিগুলো পরবর্তী পাঠগুলোতে (কনসেন্ট, k-অ্যানোনিমিটি, ডিফারেনশিয়াল প্রাইভেসি) কীভাবে মোকাবেলা করা হয় তার একটি প্রাথমিক ধারণা
১ · সাধারণ সফটওয়্যার-প্রাইভেসি বনাম AI-প্রাইভেসি
সাধারণ সফটওয়্যারে প্রাইভেসি সমস্যা মূলত অ্যাক্সেস-কন্ট্রোল নিয়ে — কে কোন ডেটা দেখতে/পড়তে পারবে তা নিয়ন্ত্রণ করা। AI-তে এই সমস্যাটি আরও গভীর, কারণ মডেল শুধু ডেটা সংরক্ষণ করে না — এটি ডেটা থেকে প্যাটার্ন শেখে, এবং সেই শেখা প্যাটার্ন প্রায়ই মূল ডেটার চেয়েও বেশি তথ্য প্রকাশ করতে পারে।
ভালো পারফরম্যান্সের জন্য AI মডেল প্রায়ই বিপুল পরিমাণ প্রশিক্ষণ ডেটা দাবি করে — যত বেশি ডেটা জড়ো হয়, তত বেশি মানুষের তথ্য একই জায়গায় কেন্দ্রীভূত হয়, এবং একটি লিক/মিসইউজের প্রভাবও তত বড়।
মডেল কখনো সরাসরি জিজ্ঞেস না করেও, correlated প্যাটার্নের মাধ্যমে স্বাস্থ্য, ধর্মীয় বিশ্বাস, যৌন-প্রবণতা, বা রাজনৈতিক মতাদর্শের মতো sensitive তথ্য অনুমান করতে পারে — নিচের ডেমোতে এটি সত্যিকারের গণনা দিয়ে দেখানো হয়েছে।
একটি ডেটাসেট থেকে নাম/ঠিকানা সরিয়ে "অ্যানোনিমাইজ" করা হলেও, বাকি থাকা বৈশিষ্ট্যের সমন্বয় (কুয়াসি-আইডেন্টিফায়ার) অন্য কোনো পাবলিক ডেটাসেটের সাথে মিলিয়ে ব্যক্তিকে আবার শনাক্ত করা সম্ভব হতে পারে (L16-এ বিস্তারিত)।
Ethics in Computing & AI Safety একটি বিস্তৃত সার্ভে কোর্স হিসেবে প্রাইভেসি নিয়ে সংক্ষিপ্তভাবে আলোচনা করে — এই কোর্স AI-স্পেসিফিক প্রাইভেসি ঝুঁকি (ইনফারেন্স, k-অ্যানোনিমিটি, ডিফারেনশিয়াল প্রাইভেসি) নিয়ে সম্পূর্ণ একটি মডিউল জুড়ে গভীরে যায়।
২ · একটি সত্যিকারের ডেমো — seemingly-unrelated ফিচার থেকে ইনফারেন্স
ধরা যাক একটি অ্যাপ কখনো ব্যবহারকারীর কোনো দীর্ঘমেয়াদি স্বাস্থ্য-অবস্থা আছে কি না তা সরাসরি জিজ্ঞেস করে না — শুধু "গভীর রাতের ব্রাউজিং সময়" ও "গ্রোসারি-ডেলিভারি অর্ডারের সংখ্যা" ট্র্যাক করে (উভয়ই আপাতদৃষ্টিতে স্বাস্থ্যের সাথে সম্পূর্ণ অসংশ্লিষ্ট মনে হয়)। নিচের কোডে আমরা সিন্থেটিক ডেটায় একটি কাল্পনিক কিন্তু বাস্তবসম্মত করিলেশন বসিয়েছি (দীর্ঘমেয়াদি অবস্থাসম্পন্ন ব্যবহারকারীদের গড়ে রাতে বেশি সময় সক্রিয় থাকা ও বেশি ডেলিভারি অর্ডার করার প্রবণতা), এবং দেখাচ্ছি — শুধু গণনা-ভিত্তিক থ্রেশহোল্ড রুল দিয়েই sensitive attribute-টি বেসলাইনের চেয়ে অনেক ভালোভাবে অনুমান করা সম্ভব।
import random
random.seed(7)
def generate_people(n):
people = []
for _ in range(n):
# sensitive attribute: দীর্ঘমেয়াদি স্বাস্থ্য-অবস্থা আছে কি না -- অ্যাপ কখনো সরাসরি জিজ্ঞেস করে না
has_condition = random.random() < 0.30
if has_condition:
# সিন্থেটিক প্যাটার্ন: condition থাকলে গড়ে রাতের ব্রাউজিং বেশি, গ্রোসারি-ডেলিভারিও বেশি (কাল্পনিক করিলেশন)
late_night_minutes = max(0, random.gauss(85, 20))
grocery_deliveries = max(0, random.gauss(9, 2))
else:
late_night_minutes = max(0, random.gauss(40, 20))
grocery_deliveries = max(0, random.gauss(4, 2))
people.append({
"has_condition": has_condition,
"late_night_minutes": late_night_minutes,
"grocery_deliveries": grocery_deliveries,
})
return people
train = generate_people(300)
test = generate_people(300)
# --- মডেল: শুধু counting/গড় দিয়ে শেখা একটি সাধারণ থ্রেশহোল্ড রুল ---
# লক্ষ্য করুন: sensitive attribute কখনো ফিচার হিসেবে দেওয়া হয়নি -- মডেল শুধু late_night_minutes ও grocery_deliveries দেখছে
yes_group = [p for p in train if p["has_condition"]]
no_group = [p for p in train if not p["has_condition"]]
avg_late_yes = sum(p["late_night_minutes"] for p in yes_group) / len(yes_group)
avg_late_no = sum(p["late_night_minutes"] for p in no_group) / len(no_group)
avg_grocery_yes = sum(p["grocery_deliveries"] for p in yes_group) / len(yes_group)
avg_grocery_no = sum(p["grocery_deliveries"] for p in no_group) / len(no_group)
late_threshold = (avg_late_yes + avg_late_no) / 2
grocery_threshold = (avg_grocery_yes + avg_grocery_no) / 2
def infer_condition(p):
# দুটি ফিচারই থ্রেশহোল্ড পার করলে তবেই "condition আছে" ধরে নেওয়া হচ্ছে (রক্ষণশীল রুল)
late_flag = p["late_night_minutes"] >= late_threshold
grocery_flag = p["grocery_deliveries"] >= grocery_threshold
return late_flag and grocery_flag
correct = sum(1 for p in test if infer_condition(p) == p["has_condition"])
accuracy = correct / len(test) * 100
no_condition_count = sum(1 for p in test if not p["has_condition"])
condition_count = len(test) - no_condition_count
baseline_majority = max(no_condition_count, condition_count) / len(test) * 100
print(f"টেস্ট সেটে মোট: {len(test)} জন ({condition_count} জনের condition আছে, {no_condition_count} জনের নেই)")
print(f"শেখা থ্রেশহোল্ড -- late_night: {late_threshold:.1f} মিনিট, grocery: {grocery_threshold:.1f} অর্ডার\n")
print(f"'সবসময় majority-class বলা'-বেসলাইন অ্যাকুরেসি: {baseline_majority:.1f}%")
print(f"শুধু late_night_minutes ও grocery_deliveries দিয়ে ইনফারেন্স-রুলের অ্যাকুরেসি: {accuracy:.1f}%")
print(f"\nমডেল কখনো 'has_condition' ফিচারটি সরাসরি দেখেনি -- তবুও sensitive attribute-টি বেসলাইনের চেয়ে")
print(f"উল্লেখযোগ্যভাবে ভালোভাবে অনুমান করতে পারছে, শুধু দুটি 'অসংশ্লিষ্ট' আচরণগত ফিচার থেকেই।")
AI-তে প্রাইভেসি সুরক্ষা মানে শুধু sensitive ফিল্ড না-সংগ্রহ করা নয় — এর জন্য দরকার এই সচেতনতা যে, যেকোনো পর্যাপ্ত-সমৃদ্ধ আচরণগত ডেটা থেকেই sensitive তথ্য পুনর্গঠিত হতে পারে। পরবর্তী পাঠগুলোতে (L15-L16) এই ঝুঁকি মোকাবেলার জন্য কনসেন্ট, ডেটা মিনিমাইজেশন, k-অ্যানোনিমিটি ও ডিফারেনশিয়াল প্রাইভেসির মতো সুনির্দিষ্ট টুল দেখানো হবে।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ একটি কোম্পানি বলছে, "আমরা কখনো স্বাস্থ্য-তথ্য সংগ্রহ করি না, তাই আমাদের অ্যাপ প্রাইভেসি-নিরাপদ।" উপরের ডেমোর আলোকে এই দাবির সীমাবদ্ধতা কী?
সমস্যা হলো, সরাসরি সংগ্রহ না করলেও অন্য "নিরীহ" আচরণগত ডেটা (ব্রাউজিং সময়, অর্ডার প্যাটার্ন) থেকেই sensitive attribute ইনফার করা সম্ভব — উপরের ডেমো ঠিক এটাই দেখিয়েছে। তাই প্রাইভেসি ঝুঁকি মূল্যায়ন করতে হলে শুধু "কোন ফিল্ড সরাসরি সংগ্রহ করা হচ্ছে" তা দেখা যথেষ্ট নয় — কোন ফিচার-কম্বিনেশন থেকে কী অনুমান করা সম্ভব তাও বিবেচনা করতে হয়।
প্র ০২
উপরের ডেমোতে যদি শুধু late_night_minutes ব্যবহার করা হতো (আর grocery_deliveries
বাদ দেওয়া হতো), তাহলে অ্যাকুরেসির উপর কী প্রভাব পড়বে বলে আপনার ধারণা?
একটি মাত্র ফিচার ব্যবহার করলে সাধারণত সিগন্যাল কমে যায় — দুটি স্বাধীন-করিলেটেড ফিচার একসাথে ব্যবহার করলে ভুল-পজিটিভ/ভুল-নেগেটিভ কমে অ্যাকুরেসি বাড়ে (উপরের কোডে "and" শর্তটি লক্ষ্য করুন)। এটাই দেখায় কেন বাস্তব ইনফারেন্স-ঝুঁকি ডেটাসেটে যত বেশি ফিচার থাকে তত বাড়ে — প্রতিটি নতুন ফিচার সম্ভাব্য নতুন সিগন্যাল যোগ করতে পারে।
প্র ০৩ একজন ডেভেলপার হিসেবে, একটি নতুন ফিচার (যেমন "ব্যবহারকারী কখন অ্যাপ খোলে") যোগ করার আগে প্রাইভেসি-ইনফারেন্স ঝুঁকি নিয়ে আপনি কী প্রশ্ন নিজেকে করতে পারেন?
কিছু গুরুত্বপূর্ণ প্রশ্ন: এই ফিচার কি কোনো sensitive attribute-এর সাথে করিলেটেড হতে পারে (এমনকি পরোক্ষভাবে)? অন্য ফিচারের সাথে মিলিয়ে কী নতুন কিছু অনুমান করা সম্ভব হয়ে যাচ্ছে? এই ইনফারেন্স ক্ষমতা কি ব্যবহারকারীর প্রত্যাশার সাথে সামঞ্জস্যপূর্ণ, নাকি এটি তাদের অজান্তেই ঘটছে? এই প্রশ্নগুলো L15-এ কনসেন্ট ও পারপাস-লিমিটেশনের সাথে যুক্ত হবে।
অনুশীলন
-
চিন্তা করুন: উপরের কোডে
infer_condition()-এ "and" এর বদলে "or" ব্যবহার করলে (অর্থাৎ, দুটির যেকোনো একটি থ্রেশহোল্ড পার করলেই "condition আছে" ধরা হবে) অ্যাকুরেসির উপর কী প্রভাব পড়বে বলে আপনার ধারণা?"or" ব্যবহার করলে মডেল অনেক বেশি মানুষকে "condition আছে" বলে ভুল করে চিহ্নিত করবে (ভুল-পজিটিভ বাড়বে), কারণ শুধু একটি ফিচার এলোমেলোভাবে থ্রেশহোল্ড পার করলেই যথেষ্ট হয়ে যাবে। যেহেতু বেশিরভাগ মানুষেরই condition নেই (৭০%), এই বাড়তি ভুল-পজিটিভ সামগ্রিক অ্যাকুরেসি কমিয়ে দেবে।
-
পরীক্ষা করুন: উপরের কোড সেলে
infer_condition()ফাংশনে "and"-কে "or"-এ পরিবর্তন করে Run চেপে আপনার অনুমান যাচাই করুন।"or" ব্যবহার করলে অ্যাকুরেসি লক্ষণীয়ভাবে কমে যায় (যদিও তখনো বেসলাইনের কাছাকাছি বা তার চেয়ে কিছুটা ভালো/খারাপ হতে পারে, সিড অনুযায়ী) — এটি দেখায় কীভাবে একই ফিচার-সেট থেকে ভিন্ন সিদ্ধান্ত-নিয়ম (decision rule) দিয়ে সম্পূর্ণ ভিন্ন মানের ইনফারেন্স পাওয়া যায়, এবং একটি প্রকৃত আক্রমণকারী সবসময় সবচেয়ে কার্যকর রুলটি খুঁজে নেওয়ার চেষ্টা করবে।
আরও পড়ুন · 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, এবং আরও অনেক কোর্স — সব এক জায়গায়।