LLM大語言模型-AI大模型全面介紹

簡介: 大語言模型(LLM)是深度學習的產物,包含數十億至數萬億參數,通過大規模數據訓練,能處理多種自然語言任務。LLM基于Transformer架構,利用多頭注意力機制處理長距離依賴,經過預訓練和微調,擅長文本生成、問答等。發展經歷了從概率模型到神經網絡,再到預訓練和大模型的演變。雖然強大,但存在生成不當內容、偏見等問題,需要研究者解決。評估指標包括BLEU、ROUGE和困惑度PPL。

大語言模型 (LLM) 背景

🍹大語言模型 (Large Language Model) 是一種人工智能模型, 它們通常包含數千億甚至更多的參數,并在大規模數據集上進行訓練。大語言模型可以處理多種自然語言任務,如文本分類、問答、翻譯、對話等等。

  • 自然語言模型的發展經歷了從概率模型到神經網絡模型,再到大型語言模型的過程。在這個過程中,關鍵技術的發展推動了模型的演進和性能的提升。
  • LLM通常建立在Transformer架構之上,這種架構使用了多頭注意力機制,能夠處理長距離的依賴關系。這些模型通過堆疊多個注意力層來提高其處理復雜語言任務的能力。
  • 隨著模型參數數量的增加,LLM展現出了小模型所不具備的特殊能力,如上下文學習能力和逐步推理能力。這些能力的涌現使得LLM在多項任務中取得了顯著的效果提升。
  • LLM的訓練過程通常包括預訓練和微調兩個階段。在預訓練階段,模型在大量無標簽數據上學習語言的一般性規律;在微調階段,模型通過有標簽數據進行調優,以適應特定的下游任務。
  • LLM的應用產生了深遠的影響,例如ChatGPT等模型展現出了強大的人機對話能力和任務求解能力,這對整個AI研究社區產生了重大影響。
  • 盡管LLM在多方面展現出了強大的能力,但同時也帶來了一些風險和挑戰,如生成不當內容、偏見放大等問題,這些都需要研究者在模型設計和訓練過程中予以重視和解決。

🍹語言模型發展的三個階段 :

  • 第一階段 :設計一系列的自監督訓練目標(MLM、NSP等),設計新穎的模型架構(Transformer),遵循Pre-training和Fine-tuning范式。典型代表是BERT、GPT、XLNet等;
  • 第二階段 :逐步擴大模型參數和訓練語料規模,探索不同類型的架構。典型代表是BART、T5、GPT-3等;
  • 第三階段 :走向AIGC(Artificial Intelligent Generated Content)時代,模型參數規模步入千萬億,模型架構為自回歸架構,大模型走向對話式、生成式、多模態時代,更加注重與人類交互進行對齊,實現可靠、安全、無毒的模型。典型代表是InstructionGPT、ChatGPT、Bard、GPT-4等。

語言模型通俗理解:用來計算一個句子的概率的模型,也就是判斷一句話是否是人話的概率 。

標準定義:對于某個句子序列, 如S = {W1, W2, W3, …, Wn}, 語言模型就是計算該序列發生的概率,如果給定的詞序列符合語用習慣, 則給出高概率, 否則給出低概率。

🥂讓我們通過一些具體的例子來理解語言模型如何計算句子的概率,并判斷一句話是否符合自然語言的語用習慣。

假設有一個非常簡單的語言模型,它基于詞頻來計算句子的概率。這個模型會統計每個單詞在大量文本中出現的次數,然后用這些頻率來估計概率。例如,如果單詞 “the” 在訓練集中出現了非常多次,那么 P(the) 就會很高。對于句子 “The quick brown fox jumps over the lazy dog,” 模型會計算每個單詞的概率,并將它們相乘得到整個句子的概率 P(S)。

P(S)=P(The)×P(quick)×P(brown)×…timesP(dog)

更復雜的語言模型,如n-gram模型,不僅考慮單個單詞的頻率,還考慮單詞序列的頻率。例如,一個bi-gram模型會考慮像 “quick brown” 這樣的詞對在文本中共同出現的頻率。這樣,它可以捕捉到一些單詞之間的概率依賴關系,比如 “quick” 后面很可能會跟著 “brown”。

P(S)=P(The)×P(quick∣The)×P(brown∣quick)×…×P(dog)

現代語言模型,如基于Transformer的模型,使用深度學習來捕捉更加復雜的語言結構。這些模型可以處理長距離的依賴關系,并且能夠根據上下文來預測下一個單詞。例如,如果你輸入了 “The cat is on the”, 模型可能會預測下一個單詞是 “mat”,因為它學會了 “on the mat” 是一個常見的短語。

基于語言模型技術的發展,可以將語言模型分為四種類型:

  • 基于規則和統計的語言模型

  • 神經語言模型

  • 預訓練語言模型

  • 大語言模型

  1. 基于規則和統計的語言模型:早期的語音識別系統多采用這種語言模型,它通過計算詞序列出現的概率來評估句子的合理性。N-gram模型就是一種典型的基于統計的語言模型,它利用大量文本數據來計算單詞序列出現的頻率。
  2. 神經語言模型:隨著深度學習的發展,神經語言模型(Neural Language Model, NLM)開始興起。這類模型通常使用神經網絡結構,如前饋神經網絡(FeedForward Neural Network LM)、循環神經網絡(RNN LM)等,能夠捕捉到更為復雜的語言模式和上下文信息。
  3. 預訓練語言模型:預訓練語言模型(Pre-trained Language Model, PLM)是在大規模數據集上進行無監督預訓練的模型,然后再針對特定任務進行微調。BERT(Bidirectional Encoder Representations from Transformers)就是一個著名的預訓練語言模型,它通過預訓練獲得豐富的語義表示,適用于多種自然語言處理任務。
  4. 大語言模型:大規模語言模型(Large Language Model, LLM)通常擁有數十億到數萬億個參數,能夠處理各種自然語言處理任務,如自然語言生成、文本分類、文本摘要、機器翻譯、語音識別等。這些模型基于深度學習技術,使用互聯網上的海量文本數據進行訓練,具有強大的語言理解和生成能力。

N-gram

N-gram是一種基于統計的語言模型算法,用于預測下一個詞或字符出現的概率💡。

N-gram模型的核心思想是將文本分割成連續的n個詞(或字符)的序列,這些序列被稱為grams。然后,模型統計這些n-grams在文本中出現的頻率,以此作為預測下一個詞或字符出現概率的依據。這里的n是一個正整數,表示詞組中詞的個數。例如,在句子“我喜歡學習自然語言處理”中,1-gram(unigram)是單個詞,如“我”、“喜歡”、“學習”等;2-gram(bigram)是兩個連續的詞,如“我喜歡”、“喜歡學習”等;而3-gram(trigram)則是三個連續的詞,如“我喜歡學習”、“喜歡學習自然”等。為了解決參數空間過大問題,引入馬爾科夫假設:隨意一個詞出現的概率只與它前面出現的有限的一個或者幾個詞有關。

  • 如果一個詞的出現與它周圍的詞是獨立的,那么我們就稱之為unigram也就是一元語言模型:P(S) = P(W_1)P(W_2)…*P(W_n)
  • 如果一個詞的出現僅依賴于它前面出現的一個詞,那么我們就稱之為bigram:P(S) = P(W_1)*P(W_2|W_1)P(W_3|W_2)…*P(W_n|W_{n-1})
  • 如果一個詞的出現僅依賴于它前面出現的兩個詞,那么我們就稱之為trigram:P(S) = P(W_1)*P(W_2|W_1)P(W_3|W_2,W_1)…*P(W_n|W_{n-1},W_{n-2})

在實踐中用的最多的就是bigram和trigram,接下來以bigram語言模型為例,理解其工作原理:

首先我們準備一個語料庫(數據集),為了計算對應的二元模型的參數,即 P ( W i ∣ W i ? 1 ) P(W_i|W{i-1}) P(Wi?Wi?1),我們要先計數即 C ( W i ? 1 , W i ) C(W{i-1},W_i) C(Wi?1,Wi?),然后計數 C ( W i ? 1 ) C(W_{i-1}) C(Wi?1?) , 再用除法可得到概率。

根據給定的計數結果,我們可以計算bigram語言模型的參數。首先,我們需要將計數結果轉換為概率形式,計算一個句子的概率 :

N-gram語言模型的特點:

  • 優點:采用極大似然估計, 參數易訓練; 完全包含了前n-1個詞的全部信息; 可解釋性強, 直觀易理解。

  • 缺點:缺乏長期以來,只能建模到前n-1個詞; 隨著n的增大,參數空間呈指數增長。數據稀疏,難免會出現OOV問題; 單純的基于統計頻次,泛化能力差。

神經網絡語言模型

伴隨著神經網絡技術的發展,人們開始嘗試使用神經網絡來建立語言模型進而解決N-gram語言模型存在的問題。

  • 模型的輸入: w t ? n + 1 , … , w t ? 2 , w t ? 1 w{t-n+1}, …, w{t-2}, w_{t-1} wt?n+1,,wt?2,wt?1?就是前n-1個詞。現在需要根據這已知的n-1個詞預測下一個詞 w t w_t wt? C ( w ) C(w) C(w)表示 w w w所對應的詞向量。
  • 網絡的第一層(輸入層)是將 C ( w t ? n + 1 ) , … , C ( w t ? 2 ) , C ( w t ? 1 ) C(w{t-n+1}),…,C(w{t-2}), C(w_{t-1}) C(wt?n+1),,C(wt?2),C(wt?1?)這n-1個向量首尾拼接起來形成一個 ( n ? 1 ) ? m (n-1)*m (n?1)?m大小的向量,記作 x x x
  • 網絡的第二層(隱藏層)就如同普通的神經網絡,直接使用一個全連接層, 通過全連接層后再使用 t a n h tanh tanh這個激活函數進行處理。
  • 網絡的第三層(輸出層)一共有 V V V個節點 ( V V V 代表語料的詞匯),本質上這個輸出層也是一個全連接層。每個輸出節點 y i y_i yi?表示下一個詞語為 i i i 的未歸一化log 概率。最后使用 softmax 激活函數將輸出值 y y y進行歸一化。得到最大概率值,就是我們需要預測的結果。

基于Transformer的預訓練語言模型

基于Transformer的預訓練語言模型(T-PTLM)是自然語言處理領域的一大創新,它們通過在大量無標注文本數據上進行預訓練來學習通用的語言表征,并能夠將這些知識遷移到各種下游任務中,以下是一些重要的T-PTLM及其特點:

  1. GPT(Generative Pre-training Transformer):GPT是一種生成型預訓練語言模型,它使用Transformer架構從大規模語料庫中學習語言的內在結構和語義信息。GPT的核心思想是自回歸建模,即通過逐詞預測下一個詞的方式來生成整個句子或文本。
  2. BERT(Bidirectional Encoder Representations from Transformers):BERT是一個雙向的Transformer編碼器,它通過預訓練任務(如遮蔽語言模型和下一句預測)來捕捉文本中的上下文信息。BERT模型在多種NLP任務中取得了顯著的性能提升。
  3. XLNet:XLNet是一種改進的自回歸模型,它在GPT的基礎上引入了Transformer-XL中的相對位置編碼和段級重復機制,旨在克服GPT在長距離依賴學習和復制機制上的不足。

大語言模型

隨著對預訓練語言模型研究的開展,人們逐漸發現可能存在一種標度定律,隨著預訓練模型參數的指數級提升,其語言模型性能也會線性上升。2020年,OpenAI發布了參數量高達1750億的GPT-3,首次展示了大語言模型的性能。

大語言模型的特點💡:

  • 優點:具備了能與人類溝通聊天的能力,甚至具備了使用插件進行自動信息檢索的能力。

  • 缺點:參數量大,算力(進行模型訓練和推理所需的計算能力)要求高、生成部分有害的、有偏見的內容等等。

語言模型的評估指標

BLEU

BLEU (Bilingual Evaluation Understudy) 是一種廣泛使用的評估機器翻譯系統輸出質量的指標。它通過比較機器翻譯的結果和一組參考翻譯(通常由人工翻譯或被認為是準確的翻譯)來計算翻譯的準確性。BLEU算法實際上就是在判斷兩個句子的相似程度.,BLEU 的分數取值范圍是 0~1,分數越接近1,說明翻譯的質量越高。

在實際應用中,通常會計算BLEU-1到BLEU-4的值,并對它們進行加權平均以得到一個綜合的BLEU分數。這樣做的原因是不同的n-gram級別能夠捕捉翻譯質量的不同方面:BLEU-1更側重于詞匯的準確性,而BLEU-2、BLEU-3和BLEU-4則能夠更好地衡量句子的流暢性和結構一致性。

candidate: {it, is, a, nice, day, today}

reference: {today, is, a, nice, day}

??

其中{today, is, a, nice, day}匹配,所以匹配度為5/6

candidate: {it is, is a, a nice, nice day, day today}

reference: {today is, is a, a nice, nice day}

??

其中{is a, a nice, nice day}匹配,所以匹配度為3/5

candidate: {it is a, is a nice, a nice day, nice day today}

reference: {today is a, is a nice, a nice day}

??

其中{is a nice, a nice day}匹配,所以匹配度為2/4

candidate: the the the the

reference: The cat is standing on the ground

如果按照1-gram的方法進行匹配,則匹配度為1,顯然是不合理的,所以計算某個詞的出現次數進行改進。

ROUGE

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一種評估自動文本摘要或機器翻譯輸出質量的指標,它通過比較生成的摘要與一組參考摘要(通常由人工創建)之間的相似度來衡量。與BLEU類似,ROUGE也使用n-gram的概念,但它們的計算方式和側重點有所不同。

ROUGE指標通常報告為召回率,因為它更關注生成摘要中包含多少參考摘要的信息,而BLEU則更注重精確率,即生成摘要的準確性。

ROUGE分為四種方法:ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S。

  1. ROUGE-N (ROUGE-n): 計算生成摘要中n-gram(連續的n個單詞)在參考摘要中出現的頻率。ROUGE-N通常用于計算Unigram(N=1),Bigram(N=2)和Trigram(N=3)。

  2. ROUGE-L (ROUGE-L): 基于最長公共子序列(Longest Common Subsequence, LCS)的方法,計算生成摘要與參考摘要之間的LCS長度與參考摘要長度的比例。

  3. ROUGE-W (ROUGE-W): 基于最長公共子串(Longest Common Substring, LCS)的方法,計算生成摘要與參考摘要之間的LCS數量與參考摘要中的單詞總數之比。

  4. ROUGE-S (ROUGE-S): 基于序列的匹配,允許間隔性的詞匹配,而不是連續的n-gram匹配。

困惑度PPL

困惑度(Perplexity)是衡量概率模型預測樣本的好壞程度的一種指標。在自然語言處理中,它常用于評估語言模型的性能。困惑度越低,表示模型的預測能力越好。

PPL=exp(?fraclog(P(X))N),其中,P(X) 是模型對整個數據集的概率分布的連乘積,N 是數據集中的總詞數。困惑度能夠衡量語言模型對文本的生成能力,即模型預測單詞序列的概率分布的準確性~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35355.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

政策護航新能源:政策紅利激發行業活力,助推綠色經濟騰飛

隨著全球氣候變化問題日益嚴重,新能源行業的發展成為推動綠色經濟騰飛的重要引擎。近年來,各國政府紛紛出臺政策支持新能源產業,旨在激發行業活力,促進經濟可持續發展。本文將從政策紅利的角度,探討新能源行業發展的現…

什么是CMSIS || 標準庫與HAL庫

一,ARM(Cortex Microcontroller Software Interface Standard) ARM Cortex? 微控制器軟件接口標準(Cortex Microcontroller Software Interface Standard)是 CortexM 處理器系列的與供應商無關的硬件抽象層。…

docker的安裝配置及使用

一.Docker的由來 Docker 最初是 dotCloud 公司創始人Solomon Hykes 在法國期間發起的一個公司內部項目。 2010年的專門做PAAS平臺,但是到了2013年的時候,像亞馬遜,微軟,Google都開始做PAAS平臺。 到了2013年,公司資金鏈…

空調器的銅管

1)、 全新開發的空調器,在鈑金、塑料件結構方案設計的同時,進行配管結構設計,充分考慮整體空間的合理分配,以避免配管設計在其它結構方案確定之后,只局限在有限的空間內進行。 2)、 制冷系統以外的結構件已定型的產品&#xff0c…

仿真模擬--靜態浮動路由

目錄 靜態路由 浮動路由 靜態路由 浮動路由

Verilog描述一個帶有異步置位和異步清零的D觸發器

1 帶有異步置位和異步清零的D觸發器的真值表&#xff1a; 2 Verilog代碼描述 module DFF_SR(CLK, D, Rd, Sd, Q, QN);input CLK, D, Rd, Sd;output Q, QN;reg Q_DFF;always (posedge CLKor negedge Rd or negedge Sd)beginif(!Rd)Q_DFF < 1b0;else if(!Sd)Q_DFF < 1b1;e…

使用 C# 和 OpenXML 讀取大型 Excel 文件

介紹 高效讀取大型 Excel 文件可能具有挑戰性&#xff0c;尤其是在處理需要高性能和可擴展性的應用程序時。Microsoft 的 OpenXML SDK 提供了一套強大的工具來處理 Office 文檔&#xff08;包括 Excel 文件&#xff09;&#xff0c;而無需在服務器上安裝 Excel。本文將指導您使…

華為 Mate 70 系列曝光:首發鴻蒙系統,共四款機型

目前華為在 HDC 2024 大會上宣布&#xff0c;HaemonyOS NEXT 開啟開發者先鋒用戶 Beta 測試&#xff0c;根據官方時間表來看&#xff0c;HaemonyOS NEXT 將在 8 月啟動第一批公開 Beta 測試&#xff0c;第四季度推出第一批正式版以及啟動第二批公測。 華為 Mate 70 系列將會與 …

(深度學習記錄)第TR6周:Transformer實戰-單詞預測

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 | 接輔導、項目定制 &#x1f3e1;我的環境&#xff1a; 語言環境&#xff1a;Python3.11.4編譯器&#xff1a;Jupyter Notebooktorcch版本&#xff1a;2.0.…

Keil 5編譯出現misc.c(90): error: no member named ‘IP‘ in ‘NVIC_Type‘

no member named ‘IP’ in ‘NVIC_Type’ 我們在使用Keil 5編譯器的AC6進行代碼編譯的使用&#xff0c;出現如下的錯誤&#xff1b; 當前的環境 編譯器版本 Keil uVision5&#xff0c;V5.31.0.0&#xff1b; CMSIS-Core 版本V6…1.0&#xff1b; 采用GD32F407VK主芯片&…

【Flutter 面試題】 main future mirotask 的執行順序是怎樣的?

【Flutter 面試題】 main future mirotask 的執行順序是怎樣的? 文章目錄 寫在前面口述回答補充說明實際案例代碼代碼運行結果運行結果說明代碼執行順序的總結寫在前面 ?? 關于我 ,小雨青年 ?? CSDN博客專家,GitChat專欄作者,阿里云社區專家博主,51CTO專家博主。2023…

Java中的微服務架構:設計、部署與管理

Java中的微服務架構&#xff1a;設計、部署與管理 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天&#xff0c;我想和大家分享一下Java中的微服務架構&…

【PythonWeb開發】Flask四大內置對象

在Flask中&#xff0c;current_app、g、request、session是非常關鍵的內置對象&#xff0c;它們分別承擔著不同的作用&#xff0c;并廣泛應用于Web開發中的多個環節。 &#xff08;1&#xff09;current_app 它是一個代表當前Flask應用實例的代理對象&#xff0c;允許開發者在…

SQL之日期時間相關知識點及函數

1.日期函數 DATE(): 從日期時間值中提取日期部分。 SELECT DATE(2024-06-16 12:34:56); -- 返回 2024-06-16 CURDATE(): 返回當前日期。 SELECT CURDATE(); -- 返回當前日期&#xff0c;例如 2024-06-16 NOW(): 返回當前日期和時間。 SELECT NOW(); -- 返回當前日期和…

C# 中的 Null:處理缺失值和可空類型

探索數據庫和編程語言中的 NULL 概念&#xff0c;它表示值缺失或數據缺失。了解其在 SQL 中的重要性、其作為占位符的作用等。 在 C# 中&#xff0c;null 是一個關鍵字&#xff0c;表示不引用任何對象的引用。它用于指示不存在值或未初始化的引用。 當變量被賦值為 null 時&a…

微信小程序傳統開發登錄和云開發登錄的區別

1. 傳統開發登錄流程 1. 用戶端調用wx.login從微信服務器獲取code; 2. 用戶端用wx.request將獲取的code傳遞給后端服務器&#xff1b; 3. 后端服務器將拿到的code傳給微信服務器&#xff0c;換取openid和session_key; 4. 后端服務器將獲取到的信息返回給用戶端&#xff1b…

Nuxt3 的生命周期和鉤子函數(一)

title: Nuxt3 的生命周期和鉤子函數&#xff08;一&#xff09; date: 2024/6/25 updated: 2024/6/25 author: cmdragon excerpt: 摘要&#xff1a;本文是關于Nuxt3的系列文章之一&#xff0c;主要探討Nuxt3的生命周期和鉤子函數&#xff0c;引導讀者深入了解其在前端開發中…

C++ | Leetcode C++題解之第198題打家劫舍

題目&#xff1a; 題解&#xff1a; class Solution { public:int rob(vector<int>& nums) {if (nums.empty()) {return 0;}int size nums.size();if (size 1) {return nums[0];}int first nums[0], second max(nums[0], nums[1]);for (int i 2; i < size; …

革新城市景觀:輕空間設計團隊呈現“淄博會展中心”

“淄博會展中心”&#xff0c;作為國內最大的氣膜會展建筑群&#xff0c;自啟用以來已經成為淄博市的亮麗新名片和經濟引擎。該會展中心在第二十屆中國&#xff08;淄博&#xff09;國際陶瓷博覽會上首次亮相&#xff0c;其獨特的設計和先進的建筑理念吸引了廣泛關注。今天&…

MaxWell實時監控Mysql并把數據寫入到Kafka主題中

配置mysql 啟用MySQL Binlog MySQL服務器的Binlog默認是未開啟的&#xff0c;如需進行同步&#xff0c;需要先進行開啟 修改MySQL配置文件/etc/my.cnf sudo vim/etc/my.cof 增加如下配置 注&#xff1a;MySQL Binlog模式 Statement-based&#xff1a;基于語句&#xff0c;…