# 影片筆記:Redis 创始人亲手写了个 AI 引擎:用 MacBook 跑近前沿模型,还能把 SSD 当内存用 ## 一句話總結 Redis 創始人 Salvatore Sanfilippo 開發了名為 **Dwarf Star**(專案名 DS4)的本地 AI 推理引擎,透過將 SSD 視為記憶體延伸(流式讀取)、採用針對單一模型的極致 2-bit 非對稱量化技術,以及支援分散式運算,實現了在 MacBook 等個人硬體上高效運行接近前沿的大規模模型(如 DeepSeek V4),並強調數據完全保留在本地。 ## 核心重點 * **專案背景與動機**: * 由 Redis 創始人 Salvatore Sanfilippo(代號 Antares)從零開始使用 C 語言編寫。 * 目標是讓強大的開源模型能在普通硬體(MacBook/Mac Studio)上運行,結合前沿效果與個人電腦。 * 拒絕做通用運行器,採取「窄而深」策略,僅針對單一模型調至極致。 * **技術架構突破**: * **記憶體與儲存策略**:打破模型必須完全載入記憶體的限制,將 SSD 視為模型的「真正家園」,需要時從硬碟流式讀取重型部分。記憶體作為加速槓桿而非硬性限制。 * **非對稱量化**:採用激進的 2-bit 量化,但僅壓縮「專家層」(Expert weights)權重;Attention 和共享層盡量保持接近滿精度(Full Quality)以維持穩定性。 * **硬體支援**:支援 Apple Metal、NVIDIA 顯卡及 AMD 統一記憶體機器。底層為純 C 語言 + 手寫 CUDA 和 Metal Shader。 * **未連結 GGML**:明確沒有連結 LamaCPP 背後的 GGML 庫,但適配部分格式與 Kernel。 * **功能與產品化**: * **效能**:在 M3 Max 筆記型電腦上,速度約為每秒 27 個 Token(Token Per Second),且隨上下文變長,速度幾乎不下降。 * **內建功能**:包含 Coding Agent、Session 管理(KVCache 放硬碟實現快速切換對話)、API Server(支援 OpenLayer 和 Enthropy API,可指向 Codex 或 Cloud Code)、PowerDial(權衡機器安靜與 Token 速度)。 * **分散式模式**:支援將模型拆分至多台機器運行(如兩台 128GB MacBook 透過 Thunderbolt 連接運行完整 4-bit 模型)。 * **當前狀態**: * 專案擁有 18,500+ Stars,採用 MIT 許可證。 * 目前為 Beta 版本,有數百個未解決問題。 * 僅運行發布的特定模型文件,非通用解決方案。 * 部分代碼由 AI 參與撰寫。 ## 詳細大綱 ### 1. 專案背景與開發動機 * **作者身份**:Salvatore Sanfilippo,Redis 創始人,代號 Antares。 * **專案名稱**: * 專案名:DS4 * 引擎名:Dwarf Star * **開發語言**:從零開始使用 C 語言編寫。 * **核心動機**: * 讓真正強大的開源模型與個人電腦同時出現,兩者應結合。 * 讓模型在普通硬體(如 MacBook/Mac Studio)上運行接近前沿的效果。 * 拒絕做通用運行器,選擇「窄而深」的策略,只針對單一模型調至極致。 ### 2. 技術架構與原理 * **記憶體與儲存策略**: * 打破模型必須塞入記憶體的限制。 * 將 SSD 視為模型的「真正家園」,需要時從硬碟流式讀取重型部分。 * 記憶體不再是硬性限制,而是作為加速的槓桿。 * **量化技術**: * 採用激進的 2-bit 量化。 * **非對稱設計**:僅壓縮「專家層」(Expert weights)權重;Attention 和共享層盡量保持接近滿精度(Full Quality),以維持穩定性。 * **硬體支援**: * 支援 Apple Metal 和 NVIDIA 顯卡。 * 支援 AMD 統一記憶體機器。 * 推薦硬體:約 96GB 記憶體 Mac(記憶體較少亦可運行)。 * 底層實現:純 C 語言 + 手寫 CUDA 和 Metal Shader。 * **未連結 GGML**:明確沒有連結 LamaCPP 背後的 GGML 庫,但適配部分格式與 Kernel,並保留版權資訊。 ### 3. 功能與產品化設計 * **效能表現**: * 在 M3 Max 筆記型電腦上,速度約為每秒 27 個 Token(Token Per Second)。 * 隨著上下文變長,Token Per Second 幾乎沒有下降。 * **內建功能**: * **Coding Agent**:內建編碼 Agent。 * **Session 管理**:將 KVCache 放在硬碟上,實現快速切換已保存的對話。 * **API Server**:支援 OpenLayer 和 Enthropy API,可指向 Codex 或 Cloud Code 在本地模型上工作。 * **PowerDial**:允許用戶在「機器安靜」與「榨乾 Token 速度」之間進行權衡限制。 * **分散式模式(Distributed Mode)**: * 將模型拆分到多台機器上運行,每台機器分擔部分 Layers。 * 典型場景:兩台 128GB MacBook 透過 Thunderbolt 連接,運行完整的 4-bit 模型。 * 解決單機記憶體不足無法運行大模型的問題。 ### 4. 使用流程與現狀 * **安裝與運行**: 1. 運行下載腳本,拉取適配機器的 2-bit 模型。 2. 在 Mac 上構建 Metal 版本。 3. 啟動引擎,可選擇開啟 SSD Streaming。 4. 輸入內容不離開機器,實現本地對話。 * **品質保證**: * 每次構建使用 DivC 檢查不同上下文長度下的官方輸出,防止質量被悄悄破壞。 * **當前狀態**: * 專案擁有 18,500+ Stars,採用 MIT 許可證。 * 目前為 Beta 版本,有數百個未解決問題。 * 僅運行發布的特定模型文件,非通用解決方案。 * 部分代碼由 AI 參與撰寫。 ## 工具 / 模型 / 名詞整理 * **AI 模型/技術**: * DeepSeek V4 * Mixture Model(混合模型) * KVCache * 2-bit 量化 / 4-bit 模型 * **軟體/專案名稱**: * **Dwarf Star**(推理引擎名稱) * **DS4**(專案名稱) * **Redis** * **Lama CPP**(註:逐字稿原文拼寫,疑為 llama.cpp) * **LM Studio** * **GGML** * **Codex** * **Cloud Code** * **Indie Hacker News** * **Indie Hacker New Supply**(註:疑為 Indie Hacker News 或相關社群名稱的聽寫錯誤) * **硬體/平台**: * MacBook * Mac Studio * M3 Max * DGX2 * Apple Metal * NVIDIA 顯卡 * AMD 統一記憶體 * Thunderbolt * **其他專有名詞**: * Antares(Salvatore Sanfilippo 的代號) * OpenLayer(註:疑為 OpenAI API 或類似名稱的聽寫錯誤) * Enthropy API(註:疑為 Entropy API 或其他名稱的聽寫錯誤) * PowerDial * Cuda * Metal Shader * MIT 許可證 ## 操作流程整理 1. **準備環境**:運行下載腳本,拉取適配機器的 2-bit 模型。 2. **構建引擎**:在 Mac 上構建 Metal 版本。 3. **啟動引擎**:啟動 Dwarf Star 引擎,可選擇開啟 SSD Streaming 功能。 4. **進行對話**:輸入內容,數據不離開機器,實現本地對話。 * *註:若需分散式運算,可透過 Thunderbolt 連接多台機器(如兩台 128GB MacBook)共同運行模型。* 5. **品質檢查**:每次構建使用 DivC 檢查不同上下文長度下的官方輸出,確保質量未被破壞。 ## 值得注意的限制或風險 * **非通用解決方案**:僅運行發布的特定模型文件,並非通用解決方案。 * **Beta 階段穩定性**:目前為 Beta 版本,存在數百個未解決問題。 * **硬體依賴**:雖支援多種硬體,但針對單一模型優化,換用其他模型可能需重新構建或調整。 * **分散式運算複雜度**:分散式模式需多台機器透過 Thunderbolt 連接,對普通用戶門檻較高。 * **數據隱私與本地化**:強調數據完全保留在本地,不上傳雲端,這既是優勢也意味著缺乏雲端備份或協同功能。 ## 逐字稿辨識疑點 * **Lama CPP**:逐字稿中多次出現「Lama CPP」,結合上下文「整個生態裡有一半都是建立在他之上」及「GGML」,極大機率為 **llama.cpp** 的聽寫錯誤,但依規則標註為疑點。 * **OpenLayer**:逐字稿提及「支持 OpenLayer 和 Enthropy API」,疑為 **OpenAI API** 或其他特定 API 名稱的聽寫錯誤。 * **Enthropy API**:逐字稿提及「Enthropy API」,疑為 **Entropy API** 或其他名稱的聽寫錯誤。 * **Indie Hacker New Supply**:逐字稿提及「提交到 Indie Hacker New Supply」,疑為 **Indie Hacker News** 或該社群特定版塊名稱的聽寫錯誤。 * **Antares**:逐字稿稱 Salvatore Sanfilippo 為「大家熟知的 Antares」,通常 Antares 指代其他技術或人物,此處為逐字稿原樣記錄。 * **DivC**:逐字稿提及「拿 DivC 在不同上下文長度下的官方輸出做檢查」,疑為 **Diff** 或特定測試工具名稱的聽寫錯誤。 * **DS4**:專案名稱,保留原樣。 * **Dwarf Star**:引擎名稱,保留原樣。 * **DeepSeek 的 V4 模型**:保留原樣,指代特定模型版本。 * **18500 多個 Star**:保留原樣,指 GitHub Stars 數量。 * **96G 内存**:保留原樣,指記憶體容量。 * **27 个 Token**:保留原樣,指每秒 Token 數。 * **128G 的 MacBook**:保留原樣,指記憶體容量。 ## 可延伸追問 * Dwarf Star 引擎的 2-bit 非對稱量化具體如何影響模型的推理準確率? * 分散式模式下,Thunderbolt 連接的頻寬是否會成為運行大模型的瓶頸? * 為何選擇不連結 GGML 庫,這對未來的生態兼容性有何影響? * PowerDial 功能具體如何平衡「機器安靜」與「Token 速度」? * 該引擎是否支援除 DeepSeek V4 以外的其他開源模型?