<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于一個完整的 LLM 訓練流程

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 2023-06-29 10:08 ? 次閱讀

在這篇文章中,我們將盡可能詳細地梳理一個完整的 LLM 訓練流程。包括模型預訓練(Pretrain)、Tokenizer 訓練、指令微調(Instruction Tuning)等環節。

文末進群,作者答疑、不錯過直播

1.預訓練階段(Pretraining Stage)

工欲善其事,必先利其器。

當前,不少工作選擇在一個較強的基座模型上進行微調,且通常效果不錯(如:[alpaca]、[vicuna] 等)。

這種成功的前提在于:預訓練模型和下游任務的差距不大,預訓練模型中通常已經包含微調任務中所需要的知識。

但在實際情況中,我們通常會遇到一些問題,使得我們無法直接使用一些開源 backbone:

語言不匹配:大多數開源基座對中文的支持都不太友好,例如:[Llama]、[mpt]、[falcon] 等,這些模型在英文上效果都很優秀,但在中文上卻差強人意。

1069384a-15cc-11ee-962d-dac502259ad0.png

專業知識不足:當我們需要一個專業領域的 LLM 時,預訓練模型中的知識就尤為重要。由于大多數預訓練模型都是在通用訓練語料上進行學習,對于一些特殊領域(金融、法律等)中的概念和名詞無法具備很好的理解。我們通常需要在訓練語料中加入一些領域數據(如:[xuanyuan 2.0]),以幫助模型在指定領域內獲得更好的效果。

1070ee28-15cc-11ee-962d-dac502259ad0.png軒轅 2.0(金融對話模型)論文中所提及的訓練語料分布,其中 Financial Pretraining 為金融語料

基于上述原因,我們在進行 SFT 步驟之前,先來看看預訓練任務是如何做的。

1.1 Tokenizer Training

在進行預訓練之前,我們需要先選擇一個預訓練的模型基座。

一個較為普遍的問題是:大部分優秀的語言模型都沒有進行充分的中文預訓練,

因此,許多工作都嘗試將在英語上表現比較優秀的模型用中文語料進行二次預訓練,期望其能夠將英語上的優秀能力遷移到中文任務中來。

已經有許多優秀的倉庫做過這件事情,比如:[Chinese-LLaMA-Alpaca]。

但在進行正式的訓練之前,我們還有一步很重要的事情去做:詞表擴充。

通俗來講,tokenizer 的目的就是將一句話進行切詞,并將切好詞的列表喂給模型進行訓練。

例如:

輸入句子>>>你好世界
切詞結果>>>['你','好','世','界']

通常,tokenizer 有 2 種常用形式:WordPiece 和 BPE。

WordPiece

WordPiece 很好理解,就是將所有的「常用字」和「常用詞」都存到詞表中,

當需要切詞的時候就從詞表里面查找即可。

1077f48e-15cc-11ee-962d-dac502259ad0.pngbert-base-chinese tokenizer 可視化

上述圖片來自可視化工具 [tokenizer_viewer]。

如上圖所示,大名鼎鼎的 BERT 就使用的這種切詞法。

當我們輸入句子:你好世界,

BERT 就會依次查找詞表中對應的字,并將句子切成詞的組合。

1088c78c-15cc-11ee-962d-dac502259ad0.pngBERT 切詞測試圖

當遇到詞表中不存在的字詞時,tokenizer 會將其標記為特殊的字符 [UNK]:

10a619ea-15cc-11ee-962d-dac502259ad0.pngOut of Vocabulary(OOV)情況

Byte Pair Encoder(BPE)

WordPiece 的方式很有效,但當字詞數目過于龐大時這個方式就有點難以實現了。

對于一些多語言模型來講,要想窮舉所有語言中的常用詞(窮舉不全會造成 OOV),

既費人力又費詞表大小,為此,人們引入另一種方法:BPE。

BPE 不是按照中文字詞為最小單位,而是按照 unicode 編碼 作為最小粒度。

對于中文來講,一個漢字是由 3 個 unicode 編碼組成的,

因為平時我們不會拆開來看(畢竟中文漢字是不可拆分的),所以我一開始對這個概念也不太熟悉。

我們來看看 LLaMA 的 tokenizer(BPE)對中文是如何進行 encode 的:

10b7d874-15cc-11ee-962d-dac502259ad0.png

上述圖片來自可視化工具 [tokenizer_viewer]。

可以看到,「編碼」兩個字能夠被正常切成 2 個字,

但「待」卻被切成了 3 個 token,這里的每個 token 就是 1 個 unicode 編碼。

10c66a4c-15cc-11ee-962d-dac502259ad0.pngLLaMA tokenizer 查找結果,「待」不在詞表中,「編」「碼」在詞表中

通過 token 查找功能,我們可以發現「編」「碼」在詞表中,但「待」不在詞表中。

但任何 1 個漢字都是可以由 unicode 表示(只是組合順序不同),因此「待」就被切成了 3 個 token。

10e07c7a-15cc-11ee-962d-dac502259ad0.png

通常在模型訓練不夠充足的時候,模型會輸出一些亂碼(不合法的 unicode 序列):

游泳池是杭州西湖的一個游泳池,???

詞表擴充

為了降低模型的訓練難度,人們通常會考慮在原來的詞表上進行「詞表擴充」,

也就是將一些常見的漢字 token 手動添加到原來的 tokenizer 中,從而降低模型的訓練難度。

我們對比 [Chinese-LLaMA] 和 [LLaMA] 之間的 tokenizer 的區別:

10fb2c32-15cc-11ee-962d-dac502259ad0.pngChinese LLaMA 和 原始LLaMA 之間 tokenizer 的區別

我們可以發現:Chinese LLaMA 在原始 tokenizer 上新增了17953 個 tokens,且加入 token 的大部分為漢字。

而在 [BELLE] 中也有同樣的做法:

在 120w 行中文文本上訓練出一個 5w 規模的 token 集合,

并將這部分 token 集合與原來的 LLaMA 詞表做合并,

最后再在 3.2B 的中文語料上對這部分新擴展的 token embedding 做二次預訓練。

110eb2d4-15cc-11ee-962d-dac502259ad0.png《Towards Better Instruction Following Language Models for Chinese》 Page-4

1.2 Language Model PreTraining

在擴充完 tokenizer 后,我們就可以開始正式進行模型的預訓練步驟了。

Pretraining 的思路很簡單,就是輸入一堆文本,讓模型做 Next Token Prediction 的任務,這個很好理解。

我們主要來討論幾種預訓練過程中所用到的方法:數據源采樣、數據預處理、模型結構。

數據源采樣

在 [gpt3] 的訓練過程中,存在多個訓練數據源,論文中提到:對不同的數據源會選擇不同采樣比例:

11290f62-15cc-11ee-962d-dac502259ad0.pngGPT3 Paper Page-9

通過「數據源」采樣的方式,能夠緩解模型在訓練的時候受到「數據集規模大小」的影響。

從上圖中可以看到,相對較大的數據集(Common Crawl)會使用相對較大的采樣比例(60%),

這個比例遠遠小于該數據集在整體數據集中所占的規模(410 / 499 = 82.1%),

因此,CC 數據集最終實際上只被訓練了 0.44(0.6 / 0.82 * (300 / 499))個 epoch。

而對于規模比較小的數據集(Wikipedia),則將多被訓練幾次(3.4 個 epoch)。

這樣一來就能使得模型不會太偏向于規模較大的數據集,從而失去對規模小但作用大的數據集上的學習信息。

數據預處理

數據預處理主要指如何將「文檔」進行向量化。

通常來講,在 Finetune 任務中,我們通常會直接使用 truncation 將超過閾值(2048)的文本給截斷,

但在 Pretrain 任務中,這種方式顯得有些浪費。

以書籍數據為例,一本書的內容肯定遠遠多余 2048 個 token,但如果采用頭部截斷的方式,

則每本書永遠只能夠學習到開頭的 2048 tokens 的內容(連序章都不一定能看完)。

因此,最好的方式是將長文章按照 seq_len(2048)作分割,將切割后的向量喂給模型做訓練。

模型結構

為了加快模型的訓練速度,通常會在 decoder 模型中加入一些 tricks 來縮短模型訓練周期。

目前大部分加速 tricks 都集中在 Attention 計算上(如:MQA 和 Flash Attention [falcon] 等);

此外,為了讓模型能夠在不同長度的樣本上都具備較好的推理能力,

通常也會在 Position Embedding 上進行些處理,選用 ALiBi([Bloom])或 RoPE([GLM-130B])等。

具體內容可以參考下面這篇文章[1]

1.3 數據集清理

中文預訓練數據集可以使用 [悟道],數據集分布如下(主要以百科、博客為主):

113e1f2e-15cc-11ee-962d-dac502259ad0.png悟道-數據分布圖

但開源數據集可以用于實驗,如果想突破性能,則需要我們自己進行數據集構建。

在 [falcon paper] 中提到,

僅使用「清洗后的互聯網數據」就能夠讓模型比在「精心構建的數據集」上有更好的效果,

一些已有的數據集和它們的處理方法如下:

11524da0-15cc-11ee-962d-dac502259ad0.png各種數據源 & 數據清理方法

有關 Falcon 更多的細節可以看這里[2]

1.4 模型效果評測

關于 Language Modeling 的量化指標,較為普遍的有 [PPL],[BPC] 等,

可以簡單理解為在生成結果和目標文本之間的 Cross Entropy Loss 上做了一些處理。

這種方式可以用來評估模型對「語言模板」的擬合程度,

即給定一段話,預測后面可能出現哪些合法的、通順的字詞。

但僅僅是「生成通順句子」的能力現在已經很難滿足現在人們的需求,

大部分 LLM 都具備生成流暢和通順語句能力,很難比較哪個好,哪個更好。

為此,我們需要能夠評估另外一個大模型的重要能力 —— 知識蘊含能力。

C-Eval

一個很好的中文知識能力測試數據集是 [C-Eval],涵蓋1.4w 道選擇題,共 52 個學科。

覆蓋學科如下:

11780e64-15cc-11ee-962d-dac502259ad0.pngc-eval 數據集覆蓋學科圖

由于是選擇題的形式,我們可以通過將題目寫進 prompt 中,

并讓模型續寫 1 個 token,判斷這個續寫 token 的答案是不是正確答案即可。

但大部分沒有精調過的預訓練模型可能無法續寫出「A B C D」這樣的選項答案,

因此,官方推薦使用 5-shot 的方式來讓模型知道如何輸出答案:

以下是中國關于會計考試的單項選擇題,請選出其中的正確答案。

下列關于稅法基本原則的表述中,不正確的是____。
A. 稅收法定原則包括稅收要件法定原則和稅務合法性原則
B. 稅收公平原則源于法律上的平等性原則
C. 稅收效率原則包含經濟效率和行政效率兩個方面
D. 稅務機關按法定程序依法征稅,可以自由做出減征、停征或免征稅款的決定
答案:D

公司是國內一家領先的新媒體、通信及移動增值服務公司,由于遭受世界金融危機,甲公司經濟利潤嚴重下滑,經營面臨困境,但為了穩定職工隊伍,公司并未進行裁員,而是實行高層管理人員減薪措施。甲公司此舉采用的收縮戰略方式是____。
A. 轉向戰略
B. 放棄戰略
C. 緊縮與集中戰略
D. 穩定戰略
答案:C

... # 第 3, 4, 5 道樣例題

下列各項中,不能增加企業核心競爭力的是____。
A. 產品差異化
B. 購買生產專利權
C. 創新生產技術
D. 聘用生產外包商
答案:

通過前面的樣例后,模型能夠知道在「答案:」后面應該輸出選項字母。

于是,我們獲得模型續寫后的第一個 token 的概率分布(logits),

并取出「A B C D」這 4 個字母的概率,通過 softmax 進行歸一化:

probs=(
torch.nn.functional.softmax(
torch.tensor(
[
logits[self.tokenizer.encode(
"A",bos=False,eos=False)[0]],
logits[self.tokenizer.encode(
"B",bos=False,eos=False)[0]],
logits[self.tokenizer.encode(
"C",bos=False,eos=False)[0]],
logits[self.tokenizer.encode(
"D",bos=False,eos=False)[0]],
]
),
dim=0,
).detach().cpu().numpy()
)
pred={0:"A",1:"B",2:"C",3:"D"}[np.argmax(probs)]#將概率最大的選項作為模型輸出的答案

C-Eval 通過這種方式測出了許多模型在中文知識上的效果,

由于是 4 選項問題,所以基線(隨機選擇)的正確率是 25%。

C-Eval 也再一次證明了 GPT-4 是個多么強大的知識模型:

1195cf76-15cc-11ee-962d-dac502259ad0.png各模型在 5-shot 下的得分排名

2. 指令微調階段(Instruction Tuning Stage)

在完成第一階段的預訓練后,就可以開始進到指令微調階段了。

由于預訓練任務的本質在于「續寫」,而「續寫」的方式并一定能夠很好的回答用戶的問題。

例如:

11adeaa2-15cc-11ee-962d-dac502259ad0.png

因為訓練大多來自互聯網中的數據,我們無法保證數據中只存在存在規范的「一問一答」格式,

這就會造成預訓練模型通常無法直接給出人們想要的答案。

但是,這并不代表預訓練模型「無知」,只是需要我們用一些巧妙的「技巧」來引導出答案:

11be5702-15cc-11ee-962d-dac502259ad0.png

不過,這種需要用戶精心設計從而去「套」答案的方式,顯然沒有那么優雅。

既然模型知道這些知識,只是不符合我們人類的對話習慣,那么我們只要再去教會模型「如何對話」就好了。

這就是 Instruction Tuning 要做的事情,即指令對齊。

OpenAI 在 [instruction-following] 中展示了 GPT-3 和經過指令微調前后模型的區別:

11cce57e-15cc-11ee-962d-dac502259ad0.pngGPT-3 只是在做續寫任務,InstructGPT 則能夠回答正確內容

2.1 Self Instruction

既然我們需要去「教會模型說人話」,

那么我們就需要去精心編寫各式各樣人們在對話中可能詢問的問題,以及問題的答案。

在 [InstructGPT Paper] 中,使用了 1.3w 的數據來對 GPT-3.5 進行監督學習(下圖中左 SFT Data):

11e2f68e-15cc-11ee-962d-dac502259ad0.pngInstructGPT Paper 訓練數據集預覽

可以觀察到,數據集中人工標注(labeler)占大頭,

這還僅僅只是 InstructGPT,和 ChatGPT 遠遠不是一個量級。

非官方消息:ChatGPT 使用了百萬量級的數據進行指令微調。

可見,使用人工標注是一件成本巨大的事情,只是找到人不夠,需要找到「專業」且「認知一致」的標注團隊。

如果這件事從頭開始做自然很難(OpenAI 確實厲害),但今天我們已經有了 ChatGPT 了,

我們讓 ChatGPT 來教我們自己的模型不就好了嗎?

這就是 Self Instruction 的思路,即通過 ChatGPT 的輸入輸出來蒸餾自己的模型。

一個非常出名的項目是 [stanford_alpaca]。

如果從 ChatGPT 「套」數據,那么我們至少需要「套」哪些數據。

Instruction Tuning 中的「輸入」(問題)和「輸出」(答案)是訓練模型的關鍵,

答案很好得到,喂給 ChatGPT 問題根據返回結果就能獲得,

但「問題」從哪里獲得呢?

(靠人想太累了,屏幕前的你不妨試試,看看短時間內能想出多少有價值的問題)

Alpaca 則是使用「種子指令(seed)」,使得 ChatGPT 既生成「問題」又生成「答案」。

由于 Alpaca 是英文項目,為了便于理解,我們使用相同思路的中文項目 [BELLE] 作為例子。

通俗來講,就是人為的先給一些「訓練數據樣例」讓 ChatGPT 看,

緊接著利用 ChatGPT 的續寫功能,讓其不斷地舉一反三出新的訓練數據集:

你被要求提供10個多樣化的任務指令。這些任務指令將被提供給GPT模型,我們將評估GPT模型完成指令的能力。
以下是你提供指令需要滿足的要求:
1.盡量不要在每個指令中重復動詞,要最大化指令的多樣性。
2.使用指令的語氣也應該多樣化。例如,將問題與祈使句結合起來。
3.指令類型應該是多樣化的,包括各種類型的任務,類別種類例如:brainstorming,open QA,closed QA,rewrite,extract,generation,classification,chat,summarization。
4.GPT語言模型應該能夠完成這些指令。例如,不要要求助手創建任何視覺或音頻輸出。例如,不要要求助手在下午5點叫醒你或設置提醒,因為它無法執行任何操作。例如,指令不應該和音頻、視頻、圖片、鏈接相關,因為GPT模型無法執行這個操作。
5.指令用中文書寫,指令應該是1到2個句子,允許使用祈使句或問句。
6.你應該給指令生成適當的輸入,輸入字段應包含為指令提供的具體示例,它應該涉及現實數據,不應包含簡單的占位符。輸入應提供充實的內容,使指令具有挑戰性。
7.并非所有指令都需要輸入。例如,當指令詢問一些常識信息,比如“世界上最高的山峰是什么”,不需要提供具體的上下文。在這種情況下,我們只需在輸入字段中放置“<無輸入>”。當輸入需要提供一些文本素材(例如文章,文章鏈接)時,就在輸入部分直接提供一些樣例。當輸入需要提供音頻、圖片、視頻或者鏈接時,則不是滿足要求的指令。
8.輸出應該是針對指令和輸入的恰當回答。
下面是10個任務指令的列表:

###
1.指令: 在面試中如何回答這個問題?
1.輸入:當你在車里獨處時,你會想些什么?
1.輸出:如果是在晚上,我通常會考慮我今天所取得的進步,如果是在早上,我會思考如何做到最好。我也會嘗試練習感恩和活在當下的狀態,以避免分心駕駛。
###
2.指令: 按人口對這些國家進行排名。
2.輸入:巴西,中國,美國,日本,加拿大,澳大利亞
2.輸出:中國,美國,巴西,日本,加拿大,澳大利亞
###
3.指令:

如上述例子所示,我們先給出 2 個樣例,并讓 ChatGPT 進行續寫:

11f22b54-15cc-11ee-962d-dac502259ad0.pngChatGPT 續寫結果

關于 BELLE 的更多細節可以參考這篇文章[3]

2.2 開源數據集整理

在這一章中,我們將梳理一些開源的 Instruction Tuning 的數據集,

除了直接拿來用以外,我們期望通過分析這些已有數據集,從而學習如何構建一個指令數據集。

Alpaca

[stanford_alpaca] 采用上述的 self instruction 的方式采集了 5200 條指令訓練數據集。

數據樣例如下:

{
"instruction":"Arrangethewordsinthegivensentencetoformagrammaticallycorrectsentence.",
"input":"quicklythebrownfoxjumped",
"output":"Thequickbrownfoxjumpedquickly."
}

其中,instruction 代表要求模型做的任務,input 代表用戶輸入, output 代表喂給模型的 label。

Alpaca 覆蓋了多種類型的指令,其數據分布如下:

121efce2-15cc-11ee-962d-dac502259ad0.pngAlpaca 數據分布圖

包含寫作、描述、分類、摘要等多種類型的任務集合。

BELLE

BELLE 開放了好幾種規模的數據集,[100萬]、[200萬]、[350萬] 等。

訓練數據集樣例如下:

{
"instruction":"判斷給定的文章是否符合語法規則。如果不符合,請提供修改建議。下面是一篇文章的開頭:‘為了探討這個主題,本文將提供一系列數據和實例,以證明這一觀點?!?,
"input":"",
"output":"這個開頭符合語法規則。"
}

由于數據量很大,我們無法統計出訓練數據集中各任務的真實占比,

但從 [1000條評測集] 數據分布可以推測出,訓練數據集中同樣包含:摘要、問答、分類等任務。

1233c6fe-15cc-11ee-962d-dac502259ad0.pngBELLE - 評測集分布

我們按照類別對評測數據進行采樣,結果如下:

1253f0a0-15cc-11ee-962d-dac502259ad0.png

2.3 模型的評測方法

比起預訓練(Pretrain)環節里相對明確的評價指標(如PPL、NLL等),

Instruction 環節中的評價指標比較令人頭疼。

鑒于語言生成模型的發展速度,BLEU 和 ROUGH 這樣的指標已經不再客觀。

一種比較流行的方式是像 [FastChat] 中一樣,利用 GPT-4 為模型的生成結果打分,

我們也嘗試使用同樣的 Prompt 對 3 種開源模型:OpenLlama、ChatGLM、BELLE 進行測試。

注意:下面的測試結果僅源自我們自己的實驗,不具備任何權威性。

對于每一個問題,我們先獲得 ChatGPT 的回復,以及另外 3 種模型的回復,

接著我們將 「ChatGPT 答案 - 候選模型答案」這樣的 pair 喂給 GPT-4 打分(滿分為 10 分)。

得到的結果如下:

127ada30-15cc-11ee-962d-dac502259ad0.png測試結果 & 測試 prompt

我們對每個任務單獨進行了統計,并在最后一列求得平均值。

GPT-4 會對每一條測試樣本的 2 個答案分別進行打分,并給出打分理由:

12929bfc-15cc-11ee-962d-dac502259ad0.pngGPT-Review 的結果

但是,我們發現,GPT-4 打出的分數和給出理由并不一定正確。

如上圖所示,GPT-4 為右邊模型的答案打出了更高的分數,給出的理由是:

將「最長時期」改為了「最長時期之一」會更準確。

但事實上,Instruction 中明確設定就是「最長時期」,

這種「給高分」的理由其實是不正確的。

此外,我們還發現,僅僅調換句子順序也會對最后打分結果產生影響,

針對這個問題,我們考慮「調換句子順序并求和平均」來緩解。

但不管怎么樣,GPT-4 給出的分數或許并沒有我們想象中的那么靠譜,

為此,我們通過人工的 Review 的方式對每個答案進行了一次回掃,得到的結果和標準如下:

再次重申:我們只是期望指出 GPT-4 打分可能會和實際產生偏差的問題,這里排名不具備任何權威性。

12b80be4-15cc-11ee-962d-dac502259ad0.png人工 Review 結果 & 打分原則

我們可以看到,

在 GPT-4 打分的結果中,已經有模型的效果甚至超過了 ChatGPT(分數為 1.02),

但再經過人工 Review 后,ChatGPT 的答案是我們認為更合理一些的。

當然,最近陸陸續續的推出了許多新的評測方法,如:[PandaLM],

以及許多比較有影響力的評測集,如:[C-Eval]、[open_llm_leaderboard] 等,

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    6531

    瀏覽量

    87753
  • 編碼
    +關注

    關注

    6

    文章

    835

    瀏覽量

    54496
  • 模型
    +關注

    關注

    1

    文章

    2771

    瀏覽量

    47857
  • LLM
    LLM
    +關注

    關注

    0

    文章

    215

    瀏覽量

    243

原文標題:從零詳細地梳理一個完整的 LLM 訓練流程

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    狀態轉移圖的研究及單流程編程訓練實驗

    狀態轉移圖的研究及單流程編程訓練實驗 一、實驗目的
    發表于 12-26 22:41 ?5093次閱讀
    狀態轉移圖的研究及單<b class='flag-5'>流程</b>編程<b class='flag-5'>訓練</b>實驗

    對比解碼在LLM上的應用

    為了改進LLM的推理能力,University of California聯合Meta AI實驗室提出將Contrastive Decoding應用于多種任務的LLM方法。實驗表明,所提方法能有效改進LLM的推理能力。讓我們走進
    發表于 09-21 11:37 ?411次閱讀
    對比解碼在<b class='flag-5'>LLM</b>上的應用

    醫療模型人訓練系統是什么?

    醫療模型人訓練系統是為滿足廣大醫學生的需要而設計的。我國現代醫療模擬技術的發展處于剛剛起步階段,大部分仿真系統產品都源于國外,雖然對于模擬人仿真已經出現些產品,但那些產品只是就模擬人的某部分,某
    發表于 08-19 08:32

    PCB流程介紹教程(完整版)

    PCB流程介紹教程(完整版)
    發表于 02-14 16:40 ?0次下載

    大型語言模型(LLM)的自定義訓練:包含代碼示例的詳細指南

    近年來,像 GPT-4 這樣的大型語言模型 (LLM) 因其在自然語言理解和生成方面的驚人能力而受到廣泛關注。但是,要根據特定任務或領域定制LLM,定制培訓是必要的。本文提供了有關自定義訓練
    發表于 06-12 09:35 ?1992次閱讀

    MLC-LLM的編譯部署流程

    MLC-LLM部署在各種硬件平臺的需求,然后我就開始了解MLC-LLM的編譯部署流程和RWKV World模型相比于MLC-LLM已經支持的Raven系列模型的特殊之處。 MLC-
    的頭像 發表于 09-04 09:22 ?1922次閱讀
    MLC-<b class='flag-5'>LLM</b>的編譯部署<b class='flag-5'>流程</b>

    檢索增強LLM的方案全面的介紹

    分分享了 ChatGPT 這類模型是如何一步一步訓練的,后半部分主要分享了 LLM 模型的一些應用方向,其中就對檢索增強 LLM 這個應用方向做了簡單介紹。
    的頭像 發表于 09-08 16:39 ?933次閱讀
    檢索增強<b class='flag-5'>LLM</b>的方案全面的介紹

    STM32的完整啟動流程分析

    STM32的完整啟動流程分析
    的頭像 發表于 10-25 16:00 ?892次閱讀
    STM32的<b class='flag-5'>完整</b>啟動<b class='flag-5'>流程</b>分析

    大語言模型(LLM)預訓練數據集調研分析

    model 訓練完成后,使用 instruction 以及其他高質量的私域數據集來提升 LLM 在特定領域的性能;而 rlhf 是 openAI 用來讓model 對齊人類價值觀的一種強大技術;pre-training dataset 是大模型在
    的頭像 發表于 09-19 10:00 ?636次閱讀
    大語言模型(<b class='flag-5'>LLM</b>)預<b class='flag-5'>訓練</b>數據集調研分析

    從原理到代碼理解語言模型訓練和推理,通俗易懂,快速修煉LLM

    要理解大語言模型(LLM),首先要理解它的本質,無論預訓練、微調還是在推理階段,核心都是next token prediction,也就是以自回歸的方式從左到右逐步生成文本。
    的頭像 發表于 09-19 16:25 ?703次閱讀
    從原理到代碼理解語言模型<b class='flag-5'>訓練</b>和推理,通俗易懂,快速修煉<b class='flag-5'>LLM</b>

    mlc-llm對大模型推理的流程及優化方案

    在 MLC-LLM 部署RWKV World系列模型實戰(3B模型Mac M2解碼可達26tokens/s) 中提到要使用mlc-llm部署模型首先需要一個編譯過程,將原始的基于Realx搭建的模型
    發表于 09-26 12:25 ?508次閱讀
    mlc-<b class='flag-5'>llm</b>對大模型推理的<b class='flag-5'>流程</b>及優化方案

    基于單一LLM的情感分析方法的局限性

    LLM的發展為情感分析任務帶來的新的解決方案。有研究人員使用LLM,在上下文學習(in-context learning, ICL)的范式下,僅使用少量的訓練示例就能夠實現與監督學習策略旗鼓相當的性能表現。
    的頭像 發表于 11-23 11:14 ?459次閱讀
    基于單一<b class='flag-5'>LLM</b>的情感分析方法的局限性

    Long-Context下LLM模型架構全面介紹

    的限制:當前許多LLM受資源限制,主要是在較短的文本上進行預訓練,使它們對現實世界中常見的較長的上下文提示不太有效。本文對基于Transformer的LLM模型架構的進展進行了全面的介紹。
    的頭像 發表于 11-27 17:37 ?599次閱讀
    Long-Context下<b class='flag-5'>LLM</b>模型架構全面介紹

    2023年LLM大模型研究進展

    作為做LLM應用的副產品,我們提出了RLCD[11],通過同時使用正例和負例prompt,自動生成帶標簽的生成樣本不需人工標注,然后可以接大模型微調,或者用于訓練reward models
    發表于 01-19 13:55 ?331次閱讀

    基于NVIDIA Megatron Core的MOE LLM實現和訓練優化

    本文將分享阿里云人工智能平臺 PAI 團隊與 NVIDIA Megatron-Core 團隊在 MoE (Mixture of Experts) 大語言模型(LLM)實現與訓練優化上的創新工作。
    的頭像 發表于 03-22 09:50 ?259次閱讀
    基于NVIDIA Megatron Core的MOE <b class='flag-5'>LLM</b>實現和<b class='flag-5'>訓練</b>優化
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>