GGUF: различия между версиями
In.wiki (комментарии | вклад) |
In.wiki (комментарии | вклад) |
||
Строка 22: | Строка 22: | ||
Ключевым отличием GGJT от GGUF является использование структуры «[[ключ-значение]]» для [[Гиперпараметры|гиперпараметров]] (теперь называемой [[Метаданные|метаданными]]), а не списка [[Нетипизированные значения|нетипизированных значений]]. Это позволяет добавлять новые метаданные без нарушения совместимости с существующими моделями и аннотировать модель дополнительной информацией, которая может быть полезна для вывода или идентификации модели. | Ключевым отличием GGJT от GGUF является использование структуры «[[ключ-значение]]» для [[Гиперпараметры|гиперпараметров]] (теперь называемой [[Метаданные|метаданными]]), а не списка [[Нетипизированные значения|нетипизированных значений]]. Это позволяет добавлять новые метаданные без нарушения совместимости с существующими моделями и аннотировать модель дополнительной информацией, которая может быть полезна для вывода или идентификации модели. | ||
+ | |||
+ | === Соглашение об именовании моделей === | ||
+ | GGUF следует соглашению об именовании `<BaseName><SizeLabel><FineTune><Version><Encoding><Type><Shard>.gguf`, где каждый компонент разделяется символом `-`, если он присутствует. | ||
+ | |||
+ | В конечном счёте, это сделано для того, чтобы упростить для пользователей быстрый доступ к наиболее важным деталям модели. | ||
+ | |||
+ | В связи с разнообразием имён существующих файлов gguf, он не предназначен для идеального анализа в полевых условиях. | ||
+ | |||
+ | Компоненты: | ||
+ | |||
+ | # BaseName: Описательное имя базового типа или архитектуры модели. Его можно получить из метаданных gguf general.basename, заменив тире пробелами. | ||
+ | # SizeLabel: Весовой класс параметра<ref>Полезно для понимания сравнительных таблиц с разными моделями.</ref>, представленный как <expertCount>x<count><scale-prefix>. Его можно получить из метаданных gguf general.size_label, если они доступны, или рассчитать, если они отсутствуют. Поддерживается округлённая десятичная точка в счётчике с однобуквенным префиксом масштаба для упрощения возведения в степень с плавающей запятой, как показано ниже: Q: Квадриллион параметров. T: Триллион параметров. B: Миллиард параметров. M: Миллион параметров. K: Тысяча параметров. При необходимости можно добавить дополнительные <attributes><count><scale-prefix> для указания других интересующих вас атрибутов. | ||
+ | # FineTune: Описательное имя для цели тонкой настройки модели (например, Chat, Instruct и т. д.). - Его можно получить из метаданных gguf general.finetune, заменив тире пробелами. | ||
+ | # Версия: (Необязательно) Обозначает номер версии модели в формате v<Major>.<Minor> Если у модели отсутствует номер версии, предполагается v1.0 (первый публичный выпуск). Эту информацию можно получить из метаданных gguf general.version | ||
+ | # Кодировка: Указывает [[Схема кодирования весов нейронной сети|схему кодирования весов,]] примененную к модели. Содержание, сочетание типов и расположение определяются пользовательским кодом и могут меняться в зависимости от потребностей проекта. | ||
+ | # Тип: Указывает тип файла gguf и его назначение. Если параметр отсутствует, то по умолчанию это типичный файл тензорной модели gguf. LoRA`: Файл GGUF является адаптером [[LoRA (нейронные сети)|LoRA]]. vocab: Файл GGUF, содержащий только данные словаря и метаданные. | ||
+ | # Шард: (Необязательно) Указывает и обозначает, что модель разделена на несколько [[Шард|шардов]], в формате <ShardNum>-of-<ShardTotal>. ShardNum: Позиция шарда в этой модели. Должна состоять из 5 цифр, дополненных нулями. Номер шарда всегда начинается с 00001 (например, первый шард всегда начинается с 00001-of-XXXXX, а не с 00000-of-XXXXX). ShardTotal: Общее количество сегментов в этой модели. Должно состоять из 5 цифр, дополненных нулями. | ||
== Сравнение с другими форматами файлов машинного обучения == | == Сравнение с другими форматами файлов машинного обучения == |
Версия от 01:31, 23 июля 2025
GGUF — двоичный формат файла, предназначенный для хранения переносимых моделей машинного обучения, предназначенных для использования в библиотеке GGML и совместимых с ней. Является обобщением предшествующих форматов GGML, GGMF, GGJT, заменяя их.
В настоящее время существуют следующие форматы файлов GGML для LLM:
- GGML (без версионирования): базовый формат без версионирования и выравнивания.
- GGMF (с версионированием): то же, что и GGML, но с версионированием. Существует только одна версия.
- GGJT выравнивает тензоры для использования с mmap. Версии v1, v2 и v3 идентичны, но последние используют другую схему квантования, несовместимую с предыдущими версиями.
- GGUF - последняя версия формата.
GGML в основном используется в примерах в `ggml`, тогда как GGJT используется в моделях `llama.cpp`.
Внутреннее устройство
GGUF — это формат, основанный на существующем GGJT, но вносящий несколько изменений для большей расширяемости и удобства использования.
Важные особенности реализации:
- Развертывание в виде одного файла: модели легко распространяются и загружаются, не требуя дополнительных внешних файлов.
- Расширяемость: новые функции могут быть добавлены к исполнителям на основе GGML/новая информация может быть добавлена в модели GGUF без нарушения совместимости с существующими моделями.
- Совместимость с mmap: модели можно загружать с помощью mmap, что радикально ускоряет их использования.
- Простота использования: модели можно легко загружать и сохранять, используя небольшой объём кода, без необходимости использования внешних библиотек, независимо от используемого языка.
- Полная информация: вся информация, необходимая для загрузки модели, содержится в файле модели, и пользователю не требуется предоставлять дополнительную информацию.
Ключевым отличием GGJT от GGUF является использование структуры «ключ-значение» для гиперпараметров (теперь называемой метаданными), а не списка нетипизированных значений. Это позволяет добавлять новые метаданные без нарушения совместимости с существующими моделями и аннотировать модель дополнительной информацией, которая может быть полезна для вывода или идентификации модели.
Соглашение об именовании моделей
GGUF следует соглашению об именовании `<BaseName><SizeLabel><FineTune><Version><Encoding><Type><Shard>.gguf`, где каждый компонент разделяется символом `-`, если он присутствует.
В конечном счёте, это сделано для того, чтобы упростить для пользователей быстрый доступ к наиболее важным деталям модели.
В связи с разнообразием имён существующих файлов gguf, он не предназначен для идеального анализа в полевых условиях.
Компоненты:
- BaseName: Описательное имя базового типа или архитектуры модели. Его можно получить из метаданных gguf general.basename, заменив тире пробелами.
- SizeLabel: Весовой класс параметра[1], представленный как <expertCount>x<count><scale-prefix>. Его можно получить из метаданных gguf general.size_label, если они доступны, или рассчитать, если они отсутствуют. Поддерживается округлённая десятичная точка в счётчике с однобуквенным префиксом масштаба для упрощения возведения в степень с плавающей запятой, как показано ниже: Q: Квадриллион параметров. T: Триллион параметров. B: Миллиард параметров. M: Миллион параметров. K: Тысяча параметров. При необходимости можно добавить дополнительные <attributes><count><scale-prefix> для указания других интересующих вас атрибутов.
- FineTune: Описательное имя для цели тонкой настройки модели (например, Chat, Instruct и т. д.). - Его можно получить из метаданных gguf general.finetune, заменив тире пробелами.
- Версия: (Необязательно) Обозначает номер версии модели в формате v<Major>.<Minor> Если у модели отсутствует номер версии, предполагается v1.0 (первый публичный выпуск). Эту информацию можно получить из метаданных gguf general.version
- Кодировка: Указывает схему кодирования весов, примененную к модели. Содержание, сочетание типов и расположение определяются пользовательским кодом и могут меняться в зависимости от потребностей проекта.
- Тип: Указывает тип файла gguf и его назначение. Если параметр отсутствует, то по умолчанию это типичный файл тензорной модели gguf. LoRA`: Файл GGUF является адаптером LoRA. vocab: Файл GGUF, содержащий только данные словаря и метаданные.
- Шард: (Необязательно) Указывает и обозначает, что модель разделена на несколько шардов, в формате <ShardNum>-of-<ShardTotal>. ShardNum: Позиция шарда в этой модели. Должна состоять из 5 цифр, дополненных нулями. Номер шарда всегда начинается с 00001 (например, первый шард всегда начинается с 00001-of-XXXXX, а не с 00000-of-XXXXX). ShardTotal: Общее количество сегментов в этой модели. Должно состоять из 5 цифр, дополненных нулями.
Сравнение с другими форматами файлов машинного обучения
Ссылки
Примечания
- ↑ Полезно для понимания сравнительных таблиц с разными моделями.