大模型掃盲系列——初識大模型

2024年2月6日 19点热度 0人点赞

近年來,隨著計算機技術和大數據的快速發展,深度學習在各個領域取得了顯著的成果。為了提高模型的性能,研究者們不斷嘗試增加模型的參數數量,從而誕生了大模型這一概念。本文將從大模型的原理、訓練過程、prompt和相關應用介紹等方面進行分析,幫助讀者初步了解大模型。

大模型的定義

大模型是指具有數千萬甚至數億參數的深度學習模型。近年來,隨著計算機技術和大數據的快速發展,深度學習在各個領域取得了顯著的成果,如自然語言處理,圖片生成,工業數字化等。為了提高模型的性能,研究者們不斷嘗試增加模型的參數數量,從而誕生了大模型這一概念。本文討論的大模型將以平時指向比較多的大語言模型為例來進行相關介紹。

大模型的基本原理與特點

大模型的原理是基於深度學習,它利用大量的數據和計算資源來訓練具有大量參數的神經網絡模型。通過不斷地調整模型參數,使得模型能夠在各種任務中取得最佳表現。通常說的大模型的“大”的特點體現在:參數數量龐大、訓練數據量大、計算資源需求高等。很多先進的模型由於擁有很“大”的特點,使得模型參數越來越多,泛化性能越來越好,在各種專門的領域輸出結果也越來越準確。現在市面上比較流行的任務有AI生成語言(ChatGPT類產品)、AI生成圖片(Midjourney類產品)等,都是圍繞生成這個概念來展開應用。“生成”簡單來說就是根據給定內容,預測和輸出接下來對應內容的能力。比如最直觀的例子就是成語接龍,可以把大語言模型想象成成語接龍功能的智能版本,也就是根據最後一個字輸出接下來一段文章或者一個句子。

一個基本架構,三種形式:

當前流行的大模型的網絡架構其實並沒有很多新的技術,還是一直沿用當前NLP領域最熱門最有效的架構——Transformer結構。相比於傳統的循環神經網絡(RNN)和長短時記憶網絡(LSTM),Transformer具有獨特的註意力機制(Attention),這相當於給模型加強理解力,對更重要的詞能給予更多關註,同時該機制具有更好的並行性和擴展性,能夠處理更長的序列,立馬成為NLP領域具有奠基性能力的模型,在各類文本相關的序列任務中取得不錯的效果。

根據這種網絡架構的變形,主流的框架可以分為Encoder-Decoder, Encoder-Only和Decoder-Only,其中:

1)Encoder-Only,僅包含編碼器部分,主要適用於不需要生成序列的任務,隻需要對輸入進行編碼和處理的單向任務場景,如文本分類、情感分析等,這類代表是BERT相關的模型,例如BERT,RoBERT,ALBERT等

2)Encoder-Decoder,既包含編碼器也包含解碼器,通常用於序列到序列(Seq2Seq)任務,如機器翻譯、對話生成等,這類代表是以Google訓出來T5為代表相關大模型。

3)Decoder-Only,僅包含解碼器部分,通常用於序列生成任務,如文本生成、機器翻譯等。這類結構的模型適用於需要生成序列的任務,可以從輸入的編碼中生成相應的序列。同時還有一個重要特點是可以進行無監督預訓練。在預訓練階段,模型通過大量的無標註數據學習語言的統計模式和語義信息。這種方法可以使得模型具備廣泛的語言知識和理解能力。在預訓練之後,模型可以進行有監督微調,用於特定的下遊任務(如機器翻譯、文本生成等)。這類結構的代表也就是我們平時非常熟悉的GPT模型的結構,所有該傢族的網絡結構都是基於Decoder-Only的形式來逐步演化。

可以看到,很多NLP任務可能可以通過多種網絡結果來解決,這也主要是因為NLP領域的任務和數據的多樣性和復雜性,以及現代深度學習模型的靈活性和泛化能力,具體哪種結構有效,一般需要根據具體場景和數據,通過實驗效果進行選擇。

訓練三步驟

初步認識了大模型長什麼樣了,接下來一起來看看如何訓練出一個大模型。

訓練方式,這裡主要參考OpenAI發表的關於InstructGPT的相關訓練步驟,主流的大模型訓練基本形式大多也是類似的:

1、預訓練(Pretraining)

預訓練是大模型訓練的第一步,目的是讓模型學習語言的統計模式和語義信息。主流的預訓練階段步驟基本都是近似的,其中最重要的就是數據,需要收集大量的無標註數據,例如互聯網上的文本、新聞、博客、論壇等等。這些數據可以是多種語言的,並且需要經過一定的清洗和處理,以去除噪音,無關信息以及個人隱私相關的,最後會以tokenizer粒度輸入到上文提到的語言模型中。這些數據經過清洗和處理後,用於訓練和優化語言模型。預訓練過程中,模型會學習詞匯、句法和語義的規律,以及上下文之間的關系。OpenAI的ChatGPT4能有如此驚人的效果,主要的一個原因就是他們訓練數據源比較優質。

2、 指令微調階段(Instruction Tuning Stage)

在完成預訓練後,就可以通過指令微調去挖掘和增強語言模型本身具備的能力,這步也是很多企業以及科研研究人員利用大模型的重要步驟。

Instruction tuning(指令微調)是大模型訓練的一個階段,它是一種有監督微調的特殊形式,旨在讓模型理解和遵循人類指令。在指令微調階段,首先需要準備一系列的NLP任務,並將每個任務轉化為指令形式,其中指令包括人類對模型應該執行的任務描述和期望的輸出結果。然後,使用這些指令對已經預訓練好的大語言模型進行監督學習,使得模型通過學習和適應指令來提高其在特定任務上的表現。

為了讓模型訓練更加高效和簡單,這個階段還有一種高效的fine-tuning技術,這為普通的從業者打開了通向使用大模型的捷徑。

Parameter-Efficient Fine-Tuning (PEFT)旨在通過最小化微調參數的數量和計算復雜度,達到高效的遷移學習的目的,提高預訓練模型在新任務上的性能,從而緩解大型預訓練模型的訓練成本。在訓練過程中,預訓練模型的參數保持不變,隻需微調少量的額外參數,就可以達到與全量微調相當的性能。

目前,很多研究對PEFT方法進行了探索,例如Adapter Tuning和Prefix Tuning等。其中,Adapter Tuning方法在面對特定的下遊任務時,將預訓練模型中的某些層固定,隻微調接近下遊任務的幾層參數。而Prefix Tuning方法則是在預訓練模型的基礎上,添加一些額外的參數,這些參數在訓練過程中會根據特定的任務進行更新和調整。

工業界現在常用的Adapter Tuning的技術是Low-Rank Adaptation(LoRA) 。它通過最小化微調參數的數量和計算復雜度,實現高效的遷移學習,以提高預訓練模型在新任務上的性能。LoRA 的核心思想是將預訓練模型的權重矩陣分解為兩個低秩矩陣的乘積。通過這種分解,可以顯著減少微調參數的數量,並降低計算復雜度。該方式和機器學習中經典的降維的思想很類似,類似地,LoRA 使用了矩陣分解技術中的奇異值分解 (Singular Value Decomposition, SVD) 或低秩近似 (Low-Rank Approximation) 方法,將原始權重矩陣分解為兩個低秩矩陣的乘積。

在微調過程中,LoRA 隻更新這兩個低秩矩陣的參數,而保持其他預訓練參數固定不變。這樣可以顯著減少微調所需的計算資源和時間,並且在很多任務上取得了與全量微調相當的性能。

LoRA技術的引入使得在大規模預訓練模型上進行微調更加高效和可行,為實際應用提供了更多可能性。

3、對齊微調(Alignment Tuning)

主要目標在於將語言模型與人類的偏好、價值觀進行對齊,其中最重要的技術就是使用RLHF(reinforcement learning from human feedback)來進行對齊微調。

Step 1.預訓練模型的有監督微調

先收集一個提示詞集合,並要求標註人員寫出高質量的回復,然後使用該數據集以監督的方式微調預訓練的基礎模型。

Step 2.訓練獎勵模型

這個過程涉及到與人類評估者進行對話,並根據他們的反饋來進行調整和優化。評估者會根據個人偏好對模型生成的回復進行排序,從而指導模型生成更符合人類期望的回復。這種基於人類反饋的訓練方式可以幫助模型捕捉到更多人類語言的特點和習慣,從而提升模型的生成能力。

Step 3.利用強化學習模型微調

主要使用了強化學習的鄰近策略優化(PPO,proximal policy optimization )算法,對於每個時間步,PPO算法會計算當前產生和初始化的KL散度,根據這個分佈來計算一個狀態或動作的預期回報,然後使用這個回報來更新策略,達到對SFT模型進一步優化。

但是這種算法存在一些比較明顯的缺點,比如PPO是on-policy算法,每一次更新都需要收集新的樣本,這就會導致算法的效率低下,並且更新是在每次訓練時進行的,因此策略更新比較頻繁,這就會導致算法的穩定性較差。

所以當前有很多新的技術出來替代RLHF技術:

直接偏好優化(DPO)是一種對傳統RLHF替代的技術,作者在論文中提出擬合一個反映人類偏好的獎勵模型,將獎勵函數和最優策略之間的映射聯系起來,從而把約束獎勵最大化問題轉化為一個單階段的策略訓練問題。然後通過強化學習來微調大型無監督語言模型,以最大化這個預估的獎勵。這個算法具有簡單有效和計算輕量級的特點,不需要擬合獎勵模型,隻需要進行單階段訓練,也不需要大量的超參數調節,所以在響應質量方面也通常優於傳統的RLHF。另外還有RLAIF從采樣方式,生成訓練獎勵模型的評分的角度來替代原有的PPO的RLHF進行訓練。

DPO方法

對齊微調是一個關鍵的階段,這一階段使用強化學習從人類反饋中進行微調,以進一步優化模型的生成能力。它通過與人類評估者和用戶的互動,不斷優化模型的生成能力,以更好地滿足人類期望和需求。

Prompt

作為大模型的一個技術分支,很多人接觸大模型的第一步就是寫prompt,而這的確也是大模型發展的其中一個重要方向技術,也是很多實際運用問題解決的關鍵步驟。

Prompt技術的基本思想是,通過給模型提供一個或多個提示詞或短語,來指導模型生成符合要求的輸出。本質上是通過恰當的初始化參數(也就是適當的輸入語言描述),來激發語言模型本身的潛力。例如,在文本分類任務中,我們可以給模型提供一個類別標簽的列表,並要求它生成與這些類別相關的文本;在機器翻譯任務中,我們可以給模型提供目標語言的一段文本,並要求它翻譯這段文本。

Prompt根據常用的使用場景可以概括為以下四種:

Zero-Shot Prompt: 在零樣本場景下使用,模型根據提示或指令進行任務處理,不需要針對每個新任務或領域都進行專門的訓練,這類一般作為訓練通用大模型的最常見的評估手段。

Few-Shot Prompt: 在少樣本場景下使用,模型從少量示例中學習特定任務,利用遷移學習的方法來提高泛化性能,該類prompt也是很多實際應用案例都采取來進行大模型微調訓練的方式。

Chain-of-thought prompt:這類prompt常見於推理復雜任務,它通過引導模型逐步解決問題,以一系列連貫的步驟展示推理的思路和邏輯關系。通過這種逐步推理的方式,模型可以逐漸獲得更多信息,並在整個推理過程中累積正確的推斷。

Multimodal prompt:這類prompt包含的信息就更豐富,主要是將不同模態的信息(如文本、圖像、音頻等)融合到一起,形成一種多模態的提示,以幫助模型更好地理解和處理輸入數據。比如在問答系統中,可以將問題和相關圖像作為多模態輸入,以幫助模型更好地理解問題的含義和上下文背景,並生成更加準確和全面的答案。

在具體實踐中,根據場景設計合適的prompt進行優化,評估也是大模型工程中重要的一步,對大模型準確率和可靠性提升是必不可少的,這步也是將模型潛在強大能力兌現的關鍵一環。

大模型應用

當前大模型已經在很多領域開始產品化落地,除了ChatGPT這類大傢熟知的產品,主要還有以下一些主流的應用:

1)辦公Copilot類產品:微軟首先嘗試使用大模型能力來接入旗下的Office系列軟件,在Word中可以對文檔進行總結並提出修改編輯的建議,也可以對所給的文章進行總結;此前一直頭疼Excel各種復雜操作的用戶現在也降低了使用門檻,可以直接通過描述就處理數據;PowerPoint中通過對提出要求識別就能自動生成一份展示內容;在Outlook中直接使用自然語言來生成郵件內容等功能,實現真正的AI秘書。

2)Github Copilot類產品:直接通過對話方式進行各種功能代碼的生成,包括幫忙寫測試用例,解釋代碼片段和debug程序問題,這個功能對解放程序員生產力取得了革命性的進步,能讓開發人員更多的關註到業務理解,系統設計,架構設計等更高級需求的事情上。

2)教育知識類產品:得益於大模型強大的理解以及知識儲備,很多公司也嵌入其知識類產品進行應用,比如chatPDF就可以幫助經常看論文的科研人員快速地通過問答的方式進行文章的信息提取,理解以及總結重要內容,大大提升了閱讀新論文的效率;對於學習語言的人來說,一款叫Call Annie的軟件基本能取代口語老師的角色,並且可以無限時間,隨時隨地進行口語對話練習。

4)搜索引擎和推薦系統:大模型可以應用於企業的搜索引擎和推薦系統,通過深度學習算法,對用戶的搜索意圖進行準確理解,提供更精準的搜索結果和個性化的推薦內容。這有助於提升用戶體驗,增加用戶黏性,提高企業的轉化率和銷售額。

5)公司業務定制化大模型:大模型具有通用性能力,但是在很多零樣本的場景的表現依然比不上那個領域正在使用的產品,例如在某些垂直領域,包括工業領域,醫藥領域,管理領域等場景下進行專業問題,研究型問題的使用依然需要特定場景的數據進行微調,這種定制化的服務也能給企業帶來巨大的效率提升和節省成本的收益,屬於比較有前景的業務。

6)計算相關上下遊相關產業:很多公司正在積極探索基於GPU、FPGA和ASIC等硬件加速制造技術,以支持大模型的訓練和推理速度。此外,雲計算技術的發展也為大模型的訓練提供了更多的計算資源支持,未來科技公司將積極探索基於雲計算的分佈式訓練和推理技術。

除這些外還包括算法優化、隱私和數據安全以及模型可解釋性等方面的研究和應用,每天還有很多大模型的應用正在不斷湧現,大模型在未來仍然有很大的發展潛力,國內的優秀大模型代表例如百度文心大模型也正在搭建全系統產業化的大模型全景。

大模型挑戰

大模型也存在一些現實挑戰:

1.數據安全隱患:一方面大模型訓練需要大量的數據支持,但很多數據涉及到機密以及個人隱私問題,如客戶信息、交易數據等。需要保證在訓練大模型的同時保障數據安全,防止數據泄露和濫用。OpenAI在發佈ChatGPT模型的時候用了數月來保證數據安全以及符合人類正常價值觀標準。

2.成本高昂:大模型的訓練和部署需要大量的計算資源和人力資源,成本非常高昂。對於一些中小型企業而言,難以承擔這些成本,也難以獲得足夠的技術支持和資源。

3.無法保障內容可信:大模型會編造詞句,無法保障內容真實可信、有據可查。當前使用者隻能根據自己需求去驗證生成的內容是否真實可信,很難具有權威說服力。

4.無法實現成本可控:直接訓練和部署千億級參數大模型成本過高,企業級應用應使用百億級基礎模型,根據不同需求訓練不同的垂直模型,企業則隻需要負擔垂直訓練成本。但是,如何實現高效的垂直訓練,如何控制成本,仍是大模型面臨的問題之一。

以上挑戰依然有很大空間值得改進,需要進一步研究和探索新的技術和方法。比如可以采用數據加密、隱私保護等技術來保障數據安全;可以通過改進模型架構、優化訓練算法、利用分佈式計算等方式來提高大模型的效率和性能;此外,還可以通過開源和共享模型資源來降低成本、促進大模型的普及和應用等方式。

總結

最後,大模型的發展是當前人工智能時代科技進步的必然趨勢,甚至可以媲美工業革命般的歷史意義。近期,有MIT的研究者發現語言模型竟然能理解這個世界的時間和空間,這項研究也進一步說明大模型還有很多隱藏的能力等著我們去發掘。長期看,訓練出通用人工智能技術(AGI)應該隻是時間問題。作為相關從業人員,可以開發更高效,更穩定的訓練算法,不斷探索大模型的上限,作為普通人,我們更需要擁抱這個技術,至少在日常工作和生活中也能享受到其帶來的巨大便利。