﻿# Разделенный GGUF: как проверить все shards и безопасно собрать модель

Разделенный GGUF нужно принимать как комплект shards, а не как один файл с похожим названием.

Автор: Команда Retrivium
Обновлено: 2026-11-01
Канонический URL: https://retrivium.ai/ru/journal/llama-cpp-split-gguf-integrity/
Language: ru

Разделенный GGUF нужно принимать как комплект shards, а не как один файл с похожим названием. Для merge важны первая часть, metadata числа частей и согласованная схема именования. Проверьте комплект до операции и сохраните исходники. Наличие только первого shard не гарантирует загрузку всей модели. Такой разбор относится к целостности поставки и переносу файлов, отдельно от выбора квантования Q4, Q8 или другого формата весов.

## Найдите границу комплекта

[Официальный README gguf-split](https://raw.githubusercontent.com/ggml-org/llama.cpp/master/tools/gguf-split/README.md) описывает split и merge: операция объединения получает первую часть и обнаруживает остальные рядом. Следовательно, путь к первой части — точка входа, а не доказательство присутствия полного набора. Сохраните список имен, размеры и checksum каждого файла из доверенного manifest. Не объединяйте части разных revisions только потому, что их номера совпадают. Префикс имени помогает человеку, но идентичность checkpoint следует подтверждать происхождением и метаданными артефакта.

## Проверьте metadata и имена

[Исходный код инструмента](https://raw.githubusercontent.com/ggml-org/llama.cpp/master/tools/gguf-split/gguf-split.cpp) показывает проверки split count и ожидаемых имен. Операция может отказать при отсутствующей части или неверной структуре. Не переименовывайте файлы наугад, пытаясь заставить merge пройти: так можно скрыть ошибку поставки, не исправив содержимое. Сначала выясните, какой комплект ожидается и что реально скачано. Если используете собственное разбиение, сохраняйте версию инструмента и параметры операции, чтобы в дальнейшем отличать их от исходного опубликованного формата repository.

## Пример приемочного каталога

Создайте отдельный каталог с одним комплектом и manifest, содержащим имя модели, revision, перечень shards и их hashes. Проверяйте missing file до запуска объединения. Затем выполните предусмотренную сборкой операцию в новый выходной путь, сохранив оригиналы. Это схема безопасного теста, не результаты конкретной модели. Для собственного split используйте поддерживаемый dry-run, чтобы увидеть план без записи, и сравните его с реальным набором после выполнения. Не объявляйте количество частей известным до чтения соответствующего metadata.

## Подтвердите результат содержательно

Успешный merge должен завершиться без ошибок чтения и записи, после чего итоговый GGUF нужно открыть поддерживаемым runtime. Проверьте metadata, ожидаемые tensors и короткий функциональный запрос. Один размер файла не доказывает полноту, а совпадение общего размера разных файлов не устанавливает их равенство. Если запись оборвалась, не публикуйте частичный результат под именем готовой модели. Сохраняйте статус инструмента и финальный checksum только после завершения операции, чтобы downstream процесс не принял незаконченный файл за валидный артефакт.

## Когда объединение не требуется

Поддержка загрузки split GGUF зависит от используемого инструмента и версии, поэтому сначала проверьте его документацию. Не создавайте большую копию только по привычке, если проверенный runtime умеет работать с исходным комплектом. При переносе сохраняйте все части и manifest. Итоговая приемка должна ответить, какой набор нужен выбранному способу загрузки и как обнаруживается пропажа файла. Это не обещание переносимости GGUF любой архитектуры в любой backend: целостность комплекта и поддержка модели — разные проверки. Полезный артефакт содержит происхождение, подтвержденный состав и результат загрузки, позволяя следующему оператору восстановить поставку без ручного угадывания номеров shards или попыток исправить структурную ошибку сменой quantization параметра сервера.

## Связанные материалы

[GGUF для llama.cpp: как выбрать файл, а не только название модели](/ru/journal/llama-cpp-gguf-selection/); [NVMe для размещения моделей: где быстрый диск меняет результат](/ru/journal/nvme-for-model-serving/).
