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 тарифікує запити, вам не потрібно скорочувати свій промпт або видаляти уточнювальні інструкції задля економії коштів. Ви можете дозволити собі бути точними. Така стабільність дозволяє ітерувати дизайн промптів без тривоги щодо витрат, що веде до чистіших експериментів і більш відтворюваних результатів.
Запускайте кожну модель кілька разів, якщо дозволяє ваш бюджет. Моделі міркування можуть давати різні результати через стохастичну природу генерації, і ви маєте знати, чи високий бал є ознакою стабільної компетентності, чи це просто вдалий випадок.
Крок 4: Оцінюйте за допомогою LLM-судді
Ручне оцінювання не масштабується, але самі лише числові критерії не враховують нюансів. Золота середина — це LLM-суддя. Тут ви будете використовувати Kimi K2.6. Подайте їй оригінальну задачу, критерії оцінювання та кожну відповідь-кандидата. Попросіть її оцінити три конкретні виміри:
- Чіткість міркувань: Чи справді пояснення простежує логіку, чи воно просто поверхневе?
- Правильність: Чи задовольняє запропоноване рішення всі вказані обмеження?
- Якість коду: Чи є Python-код чистим, робочим і позбавленим очевидних помилок?
Дайте судді інструкцію повертати оцінки у форматі JSON. Структурований вивід дозволяє легко порівнювати (diff) результати, будувати графіки трендів і передавати дані для подальшої автоматизації. Тримайте промпт для судді суворим. Якщо ви дасте розпливчасту інструкцію на кшталт "оціни відповідь", ви отримаєте розпливчасті результати. Замість цього визначте, що саме вважається правильним рішенням задачі пакування в контейнери (bin-packing). Місткість не повинна бути перевищена. Кожен елемент має бути призначений. Код має бути синтаксично правильним. Чим конкретнішими будуть ваші критерії, тим надійнішими стануть ваші оцінки.
Завжди перевіряйте суддю випадковим чином. Якщо Kimi K2.6 постійно завищує оцінки одній моделі через поверхневу привабливість відповіді, ваш бенчмарк не працює. Невеликий рівень людського аудиту запобігає принципу "сміття на вході — сміття на виході".
Крок 5: Створіть звіт
Агрегуйте оцінки JSON і поєднайте їх із уривками з сирих відповідей моделей. Зберіть усе в один файл, який зберігатиметься у вашому репозиторії. Коли ви оновлюєте версію моделі або змінюєте промпт, різниця (diff) у вашому pull request чітко покаже, як змінилася поведінка. Добре підтримуваний бенчмарк стає "живою" документацією. Він обґрунтовує, чому ваш робочий конвеєр використовує одну модель замість іншої, і дозволяє виявити приховані регресії до того, як вони досягнуть користувачів.
Структуруйте звіт так, щоб колега міг прочитати його, не запускаючи код. Включіть умову задачі, шаблон промпту, оцінки та репрезентативні цитати з ланцюжка міркувань кожної моделі. Прозорість має значення. Якщо DeepSeek R1 отримує високий бал, але галюцинує щодо обмеження, ви маєте побачити це в текстовому уривку, а не просто в середньому значенні.
Автоматизація конвеєра
Бенчмарк, який живе лише на вашому ноутбуці, буде забутий за тиждень. Перенесіть його в нічне завдання CI. Щоночі тестовий каркас запускається, робить запити до поточних версій моделей на Oxlo.ai, виконує завдання з пакування в контейнери, оцінює результати та фіксує їх у системі. Якщо оновлення моделі призведе до падіння точності на десять пунктів, ви дізнаєтеся про це раніше за користувачів.
Коли основний каркас стане стабільним, розширюйте його. Тестуйте варіанти з довгим контекстом, наповнюючи промпт нерелевантними документами, а потім розміщуючи питання про пакування в самому кінці. Великі вікна контексту марні, якщо логіка руйнується під впливом шуму. Перевірте, які моделі зберігають логічну дисципліну, коли сигнал похований під десятьма тисячами токенів відволікаючих факторів.
Головний висновок
Публічні таблиці лідерів вимірюють загальні знання. Ваш додаток вимірює щось вужче і складніше. Простий, повторюваний тестовий каркас, який змушує моделі міркувати через оптимізацію з обмеженнями, оцінює їх за послідовними критеріями та версіонує результати в git, дасть вам більше практичної інформації, ніж будь-який агрегований бал. Побудуйте бенчмарк, який відповідає вашій задачі, запустіть його на архітектурах, які мають для вас значення, і дозвольте результатам диктувати ваш вибір для продакшну.
Джерело: DeepSeek R1 Model Architecture and Benchmarks
Спільнота: GyaanSetu AI on Telegram
