本文整理自網(wǎng)絡(luò)blog 這位博主還幾篇關(guān)于大模型的文章非常不錯,小編我就一起整理成一篇文章。 ![]() 要理解大型語言模型(LLM)的運行,首先需要了解其所需的硬件配置。除了GPU之外,顯卡內(nèi)存也是至關(guān)重要的。以Meta公司發(fā)布的LLaMA 2模型為例,其包括70B、13B、7B等不同參數(shù)規(guī)模的模型,而這些模型需要的GPU內(nèi)存也各不相同。比如,要運行完整的70B模型,需要320GB的GPU內(nèi)存;而對于13B模型,則需要50GB的GPU內(nèi)存,7B模型則需要30GB的GPU內(nèi)存。 然而,通過量化技術(shù),可以在一定程度上犧牲模型的精確度,以減少內(nèi)存的使用量。這意味著,即使你可能會犧牲一些模型的準(zhǔn)確性,但你可以將內(nèi)存使用量減半,甚至降低到原來的1/4或1/8。因此,如果你可以接受與性能稍遜的機器人對話,那么即使沒有獨立顯卡,僅僅使用CPU也能夠運行LLaMA 2。 Meta公司開源的LLM項目(LLaMA 2)具有許多優(yōu)點,其中一個重要的優(yōu)點是你可以重新訓(xùn)練或微調(diào)模型,使其符合你的需求。這為應(yīng)用場景帶來了無限的可能性。 然而,值得注意的是,訓(xùn)練和微調(diào)LLM是非常昂貴的。以前提到的OpenAI模型微調(diào)的成本為每小時34至103美元。那么,如果你想要微調(diào)LLaMA 2模型,如何預(yù)估成本呢? 根據(jù)LLaMA公開的信息,7B版本的訓(xùn)練時間為184,320小時,而70B版本則需要1,720,320小時。假設(shè)每小時一張A100 GPU運行,那么僅使用一張A100 GPU運行7B模型將需要21年的時間!當(dāng)然,Meta公司使用了大量的A100 GPU來進(jìn)行訓(xùn)練,7B模型花費了27.6萬美元,而70B模型則花費了170萬美元。 A100和RTX4090算力相差不大,但是顯存大小和傳輸頻寬就很重要: 在 PyTorch 訓(xùn)練測試中,A100 Throughput 是 4090 的 1.4 倍,H100 是 4090 的 1.6 到 2.5 倍: 至于訓(xùn)練算力估算可以用 6 * 模型參數(shù)量 * 訓(xùn)練數(shù)據(jù) Token 數(shù) (Flops) 預(yù)估。以Google 的Colab 平臺為例,Colab Pro 會員每月10.49 USD 每月有100 個運算單元,Pro+ 會員52.49 USD 則為500 個運算單元方案說明,A100 每GPU 小時消耗 約13 個運算單元,換算一個GPU 小時約1.36 USD。 在Meta公司的LLaMA-2-7B-Chat項目中,他們使用了27,540條高質(zhì)量的監(jiān)督微調(diào)示例,即Supervised Fine-Tuning(SFT),以有效提升模型的品質(zhì)。這些示例有助于模型更好地理解并準(zhǔn)確回答問題。 臺灣LLaMA是基于LLaMA 2的全參數(shù)微調(diào)模型,旨在增強繁體中文處理能力。它包括兩個主要階段:
此外,模型還通過自我指導(dǎo)(Self-Instruct)方式進(jìn)行了訓(xùn)練。Stanford Alpaca項目從ChatGPT中獲取了52,000條數(shù)據(jù),并利用4塊A100 GPU在一天內(nèi)完成了7B LLaMA的訓(xùn)練,使其達(dá)到了類似于text-davinci-003模型的水平。 在成本方面,使用ChatGPT API的費用為500美元。而使用A100 GPU的成本則按每小時1美元計算,使用4塊A100 GPU進(jìn)行24小時訓(xùn)練的成本約為100美元。 有了以上信息,我們對于訓(xùn)練與微調(diào)的成本大概有了些了解。訓(xùn)練確實是一項耗資巨大的活動,通常需要反復(fù)嘗試、不斷優(yōu)化,永無止境。盡管LoRA微調(diào)可以用較少的資源取得不錯的效果,甚至有可能用4090型號的顯卡就能實現(xiàn),但購買裝備和資源仍然會造成一定的經(jīng)濟負(fù)擔(dān)。哎~ ![]() 對于大型語言模型(LLM),目前ChatGPT仍然處于領(lǐng)先地位。但要開發(fā)相關(guān)應(yīng)用,LLM模型的訓(xùn)練和執(zhí)行成本都相當(dāng)高昂。因此,通過整合OpenAI或Azure的API可能是一種成本效益較高的做法。 然而,有些情況下不允許數(shù)據(jù)上傳到云端,或者必須重新訓(xùn)練或微調(diào)以滿足需求,那么就需要考慮采用LLaMA、Mistral、Gemma等開源模型,并在本地端執(zhí)行。 在運行LLM模型時,CPU/RAM/SSD的級別次要,最關(guān)鍵的是GPU。目前,H100/A100有錢也買不到。然后是工作站級別的GPU,如RTX-6000/5000/4500/4000/4000 SFF等,RTX-6000有48GB內(nèi)存,不需要量化就可以直接運行13B大小的模型。再次下來是普通玩家勉強買得起的消費級顯卡4090,價格為1萬6-1萬9人民幣。如果一張不夠,想要體驗團(tuán)結(jié)就是力量,可以考慮購買工作站級別的高端主機,可以插入四張雙寬度顯卡。 總之,要發(fā)揮本地端LLM的威力,仍然需要一定的經(jīng)濟實力。對于運行7B或13B的LLaMA 2模型,不同級別的GPU性能差異如何?花錢裝兩張GPU會增加性能嗎?這篇文章算是對這些問題的初步探討,僅供參考。 先看不同型號單一 GPU 跑 LLM 的效能數(shù)字: 表格有附不同 GPU 跑 llama2-7b-chat 及 llama2-13b-chat 模型的效能數(shù)字,單位為 Tokens/s。CPU 只能用慘烈形容,不到 2。4090 跑 7B 模型數(shù)字挺漂亮,甚至贏過 A100。有趣的是 8 bit 量化版的數(shù)很難看,4 bit 量化版也輸給 16 bit,關(guān)于這點網(wǎng)路上討論不少,我的理解這是用動態(tài)量化節(jié)省記憶體的代價。參考:2-3x slower is to be expected with load_in_4bit (vs 16-bit weights), on any model -- that's the current price of performing dynamic quantization。 既然花了時間查找了這些信息,就順便分享給有興趣的同學(xué)參考。接下來一個問題是,如果口袋夠深,購買了可插多卡的工作站,多插幾張GPU來運行推理模型是否會更快一些?我找到了一篇關(guān)于3090運行LLaMA 2 7B的測試數(shù)據(jù)(LLM Inference on multiple GPUs with ?? Accelerate), 圖表上方為單純推理,下方為批次模式執(zhí)行。插入五張3090時,可以明顯看到隨著GPU數(shù)量增加,GPU間通信成本會抵消增加的算力,結(jié)果不升反降。 更多: 選擇華碩龍芯主板的理由:從支持國產(chǎn)芯片到性價比考量 探秘Nvidia開創(chuàng)性的DGX-GB200機架系統(tǒng)背后的創(chuàng)新 |
|