সংক্ষিপ্ত উত্তর: এআই মডেলগুলিকে অপ্টিমাইজ করার জন্য, একটি প্রাথমিক সীমাবদ্ধতা (লেটেন্সি, খরচ, মেমরি, গুণমান, স্থিতিশীলতা, বা থ্রুপুট) বেছে নিন, তারপর কিছু পরিবর্তন করার আগে একটি বিশ্বস্ত বেসলাইন ক্যাপচার করুন। প্রথমে পাইপলাইনের বাধাগুলি সরিয়ে ফেলুন, তারপর মিশ্র নির্ভুলতা এবং ব্যাচিংয়ের মতো কম ঝুঁকিপূর্ণ লাভ প্রয়োগ করুন; যদি গুণমান ধরে থাকে, তাহলে কম্পাইলার/রানটাইম টুলিং-এ যান এবং শুধুমাত্র তখনই প্রয়োজনে কোয়ান্টাইজেশন বা ডিস্টিলেশনের মাধ্যমে মডেলের আকার হ্রাস করুন।
মূল বিষয়গুলি:
সীমাবদ্ধতা : এক বা দুটি লক্ষ্য মেট্রিক্স বেছে নিন; অপ্টিমাইজেশন হল ট্রেড-অফের একটি দৃশ্য, বিনামূল্যে জয়ের নয়।
পরিমাপ : p50/p95/p99, থ্রুপুট, ব্যবহার এবং মেমরির সর্বোচ্চ স্তর সহ প্রকৃত কাজের চাপের প্রোফাইল।
পাইপলাইন : মডেল স্পর্শ করার আগে টোকেনাইজেশন, ডেটালোডার, প্রিপ্রসেসিং এবং ব্যাচিং ঠিক করুন।
পরিবেশন : ক্যাশিং, ইচ্ছাকৃত ব্যাচিং, কনকারেন্সি টিউনিং ব্যবহার করুন এবং টেল ল্যাটেন্সির উপর কড়া নজর রাখুন।
গার্ডেল : প্রতিটি কর্মক্ষমতা পরিবর্তনের পরে গোল্ডেন প্রম্পট, টাস্ক মেট্রিক্স এবং স্পট চেক চালান।

🔗 কীভাবে AI মডেলগুলিকে কার্যকরভাবে মূল্যায়ন করবেন
মডেলগুলিকে ন্যায্য এবং নির্ভরযোগ্যভাবে বিচার করার মূল মানদণ্ড এবং পদক্ষেপ।
🔗 বাস্তব মেট্রিক্স দিয়ে AI কর্মক্ষমতা কীভাবে পরিমাপ করবেন
তুলনা করার জন্য বেঞ্চমার্ক, লেটেন্সি, খরচ এবং মানের সংকেত ব্যবহার করুন।
🔗 উৎপাদনের আগে AI মডেলগুলি কীভাবে পরীক্ষা করবেন
ব্যবহারিক পরীক্ষার কর্মপ্রবাহ: ডেটা বিভাজন, স্ট্রেস কেস এবং পর্যবেক্ষণ।
🔗 কন্টেন্ট তৈরির জন্য AI কীভাবে ব্যবহার করবেন
স্ট্রাকচার্ড প্রম্পট এবং পুনরাবৃত্তির মাধ্যমে ধারণাগুলিকে দ্রুত খসড়ায় পরিণত করুন।
১) বাস্তবে "অপ্টিমাইজ" বলতে কী বোঝায় (কারণ সবাই এটি ভিন্নভাবে ব্যবহার করে) 🧠
যখন লোকেরা বলে "একটি AI মডেল অপ্টিমাইজ করুন," তখন তাদের অর্থ হতে পারে:
-
এটি দ্রুত করুন (কম লেটেন্সি)
-
এটিকে সস্তা করুন (জিপিইউ-ঘন্টা কম, ক্লাউড খরচ কম)
-
এটিকে আরও ছোট করুন (মেমরি ফুটপ্রিন্ট, এজ ডিপ্লয়মেন্ট)
-
এটিকে আরও নির্ভুল করুন (মানের উন্নতি, কম হ্যালুসিনেশন)
-
এটিকে আরও স্থিতিশীল করুন (কম বৈচিত্র্য, উৎপাদনে কম ব্যর্থতা)
-
পরিবেশন করা সহজ করুন (থ্রুপুট, ব্যাচিং, অনুমানযোগ্য কর্মক্ষমতা)
এখানে হালকা বিরক্তিকর সত্যটি হল: আপনি একবারে এই সবগুলিকে সর্বাধিক করতে পারবেন না। অপ্টিমাইজেশন হল বেলুন চেপে ধরার মতো - একপাশ ঠেলে ভেতরে ঢুকিয়ে দিলে অন্যপাশ বেরিয়ে আসে। সবসময় নয়, তবে প্রায়শই যথেষ্ট যে আপনার ট্রেডঅফের পরিকল্পনা করা উচিত।.
তাই যেকোনো কিছু স্পর্শ করার আগে, আপনার প্রাথমিক সীমাবদ্ধতাটি :
-
যদি আপনি ব্যবহারকারীদের লাইভ পরিষেবা প্রদান করেন, তাহলে আপনি p95 ল্যাটেন্সি ( AWS CloudWatch percentiles ) এবং টেইল পারফরম্যান্স ( "টেইল ল্যাটেন্সি" সেরা অনুশীলন ) সম্পর্কে চিন্তিত 📉
-
যদি আপনি প্রশিক্ষণ নিচ্ছেন, তাহলে আপনি সময়-টু-কোয়ালিটি এবং GPU ব্যবহারের বিষয়ে যত্নশীল 🔥
-
র্যাম এবং পাওয়ারের প্রয়োজন 🔋
২) এআই মডেল অপ্টিমাইজেশনের একটি ভালো সংস্করণ দেখতে কেমন ✅
অপ্টিমাইজেশনের একটি ভালো সংস্করণ কেবল "পরিমাণ প্রয়োগ করুন এবং প্রার্থনা করুন" নয়। এটি একটি সিস্টেম। সেরা সেটআপগুলিতে সাধারণত থাকে:
-
আপনার বিশ্বাসের ভিত্তি।
যদি আপনি আপনার বর্তমান ফলাফল পুনরুত্পাদন করতে না পারেন, তাহলে আপনি বুঝতে পারবেন না যে আপনি কিছু উন্নত করেছেন। সহজ... কিন্তু লোকেরা এটি এড়িয়ে যায়। তারপর তারা সর্পিল হয়ে যায়। -
একটি স্পষ্ট লক্ষ্য মেট্রিক
অস্পষ্ট। "একই মানের স্কোরে p95 ল্যাটেন্সি 900ms থেকে 300ms এ কমানো" একটি আসল লক্ষ্য। -
মানের জন্য রেলিং
প্রতিটি পারফরম্যান্স জয়ের ফলে একটি নীরব মানের রিগ্রেশনের ঝুঁকি থাকে। আপনার পরীক্ষা, মূল্যায়ন, অথবা অন্তত একটি স্যানিটি স্যুট প্রয়োজন। -
হার্ডওয়্যার সচেতনতা
একটি GPU-তে একটি "দ্রুত" মডেল অন্য GPU-তে ক্রল করতে পারে। CPU-গুলি তাদের নিজস্ব বিশেষ ধরণের বিশৃঙ্খলা। -
পুনরাবৃত্তিমূলক পরিবর্তন, বিগ-ব্যাং পুনর্লিখন নয়।
যখন আপনি একসাথে পাঁচটি জিনিস পরিবর্তন করেন এবং কর্মক্ষমতা উন্নত হয়, তখন আপনি জানেন না কেন। যা... অস্থির করে তোলে।
অপ্টিমাইজেশনটা গিটারের সুর করার মতো মনে হওয়া উচিত - ছোট ছোট সমন্বয়, মনোযোগ সহকারে শুনুন, পুনরাবৃত্তি করুন 🎸। যদি মনে হয় ছুরি চালানোর মতো, তাহলে বুঝতে হবে কোথাও একটা সমস্যা আছে।.
৩) তুলনা সারণী: এআই মডেলগুলি অপ্টিমাইজ করার জনপ্রিয় বিকল্পগুলি 📊
নিচে সাধারণ অপ্টিমাইজেশন টুল/পদ্ধতির একটি দ্রুত এবং সামান্য অস্পষ্ট তুলনামূলক টেবিল দেওয়া হল। না, এটি পুরোপুরি "ন্যায্য" নয় - বাস্তব জীবনও তা নয়।.
| টুল / বিকল্প | পাঠকবর্গ | দাম | কেন এটি কাজ করে |
|---|---|---|---|
পাইটর্চ টর্চ.কম্পাইল ( পাইটর্চ ডক্স ) |
পাইটর্চের লোকেরা | বিনামূল্যে | গ্রাফ ক্যাপচার + কম্পাইলার কৌশলগুলি ওভারহেড কমাতে পারে... কখনও কখনও এটি জাদুকরী ✨ |
| ONNX রানটাইম ( ONNX রানটাইম ডক্স ) | মোতায়েন দল | মুক্তমনা | শক্তিশালী অনুমান অপ্টিমাইজেশন, বিস্তৃত সমর্থন, স্ট্যান্ডার্ডাইজড পরিবেশনের জন্য ভালো |
| টেনসরআরটি ( এনভিআইডিআইএ টেনসরআরটি ডক্স ) | এনভিআইডিআইএ স্থাপনা | পেইড ভাইবস (প্রায়শই বান্ডিল করা) | আক্রমণাত্মক কার্নেল ফিউশন + নির্ভুল হ্যান্ডলিং, ক্লিক করলে খুব দ্রুত |
| ডিপস্পিড ( ZeRO ডক্স ) | প্রশিক্ষণ দল | বিনামূল্যে | মেমোরি + থ্রুপুট অপ্টিমাইজেশন (ZeRO ইত্যাদি)। এটি একটি জেট ইঞ্জিনের মতো অনুভব করতে পারে। |
| FSDP (PyTorch) ( PyTorch FSDP ডক্স ) | প্রশিক্ষণ দল | বিনামূল্যে | প্যারামিটার/গ্রেডিয়েন্টগুলিকে ছোট করে, বড় মডেলগুলিকে কম ভীতিকর করে তোলে |
| বিটস্যান্ডবাইটস কোয়ান্টাইজেশন ( বিটস্যান্ডবাইটস ) | এলএলএম টিঙ্কারার্স | বিনামূল্যে | কম বিট ওজন, প্রচুর মেমোরি সাশ্রয় - মান নির্ভর করে, কিন্তু বাহ 😬 |
| পাতন ( হিন্টন এট আল., ২০১৫ ) | পণ্য দল | "সময়-ব্যয়" | ছোট ছাত্র মডেল আচরণ উত্তরাধিকারসূত্রে পায়, সাধারণত দীর্ঘমেয়াদী সেরা ROI |
| ছাঁটাই ( পাইটর্চ ছাঁটাই টিউটোরিয়াল ) | গবেষণা + পণ্য | বিনামূল্যে | অতিরিক্ত ওজন কমায়। পুনঃপ্রশিক্ষণের সাথে মিলিত হলে আরও ভালো কাজ করে। |
| ফ্ল্যাশ অ্যাটেনশন / ফিউজড কার্নেল ( ফ্ল্যাশঅ্যাটেন্থন পেপার ) | পারফর্মেন্স প্রেমীরা | বিনামূল্যে | দ্রুত মনোযোগ, উন্নত স্মৃতিশক্তি। ট্রান্সফরমারদের আসল জয় |
| ট্রাইটন ইনফারেন্স সার্ভার ( ডায়নামিক ব্যাচিং ) | অপারেশন/ইনফ্রা | বিনামূল্যে | উৎপাদন পরিবেশন, ব্যাচিং, মাল্টি-মডেল পাইপলাইন - এন্টারপ্রাইজ-জাতীয় মনে হয় |
ফরম্যাটিংয়ের অদ্ভুত স্বীকারোক্তি: "মূল্য" অগোছালো কারণ ওপেন-সোর্স আপনাকে এখনও সপ্তাহান্তে ডিবাগিং করতে পারে, যা ... একটি মূল্য। 😵💫
৪) পরিমাপ দিয়ে শুরু করুন: প্রোফাইল আপনার মতোই 🔍
এই পুরো নির্দেশিকা থেকে যদি আপনি কেবল একটি কাজ করেন, তাহলে এটি করুন: সঠিকভাবে পরিমাপ করুন।.
আমার নিজের পরীক্ষায়, সবচেয়ে বড় "অপ্টিমাইজেশন সাফল্য" এসেছে লজ্জাজনকভাবে সহজ কিছু আবিষ্কারের মাধ্যমে যেমন:
-
ডেটা লোডার GPU-কে অকার্যকর করে দিচ্ছে
-
সিপিইউ প্রিপ্রসেসিং বটলনেক
-
ছোট ব্যাচের আকারের কারণে কার্নেল লঞ্চ ওভারহেড হচ্ছে
-
ধীর টোকেনাইজেশন (টোকেনাইজাররা নীরব খলনায়ক হতে পারে)
-
মেমোরি ফ্র্যাগমেন্টেশন ( PyTorch CUDA মেমোরি অ্যালোকেটর নোট )
-
একটি একক স্তর প্রাধান্য পাচ্ছে গণনা
কী পরিমাপ করতে হবে (সর্বনিম্ন সেট)
-
লেটেন্সি (p50, p95, p99) ( লেটেন্সি পার্সেন্টাইলের উপর SRE )
-
থ্রুপুট (টোকেন/সেকেন্ড, অনুরোধ/সেকেন্ড)
-
জিপিইউ ব্যবহার (কম্পিউট + মেমোরি)
-
VRAM / RAM সর্বোচ্চ
-
প্রতি ১ হাজার টোকেনের খরচ (অথবা প্রতি অনুমান)
ব্যবহারিক প্রোফাইলিং মানসিকতা
-
আপনার পছন্দের একটি দৃশ্যকল্পের প্রোফাইল তৈরি করুন (খেলনার প্রম্পট নয়)।.
-
সবকিছু একটা ছোট্ট "পারফ জার্নালে" লিখে রাখো।
হ্যাঁ, এটা ক্লান্তিকর... কিন্তু এটি তোমাকে পরে নিজেকে জ্বালানো থেকে বাঁচায়।
(যদি আপনি একটি নির্দিষ্ট টুল দিয়ে শুরু করতে চান: PyTorch Profiler ( torch.profiler docs ) এবং Nsight Systems ( NVIDIA Nsight Systems ) হল সাধারণ সন্দেহভাজন।)
৫) ডেটা + প্রশিক্ষণ অপ্টিমাইজেশন: নীরব পরাশক্তি 📦🚀
মানুষ মডেল আর্কিটেকচারের প্রতি আচ্ছন্ন হয়ে পড়ে এবং পাইপলাইনের কথা ভুলে যায়। এদিকে পাইপলাইনটি নীরবে অর্ধেক GPU পুড়িয়ে দেয়।.
সহজ জয় যা দ্রুত দেখা যায়
-
মিশ্র নির্ভুলতা ব্যবহার করুন (যদি স্থিতিশীল হয় FP16/BF16) ( PyTorch AMP / torch.amp )
সাধারণত দ্রুত, প্রায়শই সূক্ষ্ম - তবে সংখ্যাসূচক বিচ্যুতিগুলির জন্য সতর্ক থাকুন। -
ব্যাচের আকার সীমিত থাকলে গ্রেডিয়েন্ট সংগ্রহ 🤗 অ্যাক্সিলারেট গাইড )
মেমরি বিস্ফোরিত না করে অপ্টিমাইজেশন স্থিতিশীল রাখে। -
গ্রেডিয়েন্ট চেকপয়েন্টিং ( torch.utils.checkpoint )
মেমরির জন্য কম্পিউট ট্রেড করে - বৃহত্তর প্রসঙ্গগুলিকে সম্ভব করে তোলে। -
দক্ষ টোকেনাইজেশন ( 🤗 টোকেনাইজার )
টোকেনাইজেশন ব্যাপকভাবে বাধা হয়ে দাঁড়াতে পারে। এটি আকর্ষণীয় নয়; এটি গুরুত্বপূর্ণ। -
ডেটালোডার টিউনিং
আরও কর্মী, পিন করা মেমোরি, প্রিফেচিং - অপ্রকাশিত কিন্তু কার্যকর 😴➡️💪 ( পাইটর্চ পারফরম্যান্স টিউনিং গাইড )
প্যারামিটার-দক্ষ সূক্ষ্ম-টিউনিং
যদি আপনি বড় মডেলগুলিকে সূক্ষ্মভাবে সাজিয়ে থাকেন, তাহলে PEFT পদ্ধতিগুলি (যেমন LoRA-স্টাইল অ্যাডাপ্টার) আশ্চর্যজনকভাবে শক্তিশালী থাকার সাথে সাথে প্রশিক্ষণের খরচ ব্যাপকভাবে কমাতে পারে ( 🤗 ট্রান্সফরমার PEFT গাইড , LoRA পেপার )। এটি "কেন আমরা এটি আগে করিনি?" মুহূর্তগুলির মধ্যে একটি।
৬) স্থাপত্য-স্তরের অপ্টিমাইজেশন: মডেলটি ডান-আকারে করুন 🧩
কখনও কখনও অপ্টিমাইজ করার সবচেয়ে ভালো উপায় হল... এমন মডেল ব্যবহার বন্ধ করা যা কাজের জন্য খুব বড়। আমি জানি, ধর্মত্যাগ 😄।.
কয়েকটি মৌলিক বিষয়ের উপর আলোচনা করুন:
-
আপনার কি পূর্ণ সাধারণ বুদ্ধিমত্তার প্রয়োজন, নাকি বিশেষজ্ঞের প্রয়োজন, তা ঠিক করুন।.
-
কনটেক্সট উইন্ডোটি যতটা বড় হওয়া উচিত ততটা বড় রাখুন, বড় নয়।.
-
হাতে থাকা কাজের জন্য প্রশিক্ষিত একটি মডেল ব্যবহার করুন (শ্রেণীবদ্ধকরণ কাজের জন্য শ্রেণীবদ্ধকরণ মডেল, ইত্যাদি)।.
ব্যবহারিক ডান-আকার নির্ধারণের কৌশল
-
বেশিরভাগ অনুরোধের জন্য
একটি ছোট ব্যাকবোন ব্যবহার করুন। তারপর "হার্ড কোয়েরি" কে একটি বড় মডেলে ব্যবহার করুন। -
দুই-পর্যায়ের সেটআপ ব্যবহার করুন
দ্রুত মডেল খসড়া, শক্তিশালী মডেল যাচাই বা সম্পাদনা।
এটি এমন একজন বন্ধুর সাথে লেখার মতো যে পছন্দ করে - বিরক্তিকর, কিন্তু কার্যকর। -
আউটপুট দৈর্ঘ্য হ্রাস করুন
আউটপুট টোকেনগুলির জন্য অর্থ এবং সময় ব্যয় হয়। যদি আপনার মডেলটি এলোমেলো হয়, তাহলে আপনাকে এলোমেলোভাবের জন্য অর্থ প্রদান করতে হবে।
আমি দেখেছি যে দলগুলি সংক্ষিপ্ত আউটপুট প্রয়োগ করে নাটকীয়ভাবে খরচ কমিয়েছে। এটা তুচ্ছ মনে হয়। এটা কাজ করে।.
৭) কম্পাইলার + গ্রাফ অপ্টিমাইজেশন: গতি কোথা থেকে আসে 🏎️
এটি হল "কম্পিউটারকে আরও স্মার্ট কম্পিউটার স্টাফ করতে সাহায্য করুন" স্তর।.
সাধারণ কৌশল:
-
অপারেটর ফিউশন (কর্নেলস একত্রিত করুন) ( NVIDIA TensorRT "লেয়ার ফিউশন" )
-
ধ্রুবক ভাঁজ (প্রাক-গণনা স্থির মান) ( ONNX রানটাইম গ্রাফ অপ্টিমাইজেশন )
-
কার্নেল নির্বাচন হার্ডওয়্যারের সাথে সামঞ্জস্যপূর্ণ
-
পাইথনের ওভারহেড কমাতে গ্রাফ ক্যাপচার
torch.compileওভারভিউ )
সহজ ভাষায়: আপনার মডেলটি গাণিতিকভাবে দ্রুত হতে পারে, কিন্তু কার্যক্ষমতার দিক থেকে ধীর। কম্পাইলাররা এর কিছু অংশ ঠিক করে।.
ব্যবহারিক নোট (ওরফে দাগ)
-
এই অপ্টিমাইজেশনগুলি মডেল আকৃতির পরিবর্তনের প্রতি সংবেদনশীল হতে পারে।.
-
কিছু মডেলের গতি অনেক বাড়ে, কিছুতে খুব একটা নড়াচড়া হয় না।.
-
কখনও কখনও আপনি একটি স্পিডআপ এবং একটি বিভ্রান্তিকর বাগের সম্মুখীন হন - যেমন একটি গ্রেমলিন ভিতরে চলে গেছে 🧌
তবুও, যখন এটি কাজ করে, তখন এটি সবচেয়ে পরিষ্কার জয়গুলির মধ্যে একটি।.
৮) পরিমাণ নির্ধারণ, ছাঁটাই, পাতন: কান্না ছাড়াই ছোট (খুব বেশি) 🪓📉
এই অংশটিই মানুষ চায়... কারণ এটা বিনামূল্যের পারফর্মেন্সের মতো শোনায়। এটা হতে পারে, কিন্তু তোমাকে এটাকে অস্ত্রোপচারের মতো চিকিৎসা করতে হবে।.
পরিমাণ নির্ধারণ (কম নির্ভুল ওজন/সক্রিয়করণ)
-
অনুমানের গতি এবং স্মৃতির জন্য দুর্দান্ত
-
ঝুঁকি: গুণমান কমে যাওয়া, বিশেষ করে প্রান্তিক ক্ষেত্রে
-
সর্বোত্তম অনুশীলন: আবেগের উপর নয়, একটি বাস্তব পরীক্ষার সেটের উপর মূল্যায়ন করুন
আপনি যেসব সাধারণ স্বাদের কথা শুনবেন:
-
INT8 (প্রায়শই কঠিন) ( TensorRT কোয়ান্টাইজড প্রকার )
-
INT4 / লো-বিট (বিশাল সঞ্চয়, মানের ঝুঁকি বেড়ে যায়) ( বিটস্যান্ডবাইটস কে-বিট কোয়ান্টাইজেশন )
-
মিশ্র পরিমাণ (সবকিছুর জন্য একই নির্ভুলতার প্রয়োজন হয় না)
ছাঁটাই (প্যারামিটারগুলি সরান)
-
"গুরুত্বহীন" ওজন বা কাঠামো অপসারণ করে ( পাইটর্চ প্রুনিং টিউটোরিয়াল )
-
সাধারণত মান পুনরুদ্ধারের জন্য পুনরায় প্রশিক্ষণের প্রয়োজন হয়
-
মানুষ যা ভাবে তার চেয়েও ভালো কাজ করে... যখন সাবধানে করা হয়
পাতন (শিক্ষার্থী শিক্ষকের কাছ থেকে শেখে)
এটি আমার ব্যক্তিগত প্রিয় দীর্ঘমেয়াদী লিভার। পাতন একটি ছোট মডেল তৈরি করতে পারে যা একই রকম আচরণ করে এবং এটি প্রায়শই চরম কোয়ান্টাইজেশন ( নিউরাল নেটওয়ার্কে জ্ঞান পাতন ) এর চেয়ে বেশি স্থিতিশীল।
একটি অসম্পূর্ণ রূপক: পাতন হলো ফিল্টারের মাধ্যমে জটিল স্যুপ ঢেলে... আরও ছোট স্যুপ তৈরি করার মতো। স্যুপ এভাবে কাজ করে না, কিন্তু আপনি ধারণাটি বুঝতে পারবেন 🍲।.
৯) পরিবেশন এবং অনুমান: আসল যুদ্ধক্ষেত্র 🧯
আপনি একটি মডেলকে "অপ্টিমাইজ" করেও খারাপভাবে পরিবেশন করতে পারেন। পরিবেশন হল এমন একটি জায়গা যেখানে বিলম্ব এবং খরচ বাস্তব হয়ে ওঠে।.
পরিবেশন করলেই জয় পাওয়া যায়, এটাই গুরুত্বপূর্ণ।
-
ব্যাচিং
থ্রুপুট উন্নত করে। কিন্তু অতিরিক্ত কাজ করলে ল্যাটেন্সি বৃদ্ধি করে। ব্যালেন্স করুন। ( ট্রাইটন ডায়নামিক ব্যাচিং ) -
ক্যাশিং
বারবার ব্যবহারের ক্ষেত্রে প্রম্পট ক্যাশিং এবং KV-ক্যাশ পুনঃব্যবহার বিশাল হতে পারে। ( KV ক্যাশ ব্যাখ্যা ) -
স্ট্রিমিং আউটপুট
ব্যবহারকারীরা মনে করেন যে মোট সময় একই রকম হলেও এটি দ্রুত। উপলব্ধি গুরুত্বপূর্ণ 🙂। -
টোকেন-বাই-টোকেন ওভারহেড হ্রাস
কিছু স্ট্যাক প্রতি টোকেন অতিরিক্ত কাজ করে। সেই ওভারহেড হ্রাস করুন এবং আপনি বড় জয় পাবেন।
টেইল লেটেন্সির দিকে নজর রাখুন
আপনার গড় দেখতে দারুন হতে পারে, যখন আপনার p99 একটি বিপর্যয়। দুর্ভাগ্যবশত, ব্যবহারকারীরা টেলের মধ্যে বাস করেন। ( "টেইল ল্যাটেন্সি" এবং কেন গড় মিথ্যা )
১০) হার্ডওয়্যার-সচেতন অপ্টিমাইজেশন: মেশিনের সাথে মডেলটি মেলান 🧰🖥️
হার্ডওয়্যার সচেতনতা ছাড়া অপ্টিমাইজ করা টায়ার পরীক্ষা না করেই রেস কার টিউন করার মতো। অবশ্যই, আপনি এটি করতে পারেন, তবে এটি একটু বোকামি।.
জিপিইউ বিবেচনা
-
মেমোরি ব্যান্ডউইথ প্রায়শই সীমিত ফ্যাক্টর, কাঁচা গণনা নয়
-
বৃহত্তর ব্যাচের আকার সাহায্য করতে পারে, যতক্ষণ না তারা সাহায্য করে
-
ট্রান্সফরমারের জন্য কার্নেল ফিউশন এবং মনোযোগ অপ্টিমাইজেশন বিশাল ( FlashAttention: IO-সচেতন সঠিক মনোযোগ )
সিপিইউ বিবেচনা
-
থ্রেডিং, ভেক্টরাইজেশন এবং মেমোরি লোক্যালিটি অনেক গুরুত্বপূর্ণ।
-
টোকেনাইজেশন ওভারহেড প্রাধান্য পেতে পারে ( 🤗 "দ্রুত" টোকেনাইজার )
-
আপনার GPU-এর চেয়ে ভিন্ন কোয়ান্টাইজেশন কৌশলের প্রয়োজন হতে পারে।
এজ / মোবাইল বিবেচনা
-
মেমোরি ফুটপ্রিন্ট অগ্রাধিকার নম্বর এক হয়ে ওঠে
-
বিলম্বের ভিন্নতা গুরুত্বপূর্ণ কারণ ডিভাইসগুলি... মেজাজ খারাপ
-
ছোট, বিশেষায়িত মডেলগুলি প্রায়শই বড় সাধারণ মডেলগুলিকে ছাড়িয়ে যায়
১১) মানসম্পন্ন রেলিং: নিজেকে পোকামাকড়ের মতো "অপ্টিমাইজ" করবেন না 🧪
প্রতিটি স্পিড জয়ের সাথে মান যাচাই করা উচিত। অন্যথায় আপনি উদযাপন করবেন, জাহাজে তুলে দেবেন, এবং তারপর একটি বার্তা পাবেন "সহকারী হঠাৎ জলদস্যুদের মতো কেন কথা বলছে?" 🏴☠️
বাস্তবসম্মত রেলিং:
-
গোল্ডেন প্রম্পট (নির্দিষ্ট প্রম্পটের সেট যা আপনি সর্বদা পরীক্ষা করেন)
-
টাস্ক মেট্রিক্স (নির্ভুলতা, F1, BLEU, যা কিছু উপযুক্ত)
-
মানুষের স্পট চেক (হ্যাঁ, সত্যি বলতে)
-
রিগ্রেশন থ্রেশহোল্ড ("X% এর বেশি ড্রপ অনুমোদিত নয়")
এছাড়াও ব্যর্থতার মোডগুলি ট্র্যাক করুন:
-
ফর্ম্যাটিং ড্রিফট
-
প্রত্যাখ্যান আচরণের পরিবর্তন
-
হ্যালুসিনেশন ফ্রিকোয়েন্সি
-
প্রতিক্রিয়া দৈর্ঘ্য মুদ্রাস্ফীতি
অপ্টিমাইজেশন আশ্চর্যজনকভাবে আচরণ পরিবর্তন করতে পারে। অদ্ভুতভাবে। বিরক্তিকরভাবে। অনুমানযোগ্যভাবে, পিছনের দিকে তাকালে।.
১২) চেকলিস্ট: ধাপে ধাপে এআই মডেলগুলি কীভাবে অপ্টিমাইজ করবেন ✅🤖
"How to Optimize AI Models" এর কাজের একটি স্পষ্ট ক্রম চান , তাহলে এখানে এমন কর্মপ্রবাহ দেওয়া হল যা মানুষকে সুস্থ রাখতে সাহায্য করে:
-
সাফল্যের সংজ্ঞা দিন
১-২টি প্রাথমিক মেট্রিক্স (লেটেন্সি, খরচ, থ্রুপুট, গুণমান) বেছে নিন। -
বেসলাইন
প্রোফাইলের আসল কাজের চাপ পরিমাপ করুন, p50/p95 রেকর্ড করুন, মেমোরি, খরচ। ( PyTorch প্রোফাইলার ) -
পাইপলাইনের বাধাগুলি ঠিক করুন
ডেটা লোডিং, টোকেনাইজেশন, প্রিপ্রসেসিং, ব্যাচিং। -
কম ঝুঁকিপূর্ণ কম্পিউট উইন প্রয়োগ করুন
মিশ্র নির্ভুলতা, কার্নেল অপ্টিমাইজেশন, আরও ভালো ব্যাচিং। -
কম্পাইলার/রানটাইম অপ্টিমাইজেশন চেষ্টা করুন
গ্রাফ ক্যাপচার, ইনফারেন্স রানটাইম, অপারেটর ফিউশন। (টর্চ.কম্পাইলটিউটোরিয়াল , ONNX রানটাইম ডক্স ) -
মডেলের খরচ কমান
সাবধানে পরিমাণ নির্ধারণ করুন, সম্ভব হলে পাতন করুন, উপযুক্ত হলে ছাঁটাই করুন। -
টিউন সার্ভিং
ক্যাশিং, কনকারেন্সি, লোড টেস্টিং, টেইল ল্যাটেন্সি ফিক্স। -
গুণমান যাচাই করুন
রিগ্রেশন পরীক্ষা চালান এবং আউটপুটগুলি পাশাপাশি তুলনা করুন। -
পুনরাবৃত্তি করুন
ছোট পরিবর্তন, স্পষ্ট নোট, পুনরাবৃত্তি করুন। অস্পষ্ট - কার্যকর।
আর হ্যাঁ, এটা এখনও "কীভাবে রেকের উপর পা রাখা বন্ধ করবেন" এর মতো মনে হলেও, " কীভাবে এআই মডেল অপ্টিমাইজ করবেন
১৩) সাধারণ ভুল (যাতে তুমি আমাদের মতো বারবার না করো) 🙃
-
পরিমাপ করার আগে অপ্টিমাইজ করা
আপনার সময় নষ্ট হবে। এবং তারপরে আপনি আত্মবিশ্বাসের সাথে ভুল জিনিসটি অপ্টিমাইজ করবেন... -
একক মানদণ্ডের পিছনে ছুটলে
মানদণ্ডগুলি বাদ পড়ে যায়। আপনার কাজের চাপই সত্য। -
মেমোরির সমস্যা উপেক্ষা করলে
মেমোরির গতি কমে যায়, ক্র্যাশ হয় এবং ভীতিকর অবস্থা তৈরি হয়। ( পাইটর্চে CUDA মেমোরির ব্যবহার বোঝা ) -
খুব তাড়াতাড়ি অতিরিক্ত পরিমাণ নির্ধারণ করা
কম-বিট পরিমাণ আশ্চর্যজনক হতে পারে, তবে প্রথমে নিরাপদ পদক্ষেপগুলি দিয়ে শুরু করুন। -
কোনও রোলব্যাক পরিকল্পনা নেই
যদি আপনি দ্রুত ফিরে যেতে না পারেন, তাহলে প্রতিটি স্থাপনা চাপপূর্ণ হয়ে ওঠে। চাপ সমস্যা তৈরি করে।
সমাপনী নোট: অপ্টিমাইজ করার মানবিক উপায় 😌⚡
এআই মডেলগুলি কীভাবে অপ্টিমাইজ করবেন তা কোনও একক হ্যাক নয়। এটি একটি স্তরযুক্ত প্রক্রিয়া: পরিমাপ করুন, পাইপলাইন ঠিক করুন, কম্পাইলার এবং রানটাইম ব্যবহার করুন, পরিবেশন সুর করুন, তারপর প্রয়োজনে কোয়ান্টাইজেশন বা ডিস্টিলেশন দিয়ে মডেলটি সঙ্কুচিত করুন। এটি ধাপে ধাপে করুন, মানসম্পন্ন রেলিং রাখুন এবং "এটি দ্রুত বোধ করে" মেট্রিক হিসাবে বিশ্বাস করবেন না (আপনার অনুভূতিগুলি সুন্দর, আপনার অনুভূতিগুলি কোনও প্রোফাইলার নয়)।
যদি আপনি সবচেয়ে সংক্ষিপ্ত উপায় চান:
-
আগে পরিমাপ করো 🔍
-
পরবর্তী পাইপলাইনটি অপ্টিমাইজ করুন 🧵
-
তারপর মডেলটি অপ্টিমাইজ করুন 🧠
-
তারপর পরিবেশন অপ্টিমাইজ করুন 🏗️
-
সর্বদা মান পরীক্ষা করুন ✅
আর যদি এটি সাহায্য করে, তাহলে নিজেকে মনে করিয়ে দিন: লক্ষ্যটি "নিখুঁত মডেল" নয়। লক্ষ্যটি হল এমন একটি মডেল যা দ্রুত, সাশ্রয়ী মূল্যের এবং যথেষ্ট নির্ভরযোগ্য যাতে আপনি রাতে ঘুমাতে পারেন... বেশিরভাগ রাতে 😴।.
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
বাস্তবে একটি AI মডেল অপ্টিমাইজ করার অর্থ কী?
"অপ্টিমাইজ" বলতে সাধারণত একটি প্রাথমিক সীমাবদ্ধতা উন্নত করা বোঝায়: ল্যাটেন্সি, খরচ, মেমোরি ফুটপ্রিন্ট, নির্ভুলতা, স্থিতিশীলতা, অথবা সার্ভিং থ্রুপুট। কঠিন অংশ হল ট্রেডঅফ - একটি ক্ষেত্রকে ঠেলে দিলে অন্য ক্ষেত্র ক্ষতিগ্রস্ত হতে পারে। একটি ব্যবহারিক পদ্ধতি হল একটি স্পষ্ট লক্ষ্য (যেমন p95 ল্যাটেন্সি বা সময়-থেকে-মানের) বেছে নেওয়া এবং সেই দিকে অপ্টিমাইজ করা। লক্ষ্য ছাড়া, "উন্নতি" করা সহজ এবং তবুও হারানো যায়।.
নীরবে গুণমান ক্ষতিগ্রস্ত না করে কীভাবে AI মডেলগুলিকে অপ্টিমাইজ করা যায়
প্রতিটি গতি বা খরচের পরিবর্তনকে সম্ভাব্য নীরব রিগ্রেশন হিসেবে বিবেচনা করুন। গোল্ডেন প্রম্পট, টাস্ক মেট্রিক্স এবং দ্রুত মানব স্পট চেকের মতো গার্ডেল ব্যবহার করুন। গ্রহণযোগ্য মানের ড্রিফট-এর জন্য একটি স্পষ্ট থ্রেশহোল্ড সেট করুন এবং আউটপুটগুলির সাথে পাশাপাশি তুলনা করুন। এটি "এটি দ্রুততর" কে "কেন এটি হঠাৎ উৎপাদনে অদ্ভুত হয়ে উঠল?"-এ পরিণত হতে বাধা দেয়।.
অপ্টিমাইজেশন শুরু করার আগে কী পরিমাপ করবেন
ল্যাটেন্সি পার্সেন্টাইল (p50, p95, p99), থ্রুপুট (টোকেন/সেকেন্ড বা অনুরোধ/সেকেন্ড), GPU ব্যবহার এবং সর্বোচ্চ VRAM/RAM দিয়ে শুরু করুন। যদি খরচ সীমাবদ্ধতা হয় তবে প্রতি অনুমান বা প্রতি 1k টোকেনের খরচ ট্র্যাক করুন। আপনার পরিবেশিত একটি বাস্তব দৃশ্যকল্প প্রোফাইল করুন, একটি খেলনা প্রম্পট নয়। একটি ছোট "পারফরম্যান্স জার্নাল" রাখা আপনাকে অনুমান করা এবং ভুল পুনরাবৃত্তি এড়াতে সাহায্য করে।.
প্রশিক্ষণ কর্মক্ষমতার জন্য দ্রুত, কম ঝুঁকিপূর্ণ জয়
মিশ্র নির্ভুলতা (FP16/BF16) প্রায়শই দ্রুততম প্রথম লিভার, তবে সংখ্যাসূচক ত্রুটিগুলির জন্য সতর্ক থাকুন। যদি ব্যাচের আকার সীমিত হয়, তাহলে গ্রেডিয়েন্ট সংগ্রহ মেমরি নষ্ট না করেই অপ্টিমাইজেশনকে স্থিতিশীল করতে পারে। গ্রেডিয়েন্ট চেকপয়েন্টিং কম মেমরির জন্য অতিরিক্ত কম্পিউট ট্রেড করে, বৃহত্তর প্রসঙ্গ সক্ষম করে। টোকেনাইজেশন এবং ডেটালোডার টিউনিং উপেক্ষা করবেন না - এগুলি চুপচাপ GPU-কে ক্ষুধার্ত করে তুলতে পারে।.
কখন torch.compile, ONNX রানটাইম, অথবা TensorRT ব্যবহার করবেন
এই টুলগুলি অপারেশনাল ওভারহেডকে লক্ষ্য করে: গ্রাফ ক্যাপচার, কার্নেল ফিউশন এবং রানটাইম গ্রাফ অপ্টিমাইজেশন। এগুলি পরিষ্কার ইনফারেন্স স্পিডআপ প্রদান করতে পারে, তবে ফলাফল মডেলের আকৃতি এবং হার্ডওয়্যার অনুসারে পরিবর্তিত হয়। কিছু সেটআপ জাদুর মতো মনে হয়; অন্যগুলি খুব কমই নড়াচড়া করে। আকৃতির পরিবর্তনের প্রতি সংবেদনশীলতা এবং মাঝে মাঝে "গ্রেমলিন" বাগ আশা করুন - আপনার আসল কাজের চাপের আগে এবং পরে পরিমাপ করুন।.
কোয়ান্টাইজেশন কি মূল্যবান, এবং কীভাবে খুব বেশি দূরে যাওয়া এড়ানো যায়
কোয়ান্টাইজেশন মেমোরি কমাতে পারে এবং অনুমান দ্রুত করতে পারে, বিশেষ করে INT8 এর ক্ষেত্রে, কিন্তু মান অন-এজ ক্ষেত্রে পিছলে যেতে পারে। নিম্ন-বিট বিকল্পগুলি (যেমন INT4/k-bit) উচ্চ ঝুঁকির সাথে আরও বেশি সঞ্চয় আনে। সবচেয়ে নিরাপদ অভ্যাস হল একটি বাস্তব পরীক্ষার সেটে মূল্যায়ন করা এবং আউটপুট তুলনা করা, অন্ত্রের অনুভূতি নয়। প্রথমে নিরাপদ পদক্ষেপ দিয়ে শুরু করুন, তারপরে প্রয়োজনে কেবল নিম্ন নির্ভুলতা ব্যবহার করুন।.
মডেলের আকার হ্রাসের জন্য ছাঁটাই এবং পাতন পদ্ধতির মধ্যে পার্থক্য
ছাঁটাই "মৃত ওজন" পরামিতিগুলি সরিয়ে দেয় এবং প্রায়শই গুণমান পুনরুদ্ধারের জন্য পুনরায় প্রশিক্ষণের প্রয়োজন হয়, বিশেষ করে যখন এটি আক্রমণাত্মকভাবে করা হয়। পাতন একটি ছোট ছাত্র মডেলকে একজন বৃহত্তর শিক্ষকের আচরণ অনুকরণ করার জন্য প্রশিক্ষণ দেয় এবং এটি চরম কোয়ান্টাইজেশনের চেয়ে দীর্ঘমেয়াদী ROI হতে পারে। আপনি যদি একটি ছোট মডেল চান যা একইভাবে আচরণ করে এবং স্থিতিশীল থাকে, তাহলে পাতন প্রায়শই পরিষ্কার পথ।.
পরিবেশন উন্নতির মাধ্যমে অনুমান ব্যয় এবং বিলম্ব কীভাবে কমানো যায়
সার্ভিং হলো এমন একটি জায়গা যেখানে অপ্টিমাইজেশন স্পষ্ট হয়ে ওঠে: ব্যাচিং থ্রুপুট বাড়ায় কিন্তু অতিরিক্ত কাজ করলে ল্যাটেন্সি ক্ষতিগ্রস্ত হতে পারে, তাই সাবধানে টিউন করুন। ক্যাশিং (প্রম্পট ক্যাশিং এবং KV-ক্যাশ পুনঃব্যবহার) প্রসঙ্গ পুনরাবৃত্তি হলে বিশাল হতে পারে। মোট সময় একই রকম হলেও স্ট্রিমিং আউটপুট অনুভূত গতি উন্নত করে। আপনার স্ট্যাকে টোকেন-বাই-টোকেন ওভারহেডের জন্যও দেখুন - প্রতি-টোকেনের ছোট কাজ দ্রুত যোগ করে।.
এআই মডেলগুলি অপ্টিমাইজ করার সময় টেইল ল্যাটেন্সি কেন এত গুরুত্বপূর্ণ
গড় সূচকগুলি দুর্দান্ত দেখাতে পারে যখন p99 একটি বিপর্যয়, এবং ব্যবহারকারীরা টেইলে বাস করার প্রবণতা রাখে। টেইল ল্যাটেন্সি প্রায়শই জিটার থেকে আসে: মেমরি ফ্র্যাগমেন্টেশন, CPU প্রিপ্রসেসিং স্পাইক, টোকেনাইজেশন স্লোডাউন, অথবা দুর্বল ব্যাচিং আচরণ। এই কারণেই নির্দেশিকাটি শতাংশ এবং বাস্তব কাজের চাপের উপর জোর দেয়। আপনি যদি শুধুমাত্র p50 অপ্টিমাইজ করেন, তবে আপনি এখনও এমন একটি অভিজ্ঞতা প্রদান করতে পারেন যা "এলোমেলোভাবে ধীর বোধ করে"।
তথ্যসূত্র
-
অ্যামাজন ওয়েব সার্ভিসেস (AWS) - AWS ক্লাউডওয়াচ পার্সেন্টাইল (পরিসংখ্যান সংজ্ঞা) - docs.aws.amazon.com
-
গুগল - দ্য টেইল অ্যাট স্কেল (টেইল ল্যাটেন্সি সেরা অনুশীলন) - sre.google
-
গুগল - সার্ভিস লেভেল অবজেক্টিভস (এসআরই বুক) - ল্যাটেন্সি পার্সেন্টাইল - sre.google
-
পাইটর্চ - টর্চ.কম্পাইল - docs.pytorch.org
-
পাইটর্চ - ফুলিশার্ডেডডেটাপ্যারালাল (এফএসডিপি) - docs.pytorch.org
-
PyTorch - PyTorch প্রোফাইলার - docs.pytorch.org
-
PyTorch - CUDA শব্দার্থবিদ্যা: মেমরি ব্যবস্থাপনা (CUDA মেমরি বরাদ্দকারী নোট) - docs.pytorch.org
-
পাইটর্চ - স্বয়ংক্রিয় মিশ্র নির্ভুলতা (torch.amp / AMP) - docs.pytorch.org
-
পাইটর্চ - টর্চ.ইউটিলস.চেকপয়েন্ট - docs.pytorch.org
-
পাইটর্চ - পারফরম্যান্স টিউনিং গাইড - docs.pytorch.org
-
পাইটর্চ - ছাঁটাই টিউটোরিয়াল - docs.pytorch.org
-
PyTorch - PyTorch-এ CUDA মেমরির ব্যবহার বোঝা - docs.pytorch.org
-
পাইটর্চ - টর্চ.কম্পাইল টিউটোরিয়াল / ওভারভিউ - docs.pytorch.org
-
ONNX রানটাইম - ONNX রানটাইম ডকুমেন্টেশন - onnxruntime.ai
-
NVIDIA - TensorRT ডকুমেন্টেশন - docs.nvidia.com
-
NVIDIA - TensorRT কোয়ান্টাইজড টাইপ - docs.nvidia.com
-
এনভিআইডিআইএ - এনসাইট সিস্টেমস - developer.nvidia.com
-
এনভিআইডিআইএ - ট্রাইটন ইনফারেন্স সার্ভার - ডায়নামিক ব্যাচিং - docs.nvidia.com
-
ডিপস্পিড - জেরো স্টেজ ৩ ডকুমেন্টেশন - deepspeed.readthedocs.io
-
বিটস্যান্ডবাইটস (বিটস্যান্ডবাইটস-ফাউন্ডেশন) - বিটস্যান্ডবাইটস - github.com
-
আলিঙ্গন মুখ - ত্বরান্বিত করুন: গ্রেডিয়েন্ট সঞ্চয় নির্দেশিকা - huggingface.co
-
আলিঙ্গন মুখ - টোকেনাইজার্স ডকুমেন্টেশন - huggingface.co
-
আলিঙ্গন মুখ - ট্রান্সফরমার: PEFT নির্দেশিকা - huggingface.co
-
আলিঙ্গন মুখ - ট্রান্সফরমার: KV ক্যাশ ব্যাখ্যা - huggingface.co
-
আলিঙ্গন মুখ - ট্রান্সফরমার: "দ্রুত" টোকেনাইজার (টোকেনাইজার ক্লাস) - huggingface.co
-
arXiv - নিউরাল নেটওয়ার্কে জ্ঞান ডিস্টিলিং (হিন্টন এট আল., ২০১৫) - arxiv.org
-
arXiv - LoRA: বৃহৎ ভাষার মডেলের নিম্ন-স্তরের অভিযোজন - arxiv.org
-
arXiv - FlashAttention: IO-Awareness এর মাধ্যমে দ্রুত এবং স্মৃতি-দক্ষ সঠিক মনোযোগ - arxiv.org