🚀 Phi-mini-MoE模型
Phi-mini-MoE是一个轻量级的专家混合(MoE)模型,可用于英语的商业和研究场景,在内存/计算受限的环境和低延迟场景中表现出色。
🚀 快速开始
推荐采样器参数
--repeat-penalty 1.05 --temp 0.0 --top-p 1.0 --top-k 1
本地加载模型
获取Phi-mini-MoE模型检查点后,可使用以下示例代码进行推理:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
torch.random.manual_seed(0)
model = AutoModelForCausalLM.from_pretrained(
"microsoft/Phi-mini-MoE-instruct",
device_map="cuda",
torch_dtype="auto",
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-mini-MoE-instruct")
messages = [
{"role": "system", "content": "You are a helpful AI assistant."},
{"role": "user", "content": "Can you provide ways to eat combinations of bananas and dragonfruits?"},
{"role": "assistant", "content": "Sure! Here are some ways to eat bananas and dragonfruits together: 1. Banana and dragonfruit smoothie: Blend bananas and dragonfruits together with some milk and honey. 2. Banana and dragonfruit salad: Mix sliced bananas and dragonfruits together with some lemon juice and honey."},
{"role": "user", "content": "What about solving an 2x + 3 = 7 equation?"},
]
pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
)
generation_args = {
"max_new_tokens": 500,
"return_full_text": False,
"temperature": 0.0,
"do_sample": False,
}
output = pipe(messages, **generation_args)
print(output[0]['generated_text'])
✨ 主要特性
📚 详细文档
模型概述
Phi-mini-MoE是一个轻量级的专家混合(MoE)模型,总参数76亿,激活参数24亿。它通过SlimMoE方法从Phi-3.5-MoE和GRIN-MoE基础模型压缩蒸馏而来,然后通过监督微调(SFT)和直接偏好优化(DPO)进行后训练,以实现指令遵循和安全性。该模型在Phi-3合成数据和经过筛选的公共文档上进行训练,重点关注高质量、富含推理的内容。它是SlimMoE系列的一部分,该系列还包括一个更小的变体Phi-tiny-MoE,总参数38亿,激活参数11亿。
预期用途
主要用例
该模型旨在用于英语的商业和研究用途。适用于通用AI系统以及对内存/计算资源有约束和低延迟要求的场景。
用例考虑
我们的模型并非专门为所有下游用途设计或评估。开发者在选择用例时应考虑语言模型的常见局限性,并在特定下游用例中使用之前评估和缓解准确性、安全性和公平性问题,特别是在高风险场景中。开发者应了解并遵守与其用例相关的适用法律法规(包括隐私、贸易合规法等)。
输入格式
鉴于训练数据的性质,Phi-mini-MoE模型最适合使用以下聊天格式的提示:
<|system|>
You are a helpful assistant.<|end|>
<|user|>
How to explain Internet for a medieval knight?<|end|>
<|assistant|>
基准测试
为了了解模型的能力,我们使用lm-evaluation-harness在各种基准测试中将Phi-mini-MoE与一组模型进行了比较。详细的评估设置可在SlimMoE论文中找到。
模型 |
总参数 |
激活参数 |
MMLU |
MMLU pro |
BBH |
Arc-C (chat) |
Human-eval |
GSM8K |
MT-bench |
MoE模型 |
|
|
|
|
|
|
|
|
|
Phi-3.5-MoE |
42B |
6.6B |
78.36 |
59.38 |
63.93 |
91.38 |
81.70 |
87.87 |
8.34 |
Qwen 1.5 MoE |
14B |
2.7B |
60.73 |
26.49 |
42.65 |
67.24 |
46.30 |
53.07 |
6.55 |
DeepSeek V2 Lite |
16B |
2.4B |
56.69 |
17.89 |
36.30 |
61.09 |
54.40 |
63.23 |
6.82 |
OL-MoE |
7B |
1.3B |
54.27 |
20.87 |
38.00 |
55.63 |
37.80 |
71.49 |
6.60 |
Granite 3.0 MoE |
3.4B |
0.8B |
50.06 |
4.82 |
39.65 |
56.06 |
51.80 |
60.12 |
6.91 |
密集模型 |
|
|
|
|
|
|
|
|
|
LLaMA 3.1 8B |
8B |
8B |
68.71 |
45.28 |
50.86 |
82.42 |
69.50 |
84.84 |
8.03 |
Qwen 2.5 7B |
7.6B |
7.6B |
73.47 |
56.24 |
53.74 |
88.82 |
81.70 |
84.84 |
8.34 |
Phi 3 small |
7.4B |
7.4B |
75.35 |
52.06 |
62.07 |
84.30 |
70.10 |
84.84 |
8.03 |
Gemma 3 4B |
4B |
4B |
59.49 |
40.13 |
49.45 |
75.85 |
67.10 |
78.92 |
8.28 |
Phi 3 mini |
3.8B |
3.8B |
69.94 |
45.65 |
54.94 |
85.58 |
72.60 |
84.61 |
7.46 |
LLaMA 3.2 3B |
3.2B |
3.2B |
61.73 |
36.70 |
45.46 |
75.77 |
52.40 |
77.41 |
7.46 |
Qwen 2.5 3B |
3B |
3B |
65.06 |
41.00 |
46.61 |
80.20 |
73.80 |
76.57 |
7.60 |
Gemma 3 1B |
1B |
1B |
40.80 |
14.70 |
34.80 |
37.46 |
41.50 |
41.77 |
6.67 |
LLaMA 3.2 1B |
1B |
1B |
46.30 |
18.67 |
35.18 |
49.91 |
35.40 |
44.96 |
5.23 |
SlimMoE模型 |
|
|
|
|
|
|
|
|
|
Phi-mini-MoE |
7.6B |
2.4B |
70.68 |
49.68 |
55.27 |
84.91 |
73.80 |
84.89 |
7.59 |
Phi-tiny-MoE |
3.8B |
1.1B |
60.83 |
36.34 |
45.58 |
76.37 |
58.50 |
78.47 |
7.05 |
训练
模型
属性 |
详情 |
架构 |
Phi-mini-MoE总参数76亿,激活参数24亿。是一个仅解码器的专家混合Transformer模型,使用词汇量为32064的分词器。 |
输入 |
文本。最适合使用聊天格式的提示。 |
上下文长度 |
4k个令牌 |
GPU |
64个A100 - 80G |
训练时间 |
11天 |
训练数据 |
4000亿个令牌 |
输出 |
针对输入生成的文本 |
日期 |
2024年9月至2025年3月期间训练 |
状态 |
这是一个基于截止日期为2023年10月的公开可用数据的离线数据集训练的静态模型。 |
训练数据集
我们的训练数据是Phi-3数据集的一个子集,包含4000亿个令牌,包括多种来源,是以下内容的组合:
- 经过严格质量筛选的公开可用文档、精选的高质量教育数据和代码;
- 为教授数学、编码、常识推理、世界常识(科学、日常活动、心智理论等)而新创建的合成“教科书式”数据;
- 涵盖各种主题的高质量聊天格式监督数据,以反映人类在指令遵循、真实性、诚实性和有用性等不同方面的偏好。
更多数据详情可在Phi-3技术报告中找到。
负责任的AI考虑
与其他语言模型一样,Phi-mini-MoE可能会表现出不公平、不可靠或冒犯性的行为。需要注意的一些限制行为包括:
- 服务质量:模型主要在英语文本和一些额外的多语言文本上进行训练。非英语语言的性能会较差,并且非英语语言之间也会存在性能差异。训练数据中代表性较少的英语变体可能比标准美式英语的性能更差。
- 伤害表示与刻板印象延续:这些模型可能会过度或不足地代表某些人群,抹去某些群体的代表性,或强化贬低性或负面的刻板印象。尽管进行了安全后训练,但由于不同群体的代表程度不同、文化背景不同或训练数据中反映现实世界模式和社会偏见的负面刻板印象示例普遍存在,这些局限性可能仍然存在。
- 不适当或冒犯性内容:这些模型可能会产生其他类型的不适当或冒犯性内容,在没有针对特定用例进行额外缓解措施的情况下,可能不适合在敏感环境中部署。
- 信息可靠性:语言模型可能会生成无意义的内容或编造听起来合理但不准确或过时的内容。
- 代码范围有限:Phi-3的大部分训练数据基于Python,并使用常见的包,如“typing, math, random, collections, datetime, itertools”。如果模型生成使用其他包的Python脚本或其他语言的脚本,我们强烈建议用户手动验证所有API的使用。
- 高ECI:模型在响应选举关键查询时的缺陷率较高,这可能导致呈现不正确或无权威性的选举关键信息。用户应与所在地区的选举机构核实与选举相关的信息。
- 长对话:与其他模型一样,Phi-3模型在某些情况下可能会在非常长的英语和非英语聊天会话中生成重复、无用或不一致的响应。鼓励开发者采取适当的缓解措施,如限制对话轮数以考虑可能的对话漂移。
开发者应应用负责任的AI最佳实践,包括映射、衡量和缓解与其特定用例以及文化、语言背景相关的风险。需要考虑的重要领域包括:
- 分配:在没有进一步评估和额外去偏技术的情况下,模型可能不适用于对法律地位、资源分配或生活机会(如住房、就业、信贷等)有重大影响的场景。
- 高风险场景:开发者应评估在高风险场景中使用模型的适用性,在这些场景中,不公平、不可靠或冒犯性的输出可能会造成极高的成本或伤害。这包括在准确性和可靠性至关重要的敏感或专业领域提供建议(如法律或健康建议)。应根据部署环境在应用层面实施额外的保障措施。
- 错误信息:模型可能会产生不准确的信息。开发者应遵循透明度最佳实践,并告知最终用户他们正在与AI系统交互。在应用层面,开发者可以构建反馈机制和管道,以根据特定用例的上下文信息来验证响应,这种技术称为检索增强生成(RAG)。
- 有害内容生成:开发者应根据上下文评估输出,并使用适合其用例的可用安全分类器或自定义解决方案。
- 滥用:可能存在其他形式的滥用,如欺诈、垃圾邮件或恶意软件生产,开发者应确保其应用程序不违反适用的法律法规。
软件
硬件
请注意,默认情况下,Phi-mini-MoE模型使用Flash Attention,这需要特定类型的GPU硬件才能运行。我们在以下GPU类型上进行了测试:
- NVIDIA A100
- NVIDIA A6000
- NVIDIA H100
许可证
该模型遵循MIT许可证。
商标
本项目可能包含项目、产品或服务的商标或标识。对微软商标或标识的授权使用需遵循微软商标和品牌指南。在本项目的修改版本中使用微软商标或标识不得造成混淆或暗示微软的赞助。任何第三方商标或标识的使用需遵循这些第三方的政策。
参考文献