天天看點

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

作者:深度學習GPU伺服器
突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

AGI | AIGC | 大模型訓練 | GH200

LLM | LLMs | 大語言模型 | MI300

ChatGPT的成功帶動整個AIGC産業的發展,尤其是LLM(大型語言模型,大語言模型)、NLP、高性能計算和深度學習等領域。LLM的發展将為全球和中國AI晶片、AI伺服器市場的增長提供強勁動力,據估算,LLM将為全球和中國AI伺服器帶來約891.2億美元和338.2億美元的市場空間。

國外廠商在LLM領域具有領先優勢,但大陸LLM産品也在快速發展,2023年以來多家廠商推出了自研的通用LLM,國産LLM在各行業的應用以及生态建設也取得積極進展。雖然大陸LLM相比GPT-4或仍有一定差距,但在短期内達到或接近ChatGPT的水準是可以預期的。

值得關注是 AMD 上周推出 MI300 系列加速卡,旨在與英偉達展開競争。MI300 系列是 AMD 為 AI 和高性能計算打造的一系列最新 APU 加速卡,包括MI300A 和 MI300X。其中 MI300A 內建了 CPU 和 GPU,而 MI300X 則是一款專門面向生成式 AI 推出的加速器,對标英偉達 H100。從性能參數看,MI300系列産品足以比肩甚至超越英偉達的高端加速卡,但總的來說,短期仍然難以撼動英偉達在該領域的絕對領先地位。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

展望下半年,大陸大模型産品已經初步具備商用能力。北上深三地利好通用人工智能發展政策的釋出,彰顯大陸對AIGC發展的重視和支援,同時将為其他城市釋出類似政策帶來示範效應。在政策與技術的共振下,大陸AIGC産業未來發展前景廣闊。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

如今,國内在LLM模型相關技術方面距離最先進技術的差距進一步加大。在Bert出現之後的一到兩年間,國内在這塊的技術追趕速度很快的同時也提出了一些很好的改進模型。差距拉開的分水嶺應該是在 GPT 3.0出來之後,也就是2020年年中左右。在當時,其實隻有少數的人覺察到GPT 3.0它不僅僅是一項具體的技術,更能展現出LLM應該往何處去的一個發展理念。

大型語言模型(LLM)是一種低成本、高效率的技術,它在自然語言處理(NLP)和人工智能(AI)領域引起了廣泛關注。其中,ChatGPT作為LLM的代表,是否帶來了NLP和AI領域的研究範式轉變?如果是,将會産生怎樣的影響?LLM通過從海量資料中學習,積累了豐富的知識。那麼,LLM是如何存取這些知識的呢?随着LLM規模逐漸增大,它将對研究和應用産生怎樣的影響?此外,上下文學習(In Context Learning)是一項神秘的技術,它與指令(Instruct)有着密切的關系。LLM是否具備推理能力?思維鍊(CoT)又是如何實作的呢?接下來,将詳細介紹以上提到的方面。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

LLMs的背景、能力

一、LLM的背景

LLM(大型語言模型,大語言模型)是指使用大量文本資料訓練的語言模型,包含數千億或更多的參數。采用 Transformer 架構和語言模組化預訓練目标,但相較于小型模型,LLM 模型大小、預訓練資料和總計算量更大。這使得它們可以更好地了解自然語言,并生成高品質的文本。LLM 的容量改進可以用标度律進行部分地描述,但某些能力隻有在模型大小超過某個水準時才能觀察到。

二、LLM的湧現能力

LLM 的湧現能力是指在小型模型中不存在但在大型模型中出現的能力,是 LLM 與以前的 PLM 區分的最顯著特征之一。當規模達到一定水準時,LLM 的性能顯著高于随機狀态,這種新模式與實體學中的相變現象密切相關。LLM 的湧現能力可以與一些複雜的任務有關,人們更關心的是它的通用能力。

LLM 的三種代表性的湧現能力包括上下文學習、指令遵循和循序漸進的推理。其中,上下文學習能力使得語言模型可以通過完成輸入文本的詞序列來生成測試執行個體的預期輸出;指令遵循能力使得 LLM 能夠在不使用顯式樣本的情況下通過了解任務指令來執行新任務,進而提高泛化能力;循序漸進的推理能力使得 LLM 可以通過利用涉及中間推理步驟的 prompt 機制來解決複雜任務得出最終答案。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

NLP研究範式的轉換從淺層語義到深層語義的模組化

在過去的10年中,NLP領域可能經曆了兩次重要的研究範式轉換。

一、從深度學習到兩階段預訓練模型

NLP領域引入深度學習大緻從2013年開始,直到GPT 3.0出現之前(2020年5月左右)。在Bert和GPT模型出現之前,NLP領域流行的技術主要是深度學習模型,主要依托于改進的LSTM和CNN模型作為特征抽取器,以及Sequence to Sequence+Attention作為總體技術架構。然而,這些雖然增加了模型層深,但在解決具體任務上的效果仍然不夠成功。這主要是由于任務訓練資料量有限和LSTM/CNN特征抽取器表達能力不夠強所緻。

直到Bert和GPT這兩個預訓練模型的出現,才代表了NLP領域的一個技術飛躍,并帶來了整個領域研究範式的轉換。這種範式轉換帶來的影響主要展現在兩個方面:一是部分NLP研究子領域的衰退乃至逐漸消亡;二是NLP不同子領域的技術方法和技術架構日趨統一,技術棧基本收斂到兩種技術模式中。

1、部分NLP研究子領域的衰退乃至逐漸消亡

NLP是一個宏觀研究領域的統稱,裡面有五花八門具體的子領域與子方向,如果仔細分析,從任務的性質角度,可以把這些任務分成兩大類:中間任務和最終任務。

1)中間任務

典型的中間任務主要包括中文分詞、詞性标注、NER、句法分析、指代消解、語義Parser等,這類任務一般并不解決應用中的實際需求,大多數是作為那些解決實際需求任務的中間階段或者輔助階段存在。比如幾乎沒有需求說,要一個句法Parser,把這個句子的句法分析樹給使用者看看,使用者不需要看到這些NLP的中間階段處理結果,隻需關心某個具體任務有沒有幹好。

2)最終任務

這類任務(文本分類、文本相似性計算、機器翻譯、文本摘要等)的特點是每個子領域都解決某個實際需求,任務結果基本能直接呈現給使用者,比如使用者确實存在給你一句英文,告訴他中文是什麼的需求。

按理說,“中間任務”不應該出現,而之是以會存在的原因是NLP技術發展水準不夠高。在技術發展早期階段,由于當時技術相對落後,很難一步做好有難度的最終任務。如機器翻譯,早期技術要做好機器翻譯是很困難的,于是科研人員就把難題分而治之,分解成分詞、詞性标注、句法分析等各種中間階段,先把每個中間階段做好,然後再拼起來完成最終任務。

自從Bert/GPT出現之後,就沒有必要做中間任務。因為通過大量資料的預訓練,Bert/GPT已經把這些中間任務作為語言學特征,吸收到Transformer的參數裡,此時完全可以端到端地直接解決那些最終任務,而無須對這種中間過程專門模組化。

2、不同研究方向技術路線的統一

除了“中間任務”,NLP任務可以劃分為兩大類型:自然語言了解和自然語言生成。自然語言了解任務包括文本分類、句子關系判斷、情感傾向判斷等分類任務,模型根據輸入文本判斷其屬于哪個類别。自然語言生成任務包括聊天機器人、機器翻譯、文本摘要、問答系統等生成任務,模型根據輸入文本生成相應輸出文本。

自Bert/GPT模型出現後,NLP領域出現了技術統一趨向,特征抽取器逐漸從LSTM/CNN統一到Transformer上,多數任務采用預訓練+微調或Zero/Few Shot Prompt模式。自然語言了解任務采用Bert為代表的雙向語言模型預訓練+Fine-tuning模式,自然語言生成任務采用GPT 2.0為代表的自回歸語言模型+Zero/Few Shot Prompt模式。這兩種模式背後的發展思路和未來發展方向不同,但很多人低估了GPT模式的潛力。GPT模式的自回歸語言模型可以生成高品質的文本,能夠應用于多個自然語言生成任務且具有良好的遷移能力。相比之下,Bert模式在生成任務上表現較差且Fine-tuning方式需要大量标注資料,不易适應新任務。

二、從預訓練模型走向通用人工智能 (AGI,Artificial General Intelligence)

這次範式轉換涵蓋的時間大緻在GPT3.0出現後,從2020年6月左右開始一直持續到現在。ChatGPT轉換的關鍵節點,但在InstructGPT出現之前,LLM處于範式轉換的過渡期。

1、以GPT 3.0為代表的“自回歸語言模型+Prompting”模式占據統治地位

在預訓練模型發展的早期,技術架構收斂到Bert模式和GPT模式這兩種不同的技術範型,而且人們普遍更看好Bert模式一些,相當多數的後續技術改進,都是沿着Bert那條路走。但是,随着技術的繼續發展就發現目前規模最大的LLM模型,幾乎清一色都是類似GPT 3.0的“自回歸語言模型+Prompting”模式(如GPT-3、PaLM、GLaM、Gopher、Chinchilla、MT-NLG、LaMDA等)。為什麼會這樣呢?背後一定有其必然性,主要源于兩個原因。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

1)Google的T5模型,在形式上統一自然語言了解和自然語言生成任務的外在表現形式

如上圖所示,T5模型中的文本分類問題和判斷句子相似性的回歸或分類問題,都是典型的自然語言了解問題。在T5模型中,這些自然語言了解問題的輸入輸出形式與生成問題保持一緻,可以将分類問題轉換成讓LLM模型生成對應類别的字元串,進而實作了解和生成任務在表現形式上的完全統一。這表明自然語言生成任務在表現形式上可以相容自然語言了解任務,而反過來則很難做到這一點。這樣做的好處是,同一個LLM生成模型可以解決幾乎所有NLP問題。相比之下,如果仍然采用Bert模式,LLM模型則無法很好地處理生成任務。

2)如果要以零示例提示語(zero shot prompting)或少數示例提示語(few shot prompting)的方式做好任務就必須要采取GPT模式

研究表明,以fine-tuning方式解決下遊任務時,Bert模式的效果優于GPT模式。但是,如果是以zero shot/few shot prompting模式解決下遊任務,則GPT模式的效果要優于Bert模式。這說明,生成模型更容易完成zero shot/few shot prompting方式的任務,而Bert模式在這種方式下做任務時存在劣勢。

那麼問題來了:為什麼要追求zero shot/few shot prompting方式來做任務呢?要解釋清楚這個問題,首先需要搞清楚另外一個問題:什麼樣的LLM模型最理想的?

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

對于LLM模型來說,首先,應該具備強大的自主學習能力。如果将世界上所有可獲得的文本、圖檔等不同類型的資料輸入模型中,應該能夠自動學習其中包含的所有知識點,學習過程不需要人的介入,并且能夠靈活應用所學知識來解決實際問題。由于資料量龐大,要吸收所有知識,模型必然需要具備大量的參數來存儲知識,是以這個模型必然會是一個巨無霸模型。

其次,LLM模型應該能夠解決NLP任何子領域的問題,而不僅限于某個有限的領域,甚至應該能夠響應NLP之外的其他領域的問題。此外,當使用LLM模型解決某個具體領域的問題時,應該使用人類習慣的表達方式,即LLM應該了解人類的指令。這展現讓LLM适應人類,而不是讓人去适應LLM模型。人适應LLM的典型例子是,人們會費盡心思地嘗試各種不同的prompt,以試圖找到好的提示語,以便更好地解決手頭問題。

為什麼要追求zero shot/few shot prompting這種方式來解決任務?主要有以下兩個原因。

1)理想中的LLM模型規模必然非常巨大,隻有極少數機構有能力制作出這個模型或改動模型參數。任務需求方卻千千萬萬,其中大多數是中小機構甚至個人即使模型開源,也無法部署這個模型,更不用說再使用Fine-tuning這種模式去修改模型參數了。是以應該追求不修正模型參數就能讓任務需求方完成任務的方式,即應該采取prompt模式完成任務,而非Fine-tuning模式。模型制作方則将LLM作為公用服務,以LLM as Service的模式運作。

作為服務支援方,考慮到使用者需求的多樣性,LLM模型制作方更應該追求讓LLM能夠完成盡可能多類型的任務,這是附帶的影響,也是為何超級大模型一定會追求走向AGI的現實因素。

2)zero shot prompting也好,few shot prompting也好,甚至促進LLM推理能力的思維鍊(CoT, Chain of Thought)Prompting也好,都是現有技術中的一種。具體而言,zero shot prompting的初衷是直接用人類常用的任務表述方式讓LLM做事情,但是發現LLM并不能很好地了解,效果也不好。經過繼續研究,人們轉而發現,對于某項任務,如果給LLM幾個示例,用這些示例來代表任務描述,效果會比zero shot prompting好,于是都開始研究更好的few shot prompting技術。

可以了解為,本來希望LLM能夠用人類常用的指令方式來執行某個任務,但是目前技術還做不到,是以退而求其次,用這些替代技術來表達人類的任務需求。如果了解了上述邏輯,很容易得出如下結論:few shot prompting(也被稱為In Context Learning)隻是一種過渡時期的技術。如果能夠更自然地去描述一個任務,而且LLM可以了解,那麼肯定會毫不猶豫地抛棄這些過渡期的技術,原因很明顯,用這些方法來描述任務需求,并不符合人類的使用習慣。

2、讓LLM适配人的新型互動接口

ChatGPT是一種能力強大、善解人意的技術方法,最接近理想的LLM模型。ChatGPT的強大能力主要得益于GPT 3.5模型,而非人工标注資料。雖然加入了人工标注資料,但這些資料量級隻有數萬,對GPT 3.5的基礎能力增強作用微乎其微。

ChatGPT的最大貢獻在于它基本實作了理想LLM的接口層,讓LLM适配人的習慣指令表達方式,而不是反過來讓人去适配LLM。這增加了LLM的易用性和使用者體驗,是一種更符合人類表達習慣的人和LLM進行互動的人機接口技術。ChatGPT的技術貢獻必将啟發後續的LLM模型,在易用人機接口方面繼續做進一步的工作。

3、很多NLP子領域不再具備獨立研究價值

範式轉換将會改變NLP領域的格局,許多獨立存在的研究領域将被LLM技術體系所納入,逐漸消失。雖然許多“中間任務”不再需要獨立存在,但是大多數“最終任務”仍将作為獨立領域存在,隻是在“預訓練+fine-tuning”架構下,陸續提出新的改進方案。

研究表明,随着LLM模型規模的增大,許多NLP任務的效果會得到大幅提升。是以,很多領域所謂“獨有”的問題,隻是因為缺乏領域知識而表現出來的外在表象。隻要提供更多的領域資料給LLM,讓它自己學習更多知識,這些問題就可以被很好地解決。未來的技術發展趨勢應該是追求規模越來越大的LLM模型,通過增加預訓練資料的多樣性,來涵蓋越來越多的領域。研究重心将投入到如何建構理想LLM模型,而非解決某個領域的具體問題。是以,越來越多NLP的子領域将被納入LLM技術體系,逐漸消失。

判斷某個具體領域是否需要立即停止獨立研究,可以采取以下兩種方法:一是判斷LLM的研究效果是否超過人類表現,對于那些LLM效果已超過人類表現的研究領域,已無獨立研究的必要。二是對比兩種模式的任務效果,如果few-shot prompting或instruct-based方法的效果達到或超過用較大的領域專用資料進行Fine-tuning的效果,則意味着這個領域沒有繼續獨立存在的必要性。

如果這個猜測成立,将意味着很多NLP領域的研究人員面臨着往何處去的選擇,是繼續做領域獨有問題呢?還是放棄這種方式,轉而去建設更好的LLM?

4、更多NLP之外的研究領域将被納入LLM技術體系

理想中的LLM應該是一種通用的人工智能模型,不應該被限制在某一個學科領域内。ChatGPT的出現證明了這種追求AGI的可行性,而現在是抛開“領域學科”這種思維束縛的時候了。除展示出在各種NLP任務中流暢的對話形式,ChatGPT還具備強大的代碼能力。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

LLM技術正在向外擴充,其中一個自然的方向是圖像處理和多模态任務。目前已經有一些工作在嘗試将多模态融入LLM中,以實作通用人機接口的功能,例如DeepMind的Flamingo和微軟的“Language Models are General-Purpose Interfaces”。

圖像領域的預訓練模型應用到下遊任務的效果收益遠不如NLP領域的預訓練模型顯著,這可能是因為圖像預處理模型仍需深入探索,以釋放圖像資料的潛力。是以,圖像處理領域被融入LLM的時間可能會比想象的要慢。當然,如果圖像領域的預訓練模型被趟通,它們很可能會被融入到大型LLM中,直接完成終端任務,類似于NLP領域的局面。

除了圖像和多模态,其他領域也将逐漸被納入到LLM中,這是具備高價值的研究主題。範式轉換的個人思考表明,LLM技術的主要技術進展可以分為兩大類:一類是關于LLM模型如何從資料中吸收知識,也包括模型規模增長對LLM吸收知識能力帶來的影響。第二類是關于人如何使用LLM内在能力來解決任務的人機接口,包括In Context Learning和Instruct兩種模式。思維鍊(CoT)prompting這種LLM推理技術,本質上也屬于In Context Learning。

從無盡資料導海量知識

目前的研究結果表明,Transformer作為一個特征抽取器已經足夠強大,不需要進行特别的改進。預訓練過程讓Transformer學到了什麼?知識是如何存儲的?如何修正錯誤的知識?這些問題是目前研究的重點。本節講述這方面的研究進展。

一、LLM學到了什麼知識

LLM通過學習海量自由文本,獲得了大量的知識,可以将這些知識粗略地分為語言類知識和世界知識兩大類。語言類知識包括詞法、詞性、句法和語義等,有助于人類或機器了解自然語言。研究表明,LLM可以學習各種層次類型的語言學知識,并且這些知識存儲在Transformer的低層和中層。世界知識則包括真實事件(事實型知識)和常識性知識(Common Sense Knowledge)。

研究表明,LLM可以從訓練資料中吸收大量世界知識,并且這些知識主要分布在Transformer的中層和高層,随着模型層數的增加,能夠學習到的知識數量逐漸以指數級增加。對于Bert類型的語言模型來說,隻用1000萬到1億單詞的語料,就能學好句法語義等語言學知識,但是要學習事實類知識,則需要更多的訓練資料。随着增加訓練資料量,預訓練模型在各種下遊任務中效果越好,這說明了從增量的訓練資料中學到的更主要是世界知識。

二、LLM如何存取知識

LLM是一種基于Transformer結構的語言模型,可以從大量的自由文本中學習到豐富的語言類和世界知識。但對于具體的某條知識,LLM是如何存儲和提取的呢?從Transformer的結構來看,模型參數由兩部分構成:多頭注意力(MHA)部分占了大約參數總體的三分之一,三分之二的參數集中在FFN結構中。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

FFN的第一層是一個MLP寬隐層,也就是Key層;第二層是一個MLP窄隐層,也就是Value層。FFN的輸入層實際上是某個單詞對應的MHA的輸出結果Embedding,也就是通過Self Attention,将整個句子有關的輸入上下文內建到一起的Embedding,代表了整個輸入句子的整體資訊。

Key層的每個神經元節點,記載了一對<Key,Value>資訊。比如對于FFN第一個隐層的第i個節點ki,也許就是它記載了<北京,is-capital-of,中國>這條知識。ki節點對應的Key向量,其實指的是節點ki和輸入層每個節點的權重向量;而對應的Value向量,指的是節點ki和FFN第二層的Value層每個節點形成連接配接的權重向量。

每個神經元的Key向量,用于識别輸入中的某種語言或者知識模式,是一種模式探測器。如果輸入中包含它要檢測的某種模式,那麼輸入向量和ki節點的key權重進行向量内積計算,加上Relu,形成ki的大數值響應,意味着ki檢測到了這個模式,于是再把這個響應值,通過ki節點的Value權重向量向FFN第二層傳播。這等價于将Value向量的值,用響應值權重,然後傳遞并展現到第二層Value層每個節點的輸出上。

這樣,FFN的正向傳播計算過程,看起來就像是通過Key檢測到某種知識模式,然後取出對應的Value,并把Value展現在FFN的第二層輸出上。當然,FFN第二層每個節點,會收集FFN的Key層所有節點資訊,是以是一種混合響應,而Value層所有節點的混合響應,可以解讀為代表輸出單詞的機率分布資訊。把FFN看成Key-Value存儲器這種思路,雖然可能不是最終的正确答案,但是距離最終正确答案的距離,估計也不太遠。

三、如何修正LLM裡存儲的知識

當使用LLM進行自然語言處理時,可能會遇到一些過時或錯誤的知識。為了解決這個問題,可以使用三種不同的方法來修正LLM中存儲的知識。

1、從訓練資料的源頭開始修正知識

通過追蹤某條知識對應的訓練資料源頭定位到是哪些資料導緻LLM學會知識。然後删除資料源,重新預訓練整個LLM模型,以達到删除LLM中相關知識的目的。但這種方法在少量多次的正常知識修正場景中不适用。

2、通過fine-tuning來修正知識

根據要修正成的新知識來建構訓練資料,讓LLM模型在練資料上做fine-tuning,以指導LLM記住新的知識,遺忘舊知識。但是會有忘掉該忘的知識,還會忘掉不該忘的知識現象存在,導緻這麼做之後有些下遊任務效果下降。此外成本也相當高。

3、直接修改LLM的模型參數來修正知識

通過定位存儲知識的具體位置,強行調整FFN中對應的模型參數,将舊知識替換成新的知識。然而,這種方法需要解決兩個關鍵問題。首先需要知道如何在LLM參數空間中定位某條知識的具體存儲位置。其次需要知道如何修正模型參數,以實作舊知識到新知識的修正。

了解修正LLM知識的過程對于更深入了解LLM的内部運作機制是很有幫助的。雖然三種方法各有優缺點,但都可以幫助修正LLM中的過時或錯誤的知識,提高LLM在自然語言處理任務中的表現。

當LLM越來越大時會發生什麼

近年來,LLM模型規模不斷增長,目前效果最好的LLM模型,其參數規模大都超過了千億(100B)參數規模。如OpenAI的GPT-3規模為175B,Google的LaMDA規模為137B,PaLM的規模為540B,DeepMind的Gogher規模為280B等。國内也有中文巨型模型,比如清華&智譜GLM規模130B,華為“盤古”規模200B,百度“文心”規模260B,浪潮“源1.0”規模245B。

那麼問題來了,随着LLM模型規模的不斷增長會發生些什麼呢?預訓練模型的應用往往是兩階段的:預訓練階段和具體場景應用階段。在預訓練階段,LLM模型的優化目标是交叉熵,對于像GPT這種自回歸語言模型來說,也就是看LLM是否正确預測下一個單詞。而在場景應用階段,一般要看具體場景的評價名額。通常,LLM模型在預訓練階段的名額越好解決下遊任務的能力就越強。然而,事實并非完全如此。

現有研究表明,預訓練階段的優化名額确實和下遊任務表現出正相關關系,但并非完全正相關。也就是說,僅僅看預訓練階段的名額來判斷一個LLM模型是否夠好是不夠的。是以需要在模型的預訓練階段和應用階段都進行充分的評估和測試。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

在預訓練階段,OpenAI和DeepMind的研究表明,同時增加訓練資料量和模型參數是最優的選擇,而隻單獨增加其中某一個是不夠好的。DeepMind認為,訓練資料量和模型參數是同等重要的,是以應該同比例地增加。比如,如果用于訓練LLM的算力總預算增加了10倍,那麼應該增加3.3倍的模型參數量,3.3倍的訓練資料量,這樣模型效果才最好。而對于Chinchilla模型,它選擇增加4倍的訓練資料,但是将模型參數降低為Gopher的四分之一,大約為70B。這樣做的結果是,Chinchilla的預訓練名額和許多下遊任務名額都要優于規模更大的Gopher。這表明,可以選擇放大訓練資料,并同比例地減少LLM模型參數,以達到在不降低模型效果的前提下,極大縮小模型規模的目的。

從LLM解決下遊具體任務效果的角度來看,随着模型規模增大,不同類型的任務有不同的表現。比如,對于簡單的任務,如語言模型的困惑度,随着模型規模增大,模型效果會不斷提升。在OpenAI的研究中,當訓練資料量從12B增加到800B時,GPT-3模型的困惑度從3.15降低到1.28。

對于中等難度的任務,如問答、文本分類等,随着模型規模增大,模型效果會先提升後趨于平穩。在OpenAI的研究中,當訓練資料量從12B增加到800B時,GPT-3模型在LAMBADA和SuperGLUE等任務上的表現都有所提升,但是提升幅度逐漸減小。對于複雜的任務,如機器翻譯、語義了解等,随着模型規模增大,模型效果會先提升後出現飽和現象或者略微下降。在Google的研究中,當模型參數量從1558M增加到137B時,BLEU分數從36.8提高到37.5,但是随着模型規模進一步增大,BLEU分數反而略微下降。是以,在選擇LLM模型規模時,需要根據具體任務的難度和要求,綜合考慮各種因素,以獲得最佳的模型性能。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

第一類任務展現了LLM模型的scaling law,即随着模型規模的增大,任務的表現越來越好。這類任務通常是知識密集型任務,LLM模型包含的知識量越多,任務表現越好。研究表明,更大的LLM模型學習效率越高,相同訓練資料量,大模型可以學到更多的知識點。傳統的自然語言了解類任務大多屬于這種類型,近兩年這些任務的效果有了極大的提升,很可能是因為LLM模型的規模增長所帶來的。

第二類任務展現出LLM具備某種“湧現能力”,當模型規模達到某個閥值時,LLM模型對此類任務的效果會出現突然的性能增長。這種“湧現能力”是LLM模型規模增長的關鍵,随着模型規模越來越大,LLM模型會逐漸解鎖新的能力。這種現象很神奇,因為即使LLM模型現在還不能很好地解決某些任務,但如果繼續推大模型,也許某一天它的這項能力就被突然解鎖了。這些任務一般由多步驟構成,需要先解決多個中間步驟,邏輯推理能力在最終解決這類任務中發揮重要作用。思維鍊Prompting是一種典型的增強LLM推理能力的技術,能大幅提升此類任務的效果。關于為何LLM會出現這種“湧現能力”現象,目前還需要進一步的研究。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

還有一部分任務的效果曲線呈現出U形特性,即随着模型規模的增大,任務效果逐漸變差,但當模型規模進一步增大時,效果開始變好,呈現出U形增長趨勢。這些任務内部隐含了兩種不同類型的子任務,一種是真正的任務,另一種是“幹擾任務”。當模型規模小的時候,無法識别任意一種子任務,是以模型的表現跟随機選擇答案差不多。

當模型增長到中等規模時,主要執行的是幹擾任務,是以對真正的任務效果有負面影響,展現為真正任務效果的下降。當進一步增加模型規模時,LLM可以忽略幹擾任務,執行真正的任務,效果開始增長。如果采用思維鍊(CoT)Prompting,則部分任務的表現轉換為遵循Scaling law,即模型規模越大效果越好,而其他任務則轉換為U形增長曲線。這說明此類任務應屬于推理類型的任務,加入CoT後任務表現會發生質的變化。

從In Context Learning到Instruct了解

一般常提到的人和LLM的接口技術包括:Instruct和In Context Learning。Instruct是ChatGPT的接口方式,人以自然語言給出任務的描述,例如“把這個句子從中文翻譯成英文”。而In Context Learning和few shot prompting意思類似,給LLM幾個示例作為範本,然後讓LLM解決新問題。

雖然這些技術都是描述任務的方式,但其實思路是不同的。Instruct是一種抽象的描述方式,而In Context Learning是一種例子示範的說明法。盡管叫法有些混亂,但這兩種技術是最為常見的人和LLM的接口技術。下面将重點介紹Instruct和In Context Learning,而不再提及zero shot和few shot。

一、神秘的In Context Learning

In Context Learning是一項非常神奇的技術。它之是以神奇,是因為隻需要提供LLM幾個樣本示例<x1,y1>,<x2,y2>....<xn,yn>,然後給一個新的輸入xn+1,LLM就能成功預測對應的輸出yn+1。這聽起來有些類似于Fine-tuning,但實際上更為複雜。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

Fine-tuning和In Context Learning看似都提供了一些示例給LLM,但兩者之間存在着質的不同。Fine-tuning使用這些示例作為訓練資料,通過反向傳播來修正LLM的模型參數,進而實作了LLM從示例中學習的過程。而In Context Learning隻是簡單地展示示例,然後要求LLM去預測新的示例,沒有使用反向傳播來修正模型參數,這意味着它貌似沒有經曆學習的過程。但是,In Context Learning卻能夠僅憑一眼就預測出新的示例。

目前,有一些研究對這個問題提出了不同的看法,但是它們之間存在着互相沖突的結論。對于這個問題的真相,目前仍是未解之謎。有些研究認為In Context Learning并沒有從示例中學習映射函數,而是通過輸入和輸出的分布來實作預測。而另一些研究則認為LLM仍然從示例中學習了映射函數,隻是這個過程是隐式的。

二、神奇的Instruct了解

Instruct是一種為了友善人類了解的任務表述。基于這個前提,目前的Instruct研究可以分為兩類:一種是偏向學術研究的Instruct,另一種則是關注于人類真實需求描述的Instruct。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

首先,來看偏向學術研究的Instruct。該領域的核心研究主題是LLM模型在多任務場景下對Instruct了解的泛化能力。這種方法使用多個NLP任務,每個任務都有一個或多個Prompt模版作為Instruct,并用訓練資料對LLM模型進行微調,使其能夠同時學習多個任務。

訓練好模型後,給LLM模型一個全新的任務Instruct,然後讓LLM解決zero shot任務,進而判斷LLM模型是否具有對Instruct的泛化能力。目前的研究表明,增加多任務的數量、增加LLM模型的大小、提供CoT Prompting以及增加任務的多樣性等因素可以有效地增加LLM模型對Instruct的了解能力。

第二種是面向人類真實需求的Instruct,這類研究以InstructGPT和ChatGPT為代表。這種方法同樣基于多任務,但與偏向學術研究的方法最大的不同在于它是面向真實需求的。它使用從大量使用者送出的真實請求中抽樣而來的任務描述Prompt進行LLM多任務訓練,而不是固定好研究任務的範圍,然後讓研究人員來編寫任務描述prompt。

這種方法的優勢在于可以涵蓋更多樣化的任務類型,更符合使用者的真實需求;同時,任務的prompt描述來自使用者送出的請求,反映了使用者在表達任務需求時的真實表述方式。是以,這種方法訓練出的LLM模型可以更好地滿足使用者需求。InstructGPT論文還将該方法與偏向學術研究的FLAN方法進行了比較。結果表明,FLAN方法的效果距離InstructGPT有很大差距。這是因為FLAN方法涉及的任務領域相對較少,而InstructGPT使用的任務類型更加多樣化,更符合使用者的真實需求。是以,從使用者資料中收集真實需求對于提高LLM模型的效果是非常重要的。

三、In Context Learning和Instruct的聯系

可以将In Context Learning看作是通過一些具體的例子來表達任務指令,而Instruct則是更符合人類習慣的抽象任務描述。這引發了一個自然的問題:這兩種方法之間是否存在聯系?例如,是否可以提供一些具體的示例,讓LLM找出對應的自然語言描述的Instruct指令來完成某個任務?

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

目前有些研究工作在探索具象任務示例和自然語言指令之間的聯系,并且這個方向具有很高的研究價值。在這個問題上,答案是肯定的:LLM确實可以實作這個任務。最近的一項研究使用了GPT-3和InstructGPT作為基礎模型,讓LLM通過一些具體的示例生成自然語言指令來描述某項任務,然後再用這個描述測試任務效果。這項技術的加持使得LLM生成的Instruct效果大大提升,甚至在一些任務上超過了人類的表現。這表明了具象任務示例和自然語言指令之間存在一種神秘的内在聯系,但我們目前還無法确定這種聯系的具體本質。

如何增強LLM的推理能力

目前,許多研究表明LLM具有強大的記憶能力,但通常不會因為一個人記憶能力強就認為他/她很聰明,因為推理能力往往是判斷一個人是否聰明的重要标準。是以,對于LLM而言,強大的推理能力也是必不可少的。在過去一年中,LLM的推理能力已成為最重要和熱門的研究領域之一。目前的研究表明,當模型規模足夠大時,LLM本身具備推理能力,在簡單推理問題上已經達到了很好的能力,但在複雜推理問題上仍需要更深入的研究。

LLM推理能力的研究可以歸為兩大類分别是基于Prompt的方法和引入程式代碼的方法。基于Prompt的方法通過合适的提示語或提示樣本來激發LLM本身具備的推理能力,Google在這個方向做了很多有成效的工作。而引入程式代碼的方法則在預訓練過程中将代碼和文本一起參與預訓練,以此進一步增強LLM的推理能力,這是OpenAI實踐出的思路。這兩種方法的大方向是迥異的:前者是通過提供多樣性的訓練資料來直接增強LLM推理能力,而後者則是讓LLM在解決問題過程中更好地展示出推理能力的技術方法。雖然這兩種方法互補,但從長遠來看,治本的方法更為重要。

歸納一下大緻可以分為三條技術路線。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

一、直接在問題上追加輔助推理Prompt

在各個領域,基于Prompt的方法都被證明是一種有效的方法來增強LLM的推理能力。這種方法非常簡單,直接在問題上追加輔助推理Prompt即可。其中,Zero-shot CoT是一種被廣泛應用的方法,它通過在提問的問題上追加“Let’s think step by step”這句提示語來激發LLM本身具備的推理能力。

具體而言,分為兩個階段,第一階段在問題上追加提示語,LLM會輸出具體的推理過程;第二階段,拼接LLM輸出的具體推理過程,并再追加Prompt,此時LLM會給出答案。這種簡單的操作可以大幅增加LLM在各項推理任務中的效果。目前,關于LLM為什麼會具備推理能力的原因尚無定論,但可能是因為預訓練資料中存在大量以“Let’s think step by step”開頭的資料,LLM在預訓練的時候記住了這些模式。

是以,當我們輸入這個提示語的時候,LLM會模仿這些例子進行步驟推理并給出答案。當然,Zero-shot CoT的效果比标準CoT差一些,因為靠LLM回憶示例,精準性估計不會太高。但無論是Zero-shot CoT還是标準CoT,都說明了一個道理,就是LLM本身是具備推理能力的,隻是我們沒有辦法把它的這種能力激發出來而已。

二、基于示例的思維鍊(few-shot CoT,Chain of Thought)Prompting

目前,基于Prompt的方法是LLM推理研究的主要方向,很多工作都是在這個思路上展開的。在這個方向上,有幾個代表性的工作取得了顯著的效果,這些工作基本能代表CoT技術發展的方向。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

CoT的主體思想非常簡單明了,為了讓LLM模型學會推理,需要給出一些人工寫好的推理示例,示例中詳細說明得到最終答案前的具體推理步驟,而這些人工寫的詳細推理過程就是思維鍊Prompting。CoT的目的是讓LLM模型明白在推理過程中,步子不要邁得太大,需要化大問題為小問題,步步為營,積小勝為大勝。最早明确提出CoT這個概念的文章是“Chain of thought prompting elicits reasoning in large language models”,該論文于2022年1月份釋出。盡管CoT的做法很簡單,但應用CoT後LLM模型的推理能力得到了巨大提升,GSM8K數學推理測試集準确率提高到了約60.1%。值得一提的是,這種給出詳細推理步驟和中間過程的思想,并非CoT最早提出的。更早一些的“scratchpad”技術就采用了類似的思路。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

CoT提出不久,随後在2022年3月份,一項名為“Self-Consistency”的改進技術迅速問世,将GSM8K測試集準确率提高到了74.4%。這項改進技術的思路也很簡單明了,首先利用CoT給出幾個寫了推理過程的示例,然後要求LLM對給定的問題進行推理,但不同于CoT的是,“Self-Consistency”要求LLM輸出多個不同的推理過程和答案,并采用投票的方式選出最佳答案。這種思路教導LLM學會這樣一個道理:一個數學題的正确解法可以有很多種,每個不同的推導過程都指向最終的答案。簡單的方法往往蘊含着深刻的哲學含義。之後,“On the Advance of Making Language Models Better Reasoners”這個工作在“Self-Consistency”的基礎上,進一步內建了“從一個Prompt問題拓展到多個Prompt問題、檢查推理中間步驟的正确性以及對多個輸出的回答權重投票”這三個改進點,将GSM8K測試集準确率提高到了約83%。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

三、分治算法

核心思想是将一個複雜的推理問題分解成若幹個容易解決的子問題,解決這些子問題,再從子問題的答案推導出複雜問題的答案。這種思路可能是揭示問題本質、最終解決LLM複雜推理問題的正宗道路。以“Least-to-most prompting”技術為例,它分為兩個階段。在第一個階段,我們從原始問題中得到最終要問的問題,然後構造一個Prompt模闆,填充“如果要解決Final Q問題,那麼我需要先解決”的内容,讓LLM模型回答,得到前置子問題Sub Q。在第二個階段,讓LLM先回答子問題Sub Q,并得到對應的答案,然後将原始問題與子問題Sub Q及對應答案拼接在一起,再去問LLM最終問題Final Q,此時LLM會給出最終的答案。這種思路展現了拆解子問題,并從子問題的答案逐漸找出最終答案的思路,類似于分治算法的思想。

代碼預訓練增強LLM推理能力

上面提到了目前利用Prompt激發LLM模型推理能力的三種主流方法,同時還觀察到了一個有趣而費解的現象:除了文本之外,将程式代碼與文本一起參與模型的預訓練可以顯著提高LLM模型的推理能力。

在論文“On the Advance of Making Language Models Better Reasoners”中,通過實驗資料展示了一個有趣的現象:将程式代碼與文本一起參與模型預訓練,可以顯著提升LLM模型的推理能力。實驗結果表明,僅僅是從純文字預訓練模型切換到文本和Code混合預訓練模型,就可以在幾乎所有測試資料集合上,将模型推理能力提升20到50個百分點。

此外研究還發現,GPT 3這種純文字預訓練模型,其實具備相當程度的推理能力,隻是需要采用合适的方法來激發。而加入instruct fine-tuning會損害LLM模型的推理能力,但會在一定程度上提升自然語言了解能力。至于為何預訓練模型可以從代碼的預訓練中獲得額外的推理能力,目前尚未得到确切的原因,但可能是因為代碼訓練本質上是<文本,Code>兩種資料的多模态對齊工作,其中包含相當比例的數學或邏輯推理類的資料,對于解決下遊數學推理問題是有幫助的。這些結論啟發了後續進一步的思考和探索。

關于LLM推理能力的思考

最近一年來,關于激發LLM的推理能力的技術進展很快,但總體感覺距離接觸到真正的問題本質還有一段距離,需要更深入的思考和探索。對于複雜的推理問題,将其拆解成若幹簡單的子問題,因為子問題對于LLM來說回答正确的機率更高。受到“Least-to-most prompting”技術的啟發,LLM推理本質上可能是不斷和LLM進行互動的圖上推理問題,或者是不斷和LLM進行互動的程式流程圖執行問題。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

假設我們能夠将複雜問題拆解成由子問題或子步驟構成的圖結構,其中節點代表子問題或子步驟,邊表示子問題之間的依賴關系。我們可以根據依賴關系,引導LLM一步一步回答必須首先回答的子問題,直到推導出最終答案。圖中可能存在循環結構,即需要反複執行某些子步驟。如果我們能夠得到上述子問題拆解圖,那麼就能夠有效地引導LLM進行推理。

突破邊界:高性能計算引領LLM駛向通用人工智能AGI的創新紀元

假設我們能夠将複雜問題拆解成子問題或子步驟,并生成一個類似程式流程圖的結構,其中有循環結構和條件分支。我們可以在執行每個子步驟時,與LLM進行互動,得到子步驟的答案,并按照流程不斷執行,直到輸出最終答案。這種多模态預訓練模型可以增強LLM模型從文本建構出隐含的流程圖并按照流程圖執行的能力,進而增強其推理能力。

然而,如何根據文本描述得到圖結構或流程圖結構仍然是一個難點。一種可能的思路是通過增強文本和更高品質的代碼預訓練來隐式學習内部隐含結構。目前的CoT技術是試圖根據最後一個圖節點,倒推出圖結構或程式流程圖,但目前的方法限制了它的倒推深度,隻能推導出簡單的圖結構,這是其能力受限的原因。

LLM研究趨勢及值得研究的重點方向

這裡列出一些比較重要的LLM研究領域或值得深入探索的研究方向。

一、探索LLM模型的規模天花闆

雖然LLM模型的規模看似沒有技術含量,但其實這個事情異常重要。自Bert問世以來,到GPT 3和ChatGPT給人印象深刻的關鍵技術突破,核心貢獻都來自于LLM模型規模的增長,而非某項具體技術。這說明對于知識密集型的任務,随着模型規模越大,各種任務的效果會越來越好。而對于很多推理類型的有難度的任務,加上CoT Prompting後,其效果也呈現出遵循Scaling law的趨向。是以,很自然的一個問題就是:對于這些任務,LLM的規模效應,能将這些任務解決到何種程度?

考慮到LLM具備的神奇的“湧現能力”,如果繼續增加模型規模,将會解鎖哪些意想不到的新能力呢?這也是很有意思的問題。是以,需要不斷增大模型規模,看看模型規模對解決各類任務的天花闆在哪裡。當然,這種事情也就隻能說說,對99.99%的從業者來說,是沒有機會和能力做這個事情的。

要做這個事情,對研究機構的财力及投入意願、工程能力、技術熱情,都有極高的要求,缺一不可。能做這事情的機構,粗估下來,國外不超過5家,國内不超過3家。這是因為做超大規模的LLM模型對技術團隊的工程實作能力要求非常高,需要有非常強的硬體和軟體支援。是以,這是具有技術含量的工作。

盡管如此,繼續推大LLM模型規模的研究意義仍然非常重要。除探究LLM的規模效應對各種任務的效果影響到何種程度,還可以探索LLM模型規模增大後會解鎖哪些新的能力。這些問題的答案将有助于更好地了解LLM模型的性質和行為,為未來的研究和應用提供重要的參考。是以,對于有能力的研究機構來說,繼續推大LLM模型規模的研究是非常有價值的。

二、增強LLM的複雜推理能力

正如之前對LLM推理能力的叙述,盡管LLM在最近一年的推理能力方面取得了很大進展,但是仍然存在一些限制。例如,許多研究表明,LLM仍然無法很好地解決複雜推理問題,特别是當涉及到長字元串或數字時,LLM的推理能力會顯著下降。是以,加強LLM的複雜推理能力應該成為未來研究的重點之一。

在前文中,我們提到了一種直接增強LLM推理能力的方法,即将代碼加入到預訓練中。雖然這種方法已經得到了一些實踐的總結,但是需要深入探索背後的原理,并引入更多類型的新型資料來增強LLM的推理能力。這可能是更本質的提升LLM推理能力的方向,而不僅僅局限于代碼的加入。

三、LLM納入NLP之外更多其它研究領域

目前的ChatGPT是一個在自然語言處理(NLP)和程式設計任務方面表現出色的模型。作為通向人工通用智能(AGI)的前沿研究之一,将圖像、視訊、音頻等多媒體資料與語言模型相結合,并進一步将AI應用到科學研究、機器人控制等其他領域,是實作更大範圍應用和差異化發展的重要途徑。雖然這個研究方向仍處于初級階段,但卻具有極高的研究價值。

四、更易用的人和LLM的互動接口

正如前面所讨論的那樣,ChatGPT的主要技術貢獻在于其在特定領域,如NLP和程式設計任務方面的出色表現。然而,我們也意識到目前的技術仍有不完善之處,存在許多指令和指令LLM無法了解的情況。是以,一個非常有前景和嶄新的技術方向是尋找更好的方法,使得LLM能夠了解人類使用自己習慣的指令表達方式。這個方向的探索将為我們創造新的機會,并為改善LLM的技術水準提供更多的潛在解決方案。

五、建設高難度的綜合任務評測資料集

一個優秀的評測資料集是推動技術不斷進步的基礎。随着LLM模型不斷擴大,任務效果迅速提升,許多經典測試集很快就變得太容易,無法有效評估目前技術的缺陷和盲點。是以,建構具有高難度的測試資料集對于推動LLM技術的進步至關重要。目前,業界已經出現了一些新的測試集,例如BIGBench和OPT-IML等。這些測試集具有一定的難度,綜合了多種任務類型的要求,并能更好地反映目前LLM技術的挑戰。

受到ChatGPT的啟發,除了測試集的難度和多樣性之外,還應該考慮展現真實使用者需求的因素。也就是說,這些任務應該是由真實使用者提出的,隻有這樣建構出來的LLM模型才能真正解決使用者的實際需求。此外,LLM将迅速擴充其能力到NLP以外的領域,是以需要提前考慮如何将更多其他領域的評測資料融入其中。這将有助于進一步提高LLM模型的廣泛适應性。

六、高品質資料工程

資料是預訓練模型的核心,預訓練過程是從資料中擷取知識的過程。是以,需要更加注重挖掘、收集和清洗高品質資料。資料品質和數量是兩個關鍵方面。根據T5的實驗比較,可以得出結論:在品質和數量之間,品質應優先考慮。是以,正确的做法是在確定資料品質的前提下增加資料規模。資料品質方面,需要考慮資料的資訊含量和多樣性等多個标準。例如,維基百科是資訊含量極高的高品質資料。增加資料類型的多樣性對于激發LLM的各種新能力至關重要。例如,加入問答網站的資料對于提升LLM的問答能力具有直接幫助。多樣化的資料賦予LLM更好解決各種類型任務的能力,是以多樣性是資料品質中最關鍵的标準。

關于資料數量,原則上可以納入預訓練模型的是網際網路上公開釋出的資料。然而,資料的數量也存在一定的極限。一項研究對資料量的擴充性進行了估算,并得出結論:到2026年左右,高品質的NLP資料将耗盡,低品質的NLP資料将在2030年至2050年之間耗盡,低品質圖像資料将在2030年至2060年之間耗盡。這說明要麼需要開發新類型的資料來源,要麼必須提高LLM模型對資料的利用效率。否則,目前依賴資料驅動的模型優化方式将停止進步或收益減少。是以需要尋求新的解決方案,以應對資料的極限問題。

七、超大LLM模型Transformer的稀疏化

LLM中存在一些最大規模模型,如GPT 3、PaLM、GLaM等,采用了稀疏結構。使用稀疏化模型的主要優點是可以極大地減少訓練和推理時間。相比于密集模型,稀疏模型在相同算力預算下,訓練速度可以提升4倍到7倍。這是因為盡管稀疏模型擁有巨大的參數量,但對于每個訓練執行個體,稀疏模型通過路由機制隻使用其中一小部分參數參與訓練和推理,是以速度更快。

未來的超大規模LLM模型很可能會趨向于稀疏模型,主要有兩個原因。首先,研究顯示标準的密集模型在訓練和推理過程中本身也呈現稀疏的激活,即隻有部分參數會被激活,大部分參數沒有參與訓練和推理。基于這一點,遷移到稀疏模型是合理的選擇。其次,LLM模型的規模将繼續增大,而高昂的訓練成本是其擴大模型規模的主要障礙。使用稀疏模型可以顯著降低超大模型的訓練成本,是以随着模型規模的增加,稀疏模型的好處将更加明顯。鑒于這些原因,未來更大規模的LLM模型很可能采用稀疏模型方案。

然而,目前其他大規模模型尚未采用稀疏模型的原因是稀疏模型存在訓練不穩定和容易過拟合等問題,很難訓練得好。是以,解決稀疏模型面臨的問題,設計出更易于訓練的稀疏模型,是未來研究的重要方向。

複刻ChatGPT時要注意些什麼?

要複刻類似ChatGPT這種令人驚豔的LLM模型,我們需要在技術選型時權衡以下問題。

一、關于預訓練模式,可以選擇GPT這種自回歸語言模型、Bert這種雙向語言模型,或者T5這種混合模式。基于本文的分析,選用GPT自回歸語言模型可能是更好的選擇。然而,目前似乎許多國内LLM項目選擇了Bert雙向語言模型或T5混合語言模型,這可能導緻方向有所偏移。

二、強大的推理能力是使用者認可LLM的重要基礎,為了實作這一目标,根據目前經驗,預訓練階段最好引入大量代碼和文本,同時進行LLM訓練。前文中也有相應的分析對此進行了解釋。

三、如果希望模型參數規模不過于龐大但依然具備良好效果,有兩個選項。一是加強高層的特征抽取和表示能力,通過更深層次的網絡結構或者更複雜的特征提取方法來實作。二是采用文字檢索模型與LLM相結合的方式,通過文字檢索模型提供初步的篩選和比對,再由LLM進行進一步的生成和推理,這樣可以極大地減小LLM模型的參數規模。

四、由于超級大模型的訓練成本過高,很少有機構有能力去實施。是以,降低LLM的訓練成本是非常重要的。其中,一種有效的技術選擇是将LLM的特征抽取器進行Sparse化,這可以有效降低模型的訓練和推理成本。是以,随着模型規模的增大,LLM模型的Sparse化是一個應該考慮的選項。

五、目前最接近理想LLM的技術方案是ChatGPT,理想中的LLM應該是一個幾乎無所不能的通用大模型,可以支援各種任務類型。為了實作這一目标,可以通過增加LLM的預訓練資料的多樣性來支援更多的任務類型。資料的多樣性越好,LLM能夠支援的任務類型就越豐富。是以,應該重視通過增加資料多樣性來增強LLM的能力。

六、易用的人機操作接口也是非常重要。LLM需要能夠了解人類用自己習慣的方式來描述任務的真實含義。同時,也需要根據最終使用者的需求收集任務表述方式,而不是依靠研發人員的臆想或猜測。ChatGPT在這方面給了我很大的啟發,是以,是否使用增強學習并不重要,其他替代技術也能夠實作類似的效果。

要複刻類似ChatGPT這種令人驚豔的LLM模型,需要在技術選型上權衡預訓練模式、推理能力、模型規模、訓練成本、資料多樣性和人機操作接口等因素,并選擇最合适的方法來實作目标。

LLM訓練所需因素

當訓練大型語言模型時會面臨多個挑戰,可以歸納為以下六個方面:硬體需求、健康檢查、編排技術、資料處理、模型規模擴充和成本管理。每個方面都對模型訓練的效果和效率産生重要影響。

在訓練大型語言模型時,我們會面臨多個挑戰。首先是硬體方面。使用最新的硬體可以提供更好的性能,而沒有充分利用最新硬體的優勢會導緻訓練時間延長,無法達到最佳結果。

藍海大腦高性能LLM大模型訓練平台利用工作流體作為中間熱量傳輸的媒介,将熱量由熱區傳遞到遠處再進行冷卻。支援多種硬體加速器,包括CPU、GPU、FPGA和AI等,能夠滿足大規模資料處理和複雜計算任務的需求。采用分布式計算架構,高效地處理大規模資料和複雜計算任務,為深度學習、高性能計算、大模型訓練、大型語言模型(LLM)算法的研究和開發提供強大的算力支援。具有高度的靈活性和可擴充性,能夠根據不同的應用場景和需求進行定制化配置。可以快速部署和管理各種計算任務,提高了計算資源的使用率和效率。

另一個挑戰是健康檢查,確定硬體正常運作,減少幹擾。此外還需要考慮編排,以確定團隊中的工作負載不會互相幹擾,同時保持網絡和安全配置良好。處理大規模資料集也是一項挑戰,需要高效的存儲、處理和加載方法。擴充基礎設施和設計算法以克服限制性問題也是一項重要任務。這些模型通常不适用于單個GPU,是以需要考慮如何将模型拆分到多個GPU上。

最後,成本管理是不可忽視的因素。訓練大型模型的成本可能很高,應該充分利用機器學習團隊的時間,讓其專注于創造新的模型,而不是花費過多時間在基礎架構上。

繼續閱讀