
車萬翔 郭江 崔一鳴
自然語言處理被譽爲“人工智能皇冠上的明珠”。深度學習等技術的引入爲自然語言處理技術帶來了一場革命,尤其是近年來出現的基於預訓練模型的方法,已成爲研究自然語言處理的新範式。本書在介紹自然語言處理、深度學習等基本概念的基礎上,重點介紹新的基於預訓練模型的自然語言處理技術。本書包括基礎知識、預訓練詞向量和預訓練模型三大部分:基礎知識部分介紹自然語言處理和深度學習的基礎知識和基本工具;預訓練詞向量部分介紹靜態詞向量和動態詞向量的預訓練方法及應用;預訓練模型部分介紹幾種典型的預訓練語言模型及應用,以及預訓練模型的最新進展。除了理論知識,本書還有針對性地結合具體案例提供相應的PyTorch代碼實現,不僅能讓讀者對理論有更深刻的理解,還能快速地實現自然語言處理模型,達到理論和實踐的統一。本書既適合具有一定機器學習基礎的高等院校學生、研究機構的研究者,以及希望深入研究自然語言處理算法的計算機工程師閱讀,也適合對人工智能、深度學習和自然語言處理感興趣的學生和希望進入人工智能應用領域的研究者參考。
2022年四月第48本書 未知率30% 預計閱讀速度5000字/分鐘 實際閱讀速度3000字/分鐘 目前研究的方向是如何用人工智能輔助閱讀。 對於兒童語言學習機制的研究太少,現有的算法與人腦的差距依然很大。 本書需要一定專業背景才能閱讀。 >> 本書包括基礎知識、預訓練詞向量和預訓練模型三部分: 基礎知識部分介紹自然語言處理和深度學習的基礎知識和基本工具; 預訓練詞向量部分介紹靜態詞向量和動態詞向量的預訓練方法及應用; 預訓練模型部分介紹幾種典型的預訓練語言模型及應用,以及預訓練模型的最新進展。 >> 所謂模型預訓練(Pre-train),即首先在一個原任務上預先訓練一個初始模型,然後在下游任務(也稱目標任務)上繼續對該模型進行精調(Fine-tune),從而達到提高下游任務準確率的目的。 >> 卷積操作輸出的結果還可以進行進一步聚合,這一過程被稱爲池化(Pooling)操作。 >> 這好比人們在小學、初中和高中階段會學習數學、語文、物理、化學和地理等基礎知識,夯實基本功並構建基本的知識體系(預訓練階段)。而當人們步入大學後,將根據選擇的專業(目標任務)學習某一領域更深層次的知識(精調階段)。
《自然語言處理:基於預訓練模型的方法》拆解 作者:車萬翔、郭江、崔一鳴 一、一句話概括 現代自然語言處理的關鍵轉變,是從“爲每個任務單獨設計特徵和模型”走向“先在海量文本上學習通用語言表示,再用少量任務數據進行適配”,從而讓知識在不同任務之間遷移。 二、核心邏輯 全書分爲三層: 1. 基礎知識:自然語言處理的任務、難點、評價方法、工具和神經網絡基礎。2. 預訓練詞向量:從Word2vec、GloVe等靜態表示,發展到能夠根據上下文改變詞義的動態表示。3. 預訓練語言模型:介紹GPT、BERT及其應用、優化、壓縮、長文本處理、生成和多模態融合。 整體路徑可以概括爲: 文本數值化 → 神經網絡學習局部任務 → 無監督預訓練通用表示 → 下游任務微調 → 多語言、多模態與知識融合 本書的核心思想是:自然語言任務雖然形式不同,卻共享大量詞法、句法、語義和常識知識,因此可以通過預訓練實現知識複用。 三、核心內容 1. 自然語言處理的難點來自語言的不確定性 語言並不是一套完全精確的規則。同一個詞在不同上下文中可能含義不同,同一句話也可能存在多種結構和理解方式。 主要難點包括: 一詞多義;指代和省略;句法歧義;上下文依賴;隱喻、反諷和情緒;常識與背景知識;不同領域和語言差異;輸入錯誤與口語表達。 因此,NLP不能只靠詞典查找或固定規則,而要根據上下文和數據進行概率判斷。 2. NLP任務構成從基礎分析到語言生成的體系 常見任務包括: 分詞、詞性標註和命名實體識別;句法分析和語義分析;文本分類與情感分析;信息抽取;問答與閱讀理解;機器翻譯;文本摘要;對話和文本生成。 基礎任務爲上層應用提供結構信息,但預訓練模型的發展使許多任務可以在統一模型上完成,不再需要完全獨立的技術管線。 3. 文本必須先轉化爲數值表示 計算機不能直接理解文字,需要將詞、句子或文檔轉換爲數值。 早期方法包括: 獨熱編碼;詞袋模型;N-gram;詞頻;TF-IDF;人工設計的詞法和句法特徵。 這些方法簡單、可解釋,在數據有限和輕量級任務中仍然有效,但難以充分表達詞語之間的語義關係及上下文變化。 4. 評價指標必須與任務目標匹配 不同NLP任務需要不同評價方式。 分類任務常用準確率、精確率、召回率和F1值;序列標註通常按實體或標籤計算F1;機器翻譯和文本生成可以使用BLEU等指標。 單一自動指標並不等於真實質量。生成文本可能在字面上與參考答案不同,卻表達相同含義;也可能獲得較高指標,卻事實錯誤或不夠自然。 高風險或開放式生成任務仍需要人工評價、事實覈驗和多維指標。 5. 數據集和工具是NLP實驗的基礎設施 書中介紹NLTK、LTP、PyTorch及多種公開語料和任務數據集。 工具集負責分詞、標註、數據處理和模型實現,公開數據則提供訓練和比較基準。 使用數據時需要關注: 訓練、驗證和測試集劃分;標註規範;類別不平衡;數據是否包含泄漏;領域和時間分佈;授權、版權和隱私;評價集是否代表真實應用。 模型能力與數據質量無法分開討論。 6. 多層感知器學習非線性特徵組合 多層感知器由線性層和非線性激活組成,可以學習輸入特徵之間的複雜關係。 它適合處理固定長度的向量,但無法天然建模詞序和長距離依賴。用於文本時,通常需要先把句子轉換成固定維度表示。 MLP仍是許多模型輸出層和特徵融合模塊的基礎。 7. CNN擅長提取局部文本模式 卷積神經網絡使用不同寬度的卷積核,在句子中識別類似N-gram的局部模式。 它可以捕捉“不太滿意”“非常推薦”等與分類相關的短語,並通過池化獲得固定長度表示。 CNN計算並行度高,適合文本分類,但單獨使用時較難處理很長距離的依賴關係。 8. RNN通過順序狀態建模文本 循環神經網絡按照詞語順序處理輸入,並把前面的信息保存在隱藏狀態中。 LSTM和GRU通過門控機制緩解普通RNN的梯度消失問題,曾廣泛用於標註、翻譯和生成任務。 RNN能夠表示順序,卻難以完全並行,長文本中的早期信息也可能逐漸丟失。這爲注意力機制和Transformer的發展提供了動力。 9. 注意力機制允許模型選擇相關信息 注意力機制讓模型在處理當前任務時,動態計算輸入不同部分的重要程度。 在機器翻譯中,生成目標詞時可以重點關注源句中相關的詞,而不必把整個句子的所有信息壓縮進一個固定向量。 注意力提高了長距離信息利用能力,也爲Transformer提供了核心機制。 但注意力權重不一定等同於完全可靠的人類解釋,不能簡單把它當作模型決策原因。 10. 靜態詞向量把語義編碼進連續空間 Word2vec通過上下文預測學習詞向量。語義或用法相近的詞,在向量空間中通常距離較近。 GloVe則利用全局詞語共現統計學習表示。 相較獨熱編碼,詞向量具有以下優勢: 維度更低;能表示詞語相似性;可以遷移到其他任務;減少人工特徵工程;爲神經網絡提供更好的初始表示。 但每個詞通常只有一個固定向量,無法區分同一個詞在不同語境中的含義。 11. 動態詞向量根據上下文改變表示 例如“蘋果很好喫”和“蘋果發佈了新產品”中的“蘋果”含義不同,靜態詞向量卻使用同一個表示。 動態詞向量通過語言模型同時考慮上下文,爲每次出現的詞生成不同向量。 ELMo等方法使用雙向語言模型產生上下文化表示,標誌着詞表示從“查表”走向“根據句子計算”。 動態表示顯著提高了多義詞和上下文信息的建模能力。 12. 預訓練語言模型把通用知識遷移到下游任務 預訓練首先在大規模無標註文本上學習語言規律,再在標註數據較少的具體任務上微調。 它解決了兩個長期問題: 高質量人工標註數據昂貴;不同任務重複學習大量相同語言知識。 預訓練模型可能學習詞法、句法、語義和部分世界知識。下游任務只需增加較小的輸出模塊,並對模型參數進行適配。 這一範式成爲現代NLP的基礎。 13. GPT採用自迴歸語言建模 GPT按照從左到右的順序,根據前文預測下一個詞。 這種自迴歸目標天然適合文本生成,因爲訓練方式與生成過程一致。 早期GPT展示了“通用預訓練+任務微調”的能力,後續大規模版本進一步發展爲通過提示完成多種任務。 其侷限包括訓練成本、事實幻覺、上下文限制,以及生成結果對提示和訓練數據高度敏感。 14. BERT通過雙向上下文學習表示 BERT使用Transformer編碼器,並通過掩碼語言模型等任務進行預訓練。 訓練時,一部分詞被遮蓋,模型需要根據左右兩側上下文恢復原詞。這使每個位置能夠同時利用前後信息。 BERT特別適合理解型任務,例如: 文本分類;命名實體識別;句子關係判斷;閱讀理解;信息抽取。 它通常需要針對下游任務微調,而不是像自迴歸模型那樣直接連續生成長文本。 15. 微調把通用模型適配爲專用模型 預訓練模型並不知道某個任務的具體標籤和評價標準,因此需要適配。 常見方式包括: 把模型作爲固定特徵提取器;微調整個模型;只訓練部分層或任務頭;使用領域語料繼續預訓練;通過知識蒸餾得到小模型。 微調數據少時容易過擬合,學習率、訓練輪次、隨機種子和數據劃分都會顯著影響結果。 16. 模型優化不僅是提高準確率 預訓練模型參數多、計算量大,實際應用還要考慮: 推理延遲;顯存和內存;吞吐量;能耗;移動端和邊緣設備部署;訓練成本;維護複雜度。 模型蒸餾讓小模型學習大模型的輸出或中間表示,以較少參數保留部分性能。剪枝、量化和參數共享也可以降低資源消耗。 更大的模型並不總是更適合真實產品。 17. 長文本處理面臨計算與信息選擇問題 標準Transformer的自注意力計算量會隨序列長度快速增長,直接處理長文檔成本很高。 解決思路包括: 截斷或滑動窗口;分段編碼與層次化聚合;稀疏注意力;先檢索相關片段再進行建模;壓縮歷史表示;採用專門的長文本架構。 長文本的難點不只是裝入更多字符,還在於識別哪些信息與當前任務真正相關。 18. 生成模型需要同時控制流暢、相關和真實 文本生成任務包括對話、摘要、翻譯和開放式寫作。 語言模型可以生成流暢文本,但流暢不等於事實正確。訓練目標通常獎勵詞序概率,並不會天然驗證現實世界中的真實性。 生成系統還需要結合: 檢索和外部知識;事實一致性檢查;重複與多樣性控制;安全和偏見過濾;人工反饋;使用場景限制。 這也是今天大語言模型應用仍然面對的核心問題。 19. 多語言預訓練實現跨語言知識遷移 多語言模型在多種語言文本上聯合預訓練,使不同語言的表示進入共享空間。 高資源語言學到的知識可以幫助低資源語言任務,減少每種語言都從頭訓練的成本。 但不同語言的數據規模差異可能導致模型偏向高資源語言,分詞方式和文化背景也會影響公平性。 跨語言能力不能只用少數主流語言評價。 20. 多模態與知識融合擴大語言模型能力 語言理解往往需要圖像、語音、視頻和結構化知識。 多模態模型把不同媒體映射到共同表示空間,可用於圖文檢索、圖片描述和視覺問答。 知識融合則通過知識圖譜、數據庫或外部文檔補充模型信息,增強專業性和可驗證性。 這條路線已經發展爲今天的多模態大模型和檢索增強生成系統。 四、本書最值得關注的核心觀點 本書最值得關注的觀點是: 預訓練的本質是把“從大量無標註數據中學習通用知識”和“用少量標註數據解決具體任務”分開。 傳統方法爲每個任務獨立準備特徵和模型,大量語言知識被反覆學習。預訓練模型則先用大規模文本學習通用表示,再通過微調、任務頭或提示適配不同任務。 這種分工帶來了強大的遷移能力,也改變了NLP研發方式: 競爭重點從單個任務模型,轉向基礎模型、數據、適配方法和評估體系。 但通用表示並不等於通用可靠性。模型學到的是數據中的統計規律,也會繼承其中的錯誤、偏見和缺失。 五、一段話總結 《自然語言處理:基於預訓練模型的方法》從文本表示、NLP任務、評價指標、工具與數據集出發,介紹MLP、CNN、RNN和注意力等神經網絡基礎,再梳理Word2vec、GloVe靜態詞向量向ELMo等動態表示的演進,最後重點講解GPT、BERT及其微調、長文本處理、蒸餾壓縮、文本生成、多語言、多模態和知識融合。全書展示了NLP範式的核心轉變:先利用海量無標註文本學習通用語言知識,再用較少任務數據完成適配,從而在不同任務之間複用能力。雖然書中模型主要對應大語言模型全面爆發前的階段,但Transformer、上下文化表示、預訓練遷移、模型壓縮和外部知識融合等思想仍是理解現代NLP系統的關鍵基礎。
生成式人工智能gpt的前世今生 1. gbt大模型的直觀理解 朋友問了我個問題,我知道大模型就是大數據,這些大數據究竟是如何生成這些內容的?爲什麼需要這麼多數據? 首先,我跟他解釋,大模型就是一個分層結構,每層用到了矩陣運算,每一個矩陣都是相當大的維度,然後總共加起來就有這麼多數據。 但是他又問,從直觀上如何理解呢? 我想,這有點像數據壓縮一樣,學習訓練的樣本都是千億級的數據,訓練出來的大模型現在最小是70億,效果還不錯,能夠在客戶端上面運行。所以從數據容量上來看,是93%的壓縮率。但是另外一個層面上,它的數據又不像壓縮包一樣是完全恢復的,而是經過一定的學習,然後能夠輸出不同的內容,就像是他真的學習過這些知識一樣,融匯到腦海裏,有自己的理解了。這個就是本文續論裏面提到的,現在的機器學習經過了三個階段的發展:以前的運算智能,感知智能,和現在的認知智能。 上一本《生成式人工智能》提到,人的認知模型是分層的,從最底層的數據,到信息,到知識,邏輯,哲學,信仰。現在的人工智能已經到了邏輯認知層次,他能回答問題,歸納中心思想,生成文章,生成圖片,視頻等等,甚至比一般人都要做的好。 2.自然語言處理的發展階段 本書中更側重於文本相關的人工智能領域,也就是自然語言處理nlp,這就是chatgpt背後的技術。它的發展同樣,也經歷兩個階段,一是特徵提取工程,二是現在的序列到序列模型。 1) 特徵提取工程就是依賴人類的經驗,提取語言的某些特徵,包括語法語義等等,然後用這些特徵去訓練模型。 2) 序列到序列模型,就是把模型只依賴機器自動提取特徵,從深度學習之後開始就是這類的,一是因爲人類經驗是有限的,二是深度學習更適合機器去學習。 nlp序列到序列的模型主要經歷了三種技術,rnn CNN和現在的transformer模型。 rnn是首個nlp上有效的Deep learning模型,它用於翻譯任務,情感分類等等都不錯,但它很大的問題就是,無法並行,並且無法處理長文本。 CNN並行度高一些,但同樣無法處理長文本。 transformer模型用attention獲取長文本的自注意力,並且能夠並行處理。 從2017年穀歌提出之後,就是它Transformer時代了,後面各家以此爲基礎,都是在解決大語言模型預訓練的問題,從有監督到無監督到自監督,用少量人工標註的小樣本訓練獎勵模型,然後用大量的文本網上的比如說維基百科等等的文本,自監督訓練,減少人工,從而使llm大語言模型成爲可能。 3. nlp的基本步驟 一是標記化tokenization,就是把這些輸入語言文本變成序列號, 二是embedding嵌入,也就是把語語言token轉換爲計算機表示,現在一般是詞向量。另外,爲了保留位置信息,還會加入位置嵌入步驟。 三是transformer,就是Attention加上前向反饋。 四是是線性化以及輸出。 4.學習新領域的心得體會 經過這段時間的學習,總結一下學習一個新領域的步驟: 一是去看看大神的博客,寫的不錯的文章,對這個領域有一些直觀的瞭解。 二是找這些專業的書籍來了解,來更深入的瞭解一些細節。 三是找例子,跟着跑一遍pytorch模型訓練,從而對整個步驟有更清楚的瞭解,消除模糊。 最後,接下來有幾個方面去深化: 一是去使用chat gpt的工具,這是誰都可以用的,主要作用是提高工作效率,有些是辦公,有些是內容創作的工具。 二是繼續深入gpt每個模塊以及算子的優化。 三是可以瞭解一下AI工具方面的公司和行業情況,看看哪些有前途? 總的來說,本書專業度高,結合我上述提到的一些資源,可以基本入門gpt。不過,本書着重於bert自編碼模型,對現在chatgpt爲首的自迴歸模型提到不多。
讀過的國內自然語言處理領域最好的一本書。內容全面,知識點和概念較新,緊跟學術前沿;語言通俗易懂又不失嚴謹性,概念解釋言簡意賅,一針見血;表述方式豐富,圖標、數學公式和代碼一應俱全,適合相關專業各個層次的讀者閱讀學習。
自然語言在預訓練模型中應用的百科全書,學術氛圍濃厚,適合科班人員專注推理公式,同時又提供了大量的pytorch示例。既上接學術,又下接落地。不需要對本書中所有的模型都要細細研讀,通讀理解後,需要形成的是自上而下的這種預訓練模型的知識體系,然後把它當工具書,當遇到具體場景問題時,再來細細研究。
近來 ChatGPT 如此火熱,你一定非常想知道這將要革命生產力的大語言模型、生成式 AI 浪潮到底是什麼魔法?對於有一定技術基礎但非自然語言處理領域的同學來說,這是我最推薦的一本書,作者深入淺出、簡潔明快地講清楚了生成式預訓練(GPT)模型的所有關鍵技術基礎,將理論、學界演進、業界應用、python 實踐等融匯得很好,而且在 NLP 書籍裏面算內容較新的。
自然語言處理——研究人類的甜言蜜語[旺柴] 本書當然強烈推薦了,內容詳實並且當下NLP領域的研究熱點都有涉及,可以說是一本全面介紹預訓練語言模型方法的基礎書了,值得反覆學習。
在 2023 年看來這本書已經過時了,後半段以bert爲主,在過於因爲相對gpt較小大小和谷歌影響力還有更加擅長常規測試,學術界很喜歡,但是現在都是自迴歸的天下.已經沒人去用這些.各種 transformer 的介紹也過時,因爲基本沒人用,實際上各種魔改有百種,但是大規模應用和有影響力論文都一概不用, 本書更多是新時代前所有的 nlp 的總結介紹
這本書適合通讀一遍,再拿起來當工具書還是不錯的。
看過很多NLP的書,這本書真正讓我從0到1瞭解複雜的機器學習算法。相對一些書籍上來堆概念,希望勸退一些讀者好讓自己競爭少一些,這本書更像是講故事一般解釋內在機理,先了解原理,再深入理解公式和訓練方法,會事半功倍