许可证: mit
许可证链接: https://huggingface.co/microsoft/phi-4/resolve/main/LICENSE
语言:
- 英文
任务标签: 文本生成
标签:
- phi
- 自然语言处理
- 数学
- 代码
- 聊天
- 对话
推理参数:
温度: 0
示例窗口:
- 消息:
- 角色: 用户
内容: 我该如何解释互联网?
库名称: transformers
Phi-4 模型卡
Phi-4 技术报告
模型概览
|
|
开发团队 |
微软研究院 |
描述 |
phi-4 是一款基于合成数据集、经过筛选的公共领域网站数据以及获取的学术书籍和问答数据集的最先进开源模型。该方法的目的是确保小型高效模型通过专注于高质量和高级推理的数据进行训练。
phi-4 经过了严格的增强和对齐流程,结合了监督微调和直接偏好优化,以确保精确的指令遵循和强大的安全措施 |
架构 |
140亿参数,密集解码器专用Transformer模型 |
输入 |
文本,最适合聊天格式的提示 |
上下文长度 |
16K 词元 |
GPU |
1920 张 H100-80G |
训练时间 |
21 天 |
训练数据 |
9.8T 词元 |
输出 |
根据输入生成的文本 |
训练日期 |
2024年10月 – 2024年11月 |
状态 |
静态模型,基于离线数据集训练,公开数据的截止日期为2024年6月及更早 |
发布日期 |
2024年12月12日 |
许可证 |
MIT |
预期用途
|
|
主要用例 |
我们的模型旨在加速语言模型的研究,作为生成式AI功能的基础构建块。它为需要以下条件的通用AI系统和应用(主要为英文)提供用途:
1. 内存/计算受限的环境。 2. 延迟受限的场景。 3. 推理和逻辑。 |
非适用用例 |
我们的模型并非专门设计或评估用于所有下游用途,因此:
1. 开发者在选择用例时应考虑语言模型的常见限制,并在特定下游用例中使用前评估和缓解准确性、安全性和公平性问题,尤其是高风险场景。 2. 开发者应了解并遵守适用于其用例的相关法律法规(包括隐私、贸易合规法律等),尤其是模型主要针对英文的情况。 3. 本模型卡中的任何内容均不应解释为对模型发布许可证的限制或修改。 |
数据概览
训练数据集
我们的训练数据是对Phi-3所用数据的扩展,包括来自以下方面的多种来源:
-
经过严格质量筛选的公开文档、精选的高质量教育数据和代码。
-
新创建的合成“教科书式”数据,用于教授数学、编码、常识推理、世界常识(科学、日常活动、心理理论等)。
-
获取的学术书籍和问答数据集。
-
高质量的聊天格式监督数据,涵盖各种主题,以反映人类在不同方面的偏好,如指令遵循、真实性、诚实性和帮助性。
多语言数据约占我们总数据的8%。我们专注于可能提高模型推理能力的数据质量,并对公开文档进行筛选以包含适当的知识水平。
基准数据集
我们使用OpenAI的SimpleEval和我们自己的内部基准评估phi-4
,以了解模型的能力,具体包括:
-
MMLU: 用于多任务语言理解的流行综合数据集。
-
MATH: 具有挑战性的竞赛数学问题。
-
GPQA: 复杂的、研究生水平的科学问题。
-
DROP: 复杂的理解和推理。
-
MGSM: 多语言小学数学。
-
HumanEval: 功能性代码生成。
-
SimpleQA: 事实性回答。
安全性
方法
phi-4
采用了强大的安全后训练方法。该方法利用了多种开源和内部生成的合成数据集。用于安全对齐的总体技术是监督微调(SFT)和迭代直接偏好优化(DPO)的结合,包括专注于帮助性和无害性的公开数据集,以及针对多个安全类别的各种问题和答案。
安全评估和红队测试
在发布之前,phi-4
遵循了多方面的评估方法。定量评估通过多个开源安全基准和内部工具进行,利用对抗性对话模拟。对于定性安全评估,我们与微软的独立AI红队(AIRT)合作,评估phi-4
在普通和对抗性用户场景中的安全风险。在普通用户场景中,AIRT模拟了典型的单轮和多轮交互,以识别潜在的风险行为。对抗性用户场景测试了多种旨在故意破坏模型安全训练的技术,包括越狱、基于编码的攻击、多轮攻击和对抗性后缀攻击。
更多关于安全对齐的细节,请参阅技术报告。
模型质量
为了了解模型的能力,我们将phi-4
与一组模型在OpenAI的SimpleEval基准上进行了比较。
以下是模型在代表性基准上的高质量概览。表格中数值越高表示性能越好:
类别 |
基准 |
phi-4 (14B) |
phi-3 (14B) |
Qwen 2.5 (14B instruct) |
GPT-4o-mini |
Llama-3.3 (70B instruct) |
Qwen 2.5 (72B instruct) |
GPT-4o |
流行综合基准 |
MMLU |
84.8 |
77.9 |
79.9 |
81.8 |
86.3 |
85.3 |
88.1 |
科学 |
GPQA |
56.1 |
31.2 |
42.9 |
40.9 |
49.1 |
49.0 |
50.6 |
数学 |
MGSM MATH |
80.6 80.4 |
53.5 44.6 |
79.6 75.6 |
86.5 73.0 |
89.1 66.3* |
87.3 80.0 |
90.4 74.6 |
代码生成 |
HumanEval |
82.6 |
67.8 |
72.1 |
86.2 |
78.9* |
80.4 |
90.6 |
事实知识 |
SimpleQA |
3.0 |
7.6 |
5.4 |
9.9 |
20.9 |
10.2 |
39.4 |
推理 |
DROP |
75.5 |
68.3 |
85.5 |
79.3 |
90.2 |
76.7 |
80.9 |
* 这些分数低于Meta报告的数据,可能是因为simple-evals有严格的格式要求,而Llama模型在这方面表现不佳。我们使用simple-evals框架是因为其可复现性,但Meta报告Llama-3.3-70B在MATH上得分为77,HumanEval上为88。
使用方法
输入格式
鉴于训练数据的性质,phi-4
最适合使用以下聊天格式的提示:
<|im_start|>system<|im_sep|>
你是一位中世纪骑士,必须向现代人提供解释。<|im_end|>
<|im_start|>user<|im_sep|>
我该如何解释互联网?<|im_end|>
<|im_start|>assistant<|im_sep|>
使用 transformers
import transformers
pipeline = transformers.pipeline(
"text-generation",
model="microsoft/phi-4",
model_kwargs={"torch_dtype": "auto"},
device_map="auto",
)
messages = [
{"role": "system", "content": "你是一位中世纪骑士,必须向现代人提供解释。"},
{"role": "user", "content": "我该如何解释互联网?"},
]
outputs = pipeline(messages, max_new_tokens=128)
print(outputs[0]["generated_text"][-1])
负责任AI考量
与其他语言模型一样,phi-4
可能表现出不公平、不可靠或冒犯性的行为。需要注意的一些限制行为包括:
-
服务质量: 该模型主要基于英文文本训练。非英文语言的性能会较差。训练数据中代表性较少的英文变体可能比标准美式英文表现更差。phi-4
不旨在支持多语言使用。
-
危害表现与刻板印象延续: 这些模型可能过度或不足地代表某些群体,抹去某些群体的表现,或强化贬低或负面的刻板印象。尽管进行了安全后训练,但由于训练数据中不同群体的代表性不同或负面刻板印象的普遍存在,这些限制可能仍然存在。
-
不当或冒犯性内容: 这些模型可能产生其他类型的不当或冒犯性内容,因此在敏感环境中部署时可能需要额外的缓解措施。
-
信息可靠性: 语言模型可能生成无意义的内容或捏造听起来合理但不准确或过时的内容。
-
代码范围有限: phi-4
的大部分训练数据基于Python并使用常见包如typing
、math
、random
、collections
、datetime
、itertools
。如果模型生成了使用其他包或其他语言的Python脚本,我们强烈建议用户手动验证所有API的使用。
开发者应应用负责任AI的最佳实践,并负责确保特定用例符合相关法律法规(如隐私、贸易等)。强烈建议使用如Azure AI内容安全这样的安全服务,这些服务具有高级防护措施。需要考虑的重要领域包括:
-
分配: 模型可能不适合对法律地位或资源和机会分配(如住房、就业、信贷等)有重大影响的场景,除非进行进一步评估并采用额外的去偏技术。
-
高风险场景: 开发者应评估在高风险场景中使用模型的适用性,其中不公平、不可靠或冒犯性的输出可能代价极高或导致伤害。这包括在准确性和可靠性至关重要的敏感或专业领域(如法律或健康建议)提供建议。应根据部署环境在应用层面实施额外的保障措施。
-
错误信息: 模型可能产生不准确的信息。开发者应遵循透明度最佳实践,并告知终端用户他们正在与AI系统交互。在应用层面,开发者可以构建反馈机制和流程,将响应基于特定用例的上下文信息,这种技术称为检索增强生成(RAG)。
-
有害内容生成: 开发者应根据其上下文评估输出,并使用适用于其用例的安全分类器或自定义解决方案。
-
滥用: 其他形式的滥用如欺诈、垃圾邮件或恶意软件生产可能发生,开发者应确保其应用不违反适用的法律法规。