ওভারভিউ
কীভাবে AI ফ্রেমওয়ার্কগুলি একটি GPU-তে সীমিত মেমরি বরাদ্দ, পুনঃব্যবহার এবং পুনরুদ্ধার করে এবং কেন অবশিষ্ট ফাঁক (খণ্ডন) মেমরির বাইরের ত্রুটির কারণ হতে পারে এমনকি যখন প্রচুর মেমরি প্রযুক্তিগতভাবে অবশিষ্ট থাকে। এটা বোঝা বড় মডেল ফিট করা এবং রহস্যময় ক্র্যাশ এড়াতে চাবিকাঠি।
GPU মেমরি ম্যানেজমেন্ট এবং ফ্র্যাগমেন্টেশন হল একটি প্রযুক্তিগত বিল্ডিং ব্লক যা মডেলের গুণমান, পরিকাঠামোর খরচ, লেটেন্সি এবং স্কেলে নির্ভরযোগ্যতাকে প্রভাবিত করে।
গভীর ডুব
GPU মেমরি স্থির এবং মূল্যবান: একটি কার্ডে মোট 24, 80, বা 192 GB থাকতে পারে, মডেল ওজন, অ্যাক্টিভেশন, গ্রেডিয়েন্ট, অপ্টিমাইজার স্টেট এবং অস্থায়ী বাফার দ্বারা ভাগ করা। প্রতিটি অপারেশনে মেমরি বরাদ্দ করার জন্য ড্রাইভারকে কল করা ধীর হবে, তাই PyTorch এর মতো ফ্রেমওয়ার্কগুলি একটি ক্যাশিং বরাদ্দকারী ব্যবহার করে যা সামনের দিকে বড় বড় ব্লকগুলিকে ধরে এবং সাব-টুকরোগুলি হস্তান্তর করে, তারপর পুনঃব্যবহারের জন্য মুক্ত করা টুকরোগুলিকে পুলে রাখে। ক্যাচ হল ফ্র্যাগমেন্টেশন: যেহেতু বিভিন্ন আকারের টেনসরগুলি বরাদ্দ করা হয় এবং মুক্ত করা হয়, মুক্ত স্থানটি বিক্ষিপ্ত অংশে ভেঙে যায়। আপনি মোট 5 GB বিনামূল্যে পেতে পারেন তবে একটি সংলগ্ন 2 GB টেনসর বরাদ্দ করতে ব্যর্থ হন কারণ কোনও একক ফাঁক যথেষ্ট বড় নয়। এই কারণেই আপাতদৃষ্টিতে উপলব্ধ হেডরুম থাকা সত্ত্বেও প্রশিক্ষণ মেমরির বাইরের ত্রুটিগুলির সাথে ক্র্যাশ হতে পারে।
প্রযুক্তিগত অন্তর্দৃষ্টি
PyTorch-এর CUDA ক্যাশিং বরাদ্দকারী মেমরিকে ব্লকের স্ট্রিমগুলিতে বিভক্ত করে এবং মুক্ত করা ব্লকগুলিকে পুনরায় ব্যবহার করে যা অনুরোধকৃত আকারের সাথে মেলে, ব্যয়বহুল cudaMalloc/cudaFree কল এড়িয়ে যায়। যখন বিভক্ত ব্লকগুলি পুনরায় সংযুক্ত করা যায় না তখন ফ্র্যাগমেন্টেশন দেখা দেয়। torch.cuda.empty_cache, PYTORCH_CUDA_ALLOC_CONF প্রসারণযোগ্য_সেগমেন্ট বিকল্প এবং মেমরি স্ন্যাপশটগুলির মতো সরঞ্জামগুলি সাহায্য করে৷ নতুন পন্থাগুলি ভার্চুয়াল-মেমরি ধারণাগুলি ধার করে, অ-সংলগ্ন ভৌত পৃষ্ঠাগুলিকে একটি সংলগ্ন ভার্চুয়াল পরিসরে ম্যাপ করে যাতে বড় অনুরোধগুলি খণ্ডিত হওয়া সত্ত্বেও সফল হয়।
GPU মেমরি ম্যানেজমেন্ট এবং ফ্র্যাগমেন্টেশন আয়ত্ত করা
কীভাবে AI ফ্রেমওয়ার্কগুলি একটি GPU-তে সীমিত মেমরি বরাদ্দ, পুনঃব্যবহার এবং পুনরুদ্ধার করে এবং কেন অবশিষ্ট ফাঁক (খণ্ডন) মেমরির বাইরের ত্রুটির কারণ হতে পারে এমনকি যখন প্রচুর মেমরি প্রযুক্তিগতভাবে অবশিষ্ট থাকে। এটা বোঝা বড় মডেল ফিট করা এবং রহস্যময় ক্র্যাশ এড়াতে চাবিকাঠি। GPU মেমরি ম্যানেজমেন্ট এবং ফ্র্যাগমেন্টেশন হল একটি প্রযুক্তিগত বিল্ডিং ব্লক যা মডেলের গুণমান, পরিকাঠামোর খরচ, লেটেন্সি এবং স্কেলে নির্ভরযোগ্যতাকে প্রভাবিত করে। গভীর বোঝাপড়া তৈরি করতে, GPU মেমরি ম্যানেজমেন্ট এবং ফ্র্যাগমেন্টেশনকে একটি অপারেটিং মডেল হিসাবে বিবেচনা করুন, একটি একক বৈশিষ্ট্য নয়: পছন্দসই ফলাফলগুলি সংজ্ঞায়িত করুন, অনুমানগুলি স্পষ্ট করুন এবং সিস্টেমটি নির্ভরযোগ্যভাবে কী করতে পারে তা এখনও বিশেষজ্ঞের রায়ের প্রয়োজন থেকে আলাদা করুন৷
অনুশীলনে, GPU মেমরি ম্যানেজমেন্ট এবং ফ্র্যাগমেন্টেশন ব্যবহার করে শক্তিশালী দলগুলি নির্ভরযোগ্যতা এবং খরচের বিপরীতে আর্কিটেকচার, ডেটা এবং অবকাঠামো পছন্দকে অপ্টিমাইজ করে। তারা সুস্পষ্ট সাফল্যের মাপকাঠি নথিভুক্ত করে, বাস্তবসম্মত ডেটা এবং কর্মপ্রবাহের বিরুদ্ধে পরীক্ষা করে এবং এককালীন বেঞ্চমার্ক জয়ের পরিবর্তে পর্যবেক্ষিত ব্যর্থতার ধরণগুলির উপর ভিত্তি করে পুনরাবৃত্তি করে। এখানেই তাত্ত্বিক বোঝাপড়া পণ্য, নীতি এবং অপারেশন জুড়ে টেকসই সক্ষমতায় পরিণত হয়।
আর্কিটেকচারের সিদ্ধান্তগুলি বছরের পর বছর ধরে কর্মক্ষমতা এবং অপারেটিং খরচ চালায়। একই সময়ে, একটি বেঞ্চমার্ক অপ্টিমাইজ করা বৃহত্তর সিস্টেম দুর্বলতা আড়াল করতে পারে। সবচেয়ে স্থিতিস্থাপক পদ্ধতি হল প্রশাসনিক শৃঙ্খলার সাথে পরীক্ষার গতিকে একত্রিত করা: পাইলট চালান, প্রমাণ ক্যাপচার করুন, সিদ্ধান্তের লগ প্রকাশ করুন এবং মডেল আচরণ, ব্যবহারকারীর প্রত্যাশা এবং নিয়ন্ত্রক প্রয়োজনীয়তাগুলি বিকশিত হওয়ার সাথে সাথে অবিচ্ছিন্ন সুরক্ষাগুলি আপডেট করুন।
কৌশলগত প্রভাব
আর্কিটেকচারের সিদ্ধান্তগুলি বছরের পর বছর ধরে কর্মক্ষমতা এবং অপারেটিং খরচ চালায়।
আর্কিটেকচারের সিদ্ধান্তগুলি বছরের পর বছর ধরে কর্মক্ষমতা এবং অপারেটিং খরচ চালায়। উচ্চ-মানের স্থাপনায়, এটি পরিমাপযোগ্য অপারেটিং নিয়ম, মালিকানার সীমানা এবং পুনরাবৃত্ত পর্যালোচনার আচার-অনুষ্ঠানে অনুবাদ করা হয় যাতে দলগুলি অস্পষ্টতার পরিবর্তে আত্মবিশ্বাস বাড়াতে পারে।
কারিগরি শিক্ষা দলগুলোকে সঠিক স্ট্যাক বেছে নিতে সাহায্য করে, শুধু নতুনটি নয়।
কারিগরি শিক্ষা দলগুলোকে সঠিক স্ট্যাক বেছে নিতে সাহায্য করে, শুধু নতুনটি নয়। উচ্চ-মানের স্থাপনায়, এটি পরিমাপযোগ্য অপারেটিং নিয়ম, মালিকানার সীমানা এবং পুনরাবৃত্ত পর্যালোচনার আচার-অনুষ্ঠানে অনুবাদ করা হয় যাতে দলগুলি অস্পষ্টতার পরিবর্তে আত্মবিশ্বাস বাড়াতে পারে।
ভালো ইঞ্জিনিয়ারিং পছন্দ উৎপাদনে নির্ভরযোগ্যতার ঘটনা কমিয়ে দেয়।
ভালো ইঞ্জিনিয়ারিং পছন্দ উৎপাদনে নির্ভরযোগ্যতার ঘটনা কমিয়ে দেয়। উচ্চ-মানের স্থাপনায়, এটি পরিমাপযোগ্য অপারেটিং নিয়ম, মালিকানার সীমানা এবং পুনরাবৃত্ত পর্যালোচনার আচার-অনুষ্ঠানে অনুবাদ করা হয় যাতে দলগুলি অস্পষ্টতার পরিবর্তে আত্মবিশ্বাস বাড়াতে পারে।
বাস্তব-বিশ্ব বাস্তবায়ন
একটি প্রশিক্ষণ রান যা সংরক্ষিত মেমরি মুক্ত স্থান দেখানো সত্ত্বেও 'CUDA আউট অফ মেমরি' এর সাথে ক্র্যাশ হয়, প্রসারণযোগ্য সেগমেন্টগুলি সক্ষম করতে PYTORCH_CUDA_ALLOC_CONF সেট করে ঠিক করা হয়েছে৷
torch.cuda.memory_summary বা একটি মেমরি স্ন্যাপশট ব্যবহার করে নির্ণয় করা যে কোন টেনসর এবং ফ্র্যাগমেন্টেশন একটি GPU এর 80 GB খাচ্ছে।
vLLM-এর PagedAttention মেমরি নষ্ট না করে অনেক সমসাময়িক চ্যাট অনুরোধ পরিবেশন করতে নির্দিষ্ট আকারের পৃষ্ঠাগুলিতে মনোযোগ কেভি ক্যাশে পরিচালনা করে।
ব্যাচের আকার কমানো বা অ্যাক্টিভেশন মেমরি কাটাতে এবং ফ্র্যাগমেন্টেশন-চালিত-আউট-অফ-মেমরি ব্যর্থতা এড়াতে গ্রেডিয়েন্ট চেকপয়েন্টিং সক্ষম করা।
বাস্তবায়ন নিদর্শন
অনুশীলনে জিপিইউ মেমরি ম্যানেজমেন্ট এবং ফ্র্যাগমেন্টেশন
একটি প্রশিক্ষণ রান যা সংরক্ষিত মেমরি মুক্ত স্থান দেখানো সত্ত্বেও 'CUDA আউট অফ মেমরি' এর সাথে ক্র্যাশ হয়, প্রসারণযোগ্য সেগমেন্টগুলি সক্ষম করতে PYTORCH_CUDA_ALLOC_CONF সেট করে ঠিক করা হয়েছে৷
একটি প্রশিক্ষণ রান যা সংরক্ষিত মেমরি মুক্ত স্থান দেখানো সত্ত্বেও 'CUDA আউট অফ মেমরি' এর সাথে ক্র্যাশ হয়, প্রসারণযোগ্য সেগমেন্টগুলি সক্ষম করার জন্য PYTORCH_CUDA_ALLOC_CONF সেট করে স্থির করা হয়েছে দলগুলি সাধারণত ভাল ফলাফল পায় যখন তারা সামনের গুণমান থ্রেশহোল্ডগুলিকে সংজ্ঞায়িত করে, প্রান্তের ক্ষেত্রে একটি মানবিক বৃদ্ধির পথ রাখে, এবং উভয় ক্ষেত্রেই উত্পাদনশীলতা বৃদ্ধির ক্ষেত্রে ত্রুটি ট্র্যাক করে৷
অনুশীলনে জিপিইউ মেমরি ম্যানেজমেন্ট এবং ফ্র্যাগমেন্টেশন
torch.cuda.memory_summary বা একটি মেমরি স্ন্যাপশট ব্যবহার করে নির্ণয় করা যে কোন টেনসর এবং ফ্র্যাগমেন্টেশন একটি GPU এর 80 GB খাচ্ছে।
torch.cuda.memory_summary বা একটি মেমরি স্ন্যাপশট ব্যবহার করে নির্ণয় করার জন্য কোন টেনসর এবং ফ্র্যাগমেন্টেশন একটি GPU এর 80 GB টিম খাচ্ছে সাধারণত ভাল ফলাফল পায় যখন তারা সামনের মানের থ্রেশহোল্ডগুলিকে সংজ্ঞায়িত করে, প্রান্তের ক্ষেত্রে মানুষের বৃদ্ধির পথ রাখে এবং সময়ের সাথে সাথে উত্পাদনশীলতা লাভ এবং ত্রুটি উভয়ই ট্র্যাক করে৷
অনুশীলনে জিপিইউ মেমরি ম্যানেজমেন্ট এবং ফ্র্যাগমেন্টেশন
vLLM-এর PagedAttention মেমরি নষ্ট না করে অনেক সমসাময়িক চ্যাট অনুরোধ পরিবেশন করতে নির্দিষ্ট আকারের পৃষ্ঠাগুলিতে মনোযোগ কেভি ক্যাশে পরিচালনা করে।
vLLM-এর PagedAttention মেমরি নষ্ট না করে অনেক সমসাময়িক চ্যাট অনুরোধ পরিবেশন করার জন্য স্থির-আকারের পৃষ্ঠাগুলিতে মনোযোগ কেভি ক্যাশে পরিচালনা করে দলগুলি সাধারণত ভাল ফলাফল পায় যখন তারা সামনের মানের থ্রেশহোল্ডগুলিকে সংজ্ঞায়িত করে, প্রান্তের ক্ষেত্রে একটি মানবিক বৃদ্ধির পথ রাখে এবং সময়ের সাথে সাথে উত্পাদনশীলতা লাভ এবং ত্রুটির খরচ উভয়ই ট্র্যাক করে।
অনুশীলনে জিপিইউ মেমরি ম্যানেজমেন্ট এবং ফ্র্যাগমেন্টেশন
ব্যাচের আকার কমানো বা অ্যাক্টিভেশন মেমরি কাটাতে এবং ফ্র্যাগমেন্টেশন-চালিত-আউট-অফ-মেমরি ব্যর্থতা এড়াতে গ্রেডিয়েন্ট চেকপয়েন্টিং সক্ষম করা।
ব্যাচের আকার কমানো বা অ্যাক্টিভেশন মেমরি কাটার জন্য গ্রেডিয়েন্ট চেকপয়েন্টিং সক্ষম করা এবং ফ্র্যাগমেন্টেশন-চালিত আউট-অফ-মেমরি ব্যর্থতা এড়াতে দলগুলি সাধারণত ভাল ফলাফল পায় যখন তারা সামনের মানের থ্রেশহোল্ডগুলিকে সংজ্ঞায়িত করে, প্রান্তের ক্ষেত্রে একটি মানব বৃদ্ধির পথ রাখে এবং সময়ের সাথে সাথে উত্পাদনশীলতা লাভ এবং ত্রুটির খরচ উভয়ই ট্র্যাক করে।
ঝুঁকি এবং প্রহরী
একটি বেঞ্চমার্ক অপ্টিমাইজ করা বৃহত্তর সিস্টেম দুর্বলতা আড়াল করতে পারে।
অবকাঠামো এবং রক্ষণাবেক্ষণের খরচ প্রায়ই অবমূল্যায়ন করা হয়।
সিস্টেমগুলি আরও জটিল হওয়ার সাথে সাথে সুরক্ষা এবং পর্যবেক্ষণযোগ্যতার ফাঁক বাড়তে পারে।
বাস্তবায়ন রোডম্যাপ
বাস্তবায়নের আগে বিলম্ব, গুণমান এবং খরচের লক্ষ্য নির্ধারণ করুন।
বাস্তবায়নের আগে বিলম্ব, গুণমান এবং খরচের লক্ষ্য নির্ধারণ করুন। প্রতিটি পদক্ষেপকে একটি প্রমাণ গেট হিসাবে বিবেচনা করুন: যদি মানদণ্ড পূরণ না হয়, রোলআউট থামান, ব্যবধান বন্ধ করুন এবং শুধুমাত্র তারপর ব্যবহার প্রসারিত করুন।
বাস্তবসম্মত লোড এবং ডেটা অবস্থার অধীনে বেঞ্চমার্ক।
বাস্তবসম্মত লোড এবং ডেটা অবস্থার অধীনে বেঞ্চমার্ক। প্রতিটি পদক্ষেপকে একটি প্রমাণ গেট হিসাবে বিবেচনা করুন: যদি মানদণ্ড পূরণ না হয়, রোলআউট থামান, ব্যবধান বন্ধ করুন এবং শুধুমাত্র তারপর ব্যবহার প্রসারিত করুন।
ত্রুটি, প্রবাহ, এবং ব্যবহারকারীর প্রভাবের জন্য যন্ত্র পর্যবেক্ষণ।
ত্রুটি, প্রবাহ, এবং ব্যবহারকারীর প্রভাবের জন্য যন্ত্র পর্যবেক্ষণ। প্রতিটি পদক্ষেপকে একটি প্রমাণ গেট হিসাবে বিবেচনা করুন: যদি মানদণ্ড পূরণ না হয়, রোলআউট থামান, ব্যবধান বন্ধ করুন এবং শুধুমাত্র তারপর ব্যবহার প্রসারিত করুন।
স্কেল করার আগে রোলব্যাক এবং ঘটনার প্রতিক্রিয়া পাথ প্রস্তুত করুন।
স্কেল করার আগে রোলব্যাক এবং ঘটনার প্রতিক্রিয়া পাথ প্রস্তুত করুন। প্রতিটি পদক্ষেপকে একটি প্রমাণ গেট হিসাবে বিবেচনা করুন: যদি মানদণ্ড পূরণ না হয়, রোলআউট থামান, ব্যবধান বন্ধ করুন এবং শুধুমাত্র তারপর ব্যবহার প্রসারিত করুন।