পরিচয়
এআই ওয়ার্কফ্লো দলগুলি নতুন প্রকল্পগুলিতে সবচেয়ে বড় খরচ-সঞ্চয়কারী পদক্ষেপগুলির মধ্যে একটি হল উপযুক্ত হলে সার্ভারহীন অনুমানের সুবিধা নেওয়া। ঐতিহ্যগতভাবে, AI মডেলগুলির জন্য একটি ডেডিকেটেড জিপিইউর প্রয়োজন হয় যাতে 24/7 ঘন্টা অর্থ প্রদান করা হয়। সার্ভারলেস ইনফারেন্স এন্ডপয়েন্টের সাথে, দলগুলির কাছে প্রতি ঘন্টা অর্থ প্রদানের পরিবর্তে এবং সেটআপ এবং রক্ষণাবেক্ষণ নিজেরাই পরিচালনা করার পরিবর্তে একটি পে-প্রতি-টোকেন ভিত্তিতে অনেকগুলি ওপেন সোর্স মডেল ব্যবহার করার বিকল্প রয়েছে৷ এটি একটি নতুন পণ্য চালানোর খরচ কমিয়েছে কারণ এটি দলগুলিকে শুধুমাত্র তাদের ব্যবহার এবং স্কেলগুলির জন্য প্রয়োজনীয় অর্থ প্রদান করতে দেয়৷
যদিও সার্ভারহীন আর্কিটেকচার এখন কিছু সময়ের জন্য বিদ্যমান, কাস্টম বা সূক্ষ্ম-টিউনড মডেল সহ দলগুলি এখনও প্রায়শই GPU ব্যবহারের জন্য ঘন্টায় হার দেয়। যাইহোক, সূক্ষ্ম-টিউন করা মডেলগুলি হোস্ট করা এবং পে-পার-টোকেন বিলিং সহ একটি সার্ভারহীন এন্ডপয়েন্টের মাধ্যমে সরবরাহ করা সম্ভব। সার্ভারহীনভাবে সূক্ষ্ম-টিউন করা মডেলগুলি কীভাবে হোস্ট করা সম্ভব এবং এটি করার সুবিধা এবং ক্ষতিগুলি আমরা দেখব৷
প্রধান টেকওয়ে
- পরামিটার-দক্ষ ফাইন-টিউনিং পদ্ধতি যেমন LoRA কাস্টম মডেলগুলির সার্ভারহীন হোস্টিংকে ব্যবহারিক করে তোলে ছোট অ্যাডাপ্টার ওজন তৈরি করে যা একটি ভাগ করা, হিমায়িত বেস মডেলের উপরে স্তরযুক্ত হতে পারে। এর মানে হল প্ল্যাটফর্মগুলি একটি একক GPU থেকে শত শত সূক্ষ্ম-টিউনড ভেরিয়েন্ট পরিবেশন করতে পারে, প্রতি-মডেল নিবেদনের প্রয়োজনীয়তা দূর করে৷
- বিস্ফোরিত বা অপ্রত্যাশিত ট্র্যাফিক সহ দলগুলি সার্ভারহীন ফাইন-টিউনড এন্ডপয়েন্টগুলিতে স্যুইচ করে অনুমান খরচ কমাতে পারে, কেবলমাত্র তারা যে টোকেনগুলি ব্যবহার করে তার জন্য চব্বিশ ঘন্টা GPU চালানোর পরিবর্তে অর্থ প্রদান করে৷ স্থাপনাও দ্রুততর, যেহেতু একটি পরিচালিত প্ল্যাটফর্মে একটি প্রশিক্ষিত অ্যাডাপ্টার আপলোড করা কোনো অবকাঠামো সেটআপ ছাড়াই মিনিটের মধ্যে একটি লাইভ API এন্ডপয়েন্ট তৈরি করে৷
- সূক্ষ্ম-টিউন করা মডেলগুলির সাথে সার্ভারহীন অনুমানের প্রধান ট্রেডঅফ হল কোল্ড স্টার্টস, যেখানে একটি নিষ্ক্রিয় অ্যাডাপ্টারকে অনুরোধগুলি পরিবেশন করার আগে স্টোরেজ থেকে পুনরায় লোড করতে হবে, কয়েকশ মিলিসেকেন্ড পর্যন্ত লেটেন্সি যোগ করে। এটি পর্যায়ক্রমে জীবিত রাখার অনুরোধের মাধ্যমে প্রশমিত করা যেতে পারে, এবং বিলম্বটি সম্পূর্ণ মডেলের কোল্ড স্টার্টের চেয়ে ছোট কারণ শুধুমাত্র হালকা অ্যাডাপ্টারের ওজন আনতে হবে।
সমর্থিত ফাইন-টিউনিং পদ্ধতি
এখানে এটা স্পষ্ট করা গুরুত্বপূর্ণ যে আমরা যখন এই প্রসঙ্গে "ফাইন-টিউনিং" বলি, তখন আমরা প্রথাগত সম্পূর্ণ ফাইন-টিউনিং বলতে চাই না, যেখানে একটি মডেলের সমস্ত ওজন নতুন ডেটাতে স্ক্র্যাচ থেকে পুনরায় প্রশিক্ষণ দেওয়া হয়। সম্পূর্ণ ফাইন-টিউনিং ব্যয়বহুল, সময়সাপেক্ষ এবং একটি সম্পূর্ণ নতুন মডেল তৈরি করে যা আসলটির মতোই বড়। সেই মডেল সার্ভারহীনভাবে হোস্ট করা অব্যবহারিক কারণ এটি বিভিন্ন ব্যবহারকারীদের মধ্যে ভাগ করা যায় না। এটির নিজস্ব ডেডিকেটেড GPU স্থাপনা প্রয়োজন৷
প্যারামিটার-দক্ষ ফাইন-টিউনিং (PEFT) সমস্ত ওজন পুনরায় প্রশিক্ষণের পরিবর্তে শুধুমাত্র ওজনের একটি ছোট উপসেট আপডেট করে, মূল মডেলটিকে হিমায়িত করে রাখে। এটি অতিরিক্ত ওজনের একটি অনেক ছোট সেট তৈরি করে যা কাস্টমাইজেশনের প্রতিনিধিত্ব করে, যখন ভারী বেস মডেল অপরিবর্তিত থাকে এবং অনেকগুলি ভিন্ন, অ-সম্পর্কিত ব্যবহারকারীদের মধ্যে ভাগ করা যায়।
সর্বাধিক ব্যবহৃত PEFT পদ্ধতি হল নিম্ন-র্যাঙ্ক অ্যাডাপ্টেশন (LoRA)। মডেলের বিদ্যমান ওজন সরাসরি পরিবর্তন করার পরিবর্তে, LoRA হিমায়িত বেস মডেলের উপরে ছোট প্রশিক্ষণযোগ্য অ্যাডাপ্টার ম্যাট্রিক্স যোগ করে। এই অ্যাডাপ্টারগুলি কেবলমাত্র কয়েক মেগাবাইটের ওজনে টাস্ক-নির্দিষ্ট আচরণ ক্যাপচার করে, বেস মডেলের দশ বা শত গিগাবাইটের তুলনায়। LoRA এছাড়াও QLoRA, DoRA, এবং LoRA+ সহ বেশ কয়েকটি ভেরিয়েন্টে আসে, যেগুলি সার্ভারহীন ইনফারেন্স প্ল্যাটফর্ম দ্বারা ব্যাপকভাবে সমর্থিত৷
কারণ বেস মডেলটি হিমায়িত এবং সমস্ত ব্যবহারকারীর জন্য অভিন্ন, একটি প্ল্যাটফর্ম এটি একবার GPU মেমরিতে লোড করতে পারে এবং শেয়ার করতে পারে। প্রতিটি ব্যবহারকারীর LoRA অ্যাডাপ্টারকে অনুরোধের সময় উপরে লোড করা যেতে পারে, এটি একটি একক GPU থেকে শত শত সূক্ষ্ম-টিউনড ভেরিয়েন্ট পরিবেশন করা ব্যবহারিক করে তোলে। এটি লক্ষ করাও গুরুত্বপূর্ণ যে প্ল্যাটফর্মগুলি যেগুলি সূক্ষ্ম-টিউনড মডেলগুলিতে সার্ভারহীন অনুমান সমর্থন করে, সাধারণত এটি শুধুমাত্র নির্দিষ্ট বেস মডেলগুলির সাথে সমর্থন করে। তাই আপনার একটি LoRA অ্যাডাপ্টার থাকা দরকার যা তাদের সমর্থিত বেস মডেলগুলির একটিতে প্রশিক্ষিত হয়েছে৷
একাধিক LoRA অ্যাডাপ্টার পরিচালনা করা
LoRA অ্যাডাপ্টারের ওজন (সাধারণত প্রতিটি 10-100 MB এর মধ্যে) দ্রুত অবজেক্ট স্টোরেজ বা ইনফরেন্স সার্ভার দ্বারা পরিচালিত একটি ইন-মেমরি ক্যাশে সংরক্ষণ করা হয়। যখন একটি নির্দিষ্ট অ্যাডাপ্টারের জন্য একটি অনুরোধ আসে, তখন পরিবেশন ব্যবস্থা সেই ওজনগুলি নিয়ে আসে এবং ফ্লাইতে ফরোয়ার্ড পাসে ফিউজ করে৷
এই ফিউশন প্রক্রিয়া হালকা। প্রতিটি ট্রান্সফরমার স্তরে যেখানে LoRA প্রয়োগ করা হয়, অ্যাডাপ্টার দুটি ছোট ম্যাট্রিস যোগ করে যা স্তরের আউটপুটগুলিতে একটি নিম্ন-র্যাঙ্ক সংশোধন তৈরি করে। অনুমানের সময়, সার্ভার বেস লেয়ারের আউটপুট গণনা করে, তারপরে কয়েকটি অতিরিক্ত CUDA অপারেশনে LoRA সংশোধন যোগ করে। বেস ওয়েটগুলি কখনই পরিবর্তন করা হয় না, তাই অনুরোধগুলির মধ্যে অ্যাডাপ্টারগুলিকে অদলবদল করার জন্য শুধুমাত্র GPU রেজিস্টারগুলিতে সেই ছোট ম্যাট্রিক্স জোড়াগুলিকে প্রতিস্থাপন করা প্রয়োজন, বেস মডেলটি পুনরায় লোড করা বা একটি CUDA কার্নেল পুনরায় চালু করার পরিবর্তে৷
সবচেয়ে বড় চ্যালেঞ্জগুলির মধ্যে একটি হল মেমরি ম্যানেজমেন্ট যার শত শত অ্যাডাপ্টার একটি একক উদাহরণে কাজ করে। ইনফারেন্স সার্ভারটিকে VRAM-এ সরাসরি অতি সম্প্রতি এবং সর্বাধিক ব্যবহৃত অ্যাডাপ্টারের ওজনের একটি ছোট আবাসিক ক্যাশে বজায় রাখতে হবে। অন্যান্য অ্যাডাপ্টারগুলি VRAM থেকে উচ্ছেদ করা হয় এবং CPU RAM বা অবজেক্ট স্টোরেজে আবার সংরক্ষণ করা হয়, যার ফলে কয়েকশ মিলিসেকেন্ডের রিলোড টাইম পেনাল্টি হয়৷
ব্যাচিং প্রক্রিয়া ব্যবহৃত LoRA পদ্ধতির উপর ভিত্তি করে ভিন্ন হতে পারে। অ্যাডাপ্টার শেয়ার করা অনুরোধগুলি সাধারণত প্রতিটি সাব-গ্রুপের জন্য সংশোধন করার আগে সাব-ব্যাচে গোষ্ঠীভুক্ত করা হয়, কিন্তু কিছু সিস্টেম, যেমন S-LoRA, একই ফরওয়ার্ড পাসে বিভিন্ন অ্যাডাপ্টার থেকে অনুরোধগুলি প্যাক করে এবং একটি ইউনিফাইড মেমরি পুলে সক্রিয় অ্যাডাপ্টারগুলি সংরক্ষণ করে, তারপরে তাদের কাস্টম CUDA কার্নেলগুলির সাথে সম্বোধন করে যা বিভিন্ন অ্যাডাপ্টারের সংশোধনের জন্য ভিন্ন ভিন্ন অবস্থানে প্রয়োগ করতে পারে। এই পদ্ধতিকে কখনও কখনও LoRA মাল্টিপ্লেক্সিং বলা হয়। এটি GPU-কে স্যাচুরেটেড থাকার অনুমতি দেয় এমনকি যখন ট্র্যাফিক একবারে বিভিন্ন সূক্ষ্ম-টিউনড ভেরিয়েন্টে ছড়িয়ে পড়ে। ভিএলএলএম এছাড়াও ব্যবহারকারীদের জন্য স্থানীয়ভাবে LoRA মাল্টিপ্লেক্সিং সমর্থন করে যারা GPU-তে LoRA অ্যাডাপ্টার অদলবদল করতে আগ্রহী তারা প্রতি ঘণ্টায় ভাড়া নিচ্ছে।
কেভি-ক্যাশে এন্ট্রিগুলি অ্যাডাপ্টারের সাথে সংযুক্ত করা হয়েছে যা তাদের তৈরি করেছে। একটি অ্যাডাপ্টারের সাথে তৈরি করা একটি ক্যাশে এন্ট্রি একটি ভিন্ন অ্যাডাপ্টার ব্যবহার করে একটি অনুরোধের জন্য পুনরায় ব্যবহার করা যাবে না। এটি শেষ পর্যন্ত একটি একক-মডেল স্থাপনার তুলনায় মাল্টি-অ্যাডাপ্টার সেটিংয়ে কম কেভি-ক্যাশ হিট রেট তৈরি করে, এবং অনুমান সার্ভারগুলিকে অনুরোধের প্রম্পট টোকেন এবং অ্যাডাপ্টার শনাক্তকারী উভয় দ্বারাই ক্যাশে এন্ট্রি করতে হবে৷
সার্ভারলেস ফাইন-টিউনিং ব্যবহারের বাস্তব প্রভাব
সার্ভারবিহীন ফাইন-টিউনিং এর শক্তিগুলি এমন দলগুলির জন্য সবচেয়ে স্পষ্ট যেগুলি নতুন পরিষেবা তৈরি করছে যেগুলির মধ্যে ট্র্যাফিকের অসামঞ্জস্যপূর্ণ বিস্ফোরণ রয়েছে যাতে সংরক্ষিত জিপিইউগুলি 24/7 চালানোর জন্য প্রয়োজনীয় বা খরচ-কার্যকর নয়। রাতারাতি নিষ্ক্রিয় ঘন্টার জন্য একটি নির্দিষ্ট GPU-ঘন্টা রেট দেওয়ার পরিবর্তে, আপনি শুধুমাত্র আপনার অনুরোধ থেকে টোকেনের জন্য অর্থ প্রদান করছেন। সার্ভারবিহীন আর্কিটেকচারে স্থানান্তর করার মাধ্যমে, আপনি মাত্রার ক্রম অনুসারে অনুমান খরচ কমাতে পারেন।
স্থাপনার গতিও অনেক দ্রুত। একবার আপনার LoRA অ্যাডাপ্টার প্রশিক্ষিত হয়ে গেলে, এটিকে একটি পরিচালিত অনুমান প্ল্যাটফর্মে আপলোড করলে মিনিটের মধ্যে একটি লাইভ API এন্ডপয়েন্ট তৈরি হয়, কোন ক্লাস্টার প্রভিশনিং, কন্টেইনার অর্কেস্ট্রেশন বা GPU ড্রাইভার ম্যানেজমেন্ট ছাড়াই। এটি আপনার দলকে মডেল এবং পণ্যের উপর ফোকাস করার জন্য মুক্ত করে অবকাঠামোর বোঝাকে সহজ করে। আপনি এখনও মডেলের আচরণের উপর নিয়ন্ত্রণ বজায় রাখতে সক্ষম, এবং আপনি অ্যাডাপ্টারের ওজনের মালিক হন যদিও বেস মডেলটি ভাগ করা হয় এবং দক্ষতার সাথে এবং সাশ্রয়ীভাবে চলছে৷
সার্ভারহীনভাবে সূক্ষ্ম-টিউনড মডেলগুলি হোস্ট করার সবচেয়ে বড় খারাপ দিক হল কোল্ড স্টার্ট। যখন একটি অ্যাডাপ্টার নির্দিষ্ট সময়ের জন্য কোন ট্র্যাফিক পায় না, তখন অনুমান প্ল্যাটফর্মগুলি সাধারণত এটিকে শূন্যে স্কেল করে, GPU মেমরি থেকে ওজন উচ্ছেদ করে এবং অন্যান্য ব্যবহারকারীদের জন্য VRAM পুনরায় দাবি করে। এর মানে হল যে পরবর্তী ব্যবহারকারীকে অপেক্ষা করতে হবে যখন সিস্টেম অবজেক্ট স্টোরেজ থেকে ওজন নিয়ে আসে, সেগুলি লোড করে এবং ফরওয়ার্ড পাস শুরু করে। এটি সাধারণত কয়েক সেকেন্ডের পরিবর্তে প্রায় কয়েকশ মিলিসেকেন্ড সময় নেয়, কারণ অ্যাডাপ্টারগুলি ছোট। সতর্কতা হিসাবে, যদি বেস মডেলটি প্রায়শই ব্যবহার না করা হয় এবং নিজেকে উচ্ছেদ করা হয়, যা কিছু আর্কিটেকচারে সম্ভব, ঠান্ডা শুরু হতে বেশি সময় লাগতে পারে। ঠাণ্ডা শুরু হয় বিশেষভাবে টাইম-টু-ফার্স্ট-টোকেন (টিটিএফটি) টাইম-পার-আউটপুট-টোকেনকে প্রভাবিত না করেই, প্রথমটির পরে যে হারে টোকেন তৈরি হয়। টিটিএফটি হল স্ট্রিমিং লেটেন্সি কমানোর চেষ্টাকারী দলগুলির জন্য দেখার মেট্রিক৷
ঠান্ডা শুরু কয়েক উপায়ে প্রশমিত করা যেতে পারে। প্রথমত, কম ট্রাফিক সময়ে পর্যায়ক্রমিক রাখা-জীবিত অনুরোধ পাঠাতে আর্কিটেকচার সেট আপ করা যেতে পারে। দ্বিতীয়ত, LoRA অ্যাডাপ্টারকে লোডিং আরও দক্ষ করার জন্য প্রশিক্ষণ দেওয়ার সময় পদক্ষেপ নেওয়া যেতে পারে। প্রশিক্ষণের সময়, একটি অ্যাডাপ্টারের আকার এবং অভিব্যক্তি র্যাঙ্ক বা 'r' নামক একটি হাইপারপ্যারামিটার দ্বারা নিয়ন্ত্রিত হয়। একটি র্যাঙ্ক-8 অ্যাডাপ্টার একটি র্যাঙ্ক-16 অ্যাডাপ্টারের প্রায় অর্ধেক প্রশিক্ষণযোগ্য প্যারামিটার তৈরি করে। একটি র্যাঙ্ক-8 অ্যাডাপ্টারের কোল্ড স্টার্ট থেকে দ্রুত TTFT হবে যদি অন্য সব কিছু সমান হয়। এছাড়াও, ট্রান্সফরমার স্তর LoRA ফাইলের আকার এবং অনুমান ওভারহেড পরিবর্তন করতে প্রয়োগ করা হয়। LoRA সাধারণত প্রতিটি মনোযোগ ব্লকের ক্যোয়ারী এবং মান প্রজেকশন ম্যাট্রিক্সে প্রয়োগ করা হয়, কিন্তু এটি MLP (মাল্টি-লেয়ার-পারসেপ্ট্রন) স্তরগুলিতে প্রয়োগ করা হলে একটি নির্দিষ্ট ডোমেনে মডেলটিকে মানিয়ে নেওয়ার চেষ্টা করার সময় গুণমান উন্নত হতে পারে৷
উপসংহার
এটা সম্ভবত যে সার্ভারহীন সূক্ষ্ম-সুরিত অনুমান ভবিষ্যতে একটি ক্রমবর্ধমান জনপ্রিয় অফার হবে। বর্তমান LLM ল্যান্ডস্কেপ বড়, ভাল যুক্তিযুক্ত, একশিলা মডেলের স্কেলিং এর উপর খুব বেশি ফোকাস করছে। অনেক বিশেষজ্ঞ মডেল একসাথে কাজ করে আর্কিটেকচারে কম মনোযোগ দেওয়া হয়েছে। অবশেষে, সম্প্রদায় অনেকগুলি মডেল পরিচালনা করার জন্য আরও ভাল উপায় খুঁজে পাবে এবং এই ধরনের স্থাপত্য ভালভাবে সম্পাদন করে এমন ক্ষেত্রে ব্যবহার করবে৷ যখন এটি ঘটবে, LoRA মাল্টিপ্লেক্সিং যুক্তিসঙ্গত খরচের জন্য অনেক কাস্টম এজেন্ট পরিচালনা করতে চায় এমন দলগুলির জন্য সহায়ক হবে৷
এখনও উত্তর খুঁজছেন?
এই ক্রিয়েটিভ লাইসেন্সের অধীনে কাজ করে" অ্যাট্রিবিউশন-অবাণিজ্যিক- শেয়ারঅ্যালাইক 4.0 আন্তর্জাতিক লাইসেন্স।