Строка 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: выравнивает тензоры для использования с `mmap`, что требует выравнивания. Версии v1, v2 и v3 идентичны, но последние используют другую схему квантования, несовместимую с предыдущими версиями. | + | * 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 является использование структуры «[[ключ-значение]]» для [[Гиперпараметры|гиперпараметров]] (теперь называемой [[Метаданные|метаданными]]), а не списка нетипизированных значений. Это позволяет добавлять новые метаданные без нарушения совместимости с существующими моделями и аннотировать модель дополнительной информацией, которая может быть полезна для вывода или идентификации модели. |
| | | |
| == Сравнение с другими форматами файлов машинного обучения == | | == Сравнение с другими форматами файлов машинного обучения == |