অনেকেই বলেন যে AI সফটওয়্যার ডেভেলপমেন্টকে অনেক সস্তা করে তুলবে। তারা কল্পনা করেন যে মডেলগুলো ইঞ্জিনিয়ারদের প্রতিস্থাপন করবে এবং কয়েক মিনিটের মধ্যে কাজ শেষ করে দেবে। এই গল্পটি শুনতে আকর্ষণীয় মনে হলেও এটি পুরোপুরি সত্য নয়। সফটওয়্যার তৈরির অর্থনীতি পরিবর্তিত হয়েছে, বিলুপ্ত হয়নি। প্রথম কোডিং অ্যাসিস্ট্যান্ট বাজারে আসার সাথে সাথেই টেকনিক্যাল ডেট (technical debt) উবে যায়নি। আমরা কেবল এটি অর্থায়নের একটি নতুন উপায় খুঁজে পেয়েছি।
পুরনো ইনভয়েস: জনবল (Head Count)
কয়েক দশক ধরে, টেকনিক্যাল ডেট একটি পরিচিত 'ডুম লুপ' (doom loop) তৈরি করত। একটি কোডবেস ক্রমশ ভঙ্গুর হয়ে উঠত। যেসব ফিচার আগে কয়েক দিন লাগত, সেগুলো শেষ করতে সপ্তাহ লেগে যেত। ডেডলাইন পিছিয়ে যেত, তাই নেতৃত্ব আরও বেশি কর্মী নিয়োগের রিকুইজিশন খুলত। বড় দলগুলো কাজকে আরও ধীর করে দিত। সমন্বয়ের বাড়তি বোঝা বেড়ে যেত, স্ট্যান্ড-আপ মিটিংয়ের সংখ্যা বাড়ত এবং কনওয়ে'র আইন (Conway’s Law) কার্যকর হতো: সফটওয়্যারটি তখন এটি তৈরি করা মানুষের ভুল বোঝাবুঝির প্রতিফলন ঘটাতে শুরু করত। আরও বেশি বাগ (bug) ঢুকে পড়ত। প্রতিটি প্যাচ জটিলতার নতুন স্তর যোগ করত। কোম্পানিগুলো এই ক্ষয়ক্ষতির জন্য একমাত্র পরিচিত মুদ্রায় মূল্য পরিশোধ করত: মানুষের বেতন। খরচটি ছিল স্পষ্ট। প্রতিটি ত্রৈমাসিক বাজেট রিভিউতে এটি প্রকট হয়ে উঠত।
নতুন ইনভয়েস: টোকেন এবং কনটেক্সট (Tokens and Context)
জেনারেটিভ এআই (Generative AI) এই চক্রটি ভাঙতে পারেনি। এটি কেবল একটি বিকল্প পেমেন্ট প্ল্যান বা পরিশোধের পদ্ধতি চালু করেছে। কাজের বাধাগুলো কাটিয়ে উঠতে পাঁচজন ইঞ্জিনিয়ার নিয়োগ করার পরিবর্তে, একটি কোম্পানি এখন আরও বেশি কম্পিউট (compute) পাওয়ার জন্য ক্রেডিট কার্ড ব্যবহার করে। লক্ষণগুলো ভিন্ন মনে হলেও মূল সমস্যাটি একই।
যখন একটি মডেল ব্যর্থ হতে শুরু করে—যেমন ইন্টারনাল API নিয়ে হ্যালুসিনেশন করা, গুরুত্বপূর্ণ এজ কেস (edge cases) মিস করা, বা ভুল কারণে পাস করে এমন টেস্ট জেনারেট করা—তখন রিফ্যাক্টর (refactor) করার প্রবণতা খুব কমই দেখা যায়। বরং মানুষের সহজাত প্রতিক্রিয়া হলো ইনফারেন্সের (inference) পেছনে টাকা খরচ করা। টিমগুলো কনটেক্সট-উইন্ডো (context-window) আপগ্রেড কেনে, মাল্টি-এজেন্ট রিট্রাই লুপ তৈরি করে, ওয়ার্কলোডগুলোকে আরও বড় ফ্রন্টিয়ার মডেলে স্থানান্তর করে, অথবা 'রিজেনারেট' বাটনটি বারবার টিপে যতক্ষণ না 'ডিফ' (diff) গ্রহণযোগ্য মনে হয়। এই কৌশলগুলো এক বা দুই স্প্রিন্টের জন্য আপাত গতি বজায় রাখে। জিরার (Jira) বোর্ড সবুজ দেখায়। এদিকে, প্রকৃত আর্কিটেকচার অপরিবর্তিত থাকে: সেই একই জটিল ডিপেন্ডেন্সি, সেই একই পরিবর্তনযোগ্য গ্লোবাল স্টেট, এবং সেই একই মনোলিথ (monolith) যা বর্তমান টিমের কেউ পুরোপুরি বোঝেন না।
কেন নোংরা কোড টোকেন খরচ বাড়ায়
লার্জ ল্যাঙ্গুয়েজ মডেলগুলো পরিষ্কার অ্যাবস্ট্রাকশনের (abstractions) বিপরীতে সবচেয়ে ভালো যুক্তি দিতে পারে। তবে বেশিরভাগ এন্টারপ্রাইজ রিপোজিটরি হলো প্রত্নতাত্ত্বিক সাইটের মতো। এগুলোতে থাকে সার্কুলার প্যাকেজ ডিপেন্ডেন্সি, ইনিশিয়ালাইজেশন স্ক্রিপ্টে লুকিয়ে থাকা সাইড ইফেক্ট, এবং ডেটাবেস ট্রিগার, মিডলওয়্যার লেয়ার ও ফ্রন্ট-এন্ড কম্পোনেন্টের মধ্যে ছড়িয়ে থাকা বিজনেস লজিক। এই পরিবেশে, মডেলটি নতুন লজিক লেখার পেছনে শক্তি ব্যয় করে না। এটি বোঝার (comprehension) পেছনে টোকেন খরচ করে।
১২৮,০০০ টোকেন বিশিষ্ট একটি কনটেক্সট উইন্ডোর একটি বড় অংশ কেবল সিস্টেমের কাঠামো মেমরিতে ধরে রাখার জন্যই ব্যয় হয়ে যেতে পারে। প্রকৃত সমস্যা সমাধানের জন্য খুব সামান্য অংশ অবশিষ্ট থাকে। এটি অনেকটা একজন স্ট্রাকচারাল ইঞ্জিনিয়ারকে একটি নতুন তলা ডিজাইন করতে বলার মতো, যেখানে তাকে প্রতিটি হিসাবের আগে মেমরি থেকে বিদ্যমান ভবনের ব্লুপ্রিন্ট পুনরায় আঁকতে বাধ্য করা হচ্ছে। এর ফলাফল হলো অগভীর সমাধান। মডেলটি তার সামনে থাকা বিশৃঙ্খলাকেই প্রতিফলিত করে, কারণ ঘরটি পরিষ্কার করার মতো কর্তৃত্ব বা আর্কিটেকচারাল কনটেক্সট তার নেই।
দ্রুত আউটপুট, ধীর শিপিং
জেনারেশনের কাঁচা গতি মানেই দ্রুত শিপিং নয়। আপনার আর্কিটেকচারে যদি মডুলারিটি (modularity) না থাকে, তবে এআই-জেনারেটেড প্রতিটি পরিবর্তনের জন্য ব্যাপক মানুষের রিভিউ এবং রিগ্রেশন টেস্টিং প্রয়োজন হয়। একটি মডেল এক বিকেলে দশটি পুল রিকোয়েস্ট (pull requests) তৈরি করতে পারে, কিন্তু সেই পুল রিকোয়েস্টগুলোকে তবুও ইন্টিগ্রেশন এনভায়রনমেন্ট, সিকিউরিটি স্ক্যানার, কমপ্লায়েন্স চেকলিস্ট এবং প্রোডাকশন ক্যানারিগুলোর মধ্য দিয়ে যেতে হয়। স্পষ্ট মডিউল বাউন্ডারি না থাকলে, এআই মেশিনের গতিতে বাগ (bug) তৈরি করে। এটি একটি শেয়ার্ড ইউটিলিটি পরিবর্তন করতে পারে, সূক্ষ্মভাবে ভুল অনুমানের মাধ্যমে তিনটি দূরবর্তী কল সাইট আপডেট করতে পারে এবং এমন রেস কন্ডিশন (race conditions) তৈরি করতে পারে যা মানুষ কেবল রাত ৩টার জরুরি কলে ধরতে পারে। বাধা বা বটলেনেক (bottleneck) কিবোর্ড থেকে ভ্যালিডেশন পাইপলাইনে স্থানান্তরিত হয়, এবং সেই পাইপলাইনটি পরিবর্তনের পরিমাণ দশগুণ বৃদ্ধি সামলানোর জন্য ডিজাইন করা হয়নি।
লুকানো সীমা
এআই-পূর্ব যুগে, কঠোর সীমাবদ্ধতা ছিল আপনার নিয়োগ বাজেট। অন্তত স্প্রেডশিটে সেটি পড়া সহজ ছিল। এখন সীমাবদ্ধতাটি এমন কিছু আইটেমের মধ্যে লুকিয়ে আছে যা বেশিরভাগ ফিন্যান্স টিম খুব কমই ট্র্যাক করে: ইনফারেন্স খরচ, এমবেডিং স্টোরেজ, কনটেক্সট-উইন্ডো সম্প্রসারণ এবং অটোমেটেড-টেস্টিং জট যা CI রানারগুলোকে অচল করে দেয়। প্রোডাক্টিভিটি ড্যাশবোর্ডগুলো সবুজ দেখায়, অথচ প্রতিটি নতুন ফিচারের প্রকৃত খরচ নিঃশব্দে বাড়তে থাকে।
আর্কিটেকচারাল এন্ট্রপি হলো এখানকার আসল ভিলেন। LLM-গুলো কোড উৎপাদন চমৎকারভাবে বৃদ্ধি করতে পারে, কিন্তু তারা জটিলতা কমায় না। তারা মাইক্রোসার্ভিসের জট কাটায় না, ডেড কোড নির্মূল করে না, কিংবা ইনহেরিটেন্স হায়ারার্কি সংকুচিত করে না। একবার কোনো সিস্টেম এমন একটি সীমা অতিক্রম করলে যেখানে মানুষের পক্ষে তা নিয়ে যুক্তি দিয়ে বিশ্লেষণ করা কঠিন হয়ে পড়ে, AI-ও তখন হিমশিম খায়। সেই সন্ধিক্ষণে, খরচ ঊর্ধ্বমুখী হয়, আপনি...
