Llama 3 在做量化(quantization)的時候,性能下降得比 Llama 2 嚴重很多。
這是Reddit上一位網友做的實驗:
https://www.reddit.com/r/LocalLLaMA/comments/1cfbadc/result_llama_3_exl2_quant_quality_compared_to/
發現在相同的模型大小下,EXL2 和最新的 imatrix IQ 量化方法處理過的 GGUF,它們的性能品質基本上不分軒輊。這個結論對 Llama 3 和 Llama 2 都適用。不過有一點值得留意,就是無論採用哪種量化格式,Llama 3 量化後的性能降低似乎都比較明顯。
為了方便起見,用 8.0 bpw 的 exl2 作為基準,而不是 fp16。估計這樣做帶來的誤差應該微乎其微,可以忽略不計。
量化對 LLaMA-3 的負面影響似乎比 LLaMA-2 更大,從 perplexity 的測量結果就能看出端倪。Perplexity 的確是評估語言模型的一個指標,數值越低代表模型預測能力越強。
你對造成這種差異的原因提出的假設很有道理。LLaMA-3 接受了驚人的 15 兆個 tokens 的訓練,有機會捕捉到數據中非常細微而複雜的關聯。這種大規模的訓練讓模型能夠充分利用每個參數值的每一個小數點,這是 bfloat16 (BF16) 格式的精度所帶來的好處。
相比之下,其他開源語言模型如 LLaMA-2 的訓練 tokens 數量要少得多,大約 2 兆個。因此,這些模型可能沒有足夠的「練習」去完全飽和參數值的小數精度。所以量化對它們的性能影響,可能沒有 LLaMA-3 那麼嚴重。
這個觀察凸顯了在使用量化技術時,要考慮訓練數據量和模型捕捉細微模式能力的重要性。對於那些已經在海量數據上訓練,學會利用參數值裡每一個微小信息的模型來說,它們可能更容易受到量化帶來的精度損失的影響。
當要在資源受限的環境中部署語言模型時,研究人員和開發者必須仔細權衡模型大小、性能和量化之間的取捨。雖然量化可以大幅降低記憶體佔用和計算需求,但一定要評估它對模型預測能力的影響,尤其是對像 LLaMA-3 這樣訓練充分的模型。
這個領域還需要更多的研究和實驗,有助於開發出更強健的量化技術,既能壓縮模型,又能保住它的性能。此外,探索替代的精度格式或混合精度方法,或許能在模型大小和預測能力之間取得平衡。
總的來說,你的觀察和 llama-cpp repo 的研究結果,為理解量化對語言模型的影響貢獻了很有價值的見解。同時也提醒大家,在使用量化技術時需要特別仔細考慮,尤其是像 LLaMA-3 這樣訓練充分的模型。
沒有留言:
發佈留言