AlexNet: 2012 সালের সাফল্যের পেছনের CUDA ইঞ্জিনিয়ারিং

2012 সালে AlexNet-এর সাফল্য প্রমাণ করে যে CUDA-সক্ষম GPU-র সঙ্গে যুক্ত ডিপ নিউরাল নেটওয়ার্ক কয়েক দশকের প্রচলিত কম্পিউটার ভিশন ইঞ্জিনিয়ারিংকে ছাড়িয়ে যেতে পারে। ImageNet Large Scale Visual Recognition Challenge (ILSVRC)-এ Alex Krizhevsky, Ilya Sutskever ও Geoffrey Hinton 15.3% টপ-5 ত্রুটির হার অর্জন করেন, যা রানার-আপের 26.2%-কে প্রায় 11 শতাংশ পয়েন্টে পিছনে ফেলে।
হার্ডওয়্যারের বাধা ও সমাধান
তখন PyTorch ও TensorFlow-র মতো ডিপ লার্নিং ফ্রেমওয়ার্ক ছিল না, আর কনজিউমার GPU-র মেমরির সীমা ছিল কঠোর।
- কনজিউমার গেমিং হার্ডওয়্যার: দলটি একটি শোবার ঘরে দুটি কনজিউমার-গ্রেড NVIDIA GTX 580 GPU দিয়ে নেটওয়ার্কটি ট্রেন করে। প্রতিটি কার্ডে ছিল মাত্র 3 GB VRAM, যা 6 কোটি প্যারামিটারের পুরো নেটওয়ার্কটি একটিমাত্র চিপে ধরে রাখার জন্য যথেষ্ট ছিল না।
- CUDA-র মাধ্যমে মডেল প্যারালালিজম: Alex Krizhevsky নেটওয়ার্কটিকে দুটি GPU-জুড়ে লম্বালম্বিভাবে ভাগ করতে কাস্টম CUDA C++ কার্নেল (cuda-convnet) লেখেন। প্রতিটি GPU নিজের 3 GB মেমরি পুলে অর্ধেক নিউরন ও কার্নেল রাখে।
- নির্বাচিত ক্রস-GPU যোগাযোগ: মাদারবোর্ডের PCIe বাসে GPU-গুলোর মধ্যে ডেটা স্থানান্তর ধীর ছিল, তাই Krizhevsky GPU-গুলোকে কেবল নির্দিষ্ট লেয়ারে (যেমন Layer 3) যোগাযোগ করার জন্য প্রোগ্রাম করেন। অন্য লেয়ারগুলো প্রতিটি কার্ডে সম্পূর্ণ স্বাধীনভাবে চলে, ফলে ব্যান্ডউইথের বাধা কমে।
প্রধান আর্কিটেকচারগত সাফল্য
কাঁচা CUDA কম্পিউট ক্ষমতা পাওয়ায় দলটি এমন কয়েকটি গুরুত্বপূর্ণ কৌশল একসঙ্গে ব্যবহার করতে পারে, যা আগে বড় আকারে পরীক্ষা করার জন্য খুব ধীর ছিল:
- গভীর আর্কিটেকচার: AlexNet-এ 8টি শেখার লেয়ার ছিল (5টি কনভলিউশনাল লেয়ার, তারপর 3টি ফুলি কানেক্টেড লেয়ার), যা আগের নিউরাল নেটওয়ার্কের চেয়ে অনেক বেশি গভীর।
- ReLU অ্যাকটিভেশন ফাংশন: প্রচলিত tanh বা sigmoid গণিতের বদলে তারা Rectified Linear Units (ReLU) ব্যবহার করে। CUDA-তে ReLU গণনাগতভাবে সহজ এবং এটি গ্রেডিয়েন্ট বিলীন না হয়ে গভীর নেটওয়ার্ককে প্রায় ছয় গুণ দ্রুত ট্রেন হতে দেয়।
- ডেটা অগমেন্টেশন ও ড্রপআউট: GPU যখন ম্যাট্রিক্স গণিত করছিল, CPU তখন ওভারফিটিং ঠেকাতে রিয়েল-টাইমে ছবির রূপান্তর (ক্রপ ও ফ্লিপ) তৈরি করে। তারা Dropout-ও প্রয়োগ করে, যেখানে ট্রেনিংয়ের সময় এলোমেলোভাবে নিউরন বন্ধ করা হয় যাতে নেটওয়ার্ক মজবুত বৈশিষ্ট্য শেখে।
কেন এটি ডিপ লার্নিং বিপ্লবের সূচনা করল
2012 সালের সেপ্টেম্বরের আগে বেশিরভাগ কম্পিউটার ভিশন গবেষক প্রান্ত ও আকার শনাক্ত করতে হাতে তৈরি অ্যালগরিদম (যেমন SIFT ও HOG)-এর ওপর নির্ভর করতেন এবং ডিপ নিউরাল নেটওয়ার্ককে একটি অচলায়তন তত্ত্ব মনে করতেন।
- ট্রেনিং সময়: কাস্টম CUDA অপ্টিমাইজেশন থাকা সত্ত্বেও 12 লক্ষ উচ্চ-রেজোলিউশন ছবিতে AlexNet ট্রেন করতে 5 থেকে 6 দিন লেগেছিল। CUDA ছাড়া একই পরীক্ষা CPU-তে মাসের পর মাস নিত।
- শিল্পে পরিবর্তন: AlexNet যখন ImageNet-এ প্রতিটি প্রচলিত পদ্ধতিকে ছাপিয়ে গেল, পুরো এআই গবেষক সম্প্রদায় প্রায় রাতারাতি হাতে তৈরি ফিচার ছেড়ে দিল। গবেষকরা NVIDIA GPU কিনতে ছুটলেন, ফলে NVIDIA এআই-র দিকে মোড় নেয় এবং দুই বছর পরে cuDNN প্রকাশ করে।