LLaMA 現在在 CPU 上運行速度更快,使用了全新的矩陣乘法內核(Kernel)。這些內核可讓 llamafile 以更快的速度讀取提示/圖像。在使用 F16 和 Q8_0 權重在 CPU 上進行評估時,與 llama.cpp 相比,使用 llamafile 的評估時間可能會快 30% 至 500%。這些改進對於 ARMv8.2+(例如 RPI 5) 、英特爾(例如 Alderlake)、以及 AVX512 (例如 Zen 4) 的計算機影響最為顯著。對於能夠放入 L2 快取(cache)的矩陣,我的內核速度比 MKL 快 2 倍,但對於擁有少於 1,000 標記的提示,表現最為突出。
正如您所見,在 Skylake 上,llamafile 使用者可以期待 2 倍的加速,而 llama.cpp 使用者則可以期待 50%的性能提升。值得注意的是,這僅適用於特定權重。到目前為止,我只為 q8_0、f16、q4_1、q4_0 和 f32 這些數據類型編寫了優化的內核。我認為 q8_0 和 f16 都是非常穩固的選擇。如果您有足夠的 RAM,也許 f32 也很不錯。這是因為我的新內核改變了規則。它們在解決存儲器帶寬限製時表現得相當出色,量化可能會成為更大的瓶頸。這對於本地語言模型的未來來說是個好消息,因為這意味著在速度上不需犧牲知識。
另外,我也提及了使用 Raspberry Pi 5 和 4。近來推出的第五代 Raspberry Pi 在性能上有了驚人的提升,同時還導入了對 ARMv8.2 dotprod 和 fp16 算術 ISA 的支援,這對於 LLMs 非常有用。這些特性使 llama.cpp 在去年以 f16 權重取得了 10 倍的性能提升。另外,更加強悍的 RPI CPU 可以讓 llamafile 取得類似 AVX512 的 2 倍表現提升。然而,新的 ARMv8.2 fp16 ISA 可能會引入比較常見的錯誤,所以 Q8_0 權重實際上具有更好的困惑度。不過這並不表示更快的 fp16 權重沒有用處。許多在這個領域的開發人員將這些差異視為微不足道。
請讓我知道是否需要進一步的資訊或者解釋。
via Hacker News
April 1, 2024 at 10:36AM