将llama70B原始模型转换成GGUF格式

2024 年 5 月 30 日 星期四(已编辑)
359
摘要
本文介绍了在国内网络环境下从 Huggingface 下载、安装并运行 llama3-70B 变种模型的详细步骤。 1. **模型下载**:从 Huggingface 下载约130G大小的llama3-70B模型,可使用代理加速下载。 2. **安装llama.cpp**:从Github下载并安装llama.cpp。 3. **转换模型格式**:在llama.cpp目录中将模型转换为ggml格式,生成约130G的`.gguf`文件。 4. **模型量化**:通过量化减少模型大小,选择Q4_K_M方案,量化后模型减少到约40G。确保在llama.cpp目录中编译并执行quantize文件,量化后可以使用显存为48G的设备运行。 5. **运行推理**:可以使用llama.cpp或更适合gguf的ollama进行推理,具体代码见官方GitHub。 最后总结了步骤并邀请读者在评论区讨论问题。
这篇文章上次修改于 2024 年 6 月 4 日 星期二,可能部分内容已经不适用,如有疑问可询问作者。

1、下载

先从huggingface下载模型,可以下载原始模型,或者其他变种,我这边下载一个llama3-70B变种,总体大小130G左右。

huggingface-cli download cognitivecomputations/dolphin-2.9.1-llama-3-70b --cache-dir ./model

如果是国内网络可以用 huggingface代理https://hf-mirror.com/代理一下。

2、安装llama.cpp

从github下载并且安装:https://github.com/ggerganov/llama.cpp

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make

安装完成

3、转换模型到 ggml 格式

保持在llama.cpp目录

python convert.py  huggingface模型目录 \
--outfile moxing.gguf \
--outtype f16 --vocab-type bpe
#例子
python convert.py  ./model/models--cognitivecomputations--dolphin-2.9.1-llama-3-70b/snapshots/3f2d2fae186870be37ac83af1030d00a17766929 \
--outfile ./GGUF/dolphin-2.9.1-llama-3-70b-f16.gguf \
--outtype f16 --vocab-type bpe

时间会有点长,执行完了会得到 dolphin-2.9.1-llama-3-70b-f16.gguf 文件,大小没变还是130G,其实现在就可以运行了不过得140G以上显存,一般GPU运行不起来,我们将文件量化一下(减少体积,质量会下降一奈奈)

4、对GGUF模型进行量化

我先列一下质量

  • q2_k:特定张量 (Tensor) 采用较高的精度设置,而其他的则保持基础级别。
  • q3_k_l、q3_k_m、q3_k_s:这些变体在不同张量上使用不同级别的精度,从而达到性能和效率的平衡。
  • q4_0:这是最初的量化方案,使用 4 位精度。
  • q4_1和q4_k_m、q4_k_s:这些提供了不同程度的准确性和推理速度,适合需要平衡资源使用的场景。
  • q5_0、q5_1、q5_k_m、q5_k_s:这些版本在保证更高准确度的同时,会使用更多的资源并且推理速度较慢。
  • q6_k和q8_0:这些提供了最高的精度,但是因为高资源消耗和慢速度,可能不适合所有用户。

我们采用Q4_K_M方案。

还是保持在llama.cpp目录,make 编译完后有一个 quantize 可执行文件,如果没有就make编译一下,给执行权限

./quantize ./GGUF/dolphin-2.9.1-llama-3-70b-f16.gguf ./GGUF/dolphin-2.9.1-llama-3-70b-Q4_K_M.gguf Q4_K_M

量化完后文件大小40G左右,现在就可以用显存为48G的运行了,成本降低一半。

5、运行推理

可以使用 llama.cpp 推理,还可以使用ollama执行推理,对gguf更友好,具体代码可以去官方github: https://github.com/ollama/ollama

总结

至此已经完成第一篇,如果大家遇到问题可以在评论区讨论。

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...