Изменения

Перейти к навигации Перейти к поиску
54 байта добавлено ,  2 месяца назад
Строка 39: Строка 39:  
# Type: Указывает тип файла gguf и его назначение. Если параметр отсутствует, то по умолчанию это типичный файл тензорной модели gguf.  LoRA`: Файл GGUF является адаптером [[LoRA (нейронные сети)|LoRA]]. vocab: Файл GGUF, содержащий только данные словаря и метаданные.
 
# Type: Указывает тип файла gguf и его назначение. Если параметр отсутствует, то по умолчанию это типичный файл тензорной модели gguf.  LoRA`: Файл GGUF является адаптером [[LoRA (нейронные сети)|LoRA]]. vocab: Файл GGUF, содержащий только данные словаря и метаданные.
 
# Shard: (Необязательно) Указывает и обозначает, что модель разделена на несколько [[Шард|шардов]], в формате <ShardNum>-of-<ShardTotal>. ShardNum: Позиция шарда в этой модели. Должна состоять из 5 цифр, дополненных нулями.  Номер шарда всегда начинается с 00001 (например, первый шард всегда начинается с 00001-of-XXXXX, а не с 00000-of-XXXXX). ShardTotal: Общее количество сегментов в этой модели. Должно состоять из 5 цифр, дополненных нулями.
 
# Shard: (Необязательно) Указывает и обозначает, что модель разделена на несколько [[Шард|шардов]], в формате <ShardNum>-of-<ShardTotal>. ShardNum: Позиция шарда в этой модели. Должна состоять из 5 цифр, дополненных нулями.  Номер шарда всегда начинается с 00001 (например, первый шард всегда начинается с 00001-of-XXXXX, а не с 00000-of-XXXXX). ShardTotal: Общее количество сегментов в этой модели. Должно состоять из 5 цифр, дополненных нулями.
Как минимум, все файлы моделей должны иметь параметры BaseName, SizeLabel и Version, чтобы их можно было легко проверить на соответствие соглашению об именовании GGUF. Примером этой проблемы является то, что Encoding легко ошибочно принимается за FineTune, если Version не указана. Для проверки можно использовать регулярное выражение `^(?<BaseName>[A-Za-z0-9\s]*(?:(?:-(?:(?:[A-Za-z\s][A-Za-z0-9\s]*)|(?:[0-9\s]*)))*))-(?:(?<SizeLabel>(?:\d+x)?(?:\d+\.)?\d+[A-Za-z](?:-[A-Za-z]+(\d+\.)?\d+[A-Za-z]+)?)( ?:-(?<FineTune>[A-Za-z0-9\s-]+))?)?-(?:(?<Version>v\d+(?:\.\d+)*))(?:-(?<Encoding>(?!LoRA|vocab)[\w_]+))?(?:-(?<Type>LoRA|vocab))?(?:-(?<Shard>\d{5}-of-\d{5}))?\.gguf$` который проверит, что вы получили минимальные BaseName, SizeLabel и Version, представленные в правильном порядке.
+
Как минимум, все файлы моделей должны иметь параметры BaseName, SizeLabel и Version, чтобы их можно было легко проверить на соответствие соглашению об именовании GGUF. Примером этой проблемы является то, что Encoding легко ошибочно принимается за FineTune, если Version не указана. Для проверки можно использовать регулярное выражение `^(?<BaseName>[A-Za-z0-9\s]*(?:(?:-(?:(?:[A-Za-z\s][A-Za-z0-9\s]*)|(?:[0-9\s]*)))*))-(?:(?<SizeLabel>(?:\d+x)?(?:\d+\.)?\d+[A-Za-z](?:-[A-Za-z]+(\d+\.)?\d+[A-Za-z]+)?)( ?:-(?<FineTune>[A-Za-z0-9\s-]+))?)?-(?:(?<Version>v\d+(?:\.\d+)*))(?:-(?<Encoding>(?!LoRA|vocab)[\w_]+))?(?:-(?<Type>LoRA|vocab))?(?:-(?<Shard>\d{5}-of-\d{5}))?\.gguf$` который проверит, что вы получили, как минимум, BaseName, SizeLabel и Version, представленные в правильном порядке.
    
=== Структура файла ===
 
=== Структура файла ===
Строка 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]]) определяющие размер области, в которой хранятся [[Тензор (машинное обучение)|тензоры]].
    
Следом за ними идут области хранения метаданных и тензоров как таковые, остаток файла после области, занятой тензорами может быть использован для хранения дополнительной информации.
 
Следом за ними идут области хранения метаданных и тензоров как таковые, остаток файла после области, занятой тензорами может быть использован для хранения дополнительной информации.

Реклама:

Навигация