2025年人人懂AI之從機器學習到大模型報告-阿里云_第1頁
2025年人人懂AI之從機器學習到大模型報告-阿里云_第2頁
2025年人人懂AI之從機器學習到大模型報告-阿里云_第3頁
2025年人人懂AI之從機器學習到大模型報告-阿里云_第4頁
2025年人人懂AI之從機器學習到大模型報告-阿里云_第5頁
已閱讀5頁,還剩150頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

9 13 14 17 23 29 31 46 48 48 51 64 69 73 76 91 91 91 96 序AI應用已無處不在88嘗試給AI一個定義機器學習訓練及推理過程的知識源頭,如果數(shù)據(jù)本身就缺乏規(guī)律,沒有規(guī)律可發(fā)掘;或者該場景存在數(shù)據(jù)規(guī)程就是通過不斷的暴力計算,去找尋最優(yōu)函數(shù)及其參數(shù)。尤其是現(xiàn)在已經(jīng)進入深度LLM(大語言模型)類人智能的諸多驚艷表現(xiàn),放在十年有資料顯示,自1970年到2020年,數(shù)據(jù)樣本有超過1000倍的增長,算力更有加上2006年后逐步完善的深度學習等算法上的創(chuàng)新突破從一個監(jiān)督學習里的回歸問題的“Helloworld”示例入手:已有一批已標注的數(shù)據(jù)),數(shù)據(jù)樣本:輸入是每套房子的面積,輸出是該房子的售價(kaggle等比如y=ax+b一次方函數(shù),在坐標軸上畫下來,就是數(shù)據(jù)集和模型的數(shù)學表達與抽象x:LotArea(sizeinsquarefeet)y:SalePrice($)8450208500960018150011250223500955014000014260250000……x代表特征/輸入變量。y代表目標變量/輸出變量。(x(i),y(i))代表第i個數(shù)據(jù)樣本。h代表學習算法函數(shù),也稱為假設(hypothesis),也即:y=h(x)。各函數(shù)模型(表hθ(x)=θ0+θ1xhθ(x)=θ0+θ1x+θ2x2個最簡單的,選擇hθ(x)=θ0+θ1x,再損失函數(shù)(CostFunction)個函數(shù)和訓練集的匹配情況,也即該函數(shù)的好壞呢?最簡單的方法:將訓練集中每建模誤差=用J(θ)表示:時的建模誤差也是最小的。如果損失函數(shù)值變得最小的話,那就初步認為這個模型將θ0和θ1看做變量,繪制函數(shù)到坐標系中,三個坐標分別為θ0、θ1和J(θ0,θ1),可以看出在三維空間中,存在一組(θ0,θ1)使J(θ0,θ1)最小。在個最低點(最小值)對應的(θ0,θ1)。梯度下降個能讓損失函數(shù)值下降的參數(shù)組合。一直重復該過程,直到找到局部最小值(localminimum)。由于沒有嘗試所有參數(shù)組合,所以并不能是全局最小值(globalminimum),選擇不同的起始參數(shù)組合,有可能會找到不同的隨機的把你投到山上面的任何一個點,如何走到最低點。我們可以先只看其中一個),導數(shù)/偏導數(shù):y’=(y2-y1)/(x2-x1)=△y/△x(△x->0)y1=y2-y’(x2-x1)=y2-y’△x(導數(shù)切線指向最陡峭的方向)點的切線方向一步一步走,就能走到最低點,而且理論上這個方向是可以最快的走又近了一步每次θ值更新后,就可以計算出新的J(θ)和),至此,機器學習訓練的基本過程和原理也講解完畢了。我們再回到房價預測這個例多變量擴展含大量變量的數(shù)據(jù)集。而且最優(yōu)的模型函數(shù)也通常不是一次方的簡單函數(shù),而是有入變量及其θ參數(shù)而已,依然可以采用梯度下降的方式做訓練,找到J(θ)的最小值及對應的θ參數(shù)。區(qū)別在于,之前是(θ0,θ1),現(xiàn)在是(θ0,θ1……θn每次迭代需要計算的θ多一些而已,計算量更大了,就這么個差小結(jié)為例,第一步需要盡可能收集與該問題相關的數(shù)據(jù)樣本,且理論上數(shù)據(jù)樣本越全面第二步:構(gòu)造一個函數(shù)。機器學習的常用算法很多,如何從諸多算法里挑選出合適損失函數(shù)。需要根據(jù)實際處理的具體問題選擇適合的損失函數(shù),并且最好先弄清楚第三步就可以用訓練樣本集,結(jié)合算法模型和損失函數(shù),使用梯度下降等方法訓練導致訓練過程遲遲無法收斂。也有可能選擇的函數(shù)模型本身不是最優(yōu)的,導致推理練速度,提升算法效果等。目前業(yè)界也有一些使用簡便的AutoML產(chǎn)品來簡化訓練后使用該規(guī)律針對新輸入做輸出。也有可能問題本身或者搜集的數(shù)據(jù)本身就不適合即針對一套待售房子,有參考價值的數(shù)據(jù)樣本數(shù)量是很有限的。通過前文的原理性講解視頻/video/BV1414y197xd/?vd_source=0c5a39664e27a深度學習及神經(jīng)網(wǎng)絡接下來,我們可以學習一個更有意思的:神經(jīng)網(wǎng)絡和深度學習。假如把人想象成一接下來,我們重點以圖像處理來講解神經(jīng)網(wǎng)絡。如何理解圖像的平移不變性和局部前面講解的線性回歸、邏輯回歸等傳統(tǒng)機器學習,很難有效處理空間和時間特征。圖片就是一個二維矩陣(長、寬彩色圖片還涉及多個通道(多個二維矩陣)。神經(jīng)網(wǎng)絡的由來神經(jīng)網(wǎng)絡(NeuralNetwork,縮寫NN)的命名,是類比于醫(yī)學上的神經(jīng)網(wǎng)絡):unit/Nucleus),它含有許多輸入/樹突(input/Dendrite),并且有責計算hθ(x)。第一層稱為輸入層(InputLayer),最后一層稱為輸出層(Output回看線性回歸可以把前L-1層看作表?,把最后一層看作線性預測器。這種機(multilayerperceptron,縮寫為MLP)。激活函數(shù)隱藏層輸出:H=XW(1)+b(1),輸出層:O=HW(2)+b(2).將隱藏層的輸出H,代入到輸出層(這其中使用到了線性代數(shù)中向量和矩陣相關的):(1)(2)(1)(1)),(2)如分類問題,預測一張圖片中是一只貓還是一只狗,最后輸出值就是屬于某個類別Softmax:多分類2三個類別分別對應的概率:類別1的概率:O1/(O1+O2+O3),類別2的概率:22y1,y2,…,yk=???tmax(?1,?2,…,?k)卷積神經(jīng)網(wǎng)絡的一大精髓。前面提到圖像有兩大空間特征:平移不變性和局部卷積核的運算:直觀理解就是拿卷積核這個小矩陣逐列逐行按順序一行行去掃描圖的數(shù)值分別相乘(點積最后再加總求和,得從網(wǎng)上找到一個動圖(鏈接可以直觀的做個理解:用一個3*35*5的輸入矩陣。最后會得到一個3*3的輸出矩陣。出,一直掃到輸入矩陣的末尾,所以輸出矩陣的列數(shù)是(5-3)/1+1=3。其中/1是因為每次掃描的步幅是只向后走一位(實際應用時,針對由此,再考慮到對輸入圖片行列首尾位置可能添加一些全零填充,可以推算出輸出卷積為什么會在圖像處理上有效?筆者嘗試從卷積的運算原理去理解:卷積可高效域是固定的小區(qū)域,并且是嚴格按行列順序逐步掃描的,這樣就可以有效提取到局鍵像素區(qū)域(比如識別狗,這只狗占據(jù)的那些像素區(qū)域稱為關鍵像素區(qū)域,其余像素可以看做是背景雜質(zhì)不論處于圖片中什么位置,理論上對于同一個卷積核,多輸入通道及多輸出通道特殊的卷積:1*1卷積有一個特殊的1*1卷積:k?=kw=1。這個卷積運算完后,發(fā)現(xiàn)圖片的長寬并不會變卷積的難以解釋性是這些數(shù)值?這個卷積核的具體作用是什么?在大多數(shù)情況下,都是很難解釋清楚的可以登錄看看,CNNexplainer:https://poloclub.github.io/cnn-explainer/池化/匯聚(Pooling):MaxPooling、AveragePooling要有兩種Pooling操作:MaxPooling(最大值池化)和AveragePooling(平均陣內(nèi)的最大值或者平均值(其中取最大值應用更為廣泛,平均值在早前的神經(jīng)網(wǎng)絡全連接(FullyConnected)把該矩陣按行的順序展平為一個一維向量,與下層的神經(jīng)元做全連接運算(每個輸入值都和下一層的神經(jīng)元相運算而且可以構(gòu)建多層的全連接(其實就是前文介可以進一步使用前文介紹的Softmax運算,轉(zhuǎn)換成一個0-1的概率值,用來表示該深入理解經(jīng)典CNN有了前面的這些基礎知識(如卷積,Relu激活,MaxPoolVGG、ResNets、GoogleLeNet等。以LeNet為例,做個拆解剖析。LeNet在1例,共50,000個訓練數(shù)據(jù),10,000個測試數(shù)據(jù)。每個圖像大小為28*28,因為像有三個輸入通道也通常有多個輸出通道。每一個輸出通道都能提取到圖像的一些規(guī)律或者特征。LeNet第?卷積塊只有1個輸入通道(黑白圖片對應一個輸入通道6個輸出通道。而第?個卷積塊有6個輸入通道(對應第一個卷積塊6個LeNet的第一層卷積輸出矩陣和輸入矩陣大小一致,原因是對輸入矩陣做了填充:出矩陣大小應該是(28-5)/1+1=24,即24*24。入矩陣大小變成了28+4=32,也即32*32,才能使得輸出矩陣大小保持在28*28。第二卷積塊中的輸入矩陣為14*14,不做填充,輸出矩陣大小為(14-5+1也即10*10。展平為一個包含16*5*5個元素的一維向量,基于此做全連接。LeNet做了三層全像搭積木一樣構(gòu)建神經(jīng)網(wǎng)絡考《動手學深度學習PyTorch版》行Sigmoid激活。然后做2*2的平均池化。即6*1*5*5=150。進行Sigmoid激活。然后做2*2的平均池化。對應的參數(shù)量為6*16*5*5=2400。最后把輸出矩陣展平,進行三次全連接運算,激活函數(shù)依然使用Sigmoid。第全連接使用了120個參數(shù)。第二層全連接使用了84個參數(shù)。最后一層全連接參數(shù)類問題。對應的大致參數(shù)量為120+84+10=214。略去了卷積、全連接等涉及的偏差標量,偏差標量不影響深度學習網(wǎng)絡的參數(shù)量量動手實踐:搭建一個自己的神經(jīng)網(wǎng)絡-手寫數(shù)字識別CNN不能選3*3,7*7嗎?為什么全連接層的參數(shù)是120、84,不能選其他的參數(shù)嗎?暴力計算的過程嗎?這些問題很多都涉及神經(jīng)網(wǎng)絡訓練中的超參數(shù),需結(jié)合自身經(jīng)有了前面的積累,我們可以學習和理解更多的經(jīng)典CNN,比如AlexNetResNets、GoogleLeNet等。AlexNet于2012年推出,并贏得該年ImageNet圖像識別大賽冠軍。引領CV領AlexNet是針對1000類圖像識別問題,數(shù)據(jù)集使用了ImageNet,輸入圖片是不難看出,AlexNet其實就是更深更大的LeNet:采用了8層CNN。激活函數(shù)使用可以看到AlexNet的核心主要是把CNN做的更深了,效果就變的很好,一舉奪得神經(jīng)網(wǎng)絡開始真正進入了深度學習,出現(xiàn)了VGG、ResNets、GoogleLeNet等網(wǎng)動手實踐:在云上搭建深度學習notebook開發(fā)環(huán)境阿里云上的ECS為例(有條件的可以選GPU實例):Step1:創(chuàng)建ECS實例,設置用戶名及登錄密碼(使用ecs-user登錄,如果使用注意:如果選擇GPU實例,需在實例創(chuàng)建時選擇安裝c/miniconda/Miniconda3-py38_23.3.1-0-Linux-x86_64.shStep5:安裝解壓工具及git工具:sudoaptinstallunzip安裝git:sudoaptinstallgitStep6:下載d2lnotebook示例代碼,并解壓:mkdird2l-zh&&cdd2l-zhwgethttps://zh-v2.d2l.ai/d2l-zh-2.0.0.zipunzipd2l-zh-2.0.0.zipssh-L8888:localhost:8888ecs-user@76Step8:在ECS上運行jupyter:jupyternotebookStep9:在本地瀏覽器登錄jupyter(填寫運行notebook時,展示的正確URLhttp://localhost:8888/?token=rWxo4Uo***環(huán)境安裝參考資料:https://zh.d2l.ai/chapter_installation/index.html講解視頻/video/BV17oN3eAEbN/?vd_source=0c5a39664e27af522bfcd1e74b9780a8AIGC及大模型硅基智能vs碳基智能:AIGC帶給我們的驚喜此前AI的發(fā)展通常局限在特定領域的特定問題,ChatGPT等LLM在文本摘要/概能發(fā)展這個更高的視角去看這個事情。人類的智能由一個個人類個體構(gòu)成,往往是但發(fā)展過程中碳基生命有個重大缺陷:相比宇宙的歷史長河,人類個體的生命僅僅類似一個近乎全0的初始化狀態(tài),然后需要耗費十數(shù)年甚至幾十年時帶來的想象力在于知識可以繼承,不斷向前迭代發(fā)展,大模型似乎隱約讓人看到了大語言模型(LLM)接下來,將圍繞LLM、知識庫+LLM等幾大熱門應用講解基本原理。針對LLM在釘釘智能問答機器人)的詳盡實操指導書,使讀者可以零基礎構(gòu)建自己專屬的智能語言的數(shù)據(jù)特征疑問反問等多種修辭手法,也會導致相同的詞句本身就存在多種含義。各字詞在語文本轉(zhuǎn)向量(數(shù)字化)字呢?這個問題本身就是一個專門的技術(shù)領域。我們只介紹兩個基礎的方法,讓大家有個認識:One-Hot編碼、Embedding算法。就稱為詞元,英文名稱叫Token。One-Hot編碼的基本思路是將句子拆解成詞元,針對詞元構(gòu)建一個詞表(有些書上也稱作字典然后借助詞表中的每個詞元所處):.按字Token化:我/們/相/信/A/I/可/以/讓/世/界/變/得/更/美/好/。.按詞Token化:我們/相信/AI/可以/讓/世界/變得/更/美好/。.按Bi-GramToken化:我們/們相/相信/信A/AI/I可/可以/以讓/讓世/世界/界變/變得/得更/更美/美好/好。稍加思考,會發(fā)現(xiàn)One-Hot編碼這種處理方式過于簡單,存在諸多固有缺陷):可能是電腦等,無法判斷。此外,One-Hot編碼難以處理文本中詞元的順序。Embedding不僅是針對單個Token的向量化,給大語言模型輸入任意一句話、數(shù)義,但具體是什么含義,本身是難以解釋的??梢院唵蔚陌袳mbedding模型當作領域,都是相通的。我們可以再看一個圖像我們把最后一層(輸出層)去掉,輸出層的前一層是含84個參數(shù)的全連接,對應84個輸出值,其實這84個輸出值就可以理解為一個向量的手寫數(shù)字圖像所輸出的向量相似度很高(相似度算法如歐式距離、cosine相似度等,讀者可以自行搜索相似度的常用算法原理而對于不同的手寫數(shù)字圖像所輸應用開發(fā)新范式:對話即編程AIGC對傳統(tǒng)IT行業(yè)帶來了系列革新,其中之一是用戶輸入需求描述(常稱為提示詞,英文簡稱prompt只需將自己的需求或問題描述清楚,模型將直接給出高質(zhì)defget_completion(response=openai.Ch)prompt=f"""我們需要不斷學習和適應新技術(shù),不斷提升自己的能力和素質(zhì),不斷挑代碼,主要是導入對應的模塊,按照接口調(diào)用的格式填寫好相對固定的接口參數(shù)。此外,業(yè)界也有大量的文生代碼大模型陸續(xù)發(fā)布,GitHubCopilot作為其中的典型LLM在實際應用中的難點問題ChatGPT是火熱的LLM典型代表,再次掀起了NLP、AIGC熱ChatGPT、Transformer等的原理。重點從LLM的應用視角,分析LLM的固有缺ChatGPT等LLM,只需要輸入提示語句和問題描述(prompt模型就能給出類清華大學的開源ChatGLM-6B搭建一套智能問答論LLM的模型參數(shù)做多大,哪怕有一天訓練了一個超級LLM,把已有的知識都納即便是做微調(diào)訓練,針對已使用大量語料訓練且動輒百億參數(shù)量的大模型,較難出下圖依然采用清華大學的開源ChatGLM-6B,僅灌入一篇產(chǎn)品文檔構(gòu)建成知識庫,LLM加工成最終的問題答案,返回給用戶。Prompt模板示例:無法回答該問題”,禁止在答案中添加編造成分,答案請使用中文。問題是:{question}"""其中,問題question是用戶問的問題,而已知信息context就是知識庫中檢索出來比如扮演一個說話謙虛禮貌的客服,或者模仿某個名人的說話方式等等,各種花樣知識庫+LLM智能問答系統(tǒng)的構(gòu)建流程筆者在阿里云數(shù)據(jù)庫團隊供職,曾和阿里云數(shù)據(jù)庫NoSQL團隊共同規(guī)劃設計過企3)引入或開發(fā)文本分割算法,將文本做句段的分割,分割成大量textchu4)引入或開發(fā)文本轉(zhuǎn)向量算法,將各個textchuck轉(zhuǎn)換成對應的向量,即前文介紹的文本轉(zhuǎn)向量的embedding過程。11)返回檢索到的topK(比如選top5、top10等)關聯(lián)內(nèi)容。12)用戶將topK內(nèi)容以及用戶問題,填入到prompt模板。13)輸入prompt給LLM,LLM返回答案。外提供標準接口,供應用開發(fā)者便捷使用。有些業(yè)界使用較廣的開源框架,如Langchain。Langchain簡介Langchain可以理解為是一個知識向量化的數(shù)據(jù)加工平臺/框架(詳見集成了文1)支持用戶導入私域知識(如.txt、.md、.docx、.pdf等多種文檔格式)。4)系統(tǒng)自動完成查詢問題向量轉(zhuǎn)換、語義檢索。并將問題和語義檢索得到的topK5)目前兼容的embedding算法和LLM,可查看代碼,配置文件中的如下變量:"ernie-tiny":"nghuyong/ernie-3.0-nano-zh","ernie-base":"nghuyong/ernie-3.0-base-zh","text2vec":"GanymedeNil/text2vec-large-chinese"}llm_model_dict:chatglm-6b-int4-qe、chatglm-6b-int4、chatglm-6b-int8、chatglm-6b、chatyuan、moss。其中ChatGLM-6B是清華大學的開源模型,可使用Langchain+chatGLM構(gòu)建知識庫方案,建議讀者可以參考“系列動手實踐”Langchain的優(yōu)點:如果要進一步了解LLM、Langchain+大模型構(gòu)建帶私域知識能力的智能問答,強烈建議讀者親手搭建一套。尤其有了公有云,在云上搭建這些系統(tǒng)現(xiàn)在變的非常簡便,僅需一兩個小時就能搭建完成。詳細的搭建指導書已經(jīng)放在了系列動手實踐章系列動手實踐在云上從0開始搭建Langchain-ChatGLMLLM環(huán)境以在Ubuntu18.0464位系統(tǒng)搭建LLM環(huán)境,安裝《langchain-ChatGLM》為例:cuda11.4。設置用戶名及登錄密碼。a.sudoapt-getupdateb.b.安裝gcc編譯器(可選,系統(tǒng)中通常已有):sudoaptinstallbuild-essentialc.安裝Python,以3.8為例:sudoaptinstallpython3.8d.安裝miniconda:(1)下載安裝包:注意miniconda包需選擇對應python版本的包wget/miniconda/Miniconda3-py38_23.3.1-0-Linux-x86_64.shMiniconda3-py38_23.3.1-0-Linux-x86_64.sh~/miniconda3/bin/condainit(5)(5)創(chuàng)建一個新的環(huán)境(可選):condacreate--nameaigcpython=3.8-y(6)(6)激活aigc環(huán)境(可選):condaactivateaigc5)安裝git:sudoaptinstallgit6)gitclonelangchain-ChatGLM,并安裝軟件依賴:gitgitclone/imClumsyPanda/langch7)將chatglm-6b模型及Embedding模型,下載到本地(可從本地加載模型):安裝git-lfs:aptinstallgit-lfsgit-lfsclonehttps://huggingface.co/THUDM/chatglm-6b#下載Embedding模型$gitclonehttps://huggingface.co/GanymedeNil/text2vec-large-chinese/your_path/text2vec#模型需要更新時,可打開模型所在文件夾后拉取$gitlfspull8)更新config/model_config.py中的模型路徑為本地路徑。llm_model_dict變量中"chatglm-6b":"pretrained_model_name":"/home/fsnode/chatglm-6b"embedding_model_dict變量中"text2vec":"text2vec":"/home/fsnode/text2vec-large-chinese"9)導入自有的文檔到ecs,目前主要支10)運行CLI或webDEMO:cli_demo:pythoncli_demo.pywebui:如需要公網(wǎng)訪問,還需要將webui.py中修改:share=Truea.安裝gradio:pipinstallgradiob.在ECS實例安全組的入方向添加安全組規(guī)則,并放行8501端口(默認的c.在ECS上運行腳本:pythonwebui.py):ssh-L7860:localhost:7860ecs-user@ecs公網(wǎng)IPB、在本地瀏覽器登錄web界面::7860從0開始搭建LLM+知識庫智能問答釘釘機器人能問答釘釘機器人。知識庫技術(shù)方案使用了LindorLLM使用了開源ChatGLM2-6B,讀者也可以更換成自己的知識庫產(chǎn)品。1)本例以阿里云Lindorm數(shù)據(jù)庫提供的知識庫方案為例,讀者也可以更換成自己的方案。根據(jù)產(chǎn)品指導書,開通Lindorm知識庫+LLM實例,并根據(jù)指導書導2)將ECS客戶端IP加入到Lindorm數(shù)據(jù)庫白名單,確保ECS可以正常訪問Lindorm數(shù)據(jù)庫??梢栽贓CS上安裝LindormCLI客戶端進行測試。3)在ECS上安裝phoenixdb(用于連接數(shù)據(jù)庫pipinstallphoenixdb==1.2.04)注意:有些系統(tǒng)版本在安裝時,可能會報錯“subprocess.CalledProcessError:Command'krb5-config--libs

溫馨提示

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

評論

0/150

提交評論