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

🔗 এআই মডেল কার্যকরভাবে মূল্যায়ন করার উপায়:
মডেলগুলোকে ন্যায্য ও নির্ভরযোগ্যভাবে বিচার করার মূল মানদণ্ড এবং পদক্ষেপসমূহ।
🔗 বাস্তব মেট্রিক ব্যবহার করে এআই-এর পারফরম্যান্স পরিমাপ করুন।
তুলনা করার জন্য বেঞ্চমার্ক, ল্যাটেন্সি, কস্ট এবং কোয়ালিটি সিগন্যাল ব্যবহার করুন।
🔗 প্রোডাকশনের আগে এআই মডেল কীভাবে পরীক্ষা করবেন
তার ব্যবহারিক টেস্টিং ওয়ার্কফ্লো: ডেটা স্প্লিট, স্ট্রেস কেস এবং মনিটরিং।
🔗 কন্টেন্ট তৈরির জন্য কীভাবে এআই ব্যবহার করবেন:
কাঠামোগত নির্দেশনা এবং পুনরাবৃত্তির মাধ্যমে ধারণাগুলোকে আরও দ্রুত খসড়ায় পরিণত করুন।
১) বাস্তবে "অপ্টিমাইজ" বলতে কী বোঝায় (কারণ সবাই এটি ভিন্নভাবে ব্যবহার করে) 🧠
যখন লোকেরা বলে "একটি AI মডেল অপ্টিমাইজ করুন," তখন তাদের অর্থ হতে পারে:
-
এটি দ্রুত করুন (কম লেটেন্সি)
-
এটিকে সস্তা করুন (জিপিইউ-ঘন্টা কম, ক্লাউড খরচ কম)
-
এটিকে আরও ছোট করুন (মেমরি ফুটপ্রিন্ট, এজ ডিপ্লয়মেন্ট)
-
এটিকে আরও নির্ভুল করুন (মানের উন্নতি, কম হ্যালুসিনেশন)
-
এটিকে আরও স্থিতিশীল করুন (কম বৈচিত্র্য, উৎপাদনে কম ব্যর্থতা)
-
পরিবেশন করা সহজ করুন (থ্রুপুট, ব্যাচিং, অনুমানযোগ্য কর্মক্ষমতা)
এখানে হালকা বিরক্তিকর সত্যটি হল: আপনি একবারে এই সবগুলিকে সর্বাধিক করতে পারবেন না। অপ্টিমাইজেশন হল বেলুন চেপে ধরার মতো - একপাশ ঠেলে ভেতরে ঢুকিয়ে দিলে অন্যপাশ বেরিয়ে আসে। সবসময় নয়, তবে প্রায়শই যথেষ্ট যে আপনার ট্রেডঅফের পরিকল্পনা করা উচিত।.
তাই যেকোনো কিছু স্পর্শ করার আগে, আপনার প্রাথমিক সীমাবদ্ধতাটি:
-
আপনি যদি ব্যবহারকারীদের লাইভ পরিষেবা দেন, তাহলে আপনার p95 ল্যাটেন্সি (AWS ক্লাউডওয়াচ পার্সেন্টাইল) এবং টেইল পারফরম্যান্স ("টেইল ল্যাটেন্সি" সেরা অনুশীলন) সম্পর্কে জানা উচিত 📉
-
আপনি যদি অনুশীলন করেন, তাহলে টাইম-টু-কোয়ালিটি এবং জিপিইউ ইউটিলাইজেশন নিয়ে আপনি চিন্তিত থাকবেন 🔥
-
ডিভাইসে ডেপ্লয় করার সময় র্যাম এবং পাওয়ারের 🔋
২) এআই মডেল অপ্টিমাইজেশনের একটি ভালো সংস্করণ দেখতে কেমন ✅
অপ্টিমাইজেশনের একটি ভালো সংস্করণ কেবল "পরিমাণ প্রয়োগ করুন এবং প্রার্থনা করুন" নয়। এটি একটি সিস্টেম। সেরা সেটআপগুলিতে সাধারণত থাকে:
-
একটি নির্ভরযোগ্য ভিত্তি।
আপনি যদি আপনার বর্তমান ফলাফল পুনরায় অর্জন করতে না পারেন, তবে আপনি বুঝতেই পারবেন না যে কোনো উন্নতি হয়েছে। ব্যাপারটা সহজ… কিন্তু মানুষ এটি এড়িয়ে যায়। তারপর তাদের অবস্থা আরও খারাপ হতে থাকে। -
একটি সুস্পষ্ট লক্ষ্যমাত্রা হিসেবে
“আরও দ্রুত” কথাটি অস্পষ্ট। “একই কোয়ালিটি স্কোরে p95-এর ল্যাটেন্সি ৯০০ms থেকে কমিয়ে ৩০০ms করা” একটি প্রকৃত লক্ষ্য। -
মানের জন্য রেলিং
প্রতিটি পারফরম্যান্স জয়ের ফলে একটি নীরব মানের রিগ্রেশনের ঝুঁকি থাকে। আপনার পরীক্ষা, মূল্যায়ন, অথবা অন্তত একটি স্যানিটি স্যুট প্রয়োজন। -
হার্ডওয়্যার সচেতনতা:
একটি জিপিইউ-তে চলা একটি “দ্রুত” মডেল অন্যটিতে অত্যন্ত ধীরগতিতে চলতে পারে। সিপিইউ-গুলো হলো এক বিশেষ ধরনের বিশৃঙ্খলা। -
একবারে বড় ধরনের পরিবর্তন নয়, বরং পর্যায়ক্রমিক পরিবর্তন।
যখন আপনি একসাথে পাঁচটি জিনিস পরিবর্তন করেন এবং পারফরম্যান্স উন্নত হয়, তখন আপনি জানেন না কেন। যা… বেশ অস্বস্তিকর।
অপ্টিমাইজেশনটা গিটারের সুর করার মতো মনে হওয়া উচিত - ছোট ছোট সমন্বয়, মনোযোগ সহকারে শুনুন, পুনরাবৃত্তি করুন 🎸। যদি মনে হয় ছুরি চালানোর মতো, তাহলে বুঝতে হবে কোথাও একটা সমস্যা আছে।.
৩) তুলনা সারণী: এআই মডেলগুলি অপ্টিমাইজ করার জনপ্রিয় বিকল্পগুলি 📊
নিচে সাধারণ অপ্টিমাইজেশন টুল/পদ্ধতির একটি দ্রুত এবং সামান্য অস্পষ্ট তুলনামূলক টেবিল দেওয়া হল। না, এটি পুরোপুরি "ন্যায্য" নয় - বাস্তব জীবনও তা নয়।.
| টুল / বিকল্প | পাঠকবর্গ | দাম | কেন এটি কাজ করে |
|---|---|---|---|
পাইটর্চ টর্চ.কম্পাইল (পাইটর্চ ডক্স) |
পাইটর্চের লোকেরা | বিনামূল্যে | গ্রাফ ক্যাপচার + কম্পাইলার কৌশলগুলি ওভারহেড কমাতে পারে... কখনও কখনও এটি জাদুকরী ✨ |
| 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-স্টাইলের অ্যাডাপ্টার) আশ্চর্যজনকভাবে শক্তিশালী থাকার পাশাপাশি প্রশিক্ষণের খরচ ব্যাপকভাবে কমাতে পারে (🤗 Transformers PEFT গাইড, LoRA পেপার)। এটি সেইসব মুহূর্তগুলোর মধ্যে একটি, যখন মনে হয়, “এটা আমরা আগে কেন করিনি?”
৬) স্থাপত্য-স্তরের অপ্টিমাইজেশন: মডেলটি ডান-আকারে করুন 🧩
কখনও কখনও অপ্টিমাইজ করার সবচেয়ে ভালো উপায় হল... এমন মডেল ব্যবহার বন্ধ করা যা কাজের জন্য খুব বড়। আমি জানি, ধর্মত্যাগ 😄।.
কয়েকটি মৌলিক বিষয়ের উপর আলোচনা করুন:
-
আপনার কি পূর্ণ সাধারণ বুদ্ধিমত্তার প্রয়োজন, নাকি বিশেষজ্ঞের প্রয়োজন, তা ঠিক করুন।.
-
কনটেক্সট উইন্ডোটি যতটা বড় হওয়া উচিত ততটা বড় রাখুন, বড় নয়।.
-
হাতে থাকা কাজের জন্য প্রশিক্ষিত একটি মডেল ব্যবহার করুন (শ্রেণীবদ্ধকরণ কাজের জন্য শ্রেণীবদ্ধকরণ মডেল, ইত্যাদি)।.
ব্যবহারিক ডান-আকার নির্ধারণের কৌশল
-
অধিকাংশ অনুরোধের জন্য একটি ছোট ব্যাকবোন ব্যবহার করুন, তারপর “কঠিন কোয়েরিগুলো” একটি বড় মডেলে পাঠান।
-
একটি দ্বি-পর্যায়ের পদ্ধতি ব্যবহার করুন:
দ্রুত খসড়া তৈরির জন্য একজন মডেল, এবং আরও দক্ষ মডেল দ্বারা যাচাই বা সম্পাদনা।
এটা অনেকটা একজন খুঁতখুঁতে বন্ধুর সাথে লেখার মতো—বিরক্তিকর, কিন্তু কার্যকর। -
আউটপুট দৈর্ঘ্য হ্রাস করুন
আউটপুট টোকেনগুলির জন্য অর্থ এবং সময় ব্যয় হয়। যদি আপনার মডেলটি এলোমেলো হয়, তাহলে আপনাকে এলোমেলোভাবের জন্য অর্থ প্রদান করতে হবে।
আমি দেখেছি যে দলগুলি সংক্ষিপ্ত আউটপুট প্রয়োগ করে নাটকীয়ভাবে খরচ কমিয়েছে। এটা তুচ্ছ মনে হয়। এটা কাজ করে।.
৭) কম্পাইলার + গ্রাফ অপ্টিমাইজেশন: গতি কোথা থেকে আসে 🏎️
এটি হল "কম্পিউটারকে আরও স্মার্ট কম্পিউটার স্টাফ করতে সাহায্য করুন" স্তর।.
সাধারণ কৌশল:
-
অপারেটর ফিউশন (কার্নেল একত্রিত করা) (এনভিডিয়া টেনসরআরটি “লেয়ার ফিউশন”)
-
ধ্রুবক ভাঁজ (প্রাক-গণনা স্থির মান) (ONNX রানটাইম গ্রাফ অপ্টিমাইজেশন)
-
কার্নেল নির্বাচন হার্ডওয়্যারের সাথে সামঞ্জস্যপূর্ণ
-
পাইথনের ওভারহেড কমাতে গ্রাফ ক্যাপচার (
torch.compileওভারভিউ )
সহজ ভাষায়: আপনার মডেলটি গাণিতিকভাবে দ্রুত হতে পারে, কিন্তু কার্যক্ষমতার দিক থেকে ধীর। কম্পাইলাররা এর কিছু অংশ ঠিক করে।.
ব্যবহারিক নোট (ওরফে দাগ)
-
এই অপ্টিমাইজেশনগুলি মডেল আকৃতির পরিবর্তনের প্রতি সংবেদনশীল হতে পারে।.
-
কিছু মডেলের গতি অনেক বাড়ে, কিছুতে খুব একটা নড়াচড়া হয় না।.
-
কখনও কখনও আপনি একটি স্পিডআপ এবং একটি বিভ্রান্তিকর বাগের সম্মুখীন হন - যেমন একটি গ্রেমলিন ভিতরে চলে গেছে 🧌
তবুও, যখন এটি কাজ করে, তখন এটি সবচেয়ে পরিষ্কার জয়গুলির মধ্যে একটি।.
৮) পরিমাণ নির্ধারণ, ছাঁটাই, পাতন: কান্না ছাড়াই ছোট (খুব বেশি) 🪓📉
এই অংশটিই মানুষ চায়... কারণ এটা বিনামূল্যের পারফর্মেন্সের মতো শোনায়। এটা হতে পারে, কিন্তু তোমাকে এটাকে অস্ত্রোপচারের মতো চিকিৎসা করতে হবে।.
পরিমাণ নির্ধারণ (কম নির্ভুল ওজন/সক্রিয়করণ)
-
অনুমানের গতি এবং স্মৃতির জন্য দুর্দান্ত
-
ঝুঁকি: গুণমান কমে যাওয়া, বিশেষ করে প্রান্তিক ক্ষেত্রে
-
সর্বোত্তম অনুশীলন: আবেগের উপর নয়, একটি বাস্তব পরীক্ষার সেটের উপর মূল্যায়ন করুন
আপনি যেসব সাধারণ স্বাদের কথা শুনবেন:
-
INT8 (প্রায়শই কঠিন) (TensorRT কোয়ান্টাইজড প্রকার)
-
INT4 / লো-বিট (বিশাল সঞ্চয়, মানের ঝুঁকি বেড়ে যায়) (বিটস্যান্ডবাইটস কে-বিট কোয়ান্টাইজেশন)
-
মিশ্র পরিমাণ (সবকিছুর জন্য একই নির্ভুলতার প্রয়োজন হয় না)
ছাঁটাই (প্যারামিটারগুলি সরান)
-
“অগুরুত্বপূর্ণ” ওয়েট বা স্ট্রাকচার অপসারণ করে (পাইটর্চ প্রুনিং টিউটোরিয়াল)
-
সাধারণত মান পুনরুদ্ধারের জন্য পুনরায় প্রশিক্ষণের প্রয়োজন হয়
-
মানুষ যা ভাবে তার চেয়েও ভালো কাজ করে... যখন সাবধানে করা হয়
পাতন (শিক্ষার্থী শিক্ষকের কাছ থেকে শেখে)
এটি আমার ব্যক্তিগত পছন্দের দীর্ঘমেয়াদী কৌশল। ডিস্টিলেশনের মাধ্যমে একটি ছোট মডেল তৈরি করা যায় যা একইভাবে আচরণ করে, এবং এটি প্রায়শই এক্সট্রিম কোয়ান্টাইজেশনের চেয়ে বেশি স্থিতিশীল (একটি নিউরাল নেটওয়ার্কে জ্ঞানের পাতন)।
একটি অসম্পূর্ণ রূপক: পাতন হলো ফিল্টারের মাধ্যমে জটিল স্যুপ ঢেলে... আরও ছোট স্যুপ তৈরি করার মতো। স্যুপ এভাবে কাজ করে না, কিন্তু আপনি ধারণাটি বুঝতে পারবেন 🍲।.
৯) পরিবেশন এবং অনুমান: আসল যুদ্ধক্ষেত্র 🧯
আপনি একটি মডেলকে "অপ্টিমাইজ" করেও খারাপভাবে পরিবেশন করতে পারেন। পরিবেশন হল এমন একটি জায়গা যেখানে বিলম্ব এবং খরচ বাস্তব হয়ে ওঠে।.
পরিবেশন করলেই জয় পাওয়া যায়, এটাই গুরুত্বপূর্ণ।
-
ব্যাচিং
থ্রুপুট উন্নত করে। কিন্তু অতিরিক্ত কাজ করলে ল্যাটেন্সি বৃদ্ধি করে। ব্যালেন্স করুন। (ট্রাইটন ডায়নামিক ব্যাচিং) -
ক্যাশিং
বারবার ব্যবহারের ক্ষেত্রে প্রম্পট ক্যাশিং এবং KV-ক্যাশ পুনঃব্যবহার বিশাল হতে পারে। (KV ক্যাশ ব্যাখ্যা) -
মোট সময় একই থাকলেও স্ট্রিমিং আউটপুট ব্যবহারকারীদের কাছে দ্রুততর মনে হয়। উপলব্ধিটা গুরুত্বপূর্ণ 🙂।
-
টোকেন-বাই-টোকেন ওভারহেড হ্রাস
কিছু স্ট্যাক প্রতি টোকেন অতিরিক্ত কাজ করে। সেই ওভারহেড হ্রাস করুন এবং আপনি বড় জয় পাবেন।
টেইল লেটেন্সির দিকে নজর রাখুন
আপনার গড় দেখতে চমৎকার লাগতে পারে, অথচ আপনার পি৯৯ (p99) একটি বিপর্যয়। দুর্ভাগ্যবশত, ব্যবহারকারীরা টেল-ল্যাটেন্সি বা প্রান্তিক অংশেই বাস করে। (“টেল ল্যাটেন্সি” এবং কেন গড় মিথ্যা বলে)
১০) হার্ডওয়্যার-সচেতন অপ্টিমাইজেশন: মেশিনের সাথে মডেলটি মেলান 🧰🖥️
হার্ডওয়্যার সচেতনতা ছাড়া অপ্টিমাইজ করা টায়ার পরীক্ষা না করেই রেস কার টিউন করার মতো। অবশ্যই, আপনি এটি করতে পারেন, তবে এটি একটু বোকামি।.
জিপিইউ বিবেচনা
-
মেমোরি ব্যান্ডউইথ প্রায়শই সীমিত ফ্যাক্টর, কাঁচা গণনা নয়
-
বৃহত্তর ব্যাচের আকার সাহায্য করতে পারে, যতক্ষণ না তারা সাহায্য করে
-
ট্রান্সফরমারের জন্য কার্নেল ফিউশন এবং মনোযোগ অপ্টিমাইজেশন বিশাল (FlashAttention: IO-সচেতন সঠিক মনোযোগ)
সিপিইউ বিবেচনা
-
থ্রেডিং, ভেক্টরাইজেশন এবং মেমোরি লোক্যালিটি অনেক গুরুত্বপূর্ণ।
-
টোকেনাইজেশনের অতিরিক্ত খরচই প্রধান হয়ে উঠতে পারে (🤗 “দ্রুত” টোকেনাইজারগুলো)
-
আপনার GPU-এর চেয়ে ভিন্ন কোয়ান্টাইজেশন কৌশলের প্রয়োজন হতে পারে।
এজ / মোবাইল বিবেচনা
-
মেমোরি ফুটপ্রিন্ট অগ্রাধিকার নম্বর এক হয়ে ওঠে
-
বিলম্বের ভিন্নতা গুরুত্বপূর্ণ কারণ ডিভাইসগুলি... মেজাজ খারাপ
-
ছোট, বিশেষায়িত মডেলগুলি প্রায়শই বড় সাধারণ মডেলগুলিকে ছাড়িয়ে যায়
১১) মানসম্পন্ন রেলিং: নিজেকে পোকামাকড়ের মতো "অপ্টিমাইজ" করবেন না 🧪
প্রতিটি স্পিড জয়ের সাথে মান যাচাই করা উচিত। অন্যথায় আপনি উদযাপন করবেন, জাহাজে তুলে দেবেন, এবং তারপর একটি বার্তা পাবেন "সহকারী হঠাৎ জলদস্যুদের মতো কেন কথা বলছে?" 🏴☠️
বাস্তবসম্মত রেলিং:
-
গোল্ডেন প্রম্পট (নির্দিষ্ট প্রম্পটের সেট যা আপনি সর্বদা পরীক্ষা করেন)
-
টাস্ক মেট্রিক্স (নির্ভুলতা, F1, BLEU, যা কিছু উপযুক্ত)
-
মানুষের স্পট চেক (হ্যাঁ, সত্যি বলতে)
-
রিগ্রেশন থ্রেশহোল্ড (“X% এর বেশি হ্রাস অনুমোদিত নয়”)
এছাড়াও ব্যর্থতার মোডগুলি ট্র্যাক করুন:
-
ফর্ম্যাটিং ড্রিফট
-
প্রত্যাখ্যান আচরণের পরিবর্তন
-
হ্যালুসিনেশন ফ্রিকোয়েন্সি
-
প্রতিক্রিয়া দৈর্ঘ্য মুদ্রাস্ফীতি
অপ্টিমাইজেশন আশ্চর্যজনকভাবে আচরণ পরিবর্তন করতে পারে। অদ্ভুতভাবে। বিরক্তিকরভাবে। অনুমানযোগ্যভাবে, পিছনের দিকে তাকালে।.
১২) চেকলিস্ট: ধাপে ধাপে এআই মডেলগুলি কীভাবে অপ্টিমাইজ করবেন ✅🤖
আপনি যদি এআই মডেল অপ্টিমাইজ করার জন্য একটি সুস্পষ্ট কার্যপ্রণালী চান , তাহলে এই হলো সেই কর্মপ্রবাহ যা সাধারণত মানুষকে নিশ্চিন্ত রাখে:
-
সাফল্যের সংজ্ঞা দিন
১-২টি প্রাথমিক মেট্রিক্স (লেটেন্সি, খরচ, থ্রুপুট, গুণমান) বেছে নিন। -
বেসলাইন
প্রোফাইলের আসল কাজের চাপ পরিমাপ করুন, p50/p95 রেকর্ড করুন, মেমোরি, খরচ। (PyTorch প্রোফাইলার) -
পাইপলাইনের বাধাগুলি ঠিক করুন
ডেটা লোডিং, টোকেনাইজেশন, প্রিপ্রসেসিং, ব্যাচিং। -
কম ঝুঁকিপূর্ণ কম্পিউট উইন প্রয়োগ করুন
মিশ্র নির্ভুলতা, কার্নেল অপ্টিমাইজেশন, আরও ভালো ব্যাচিং। -
কম্পাইলার/রানটাইম অপ্টিমাইজেশন চেষ্টা করুন
গ্রাফ ক্যাপচার, ইনফারেন্স রানটাইম, অপারেটর ফিউশন। (টর্চ.কম্পাইলটিউটোরিয়াল, ONNX রানটাইম ডক্স) -
মডেলের খরচ কমান
সাবধানে পরিমাণ নির্ধারণ করুন, সম্ভব হলে পাতন করুন, উপযুক্ত হলে ছাঁটাই করুন। -
টিউন সার্ভিং
ক্যাশিং, কনকারেন্সি, লোড টেস্টিং, টেইল ল্যাটেন্সি ফিক্স। -
গুণমান যাচাই করুন
রিগ্রেশন পরীক্ষা চালান এবং আউটপুটগুলি পাশাপাশি তুলনা করুন। -
পুনরাবৃত্তি করুন
ছোট পরিবর্তন, স্পষ্ট নোট, পুনরাবৃত্তি করুন। অস্পষ্ট - কার্যকর।
আর হ্যাঁ, এটা আসলেই ‘এআই মডেল অপ্টিমাইজ করার উপায়’-এরই একটি অংশ, যদিও শুনতে ‘কীভাবে নিজের পায়ে কুড়াল না পেটানো যায়’-এর মতো মনে হতে পারে। একই ব্যাপার।
১৩) সাধারণ ভুল (যাতে তুমি আমাদের মতো বারবার না করো) 🙃
-
পরিমাপ করার আগে অপ্টিমাইজ করলে
আপনার সময় নষ্ট হবে। আর তারপর আপনি আত্মবিশ্বাসের সাথে ভুল জিনিসটি অপ্টিমাইজ করবেন… -
একক মানদণ্ডের পিছনে ছুটলে
মানদণ্ডগুলি বাদ পড়ে যায়। আপনার কাজের চাপই সত্য। -
মেমোরির সমস্যা উপেক্ষা করলে
মেমোরির গতি কমে যায়, ক্র্যাশ হয় এবং ভীতিকর অবস্থা তৈরি হয়। (পাইটর্চে CUDA মেমোরির ব্যবহার বোঝা) -
খুব তাড়াতাড়ি অতিরিক্ত পরিমাণ নির্ধারণ করা
কম-বিট পরিমাণ আশ্চর্যজনক হতে পারে, তবে প্রথমে নিরাপদ পদক্ষেপগুলি দিয়ে শুরু করুন। -
রোলব্যাকের কোনো পরিকল্পনা নেই।
যদি দ্রুত আগের অবস্থায় ফিরে যাওয়া না যায়, প্রতিটি ডেপ্লয়মেন্টই চাপপূর্ণ হয়ে ওঠে। চাপ থেকেই বাগ তৈরি হয়।
সমাপনী নোট: অপ্টিমাইজ করার মানবিক উপায় 😌⚡
এআই মডেল অপ্টিমাইজ করা কোনো একক কৌশল নয়। এটি একটি স্তরযুক্ত প্রক্রিয়া: পরিমাপ করুন, পাইপলাইন ঠিক করুন, কম্পাইলার ও রানটাইম ব্যবহার করুন, সার্ভিং টিউন করুন, এবং প্রয়োজনে কোয়ান্টাইজেশন বা ডিস্টিলেশনের মাধ্যমে মডেলটিকে সংকুচিত করুন। এটি ধাপে ধাপে করুন, গুণমানের রক্ষাকবচ বজায় রাখুন, এবং শুধুমাত্র “এটি দ্রুততর মনে হচ্ছে” এই অনুভূতিকে পরিমাপক হিসেবে বিশ্বাস করবেন না (আপনার অনুভূতি সুন্দর, কিন্তু আপনার অনুভূতি কোনো প্রোফাইলার নয়)।
যদি আপনি সবচেয়ে সংক্ষিপ্ত উপায় চান:
-
আগে পরিমাপ করো 🔍
-
পরবর্তী পাইপলাইনটি অপ্টিমাইজ করুন 🧵
-
তারপর মডেলটি অপ্টিমাইজ করুন 🧠
-
তারপর পরিবেশন অপ্টিমাইজ করুন 🏗️
-
সর্বদা মান পরীক্ষা করুন ✅
আর যদি এটি সাহায্য করে, তাহলে নিজেকে মনে করিয়ে দিন: লক্ষ্যটি "নিখুঁত মডেল" নয়। লক্ষ্যটি হল এমন একটি মডেল যা দ্রুত, সাশ্রয়ী মূল্যের এবং যথেষ্ট নির্ভরযোগ্য যাতে আপনি রাতে ঘুমাতে পারেন... বেশিরভাগ রাতে 😴।.
বাস্তব উদাহরণ: একটি সাপোর্ট-টিকেট সামারাইজার অপ্টিমাইজ করা 🎟️⚡
দৃশ্যকল্প
ধরুন, একটি ছোট SaaS টিম কোনো মানব এজেন্টের উত্তর দেওয়ার আগেই আগত সাপোর্ট টিকেটগুলোর সারসংক্ষেপ করতে একটি AI মডেল ব্যবহার করছে। মডেলটি কাজ করে, কিন্তু এটি ধীরগতির: এজেন্টরা সারসংক্ষেপের জন্য অনেক বেশি সময় অপেক্ষা করে, এবং এই অনুমানের জন্য কোম্পানিকে প্রত্যাশার চেয়ে বেশি অর্থ ব্যয় করতে হচ্ছে।.
লক্ষ্যটি মডেলটিকে সম্ভাব্য সব দিক থেকে “আরও ভালো” করে তোলা নয়। দলটি একটি প্রধান সীমাবদ্ধতা বেছে নেয়: সারসংক্ষেপের মান গ্রহণযোগ্য রেখে p95 লেটেন্সি কমানো।.
তাদের লক্ষ্য স্পষ্ট:
৫০-টিকিটের একটি টেস্ট সেটে একটির বেশি গুরুতর সামারি এরর ছাড়াই p95 ল্যাটেন্সি প্রায় ২.৪ সেকেন্ড থেকে কমিয়ে ১.২ সেকেন্ডের নিচে আনা হয়েছে।.
ওয়ার্কফ্লোর যা প্রয়োজন
এটিকে বাস্তবসম্মত করতে, দলটি একত্রিত হয়:
ছোট, মাঝারি এবং অগোছালো টিকিট সহ ৫০টি টিকিটের একটি গোল্ডেন টেস্ট সেট।
প্রত্যাশিত সারাংশ শৈলী: ৩টি বুলেট পয়েন্ট, কোনো মনগড়া তথ্য নয়, সুস্পষ্ট হলে জরুরি অবস্থা উল্লেখ করুন।
বেসলাইন মেট্রিকস: পি৫০, পি৯৫, পি৯৯ ল্যাটেন্সি, উৎপন্ন টোকেন, প্রতি টিকিটের খরচ, এবং ত্রুটির সংখ্যা
একটি সাধারণ মানব পর্যালোচনা চেকলিস্ট
মডেল লগ, টোকেন সংখ্যা এবং ব্যাচ/কনকারেন্সি সেটিংসে অ্যাক্সেস
গুণমান কমে গেলে পূর্বাবস্থায় ফেরার একটি বিকল্প রয়েছে।
গুরুত্বপূর্ণ বিষয়টি হলো: তারা কোয়ান্টাইজেশন দিয়ে শুরু করে না। প্রথমে তারা যাচাই করে দেখে যে পাইপলাইনটি সময় অপচয় করছে কিনা।.
উদাহরণ নির্দেশাবলী
প্রতিটি সাপোর্ট টিকেটের ক্ষেত্রে, গ্রাহকের সমস্যাটি ঠিক তিনটি বুলেট পয়েন্টে সংক্ষেপে বর্ণনা করুন।.
অন্তর্ভুক্ত:
-
মূল সমস্যা
-
উল্লেখিত যেকোনো পণ্য এলাকা
-
তাৎক্ষণিকতা বা ব্যবসায়িক প্রভাব, যদি উল্লেখ করা থাকে
অনুপস্থিত বিবরণ মনগড়াভাবে তৈরি করবেন না। যদি গ্রাহক পর্যাপ্ত তথ্য না দেন, তাহলে বলুন “নির্দিষ্ট করা হয়নি”।.
সারাংশটি ৮০ শব্দের মধ্যে রাখুন।.
কীভাবে এটি পরীক্ষা করবেন
পুরানো এবং নতুন সেটআপ উভয় ক্ষেত্রেই একই ৫০টি টিকিট চালান।.
প্রতিটি রানের জন্য, লিপিবদ্ধ করুন:
p50, p95, এবং p99 লেটেন্সি
গড় আউটপুট টোকেন
প্রতি ১,০০০ টিকিটের খরচ
মনগড়া বিবরণসহ সারাংশের সংখ্যা
মানুষের দ্বারা পুনর্লিখনের প্রয়োজন এমন সারাংশের সংখ্যা
তারপর কয়েকটি অস্বস্তিকর পরিস্থিতি পরীক্ষা করে দেখুন:
তিনটি পৃথক সমস্যা সহ একটি টিকিট
একজন অত্যন্ত ক্ষুব্ধ গ্রাহকের বার্তা
প্রায় কোনো বিবরণ ছাড়াই একটি অস্পষ্ট টিকিট
পেস্ট করা লগ সম্বলিত একটি টিকিট
একটি টিকেট যেখানে গ্রাহক তার অ্যাকাউন্ট বাতিল করার কথা উল্লেখ করেছেন।
এর মাধ্যমে সেই সাধারণ ত্রুটিটি ধরা পড়ে, যেখানে অপ্টিমাইজেশনের ফলে মডেলটি দ্রুততর হলেও কম সতর্ক হয়ে যায়।.
ফলাফল
তিনটি অপ্টিমাইজেশন পাসের আগে ও পরে ৫০টি নমুনা টিকিটের সময় পরিমাপের উপর ভিত্তি করে দৃষ্টান্তমূলক ফলাফল:
ভিত্তি:
পি৯৫ ল্যাটেন্সি: ২.৪ সেকেন্ড
পি৯৯ ল্যাটেন্সি: ৩.১ সেকেন্ড
গড় আউটপুট দৈর্ঘ্য: ১৪২ শব্দ
মানুষের দ্বারা পুনর্লিখন: ৫০টির মধ্যে ১১টি
গুরুতর মনগড়া বিবরণের ত্রুটি: ৫০টির মধ্যে ৩টি
অপ্টিমাইজেশনের পরে:
পি৯৫ ল্যাটেন্সি: ১.১ সেকেন্ড
পি৯৯ ল্যাটেন্সি: ১.৬ সেকেন্ড
গড় আউটপুট দৈর্ঘ্য: ৬১টি শব্দ
মানুষের দ্বারা পুনর্লিখন: ৫০টির মধ্যে ৫টি
গুরুতর মনগড়া বিবরণের ত্রুটি: প্রতি ৫০টিতে ১টি
কী পরিবর্তন হয়েছে:
দলটি আউটপুটের দৈর্ঘ্য ৮০ শব্দে সীমাবদ্ধ করেছে।
তারা কম অগ্রাধিকারের টিকিটগুলোকে ৮টি করে দলে ভাগ করেছিল।
তারা পুনরাবৃত্ত পণ্য-নীতি প্রসঙ্গ ক্যাশ করে রেখেছিল
গুণমান বজায় আছে তা নিশ্চিত করার পর তারা মিশ্র নির্ভুলতা চালু করেছে।
তারা কোয়ান্টাইজেশনের কাজটি পরের জন্য রেখেছিল, কারণ ল্যাটেন্সির লক্ষ্যমাত্রা ইতিমধ্যেই পূরণ হয়ে গিয়েছিল।
এই উদাহরণে খরচও কমেছে, কারণ মডেলটি কম টোকেন তৈরি করেছে। যদি পুরোনো সেটআপে প্রতি টিকেটে প্রায় ১৪২টি শব্দ তৈরি হতো এবং নতুন সেটআপে প্রায় ৬১টি শব্দ তৈরি হয়, তাহলে আউটপুটের দৈর্ঘ্য প্রায় ৫৭% কমে গেছে। এটি এমন একটি পরিমাপ যা টিম সরাসরি লগ থেকে যাচাই করতে পারে।.
কী ভুল হতে পারে
সবচেয়ে লোভনীয় ভুলটি হলো শুধুমাত্র গতির জন্য অপ্টিমাইজ করা। একটি দ্রুততর সারসংক্ষেপ, যা অর্থ ফেরতের প্রতিশ্রুতি তৈরি করে, তা কোনো উন্নতি নয়।.
অন্যান্য সহজ ভুলগুলো:
শুধুমাত্র ত্রুটিমুক্ত টিকিট পরীক্ষা করা হচ্ছে
p99 লেটেন্সি উপেক্ষা করা হচ্ছে
আউটপুট দৈর্ঘ্য তুলনা করতে ভুলে যাওয়া
একই সাথে ব্যাচিং এবং মডেল সেটিংস পরিবর্তন করা
টেইল ল্যাটেন্সির পরিবর্তে গড় ল্যাটেন্সি ব্যবহার করা
পর্যালোচনার চেকলিস্ট ছাড়াই “গুণমান একই আছে” বলে দাবি করা
নিরাপদ পর্যালোচনার নিয়মটি খুবই সহজ: যদি ৫০টি সারসংক্ষেপের মধ্যে ২টির বেশিতে গুরুত্বপূর্ণ তথ্য মনগড়া হয়, তবে পূর্বাবস্থায় ফিরে যান এবং তদন্ত করুন।.
ব্যবহারিক শিক্ষা
বাস্তবে একটি কার্যকর এআই মডেল অপটিমাইজেশন দেখতে এইরকম: একটি সীমাবদ্ধতা বেছে নিন, বর্তমান সিস্টেমটি পরিমাপ করুন, প্রথমে অপচয় দূর করুন, কম ঝুঁকিপূর্ণ পরিবর্তনগুলো প্রয়োগ করুন, এবং তারপর গতানুগতিক কিন্তু মূল্যবান পরীক্ষার মাধ্যমে এর গুণমান যাচাই করুন। এর ফল শুধু একটি দ্রুততর মডেল পাওয়া নয়। বরং এমন একটি দ্রুততর মডেল পাওয়া, যার ওপর আপনি আস্থা রাখতে পারেন।.
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
বাস্তবে একটি 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