官术网_书友最值得收藏!

2.1 CUDA環境準備

2.1.1 基礎環境

1.操作系統

首先,我們需要考慮操作系統要求。目前,開源的大模型都支持在Windows、Linux、Mac系統上進行部署和運行,并且Python及許多與深度學習相關的框架也都能夠跨平臺運行。

針對大模型服務而言,Linux系統通常在資源利用和性能方面更加高效。特別是在服務器環境中,Linux系統更適合于多卡并行運行和服務優化等企業級部署場景。因此,在實踐大模型時,建議使用Ubuntu系統。然而,許多用戶可能更偏向于在Windows系統上進行實踐和學習。盡管Windows系統在處理大規模計算任務時性能和資源管理方面相對于Ubuntu略顯不足,但其更符合大多數用戶的使用習慣。

因此,在隨后的章節內容中,我們將逐一闡述GLM大模型在Ubuntu及Windows平臺上的部署方法。從部署流程的廣義視角觀察,采用Ubuntu系統或Windows系統,部署GLM大模型的核心步驟基本一致。不過,值得注意的是,在本書深入探討大模型微調的部分,我們發現Windows系統對于QLoRA這一量化微調技術的支持相對有限,因此,出于優化微調體驗的考慮,我們強烈建議讀者使用Linux(如Ubuntu)系統進行操作。

2.硬件配置要求

本書提供兩種模型(GLM-4-9B-chat和ChatGLM3-6B)的本地化部署方案,請讀者根據自身的硬件配置情況,選擇性部署相應的模型。其中,GLM-4-9B-chat在推理運行時,大約消耗21~22GB的顯存資源;若采用即將闡述的INT4量化技術,則能有效將顯存需求降至約為15GB。值得注意的是,即便采用量化手段,對此模型進行微調仍需約為32GB的顯存,請作者根據自身硬件條件謹慎考慮。若當前硬件配置無法滿足上述要求,則推薦選用ChatGLM3-6B,其標準配置下需至少13GB顯存與16GB內存支持,而采用INT4版本時,顯存需求驟減至5GB以上,內存需求為8GB以上,極大地降低了硬件門檻。至于ChatGLM3-6B的微調作業,最低顯存要求為16GB,這符合多數消費級顯卡的標準配置。

在本章中,我們將重點講解如何配置GPU環境來部署運行兩類不同參數規模的模型。本章在一個純凈的Ubuntu 22.04和Windows系統基礎上,安裝必要的大模型運行依賴環境,并實際部署、運行及使用這兩類模型。

2.1.2 大模型運行環境

關于大模型運行環境,安裝顯卡驅動程序(簡稱驅動)顯然是首先要做的事情。我們需要確保可以正常地將大模型部署在GPU上,這也是比較容易出現問題的環節,如安裝過程中因各種環境問題導致安裝不成功、缺依賴包等,總會遇到莫名其妙的報錯,從而在安裝的第一步就受挫。

下面簡要說明需要安裝的三大部分。

(1)NVIDIA(英偉達)顯卡驅動:Linux系統默認不會安裝相關顯卡驅動,需要自己安裝。除CUDA(Compute Unified Device Architecture,計算統一設備架構)外,最重要的是驅動,因為硬件需要驅動才能與軟件一樣被其他軟件使用。通常,NVIDIA的CUDA版本和它的GPU驅動版本具有一定的匹配關系。

(2)CUDA:是NVIDIA公司開發的一組編程語言擴展、庫和工具,讓開發者能夠編寫內核函數,可以在GPU上并行計算。假設已安裝了11.8版本的CUDA,在未來的某一天,PyTorch升級后對CUDA有了新的要求,則需要同時更新CUDA和GPU Driver。因此,最好安裝最新版本的顯卡驅動和對應的最新版本CUDA。

(3)cuDNN(CUDA Deep Neural Network Library,CUDA深度神經網絡庫):是NVIDIA公司針對深度神經網絡的應用而開發的加速庫,以幫助開發者更快地實現深度神經網絡訓練推理過程。

2.1.3 安裝顯卡驅動

顯卡驅動的核心功能在于激活與管理顯卡硬件,確保其高效運行,它是連接操作系統與顯卡硬件之間的橋梁,使二者能夠順暢溝通并協同工作。通過優化顯卡的運行效率,顯卡驅動不僅加速了圖形處理任務,還促進了與顯卡相關的軟件應用的高效執行,確保了這些程序能夠充分利用顯卡的硬件資源。

具體而言,顯卡驅動扮演的角色是,它不僅有效地驅動硬件設備以最佳狀態運行,還包含了必要的硬件配置信息,確保系統及其他軟件能夠準確無誤地與顯卡硬件互動,實現預期功能。

1.安裝包準備

在眾多高性能計算服務器場景中,NVIDIA公司制造的GPU尤其受到青睞。這些GPU不僅擅長加速圖形渲染,還在機器學習、深度學習等領域展現了卓越性能。其中,廣泛采用的型號包括GTX 4080、GTX 4070 Ti及GTX 4060 Ti,這些產品以其強大的計算能力和高度的能效比著稱。

如圖2-1所示,NVIDIA官網提供了相關產品的下載入口。欲了解更多詳細信息,包括NVIDIA的全系列產品陣容,可訪問NVIDIA官網,查看最新的產品系列介紹和詳盡規格,以便用戶根據具體需求做出合適的選擇。

圖2-1

2.Windows系統

通常,為了進行大模型的實踐和部署,對于臺式機而言,如果選擇ChatGLM3-6B并進行量化,則至少需要2060(6GB顯存顯卡)或更高規格的顯卡;對于筆記本電腦,則至少需要3060(8GB顯存顯卡)或更高規格的顯卡。需要特別注意的是,盡管兩者可能使用相同型號的顯卡,但由于移動端顯卡(筆記本電腦顯卡)受限于功耗和散熱等因素,其性能和顯存容量通常會略遜于主機顯卡(臺式機顯卡)。因此,在選擇設備時,應充分考慮到實際的使用需求和性能要求,以確保系統能夠高效運行和處理計算任務。

如圖2-2所示,在Windows的搜索欄中搜索并打開“計算機管理”,如果計算機上沒有安裝NVIDIA顯卡驅動,則需要下載安裝。如果已安裝,則跳過此章節。

圖2-2

(1)找到之前下載的Windows顯卡驅動安裝包的.exe文件,雙擊后執行,如圖2-3所示,建議選擇默認路徑。

圖2-3

(2)進入NVIDIA顯卡驅動安裝程序:找到NVIDIA顯卡驅動安裝的.exe文件,如圖2-4所示,按流程進行安裝。

圖2-4

(3)驗證NVIDIA安裝程序是否已完成,執行到最后一步的結果如圖2-5所示。

圖2-5

(4)安裝完成后,需要重啟計算機才會生效。驗證方法是:重啟計算機后,在桌面上單擊鼠標右鍵,出現如圖2-6所示的圖標則表明安裝成功。

圖2-6

3.Ubuntu系統

在Ubuntu系統下,安裝顯卡驅動通常有以下兩種主要方式。

(1)手動安裝官方提供的NVIDIA顯卡驅動,這種方式相對穩定可靠,但可能需要解決一些問題。

(2)通過系統自帶的“軟件和更新”程序進行附加驅動的更新,這種方法比較簡單,但需要確保系統能夠連接到互聯網。

由于我們通常會在本地化部署的服務器上進行操作,考慮到網絡安全因素,有時服務器可能無法連接到互聯網,因此我們選擇了手動安裝的方式。無論選擇哪種方法,都需要進行一些前置操作,包括安裝必要的依賴包和禁用默認的顯卡驅動。具體的操作步驟如下。

①安裝依賴包。

在終端依次執行完如下命令,如代碼2-1所示。

代碼2-1

②禁用默認驅動。

在安裝NVIDIA顯卡驅動前需要禁止系統自帶顯卡驅動nouveau。如代碼2-2所示,在終端輸入命令打開blacklist.conf文件或新建一個單獨的blacklist-nouveau.conf文件。

代碼2-2

如代碼2-3所示,在打開的文件末尾輸入代碼并保存。

代碼2-3

如代碼2-4所示,通過update-initramfs命令更新系統的initramfs鏡像文件,完成以上步驟后,重啟計算機。然后,在終端中輸入lsmod命令進行驗證。

代碼2-4

如果沒有輸出,則說明禁用了nouveau。

③如圖2-7所示,找到之前下載的Ubuntu顯卡驅動。

使用cd命令進入存放驅動文件的目錄中,使用ls命令查看目錄中的文件。選擇好顯卡驅動和適用平臺后單擊下載,下載完成后,對該驅動添加執行權限,否則無法進入安裝頁面。

圖2-7

執行如代碼2-5所示的代碼,給出執行權限。

代碼2-5

隨后進入安裝界面,依次選擇Continue→不安裝32位兼容庫(選擇no)→不運行x配置(選擇no)。最后輸入reboot命令重啟主機。重新進入圖形化界面,在終端輸入nvidia-smi命令。

2.1.4 安裝CUDA

安裝完驅動后,很多讀者可能會存在一個誤解,即通過nvidia-smi命令可以查看到顯卡驅動兼容的CUDA版本,而本機顯示的版本為“CUDA Version:12.2”。這讓很多人誤以為已經成功安裝了CUDA 12.2版本,實際上,這個版本指的是顯卡驅動兼容的最高CUDA版本。換言之,當前系統驅動所支持的最高CUDA版本是12.2。因此,安裝更高版本的CUDA可能會導致不兼容的問題,需要謹慎考慮。

需要明確的是,顯卡驅動與CUDA的安裝是兩個不同的過程。顯卡驅動的安裝使計算機系統能夠正確識別和使用顯卡,而CUDA則是NVIDIA開發的一個平臺,允許開發者利用特定的NVIDIA GPU進行通用計算。CUDA主要用于完成大量并行處理的計算密集型任務,例如深度學習、科學計算和圖形處理等。如果應用程序或開發工作需要利用GPU的并行計算能力,那么CUDA就顯得至關重要。但是,如果只進行常規使用,例如網頁瀏覽、辦公軟件使用或輕度的圖形處理,那么安裝標準的顯卡驅動就足夠了,不需要單獨安裝CUDA。然而,考慮到進行大模型實踐的需求,安裝CUDA是必不可少的。

CUDA提供兩種主要的編程接口:CUDA Runtime API(Application Programming Interface,應用程序編程接口)和CUDA Driver API。這兩種接口為開發者提供了靈活且高效的方式來利用GPU進行并行計算,從而加速各種類型的計算任務的執行。

(1)CUDA Runtime API是一種更高級別的抽象,旨在簡化編程過程,它自動處理許多底層細節,使得編程更加簡便。大多數程序員選擇使用CUDARuntime API,因為它更易于學習和使用,并能夠提高編程效率。

(2)相比之下,CUDA Driver API提供了更細粒度的控制,允許開發者直接與CUDA驅動進行交互。它通常用于需要對計算資源進行更精細控制的高級應用場景,如特定硬件架構下的性能優化、并行計算任務的調度等。

安裝CUDA,其實就是在安裝CUDA Toolkit,其版本決定了我們可以使用的CUDA RuntimeAPI和CUDA Driver API的版本。安裝CUDA Toolkit時會安裝一系列工具和庫,用于開發和運行CUDA加速的應用程序。這包括CUDA編譯器(nvcc)、CUDA庫和API,以及其他用于支持CUDA編程的工具。如果安裝好了CUDA Toolkit,則可以開發和運行使用CUDA的程序。

1.安裝包準備

需要進入NVIDIA官網,如圖2-8所示,找到需要下載的CUDA版本。

圖2-8

在Linux系統下,用戶需根據自身系統配置與需求,依次選定合適的操作系統版本等參數。如圖2-9所示,Linux提供三種安裝包選項以適應不同的部署情景。

(1)runfile(local):本地安裝,這是一種便捷的安裝方式,將所有安裝文件整合為一個單獨的runfile。用戶下載完畢后,直接執行該文件即可啟動安裝進程,不需要額外的在線下載步驟,簡化了安裝流程。

(2)deb(network):網絡安裝,適用于偏好通過網絡安裝的用戶,需借助操作系統自帶的包管理工具(如APT)來添加CUDA的官方軟件源。完成源的添加后,即可利用包管理工具直接搜索并安裝CUDA,此法便于后續的更新與維護。

(3)deb(local):除網絡安裝外,用戶同樣可以選擇事先下載deb包至本地,然后通過包管理器手動導入并安裝,這種方式適用于網絡條件受限或希望離線部署的場景。

圖2-9

Windows情況如圖2-10所示,概述了兩種可選的安裝包。

圖2-10

這兩種可選的安裝包如下。

(1)exe(local):本地安裝包,這是一個完整的CUDA安裝包,包含所有必需的組件,以可執行文件形式提供,體積較大,大約占用2GB的存儲空間。

(2)exe(network):網絡安裝包,管理器作為另一種選擇,該安裝包的體積較小,約為300MB,實質上是一個下載器,它會在安裝過程中連接至網絡下載所需的CUDA組件,適合那些希望節省初始下載帶寬或僅需特定組件的用戶。

2.Windows系統

在Windows系統下,用戶可通過在命令提示符下執行命令nvcc -V來檢查CUDA的安裝版本,以此驗證CUDA是否已成功安裝在系統中,如圖2-11所示。

圖2-11

如圖2-12所示,打開CUDA的安裝目錄:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\。

圖2-12

若出現如圖2-12所示的文件,說明已經安裝,那么可以跳過該步驟。如果未安裝,則執行以下步驟。

(1)雙擊下載的本地安裝包,如圖2-13所示。

圖2-13

(2)選擇需要安裝的組件,如圖2-14所示。

圖2-14

(3)選擇安裝位置,建議采用默認設置,如圖2-15所示。

圖2-15

(4)添加環境變量,如圖2-16所示,該環境變量有助于未來實現多版本CUDA的切換。

圖2-16

(5)重新執行nvcc -V命令進行驗證,如圖2-17所示。

圖2-17

3.Ubuntu系統

如圖2-18所示,當運行CUDA應用程序時,通常是在使用與安裝的 CUDA Toolkit版本相對應的Runtime API。這可以通過nvcc -V命令查詢。

圖2-18

或者進入/usr/local以查看是否有cuda,如圖2-19所示。

圖2-19

如果已經安裝,則可以跳過該步驟。如果發現未安裝,則執行以下步驟。

(1)通過apt install nvidia-cuda-toolkit安裝的是Ubuntu倉庫中可用的CUDA Toolkit版本,它可能不是最新的版本,也可能不是特定需要的版本。該安裝包主要用于本地CUDA開發(如果想直接編寫CUDA程序或編譯CUDA代碼)。

如圖2-20所示,根據當前官方給出的代碼,在終端執行即可安裝。

圖2-20

(2)修改配置文件:執行命令sudo vim ~/.bashrc,在文本的最后一行添加代碼2-6。

代碼2-6

(3)通過代碼2-7,檢查CUDA是否安裝正確。

代碼2-7

2.1.5 安裝cuDNN

cuDNN的安裝過程相比CUDA而言更為簡便,僅需以下幾個步驟:首先,下載與你的系統及CUDA版本相匹配的cuDNN壓縮包;然后,將解壓后的文件復制到指定的系統目錄中;最后,確保對這些文件設置正確的訪問權限,以便系統能夠順利調用。通過以上操作,cuDNN即可完成安裝并準備就緒。

1.安裝包準備

訪問NVIDIA官方網站,導航至cuDNN的專屬下載頁面。請注意,為獲取下載權限,需要先登錄賬戶并完成一份簡短小問卷。根據圖2-21的指示,根據CUDA版本進行選擇,可直接單擊相關鏈接,開始下載cuDNN的壓縮包。

圖2-21

和CUDA的安裝一樣,如圖2-22所示,官網提供了兩種系統的不同安裝方式,可根據你的系統進行選擇。

圖2-22

2.Windows系統

在Windows系統下,完成cuDNN壓縮包的下載后,按照如圖2-23所示的步驟進行操作:首先,將下載的壓縮包解壓縮;然后,將解壓出的bin、include和lib這三個文件夾分別復制至CUDA工具包的v11.1版本目錄下,目的是替換該目錄中原有的bin、include和lib文件夾,以此完成cuDNN的安裝過程。

圖2-23

3.Ubuntu系統

在Ubuntu系統下,完成文件下載后,需執行代碼2-8中的操作:首先,將相關文件復制至系統指定目錄;然后,通過執行適當的命令為這些文件賦予必要的權限,以確保后續操作能夠順利進行。

代碼2-8

主站蜘蛛池模板: 准格尔旗| 青海省| 平安县| 保定市| 巴林左旗| 鹰潭市| 万宁市| 麻阳| 舒兰市| 黑龙江省| 长垣县| 尤溪县| 达拉特旗| 翼城县| 泾阳县| 会泽县| 嘉黎县| 仁寿县| 增城市| 海伦市| 和静县| 焦作市| 定州市| 广安市| 章丘市| 安吉县| 台北市| 竹溪县| 邯郸市| 广昌县| 芦溪县| 两当县| 丰顺县| 手游| 稻城县| 扶余县| 重庆市| 彩票| 崇义县| 蓬安县| 鲜城|