Перейти к содержанию
Новое AiManual теперь в MAX Подписаться
Публикация AiManual

BTL-3 Compact: 27B Agent-модель в 8.39 ГБ — сжатие без потери функциональности

BTL-3 Compact от Bad Theory Labs: 27B agent-модель сжата до 8.39 ГБ через AVQ2. HumanEval 95.12%, BFCL v4 AST 88.5%, 43 ток/с на RTX PRO 6000. Запускается локал

Коротко

Что будет в материале

  1. 01

    Что такое BTL-3 Compact и почему это важно

  2. 02

    Техника сжатия AVQ2: как 27B параметров уместили в 8.39 ГБ

  3. 03

    Бенчмарки: на что способна BTL-3 Compact в цифрах

  4. 04

    Запуск на своем железе: производительность и требования

Bad Theory Labs выпустила BTL-3 Compact - открытую agent-модель на 27 миллиардов параметров, которая упакована в один GGUF-файл весом 8.39 ГБ. Это меньше, чем занимает 8B-модель в fp16. Сжатие выполнено с помощью собственной техники AVQ2: affine INT4 квантизация с rank-32 коррекцией выхода. На выходе получаем 2.5 бита на параметр без критической деградации - тест на 100-шаговом tool-gate показывает сохранение 92.2% точности от полной версии.

Модель заточена под агентный кодинг и структурированное использование инструментов. HumanEval 95.12% pass@1, BFCL v4 AST 88.5%, точность множественных вызовов инструментов 95.5%, воздержание от вызова 91.2%. Контекстное окно 262K токенов, скорость генерации 43 ток/с на RTX PRO 6000. Запускается полностью локально через llama.cpp. Если вы искали способ развернуть мощную agent-модель на одной карте без облачных зависимостей - это прямой кандидат.

Что такое BTL-3 Compact и почему это важно

BTL-3 Compact - это сжатая версия agent-модели BTL-3 от Bad Theory Labs. Полная версия содержит 27 миллиардов параметров и требует соответствующего железа. Compact-версия решает главную проблему: помещает те же 27B параметров в 8.39 ГБ, что позволяет запускать модель на потребительских GPU и даже на CPU с достаточным объёмом RAM.

Ключевая ценность - радикальное сжатие без потери agent-функциональности. Обычная 8B-модель в fp16 занимает около 16 ГБ. Здесь 27B-модель весит вдвое меньше, сохраняя преимущества большего числа параметров: лучшее понимание сложных инструкций, точнее следование многошаговым сценариям, меньше галлюцинаций при вызове инструментов.

Технические характеристики:

  • Параметры: 27B, сжаты до 2.5 бит/параметр
  • Размер файла: 8.39 ГБ в формате GGUF
  • Контекст: 262 000 токенов
  • Скорость: 43 ток/с на RTX PRO 6000
  • Сохранение точности: 92.2% от полной версии на 100-шаговом tool-gate
  • Запуск: полностью локальный, llama.cpp

Модель ориентирована на агентный кодинг и структурированное использование инструментов. Она генерирует код, вызывает API, принимает решение о необходимости вызова функции и корректно воздерживается, когда вызов не требуется. Это не универсальный чат-бот - это инструмент для построения автономных AI-агентов.

Техника сжатия AVQ2: как 27B параметров уместили в 8.39 ГБ

Стандартная INT4 квантизация даёт 4 бита на параметр. Для 27B-модели это примерно 13.5 ГБ - уже неплохо, но всё ещё многовато для 12-гигабайтной видеокарты. Bad Theory Labs пошла дальше: AVQ2 использует affine INT4 с rank-32 коррекцией выхода, достигая 2.5 бит на параметр и финального размера 8.39 ГБ.

Affine-преобразование добавляет параметры масштаба и сдвига для каждой группы весов. Это позволяет точнее подогнать квантизованные значения под реальное распределение. Низкоранговая коррекция (rank-32) компенсирует ошибки, возникающие при экстремальном сжатии: вместо хранения полной матрицы ошибок сохраняется её низкоранговое приближение - две матрицы размера N×32 и 32×M. Объём дополнительных данных невелик, а точность восстанавливается существенно.

Affine INT4 и rank-32 коррекция: детали метода

INT4-квантизация отображает значения весов в 4-битное целое число с диапазоном [-8, 7]. Стандартный подход использует один масштабный коэффициент на блок весов - симметричную квантизацию. Affine INT4 добавляет смещение: quantized_value = round((float_value - zero_point) / scale). Параметры scale и zero_point подбираются отдельно для каждого блока, что даёт лучшее приближение для асимметричных распределений.

Rank-32 коррекция работает как постобработка. После квантизации и деквантизации вычисляется ошибка выхода слоя: разница между оригинальным float32-выходом и выходом после INT4-кодирования/декодирования. Эта ошибка аппроксимируется произведением двух матриц ранга 32. На инференсе коррекция применяется дополнительным проходом: выход квантизованного слоя плюс результат умножения входного вектора на низкоранговую поправку. Накладные расходы - около 32×hidden_size×2 операций на слой, что незначительно по сравнению с основным вычислением.

Формат GGUF выбран не случайно. Он поддерживает смешанную точность: веса хранятся в INT4, коррекционные матрицы - в float16, affine-параметры - в float32. llama.cpp эффективно обрабатывает такую структуру, распараллеливая основной проход и коррекцию.

Интересно сравнить этот подход с экстремальным квантованием, которое мы тестировали ранее. В статье про Ternary-Bonsai-27B 2-битная версия набрала лишь 7.9% в Terminal-Bench 2.0, а 1-битная ушла в бесконечную генерацию. AVQ2 с 2.5 битами на параметр и rank-32 коррекцией показывает принципиально другой уровень сохранения качества - 92.2% от полной версии.

Бенчмарки: на что способна BTL-3 Compact в цифрах

Разработчики предоставили результаты по ключевым бенчмаркам для agent-моделей. Цифры высокие, разбираем каждый показатель и его практический смысл.

Бенчмарк Результат Что измеряет
HumanEval 95.12% pass@1 Генерация корректного Python-кода по описанию задачи с первой попытки
BFCL v4 AST 88.5% Точность вызова функций: правильный выбор функции и корректное заполнение аргументов
Множественные вызовы инструментов 95.5% Последовательный вызов нескольких API в правильном порядке с передачей данных между вызовами
Воздержание от вызова 91.2% Способность не вызывать инструмент, когда запрос пользователя не требует вызова
100-шаговый tool-gate 92.2% от полной версии Сохранение точности на длинных цепочках из 100 последовательных инструментальных вызовов

HumanEval 95.12% pass@1 ставит BTL-3 Compact на уровень топовых моделей для генерации кода. Для контекста: GPT-4 показывал около 87% на этом бенчмарке, Claude 3.5 Sonnet - около 92%. Модель с 27B параметров, сжатая до 8.39 ГБ, обходит флагманские проприетарные модели полуторагодичной давности.

BFCL v4 AST 88.5% - сильный результат для открытой модели. BFCL (Berkeley Function Calling Leaderboard) проверяет способность модели правильно выбирать функцию из списка доступных и заполнять аргументы в соответствии со схемой. AST-метрика (Abstract Syntax Tree) оценивает структурную корректность вызова, игнорируя незначимые различия в форматировании.

Точность множественных вызовов 95.5% и воздержание от вызова 91.2% - критически важные метрики для продакшен-агентов. Первая гарантирует, что агент не сломается на цепочке из нескольких последовательных API-вызовов. Вторая предотвращает ложные срабатывания, когда модель пытается вызвать инструмент в ответ на обычный вопрос пользователя.

Агентный кодинг и работа с инструментами: практические сценарии

BTL-3 Compact спроектирована для трёх основных сценариев:

Генерация кода по описанию. Модель получает спецификацию на естественном языке и генерирует рабочий код. HumanEval 95.12% означает, что в 95 случаях из 100 первая версия кода проходит все тесты. Это уровень, достаточный для использования в IDE-ассистентах и средах автоматической генерации кода.

Последовательные вызовы API. Агент получает задачу «найди последние issues в репозитории, сгруппируй по автору и создай отчёт в Google Docs». Модель вызывает GitHub API для получения issues, обрабатывает ответ, группирует данные и вызывает Google Docs API для создания документа. Точность 95.5% на множественных вызовах подтверждает надёжность в таких цепочках.

Отказ от вызова при нерелевантном запросе. Пользователь пишет «привет, как дела?». Модель определяет, что инструменты не нужны, и отвечает текстом. 91.2% точности воздержания означает, что только в 8.8% случаев агент ошибочно попытается вызвать функцию. Это снижает расход токенов и предотвращает каскадные ошибки.

100-шаговый tool-gate - стресс-тест для agent-моделей. Агент выполняет 100 последовательных операций с инструментами, где каждый следующий вызов зависит от результата предыдущего. Полная версия BTL-3 проходит этот тест с определённой точностью, Compact-версия сохраняет 92.2% от неё. Для сравнения: многие модели после 10-15 шагов начинают повторять вызовы или теряют контекст задачи.

Запуск на своем железе: производительность и требования

BTL-3 Compact распространяется в формате GGUF - один файл, готовый к использованию с llama.cpp и совместимыми библиотеками. Загрузка через llama-cpp-python занимает три строки кода.

Производительность на RTX PRO 6000: 43 ток/с. Это комфортная скорость для интерактивной работы. Оценка для других GPU:

  • RTX 4090 (24 ГБ): модель полностью помещается в VRAM, ожидаемая скорость 50-60 ток/с за счёт более высокой тактовой частоты и пропускной способности памяти
  • RTX 3090 (24 ГБ): аналогично, 40-50 ток/с
  • RTX 4070 (12 ГБ): модель помещается с запасом, 30-40 ток/с
  • Apple M2 Ultra (76 ГБ unified): 15-20 ток/с через Metal
  • CPU-only (64 ГБ DDR5): 5-8 ток/с, зависит от числа каналов памяти

Контекстное окно 262K токенов открывает возможности для работы с крупными кодовыми базами. В такой контекст помещается около 200 000 слов или примерно 600-800 страниц технической документации. Агент может держать в памяти историю длинных сессий, полные спецификации API и логи выполнения без необходимости внешней RAG-системы.

Модель запускается полностью локально. Никаких API-ключей, никаких облачных сервисов, никаких сетевых запросов. Код и данные остаются на вашем оборудовании. Это критично для enterprise-сценариев с NDA и чувствительной кодовой базой.

Пример кода: быстрый старт с BTL-3 Compact

Установка и первый запуск:

pip install llama-cpp-python

# Загрузка модели (укажите путь к GGUF-файлу)
wget https://huggingface.co/bad-theory-labs/BTL-3-Compact-GGUF/resolve/main/btl-3-compact-avq2.gguf

Базовый инференс с вызовом инструментов:

from llama_cpp import Llama

# Загрузка модели
llm = Llama(
    model_path="./btl-3-compact-avq2.gguf",
    n_ctx=262144,  # полный контекст 262K
    n_gpu_layers=-1,  # все слои на GPU
    verbose=False
)

# Определение инструмента
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Получить текущую погоду для города",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "Название города"}
            },
            "required": ["city"]
        }
    }
}]

# Запрос с вызовом функции
response = llm.create_chat_completion(
    messages=[{"role": "user", "content": "Какая погода в Берлине?"}],
    tools=tools,
    tool_choice="auto"
)

# Обработка ответа
if response["choices"][0]["message"]["tool_calls"]:
    tool_call = response["choices"][0]["message"]["tool_calls"][0]
    print(f"Вызвана функция: {tool_call['function']['name']}")
    print(f"Аргументы: {tool_call['function']['arguments']}")
else:
    print(response["choices"][0]["message"]["content"])

Модель доступна на Hugging Face в репозитории Bad Theory Labs. Файл btl-3-compact-avq2.gguf - единственное, что нужно для запуска.

Сравнение с аналогами: почему 27B Compact лучше 8B в fp16

8B-модель в fp16 занимает около 16 ГБ. BTL-3 Compact с 27B параметров весит 8.39 ГБ - почти вдвое меньше. Сравнение не в пользу 8B по двум причинам: размер и потенциал качества.

Больше параметров - выше потолок способностей. 27B-модель даже после сжатия до 2.5 бит сохраняет более богатые внутренние представления, чем 8B в полной точности. Это проявляется в сложных задачах: многошаговое рассуждение, генерация нетривиального кода, обработка длинных инструкций с множеством условий. Эффект подтверждается на практике - в статье про Nanbeige 4.2-3B мы разбирали, как архитектурные ухищрения позволяют 3B-модели обходить 9B-аналоги, но прямой рост параметров остаётся самым надёжным способом поднять качество.

Сравнение с другими agent-моделями:

  • Toolformer (Meta, 6.7B): оригинальная agent-модель, требует около 13 ГБ в fp16. BTL-3 Compact вдвое меньше по размеру и существенно превосходит по бенчмаркам
  • Gorilla (Berkeley, 7B): специализируется на вызове API, около 14 ГБ. BTL-3 Compact показывает лучшую точность множественных вызовов и работает с более широким спектром инструментов
  • Qwen3.5-9B: сильная модель общего назначения с agent-способностями. Занимает около 18 ГБ в fp16. BTL-3 Compact меньше, быстрее на том же железе и специализированно заточена под агентные сценарии

Отдельно стоит отметить тренд на сжатие больших моделей. В тесте 1-битного квантирования IQ1M модель Hy3-GGUF показала скорость 20 ток/с после сжатия до 89 ГБ. BTL-3 Compact идёт по тому же пути, но с более консервативным и точным подходом: 2.5 бита вместо 1 бита, плюс rank-32 коррекция. Результат - 92.2% точности вместо обвала качества, характерного для экстремального квантования.

Ограничения и когда BTL-3 Compact может не подойти

BTL-3 Compact - специализированный инструмент, и у него есть границы применимости. Честно обозначаем сценарии, где стоит выбрать другую модель.

Задачи, требующие высочайшей точности. 92.2% от полной версии - отличный результат для сжатой модели, но 7.8% потери могут быть критичны в сценариях формальной верификации кода, генерации криптографических алгоритмов или медицинских расчётов. Если цена ошибки высока, используйте полную версию BTL-3 или модель с меньшим уровнем сжатия.

Простая генерация текста. BTL-3 Compact оптимизирована для агентного кодинга и вызова инструментов. Для обычных диалогов, суммаризации или креативного письма существуют более лёгкие альтернативы, которые займут меньше памяти и дадут сравнимый результат. Модель не универсальна - её сила в структурированных задачах с чёткими схемами вывода.

Оборудование без GPU. На CPU модель работает, но скорость 5-8 ток/с делает интерактивное использование некомфортным. Для агентных сценариев, где каждый шаг требует нескольких вызовов модели, задержка накапливается быстро. Если GPU нет, рассмотрите меньшие agent-модели - например, 7B-8B варианты, которые на CPU дадут 15-20 ток/с.

Задачи вне домена инструментов. BTL-3 Compact тренирована на сценариях с явным вызовом функций и генерацией кода. Для задач вроде анализа тональности, извлечения сущностей или вопросно-ответных систем без инструментов её преимущества перед универсальными моделями сопоставимого размера не очевидны. Выбирайте модель под задачу, а не наоборот.

BTL-3 Compact задаёт новый стандарт для компактных agent-моделей: 27B параметров в 8.39 ГБ с сохранением 92.2% точности. Это практичный инструмент для разработчиков, которым нужен мощный локальный агент без multi-GPU-ферм и облачных биллингов. Модель уже доступна для скачивания и тестирования - приведённый выше код позволяет запустить её за пять минут.

Подписаться на канал