llama.cpp制作GGUF文件

llama.cpp的介绍

llama.cpp是一个开源项目,由Georgi Gerganov开发,旨在提供一个高性能的推理工具,专为在各种硬件平台上运行大型语言模型(LLMs)而设计。这个项目的重点在于优化推理过程中的性能问题,特别是针对CPU环境。以下是关于llama.cpp的几个关键特性:

  1. 高性能推理引擎:llama.cpp使用C语言编写的机器学习张量库ggml,这使得它能够高效地处理大规模的张量运算,从而加速模型推理。

  2. 模型量化工具:项目包含模型量化的功能,允许用户将原本的32位浮点数模型参数量化为16位浮点数,甚至是更低精度的8位或4位整数,从而减少模型大小并显著提高推理速度,这对于在资源受限的设备上运行大模型尤其重要。

  3. 跨平台兼容性:除了支持CPU推理外,llama.cpp还支持CUDA和OpenCL,这意味着它能够在包括桌面计算机、服务器乃至某些移动设备上的GPU上运行,提供了广泛的硬件兼容性。

  4. 易于部署:由于其优化的C++实现,llama.cpp使得在本地CPU上部署大型语言模型变得更加容易,即便是配置较低的设备也能运行这类模型,降低了部署大型AI应用的门槛。

  5. 代码可读性和教育价值:尽管功能强大,llama.cpp的代码结构相对直观且可读性强,适合开发者通过阅读源码来学习大型语言模型的推理技术和底层实现细节。项目文件数量不多,但每个都是精心设计的,便于理解和修改。

  6. 社区支持和活跃度:在GitHub上,该项目拥有大量的stars,表明了其在开发者社区中的高关注度和活跃度。这通常意味着更好的文档、示例以及持续的维护更新。

综上所述,llama.cpp是一个专为性能优化和广泛兼容性设计的工具,它不仅能够帮助研究人员和开发者在不同类型的硬件上高效运行大型语言模型,同时也是学习现代语言模型推理技术的一个优秀资源。

GGUF文件的制作

设备环境如下:Ubuntu20.04、NVIDIA-A800、CUDA Version: 12.0、python 3.10

markup 复制代码
#代码准备
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

#编译
make

# 获取官方模型权重并将其放入./models中
ls ./models
llama-2-7b tokenizer_checklist.chk tokenizer.model
# [可选] 对于使用 BPE 分词器的模型
ls ./models
<folder containing weights and tokenizer json> vocab.json
# [可选] 适用于 Mistral-7B 等 PyTorch.bin 模型
ls ./models
<folder containing weights and tokenizer json>

# 安装Python依赖项
python3 -m pip install -r requirements.txt

# 将模型转换为ggml FP16格式
python3 convert.py models/mymodel/

# [可选] 对于使用 BPE 分词器的模型
python convert.py models/mymodel/ --vocab-type bpe

# 将模型量化为 4 位(使用 Q4_K_M 方法)
./quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M

# 如果现在不支持旧版本,请将 gguf 文件类型更新为当前版本
./quantize ./models/mymodel/ggml-model-Q4_K_M.gguf ./models/mymodel/ggml-model-Q4_K_M-v2.gguf COPY

运行量化模型

markup 复制代码
# 开始推理 gguf 模型
./main -m ./models/mymodel/ggml-model-Q4_K_M.gguf -n 128

简单记录一下,感兴趣的可访问官方GitHub,未完待续。。。。

相关推荐
qq_426003962 小时前
多语言新增语种全量测试策略的测试范围
前端·javascript·python·自动化
SamChan902 小时前
Python+ReportLab自动生成PDF翻译质量审计报告:从数据到可视化的完整方案
开发语言·python·ai·pdf·wpf
whcyhhh2 小时前
头歌实践教学平台:数据科学与大数据技术导论(十八2)
大数据·开发语言·python
一晌小贪欢2 小时前
Python办公18:PDF 转 Word——利用 OCR 技术批量提取不可编辑的文档内容
开发语言·python·pdf·word·excel·数据可视化·python办公
wtGEOyh2 小时前
2026:劲豆如何用科技“种”出大豆芯?
python·科技
SamChan902 小时前
用Prometheus+Grafana搭建PDF翻译服务监控看板:指标采集与告警实战
python·ai·pdf·grafana·prometheus·机器翻译
circuitsosk2 小时前
多智能体协同在能源数据分析中的实践:分配-执行-校验闭环架构设计
python·数据分析·wpf·能源·并行计算·多智能体系统·agent协作
niuniudengdeng2 小时前
从小程序到 WebView:一个理发店管理系统的全栈架构设计与落地实践
java·python
心易行者3 小时前
html在线运行搭AI编程验证流水线:5步走完从生成到到上线全流程
人工智能·python·ai编程
一晌小贪欢3 小时前
Python办公17:暴力拆分——按页数或指定范围提取 PDF 核心页面
java·开发语言·python·pdf·excel·数据可视化·python办公