ZeRO এবং Sharded Optimizers
জিরো (জিরো রিডানডেন্সি অপ্টিমাইজার) অপ্টিমাইজার স্টেট, গ্রেডিয়েন্ট এবং জিপিইউ জুড়ে ওজন শার্ড করে ডেটা সমান্তরালতার অযথা মেমরি ডুপ্লিকেশন দূর করে।
ওভারভিউ
It lets you train enormous models with the simplicity of data parallelism but a fraction of the per-GPU memory.
গভীর ডুব
সাধারণ ডেটা সমান্তরালে, প্রতিটি জিপিইউ অপ্টিমাইজার স্টেট, গ্রেডিয়েন্ট এবং প্যারামিটারের একটি অপ্রয়োজনীয় পূর্ণ কপি সঞ্চয় করে, যা অত্যন্ত অপব্যয়, বিশেষ করে অ্যাডামের জন্য, যেখানে অপ্টিমাইজার স্টেট নিজেই মডেলের আকারের কয়েকগুণ হতে পারে। ZeRO, DeepSpeed-এ Microsoft দ্বারা প্রবর্তিত, GPU গুলি জুড়ে এই টেনসরগুলিকে বিভাজন করে এই অপ্রয়োজনীয়তা দূর করে যাতে প্রতিটি ডিভাইসের শুধুমাত্র একটি স্লাইস থাকে। ZeRO তিনটি প্রগতিশীল পর্যায়ে আসে: পর্যায় 1 শার্ডের অপ্টিমাইজার অবস্থা, পর্যায় 2 গ্রেডিয়েন্ট শার্ডিং যোগ করে, এবং পর্যায় 3 পরামিতিগুলিকে নিজেরাই শার্ড করে। প্রয়োজন অনুযায়ী, জিপিইউগুলি যোগাযোগের মাধ্যমে অনুপস্থিত স্লাইসগুলি সংগ্রহ করে, গণনা করে, তারপরে ছেড়ে দেয়। ফলাফলটি GPU প্রতি নাটকীয়ভাবে কম মেমরি, বিলিয়ন- থেকে ট্রিলিয়ন-প্যারামিটার প্রশিক্ষণ সক্ষম করে, ডেটা সমান্তরালতার সহজ প্রোগ্রামিং মডেল বজায় রেখে।
প্রযুক্তিগত অন্তর্দৃষ্টি
ZeRO মেমরি সঞ্চয়ের জন্য অতিরিক্ত যোগাযোগের ব্যবসা করে। পর্যায় 3-এ, একটি স্তরের ফরোয়ার্ড পাসের আগে, একটি অল-গেদার প্রতিটি GPU-তে সেই স্তরটির সম্পূর্ণ প্যারামিটার সংগ্রহ করে; পরে অ-মালিকানাধীন স্লাইস মেমরি পুনরুদ্ধার করার জন্য বাতিল করা হয়। গ্রেডিয়েন্টগুলি হ্রাস-বিক্ষিপ্ত হয় তাই প্রতিটি GPU তার মালিকানাধীন প্যারামিটারগুলির সাথে মেলে শুধুমাত্র গ্রেডিয়েন্ট স্লাইস রাখে। PyTorch-এর FSDP (Fully Sharded Data Parallel) একই ধারণা স্থানীয়ভাবে প্রয়োগ করে, মডিউলগুলিকে শার্ডে মোড়ানো এবং ফ্লাইতে পুনরায় শার্ড করে।
কৌশলগত প্রভাব
খরচ ও বাজেট
আর্কিটেকচারের সিদ্ধান্তগুলি বছরের পর বছর ধরে কর্মক্ষমতা এবং অপারেটিং খরচ চালায়।
সুস্পষ্ট সিদ্ধান্ত
কারিগরি শিক্ষা দলগুলোকে সঠিক স্ট্যাক বেছে নিতে সাহায্য করে, শুধু নতুনটি নয়।
মান নিয়ন্ত্রণ
ভালো ইঞ্জিনিয়ারিং পছন্দ উৎপাদনে নির্ভরযোগ্যতার ঘটনা কমিয়ে দেয়।
ZeRO এবং Sharded Optimizers এর ভবিষ্যত
শার্ডিং একটি বহিরাগত বিকল্পের পরিবর্তে বড় আকারের প্রশিক্ষণের জন্য ডিফল্ট হয়ে উঠছে। অফলোডিং (জিরো-ইনফিনিটির মাধ্যমে সিপিইউ বা NVMe-তে স্লাইসগুলি পুশ করা), তাদের খরচ লুকাতে গণনার সাথে অল-গেদার এবং কম-স্ক্যাটারের আরও ভাল ওভারল্যাপ এবং টেনসর এবং পাইপলাইন সমান্তরালতার সাথে সমন্বয়ের আশা করুন। মডেলগুলি যতই বাড়তে থাকে, মেমরি-দক্ষ শার্ডেড অপ্টিমাইজারগুলি তাদের বাস্তবসম্মত হার্ডওয়্যার বাজেটে ফিট করার জন্য কেন্দ্রীয়।
বাস্তব-বিশ্ব বাস্তবায়ন
ডিপস্পিড জিরো স্টেজ 2 ব্যবহার করে একটি মাল্টি-বিলিয়ন-প্যারামিটার ল্যাঙ্গুয়েজ মডেলকে ফাইন-টিউন করা হচ্ছে যা অন্যথায় GPU মেমরিকে উপচে পড়বে।
PyTorch FSDP-এর সাথে প্রশিক্ষণ, যা GPU গুলি জুড়ে প্যারামিটার, গ্রেডিয়েন্ট এবং অপ্টিমাইজার স্টেটকে শার্ড করে এবং চাহিদা অনুযায়ী প্রতি স্তরে সেগুলি সংগ্রহ করে।
সিপিইউ মেমরিতে অপ্টিমাইজার স্টেট পুশ করার জন্য জিরো-অফলোড প্রয়োগ করা, একটি একক GPU একটি মডেলকে তার VRAM থেকে বহুগুণ বড় প্রশিক্ষণ দিতে দেয়।
GPU এবং CPU মেমরি শেষ হয়ে গেলে NVMe স্টোরেজ থেকে প্যারামিটার শার্ড স্ট্রিম করে ZeRO-ইনফিনিটির সাথে একটি ট্রিলিয়ন-প্যারামিটার মডেল স্কেল করা।
ঝুঁকি এবং প্রহরী
একটি বেঞ্চমার্ক অপ্টিমাইজ করা বৃহত্তর সিস্টেম দুর্বলতা আড়াল করতে পারে।
অবকাঠামো এবং রক্ষণাবেক্ষণের খরচ প্রায়ই অবমূল্যায়ন করা হয়।
সিস্টেমগুলি আরও জটিল হওয়ার সাথে সাথে সুরক্ষা এবং পর্যবেক্ষণযোগ্যতার ফাঁক বাড়তে পারে।
বাস্তবায়ন রোডম্যাপ
বাস্তবায়নের আগে বিলম্ব, গুণমান এবং খরচের লক্ষ্য নির্ধারণ করুন।
বাস্তবসম্মত লোড এবং ডেটা অবস্থার অধীনে বেঞ্চমার্ক।
ত্রুটি, প্রবাহ, এবং ব্যবহারকারীর প্রভাবের জন্য যন্ত্র পর্যবেক্ষণ।
স্কেল করার আগে রোলব্যাক এবং ঘটনার প্রতিক্রিয়া পাথ প্রস্তুত করুন।
অন্বেষণ চালিয়ে যান
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the ZeRO and Sharded Optimizers quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
পরবর্তী গাইড
Lookahead এবং Lion Optimizers
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
What is ZeRO and Sharded Optimizers?
জিরো (জিরো রিডানডেন্সি অপ্টিমাইজার) অপ্টিমাইজার স্টেট, গ্রেডিয়েন্ট এবং জিপিইউ জুড়ে ওজন শার্ড করে ডেটা সমান্তরালতার অযথা মেমরি ডুপ্লিকেশন দূর করে। এটি আপনাকে ডেটা সমান্তরালতার সরলতা কিন্তু প্রতি-GPU মেমরির একটি ভগ্নাংশ সহ বিশাল মডেলগুলিকে প্রশিক্ষণ দিতে দেয়।
সমতল ডেটা সমান্তরালতার তুলনায় ZeRO কোন অপ্রয়োজনীয়তা দূর করে?
স্ট্যান্ডার্ড ডেটা সমান্তরালতা প্রতিটি GPU-তে অপ্টিমাইজার অবস্থা, গ্রেডিয়েন্ট এবং ওজনের একটি সম্পূর্ণ অনুলিপি সংরক্ষণ করে; জিরো এগুলিকে শার্ড করে তাই প্রতিটি জিপিইউ শুধুমাত্র একটি স্লাইস রাখে।
কেন অপ্টিমাইজার রাষ্ট্র প্রায়ই অ্যাডাম সঙ্গে সবচেয়ে বড় মেমরি হগ?
অ্যাডাম চলমান অনুমান বজায় রাখে যেমন প্রতি প্যারামিটারে প্রথম এবং দ্বিতীয় মুহূর্ত, যা fp32 মাস্টার ওজনের সাথে মিলিত মডেলের নিজস্ব আকারকে বামন করতে পারে।
ZeRO পর্যায় 3 কি শর্ড করে যা পর্যায় 1 এবং 2 করে না?
স্টেজ 1 শার্ডের অপ্টিমাইজার স্টেট, স্টেজ 2 গ্রেডিয়েন্ট যোগ করে এবং স্টেজ 3 জিপিইউ জুড়ে মডেল প্যারামিটারগুলিকে শার্ড করে আরও এগিয়ে যায়।
ZeRO পর্যায় 3-এ, একটি GPU কীভাবে একটি স্তরের ফরোয়ার্ড পাসের জন্য প্রয়োজনীয় সম্পূর্ণ প্যারামিটারগুলি পায়?
একটি স্তর গণনা করার আগে, একটি অল-গেদার প্রতিটি জিপিইউতে তার সম্পূর্ণ প্যারামিটারগুলি একত্রিত করে; একবার হয়ে গেলে, অ-মালিকানাধীন স্লাইসগুলি মেমরি পুনরুদ্ধার করতে মুক্ত করা হয়।
কোন PyTorch বৈশিষ্ট্য নেটিভভাবে ZeRO-স্টাইল শার্ডিং প্রয়োগ করে?
PyTorch-এর ফুলি শার্ডেড ডেটা প্যারালাল (FSDP) শার্ডের প্যারামিটার, গ্রেডিয়েন্ট এবং অপ্টিমাইজার স্টেট, ফ্লাইতে সেগুলিকে একত্রিত করে পুনরায় ভাগ করে, জিরোকে মিরর করে।