হারনেস হলো আর্কিটেকচারের অর্ধেক
শিল্পক্ষেত্রে একটি নির্দিষ্ট সমীকরণ ব্যবহার করা হয়: Agent = Model + Harness।
আপনি যদি মডেল না হন, তবে আপনি হলেন হারনেস। এই দৃষ্টিভঙ্গি অন্য সবকিছুকে সহায়ক অবকাঠামো (support infrastructure) হিসেবে বিবেচনা করে। এটি ধরে নেয় যে মডেল হলো ইঞ্জিন এবং হারনেস হলো কেবল চ্যাসিস বা ফুয়েল সিস্টেম।
এই যুক্তিটি ত্রুটিপূর্ণ।
একটি গাড়ি কেবল আনুষঙ্গিক সরঞ্জামসহ একটি ইঞ্জিন নয়। একটি গাড়ি হলো সমপর্যায়ের সাবসিস্টেমের (subsystems) একটি সমষ্টি। ব্রেক ইঞ্জিনের সেবা করে না। ইলেকট্রিক্যাল সিস্টেম ইঞ্জিনের সেবা করে না। যদি ব্রেক ব্যর্থ হয়, তবে গাড়িটিও ব্যর্থ হয়। যদি যানবাহনটি থামতে না পারে, তবে ইঞ্জিনের শক্তির কোনো গুরুত্ব নেই।
AI এজেন্টগুলোও একইভাবে কাজ করে।
বর্তমান এজেন্ট আর্কিটেকচার ভেরিফিকেশন (verification), ইনটেন্ট (intent) এবং কোঅর্ডিনেশনকে (coordination) 'হারনেস' নামক একটি অধীনস্থ শ্রেণিতে অন্তর্ভুক্ত করে। এই ভুলটি সিস্টেমের অপর্যাপ্ত ডিজাইনের দিকে পরিচালিত করে।
ভেরিফিকেশন কোনো হারনেস নয়। এটি একটি সমপর্যায়ের সাবসিস্টেম। ইনটেন্ট কোনো সহায়ক অবকাঠামো নয়। এটি সেই সাবসিস্টেম যা জেনারেশনকে (generation) নির্দেশিত করে। কোঅর্ডিনেশন কোনো মডেল র্যাপার (wrapper) নয়। এটি সেই সাবসিস্টেম যা মাল্টি-এজেন্ট কাজকে সুসংগত করে তোলে।
যদি আপনার ভেরিফিকেশন ব্যর্থ হয়, তবে আপনার এজেন্টও ব্যর্থ হবে। মডেলটি কতটা বুদ্ধিমান তা এখানে কোনো বিষয় নয়।
গণিত প্রমাণ করে যে এই ব্যবধানটি বাস্তব। একটি NIST প্রমাণ দেখায় যে কোনো নির্দিষ্ট সংখ্যক গার্ডরেল (guardrails) সমস্ত ইনপুটের বিরুদ্ধে সার্বজনীনভাবে শক্তিশালী হতে পারে না। একটি উন্নত হারনেস তৈরি করে আপনি এটি সমাধান করতে পারবেন না। একটি মডেলকে নিখুঁত করার জন্য আপনি পর্যাপ্ত নিয়মের মাধ্যমে এটিকে মুড়িয়ে (wrap) রাখতে পারবেন না। এই ব্যবধান বা গ্যাপগুলো সব সময় থাকবে।
শিল্পখাতটি বাজি ধরছে যে উন্নত মডেলগুলো শেষ পর্যন্ত এই সমস্যাগুলো শুষে নেবে। এটি একটি ভুল। হার্ডওয়্যারের ইতিহাস আমাদের দেখায় যে দ্রুততর CPU মেমরি কন্ট্রোলার বা ক্যাশের প্রয়োজনীয়তা দূর করেনি। প্রতিটি সাবসিস্টেমের নিজস্ব পদার্থবিজ্ঞান এবং নিজস্ব সীমাবদ্ধতা রয়েছে।
প্রকৃত এজেন্ট তৈরি করতে আপনার এমন চারটি জিনিসের প্রয়োজন যা বর্তমান হারনেস মডেলে অনুপস্থিত:
- একটি স্পেসিফিকেশন লেয়ার (specification layer): 'সঠিক' বলতে কী বোঝায় তার মানুষের দ্বারা লিখিত ঘোষণা।
- একটি স্বাধীন ভেরিফিকেশন গেট (independent verification gate): একটি মেকানিক্যাল চেকার যা স্বয়ং মডেল নয়।
- একটি সাবট্রাকশন ডিসিপ্লিন (subtraction discipline): অতিরিক্ত কোড বা ব্লট (bloat) রোধ করার জন্য কোন কোড থাকা উচিত নয় তা নির্ধারণ করার একটি উপায়।
- প্রোটোকলের মাধ্যমে কোঅর্ডিনেশন: শুধুমাত্র শেয়ার্ড ফাইলসিস্টেমের পরিবর্তে স্পেসিফিকেশন ব্যবহার করা।
হারনেস মডেলটিকে আরও দক্ষ উৎপাদনকারী করে তোলে। স্পেসিফিকেশন লেয়ার সিস্টেমটিকে জবাবদিহিমূলক করে তোলে।
আপনার উভয়েরই প্রয়োজন। আপনি যদি কেবল প্রথমটি তৈরি করেন, তবে আপনি এমন একটি সিলিং বা ঊর্ধ্বসীমার দিকে এগিয়ে যাচ্ছেন যা গণিত অনুযায়ী আপনি ভাঙতে পারবেন না।
হারনেস হলো আর্কিটেকচারের অর্ধেক। এখানে সেই অর্ধেক অংশটি দেওয়া হলো যা অনুপস্থিত।
যখন মানুষ AI আর্কিটেকচার নিয়ে কথা বলে, তারা প্রায়শই মডেল নিয়ে আলোচনা করে। তারা প্যারামিটার, কনটেক্সট উইন্ডো এবং রিজনিং ক্ষমতা নিয়ে কথা বলে। কিন্তু একটি মডেল শূন্যে কোনো কাজে আসে না। একটি মডেলকে কার্যকর করতে আপনার একটি 'harness' বা কাঠামো প্রয়োজন।
একটি ইঞ্জিন একটি গাড়ি নয়। একটি ইঞ্জিন হলো শক্তির উৎস, কিন্তু গাড়িটি চালানোর জন্য চাকা, স্টিয়ারিং, ব্রেক এবং ট্রান্সমিশন প্রয়োজন। AI-এর ক্ষেত্রে, মডেল হলো ইঞ্জিন, আর হারনেস হলো বাকি গাড়িটি।
আমরা যখন একটি AI সিস্টেম তৈরি করি, আমরা মূলত দুটি জিনিসের সমন্বয় করি:
- মডেল (The Model): যা বুদ্ধিমত্তা প্রদান করে।
- হারনেস (The Harness): যা সেই বুদ্ধিমত্তাকে একটি ব্যবহারযোগ্য পণ্যে রূপান্তরিত করে।
অধিকাংশ মানুষ মডেলের ওপর এত বেশি মনোযোগ দেয় যে তারা হারনেস বা সেই কাঠামোটি ভুলে যায় যা মডেলটিকে বাস্তবে কাজ করতে সাহায্য করে। এই হারনেস বা অনুপস্থিত অর্ধেক অংশটি মূলত নিচের চারটি স্তম্ভের সমন্বয়ে গঠিত:
১. ডেটা ইঞ্জিনিয়ারিং (Data Engineering)
মডেলটি কতটা বুদ্ধিমান হবে তা নির্ভর করে আপনি তাকে কী ধরনের ডেটা দিচ্ছেন তার ওপর। কিন্তু ডেটা সংগ্রহ করা এবং তা মডেলের উপযোগী করে তোলা একটি বিশাল কাজ। এর মধ্যে রয়েছে:
- ডেটা পাইপলাইন (Data Pipelines): ডেটা সংগ্রহ থেকে শুরু করে প্রসেসিং পর্যন্ত একটি নিরবচ্ছিন্ন প্রবাহ নিশ্চিত করা।
- ডেটা ক্লিনিং (Data Cleaning): ভুল বা অসম্পূর্ণ ডেটা সরিয়ে ফেলা।
- ফিচার ইঞ্জিনিয়ারিং (Feature Engineering): মডেলের জন্য প্রয়োজনীয় তথ্যগুলোকে সঠিকভাবে সাজানো।
ডেটা ইঞ্জিনিয়ারিং ছাড়া, আপনার কাছে বিশ্বের সেরা মডেল থাকলেও তা ভুল বা নিম্নমানের ফলাফল দেবে।
২. মূল্যায়ন (Evaluation)
একটি মডেল তৈরি করা সহজ, কিন্তু সেটি কতটা নির্ভুল বা নির্ভরযোগ্য তা বোঝা কঠিন। আপনি যদি জানেন না আপনার মডেলটি কখন ভুল করছে, তবে আপনি সেটি উন্নত করতে পারবেন না। একটি শক্তিশালী ইভ্যালুয়েশন ফ্রেমওয়ার্কের প্রয়োজন:
- বেঞ্চমার্কিং (Benchmarking): নির্দিষ্ট মানদণ্ডের মাধ্যমে মডেলের পারফরম্যান্স যাচাই করা।
- এ/বি টেস্টিং (A/B Testing): বিভিন্ন মডেল বা প্রম্পটের মধ্যে তুলনা করা।
- রুব্রিক-ভিত্তিক মূল্যায়ন (Rubric-based Evaluation): নির্দিষ্ট মানদণ্ড ব্যবহার করে মডেলের উত্তরের গুণমান যাচাই করা।
৩. অবজারভেবিলিটি (Observability)
মডেলটি যখন প্রোডাকশনে চলে যায়, তখন সেটি কীভাবে আচরণ করছে তা পর্যবেক্ষণ করা অত্যন্ত জরুরি। অবজারভেবিলিটি মানে শুধু লগ দেখা নয়, বরং সিস্টেমের অভ্যন্তরীণ অবস্থা বোঝা। এর মধ্যে রয়েছে:
- মনিটরিং (Monitoring): ল্যাটেন্সি (latency), খরচ এবং এরর রেট ট্র্যাক করা।
- ড্রিপ্ট ডিটেকশন (Drift Detection): সময়ের সাথে সাথে মডেলের পারফরম্যান্স বা ডেটার ধরন বদলে যাচ্ছে কি না তা শনাক্ত করা।
- ট্রেসিং (Tracing): একটি নির্দিষ্ট অনুরোধ (request) সিস্টেমের কোন ধাপ দিয়ে যাচ্ছে এবং কোথায় সমস্যা হচ্ছে তা খুঁজে বের করা।
৪. ডেপ্লয়মেন্ট এবং সার্ভিসিং (Deployment and Serving)
সবশেষে, আপনার মডেলটিকে ব্যবহারকারীদের কাছে পৌঁছে দিতে হবে। এটি কেবল একটি API তৈরি করা নয়, বরং একটি স্কেলেবল এবং নির্ভরযোগ্য সিস্টেম তৈরি করা। এর মধ্যে রয়েছে:
- স্কেলেবিলিটি (Scalability): ব্যবহারকারী বাড়লে সিস্টেম যেন ভেঙে না পড়ে।
- লো ল্যাটেন্সি (Low Latency): ব্যবহারকারী যেন দ্রুত উত্তর পায়।
- ইনফ্রাস্ট্রাকচার ম্যানেজমেন্ট (Infrastructure Management): ক্লাউড বা অন-প্রিমিস সার্ভার সঠিকভাবে পরিচালনা করা।
উপসংহার
AI আর্কিটেকচার মানে কেবল একটি শক্তিশালী মডেল নয়; এটি হলো মডেল এবং সেই হারনেসের একটি নিখুঁত সমন্বয়। আপনি যদি কেবল মডেলের ওপর মনোযোগ দেন, তবে আপনি একটি ইঞ্জিন তৈরি করছেন কিন্তু গাড়িটি তৈরি করছেন না। একটি সফল AI প্রোডাক্ট তৈরি করতে হলে আপনাকে সেই "অনুপস্থিত অর্ধেক" বা হারনেসের ওপর সমান গুরুত্ব দিতে হবে।