自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

過去三個月,LLaMA系模型發(fā)展如何?指令微調(diào)的核心問題又是什么?

人工智能 新聞
這篇文章算是一個 quick research memo,是從我近期的一個分享大綱里 edit 出來的,做了一些刪減和補充。mo

符堯(yao.fu@ed.ac.uk),愛丁堡大學(xué) (University of Edinburgh) 博士生,本科畢業(yè)于北京大學(xué)。

ChatGPT 大火之后,在 2023 年 2 月 24 日,LLaMA 的出現(xiàn)讓 instruction tuning 這個方向變得火熱;3 月 18 日,Alpaca 讓大家看到從成熟的模型 distill 小模型成為還不錯的 ChatBot 的可能性,從而引發(fā)羊駝系模型寒武紀大爆發(fā)。但僅僅過去三個月,大家開始發(fā)現(xiàn)意識到用 ChatGPT 的數(shù)據(jù)訓(xùn)練 LLaMA 的各種問題。本文回顧在過去三個月內(nèi)的 LLaMA 系模型的發(fā)展,討論 Instruction Tuning 的下一步挑戰(zhàn)。

Disclaimer: 這篇文章算是一個 quick research memo,是從我近期的一個分享大綱里 edit 出來的,做了一些刪減和補充;現(xiàn)階段開源社區(qū)對于 LLM 訓(xùn)練清楚 / 不清楚的地方同時存在,我盡量做到引用 / 討論的內(nèi)容都是有切實證據(jù),而不是基于流言。很多的內(nèi)容是我跟對應(yīng)論文的原作者直接討論過的。但即便這樣,我的 take 也可能有誤,很多也討論不出來,所以請大家直接在評論區(qū) comment,積極參與討論,真理越辯越明。

目錄

圖片圖片

1 - 起源

最開始三篇

  • InstructGPT: Training language models to follow instructions with human feedback
  • FLANv1: Finetuned Language Models Are Zero-Shot Learners
  • T0: Multitask Prompted Training Enables Zero-Shot Task Generalization

對比

  • InstructGPT 的目標(biāo)是對齊,zero-shot /cross lingual 是副產(chǎn)物
  • 這篇文章用的 7B 的 Reward model 來對應(yīng) 175B 的 Policy model,然后被 DeepSpeed Chat 以及之后一系列 RL 的開源工作 follow,這種做法應(yīng)該是錯的。
  • 正確的做法應(yīng)該是用 Reward model scale up 換取 policy model 減小,見 [Scaling Laws for Reward Model Overoptimization](https://arxiv.org/abs/2210.10760) — 也就是說把兩個模型大小換過來,用 175B 的 reward 去 PPO 7B 的 policy
  • 模型上線現(xiàn)階段 10-50B 是一個比較跑得起的量級,再大太貴了
  • FLANv1 和 T0 的目標(biāo)是 zero-shot,所以不對齊

然后是 Self-instruct

  • Self-Instruct: Aligning Language Models with Self-Generated Instructions

注意 self-instruct 的重點

  • Base model 可以是任意,不需要是經(jīng)過了 alignment 之后的模型 (ChatGPT)
  • 復(fù)現(xiàn)了從初代 davinci 到 text-davinci-001 的過程 — 非常 insightful!!

圖片圖片

然后是 FLANv2 — 很重要,我可能讀了十遍以上,建議背誦全文

  • Scaling Instruction-Finetuned Language Models
  • 效果除了不加 human preference 之外其他都加,等下專門討論
  • Human preference 確實是喜歡能說的,但是能說的模型不一定能干活。Flan 能干活,但是不能說,跟程序員一樣

2 - LLaMA 出現(xiàn)之后

  • Alpaca:起始文章,但是模型本身強度并不多高
  • Vicuna
  • 在開源中只做對話強度不錯,格式符合人類喜好,生成內(nèi)容多,unique token 多
  • Automatic eval 中,可能 in-context learning /reasoning/knowledge suboptimal (體現(xiàn)在 MMLU,BBH 分數(shù)),不是說它不行,而是說它可以更好
  • GPT-4 eval 到底行不行還不好說,LMSys 團隊自己說行,前提是 prompt engineering 做得足夠到位:Judging LLM-as-a-judge with MT-Bench and Chatbot Arena
  • 另外 LMSys 的團隊在 efficiency 方面非常強,模型的 serve 看 [vllm](https://github.com/vllm-project/vllm) 這個 project,或許是開源最快的
  • 然后一系列以 GPT-4 做 judge 然后號稱自己達到了 GPT3.5 x% 水準的模型,全部不推薦,因為 Eval 不可靠
  • 但是存在幾篇工作在 alignment 的時候沒有依賴 ChatGPT,這些工作推薦,它們包括
  • LIMA: Less Is More for Alignment — 關(guān)注他們選數(shù)據(jù)的方法,推薦花一個小時的時間把他們的 [數(shù)據(jù)](https://huggingface.co/datasets/GAIR/lima) 有感情地朗讀一遍,這樣就知道什么樣的 SFT 的數(shù)據(jù)是好數(shù)據(jù)了
  • Dromedary: Principle-Driven Self-Alignment of Language Models from Scratch with Minimal Human Supervision — 關(guān)注他們 prompt engineering 的方法,這個基本上是一個 LLaMA 版的 Constitutional AI - SFT
  • 然后是一些 paper (終于) 開始分析 instruction tuning 的 data mixture
  • Tulu: How Far Can Camels Go? Exploring the State of Instruction Tuning on Open Resources
  • 結(jié)果非常 mix,沒辦法下結(jié)論哪種 mixture 好
  • 但是知道哪種不好:NLP benchmark

3 - Eval 怎么做

首先,不要在一堆 benchmark 上算分數(shù)看平均,特別是不要在 GPT-3 的測試任務(wù)上看平均,因為平均下來大家都一樣;推薦只看核心的有區(qū)分度的 benchmark

沒有區(qū)分度的例子:

  • LM-Eval-Harness(https://github.com/EleutherAI/lm-evaluation-harness) ,benchmark 太多,平均下來掩蓋優(yōu)質(zhì) benchmark
  • 這里面其實涵蓋了 MMLU 和 MATH,但是被其他數(shù)據(jù)集平均了
  • Summarization + Rouge / Translation + BLEU:
  • Rouge 和 BLEU 模型強弱只有四五分的差別,數(shù)字太小 v.s. accuracy 下模型強弱是 90 分和 10 分的差別,數(shù)字足夠大
  • Rouge 和 BLEU 和人類偏好不 align — 注意 BLEU 也不完全 align

那么 Pretrain 建議看哪些呢?

  • 區(qū)分度,模型強弱需要能一眼看出
  • 分方向,現(xiàn)階段可以暫時分成
  • 英文知識 — MMLU
  • 中文知識 — C-Eval
  • 推理 — GSM8k / BBH
  • 代碼 — HumanEval / MBPP
  • 解決上面四項平衡之后,可以接著做
  • MATH:高難度 reasoning
  • Dialog:這個可能只有 human eval 才行,automatic eval 搞不定

接下來講 Automatic Eval 

Automatic Eval - 適合 pretrained checkpoint - 基本上可以看  https://github.com/FranxYao/chain-of-thought-hub 的做法

  • Knowledge: MMLU
  •  這個數(shù)據(jù)集很穩(wěn)定,基本上沒有 sensitivity issue
  • Reasoning:
  • GSM8k: 也比較穩(wěn)定,但要注意答案提取函數(shù)的提出率,低于九十的話得多加 regular expression
  • BBH - Algorithmic:
  • 不是很穩(wěn)定,需要注意答案提出率
  • BBH - Language:
  • 不是很穩(wěn)定,需要注意答案提出率 — Chain-of-thought Hub 馬上會出一個答案提出率對于結(jié)果的 sensitivity 的分析,結(jié)論是 BBH 比較 sensitive
  • 現(xiàn)在除了增大模型之外,還不清楚哪些操作可以增加 BBH 數(shù)據(jù)集上的分數(shù)
  • Coding:
  • Human Eval / MBPP: 似乎比較穩(wěn)定但需要注意做 unbiased estimation
  • 先看上面的幾個數(shù)據(jù)集,分數(shù)能夠 match llama 之后,就看 MATH
  • MATH
  • 超級難,GPT-4 的分數(shù)
  • naive prompting: 42
  • → complexity based prompting: 50 https://openreview.net/forum?id=yf1icZHC-l9
  • → progressive hint prompting: 53 https://arxiv.org/abs/2304.09797
  • → majority voting over 18k: 69.6
  • → best of n with outcome based reward modeling: 72.4
  • → best of n with [process-based reward modeling](https://arxiv.org/abs/2305.20050): 78.2
  • → PPO + process-based reward modeling = ? 推測會上 90
  • 泛化?— 應(yīng)該是比較強的,泛化一般而言跟基礎(chǔ)模型大小正相關(guān),跟 SFT 數(shù)據(jù)總量負相關(guān),跟 SFT 數(shù)據(jù)豐富度正相關(guān)
  • 如果不是 GPT-4
  • Minerva / PaLM-2: 34.3
  • Galactica: 33.6 — 這篇文章操作很好,因為 Hallucination 被噴下架導(dǎo)致重要性被嚴重低估
  • 88B paper + 7B code + 7B encyclopedias, textbooks and educational material + 2B KB + 1B CC + 0.4B prompt /instruction * 4 epochs
  • LLaMA 65B: 10.6
  • 其他:低于 10 分

對于一個已經(jīng) finetune 成了 chatbot 的模型

  • 首先把上述 benchmark 用 few-shot 的方式過一遍,確保不要掉點
  • 如果只是 dialog finetuning 的話可能會傷已有的能力 (MMLU / BBH)
  • 如果掉點,則考慮 LM mixing / FLANv2 mixing
  • 注意 Chatbot 的 few-shot prompting 要用 dialog 的版本因為 single round 里塞很多 in-context example 模型可能不 instruction-following 不夠強,見 CoT Hub 的 standard prompt library(https://github.com/FranxYao/chain-of-thought-hub/blob/main/spl/gsm8k/chat/few_shot_cot.chatml)
  • 然后就是去 eval 用戶偏好了,這個時候只能人做
  • 如果有很大的,已經(jīng)訓(xùn)練好了的 reward model,可以用它 eval 上線的小型 / 中等模型,這個其實跟人做 eval 區(qū)別不大
  • 對于一個很大的 Policy Model
  • Online iterative RLHF 前期怎樣都需要需要 expert eval
  • 后期需要 expert eval [with AI assistance](https://arxiv.org/abs/2206.05802)

那么能不能用稍微弱一點的模型做 eval 呢?— 可以用,但是注意 query 的難度和分布,注意 prompt engineering

  • 如果不經(jīng)過 prompt engineering ,肯定不行,因為各種 bias
  • 如果 query 難度不夠,diversity 不夠,也不一定行
  • 如果 query 難度足夠 + 經(jīng)過了瘋狂 prompt engineering,則對于 information seeking 類型的 eval ,或許可以,see https://arxiv.org/abs/2306.05685
  • 但是對于 reasoning 相關(guān),non-information seeking 相關(guān)(比如 TLDR),又不一定行
  • 對于 information seeking 相關(guān)的 query 會 biased 到長的回復(fù)

回復(fù)越長,GPT-4 越喜歡,分越高

4 - FLANv2 的效果,Long-Context

FLANv2 是一個很神奇的數(shù)據(jù)集,它除了不加 user preference 之外什么都加

圖片

  • 注意 CoT prompting
  • 只在 62B 之后才會比 Direct 更好
  • 不加 knowledge (MMLU) 只加 reasoning (BBH)
  • FLANv2 增加的效果有
  •  knowledge (MMLU)
  • reasoning (BBH)
  • Multilingual (TyDiQA / MGSM)
  •  注意 FLAN 的作者們驗證過,沒有數(shù)據(jù)泄露
  • 注意以上內(nèi)容對 in-context learning 和 zero-shot 均成立
  • 但是 FLAN 的回復(fù)短,所以不加 user preference — Flan 的性格就像直男,能干活兒,話太少

注意區(qū)分數(shù)據(jù)泄漏和分布內(nèi)泛化

  • 如果一個數(shù)據(jù)集的測試集被用來訓(xùn)練模型,叫做數(shù)據(jù)泄漏,此時模型的分數(shù)會特別高,不可信
  • 如果一個數(shù)據(jù)集的訓(xùn)練集被用來訓(xùn)練模型,叫做分布內(nèi)泛化,此時模型的分數(shù)是可信的
  • 有些數(shù)據(jù)集分布內(nèi)泛化的難度不高,比如 MMLU / C-Eval,基本上做 data scaling 就可以加分
  • 有些數(shù)據(jù)集,如果模型不強,即使看過了訓(xùn)練集,模型在測試集上也做不好,比如 GSM8K — 這種類型的數(shù)據(jù)集是優(yōu)質(zhì) eval 數(shù)據(jù)集
  • 代碼的難度可能介于 MMLU 和 GSM8k 之間,分布內(nèi)泛化不像 GSM8K 那么難,但也不簡單

然后根據(jù)最近Zero-Scrolls 上的數(shù)據(jù)(https://www.zero.scrolls-benchmark.com/leaderboard),F(xiàn)LAN 還可以加 Long-context Reasoning ,不知道為什么

圖片圖片

注意這里 FlanT5 和 T0pp 只有 instruction 的數(shù)據(jù)集有區(qū)別,但是 FlanT5 僅靠 T5 的 relative positional encoding 來 naively scale 到 8k 的 context length 會顯著高于 T0

Long Context 或許 data engineering 跟 neural architecture engineering 同樣重要

5 - 代碼

兩篇文章的 data engineering 非常出色

  • WizardCoder: Empowering Code Large Language Models with Evol-Instruct
  • 通過不斷 prompt AlpacaCoder 構(gòu)造 instruction tuning 數(shù)據(jù)集,基于wizardlm的方法,使用了 chatgpt 來生成復(fù)雜指令和對應(yīng)的回答
  • HumanEval,DS-1000 僅次于 GPT-4,超過 Claude / Bard
  • base model 用的是 StarCoder,這意味著 The Stack V3 的質(zhì)量再次得到驗證,同時注意 pretrain code data 可以過多個 epoch 但網(wǎng)頁只過一個 epoch
  • Phi-1: Textbooks Are All You Need
  • Pretrain 數(shù)據(jù)集來源于 filtered code + prompt ChatGPT
  • Instruction tuning 的數(shù)據(jù)集來自于 prompt ChatGPT
  • base model 只有 1B

怎么評價

  • 一定要好好研究他們是如何 prompt base model 的 — 要對 base model 有信心,只要 MMLU / BBH / HumanEval 分高,它的潛力就超過你的想象
  • prompt 出來的數(shù)據(jù)集相當(dāng)于給 HumanEval / MBPP 這種比較短的算法題搞了一個超大訓(xùn)練集
  • 但是不可以認為它對著測試集優(yōu)化,因為它泛化的空間應(yīng)該大于 HumanEval / MBPP — 這個泛化空間跟 model scale 顯著正相關(guān)
  • 在此基礎(chǔ)上,比較難的點是
  • Repo-level code understanding /completion — HumanEval / MBPP 還是有點短
  • Ability balance — 如果照著 Phi-1 的做法,除了代碼之外的其他能力都會被沖掉

另外關(guān)于代碼和文本的 data mixture: https://arxiv.org/abs/2305.16264

圖片圖片

Continue training 時使用 50% 的代碼作為 data mixture 不會傷模型 language 的能力,反而會提升 coding 和 reasoning 

6 - Putting them together: 能力平衡

目標(biāo):

  • 構(gòu)造一個 instruction tuning data mixture,使得 dialog /coding 增加
  • 同時 MMLU (English knowledge) / C-Eval (Chinese knowledge) / BBH and GSM8K (reasoning) 不掉點
  • In-context learning 不掉點

思路

  • 可以用 FLAN 打底 — 它非常大幾乎相當(dāng)于 continue training
    考慮做一個中文版的 FLAN — 最近智源發(fā)的COIG-PC(https://huggingface.co/datasets/BAAI/COIG-PC) 似乎有點像
  • code 的部分參照 WizardCoder 和 Phi-1 的做法
  • 以上數(shù)據(jù)做好之后,搜 instruction tuning 的 data mixture and data curriculum 的超參數(shù)
  • 用上面提到的方法做 Eval

7 - 總結(jié)

  • 現(xiàn)階段 instruction tuning 核心問題是能力平衡
  • 基礎(chǔ)能力的 Eval 可以參照 Chain-of-thought Hub,但 dialog 還是得人來,且人也不一定 eval 得足夠好
  • FLAN 非常神奇,可以考慮做一個中文版
  • 抓緊把 instruction tuning 收尾,快點進到 reward modeling 階段
  • 注意要先把 reward modeling 本身做好,確保 reward model 有判斷力,再去做 PPO
  • 不要 reward model 還沒搞清楚就上 PPO ,步子邁太大容易扯到
責(zé)任編輯:張燕妮 來源: 機器之心
相關(guān)推薦

2021-09-16 15:06:33

漏洞管理漏洞網(wǎng)絡(luò)攻擊

2009-03-19 10:40:02

職業(yè)分析經(jīng)驗行業(yè)

2020-02-24 19:50:45

面試工程師經(jīng)驗總結(jié)

2014-04-29 10:32:44

編程課程編程

2015-08-21 14:58:33

浪潮

2009-03-12 16:32:00

CCNACCNP思科認證

2009-08-24 11:14:57

思科認證CCNA思科認證CCNP心得

2013-08-28 11:21:05

2022-07-02 08:40:00

并發(fā)編程

2020-10-20 06:45:48

編程高并發(fā)

2018-11-06 15:49:27

2022-01-26 18:17:30

微軟Windows 11Windows

2018-09-04 15:15:56

程序員開發(fā)時間

2010-05-31 16:01:20

百度廣告管家

2013-02-25 15:02:05

Windows Blu

2024-06-17 07:50:00

2017-10-30 11:04:19

美團無人新零售

2013-03-11 13:25:32

微軟公有云Azure
點贊
收藏

51CTO技術(shù)棧公眾號