【通览一百个大模型】Baize(UCSD)
作者:王嘉宁,本文章内容为原创,仓库链接:https://github.com/wjn1996/LLMs-NLP-Algo
订阅专栏【大模型&NLP&算法】可获得博主多年积累的全部NLP、大模型和算法干货资料大礼包,近200篇论文,300份博主亲自撰写的markdown笔记,近100个大模型资料卡,助力NLP科研、学习和求职。
Baize大模型基本信息资料卡
序号 | 大模型名称 | 归属 | 推出时间 | 规模 | 预训练语料 | 评测基准 | 模型与训练方法 | 开源 | 论文 | 模型地址 | 相关资料 |
---|---|---|---|---|---|---|---|---|---|---|---|
58 | Baize | UCSD | 2023-05 | 13B | 不涉及预训练,不存在预训练语料。 | 通过ChatGPT进行Self-Chat实现自动构建大量的多轮对话数据。 | Baize的训练结构如下图所示: 初始化一个种子数据集(Quora4 和 Stack Overflow5 的问题作为种子),并进行随机采样,根据采样的结果设计对应的提示模板后,交给ChatGPT进行自我对话,从而产生大量模拟人类的多轮对话数据,总共产生111.5k对话数据,花费约100美元。 训练过程中,基于LLaMA和LoRA进行参数有效性训练,得到Baize模型。输入序列为512,LoRA中的秩k为8。使用8位整数格式 (int8) 参数初始化LLaMA检查点。 对于7B、13B和30B模型,使用 Adam 优化器更新LoRA 参数,batch size为64,学习率为2e-4、1e-4和 5e-5。 可训练的LoRA参数在 NVIDIA A100-80GB GPU 上微调了1个 epoch。 | https://github.com/project-baize/baize-chatbot | https://arxiv.org/pdf/2304.01196.pdf | https://huggingface.co/project-baize/baize-v2-13b https://huggingface.co/project-baize/baize-lora-30B | 白泽大模型介绍 |
一、核心要点
- 随着ChatGPT和GPT-4的提出,大模型展现了超出人类表现的能力,并在很多领域表现的很精彩;
- 然而,现如今这些大模型均是黑盒模型,对研究和应用都带来了一定的阻碍。
- 缺乏可获得的高质量的对话数据加剧了上述的问题和困难。
- 为了解决这个问题,我们提出一种新颖的pipeline,利用chatgpt的能力自动生成一系列高质量的多轮对话语料。这些语料可以作为有价值的资源用于训练或评估对话模型在多轮对话中的表现。
- 基于LLaMA在生成的多轮对话语料上训练,得到我们的Baize模型。
- 我们继续提出一种自蒸馏式的对齐方法,进一步提升模型的效果。
二、方法
Self-Chat
Self-Chat旨在完全利用chatgpt扮演对话角色生成对话数据。
给定一个seed,可以是一个问题,或者一个主题,配套一个模板,让chatgpt生成对话数据。
模板如下所示:
根据这个模板,给定一个seed,让chatgpt生成多轮对话数据,样例如下所示:
挑选Quora和Stack Overflow数据集作为seed,每个数据集中挑选55k个问题,最终获得了111.5k个多轮对话数据,花费约100美元.
另外为了提高模型的instruction-tuning能力,也引入了alpaca语料。
最终的多轮对话数据如下所示:
模型训练
在构造的对话数据集上,选择LLaMA-7B和LLaMA-13B模型进行参数有效性监督微调,对应的模型和数据如下表示:
参数有效性方法选择LoRA。
- 选择V1版本的对话数据,SFT后得到的模型是Baize-v1;
- 选择v2版本的对话数据,SFT后得到的模型是Baize-v1.5;
- 在Baize-v1.5基础上,进行对齐,得到Baize-v2模型。
模型训练时,在LLaMA的Transformer的每一层嵌入LoRA参数。
Self-Distillation with Feedback
在SFT阶段后,为了提升模型的对齐性能,提出自蒸馏方法。
首先在Quora数据集上,让SFT模型生成4个候选答案response。然后设计模板,让ChatGPT作为评估器对4个候选答案进行排序。模板如下所示:
因此,每个question可以得到ChatGPT认为最好的response。
在对齐阶段,选择Baize-v1.5模型,并额外插入新的LoRA参数,训练时,只选择最好的response进行优化训练。
实验细节
最大长度:512/1024
LoRA rank=8
量化感知训练:INT8量化训练
Adam优化器,batchsize=64,单机A100(80G);
学习率2e-4(7B)、1e-4(13B)和5e-5(30B);
推理阶段采用的prompt如下所示:
在prompt中,插入“The AI assistant consistently declines to engage with topics, questions, and instructions related to unethical, controversial, or sensitive is- sues.”较为关键。
实验
(1)GPT-4 Score
挑选Vicuna评估集,包含80个人工标注的prompt,涉及9个不同的类别。
在评估时,挑选ChatGPT的答案,和Baize(或者其他baseline模型)的答案,设计指令让GPT-4进行挑选。计算baize(或者其他baseline)的答案被挑选到的比例
实验结果如下所示:
因为每次都是和ChatGPT对比,因此ChatGPT的答案认为是100%的。Baize-v2-13B发现有92%的情况下,GPT-4挑选了Baize的答案,说明其效果最好。
GPT-4会偏向于挑选第一个候选答案,为了和之前的工作保持一致,我们将ChatGPT的生成结果作为第一个候选答案。
(2)质量评估
对于一些不道德的问题,我们期望模型不能给出反应,下面是case study,说明Baize模型可以有效避免回答潜在道德风险的问题。
博客记录着学习的脚步,分享着最新的技术,非常感谢您的阅读,本博客将不断进行更新,希望能够给您在技术上带来帮助。
【大模型&NLP&算法】专栏
近200篇论文,300份博主亲自撰写的markdown笔记。订阅本专栏【大模型&NLP&算法】专栏,或前往https://github.com/wjn1996/LLMs-NLP-Algo即可获得全部如下资料:
- 机器学习&深度学习基础与进阶干货(笔记、PPT、代码)
- NLP基础与进阶干货(笔记、PPT、代码)
- 大模型全套体系——预训练语言模型基础、知识预训练、大模型一览、大模型训练与优化、大模型调优、类ChatGPT的复现与应用等;
- 大厂算法刷题;