《人工智能大語(yǔ)言模型應(yīng)用教程》高職全套教學(xué)課件_第1頁(yè)
《人工智能大語(yǔ)言模型應(yīng)用教程》高職全套教學(xué)課件_第2頁(yè)
《人工智能大語(yǔ)言模型應(yīng)用教程》高職全套教學(xué)課件_第3頁(yè)
《人工智能大語(yǔ)言模型應(yīng)用教程》高職全套教學(xué)課件_第4頁(yè)
《人工智能大語(yǔ)言模型應(yīng)用教程》高職全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩268頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

人工智能大語(yǔ)言模型應(yīng)用教程模塊1大語(yǔ)言模型概述模塊1大語(yǔ)言模型概述模塊2開(kāi)發(fā)環(huán)境搭建模塊3大語(yǔ)言模型應(yīng)用基礎(chǔ)模塊4GLM4應(yīng)用與微調(diào)模塊5LLama3應(yīng)用與微調(diào)模塊6Gemma2模型應(yīng)用與微調(diào)模塊7文生視頻大模型應(yīng)用模塊8大模型Chat應(yīng)用模塊9知識(shí)庫(kù)與大模型集成應(yīng)用模塊10翻譯模型應(yīng)用模塊11系統(tǒng)架構(gòu)模塊12大語(yǔ)言模型量化應(yīng)用模塊13AIAgent應(yīng)用模塊14OCR應(yīng)用全套可編輯PPT課件

學(xué)習(xí)

目標(biāo)理解大語(yǔ)言模型的基本概念;了解大語(yǔ)言模型的應(yīng)用場(chǎng)景;了解大語(yǔ)言模型的發(fā)展歷程;掌握開(kāi)源大模型的本地部署與應(yīng)用的安裝、微調(diào)、量化、開(kāi)發(fā)等主要操作的概念;熟悉大語(yǔ)言模型的CUDA、PyTorc

h、Anaconda和Transformers等常用組件的功能;認(rèn)識(shí)大語(yǔ)言模型對(duì)社會(huì)發(fā)展的影響,培養(yǎng)對(duì)技術(shù)的興趣和對(duì)社會(huì)的責(zé)任感;自主查閱相關(guān)資料,提升信息檢索能力;樹(shù)立安全意識(shí),培養(yǎng)遵守法律意識(shí),通過(guò)合法途徑獲取應(yīng)用和數(shù)據(jù)。1.2大語(yǔ)言模型概述基本情況應(yīng)用場(chǎng)景發(fā)展歷程主要操作常用組件1.31.41.51.11.1基本情況大語(yǔ)言模型在文本生成、智能語(yǔ)音應(yīng)用、圖像生成與識(shí)別、視頻生成等領(lǐng)域發(fā)揮越來(lái)越重要的作用,與多模態(tài)模型、AIAgent等技術(shù)一起推動(dòng)著人工智能技術(shù)的發(fā)展和應(yīng)用,成為當(dāng)今人工智能領(lǐng)域的熱門(mén)研究方向,在實(shí)際應(yīng)用中具有廣泛的用途。大語(yǔ)言模型可以用于自動(dòng)文本生成,如文章寫(xiě)作、詩(shī)歌創(chuàng)作、程序補(bǔ)全等大語(yǔ)言模型還可以應(yīng)用于智能對(duì)話系統(tǒng),與用戶進(jìn)行自然對(duì)話交流,如應(yīng)用到醫(yī)療、金融、教育等領(lǐng)域的問(wèn)答、咨詢和分析等場(chǎng)景中大語(yǔ)言模型還可以用于信息檢索、情感分析、文本分類等任務(wù)隨著技術(shù)的發(fā)展,大語(yǔ)言模型已超越了文生文的單一領(lǐng)域應(yīng)用,逐步應(yīng)用到文生圖、圖生圖、文生視頻等多種模態(tài)場(chǎng)景中。大語(yǔ)言模型處于高速發(fā)展期,以O(shè)penAI的GPT系列模型為主要代表,目前最新的模型是GPT4-o3,在編碼、數(shù)學(xué)以及ARC-AGI基準(zhǔn)測(cè)試方面依然處于業(yè)界領(lǐng)先地位,其下一代模型GPT5仍然在訓(xùn)練中。其他廠商的產(chǎn)品也在迅速跟進(jìn),如Meta的LLama3.3、Anthropic的Claude3.5、Google的Gemma2等,也都表現(xiàn)出良好的推理效果國(guó)內(nèi)如百度文心一言、阿里通義千問(wèn)、智譜GLM、華為盤(pán)古、訊飛星火等,發(fā)展也非常迅速,被廣泛應(yīng)用到各個(gè)專業(yè)領(lǐng)域,如教學(xué)、醫(yī)藥、會(huì)計(jì)、農(nóng)業(yè)等。1.2應(yīng)用場(chǎng)景1.3發(fā)展歷程發(fā)展歷程發(fā)展歷程統(tǒng)計(jì)語(yǔ)言模型神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型Seq2Seq模型Transformer模型GPT系列模型單擊添加標(biāo)題單擊添加標(biāo)題1.4主要操作大語(yǔ)言模型的主要操作使用部署微調(diào)量化應(yīng)用大語(yǔ)言模型應(yīng)用領(lǐng)域程序開(kāi)發(fā)工業(yè)設(shè)計(jì)文案撰寫(xiě)搜索增強(qiáng)商業(yè)化的大語(yǔ)言模型開(kāi)源的大語(yǔ)言模型使用常用大語(yǔ)言模型中小規(guī)模的大語(yǔ)言模型部署中小規(guī)模的大語(yǔ)言模型可以部署到消費(fèi)級(jí)顯卡和中低端的推理卡環(huán)境工業(yè)設(shè)計(jì)轉(zhuǎn)化為Huggingface格式,由Huggingface開(kāi)發(fā)的Transformers庫(kù)加載、推理、微調(diào)部署Huggingface.co網(wǎng)站托管預(yù)訓(xùn)練模型通過(guò)大規(guī)模的文本語(yǔ)料庫(kù)進(jìn)行自監(jiān)督學(xué)習(xí),從而學(xué)習(xí)到語(yǔ)言的結(jié)構(gòu)和規(guī)律,形成預(yù)訓(xùn)練模型。模型根據(jù)特定任務(wù)的數(shù)據(jù)集進(jìn)行有監(jiān)督學(xué)習(xí),提高在該任務(wù)上的性能表現(xiàn),以適應(yīng)具體的應(yīng)用場(chǎng)景。微調(diào)微調(diào)163

將大型語(yǔ)言模型中的參數(shù)表示為低精度的形式,以減少模型的存儲(chǔ)空間和計(jì)算需求,同時(shí)保持模型的性能,使其在較低算力的GPU或CPU上進(jìn)行推理,甚至可在移動(dòng)設(shè)備或邊緣設(shè)備上運(yùn)行。量化Chat方式

聊天翻譯語(yǔ)音圖片視頻等應(yīng)用多模態(tài)應(yīng)用檢索知識(shí)庫(kù)1.5常用組件并行計(jì)算平臺(tái)和編程模型NVIDIA公司開(kāi)發(fā),于2005年首次發(fā)布使用C語(yǔ)言編寫(xiě)并行代碼將GPU作為計(jì)算設(shè)備,編寫(xiě)的高性能計(jì)算應(yīng)用程序可以在GPU上運(yùn)行提供了一個(gè)CUDAClibrary,用于在C語(yǔ)言中使用CUDA編程模型具有廣泛的兼容性,可運(yùn)行在Windows、Linux和macOS等操作系統(tǒng)上CUDAPyTorch靈活性和易用性,已經(jīng)成為深度學(xué)習(xí)領(lǐng)域中的一個(gè)流行工具,并被廣泛應(yīng)用于學(xué)術(shù)研究和工業(yè)應(yīng)用中。支持動(dòng)態(tài)計(jì)算圖,這意味著用戶可以在運(yùn)行時(shí)動(dòng)態(tài)構(gòu)建和修改計(jì)算圖,從而更靈活地進(jìn)行模型設(shè)計(jì)和調(diào)試。0304提供了豐富的工具和庫(kù),包括張量計(jì)算、自動(dòng)微分、神經(jīng)網(wǎng)絡(luò)模塊等,使得用戶可以輕松地進(jìn)行模型訓(xùn)練、推理和部署。Facebook開(kāi)源的一個(gè)機(jī)器學(xué)習(xí)庫(kù),主要用于深度學(xué)習(xí)任務(wù),具有靈活的設(shè)計(jì)和易用的接口,使得用戶可以快速構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型0102PyTorchAnaconda存在的問(wèn)題Python環(huán)境包括了Python發(fā)行版和大語(yǔ)言模型依賴的第三方庫(kù),模型不同,對(duì)Python發(fā)行版的版本要求不同,依賴庫(kù)更是千差萬(wàn)別,直接在操作系統(tǒng)上同時(shí)運(yùn)行兩個(gè)及以上的模型比較困難運(yùn)行環(huán)境隔離——AnacondaPython的發(fā)行版,提供一系列用于科學(xué)計(jì)算的庫(kù)內(nèi)置了一個(gè)用于Python環(huán)境隔離的虛擬化環(huán)境,以一種統(tǒng)一的方式來(lái)安裝和管理Python庫(kù)。實(shí)現(xiàn)Python運(yùn)行環(huán)境的虛擬化隔離,在一個(gè)操作系統(tǒng)里為不同模型建立不同的命名空間,形成相互隔離的Python發(fā)行版和依賴庫(kù)。Transformers提供一個(gè)統(tǒng)一的接口來(lái)訪問(wèn)和使用各種預(yù)訓(xùn)練的Transformer模型NLP領(lǐng)域最受歡迎和廣泛使用的庫(kù)之一,為研究者和開(kāi)發(fā)者提供了豐富的資源和工具,幫助他們構(gòu)建和訓(xùn)練高性能的NLP模型?;赑yTorch的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),由Huggingface開(kāi)發(fā)提供了各種預(yù)訓(xùn)練和定制化的神經(jīng)網(wǎng)絡(luò)模型,包括文本分類、自然語(yǔ)言生成、圖像分類、目標(biāo)檢測(cè)等任務(wù),可用于多種模型的裝入、微調(diào)、多GPU訓(xùn)練和分布式訓(xùn)練等。Transformers小結(jié)基本情況應(yīng)用場(chǎng)景發(fā)展歷程主要操作常用組件大語(yǔ)言模型概述人工智能大語(yǔ)言模型應(yīng)用教程模塊2開(kāi)發(fā)環(huán)境搭建學(xué)習(xí)

目標(biāo)

掌握搭建大語(yǔ)言模型環(huán)境所需的軟硬件環(huán)境;

掌握大語(yǔ)言模型的硬件設(shè)備安裝步驟;

掌握不同操作系統(tǒng)下大語(yǔ)言模型運(yùn)行環(huán)境安裝的步驟;

能夠在Linux操作系統(tǒng)(CentOS或Ubuntu)下安裝推理卡驅(qū)動(dòng)、CUDA和Anaconda;

能夠在Windows操作系統(tǒng)下安裝推理卡驅(qū)動(dòng)、CUDA和Anaconda的過(guò)程;

能夠驗(yàn)證大語(yǔ)言模型常用組件是否安裝成功;

培養(yǎng)分析解決問(wèn)題能力,提高動(dòng)手實(shí)踐能力;

培養(yǎng)嚴(yán)謹(jǐn)認(rèn)真的工作態(tài)度,養(yǎng)成規(guī)范操作的習(xí)慣;

培養(yǎng)代碼調(diào)試和代碼分析能力。2.2開(kāi)發(fā)環(huán)境搭建硬件設(shè)備安裝運(yùn)行環(huán)境安裝(CentOS)運(yùn)行環(huán)境安裝(Ubuntu)運(yùn)行環(huán)境安裝(Windows)2.32.42.12.1硬件設(shè)備安裝大語(yǔ)言模型應(yīng)用系統(tǒng)的硬件環(huán)境是服務(wù)器和推理卡(或顯卡)服務(wù)器可以使用高端的PC機(jī)代替硬件配置方面主要是對(duì)主板、電源有要求,至少需要750W的電源主板需要支持指定型號(hào)的顯卡或推理卡。顯卡與推理卡都包含有GPU,但又有所區(qū)別顯卡主要用于圖形和視頻處理,而推理卡主要用于深度學(xué)習(xí)和人工智能推理任務(wù)。兩者在硬件設(shè)計(jì)和功能上有所不同,適用于不同的應(yīng)用場(chǎng)景和任務(wù)需求。運(yùn)行大語(yǔ)言模型的常用顯卡有RTX2080(Ti)、RTX3070、RTX3080、RTX3090、RTX4090等。常用的推理卡有P100、V100、A100、T4等。硬件設(shè)備需求以GERORCERTX2080Ti推理卡為例,在安裝時(shí),將卡插入主板上的插槽,上緊螺絲,確??ü潭ɡ喂毯驼I嵬评砜ò惭b2.2運(yùn)行環(huán)境安裝(CentOS)2.2.1更新操作系統(tǒng)#更新操作系統(tǒng)中已安裝的軟件包sudoyumupdate#修改模塊禁用配置文件sudovim/usr/lib/modprobe.d/dist-blacklist.conf#增加兩行配置blacklistnouveauoptionsnouveaumodeset=0#備份當(dāng)前操作系統(tǒng)鏡像sudomv/boot/initramfs-$(uname-r).img/boot/initramfs-$(uname-r).img.bak#建立操作系統(tǒng)新鏡像sudodracut/boot/initramfs-$(uname-r).img$(uname-r)#重啟操作系統(tǒng)sudoreboot#禁用xserver服務(wù)sudoinit3#校驗(yàn)nouveau是否禁用lsmod|grepnouveau#如果結(jié)果為空,則說(shuō)明禁用成功2.2.2安裝依賴庫(kù)#查看Linux內(nèi)核版本號(hào)uname-r#根據(jù)kernel版本號(hào),比如版本號(hào)為3.10.0-1160.80.1.el7.x86_64,則執(zhí)行以下命令sudoyuminstallgcckernel-devel-3.10.0-1160.80.1.el7.x86_64kernel-headers-ysudoyum-yinstallepel-releasesudoyum-yinstallgccbinutilswgetsudoyum-yinstallkernel-devel#安裝NVIDIA診斷程序sudoyum-yinstall/elrepo-release-7.0-4.el7.elrepo.noarch.rpmsudoyum-yinstallnvidia-detect2.2.3安裝推理卡驅(qū)動(dòng)#自動(dòng)偵測(cè)卡推理驅(qū)動(dòng)nvidia-detect-v#根據(jù)檢測(cè)的驅(qū)動(dòng)情況下載相應(yīng)的安裝包,如檢測(cè)的結(jié)果是550.76,則wget/XFree86/Linux-x86_64/550.76/NVIDIA-Linux-x86_64-550.76.run#執(zhí)行安裝sudosh./NVIDIA-Linux-x86_64-550.76.run#安裝過(guò)程選默認(rèn)值,有一些警告信息,忽略即可#驗(yàn)證結(jié)果,見(jiàn)圖2-2,安裝成功后,nvidia-smi會(huì)顯示推理卡驅(qū)動(dòng)程序版本、支持的CUDA版本、電源使用情況及GPU內(nèi)存占用情況、GPU利用率、推理卡溫度等指標(biāo)等。nvidia-smi2.2.4安裝CUDA#確認(rèn)CUDA安裝包版本,訪問(wèn)以下網(wǎng)址/cuda-toolkit-archive#按nvidia-smi命令執(zhí)行結(jié)果的右上角看到的CUDA版本號(hào)進(jìn)入相應(yīng)鏈接,如CUDAVersion:12.4/cuda-12-4-0-download-archive#選擇相應(yīng)的版本后,確認(rèn)下載的版本,見(jiàn)圖2-3#下載CUDA安裝包wget/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.runsudoshcuda_12.4.1_550.54.15_linux.run#執(zhí)行安裝sudoshcuda_11.7.1_515.65.01_linux.run#安裝過(guò)程中需要有接受協(xié)議的選項(xiàng),要輸入:accept后回車,見(jiàn)圖2-4#安裝過(guò)程中需要選擇安裝選項(xiàng),在這里利用空格鍵去掉driver前的對(duì)勾,因?yàn)榍懊嫖覀円呀?jīng)安裝了驅(qū)動(dòng),然后用方向鍵選install后回車,見(jiàn)圖2-52.2.4安裝CUDA#增加環(huán)境變量

見(jiàn)圖2-6vim~/.bashrc#在最后增加兩行exportPATH=/usr/local/cuda-12.4/bin:$PATHexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.4/lib64#應(yīng)用環(huán)境變量source~/.bashrc#驗(yàn)證CUDAnvcc-V#顯示信息類似如下nvcc:NVIDIA(R)CudacompilerdriverCopyright(c)2005-2024NVIDIACorporationBuiltonThu_Mar_28_02:18:24_PDT_2024Cudacompilationtools,release12.4,V12.4.131Buildcuda_12.4.r12.4/compiler.34097967_02.2.5安裝Anaconda#下載Anaconda安裝包wget/archive/Anaconda3-2024.02-1-Linux-x86_64.sh#安裝,注意不要用sudosh./Anaconda3-2024.02-1-Linux-x86_64.sh#應(yīng)用環(huán)境變量source~/.bashrc#驗(yàn)證conda--version#驗(yàn)證如果報(bào)錯(cuò),重新SSH再試2.3運(yùn)行環(huán)境安裝(Ubuntu)2.3.1更新操作系統(tǒng)#更新操作系統(tǒng)中已安裝的軟件包sudoapt-getupdate#安裝編譯環(huán)境sudoapt-getinstallg++sudoapt-getinstallgccsudoapt-getinstallmake2.3.2禁用nouveau#編輯blacklist.conf文件sudovi/etc/modprobe.d/blacklist.conf#在blacklist.conf末尾添加以下兩行blacklistnouveauoptionsnouveaumodeset=0#對(duì)上面修改的文件進(jìn)行更新sudoupdate-initramfs-u#重啟計(jì)算機(jī)sudoreboot#禁用xserver服務(wù)sudoinit3#檢測(cè)是否禁用nouveau成功#lsmod如果沒(méi)有任何輸出,表示禁用成功lsmod|grepnouveau2.3.3安裝推理卡驅(qū)動(dòng)#卸載原有NVIDIA驅(qū)動(dòng)(如果有)sudoapt-getremove--purgenvidia*#查看推理卡硬件情況sudolshw-numeric-Cdisplaylspci|grepNVIDIA#下載驅(qū)動(dòng)安裝包wget/XFree86/Linux-x86_64/550.76/NVIDIA-Linux-x86_64-550.76.run#安裝(如果第一遍報(bào)錯(cuò),再安裝一遍)sudosh./NVIDIA-Linux-x86_64-550.76.run#驗(yàn)證安裝結(jié)果

見(jiàn)圖2-7,安裝成功后,nvidia-smi會(huì)顯示推理卡驅(qū)動(dòng)程序版本、支持的CUDA版本、電源使用情況及GPU內(nèi)存占用情況、GPU利用率、推理卡溫度等指標(biāo)等。nvidia-smi2.3.4安裝CUDA#首先需要從NVIDIACUDAToolkitReleaseNotes中查看當(dāng)前推理卡驅(qū)動(dòng)對(duì)應(yīng)的CUDA版本#以下鏈接可以看到版本對(duì)應(yīng)關(guān)系#或者看nvidia-smi命令的右上角顯示CUDA版本支持信息/cuda-12-4-0-download-archive#以cuda12.4為例#下載安裝wget/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run#執(zhí)行安裝sudoshcuda_12.4.1_550.54.15_linux.run#安裝過(guò)程中需要有接受協(xié)議的選項(xiàng),要輸入:accept后回車,見(jiàn)圖2-8#安裝過(guò)程中需要選擇安裝選項(xiàng),在這里利用空格鍵去掉driver前的對(duì)勾#因?yàn)榍懊嫖覀円呀?jīng)安裝了驅(qū)動(dòng),然后用方向鍵選install后回車,見(jiàn)圖2-9#增加CUDA環(huán)境變量vim~/.bashrc2.3.4安裝CUDA#增加以下三行exportPATH=/usr/local/cuda-12.4/bin:$PATHexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.4/lib64exportLIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-12.4/lib64#應(yīng)用環(huán)境變量source~/.bashrc#測(cè)試安裝結(jié)果

見(jiàn)圖2-10nvcc-V#出現(xiàn)下列類似信息,則表示安裝成功nvcc:NVIDIA(R)CudacompilerdriverCopyright(c)2005-2024NVIDIACorporationBuiltonThu_Mar_28_02:18:24_PDT_2024Cudacompilationtools,release12.4,V12.4.131Buildcuda_12.4.r12.4/compiler.34097967_02.3.5安裝Anaconda#下載Anaconda安裝包wget/archive/Anaconda3-2024.02-1-Linux-x86_64.sh#安裝,注意不要用sudosh./Anaconda3-2024.02-1-Linux-x86_64.sh#應(yīng)用環(huán)境變量source~/.bashrc#驗(yàn)證conda--version#驗(yàn)證如果報(bào)錯(cuò),重新SSH再試2.4運(yùn)行環(huán)境安裝(Windows)2.4.1更新操作系統(tǒng)(1)打開(kāi)Windows設(shè)置,點(diǎn)擊“開(kāi)始”菜單,選擇“設(shè)置”圖標(biāo)。(2)進(jìn)入“更新與安全”,在設(shè)置窗口中找到“更新與安全”選項(xiàng),點(diǎn)擊進(jìn)入。(3)在“更新與安全”窗口中,點(diǎn)擊“檢查更新”按鈕,系統(tǒng)會(huì)自動(dòng)檢查是否有可用的更新。(4)下載和安裝更新:如果有可用的更新,系統(tǒng)會(huì)顯示更新的詳細(xì)信息,點(diǎn)擊“下載”按鈕開(kāi)始下載更新,然后點(diǎn)擊“安裝”按鈕安裝更新。(5)重啟計(jì)算機(jī)后,在“更新與安全”窗口中可以查看更新的狀態(tài),確保系統(tǒng)已經(jīng)成功更新到最新版本。2.4.2安裝推理卡驅(qū)動(dòng)按照推理卡型號(hào),從NVIDIA官網(wǎng)下載驅(qū)動(dòng)程序進(jìn)行安裝。安裝完成后,在桌面空白處點(diǎn)右鍵,打開(kāi)NVIDIA控制面板,點(diǎn)系統(tǒng)信息->組件,查看CUDA支持情況。2.4.3安裝CUDA從CUDAToolkitArchive找到與推理卡驅(qū)動(dòng)相匹配的CUDA版本,下載后安裝。安裝完成后,在命令行用“nvcc-V”命令測(cè)試是否安裝成功。2.4.4安裝Anacondaconda--versioncondainfo--envs從/下載安裝最新版本,安裝完成后,將Anaconda安裝目錄和Anaconda\Scripts加到操作系統(tǒng)的環(huán)境變量path中,并使用以下命令驗(yàn)證小結(jié)硬件設(shè)備安裝運(yùn)行環(huán)境安裝開(kāi)發(fā)環(huán)境搭建CentOSUbuntuWindows人工智能大語(yǔ)言模型應(yīng)用教程模塊3大語(yǔ)言模型應(yīng)用基礎(chǔ)學(xué)習(xí)

目標(biāo)

了解自然語(yǔ)言處理的概念,掌握自然語(yǔ)言處理主要內(nèi)容;

理解大語(yǔ)言模型基本原理;

理解大語(yǔ)言模型的架構(gòu),如Transformer架構(gòu)、注意力機(jī)制等;

能夠在本地安裝和部署ChatGLM3-6B模型環(huán)境;

能夠編寫(xiě)代碼實(shí)現(xiàn)簡(jiǎn)單大語(yǔ)言模型推理應(yīng)用;

培養(yǎng)嚴(yán)謹(jǐn)認(rèn)真的態(tài)度,養(yǎng)成規(guī)范編程的習(xí)慣;

培養(yǎng)分析解決問(wèn)題的能力,養(yǎng)成獨(dú)立思考的習(xí)慣;

了解大語(yǔ)言模型在應(yīng)用中可能涉及的倫理和法律問(wèn)題,如隱私保護(hù)、數(shù)據(jù)安全等,在部署和應(yīng)用過(guò)程中遵守相關(guān)法律法規(guī)和道德規(guī)范。3.2大語(yǔ)言模型應(yīng)用基礎(chǔ)設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟3.33.43.13.1設(shè)計(jì)目標(biāo)對(duì)大語(yǔ)言模型的基本概念、基本原理的講解,通過(guò)國(guó)產(chǎn)大模型ChatGLM3-6B的安裝部署和應(yīng)用,對(duì)大語(yǔ)言模型建立起基本的概念以及對(duì)原理的了解,直觀感受大語(yǔ)言模型的應(yīng)用場(chǎng)景和運(yùn)行原理設(shè)計(jì)目標(biāo)3.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境

硬件:服務(wù)器、推理卡(NVIDIA16G顯存以上)

軟件:Python、大語(yǔ)言模型ChatGLM3-6B3.3原理學(xué)習(xí)3.3.1系統(tǒng)功能概要虛擬操作指導(dǎo)在線問(wèn)答解惑操作體驗(yàn)反饋常見(jiàn)問(wèn)題庫(kù)3.3.2自然語(yǔ)言處理概要涉及語(yǔ)音識(shí)別、自然語(yǔ)言理解、對(duì)話系統(tǒng)、機(jī)器翻譯等多個(gè)研究方向,在人機(jī)交互、互聯(lián)網(wǎng)搜索、智能客服、語(yǔ)音助手等領(lǐng)域都有廣泛的應(yīng)用前景使機(jī)器可以分析、理解人類的語(yǔ)言,并以人類可以理解的方式反饋,對(duì)于構(gòu)建更智能的人機(jī)交互系統(tǒng)具有重要意義0304研究目標(biāo)是讓機(jī)器能夠真正地理解人類語(yǔ)言,并實(shí)現(xiàn)人機(jī)交互研究對(duì)象是人類語(yǔ)言,用于解決人類語(yǔ)言在計(jì)算機(jī)處理中的各種問(wèn)題一門(mén)關(guān)于用機(jī)器處理和理解人類語(yǔ)言的理論和技術(shù)的研究領(lǐng)域,是人工智能的一個(gè)重要分支,也是計(jì)算語(yǔ)言學(xué)的一個(gè)子領(lǐng)域。0102自然語(yǔ)言處理3.3.2自然語(yǔ)言處理概要自然語(yǔ)言處理主要內(nèi)容1.自然語(yǔ)言生成根據(jù)輸入的提示或上文信息,自動(dòng)生成連續(xù)的自然語(yǔ)言文本。5.篇章分析對(duì)上下文和語(yǔ)義進(jìn)行建模,理解篇章級(jí)語(yǔ)義,如用于撰寫(xiě)論文的摘要。4.語(yǔ)義分析分析語(yǔ)句的語(yǔ)義,提取文本的語(yǔ)義信息,典型的應(yīng)用場(chǎng)景是源代碼的解讀。2.詞法分析識(shí)別語(yǔ)言文本中的詞匯及其詞性,進(jìn)行詞干提取、詞形還原等。3.句法分析識(shí)別句子成分及其語(yǔ)法關(guān)系和句法結(jié)構(gòu)。自然語(yǔ)言處理主要內(nèi)容6.對(duì)話系統(tǒng)使系統(tǒng)能夠理解用戶意圖,進(jìn)行自然語(yǔ)言問(wèn)答,支持多輪會(huì)話。10.知識(shí)圖譜構(gòu)建概念實(shí)體及其關(guān)系的知識(shí)庫(kù)。9.語(yǔ)音識(shí)別與合成將語(yǔ)音轉(zhuǎn)錄成文字,或者將文字轉(zhuǎn)換成語(yǔ)音。7.機(jī)器翻譯使用算法將一種語(yǔ)言翻譯成另一種語(yǔ)言,這是自然語(yǔ)言處理最傳統(tǒng)的應(yīng)用。8.信息提取從文本中提取結(jié)構(gòu)化信息,典型應(yīng)用場(chǎng)景如從電子病歷中提取醫(yī)療關(guān)鍵指標(biāo)項(xiàng)。3.3.2自然語(yǔ)言處理概要3.3.3大語(yǔ)言模型基本原理減少了對(duì)大量標(biāo)注數(shù)據(jù)的依賴,可進(jìn)行自回歸生成,逐詞預(yù)測(cè)下一個(gè)最可能的詞匯通過(guò)掩碼語(yǔ)言模型、下一句預(yù)測(cè)等任務(wù)學(xué)習(xí)語(yǔ)言統(tǒng)計(jì)規(guī)律,之后在下游NLP任務(wù)進(jìn)行模型微調(diào),使其適應(yīng)特定任務(wù)0304需要大量的帶有標(biāo)簽的訓(xùn)練數(shù)據(jù)來(lái)指導(dǎo)模型的預(yù)測(cè)一種深度學(xué)習(xí)技術(shù),其特點(diǎn)之一就是通常不需要人工標(biāo)注的數(shù)據(jù)進(jìn)行訓(xùn)練。0102自監(jiān)督預(yù)訓(xùn)練3.3.3大語(yǔ)言模型基本原理大語(yǔ)言模型通常采用Transformer或其優(yōu)化版本作為模型骨干架構(gòu)。Transformer最初在翻譯場(chǎng)景應(yīng)用廣泛,輸入一種語(yǔ)言,經(jīng)Transformer轉(zhuǎn)化后,輸出另一種語(yǔ)言,與Transformer(可譯為變形金剛或變壓器)的本意近似。Transformer通過(guò)編碼器——解碼器結(jié)構(gòu),多頭注意力機(jī)制以及前饋全連接網(wǎng)絡(luò),能夠?qū)W習(xí)語(yǔ)言中的長(zhǎng)距離依賴關(guān)系,理解語(yǔ)義信息。1.Transformer架構(gòu)3.3.3大語(yǔ)言模型基本原理Transformer由6層編碼器和6層解碼器組成每一層編碼器的輸入是前一個(gè)編碼器的輸出每一層解碼器的輸入不光是它的前一個(gè)解碼器的輸出,還包括了整個(gè)編碼部分的輸出。原始的文字通過(guò)編碼和解碼過(guò)程,最終形成目標(biāo)文本。1.Transformer架構(gòu)3.3.3大語(yǔ)言模型基本原理Transformer的多頭自注意力可以建模Token之間的相關(guān)性,學(xué)習(xí)文本全局的語(yǔ)義信息。每個(gè)編碼器(Encoder)的結(jié)構(gòu)是一個(gè)自注意力機(jī)制加上一個(gè)前饋神經(jīng)網(wǎng)絡(luò)Self-attention的輸入就是詞向量,即整個(gè)模型的最初的輸入是詞向量的形式自注意力機(jī)制是自己和自己計(jì)算一遍注意力,即對(duì)每一個(gè)輸入的詞向量,我們需要構(gòu)建Self-attention的輸入。2.注意力機(jī)制3.4實(shí)驗(yàn)步驟3.4.1安裝部署(1)下載ChatGLM3源碼(2)建立python3.10虛擬環(huán)境(3)在ChatGLM3虛擬環(huán)境下安裝依賴(4)PyTorch驗(yàn)證或重裝1.ChatGLM3運(yùn)行環(huán)境安裝2.下載ChatGLM3-6B模型文件3.4.2應(yīng)用開(kāi)發(fā)開(kāi)發(fā)一個(gè)最簡(jiǎn)單大語(yǔ)言模型推理應(yīng)用,實(shí)現(xiàn)輸入問(wèn)題,由大模型給出推理結(jié)果2.4.3安裝CUDA從CUDAToolkitArchive找到與推理卡驅(qū)動(dòng)相匹配的CUDA版本,下載后安裝。安裝完成后,在命令行用“nvcc-V”命令測(cè)試是否安裝成功。3.4.3功能演示小結(jié)開(kāi)發(fā)環(huán)境搭建原理學(xué)習(xí)大語(yǔ)言模型應(yīng)用基礎(chǔ)實(shí)驗(yàn)步驟人工智能大語(yǔ)言模型應(yīng)用教程模塊4GLM4應(yīng)用與微調(diào)學(xué)習(xí)

目標(biāo)

理解微調(diào)的概念;

理解掌握Transformer模型的參數(shù);

了解大語(yǔ)言模型常用微調(diào)方法的原理,包括全量微調(diào)FFT、基于人類反饋的強(qiáng)化學(xué)習(xí)微調(diào)RLHF、P-Tuning和大語(yǔ)言模型的低秩適配LoRA;

會(huì)安裝和部署GLM4的開(kāi)發(fā)環(huán)境;

掌握大語(yǔ)言模型微調(diào)語(yǔ)料的整理方法,能夠按要求整理微調(diào)語(yǔ)料;

能夠運(yùn)用LoRA微調(diào)方法進(jìn)行大語(yǔ)言模型的訓(xùn)練;

能夠運(yùn)用P-tuningV2微調(diào)方法進(jìn)行大語(yǔ)言模型的訓(xùn)練;

培養(yǎng)數(shù)據(jù)安全意識(shí),培養(yǎng)遵守法律、愛(ài)崗敬業(yè)意識(shí);

養(yǎng)成規(guī)范編寫(xiě)代碼的習(xí)慣,培養(yǎng)代碼調(diào)試能力;

培養(yǎng)自主學(xué)習(xí)和分析解決問(wèn)題的能力。4.2GLM4應(yīng)用與微調(diào)設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟4.34.44.14.1設(shè)計(jì)目標(biāo)大語(yǔ)言模型(LLM)由大規(guī)模的參數(shù)(權(quán)重)組成,這些參數(shù)用于表示模型學(xué)習(xí)到的語(yǔ)言知識(shí)和規(guī)律。在深度學(xué)習(xí)中,參數(shù)通常是模型中可調(diào)整的變量,它們的值通過(guò)在數(shù)據(jù)上訓(xùn)練進(jìn)行學(xué)習(xí)和優(yōu)化。大語(yǔ)言模型的參數(shù)數(shù)量通常與模型的規(guī)模和復(fù)雜度相關(guān),更多的參數(shù)通常意味著模型可以學(xué)習(xí)到更多復(fù)雜的語(yǔ)言特征和模式。設(shè)計(jì)目標(biāo)4.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境硬件:服務(wù)器、推理卡(NVIDIA16G顯存以上)軟件:Python、大語(yǔ)言模型GLM-4-9B-Chat4.3原理學(xué)習(xí)4.3.1大語(yǔ)言模型參數(shù)目前的大語(yǔ)言模型大部分都基于Transformer架構(gòu)使用自注意力機(jī)制顯著提高深度學(xué)習(xí)NLP模型的性能Transformer首次在論文《Attentionisallyouneed》中出現(xiàn),由Google翻譯團(tuán)隊(duì)發(fā)明。4.3.1大語(yǔ)言模型參數(shù)大語(yǔ)言模型參數(shù)1.層數(shù)(num_layers)指模型中有多少層。每一層都會(huì)對(duì)輸入數(shù)據(jù)進(jìn)行不同的處理,產(chǎn)生不同的特征,最后通過(guò)一個(gè)或多個(gè)輸出層產(chǎn)生最終的輸出。5.損失函數(shù)(loss_fn)指在訓(xùn)練過(guò)程中使用的損失函數(shù),可以用來(lái)評(píng)估模型的性能,并指導(dǎo)模型的訓(xùn)練過(guò)程。4.激活函數(shù)(activation_fn)指在每層神經(jīng)網(wǎng)絡(luò)中使用的激活函數(shù)2.每層參數(shù)(params)指每層神經(jīng)網(wǎng)絡(luò)中的參數(shù),包括激活函數(shù)、權(quán)重等。這些參數(shù)是在模型訓(xùn)練過(guò)程中需要學(xué)習(xí)的,通過(guò)反向傳播算法來(lái)更新。3.嵌入層(embedding_dim)識(shí)別句子成分及其語(yǔ)法關(guān)系和句法結(jié)構(gòu)。大語(yǔ)言模型參數(shù)6.采樣層(sampling_strategy)指采樣數(shù)據(jù)的方式,如Cross-EntropyLoss、SmoothL1Loss等??梢詭椭P透玫胤夯?,避免過(guò)擬合。10.學(xué)習(xí)率(learning_rate)指在模型訓(xùn)練過(guò)程中使用的學(xué)習(xí)率,用于控制梯度的更新速度。9.激活函數(shù)參數(shù)(activation_param)指每層激活函數(shù)的參數(shù)值,如ReLU的參數(shù)值為0.7。這些參數(shù)是在模型訓(xùn)練過(guò)程中需要學(xué)習(xí)的,通過(guò)反向傳播算法來(lái)更新。7.初始化(init_value)指對(duì)層權(quán)重的初始值,如隨機(jī)初始化、Xavier初始化等。這些初始值在模型訓(xùn)練過(guò)程中也會(huì)不斷更新,以反映數(shù)據(jù)分布的變化。8.權(quán)重共享(weight_sharing)指不同層之間權(quán)重共享的方式,如完全共享、部分共享等。可以有效減少模型的參數(shù)量,提高模型的訓(xùn)練效率。4.3.1大語(yǔ)言模型參數(shù)4.3.2微調(diào)方法對(duì)整個(gè)預(yù)訓(xùn)練模型進(jìn)行微調(diào)的方法,調(diào)整的范圍包括所有的模型參數(shù)。預(yù)訓(xùn)練模型的所有層和參數(shù)都可能會(huì)被更新和優(yōu)化,以適應(yīng)新加入的語(yǔ)料。適用于微調(diào)任務(wù)和預(yù)訓(xùn)練模型之間存在很大差異的情況需要較大的算力資源和時(shí)間,但可以獲得比較好的效果。1.全量微調(diào)FFT(FullFineTuning)4.3.2微調(diào)方法RLHF是基于人類反饋對(duì)大語(yǔ)言模型進(jìn)行強(qiáng)化學(xué)習(xí),其主要特點(diǎn)是把人類的反饋,通過(guò)強(qiáng)化學(xué)習(xí)的方式引入到對(duì)大模型的微調(diào)中去,讓大模型生成的結(jié)果,更加符合人類的期望。RLHF是ChatGPT模型訓(xùn)練的手段。RLHF01監(jiān)督微調(diào)(SFT)02獎(jiǎng)勵(lì)模型微調(diào)(RW)03RLHF訓(xùn)練使用人工精選的問(wèn)題與答案,微調(diào)預(yù)訓(xùn)練的語(yǔ)言模型,形成多個(gè)預(yù)選模型。用多個(gè)模型(初始模型、finetune模型)給出問(wèn)題的多個(gè)回答,然后人工給這些問(wèn)答按一些標(biāo)準(zhǔn)(可讀性、無(wú)害、正確性)進(jìn)行排序,訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型/偏好模型來(lái)打分(rewardmodel)利用ProximalPolicyOptimization(PPO)

算法,根據(jù)RW模型的獎(jiǎng)勵(lì)反饋進(jìn)一步微調(diào)SFT模型2.基于人類反饋的強(qiáng)化學(xué)習(xí)微調(diào)RLHF4.3.2微調(diào)方法P-Tuningv2是GLM模型專有的微調(diào)方式。Prompttuning僅使用凍結(jié)語(yǔ)言模型調(diào)整連續(xù)提示(Prompt),減少訓(xùn)練時(shí)的每個(gè)任務(wù)存儲(chǔ)和內(nèi)存使用量,對(duì)于正常大小的預(yù)訓(xùn)練模型效果不佳。P-Tuningv2提出了適當(dāng)優(yōu)化的即時(shí)調(diào)整可以在各種規(guī)模的模型中普遍有效,優(yōu)化的提示調(diào)整策略在中小型模型和序列標(biāo)記上實(shí)現(xiàn)了與微調(diào)相當(dāng)?shù)男阅堋?.P-Tuning(PromptTuning)4.3.2微調(diào)方法LoRA的基本原理是凍結(jié)預(yù)訓(xùn)練好的模型權(quán)重參數(shù)在凍結(jié)原模型參數(shù)的情況下,通過(guò)往模型中加入額外的網(wǎng)絡(luò)層,并只訓(xùn)練這些新增的網(wǎng)絡(luò)層參數(shù)。不僅微調(diào)的成本顯著下降,還能獲得和全模型參數(shù)參與微調(diào)類似的效果。4.大語(yǔ)言模型的低秩適配LoRA4.4實(shí)驗(yàn)步驟4.4.1環(huán)境安裝#下載源碼gitclone/git-cloner/gpt-course#切換目錄cdgpt-course/chapter04#創(chuàng)建虛擬環(huán)境condacreate-nglm-4python=3.10-y#激活虛擬環(huán)境condaactivateglm-4#安裝依賴庫(kù)pipinstall-rrequirements.txt\-i/pypi/simple#驗(yàn)證PyTorchpython-c"importtorch;print(torch.cuda.is_available())"4.4.2模型下載#模型下載腳本從首頁(yè)下載#鏈接為/model_download.py#linux下使用wget命令下載,Windows下直接在瀏覽器打開(kāi)鏈接下載wget/model_download.py#從下載glm-4-9b-chat模型文件pythonmodel_download.py--e--repo_idTHUDM/glm-4-9b-chat\--tokenYPY8KHDQ2NAHQ2SG#下載后的文件在./dataroot/models/THUDM/glm-4-9b-chat目錄下4.4.3推理測(cè)試#啟動(dòng)推理服務(wù)MODEL_PATH=dataroot/models/THUDM/glm-4-9b-chat\pythonweb_demo_int8.py#驗(yàn)證打開(kāi)瀏覽器,訪問(wèn):http://服務(wù)器IP:80004.4.4語(yǔ)料準(zhǔn)備1.原始語(yǔ)料整理2.微調(diào)語(yǔ)料格式要求3.語(yǔ)料格式轉(zhuǎn)換4.4.5微調(diào)過(guò)程1.微調(diào)所需文件2.LORA微調(diào)3.微調(diào)過(guò)程注意事項(xiàng)4.驗(yàn)證微調(diào)結(jié)果5.P-tuningv2微調(diào)小結(jié)開(kāi)發(fā)環(huán)境搭建原理學(xué)習(xí)GLM4應(yīng)用與微調(diào)實(shí)驗(yàn)步驟人工智能大語(yǔ)言模型應(yīng)用教程模塊5LLama3應(yīng)用與微調(diào)學(xué)習(xí)

目標(biāo)

了解LLama3大語(yǔ)言模型;

掌握LLama3的兩種微調(diào)方法:監(jiān)督微調(diào)和llama-recipes微調(diào);

掌握LLama3大語(yǔ)言模型的部署方法,會(huì)搭建LLama3大語(yǔ)言模型應(yīng)用環(huán)境;

能按要求準(zhǔn)備LLama3微調(diào)語(yǔ)料;

掌握LLama3大語(yǔ)言模型微調(diào)方法;

能編寫(xiě)程序?qū)崿F(xiàn)監(jiān)督微調(diào)和llama-recipes微調(diào);

了解與人工智能相關(guān)的法律法規(guī),培養(yǎng)倫理和法律意識(shí);

樹(shù)立數(shù)據(jù)規(guī)范意識(shí),按規(guī)范格式準(zhǔn)備語(yǔ)料;自主查閱相關(guān)資料,提升信息檢索能力和自學(xué)能力。5.2LLama3應(yīng)用與微調(diào)設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟5.35.45.15.1設(shè)計(jì)目標(biāo)LLama是在ChatGPT發(fā)布后,由Meta發(fā)布的開(kāi)源免費(fèi)商用的大語(yǔ)言模型。通過(guò)對(duì)LLama3應(yīng)用的全流程學(xué)習(xí),掌握基于Transformer的LLama3大語(yǔ)言模型基本原理和應(yīng)用過(guò)程。設(shè)計(jì)目標(biāo)5.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境

硬件:服務(wù)器、NVIDIA16G顯存

軟件:Python、大語(yǔ)言模型Meta-Llama-3.1-8B5.3原理學(xué)習(xí)5.3.1Llama3介紹Llama3是Llama系列的第三代模型,于2024年4月19日發(fā)布采用了自回歸Transformer架構(gòu),這種結(jié)構(gòu)特別適合于處理復(fù)雜的文本生成任務(wù),能有效提升文本的連貫性和相關(guān)性Llama3還引入了分組查詢注意力技術(shù),這不僅提升了大數(shù)據(jù)處理的效率,還加快了響應(yīng)速度。5.3.2LLama3微調(diào)采用Meta官方微調(diào)方法llama-recipes微調(diào)參數(shù)高效模型微調(diào)(ParameterEfficientModelFine-Tuning,簡(jiǎn)稱peft)全/部分參數(shù)微調(diào)(Full/PartialParameterFine-Tuning)使用Transformers庫(kù)提供的SFTTrainer方法進(jìn)行SFT微調(diào)。5.3.2LLama3微調(diào)此類微調(diào)中采用的策略有LoRA、LLaMA適配器(LLaMAAdapter)和前綴調(diào)整(Prefix-tuning)參數(shù)高效模型微調(diào)占用較少的GPU內(nèi)存資源Meta-Llama-3.1-8B-Instruct模型,可以在16G的GPU(如P100、T4)上微調(diào)。參數(shù)高效模型微調(diào)的方法是保持整個(gè)模型參數(shù)凍結(jié),只在模型上添加微小的可學(xué)習(xí)參數(shù)或?qū)?這樣就只訓(xùn)練一小部分參數(shù)。1.參數(shù)高效模型微調(diào)5.3.2LLama3微調(diào)全參數(shù)微調(diào)策略保持預(yù)訓(xùn)練模型凍結(jié),僅微調(diào)任務(wù)頭,例如分類器模型;對(duì)所有圖層進(jìn)行微調(diào)。保持預(yù)訓(xùn)練模型凍結(jié),并在頂部添加一些完全連接的層;2.全/部分參數(shù)微調(diào)5.3.2LLama3微調(diào)SFT(SupervisedFine-Tuning)是對(duì)預(yù)訓(xùn)練模型進(jìn)行特定任務(wù)的訓(xùn)練,用以提高模型在新任務(wù)上的推理表現(xiàn)。SFT涉及在標(biāo)注的數(shù)據(jù)集上訓(xùn)練模型,模型學(xué)習(xí)為每個(gè)輸入預(yù)測(cè)正確的標(biāo)簽。SFT需要良好標(biāo)注的數(shù)據(jù)來(lái)二次訓(xùn)練模型,以加強(qiáng)特定方面的知識(shí)SFT一般只需要比較少的標(biāo)注數(shù)據(jù)就可達(dá)到較好的效果。3.監(jiān)督微調(diào)SFTalpaca_dataset(斯坦福開(kāi)源數(shù)據(jù)集)是用于微調(diào)Alpaca模型[]的52K條指令數(shù)據(jù)。alpaca_dataset文件是一個(gè)字典列表,每個(gè)字典包含以下字段:指令(instruction)、輸入(input)和輸出(output)。5.3.3alpaca_dataset語(yǔ)料1.指令(instruction)描述模型應(yīng)執(zhí)行的任務(wù),52K組數(shù)據(jù)中,每一個(gè)指令是唯一的,不能重復(fù)。2.輸入(input)任務(wù)的可選上下文或輸入。3.輸出(output)由text-davinci-003(chatGPT3.5背后的大語(yǔ)言模型)生成的指令答案。5.3.4模型量化裝載模型量化(Quantization)是一種用于通過(guò)修改權(quán)重的精度來(lái)減小大型神經(jīng)網(wǎng)絡(luò)(包括大型語(yǔ)言模型)規(guī)模的技術(shù)Hugingface的Transformers庫(kù)集成了量化策略,在from_pretrain()裝載預(yù)訓(xùn)練模型時(shí)傳遞load_in_8bit來(lái)實(shí)現(xiàn)INT8量化裝載,針對(duì)幾乎大部分Transformers模型有效。5.4實(shí)驗(yàn)步驟4.4.4語(yǔ)料準(zhǔn)備1.下載源碼2.環(huán)境安裝3.模型下載4.推理測(cè)試5.4.2監(jiān)督微調(diào)1.語(yǔ)料準(zhǔn)準(zhǔn)備2.微調(diào)程序開(kāi)發(fā)3.微調(diào)參數(shù)4.微調(diào)過(guò)程5.模型合并6.推理測(cè)試5.4.3llama-recipes微調(diào)1.環(huán)境安裝2.數(shù)據(jù)準(zhǔn)備3.微調(diào)參數(shù)4.微調(diào)過(guò)程5.模型合并6.推理測(cè)試小結(jié)開(kāi)發(fā)環(huán)境搭建原理學(xué)習(xí)LLama3應(yīng)用與微調(diào)實(shí)驗(yàn)步驟人工智能大語(yǔ)言模型應(yīng)用教程模塊6

Gemma2模型應(yīng)用與微調(diào)學(xué)習(xí)

目標(biāo)

了解Gemma2模型;

理解Gemma2模型的推理、量化和微調(diào)的原理;

能夠搭建Gemma2模型開(kāi)發(fā)環(huán)境,并進(jìn)行推理;

能夠使用Ollama量化Gemma2模型;

能夠獲取Gemma2模型微調(diào)所用的數(shù)據(jù)集(語(yǔ)料),并進(jìn)行微調(diào);

培養(yǎng)良好的道德品質(zhì)和職業(yè)素養(yǎng);

培養(yǎng)創(chuàng)新思維和自主學(xué)習(xí)能力;

培養(yǎng)嚴(yán)謹(jǐn)、求實(shí)、創(chuàng)新的科學(xué)精神,培養(yǎng)分析解決問(wèn)題的能力。6.2Gemma2模型應(yīng)用與微調(diào)設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟6.36.46.16.1設(shè)計(jì)目標(biāo)什么是GemmaGemma是GoogleDeepMind基于Gemini的研究成果和技術(shù)推出的一系列開(kāi)放權(quán)重大型語(yǔ)言模型。是一系列輕量級(jí)、開(kāi)放式模型是文本到文本(TextToText)、僅解碼器(DecoderOnly)的大型語(yǔ)言模型設(shè)計(jì)目標(biāo)Gemma的特點(diǎn)6.2開(kāi)發(fā)環(huán)境推理與微調(diào)硬件:服務(wù)器、推理卡(NVIDIA16G顯存以上)軟件:Python、大語(yǔ)言模型google/gemma-2-2b-it、VSCode編輯器硬件:筆記本電腦或PC機(jī),4核CPU、8G以上內(nèi)存,無(wú)需GPU軟件:Ollama開(kāi)發(fā)環(huán)境量化6.3原理學(xué)習(xí)基本信息與版本特點(diǎn)Gemma2是Google基于Gemini技術(shù)推出的新型大型語(yǔ)言模型,提供2B、9B和27B等不同規(guī)模版本,各版本又分預(yù)訓(xùn)練基礎(chǔ)版和指令優(yōu)化版。其中9B以下版本可在RTX4090、RTX3090、P100、T4等消費(fèi)級(jí)推理卡硬件上運(yùn)行。Gemma2原始模型在發(fā)布,與Huggingface合作集成至其生態(tài),轉(zhuǎn)化為Huggingface格式供開(kāi)發(fā)者免費(fèi)下載。使用Huggingface的Transformers庫(kù)加載運(yùn)行,和LLama-3等模型使用方式類似。推理時(shí)用AutoModelForCausalLM.from_pretrained加載模型,model.generate推理,加載模型采用load_in_8bit和load_in_4bit量化模式,過(guò)程順暢且資源占用少。推理方法發(fā)布、集成及使用方式大語(yǔ)言模型量化指降低模型精度,使其能在CPU等低算力條件下運(yùn)行。這一過(guò)程通過(guò)技術(shù)手段調(diào)整模型參數(shù)表示方式,在一定程度上犧牲精度,換取更低的硬件資源需求和更廣泛的運(yùn)行環(huán)境適配性。Google為Gemma2提供gemma.cpp項(xiàng)目,用于基礎(chǔ)模型量化。gemma.cpp是輕量級(jí)獨(dú)立C++推理引擎,專注于簡(jiǎn)單直接的實(shí)現(xiàn),能助力Gemma2在低算力下高效運(yùn)行,不過(guò)通用性并非其重點(diǎn)考量。Ollama是大語(yǔ)言模型本地部署工具,基于Llama模型和llama.cpp框架構(gòu)建。它通過(guò)裝入GGUF格式大模型文件實(shí)現(xiàn)低算力推理,原理是壓縮大模型參數(shù)以加快載入并降低資源消耗,同時(shí)用C++重寫(xiě)推理代碼提升性能。Ollama最初為解決Llama系列量化推理問(wèn)題而生,如今功能擴(kuò)展,不僅支持Llama系列模型,還支持Mistral、Gemma2、GLM-4等非Llama架構(gòu)模型,但量化模型推理效果遜于原始模型。量化過(guò)程LoRA微調(diào)低秩適配(LoRA)是一種用于大語(yǔ)言模型(LLM)的參數(shù)高效微調(diào)技術(shù),這種微調(diào)方案只針對(duì)模型參數(shù)的一小部分進(jìn)行微調(diào),通過(guò)凍結(jié)原始模型并只訓(xùn)練被分解為低秩矩陣的適配器層,以此提高微調(diào)效率、減少“災(zāi)難性遺忘”等問(wèn)題。微調(diào)策略6.4實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟推理:

建立虛擬環(huán)境

下載模型開(kāi)發(fā)推理樣例實(shí)驗(yàn)步驟效果展示:

實(shí)驗(yàn)步驟量化:

Ollama安裝curl-fsSL/install.sh|sh

運(yùn)行量化模型以gemma2-9b的量化模型為例,運(yùn)行以下命令:ollamarungemma2:9b實(shí)驗(yàn)步驟微調(diào):開(kāi)發(fā)微調(diào)樣例下載語(yǔ)料文件微調(diào)過(guò)程小結(jié)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)Gemma2模型應(yīng)用與微調(diào)實(shí)驗(yàn)步驟人工智能大語(yǔ)言模型應(yīng)用教程模塊7文生視頻大模型應(yīng)用學(xué)習(xí)

目標(biāo)

了解文生視頻大模型的基本情況;

理解文生視頻大模型的基本原理;

能夠安裝與使用文生視頻大模型Allegro;

能夠安裝與使用文生視頻大模型CogVideoX;

培養(yǎng)良好的道德品質(zhì)和職業(yè)素養(yǎng),不進(jìn)行違背道德倫理的應(yīng)用測(cè)試和開(kāi)發(fā);

培養(yǎng)嚴(yán)謹(jǐn)認(rèn)真的工作態(tài)度,養(yǎng)成規(guī)范操作的習(xí)慣。7.2文生視頻大模型應(yīng)用設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟7.37.47.17.1設(shè)計(jì)目標(biāo)多模態(tài)結(jié)合不同類型的信息源進(jìn)行理解和處理的一種技術(shù)和研究領(lǐng)域,通過(guò)整合來(lái)自不同模態(tài)的信息,能夠更好地理解和生成復(fù)雜的內(nèi)容,具有更加智能和豐富的交互能力AllegroCogVideoX設(shè)計(jì)目標(biāo)文生視頻模型7.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境硬件:服務(wù)器、推理卡(NVIDIA16G顯存以上)軟件:Python、大語(yǔ)言模型Allegro和CogVideoX-2b開(kāi)發(fā)環(huán)境7.3原理學(xué)習(xí)文生視頻簡(jiǎn)介文生視頻模型是一種采用深度學(xué)習(xí)技術(shù)來(lái)生成視頻的模型,通過(guò)大量的文本數(shù)據(jù)和視頻數(shù)據(jù)進(jìn)行訓(xùn)練,從而學(xué)習(xí)文本與視頻之間的映射關(guān)系核心是一個(gè)高度復(fù)雜的神經(jīng)網(wǎng)絡(luò)架構(gòu),包含卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等多種組件。這些網(wǎng)絡(luò)通過(guò)多層的卷積、池化和全連接操作,將文本提示轉(zhuǎn)換為一系列視頻幀。在生成視頻內(nèi)容的過(guò)程中,文生視頻模型會(huì)從輸入的文本提示詞中識(shí)別出關(guān)鍵信息和相關(guān)的語(yǔ)義信息,從而生成相應(yīng)的視頻幀,該模型依據(jù)關(guān)鍵信息的語(yǔ)義選擇場(chǎng)景、設(shè)計(jì)人物和進(jìn)行場(chǎng)景合成等操作,以產(chǎn)生與文本描述基本一致的視頻文件。原理學(xué)習(xí)Allegro介紹Allegro是一款功能強(qiáng)大的文本轉(zhuǎn)視頻模型,可通過(guò)簡(jiǎn)單的文本輸入以15FPS和720p的分辨率生成6秒的高質(zhì)量視頻此質(zhì)量級(jí)別允許高效創(chuàng)建各種電影主題,從人物的詳細(xì)特寫(xiě)、在各種設(shè)置中行動(dòng)的動(dòng)物,以及根據(jù)文本描述可以想象的幾乎任何場(chǎng)景Allegro可以采用CPUOffload將激活和非活動(dòng)權(quán)重從GPU卸載到CPU來(lái)降低GPU的峰值內(nèi)存使用量技術(shù)以及模型量化技術(shù),只需要9.3G的GPU內(nèi)存就可以生成視頻,大大降低了實(shí)踐文生視頻所需算力資源原理學(xué)習(xí)CogVideoX介紹CogVideoX是清華大學(xué)研制的一種基于DiffusionTransformer的大規(guī)模文本轉(zhuǎn)視頻生成模型,可以生成10秒的連續(xù)視頻,與文本提示對(duì)齊,幀率為16fps,分辨率為768*1360像素使用了一種3D變分自動(dòng)編碼器(VAE)來(lái)沿空間和時(shí)間維度壓縮視頻,以提高壓縮率和視頻保真度為了提高文本——視頻對(duì)齊,提出了一個(gè)帶有專家自適應(yīng)LayerNorm的Transformer,以促進(jìn)兩種模態(tài)之間的深度融合通過(guò)采用漸進(jìn)式訓(xùn)練和多分辨率幀包技術(shù),

擅長(zhǎng)制作連貫、長(zhǎng)時(shí)間、不同形狀的視頻原理學(xué)習(xí)7.4實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟Allegro安裝與應(yīng)用:

下載源碼gitclone/rhymes-ai/AllegrocdAllegrogitcheckout4520ae2建立虛擬環(huán)境condacreate-nAllegropython==3.10.9-ycondaactivateAllegro下載模型wget/model_download.pypythonmodel_download.py--e--repo_idrhymes-ai/Allegro\--tokenYPY8KHDQ2NAHQ2SG運(yùn)行測(cè)試程序?qū)嶒?yàn)步驟Allegro安裝與應(yīng)用:

實(shí)驗(yàn)步驟CogVideoX安裝與應(yīng)用:

準(zhǔn)備文件mkdirCogVideoXcdCogVideoXtorch==2.4.1diffusers==0.30.1transformers==4.44.0accelerate==0.33.0imageio-ffmpeg==0.5.1SentencePiece==0.2.0opencv-python==4建立虛擬環(huán)境condacreate-nCogVideoXpython==3.10.9-ycondaactivateCogVideoXpipinstall-rrequirements.txt\-i/pypi/simple建立虛擬環(huán)境wget/model_download.pypythonmodel_download.py--e--repo_idTHUDM/CogVideoX-2b\--tokenYPY8KHDQ2NAHQ2SG實(shí)驗(yàn)步驟CogVideoX安裝與應(yīng)用:

編寫(xiě)及運(yùn)行測(cè)試程序pythonCogVideoX.py小結(jié)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)文生視頻大模型應(yīng)用實(shí)驗(yàn)步驟人工智能大語(yǔ)言模型應(yīng)用教程模塊8大模型Chat應(yīng)用學(xué)習(xí)

目標(biāo)

了解基于國(guó)產(chǎn)大語(yǔ)言模型ChatGLM3的Chat應(yīng)用的場(chǎng)景;

理解大語(yǔ)言模型Chat應(yīng)用的架構(gòu)和原理;

會(huì)進(jìn)行ChatGLM3模型的OpenAI兼容接口測(cè)試

會(huì)使用Streamlit開(kāi)發(fā)應(yīng)用程序;

理解Chat客戶端與服務(wù)器端的交互原理和過(guò)程,會(huì)安裝客戶端運(yùn)行環(huán)境;

能夠基于大語(yǔ)言模型進(jìn)行Chat應(yīng)用開(kāi)發(fā)、調(diào)試及部署;

培養(yǎng)分析解決問(wèn)題能力,提高動(dòng)手實(shí)踐能力;

養(yǎng)成規(guī)范編寫(xiě)代碼的習(xí)慣,培養(yǎng)代碼調(diào)試能力。8.2大模型Chat應(yīng)用設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟8.38.48.18.1設(shè)計(jì)目標(biāo)之前已經(jīng)學(xué)習(xí)了ChatGLM3模型的安裝及簡(jiǎn)單應(yīng)用,本章在此基礎(chǔ)上,使用Streamlit開(kāi)發(fā)一個(gè)簡(jiǎn)單的應(yīng)用程序,提供對(duì)話Web界面,調(diào)用ChatGLM3項(xiàng)目的OpenAI兼容接口,實(shí)現(xiàn)一個(gè)Chat應(yīng)用。設(shè)計(jì)目標(biāo)8.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境

硬件:服務(wù)器、推理卡(NVIDIA16G顯存以上)

軟件:Python、大語(yǔ)言模型ChatGLM3-6B、curl8.3原理學(xué)習(xí)系統(tǒng)功能概要0102030405理解問(wèn)題流式處理打字效果答案生成多輪會(huì)話系統(tǒng)架構(gòu)4.基礎(chǔ)設(shè)施層3.大語(yǔ)言模型服務(wù)層2.應(yīng)用服務(wù)層1.客戶端瀏覽器層軟件運(yùn)行原理瀏覽器展現(xiàn)頁(yè)面,調(diào)用OpenAI兼容接口獲取生成內(nèi)容Streamlit提供頁(yè)面內(nèi)容和頁(yè)面調(diào)用OpenAI兼容接口的代理Streamlit調(diào)用大模型服務(wù)是在后臺(tái)進(jìn)行的,所以不存在頁(yè)面服務(wù)端口與大模型服務(wù)端口不一致導(dǎo)致的跨域問(wèn)題,但由于Streamlit頁(yè)面的Javascript與后臺(tái)服務(wù)之間要靠Websocket交互,如果使用Nginx等反向代理工具,則要考慮Websocket的流量轉(zhuǎn)發(fā)特殊配置。大語(yǔ)言模型裝載模型,提供API服務(wù)8.4實(shí)驗(yàn)步驟安裝部署(1)下載ChatGLM3源碼(2)建立python3.10虛擬環(huán)境(3)在ChatGLM3虛擬環(huán)境下安裝依賴(4)PyTorch驗(yàn)證或重裝1.ChatGLM3-6B運(yùn)行環(huán)境安裝2.下載ChatGLM3-6B模型文件安裝部署(1)啟動(dòng)OpenAI兼容API服務(wù)(2)使用curl測(cè)試3.OpenAI兼容接口測(cè)試應(yīng)用開(kāi)發(fā)使用Streamlit開(kāi)發(fā)一個(gè)簡(jiǎn)單的Chat應(yīng)用,類似于一個(gè)聊天軟件,用戶輸入問(wèn)題,調(diào)用后臺(tái)大模型服務(wù)得到回答小結(jié)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)大模型Chat應(yīng)用實(shí)驗(yàn)步驟人工智能大語(yǔ)言模型應(yīng)用教程模塊9知識(shí)庫(kù)與大模型集成應(yīng)用學(xué)習(xí)

目標(biāo)

了解大語(yǔ)言模型如何與知識(shí)庫(kù)相互整合的優(yōu)勢(shì);

理解“大語(yǔ)言模型幻覺(jué)”概念及改進(jìn)方案;

理解文本向量化在RAG應(yīng)用中的作用;

會(huì)搭建知識(shí)庫(kù)與大模型集成應(yīng)用開(kāi)發(fā)環(huán)境;

會(huì)通過(guò)建立知識(shí)庫(kù)增強(qiáng)檢索解決大語(yǔ)言模型存在的“幻覺(jué)”等問(wèn)題;

會(huì)開(kāi)發(fā)檢索增強(qiáng)生成系統(tǒng)應(yīng)用程序;

培養(yǎng)嚴(yán)謹(jǐn)認(rèn)真的工作態(tài)度,養(yǎng)成規(guī)范操作的習(xí)慣;

養(yǎng)成規(guī)范編寫(xiě)代碼的習(xí)慣,培養(yǎng)代碼調(diào)試能力;

培養(yǎng)遵守法律意識(shí),養(yǎng)成良好的職業(yè)素養(yǎng)。9.2知識(shí)庫(kù)與大模型集成應(yīng)用設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟9.39.49.19.1設(shè)計(jì)目標(biāo)大語(yǔ)言模型能力與語(yǔ)料數(shù)量、質(zhì)量直接相關(guān),預(yù)訓(xùn)練和微調(diào)都難覆蓋所有知識(shí),在專業(yè)領(lǐng)域易出現(xiàn)“幻覺(jué)”,限制其應(yīng)用。解決辦法有參數(shù)微調(diào)、外掛知識(shí)庫(kù)增強(qiáng)檢索,本章節(jié)重點(diǎn)學(xué)習(xí)外掛知識(shí)庫(kù)增強(qiáng)檢索。設(shè)計(jì)目標(biāo)9.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境

硬件:服務(wù)器、推理卡(NVIDIA16G顯存以上)

軟件:Python、大語(yǔ)言模型ChatGLM3-6B9.3原理學(xué)習(xí)系統(tǒng)功能概要大語(yǔ)言模型的輸入更為豐富,不但有用戶提出的原始問(wèn)題,還有從知識(shí)庫(kù)里檢索出來(lái)的條目,這樣就對(duì)輸入條件比只有原始問(wèn)題要豐富得多,給大模型輸入的上下文較為完整,這樣可有效地減少“大語(yǔ)言模型幻覺(jué)”的問(wèn)題。01與對(duì)大語(yǔ)言模型微調(diào)相比,外掛知識(shí)庫(kù)的辦法可以節(jié)省時(shí)間和算力,知識(shí)的更新不需要對(duì)整個(gè)模型進(jìn)行重新訓(xùn)練。由于大語(yǔ)言模型有時(shí)效性,語(yǔ)料知識(shí)是某一個(gè)時(shí)間點(diǎn)前的,知識(shí)是靜態(tài)的,RAG可以以較低的成本及時(shí)補(bǔ)充新的知識(shí),可以解決大語(yǔ)言模型的實(shí)時(shí)性不足的問(wèn)題,RAG讓語(yǔ)言模型不用重新訓(xùn)練就能夠獲取最新的信息。02系統(tǒng)功能概要知識(shí)庫(kù)原始資料采集LLM生成知識(shí)庫(kù)檢索知識(shí)文本分塊文本向量化向量數(shù)據(jù)庫(kù)系統(tǒng)架構(gòu)軟件運(yùn)行原理9.4實(shí)驗(yàn)步驟安裝部署本章中對(duì)大語(yǔ)言模型的要求是提供一個(gè)標(biāo)準(zhǔn)的OpenAI接口,供langchain組合流程調(diào)用,其安裝步驟可見(jiàn)第8章的8.4.1節(jié)所述1.大語(yǔ)言模型安裝2.依賴環(huán)境安裝安裝部署3.下載向量化模型文件應(yīng)用開(kāi)發(fā)在瀏覽器中訪問(wèn):7860,查看知識(shí)庫(kù)應(yīng)用的演示效果小結(jié)開(kāi)發(fā)環(huán)境準(zhǔn)備原理學(xué)習(xí)知識(shí)庫(kù)與大模型集成應(yīng)用實(shí)驗(yàn)步驟人工智能大語(yǔ)言模型應(yīng)用教程模塊10翻譯模型應(yīng)用學(xué)習(xí)

目標(biāo)

了解語(yǔ)言翻譯的概念;

理解PDF轉(zhuǎn)換為HTML格式的原理和方法;

理解文本翻譯范圍選擇的方法與過(guò)程;

會(huì)按照部署英譯中翻譯模型;

會(huì)編寫(xiě)代碼利用大語(yǔ)言模型實(shí)現(xiàn)英文翻譯為中文;

培養(yǎng)安全意識(shí),培養(yǎng)遵守法律、愛(ài)崗敬業(yè)意識(shí);

培養(yǎng)自主學(xué)習(xí)和分析解決問(wèn)題的能力。10.2翻譯模型應(yīng)用設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟10.310.410.110.1設(shè)計(jì)目標(biāo)語(yǔ)言翻譯是自然語(yǔ)言處理重要應(yīng)用,含文本、語(yǔ)音、文件翻譯等。谷歌翻譯等基于大語(yǔ)言模型,多數(shù)瀏覽器內(nèi)置翻譯工具消除閱讀外文障礙。但PDF因格式特殊,翻譯難在還原格式,線上付費(fèi)翻譯存在成本和安全隱患。設(shè)計(jì)目標(biāo)10.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境

硬件:服務(wù)器、推理卡(NVIDIA16G顯存以上)

軟件:Python、大語(yǔ)言模型ChatGLM3-6B

英譯中翻譯模型Helsinki-NLP/opus-mt-en-zh10.3原理學(xué)習(xí)系統(tǒng)功能概要文件格式轉(zhuǎn)換文本翻譯范圍選擇文本翻譯模型大語(yǔ)言模型提示詞開(kāi)發(fā)系統(tǒng)架構(gòu)PDF轉(zhuǎn)HTMLHTML解析遍歷div翻譯div替換div保存HTML10.4實(shí)驗(yàn)步驟安裝部署本章中對(duì)通用大語(yǔ)言模型的要求是提供一個(gè)標(biāo)準(zhǔn)的OpenAI接口,翻譯時(shí)調(diào)用,其安裝步驟可見(jiàn)第8章的8.4.1節(jié)所述1.ChatGLM3運(yùn)行環(huán)境安裝2.依賴環(huán)境安裝安裝部署3.下載英譯中模型文件應(yīng)用開(kāi)發(fā)本應(yīng)用涉及pdf2htmlEX.exe,因此需要在Windows下實(shí)踐小結(jié)開(kāi)發(fā)環(huán)境準(zhǔn)備原理學(xué)習(xí)翻譯模型應(yīng)用實(shí)驗(yàn)步驟人工智能大語(yǔ)言模型應(yīng)用教程模塊11通義千問(wèn)語(yǔ)音模型應(yīng)用學(xué)習(xí)

目標(biāo)

了解國(guó)產(chǎn)大語(yǔ)言模型Qwen-Audio-Chat;

理解掌握大語(yǔ)言模型語(yǔ)音交互原理;

會(huì)按照部署Qwen-Audio-Chat大模型;

會(huì)進(jìn)行Qwen-Audio-Chat大模型Demo程序的安裝部署與測(cè)試;

會(huì)使用Qwen-Audio-Chat大模型開(kāi)發(fā)語(yǔ)音問(wèn)答應(yīng)用;

培養(yǎng)嚴(yán)謹(jǐn)、求實(shí)、創(chuàng)新的科學(xué)精神,培養(yǎng)分析解決問(wèn)題的能力;

樹(shù)立標(biāo)準(zhǔn)化意識(shí),遵循開(kāi)發(fā)流程,規(guī)范編寫(xiě)代碼。11.2通義千問(wèn)語(yǔ)音模型應(yīng)用設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟11.311.411.111.1設(shè)計(jì)目標(biāo)設(shè)計(jì)一個(gè)語(yǔ)音模型的應(yīng)用Audio-Chat,實(shí)踐語(yǔ)音模型的Chat場(chǎng)景,程序分為前端和后端兩部分,前端程序運(yùn)行在瀏覽器中,錄音后上傳至后端,后端調(diào)用通義千問(wèn)語(yǔ)音模型將語(yǔ)音轉(zhuǎn)為文本,再以此文本向大語(yǔ)言模型提問(wèn)得到答案后,最后把語(yǔ)音對(duì)應(yīng)的文本和答案返回給前端顯示。設(shè)計(jì)目標(biāo)11.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境硬件:服務(wù)器、NVIDIA24G顯存以上的推理卡或32G內(nèi)存(CPU也可運(yùn)行)軟件:Python、大規(guī)模音頻語(yǔ)言模型Qwen-Audio、Node.js(V18.0以上)11.3原理學(xué)習(xí)系統(tǒng)功能概要1.文本問(wèn)題問(wèn)答Qwen-Audio是一個(gè)大語(yǔ)言音頻模型,以Qwen-7B的預(yù)訓(xùn)練模型作為基礎(chǔ)語(yǔ)言模型,并整合Whisper-large-v2音頻編碼器,所以除了能接收語(yǔ)音輸入外,也可以針對(duì)文本問(wèn)題進(jìn)行推理回答,對(duì)語(yǔ)音的回答也是先轉(zhuǎn)文本再推理。2.音頻問(wèn)題問(wèn)答在客戶端錄音,形成的音頻流上傳到后臺(tái),后臺(tái)使用Qwen-Audio模型將音頻翻譯成文本,然后再以文本為輸入,調(diào)用Qwen-Audio模型以文生文方式獲取答案。系統(tǒng)架構(gòu)語(yǔ)音模型應(yīng)用(Audio-Chat)服務(wù)分為三層:基礎(chǔ)設(shè)施層服務(wù)器端客戶端?;A(chǔ)設(shè)施層:由服務(wù)器、推理卡、網(wǎng)卡等硬件組成,提供應(yīng)用運(yùn)行的載體和算力保證,操作系統(tǒng)、推理卡驅(qū)動(dòng)、CUDA等也歸為基礎(chǔ)設(shè)施層,為應(yīng)用提供了GPU計(jì)算的軟件計(jì)算服務(wù)。Qwen-Audio-Chat模型可以運(yùn)行在GPU或CPU上,如果采用GPU運(yùn)行Qwen-Audio-Chat模型,經(jīng)過(guò)實(shí)踐,需要至少17G的GPU內(nèi)存,所以需要至少24G內(nèi)存的推理卡(如RTX3090、RTX4090)。如果采用CPU運(yùn)行Qwen-Audio-Chat模型,則需要32G內(nèi)存和盡量多核數(shù)的CPU,因?yàn)镃PU的浮點(diǎn)計(jì)算效率遠(yuǎn)低于GPU,所以如果用于調(diào)試程序的GPU內(nèi)存小于24G,可考慮用CPU進(jìn)行推理,缺點(diǎn)在于效率較低。系統(tǒng)架構(gòu)服務(wù)器端:由大語(yǔ)言模型Qwen-Audio-Chat、Python虛擬環(huán)境、TransformersAI組件以及OpenAI兼容http接口組成實(shí)現(xiàn)Qwen-Audio-Chat模型的裝入、推理和對(duì)外服務(wù)能力。系統(tǒng)架構(gòu)客戶端:運(yùn)行在瀏覽器中的HTML5+Javascript代碼,由React.js開(kāi)發(fā),采用js-audio-recorder組件錄制音頻,通過(guò)OpenAI組件調(diào)用后臺(tái)的服務(wù)。系統(tǒng)架構(gòu)軟件運(yùn)行原理11.4實(shí)驗(yàn)步驟安裝部署1.語(yǔ)音模型運(yùn)行環(huán)境安裝(1)代碼準(zhǔn)備gitclone/QwenLM/Qwen-AudiocdQwen-Audio(2)環(huán)境創(chuàng)建condacreate-nqwen-audiopython=3.10-ycondaactivateqwen-audio(3)安裝基礎(chǔ)依賴庫(kù)pipinstall-rrequirements.txt-i/pypi/simple(4)安裝Demo程序依賴庫(kù)pipinstall-rrequirements_web_demo.txt-i/pypi/simple(5)驗(yàn)證PyTorch是否安裝成功python-c"importtorch;print(torch.cuda.is_available())"安裝部署(1)#linux下使用wget命令下載wget/model_download.pypythonmodel_download.py--e--repo_id\Qwen/Qwen-Audio-Chat--tokenYPY8KHDQ2NAHQ2SG(2)Windows下直接在瀏覽器打開(kāi)鏈接下載2.模型下載安裝部署3.運(yùn)行demo安裝部署3.運(yùn)行demo應(yīng)用開(kāi)發(fā)服務(wù)器端程序由Python開(kāi)發(fā),分為兩部分,一個(gè)是接收客戶端請(qǐng)求的API接口程序qwen_audio_api.py,另一個(gè)負(fù)責(zé)模型運(yùn)算的qwen_audio_service.py。1.服務(wù)器端開(kāi)發(fā)客戶端程序采用React.js開(kāi)發(fā),React.js程序開(kāi)發(fā)調(diào)試在Node.js環(huán)境下進(jìn)行,Node.js從/下載安裝,在命令行運(yùn)行“node-v”測(cè)試是否安裝成功。2.Node.js安裝安裝部署3.新建客戶端應(yīng)用功能演示1.服務(wù)器端運(yùn)行功能演示2.客戶端運(yùn)行小結(jié)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)通義千問(wèn)語(yǔ)音模型應(yīng)用實(shí)驗(yàn)步驟人工智能大語(yǔ)言模型應(yīng)用教程模塊12大語(yǔ)言模型量化應(yīng)用學(xué)習(xí)

目標(biāo)

了解大語(yǔ)言模型量化的概念;

理解掌握l(shuí)lama.cpp量化方法;

了解大語(yǔ)言模型的GGUF格式;

會(huì)安裝部署大語(yǔ)言模型量化應(yīng)用環(huán)境;

能夠運(yùn)用llama.cpp解決方案,將大模型進(jìn)行格式轉(zhuǎn)換和量化,并在CPU環(huán)境下運(yùn)行;

能夠使用React.js開(kāi)發(fā)Chat客戶端連接量化模型進(jìn)行推理;

培養(yǎng)團(tuán)隊(duì)協(xié)作精神,在實(shí)踐中互相幫助,共同解決問(wèn)題;

培養(yǎng)創(chuàng)新思維和實(shí)踐能力,能夠分析解決問(wèn)題。12.2大語(yǔ)言模型量化應(yīng)用設(shè)計(jì)目標(biāo)開(kāi)發(fā)環(huán)境原理學(xué)習(xí)實(shí)驗(yàn)步驟12.312.412.112.1設(shè)計(jì)目標(biāo)提供在筆記本電腦等低算力條件下進(jìn)行大語(yǔ)言模型部署的方法,在Windows操作系統(tǒng)上,使用llama.cpp量化方法,部署Qwen-1.8B量化模型,提供OpenAI兼容接口,并采用React.js開(kāi)發(fā)Chat應(yīng)用,實(shí)現(xiàn)AI問(wèn)答系統(tǒng),形成一套完整的低算力條件下大語(yǔ)言模型應(yīng)用。設(shè)計(jì)目標(biāo)12.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境硬件:筆記本電腦或PC機(jī),4核CPU、8G以上內(nèi)存,無(wú)需GPU,Windows10以上64位操作系統(tǒng)軟件:Python、大規(guī)模音頻語(yǔ)言模型Qwen-1.8B、Node.js(V18.0以上)12.3原理學(xué)習(xí)原理學(xué)習(xí)1.編譯llama.cppllama.cpp采用C/C++實(shí)現(xiàn),為了保證在各種操作系統(tǒng)下的兼容性,使用llama.cpp前需要對(duì)源碼進(jìn)行編譯,生成main.exe、server.exe、quantize.exe等工具,為了簡(jiǎn)化編譯過(guò)程,避免下載VisualStudio等重量級(jí)工具,本章采用了W64devkit開(kāi)發(fā)包編譯llama.cpp,W64devkit是一個(gè)可移植的WindowsC和C++開(kāi)發(fā)包,用于在x64Windows上編譯C和C++應(yīng)用程序。2.模型GGUF格式轉(zhuǎn)換使用convert-hf-to-gguf.py腳本將safetensors格式的模型文件轉(zhuǎn)換成gguf格式。原理學(xué)習(xí)3.模型GGUF格式轉(zhuǎn)換GGML有不同的量化策略,如Integerquantization(4-bit,5-bit,8-bit)以及16-bitfloat,應(yīng)用不同的量化策略,產(chǎn)生的權(quán)重精度、模型文件大小、推理性能都有區(qū)別,在/ggerganov/llama.cpp#quantization列出了常用策略的效果,在本章中,我們采用了q5_k_m策略。量化過(guò)程由llama.cpp的quantize命令完成。原理學(xué)習(xí)4.裝載量化模型經(jīng)量化過(guò)和模型由llama.cpp的main命令裝載運(yùn)行,

main工具實(shí)現(xiàn)更快、更低的內(nèi)存推理,并針對(duì)桌面CPU進(jìn)行了優(yōu)化,可用于使用quantize量化后的ggml模型執(zhí)行各種推理任務(wù),包括根據(jù)用戶提供的提示生成文本以及Chat交互,可以根據(jù)機(jī)器的CPU、內(nèi)存以及推理速度需求指定輸入的上下文長(zhǎng)度和生成文本時(shí)要預(yù)測(cè)的Token最大數(shù)量。5.推理采用api_like_OAI.py腳本將server提供的服務(wù)轉(zhuǎn)化成OpenAI兼容接口,并使用React.js開(kāi)發(fā)一個(gè)Web客戶端進(jìn)行推理測(cè)試。12.4實(shí)驗(yàn)步驟服務(wù)端安裝1.語(yǔ)音模型運(yùn)行環(huán)境安裝編譯llama.cpp。準(zhǔn)備服務(wù)端文件。安裝Python虛擬運(yùn)行環(huán)境。下載模型。量化模型。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論