(llm_venv_llamacpp) xlab@xlab:/mnt/Model/MistralAI/llm_llamacpp$ python convert_hf_to_gguf.py /mnt/Model/MistralAI/Mistral-Large-Instruct-2407 --outfile ../llm_quantized/mistral_large2_instruct_f16.gguf --outtype f16 --no-lazy
INFO:hf-to-gguf:Loading model: Mistral-Large-Instruct-2407
INFO:gguf.gguf_writer:gguf: This GGUF file is for Little Endian only
INFO:hf-to-gguf:Exporting model...
INFO:hf-to-gguf:Set meta model
INFO:hf-to-gguf:Set model parameters
INFO:hf-to-gguf:gguf: context length = 131072
INFO:hf-to-gguf:gguf: embedding length = 12288
INFO:hf-to-gguf:gguf: feed forward length = 28672
INFO:hf-to-gguf:gguf: head count = 96
INFO:hf-to-gguf:gguf: key-value head count = 8
INFO:hf-to-gguf:gguf: rope theta = 1000000.0
INFO:hf-to-gguf:gguf: rms norm epsilon = 1e-05
INFO:hf-to-gguf:gguf: file type = 1
INFO:hf-to-gguf:Set model tokenizer
INFO:gguf.vocab:Setting special token type bos to 1
INFO:gguf.vocab:Setting special token type eos to 2
INFO:gguf.vocab:Setting special token type unk to 0
INFO:gguf.vocab:Setting add_bos_token to True
INFO:gguf.vocab:Setting add_eos_token to False
INFO:gguf.vocab:Setting chat_template to {%- if messages[0]['role'] == 'system' %}
{%- set system_message = messages[0]['content'] %}
{%- set loop_messages = messages[1:] %}
{%- else %}
{%- set loop_messages = messages %}
{%- endif %}
{{- bos_token }}
{%- for message in loop_messages %}
{%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}
{{- raise_exception('After the optional system message, conversation roles must alternate user/assistant/user/assistant/...') }}
{%- endif %}
{%- if message['role'] == 'user' %}
{%- if loop.last and system_message is defined %}
{{- '[INST] ' + system_message + '\n\n' + message['content'] + '[/INST]' }}
{%- else %}
{{- '[INST] ' + message['content'] + '[/INST]' }}
{%- endif %}
{%- elif message['role'] == 'assistant' %}
{{- ' ' + message['content'] + eos_token}}
{%- else %}
{{- raise_exception('Only user and assistant roles are supported, with the exception of an initial optional system message!') }}
{%- endif %}
{%- endfor %}
INFO:hf-to-gguf:Set model quantization version
INFO:gguf.gguf_writer:Writing the following files:
INFO:gguf.gguf_writer:../llm_quantized/mistral_large2_instruct_f16.gguf: n_tensors = 0, total_size = negligible - metadata only
Writing: 0.00byte [00:00, ?byte/s]
INFO:hf-to-gguf:Model successfully exported to ../llm_quantized/mistral_large2_instruct_f16.gguf
9条答案
按热度按时间fykwrbwg1#
@17Reset 你能试试
python install -r requirements/requirements-convert_hf_to_gguf.txt
吗?以下命令对我有效。另外要注意,你应该排除合并后的 safetensor 文件(即
huggingface-cli download mistralai/Mistral-Large-Instruct-2407 --exclude '*consolidated*'
),否则你的下载文件夹中会有两次该模型。fnx2tebb2#
操作系统:Ubuntu 24.04
Python版本:Python 3.12.3
我使用以下脚本构建了llamacpp,它可以对其他模型(如Qwen2)进行量化,没有任何错误。然而,在对mistra-large-instruction-2407进行量化时出现了上述问题。
我使用git clone下载了Mistra-Large-Instruct-2407,以下是模型目录,在这个目录中您是否发现了您提到的问题?
jbose2ul3#
我看到你使用了
consolidated-*-of-*.safetensors
,但是我使用了model-*-of-*.safetensors
。对于为什么他们有两套文件,这对我来说仍然不清楚。rpppsulh4#
非常感谢。也许这就是原因。我将测试模型*-*.safetensor。
n3h0vuf25#
我看到你使用了
consolidated-*-of-*.safetensors
,但是我使用了model-*-of-*.safetensors
。这仍然让我不清楚为什么他们有两套文件。@dranger003 我的猜测是,合并后的safetensors文件是为使用mistral_inference包进行推理而准备的(在README.md的Mistral推理部分有一个模式,限制下载仅限于这些文件),而model-* safetensors文件可能仅用于使用transformers库进行推理。
p8ekf7hl6#
我看到你使用了
consolidated-*-of-*.safetensors
,但是我使用了model-*-of-*.safetensors
。这仍然让我不明白为什么他们有两套文件。@dranger003 我的猜测是,consolidated-* safetensors文件是用于使用mistral_inference包进行推理的(在README.md的Mistral推理部分有一个模式,限制下载到这些文件),而model-* safetensors文件可能只用于使用transformers库进行推理。
llamacpp的gguf格式的量化是否与transformers绑定?
baubqpgj7#
那这和
我看到你使用了
model-*-of-*.safetensors
,但是我用了consolidated-*-of-*.safetensors
。对于为什么他们有两套文件仍然不清楚。@dranger003 我的猜测是,consolidated-* safetensors文件是为使用mistral_inference包进行推理而准备的(在README.md中的Mistral推理部分有一个模式,限制下载这些文件),而model-* safetensors文件可能只用于使用transformers库进行推理。
llamacpp的gguf格式的量化是否与transformers绑定?
@17Reset 不是量化,而是模型转换 - 脚本期望模型以transformers库使用的格式出现。
模型转换脚本
convert_hf_to_gguf.py
寻找名称中带有"model"前缀的safetensors文件:你只有以"consolidated"开头的文件,所以它没有找到任何文件。此外,它期望文件中的Tensor具有特定的名称,consolidated文件中的Tensor名称与model文件中的Tensor名称不同,所以我不确定脚本是否能够即使你重命名了文件也能将它们转换。
fv2wmkja8#
那这和
我看到你使用了
model-*-of-*.safetensors
,但是我用了consolidated-*-of-*.safetensors
。对于为什么他们有两套文件仍然不清楚。@dranger003 我的猜测是,consolidated-* safetensors文件是为使用mistral_inference包进行推理而准备的(在README.md中的Mistral推理部分有一个模式,限制下载这些文件),而model-* safetensors文件可能只用于使用transformers库进行推理。
llamacpp的gguf格式的量化是否与transformers绑定?
@17Reset 不是量化,而是模型转换 - 脚本期望模型以transformers库使用的格式出现。
模型转换脚本
convert_hf_to_gguf.py
寻找名称中带有"model"前缀的safetensors文件:你只有以"consolidated"开头的文件,所以它没有找到任何文件。此外,它期望文件中的Tensor具有特定的名称,consolidated文件中的Tensor名称与model文件中的Tensor名称不同,所以我不确定脚本是否能够即使你重命名了文件也能将它们转换。
我明白了。非常感谢。
628mspwn9#
值得注意的是,合并后的文件与
convert_hf_to_gguf.py
一起为较小的木星模型工作,我忘了那是哪个版本了。我希望他们能更清楚地说明它们是什么。