পদ্ধতি

InterMIND-এর অনুবাদ গুণমান বেঞ্চমার্ক আমাদের নিজস্ব টেস্ট স্যুট দ্বারা স্বয়ংক্রিয়ভাবে তৈরি হয়: প্রতি সপ্তাহে একটি সিন্থেটিক রান একটি নির্দিষ্ট রেফারেন্স সেটের ওপর সেই একই অনুবাদ পাইপলাইন চালায়, যা সর্বজনীন /demo-কে চালিত করে, এবং প্রতিটি ভাষা-জোড়ার জন্য একই পদ্ধতিতে। এটি সিন্থেটিক ও পুনরুৎপাদনযোগ্য — এখানে কিছুই বেছে নেওয়া বা সাজানো নয়, এবং স্কোরিং প্রক্রিয়ায় কোনো মানুষ নেই।

একটি টেস্ট কীভাবে কাজ করে

একটি টেস্ট রান উৎস ভাষা থেকে একটি রেফারেন্স অডিও ফাইল চালায় (ভয়েস টেস্ট) অথবা একটি রেফারেন্স টেক্সট পাঠায় (চ্যাট টেস্ট), আমাদের লাইভ অনুবাদ পাইপলাইনের মাধ্যমে লক্ষ্য ভাষায়। ফলস্বরূপ অনুবাদটি একটি নির্ধারিত রেফারেন্স অনুবাদের বিপরীতে একটি LLM জাজ দ্বারা ০–১০০ স্কেলে স্কোর করা হয়।

LLM জাজ: প্রাথমিকভাবে google/gemini-3.8-flash, বিকল্প হিসেবে anthropic/claude-sonnet-5 (Vercel AI Gateway-এর মাধ্যমে)। সব জোড়ার জন্য একই প্রম্পট, রুব্রিক ও রেফারেন্স টেক্সট ব্যবহার করা হয়।

একটি মাসের ফলাফল কীভাবে একত্র করা হয়

  1. সম্পন্ন হওয়া প্রতিটি পূর্ণ বেঞ্চমার্ক রান লক্ষ্য ভাষাভিত্তিক স্কোরসহ demo_test_runs-এ রেকর্ড করা হয়। একক-জোড়ার প্রিভিউ বাদ দেওয়া হয় — শুধুমাত্র পূর্ণ বহু-ভাষার রানই মধ্যমা (median) গণনায় যুক্ত হয়।
  2. প্রতিটি (উৎস ভাষা, লক্ষ্য ভাষা, টেস্টের ধরন, সপ্তাহ) সমন্বয়ের জন্য আমরা সর্বশেষ রানটি রাখি, তারপর মাস অনুযায়ী একত্র করি — ফলে একটি সপ্তাহের মধ্যে একই জোড়া বারবার চালিয়ে কোনো একক উৎস মধ্যমাকে প্রভাবিত করতে পারে না।
  3. ডুপ্লিকেট বাদ দেওয়া সেট থেকে আমরা মধ্যমা, সর্বনিম্ন, সর্বোচ্চ, p10, p90, গড় এবং নমুনার আকার গণনা করি।
  4. আমরা পৃথক স্কোরগুলোর স্ন্যাপশট রাখি, যাতে একটি মাস শেষ হয়ে গেলে TTL-এর মাধ্যমে র রান মুছে ফেলা হলেও সংখ্যাগুলো স্থির থাকে।

কখন একটি জোড়া সর্বজনীন সূচিতে আসে

একটি (জোড়া × টেস্টের ধরন × মাস) সারি তখনই সর্বজনীন সূচি ও সাইটম্যাপের জন্য যোগ্য হয়, যখন তা ন্যূনতম নমুনার আকার এবং মধ্যমা-স্কোরের একটি সর্বনিম্ন সীমা পূরণ করে (ভয়েসের জন্য সীমা কম, কারণ এতে ASR-এর অনিবার্য নয়েজ থাকে)। যেহেতু ডেটাসেট বহু স্বতন্ত্র ভিজিটরের পরিবর্তে একটিমাত্র স্বয়ংক্রিয় উৎস থেকে আসে, তাই এই সিন্থেটিক ডেটার জন্য স্বতন্ত্র-উৎসের শর্ত শিথিল করা হয়েছে — নমুনার আকার ও গুণমানের সীমা তবুও প্রযোজ্য।

যেসব জোড়া এই সীমা পূরণ করে না, সেগুলো সরাসরি লিঙ্কের মাধ্যমে তখনও পাওয়া যায় — সীমাগুলো শুধু নিয়ন্ত্রণ করে সার্চ ইঞ্জিন কী দেখতে পায়। কেউ সরাসরি চাইলে আমরা কম স্কোর লুকাই না।

আমরা ইচ্ছাকৃতভাবে যা দাবি করি না

  • একটিমাত্র স্কোর নির্ভরযোগ্য নয়। ASR এবং LLM-এর বিচার — দুটিই নয়েজযুক্ত হওয়ায় একটি ভালো আচরণকারী জোড়াও রানগুলোর মধ্যে ৩০ পয়েন্ট ওঠানামা করতে পারে। এ কারণেই প্রতিটি পেজে একটিমাত্র সংখ্যা নয়, বণ্টন (distribution) দেখানো হয়।
  • LLM জাজ নিজেও নিখুঁত নয়। ভবিষ্যতে আমরা জাজ বদলাতে বা দ্বৈত-জাজ ব্যবহার করতে পারি; তেমন হলে ঐতিহাসিক সারিগুলোতে জাজের শনাক্তকারী থাকবে।
  • বেঞ্চমার্কটি লেটেন্সি, খরচ, প্রাপ্যতা বা ব্যবহারকারীর সন্তুষ্টি পরিমাপ করে না। সেগুলো অন্যত্র রয়েছে।
  • ডেটাসেটটি সিন্থেটিক — আমাদের নিজস্ব স্বয়ংক্রিয় স্যুট দ্বারা তৈরি, স্বতন্ত্র তৃতীয়-পক্ষের ট্রাফিক দ্বারা নয়। কোনো বাহ্যিক প্যানেল আছে বলে ইঙ্গিত না দিয়ে আমরা এটি স্পষ্টভাবে প্রকাশ করি।

সততার সঙ্গে সিদ্ধান্ত

কোনো নির্দিষ্ট জোড়ার জন্য একটি মাসে গুণমান কমে গেলে — তা দৃশ্যমান থাকে। কোনো বাগ ঠিক হওয়ার পর পরের মাসে স্কোর বেড়ে গেলে — সেই উন্নতিও একই পেজে দৃশ্যমান। আমরা কখনও ঐতিহাসিক একত্রিত ফলাফল নতুন করে লিখি না। অ্যাডমিনরা শুধু সর্বজনীন সূচি থেকে পৃথক মাস লুকাতে পারেন; ইতিমধ্যে প্রকাশিত সংখ্যা তাঁরা বদলাতে পারেন না।

ঐতিহাসিক ডেটাকে প্রভাবিত করা জানা সমস্যা

  • চ্যাট টেস্ট হারনেস, ২০২৬-০৪-২৩-এর আগে: স্বয়ংক্রিয় চ্যাট-টেস্ট পাইপলাইনে ভাষাভিত্তিক ব্যর্থতা ছিল। আগের মাসগুলোর চ্যাট একত্রিত ফলাফলে সেই সময়ের প্রকৃত অনুবাদ গুণমানের চেয়ে কম স্কোর দেখা যেতে পারে। প্রভাবিত মাসগুলো ডেটাবেসে রাখা আছে, কিন্তু সর্বজনীন সূচি থেকে বাদ দেওয়া হয়েছে; ট্রেন্ড চার্টে ফিক্স হওয়ার সময়ে একটি ধাপ-পরিবর্তন দেখা যাবে।

প্রশ্ন

এখানকার কোনো বিষয়ে দ্বিমত আছে? একটি ইস্যু খুলুন অথবা আমাদের লিখুন। আমরা এই পেজ হালনাগাদ করব এবং পরিবর্তনটি উল্লেখ করব।