কম্পিউটার টিউটোরিয়াল

অদৃশ্য ভার্সনিং সমস্যা যা AI ইনফারেন্স পারফরম্যান্সকে প্রভাবিত করছে

মডেলটি রিগ্রেস করেনি। আপনি কোনো বাগ শিপ করেনি। প্ল্যাটফর্মটি এটিকে পরিবর্তন করেছে।

আপনার প্রোডাকশন AI অ্যাপ্লিকেশনগুলা কোন ऐसी একটি জিনিসের ওপর নির্ভর করে যা অধিকাংশ টিম বুঝতে পারেননি তারা কন্ট্রোল ছাড়িয়ে দিয়েছে: তাদের এন্ডপয়েন্টের পিছনে থাকা মডেলের বিহেভিয়র। বাস্তবতা হলো একটি মডেল একটি ফিক্সড আর্টিফ্যাক্ট নয়। এটি একটি মুভিং টার্গেট। প্রতিযোগিতামূলক থাকতে, প্ল্যাটফর্মগুলি συνεχ esposo ওয়েট আপডেট করে, কোয়ান্টাইজেশন লেভেল সোয়াপ করে, ইনফারেন্স ইঞ্জিন আপগ্রেড করে, হার্ডওয়্যার জুড়ে ট্রাফিক রি-রুট করে, এবং কখনো কখনো পুরো মডেলটিই রিপ্লেস করে - এন্ডপয়েন্টের নাম পরিবর্তন ছাড়া।

যখন এটা হয়, আপনার অ্যাপ্লিকেশনও তার সাথে পরিবর্তিত হয়। আউটপুট শিফ্ট করে। প্রম্পটها কাজ করা বন্ধ করে। সাবধানে টিউন করা বিহেভিয়র ডিগ্রেড করে। এবং আপনি সাধারণত একটি চেঞ্জলগ থেকে নয়, একটি ইউজার থেকে এটা জানতে পারেন।

এই আধুনিক AI ইंফ্রাস্ট্রাকচারের লুকানো রিস্ক: আপনি একটি এমন সিস্টেমের ওপর বিল্ড করছেন যা যেকোনো সময় আপনার নিচে পরিবর্তিত হতে পারে, কোনো গ্যারান্টি ছাড়া যে "সেইম মডেল" আগামিকাল আজ আপনি যে মডেলটি টেস্ট করেছেন সেটির সেম হবে। এই নিবন্ধটি এটি প্র্যাকটিসে কীভাবে দেখায়, কেন এটি হয়, এবং কেন প্রায় কোনো প্ল্যাটফর্ম এটিকে ভালোভাবে সমাধান করেনি - এবং টিমরা এটinicke কোথা থেকে কোথাvenues করে।

আপনি যে মডেলের সাথে শিপ করেছিলেন সেটি ওই মডেল নয় যা আপনি রান করছেন।

মূল উপসংহার

  • "মডেল ভার্সনিং" ডিজাইন অনুযায়ী অসম্পূর্ণ: যা একটি সিঙ্গেল মডেল হিসেবে দেখায় সেটি আসলে mouvable পার্টসের একটি স্ট্যাক - ওয়েট, ইনফারেন্স ইঞ্জিন, হার্ডওয়্যার, রাউটিং, এবং গার্ডরেইল - যেগুলা স্বাধীনভাবে এন্ডপয়েন্টের নাম পরিবর্তন ছাড়া পরিবর্তিত হতে পারে।
  • সাইলেন্ট পরিবর্তন বাস্তব প্রোডাকশন রিস্ক সৃষ্টি করে: এই আপডেটগুলো রিপ্রোডাসিবিলিটি ভাঙে, প্রম্পট টিউনিং ইনভ্যালিড করে, এবং রিগ্রেশন আনে যা টিমরা প্রায়শই ইউজার প্রভাবিত হওয়ার পর ডিটেক্ট করে - প্ল্যাটফর্ম ভিজিবিলিটি বা মনিটরিং-এর মাধ্যমে না।
  • গ্যাপটি টেকনিক্যাল নয় - এটি ট্রান্সপারেন্সি এবং অনারশিপ: প্ল্যাটফর্মরা ইতিমধ্যে এই পরিবর্তনগুলো ইন্টারন্যালি ট্র্যাক করে কিন্তু এক্সপোজ করে না; AI প্রোডাকশন-ক্রিটিক্যাল হওয়ার সাথে সাথে, ফুল-স্ট্যাক ভার্সনিং, চেঞ্জলগ, এবং রিপ্রোডাসিবিলিটি গ্যারান্টি প্ল্যাটফর্ম সিলেকশনে কী ক্রিটেরিয়া হবে।

ভার্সনিং সমস্যা আকার

অদৃশ্য ভার্সনিং সমস্যা যা AI ইনফারেন্স পারফরম্যান্সকে প্রভাবিত করছে

"সেইম মডেল" আসলে কী মানে

একটি মডেল এন্ডপয়েন্ট একটি সিঙ্গেল ইমিউটেবল আর্টিফ্যাক্ট নয়। এটি একটি কনফিগারেশন:

  • আন্ডারলাইং মডেল ওয়েট (যা নিজে কোয়ান্টাইজড, প্রুনড, বা অরিজিনাল থেকে ডিস্টিল্ড হতে পারে)
  • সেগুলা রান করানো ইনফারেন্স ইঞ্জিন (চায়া vLLM, TensorRT-LLM, SGLang, বা প্রপ্রায়েটারি ইঞ্জিন - প্রতিটা কিছুটা ভিন্ন আউটপুট প্রডিউস করে)
  • GPU জেনারেশন এবং মেমরি লেআউট
  • টোকেনাইজার ভার্সন এবং কোনো অ্যাপ্লাইড চ্যাট টেমপ্লেট
  • সিস্টেম প্রম্পট যা প্ল্যাটফর্ম ইনজেক্ট করতে পারে যা আপনি কখনো দেখেন না
  • মডেলের সামনে বসে সেফটি, মডারেশন, বা গার্ডরেইল লেয়ার
  • রাউটিং লজিক যা ডিসাইড করে কোন রেপ্লিকা বা রিজন আপনার রিকোয়েস্ট হ্যান্ডেল করবে

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

সাইলেন্ট পরিবর্তনের তিনটি ক্যাটাগরি

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

দ্বিতীয় ক্যাটাগরি হলো ইंফ্রাস্ট্রাকচার-লেভেল পরিবর্তন যেখানে ওয়েটগুলো একই থাকে কিন্তু সার্ভিং স্ট্যাকে কিছু শিফট হয়। এর উদাহরণগুলো হলো যখন:

  • ইনফারেন্স ইঞ্জিন আপগ্রেড হয়
  • কস্ট রিজনের জন্য কোয়ান্টাইজেশন লেভেল পরিবর্তন হয়
  • রাউটিং ডিসিশন ট্রাফিক শিফট করে ভিন্ন ডিপ্লয়মেন্টের মাঝপথে যা একুইভ্যালেন্ট হওয়া উচিত ছিল কিন্তু নয়।

তৃতীয় ক্যাটাগরি হলো প্ল্যাটফর্ম-লেভেল অ্যাডিশন থেকে বিহেভিয়োরাল পরিবর্তন: নতুন মডারেশন লেয়ার, পরিবর্তিত সিস্টেম প্রম্পট, অ্যাডেড সেফটি ফিল্টার, বা মডিফাইড চ্যাট টেমপ্লেট। এই দৃশ্যগুলোতে, মডেল একই, কিন্তু মডেলটি যা পায় এবং ইউজার যা পায় সেটি ভিন্ন।

প্রতিটি ক্যাটাগরি কীভাবে আসলে মডেল বিহেভিয়রকে প্রভাবিত করে

সাইলেন্ট রিগ্রেশন সমস্যা

সাইলেন্ট রিগ্রেশন হলো মডেল আউটপুট কোয়ালিটির ডিগ্রেডেশন যা সার্ভিং স্ট্যাকে কোথাও একটি পরিবর্তনের কারণে হয়েছে যা কখনো ঘোষণা করা হয়নি, কখনো ডকুমেন্ট করা হয়নি, এবং কখনো ভার্সন বাম্পের সাথে টাইড করা হয়নি। এন্ডপয়েন্টে মডেলের নাম একই। API কনট্রাক্ট একই। আপনি যা রিকোয়েস্ট পাঠাচ্ছেন সেটি বাইট-আইডেন্টিক্যাল সেই রিকোয়েস্টের সাথে যা আপনি গত মাস পাঠিয়েছিলেন। কিন্তু রেসপন্স কোয়ালিটি ড্রপ করেছে - কখনো সাবটলি, কখনো শার্পলি - এবং প্ল্যাটফর্মের পাবলিক সারফেসে কিছুই নেই যা কেন বলে বলে।

মেকানিজমটি প্রায়শই পূর্বে বর্ণিত তিনটি পরিবর্তন ক্যাটাগরির যেকোনো একটি: ওয়েটগুলো কুয়েটলি আপডেট হয়েছে, ইন্ফ্রাস্ট্রাকচারে কিছু শিফট হয়েছে, বা একটি প্ল্যাটফর্ম-লেভেল লেয়ার (একটি নতুন গার্ডরেইল, একটি রিভাইজড সিস্টেম প্রম্পট, একটি টাইটেনড মডারেশন ফিল্টার) অ্যাড বা পরিবর্তন হয়েছে। বাইর থেকে, সব তিনটাই একই দেখায় - আপনার আউটপুট খারাপ হয়েছে এবং প্ল্যাটফর্ম আপনাকে বললো না। ভিতর থেকে, এগুলো ভিন্ন রুট কজ diferenciated ফিক্সের সাথে, এবং আপনার কাছে প্ল্যাটফর্মের সহযোগিতা ছাড়া এগুলাকে ডistingুইশ করার কোনো উপায় নেই।

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

এই সেকশনের চারটি সমস্যার মাঝে এটি সবচেয়ে খারাপ কারণ এটি একমাত্রটি যেখানে প্ল্যাটফর্মে সেটি ইনফরমেশন আছে যা ইস্যুটি ইনস্ট্যান্টলি রিজল্ভ করব এবং শেয়ার করা নিচ্ছে না। রিপ্রোডাসিবিলিটি ফেইলিউর, প্রম্পট ডেট, এবং ইভাল-টু-প্রোড ড্রিফট সবই সিম্পটম যা টিমরা কমপক্ষে নিজেদের ডায়াগনোজ করতে পারে। সাইলেন্ট রিগ্রেশন সেটি যেখানে ডায়াগনóstিক টুল আপনার প্রয়োজন API-এর ওপর দিকেই আছে।

রিপ্রোডাসিবিলিটি সমস্যা

যদিও GPT মডেলস, একটি জনপ্রিয় AI ডিপ্লয়মেন্ট টাইপের উদাহরণ হিসেবে, প্রকৃতিতে প্রোবাবিলিস্টিক, আপনি তবুও একই আউটপুট এক্সপেক্ট করতে পারেন যখন একই মডেলকে একই প্রম্পট দিয়ে ব্যবহার করেন। কিন্তু, যখন পূর্বে বর্ণিত যেকোনো পরিবর্তন হয়, গতকালের আউটপুট আজ রিপ্রোডিউসibile নাও হতে পারে। এটিই রিপ্রোডাসিবিলিটি সমস্যার কোর: মডেল কীভাবে বিহেভ করবে সেটি সম্পর্কে যেকোনো এক্সপেক্টেশন এই যেকোনো পরিবর্তন দ্বারা ইনভ্যালিডেট হতে পারে।

অটোমেটেড ইভালুয়েশন বা মডেল ভার্সন কম্পেয়ার করার অ্যাপ্লিকেশনের জন্য, এটি সেই ফান্ডামেন্টাল অ্যাসাম্পশন ভাঙে যে আইডেন্টিক্যাল ইনপুট আইডেন্টিক্যাল (বা সিমিলার, প্রোবাবিলিস্টিক মডেলের কেসে) আউটপুট প্রডিউস করবে একই সিড দিয়ে। টেম্পারেচার জিরো আসলে আপনাকে ডিটারমিনিজম দেয় না যখন আন্ডারলাইং স্ট্যাক আপনার নিচে শিফট হচ্ছে। প্রম্পট ইঞ্জিনিয়ারিং ডেট সমস্যা

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

ইভাল-টু-প্রোডাকশন ড্রিফট সমস্যা

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

প্ল্যাটফর্মরা আসলে কী করে

এই সেকশনটি মেজর ইনফারেন্স প্ল্যাটফর্মগুলা ভার্সনিং কীভাবে হ্যান্ডেল করে সেটি পাবলিক ডকুমেন্টেশন এবং পর্যবেক্ষণযোগ্য বিহেভিয়রের ওপর ভিত্তি করে ওয়াকথ্রু করে।

OpenAI-স্টাইল ভার্সনিং

OpenAI স্পষ্টভাবে স্ন্যাপশট পিন করে (gpt-4-0613, gpt-4o-2024-08-06) এবং আপনাকে সেগুলো টার্গেট করার দেয়। অ্যালিয়াসড এন্ডপয়েন্ট (gpt-4, gpt-4o) যেই কারেন্ট ডিফল্ট সেটি পয়েন্ট করে, যা সময়ের সাথে সাথে পরিবর্তন হয়। টিমরা যারা স্ন্যাপশট পিন করার বিষয়ে না জানে তারা কারেন্ট ভার্সনই পায়, এবং অ্যালিয়াস তাদের নিচে শিফট করতে পারে।

OpenAI তাদের মডেলগুলো পরিবর্তন করে though, বিভিন্ন কারণে। এর একটি উদাহরণ হলো সাইকোফ্যান্সি ইন্সিডেন্ট। GPT-4o রিপোর্টেডলি 'অত্যধিক ফ্ল্যাটারিং বা সম্মতিশীল — প্রায়শই সাইকোফ্যান্টিক হিসেবে বর্ণিত', এবং OpenAI রোলআউট কোরেকশন-এর একটি সিরিজ ইস্যু করেছিল সেটি ডিপ্রিকেট করার আগে (সোর্স)। মডেলটির ইভেন্টুয়াল ডিপ্রিকেশন আরও ভয়াবহ লहर সৃষ্টি করেছিল কারণ লোকেরা মডেলটির লস নিয়ে विलাপ করল।

যা সাইকোফ্যান্সি ইন্সিডেন্টকে ইনস্ট্রাক্টিভ করে সেটি হলো সেটি এন্ডপয়েন্ট কনট্রাক্ট সম্পর্কে কী প্রকাশ করল। gpt-4o কল করার টিমরা সাইকোফ্যান্সি রোলআউটের আগে, সময়ে, এবং পরে একই এন্ডপয়েন্ট নাম হিট করছিল কিন্তু মিনিংফুলি ভিন্ন মডেল। প্রি-সাইকোফ্যান্সি ভার্সনের বিপরীতে টিউন করা একটি কাস্টমার সাপোর্ট বট সাইকোফ্যান্সি রোলআউটের মধ্য থেকে একটি ওয়ার্মার, আরও সম্মতিশীল মডেল সম্মুখীন হতো, তারপর একটি থার্ড বিহেভিয়র প্রোফাইল যখন OpenAI কোর্স কোরেক্ট করেছিল, এবং একটি চতুর্থ যখন মডেলটি ইভেন্টুয়ালি ডিপ্রিকেট করা হয়েছিল। সেসব ট্রানজিশনের কোনোটিই কাস্টমারের দিক থেকে কোনো কোড চেঞ্জ দাবি করলো না। সেসব কোনোটিই এন্ডপয়েন্ট স্ট্রিং-এ ভার্সন বাম্প ট্রিগার করলো না। একই টু-লাইন API কল মहीনো জুড়ে চারটি ভিন্ন বিহেভিয়রাল রেজিম প্রডিউস করেছিল, এবং অধিকাংশ টিম যে একমাত্র সিগন্যাল পেল সেটি ছিল তাদের ইউজাররা বলছে প্রোডাক্টটি আলাদা লাগছে। OpenAI-এর পদ্ধতি অন্যদের চেয়ে ভালো কারণ এটি আপনাকে পুরনো মডেল ভার্সন ব্যবহার করার অপশন দেয়, যতক্ষণ না OpenAI সেগুলো সার্ভ করে। কিন্তু, এটাও নোট করার লायक যে সিলেকশনটি ম্যানুয়াল এবং তাদের জন্য কঠিন হবে যারা রিসার্চ না করে জানেন না কীভাবে মডেলটি পুরনো ভার্সনে চেঞ্জ করবেন।

Anthropic-এর পদ্ধতি

Anthropic ডেটেড মডেল আইডেন্টিফায়ার ব্যবহার করে (claude-opus-4-5-20251101 স্টাইল)। পিনিং কাজ করে। কিন্তু প্ল্যাটফর্ম-লেভেল সিস্টেম প্রম্পট ইনজেকশন এবং সেফটি লেয়ার মডেল ভার্সন থেকে স্বাধীনভাবে ইভলভ করে, তাই একই পিনড মডেলে দুটি রিকোয়েস্ট ভিন্ন দিনে ভিন্নভাবে বিহেভ করতে পারে কারণ মডেলের চারপাশে কী হচ্ছে, সেটি করার জন্য, মডেলে না। এটি ট্রান্সপারেন্সিতে একটি ধাপ আগে, কিন্তু কোর মডেল সিলেকশন OpenAI-এর মতোই থাকে।

Anthropic থেকে সাইলেন্ট রিগ্রেশন একটি উদাহরণ مؤخرেই একটি নটেবল GitHub ইস্যুতে ঘটল, যেখানে একটি বড় AI ডেভেলপার Claude Opus মডেলগুলো তাদের কমপ্লেক্স ইঞ্জিনিয়ারিং ওয়ার্কে প অপারেন্টলি "নার্ফিং" করার দাবি করল। তারা রিপোর্ট করল যে Claude নির্দেশনা উপেক্ষা করা শুরু করল, "সিম্পলেস্ট ফিক্সেস" দাবি করল যা ইনকরেক্ট, অনুরোধকৃত এক্টিভিটির বিপরীত কাজ করল, এবং তারা দাবি করল মডেলটি ইনস্ট্রাকশনসের বিপরীতে কমপ্লিশন করল। এই সব একটি রিপোর্টেড চেঞ্জ ছাড়া মডেল ব্যবহার করা। এই সাইলেন্ট চেঞ্জটি Claude-এর ডেভেলপাররা সেই থ্রেডে রিফিউট করল, কিন্তু অন্য ইউজারদের রেসপন্সের ভিত্তিতে ব্যাপক সম্মতি আছে যে একটি পরিবর্তন ঘটেছে।

'সেইম মডেল' সবসময় একটি মার্কেটিং অ্যাবস্ট্রাকশন।

হোস্টেড ওপেন-সোর্স মডেল

ওপেন-সোর্স মডেল হোস্ট করার প্ল্যাটফর্মগুলো (Baseten, Fireworks, Together, DigitalOcean, Nebius Token Factory, Modal) প্রায়শই এন্ডপয়েন্টের নাম আন্ডারলাইং মডেলের নাম দিয়ে রাখে, যেমন "llama-3.1-70b-instruct", বিনা এক্সপোজ কिये কোন স্পেসিফিক কোয়ান্টাইজেশন, কোন ইনফারেন্স ইঞ্জিন ভার্সন, বা কোন ডিপ্লয়মেন্ট কনফিগারেশন আসলে রিকোয়েস্ট সার্ভ করছে। এটা বড় সমস্যা হতে পারে, কারণ মডেলের পারফরম্যান্স প্ল্যাটফর্ম থেকে প্ল্যাটফর্মে ভিন্ন হবে যদিও একই নাম ধারণ করে। সেই যেকোনো একটি আপডেটসহ সাধারণত মডেল ভার্সন চেঞ্জ হিসেবে কমিউনিকেট করা হয় না। ওপেন-সোর্স হোস্টিং প্রোভাইডারের ক্ষেত্রে, Serverless Inference দৃশ্যে আন্ডারলাইং মডেল ডিপ্লয়মেন্টে যেকোনো পরিবর্তন সম্পর্কে রিসার্চ করার দায়িত্ব ইউজারের ওপর। কাস্টম ডিপ্লয়মেন্টে, বিষয়টি কিছুটা ভিন্ন।

কাস্টম ডিপ্লয়মেন্ট

যখন আপনি Modal বা Baseten এর মতো প্ল্যাটফর্মে আপনার নিজের মডেল ডিপ্লয় করেন, আপনি ভার্সনিং স্টোরি অোন করেন। এটি রিপ্রোডাসিবিলিটি, প্রোডাকশন ওভার কন্ট্রোল, এবং আপনার ডাউনস্ট্রিম প্রোডাক্টের জন্য মডেল চেঞ্জ ম্যানেজ করার জন্য সবচেয়ে ক্লিন সিচুয়েশন, কিন্তু এটার মানে মডেল লাইফসাইকেল নিজে ম্যানেজ করার অপারেশনাল বার্ডেন নেওয়া। স্কেল করার সময় এই ট্রেডঅফ বিবেচনা করা ক্রিটিক্যাল, কারণ চেঞ্জ ম্যানেজ করার জন্য ডেভেলপার টাইমের প্রয়োজন স্কাইরকেট করে।

টিমরা কী করছে এর সম্পর্কে

নিচের সেকশনগুলো টিমরার অধিগ্রহণ করা সাধারণ ওয়ার্কঅরাউন্ডগুলো কভার করে। কোণটিই পুরোপুরি সমস্যা সমাধান করে না, কিন্তু প্রতিটা সঠিক দিকে কয়েকটি ধাম দেয়। স্ন্যাপশট পিনিং যখন সম্ভব

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

গোল্ডেন ডেটাসেট রিগ্রেশন টেস্টিং

গোল্ডেন ডেটাসেট রিগ্রেশন টেস্টিং হলো যেখানে আপনি একটি ফিক্সড সেট ইনপুট প্রোডাকশন এন্ডপয়েন্টের মাধ্যমে শিডিউলে রান করান এবং আউটপুটকে একটি নন-গুড বেসলাইনের বিপরীতে ডিফ করান। এই প্রসেস আপনাকে সহজে কোয়ালিটি রিগ্রেশন এবং অন্যান্য উল্লেখযোগ্য মডেল বিহেভিয়র চেঞ্জ ক্যাচ করতে দেয়, কিন্তু এটি মেইনটেইন করা এক্সপেনসিভ, এবং কেবল उन्हीं প্যাটার্নগুলো কভার করতে পারে যা আপনি অবজার্ভ করার চিন্তা করেছিলেন। নিয়মিত গোল্ডেন ডেটাসেট রিগ্রেশন টেস্টিং আপনাকে সেই ভয়ংকর সংবাদ থেকে বাঁচাতে পারে যে একটি কাস্টমার আপনার প্রোডাক্টের বিহেভিয়র চেঞ্জ আপনার আগে ডিসকভার করেছে।

আউটপুট স্যাম্পলিং এবং লগিং

এটি প্রোডাকশন রিকোয়েস্ট এবং রেসপন্সের একটি স্যাম্পল্ড পেরসেন্টেজ লগ করার প্রসেস পরবর্তী অ্যানালিসিসের জন্য। এটি ড্রিফট আফTER-the-fact ডিটেক্ট করতে দেয়, কিন্তু এখনো স্যাম্পলিং, স্টোরেজ, এবং অ্যানালিসিস ইंফ্রাস্ট্রাকচার নিজে বিল্ড করতে হয়।

শ্যাডো ডিপ্লয়মেন্ট

আপনি একই রিকোয়েস্ট কারেন্ট প্রোডাকশন এন্ডপয়েন্ট এবং একটি ক্যান্ডিডেট নিউ এন্ডপয়েন্টে সিমুলটেনিয়াসলি রান করতে পারেন, এবং আউটপুট কম্পেয়ার করতে পারেন কীভাবে এটা মডেল বিহেভিয়রকে প্রভাবিত করে। এটি আপনার করা চেঞ্জগুলো ইভালুয়েট করার জন্য খুব ভালো কাজ করে; এটি প্ল্যাটফর্ম আপনার নিচে যে চেঞ্জগুলো করে সেটি সাহায্য করে না।

সেলফ-হোস্টিং মডেল

সর্বোচ্চ কন্ট্রোল মুভ: আপনার কন্ট্রোলের অধীনে ইনফ্রাস্ট্রাকচারে মডেলটি নিজে রান করান। এটি আপনাকে ওয়েট, ইনফারেন্স ইঞ্জিন, কোয়ান্টাইজেশন, এবং আউটপুটকে প্রভাবিত করতে পারে এমন যেকোনো জিনিসের ওভার কমপ্লিট কন্ট্রোল দেয়। এটি ভার্সনিং সমস্যাকে মডেল হোস্টিং-এর অপারেশনাল বার্ডেনের সাথে ট্রেড করে, যেটির জন্য অধিকাংশ টিম এটা করে না।

ভার্সনিং আসলে কী খরচ করে

অবজারভেবিলিটি ট্যাক্স

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

যখন আপনার AI ফিচার ভাঙে কারণ মডেল আপনার নিচে শিফট করেছে, ইউজাররা "AI অনবিশ্বস্ত" এবং "প্ল্যাটফর্ম সাইলেন্টলি মডেল আপডেট করল" এর পার্থক্য জানে না। আপনার প্রোডাক্ট আপস্ট্রিমে নেওয়া একটি ডিসিশনের রেপুটেশনাল কস্ট বহন করে।

মাইগ্রেশন ট্যাক্স

প্ল্যাটফর্ম স্যুইচ করার কথা ভাবা টিমদের একাউন্ট করতে হয় না শুধু API পার্থক্য বরং একই নামের মডেলের মাঝপথে বিহেভিয়োরাল পার্থক্যও। "Llama 3.1 70B" Fireworks-এ একটি জিনিস, Together-এ অন্য জিনিস - সেগুলো ভিন্ন কোয়ান্টাইজেশন হতে পারে, ভিন্ন ইনফারেন্স ইঞ্জিন ব্যবহার করতে পারে, বা সম্পূর্ণ ভিন্ন গার্ডরেইল স্ট্যাক থাকতে পারে। এই অস্পষ্টতা প্রোভাইডার জুড়ে স্যুইচ করা কঠিন করে দেয় এক্সটেনসিভ টেস্টিং ছাড়া।

ভালো কীভাবে দেখাবে

২০২৬-এ একটি সিরিয়াস ইনফারেন্স প্ল্যাটফর্ম মডেল বিহেভিয়রকে ক্লাউড প্রোভাইডার আপটাইমের মত ট্রিট করব: একটি কন্ট্র্যাকচুয়াল সারফেস হিসেবে, না কি একটি ব্ল্যাক বক্স হিসেবে।

কারেন্ট স্টেট একটি টেকনিক্যাল লিমিটেশন নয় - এটি একটি ডিসক্লোজার গ্যাপ। ইন্ফ্রাস্ট্রাকচার ইতিমধ্যে এক্সিস্ট করে ওয়েট, ইঞ্জিন, কোয়ান্টাইজেশন লেভেল, এবং রাউটিং ডিসিশন ট্র্যাক করার জন্য; প্ল্যাটফর্মগুলো শুধু এক্সপোজ করে না।

এটি প্র্যাকটিসে কীভাবে দেখাবে সেটি হলো:

  1. কমপ্লিট ভার্সন আইডেন্টিফায়ার আজকের মডেল নাম ওয়েট চিন्हিত করে, কখনো কখনো। সেগুলো ফুল সার্ভিং কনফিগারেশন চিন्हিত করা উচিত। একটি কমপ্লিট ভার্সন স্ট্রিং সবকিছু ক্যাপচার করে যা এন্ডপয়েন্ট থেকে আউটপুট পরিবর্তন করতে পারে: ওয়েট (কোয়ান্টাইজেশন লেভেল সহ), ইনফারেন্স ইঞ্জিন এবং ভার্সন, হার্ডওয়্যার জেনারেশন, টোকেনাইজার ভার্সন, চ্যাট টেমপ্লেট, এবং যেকোনো প্ল্যাটফর্ম-ইনজেক্টেড সিস্টেম প্রম্পট বা গার্ডরেইল লেয়ার। কিছু ऐसा হলো llama-3.1-70b-instruct.fp8.vllm-0.6.3.h100.tmpl-v2.guardrail-v4 বদসूरत কিন্তু ইমানদার। টিমরা যেকোনো কম্পোনেন্ট পিন করতে পারতেন যার ওপর তারা ডিপেন্ড করে এবং অন্যদের পরিবর্তন হলে নোটিফিকেশন পাতেন।

  2. হোল স্ট্যাকের জন্য চেঞ্জলগ ফিড প্ল্যাটফর্ম রিলিজ নোটস পাবলিশ করে যখন সে মডেল ওয়েট আপডেট করে। সে কখনো কিছু পাবলিশ করে না যখন সে vLLM আপগ্রেড করে, কস্ট রিজনের জন্য কোয়ান্টাইজেশন চেঞ্জ করে, বা রিজন জুড়ে ট্রাফিক রি-রুট করে। একটি প্রপার চেঞ্জলগ ফিড - আদর্শভাবে মেশিন-রিডেবল - সার্ভিং স্ট্যাকের প্রতিটি লেয়ার কভার করবে, টাইমস্ট্যাম্প এবং অ্যাফেক্টেড এন্ডপয়েন্টসহ। টিমরা একটি স্পেসিফিক পিনড কনফিগারেশনের জন্য চেঞ্জ সাবস্ক্রাইব করতে পারবেন এবং রোলআউটের আগে এলার্ট পাবেন, ইউজার কামপ্লেন করার পর না।

  3. স্টেটেড রিটেনশন সহ রিপ্রোডাসিবিলিটি গ্যারান্টি একটি পিনড স্ন্যাপশট কিছু মানে উচিত। প্ল্যাটফর্ম একটি স্টেটেড রিটেনশন উইন্ডো কমিট করা উচিত - বলুন, ১২ বা ২৪ মাস - যেখানে একটি পিনড কনফিগারেশন টেম্পারেচার জিরো-এ আইডেন্টিক্যাল ইনপুটের জন্য বাইট-আইডেন্টিক্যাল আউটপুট রিটার্ন করবে, ফুল স্ট্যাকের জন্য, শুধু ওয়েটের জন্য নয়। যখন সে উইন্ডো এক্সপায়ার হবে, টিমদের এডভান্স নোটিশ এবং একটি মাইগ্রেশন পাথ मिलবে। ডেটাবেস এবং অপারেটিং সিস্টেম ভার্সনিং কীভাবে হ্যান্ডেল করে সেটি। ইনফারেন্স ভিন্ন হওয়ার কোনো রিজন নেই।

  4. প্ল্যাটফর্ম-প্রোভাইডেড রিগ্রেশন টেস্টিং প্রতিটি সিরিয়াস টিম একই ইভালুয়েশন ইंফ্রাস্ট্রাকচার আইসোলেশনে বিল্ড করছে। প্ল্যাটফর্মগুলো এটিকে একটি ফার্স্ট-ক্লাস ফিচার হিসেবে প্রদান করা উচিত: একটি গোল্ডেন ডেটাসেট রেজিস্টার করুন, আপনার পিনড এন্ডপয়েন্টের বিপরীতে শিডিউলে রান করান, এবং আপনার সেট করা থ্রেশহোল্ডের বাইরে আউটপুট ড্রিফট করলে এলার্ট পান। বোনাস পয়েন্ট ডিফারেনশিয়াল টেস্টিং স্ন্যাপশট জুড়ে, যাতে টিমরা ফোর্সড হওয়ার আগে মাইগ্রেট করা উচিত কিনা ইভালুয়েট করতে পারে।

  5. ইমানদার ডকুমেন্টেশন কী কখন পরিবর্তন होता है এই লিস্টের সবচেয়ে কঠিন আইটেম, কারণ এতে প্ল্যাটফর্মকে মেনে নিতে হবে যে "সেইম মডেল" সবসময় একটি মার্কেটিং অ্যাবস্ট্রাকশন। ডকুমেন্টেশন অনাম করণিয়ে দিতে হবে যেকোনো লেয়ার যা মডেল ভার্সন থেকে স্বাধীনভাবে পরিবর্তিত হতে পারে, প্রতিটি পরিবর্তনের ওপর প্ল্যাটফর্মের পলিসি স্টেট করতে হবে, এবং কাস্টমারদের কীভাবে নোটিফাই করা হবে সেটি বর্ণনা করতে হবে। টিমরা তারপর ইনফর্মড ডিসিশন নিতে পারবেন কোন প্ল্যাটফর্ম তাদের রিস্ক টলারেন্সের সাথে ম্যাচ করে।

বায়ের চেকলিস্ট

আপনি আজ একটি ইনফারেন্স প্ল্যাটফর্ম ইভালুয়েট করলে, সাইন করার আগে ভেন্ডরের এই প্রশ্নগুলো জিজ্ঞেস করুন:

  • "আমি কি একটি স্পেসিফিক মডেল স্ন্যাপশট পিন করতে পারি, এবং সেই স্ন্যাপশট কতক্ষণ গ্যারান্টিড উপলব্ধ?"
  • "আমি যে ভার্সন স্ট্রিং পিন করি সেটি কি ইনফারেন্স ইঞ্জিন, কোয়ান্টাইজেশন, এবং হার্ডওয়্যার কভার করে - নাকি শুধু ওয়েট?"
  • "সার্ভিং স্ট্যাকের যেকোনো লেয়ার পরিবর্তন হলে আপনার নোটিফিকেশন পলিসি কী?"
  • "আপনি কি সিস্টেম প্রম্পট, গার্ডরেইল, বা মডারেশন লেয়ার ইনজেক্ট করেন যা আমি দেখি না? আমি কি অপ্ট-আউট করতে পারি?"
  • "আমি যদি একই রিকোয়েস্ট দুবার টেম্পারেচার জিরো-এ এক মাস পর একবার করি, আউটপুট আইডেন্টিটি সম্পর্কে আপনি কী গ্যারান্টি দেন?"
  • "আপনি কি রিগ্রেশন টেস্টিং টুলিং প্রদান করেন, নাকি আমি নিজে বিল্ড করি?"
  • "যখন একটি পিনড স্ন্যাপশট ডিপ্রিকেট হয়, আমাকে কতটুকু নোটিশ মiled এবং মাইগ্রেশন পাথ কী?"

যদি একটি প্ল্যাটফর্ম অধিকাংশ এই প্রশ্নের স্পষ্ট উত্তর দিতে না পারে, সেটিই উত্তর। আপনি এমন একটি ইंফ্রাস্ট্রাকচারের ওপর বিল্ড করছেন যা আপনার নিচে পরিবর্তিত হতে পারে, এবং আপনাকেই আপনার ইউজারদের কাছে এক্সপ্লেইন করতে হবে।

কমার্শিয়াল বাস্তবতা

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

শেষ চিন্তা

ইন্ডাস্ট্রি AI ইंফ্রাস্ট্রাকচার বিল্ড করেছে ট্রাডিশনাল সফটওয়্যারের থেকে আউত করা একটি অ্যাসাম্পশন ওপর: একটি নামকৃত আর্টিফ্যাক্ট একটি স্টেবল আর্টিফ্যাক্ট। সেই অ্যাসাম্পশনটি হোল্ড করে না। ওয়েট, ইঞ্জিন, রাউটিং, এবং গার্ডরেইল সব এন্ডপয়েন্টের নাম থেকে স্বাধীনভাবে পরিবর্তিত হয়, এবং "মডেল ভার্সন" ইমপ্লাই করে যা এবং আসলে যা গ্যারান্টি করে তার মাঝপথে যে গ্যাপটি আছে সেটি প্রোডাকশন AI কুয়েটলি ব্রেক করে।

এখানে প্রিডিকশন: পরবর্তী ১৮ মাসের ভিতরে, সাইলেন্ট ভার্সনিং একটি প্রকিউরমেন্ট ইস্যু হবে, শুধু ইঞ্জিনিয়ারিং নয়। ইনফারেন্স ক্যাপাসিটি কেনা টিমরা উপরের চেকলিস্টের প্রশ্নগুলো জিজ্ঞেস করা শুরু করেছে, এবং যেসব প্ল্যাটফর্ম তাদের উত্তর দিতে পারে সেগুলো ডিল জিতে যাবে যেগুলো অন্যদের হয়তো পাতা হয়েছে এমনকি জানা ছাড়া। "রিপ্রোডাসিবিলিটি SLAs," "স্ট্যাক-লেভেল চেঞ্জলগস," এবং "স্ন্যাপশট রিটেনশন উইন্ডো" এর এক্সপেক্ট করুন ইঞ্জিনিয়ারিং উইশলিস্ট থেকে এন্টারপ্রাইজ কনট্রাক্টে মুভ করতে। প্রথম প্ল্যাটফর্ম যে ফুল-স্ট্যাক ভার্সন স্ট্রিংকে একটি প্রোডাক্ট ফিচার হিসেবে পাবলিশ করবে - নয় ডিপ-ইন-দ্য-ডক ফুটনোট হিসেবে - সেটি সবার জন্য কাস্টমার এক্সপেক্টেশন রিসেট করবে।

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

আপনি যে মডেলের সাথে শিপ করেছিলেন সেটি ওই মডেল নয় যা আপনি রান করছেন। সেই অনুযায়ী বিল্ড করুন।

DigitalOcean আপনার AI প্রোডাক্ট স্কেলে বিল্ড করতে সাহায্য করতে পারে।

অদৃশ্য ভার্সনিং সমস্যা যা AI ইনফারেন্স পারফরম্যান্সকে প্রভাবিত করছেএই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন-ননকমার্শিয়াল- শেয়ারআলাইক ৪.০ ইন্টারন্যাশনাল লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।


  1. সি-তে দেওয়া ব্যাসার্ধ সহ n-পার্শ্ব নিয়মিত বহুভুজের ক্ষেত্রফল

  2. CSS দিয়ে আইকন বার (Icon Bar) তৈরি করা

  3. CSS :focus-within সিউডো ক্লাস

  4. C++-এ একটি বাইনারি ট্রিতে ডুপ্লিকেট সাবট্রি (সাইজ ২ বা অধিক) আছে কিনা চেক করা