【AI实战】llama.cpp 量化部署 llama-33B

文章详细介绍了如何使用llama.cpp库对LLaMA-33B模型进行量化部署,包括环境配置、代码编译、模型转换和推理速度测试。量化后的模型内存占用减少,推断速度加快,提供了不同量化方法的比较和推荐配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

llama.cpp 量化介绍

量化模型是将模型中的高精度浮点数转化成低精度的int或其他类型得到的新的,花销更小,运行更快的模型。

Inference of LLaMA model in pure C/C++。

llama.cpp 运行期占用内存更小,推断速度也更快,同样的模型,7B 基础模型举例,32位浮点数的模型占用空间 27G,llama.cpp 量化后占用内存 9G 左右,推断速度为15字/秒。

对于使用 LLaMA 模型来说,无论从花销还是使用体验,量化这个步骤是不可或缺的。

环境配置

环境配置过程详情参考我的这篇文章;
【AI实战】从零开始搭建中文 LLaMA-33B 语言模型 Chinese-LLaMA-Alpaca-33B

llama-33B 模型下载、合并方法也是参考这篇文章:
【AI实战】从零开始搭建中文 LLaMA-33B 语言模型 Chinese-LLaMA-Alpaca-33B
得到的模型保存路径:“./Chinese-LLaMA-33B”

安装 llama.cpp

拉取 llama.cpp 仓库代码

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

编译llama.cpp

使用GPU执行【推荐】:

cd llama.cpp
make LLAMA_CUBLAS=1

使用CPU执行【安装简单】:

cd llama.cpp
make 

生成量化版本模型

模型准备

将合并模型(选择生成pth格式模型)中最后一步生成的tokenizer.model文件放入zh-models目录下,模型文件consolidated.*.pth和配置文件params.json放入zh-models/33B目录下。

执行:

mkdir zh-models/
cp /notebooks/Chinese-LLaMA-Alpaca/Chinese-LLaMA-33B-pth/tokenizer.model zh-models/
mkdir zh-models/33B
cp /notebooks/Chinese-LLaMA-Alpaca/Chinese-LLaMA-33B-pth/consolidated.0* zh-models/33B/
cp /notebooks/Chinese-LLaMA-Alpaca/Chinese-LLaMA-33B-pth/params.json zh-models/33B/

其中:路径 /notebooks/Chinese-LLaMA-Alpaca/Chinese-LLaMA-33B-pth/ 是 pth 格式模型路径。

结果如下:

llama.cpp/zh-models/
   - 33B/
     - consolidated.00.pth 
     - consolidated.01.pth 
     - consolidated.02.pth 
     - consolidated.03.pth 
     - ggml-model-f16.bin 
     - params.json
   - tokenizer.model

将上述.pth模型权重转换为ggml的FP16格式

执行:

python convert.py zh-models/33B/

生成文件路径为: zh-models/33B/ggml-model-f16.bin

在这里插入图片描述
在这里插入图片描述

对FP16模型进行4-bit量化

执行:

./quantize ./zh-models/33B/ggml-model-f16.bin ./zh-models/33B/ggml-model-q4_0.bin q4_0

生成量化模型文件路径为zh-models/33B/ggml-model-q4_0.bin

在这里插入图片描述
在这里插入图片描述

推理速度测试

加载并启动模型

./main -m zh-models/33B/ggml-model-q4_0.bin --color -f prompts/alpaca.txt -ins -c 2048 --temp 0.2 -n 256 --repeat_penalty 1.1

一些常用的参数:

-c 控制上下文的长度,值越大越能参考更长的对话历史(默认:512)
-ins 启动类ChatGPT对话交流的instruction运行模式
-f 指定prompt模板,alpaca模型请加载prompts/alpaca.txt
-n 控制回复生成的最大长度(默认:128)
-b 控制batch size(默认:8),可适当增加
-t 控制线程数量(默认:4),可适当增加
--repeat_penalty 控制生成回复中对重复文本的惩罚力度
--temp 温度系数,值越低回复的随机性越小,反之越大
--top_p, top_k 控制解码采样的相关参数
  • 测试
    在这里插入图片描述

量化方法选择及推理速度

相关结论:

  • 默认的量化方法为q4_0,虽然速度最快但损失也是最大的,其余方法各有利弊,按实际情况选择
  • 需要注意的是F16以及q8_0并不会因为增加线程数而提高太多速度
  • 线程数-t与物理核心数一致时速度最快,超过之后速度反而变慢(M1 Max上从8改到10之后耗时变为3倍)
  • 如果使用了Metal版本(即启用了苹果GPU解码),速度还会有进一步显著提升,表中标注为-ngl 1
  • 综合推荐(仅供参考):7B推荐Q5_1或Q5_K_S,13B推荐Q5_0或Q5_K_S
  • 机器资源够用且对速度要求不是那么苛刻的情况下可以使用q8_0或Q6_K,接近F16模型的效果

33B推理速度表格

在这里插入图片描述

在这里插入图片描述

参考

【AI实战】从零开始搭建中文 LLaMA-33B 语言模型 Chinese-LLaMA-Alpaca-33B
https://github.com/ymcui/Chinese-LLaMA-Alpaca
https://github.com/ymcui/Chinese-LLaMA-Alpaca/wiki/llama.cpp%E9%87%8F%E5%8C%96%E9%83%A8%E7%BD%B2
https://github.com/ggerganov/llama.cpp

<think>嗯,用户现在问的是在Mac本地部署DeepSeek需要多大的空间和配置。首先,我需要明确DeepSeek具体指的是什么。因为“DeepSeek”可能指不同的东西,比如深度求索公司的AI模型,或者是其他某个特定软件。根据之前的对话历史,用户之前问了关于CloudStudio安装Tomcat的问题,可能现在转向AI模型的部署。所以推测这里的DeepSeek应该是指深度求索公司开源的AI大模型,比如DeepSeek-R1或者DeepSeek-Math之类的模型。 接下来,用户关心的是在Mac本地部署需要的空间和配置。我需要先了解这些模型的大小和硬件要求。通常来说,大语言模型(LLM)的部署需要足够的存储空间来存放模型权重,以及足够的内存和显存来加载和运行模型。Mac的配置可能涉及M1/M2/M3芯片,是否带GPU(即Apple Silicon的GPU),以及系统内存的大小。 首先,存储空间方面,模型的大小取决于参数数量和精度。比如,7B参数的模型,如果使用FP16精度,大约需要14GB左右的存储。而更大的模型如33B可能需要66GB以上。但如果是量化版本,比如4-bit,那么7B可能只需要约4GB。所以需要确认用户要部署的是哪个版本的DeepSeek模型。 然后是运行时的内存和显存需求。如果使用CPU推理,模型需要加载到内存中。7B的模型如果用4-bit量化,可能需要约4-6GB内存。而如果使用GPU加速,比如Mac的M系列芯片的统一内存架构,显存和内存是共享的,所以需要足够的统一内存。比如M1/M2 Max有32GB或64GB的内存,可能可以运行较大的模型。 另外,用户可能不了解模型量化的概念,可能需要解释不同精度对空间和配置的影响。同时,推理速度也是一个因素,Mac的神经引擎(Neural Engine)是否加速推理,是否需要使用MLX这样的框架来优化性能。 可能还需要考虑软件依赖,比如是否使用llama.cpp、MLX库或者其他推理框架,这些工具的安装和配置对系统版本的要求,比如macOS的最低版本,是否需要安装Python环境,依赖库等。 用户可能的真实需求是希望在本地Mac上运行一个可用的DeepSeek模型,用于测试或开发,所以需要平衡模型的大小和性能。可能用户没有明确说明模型的具体用途,是对话、数学推理还是其他任务,这会影响到模型的选择和配置需求。 需要确保回答覆盖存储空间、内存/显存需求、CPU/GPU的使用情况、推荐的Mac配置型号,以及可能的优化方法(如量化)。同时,提醒用户注意不同模型版本的区别,以及实际部署时可能遇到的性能问题,比如推理速度较慢,需要适当调整参数。 最后,整理这些信息,分步骤或分点给出明确的建议,确保用户能够根据他们的Mac配置选择合适的模型版本,并顺利部署。</think>在 Mac 本地部署 **DeepSeek**(假设指深度求索公司的开源大模型,如 `DeepSeek-R1` 或 `DeepSeek-Math`)需重点关注 **模型大小** 和 **硬件配置**,具体如下: --- ### **一、存储空间需求** DeepSeek 模型大小取决于参数规模和量化精度: | 模型类型 | 参数规模 | 原始权重(FP16) | 量化版本(4-bit) | |----------------------|----------|------------------|-------------------| | **轻量级模型** | 1.6B-7B | 3GB-14GB | 1GB-4GB | | **中规模模型** | 13B-33B | 26GB-66GB | 7GB-16GB | | **大规模模型** | 70B+ | 140GB+ | 35GB+ | **建议**: - 若使用 **MacBook Air/Pro 基础款**(存储 ≤512GB),推荐选择 **7B 4-bit量化版**(约4GB)。 - 若需更高精度,需预留 **15GB+ 存储空间**(含模型、依赖库及缓存)。 --- ### **二、硬件配置要求** #### **1. 内存(RAM)** - **7B 模型(4-bit量化)**:至少 **8GB 内存**(推理时需加载模型到内存)。 - **33B 模型(4-bit量化)**:推荐 **32GB+ 内存**。 - **70B 模型**:需 **64GB+ 内存**(可能需交换分区辅助)。 #### **2. 芯片与 GPU** - **Apple Silicon(M1/M2/M3)**: - 优先选择 **M1 Pro/Max 或 M2/M3 系列**(16GB+ 统一内存)。 - 利用 **Metal GPU 加速**(需通过 `MLX` 或 `llama.cpp` 支持)。 - **Intel Mac**: - 依赖 CPU 推理,速度较慢,需至少 **16GB 内存**。 #### **3. 硬盘速度** - 建议使用 **SSD 硬盘**(HDD 加载模型可能极慢)。 --- ### **三、具体部署步骤** #### **1. 环境准备** - 安装 **Python 3.10+** 和包管理工具(`conda` 或 `pip`): ```bash brew install python ``` - 安装 **推理框架**(以 `llama.cpp` 为例): ```bash git clone https://github.com/ggerganov/llama.cpp cd llama.cpp && make -j4 ``` #### **2. 模型下载与转换** - 从 HuggingFace 下载 DeepSeek 模型(需申请权限),转换为 `gguf` 格式: ```bash python3 convert.py --input-dir /path/to/deepseek --output-type gguf ``` #### **3. 量化压缩(可选)** - 将模型压缩为 4-bit 以减少内存占用: ```bash ./quantize /path/to/model.gguf /path/to/model-Q4.gguf Q4_K ``` #### **4. 启动推理** - 使用 `llama.cpp` 运行模型: ```bash ./main -m /path/to/model-Q4.gguf -p "问题:Mac 部署需要什么配置?" ``` --- ### **四、配置推荐方案** | Mac 型号 | 推荐模型规模 | 使用场景 | |-----------------------|--------------|------------------------| | MacBook Air (8GB RAM) | 1.6B-7B 4-bit| 简单对话、代码生成 | | MacBook Pro (16GB) | 13B 4-bit | 复杂推理、数学计算 | | Mac Studio (64GB) | 33B-70B 8-bit| 高性能研究、多任务处理 | --- ### **五、注意事项** 1. **量化精度权衡**:4-bit 模型会损失部分精度,若需高准确率,选择 8-bit 或 FP16。 2. **散热问题**:长时间满负载运行可能触发 Mac 降频,建议外接散热器。 3. **兼容性**:部分框架(如 `MLX`)仅支持 Apple Silicon 芯片。 如需部署最新版模型,建议参考 [DeepSeek 官方文档](https://github.com/deepseek-ai) 获取详细配置要求。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

szZack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值