什麼是機器學習中的量化?

量化使機器學習模型能夠使用更少的記憶體和運算能力,從而加快回應速度並降低成本。但是,這可能會降低 AI 推斷的精確度。

學習目標

閱讀本文後,您將能夠:

  • 定義量化
  • 描述量化如何提高效率但降低精確度
  • 瞭解在 AI 中使用量化的原因和時間

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是機器學習中的量化?

量化是一種減輕機器學習人工智慧 (AI) 模型執行負載的技術。它的目的是減少 AI 推斷所需的記憶體。量化對於大型語言模型 (LLM) 特別有用。

一般來說,量化是將數位訊號從高精確度格式轉換為佔用空間較小且精確度稍差的格式的過程。目標是使訊號更小,以便更快地處理它。在機器學習和 AI 中,量化旨在使模型執行得更快和/或使用更少的運算能力。這最終允許使用者在更便宜的硬體上執行 AI 模型,同時理想情況下,將對準確性的影響降至最低。

為了視覺化地說明這如何使 AI 推斷佔用更少的記憶體,請想像一個一定寬度的管子,可能只有幾英寸,並想像有人需要沿著管子向下滾動很多彈珠。如果滾動大型彈珠,一次只有兩個或三個彈珠可以通過管道中的一個點。如果滾動小彈珠,則可以一次通過更多的彈珠。因此,使用小彈珠意味著更多的彈珠可以更快地通過管道。

量化即表示將大彈珠轉換為小彈珠。計算推斷所需的資訊佔用的記憶體空間更少,因此可以更快地處理更多資訊,並使 AI 運算更有效率。

為什麼要使用量化?

用於機器學習(一種 AI)的模型非常複雜。它們使用大量的記憶體和運算能力。事實上,AI 的日益普及導致了電力短缺:執行進階機器學習模型的伺服器需要大量電力。在某些情況下,公開可用的電網無法全部供應。這催生了許多創意的解決方案,從增加太陽能的使用到重新啟動除役的核電廠

量化旨在減少來自另一側的運算負載,以便 AI 模型本身使用更少的能源。對於執行 AI 模型的開發人員和組織而言,這可以幫助 AI 更具成本效益,因為並非每個人都有能力重新啟用舊核電站。

量化對精準度有何影響?

要理解為什麼量化會影響精準度,可以想像向某人問路。該人可以提供街道的詳細清單、每條街道的名稱以及每條街道之前和之後的街道名稱。這樣一組指示非常精確,但可能很難記住。相反,有人可能會說「第二個左轉,第四個右轉,第一個左轉」。儘管不太精確,但更容易記住。

在 AI 中,量化的工作方式是減少資料點使用的位元數。位元的丟失意味著可能會失去一定程度的精確度。結果可能是輸出中出現更多錯誤(就像駕駛員可能在沒有街道名稱的情況下在上述範例中弄錯為「第四個左轉」一樣)。然而,量化有不同類型,其中一些比其他更精確。

在實踐中,公司或使用者都擁有量化後的 AI 模型「足夠好」的使用案例。這些使用案例通常不需要高度精確的結果。一個範例是追蹤社交媒體趨勢和提及,這無需確切的資料點,只需專注於整體情緒和參與度。

什麼是訓練後量化 (PTQ)?

訓練後量化 (PTQ) 是將量化套用至已經訓練過的預先存在的模型。PTQ 可以相對快速地套用至經過訓練的模型。它與量化感知訓練 (QAT) 形成鮮明對比,後者發生在模型訓練之前,並且需要相當多的運算能力。PTQ 的工作方式是將浮點數轉換為定點數。

什麼是浮點表示?

浮點表示是機器學習和深度學習中常用的一種高度精確的數字表示方法。透過浮點表示法儲存的數字會佔用一定數量的位元,為 16 或 32(取決於所使用的浮點表示的類型)。

許多類型的量化將其減少到 8 位元。結果是量化的數字只佔用一半或四分之一的記憶體空間。當然,位元數較少的情況下,量化後的值不如浮點數精確,就像小數位數較少的數字(例如 3.14)不如小數位多的數字(例如 3.141592654)精確一樣。

什麼是激活感知權重量化 (WAQ)?

激活感知權重量化 (AWQ) 是一種旨在平衡效率提升與精確度的技術。AWQ 可保護模型中最重要的權重不被更改。(權重是衡量資料集中項目之間關係的值。)回想一下上面的路線範例。想像一下,指示方向者說的不是「第二個左轉,第四個右轉,第一個左轉」,而是「第二個左轉,第 12 條街道右轉,然後第一個左轉」。這包含一些更精確的資訊,但仍然是一個相對較短(且易於記憶)的方向清單。AWQ 的工作原理與此類似,保持模型的某些整數不變,同時改變其他整數。

Cloudflare Workers AI 支援多種納入了浮點量化和 AWQ 的大型語言模型 (LLM),因此在保持精確度的同時使用更少的記憶體和運算能力。要瞭解更多資訊,請參閱 Cloudflare Workers AI 文件