基礎知識篇:大語言模型核心原理解析

1??人工智能基礎概念全景圖 💡

🧠人工智能與機器學習

人工智能(AI)是計算機科學的一個分支,旨在模擬人類的智能來解決問題。而機器學習(ML)是AI的一個子集,它的魅力在于不需要顯式編程。也就是說,我們不需要手動編寫函數來告訴計算機如何執行任務,而是讓計算機自行學習和迭代,從數據中識別模式,并做出預測和決策。

🌱機器學習(ML)

機器學習領域下有多個分支,包括監督學習無監督學習強化學習

  • 監督學習?👨?🏫:學習帶有標簽的原始數據。目標是發現原始數據與標簽之間的映射關系,從而預測新數據。
  • 無監督學習?🧭:處理沒有標簽的數據,讓計算機自主發現數據中的模式。
  • 強化學習?🎮:讓模型在環境中采取行動,并根據獎勵或懲罰來調整策略,以找到最佳行動方案。
🌀深度學習 (DL)
🤔思考:深度學習屬于監督學習、無監督學習還是強化學習嘞? 

深度學習是機器學習的一個方法,它使用神經網絡來模擬人腦處理信息的方式。神經網絡由許多計算和存儲單元(神經元)組成,這些神經元通過連接來處理數據。深度學習模型的“深度”指的是其層次化的結構,通過多層提取和表示數據的特征。

重要的是,神經網絡可以用于監督學習、無監督學習和強化學習,因此深度學習并不屬于這三者中的任何一個子集。相反,它們都是深度學習的應用領域。

🗨?生成式AI與大語言模型(LLM)
🤔思考:生成式AI與大語言模型是啥關系?誰包含誰?還是互相有交集?🧐 
  • 生成式AI?🎨:能夠生成新的數據,如圖像、文本等。它不僅限于文本生成,還包括其他媒體形式。
  • 大語言模型?📚:處理大量文本數據,具備深度理解和生成文本的能力。但并非所有大語言模型都擅長文本生成,有些更側重于文本理解和分析。

例如,BERT模型是一個典型的大語言模型,它擅長理解上下文,因此被廣泛應用于搜索、情感分析和文本分類等任務。然而,BERT并不擅長生成連貫的長文本

2??大語言模型與Transformer基礎🗨?

📅?2022年11月30日,OpenAi發布了ChaGPT,這一產品迅速成為史上最快達到100萬用戶的線上產品之一。繼下圍棋的alphago后,它成為又一輪人工智能熱潮的引爆者。如今,AI聊天助手如雨后春筍般出現在我們的視野里。

🌟?大語言模型(LLM, Large Language Model)?是用于執行自然語言相關任務的深度學習模型。簡單來說,給模型輸入一些文本內容,它就能返回相應的輸出。這些任務可以是續寫、分類、總結、改寫、翻譯等等。

🔑大語言模型的“大”體現在哪里?

  • 訓練數據巨大📚:大語言模型首先需要通過大量文本進行無監督學習。以GPT3為例,它的訓練數據來自廣泛的互聯網文本語料,如電子書、新聞文章、博文、論文、百科、社交媒體帖子等。這些文本數據沒有人工標簽,模型主要學習單詞與上下文之間的關系,以更好地理解文本并生成準確預測。
  • 參數量巨大🔬:參數在模型中用于刻畫從龐大訓練數據集中學習到的規律,決定模型如何響應輸入數據。隨著參數增加,模型能力增強,甚至能創造出全新的內容。例如,GPT系列的參數從GPT1的1.17億增長到GPT3的1750億。

🔑為什么Transformer是關鍵?

在Transformer架構出現之前,語言模型主要使用循環神經網絡(RNN)。但RNN存在順序處理、無法并行計算和難以處理長序列的問題。

💨RNN的劣勢

  • 📏**順序處理:**無法并行計算。

  • 🎯**難以處理長序列的文本:**容易造成遺忘。

Transformer通過自注意力機制和位置編碼解決了這些問題,實現了對所有輸入詞的同時關注和理解,以及長距離依賴性的捕獲。

🎉?Transformer的優勢

  • 📏位置編碼:通過位置編碼理解詞之間的順序關系,允許并行計算,提高訓練效率。
  • 🎯自注意力機制:能夠學習輸入序列中所有詞的相關性,賦予每個詞不同的注意力權重,專注于真正重要的部分。
🤔思考:Transformer的下一代,是怎樣的技術呢?和Transformer較之RNN的劣勢,Transformer有哪些劣勢呢?大家可以大膽思考!

3??Transformer實現過程剖析🔍

大語言模型,本質上通過預測概率最高的下一個詞來實現驚艷的文本生成。這背后的功臣就是強大的Transformer架構。那么,Transformer是如何做到的呢?讓我們一起輕松愉快地走進它的內部世界!📖

🔍Transformer心組件之: 編碼器(Encoder)工作流程

  1. 🔢 輸入TOKEN化
    • 將輸入的文本拆分成計算機能處理的TOKEN,每個TOKEN被轉換為一串整數,作為其在詞匯表中的索引。
  2. 🖼? 嵌入層(Embedding Layer)
    • 將TOKEN化的整數序列轉換為向量表示,這些向量(通常稱為詞嵌入)捕獲詞匯之間的語法和語義關系。
  3. 📍 位置編碼(Positional Encoding)
    • 向嵌入向量中添加位置信息,以確保模型能夠理解詞在句子中的順序。位置編碼是與嵌入向量具有相同維度的向量,并通過特定的數學函數生成。
  4. 💡 自注意力機制(Self-Attention Mechanism)
    • 編碼器中的核心部分,用于捕捉輸入序列中的關鍵特征。通過計算每個詞與其他所有詞之間的相關性來確定注意力權重。
  5. 👓 多頭自注意力(Multi-Head Self-Attention)
    • 將自注意力機制應用于多個不同的“頭”或子空間。每個頭關注輸入數據的不同方面,從而增強模型的表達能力。
  6. 🧠 前饋神經網絡(Feed Forward Neural Network)
    • 對多頭自注意力的輸出進行進一步的數值變換,這有助于模型捕捉更復雜的模式和關系。
  7. 🏗? 堆疊編碼器(Stacked Encoders)
    • 通過將多個編碼器堆疊在一起,模型能夠在不同層級上理解輸入數據。每個編碼器都處理前一個編碼器的輸出,從而逐步提煉和抽象化信息。
🤔古人云“橫看成嶺側成峰”,正是因為多頭自注意力與堆疊編碼器的作用,讓模型可以多角度地全面捕捉信息各種特征,從而構建了對數據全貌的深度理解! 

🗣? Transformer心組件之:解碼器(Decoder)工作流程

  1. 🔔 接收特殊起始符號
    • 解碼器接收一個表示輸出序列開頭的特殊符號作為初始輸入。
  2. 🖼? 嵌入層和位置編碼
    • 與編碼器類似,解碼器也使用嵌入層將輸入TOKEN轉換為向量表示,并添加位置編碼。
  3. 🎭 帶掩碼的自注意力機制(Masked Self-Attention Mechanism)
    • 解碼器中的自注意力機制被修改為只關注當前位置之前的詞,這是通過掩碼實現的,確保模型在生成下一個詞時只考慮已經生成的詞。
  4. 🤝 編碼器-解碼器注意力(Encoder-Decoder Attention)
    • 解碼器中的另一個注意力層用于捕捉編碼器的輸出和解碼器當前狀態之間的關系。這允許模型將輸入序列的信息融合到輸出序列的生成過程中。
  5. 🧠 前饋神經網絡和堆疊解碼器
    • 與編碼器類似,解碼器也使用前饋神經網絡對注意力機制的輸出進行進一步處理。通過堆疊多個解碼器,模型能夠更深入地理解輸入與輸出之間的關系,并生成更復雜的輸出序列。
  6. 🎯 線性層和Softmax層
    • 解碼器的最后階段是將輸出向量轉換為詞匯表的概率分布。線性層將輸出向量的維度轉換為詞匯表的大小,而Softmax層則將這些數值轉換為概率分布。
  7. 🎁 選擇概率最高的TOKEN作為輸出
    • 在大多數情況下,模型會選擇概率最高的TOKEN作為下一個輸出。這個過程會重復進行,直到生成一個表示輸出序列結束的特殊TOKEN為止。
🤔思考:看上去,編碼器和解碼器結構有很大的相似啊,那能不能只保留一樣呢?是否可以僅編碼器或者僅解碼器?答案是肯定的! 

🔧Transformer的變種與應用

  • 僅編碼器模型(自編碼器模型):適用于理解語言的任務,如BERT用于遮蔽詞預測和情感分析。
  • 僅解碼器模型(自回歸模型):擅長文本生成,如GPT系列通過預測下一個詞實現文本生成。
  • 編碼器-解碼器模型(序列到序列模型):適用于將一個序列轉換成另一個序列的任務,如T5和BART用于翻譯和總結等。
🤔思考:從這里也能看出,你是否已經看到生成式AI與大語言模型的關系哦!大語言模型不都是生成式AI,因為有的大模型,如BERT模型,僅有編碼器,不做生成任務!

4?? 大語言模型誕生過程剖析🤖

想要得到一個功能強大的大語言模型?跟著下面的步驟,一起走一遍!📖

📚 第一步:海量文本的無監督學習 得到基座大模型🎉

🔍?原料:首先,我們需要海量的文本數據,這些數據可以來自互聯網上的各種語料庫,包括書籍、新聞、科學論文、社交媒體帖子等等。這些文本將作為模型的“原料”,供模型學習。

🎯?目標:通過無監督學習,讓模型能夠基于上下文預測下一個token。這里用到了Transformer技術,它可以根據上下文預測被掩碼的token。

💡?技術過程:無監督學習讓模型在沒有標簽的數據上進行訓練,通過比較正確答案和模型的預測結果,計算交叉熵損失,并使用優化算法更新模型的權重。隨著見過的文本越來越多,模型生成的能力也會越來越好。

🔧 第二步:有監督微調??得到可以對話的大模型🎉

🔍?原料:雖然基座模型已經能夠根據上下文生成文本,但它并不擅長對話。為了解決這個問題,我們需要使用人類撰寫的高質量對話數據對基座模型進行有監督微調。

🎯?目標:通過微調,讓模型更加適應對話任務,具備更好的對話能力。

💡?過程:微調的成本相對較低,因為需要的訓練數據規模更小,訓練時長更短。在這一階段,模型從人類高質量的對話中學習如何回答問題,這個過程被稱為監督微調(supervised fine tuning)。

🤔思考:為啥是“微調”而不叫“中調”或者“大調”?因為相比于基座模型所用到的巨量數據,這個過程里的大部分有監督學習,其所用到的數據,都像是冰山之一角,九牛之一毛!

💡點擊查看提示

🏆 第三步:獎勵模型的訓練??得到可以評價回答的模型🎉

🔍?原料:為了讓模型的回答更加優質且符合人類道德與價值觀,我們需要讓模型一次性給出多個回答結果,并由人工對這些回答結果進行打分和排序。

🎯?目標:基于這些以評分作為標簽的訓練數據,訓練出一個能對回答進行評分預測的獎勵模型。

💡?過程:獎勵模型能夠對模型的回答進行評分,從而引導模型生成更符合人類期望的回答。這個過程也常被稱為對齊(alignment)。

🎈 第四步:強化學習訓練??得到更符合人類價值觀的優秀模型🎉

🔍?原料:使用第二步得到的模型和第三步的獎勵模型進行強化學習訓練。

🎯?目標:讓模型的回答不斷被獎勵模型評價,并通過優化策略獲取更高的評分,從而改進自身的結構。

💡?過程:強化學習訓練利用獎勵模型的評分作為反饋信號,引導模型生成更高質量的回答。同時,C端用戶的點贊或倒贊也為模型的升級提供了寶貴的評價數據。

🤔思考:能不能讓普通用戶也為模型打分?看看文心一言的輸出結果里,右下就有一個點贊或者倒贊!有更多用戶對結果的反饋,大模型能力就會持續增強哦!模型能力增強??用戶變多??反饋變多??模型能力增強??……這,就是數據飛輪的奇妙!

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

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

相關文章

【MySQL精通之路】MySQL8.0升級過程升級了什么

目錄 1.升級內容 1.1 mysql系統庫 1.2.其他庫 2.步驟 2.1 步驟1:數據字典庫升級。 2.2 步驟2:服務器升級。 3.mysql_upgrade 3.1 執行正常升級(根據需要執行步驟1和2): 3.2 必要時僅執行步驟1: 3…

【MySQL精通之路】InnoDB(6)-磁盤結構(6)-Undolog

1.介紹 Undolog是與單個讀寫事務相關聯的Undolog記錄的集合。 Undolog包含有關如何撤消事務對聚集索引記錄最新更改的信息。如果另一個事務需要將查看一致性讀的一部分原始數據,則會從Undolog記錄中檢索未修改的數據。 2.結構 Undolog記錄存在于Undolog段中 而Un…

LLMPerf-為LLM提供可重現的性能指標

LLMPerf-為LLM推理提供可復現的性能指標 翻譯自文章:Reproducible Performance Metrics for LLM inference 結合之前的LLMPerf測試大模型API性能的文章進行查看,效果更佳。 1. 摘要 我們見過許多關于LLM性能的聲明;然而,這些聲明往…

Android面試題之Kotlin泛型和reified關鍵字

本文首發于公眾號“AntDream”&#xff0c;歡迎微信搜索“AntDream”或掃描文章底部二維碼關注&#xff0c;和我一起每天進步一點點 //泛型 class MagicBox<T>(item:T){var available falseprivate var subject:T itemfun fetch() : T? {return subject.takeIf { avai…

Ubuntu徹底卸載Nginx

停止Nginx服務 sudo systemctl stop nginx卸載Nginx軟件包 sudo apt purge nginx nginx-common nginx-core清除配置文件和依賴項 清除Nginx的配置文件 sudo rm -rf /etc/nginx清除Nginx安裝的依賴項 sudo apt autoremove清除相關文件和目錄 刪除Nginx的日志文件 sudo rm…

配置旁掛二層組網直接轉發示例(命令行)

業務需求 企業用戶通過WLAN接入網絡&#xff0c;以滿足移動辦公的最基本需求。且在覆蓋區域內移動發生漫游時&#xff0c;不影響用戶的業務使用。 組網需求 AC組網方式&#xff1a;旁掛二層組網。DHCP部署方式&#xff1a; AC作為DHCP服務器為AP分配IP地址。匯聚交換機SwitchB作…

深度學習基礎之《TensorFlow框架(18)—卷積神經網絡(2)》

一、卷積層 1、卷積層&#xff08;Convolutional Layer&#xff09;介紹 卷積神經網絡中每層卷積層由若干卷積單元&#xff08;卷積核&#xff09;組成&#xff0c;每個卷積單元的參數都是通過反向傳播算法最佳化得到的 卷積運算的目的是特征提取&#xff0c;第一層卷積層可能…

Gradle和Maven項目解決Spring Boot Configuration Annotation Processor not configured警告

問題描述 寫了一個配置類,加了注解@ConfigurationProperties(prefix = “xxx”) 后一直報警告:Spring Boot Configuration Annotation Processor not configured 意思是 Spring boot 未配置注解處理器 解決過程 出現這個問題后,百度查了解決方式 1.maven項目 maven項目是…

學習前端第四十四天(瀏覽器事件簡介)

一、事件處理程序 對事件作出響應&#xff0c;可以分配一個 處理程序 &#xff0c; 一個在事件發生時運行的函數 1、HTML特性綁定事件處理函數 <button id"btn1" οnclick"fn();console.log(xc)">保存1</button> 2、DOM屬性綁定事件處理函數…

純軟件雙機熱備

在信息化高速發展的今天&#xff0c;企業對于業務連續性的需求愈發強烈。無論哪個行業&#xff0c;系統的穩定運行都至關重要。為了確保系統的高可用性和業務連續性&#xff0c;純軟件雙機熱備技術應運而生&#xff0c;成為了企業IT架構中的關鍵一環。 雙機熱備軟件下載 …

04信號量

如果有兩個或者兩個以上的任務(進程 / 線程&#xff0c;并發的實體)&#xff0c;去訪問一個共享資源(硬件上面的&#xff0c;軟件上的)。我們必須要保證這個共享資源的有序訪問&#xff0c;否則會產生不可預知的后果 例子: very_important_i 5; // 共享資源 fun(…

vue3父組件使用ref獲取子組件的屬性和方法

在vue3中父組件訪問子組件中的屬性和方法是需要借助于ref: 1.<script setup> 中定義響應式變量 例如&#xff1a; const demo1 ref(null) 2.在引入的子組件標簽上綁定ref屬性的值與定義的響應式變量同名( <demo1 ref"demo1"/>)。 父組件代碼如下&…

cPanel中如何進行網站質量檢測

最近我在維護網站的時候需要查看網站質量如何&#xff0c;我使用的是Hostease的主機安裝的WordPress網站&#xff0c;隨后在咨詢了他們的技術支持后獲得了方法。 當您在cPanel中部署了網站后&#xff0c;確保網站的質量和性能是至關重要的。cPanel提供了一個便捷的功能Site Qu…

Postman進階功能-Mock服務與監控

大家好&#xff0c;前面跟大家分享一些關于 Postman 的進階功能&#xff0c;當我們深入探索 Postman 的進階功能時&#xff0c;Mock 服務與監控這兩個重要方面便躍然眼前。 首先&#xff0c;Mock 服務為我們提供了一種靈活便捷的方式&#xff0c;讓我們在某些實際接口尚未準備好…

18.SpringCloud Gateway

簡介 SpringCloud Gateway是spingcloud家族的產品&#xff0c;使用netty實現的高性能服務網關&#xff0c;用于替換netflix公司的zuul網關實現。 參考地址&#xff1a; https://spring.io/projects/spring-cloud 術語 工作原理 Route Predicate Factories GatewayFilte…

科大訊飛筆試題---字符串切割

1、 題目描述 小紅拿到了一個字符串&#xff0c;她希望你幫她切割成若干子串&#xff0c;滿足以下兩個條件&#xff1a; 子串長度均為不小于 3 的奇數。 子串內部的字符全部相同。 輸入 第一行輸入一個正整數n&#xff0c;代表字符串長度。第二行輸入一個字符串&#xff0c;僅…

前端基礎入門三大核心之HTML篇:解密標簽、標題與段落的藝術

前端基礎入門三大核心之HTML篇&#xff1a;解密標簽、標題與段落的藝術 一、HTML標簽&#xff1a;網頁元素的建筑磚石1.1 HTML標簽的基本概念1.2 基礎標簽示例自閉合標簽示例&#xff1a;圖片標簽 1.3 實戰應用&#xff1a;使用<meta>標簽優化網頁 二、標題標簽&#xff…

運行時間比較

subprocess.run() 函數參數的含義&#xff1a; shell_command&#xff1a;這是要執行的命令。它可以是一個字符串&#xff0c;也可以是一個包含命令和參數的列表。例如&#xff0c;“ls -l” 或 [“ls”, “-l”]。shellTrue&#xff1a;這是一個布爾值參數&#xff0c;指示是…

新一代分布式鏈路追蹤skywalking編碼實戰教程(下)

&#x1f680; 作者 &#xff1a;“二當家-小D” &#x1f680; 博主簡介&#xff1a;?前荔枝FM架構師、阿里資深工程師||曾任職于阿里巴巴擔任多個項目負責人&#xff0c;8年開發架構經驗&#xff0c;精通java,擅長分布式高并發架構,自動化壓力測試&#xff0c;微服務容器化k…

PostgresSQL開啟歸檔模式

文章目錄 一、查詢數據庫歸檔是否開啟1、查看數據目錄(找出conf文件位置)2、查看歸檔是否開啟 二、開啟歸檔模式&#xff08;開啟后有一定的性能損耗&#xff09;1、創建歸檔目錄2、修改postgresql.conf配置文件3、重啟pg 三、驗證歸檔情況1、查看歸檔是否開啟2、檢查點 , 刷新…