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

IBM Granite Switch в llama.cpp: что даёт поддержка моделей и как запустить их локально

В llama.cpp появился пул-реквест #30676 с поддержкой моделей IBM Granite Switch. Разбираем, что подтверждено, как собрать сборку из ветки PR, какие форматы и кв

Коротко

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

  1. 01

    Что случилось: пул-реквест #30676 в llama.cpp

  2. 02

    Что такое IBM Granite Switch и какие задачи она закрывает

  3. 03

    Как запустить Granite Switch локально через llama.cpp

  4. 04

    Требования к железу и VRAM: как оценивать без официальных цифр

В репозитории ggml-org/llama.cpp открыт пул-реквест #30676 с заголовком «model: Granite switch decision». Автор изменений - gabe-l-hart. PR добавляет поддержку моделей семейства IBM Granite Switch и открывает путь к их локальному запуску через llama.cpp, без обращения к облачным API. Обсуждение пул-реквеста.

Коллекция Granite Switch опубликована IBM на Hugging Face под идентификатором ibm-granite/granite-switch. Формулировка «now you can decide with IBM, locally» из исходного материала задаёт рамку: речь идёт о локальном принятии решений. Это ориентир автора новости, а не официальное обещание IBM и не заявление редакции AI-Manual.

Оговорка сразу, и она важнее всего остального текста: это пул-реквест, а не стабильный релиз. Статус PR (открыт, в ревью, смержен, закрыт) на момент публикации не подтверждён. Размеры моделей, лицензия, контекстное окно, архитектура, требования к железу, доступные форматы и квантования в исходных материалах не раскрыты. Ниже только подтверждённые факты и практический маршрут для тех, кто готов проверить семейство на своём железе.

Что случилось: пул-реквест #30676 в llama.cpp

llama.cpp развивается через пул-реквесты в репозитории ggml-org/llama.cpp. Перед попаданием в основную ветку код проходит ревью: мейнтейнеры читают изменения, проверяют работу с новой архитектурой, могут запросить правки, попросить тесты или отклонить PR целиком. Пока PR не смержен, поддержка Granite Switch живёт только в ветке автора.

Почему это PR, а не релиз

Практическое следствие простое. Собрать llama.cpp с поддержкой нового семейства получится, если переключиться на ветку PR #30676 и собрать проект вручную. Установка через пакетные менеджеры, стандартная сборка из main и готовые релизные архивы такой поддержки не дают, пока изменения не окажутся в основной ветке. В исходной новости статус PR не указан, поэтому утверждать, что поддержка уже в main, нельзя.

Отдельно про риски. Ветка PR может обновляться, ломаться при синхронизации с main и содержать ошибки, которые ещё не отловили. Сборка из неё подходит для экспериментов на тестовой машине. Рабочий сервер на такой сборке держать не стоит: поведение кода изменится после мержа.

Что известно о Granite Switch на текущий момент

Подтверждённых фактов немного, и все они укладываются в короткий список.

  • Существует семейство моделей IBM Granite Switch, для которого в llama.cpp добавляют поддержку.
  • Пул-реквест #30676 с заголовком «model: Granite switch decision» открыт в репозитории ggml-org/llama.cpp.
  • Автор PR - gabe-l-hart.
  • Коллекция моделей выложена IBM на Hugging Face под именем ibm-granite/granite-switch.
  • Поддержка описана фразой «now you can decide with IBM, locally».

Чего в подтверждённых данных нет: числа параметров, лицензии, длины контекста, архитектурных деталей, списка доступных квантований и результатов тестов. Всё это придётся проверять по карточкам моделей и по коду PR, когда они появятся.

Что такое IBM Granite Switch и какие задачи она закрывает

Granite - открытое семейство моделей IBM, которое компания публикует на Hugging Face. Switch - отдельная коллекция внутри этого семейства, а не название конкретной модели. Заголовок пул-реквеста «model: Granite switch decision» указывает на сценарии принятия решений и маршрутизации, но точное назначение семейства в исходных материалах не раскрыто.

Дальше начинаются гипотезы на основе названия, и читать их нужно именно так. Слова switch и decision в названиях моделей обычно означают выбор одного варианта из нескольких: какой источник подтянуть в RAG, какой инструмент вызвать агенту, к какой категории отнести запрос. Подтверждённой спецификации за этой догадкой пока нет.

Где Granite Switch может пригодиться на практике

Локальные decision-модели закрывают четыре типовые задачи.

  • Маршрутизация в RAG-пайплайнах: определить, к какому индексу или источнику отправить запрос, прежде чем звать большую модель.
  • Выбор инструмента в агентных системах: решить, нужен ли вызов функции и какой именно, до генерации основного ответа.
  • Фильтрация и классификация: разметить поток входящих обращений и отсеять мусор, пока данные не улетели в чужое облако.
  • Принятие решений в цепочках обработки: выбрать ветку там, где полная генерация избыточна и дорога.

Для таких задач часто хватает компактных моделей: они быстрее и дешевле по памяти. Локальный запуск через llama.cpp даёт контроль над тем, куда уходят данные, и над задержкой: она не зависит от чужого API и его очереди. Конкретных цифр производительности для Granite Switch пока нет, поэтому обещать что-либо по скорости не будем.

Чем Granite Switch отличается от других Granite-моделей

Публичных деталей для сравнения Switch с другими Granite в исходных материалах нет: ни размеров, ни архитектуры, ни результатов тестов. Сопоставлять по памяти с предыдущими версиями нельзя, это будет догадка, а не факт.

Общая логика семейства известна: IBM развивает Granite как набор моделей под разные задачи, а не как один универсальный релиз. В линейке есть компактные варианты для edge-вычислений, о которых мы писали в разборе Granite 4.0 Nano. Switch выделен в отдельную коллекцию, и это указывает на отдельное назначение. Какое именно, станет понятнее после публикации карточек моделей и спецификаций.

Как запустить Granite Switch локально через llama.cpp

Маршрут для нового семейства в llama.cpp выглядит так: найти веса в коллекции на Hugging Face, проверить наличие готовых GGUF, при их отсутствии сконвертировать модель, собрать llama.cpp с поддержкой и запустить через llama-cli или llama-server. Ниже каждый шаг с оговорками: это общий алгоритм для нового семейства, а не подтверждённая инструкция именно для Granite Switch.

Где взять модель: Hugging Face и коллекция ibm-granite/granite-switch

Официальный источник весов - коллекция ibm-granite/granite-switch на Hugging Face. Оригинальные веса на платформе обычно публикуют в формате safetensors: это формат Hugging Face Transformers, и llama.cpp его напрямую не загружает. Для llama.cpp нужен GGUF.

Проверьте два варианта. Если в коллекции уже лежат файлы .gguf, их можно скачать и запустить без конвертации. Если GGUF нет, веса придётся конвертировать самостоятельно. Наличие готовых GGUF для Granite Switch в исходных материалах не подтверждено, так что смотреть нужно на месте. Ссылки на конкретные файлы не приводим: их существование мы подтвердить не можем.

Сборка llama.cpp с поддержкой Granite Switch

До мержа PR поддержку можно получить только из его ветки. Общий порядок такой: клонировать репозиторий ggml-org/llama.cpp, переключиться на ветку пул-реквеста #30676, собрать проект через CMake. После мержа шаг с веткой станет не нужен: поддержка окажется в main и попадёт в обычные релизные сборки.

Что учитывать. Ветка PR живёт отдельно от main: автор может её обновлять, ребейзить или забросить. Сборка из ветки ломается при конфликтах с основной веткой и не проходит тот же отбор, что релизы. Для домашнего эксперимента это терпимо, для продакшна - нет. Точные флаги сборки зависят от версии и окружения, поэтому сверяйтесь с инструкцией в самом репозитории.

Если вы уже запускаете локальные модели дома, полезно посмотреть разбор Quartermaster 1.7: там decision-модели llama.cpp подключаются через эндпоинт /v1/systemone с автообнаружением GGUF и расчётом VRAM. Механика пригодится, когда файлы Granite Switch появятся в открытом доступе.

Конвертация и квантование: что ожидать

Стандартный пайплайн llama.cpp состоит из двух шагов. Первый - конвертация: скрипт convert_hf_to_gguf.py переводит safetensors в GGUF. Второй - квантование: утилита llama-quantize сжимает модель в один из форматов, среди распространённых Q4_K_M, Q5_K_M, Q8_0 и F16.

Для Granite Switch эти шаги в исходных материалах не подтверждены. Нюансы возможны: скрипт конвертации поддерживает не все архитектуры, а поддержка в llama.cpp может касаться инференса и не покрывать квантование. Утверждать, что всё заработает из коробки, оснований нет. Первый прогон конвертации и станет проверкой: если скрипт распознаёт архитектуру, дальше вопрос техники.

Требования к железу и VRAM: как оценивать без официальных цифр

Точных размеров моделей Granite Switch нет, поэтому считаем через общую методику. Объём памяти зависит от двух вещей: числа параметров и выбранного квантования. Ориентиры для llama.cpp выглядят так: модель на 7B в Q4_K_M занимает примерно 4-5 ГБ VRAM, на 13B - около 8 ГБ, на 70B - от 40 ГБ. Это общие значения для формата, а не измерения Granite Switch.

К ним добавляется контекст: длина окна и KV-кэш съедают дополнительную память, и на длинных контекстах прибавка заметна. Когда появится карточка модели, считайте по числу параметров из неё, а не по чужим прикидкам.

CPU, GPU и гибридный режим

llama.cpp умеет считать на CPU, выгружать часть слоёв на GPU и работать в гибридном режиме. Для небольших decision-моделей CPU-режима может хватить: такие задачи редко требуют высокой скорости генерации. Плата за это - пропускная способность: на процессоре токены идут медленнее, и на длинных запросах задержка растёт.

Гибридный режим выручает, когда VRAM не хватает целиком: часть слоёв уходит на видеокарту, остальное считает процессор. Конкретные требования Granite Switch не раскрыты, поэтому подбор конфигурации остаётся экспериментом: берите заведомо компактное квантование и смотрите, влезает ли модель в память, затем двигайтесь вверх.

Как подобрать квантование под свою VRAM

Простое правило: сначала пробуйте Q4_K_M как баланс качества и размера. Если модель не влезает в VRAM, спускайтесь к Q3_K_M или Q2_K, понимая, что качество просядет. Если память есть с запасом, берите Q5_K_M или Q8_0. Для decision-задач деградация от агрессивного квантования может быть заметнее, чем при генерации текста: модель выбирает из близких вариантов, и потеря точности меняет ответ. Подтверждённых данных по Granite Switch нет, проверять придётся сравнением на своих запросах.

Пример подхода к слабому железу разбирали в материале про квант для агентного кодинга на 16 ГБ RAM: там видно, как схема квантования и распределение бит по тензорам решают, где модель вообще запускается.

Как Granite Switch соотносится с другими локальными моделями

Сравнивать Granite Switch с другими моделями по характеристикам нельзя: подтверждённых данных о качестве, скорости и размерах нет. Разговор возможен на уровне позиционирования. IBM развивает Granite как открытое семейство с фокусом на прикладные и корпоративные сценарии, включая принятие решений. В llama.cpp уже поддерживаются Llama, Mistral, Qwen, Gemma и другие семейства, и Granite Switch встаёт в этот же ряд. Утверждать, что он лучше или хуже привычных вариантов, нечем.

Когда имеет смысл смотреть в сторону Granite Switch

  • Нужна локальная модель для маршрутизации или классификации, и вы готовы экспериментировать.
  • Важна связка с экосистемой IBM: модели, инструменты и лицензионная политика компании.
  • Интересно протестировать новое семейство раньше остальных.

Во всех случаях это эксперимент. Готовых GGUF и подтверждённых тестов может не быть, поэтому заменой рабочей модели Granite Switch пока не назвать.

Когда лучше остаться на текущей модели

Если нужна стабильная поддержка в релизной сборке llama.cpp, готовые квантованные файлы и проверенные результаты тестов, момент неподходящий. Разумный шаг - дождаться мержа PR и появления GGUF в коллекции на Hugging Face. Тогда семейство можно будет сравнить с текущей моделью на своих задачах и уже потом решать, менять ли что-то в рабочем пайплайне.

Ограничения и риски текущего статуса

Статус PR накладывает ограничения, и перечислим их без смягчения.

  • Пул-реквест может быть изменён, отклонён или закрыт по любой причине.
  • Сборка из ветки PR нестабильна и может перестать собираться после обновлений.
  • Характеристики моделей и требования к железу не раскрыты.
  • Форматы и квантования для Granite Switch не подтверждены.
  • Бенчмарков нет: ни от IBM в исходной новости, ни от независимых авторов.

Для продакшна сборка из PR - плохая идея. Изменения не проходили ревью, не покрыты тестами и могут вести себя иначе после мержа.

Что остаётся неизвестным

Соберём белые пятна в одном месте, чтобы не строить планы на догадках: число параметров и размеры моделей, лицензия, длина контекстного окна, архитектура, список поддерживаемых квантований, наличие готовых GGUF, требования к VRAM и RAM, скорость работы. Часть вопросов прояснится после мержа PR и публикации карточек моделей. До этого любые точные цифры по Granite Switch взяты не из источников.

Похожая ситуация была с Qwen3.8-Flash-Next: пока нет официальной карточки и спецификации, вокруг модели появляются приписанные характеристики. Разница в том, что там речь шла о промежуточной модели, а здесь - о пул-реквесте в llama.cpp.

Как отслеживать статус PR и обновления

Следить стоит за двумя источниками. Первый - страница пул-реквеста #30676 в репозитории ggml-org/llama.cpp: смотрите на статус (open, merged, closed) и на комментарии ревьюеров. Второй - коллекция ibm-granite/granite-switch на Hugging Face: появление файлов .gguf в ней означает, что модель можно запускать без ручной конвертации. Исходное обсуждение полезно как точка входа, но статус изменений по нему не отследить. Сроков называть не будем: они зависят от мейнтейнеров и автора PR.

Стоит ли пробовать Granite Switch сейчас: практический вывод

Раскладка по профилям выглядит так.

  • Энтузиастам и разработчикам, которые любят копаться в пул-реквестах: можно собрать ветку, сконвертировать модель и посмотреть, как она ведёт себя на маршрутизации и классификации. Без ожиданий стабильности и без переноса результата на рабочие системы.
  • Тем, кому нужна модель для постоянной работы: спешить некуда. Ждите мержа PR, выхода релизной сборки и готовых GGUF, а до этого держите текущую модель.
  • Тем, кто следит за новостями: достаточно зафиксировать, что IBM Granite Switch появилась в поле зрения llama.cpp. Когда появятся спецификации и файлы, тему можно будет разбирать предметно.

Короткий вывод: поддержка Granite Switch в llama.cpp существует в виде пул-реквеста #30676 от gabe-l-hart, а не в виде релиза. Хотите проверить раньше всех - собирайте ветку PR и держите сборку в отдельном окружении. Нужна предсказуемость - дождитесь мержа и появления GGUF в коллекции ibm-granite/granite-switch.

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