Benchmarking a model on broad leaderboards tells you how well it handles trivia and standardized tests. It tells you almost nothing about how it will reason through the messy, constrained problems your production systems actually face. Before you ship any large language model to users, you need a harness that stresses the specific cognitive patterns your application demands. Reasoning benchmarks are where models separate themselves from chatbots.

This guide walks through building a focused reasoning benchmark from scratch. You will compare three distinct architectures: DeepSeek R1 671B MoE, Llama 3.3 70B, and Qwen 3 32B. Rather than cobbling together GPU clusters, you will run all three through Oxlo.ai. For evaluation, you will use Kimi K2.6 as a judge to score outputs on reasoning clarity, correctness, and code quality.

Why Reasoning Breaks First

Production failures rarely look like grammatical errors or refusals. They look like subtle logical mistakes. A model might generate confident prose while misunderstanding a constraint, skipping a step, or silently changing a variable mid-stream. Public benchmarks often weight breadth over depth, so a model can score well without ever solving a hard combinatorial problem.

A targeted benchmark forces the issue. It gives every model the same constrained optimization task, demands a traceable chain of thought, and measures whether the generated solution actually satisfies the rules. If a model cannot consistently reason through discrete math, it will not reliably handle your inventory allocation, scheduling engine, or resource router either.

The Models and the Platform

DeepSeek R1 671B MoE uses a mixture-of-experts design. Only a fraction of its 671 billion parameters activate for any given token, which changes the cost-to-performance curve and sometimes the texture of its reasoning. Llama 3.3 70B is a dense model, and Qwen 3 32B sits at a smaller scale with strong multilingual and coding chops. Comparing these three tells you whether reasoning quality tracks with total parameter count, active parameter count, or training methodology.

Oxlo.ai hosts these models behind a unified API. You do not manage inference infrastructure or wrestle with separate provider agreements. The platform also uses per-request pricing rather than per-token pricing. A two-thousand-word system prompt costs exactly the same as a terse one-liner. That detail matters more than it sounds. It means you can write exhaustive instructions, include detailed formatting requirements, and embed few-shot examples without watching input token costs balloon. You pay for the call, not the verbosity.

You will need Python 3.10 or newer, the OpenAI Python library, and an Oxlo.ai API key.

Step 1: Connect to the Endpoint

Because Oxlo.ai exposes an OpenAI-compatible API, integration is straightforward. Point the OpenAI SDK at the Oxlo base URL, plug in your API key, and verify the connection with a lightweight request to DeepSeek R1. Do not skip the sanity check. Confirm latency, confirm that the model identifier is recognized, and make sure your environment can stream or buffer the response format you intend to store. Once the handshake works, you have a single client that can address all three models by changing one string.

Step 2: Design the Task

Pick a problem that demands step-by-step logic and has an objectively measurable answer. Bin-packing works exceptionally well. It is NP-hard, which means greedy heuristics fail in predictable ways, and it forces the model to track multiple constraints simultaneously. Items of varying sizes must fit into bins of fixed capacity without exceeding limits.

Frame the prompt so the model must do two things: describe its reasoning process, then provide working Python code that solves the instance. Use a system prompt that explicitly requires the model to show its chain-of-thought before writing any code. This is especially important for DeepSeek R1, which is optimized for extended reasoning traces. You want to see whether the model is thinking through capacity checks or just pattern-matching against training data. A good task is adversarial enough that template responses fail.

Step 3: Run the Benchmark

DeepSeek R1, Llama 3.3 70B, এবং Qwen 3 32B-তে একই প্রম্পট দিন। শুধুমাত্র শেষ কোড ব্লকগুলো নয়, বরং সম্পূর্ণ টেক্সট রেসপন্সগুলো ক্যাপচার করুন। সেগুলোকে টাইমস্ট্যাম্প এবং মডেল আইডেন্টিফায়ারসহ সংরক্ষণ করুন। যেহেতু Oxlo.ai প্রতি অনুরোধের ভিত্তিতে চার্জ করে, তাই টাকা বাঁচানোর জন্য আপনার প্রম্পট ছোট করা বা স্পষ্টীকরণ নির্দেশাবলী বাদ দেওয়ার প্রয়োজন নেই। আপনি নির্ভুল হওয়ার সামর্থ্য রাখেন। এই স্থিতিশীলতা আপনাকে খরচ নিয়ে দুশ্চিন্তা ছাড়াই প্রম্পট ডিজাইনে বারবার পরিবর্তন করার সুযোগ দেয়, যা আরও পরিচ্ছন্ন পরীক্ষা এবং আরও পুনরুৎপাদনযোগ্য (reproducible) ফলাফলের দিকে নিয়ে যায়।

আপনার বাজেট অনুমতি দিলে প্রতিটি মডেল একাধিকবার চালান। রিজনিং মডেলগুলো স্টোকাস্টিক জেনারেশনের (stochastic generations) কারণে ভিন্ন ভিন্ন হতে পারে, এবং আপনি জানতে চান যে একটি উচ্চ স্কোর কি ধারাবাহিক দক্ষতা নির্দেশ করে নাকি এটি কেবল একটি ভাগ্যবতী নমুনা (lucky sample)।

ধাপ ৪: একটি LLM জাজ দিয়ে গ্রেড করা

ম্যানুয়াল স্কোরিং বড় পরিসরে করা সম্ভব নয়, কিন্তু শুধুমাত্র সংখ্যাসূচক রুব্রিক (numeric rubrics) সূক্ষ্ম বিষয়গুলো ধরতে পারে না। এর মধ্যবর্তী সমাধান হলো একটি LLM জাজ। এখানে, আপনি Kimi K2.6 ব্যবহার করবেন। এটিকে মূল সমস্যা, রুব্রিক এবং প্রতিটি সম্ভাব্য রেসপন্স প্রদান করুন। এটিকে তিনটি নির্দিষ্ট দিক মূল্যায়ন করতে বলুন:

  • Reasoning clarity: ব্যাখ্যাটি কি আসলেই লজিক অনুসরণ করে, নাকি এটি কেবল ভাসাভাসা কথা বলে?
  • Correctness: প্রস্তাবিত সমাধানটি কি সমস্ত উল্লিখিত সীমাবদ্ধতা (constraints) পূরণ করে?
  • Code quality: Python কোডটি কি পরিষ্কার, রানযোগ্য এবং স্পষ্ট বাগ (bug) মুক্ত?

জাজকে JSON ফরম্যাটে স্কোর প্রদান করার নির্দেশ দিন। স্ট্রাকচার্ড আউটপুট ফলাফলগুলোর পার্থক্য (diff) করা, ট্রেন্ড প্লট করা এবং ডাউনস্ট্রিম অটোমেশনে ব্যবহার করা সহজ করে তোলে। জাজ প্রম্পটটি কঠোর রাখুন। আপনি যদি "উত্তরটি রেট করুন" এর মতো অস্পষ্ট নির্দেশ দেন, তবে আপনি অস্পষ্ট ফলাফল পাবেন। পরিবর্তে, একটি সঠিক bin-packing সমাধান হিসেবে কী গণ্য হবে তা সংজ্ঞায়িত করুন। ক্যাপাসিটি অতিক্রম করা যাবে না। প্রতিটি আইটেম বরাদ্দ করতে হবে। কোডটি সিনট্যাক্টিক্যালি (syntactically) বৈধ হতে হবে। আপনার মানদণ্ড যত সুনির্দিষ্ট হবে, আপনার গ্রেড তত বেশি নির্ভরযোগ্য হবে।

সবসময় জাজকে স্পট-চেক করুন। যদি Kimi K2.6 শুধুমাত্র বাহ্যিক চাকচিক্যের কারণে ক্রমাগত একটি মডেলকে অতিরিক্ত রেটিং দেয়, তবে আপনার বেঞ্চমার্কটি ত্রুটিপূর্ণ। একটি ছোট হিউম্যান অডিট লেয়ার "garbage-in-garbage-out" মূল্যায়ন প্রতিরোধ করে।

ধাপ ৫: রিপোর্ট তৈরি করা

JSON স্কোরগুলো একত্রিত করুন এবং সেগুলোকে র (raw) মডেল আউটপুট থেকে নেওয়া অংশগুলোর সাথে জোড়া দিন। সবকিছু একটি সিঙ্গেল ফাইলে রাখুন যা আপনার রিপোজিটরিতে থাকবে। যখন আপনি কোনো মডেল ভার্সন আপডেট করবেন বা প্রম্পট পরিবর্তন করবেন, তখন আপনার পুল রিকোয়েস্টের (pull request) ডিফ (diff) ঠিকভাবে দেখাবে যে আচরণ কীভাবে পরিবর্তিত হয়েছে। একটি সুসংরক্ষিত বেঞ্চমার্ক জীবন্ত ডকুমেন্টেশনে পরিণত হয়। এটি ব্যাখ্যা করে কেন আপনার প্রোডাকশন পাইপলাইন অন্যটির পরিবর্তে একটি নির্দিষ্ট মডেল ব্যবহার করছে, এবং এটি ব্যবহারকারীদের কাছে পৌঁছানোর আগেই সাইলেন্ট রিগ্রেশন (silent regressions) শনাক্ত করে।

রিপোর্টটি এমনভাবে সাজান যাতে একজন সহকর্মী কোড না চালিয়েই এটি পড়তে পারেন। এতে প্রবলেম স্টেটমেন্ট, প্রম্পট টেমপ্লেট, স্কোর এবং প্রতিটি মডেলের রিজনিং ট্রেস থেকে উল্লেখযোগ্য উদ্ধৃতি অন্তর্ভুক্ত করুন। স্বচ্ছতা অত্যন্ত গুরুত্বপূর্ণ। যদি DeepSeek R1 উচ্চ স্কোর পায় কিন্তু কোনো সীমাবদ্ধতা নিয়ে হ্যালুসিনেশন (hallucinate) করে, তবে আপনি চান সেটি টেক্সট এক্সসার্প্টে দৃশ্যমান হোক, কোনো গড় মানের (average) আড়ালে ঢাকা না পড়ুক।

পাইপলাইন অটোমেশন করা

একটি বেঞ্চমার্ক যা কেবল আপনার ল্যাপটপে থাকে, তা এক সপ্তাহের মধ্যেই বিস্মৃত হয়ে যায়। এটিকে একটি নাইটলি CI জবে (nightly CI job) নিয়ে যান। প্রতি রাতে, হারনেসটি চালু হয়, Oxlo.ai-তে বর্তমান মডেল ভার্সনগুলো কুয়েরি করে, bin-packing টাস্কটি চালায়, আউটপুটগুলো গ্রেড করে এবং ফলাফলগুলো কমিট (commit) করে। যদি কোনো মডেল আপডেট সঠিকতার ক্ষেত্রে দশ পয়েন্ট হ্রাস ঘটায়, তবে ব্যবহারকারীদের জানার আগেই আপনি তা জানতে পারবেন।

একবার কোর হারনেসটি স্থিতিশীল হয়ে গেলে, এটিকে আরও বর্ধিত করুন। প্রম্পটে অপ্রাসঙ্গিক ডকুমেন্ট দিয়ে ভরে তারপর শেষে bin-packing প্রশ্নটি রেখে লং-কনটেক্সট ভেরিয়েন্টগুলো পরীক্ষা করুন। যদি নয়েজের (noise) কারণে রিজনিং ভেঙে পড়ে, তবে বড় কনটেক্সট উইন্ডো কোনো কাজে আসে না। দেখুন কোন মডেলগুলো লজিক্যাল ডিসিপ্লিন বজায় রাখতে পারে যখন সিগন্যালটি দশ হাজার টোকেনের বিভ্রান্তির মধ্যে চাপা পড়ে থাকে।

আসল শিক্ষা

পাবলিক লিডারবোর্ডগুলো সাধারণ জ্ঞান পরিমাপ করে। আপনার অ্যাপ্লিকেশন আরও সংকীর্ণ এবং কঠিন কিছু পরিমাপ করে। একটি সহজ, পুনরাবৃত্তিযোগ্য হারনেস যা মডেলগুলোকে কনস্ট্রেইনড অপ্টিমাইজেশনের (constrained optimization) মাধ্যমে রিজনিং করতে বাধ্য করে, সুসংগত মানদণ্ডের মাধ্যমে তাদের গ্রেড করে এবং git-এ ফলাফলগুলোর ভার্সন রাখে, তা আপনাকে যেকোনো অ্যাগ্রিগেট স্কোরের চেয়ে অনেক বেশি কার্যকর ইনসাইট দেবে। আপনার সমস্যার সাথে সামঞ্জস্যপূর্ণ বেঞ্চমার্ক তৈরি করুন, আপনার জন্য গুরুত্বপূর্ণ আর্কিটেকচারগুলোতে এটি চালান এবং ফলাফলগুলোকে আপনার প্রোডাকশন চয়েস নির্ধারণ করতে দিন।

Source: DeepSeek R1 Model Architecture and Benchmarks

Community: GyaanSetu AI on Telegram