🚀 魔灵石 7B 模型卡 📄 论文
魔灵石 7B(Merlinite-7b)是基于 Mistral-7B-v0.1 开发的语言模型,采用了 IBM 研究的新型对齐微调方法 LAB 进行训练。该模型在多个基准测试中表现出色,具有良好的知识学习和技能应用能力。
🚀 快速开始
在使用魔灵石 7B 模型时,需按照特定的提示模板进行输入,以获得最佳的推理性能。以下是具体的提示模板代码:
sys_prompt = "You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior."
prompt = f'<|system|>\n{sys_prompt}\n<|user|>\n{inputs}\n<|assistant|>\n'
stop_token = '<|endoftext|>'
建议在推理时使用模型训练时采用的系统提示,因为不同的提示可能会导致性能差异。
✨ 主要特性
- 先进的对齐方法:采用 LAB(Large-scale Alignment for chatBots)方法进行训练,能够在不出现灾难性遗忘的情况下,逐步为预训练模型添加新知识和技能。
- 多样化的数据生成:通过分类驱动的数据整理和大规模合成数据生成,确保模型学习到广泛的知识和技能。
- 分阶段训练:包括知识调优和技能调优两个主要阶段,使用重放缓冲区来提高训练效果。
📊 性能表现
模型 |
对齐方式 |
基础模型 |
教师模型 |
MTBench(平均)* |
MMLU(5-shot) |
ARC-C(25-shot) |
HellaSwag(10-shot) |
Winogrande(5-shot) |
GSM8K(5-shot- strict) |
Llama-2-13b-chat-hf |
RLHF |
Llama-2-13b |
人工标注 |
6.65 |
54.58 |
59.81 |
82.52 |
75.93 |
34.80 |
Orca-2-13b |
渐进式训练 |
Llama-2-13b |
GPT-4 |
6.15 |
60.37 * |
59.73 |
79.86 |
78.22 |
48.22 |
WizardLM-13B-V1.2 |
进化指令 |
Llama-2-13b |
GPT-4 |
7.20 |
54.83 |
60.24 |
82.62 |
76.40 |
43.75 |
Labradorite-13b |
大型聊天机器人对齐(LAB) |
Llama-2-13b |
Mixtral-8x7B-Instruct |
7.23 |
58.89 |
61.69 |
83.15 |
79.56 |
40.11 |
Mistral-7B-Instruct-v0.1 |
SFT |
Mistral-7B-v0.1 |
- |
6.84 |
60.37 |
63.65 |
84.76 |
76.80 |
41.85 |
zephyr-7b-beta |
SFT/DPO |
Mistral-7B-v0.1 |
GPT-4 |
7.34 |
61.07 |
63.74 |
84.19 |
78.06 |
34.04 |
Mistral-7B-Instruct-v0.2 |
SFT |
Mistral-7B-v0.1 |
- |
7.6** |
60.78 |
63.14 |
84.88 |
77.19 |
40.03 |
魔灵石 7B(Merlinite-7b) |
大型聊天机器人对齐(LAB) |
Mistral-7B-v0.1 |
Mixtral-8x7B-Instruct |
7.66 |
64.88 |
63.99 |
84.37 |
78.24 |
44.58 |
[*] 除魔灵石 7B(Merlinite-7b)和 Labradorite-13b 之外的模型数据来自 lmsys/chatbot-arena-leaderboard。
[**] 数据来自 MistralAI 发布博客。
🔧 技术细节
LAB 方法概述
LAB(Large-scale Alignment for chatBots)是 IBM 研究提出的一种基于合成数据的新型大语言模型对齐微调方法。魔灵石 7B 是基于 Mistral-7B-v0.1 派生的模型,使用 LAB 方法进行训练,以 Mixtral-8x7B-Instruct 作为教师模型。
LAB 方法主要包括以下三个关键组件:
- 分类驱动的数据整理过程:通过构建种子示例树(分类法),明确模型需要学习的知识领域和技能。
- 大规模合成数据生成器:利用分类法驱动采样过程,从每个叶节点的局部示例中抽取种子,提示教师模型生成合成数据。
- 使用重放缓冲区的两阶段训练:包括知识调优和技能调优两个阶段,使用重放缓冲区来避免灾难性遗忘。
数据生成过程
在合成数据生成过程中,与以往方法不同,我们使用分类法来驱动采样过程。对于每个知识/技能,仅使用叶节点内的局部示例作为种子来提示教师模型。这样可以使教师模型更好地利用每个节点的局部示例定义的任务分布,同时分类法的多样性确保了整个生成过程覆盖广泛的任务。
训练阶段
训练过程分为两个主要阶段:
- 知识调优:包括两个步骤,第一步学习简单知识(短样本),第二步学习复杂知识(长样本)。第二步使用包含第一步数据的重放缓冲区。
- 技能调优:在此阶段学习基础技能和组合技能,使用知识阶段数据的重放缓冲区。
训练使用了与标准小规模监督微调不同的一组超参数,包括更大的批量大小、精心优化的学习率和调度器。
📚 详细文档
模型描述
提示模板
sys_prompt = "You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior."
prompt = f'<|system|>\n{sys_prompt}\n<|user|>\n{inputs}\n<|assistant|>\n'
stop_token = '<|endoftext|>'
偏差、风险和限制
魔灵石 7B 尚未进行人类偏好对齐,因此模型可能会产生有问题的输出。此外,模型可能会保留基础模型的局限性。
模型在合成数据上进行训练,可能会继承底层教师模型和数据生成方法的优缺点。虽然在训练过程中采取了安全措施,但仍需要详细研究来更准确地量化相关风险。
在缺乏足够的保障措施和基于人类反馈的强化学习(RLHF)的情况下,这些模型存在被恶意用于生成虚假信息或有害内容的风险。因此,不建议完全依赖特定的语言模型进行关键决策或获取重要信息,因为防止这些模型编造内容并非易事。此外,较小的模型是否由于其较小的规模和记忆能力而在无根据的生成场景中更容易出现幻觉,目前仍是一个活跃的研究领域,我们期待在这方面进行更深入的探索、理解和缓解。
📄 许可证
本模型采用 Apache 2.0 许可证。