当前位置: 首页 > ds >正文

在mac m1基于llama.cpp运行deepseek

lama.cpp是一个高效的机器学习推理库,目标是在各种硬件上实现LLM推断,保持最小设置和最先进性能。llama.cpp支持1.5位、2位、3位、4位、5位、6位和8位整数量化,通过ARM NEON、Accelerate和Metal支持Apple芯片,使得在MAC M1处理器上运行Deepseek大模型成为可能。

1 下载llama.cpp

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

如果clone异常,直接下载release版本,链接如下,然后解压缩https://github.com/ggml-org/llama.cpp/archive/refs/tags/b5857.tar.gz

2 安装llama.cpp

创建环境

conda create -n llama.cpp python=3.12 

conda activate llama.cpp

安装依赖

pip install -r requirements.txt

编译

conda install cmake 

mkdir build

cd build

cmake .. -DLLAMA_METAL=ON

cmake --build . --config Release

-DLLAMA_METAL=ON启用Metal支持,利用mac的GPU加速

3 测试llama.cpp 

1) GGUF转化

提前下载hf格式的模型文件../DeepSeek-R1-Distill-Qwen-7B,将模型文件转化为GGUF模型文件。GGUF是一种用于GGML推断的文件格式。转化代码convert_hf_to_gguf.py在llama.cpp主目录。

cd .. # 切换到llama.cpp主目录

python convert_hf_to_gguf.py ../DeepSeek-R1-Distill-Qwen-7B 

转化后GGUF模型文件../DeepSeek-R1-Distill-Qwen-7B/DeepSeek-R1-Distill-Qwen-7B-F16.gguf

2) int4量化

刚编译好的量化程序llama-quantize在build/bin目录。

cd build 

./bin/llama-quantize ../../DeepSeek-R1-Distill-Qwen-7B/DeepSeek-R1-Distill-Qwen-7B-F16.gguf ../../DeepSeek-R1-Distill-Qwen-7B/model-q4_0.gguf Q4_0

量化后的gguf int4文件../../DeepSeek-R1-Distill-Qwen-7B/model-q4_0.gguf

3)测试量化

量化推理命令/llama-cli也在build/bin目录,运行示例如下。

./bin/llama-cli -m ../../DeepSeek-R1-Distill-Qwen-7B/model-q4_0.gguf -p "你好?新加坡首都在哪里" -n 128

reference

---

llama.cpp release

https://github.com/ggml-org/llama.cpp/releases

llama.cpp里面的Q8_0,Q6_K_M,Q4_K_M量化原理是什么?

https://www.zhihu.com/question/633365088

[LLM-Llama]在 MAC M1上体验Llama.cpp和通义千问Qwen 1.5-7B

https://juejin.cn/post/7371365854012293131

http://www.xdnf.cn/news/15219.html

相关文章:

  • 前端面试十一之TS
  • QPC框架中状态机的设计优势和特殊之处
  • 【Pandas】pandas DataFrame from_dict
  • 数据结构 顺序表(1)
  • iOS Widget 开发-7:TimelineProvider 机制全解析:构建未来时间线
  • 在Docker中运行macOS的超方便体验!
  • macOS 上安装 Miniconda + Conda-Forge
  • 如何将多个.sql文件合并成一个:Windows和Linux/Mac详细指南
  • Linux:库的原理
  • Qt使用脚本实现GUI扩展技术详解
  • 阿里云-跨账号同步OSS Bucket
  • STM32-ADC
  • 面试技术问题总结一
  • 定位模拟的详细步骤
  • 医院多部门协同构建知识库-指南库-预测模型三维网络路径研究
  • 深入剖析C++ RPC框架原理:有栈协程与分布式系统设计
  • 服务器内核级故障排查
  • 脑科学圈| 利用眼动追踪评估演讲情境下焦虑障碍儿童的注视行为
  • 用 LangChain4j 从零实现 RAG:基于 PDF 文档的智能问答系统
  • 1.2.3_1 OSI参考模型
  • Java设计模式之行为型模式(观察者模式)介绍与说明
  • 【Linux系统】冯诺依曼体系结构 | 初识操作系统
  • 易基因:血浆ChIP-seq的cfDNA组蛋白修饰分析揭示晚期前列腺癌表型和临床异质性|Cancer Res/IF16.6
  • 记一次Android Studio编译报错:Execution failed for task ‘:app:compileDebugAidl‘
  • 中国农作物收获面积空间栅格(1KM分辨率)数据(含16种作物:玉米、小麦、水稻、大豆等)
  • chrony时间同步
  • searxng 对接openweb-UI实现大模型通过国内搜索引擎在线搜索
  • 通过 .NET Aspire 使用本地 AI 模型
  • 从 SEO 到 GEO:2025 电商搜索新战场|产品 SERP 的 AI 征服指南
  • Docker的/var/lib/docker/目录占用100%的处理方法