গ্রেডিয়েন্ট চেকপয়েন্টিং
গ্রেডিয়েন্ট চেকপয়েন্টিং (এটিকে অ্যাক্টিভেশন চেকপয়েন্টিংও বলা হয়) হল একটি মেমরি-সেভিং ট্রিক যা ফরওয়ার্ড পাসের সময় বেশিরভাগ মধ্যবর্তী অ্যাক্টিভেশনগুলিকে দূরে ফেলে দেয় এবং ব্যাকপ্রোপাগেশনের সময় ফ্লাইতে তাদের পুনরায় গণনা করে।
ওভারভিউ
It lets you train deeper, larger networks by trading extra compute for much lower memory use.
গভীর ডুব
প্রশিক্ষণ নিউরাল নেটওয়ার্কগুলি সাধারণত ফরোয়ার্ড পাসের সময় প্রতিটি স্তরের সক্রিয়করণ সঞ্চয় করে কারণ ব্যাকপ্রপাগেশন গ্রেডিয়েন্ট গণনা করার জন্য তাদের প্রয়োজন। গভীর মডেলের জন্য এই অ্যাক্টিভেশনগুলি মেমরিতে আধিপত্য বিস্তার করে। গ্রেডিয়েন্ট চেকপয়েন্টিং এর পরিবর্তে শুধুমাত্র 'চেকপয়েন্ট' স্তরগুলির একটি বিরল সেটে অ্যাক্টিভেশন সংরক্ষণ করে এবং বাকিগুলি বাতিল করে। যখন ব্যাকপ্রপ এমন একটি অঞ্চলে পৌঁছায় যার অ্যাক্টিভেশনগুলি বাদ দেওয়া হয়েছিল, তখন এটি তার প্রয়োজনীয়তা পুনরুত্পাদন করতে কেবলমাত্র সেই অংশের জন্য ফরোয়ার্ড গণনাটি পুনরায় চালায়, তারপরে এগিয়ে যায়। চেকপয়েন্টগুলি মোটামুটিভাবে প্রতিটি স্কোয়ার-রুট-অফ-এন স্তরে স্থাপন করা হলে, অ্যাক্টিভেশনের জন্য মেমরি N থেকে স্কোয়ার-রুট-অফ-N অর্ডারে নেমে যায়, যখন কম্পিউট কেবলমাত্র একটি অতিরিক্ত ফরোয়ার্ড পাস দ্বারা বৃদ্ধি পায় (প্রায় 20-30% ধীর)। এটি একই GPU-তে বড় ব্যাচের আকার বা গভীর ট্রান্সফরমারগুলিকে ফিট করা সম্ভব করে তোলে।
প্রযুক্তিগত অন্তর্দৃষ্টি
কৌশলটি সময়-বনাম-মেমরি ট্রেডঅফকে কাজে লাগায়। সমস্ত অ্যাক্টিভেশন সংরক্ষণ করা দ্রুত কিন্তু স্মৃতি-ক্ষুধার্ত; মেমরি ফুরিয়ে যাওয়ার খরচের তুলনায় আধুনিক এক্সিলারেটরে তাদের পুনরায় গণনা করা সস্তা। PyTorch (torch.utils.checkpoint) এর মতো ফ্রেমওয়ার্কগুলি একটি মডিউলকে মোড়ানো হয় যাতে এর ফরোয়ার্ড আউটপুট সংরক্ষণ করা হয় তবে এর অভ্যন্তরীণগুলি পিছনের সময় পুনরায় গণনা করা হয়। চেকপয়েন্ট বসানো বিষয়গুলি নির্বাচন করা: মোটামুটি sqrt(N) সেগমেন্টগুলির একটি সমান ব্যবধান মোট মেমরিকে কমিয়ে দেয় যখন সামগ্রিকভাবে গণনার শুধুমাত্র একটি অতিরিক্ত ফরওয়ার্ড পাস যোগ করে।
কৌশলগত প্রভাব
খরচ ও বাজেট
আর্কিটেকচারের সিদ্ধান্তগুলি বছরের পর বছর ধরে কর্মক্ষমতা এবং অপারেটিং খরচ চালায়।
সুস্পষ্ট সিদ্ধান্ত
কারিগরি শিক্ষা দলগুলোকে সঠিক স্ট্যাক বেছে নিতে সাহায্য করে, শুধু নতুনটি নয়।
মান নিয়ন্ত্রণ
ভালো ইঞ্জিনিয়ারিং পছন্দ উৎপাদনে নির্ভরযোগ্যতার ঘটনা কমিয়ে দেয়।
গ্রেডিয়েন্ট চেকপয়েন্টিংয়ের ভবিষ্যত
গ্রেডিয়েন্ট চেকপয়েন্টিং এখন বড়-মডেল প্রশিক্ষণে আদর্শ এবং ক্রমবর্ধমান স্বয়ংক্রিয় হচ্ছে, লাইব্রেরিগুলি আপনার জন্য সর্বোত্তম চেকপয়েন্ট অবস্থান নির্বাচন করে। এটি স্বাভাবিকভাবেই FSDP, মিশ্র নির্ভুলতা এবং মডেলের আকারকে উচ্চতর করার জন্য অফলোডিংয়ের সাথে যুক্ত করে। 'নির্বাচিত' চেকপয়েন্টিং আশা করুন যা ব্যয়বহুলগুলি (যেমন মনোযোগ ম্যাট্রিক্স) ক্যাশে রাখার সময় শুধুমাত্র সস্তা অপারেশনগুলিকে পুনরায় গণনা করে, এছাড়াও PyTorch-এর torch.compile-এর মতো সরঞ্জামগুলিতে কম্পাইলার-চালিত পদ্ধতিগুলি যা স্বয়ংক্রিয়ভাবে সিদ্ধান্ত নেয় যে সেরা স্পিড-মেমরি ব্যালেন্সের জন্য কী সংরক্ষণ করতে হবে।
বাস্তব-বিশ্ব বাস্তবায়ন
লেয়ার অ্যাক্টিভেশনগুলি বাতিল এবং পুনরায় গণনা করে একটি একক GPU-তে একটি বড় ব্যাচের আকার সহ একটি গভীর ট্রান্সফরমারকে প্রশিক্ষণ দেওয়া।
উচ্চ-রেজোলিউশনের চিত্রগুলিতে ফাইন-টিউনিং ভিশন মডেল যেখানে অ্যাক্টিভেশন মানচিত্রগুলি অন্যথায় GPU মেমরি উপচে পড়বে।
আলিঙ্গন করা ফেস ট্রান্সফরমারগুলি গ্রেডিয়েন্ট_চেকপয়েন্টিং সক্ষম করে = সূক্ষ্ম-টিউনিংয়ের সময় বিলিয়ন-প্যারামিটার মডেলগুলিকে ফিট করতে সত্য৷
FSDP-এর সাথে চেকপয়েন্টিংকে একত্রিত করা যাতে প্যারামিটার এবং অ্যাক্টিভেশন উভয়ই ছোট রাখা হয়, খুব বড় ভাষা মডেলের প্রশিক্ষণ সক্ষম করে।
ঝুঁকি এবং প্রহরী
একটি বেঞ্চমার্ক অপ্টিমাইজ করা বৃহত্তর সিস্টেম দুর্বলতা আড়াল করতে পারে।
অবকাঠামো এবং রক্ষণাবেক্ষণের খরচ প্রায়ই অবমূল্যায়ন করা হয়।
সিস্টেমগুলি আরও জটিল হওয়ার সাথে সাথে সুরক্ষা এবং পর্যবেক্ষণযোগ্যতার ফাঁক বাড়তে পারে।
বাস্তবায়ন রোডম্যাপ
বাস্তবায়নের আগে বিলম্ব, গুণমান এবং খরচের লক্ষ্য নির্ধারণ করুন।
বাস্তবসম্মত লোড এবং ডেটা অবস্থার অধীনে বেঞ্চমার্ক।
ত্রুটি, প্রবাহ, এবং ব্যবহারকারীর প্রভাবের জন্য যন্ত্র পর্যবেক্ষণ।
স্কেল করার আগে রোলব্যাক এবং ঘটনার প্রতিক্রিয়া পাথ প্রস্তুত করুন।
অন্বেষণ চালিয়ে যান
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 Gradient Checkpointing 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
পরবর্তী গাইড
গ্রেডিয়েন্ট জমা
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
What is Gradient Checkpointing?
গ্রেডিয়েন্ট চেকপয়েন্টিং (এটিকে অ্যাক্টিভেশন চেকপয়েন্টিংও বলা হয়) হল একটি মেমরি-সেভিং ট্রিক যা ফরওয়ার্ড পাসের সময় বেশিরভাগ মধ্যবর্তী অ্যাক্টিভেশনগুলিকে দূরে ফেলে দেয় এবং ব্যাকপ্রোপাগেশনের সময় ফ্লাইতে তাদের পুনরায় গণনা করে। এটি আপনাকে অনেক কম মেমরি ব্যবহারের জন্য অতিরিক্ত কম্পিউট ট্রেড করার মাধ্যমে গভীরতর, বৃহত্তর নেটওয়ার্ক প্রশিক্ষণ দিতে দেয়।
মেমরি সংরক্ষণ করার জন্য গ্রেডিয়েন্ট চেকপয়েন্টিং প্রাথমিকভাবে কি ব্যবসা করে?
গ্রেডিয়েন্ট চেকপয়েন্টিং ব্যাকওয়ার্ড পাসের সময় বাতিল করা অ্যাক্টিভেশনগুলি পুনরায় গণনা করে, যথেষ্ট পরিমাণে মেমরি হ্রাসের বিনিময়ে অতিরিক্ত গণনা ব্যয় করে।
কেন অ্যাক্টিভেশনগুলি সাধারণত ফরওয়ার্ড পাসের সময় সংরক্ষণ করা হয়?
ব্যাকপ্রপ ফরওয়ার্ড পাস থেকে মধ্যবর্তী অ্যাক্টিভেশন ব্যবহার করে গ্রেডিয়েন্ট গণনা করে, তাই সেগুলি অবশ্যই পাওয়া যাবে যদি না সেগুলি পুনরায় গণনা করা হয়।
একটি N-লেয়ার নেটওয়ার্কে প্রতিটি sqrt(N) স্তরে চেকপয়েন্ট স্থাপন করা হলে অ্যাক্টিভেশন মেমরির স্কেল মোটামুটিভাবে কীভাবে হয়?
প্রতিটি স্কোয়ার-রুট-অফ-এন স্তরগুলির মধ্যে চেকপয়েন্ট স্পেস করা সঞ্চিত অ্যাক্টিভেশন মেমরিকে ক্রম N থেকে sqrt(N) পর্যন্ত হ্রাস করে।
ভাল-স্থাপিত গ্রেডিয়েন্ট চেকপয়েন্টিং সাধারণত কত অতিরিক্ত কম্পিউট যোগ করে?
ভাল চেকপয়েন্ট বসানো সহ, ওভারহেড মোটামুটি একক অতিরিক্ত ফরোয়ার্ড পাস, প্রায়ই প্রায় 20-30% মন্থর।
PyTorch-এ, কোন ইউটিলিটি সাধারণত একটি মডিউলে গ্রেডিয়েন্ট চেকপয়েন্টিং প্রয়োগ করতে ব্যবহৃত হয়?
torch.utils.checkpoint একটি মডিউল আবৃত করে তাই এর অভ্যন্তরীণ অ্যাক্টিভেশনগুলি সংরক্ষণের পরিবর্তে ব্যাকওয়ার্ডের সময় পুনরায় গণনা করা হয়।