AWS তাদের Agent Toolkit-এ amazon-opensearch-service স্কিলটি যুক্ত করেছে, এবং আমি Amazon OpenSearch Serverless NextGen-এ একটি retrieval-augmented generation (RAG) ব্যাকএন্ড তৈরির মাধ্যমে এর একটি ফুল-স্ট্যাক পরীক্ষা চালিয়েছি। এই টুলটি একটি প্রোডাকশন-গ্রেড OpenSearch ক্লাস্টার সেটআপ করার প্রয়োজনীয় সময় অনেক কমিয়ে দেয়, তবে আপনি যখন কোনো AI এজেন্টকে NextGen সার্ভারলেস এনভায়রনমেন্টে ভেক্টর সার্চ কনফিগার করতে বলেন, তখন এটি এখনও ভুল করে।

কেন এই স্কিলটি গুরুত্বপূর্ণ

OpenSearch এখন সেই সব এন্টারপ্রাইজের জন্য ডিফল্ট স্ট্যাক যারা সার্চযোগ্য টেক্সট, লগ অ্যানালিটিক্স এবং ক্রমবর্ধমানভাবে ভেক্টর-ভিত্তিক সিমিলারিটি সার্চের প্রয়োজন বোধ করে। একটি ক্লাস্টার সেটআপ করতে আপনাকে ডজন ডজন আন্তঃসংযুক্ত সিদ্ধান্ত নিতে হয়: এনক্রিপশন পলিসি, নেটওয়ার্ক আইসোলেশন, ডেটা-অ্যাক্সেস রোল, ইনস্ট্যান্স সাইজিং, শার্ড অ্যালোকেশন এবং ভেক্টর ওয়ার্কলোডের জন্য k-NN ইঞ্জিনের পছন্দ। একটি ধাপ মিস করলে আপনি ব্যয়বহুল ওভার-প্রোভিশনিং বা একটি ত্রুটিপূর্ণ সার্চ পাইপলাইনের সম্মুখীন হতে পারেন।

নতুন এই স্কিলটি এমন একটি AI এজেন্টের প্রতিশ্রুতি দেয় যা ন্যাচারাল-ল্যাঙ্গুয়েজ ইনস্ট্রাকশনকে একটি সম্পূর্ণ OpenSearch ডেপ্লয়মেন্টের জন্য প্রয়োজনীয় সঠিক API কল এবং কনফিগারেশন ফাইলের সিরিজে রূপান্তর করতে পারে।

স্কিলটি আসলে কী

এটি কোনো চ্যাটবট নয় যার সাথে আপনি কথা বলতে পারবেন। এটিকে একটি স্ট্রাকচার্ড নলেজ বেস হিসেবে ভাবুন যা একটি অটোমেটেড কোডিং এজেন্ট কুয়েরি করতে পারে। এই প্যাকেজটিতে অন্তর্ভুক্ত রয়েছে:

  • সাইজিং ফর্মুলা যা প্রত্যাশিত কুয়েরি ভলিউম এবং ডেটা সাইজকে নির্দিষ্ট ইনস্ট্যান্স-টাইপ এবং স্টোরেজ-টিয়ারের সুপারিশে রূপান্তর করে।
  • ইঞ্জিন সিলেকশন লজিক যা ওয়ার্কলোড প্যাটার্নকে (শুধুমাত্র টেক্সট, হাইব্রিড, পিওর ভেক্টর) উপযুক্ত k-NN ইঞ্জিন বা হাইব্রিড সার্চ কনফিগারেশনের সাথে মেলাতে পারে।
  • মাইগ্রেশন চেকলিস্ট যা Solr বা Elasticsearch-এর স্কিমাগুলোকে OpenSearch-এর সমতুল্য স্কিমাতে ম্যাপ করে।
  • কুয়েরি DSL রেসিপি যা সাধারণ সার্চ প্যাটার্নের জন্য OpenSearch-এর ডোমেইন স্পেসিফিক ল্যাঙ্গুয়েজের তৈরি করা স্নিপেট প্রদান করে।

স্কিলটি পাঁচটি মূল কাজের ওপর ভিত্তি করে তৈরি:

  1. মাইগ্রেশন – বিদ্যমান Solr/ES স্কিমা রূপান্তর করা।
  2. প্রোভিশনিং – ইনস্ট্যান্স সাইজ, স্টোরেজ টিয়ার এবং নেটওয়ার্ক পলিসি গণনা করা।
  3. সার্চ – k-NN ইঞ্জিন, হাইব্রিড সার্চ সেটআপ নির্বাচন করা এবং প্রাসঙ্গিকতা (relevance) প্যারামিটার টিউন করা।
  4. লগ অ্যানালিটিক্স – Piped Processing Language (PPL) কুয়েরি এবং পাইপলাইন ডেফিনিশন হ্যান্ডেল করা।
  5. ট্রেস অ্যানালিটিক্স – OpenTelemetry কালেক্টর এবং Data Prepper পাইপলাইন কনফিগার করা।

যেখানে এটি সেরা পারফর্ম করে

আমার টেস্ট রান চলাকালীন, সবচেয়ে বেশি সময় বাঁচিয়েছে এর পলিসি সিকোয়েন্সিং লজিক। স্কিলটি সঠিক ক্রমটি জানে এবং আমাকে ধাপে ধাপে একটি চেকলিস্ট প্রদান করে, যা আমার সেটআপের সময় নাটকীয়ভাবে কমিয়ে দিয়েছে।

ক্লাসিক ম্যানেজড ডোমেইনের জন্য, ইনস্ট্যান্স আপগ্রেড এবং শার্ড ম্যাথমেটিক্স সংক্রান্ত স্কিলটির সুপারিশগুলো প্রকৃত ক্লাস্টার কনফিগারেশনের সাথে মিলে যায়। এটি বর্তমান নোড সংখ্যা, স্টোরেজ ব্যবহার এবং কুয়েরি ল্যাটেন্সি রিড করে, এবং তারপর আপনাকে বলে যে আপনার আরও শার্ড, বড় ইনস্ট্যান্স বা ভিন্ন স্টোরেজ টিয়ার প্রয়োজন কি না। এই কনটেক্সট-অ্যাওয়ার পরামর্শ সাধারণত একাধিক AWS ডকস-এ ছড়িয়ে ছিটিয়ে থাকে।

স্কিলটি scale-to-zero এর মতো NextGen-নির্দিষ্ট ফ্ল্যাগগুলোও বুঝতে পারে, যা সার্ভারলেস সার্ভিসকে নির্দেশ দেয় যে কালেকশনটি যখন অব্যবহৃত (idle) থাকবে তখন কম্পিউট রিসোর্স রিলিজ করতে। এটি সঠিকভাবে ফ্ল্যাগ করার মাধ্যমে, টুলটি ম্যানুয়াল পরিবর্তন ছাড়াই খরচ কম রাখে।

বড় ধরনের ঘাটতি

NextGen Serverless-এ ভেক্টর ম্যাপিং হ্যান্ডেল করার ক্ষেত্রে স্কিলটি এখনও ক্লাসিক লজিকের ওপর আটকে আছে। আমি যখন এজেন্টকে একটি ভেক্টর-এনাবলড কালেকশন সেটআপ করতে বললাম, তখন এটি একটি FAISS ইঞ্জিন সাজেস্ট করল। ক্লাসিক সার্ভারলেসে আপনি একটি k-NN ইঞ্জিন বেছে নিতে পারেন, কিন্তু NextGen সেটি অ্যাবস্ট্রাক্ট করে ফেলে—ভেক্টর অ্যাক্সিলারেশন স্বয়ংক্রিয়ভাবে পরিচালিত হয় এবং আপনি ইঞ্জিনটি মোটেও নির্দিষ্ট করতে পারেন না। ফলে এই সুপারিশটি পুরোপুরি ব্যর্থ হয়।

দ্বিতীয় একটি কম গুরুতর ভুল ছিল রাইট-ল্যাটেন্সি (write-latency) সংক্রান্ত প্রত্যাশা। অ্যাসিস্ট্যান্ট ৩০ থেকে ৬০ সেকেন্ডের রাইট ডিলে সম্পর্কে সতর্ক করেছিল, যা পুরনো ক্লাসিক সার্ভারলেস ডেপ্লয়মেন্টের ক্ষেত্রে প্রযোজ্য ছিল। আমার NextGen টেস্টে, ডকুমেন্টগুলো প্রায় দুই সেকেন্ডের মধ্যে সার্চযোগ্য হয়ে গিয়েছিল, যা সেই সতর্কবার্তাকে অপ্রাসঙ্গিক করে তুলেছে।

এই ভুলগুলো গুরুত্বপূর্ণ কারণ অনেক টিম ঠিক এই সহজতর অপারেশনাল মডেলের জন্যই NextGen গ্রহণ করে। যদি AI অ্যাসিস্ট্যান্ট একটি NextGen ক্লাস্টারের ওপর ক্লাসিক-যুগের সেটিংস চাপিয়ে দেয়, তবে তা ডেপ্লয়মেন্ট ব্যর্থতা বা অপ্রয়োজনীয় ডিবাগিং সাইকেল ঘটাতে পারে।

কাদের এটি ব্যবহার করা উচিত (এবং উচিত নয়)

আপনি যদি নিয়মিত OpenSearch ক্লাস্টার তৈরি করেন—তা ফুল-টেক্সট সার্চ, লগ অ্যাগ্রিগেশন বা হাইব্রিড ওয়ার্কলোডের জন্যই হোক না কেন—তবে এই স্কিলটি একটি মজবুত সেফটি নেট হিসেবে কাজ করবে। এটি নিচের মতো সাধারণ ভুলগুলো শনাক্ত করতে পারে:

  • কালেকশন তৈরির আগে এনক্রিপশন পলিসি যুক্ত করতে ভুলে যাওয়া।
  • ভুলবশত একটি Classic কালেকশন প্রোভিশন করা, যেখানে একটি NextGen কালেকশন আরও সস্তা এবং পরিচালনা করা সহজ হতো।
  • এমন একটি ইন্সট্যান্স সাইজ নির্বাচন করা যা বড় ভেক্টর ওয়ার্কলোড সামলাতে সক্ষম নয়।

যেসব টিমের প্রাথমিক প্রয়োজন হলো পিওর ভেক্টর সার্চ (pure vector search), তাদের জন্য এই স্কিলটি খুব একটা সুবিধা প্রদান করে না। Amazon-এর S3 Vectors সার্ভিসটি সাধারণ RAG পাইপলাইনের জন্য একটি দ্রুততর এবং সাশ্রয়ী পথ প্রদান করে, এবং এতে সেই জটিল প্রোভিশনিং ধাপগুলোর প্রয়োজন হয় না যেগুলোতে এই স্কিলটি সাহায্য করে।

পরবর্তীতে যা লক্ষ্য রাখতে হবে

এই স্কিলটি ইতিমধ্যেই দরকারী, তবে এর পরবর্তী সংস্করণে দুটি আপডেট প্রয়োজন:

  1. NextGen-aware vector logic – অ্যাসিস্ট্যান্টকে অবশ্যই বুঝতে হবে যে ইঞ্জিন নির্বাচন করার প্রয়োজন নেই এবং পরিবর্তে ব্যবহারকারীকে সেই প্যারামিটারগুলোর মাধ্যমে গাইড করতে হবে যা সার্ভারলেস মডেলে ভেক্টর পারফরম্যান্সকে প্রকৃতপক্ষে প্রভাবিত করে (যেমন, dimension limits, batch size)।
  2. Current latency benchmarks – নলেজ বেসটিকে Classic এবং NextGen উভয়ের জন্য সর্বশেষ রাইট-ল্যাটেন্সি (write-latency) পরিসংখ্যান দিয়ে আপডেট করতে হবে, যাতে ব্যবহারকারীরা বাস্তবসম্মত প্রত্যাশা করতে পারেন।

ততক্ষণ পর্যন্ত, এই স্কিলটিকে একজন অভিজ্ঞ OpenSearch ইঞ্জিনিয়ারের বিকল্প হিসেবে নয়, বরং একটি গাইড হিসেবে বিবেচনা করুন।

সারসংক্ষেপ (Takeaway)

amazon-opensearch-service স্কিলটি জটিল OpenSearch কনফিগারেশনের শেখার ধাপকে সহজ করে তোলে এবং ব্যয়বহুল পলিসি সংক্রান্ত ভুল এড়াতে সাহায্য করে। এর সীমাবদ্ধতাগুলো শুধুমাত্র নতুন সার্ভারলেস ভেক্টর ফিচারগুলোর মধ্যেই সীমাবদ্ধ, যার মানে হলো এটি বেশিরভাগ ওয়ার্কলোডের জন্য একটি মূল্যবান অ্যাসিস্ট্যান্ট হিসেবেই থাকবে—যদি আপনি ভেক্টর সংক্রান্ত যেকোনো পরামর্শের ক্ষেত্রে সর্বশেষ NextGen ডকুমেন্টেশনের সাথে তা যাচাই করে নেন।