Методология последовательного сравнительного анализа локальных и облачных языковых моделей

Разработчик на r/LocalLLaMA подробно описал методологию получения согласованных результатов бенчмарков при сравнении локальных LLM с облачными API, решая распространённую проблему некорректных сравнений из-за разной задержки, методов оценки и подходов.
Основная проблема бенчмаркинга
Наивные сравнения, которые отправляют запросы и локальным, и облачным моделям, измеряют разные вещи. Облачные API включают очереди, балансировку нагрузки и маршрутизацию. Локальные модели включают прогрев, пакетную обработку и конкуренцию за GPU. Реализованное решение — использовать только последовательные запросы. Хотя это медленнее — бенчмарк из 60 вызовов занимает ~3 минуты вместо 45 секунд — это гарантирует, что каждое измерение чистое, изолируя время вывода от времени ожидания в очереди.
Настройка измерений
Настройка использует ZenMux в качестве единой конечной точки, предоставляя один базовый URL для четырёх моделей: GPT-5.4, Claude Sonnet 4.6, Gemini 3.1 Pro и локальной квантованной Llama 4. Подход работает с любой конечной точкой, совместимой с OpenAI, например:
- сервер llama.cpp:
curl http://localhost:8080/v1/chat/completions ... - vLLM:
curl http://localhost:8000/v1/chat/completions ... - Ollama:
curl http://localhost:11434/v1/chat/completions ...
Ключевой момент — использование одного и того же клиентского кода, настроек таймаута и логики повторных попыток для всего.
Как работает измерение
Система структурирована в пять модулей: YAML Config → BenchRunner → AIClient → Analyzer → Reporter.
Конфигурация YAML определяет задачи и модели. Пример:
suite: coding-benchmark
models:
- gpt-5.4
- claude-sonnet-4.6
- gemini-3.1-pro
- llama-4
runs_per_model: 3
tasks:
- name: fizzbuzz
prompt: "Write a Python function that prints FizzBuzz for numbers 1-100"
- name: refactor-suggestion
prompt: "Given this code, suggest improvements:\n\ndef calc(x):\n if x == 0: return 0\n if x == 1: return 1\n return calc(x-1) + calc(x-2)"BenchRunner берёт декартово произведение задач × моделей × запусков и вызывает API последовательно, записывая задержку, токены промпта и токены завершения.
Часть с оценкой
Оценка качества основана на правилах, а не на LLM-судье, чтобы избежать предвзятости в пользу самих себя и обеспечить воспроизводимость. Функция _quality_score использует три сигнала:
- Длина ответа: 50–3000 символов даёт 4.0 балла, короче — 1.0, длиннее — 3.0.
- Форматирование: Наличие маркированных списков добавляет до 3.0 баллов.
- Наличие кода: Обнаружение блоков кода или определений функций добавляет 2.0 балла.
Максимальный балл — 9.0. Это надёжно отделяет «хороший структурированный ответ» от «мусора/пустого/галлюцинаций» для относительного ранжирования. Для задержки также рассчитывается 95-й процентиль времени ответа (P95).
📖 Read the full source: r/LocalLLaMA
👀 Смотрите также

Руководство: Развертывание OpenClaw с llama.cpp на мини-ПК GEEKOM IT15
Техническое руководство подробно описывает переход OpenClaw с Ollama на llama.cpp для запуска локальной модели Qwen3-8B с ускорением на GPU Intel Arc, охватывая изменения конфигурации, ручное управление сервером и устранение типичных проблем.

VPS vs выделенная машина: где запускать OpenClaw

Структурированный рабочий процесс ИИ с поэтапными командами для сокращения переделок
Разработчик делится программируемым рабочим процессом с использованием конкретных команд, таких как /pwf-brainstorm и /pwf-work-plan, для решения распространённых проблем при работе с ИИ в программировании: потеря контекста, нарушение стандартов и смешение планирования с выполнением. Подход включает обязательное обновление документации и многоуровневую структуру проекта.

Qwen3.5-397B MoE работает на 14 ГБ ОЗУ с помощью постраничной загрузки экспертов на M1 Ultra
Движок Paged MoE держит в памяти только 20 экспертов, а остальные подгружает с SSD, запуская модель 397B размером 209GB на Mac Studio с 64GB памяти, достигая 1,59 ток/с и пикового использования RAM 14GB. Включает бенчмарки меньших моделей.