কেন বিল আকাশচুম্বী হয়ে গেল
যখন টিম প্রথম জেনারেটিভ AI যুক্ত করেছিল, তারা প্রতিটি ব্যবহারকারীর রিকোয়েস্ট নতুন এবং সবচেয়ে সক্ষম মডেলে পাঠিয়ে দিত। ট্রাফিক বাড়ার সাথে সাথে প্রতি রিকোয়েস্টের খরচও একইভাবে বাড়তে থাকে এবং CFO-র স্প্রেডশিটে দেখা যায় যে খরচ ব্যবহারকারীর বৃদ্ধির তুলনায় অনেক দ্রুত বাড়ছে। সাধারণ তাৎক্ষণিক সমাধান—"শুধু একটি সস্তা মডেল ব্যবহার করুন"—প্রোডাকশনে কাজ করে না, কারণ বিভিন্ন কুয়েরির জন্য ভিন্ন ভিন্ন রিজনিং লেভেল বা যুক্তিবোধের প্রয়োজন হয়। আসল কৌশলটি হলো রিকোয়েস্টটি কীভাবে পাঠানো হচ্ছে, সবসময় কোন মডেলটি ব্যবহার করা হচ্ছে তা নয়।
অর্থ সাশ্রয়কারী একটি রাউটিং লেয়ার তৈরি করা
ইঞ্জিনিয়ার ইনফারেন্স সার্ভিসকে অন্য যেকোনো প্রোডাকশন কম্পোনেন্টের মতো বিবেচনা করেছেন: টায়ার নির্ধারণ করা, SLA সেট করা এবং ল্যাটেন্সি বাজেট কার্যকর করা। এর ফলে তৈরি হওয়া আর্কিটেকচারে চারটি কার্যকরী অংশ রয়েছে যা একত্রে ৯৫% খরচ কমিয়ে আনে।
টায়ার্ড রাউটিং (Tiered routing)
একটি হালকা ফ্রন্ট-এন্ড প্রতিটি আগত রিকোয়েস্টকে তার জটিলতা অনুযায়ী ক্লাসিফাই করে। প্রায় ৯৫% কুয়েরি একটি "সস্তা" টায়ারে পড়ে যা একটি সাধারণ মডেল ব্যবহার করে; শুধুমাত্র সবচেয়ে কঠিন ৫% কুয়েরিকে প্রিমিয়াম মডেলে পাঠানো হয়। এই ক্লাসিফিকেশন রুল-বেসড (যেমন: দৈর্ঘ্য, ডোমেইন-নির্দিষ্ট কিওয়ার্ডের উপস্থিতি) হতে পারে অথবা ঐতিহাসিক এসকেলেশন ডেটা থেকে শেখা হতে পারে। ডিফল্ট হিসেবে লো-কস্ট টায়ার ব্যবহার করার ফলে চ্যাটবটের মাসিক খরচ ৪২০ ডলার থেকে কমে ২৮ ডলারে নেমে আসে।
মডেল রাইট-সাইজিং (Model right-sizing)
কাজের জটিলতার সাথে মডেলের সক্ষমতার সামঞ্জস্য বজায় রাখলে সবচেয়ে বেশি সাশ্রয় হয়:
- সাধারণ চ্যাট – ফ্ল্যাগশিপ মডেলের পরিবর্তে একটি লাইটওয়েট মডেল ব্যবহার করুন (৯৭.৫% সাশ্রয়)।
- ক্লাসিফিকেশন – মিড-সাইজ মডেলের পরিবর্তে একটি সস্তা বিকল্প ব্যবহার করুন (৯৮.৩% সাশ্রয়)।
- সামারাইজেশন – টপ-টিয়ার মডেলের পরিবর্তে একটি মিড-রেঞ্জ মডেল ব্যবহার করুন (৯৭.২% সাশ্রয়)।
মডেলের সঠিক নাম খুব একটা গুরুত্বপূর্ণ নয়; মূল নীতি হলো সবচেয়ে সক্ষম মডেলটিকে শুধুমাত্র সেই অল্প কিছু কুয়েরির জন্য সংরক্ষিত রাখা যেগুলোর সত্যিই প্রয়োজন।
স্মার্ট ক্যাশিং (Smart caching)
প্রতিটি ক্যাশ হিট একটি নেটওয়ার্ক কল এবং একটি API চার্জ কমিয়ে দেয়। একটি ডিস্ট্রিবিউটেড Redis ক্যাশ সফল রেসপন্স এবং "নেগেটিভ" উত্তর ("আমি জানি না") সংরক্ষণ করে। যখন একই উত্তরহীন প্রশ্ন আবার আসে, সিস্টেমটি দ্বিতীয়বার মডেলকে কল করার পরিবর্তে ক্যাশ করা "আমি জানি না" উত্তরটি প্রদান করে। হাজার হাজার রিকোয়েস্টের ক্ষেত্রে, এটি একা বিলের একটি উল্লেখযোগ্য অংশ কমিয়ে দেয়।
প্রম্পট কমপ্রেশন (Prompt compression)
দীর্ঘ প্রম্পট টোকেন ব্যবহার বাড়িয়ে দেয়, যা সরাসরি খরচের সাথে সম্পর্কিত। টিম ক্লায়েন্ট সাইডে বা প্রি-প্রসেসিং ধাপে একটি সস্তা সামারাইজার চালায়, যা দামী মডেলে পৌঁছানোর আগে ২,০০০ টোকেনের কনটেক্সটকে কমিয়ে প্রায় ৪০০ টোকেনে নিয়ে আসে। টোকেন কমানোর এই প্রভাব সব রিকোয়েস্টের ক্ষেত্রে বহুগুণ বৃদ্ধি পায়, যা ব্যবহারকারীর অভিজ্ঞতা পরিবর্তন না করেই বিশাল সাশ্রয় নিশ্চিত করে।
স্ট্র্যাটেজিক ব্যাচিং (Strategic batching)
ব্যাচিং একাধিক স্বতন্ত্র রিকোয়েস্টকে একটি মাত্র API কলে গ্রুপ করে। এর মূল নিয়মটি সহজ: যদি কোনো ব্যবহারকারী উত্তরের জন্য অপেক্ষা করেন, তবে ব্যাচ করবেন না; আর যদি রিকোয়েস্টটি ব্যাকগ্রাউন্ডে চলে (যেমন নৈশকালীন রিপোর্ট বা শিডিউল করা জব), তবে সবকিছু ব্যাচ করুন। শুধুমাত্র রাতের বেলা চলা ব্যাচ জবগুলো খরচ আরও ১০-২০% কমিয়ে দেয়।
অপ্টিমাইজেশন লুপ মনিটর করা
আপনি যা পরিমাপ করতে পারেন না, তা উন্নত করতে পারেন না। ইঞ্জিনিয়ারটি চারটি সাপ্তাহিক মেট্রিক সেট আপ করেছেন:
১. টায়ার অনুযায়ী প্রতি রিকোয়েস্টের খরচ। ২. প্রতিটি রাউটিং পাথের জন্য ক্যাশ-হিট রেট। ৩. সস্তা থেকে প্রিমিয়াম টায়ারে এসকেলেশন রেট। ৪. প্রতিটি কাস্টমার সেগমেন্টের জন্য খরচ।
এই সংখ্যাগুলো পরিবর্তনের সংকেত দেয়—যেমন, এসকেলেশন রেট বেড়ে যাওয়া নির্দেশ করতে পারে যে ক্লাসিফিকেশন লজিকটি খুব বেশি কঠোর অথবা সস্তা মডেলের মান কমে গেছে। টিম প্রতি সপ্তাহে থ্রেশহোল্ড, মডেল অ্যাসাইনমেন্ট এবং ক্যাশ পলিসিগুলো নিয়ে কাজ করে, ফলে খরচ নিয়ন্ত্রণ একটি সংকটের মোকাবিলা করার পরিবর্তে একটি অভ্যাসে পরিণত হয়।
মূল কথা (Takeaway)
একটি সুশৃঙ্খল রাউটিং লেয়ার যা রিকোয়েস্ট ক্লাসিফাই করে, মডেলের সঠিক আকার নির্ধারণ করে, আগ্রাসীভাবে ক্যাশ করে, প্রম্পট কমপ্রেস করে এবং ব্যাকগ্রাউন্ডের কাজগুলো ব্যাচ করে, তা নির্ভরযোগ্যতা বজায় রেখে AI-API খরচ ৯৫% পর্যন্ত কমিয়ে আনতে পারে। ইনফারেন্স স্ট্যাককে একটি প্রোডাকশন সার্ভিস হিসেবে বিবেচনা করুন: টায়ার নির্ধারণ করুন, ফলাফল পরিমাপ করুন এবং প্রতি সপ্তাহে তা উন্নত করুন।
