Paper: MICROADAM: Accurate Adaptive Optimization with Low Space Overhead and Provable Convergence

আমরা সবাই জানি অপ্টিমাইজার হলো নিউরাল নেটওয়ার্ক ট্রেনিংয়ের সময় এমন একটি অ্যালগরিদম, যা লস ফাংশন (খরচ) কমিয়ে ওজন (weights) আপডেট করে। এটি গ্র্যাডিয়েন্ট ডিসেন্টের বিভিন্ন সংস্করণ যেমন SGD, Adam, RMSProp ইত্যাদি দিয়ে কাজ করে। আমরা এটাও জানি যে, অপ্টিমাইজারের কাজ হলো দ্রুত ও কার্যকরভাবে সঠিক সমাধানের দিকে মডেলকে নিয়ে যাওয়া।
আমি আজকে আপনাদের MICROADAM এর সাথে পরিচয় করাবো। MICROADAM হলো Adam অপ্টিমাইজারের (Kingma & Ba, 2014) একটি উন্নত সংস্করণ, যা মূলত কম মেমরি খরচে কাজ করার জন্য ডিজাইন করা হয়েছে, অথচ এটি আবার তাত্ত্বিকভাবে প্রমাণিত কনভার্জেন্স নিশ্চয়তা দেয়। মূলত বড় বড় নিউরাল নেটওয়ার্ক যেমন LLM (Large Language Models) বা billion-parameter মডেলের ফাইন-টিউনিং বা প্রি-ট্রেইনিং করতে গিয়ে প্রচুর মেমরি ব্যবহার হয়। MICROADAM এই সমস্যা সমাধান করে।

আপনাদের মনে এখন প্রশ্ন আসতে পারে তাহলে আগের গুলতে সমস্যা কোথায় ছিল?
আসুন এখন এই প্রশ্ন এর উত্তর দেই, প্রথাগত Adam অপ্টিমাইজার যখন কোনো বড় মডেলের সাথে কাজ করে, তখন প্রতিটি প্যারামিটারের জন্য অতিরিক্ত দুইটি পরিসংখ্যান (momentum ও variance) রাখতে হয়। এর মানে হলো পুরো মডেলের ওজনের (weights) তুলনায় দ্বিগুণ মেমরি লাগে। বড় মডেলের (যেমন LLaMA বা BERT) ক্ষেত্রে এটা বিশাল এক বোঝা। এজন্য AdaFactor বা 8-bit Adam-এর মতো অপ্টিমাইজার বানানো হয়েছে, কিন্তু তারা অনেক সময় কনভার্জেন্স বা পারফরম্যান্সে কিছুটা ছাড় দেয়।
তাহলে এখন আপনরা বলবেন MICROADAM কীভাবে আলাদা?
MICROADAM মূলত দুইটা বড় কাজ করে:
১. গ্র্যাডিয়েন্ট কম্প্রেশন: এখানে gradients কে সরাসরি optimizer-এর মধ্যে না দিয়ে সেগুলোকে কম্প্রেস (Compress) করে পাঠানো হয়। দেখুন, MICROADAM বলে— "সব গ্র্যাডিয়েন্ট মানের কি এত প্রয়োজন? নাকি আমরা শুধু সবচেয়ে গুরুত্বপূর্ণ অংশটা নিলেই চলবে?" এজন্য Top-K অপারেটর ব্যবহার করে শুধুমাত্র সবচেয়ে বড় k% gradients রেখে বাকি অংশ ফেলে দেয়।
২. এরর ফিডব্যাক (Error Feedback): যেহেতু কম্প্রেস করে কিছু তথ্য বাদ পড়ে, MICROADAM বলে— "আরে না, আমি ভুলগুলো ধরে রাখবো!" এজন্য একটি ছোট্ট error buffer রাখা হয়, যেটা আবার নিজেও compress হয় (4-bit format)। ফলে, মেমরি আরও কম লাগে।
MICROADAM-এর বুদ্ধি কোথায়?
প্রথাগত error feedback ব্যবস্থায় error buffer অনেক বড় হতো। MICROADAM এটাকে অতি-কম্প্রেস করেছে, তবু কনভার্জেন্স প্রমাণ করে দিয়েছে। MICROADAM বুঝিয়েছে—"error feedback-ও compress করে রাখলে কোনো সমস্যা হয় না, কারণ Author mathematical ভাবে প্রমাণ করেছে যে এই কম্প্রেশনেও convergence বজায় থাকবে।"
এখন থিওরেটিক্যাল কনভার্জেন্স টা একটু বুঝার চেষ্টা করবোঃ MICROADAM প্রমাণ করে দেখিয়েছে যে, AMSGrad এর মতোই এটি non-convex optimization problem এ √(1/T) হারে কনভার্জ করে, অর্থাৎ খুবই standard এবং ভালো। এমনকি Polyak-Lojasiewicz condition থাকলে আরও ভালো কনভার্জেন্স হয়।
বাস্তবে MICROADAM-এর ফলাফলঃ
MICROADAM:
১. 8-bit Adam থেকে কম মেমরি নেয়, আবার GaLore-এর চেয়ে উন্নত পারফরম্যান্স দেয়।
২. LLaMA2-7B/13B বা BERT-Large এর মতো মডেলগুলো একটানা কম মেমরিতে ফাইন-টিউন করতে পারে।
৩. CV-তে যেমন ResNet-50/ImageNet এ SGD থেকে ভালো একুরেসি দেয়, অথচ Adam family traditionally CV-তে দুর্বল ছিল।
কেন এটা গুরুত্বপূর্ণ?
LLM এবং বিশাল স্কেল মডেলগুলোকে ট্রেনিং বা ফাইন-টিউন করতে গেলে মেমরি বড় সমস্যা হয়। MICROADAM এই সমস্যা সমাধান করে কম মেমরিতে উচ্চ মানের ফলাফল এনে দেয়। একইসাথে এটি তাত্ত্বিক নিশ্চয়তাও দিয়ে দিয়েছে যে আপনি convergence নিয়ে চিন্তিত হবেন না।
সুতরাং, MICROADAM এমন একটি স্মার্ট ও কার্যকর অপ্টিমাইজার, যা আধুনিক নিউরাল নেটওয়ার্ক ট্রেনিংয়ে মেমরির সমস্যা দূর করে দ্রুত ও স্থিতিশীল সমাধান এনে দেয়। এটি ঐতিহ্যবাহী Adam-এর মতো দক্ষতা বজায় রেখেও কম মেমরি ব্যবহার করে বড় মডেলগুলোর উন্নত পারফরম্যান্স নিশ্চিত করে। ফলে MICROADAM আজকের বড় স্কেল এলএলএম বা ডিপ লার্নিং মডেলের জন্য এক শক্তিশালী এবং বাস্তবসম্মত সমাধান।
Paper: MICROADAM: Accurate Adaptive Optimization with Low Space Overhead and Provable Convergence
✍️Mejbah Ahammad | COO - Software Intelligence | Intelligence Academy