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)工作流程
- 🔢 輸入TOKEN化
- 將輸入的文本拆分成計算機能處理的TOKEN,每個TOKEN被轉換為一串整數,作為其在詞匯表中的索引。
- 🖼? 嵌入層(Embedding Layer)
- 將TOKEN化的整數序列轉換為向量表示,這些向量(通常稱為詞嵌入)捕獲詞匯之間的語法和語義關系。
- 📍 位置編碼(Positional Encoding)
- 向嵌入向量中添加位置信息,以確保模型能夠理解詞在句子中的順序。位置編碼是與嵌入向量具有相同維度的向量,并通過特定的數學函數生成。
- 💡 自注意力機制(Self-Attention Mechanism)
- 編碼器中的核心部分,用于捕捉輸入序列中的關鍵特征。通過計算每個詞與其他所有詞之間的相關性來確定注意力權重。
- 👓 多頭自注意力(Multi-Head Self-Attention)
- 將自注意力機制應用于多個不同的“頭”或子空間。每個頭關注輸入數據的不同方面,從而增強模型的表達能力。
- 🧠 前饋神經網絡(Feed Forward Neural Network)
- 對多頭自注意力的輸出進行進一步的數值變換,這有助于模型捕捉更復雜的模式和關系。
- 🏗? 堆疊編碼器(Stacked Encoders)
- 通過將多個編碼器堆疊在一起,模型能夠在不同層級上理解輸入數據。每個編碼器都處理前一個編碼器的輸出,從而逐步提煉和抽象化信息。
🤔古人云“橫看成嶺側成峰”,正是因為多頭自注意力與堆疊編碼器的作用,讓模型可以多角度地全面捕捉信息各種特征,從而構建了對數據全貌的深度理解!
🗣? Transformer心組件之:解碼器(Decoder)工作流程
- 🔔 接收特殊起始符號
- 解碼器接收一個表示輸出序列開頭的特殊符號作為初始輸入。
- 🖼? 嵌入層和位置編碼
- 與編碼器類似,解碼器也使用嵌入層將輸入TOKEN轉換為向量表示,并添加位置編碼。
- 🎭 帶掩碼的自注意力機制(Masked Self-Attention Mechanism)
- 解碼器中的自注意力機制被修改為只關注當前位置之前的詞,這是通過掩碼實現的,確保模型在生成下一個詞時只考慮已經生成的詞。
- 🤝 編碼器-解碼器注意力(Encoder-Decoder Attention)
- 解碼器中的另一個注意力層用于捕捉編碼器的輸出和解碼器當前狀態之間的關系。這允許模型將輸入序列的信息融合到輸出序列的生成過程中。
- 🧠 前饋神經網絡和堆疊解碼器
- 與編碼器類似,解碼器也使用前饋神經網絡對注意力機制的輸出進行進一步處理。通過堆疊多個解碼器,模型能夠更深入地理解輸入與輸出之間的關系,并生成更復雜的輸出序列。
- 🎯 線性層和Softmax層
- 解碼器的最后階段是將輸出向量轉換為詞匯表的概率分布。線性層將輸出向量的維度轉換為詞匯表的大小,而Softmax層則將這些數值轉換為概率分布。
- 🎁 選擇概率最高的TOKEN作為輸出
- 在大多數情況下,模型會選擇概率最高的TOKEN作為下一個輸出。這個過程會重復進行,直到生成一個表示輸出序列結束的特殊TOKEN為止。
🤔思考:看上去,編碼器和解碼器結構有很大的相似啊,那能不能只保留一樣呢?是否可以僅編碼器或者僅解碼器?答案是肯定的!
🔧Transformer的變種與應用
- 僅編碼器模型(自編碼器模型):適用于理解語言的任務,如BERT用于遮蔽詞預測和情感分析。
- 僅解碼器模型(自回歸模型):擅長文本生成,如GPT系列通過預測下一個詞實現文本生成。
- 編碼器-解碼器模型(序列到序列模型):適用于將一個序列轉換成另一個序列的任務,如T5和BART用于翻譯和總結等。
🤔思考:從這里也能看出,你是否已經看到生成式AI與大語言模型的關系哦!大語言模型不都是生成式AI,因為有的大模型,如BERT模型,僅有編碼器,不做生成任務!
4?? 大語言模型誕生過程剖析🤖
想要得到一個功能強大的大語言模型?跟著下面的步驟,一起走一遍!📖
📚 第一步:海量文本的無監督學習 得到基座大模型🎉
🔍?原料:首先,我們需要海量的文本數據,這些數據可以來自互聯網上的各種語料庫,包括書籍、新聞、科學論文、社交媒體帖子等等。這些文本將作為模型的“原料”,供模型學習。
🎯?目標:通過無監督學習,讓模型能夠基于上下文預測下一個token。這里用到了Transformer技術,它可以根據上下文預測被掩碼的token。
💡?技術過程:無監督學習讓模型在沒有標簽的數據上進行訓練,通過比較正確答案和模型的預測結果,計算交叉熵損失,并使用優化算法更新模型的權重。隨著見過的文本越來越多,模型生成的能力也會越來越好。
🔧 第二步:有監督微調??得到可以對話的大模型🎉
🔍?原料:雖然基座模型已經能夠根據上下文生成文本,但它并不擅長對話。為了解決這個問題,我們需要使用人類撰寫的高質量對話數據對基座模型進行有監督微調。
🎯?目標:通過微調,讓模型更加適應對話任務,具備更好的對話能力。
💡?過程:微調的成本相對較低,因為需要的訓練數據規模更小,訓練時長更短。在這一階段,模型從人類高質量的對話中學習如何回答問題,這個過程被稱為監督微調(supervised fine tuning)。
🤔思考:為啥是“微調”而不叫“中調”或者“大調”?因為相比于基座模型所用到的巨量數據,這個過程里的大部分有監督學習,其所用到的數據,都像是冰山之一角,九牛之一毛!
💡點擊查看提示
🏆 第三步:獎勵模型的訓練??得到可以評價回答的模型🎉
🔍?原料:為了讓模型的回答更加優質且符合人類道德與價值觀,我們需要讓模型一次性給出多個回答結果,并由人工對這些回答結果進行打分和排序。
🎯?目標:基于這些以評分作為標簽的訓練數據,訓練出一個能對回答進行評分預測的獎勵模型。
💡?過程:獎勵模型能夠對模型的回答進行評分,從而引導模型生成更符合人類期望的回答。這個過程也常被稱為對齊(alignment)。
🎈 第四步:強化學習訓練??得到更符合人類價值觀的優秀模型🎉
🔍?原料:使用第二步得到的模型和第三步的獎勵模型進行強化學習訓練。
🎯?目標:讓模型的回答不斷被獎勵模型評價,并通過優化策略獲取更高的評分,從而改進自身的結構。
💡?過程:強化學習訓練利用獎勵模型的評分作為反饋信號,引導模型生成更高質量的回答。同時,C端用戶的點贊或倒贊也為模型的升級提供了寶貴的評價數據。
🤔思考:能不能讓普通用戶也為模型打分?看看文心一言的輸出結果里,右下就有一個點贊或者倒贊!有更多用戶對結果的反饋,大模型能力就會持續增強哦!模型能力增強??用戶變多??反饋變多??模型能力增強??……這,就是數據飛輪的奇妙!