版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
浙江省普通本科高?!笆奈濉敝攸c教材大語言模型通識大語言模型通識周蘇教授QQ:81505050第6章大模型的開發(fā)組織人工智能正在成為我們日常生活中不可或缺的一部分。其中,深度學習模型尤其引人注目,而大語言模型更是當下的熱門話題(見圖6-1)。
圖6-1案例:文心大模型全景圖第6章大模型的開發(fā)組織為什么大模型如此重要呢?(1)高準確性:隨著模型參數(shù)的增加,模型通常能更好地學習和適應各種數(shù)據(jù),從而提高其預測和生成的準確性。(2)多功能性:大模型通常更為通用,能夠處理更多種類的任務,而不僅限于特定領域。(3)持續(xù)學習:大模型的巨大容量使其更適合從持續(xù)的數(shù)據(jù)流中學習和適應新知識。第6章大模型的開發(fā)組織01大模型開發(fā)流程02大模型的數(shù)據(jù)組織03訓練集、測試集、驗證集不同之處04訓練集、測試集、驗證集相識之處目錄/CONTENTSPART01大模型開發(fā)流程所謂大模型開發(fā),是指建設以大模型為功能核心、通過其強大的理解能力和生成能力、結合特殊的數(shù)據(jù)或業(yè)務邏輯來提供獨特功能的應用。開發(fā)大模型相關應用,其技術核心雖然在大模型上,但一般通過調用API或開源模型來實現(xiàn)理解與生成,通過提示工程來實現(xiàn)大模型控制,因此,大模型是深度學習領域的集大成之作,大模型開發(fā)卻更多的是一個工程問題。圖6-2大模型開發(fā)要素6.1大模型開發(fā)流程在大模型開發(fā)中,我們一般不會去大幅度改動模型,不會將精力聚焦在優(yōu)化模型本身上,而是將大模型作為一個調用工具,通過提示工程、數(shù)據(jù)工程、業(yè)務邏輯分解等手段來充分發(fā)揮大模型能力,適配應用任務。因此,大模型開發(fā)的初學者并不需要深入研究大模型內部原理,而更需要掌握使用大模型的實踐技巧。6.1大模型開發(fā)流程同時,以調用、發(fā)揮大模型作用為核心的大模型開發(fā)與傳統(tǒng)的人工智能開發(fā)在整體思路上有著較大的不同。大模型的兩個核心能力:指令理解與文本生成提供了復雜業(yè)務邏輯的簡單平替方案。在傳統(tǒng)的人工智能開發(fā)中,首先需要將復雜的業(yè)務邏輯進行拆解,對于每一個子業(yè)務構造訓練數(shù)據(jù)與驗證數(shù)據(jù),對于每一個子業(yè)務訓練優(yōu)化模型,最后形成完整的模型鏈路來解決整個業(yè)務邏輯。然而,在大模型開發(fā)中,嘗試用提示工程來替代子模型的訓練調優(yōu),通過提示鏈路組合來實現(xiàn)業(yè)務邏輯,用一個通用大模型+若干業(yè)務提示來完成任務,從而將傳統(tǒng)的模型訓練調優(yōu)轉變成了更簡單、輕松、低成本的提示設計調優(yōu)。6.1大模型開發(fā)流程同時,在評估思路上,大模型開發(fā)與傳統(tǒng)人工智能開發(fā)有質的差異。
傳統(tǒng)AI評估
LLM評估圖6-3大模型開發(fā)與傳統(tǒng)人工智能開發(fā)的不同6.1大模型開發(fā)流程傳統(tǒng)人工智能開發(fā)首先需要構造訓練集、測試集、驗證集,通過在訓練集上訓練模型、在測試集上調優(yōu)模型、在驗證集上最終驗證模型效果來實現(xiàn)性能的評估。然而,大模型開發(fā)更敏捷、靈活,一般不會在初期顯式地確定訓練集、驗證集,由于不再需要訓練子模型,我們直接從實際業(yè)務需求出發(fā)構造小批量驗證集,設計合理提示來滿足驗證集效果。然后,不斷從業(yè)務邏輯中收集提示的壞情況,并將壞情況加入到驗證集中,針對性優(yōu)化提示,最后實現(xiàn)較好的泛化效果。6.1大模型開發(fā)流程通常將大模型開發(fā)分解為以下幾個流程。
圖6-4大模型開發(fā)流程6.1大模型開發(fā)流程(1)確定目標。開發(fā)目標即應用場景、目標人群、核心價值。對于個體開發(fā)者或小型開發(fā)團隊而言,一般應先設定最小化目標,從構建一個最小可行性產品開始,逐步進行完善和優(yōu)化。6.1大模型開發(fā)流程(2)設計功能。確定目標后,需要設計應用所要提供的功能,以及每一個功能的大體實現(xiàn)邏輯。雖然通過使用大模型簡化了業(yè)務邏輯的拆解,但是越清晰、深入的業(yè)務邏輯理解往往能帶來更好的提示效果。同樣,對于個體開發(fā)者或小型開發(fā)團隊來說,先確定應用的核心功能,然后延展設計核心功能的上下游功能;例如,我們想打造一款個人知識庫助手,那么核心功能就是結合個人知識庫內容進行問題的回答,其上游功能的用戶上傳知識庫、下游功能的用戶手動糾正模型回答就是必須要設計實現(xiàn)的子功能。6.1大模型開發(fā)流程(3)搭建整體架構。目前,絕大部分大模型應用都是采用特定數(shù)據(jù)庫+提示+通用大模型的架構。需要針對所設計的功能,搭建項目的整體架構,實現(xiàn)從用戶輸入到應用輸出的全流程貫通。一般情況下,推薦基于LangChain框架進行開發(fā),這是一款使用大模型構建強大應用程序的工具,它提供了鏈(Chain)、工具(Tool)等架構的實現(xiàn),可以基于LangChain進行個性化定制,實現(xiàn)從用戶輸入到數(shù)據(jù)庫再到大模型最后輸出的整體架構連接。6.1大模型開發(fā)流程(4)搭建數(shù)據(jù)庫。個性化大模型應用需要有個性化的數(shù)據(jù)庫來支撐。由于大模型應用需要進行向量語義檢索,一般使用諸如chroma向量數(shù)據(jù)庫。在該步驟中,需要收集數(shù)據(jù)并進行預處理,再向量化存儲到數(shù)據(jù)庫中。數(shù)據(jù)預處理一般包括從多種格式向純文本的轉化,例如pdf、markdown、html、音視頻等,以及對錯誤數(shù)據(jù)、異常數(shù)據(jù)、臟數(shù)據(jù)進行清洗。完成預處理后,需要進行切片、向量化構建出個性化數(shù)據(jù)庫。6.1大模型開發(fā)流程向量數(shù)據(jù)庫最早應用于傳統(tǒng)人工智能和機器學習場景。大模型興起后,由于受大模型詞元數(shù)的限制,很多開發(fā)者傾向于將數(shù)據(jù)量龐大的知識、新聞、文獻、語料等先通過嵌入算法轉變?yōu)橄蛄繑?shù)據(jù),然后存儲在Chroma等向量數(shù)據(jù)庫中。當用戶在大模型輸入問題后,將問題本身也嵌入轉化為向量,在向量數(shù)據(jù)庫中查找與之最匹配的相關知識,組成大模型的上下文,將其輸入給大模型,最終返回大模型處理后的文本給用戶,這種方式不僅降低大模型的計算量,提高響應速度,也降低成本,并避免了大模型的詞元限制,是一種簡單高效的處理手段。此外,向量數(shù)據(jù)庫還在大模型記憶存儲等領域發(fā)揮其不可替代的作用。6.1大模型開發(fā)流程(5)提示工程。優(yōu)質的提示對大模型能力具有極大影響,需要逐步迭代構建優(yōu)質的提示工程來提升應用性能。在該步驟中,首先應該明確提示設計的一般原則及技巧,構建出一個源于實際業(yè)務的小型驗證集,以此來滿足基本要求、具備基本能力的提示。6.1大模型開發(fā)流程(6)驗證迭代。這在大模型開發(fā)中是極其重要的一步,一般指通過不斷發(fā)現(xiàn)壞的情況并針對性改進提示工程來提升系統(tǒng)效果、應對邊界情況。在完成上一步的初始化提示設計后,應該進行實際業(yè)務測試,探討邊界情況,找到壞的情況,并針對性分析提示存在的問題,從而不斷迭代優(yōu)化,直到達到一個較為穩(wěn)定、可以基本實現(xiàn)目標的提示版本。6.1大模型開發(fā)流程(7)前后端搭建。完成提示工程及其迭代優(yōu)化之后,就完成了應用的核心功能,可以充分發(fā)揮大模型的強大能力。接下來,需要搭建前后端,設計產品頁面,讓應用能夠上線成為產品。前后端開發(fā)是非常經(jīng)典且成熟的領域,有兩種快速開發(fā)演示的框架:Gradio和Streamlit,可以幫助個體開發(fā)者迅速搭建可視化頁面實現(xiàn)演示上線。(8)體驗優(yōu)化。完成前后端搭建后,應用就可以上線體驗了。接下來需要進行長期的用戶體驗跟蹤,記錄壞情況,與用戶負反饋,再針對性進行優(yōu)化即可。6.1大模型開發(fā)流程PART02大模型的數(shù)據(jù)組織在設計、研發(fā)、運行的過程中,大模型面臨的主要挑戰(zhàn)如下。(1)計算資源:訓練和運行大模型需要大量的計算資源,這可能限制了許多機構和研究者使用它的能力。(2)環(huán)境影響:大規(guī)模模型的訓練對能源的需求是巨大的,可能會對環(huán)境造成負面影響。(3)偏見和公正性:由于大模型通常從大量的互聯(lián)網(wǎng)文本中學習,它們可能會吸收并再現(xiàn)存在于這些數(shù)據(jù)中的偏見。6.2大模型的數(shù)據(jù)組織盡管大模型存在上述挑戰(zhàn),但研究者仍在積極尋找解決方法。例如,通過更高效的訓練方法、結構優(yōu)化等技術來降低能源消耗;或者通過更公正的數(shù)據(jù)收集和處理方法來減少模型偏見。大模型的研發(fā)流程涵蓋了從數(shù)據(jù)采集到模型訓練的多個步驟。6.2大模型的數(shù)據(jù)組織數(shù)據(jù)采集是大模型項目的起點,根據(jù)大模型訓練的需求收集大量數(shù)據(jù)。這些數(shù)據(jù)可以有多種來源,如公開的數(shù)據(jù)集、公司內部的數(shù)據(jù)庫、用戶生成的數(shù)據(jù)、傳感器數(shù)據(jù)等。數(shù)據(jù)的類型可以多樣,包括圖像、文本、聲音、視頻等。定義數(shù)據(jù)需求:確定需要收集什么樣的數(shù)據(jù)。這應該基于問題陳述和項目目標。需要理解你的問題是什么,然后決定哪種類型的數(shù)據(jù)(例如數(shù)字、類別、文本、圖像等)和哪些特定的特征可能對解決問題有幫助。6.2.1數(shù)據(jù)采集找到數(shù)據(jù)源:確定數(shù)據(jù)來源。這可能包括公開的數(shù)據(jù)庫、在線資源,或者可以從公司內部數(shù)據(jù)庫或系統(tǒng)中收集數(shù)據(jù)。在某些情況下,可能需要通過調查或實驗收集新的數(shù)據(jù)。數(shù)據(jù)收集:從選擇的數(shù)據(jù)源中收集數(shù)據(jù)。這涉及到從數(shù)據(jù)庫中導出數(shù)據(jù),使用API來收集在線數(shù)據(jù),或者使用特殊的數(shù)據(jù)采集設備(例如物聯(lián)網(wǎng))。數(shù)據(jù)存儲:將收集到的數(shù)據(jù)存儲在合適的地方,以便進一步處理和分析。這可能涉及到設置數(shù)據(jù)庫或使用文件系統(tǒng)。6.2.1數(shù)據(jù)采集檢查數(shù)據(jù)質量:查看收集的數(shù)據(jù),確保其質量滿足需求。需要檢查數(shù)據(jù)是否完整,是否有錯誤,是否有重復的數(shù)據(jù)等。數(shù)據(jù)整理:如果數(shù)據(jù)來自多個來源,或者在一個大的數(shù)據(jù)集中,可能需要整理數(shù)據(jù),使其在一定的上下文中有意義。這包括對數(shù)據(jù)排序,或者將數(shù)據(jù)分組,或者將數(shù)據(jù)從多個源合并。數(shù)據(jù)采集是一個持續(xù)的過程,特別是對需要實時更新或處理新信息的項目。在整個數(shù)據(jù)采集過程中,需要關注數(shù)據(jù)的質量和一致性,同時也要注意遵守數(shù)據(jù)隱私和安全的相關規(guī)定。6.2.1數(shù)據(jù)采集收集到的原始數(shù)據(jù)可能含有噪聲、缺失值、錯誤數(shù)據(jù)等,所以要對數(shù)據(jù)進行清洗。清洗后的數(shù)據(jù)要進行一系列預處理操作,如歸一化、編碼轉換等,使其適合輸入到模型中。數(shù)據(jù)清洗和預處理是數(shù)據(jù)科學項目的重要步驟,它們有助于提高模型的性能并減少可能的錯誤。數(shù)據(jù)質量檢查:這是數(shù)據(jù)清洗的第一步,其中涉及識別和處理數(shù)據(jù)集中的錯誤、重復值、缺失值和異常值。需要驗證數(shù)據(jù)的完整性、一致性和準確性,確保所有的記錄都是準確的,與實際情況相符。6.2.2數(shù)據(jù)清洗和預處理處理缺失值:有多種方法可以處理數(shù)據(jù)集中的缺失值。這些方法包括:刪除包含缺失值的記錄;用特定值(如列的平均值、中位數(shù)或眾數(shù))填充缺失值;使用預測模型(如KNN近鄰分類或回歸)預測缺失值;或者使用一種標記值來表示缺失值。處理重復值:如果數(shù)據(jù)集中存在重復的記錄,那么可能需要刪除這些重復的記錄。在一些情況下,重復的記錄可能是數(shù)據(jù)收集過程中的錯誤,但在其他情況下,重復的記錄可能是有意義的,所以需要根據(jù)具體情況來判斷。6.2.2數(shù)據(jù)清洗和預處理處理異常值:異常值是那些遠離其他觀察值的值,這些值可能由測量錯誤或其他原因產生。處理異常值的方法包括:刪除異常值;使用統(tǒng)計方法(如四分位數(shù)間距法)將異常值替換為更合理的值;或者使用機器學習算法對其進行預測。6.2.2數(shù)據(jù)清洗和預處理數(shù)據(jù)轉換:將數(shù)據(jù)轉換為適合進行分析或建模的形式。這可能包括以下幾種形式。(1)規(guī)范化或標準化:將數(shù)值特征縮放到同一范圍內,如0到1,或者轉換為具有零均值和單位方差的值。(2)分類變量編碼:例如將分類變量轉換為獨熱編碼或標簽編碼。(3)特征工程:創(chuàng)建新的特征,使之可能更好地表達數(shù)據(jù)的某些方面或者提高模型的性能。根據(jù)具體的項目和數(shù)據(jù)集,這個流程可能會有所不同。在進行數(shù)據(jù)清洗和預處理時,需要對數(shù)據(jù)有深入的理解,以便做出最好的決策。6.2.2數(shù)據(jù)清洗和預處理數(shù)據(jù)標注,也叫數(shù)據(jù)標記,是一項為原始數(shù)據(jù)添加元信息的工作,以幫助大模型更好地理解和學習數(shù)據(jù)。對于監(jiān)督學習任務,模型需要有標簽的數(shù)據(jù)進行訓練,數(shù)據(jù)標注的目標就是為數(shù)據(jù)提供這些標簽,這個過程可能需要專門的標注團隊。對于非監(jiān)督學習任務,如聚類或生成模型,這一步則不需要。理解任務需求:首先需要理解要解決的問題以及數(shù)據(jù)標注應該如何進行。例如,如果進行圖像分類任務,可能需要給每個圖像一個分類標簽;如果在進行物體檢測任務,可能需要在圖像中的每個目標物體周圍畫一個邊界框,并給出這個物體的分類標簽。6.2.3數(shù)據(jù)標注制定標注規(guī)范:規(guī)范是一個詳細解釋如何進行數(shù)據(jù)標注的指南,它解釋哪些數(shù)據(jù)應該被標記,應該如何標記,以及如何處理可能出現(xiàn)的問題或歧義。清晰、詳細的標注規(guī)范可以幫助保持標注的一致性,并提高標注的質量。選擇或開發(fā)標注工具:有許多可用的數(shù)據(jù)標注工具,可以用于各種類型的數(shù)據(jù)標注任務。應該選擇或開發(fā)一個適合自己任務的標注工具。標注工具應該方便使用,提高標注效率,并盡可能減少錯誤。進行數(shù)據(jù)標注:按照標注規(guī)范,使用標注工具進行數(shù)據(jù)標注。這可能是一個時間和人力密集型的過程,尤其是當有大量數(shù)據(jù)需要標注時。6.2.3數(shù)據(jù)標注質量檢查:檢查標注的數(shù)據(jù),確保標注的質量。這涉及到隨機抽查一部分數(shù)據(jù),并檢查它們是否被正確和一致地標注。反饋和修正:根據(jù)質量檢查的結果,如果發(fā)現(xiàn)任何問題或不一致,需要反饋給標注團隊,并修正錯誤的標注。數(shù)據(jù)標注是一個重要但往往被忽視的步驟。高質量標注數(shù)據(jù)對訓練出高性能的機器學習模型至關重要。因此,盡管這是一個復雜和耗時的過程,但投入在這個過程中的努力會得到回報。6.2.3數(shù)據(jù)標注數(shù)據(jù)通常被劃分為訓練集、驗證集和測試集。訓練集用于模型訓練,驗證集用于超參數(shù)調整和模型選擇,測試集用于最后的模型性能評估。數(shù)據(jù)集劃分是大模型項目中的一個重要步驟,它可以幫助我們更好地理解模型在未見過的數(shù)據(jù)上的性能。確定劃分策略:確定數(shù)據(jù)集劃分的策略主要取決于數(shù)據(jù)集的大小和特性。一般的策略是將數(shù)據(jù)集劃分為訓練集、驗證集和測試集。在大多數(shù)情況下,數(shù)據(jù)被劃分為80%的訓練集,10%的驗證集和10%的測試集,但這并不是硬性規(guī)定,具體的劃分比例需要根據(jù)實際情況來確定。6.2.4數(shù)據(jù)集劃分隨機劃分:為了確保每個劃分的數(shù)據(jù)分布與原始數(shù)據(jù)集相似,通常需要對數(shù)據(jù)進行隨機劃分。這可以通過洗牌數(shù)據(jù)索引來實現(xiàn)。分層抽樣:在某些情況下,可能需要確保每個劃分中各類別的數(shù)據(jù)比例與整個數(shù)據(jù)集相同。這稱為分層抽樣。例如,如果數(shù)據(jù)集是一個二分類問題,可能希望訓練集、驗證集和測試集中正負樣本的比例都與整個數(shù)據(jù)集中的比例相同。6.2.4數(shù)據(jù)集劃分時間序列數(shù)據(jù)的劃分:對于時間序列數(shù)據(jù),數(shù)據(jù)劃分的策略可能會不同。通常不能隨機劃分,而是基于時間來劃分數(shù)據(jù)。例如,我們可能會使用前80%的數(shù)據(jù)作為訓練集,然后使用接下來10%的數(shù)據(jù)作為驗證集,最后10%的數(shù)據(jù)作為測試集。分割數(shù)據(jù):按照所選擇的策略,使用編程語言或者數(shù)據(jù)處理工具來劃分數(shù)據(jù)。保存數(shù)據(jù):保存劃分后的數(shù)據(jù)集,以便后續(xù)的訓練和測試。確保訓練數(shù)據(jù)、驗證數(shù)據(jù)和測試數(shù)據(jù)被正確地保存,并且可以方便地加載。這個流程可能根據(jù)數(shù)據(jù)的類型和任務的需求有所不同。無論如何,正確的數(shù)據(jù)劃分策略對于避免過擬合,以及準確評估模型的性能至關重要。6.2.4數(shù)據(jù)集劃分模型設計是大模型項目的關鍵環(huán)節(jié),需要結合項目目標、數(shù)據(jù)特性以及算法理論選擇或設計適合任務的模型架構??赡軙褂脧碗s的深度學習架構,如Transformer、BERT、ResNet等。理解問題:首先,需要理解你要解決的問題,并根據(jù)問題類型(例如,分類、回歸、聚類、生成模型等)決定采用何種類型的模型。選擇算法:根據(jù)要解決的問題選擇合適的機器學習算法。這可能包括決策樹、線性回歸、邏輯回歸、支持向量機、神經(jīng)網(wǎng)絡、集成學習等。在選擇算法時,需要考慮各種因素,如問題的復雜性、數(shù)據(jù)的大小和維度、計算資源等。6.2.5模型設計設計模型架構:這主要涉及到深度學習模型。需要設計模型的架構,例如神經(jīng)網(wǎng)絡的層數(shù)、每層的節(jié)點數(shù)、激活函數(shù)的選擇等。此步驟可能需要根據(jù)經(jīng)驗和實驗結果進行調整。6.2.5模型設計設置超參數(shù):超參數(shù)是在開始學習過程之前設置的參數(shù),而不是通過訓練得到的參數(shù)。例如,學習率、批量大小、迭代次數(shù)等。超參數(shù)的選擇可能需要通過經(jīng)驗或者系統(tǒng)的搜索(例如網(wǎng)格搜索、隨機搜索或貝葉斯優(yōu)化)來確定。正則化和優(yōu)化策略:為了防止過擬合并提高模型的泛化能力,可能需要使用一些正則化策略,如L1/L2正則化、dropout(輟學)、earlystopping(提早停止)等。同時,還需要選擇合適的優(yōu)化算法(例如,SGD、Adam、RMSprop等)以及可能的學習率調整策略。6.2.5模型設計定義評估指標:需要定義合適的評估指標來衡量模型的性能。選擇的評估指標應與業(yè)務目標和模型目標相一致。常見的評估指標包括精度、召回率、F1分數(shù)、AUC、均方誤差等。這個流程可能需要根據(jù)具體的項目和需求進行迭代和調整。模型設計是一個需要技術知識、經(jīng)驗以及實驗驗證的過程。在設計模型時,需要保持對模型復雜性和泛化能力之間平衡的認識,并始終以實現(xiàn)業(yè)務目標為導向。6.2.5模型設計模型初始化是大模型項目中的一個重要步驟。在訓練開始前,需要初始化模型的參數(shù),這一般通過隨機方式進行。正確的初始化策略可以幫助模型更快地收斂,并減少訓練過程中可能出現(xiàn)的問題。選擇初始化策略:有許多不同的初始化策略可以選擇,例如零初始化、隨機初始化、He初始化、Xavier初始化等。需要根據(jù)模型和激活函數(shù)來選擇合適的初始化策略。例如,如果模型使用ReLU激活函數(shù),He初始化可能是一個好的選擇;如果模型使用tanh或sigmoid激活函數(shù),Xavier初始化可能是一個好的選擇。6.2.6模型初始化初始化權重:使用選擇的策略來初始化模型的權重。對每一層都需要初始化其權重。在大多數(shù)情況下,權重應該被初始化為小的隨機數(shù),以打破對稱性并保證不同神經(jīng)元學到不同的特征。初始化偏置:初始化模型的偏置。在許多情況下,偏置可以被初始化為零。但是,對于某些類型的層(如批量歸一化層),偏置的初始化可能需要更復雜的策略。6.2.6模型初始化設置初始化參數(shù):某些初始化策略可能需要額外的參數(shù)。例如,隨機初始化可能需要一個范圍或者一個標準差,你需要設置這些參數(shù)。執(zhí)行初始化:在模型代碼中執(zhí)行初始化操作。大多數(shù)深度學習框架(如TensorFlow和PyTorch)都提供了內置的方法來執(zhí)行初始化。模型初始化是一個比較技術性的主題,正確的初始化策略可能對模型的訓練速度和性能有很大的影響。應該了解不同的初始化策略,以便根據(jù)模型選擇最適合的策略。6.2.6模型初始化模型訓練是大模型項目中的關鍵步驟,其中包含了多個環(huán)節(jié)。設置訓練參數(shù):首先,需要設置訓練參數(shù),如學習率、訓練迭代次數(shù)、批次大小等。準備訓練數(shù)據(jù):需要將數(shù)據(jù)集劃分為訓練集、驗證集和測試集。通常,大部分數(shù)據(jù)用于訓練,一部分用于驗證模型性能和調整超參數(shù),剩余的一部分用于測試。6.2.7模型訓練前向傳播:在前向傳播階段,模型接收輸入數(shù)據(jù),并通過網(wǎng)絡層傳遞,直到輸出層。這個過程中會生成一個預測輸出。計算損失:根據(jù)預測輸出和實際標簽,使用損失函數(shù)(如均方誤差、交叉熵等)計算損失。損失反映了模型預測的準確程度。反向傳播:在這個階段,算法計算損失函數(shù)關于模型參數(shù)的梯度,并根據(jù)這些梯度來更新模型參數(shù)。這個過程通常使用優(yōu)化算法(如梯度下降、隨機梯度下降、Adam等)來進行。6.2.7模型訓練驗證和調整:在每個迭代結束后,使用驗證集評估模型性能。如果模型在驗證集上的性能沒有提高,或者開始下降,這意味著模型可能過擬合了,需要調整模型的超參數(shù),或者使用一些正則化技術(如dropout、L1/L2正則化、早停法等)。重復上述步驟:重復前向傳播、計算損失、反向傳播和驗證的步驟,直到模型性能達到滿意,或者達到預設的訓練迭代次數(shù)。模型測試:當模型訓練完成后,使用測試集進行最終的性能評估。這能夠提供模型在未見過的數(shù)據(jù)上的性能表現(xiàn)。實際操作中可能需要根據(jù)特定任務或特定模型進行相應的調整。6.2.7模型訓練模型驗證是大模型項目中非常關鍵的一步,目的是在訓練過程中,評估模型的性能,定期在驗證集上測試模型的性能,監(jiān)控過擬合,根據(jù)測試和監(jiān)控結果調整模型的超參數(shù)。準備驗證集:在數(shù)據(jù)集劃分階段,應該保留一部分數(shù)據(jù)作為驗證集。這部分數(shù)據(jù)不參與模型訓練,僅用于模型驗證。進行模型預測:使用訓練好的模型對驗證集進行預測。通常,在每一輪迭代訓練結束后進行一次驗證。6.2.8模型驗證計算評估指標:根據(jù)模型在驗證集上的預測結果和真實標簽,計算相應的評估指標。評估指標的選擇取決于任務類型。例如:對于分類任務,常見的評估指標有準確率、精確率、召回率、F1分數(shù)等;對于回歸任務,常見的評估指標有均方誤差(MSE)、平均絕對誤差(MAE)等。比較性能:將這一輪的驗證性能與前一輪進行比較。如果性能提高,則可以繼續(xù)進行下一輪訓練;如果性能下降,則可能需要調整學習率、增加正則化等措施。6.2.8模型驗證早停法:如果在連續(xù)多輪訓練后,驗證性能沒有顯著提高,可以使用早停法來提前結束訓練,以避免過擬合。調整超參數(shù):如果模型在驗證集上的性能不佳,可能需要調整模型的超參數(shù),如學習率、批次大小、正則化參數(shù)等。常用的方法是使用網(wǎng)格搜索或隨機搜索等方式來自動搜索最優(yōu)的超參數(shù)組合。驗證集應保持獨立,不能用于訓練模型,否則就可能導致模型的性能評估不準確,無法真實反映模型在未見過的數(shù)據(jù)上的性能。6.2.8模型驗證模型保存是大模型項目的重要一步,讓我們能夠將訓練好的模型存儲起來,以便于后續(xù)的測試、部署或進一步訓練或分享。選擇保存格式:需要選擇一個合適的模型保存格式。常用的模型保存格式包括:Python的pickle文件、joblib文件,或者某些深度學習框架的專有格式,如TensorFlow的SavedModel格式和PyTorch的pth格式。這個選擇可能會受到所使用的工具和框架、模型的大小和復雜性、以及你的具體需求等因素的影響。6.2.9模型保存保存模型參數(shù):對于神經(jīng)網(wǎng)絡模型,通常會保存模型的參數(shù)(即權重和偏置)。這些參數(shù)是通過訓練學習到的,可以用于在相同的模型架構上進行預測。保存模型架構:除了模型參數(shù),可能需要保存模型的架構。這包括模型的層數(shù)、每層的類型(例如卷積層、全連接層等)、每層的參數(shù)(例如卷積核的大小和數(shù)量、步長、填充等)、激活函數(shù)的類型等。6.2.9模型保存保存訓練配置:此外,可能需要保存一些訓練的配置信息,如優(yōu)化器類型、學習率、損失函數(shù)類型等。執(zhí)行保存操作:使用所選工具或框架的保存函數(shù),將模型保存到文件中。通常,這會創(chuàng)建一個可以在其他計算機或在其他時間加載的文件。驗證保存的模型:加載保存的模型,并在一些測試數(shù)據(jù)上運行,以確保模型被正確保存并可以再次使用。這個流程可能會根據(jù)具體需求和所使用的工具或框架進行一些調整。6.2.9模型保存模型測試是大模型部署前的最后一步,目的是在測試集上評估模型的最終性能。準備測試集:在數(shù)據(jù)集劃分階段,應該保留一部分數(shù)據(jù)作為測試集。這部分數(shù)據(jù)既不參與訓練,也不參與驗證,僅用于最后的模型測試。進行模型預測:使用訓練并經(jīng)過驗證的模型對測試集進行預測。在此步驟中,應當使用已保存的模型,而不是在訓練過程中任何階段的模型。6.2.10模型測試計算評估指標:根據(jù)模型在測試集上的預測結果和真實標簽,計算相應的評估指標。這些指標應當與在訓練和驗證階段使用的指標一致,以便于進行比較。分析結果:除了計算總體的評估指標,也可以分析模型在特定類型的任務或數(shù)據(jù)上的性能。例如,可以查看模型在某個特定類別上的精確率和召回率,或者分析模型在不同難度級別的任務上的表現(xiàn)。6.2.10模型測試記錄和報告:記錄模型在測試集上的性能,并編寫報告。報告應當包含模型的詳細信息(例如,架構、訓練參數(shù)等),以及模型在測試集上的性能結果。測試集應當保持獨立和未知,不能用于訓練或驗證模型,以確保測試結果能夠真實反映模型在實際環(huán)境中的表現(xiàn)。6.2.10模型測試模型部署是將訓練好的大模型應用于實際生產環(huán)境中,使模型能夠對新的數(shù)據(jù)進行預測。模型選擇:在多個模型中選擇一個適合部署的模型。這個模型應該是在驗證和測試階段表現(xiàn)最優(yōu)秀的模型。模型轉換:如果需要,將模型轉換為適用于特定生產環(huán)境的格式。例如,如果計劃在移動設備上運行模型,可能需要將模型轉換為TensorFlowLite或CoreML格式。6.2.11模型部署部署策略:確定模型部署策略。可能會選擇將模型部署在本地服務器上,也可能選擇將模型部署在云服務器上。此外,還需要決定是否使用API、微服務或其他形式來提供模型服務。環(huán)境配置:配置生產環(huán)境。這可能包括安裝必要的軟件庫,設置服務器參數(shù),配置網(wǎng)絡等。模型加載和測試:在生產環(huán)境中加載模型并進行測試,以確保模型在生產環(huán)境中正確運行。6.2.11模型部署模型監(jiān)控:設置監(jiān)控系統(tǒng),以實時監(jiān)測模型的性能。如果模型性能下降或出現(xiàn)其他問題,應該能夠及時得到通知。模型更新:根據(jù)模型在生產環(huán)境中的表現(xiàn)和新的數(shù)據(jù),定期更新模型。這可能涉及到收集新的訓練數(shù)據(jù),重新訓練模型,測試新模型,然后將新模型部署到生產環(huán)境中。這個流程可能會根據(jù)具體需求和所使用的技術進行一些調整。部署機器學習模型是一個復雜的過程,需要考慮的因素很多,如模型性能、可擴展性、安全性、成本等。6.2.11模型部署PART03訓練集、測試集、驗證集不同之處訓練集、測試集、驗證集三者在數(shù)據(jù)目的與功能、數(shù)據(jù)交互頻率上、數(shù)據(jù)劃分與比例以及使用時機等方面均有不同之處。6.3訓練集、測試集、驗證集不同之處訓練集、測試集、驗證集這三者的目的和功能不同。訓練集主要用于訓練模型,驗證集主要用于在訓練過程中選擇模型和調整超參數(shù),測試集則用來最終評估模型的性能?!居柧毤坑柧毮P?。訓練集用于模型訓練,幫助模型確定權重和偏置等參數(shù),模型通過深入學習和理解訓練集中的數(shù)據(jù),逐漸學會識別其中的模式和規(guī)律,并逐步優(yōu)化其預測能力。沒有良好的訓練集,模型就像是失去了根基的大樹,無法穩(wěn)固地生長和擴展。因此,需要精心準備和挑選訓練集,確保它具有代表性和高質量,這樣模型才能更好地理解和適應真實世界的變化。6.3.1目的與功能不同【驗證集】選擇和調參。驗證集用于模型選擇和超參數(shù)調整。它不參與學習參數(shù)的確定,主要幫助我們在眾多可能性中,找到那些能夠使模型性能達到巔峰的超參數(shù),如網(wǎng)絡層數(shù)、網(wǎng)絡節(jié)點數(shù)、迭代次數(shù)、學習率等,為挑選最優(yōu)模型超參數(shù)提供優(yōu)質的咨詢和建議。驗證集讓我們能夠在實戰(zhàn)之前就預知模型的性能,從而做出最佳的選擇。這種前瞻性的策略,不僅能夠提高模型的效率,更能夠節(jié)省寶貴的時間和資源。6.3.1目的與功能不同【測試集】評估性能。測試集用于評估模型的最終性能,是考驗模型的最后一關。它不參與模型的學習參數(shù)過程,也不介入超參數(shù)的選擇,它的存在就是為了對模型的最終性能(即泛化能力)做出公正的評價。一個人工智能模型只有通過了測試集的考驗,才能真正稱得上是具備良好泛化能力的模型。6.3.1目的與功能不同訓練集、測試集、驗證集這三者和模型的數(shù)據(jù)交互頻率不同。訓練集會不斷交互,驗證集是定期交互,而測試集只交互一次。【訓練集】不斷交互。使用訓練集時,模型在訓練階段不斷與訓練集交互,通過多次地學習、調整和迭代來提高性能。它是在訓練集的多次反饋中完成優(yōu)化的。在訓練集中,模型通過一次次的迭代優(yōu)化,逐步提升自己的工藝水平。6.3.2數(shù)據(jù)交互頻率不同【驗證集】定期交互。驗證集在訓練過程中的不同時間點交互,幫助開發(fā)人員調整模型參數(shù)和決定訓練的結束點。它在訓練過程中的每一個關鍵時刻出現(xiàn),為開發(fā)人員提供寶貴的反饋和指引,幫助開發(fā)人員調整模型的超參數(shù)。所以,和訓練集中的情況不一樣,模型不會在驗證集中反復訓練,只會定期和驗證集進行數(shù)據(jù)交互。驗證集的每一次反饋,都是對模型的一次重要檢驗,所獲得的數(shù)據(jù)評估指標,也是優(yōu)化人工智能性能的重要依據(jù)。6.3.2數(shù)據(jù)交互頻率不同【測試集】交互一次。測試集在整個訓練過程完成后交互,僅一次,用于模型的最終評估,這個活動只有在整個訓練過程圓滿完成后才會出現(xiàn)。測試集是模型的最后一道關卡,通過了,模型就可以接受真實世界的考驗了。6.3.2數(shù)據(jù)交互頻率不同通常情況下,數(shù)據(jù)集會通過隨機抽樣、分層抽樣、時間序列抽樣等方式,按照不同比例劃分為訓練集、驗證集和測試集,三者之間不能有交集。【訓練集】占比約60%~80%。訓練集作為模型學習的主要來源,需要占據(jù)較大的比例,以確保模型有足夠的數(shù)據(jù)來捕捉到數(shù)據(jù)中的模式和規(guī)律。【驗證集】占比約10%~20%。一般來說,這個占比規(guī)模的驗證集已經(jīng)足夠提供模型性能的合理估計,能提供有關模型泛化能力的有用信息就行,不用過多。而且,如果驗證集太大,每次評估的時間成本會顯著增加,這會拖慢整個實驗的進度。6.3.3數(shù)據(jù)劃分與比例不同【測試集】占比約10%~20%。因為測試集在模型訓練完成后只評估一次,所以只要足夠用于評估模型最終性能就行。如果測試集太大,評估過程會消耗大量計算資源和時間,沒有必要。在數(shù)據(jù)劃分上,訓練集、測試集、驗證集的具體比例取決于實際任務的需求和數(shù)據(jù)量的大小,不同的機器學習問題可能有不同的數(shù)據(jù)劃分需求。例如,對于數(shù)據(jù)量非常龐大的情況,可能只需要很小的驗證集和測試集;而對于數(shù)據(jù)量本身就很小的情況,可能需要采用交叉驗證等方法來充分利用數(shù)據(jù)。6.3.3數(shù)據(jù)劃分與比例不同訓練集、驗證集和測試集在模型的整個訓練過程的不同階段發(fā)揮作用,所以開發(fā)人員使用它們的時機是不同的。【訓練集】在模型的初始訓練階段使用。模型剛剛搭建起來的時候,需要耐心地用訓練集進行大量的訓練,直到它掌握了所有的知識為止,這是初始必經(jīng)過程。6.3.4使用時機不同【驗證集】在模型訓練過程中定期使用。因為驗證集用于監(jiān)控模型的性能和調整超參數(shù)。所以在模型通過初始階段的訓練后,需要在過程中可以監(jiān)督到模型的學習效果。在模型的訓練過程中,直到結束訓練前的這個階段,我們會用驗證集給模型來幾場“摸底考試”,若是發(fā)現(xiàn)不對的地方可以及時調整,以確保模型在訓練過程中具備良好的性能。6.3.4使用時機不同【測試集】在模型訓練完成后使用。測試集用于最終評估模型性能。所以,在訓練集和驗證集階段都不會用到測試集的數(shù)據(jù),并且也需要保證測試集的數(shù)據(jù)是模型之前未見過的數(shù)據(jù)。對模型學習成果來一次最終的全面檢驗是測試集存在的價值之一,這也是為什么測試集會被放在模型訓練的最后階段。6.3.4使
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園食品安全宣傳教育活動
- 努力奮斗規(guī)劃
- 寫給老師的感謝信模板集錦八篇
- 猝死患者的護理查房
- 節(jié)約用水演講稿集錦10篇
- 貓教案集錦八篇
- 商場光棍節(jié)活動策劃
- 小孩不笨觀看心得10篇
- 小學德育工作總結
- 乒乓球比賽作文集合8篇
- 《保持樂觀心態(tài)》課件
- 2024年中國電信廣東公司招聘筆試參考題庫含答案解析
- 2024年中國華電集團招聘筆試參考題庫含答案解析
- 中國心血管病預防指南(2017)
- 空調維保投標方案(技術方案)
- 【教學創(chuàng)新大賽】《數(shù)字電子技術》教學創(chuàng)新成果報告
- 咖啡因提取的綜合性實驗教學
- GONE理論視角下宜華生活財務舞弊案例分析
- 初中語文默寫競賽方案
- 2023電力建設工程監(jiān)理月報范本
- 汽車空調檢測與維修-說課課件
評論
0/150
提交評論