成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

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

Disclaimer: 這篇文章算是一個 quick research memo,是從我近期的一個分享大綱里 edit 出來的,做了一些刪減和補充;現階段開源社區對于 LLM 訓練清楚 / 不清楚的地方同時存在,我盡量做到引用 / 討論的內容都是有切實證據,而不是基于流言。很多的內容是我跟對應論文的原作者直接討論過的。但即便這樣,我的 take 也可能有誤,很多也討論不出來,所以請大家直接在評論區 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 的目標是對齊,zero-shot /cross lingual 是副產物
  • 這篇文章用的 7B 的 Reward model 來對應 175B 的 Policy model,然后被 DeepSpeed Chat 以及之后一系列 RL 的開源工作 follow,這種做法應該是錯的。
  • 正確的做法應該是用 Reward model scale up 換取 policy model 減小,見 [Scaling Laws for Reward Model Overoptimization](https://arxiv.org/abs/2210.10760) — 也就是說把兩個模型大小換過來,用 175B 的 reward 去 PPO 7B 的 policy
  • 模型上線現階段 10-50B 是一個比較跑得起的量級,再大太貴了
  • FLANv1 和 T0 的目標是 zero-shot,所以不對齊

然后是 Self-instruct

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

注意 self-instruct 的重點

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

圖片圖片

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

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

2 - LLaMA 出現之后

  • Alpaca:起始文章,但是模型本身強度并不多高
  • Vicuna
  • 在開源中只做對話強度不錯,格式符合人類喜好,生成內容多,unique token 多
  • Automatic eval 中,可能 in-context learning /reasoning/knowledge suboptimal (體現在 MMLU,BBH 分數),不是說它不行,而是說它可以更好
  • 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 — 關注他們選數據的方法,推薦花一個小時的時間把他們的 [數據](https://huggingface.co/datasets/GAIR/lima) 有感情地朗讀一遍,這樣就知道什么樣的 SFT 的數據是好數據了
  • Dromedary: Principle-Driven Self-Alignment of Language Models from Scratch with Minimal Human Supervision — 關注他們 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
  • 結果非常 mix,沒辦法下結論哪種 mixture 好
  • 但是知道哪種不好:NLP benchmark

3 - Eval 怎么做

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

沒有區分度的例子:

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

那么 Pretrain 建議看哪些呢?

  • 區分度,模型強弱需要能一眼看出
  • 分方向,現階段可以暫時分成
  • 英文知識 — 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
  •  這個數據集很穩定,基本上沒有 sensitivity issue
  • Reasoning:
  • GSM8k: 也比較穩定,但要注意答案提取函數的提出率,低于九十的話得多加 regular expression
  • BBH - Algorithmic:
  • 不是很穩定,需要注意答案提出率
  • BBH - Language:
  • 不是很穩定,需要注意答案提出率 — Chain-of-thought Hub 馬上會出一個答案提出率對于結果的 sensitivity 的分析,結論是 BBH 比較 sensitive
  • 現在除了增大模型之外,還不清楚哪些操作可以增加 BBH 數據集上的分數
  • Coding:
  • Human Eval / MBPP: 似乎比較穩定但需要注意做 unbiased estimation
  • 先看上面的幾個數據集,分數能夠 match llama 之后,就看 MATH
  • MATH
  • 超級難,GPT-4 的分數
  • 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
  • 泛化?— 應該是比較強的,泛化一般而言跟基礎模型大小正相關,跟 SFT 數據總量負相關,跟 SFT 數據豐富度正相關
  • 如果不是 GPT-4
  • Minerva / PaLM-2: 34.3
  • Galactica: 33.6 — 這篇文章操作很好,因為 Hallucination 被噴下架導致重要性被嚴重低估
  • 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 分

對于一個已經 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 用戶偏好了,這個時候只能人做
  • 如果有很大的,已經訓練好了的 reward model,可以用它 eval 上線的小型 / 中等模型,這個其實跟人做 eval 區別不大
  • 對于一個很大的 Policy Model
  • Online iterative RLHF 前期怎樣都需要需要 expert eval
  • 后期需要 expert eval [with AI assistance](https://arxiv.org/abs/2206.05802)

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

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

回復越長,GPT-4 越喜歡,分越高

4 - FLANv2 的效果,Long-Context

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

圖片

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

注意區分數據泄漏和分布內泛化

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

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

圖片圖片

注意這里 FlanT5 和 T0pp 只有 instruction 的數據集有區別,但是 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 構造 instruction tuning 數據集,基于wizardlm的方法,使用了 chatgpt 來生成復雜指令和對應的回答
  • HumanEval,DS-1000 僅次于 GPT-4,超過 Claude / Bard
  • base model 用的是 StarCoder,這意味著 The Stack V3 的質量再次得到驗證,同時注意 pretrain code data 可以過多個 epoch 但網頁只過一個 epoch
  • Phi-1: Textbooks Are All You Need
  • Pretrain 數據集來源于 filtered code + prompt ChatGPT
  • Instruction tuning 的數據集來自于 prompt ChatGPT
  • base model 只有 1B

怎么評價

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

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

圖片圖片

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

6 - Putting them together: 能力平衡

目標:

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

思路

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

7 - 總結

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

2021-09-16 15:06:33

漏洞管理漏洞網絡攻擊

2009-03-19 10:40:02

職業分析經驗行業

2020-02-24 19:50:45

面試工程師經驗總結

2014-04-29 10:32:44

編程課程編程

2015-08-21 14:58:33

浪潮

2009-03-12 16:32:00

CCNACCNP思科認證

2022-07-02 08:40:00

并發編程

2020-10-20 06:45:48

編程高并發

2009-08-24 11:14:57

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

2013-08-28 11:21:05

2018-11-06 15:49:27

2022-01-26 18:17:30

微軟Windows 11Windows

2018-09-04 15:15:56

程序員開發時間

2010-05-31 16:01:20

百度廣告管家

2013-02-25 15:02:05

Windows Blu

2010-02-25 11:14:32

Linux內核發布

2024-06-17 07:50:00

2017-10-30 11:04:19

美團無人新零售
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久99国产精品免费 | 免费在线h视频 | 亚洲人在线观看视频 | 美国黄色毛片 | 伊人精品在线 | 在线一区二区观看 | 亚洲欧美日韩网站 | 欧美一级免费 | 久草网站 | 久久综合伊人一区二区三 | 91精品国产91久久综合桃花 | 国产一区二区三区色淫影院 | 国产乱码久久久久久 | 九七午夜剧场福利写真 | 亚洲国产欧美一区 | 免费黄色av| 一级片免费视频 | 污免费网站 | 免费的av网站 | 国产高清视频在线观看 | 国产一区 | 大香网伊人 | 国产免费一区二区 | 欧洲高清转码区一二区 | 一区二区在线不卡 | 精品福利一区二区三区 | 一区二区三区高清 | 国产精品久久久久久久久免费相片 | 在线观看亚洲 | 一区二区三区视频在线观看 | xxxxx黄色片 欧美一区免费 | 亚洲福利av | 九九热这里只有精品在线观看 | 99爱国产| 97伊人 | 久久精品小视频 | 国产精品久久久久久久久久久久 | 国产高清自拍视频在线观看 | 久久蜜桃av一区二区天堂 | 日本二区 | 天天干天天玩天天操 |