ফেডারেটেড লার্নিং: ডেটা না দেখেই শেখা

· 2 min read · Syed Omar Faruk Towaha
ফেডারেটেড লার্নিং: ডেটা না দেখেই শেখা

ধরুন ঢাকা, চট্টগ্রাম আর রাজশাহীর তিনটা হাসপাতাল মিলে এমন একটা AI মডেল বানাতে চায় যেটা বুকের এক্স-রে দেখে রোগ শনাক্ত করবে। প্রত্যেকের কাছে কিছু ডেটা আছে, কিন্তু একা কারো কাছেই যথেষ্ট না। সমাধান সহজ মনে হয়: সবার ডেটা এক জায়গায় করো।

কিন্তু রোগীর তথ্য অত্যন্ত গোপনীয়। আইন, নৈতিকতা আর রোগীর আস্থা, সবকিছুই বলে এই ডেটা হাসপাতালের বাইরে পাঠানো ঠিক না।

এখানেই ফেডারেটেড লার্নিং (federated learning)।

মূল ধারণা: ডেটা না, মডেল ঘুরে বেড়ায়

One round
ডেটা যার যার জায়গায় থাকে। শুধু শেখার ফল আদান-প্রদান হয়।
  1. একটা কেন্দ্রীয় সার্ভার সবার কাছে একই মডেলের কপি পাঠায়।
  2. প্রতিটা হাসপাতাল নিজের ডেটা দিয়ে নিজের কপিটা কিছুটা প্রশিক্ষণ দেয়।
  3. শুধু মডেলের পরিবর্তনগুলো (updates) সার্ভারে ফেরত যায়, রোগীর ছবি না।
  4. সার্ভার সবার পরিবর্তনের গড় করে একটা উন্নত মডেল বানায়।
  5. এভাবে অনেক রাউন্ড চলে।

রোগীর এক্স-রে কখনো হাসপাতাল থেকে বের হয় না। শুধু "শিক্ষা"টা ভাগ হয়।

দৈনন্দিন জীবনে

আপনার মোবাইলের কিবোর্ড যে পরের শব্দ অনুমান করে, অনেক ক্ষেত্রে সেটাও এভাবে শেখে। আপনার টাইপ করা মেসেজ ফোনেই থাকে; ফোন নিজে শিখে শুধু মডেলের আপডেট পাঠায়, যা লাখো ফোনের আপডেটের সাথে মিশে যায়।

কেন এটা সহজ না

সবার ডেটা এক রকম না। ঢাকার হাসপাতালে হয়তো বয়স্ক রোগী বেশি, অন্য হাসপাতালে শিশু বেশি। একজনের ফোনে বাংলা বেশি লেখা হয়, আরেকজনের ইংরেজি। এমন ভিন্ন ডেটা থেকে আসা আপডেটগুলো মডেলকে ভিন্ন ভিন্ন দিকে টানে, ফলে শেখা ধীর হয়, আর কোনো কোনো দলের জন্য মডেল খারাপ কাজ করতে পারে।

যোগাযোগের খরচ। বড় মডেল বারবার পাঠানো ব্যয়বহুল, বিশেষ করে দুর্বল ইন্টারনেটে বা যন্ত্রগুলো সবসময় অনলাইনে না থাকলে।

আপডেট থেকেও তথ্য ফাঁস হতে পারে। মডেলের আপডেট কাঁচা ডেটা না হলেও, চতুর আক্রমণে কখনো কখনো এর থেকে প্রশিক্ষণের ডেটা সম্পর্কে কিছু অনুমান করা যায়। তাই সাথে ব্যবহার হয়:

কেউ ইচ্ছা করে খারাপ আপডেট পাঠাতে পারে। একে বলে পয়জনিং আক্রমণ। এর বিরুদ্ধেও বিশেষ পদ্ধতি আছে।

IoT আর ব্যবসায়

হাজারো সেন্সর, স্মার্ট মিটার, কারখানার যন্ত্র নিজেরা স্থানীয়ভাবে শিখে শুধু সারসংক্ষেপ পাঠাতে পারে। এতে ব্যান্ডউইথ বাঁচে, গোপনীয়তাও রক্ষা হয়। বিভিন্ন কোম্পানি বা ব্যাংক নিজেদের গ্রাহকের তথ্য না দিয়েও জালিয়াতির প্যাটার্ন একসাথে শিখতে পারে। এই ক্ষেত্রটা নিয়ে আমি নিজে কাজ করেছি, আর এর সম্ভাবনা আমাকে এখনো মুগ্ধ করে।

শেষ কথা

ফেডারেটেড লার্নিং আমাদের একটা পুরনো দ্বন্দ্বের মাঝামাঝি একটা পথ দেখায়: একসাথে শিখলে লাভ, কিন্তু তথ্য গোপন রাখা জরুরি। এটা বিনামূল্যে আসে না; নির্ভুলতা আর জটিলতায় কিছুটা দাম দিতে হয়। কিন্তু যে তথ্য কখনো এক জায়গায় জড়ো করা উচিত না, সেখানে এই দাম দেওয়াই বুদ্ধিমানের কাজ। একসাথে শিখি, যার যার গোপন কথা যার যার কাছে থাকুক।

// related

// prefer the terminal?

Open the terminal blog and type read federated-learning-data-na-dekhei-shekha.