<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-12-05 14:49 ? 次閱讀

作者:野風

本文是自己在學習LLM時,閱讀《A Survey of Large Language Models》和其他相關材料時的筆記,力求對構建LLM涉及的主要環節有一個大顆粒度的全景感知,一些比較關鍵或者感興趣的話題會附上一些推薦閱讀的博客。希望能根據這篇博客,讀者也能按圖索驥式的去學習LLM。

LLM涌現出的3大能力

In-context learning:在GPT-3中正式被提出。在不需要重新訓練的情況下,通過自然語言指令,并帶幾個期望輸出的樣例,LLM就能夠學習到這種輸入輸出關系,新的指令輸入后,就能輸出期望的輸出。

Instruction following:通過在多種任務數據集上進行指令微調(instruction tuning),LLM可以在沒有見過的任務上,通過指令的形式表現良好,因此具有較好的泛化能力。

Step-by-step reasoning:通過思維鏈(chain-of-thought)提示策略,即把大任務分解成一步一步小任務,讓模型think step by step得到最終答案。

LLM的關鍵技術

Scaling:更多的模型參數、數據量和訓練計算,可以有效提升模型效果。

Training:分布式訓練策略及一些提升訓練穩定性和效果的優化trick。另外還有GPT-4也提出去建立一些特殊的工程設施通過小模型的表現去預測大模型的表現(predictable scaling)。

Ability eliciting:能力引導。設計合適的任務指令或具體的上下文學習策略可以激發LLM在龐大預料上學習到的能力。

Alignment tuning:對齊微調。為了避免模型輸出一些不安全或者不符合人類正向價值觀的回復,InstructGPT利用RLHF(reinforcement learning with human feedback)技術實現這一目的。

Tools manipulation:工具操作。為了彌補模型不擅長非文本輸出任務和實時信息缺失的問題,讓模型可以使用計算器、搜索引擎或者給模型安裝插件等工具

OpenAI GPT系列模型發展歷程

e1ab4fb4-9322-11ee-939d-92fbcf53809c.jpg

e1c720fe-9322-11ee-939d-92fbcf53809c.jpg

推薦閱讀

拆解追溯 GPT-3.5 各項能力的起源 https://yaofu.notion.site/GPT-3-5-360081d91ec245f29029d37b54573756

GPT / GPT-2 / GPT-3 / InstructGPT 進化之路 https://zhuanlan.zhihu.com/p/609716668

LLM訓練一般流程

Andrej Karpathy在他的演講State of GPT中分享了GPT大模型的訓練pipline,可以作為如何訓練LLM的一個步驟全景圖,后文內容也是圍繞這些步驟進行展開的

e1e6580c-9322-11ee-939d-92fbcf53809c.jpg

演講內容記錄:

e1ffbce8-9322-11ee-939d-92fbcf53809c.jpg

e20d3080-9322-11ee-939d-92fbcf53809c.jpg

e229a350-9322-11ee-939d-92fbcf53809c.jpg

資源

模型/API資源

e24ca710-9322-11ee-939d-92fbcf53809c.jpg

e2781828-9322-11ee-939d-92fbcf53809c.jpg

推薦閱讀:

數據集

分為六類:Books, CommonCrawl, Reddit links, Wikipedia, Code, and others.

e294d2b0-9322-11ee-939d-92fbcf53809c.jpg

推薦閱讀

預訓練

數據預處理

預訓練數據包括通用文本數據,比如網頁信息文本、對話文本還有書籍,另外還有專業文本數據,比如多語言文本、科學領域文本、代碼等。對于來自不同地方,多種格式類型的數據,需要做很仔細的數據預處理,不然會對模型效果產生很大的影響。

e2b3b8e2-9322-11ee-939d-92fbcf53809c.jpg

推薦閱讀:

模型架構

e2d68de0-9322-11ee-939d-92fbcf53809c.jpg

基于Transformer架構的LLM可以分為3類:

目前大部分模型都是基于Causal Decoder,但為什么比其他架構好,缺乏理論支撐。Long Context目前是基于Transformer結果模型的一大缺點,受限于較長時間和內存的資源需求。LLM能編碼Long Context的能力稱為extrapolation capability。

推薦閱讀

模型訓練

GPT-4相關技術

已下截圖來自開源項目MetaGPT作者直播分享

e2f5ff9a-9322-11ee-939d-92fbcf53809c.jpg

e30f5350-9322-11ee-939d-92fbcf53809c.jpg

e32c87fe-9322-11ee-939d-92fbcf53809c.jpg

Adaptation of LLMs

Instruction Tuning

指令微調指的是使用一些自然語言描述的指令形式樣本去用監督學習的方式微調預訓練大模型(base model),經過指令精調后,LLM能在一些未見過的任務上表現較好的能力,甚至是多語言場景。

指令形式的樣本實例

包含

e359aca2-9322-11ee-939d-92fbcf53809c.jpg

指令樣本的關鍵點:

指令精調可以看做是一個有監督訓練的過程,相比于預訓練過程,它的訓練目標是seq2seq loss,同時也需要更小的batch size和learning rate,關于attention的使用也有差別,下面是幾個訓練時的做法

一些效果

對self-instruct指令進行效果提升的策略

指令微調建議:

要在 LLMs 上進行指令調優,可以根據下表 中關于所需 GPU 數量和調優時間的基本統計數據來準備計算資源。設置好開發環境后,建議初學者按照 Alpaca 軟件倉庫的代碼進行指令調優。隨后,應選擇基礎模型并構建指令數據集,當用于訓練的計算資源有限時,用戶可以利用 LoRA 進行參數高效調整。至于推理,用戶可以進一步使用量化方法,在更少或更小的 GPU 上部署 LLM。

e374c14a-9322-11ee-939d-92fbcf53809c.png

Alignment Tuning

對齊微調是為了讓LLM的輸出更符合人類價值觀和偏好(helpful,honest, and harmless)),減少虛假、不準確或者避免生成一些有害的信息。但這種對齊微調也會一定程度減弱模型的泛化程度,一般稱這種現象為alignment tax。

人類反饋收集

對工人打標員要求會比較高,如有一定的教育水平,會英文等。標注的方式可以分為兩種:

RLHF

RLHF(Reinforcement Learning from Human Feedback)系統主要包含三個關鍵元素:需要被對齊精調的預訓練LM、通過人類反饋學習的的獎勵模型和強化學習訓練LM。

RLHF分為三個步驟:

Pretraining

該步驟占99%的訓練時間

對LLM涉及的一些數字有個粗略印象:每個LLM開發者都應該知道的數字

GPT-2開啟了prompting 高于finetuning的時代

base model不會回答問題,只會去補全一個文檔,經常會用更多問題去回答一個問題,但是可以通過提示工程觸發它完成一些任務,如下圖這樣做。(這里有點像CoT了

Supervised Finetuning,對應后文Instruction Tuning

在高質量少量數據上finetuning,讓模型更像一個助手

Reward Modeling,對應后文Alignment Tuning

人工對同一prompt的多條響應進行排序,如下圖構建訓練樣本,讓獎勵模型去預測<|reward|>,loss函數則去比較這個預測值大小與人工排序的一致性。

Reinforcement Learning

使用RM對SFT模型生成的結果進行打分,使用PPO算法以最大化rewards為目標進行訓練,得到最終模型

判斷比生成更容易。比如判斷一首詩壞好壞比寫一首詩更容易。所以這也解釋了為什么使用RLHF

base model相比RLHF model有更多的“熵”,所以能生成更多樣的內容

LLaMA (65B version)、LLaMA 2:目前開源模型中,生態最好。很多基于LLaMA小版本的指令精調定制模型,如果需要LLaMA適配非英語,一般需要擴充詞表和在目標語言數據進行指令精調。

Flan-T5 (11B version):可以作為指令精調的首選模型

CodeGen (11B version):自回歸模型,可作為代碼生成的模型。同時發布了MTPB數據集,用于評測大模型代碼生成能力

NLLB:54.5B,機器翻譯大模型

mT0 (13B version):在多語言任務上進行了多語言指令精調

PanGu-α:中文任務上表現了良好的zero-shot 和 few-shot性能。最大200B,公開的13B

Falcon(7B、40B):數據清理工作做的好,RefinedWeb數據集

GPT-NeoX-20B

OPT (175B version):及其指令精調版本OPT-IML

BLOOM (176B version) BLOOMZ (176B version):可以作為多語言模型的基礎模型

GLM:中文對話模型ChatGLM2-6B

GPT-3 series:ada, babbage(GPT3-1B), curie(GPT3-6.7B), davinci (the most powerful version in GPT-3 series 178B), text-ada-001, text-babbage-001, and text-curie-001。前四個可以在OpenAI的服務上作為基礎模型進行微調。code-cushman-001、code-davinci-002用于代碼生成。

GPT-3.5 series:基礎模型code-davinci-002,三個加強版text-davinci-002, text-davinci-003, and gpt-3.5-turbo-0301(ChatGPT客戶端背后的模型)

GPT-4 series:gpt-4, gpt-4-0314, gpt-4-32k, and gpt-4-32k-0314

想學習大語言模型(LLM),應該從哪個開源模型開始? https://www.zhihu.com/question/608820310

大模型訓練的有哪些數據集?LLM大模型訓練有哪些通用語料? https://www.zhihu.com/question/609604943/answers/updated

Transformers:Hugging Face維護的,社區活躍,有眾多基于Transformer架構的模型實現,使用便捷

大模型訓練框架:DeepSpeed(Microsoft)、Megatron-LM(NVIDIA)、JAX(Google)、Colossal-AI(HPC-AI Tech)、BMTrain(OpenBMB)、FastMoE等

PyTorch、TensorFlow、MXNet 、 PaddlePaddle 、MindSpore、OneFlow

大模型時代下數據的重要性:Data-centric Artificial Intelligence: A Survey 這篇綜述的一個講解,并在后面介紹了一些與大模型有關的數據方面的工作,即相關工作中心都是在研究怎么玩轉數據 https://zhuanlan.zhihu.com/p/639207933

Causal Decoder:從左到右的單向注意力。自回歸語言模型,預訓練和下游應用一致,生成類任務效果好。訓練效率高。Zero-Shot能力強,涌現能力。如GPT系列、LLaMA、BLOOM、OPT

Encoder-Decoder:輸入雙向注意力,輸出單向注意力。對問題的編碼理解更充分,在偏理解的NLP任務上表現相對較好,缺點是在長文本生成任務上效果較差,訓練效率低。如T5、Flan-T5、BART

Prefix Decoder:輸入雙向注意力,輸出單向注意力。前兩者的折中。訓練效率也低。如GLM、ChatGLM、U-PaLM

[Transformer 101系列] 初探LLM基座模型 https://zhuanlan.zhihu.com/p/640784855

Batch Training:一般會設一個較大的數2048 examples~4M tokens,GPT-3中還介紹了一種動態增大batch size的方法

learning rate:預訓練時一般都會用warm-up和decay策略,最大值一般在5e-5到1e-4之間

梯度裁剪:通常將梯度裁剪為1

optimizer:Adam 和 AdamW。權重衰減系數設置為0.1。AdamW相當于Adam加了一個L2正則項

穩定性:weight decay、gradient clipping。LLM訓練的時候還會碰到loss spike問題,有些簡單的解決辦法就是重新訓練,重最近的一個checkpoint開始,跳過發生loss spike的數據。GLM工作中發現,embedding layer中不正常的梯度會導致這個問題,通過縮減這個梯度,會環節spike的問題

Scalable Training Techniques:

3D Parallelism:指結合data parallelism, pipeline parallelism(GPipe、PipeDream), 和 tensor parallelism(Megatron-LM、Colossal-AI)三種并行方法

ZeRO:data parallelism場景下,每個GPU都會存模型參數、模型梯度和優化器參數,但這些數據在每個GPU上都存一遍是存在冗余的,ZeRO就是去解決這個問題。pytorch的FSDP也是做了這樣的優化。

Mixed Precision Training:BF16 vs FP16

predictable scaling:GPT4提出的通過小模型預測大模型的性能,減少出錯帶來的損失

任務描述(即指令)

(optional) 示例輸入

輸出

(optional) 解釋

擴大指令范圍:增加指令的任務種類數、加強對任務描述的長度、結構和創意性對加強LLM泛化能力很重要

格式的設計:增加任務描述和對輸入輸出的解釋有幫助,但在指令中加入其他內容(如應避免的事項、原因和建議)對效果提示幫助有限甚至有負向影響。對于需要推理的任務,同時加入思維鏈和非思維鏈的樣例,也有助于提升效果

邀請人去注釋人類需要的任務,比只使用數據集里的任務要強

平衡不同任務的指令樣本數量,examples-proportional mixing strategy

將指令微調和預訓練結合。OPT-IML在指令微調的時候結合預訓練的數據;GLM-130B和Galactica直接將指令微調的數據作為預訓練的一小部分數據去預訓練LLM

僅使用英文指令精調,可以提升多語言任務的表現

在垂直專業領域進行指令微調,可以提升LLM在該領域的表現

增強指令的復雜度,比如增加更多任務要求和更多的推理步驟

增加指令話題的多樣性

增加指令的數量,不一定有效

平衡指令的復雜程度。通過困惑度去除過于簡單和復雜的指令

基于問題的:研究人員設計一系列問題讓打標人員去回答

基于規則的:不僅打標員去選擇一個最好的輸出(LLMs生成的),并且通過提前設定一系列規則去過濾模型生成的不符合人類價值偏好的結果。

(可選)Supervised fine-tuning:將收集的有監督指令集,包含指令+人類回答作為預訓練模型fine-tuning的數據,提升LM初始化能力

Reward model training:采樣指令(來自有監督指令集或者人工生成)輸入LM,LM生成若干個結果,標注員對這些結果進行排序,從而訓練獎勵模型

RL fine-tuning:將對齊過程視為一個強化學習過程,預訓練LM作為policy,指令作為其輸入,其輸出指令的回答,action space是所有詞表,state是當前已經生成的tokens序列,獎勵reward由第二步的獎勵模型給出。InstructGPT使用PPO算法優化,為了避免最終的Aligned LM與初始預訓練LM表現差距過大,還加入了兩者對同一指令輸入得到的輸出的KL散度作為懲罰。

注意2、 3步可以多次迭代進行,以得到更好的結果。由于RL并不太穩定,也有工作使用其他有監督的方法取到RL進行微調。

e39ce9d6-9322-11ee-939d-92fbcf53809c.jpg

推薦閱讀:

RLHF實踐:比較詳細的講了強化學習微調階段的原理和踩的坑,具有實踐指導意義 https://zhuanlan.zhihu.com/p/635569455

從零實現LLM-RLHF https://zhuanlan.zhihu.com/p/649665766

基于 LoRA 的 RLHF:可以自己跟著動手玩一玩的教程 https://zhuanlan.zhihu.com/p/644900128

反思RLHF,如何更加高效訓練有偏好的LLM

如何有效進行RLHF的數據標注?:對數據標注過程有一個非常有指導意義的介紹

Parameter-Efficient Model Adaptation

LLM參數量很大,想要去做全量參數的fine turning代價很大,所以需要一些高效經濟的方法。

一些PEFT(Parameter-Efficient Fine-Tuning)方法

Adapter Tuning

Prefix Tuning

Prompt Tuning

Low-Rank Adapation(LoRA)

e3b45332-9322-11ee-939d-92fbcf53809c.jpg

推薦閱讀:

【萬字長文】LLaMA, ChatGLM, BLOOM的參數高效微調實踐 https://zhuanlan.zhihu.com/p/635710004

大模型參數高效微調技術原理綜述(六)-MAM Adapter、UniPELT - 知乎 (zhihu.com) https://zhuanlan.zhihu.com/p/636362246

讓天下沒有難Tuning的大模型-PEFT技術簡介 - 知乎 (zhihu.com) https://zhuanlan.zhihu.com/p/618894319

Memory-Efficient Model Adaptation

由于LLM的參數量巨大,在推理的時候非常占用內存,導致其很難在應用中部署,所以需要一些減少內存占用的方法,比如LLM中的量化壓縮技術

quantization-aware training (QAT),需要額外的全模型重訓練

Efficient fine-tuning enhanced quantization,QLoRA

Quantization-aware training (QAT) for LLMs

post-training quantization (PTQ),不需要重訓練

Mixed-precision decomposition

Fine-grained quantization

Balancing the quantization difficulty

Layerwise quantization

LLM由于參數量巨大,更適合PTQ。另外,LLM 呈現出截然不同的激活模式(即較大的離群特征),因此量化 LLM(尤其是隱層激活)變得更加困難。

一些經驗

INT8 權重量化通??梢栽?LLM 上產生非常好的結果,而較低精度權重量化的性能則取決于特定的方法

激活函數比權重更難量化

Efficient fine-tuning enhanced quantization是提升量化LLM一個較好的方法

開源量化庫:

Bitsandbytes

GPTQ-for-LLaMA

AutoGPTQ

llama.cpp

利用

In-Context Learning

In-Context Learning(ICL)的prompt由任務描述和若干個QA示例(demonstration)組成,LLM可以識別這些內容并理解,無需進行梯度更新(區別于instruction tuning)就能在新的問題(Q)上進行回答(A)。

e3c68d40-9322-11ee-939d-92fbcf53809c.jpg

樣例的設計

Demonstration Selection

Heuristic approaches:一些研究采用基于 k-NN 的檢索器來選擇與query語義相關的示例。也會同時考慮相關性和多樣性

LLM-based approaches:利用 LLM,根據添加樣例后的性能增益,直接測量每個樣例的信息量。先根據無監督的方法(如BM25)召回一些相似的樣例,然后使用一個dense retriever(由LLM打標的正負樣本)去查找。

Demonstration Format

最直接的方法就是給一些QA樣例對

使用CoT,增加對任務的描述去增強推理能力

Auto-CoT, 通過"Let's think step by step",得到子問題

Demonstration Order LLMs有時傾向于去重復最后一個樣例的答案

通過query與樣例之間的embedding space的相似度排序

最大限度地減少壓縮和傳輸任務標簽所需的代碼長度,其靈感來自信息論

底層機制

How Pre-Training Affects ICL?:

GPT-3中發現在大規模的預訓練模型中會出現ICL,但后面也有研究發現,小規模模型在特定設計的訓練任務上繼續預訓練或者微調后也能出現ICL能力。

另外,ICL的出現可以理論上看做是預訓練過程中,模型在學習具有長距離語義聯系的文檔過程中誕生的。

也有研究認為,在擴大訓練參數和數據的時候,LLM通過“下一個詞預測”訓練任務,模型可以從字或詞如何組成具有語言含義的句子學習過程中得到ICL能力。

How LLMs Perform ICL?

Task recognition:有研究認為在預訓練數據中包含了標識任務(task)的隱變量,而LLM可以根據demonstration捕捉到這些變量,從而能夠識別ICL中的任務。所以,有部分研究認為LLM不是從demonstration中學習,而是識別任務,所以有實驗表明即使prompt template是無關的甚至是有誤導的,LLM表現也很好

Task learning:ICL 可以解釋如下:通過前向計算,LLM 生成與demonstration相關的元梯度,并通過注意力機制隱式地執行梯度下降。LLM 本質上是在預訓練過程中通過參數對隱式模型進行編碼。利用 ICL 中提供的示例,LLM 可以實施梯度下降等學習算法,或直接計算閉式解,以便在前向計算中更新這些模型。

Chain-of-Thought Prompting

CoT 并非像 ICL 那樣簡單地用輸入-輸出對來構建提示,而是將可能導致最終輸出的中間推理步驟納入提示中。

In-context Learning with CoT

Few-shot CoT:demonstration由?input, output? 變成 ?input, CoT, output?,區別見上圖。

使用不同類型的CoT(不同的推理路徑)和使用復雜的CoT都可以加強效果。

為了減少手工提供CoT,可以使用Auto-CoT。

self-consistency技巧:首先生成幾條推理路徑,然后對所有答案進行綜合(例如,通過在這些路徑中投票選出最一致的答案),可以較大提升CoT效果。

Zero-shot CoT:LLM 首先在 "Let’s think step by step"的提示下產生推理步驟,然后在 "Therefore, the answer is "的提示下得出最終答案。

底層機制

When CoT works for LLMs?:在需要做一步一步推理的任務中(算術推理、常識推理和符號推理),CoT會表現不錯,但那些如果不需要復雜推理的任務,加了CoT反而會不好

Why LLMs Can Perform CoT Reasoning?:廣泛認為CoT能力來自于在代碼數據上訓練,但目前缺乏消融實驗的證明。CoT包含三個元素symbols、patterns和text,后兩個對效果影響最大,text幫助LLM生成有用的pattern,pattern幫助LLM理解任務和生成幫助解決任務的text

Planning for Complex Task Solving

對于一些復雜的問題,僅用ICL和CoT還是很難取到好的效果,所以采用prompt-based planning的方法去將復雜問題分解為更簡單的子問題,并通過規劃一系列action去完成這些子問題任務。

e3e1c57e-9322-11ee-939d-92fbcf53809c.jpg

那這個plan具體是什么呢?它可以是一系列用自然語言描述的action或者用編程語言描述的可執行代碼等

Plan Generation

text-based:通過指令利用LLM去生成執行計劃,比如利用ICL的、讓LLM在“使用API解決問題”的語料上微調,從而讓模型可以調用API、HuggingGPT還讓LLM可以調用模型

code-based:生成Python、PDDL等可執行的代碼

Feedback Acquisition

internal feedback:使用LLM去預測生成的plan取得成功的概率、Tree of Thought去對比不同的plan(有點類似AlphaGo的蒙特卡諾搜索的意思)、對中間結果進行評估并作為長期記憶存儲

external feedback:外部工具或者虛擬世界

Plan Refinement

Reasoning:React通過給LLM一些demonstrations去在feedback的時候生成推理路徑、ChatCoT進一步將工具增強推理過程統一為基于LLM的任務規劃器與基于工具的環境之間的多輪對話

Backtracking:Tree of Thought利用DFS或者BFS去搜索,使得plan全局最優;另外還可以把feedback作為prompt去利用LLM refine plan

Memorization:將feedback和一些success plan作為長期記憶存儲在向量數據庫中

實際上這塊又引出了一個熱度很高的話題——LLM Powered Autonomous Agents,我覺得這是一個可能顛覆整個軟件行業,甚至整個社會數字化生產力形態的話題,后面再好好介紹一下吧。

能力評估

基礎能力評估

e4016956-9322-11ee-939d-92fbcf53809c.jpg

Language Generation

Language Modeling:即根據前序tokens預測下一個token的能力,常用數據集有Penn Treebank、WikiText-103、和 Pile。在zero-shot的設定下,通過困惑度(perplexity)作為指標去評估。對于長依賴能力的評估,可以使用LAMBADA數據集

Conditional Text Generation:具體任務下的文本生成,比如機器翻譯、文本摘要、問答、更難的結構化數據生成、長文本生成等。常用指標有Accuracy、BLEU和Rouge,以及人工評價、利用LLM去評價

Code Synthesis:通過運行代碼測試pass rate,APPS、HumanEval、MBPP

主要問題:

Unreliable generation evaluation:LLM能生成與人類相當的質量的文本,基于現有的一些自動評價指標會低估這些文本質量。目前另一種方法是利用LLM去做評價,對單個文本進行評價和對多個候選文本進行比較來改進現有評價指標

Underperforming Specialized Generation:LLM 可能無法勝任需要特定領域知識或生成結構化數據的生成任務。在保持 LLM 原有能力的同時,為 LLM 注入專業知識并非易事。

Knowledge Utilization

問答(question answering)和知識補全(knowledge completion)兩個任務常被用來檢驗這個能力

Closed-Book QA:測試LLM根據給定的上下文信息回答而不使用外部數據,常使用accuracy作為評價指標,實驗表明更大的參數量或者數據量,都能提升該任務效果

Open-Book QA:可以利用外部資源來回答問題,常用accuracy和F1作為評價指標。為了使用外部數據,一般會用一個text retriever(獨立于LLM或者和LLM一起訓練)去選擇外部數據,甚至可以直接是利用搜索引擎。外部數據能提升回答效果,并且可以最新的數據,去回答time-sensitive問題。

Knowledge Completion:這個任務可以去評價一個LLM從預訓練數據中學到了什么和學到了多少知識。一般有知識圖譜補全任務和事實補全任務。目前對于特定領域的知識補全,LLM表現的不好。

推薦閱讀:

Retrieval-based LMs https://zhuanlan.zhihu.com/p/649820484

主要問題:

Hallucination:產生的信息要么與現有信息源相沖突(內在幻覺),要么無法得到現有信息源的驗證(外在幻覺),這在實際使用中影響較大。一般會通過在高質量數據和人工反饋上進行對齊微調,另外通過整合外部信息源提供可信的信息也有助于減少幻覺

Knowledge recency:LLM 的參數知識很難及時更新。用外部知識源,比如搜索引擎,把搜索結果作為context去增強 LLM 是解決這一問題的實用方法。然而,如何有效更新 LLM 內部的知識仍是一個有待解決的研究課題。

推薦閱讀:

大模型的幻覺問題調研: LLM Hallucination Survey https://zhuanlan.zhihu.com/p/642648601

Complex Reasoning

復雜推理是指理解并利用輔助證據或邏輯推理得出結論或做出決定的能力

Knowledge Reasoning:一般使用LLM的CoT能力去觸發step by step推理能力。LLM容易生成一些錯誤的中間步驟,導致最終的錯誤結果,有研究使用特殊的解碼和集成策略去解決這個問題

Symbolic Reasoning:知識推理任務依靠邏輯關系和事實知識證據來回答給定問題

Mathematical Reasoning:數學推理任務需要綜合運用數學知識、邏輯和計算來解決問題或生成證明陳述。

主要問題:

Reasoning inconsistency:LLM 可能會在無效的推理路徑后生成正確的答案,或者在正確的推理過程后生成錯誤的答案,從而導致得出的答案與推理過程不一致。要解決這個問題,可以利用過程級反饋對 LLM 進行微調,使用多種推理路徑組合,并通過自我反思或外部反饋完善推理過程。

Numerical computation:LLM 在數字計算方面面臨困難,尤其是在前期訓練中很少遇到的符號。除了使用外部數學工具外,將數字標記化為單個標記也是提高 LLM 算術能力的有效設計選擇。

高級能力評估

e41f3134-9322-11ee-939d-92fbcf53809c.jpg

Human Alignment

對齊人類價值一般會從helpfulness、honesty、safety和harmlessness角度去評估,通過alignment tuning和高質量的預訓練數據,可以提高這方面的能力

Interaction with External Environment

一般會在虛擬環境中進行測試評估,通過對生成的action plans進行可執行性和正確性評估以及在現實環境中實驗的成功率去評價該能力。最近也有一些研究在虛擬環境做基于LLM的多智能體協作的工作。

Tool Manipulation

將工具使用API封裝給LLM調用、ChatGPT的插件等都是工具的形式,驗證LLM工作操作的能力一般會使用一些推理任務去評估。隨著工具的增多,LLM有限的context導致其無法很好的利用這些工具反饋的信息,現在的做法是將這些信息存儲為embedding使用

基準和經驗性評估

Comprehensive Evaluation Benchmarks

MMLU

BIG-bench、BIG-bench-Lite、BIG-bench hard

HELM

Human-level test benchmarks:AGIEval、MMCU、M3KE、C-Eval、Xiezhi

Empirical Ability Evaluation
論文作者通過在閉源大模型(ChatGPT, Claude, Davinci003 and Davinci002)和開源大模型(LLaMA 7B、Pythia 7B和12B、Falcon 7B,經過instruction-tuned的Vicuna 7B、Alpaca 7B、ChatGLM 6B)上做了一些實驗評估,得到了一些結論

閉源大模型相比開源大模型,效果更好,尤其是ChatGPT

ChatGPT 和 Davinci003 在與環境互動和工具操作任務方面表現更佳

所有模型在難度很大的推理任務中都表現不佳

instruction-tuned model效果要優于base model

這些小型開源模型在數學推理、與環境互動和工具操作任務方面表現不佳

在Human Alignment任務上,開源模型的表現方差較大

作為最新發布的型號,Falcon-7B 性能不俗,尤其是在語言生成任務方面

推薦閱讀:

LLM Evaluation 如何評估一個大模型? https://zhuanlan.zhihu.com/p/644373658

A Survey on Evaluation of Large Language Models https://github.com/MLGroupJLU/LLM-eval-survey

一些Leaderboard

MMLU

Chatbot Arena

BIG-bench

Open LLM Leaderboard

SuperCLUE

C-Eval

GaoKao-Bench

AlpacaEval

OpenCompass

Prompt設計指南

原則:

① 清楚地表達任務目標;

② 分解成簡單、詳細的子任務;

③ 提供少量演示;

④ 使用模型友好格式

任務描述

描述越細節越好;

告訴LLM自己是某方面的專家;

告訴LLM更多應該做什么而不是不應該做什么;如果不希望太長的輸出,可以使用“Question: Short Answer: ”或者"in a or a few words”, “in one of two sentences”.

輸入數據

對于要求提供事實性知識的問題,可以先通過搜索引擎檢索相關文檔,然后將其串聯到提示語中作為參考;

為了突出提示中的某些重要部分,請使用特殊標記,如引號("")和換行符( )。您也可以同時使用這兩種符號來強調

上下文信息

對于復雜的任務,可以清楚地描述完成任務所需的中間步驟,例如:Please answer the question step by step as: Step 1 - Decompose the question into several sub-questions, · · ·

如果您想讓 LLM 為文本打分,則有必要詳細說明評分標準,并提供示例作為參考

當 LLM 根據上下文生成文本時(例如,根據購買歷史記錄進行推薦),向它們解釋根據上下文生成的結果有助于提高生成文本的質量。

示例(Demonstration):

格式良好的上下文示例對指導 LLM 非常有用,尤其是在制作格式復雜的輸出時。

在進行few-shot CoT提示時,也可以使用 "Let’s think step-by-step "的提示語,而且少量示例之間應該用" "分隔,而不是句號。

檢索與上下文相似的示例去補充LLM任務相關的領域知識,為了獲取更多的示例,可以先搜索問題的答案,然后再把問題和答案拼在一起去檢索

提示中語境范例的多樣性也很有用。如果不容易獲得多樣化的問題,也可以設法保持問題解決方案的多樣性。

在使用chat-based LLM時,可以將示例分解為多輪對話形式

復雜且詳細的示例可以幫助LLM回答復雜問題

由于一個符號序列通??煞譃槎鄠€片段(如 i1、i2、i3 -→ i1、i2 和 i2、i3),因此前面的片段可作為上下文中的范例,引導 LLM 預測后面的片段,同時提供歷史信息。

上下文中的示例和提示組件的順序很重要。對于很長的輸入數據,問題的位置(第一個或最后一個)也會影響性能。

如果無法從現有數據集中獲取上下文示例,另一種方法是使用 LLM 本身生成的zero-shot示例

其他設計

讓LLM在輸出的時候檢測內容是否正確。如Check whether the above solution is correct or not.

如果LLM不能很好的解決問題,可以讓LLM使用外部API工具,如function calling能力

提示語應自成一體,最好不要在上下文中使用代詞(如 it 和 they)。

在使用 LLM 比較兩個或多個示例時,順序對性能影響很大。

在提示之前,為 LLM 分配一個角色非常有用,可以幫助它更好地完成以下任務指令

與其他語言相比,OpenAI 模型可以更好地用英語執行任務。因此,首先將輸入內容翻譯成英語,然后將其輸入 LLM 是非常有用的。

對于多選題,限制 LLM 的輸出空間是非常有用的。您可以使用更詳細的解釋,也可以只對對數施加限制。

對于基于排序的任務(如推薦),我們可以為未排序的項目分配指標(如 ABCD),并指示 LLM 直接輸出排序后的指標,而不是在排序后直接輸出每個項目的完整文本

審核編輯:黃飛

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

    關注

    0

    文章

    326

    瀏覽量

    15029
  • OpenAI
    +關注

    關注

    9

    文章

    880

    瀏覽量

    6022
  • 大模型
    +關注

    關注

    2

    文章

    1804

    瀏覽量

    1388
  • LLM
    LLM
    +關注

    關注

    0

    文章

    217

    瀏覽量

    246

原文標題:萬字長文入門大語言模型(LLM)

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    了解大型語言模型 (LLM) 領域中的25個關鍵術語

    1.LLM(大語言模型)大型語言模型(LLMs)是先進的人工智能系統,經過大量文本數據集的訓練,可以理解和生成類似人類的文本。他們使用深度學
    的頭像 發表于 05-10 08:27 ?853次閱讀
    了解大型<b class='flag-5'>語言</b><b class='flag-5'>模型</b> (<b class='flag-5'>LLM</b>) 領域中的25個關鍵術語

    LLM之外的性價比之選,小語言模型

    。然而在一些對實時性要求較高的應用中,比如AI客服、實時數據分析等,大語言模型并沒有太大的優勢。 ? 在動輒萬億參數的LLM下,硬件需求已經遭受了不小的挑戰。所以面對一些相對簡單的任務,規模較小的小
    的頭像 發表于 06-03 05:15 ?1423次閱讀
    <b class='flag-5'>LLM</b>之外的性價比之選,小<b class='flag-5'>語言</b><b class='flag-5'>模型</b>

    【大語言模型:原理與工程實踐】大語言模型的評測

    和安全性。行業模型的評測則針對特定領域的能力,整體能力的評測則從宏觀角度評估模型的通用性。在基座模型的評測中,除了自回歸損失和困惑度等指標外,還需要關注公開的大語言
    發表于 05-07 17:12

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

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

    基于Transformer的大型語言模型LLM)的內部機制

    本文旨在更好地理解基于 Transformer 的大型語言模型LLM)的內部機制,以提高它們的可靠性和可解釋性。 隨著大型語言模型
    的頭像 發表于 06-25 15:08 ?1112次閱讀
    基于Transformer的大型<b class='flag-5'>語言</b><b class='flag-5'>模型</b>(<b class='flag-5'>LLM</b>)的內部機制

    大型語言模型的應用

    ?? 大型語言模型LLM) 是一種深度學習算法,可以通過大規模數據集訓練來學習識別、總結、翻譯、預測和生成文本及其他內容。大語言模型
    的頭像 發表于 07-05 10:27 ?1718次閱讀

    基于MNN在個人設備上流暢運行大語言模型該如何實現呢?

    LLM(大語言模型)因其強大的語言理解能力贏得了眾多用戶的青睞,但LLM龐大規模的參數導致其部署條件苛刻;
    的頭像 發表于 07-20 10:49 ?815次閱讀
    基于MNN在個人設備上流暢運行大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>該如何實現呢?

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

    語言模型涉及數據的通常有有多個階段(Aligning language models to follow instructions [1] ):pre-train、sft(supervised
    的頭像 發表于 09-19 10:00 ?658次閱讀
    大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>(<b class='flag-5'>LLM</b>)預訓練數據集調研分析

    現已公開發布!歡迎使用 NVIDIA TensorRT-LLM 優化大語言模型推理

    NVIDIA 于 2023 年 10 月 19 日公開發布 TensorRT-LLM ,可在 NVIDIA GPU 上加速和優化最新的大語言模型(Large Language Models)的推理性
    的頭像 發表于 10-27 20:05 ?606次閱讀
    現已公開發布!歡迎使用 NVIDIA TensorRT-<b class='flag-5'>LLM</b> 優化大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>推理

    Hugging Face LLM部署大語言模型到亞馬遜云科技Amazon SageMaker推理示例

    ?本篇文章主要介紹如何使用新的Hugging Face LLM推理容器將開源LLMs,比如BLOOM大型語言模型部署到亞馬遜云科技Amazon SageMaker進行推理的示例。我們將部署12B
    的頭像 發表于 11-01 17:48 ?535次閱讀
    Hugging Face <b class='flag-5'>LLM</b>部署大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>到亞馬遜云科技Amazon SageMaker推理示例

    基于檢索的大語言模型簡介

    簡介章節講的是比較基礎的,主要介紹了本次要介紹的概念,即檢索(Retrieval)和大語言模型LLM
    的頭像 發表于 11-15 14:50 ?429次閱讀
    基于檢索的大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>簡介

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

    隨著ChatGPT的快速發展,基于Transformer的大型語言模型(LLM)為人工通用智能(AGI)鋪平了一條革命性的道路,并已應用于知識庫、人機界面和動態代理等不同領域。然而,存在一個普遍
    的頭像 發表于 11-27 17:37 ?614次閱讀
    Long-Context下<b class='flag-5'>LLM</b><b class='flag-5'>模型</b>架構<b class='flag-5'>全面</b>介紹

    一文詳解LLM模型基本架構

    LLM 中非常重要的一個概念是 Token,我們輸入給 LLM 和它輸出的都是 Token。Token 在這里可以看做語言的基本單位,中文一般是詞或字(其實字也是詞)。比如:”我們喜歡 Rust
    發表于 12-25 10:38 ?1360次閱讀
    一文詳解<b class='flag-5'>LLM</b><b class='flag-5'>模型</b>基本架構

    2023年大語言模型(LLM)全面調研:原理、進展、領跑者、挑戰、趨勢

    大型語言模型(LLM)是基于人工智能的先進模型,經過訓練,它可以密切反映人類自然交流的方式處理和生成人類語言。這些
    的頭像 發表于 01-03 16:05 ?621次閱讀
    2023年大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>(<b class='flag-5'>LLM</b>)<b class='flag-5'>全面</b>調研:原理、進展、領跑者、挑戰、趨勢

    語言模型(LLM)快速理解

    自2022年,ChatGPT發布之后,大語言模型(LargeLanguageModel),簡稱LLM掀起了一波狂潮。作為學習理解LLM的開始,先來整體理解一下大
    的頭像 發表于 06-04 08:27 ?218次閱讀
    大<b class='flag-5'>語言</b><b class='flag-5'>模型</b>(<b class='flag-5'>LLM</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>