大型語言模型(LLM)在自然語言處理(NLP)領域取得了顯著的進步。這些模型大多基於Transformer架構,特別是解碼器部分,如GPT模型系列。理解LLM的基本輸入(tokens 令牌)和輸出(logits)以及注意力機制對於掌握LLM的工作原理至關重要。
詳細的LLM簡介可參照我翻譯的:
Stanford CS25-Apr 2024: V4 I Overview of Transformers - Transformers and LLMs: An Introduction(上)
Stanford CS25-Apr 2024: V4 I Overview of Transformers - Transformers and LLMs: An Introduction(下)
看完上面的連結對目前大模型的狀況變可以了解一二。
延伸閱讀與觀看:
Hugging Face- NLP Course: 難度較低的課程,適合快速入門和對 Transformer 中的 NLP有一個了解。
[1hr Talk] Intro to Large Language Models: 大型語言模型的簡介講座。
CS25: Transformers United V4: 史丹佛大學的Transformer課程,涵蓋架構及應用,較為深入。
LLM通常基於Transformer架構,其中特別採用了僅使用解碼器的設計(例如GPT系列)。這些模型使用自注意力機制來處理輸入並生成輸出。其他的架構則之後會陸續介紹。
具體請參照:
最原始的 transformer 版本圖文詳細敘述:Transformer 運作原理圖解 by Jay Alammar
Let's reproduce GPT-2 (124M):跑完這個流程大概對程式碼跟模型的理解絕對會更深的多。
nanoGPT 流程圖像化 by Brendan Bycroft: 3D視覺化展示LLM內部運作。
延伸閱讀與觀看:
LLM Foundations: 包含詳細的模型架構介紹和理論背景。-這個類似上面的內容,不過內容比較廣泛以及片介紹性質。
LLM-from-scratch.ipynb: 簡化版的GPT模型實作範例。
Hugging Face - transformers doc: Hugging Face 的 transformers庫的文件和教學,對transformer 的方方面面都有介紹到,英文的版本最為詳細。
Building LLMs from Scratch: 這個類似 Let's build GPT: from scratch,不過更為詳細。
GPT-2圖解 by Jay Alammar: 專注於GPT架構的視覺化解釋。
將原始文本資料轉換為模型可以理解的格式,即token。這過程包括將文本拆分為標記(通常是單字或子單字)。
具體請參考:
中文方面兩者擇一了解即可,找了很久沒找到繁中的,感覺可惜。
注意力機制是LLM的核心技術,它使得模型能夠在生成輸出時關注輸入的不同部分。這包括自注意力和縮放點積注意力機制,相關的介紹其實在前面架構介紹的內容裡也有提到。
延伸閱讀與觀看:
模型使用不同的策略生成文本輸出。常見策略包括貪婪解碼、波束搜尋、top-k 採樣和核採樣。
延伸閱讀與觀看:
下面的都是對岸的,沒辦法,因為流程跟繁中是最類似的,假如有繁中的話拜託讓我知道,萬分感謝。
在了解原始 transformer 的 Positional embeddings方法後,就可看下不同的方法,像是RoPE 這樣的相對位置編碼方案。或實現 YaRN (通過溫度因子乘以注意力矩陣) 跟 ALiBi (基於token距離的注意力獎懲) 來擴展上下文長度。
Extending the RoPE by EleutherAI: 總結不同位置編碼技術的文章.
Understanding YaRN by Rajat Chawla: 對YaRN的介紹.
說是新模型其實提出也有一段時間了,我感覺我問了Chat-gpt, Gemini, Claude 有哪些2024或2023新提出的大模型架構還比我自己找的文章速度要快,所以有興趣的自己去問問就好。
Mamba 介紹:一文讀懂Mamba:具有選擇狀態空間的線性時間序列建模
RWKV 介紹:RWKV 模型解析
TTT 介紹:Test-Time Training on Graphs with Large Language Models (LLMs)
REALM: Integrating Retrieval into Language Representation Models:結合了 Transformer 和外部記憶體,能夠存儲和檢索知識,提高模型在知識密集型任務上的表現。
RETRO: DeepMind 提出的模型,使用檢索器從大型資料庫中獲取資訊,增強模型的知識和事實準確性。
另外將以訓練的模型合併也是一個提升表先的方法,具體的可參考這個 mergekit 庫,這個課實現了許多融合的方法,如 SLERP, DARE, 和 TIES。
模型融合通常指的是將多個已訓練的模型合併成一個單一模型的過程。這不僅僅是用參數平均或投票決定輸出,而是在模型的權重和結構層面上進行合併。這個過程不需要再次訓練,可以通過數學操作(如球面線性內插(SLERP)或其他融合技術)將不同模型的知識整合起來。模型融合可用於創建一個表現更佳、更強大的模型,通常是將多個模型在特定任務上的優勢結合起來。
Mixtral 因其卓越的性能而重新使MoE架構流行起來。 與此同時,開源社區出現了一種frankenMoE,通過融合像 Phixtral這樣的模型,這是一個更經濟且性能良好的選項。MoE是一種結構,它包含多個子模型或“專家”,每個專家專門處理不同的任務或數據子集。在MoE架構中,一個“gate”或調度器決定對於給定的輸入,哪個專家被使用。這是一種稀疏啟動方法,可以大幅提升模型的容量和效率,因為不是所有的專家都會對每個輸入進行響應。
這類模型像是( CLIP, Stable Diffusion, 或 LLaVA) 能處理多種類型的輸入(文本、圖像、音頻等)以及具備了統一的嵌入空間,從而具備了強大的應用能力,如文本到圖像。
Large Multimodal Models by Chip Huyen: 對多模態系統及其近期發展歷史的概述.
我還以為機器人之後會是24小時不間斷運作,沒想到是20小時,不過感覺這東西在美國大概會跟自動駕駛的狀況類似,但是在其他地方就不知道了。
總之,假休完了就要收心了。