Tensor Cores முதல் Vision Transformer வரை: நவீன CUDA பரிணாமம், ResNet மற்றும் ViT

1980-களின் CPU Die பகுதியின் விளக்கப் படம்; GPU அல்ல.
2015-இலிருந்து இன்று வரை, deep learning கைமுறையாகச் சீரமைக்கப்பட்ட C++ GPU code மற்றும் convolutional வலையமைப்புகளிலிருந்து hardware-இல் துரிதப்படுத்தப்பட்ட matrix engine-களும் Transformer கட்டமைப்புகளுமாகப் பரிணமித்தது. நவீன AI மாதிரிகள் எவ்வாறு வடிவமைக்கப்பட்டு அளவிடப்படுகின்றன (scale) என்பதை இந்த மூன்று மைல்கற்கள் வரையறுக்கின்றன.
1. நவீன CUDA பரிணாமம்: Tensor Cores மற்றும் OpenAI Triton
2012-இல், Alex Krizhevsky சாதாரண CUDA core-களில் தனிப்பட்ட floating-point செயல்களைக் கணக்கிட தாழ்மட்ட CUDA C++ (cuda-convnet) எழுதினார். இன்று, deep learning சிறப்புப் matrix hardware மற்றும் உயர்மட்ட compiler-களைச் சார்ந்துள்ளது.
- CUDA Cores-இலிருந்து Tensor Cores வரை. பாரம்பரிய CUDA core-கள் ஒரு clock cycle-இல் ஒரு scalar பெருக்கலும் ஒரு கூட்டலும் செய்கின்றன. Volta கட்டமைப்பிலிருந்து (2017), NVIDIA Tensor Cores-ஐ அறிமுகப்படுத்தியது; அவை முழுச் சிறிய matrix-களையும் (4×4 அல்லது 16×16 block-கள் போன்றவை) ஒரே clock cycle-இல் பெருக்குகின்றன. நவீன Tensor Cores FP16, BF16, FP8 போன்ற mixed-precision வடிவங்களைப் பயன்படுத்தி, matrix multiplication-களுக்கு பல மடங்கு வேகத்தை (order-of-magnitude speedup) தருகின்றன.
- cuDNN மற்றும் தானியங்கு Kernel தேர்வு. ஆராய்ச்சியாளர்கள் தங்கள் சொந்த C++ convolution-களை எழுதுவதற்குப் பதிலாக, NVIDIA-இன் cuDNN நூலகம் (library) இப்போது நூற்றுக்கணக்கான முன்கூட்டியே compile செய்யப்பட்ட assembly kernel-களைக் கொண்டுள்ளது. Runtime-இல், PyTorch போன்ற framework-கள் உங்கள் குறிப்பிட்ட tensor வடிவத்திற்கு வெவ்வேறு algorithm-களை benchmark செய்து, தானாகவே வேகமான Tensor Core நடைமுறையைத் தேர்ந்தெடுக்கின்றன.
- OpenAI Triton (Python-அடிப்படை GPU Programming). மூல CUDA C++ எழுத, thread index-கள், shared memory bank conflict-கள், warp synchronization ஆகியவற்றைக் கைமுறையாக நிர்வகிக்க வேண்டும். OpenAI வெளியிட்ட Triton, ஆராய்ச்சியாளர்கள் உயர்-செயல்திறன் GPU kernel-களை நேரடியாக Python-இல் எழுத அனுமதிக்கிறது. நீங்கள் block மட்டத்தில் (தரவின் tile-கள்) செயல்களை வரையறுக்கிறீர்கள்; Triton compiler தானாகவே memory coalescing, shared memory tiling, Tensor Core scheduling ஆகியவற்றைக் கையாளுகிறது — பெரும்பாலும் கைமுறையாகச் சீரமைக்கப்பட்ட CUDA C++-ஐச் சமன் செய்கிறது அல்லது மிஞ்சுகிறது.
2. ResNet Skip Connection-களும் Backpropagation ஓட்டமும்
ResNet-க்கு முன் (2015), ~20-க்கும் மேற்பட்ட convolutional layer-களை அடுக்குவது training பிழையை உயர்த்தியது. Gradient-கள் பல்டஜன் பெருக்கல் படிகள் வழியாகப் பின்னோக்கிப் பயணித்தபோது, அவை பூச்சியத்தை நோக்கிச் சுருங்கின (vanishing gradients) அல்லது நிலையற்றன.
- Raw Output-களுக்குப் பதிலாக Residual-களைக் கற்றல். சாதாரண network block-இல், அடுக்கப்பட்ட layer-கள் input x-இலிருந்து நேரடி mapping H(x)-ஐக் கற்க முயல்கின்றன. ResNet, மூல input x-ஐ நேரடியாக block-இன் output-உடன் கூட்டும் ஒரு skip connection (identity shortcut) அறிமுகப்படுத்துகிறது:
y=F(x)+x
இங்கு, F(x) என்பது அடுக்கப்பட்ட convolutional layer-களைக் குறிக்கிறது. முழுப் பிரதிநிதித்துவத்தையும் (representation) புதிதாக உருவாக்குவதற்குப் பதிலாக, layer-கள் residual-ஐ (F(x) = y - x என்ற சிறிய சரிசெய்தல்) மட்டுமே கற்க வேண்டும். ஒரு layer தேவையில்லையென்றால், வலையமைப்பு F(x)-ஐ பூச்சியத்தை நோக்கி எளிதாகத் தள்ளி, தூய்மையான identity pass-through-ஐ விட்டுவிட முடியும்.
- தடையற்ற Gradient நெடுஞ்சாலை. Backpropagation-இன் போது, chain rule input x-ஐப் பொறுத்து loss-இன் (ℒ) gradient-ஐக் கணக்கிடுகிறது:
(∂ L)/(∂ x)=(∂ L)/(∂ y)((∂ F(x))/(∂ x)+1)
Identity shortcut உருவாக்கும் + 1 உறுப்பினால், மேல்நோக்கு gradient (∂ℒ/∂y) ∂F(x)/∂x-இல் உள்ள சிறிய weight matrix-களால் சுருங்காமல் நேரடியாக முந்தைய layer-களுக்குப் பின்னோக்கி ஓடுகிறது. இது gradient-கள் 100+ அல்லது 1,000+ layer-கள் வழியாகவும் தூய்மையாகப் பரவ அனுமதிக்கிறது.
3. CNN-களிலிருந்து Vision Transformer-களுக்கு (ViT) மாற்றம்
AlexNet-க்குப் பின் கிட்டத்தட்ட ஒரு தசாப்தத்துக்கு, Convolutional Neural Network-கள் (CNN) சிறிய உள்ளூர் filter-களைப் படங்களின் மீது நகர்த்துவதன் மூலம் computer vision-இல் ஆதிக்கம் செலுத்தின. 2020-இல், Google Vision Transformer (ViT)-ஐ அறிமுகப்படுத்தி, இயற்கை மொழி செயலாக்கத்திலிருந்து (NLP) Transformer கட்டமைப்பைப் படங்களுக்குத் தகவமைத்தது.
| அம்சம் | Convolutional Neural Network-கள் (CNNs) | Vision Transformer-கள் (ViT) |
|---|---|---|
| Input செயலாக்கம் | நகரும் filter-களை (எ.கா., 3×3) பயன்படுத்தி முழு 2D படக் கட்டத்தையும் செயலாக்குகிறது. | படத்தை நிலையான அளவு patch-களாக (எ.கா., 16×16 pixel-கள்) பிரித்து, அவற்றை token-களின் தொடராகச் சமப்படுத்துகிறது. |
| Receptive Field | முதலில் உள்ளூர். ஆரம்ப layer-கள் அயல் pixel-களை மட்டுமே காண்கின்றன; global சூழல் ஆழமான layer-களில் மெதுவாக உருவாகிறது. | உடனடியாக global. Self-attention ஒவ்வொரு பட patch-ஐயும் மற்ற ஒவ்வொரு patch-உடனும் Layer 1-இலிருந்தே இணைக்கிறது. |
| Inductive Bias | அதிகம். Translation invariance மற்றும் 2D இடவியல் உள்ளூர்மை பற்றிய உள்ளமைந்த அனுமானங்கள் CNN-கள் சிறிய dataset-களிலும் நன்றாகக் கற்க உதவுகின்றன. | குறைவு. உள்ளமைந்த 2D இடவியல் விதிகள் இல்லை (positional embedding-களைச் சார்ந்துள்ளது); பார்வை அமைப்பைக் கற்கப் பெரிய dataset-கள் தேவை. |
| Hardware அளவீடு | சிறப்புப் convolution kernel-களையும் சிக்கலான நினைவக அணுகல் முறைகளையும் சார்ந்துள்ளது. | கிட்டத்தட்ட முழுவதும் dense matrix multiplication-களை (GEMM) சார்ந்துள்ளது; அவை நவீன GPU Tensor Cores-ஐ அதிகபட்ச திறமையில் நிரப்புகின்றன. |
- ViT-கள் நவீன AI-ஐ ஏன் கைப்பற்றின. CNN-கள் இலகுரக mobile மற்றும் edge சாதனங்களுக்குத் திறமையானவையாகவே இருந்தாலும், Vision Transformer-கள் நூற்றுக்கணக்கான மில்லியன் படங்களில் train செய்யப்படும்போது மிகச் சிறப்பாக அளவிடப்படுகின்றன (scale). மேலும், ViT-கள் படங்களை token தொடர்களாக — உரை, ஒலி ஆகியவற்றுக்குப் பயன்படுத்தப்படும் அதே வடிவத்தில் — குறிப்பிடுவதால், அவை நவீன multimodal AI மாதிரிகள் (GPT-4o, Gemini போன்றவை) பார்வை மற்றும் மொழியை ஒரே ஒருங்கிணைந்த கட்டமைப்புக்குள் செயலாக்க வழிவகுத்தன.