?PaperWeekly 原創(chuàng) ·?作者 |?佀慶一
單位 |?中科院信息工程研究所
研究方向 |?視覺(jué)問(wèn)答
項(xiàng)目簡(jiǎn)稱(chēng):
Alpaca-CoT(當(dāng)羊駝?dòng)錾纤季S鏈)
項(xiàng)目標(biāo)題:
Alpaca-CoT: An Instruction Fine-Tuning Platform with Instruction Data Collection and Unified Large Language Models Interface
項(xiàng)目鏈接:
https://github.com/PhoebusSi/Alpaca-CoT
ChatGPT背后的技術(shù)
LLM:(Large Language Models)指經(jīng)過(guò)大規(guī)模預(yù)訓(xùn)練且體量較大的語(yǔ)言模型,一般是 transformer-based 模型。
IFT:(Instruction Fine-Tuning)指令微調(diào),指令是指用戶傳入的目的明確的輸入文本,指令微調(diào)用以讓模型學(xué)會(huì)遵循用戶的指令。?
CoT:(Chain-of-Thought)指令形式的一種特殊情況,包含 step-by-step 的推理過(guò)程。如下圖藍(lán)色部分所示。
定位
ChatGPT 的出現(xiàn)驗(yàn)證了大型語(yǔ)言模型 (LLM) 在通用人工智能 (AGI) 上的潛力。基于 LLaMA [1] 等 Large Language Models (LLMs) 的 instruction-tuning 研究(如,Alpaca [2])大幅度加速了復(fù)現(xiàn) ChatGPT 的進(jìn)程。Alpaca-CoT 希望在這個(gè)研究方向上做出適度的貢獻(xiàn),以推進(jìn) LLMs 的開(kāi)源進(jìn)程、降低 LLMs 研究和使用成本。?
具體來(lái)說(shuō),Alpaca-CoT 項(xiàng)目旨在探究如何更好地通過(guò) instruction-tuning 的方式來(lái)誘導(dǎo) LLM 具備類(lèi)似 ChatGPT 的交互和 instruction-following 能力。為此,我們廣泛收集了不同類(lèi)型的 instruction(尤其是 Chain-of-Thought)數(shù)據(jù)集,并將包含 LLaMA、ChatGLM、Bloom 在內(nèi)的多種 LLMs 集成進(jìn)來(lái)統(tǒng)一接口。
在這基礎(chǔ)上,我們基于 LLaMA 給出了深入細(xì)致的實(shí)證研究,以供未來(lái)工作參考。據(jù)我們所知,我們是首個(gè)將 CoT 拓展進(jìn) Alpaca 的工作,因此項(xiàng)目簡(jiǎn)稱(chēng)為?"Alpaca-CoT"。?
熱烈歡迎您向我們提供任何未被本項(xiàng)目收集的 instruction-tuning 及各類(lèi) tasks 數(shù)據(jù)集(或其來(lái)源)。我們將:
將這些數(shù)據(jù)收錄并進(jìn)行統(tǒng)一格式化處理,并注明來(lái)源;
用這些數(shù)據(jù)集 instruction finetune 一系列的 LLM(如 llama, ChatGLM 等),并開(kāi)源其 checkpoint;
進(jìn)行廣泛的實(shí)證研究以探究新收錄的數(shù)據(jù)集的作用。?
同時(shí)也歡迎您向我們指出(general 或特定能力上)表現(xiàn)不錯(cuò)的開(kāi)源 LLM,我們將:
將這些 LLM 集成到我們的平臺(tái)中,可以通過(guò)超參切換不同的 LLM;?
開(kāi)源該模型在我們框架下 IFT 后的 checkpoint。?
我們希望我們的項(xiàng)目能夠?yàn)榇笮驼Z(yǔ)言模型的開(kāi)源過(guò)程做出適度的貢獻(xiàn),并降低 NLP 研究人員上手 LLM 相關(guān)研究的門(mén)檻。
概述
近期,LLaMA [1] 顯示出驚人的 zero-shot 和 few-shot 能力,僅需較少的參數(shù)即可和 GPT-3.5 性能相當(dāng)(LLaMA-13B 顯著優(yōu)于 GPT-3(175B),LLaMA-65B 與 PaLM-540MB 相當(dāng)),明顯降低了訓(xùn)練、微調(diào)和使用 competitive 大型語(yǔ)言模型的成本。
最近,為了提高 LLaMA 的 instruction-following 能力,Stanford Alpaca [2] 借助 self-instruct [3] 的方式生成的 52K Englishi instruction-finetuning 數(shù)據(jù)對(duì) LLaMA 進(jìn)行了微調(diào),達(dá)到了客觀的效果。然而,目前該方向的研究仍然面臨著以下四個(gè)挑戰(zhàn):
即便僅對(duì) 7b 大小的 LLM fientune,依然對(duì)計(jì)算資源有著較高的要求;
用于 instruction finetuning 的開(kāi)源數(shù)據(jù)集較少,缺少資源整合;
缺少統(tǒng)一的平臺(tái),可以輕松切換不同的 LLMs 和不同類(lèi)型的 IFT 數(shù)據(jù);
缺乏各 instruction 類(lèi)型帶來(lái)的影響的實(shí)證研究,如響應(yīng)中文的能力和 CoT 能力。
為此,我們提出了 Alpaca-CoT 項(xiàng)目,該項(xiàng)目結(jié)合了相關(guān)的近期前沿技術(shù),具有以下優(yōu)勢(shì):?
僅需要較低計(jì)算資源即可高效完成對(duì) LLaMA 的微調(diào)。7b, 13b 和 30b 版本的 LLaMA 模型均可在單卡 80G A100 上完成訓(xùn)練。我們的代碼主要修改自 Alpaca-LoRA,其使用了 low-rank adaptation (LoRA) [4], PEFT 和 bitsandbytes 等技術(shù)來(lái)達(dá)到降低計(jì)算資源需求的效果;
我們發(fā)布的模型顯著提升了?CoT (reasoning) 能力;
我們發(fā)布的模型顯著提升了對(duì)中文指令的響應(yīng)能力;
維護(hù)了一個(gè)仍在不斷擴(kuò)大規(guī)模的 intruction-finetuning 的數(shù)據(jù)集集合。該集合包含了中文、英文和 CoT、code、story 等 instruction 數(shù)據(jù)。同時(shí),我們也維護(hù)了一個(gè)訓(xùn)練自各種 instruction 數(shù)據(jù)集的模型 checkpoint 集合。
集成了多種 LLMs 并統(tǒng)一了調(diào)用接口,可通過(guò)超參輕松切換。目前包含 LLaMA, ChatGLM [5] 和 Bloom [6],后續(xù)將持續(xù)加入更多,以供研究者們輕松調(diào)用和對(duì)比不同 LLMs。
提供了詳盡透徹的?Empirical Study,這里的 findings 可能會(huì)對(duì)促進(jìn)未來(lái) LLM 探索有一定的參考價(jià)值。
多接口統(tǒng)一的開(kāi)源平臺(tái)
為了便于研究者們?cè)?LLM 上做系統(tǒng)的 IFT 研究,我們收集了不同類(lèi)型的 instruction 數(shù)據(jù),集成了多種 LLM,并統(tǒng)一了接口,可以輕松定制化想要的搭配:
--model_type: 設(shè)置想要研究的LLM,目前已支持 [llama, chatglm 和 bloom],其中 llama 的英文能力較強(qiáng),chatglm 的中文能力較強(qiáng),bloom 關(guān)注多語(yǔ)種能力,后續(xù)將會(huì)集成更多的 LLMs。
--data: 設(shè)置用以 IFT 的數(shù)據(jù)類(lèi)型,以靈活特制想要的指令遵循能力,如追求較強(qiáng)的推理能力可設(shè)置 alpaca-cot,較強(qiáng)的中文能力可設(shè)置 belle1.5m,金融相關(guān)的響應(yīng)能力可設(shè)置 finance,code 和 story 生成可設(shè)置 gpt4all。?
--model_name_or_path: 與 --model_type 相對(duì)應(yīng),用來(lái)加載目標(biāo) LLM 的不同型號(hào)權(quán)重。如,要加載 llama 的 13b 的模型權(quán)重時(shí)可設(shè)置 decapoda-research/llama-13b-hf。
你可以在這里下載訓(xùn)練自各種類(lèi)型 instruction 數(shù)據(jù)的所有 checkpoints:
https://huggingface.co/QingyiSi/Alpaca-CoT/tree/main
#?單卡
CUDA_VISIBLE_DEVICES=0?python3?uniform_finetune.py?--model_type?llama?--model_name_or_path?decapoda-research/llama-7b-hf?\
????--data?alpaca-belle-cot?--lora_target_modules?q_proj?v_proj?
#?多卡
python3?-m?torch.distributed.launch?--nproc_per_node?4??\
????--nnodes=1?--node_rank=0?--master_addr=xxx?--master_port=yyy?uniform_finetune.py?\
????--model_type?llama?--model_name_or_path?decapoda-research/llama-7b-hf?\
????--data?alpaca-belle-cot?--lora_target_modules?q_proj?v_proj
然后,在 gernerate.py 中的 LoRA_WEIGHTS 設(shè)置成下載路徑,即可直接運(yùn)行模型的 inference 以查看模型效果。
指令數(shù)據(jù)集合
該集合仍在不斷更新和擴(kuò)增中??稍谝韵骆溄酉螺d和查看更多數(shù)據(jù)細(xì)節(jié):
https://huggingface.co/datasets/QingyiSi/Alpaca-CoT
數(shù)據(jù)統(tǒng)計(jì)
注意:下圖是截止到 2.26 日收集到的數(shù)據(jù)集的統(tǒng)計(jì)情況,僅作為 motivation 展示。目前已收集了更多數(shù)據(jù)集,如金融相關(guān),code 生成相關(guān)的指令數(shù)據(jù)集。
當(dāng)前的 instruction-finetuning 數(shù)據(jù)集合主要包含以下三個(gè)部分:
alpaca_data_cleaned.json: 包含 5 萬(wàn)左右英文指令數(shù)據(jù);
CoT_data.json: 包含 9 個(gè) CoT 數(shù)據(jù)集,共 7 萬(wàn)條左右數(shù)據(jù)(相關(guān)的數(shù)據(jù)集由 FLAN [7] 發(fā)布,我們統(tǒng)一了數(shù)據(jù) format);
belle_data_cn.json:? 包含 50 萬(wàn)左右中文指令數(shù)據(jù)(相關(guān)的中文 instruction 數(shù)據(jù)由 BELLE [8] 發(fā)布)。
數(shù)據(jù)下載
你可以在這里下載所有我們已經(jīng)統(tǒng)一格式后的 formatted 數(shù)據(jù):
https://huggingface.co/datasets/QingyiSi/Alpaca-CoT/tree/main
然后,將下載到的文件全部放到 data?folder:
https://github.com/PhoebusSi/alpaca-CoT/tree/main/data
數(shù)據(jù)格式
我們集合中的所有數(shù)據(jù)均已被轉(zhuǎn)化成相同的格式,每個(gè)樣本的格式如下:
[
{"instruction":?instruction?string,
"input":?input?string,?#?(may?be?empty)
"output":?output?string}
]
注意,對(duì)于 CoT 數(shù)據(jù)集,我們首先使用 FLAN 提供的 template 將其從原數(shù)據(jù)轉(zhuǎn)化成 Chain-of-Thought 的形式,之后再統(tǒng)一成以上格式。
https://github.com/google-research/FLAN/blob/main/flan/v2/templates.py
格式統(tǒng)一化的腳本可以在這里找到:
https://github.com/PhoebusSi/alpaca-CoT/blob/main/data/origin_cot_data/formating.py
您也可以標(biāo)注或生成(e.g., 采取 self-instruct 的做法)符合自己業(yè)務(wù)/專(zhuān)業(yè)需求的特定方向的 IFT 數(shù)據(jù)。如果同意開(kāi)源且質(zhì)量較好,我們會(huì)收集到我們維護(hù)的數(shù)據(jù)指令集合中并注明來(lái)源:
https://huggingface.co/datasets/QingyiSi/Alpaca-CoT/tree/main
模型效果
關(guān)于CoT和Chinese Instructions的消融對(duì)比
"w/o CoT" 和 "w/o CN" 分別表示用在 instruction-finetuning 期間不采用 CoT 數(shù)據(jù)和 Chinese instructions。?
下圖是需要推理能力的問(wèn)題上的表現(xiàn):
下圖是需要遵循中文指令的問(wèn)題上的表現(xiàn):
下圖是在較復(fù)雜問(wèn)題上的表現(xiàn):
從以上樣例可以看出,從我們完整數(shù)據(jù)集 collection(英文、中文和 CoT 指令數(shù)據(jù))中微調(diào)得到的模型可以顯著提高 reasoning 能力和響應(yīng)中文指令的能力。
更多能力展示
對(duì)比實(shí)驗(yàn)
CoT能力
下圖是引入 CoT 能力前(原 Alpaca)后(Ours w/CoT)的表現(xiàn)對(duì)比:
可以看出,我們的模型不僅可以給出準(zhǔn)確的答案,而且還可以給出對(duì)應(yīng)的思考過(guò)程。
遵循中文指令的能力
下圖是引入遵循中文指令能力前后在中文指令上的表現(xiàn)對(duì)比:
其中 Alpaca 未使用任何中文指令數(shù)據(jù)集,Belle 在更多的中文指令數(shù)據(jù)集中微調(diào)關(guān)注 multiple-lingual 的大語(yǔ)言模型 BLOOM。
可以看出,原模型 Alpaca 在第一個(gè)例子中無(wú)法準(zhǔn)確識(shí)別中文指令,在第三個(gè)例子中無(wú)法用中文響應(yīng)中文指令。而我們的模型表現(xiàn)基本與 Belle 持平。后續(xù),我們將會(huì)引入更多中文指令數(shù)據(jù),同時(shí)我們的 repository 將分出一個(gè) branch 專(zhuān)門(mén)探究中文交互能力。
下圖是引入遵循中文指令能力前后在英文指令上的表現(xiàn)對(duì)比:
可以看出,在中文指令數(shù)據(jù)集上微調(diào)后,并不會(huì)對(duì)模型 follow 英文指令造成負(fù)面影響。
總結(jié)
在 LLM 上的 IFT 研究是一個(gè) impressive 的方向,其加速了復(fù)現(xiàn) ChatGPT 的進(jìn)程。然而,由于 instruction 數(shù)據(jù)集的開(kāi)源工作較少,大模型訓(xùn)練需要極高計(jì)算資源等原因,目前相關(guān)的研究仍處于起始階段,幾乎被 OpenAI、微軟、Google、Meta 等大公司壟斷。
我們的工作 Alpaca-CoT 在解決這兩個(gè)問(wèn)題上各邁出了一小步:基于 Alpaca-LoRA 的技術(shù)路線(單機(jī)可訓(xùn))將不同的 LLM 集成進(jìn)來(lái),以降低不同 LLM 的計(jì)算資源消耗,同時(shí)持續(xù)收集、統(tǒng)一格式化指令數(shù)據(jù),以搭建出更方便的多接口統(tǒng)一的研究平臺(tái)。歡迎大家在我們的平臺(tái)上進(jìn)行自己的研究,一起為加速?gòu)?fù)現(xiàn) ChatGPT 而努力!
參考文獻(xiàn)
[1]. LLaMA: Open and Efficient Foundation Language Models https://arxiv.org/abs/2302.13971
[2]. Stanford Alpaca: An Instruction-following LLaMA model https://github.com/tatsu-lab/stanford_alpaca
[3]. Self-Instruct: Aligning Language Model with Self Generated Instructions https://arxiv.org/abs/2212.10560
[4]. LoRA: Low-Rank Adaptation of Large Language Models https://arxiv.org/pdf/2106.09685.pdf
[5].?ChatGLM: An Open Bilingual Dialogue Language Model https://github.com/THUDM/ChatGLM-6B
[6].?BLOOM: A 176B-Parameter Open-Access Multilingual Language Model https://arxiv.org/abs/2211.05100
[7]. FLAN: Scaling Instruction-Finetuned Language Models https://arxiv.org/abs/2210.11416
[8]. BELLE: Bloom-Enhanced Large Language model Engine https://github.com/LianjiaTech/BELLE
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類(lèi)優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)術(shù)熱點(diǎn)剖析、科研心得或競(jìng)賽經(jīng)驗(yàn)講解等。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來(lái)。
???稿件基本要求:
? 文章確系個(gè)人原創(chuàng)作品,未曾在公開(kāi)渠道發(fā)表,如為其他平臺(tái)已發(fā)表或待發(fā)表的文章,請(qǐng)明確標(biāo)注?
? 稿件建議以?markdown?格式撰寫(xiě),文中配圖以附件形式發(fā)送,要求圖片清晰,無(wú)版權(quán)問(wèn)題
? PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競(jìng)爭(zhēng)力稿酬,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算
???投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來(lái)稿請(qǐng)備注即時(shí)聯(lián)系方式(微信),以便我們?cè)诟寮x用的第一時(shí)間聯(lián)系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長(zhǎng)按添加PaperWeekly小編
??
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專(zhuān)欄吧
·文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-443963.html
·
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-443963.html
到了這里,關(guān)于特制自己的ChatGPT:多接口統(tǒng)一的輕量級(jí)LLM-IFT平臺(tái)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!