GGUF: различия между версиями
In.wiki (комментарии | вклад) |
In.wiki (комментарии | вклад) |
||
Строка 1: | Строка 1: | ||
− | '''GGUF''' — двоичный формат файла, предназначенный для хранения переносимых моделей машинного обучения, предназначенных для использования в библиотеке [[GGML (библиотека машинного обучения)|GGML]] и совместимых с ней. Является обобщением предшествующих форматов GGML, GGMF, GGJT, заменяя их. | + | '''GGUF''' — двоичный формат файла, предназначенный для хранения переносимых [[Модель машинного обучения|моделей машинного обучения]], предназначенных для использования в библиотеке [[GGML (библиотека машинного обучения)|GGML]] и совместимых с ней. Является обобщением предшествующих форматов GGML, GGMF, GGJT, заменяя их. |
В настоящее время существуют следующие форматы файлов GGML для [[LLM]]: | В настоящее время существуют следующие форматы файлов GGML для [[LLM]]: | ||
* GGML (без версионирования): базовый формат без версионирования и выравнивания. | * GGML (без версионирования): базовый формат без версионирования и выравнивания. | ||
− | * GGMF (с версионированием): то же, что и GGML, но с версионированием. Существует только одна версия. | + | * GGMF (с версионированием): то же, что и GGML, но с версионированием. Существует только одна версия. |
− | * GGJT: выравнивает тензоры для использования с | + | * GGJT: [[Выравнивание данных|выравнивает]] [[Тензор (машинное обучение)|тензоры]] для использования с mmap. Версии v1, v2 и v3 идентичны, но последние используют другую схему квантования, несовместимую с предыдущими версиями. |
GGML в основном используется в примерах в `[[GGML (библиотека машинного обучения)|ggml]]`, тогда как GGJT используется в моделях `[[llama.cpp]]`. | GGML в основном используется в примерах в `[[GGML (библиотека машинного обучения)|ggml]]`, тогда как GGJT используется в моделях `[[llama.cpp]]`. | ||
== Внутреннее устройство == | == Внутреннее устройство == | ||
+ | GGUF — это формат, основанный на существующем GGJT, но вносящий несколько изменений для большей расширяемости и удобства использования. | ||
+ | |||
+ | Важные особенности реализации: | ||
+ | |||
+ | * Развертывание в виде одного файла: модели легко распространяются и загружаются, не требуя дополнительных внешних файлов. | ||
+ | * Расширяемость: новые функции могут быть добавлены к исполнителям на основе GGML/новая информация может быть добавлена в модели GGUF без нарушения совместимости с существующими моделями. | ||
+ | * Совместимость с [[mmap]]: модели можно загружать с помощью mmap, что радикально ускоряет их использования. | ||
+ | * Простота использования: модели можно легко загружать и сохранять, используя небольшой объём кода, без необходимости использования внешних библиотек, независимо от используемого языка. | ||
+ | * Полная информация: вся информация, необходимая для загрузки модели, содержится в файле модели, и пользователю не требуется предоставлять дополнительную информацию. | ||
+ | |||
+ | Ключевым отличием GGJT от GGUF является использование структуры «[[ключ-значение]]» для [[Гиперпараметры|гиперпараметров]] (теперь называемой [[Метаданные|метаданными]]), а не списка нетипизированных значений. Это позволяет добавлять новые метаданные без нарушения совместимости с существующими моделями и аннотировать модель дополнительной информацией, которая может быть полезна для вывода или идентификации модели. | ||
== Сравнение с другими форматами файлов машинного обучения == | == Сравнение с другими форматами файлов машинного обучения == |
Версия от 00:41, 22 июля 2025
GGUF — двоичный формат файла, предназначенный для хранения переносимых моделей машинного обучения, предназначенных для использования в библиотеке GGML и совместимых с ней. Является обобщением предшествующих форматов GGML, GGMF, GGJT, заменяя их.
В настоящее время существуют следующие форматы файлов GGML для LLM:
- GGML (без версионирования): базовый формат без версионирования и выравнивания.
- GGMF (с версионированием): то же, что и GGML, но с версионированием. Существует только одна версия.
- GGJT: выравнивает тензоры для использования с mmap. Версии v1, v2 и v3 идентичны, но последние используют другую схему квантования, несовместимую с предыдущими версиями.
GGML в основном используется в примерах в `ggml`, тогда как GGJT используется в моделях `llama.cpp`.
Внутреннее устройство
GGUF — это формат, основанный на существующем GGJT, но вносящий несколько изменений для большей расширяемости и удобства использования.
Важные особенности реализации:
- Развертывание в виде одного файла: модели легко распространяются и загружаются, не требуя дополнительных внешних файлов.
- Расширяемость: новые функции могут быть добавлены к исполнителям на основе GGML/новая информация может быть добавлена в модели GGUF без нарушения совместимости с существующими моделями.
- Совместимость с mmap: модели можно загружать с помощью mmap, что радикально ускоряет их использования.
- Простота использования: модели можно легко загружать и сохранять, используя небольшой объём кода, без необходимости использования внешних библиотек, независимо от используемого языка.
- Полная информация: вся информация, необходимая для загрузки модели, содержится в файле модели, и пользователю не требуется предоставлять дополнительную информацию.
Ключевым отличием GGJT от GGUF является использование структуры «ключ-значение» для гиперпараметров (теперь называемой метаданными), а не списка нетипизированных значений. Это позволяет добавлять новые метаданные без нарушения совместимости с существующими моделями и аннотировать модель дополнительной информацией, которая может быть полезна для вывода или идентификации модели.