LLM大語言模型-ChatGPT、LLaMA、ChatGLM、文心一言、通義千問

NLP的小Y發表於2024-07-25

一、LLM與PLM主要區別:

1. LLM表現出PLM所沒有的Emergent Abilities(湧現能力),這些能力是LLM在複雜任務上表現驚人的關鍵,使得得人工智慧演算法前所未有的強大,但這些能力是如何獲得的還不具有理論支援;
2. LLM將徹底改變人類開發和使用人工智慧演算法的方式。與小型PLM不同,訪問LLM的主要方法是透過介面API;
3. LLM的發展不再明確區分研究和工程。訓練LLM需要在大規模資料處理和分散式並行訓練方面具有豐富的實踐經驗。

“湧現能力”(Emergent Ability)指的是在小型模型中並不存在,但在大型模型中“突然出現”的能力,其中包括常識推理、問答、翻譯、摘要等。

二、大模型應用與幻覺問題

  這些大模型都廣泛應用於自然語言處理領域,包括但不限於對話系統、文字創作、知識問答、邏輯推理、機器翻譯等。由於技術特點和效能表現的不同,它們在具體應用場景中的表現也會有所差異。例如,ChatGPT和Claude在對話系統中的應用較為廣泛,而LLaMA和PaLM 2則可能更適用於需要多語言支援和複雜推理能力的場景。

  幻覺問題是大型語言模型(LLM)面臨的一個關鍵挑戰,它指的是模型生成看似合理但事實上錯誤或無意義資訊的現象。這一問題在LLM廣泛應用的背景下引起了安全和倫理方面的擔憂,因為這些錯誤資訊可能會誤導使用者,導致不可預測的後果。

三、LLM架構分類

大模型均是基於Transformer架構進行開發的,LLM架構可以分為以下三種型別:
●Encoder-Decoder: 輸入雙向注意力,輸出單向注意力。目前,只有少數LLM是基於編碼器-解碼器架構構建的。(T5、 BART)
●Causal Decoder:因果解碼器架構採用單向注意力掩碼(從左到右),以確保每個輸入token只能關注過去的token和它本身。GPT系列模型均是基於此架構。(GPT、 LLaMA)
●Prefix Decoder: 輸入雙向注意力,輸出單向注意力。字首解碼器架構(又稱非因果解碼器)修改了因果解碼器的遮蔽機制,使其能夠對字首tokens進行雙向關注,並僅對生成的tokens進行單向關注。(GLM)

不同架構的優缺點:
●Encoder-Decoder:對輸入問題的理解與編碼能力更強,在偏理解的NLP任務上效果好,但長文字生成任務上效果較差,訓練效率低。
●Causal Decoder:自迴歸語言模型,預訓練和下游應用是完全一致的, 文字生成任務效果更好。訓練效率高,zero-shot能力強, 具備Emergent Abilities.
●Prefix Decoder: 上述兩種架構的折中。訓練效率低。

四、GPT系列、ChatGPT(Open AI)

GPT-1

模型架構是12層Transformer Decoder結構,分為預訓練階段與微調階段。
1.預訓練階段:將語言建模任務作為訓練目標,就是根據已知的詞預測未知的詞。在這裡設定一定的視窗大小,即根據有限的詞預測下一個詞。
2.微調階段:給定一個有監督任務的資料集,給定輸入序列X1....Xm,經過Decoder作為下游任務表示的編碼器,取Decoder的輸出h作為嵌入表示, 輸入到線性層或softmax, 預測標籤y。

GPT-2

  模型實際上只是在GPT-1上做了一點簡單的修改。GPT-2第一階段同樣也是預訓練一個語言模型,但是48層Decoder且資料集更大;而第二階段,它採用的是zero-shot,即不再使用有標籤的資料對模型進行fine-tuning,而是直接給出一個問題的描述,然後模型直接進行inference。但是,由於一個通用的模型會在許多工上進行訓練,那麼對於同樣的輸入,可能會對應到多個輸出,模型建模的機率是P(output | input),而在GPT-2中提出了 任務建模,即P(output | input,task)。

  GPT-1需要預訓練加微調,GPT-2中zero-shot出現,不用微調模型,提示模型完成什麼任務,統一的生成式大模型。而且避免死迴圈,希望模型生成多樣性,增加取樣策略。溫度T越低越穩定,溫度越高多樣性越多。

●GPT-3

  GPT-3於2020年提出,將模型引數擴充套件到了更大規模,採用96層Decoder, 達到了1750億,它以小樣本或零樣本的方式使用LLM,因為其具有極強的ICL(In-Context Learning(上下文學習能力), 可以指導LLM理解以自然語言文字形式給出的任務。
  GPT-3可以被視為從PLM到LLM進化過程中的一個重要里程碑。它透過實證證明,將神經網路擴充套件到大的規模可以大幅增加模型的能力。

●GPT-3.5/instruct GPT

  增加了程式碼資料作為訓練集的模型。原始的GPT-3模型(在純文字上進行預訓練)的一個主要限制在於缺乏複雜任務的推理能力,例如完成程式碼和解決數學問題。為了增強這種能力,OpenAI提出了在大量GitHub程式碼上微調GPT模型Codex, GPT-3.5是在其基礎上開發的。

  GPT-3與GPT-1和GPT-2相比,用了更多的資料和更大的神經網路,可以根據簡單的提示自動生成文字,智慧回答各種問題,但是不太擅長遵循使用者的說明,偶爾會產生無用或者錯誤的輸出,原因在於它只是試圖根據數億訓練句子中的資訊,重複生成下一個單詞,卻不知道該如何針對使用者問題,生成良好答案。 

  為此Open AI開發一個三步方案,來解決這個問題,這就是GPT-3.5或者叫instruct GPT,它其實是很多個有細微差別的模型的總稱。1.首先讓標註人員自己寫問題和答案,同時人工回答外部使用者提出的問題,用來進行有監督微調SFT,共同訓練原始的GPT-3使其產生更好的答案。然而人工撰寫高質量的答案費時且昂貴,於是Open AI想出了更好的解決辦法。2.讓GPT-3為一個問題生成多個答案,由人類按照有用程度進行排序,訓練了一個新的獎勵模型,為每個問題和答案組合提供一個評分,標明答案的好壞,注意人類不參與創造答案只參與排名。3.最後又收集外部使用者提問,SFT模型生成答案,使用獎勵模型評分,進一步微調訓練SFT模型,反覆迭代。這個過程就被稱為基於人類反饋的強化學習(RLHF)。 

●ChatGPT
  ChatGPT是一種基於GPT-3.5或GPT-4模型的對話語言模型,用於模擬人類對話和生成對話回覆。到目前為止,它是Al歷史上最強大的聊天機器人。

  ChatGPT使用了和instruct GPT相同的方法,用人類反饋強化學習(RLHF)來訓練模型,只不過訓練資料是對話而不是問答對了。1.監督微調階段,人類AI訓練員提供對話資料,與instruct GPT的資料集混合,並轉換為對話格式,訓練模型。2.然後隨機選擇對話,並取樣生成備選答案,讓AI標註人員對它們進行排名,生成獎勵模型。3.使用強化學習演算法微調模型,多次迭代。其效果和instruct GPT更進一步,表現優異。
●GPT-4
  GPT-4於2023年3月釋出,將文字輸入擴充套件到多模態訊號,在解決複雜能力上具有更強的能力。並且引入了一種red teaming的機制來減少有害生成或生成有毒內容的可能性。

  GPT-4透過文字和影像資料間的對比學習,建立二者在特徵空間中的對映關係,此外支援長文件輸入(ChatGPT是3000,GPT-4是25000,更多資料的訓練,以及RLHF(基於人類反饋強化學習)模型的加持,使得GPT-4的準確率比GPT3.5又有了很大提升。

五、PaLM(Google)

  2022年4月第一次被提出,該模型使用新的機器學習系統Pathways進行訓練的,因此稱新模型為Pathways Language Model(PaLM)。Pathways是Google新一 代機器學習平臺,能夠跨越數千或數百萬個任務進行泛化,理解不同型別的資料,實現多模態模型。
  PaLM使用了標準Transformer架構的Decoder,但做了一些修改。 對於MLP的中間啟用函式使用SwiGLU啟用函式。在每個Transformer塊中使用"並行"的形式,而不是標準的"序列化"形,並行的方式將會為訓練帶來大約15%的提速式。標準的Transformer會使用k個注意力頭,query,key,value均被投影為k個,但PaLM只將query投影為k個,每個頭共享key,value(GQA,分組查詢注意力)。 使用RoPE嵌入層(旋轉位置編碼),RoPE嵌入層是一種用於位置編碼的改進方法,它允許模型動態地學習位置資訊,有助於提高自然語言處理任務的效能。共享輸入層和輸出層引數。沒有biaes。

六、LLaMA(Meta Al)

  LLaMA (Large Language Model Meta Al)是Meta Al釋出的一種大型語言模型,和GPT一樣都是由Transformer Decoder組成,在生成文字、進行對話、總結書面材料等複雜的任務方面表現出了巨大的潛力。LLaMA的效能非常優異:具有130億引數的LLaMA模型「在大多數基準上」可以勝過GPT-3 (引數量達1750億)。LLaMA優勢在於其只使用公開可用的資料,訓練的token遠高於其他大引數模型,在更多的token.上訓練的較小的模型,更容易重新訓練並針對特定的下游任務使用情況進行調整。
  與普通的Transformer Decoder不同之處在於,使用SwiGLU啟用函式。為了提高訓練穩定性, LLaMA對每個Transformer子層的輸入進行歸一化,使用RMSNorm歸一化函式。使用RoPE嵌入層(旋轉位置編碼)。
  LLaMA動機:開放和高效(都採用公開資料集)。認為相同的計算預算,增加訓練資料比擴大模型引數有效。

  LLaMA1不能商用,LLaMA1取樣開源資料,common crawl2017-2020資料,去重去除非英文資料,用線性模型進行質量分類過濾,書和維基百科用了2個epoch,其他1個。模型架構用transformer decoder,做了4點修改,和GPT-3一樣將normaliztion從每個字層的輸出位置移動到了輸入位置,將layer norm改為RMSNorm(去掉平移和偏差數)。取樣旋轉位置編碼,採用SwiGLU啟用函式(在0值處更加光滑,遠離0值和ReLU很相似),SwiGLU可以提升模型精度但計算指數函式,計算代價較高。

  LLaMA2可以商用,加大資料量,有三個版本,首先在處理好的無標註文字資料上進行自迴歸預訓練,得到LLaMA2,然後進行監督微調訓練,透過人類偏好資料訓練兩個模型,一個是安全獎勵模型,一個是有用獎勵模型,然後再利用強化學習對模型訓練,最終得到LLaMA2-Chat。在最大的模型上引用GQA(分組查詢注意力,對多頭自主意力的最佳化,可以減少模型引數量,將query分組每一組對應一個KV)。LLaMA2使用人類反饋強化學習(RLHF)進行迭代最佳化,先訓練一個獎勵模型,然後在獎勵模型的引導下,透過拒絕抽樣和近端策略最佳化(PPO)的方法迭代模型的生成策略。LLaMA2的效能接近於GPT-3.5。拒絕取樣即模型生成多個回覆後,選擇最佳的回覆作為模型的輸出,如果生成的回覆不符合預期,就會被拒絕,直到找到最佳回覆,從而幫助提高模型生成質量 使其更符合人類期望。

  LLaMA3開源模型,字典更大,提高推理效率,序列增大,所有模型都用GQA。訓練資料全部是公開資料,程式碼資料(可以提高推理能力)比LLaMA2多了4倍,5%高質量非英語資料,涵蓋30多種語言,對資料進行清洗,微調階段還人工標註了1000萬樣本,微調後的模型叫LLaMA3-instruct,用到了SFT,拒絕取樣,PPO,DPO。

七、GLM、ChatGLM(智譜 AI)
GLM

  目前預訓練語言模型主要有三種型別:自迴歸模型(GPT等) 、自編碼模型(BERT等) 和編碼器-解碼器模型(T5) 。這三類語言模型各有優缺點,但沒有一種框架能夠在所有的自然語言處理任務中都表現出色。
  清華大學提出了一種基於自迴歸空白填充的通用語言模型(GLM), 來解決這個挑戰。GLM透過新增二維位置編碼(第一個維度表示片段在原始文字中的相對位置,第二個維度表示片段內部的相對位置)和允許任意順序預測空白區域(透過改變填空的長度和數量來適配做NLU任務還是做生成任務),改進了空白填充預訓練,採用DeepNorm梯度更加穩定,使用旋轉位置編碼更有效且更容易實現雙向相對注意力。在自然語言理解任務上超越了BERT和T5。

  原始BERT採用post-LN(歸一化在子層後面),但post-LN結構容易發散,近年來模型普遍採用pre-LN(歸一化在子層前面)。但在數百億/多模態混合精度訓練中,pre-LN也不穩定,pre-LN的變體Sandwich-LN(子層前後都有歸一化,像一個三明治)緩解這一現象。GLM-130B實驗發現DeepNorm(調整殘差,更改初始化)更加穩定。混合精度訓練,啟用函式重演(時間換空間,前向計算時不儲存啟用函式,並在反向傳播過程中重計算),資料並行(zero最佳化器,分散式隨機梯度下降,模型並行(張量並行和流水線並行)。GLM考慮模型穩定性attention層softmax in32避免上下溢位,調小embedding層梯度,緩解前期梯度爆炸,使用DeepNorm而非preLN穩定訓練。

GLM模型的基礎架構是單個Transformer,並做了幾點修改:
1.重新排列了層歸一化和殘差連線的順序;
2.使用了單層線性層來進行輸出詞的預測;
3.用GeLUs替換了ReLU啟用函式。

ChatGLM

  ChatGLM是清華技術成果轉化的公司智譜AI研發的支援中英雙語的對話機器人。ChatGLM是一個基於千億基座模型GLM-130B開發的對話機器人,具有問答、多輪對話和程式碼生成功能。ChatGLM有兩個版本:千億引數的ChatGLM (內測版)和62億引數的ChatGLM-6B (開源版)。
  ChatGLM是一個開源的,支援中英雙語的對話語言模型,基於GLM架構,使用了和ChatGPT相似的技術,針對中文問答和對話進行了最佳化。經過約1T識別符號的中英雙語訓練,輔以監督微調,反饋自助,人類反饋強化學習等技術的加持,ChatGLM已經能生成相當符合人類偏好的回答。

八、ERNIE 文心一言(百度)

  文心一言,語言理解與生成 ERNIE,BERT是預測一個token,問題是學到的是區域性訊號,缺乏對句子全域性建模,很難理解句子中實體的語義。ERNIE 1.0 利用知識增強,對句子中實體或短語完整預測,建模詞,短語粒度知識的語義,建模實體知識。ERNIE 2.0希望模型除了短語知識之外,也能學到預料中更多的知識,比如詞法句法語義的資訊。首先有個模型,讓模型在資料和知識中以自監督方式,構建一系列任務,透過持續加入任務的方式進行持續學習,再用到各種下游任務中更新模型。ERNIE 3.0 從大規模知識圖譜和海量無結構資料中學習,構建通用語義表示,突破多源異構資料難以統一表示與學習的瓶頸。融合自編碼和自迴歸結構即可以語言理解又可以語言生成。利用飛槳4D混合並行技術,高效支援超大規模模型訓練。

  文心一言在LDM(Latent diffusion Model)模型上做了兩點改變,一是在有條件圖片生成的時候把條件輸入改變了一下,百度官方稱呼是知識增強(文字知識和視覺知識)擴散模型(論文中說一個理想的文字生成圖片的模型應該能把注意力集中到使用者輸入提示語中的所有關鍵詞,為了區分虛詞和關鍵詞,採用了一個工具包來提取使用者輸入的提示語中的詞彙知識,就是把使用者輸入的詞彙做了一個區分,提高了一些關鍵詞權重。在視覺知識中也是加重了一些輸入的權重),希望提高擴散模型的細粒度語義感知,就是希望模型能更準確理解使用者輸入的文字。第二是在去噪階段使用了不同的去噪模型,文心大模型是給這些去噪的過程分類,然後針對不同的類用不同的去噪模型,百度起名為混合去噪專家網路(DDPM先給圖片一片片加噪音直到圖片完全變成一片雪花,之後再給模型一步步去噪音直到圖片還原,過去用一種模型給這個過程去噪就行了)。文心一言既沒有改變模型的結構,也沒有降低模型的迭代次數,更沒有降低模型的複雜度,訓練使用1.7億個圖文對。

九、通義千問(阿里) 

  通義千問,有多個版本,有的支援文字,有的支援影像以及音訊,有的推理程式碼生成等。Chat模式針對任務資料和獎勵模型,弱於GPT-4。預訓練過程資料去重和資料增強平衡稀疏資料,加入指令資料。BPE編碼,單個數字編碼。

  通義千問基於LLaMA結構調整:1.tied embeddibg改為untied embedding(原來輸入和輸出embedding實際共享一套的,節約memory空間,現在把它們拆開了 。2.位置編碼採用ROPE編碼(旋轉位置編碼)。 3.在其他層去除bias,在QKV的注意力機制層加入bias 。4.RMSNorm替代LN 。5.獎勵函式採用SwiGLU。SFT中準備不同對話風格的資料,過濾暴力和偏見色情資料,採用chatml-style格式 (格式可能對模型表現有很大影響)。RLHF中reward模型,一問兩答資料,人工反饋資料考慮提問的複雜度和多樣性。

十、SwiGLU啟用函式
SwiGLU啟用函式的計算可以表示為以下幾個步驟:
1.將輸入向量分為兩個部分。
2.對每個部分應用不同的線性變換,通常是透過矩陣乘法和偏置項來完成。
3.使用門控機制來選擇兩個變換的輸出中的一個,通常是透過Sigmoid函式將輸入的某些部分對映到0到1之間的範圍,並將其用作兩個輸出之間的權重。
4.最後,將被選擇的變換的輸出相加,並將結果傳遞給下一層。
  SwiGLU啟用函式的引入旨在改進神經網路在捕捉輸入之間複雜關係方面的效能。這種函式通常用於Transformer的不同變體中,以提高自然語言處理和語音處理任務的效能。

十一、模型微調方法

●SFT有監督微調,用少量標籤資料,改引數

prompt提示詞微調,在輸入序列矩陣裡嵌入額外的token(這些token單詞短語甚至背景介紹,可以在詞彙表中找到,在輸入的文字序列加很多提示,告訴模型應該朝著什麼方向回答,按照什麼步驟回答,甚至一些背景知識,背景術語都可以放到輸入序列裡面)可改可不改引數,一般不改 ,重點是尋找適合的prompt和模式,並且把這個固定下來,就是在這一類問題上加上這些提示詞,或者加到某一個位置,就會讓模型回答的很好,尋找出這種模式或者prompt出來,然後不斷用工程化方法固定下來,再問這些問題時就可以用原來的prompt或者模式,讓模型輸出答案。

prefix字首微調,嵌入自有的向量/虛token,不但把虛token拿過來,還把虛token對應的自有的向量一併拿過來 一起嵌入進去,自有的向量來自於我自己的訓練,或者自己從其他地方得到的,反正是和這個模型沒有關係的,不改原有引數,會改虛token矩陣中的引數。

LORA低秩矩陣適應微調,秩指矩陣中非零行的數量,在各層疊加低秩矩陣,參與計算,不改變原有引數,改低秩矩陣中的引數。

●AT adapter tuning介面卡微調,在各層前增加一個小型的神經網路/矩陣/介面卡,不改原有引數,改介面卡裡的引數。

RLHF基於人類反饋強化學習,建立獎勵模型,對模型的輸出給予獎勵和懲罰,模型的損失函式目標變為最大化獎勵,改引數。

十二、平行計算

  平行計算或分散式計算,計算過程相互之間不依賴,就可以把不同的計算單元計算過程放到多臺計算機上多臺顯示卡上。

資料並行

  資料並行,一張卡訓練比較慢,特別是在18年以前,模型沒有特別大,一個資料集有數萬資料要訓練好幾天,可以用多張卡,把資料分成多份,多張卡同時訓練,就比較快。每張卡複製一樣的模型,每張卡送不同的資料,進行一次反向傳播後獲得梯度,做一次all-reduce把每一張卡的梯度聚合在一起,取平均再分發回各張卡上,這樣保證我每次每張卡上更新的梯度是相同的。要求:單卡可以放下模型,多卡訓練記憶體冗餘。

模型並行

1.張量並行:矩陣相乘,這種所謂點積計算的過程是最前面這個矩陣的行乘後面矩陣的列,就形成了結果矩陣的一個值,和這個矩陣的其他行和其他列沒有關係。所以就可以把矩陣的兩個大矩陣的行和列拆開扔到不同的GPU上進行相乘,然後再把結果拼接成一個矩陣。

2.流水線並行:pipeline流水線並行,傳統資料並行疊加模型並行的這種混合並行模式效能欠佳,時間太長,需要引入流水線並行。將模型在空間上按stage進行切分,每個stage只需執行網路的一部分,大大節省記憶體開銷,同時縮小了通訊域,縮短通訊時間。流水線並行是將神經網路中的運算元切分成多個階段stage,再把階段對映到不同的裝置上,使得不同裝置去計算神經網路的不同部分。即把模型的不同層放到不同的卡上去,每一張卡計算不同層,計算完成後送到第二張卡上去…最終得到輸出。簡單的將模型切分到多裝置上並不會帶來效能的提升,因為模型的線性結構到同一時刻只有一臺裝置在工作,而其他裝置在等待,造成資源浪費。GPipe:為了提升效率,流水線並行進一步將小批次minibanch切分成更細粒度的微批次microbatch,在微批次中採用流水線式的執行,減少氣泡,提升效率。但microbatch還是有很多氣泡,因為正向計算後要等反向計算。1F1B:在流水線並行實現中對執行順序進行了調整,來達到更優的記憶體管理。在0號microbatch的正向執行完後立即執行反向,這樣做使得編號為0的microbatch的中間結果的記憶體得以更早的釋放,進而確保記憶體使用的峰值更低。

十三、Pytorch資料並行詳解:

DP(data parallel)資料並行,從硬碟讀取資料,透過一個gpu程序將資料分成多份,給每個gpu一份,每個gpu獨立進行網路前向傳播,計算出各自的梯度,然後其他gpu都將自己計算的梯度傳遞到gpu0上,進行平均,gpu0用全域性平均的梯度更新自己的網路引數,然後將更新後的引數廣播到其他gpu上。在分散式訓練時,最關鍵的任務是如何減少多卡之間的通訊量,以提高訓練效率,在分散式訓練任務裡,可能一半的訓練時間都被多卡之間的通訊佔用。DP中對gpu0來說gpu數量越多,總的通訊量越大,對其他gpu來說不論總的gpu數量是多少通訊量都一樣。DP存在的問題:1.單程序多執行緒,Python GIL只能利用一個CPU核。 2.gpu0負責收集梯度更新引數,同步引數,通訊計算壓力大。
DDP(Distributed Data Parallel),PyTorch中替代DP的分散式框架,ring-allreduce,同時傳送和接收,可以最大限度利用每個顯示卡的上下行頻寬。多程序,每個程序為自己的gpu準備資料,和其他gpu進行通訊,每個程序用各自的資料進行神經網路的前向和後向傳播,計算自己的梯度,透過ring-allreduce同步多個gpu計算出來的梯度,同步後各個gpu的梯度就相同了,用各自的最佳化器更新。每個程序傳送和接收的通訊量都是2引數量,和叢集大小無關。
DeepSpeed zero-1 零冗餘最佳化器,DDP中每個gpu都要儲存完全相同的最佳化器狀態,產生了冗餘。zero-1讓每個gpu只儲存一部分最佳化器狀態,整個系統只有一份完整的最佳化器狀態,消除冗餘。每個gpu彙總後只負責更新一部分模型引數,反向傳播完畢後,每個gpu都拿到自己最佳化器對應部分引數的梯度均值,然後將梯度轉化為FP32進行縮放更新最佳化器裡的一階二階動量,最後最佳化器更新FP32引數,接下來更新各自最佳化器對應的FP16的網路引數,然後再把各自更新後的FP16的網路引數廣播給其他gpu完成一次訓練。每個程序傳送和接收的通訊量都是2引數量,和叢集大小無關,與DDP相同。
DeepSpeed zero-2把FP16的梯度也按gpu進行劃分,因為每個gpu只負責更新一部分引數,那麼只要儲存這一部分引數的梯度值就可以了。每個程序傳送和接收的通訊量都是2引數量,和叢集大小無關,與DDP相同。
DeepSpeed zero-3引數也進行按gpu劃分,讓引數在系統裡也是零冗餘,前向傳播時遇到自己沒有的引數靠其他gpu來廣播,計算完之後立即丟棄這部分引數並不佔用視訊記憶體。後向傳播計算梯度時依然需要引數,再廣播一次,使用完後就立即丟棄節省視訊記憶體。每個程序傳送和接收的通訊量都是3引數量,和叢集大小無關,是DDP的1.5倍。
  一般實際中多采用zero-2,因為沒有增加通訊量但大大減少視訊記憶體佔用。

十四、BGE

  BGE在通用文字上預訓練,通用文字無監督微調,特定任務有監督微調。採用RetroMAE模型架構,非對稱的encoder-decoder結構,encoder部分是由bert組成(12層Transformer的encoder),而它的decoder部分僅有由一層transformer的decoder構成。整個預訓練的任務則為:在encoder階段,對被掩碼的部分進行重構,在decoder階段對整個句子進行重構。decoder結構,RetroMAE的作者在這一部分做了一些改進,1.attention去掉cross attention,直接將encoder中的sentence的編碼融入self-attention中。2.attention掩碼矩陣採用隨機的方式。除了第一行,每個token都可以看見第一個元素和隨機取樣的詞,對角線位置也是一定會被mask掉的,最後得到每個token的context vector。

十五、LangChain(LLM程式設計框架)

  LangChain一個大模型開發框架,可以使我們開發AI應用時更加方便快捷去和大模型進行對接。使用LangChain可以幫助我們從大模型的各種API細節中脫離出來,讓我們專注於業務功能的一個開發和實現。

十六、DataMotto(資料處理工具)

  DataMotto是一款基於人工智慧的資料處理工具,該工具能夠自動清洗和整理資料,提高資料準確性和可靠性。透過使用DataMotto,非專業人士也能輕鬆處理和分析資料。

十七、ALGC (Al-generated content)

  AIGC是指由人工智慧生成的內容,可以包括文章、新聞、廣告等各種型別的創作。它是一種自動化的創作方式,可以減少人工勞動,提高產出效率。

十八、RAG(檢索增強生成,Retrieval-augmented Generation)

  RAG技術結合了大語言模型的強大生成能力和檢索系統的精確性。允許模型在生成文字時,從外部知識庫中檢索相關資訊,將檢索得到的資訊和問題一同輸入到模型中,從而提高生成內容的準確性,相關性和時效性,不僅增強了模型的回答能力還減少了生成錯誤資訊的風險。

相關文章