Изменения

Перейти к навигации Перейти к поиску
2757 байт добавлено ,  2 месяца назад
Строка 46: Строка 46:  
При необходимости файл дополняется байтами `0x00` до следующего значения, кратного general.alignment. Поля, включая массивы, записываются последовательно без [[Выравнивание структур данных|выравнивания]], если не указано иное. По умолчанию модели имеют [[little-endian]] порядок байтов. Они также могут иметь [[big-endian]] порядок байтов для использования на компьютерах с таким порядком байтов; в этом случае все значения (включая значения метаданных и тензоры) также будут иметь big-endian порядок байтов На момент написания статьи не существует способа определить, имеет ли модель порядок байтов от младшего к старшему; это может быть исправлено в будущих версиях. Если дополнительная информация не предоставлена, предполагается, что модель имеет порядок байтов  [[little-endian]].
 
При необходимости файл дополняется байтами `0x00` до следующего значения, кратного general.alignment. Поля, включая массивы, записываются последовательно без [[Выравнивание структур данных|выравнивания]], если не указано иное. По умолчанию модели имеют [[little-endian]] порядок байтов. Они также могут иметь [[big-endian]] порядок байтов для использования на компьютерах с таким порядком байтов; в этом случае все значения (включая значения метаданных и тензоры) также будут иметь big-endian порядок байтов На момент написания статьи не существует способа определить, имеет ли модель порядок байтов от младшего к старшему; это может быть исправлено в будущих версиях. Если дополнительная информация не предоставлена, предполагается, что модель имеет порядок байтов  [[little-endian]].
   −
После 4 байт сигнатуры файла - строки '''GGUF''', далее идут 4 байта версии файла, затем 8 байт ([[uint64]]) определяющие размер области [[key-value]] пар, содержащих [[метаданные]], затем 8 байт ([[uint64]]) определяющие размер области, в которой хранятся [[Тензор (машинное обучение)|тензоры]].
+
После 4 байт сигнатуры файла - строки '''GGUF''', далее идут 4 байта версии файла, затем 8 байт ([[uint64]]) определяющие размер области [[key-value]] пар, содержащих [[метаданные]], затем 8 байт ([[uint64]]) определяющие размер области, в которой хранятся [[Тензор (машинное обучение)|тензоры]].  
    
Следом за ними идут области хранения метаданных и тензоров как таковые, остаток файла после области, занятой тензорами может быть использован для хранения дополнительной информации.
 
Следом за ними идут области хранения метаданных и тензоров как таковые, остаток файла после области, занятой тензорами может быть использован для хранения дополнительной информации.
   −
[[Файл:GGUF.png|thumb|right|Структура файла GGUF версии 3. ]]
+
==== Метаданные ====
 +
Следующие пары «ключ-значение» стандартизированы. Этот список может расширяться в будущем по мере обнаружения новых вариантов использования. По возможности, имена совпадают с исходными определениями модели, чтобы упростить сопоставление между ними. Не все из них обязательны, но все рекомендуются.
 +
 
 +
В случае пропущенных пар читатель должен считать значение неизвестным и использовать либо значение по умолчанию, либо ошибку.
 +
 
 +
Сообщество может разрабатывать собственные пары «ключ-значение» для хранения дополнительных данных. Однако они должны быть помещены в пространство имён с соответствующим именем сообщества, чтобы избежать коллизий. Например, сообщество `rustformers` может использовать `rustformers.` в качестве префикса для всех своих ключей. Если какой-либо ключ сообщества широко используется, он может быть повышен до стандартизированного ключа.
 +
 
 +
По соглашению, большинство значений счётчика/длины и т. д. имеют тип `uint64`, если не указано иное.
 +
 
 +
Это необходимо для поддержки более крупных моделей в будущем. Некоторые модели могут использовать `uint32` для своих значений; читателям рекомендуется поддерживать оба варианта.
 +
 
 +
==== Обязательные: ====
 +
general.architecture: string - архитектура модели. Описывает [[Архитектура модели машинного обучения|архитектуру]], реализуемую этой моделью. Все символы [[ASCII]] в нижнем регистре, разрешены только символы [a-z0-9]+. Поддерживаемые значения (список будет расширен в будущих версиях):  [[llama]], mpt, gptneox, gptj, [[gpt2]], bloom, falcon, mamba, rwkv,[[Файл:GGUF.png|thumb|right|Структура файла GGUF версии 3. ]]
    
== Сравнение с другими форматами файлов машинного обучения ==
 
== Сравнение с другими форматами файлов машинного обучения ==
Строка 56: Строка 68:  
== Ссылки ==
 
== Ссылки ==
   −
* [https://github.com/ggerganov/ggml/blob/master/docs/gguf.md Файл документации формата GGUF на Github]
+
* [https://github.com/ggerganov/ggml/blob/master/docs/gguf.md Файл документации формата GGUF на Github] с подробным описанием структур данных.
    
== Примечания ==
 
== Примечания ==
 
[[Категория:Форматы файлов машинного обучения]]
 
[[Категория:Форматы файлов машинного обучения]]

Реклама:

Навигация