在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 gguf主要量化方法

https://blog.csdn.net/liliang199/article/details/149254634

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.pswp.cn/web/88559.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88559.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88559.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多模態大語言模型arxiv論文略讀(154)

Visual-Oriented Fine-Grained Knowledge Editing for MultiModal Large Language Models ?? 論文標題:Visual-Oriented Fine-Grained Knowledge Editing for MultiModal Large Language Models ?? 論文作者:Zhen Zeng, Leijiang Gu, Xun Yang, Zhan…

Python PDF處理庫深度對比:PyMuPDF、pypdfium2、pdfplumber、pdfminer的關系與區別

Python PDF處理庫深度對比:PyMuPDF、pypdfium2、pdfplumber、pdfminer的關系與區別前言1. 庫的基本介紹1.1 PyMuPDF (fitz)1.2 pypdfium21.3 pdfplumber1.4 pdfminer2. 關系圖譜3. 核心區別對比3.1 性能對比3.2 功能對比4. 代碼示例對比4.1 基本文本提取PyMuPDFpypd…

制作 ext4 文件系統

按以下步驟操作可以將一個文件夾制作成 Android 可用的 ext4 格式的 img 文件:方法 1:使用標準 Linux 工具(推薦) 步驟 1:安裝必要工具 sudo apt update sudo apt install e2fsprogs android-sdk-libsparse-utils # 適…

Flink自定義函數

一、UDF 核心原理 Flink 自定義函數(UDF)是擴展 Table API/SQL 能力的核心機制,允許將自定義邏輯嵌入查詢。其設計遵循以下原則: 1. 函數類型體系類型輸入輸出關系核心用途標量函數(ScalarFunction)0~N 個標…

【AI學習】大模型微調實踐

參加了書生?浦語(InternLM)端側小模型論文分類微調練習打榜賽 具體的實踐教程在: https://aicarrier.feishu.cn/wiki/D7kZw9Nx4iMyDnkpL0Gc5giNn5g 折騰了十多天,各種嘗試,AB榜單終于進入了前十都,累死 …

ElementUI:高效優雅的Vue.js組件庫

Hi,我是布蘭妮甜 !在當今快節奏的前端開發領域,選擇一個功能強大、設計優雅且易于使用的UI組件庫至關重要。ElementUI作為基于Vue.js的知名組件庫,憑借其豐富的組件體系、一致的設計語言和出色的開發體驗,已成為眾多企…

Java Stream流介紹及使用指南

背景在Java 8之前,處理集合數據(如List, Set, Map)通常意味著編寫冗長的、以操作為中心的代碼:創建迭代器、使用for或while循環遍歷元素、在循環體內進行條件判斷和操作、收集結果。這種方式雖然有效,但不夠簡潔、可讀…

JDK 1.7 vs JDK 1.8

JDK版本比較 Java平臺的兩次重大飛躍:JDK 7的穩定優化與JDK 8的革命性創新引言:Java的進化之路Java作為企業級開發的支柱語言,其版本更新直接影響著全球數百萬開發者。JDK 1.7(2011年發布)和JDK 1.8(2014年…

張量與維度

3x4x5的張量: x torch.tensor([[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]], [[21, 22, 23, 24, 25], …

智慧菜場系統(源碼+文檔+講解+演示)

引言 在數字化浪潮的推動下,傳統菜市場也在尋求創新與變革。智慧菜場系統作為一種新型的菜市場管理工具,通過數字化手段優化菜市場的全流程,提高運營效率,增強消費者體驗,提升市場管理質量。本文將詳細介紹智慧菜場系統…

【GESP】C++一級真題 luogu-B4355 [GESP202506 一級] 值日

GESP C一級,2025年6月真題,基礎運算和循環語句,難度★☆☆☆☆。 題目題解詳見:【GESP】C一級真題 luogu-B4355 [GESP202506 一級] 值日 | OneCoder 【GESP】C一級真題 luogu-B4355 [GESP202506 一級] 值日 | OneCoderGESP C一級…

【Linux應用】Ubuntu20.04 aarch64開發板一鍵安裝ROS2(清華源)

【Linux應用】Ubuntu20.04 aarch64開發板一鍵安裝ROS2(清華源) 文章目錄相關資料更改UTF8執行更新一鍵安裝ROS2驗證配置環境變量附錄:開發板快速上手:鏡像燒錄、串口shell、外設掛載、WiFi配置、SSH連接、文件交互(RAD…

【HDLBits習題 2】Circuit - Sequential Logic(4)More Circuits

1. Rule90&#xff08;Rule 90&#xff09;方法1&#xff1a;module top_module (output reg [511:0] q,input clk,input load,input [511:0] data ); integer i;always (posedge clk) beginif (load 1b1) beginq < data;end else beginfor (i0; i<$bits(q);…

基于mysqlfrm工具解析mysql數據結構文件frm表結構和數據庫版本信息

這里使用Linux系統上操作。win上搞了下 python報錯。所以在這里記錄一下推薦大家使用linux系統操作。 安裝mysql utilswget https://downloads.mysql.com/archives/get/p/30/file/mysql-utilities-1.6.5.tar.gztar -xf mysql-utilities-1.6.5.tar.gzcd mysql-utilities-1.6.5py…

【C++ 深入解析 C++ 模板中的「依賴類型」】

深入解析 C 模板中的「依賴類型」 依賴類型是 C 模板編程中的核心概念&#xff0c;特指那些依賴于模板參數的類型。迭代器是依賴類型的常見例子&#xff0c;但遠不止于此。讓我們全面解析這個重要概念&#xff1a; 依賴類型的本質定義 依賴類型是&#xff1a; 在模板中定義直接…

Telnet遠程連接實驗(Cisco)

Telnet遠程連接實驗&#xff08;Cisco&#xff09; 拓撲圖一并實現DHCP服務、HTTP服務、FTP服務。 二層交換機配置&#xff1a; 交換機Switch0配置&#xff1a; vlan 10vlan 20int f0/1switchport mode accessswitchport access vlan 10int f0/2switchport mode accessswitchpo…

C++:非類型模板參數,模板特化以及模板的分離編譯

目錄 一、前言 二、非類型模板參數 三、模板的特化 3.1 類模板特化 3.11 全特化 3.12 偏特化 3.2 函數模板特化 3.3 注意 四、模板的分離編譯 一、前言 前面的文章梳理了模板初階的一些用法&#xff0c;在后面梳理了STL的一些容器的用法后&#xff0c;下面將用到含有S…

【Qt 學習之路】Qt Android開發環境搭建:Ubuntu的Vmware虛擬機中的踩坑實錄

文章目錄1、簡介2、虛擬機內USB設備識別難題2.1、正確連接手機2.2、打開USB相關配置2.3、打開虛擬機中的手機設備3、Gradle下載速度緩慢之困3.1、下載 Gradle 鏡像3.2、安放鏡像位置3.3、修改項目中的gradle路徑1、簡介 許久未曾使用Qt進行Android開發&#xff0c;今日在Ubunt…

MySQL中使用group_concat遇到的問題及解決

在使用group_concat的過程中遇到個問題&#xff0c;這里記錄一下&#xff1a;在MySQL中有個配置參數group_concat_max_len&#xff0c;它會限制使用group_concat返回的最大字符串長度&#xff0c;默認是1024。 查詢group_concat_max_len大小&#xff1a; show variables like…

高性能小型爬蟲語言與代碼示例

高性能小型爬蟲現在有哪幾種新興語言可以選擇。我看到了很多關于爬蟲框架的信息&#xff0c;特別是使用Go語言和Node.js的框架。Go語言方面有Kaola1和Katana2這兩個框架。Kaola被描述為高性能的Go語言爬蟲框架&#xff0c;輕量級且強大&#xff0c;提供靈活配置選項。 Node.js…