Tensor Cores, Triton, রেসিডুয়াল নেটওয়ার্ক ও ভিশন ট্রান্সফর্মার

2015 থেকে আজ পর্যন্ত ডিপ লার্নিং হাতে সমন্বয় করা C++ GPU কোড ও কনভোলিউশনাল নেটওয়ার্ক থেকে বিকশিত হয়ে হার্ডওয়্যার-ত্বরিত ম্যাট্রিক্স ইঞ্জিন ও Transformer স্থাপত্যে পৌঁছেছে। এই তিনটি মাইলফলক আধুনিক AI মডেল কীভাবে তৈরি ও বড় পরিসরে চালানো হয় তা নির্ধারণ করে।
1. আধুনিক CUDA-র বিবর্তন: Tensor Cores ও OpenAI Triton
2012 সালে Alex Krizhevsky সাধারণ CUDA কোর জুড়ে পৃথক ফ্লোটিং-পয়েন্ট অপারেশন গণনার জন্য নিম্নস্তরের CUDA C++ (cuda-convnet) লিখেছিলেন। আজ ডিপ লার্নিং বিশেষায়িত ম্যাট্রিক্স হার্ডওয়্যার ও উচ্চস্তরের কম্পাইলারের ওপর নির্ভর করে।
- CUDA কোর থেকে Tensor Cores। প্রচলিত CUDA কোর প্রতি ক্লক সাইকেলে একটি স্কেলার গুণ ও যোগ করে। Volta স্থাপত্য (2017) থেকে NVIDIA Tensor Cores চালু করে, যা এক ক্লক সাইকেলে পুরো ছোট ম্যাট্রিক্স (যেমন 4×4 বা 16×16 ব্লক) গুণ করে। আধুনিক Tensor Cores FP16, BF16 ও FP8-এর মতো মিশ্র-নির্ভুলতার ফরম্যাট ব্যবহার করে, যা ম্যাট্রিক্স গুণে দশগুণের মাত্রায় গতি বৃদ্ধি দেয়।
- cuDNN ও স্বয়ংক্রিয় কার্নেল নির্বাচন। গবেষকদের নিজস্ব C++ কনভোলিউশন লেখার বদলে NVIDIA-র cuDNN লাইব্রেরিতে এখন আগে থেকেই কম্পাইল করা শত শত অ্যাসেম্বলি কার্নেল রয়েছে। রানটাইমে PyTorch-এর মতো ফ্রেমওয়ার্ক আপনার টেনসরের ঠিক সেই আকৃতির জন্য বিভিন্ন অ্যালগরিদমের বেঞ্চমার্ক করে স্বয়ংক্রিয়ভাবে দ্রুততম Tensor Core রুটিন বেছে নেয়।
- OpenAI Triton (Python-ভিত্তিক GPU প্রোগ্রামিং)। সরাসরি CUDA C++ লিখতে হলে থ্রেড ইনডেক্সিং, শেয়ার্ড মেমরি ব্যাংক সংঘাত ও warp সমলয়করণ নিজে সামলাতে হয়। OpenAI প্রকাশিত Triton গবেষকদের সরাসরি Python-এ উচ্চক্ষমতার GPU কার্নেল লিখতে দেয়। আপনি ব্লক স্তরে (ডেটার টাইল) অপারেশন নির্ধারণ করেন এবং Triton কম্পাইলার স্বয়ংক্রিয়ভাবে মেমরি কোয়ালেসিং, শেয়ার্ড মেমরি টাইলিং ও Tensor Core শিডিউলিং সামলায়, যা প্রায়ই হাতে সমন্বয় করা CUDA C++-এর সমতুল্য বা তার চেয়েও ভালো ফল দেয়।
2. ResNet স্কিপ সংযোগ ও ব্যাকপ্রপাগেশন প্রবাহ
ResNet (2015)-এর আগে প্রায় 20টির বেশি কনভোলিউশনাল স্তর সাজালে প্রশিক্ষণের ত্রুটি হঠাৎ বেড়ে যেত। গ্রেডিয়েন্ট কয়েক ডজন গুণের ধাপ পেরিয়ে পেছনে যাওয়ার সময় শূন্যের দিকে ছোট হয়ে যেত (বিলীয়মান গ্রেডিয়েন্ট) অথবা অস্থির হয়ে পড়ত।
- সরাসরি আউটপুটের বদলে অবশিষ্টাংশ শেখা। একটি সাধারণ নেটওয়ার্ক ব্লকে স্তরে স্তরে সাজানো অংশগুলো ইনপুট x থেকে সরাসরি ম্যাপিং H(x) শেখার চেষ্টা করে। ResNet একটি স্কিপ সংযোগ (আইডেন্টিটি শর্টকাট) যোগ করে, যা মূল ইনপুট x-কে সরাসরি ব্লকের আউটপুটে যোগ করে:
y=F(x)+x
এখানে F(x) স্তরে স্তরে সাজানো কনভোলিউশনাল স্তরগুলোকে বোঝায়। পুরো উপস্থাপন শুরু থেকে আবার তৈরির বদলে স্তরগুলোকে শুধু অবশিষ্টাংশটি (ছোট সমন্বয় F(x) = y - x) শিখতে হয়। কোনো স্তরের প্রয়োজন না থাকলে নেটওয়ার্ক সহজেই F(x)-কে শূন্যের দিকে নিতে পারে, যাতে পরিষ্কার আইডেন্টিটি পাস-থ্রু থেকে যায়।
- নিরবচ্ছিন্ন গ্রেডিয়েন্ট মহাসড়ক। ব্যাকপ্রপাগেশনের সময় চেইন রুল ইনপুট x-এর সাপেক্ষে লস (L)-এর গ্রেডিয়েন্ট গণনা করে:
(∂ L)/(∂ x)=(∂ L)/(∂ y)((∂ F(x))/(∂ x)+1)
আইডেন্টিটি শর্টকাট থেকে তৈরি + 1 পদের কারণে আপস্ট্রিম গ্রেডিয়েন্ট ((∂ L)/(∂ y)) সরাসরি আগের স্তরগুলোর দিকে পেছনে প্রবাহিত হয় এবং (∂ F(x))/(∂ x)-এর ছোট ওয়েট ম্যাট্রিক্সে ছোট হয়ে যায় না। এর ফলে 100+ বা এমনকি 1,000+ স্তর পেরিয়েও গ্রেডিয়েন্ট পরিষ্কারভাবে ছড়াতে পারে।
3. CNN থেকে ভিশন ট্রান্সফর্মার (ViT)-এ পরিবর্তন
AlexNet-এর পর প্রায় এক দশক ধরে Convolutional Neural Networks (CNNs) ছবির ওপর ছোট স্থানীয় ফিল্টার সরিয়ে কম্পিউটার ভিশনে প্রাধান্য ধরে রেখেছিল। 2020 সালে Google Vision Transformer (ViT) চালু করে, যেখানে প্রাকৃতিক ভাষা প্রক্রিয়াকরণের Transformer স্থাপত্যকে ছবির উপযোগী করা হয়।
| বৈশিষ্ট্য | Convolutional Neural Networks (CNNs) | Vision Transformers (ViT) |
|---|---|---|
| ইনপুট প্রক্রিয়াকরণ | সরতে থাকা ফিল্টার (যেমন 3×3) দিয়ে পুরো 2D ইমেজ গ্রিড প্রক্রিয়া করে। | ছবিকে নির্দিষ্ট আকারের প্যাচে (যেমন 16×16 পিক্সেল) ভাগ করে টোকেনের একটি ক্রমে সমতল করে। |
| গ্রহণক্ষেত্র | প্রথমে স্থানীয়। প্রাথমিক স্তরগুলো শুধু পাশের পিক্সেল দেখে; গভীর স্তরগুলোয় ধীরে ধীরে সামগ্রিক প্রসঙ্গ গড়ে ওঠে। | শুরু থেকেই সামগ্রিক। সেলফ-অ্যাটেনশন স্তর 1 থেকেই ছবির প্রতিটি প্যাচকে অন্য প্রতিটি প্যাচের সঙ্গে যুক্ত করে। |
| ইনডাক্টিভ বায়াস | বেশি। স্থানান্তর-অপরিবর্তনীয়তা ও 2D স্থানিক স্থানীয়তা সম্পর্কে অন্তর্নিহিত অনুমান ছোট ডেটাসেট থেকেও CNN-কে ভালোভাবে শিখতে সাহায্য করে। | কম। অন্তর্নিহিত 2D স্থানিক নিয়ম নেই (অবস্থানের এমবেডিংয়ের ওপর নির্ভর করে), ফলে দৃশ্যগত গঠন শিখতে বিপুল ডেটাসেট প্রয়োজন। |
| হার্ডওয়্যার স্কেলিং | বিশেষায়িত কনভোলিউশন কার্নেল ও জটিল মেমরি অ্যাক্সেস প্যাটার্নের ওপর নির্ভর করে। | প্রায় পুরোপুরি ঘন ম্যাট্রিক্স গুণের (GEMMs) ওপর নির্ভর করে, যা আধুনিক GPU Tensor Cores-কে সর্বোচ্চ দক্ষতায় পুরোপুরি ব্যস্ত রাখে। |
- আধুনিক AI-তে ViT কেন প্রাধান্য পেল। হালকা মোবাইল ও এজ ডিভাইসের জন্য CNN এখনও দক্ষ হলেও, কয়েকশ মিলিয়ন ছবিতে প্রশিক্ষিত হলে Vision Transformers অনেক ভালোভাবে স্কেল করে। তাছাড়া ViT ছবিকে টোকেনের ক্রম হিসেবে প্রকাশ করে, যা টেক্সট ও অডিওতে ব্যবহৃত ঠিক একই ফরম্যাট। তাই এটি আধুনিক বহুমাধ্যমভিত্তিক AI মডেলকে (যেমন GPT-4o ও Gemini) একটি একীভূত স্থাপত্যের ভেতরেই দৃশ্য ও ভাষা প্রক্রিয়াকরণে সক্ষম করেছে।