跳到主要內容

精選文章

Deepseek r1 : Quantization 量化後的浮點數運算

cinematic photo still, glamour shot of an anthropomorphic robot with a board written "Deepseek" on the chest, helping at home, This photo was taken by using Canon EOS R5 camera, presenting stunning details, extremely detail and intricate, ultra fine, photo style of Mika Ninagawa + Topaz Leung + Escher + Édouard Manet + Wong Kar - Wai, inspired by Cowboy bebop + Sailor moon, cinematic lighting, hyper realistic photography, ultra realistic --ar 71:128 --v 6.1 --q 2


===


電腦的浮點數是用 IEEE 754 作為標準, 可以參考這篇 - 網誌連結


先前在這篇實驗中: 基金實驗 : 是否能用 AI 搭配來幫忙計算基金策略

遇到了帶小數數字計算不準確的問題; 研究了一下, 覺得可能和AI model 的量化 (Quantization)

有關。 (不是聯準會的量化寬鬆 XD)


**量化(Quantization)**是指將模型參數從高精度(如32位浮點數)轉換為低精度(如8位整數或4位整數)的過程。這一技術旨在減少模型的存儲空間和計算複雜度,從而提高運行效率,尤其是在資源受限的環境中。

量化的目的與好處

  • 減少內存佔用:通過使用較低精度的數據表示,量化可以顯著降低模型所需的內存。例如,Ollama支持的4位量化可以在理論上實現8倍的內存節省。

  • 加快推理速度:量化模型在推理時通常比未量化模型更快,因為低精度運算在硬件上通常更高效。

  • 適應硬件限制:量化使得大型語言模型(LLM)能夠在普通計算機上運行,而不需要高端的GPU或大量的RAM。例如,Ollama的4位量化模型可以在內存較小的設備上運行。


有興趣深入量化或許可以看看這篇論文 - Model Compression
(在這網頁最後, 我有用 Felo AI 列了一下這篇論文重點, 不過蠻可能有錯誤或遺漏的,
 有興趣的, 或許還是自己看看會比較有收穫)

常見的量化類型

  1. Q4

    • 這表示模型使用4位整數進行量化。這種量化方式能顯著減少模型的大小,並提高推理速度,但可能會導致一定的準確性損失。
  2. Q4_K_M

    • 這是一種基於k-means聚類的4位量化方法,旨在在模型大小和性能之間達到更好的平衡。K_M版本通常在困惑度(perplexity)和模型大小之間提供最佳的折衷,適合在資源有限的環境中運行。
  3. Q8

    • 這表示模型使用8位整數進行量化。相比於Q4,Q8提供了更高的數據精度,適合需要更高準確性的應用,但相對於Q4,模型的大小和計算需求會增加。
  4. FP16

    • 這是指使用16位浮點數進行量化。FP16格式能在保持較高精度的同時,減少模型的內存佔用,並提高計算速度,特別是在支持FP16的硬件上。


K-means 維基百科

===

如何看 Ollama 的 AI model 是用哪一種 Quantization?


ollama list : 可以列出目前 ollama 系統已經下載過的 AI 模型



ollama show <model> : 系統會返回指定模型的詳細信息,包括模型的名稱、版本、描述、參數設置等。




===
解決方法:

有找到一些方式, 最直覺是直接用個高精度的 Q8 或 FP16, 
可以先在 Hugging Face 上找相關高精度做好的 GGUF 檔, (介紹於後)


例如:



下載之後

1. 創建 Modelfile

在您的電腦上創建一個名為 Modelfile 的文本檔案,並在其中指定 GGUF 檔案的路徑。這個檔案的內容應該如下所示:

FROM /Users/xxx/.ollama/DeepSeek-R1-Distill-Qwen-14B-Q8_0.gguf

請根據您的實際檔案路徑進行調整。

步驟 4:使用 Ollama 創建模型

在命令提示符中,導航到包含 Modelfile 的目錄,然後運行以下命令來創建模型:

ollama create example -f Modelfile

這裡的 example 是您為模型指定的名稱,您可以根據需要進行更改。

步驟 5:運行模型

模型創建完成後,您可以使用以下命令來運行模型:

ollama run example

這樣,您就可以開始與模型進行互動了。


不過上述方法我沒有試完, 下載好久結果沒成功.. 感覺又佔資源, 
而且似乎除了線上版deepseek, 其他所使用的精確度都不高, 會計算錯誤...
(純粹個人看法)


所以在想之後或許用 數據預處理, 需要的地方, 都預先計算好提供;
例如上面基金例子, 多提供





這樣回答

Gemini AI : 先前浮點數時做錯了, 現在回答就完全正確



離線版 Deepseek r1:14B

蠻奇怪的, 當前價格會抓錯... 是因為 KV 窗口 size 太小嗎? 之後來看這問題...



離線版 Deepseek r1:32B 的就做對了


還好一大串他沒被繞暈頭^^




===

GGUF 檔案格式介紹

什麼是 GGUF?

GGUF(GPT-Generated Unified Format)是一種專為大型語言模型(LLM)設計的二進制檔案格式。它的主要目的是提高模型的存儲和部署效率,特別是在消費級計算機硬體上表現良好。GGUF 格式於 2023 年 8 月推出,作為其前身 GGML(GPT-Generated Model Language)的升級版本,旨在解決 GGML 在靈活性和擴展性方面的限制。

GGUF 的特點

  1. 高效存儲與加載:GGUF 格式專為快速加載和保存模型而設計,這使得它在推理過程中非常高效。相較於傳統的文本格式,二進制格式的 GGUF 可以更快地被讀取和解析,從而減少 I/O 操作和處理時間。

  2. 全面的信息包含:GGUF 包含了加載模型所需的所有信息,無需依賴外部文件,這大大簡化了模型的部署和共享過程。這一特性使得 GGUF 能夠跨平台和跨設備地運行,無需安裝額外的依賴庫。

  3. 量化技術支持:GGUF 支持模型量化,這是一種將浮點計算轉換為低比特定點計算的技術,能有效降低模型的計算強度和內存消耗,從而提高推理速度和效率。

  4. 擴展性與兼容性:GGUF 設計為可擴展的,允許在不破壞兼容性的情況下添加新信息,這使得它能夠適應不斷變化的技術需求和用例

GGUF 與 GGML 的比較

  • 靈活性:GGML 在靈活性和擴展性方面存在一定的限制,使用者需要手動調整以適應新功能,而 GGUF 則克服了這些問題,提供了更好的兼容性和擴展性。

  • 性能:GGUF 在性能上有顯著提升,特別是在處理大型模型時,能夠更有效地利用資源,並提高推理速度。

應用場景

GGUF 格式在開源社區中得到了廣泛應用,特別是在 Hugging Face 等平台上,開發者可以利用 GGUF 格式來管理和使用 LLM 模型,從而降低資源消耗並提升性能。隨著 AI 技術的快速發展,GGUF 將在自然語言處理、機器翻譯和智能助手等多個領域發揮重要作用。

===

(By Felo AI)

論文重點整理:A Survey of Model Compression and Acceleration for Deep Neural Networks

這篇論文由 Yu Cheng 等人於 2017 年發表,主要探討了深度神經網絡(DNN)的模型壓縮和加速技術。以下是論文的主要內容和重點:

1. 研究背景與重要性

  • 隨著深度學習的快速發展,模型的大小和計算需求不斷增加,這對於資源有限的設備(如移動設備和嵌入式系統)造成了挑戰。
  • 模型壓縮和加速技術旨在減少模型的存儲需求和計算負擔,同時保持其性能。

2. 壓縮技術的分類

論文將模型壓縮技術分為四個主要類別:

  • 參數剪枝與共享(Parameter Pruning and Sharing)

    • 剪枝技術通過去除不重要的權重連接來減少模型的大小。
    • 共享技術則是將相似的權重合併,減少存儲需求。
  • 低秩分解(Low-rank Factorization)

    • 通過將高維權重矩陣分解為低秩矩陣來減少計算量,特別是在卷積層中。
    • 這種方法可以顯著提高計算效率,並減少模型的存儲需求。
  • 轉移/緊致卷積濾波器(Transferred/Compact Convolutional Filters)

    • 利用卷積神經網絡的平移不變性,通過轉移學習來壓縮模型。
    • 這種方法可以在不損失性能的情況下減少模型的參數數量。
  • 知識蒸餾(Knowledge Distillation)

    • 將大型模型(教師模型)的知識轉移到較小的模型(學生模型)中,以提高小模型的性能。
    • 這種方法能夠在保持較小模型的同時,獲得接近大型模型的準確度。

3. 技術優勢與挑戰

  • 每種壓縮技術都有其優勢和挑戰。例如,剪枝可以顯著減少模型大小,但可能需要重新訓練以恢復性能;低秩分解雖然能提高計算效率,但計算代價較高。
  • 知識蒸餾能夠有效提升小模型的性能,但需要額外的訓練過程。

4. 應用場景

  • 這些壓縮技術在各種應用中具有廣泛的潛力,包括移動設備、物聯網(IoT)設備和其他資源受限的環境。

5. 結論

  • 論文總結了當前模型壓縮和加速的研究進展,並指出未來的研究方向,包括如何進一步提高壓縮效率和模型性能的平衡。

這篇論文為深度學習模型的壓縮和加速提供了全面的概述,對於研究人員和工程師在設計高效的深度學習系統時具有重要的參考價值。









留言

熱門文章