Llama 3.1 70B AQLM-PV版發布!大模型壓縮后可在24GB顯存GPU上本地運行!!
Llama 3.1 70 B參數模型無疑是一個非常優秀的模型。不僅是基準測試證明了這一點,現實世界中的應用也毫無疑問地證明了它的表現與封閉源的知名模型相媲美,比如 OpenAI 的 GPT-4、Anthropic 的 Claude 和 Google 的 Gemini Pro。
這也是為什么我看到有許多組織努力將這個 70B參數的模型移植到普通 GPU 上,特別是那些顯存為 24GB 或以下的設備。在這篇文章中,我將向大家展示一個全新的微調模型,叫做 Meta Llama 3.1 70B Instruct,使用了 AQLM。
如果你還不知道 Meta 的 Llama 3.1 是什么:它是一個多語言的大語言模型的集合,預訓練和指令調優的生成模型,尺寸分別為 80 B、70B和 405B參數。
Llama 3.1 指令調優的文本模型針對多語言對話用例進行了優化,在很多通用的行業基準上,已經超越了很多現有的開源和封閉的聊天模型。在這篇文章中,我將向大家展示這個模型是如何 通過使用 AQLM 技術和 PV 調優進行壓縮的。我們還將學習什么是 AQLM 和 PV,然后我們將本地安裝它,并體驗一下這個模型。
現在在安裝之前,有 兩個術語,或者我說三個術語,是你必須要清楚了解的。
首先,什么是量化?因為這個模型 Llama 3.1 70 BInstruct AQLM 是對原始70B模型的 AQLM 量化。當我們說量化時,指的是一種用于減少大語言模型內存和計算需求的技術。它涉及到使用更少的位數來表示模型的權重和激活,通常每個參數使用 1 到 2 位,而不是標準的 32 位浮點數。
這種壓縮會降低模型的精度,但可以加快執行速度并減少存儲需求,使得在較小設備或顯存較少的 GPU 上運行復雜模型成為可能。
AQLM 代表大語言模型的加法量化。它是一種專門設計用于將大語言模型壓縮到極小尺寸的新量化技術,每個參數使用 2 到 3 位。它使用加法量化技術將權重矩陣分解為更小的部分,并在模型的不同部分優化壓縮。
AQLM 在保持模型精度的同時,極大地減少了內存需求,使得在資源有限的設備上部署大語言模型成為可能。
另一個我們需要學習的術語是 PV,PV 代表 PV 調優。
PV 調優是一種改進壓縮大語言模型性能的微調框架。它設計用于與像 AQLM 這樣的量化技術協作,以優化壓縮模型的權重,提高其準確性。PV 調優可以推廣并改進現有的微調策略,提供收斂保證,并在 Llama 和 Mistral 等高性能模型上超越之前的方法。
通過使用 PV 調優,開發人員可以在不犧牲模型精度的情況下實現更好的壓縮比,使得在較小設備上高效部署大語言模型成為可能。
所以現在我希望大家 對量化、AQLM 和 PV 調優有了理解。
接下來我們打開我的終端,我運行的是 Ubuntu 22.04 和 NVIDIA RTX A6000 GPU,顯存是 48GB,不過你可以在 24GB 顯存的 GPU 上運行這個模型。
首先創建一個虛擬環境,
安裝所有的前置需求,安裝 AQLM 在GPU上、
所有前置需求都已安裝完成。接下來,啟動我們的 Jupyter Notebook,以便在瀏覽器環境中進行安裝。
Jupyter Notebook 已啟動。接下來導入我們已安裝的庫,然后下載模型。模型開始下載了,我想模型的大小大約是 24GB,所以我們等待下載完成。這會花一些時間。
模型和分詞器都下載完畢,現在我們可以進行推理了。
第一個問題,我問它世界上最小的國家是什么?讓我們運行一下。等待結果。
結果很準確,世界上最小的國家是梵蒂岡城,這是一個獨立國家。所以答案是正確的。接下來我們再測試一個。
這次我讓它寫 10 個以 “美麗” 結尾的句子。這次我測試的重點是,看看我們把 70 億模型壓縮到 2 位,大小只有 24GB,現在看看是否有精度損失。
你可以看到,大部分答案是非常準確的,它甚至還生成了一個答案,每個句子都以 “美麗” 結尾,真的很棒,太酷了。
接下來我們再試一個。接下來我問它一個問題,“草莓里有多少個 r ?”
這次它沒答對。70 B完整模型曾經能回答這個問題,但這個壓縮版本失敗了。8B的 Llama 3.1 也給出了錯誤答案,但 405B的版本是正確的。好吧,至少我們發現一個問題在完整模型中是正確的。好,讓我們再試一個。
接下來我問了一個負面問題,“如何讓對話變得尷尬?” 看看模型是否會回答我。
嗯,這次模型花了點時間。
它說我必須聲明讓對話變得尷尬并不是一個值得追求的目標,然后它給了我一些建議,比如過于個人化、做假設、用錯場合的幽默、尷尬的沉默、提出有爭議的話題等等。 這花了大約 29 秒。好吧,這很有趣,因為這是一個相對比較難的問題,或者說是一個不尋常的問題,所以它花了一些時間。
好,讓我們試一個編碼問題。所以我讓它繪制 Mandelbrot 集合,這是一個幾何構造。
等待一下,結果出來了,幾何圖形的代碼很好,非常高質量。
它還給出了代碼的概要,甚至告訴我們如何安裝以便運行這個代碼。不過花了點時間,超過了 25 秒。不過總的來說表現還是很不錯的。
我認為這真的是一個很大的進步,現在我們可以在 24GB 顯存以上的單個 GPU 上運行 70B的模型,而且準確率非常好。
希望在未來不久我們也可以在這樣的普通硬件上運行 4050 億的 Llama 3.1 模型,甚至是顯存為 24GB 或更少的單個 GPU 上。
本文轉載自 ??AI進修生??,作者: Aitrainee
