AlexNet: 2012 திருப்புமுனையின் பின்னணியிலுள்ள CUDA பொறியியல்

Processor Die பகுதியின் விளக்கப் படம்; கட்டுரையில் குறிப்பிடப்படும் NVIDIA GPU அல்ல.
2012 இல் AlexNet ஏற்படுத்திய திருப்புமுனை, CUDA வசதியுள்ள GPU-களுடன் இணைந்த Deep Neural Networks பல தசாப்தங்களாக வளர்ந்த வழக்கமான Computer Vision பொறியியலைவிடச் சிறப்பாகச் செயல்பட முடியும் என்பதை நிரூபித்தது. ImageNet Large Scale Visual Recognition Challenge (ILSVRC) போட்டியில் அலெக்ஸ் கிரிஷெவ்ஸ்கி (Alex Krizhevsky), இல்யா சுட்ஸ்கெவர் (Ilya Sutskever), ஜெஃப்ரி ஹின்டன் (Geoffrey Hinton) ஆகியோர் Top-5 பிழை விகிதமாக 15.3% பெற்றனர். இரண்டாம் இடத்தின் 26.2%-ஐவிட இது கிட்டத்தட்ட 11 சதவீதப் புள்ளிகள் குறைவாகும்.
வன்பொருள் தடையும் தீர்வும்
அந்த நேரத்தில் PyTorch, TensorFlow போன்ற Deep Learning Frameworks இருக்கவில்லை. நுகர்வோருக்கான GPU-களிலும் கடுமையான நினைவக வரம்புகள் இருந்தன.
- நுகர்வோர் Gaming வன்பொருள்: இரண்டு NVIDIA GTX 580 GPU-களைப் பயன்படுத்தி ஒரு படுக்கையறையில் இந்தக் குழுவினர் Network-க்குப் பயிற்சி அளித்தனர். ஒவ்வொரு Card-இலும் 3 GB VRAM மட்டுமே இருந்தது. 60 மில்லியன் Parameters கொண்ட முழு Network-ஐ ஒரே Chip-இல் வைத்திருப்பதற்கு அது போதவில்லை.
- CUDA மூலம் Model Parallelism: Network-ஐ இரண்டு GPU-களிலும் செங்குத்தாகப் பிரிப்பதற்காக அலெக்ஸ் கிரிஷெவ்ஸ்கி தனிப்பயன் CUDA C++ Kernels (cuda-convnet) எழுதினார். ஒவ்வொரு GPU-உம் பாதி Neurons மற்றும் Kernels-ஐத் தனது 3 GB நினைவகப் பகுதியில் சேமித்தது.
- தேர்ந்தெடுக்கப்பட்ட Cross-GPU தொடர்பு: Motherboard-இன் PCIe Bus வழியாக GPU-களுக்கு இடையே தரவை மாற்றுவது மெதுவாக இருந்ததால், Layer 3 போன்ற குறிப்பிட்ட Layers-இல் மட்டுமே GPU-கள் தொடர்புகொள்ளும் வகையில் கிரிஷெவ்ஸ்கி நிரலாக்கினார். ஏனைய Layers ஒவ்வொரு Card-இலும் முற்றிலும் தனித்தனியாக இயங்கியதால் Bandwidth தடைகள் குறைக்கப்பட்டன.
முக்கிய Architecture முன்னேற்றங்கள்
CUDA-வின் அடிப்படைக் கணிப்புத்திறன் கிடைத்ததால், முன்பு பெருமளவில் சோதிக்க முடியாத அளவுக்கு மெதுவாக இருந்த பல முக்கிய நுட்பங்களை இந்தக் குழுவினர் ஒன்றிணைக்க முடிந்தது:
- ஆழமான Architecture: AlexNet, கற்றுக்கொள்ளும் 8 Layers-ஐ அடுக்கியது. 5 Convolutional Layers-ஐத் தொடர்ந்து 3 Fully Connected Layers இருந்தன. முந்தைய Neural Networks-ஐவிட இது மிகவும் ஆழமானது.
- ReLU Activation Function: வழக்கமான tanh அல்லது sigmoid கணிதத்துக்குப் பதிலாக Rectified Linear Units (ReLU) பயன்படுத்தப்பட்டன. CUDA-வில் ReLU-வின் கணிப்பு எளிமையானது. Gradients மறையாமல், ஆழமான Network-க்கு ஏறத்தாழ ஆறு மடங்கு வேகமாகப் பயிற்சி அளிக்க இது உதவியது.
- Data Augmentation மற்றும் Dropout: GPU-கள் Matrix கணிதத்தைச் செயலாக்கியபோது, Overfitting-ஐத் தடுக்க CPU நிகழ்நேரத்தில் பட மாற்றங்களை, அதாவது Crops மற்றும் Flips-ஐ, உருவாக்கியது. பயிற்சியின்போது Neurons-ஐச் சீரற்ற முறையில் நிறுத்தி Network வலுவான Features-ஐக் கற்கச் செய்யும் Dropout முறையும் பயன்படுத்தப்பட்டது.
இது Deep Learning புரட்சியைத் தூண்டியது ஏன்
2012 செப்டம்பருக்கு முன்பு, பெரும்பாலான Computer Vision ஆராய்ச்சியாளர்கள் விளிம்புகளையும் வடிவங்களையும் கண்டறிய SIFT, HOG போன்ற கையால் வடிவமைக்கப்பட்ட Algorithms-ஐ நம்பியிருந்தனர். Deep Neural Networks பயனற்ற முட்டுச்சந்து கோட்பாடு எனக் கருதப்பட்டன.
- பயிற்சி நேரம்: தனிப்பயன் CUDA உகப்பாக்கம் இருந்தபோதும், உயர் Resolution கொண்ட 1.2 மில்லியன் படங்களில் AlexNet-க்குப் பயிற்சி அளிக்க 5 முதல் 6 நாட்கள் எடுத்தன. CUDA இல்லாவிட்டால், இதே பரிசோதனைக்கு CPU-களில் பல மாதங்கள் எடுத்திருக்கும்.
- துறையின் மாற்றம்: ImageNet-இல் வழக்கமான ஒவ்வொரு முறையையும் AlexNet பெரிதும் விஞ்சியபோது, முழு AI ஆராய்ச்சி சமூகமும் கையால் உருவாக்கப்பட்ட Features-ஐக் கிட்டத்தட்ட ஓரிரவிலேயே கைவிட்டது. NVIDIA GPU-களை வாங்க ஆராய்ச்சியாளர்கள் விரைந்தனர். இது NVIDIA-வை AI நோக்கித் திரும்பவும், இரண்டு ஆண்டுகளுக்குப் பின்னர் cuDNN-ஐ வெளியிடவும் தூண்டியது.