Flacuna: 由Flan制成的Vicuna
📣 我们还有许多实验等待完成(详情在此),需要我们实验室的额外计算资源。如果有任何阅读此文的业内人士愿意提供帮助,请随时通过sporia@sutd.edu.sg联系我们。
Flacuna是通过在Flan-mini上微调Vicuna而开发的,Flan-mini是一个包含各种任务的综合指令集合。Vicuna已经是一个出色的写作助手,而Flacuna的目的是提高Vicuna的问题解决能力。为此,我们策划了一个专门的指令数据集,称为Flan-mini。
数据集名称 | 来源 | 数据集大小 |
---|---|---|
Flan2021 | Flan | 388K |
Public Pool of Prompts | Flan | 320K |
Natural instructions v2 | Flan | 200K |
CoT | Flan | 100K |
Code Search | HF/code_search_net | 100K |
Code Contest | HF/deepmind/code_contests | 50K |
Apps | HF/codeparrot/apps | 50K |
GPT4-Alpaca | GPT-4 | 52K |
Code-Alpaca | ChatGPT | 20K |
ShareGPT | ChatGPT | 60K |
总计 | - | 1.34M |
快速入门指南
from flacuna import FLACUNA
model = FLACUNA("declare-lab/flacuna-13b-v1.0")
prompt = (
"一个好奇的用户和人工智能助手之间的对话。"
"助手对用户的问题给出有帮助、详细且礼貌的回答。"
"用户:你的任务是针对以下问题展示你在专业或工作场景中的写作技能。\n"
"你能帮我为毕业典礼写一篇演讲稿吗?鼓舞并激励毕业生追求梦想,为世界带来积极影响。\n"
"输出:助手:"
)
decoded = model.generate(prompt)
print (decoded)
输出如下:
一个好奇的用户和人工智能助手之间的对话。助手对用户的问题给出有帮助、详细且礼貌的回答。用户:你的任务是针对以下问题展示你在专业或工作场景中的写作技能。
你能帮我为毕业典礼写一篇演讲稿吗?鼓舞并激励毕业生追求梦想,为世界带来积极影响。
输出:助手:亲爱的毕业生们,
今天能站在这里,庆祝你们的成就,认可你们在大学里所展现的辛勤付出和dedication,我感到无比荣幸。我为你们每一个人感到骄傲,为你们迄今为止所取得的一切成就,也为每个人内心蕴藏的潜力而自豪。
当你们离开这个舞台时,我想提醒你们,你们的旅程才刚刚开始。真实的世界在等待着你们,随之而来的是无数的机遇和挑战。但我相信你们每一个人,我知道你们完全有能力面对前方的一切。
你们是这个世界的未来,我毫不怀疑你们会在你们选择追求的任何领域对这个世界产生积极影响。无论是在科学、技术、教育、医疗保健还是任何其他领域,你们的贡献都将是宝贵而有意义的,并将改变他人的生活。
因此,在你们前进的道路上,我敦促你们要忠于自己的热情,追求自己的梦想,永远不要放弃你们所信仰的东西。请记住,真正重要的不是我们遇到的障碍,而是我们如何克服它们。
你们有改变世界的力量,我毫不怀疑你们会做到。所以,勇敢地走出去,充分利用每一个来之不易的机会。让自己与众不同,在这个世界上留下你们的印记。
再次祝贺你们,祝你们在未来的道路上一切顺利。
谢谢。
问题解决能力
通过这个微调过程,Flacuna在多个基准数据集上的问题解决能力显著提升,无论是在少样本还是零样本设置下都有明显改进。
模型 | 规模 | MMLU (5-shot) | BBH (3-shot) | DROP (3-shot) | CRASS (3-shot) | HumanEval (0-shot) | 平均 |
---|---|---|---|---|---|---|---|
StableVicuna | 13B | 49.2 (+3.0) | 37.5 (+0.4) | 34.3 (-1.0) | 67.5 (+8.7) | 15.9 (+2.5) | 40.9 (+2.7) |
Vicuna | 13B | 50.6 (+4.5) | 37.6 (+0.5) | 32.6 (-3.0) | 60.9 (+2.1) | 11.6 (-1.8) | 38.7 (+0.6) |
Flacuna | 13B | 51.1 (+5.0) | 39.3 (+2.2) | 43.6 (+8.0) | 74.1 (+15.3) | 11.0 (-2.4) | 43.8 (+5.6) |
模型 | 规模 | MMLU(零样本) | BBH(零样本) | CRASS(零样本) | |||
--- | --- | --- | --- | --- | |||
StableVicuna | 13B | 47.5 | 18.5 | 64.2 | |||
Vicuna | 13B | 48.3 | 28.3 | 65.7 | |||
Flacuna | 13B | 49.4 | 32.5 | 67.9 |
在训练过程中,Flacuna是LLaMA的一个13B检查点,采用了1280的最大输入序列长度。我们使用LoRA进行参数高效的微调。
聊天机器人/写作助手
虽然Flacuna主要擅长解决问题的任务,但我们努力保持了Vicuna令人印象深刻的写作和聊天能力。为实现这一目标,我们将GPT-4生成的对话数据集(如GPT-4-Alpaca和ShareGPT)纳入了Flan-mini集合中。
要将Flacuna用作聊天机器人或写作助手,我们建议您使用以下模板:
这是一个好奇的用户与人工智能助手之间的对话。助手对用户的问题提供有帮助、详细且礼貌的回答。用户:{任务定义}。\n\n
{问题}\n
输出:助手:
请注意,我们仍然建议您优先选择Vicuna作为聊天机器人或写作助手,而不是Flacuna。Flacuna的主要优势在于解决问题的任务,使其更适合此类应用。
下表展示了Flacuna在IMPACT数据集上的写作表现,该数据集是InstructEval评估套件的一部分。生成的回答已由ChatGPT评估,其相关性和连贯性按1到5的尺度进行评分。
模型 | 规模 | 信息相关性 | 信息连贯性 | 专业相关性 | 专业连贯性 | 论证相关性 | 论证连贯性 | 创意相关性 | 创意连贯性 | 平均相关性 | 平均连贯性 |
---|---|---|---|---|---|---|---|---|---|---|---|
ChatGPT | - | 3.34 | 3.98 | 3.88 | 3.96 | 3.96 | 3.82 | 3.92 | 3.94 | 3.78 | 3.93 |
Flan-Alpaca | 11B | 3.56 | 3.46 | 3.54 | 3.70 | 3.22 | 3.28 | 3.70 | 3.40 | 3.51 | 3.46 |
Flan-T5 | 11B | 2.64 | 3.24 | 2.62 | 3.22 | 2.54 | 3.40 | 2.50 | 2.72 | 2.58 | 3.15 |
Dolly-V2 | 12B | 3.54 | 3.64 | 2.96 | 3.74 | 3.66 | 3.20 | 3.02 | 3.18 | 3.30 | 3.44 |
StableVicuna | 13B | 3.54 | 3.64 | 2.96 | 3.74 | 3.30 | 3.20 | 3.02 | 3.18 | 3.21 | 3.44 |
Vicuna | 13B | 3.60 | 3.96 | 3.74 | 3.82 | 3.82 | 3.56 | 3.82 | 3.92 | 3.75 | 3.82 |
Flacuna | 13B | 3.02 | 3.42 | 3.48 | 3.52 | 3.38 | 3.02 | 3.92 | 3.80 | 3.45 | 3.44 |
训练Flacuna
进入data
目录并下载Flan-Mini数据集:
cd data
wget https://huggingface.co/datasets/declare-lab/flan-mini/resolve/main/flan_mini.json.zip
unzip flan_mini.json.zip
cd ..
然后,您可以使用train.sh
脚本在Flan-Mini数据集上对Vicuna进行微调:
bash train.sh
引用
@misc{ghosal2023flacuna,
title={Flacuna: Unleashing the Problem Solving Power of Vicuna using FLAN Fine-Tuning},
author={Deepanway Ghosal and Yew Ken Chia and Navonil Majumder and Soujanya Poria},
year={2023},
eprint={2307.02053},
archivePrefix={arXiv},
primaryClass={cs.CL}
}