🚀 Phi-4模型卡片
phi-4
是一款基于多种合成数据集、过滤后的公共领域网站数据以及获取的学术书籍和问答数据集构建的先进开放模型。该模型经过严格的增强和对齐过程,在推理、逻辑等方面表现出色,适用于多种受限环境和场景。
🚀 快速开始
输入格式
鉴于训练数据的性质,phi-4
最适合使用以下聊天格式的提示:
<|im_start|>system<|im_sep|>
You are a medieval knight and must provide explanations to modern people.<|im_end|>
<|im_start|>user<|im_sep|>
How should I explain the Internet?<|im_end|>
<|im_start|>assistant<|im_sep|>
使用llama.cpp
根据文档安装llama.cpp
,并使用以下代码片段与phi-4
(4位量化)进行交互:
~/llama.cpp/build/bin/llama-cli -m phi-4-q4.gguf -cnv -c 16384 -p "You are a medieval knight and must provide explanations to modern people."
✨ 主要特性
- 先进架构:拥有140亿参数,采用密集的仅解码器Transformer模型架构。
- 长上下文处理:支持16K令牌的上下文长度。
- 多场景适用:适用于内存/计算受限环境、延迟敏感场景以及需要推理和逻辑的任务。
- 数据多样性:训练数据来源广泛,包括高质量公共文档、合成数据、学术书籍和问答数据集等。
- 安全可靠:采用强大的安全训练后方法,经过多方面的安全评估。
📦 安装指南
安装llama.cpp
,可参考其文档进行项目构建。
💻 使用示例
基础用法
<|im_start|>system<|im_sep|>
You are a medieval knight and must provide explanations to modern people.<|im_end|>
<|im_start|>user<|im_sep|>
How should I explain the Internet?<|im_end|>
<|im_start|>assistant<|im_sep|>
高级用法
~/llama.cpp/build/bin/llama-cli -m phi-4-q4.gguf -cnv -c 16384 -p "You are a medieval knight and must provide explanations to modern people."
📚 详细文档
模型概述
属性 |
详情 |
开发者 |
微软研究院 |
描述 |
phi-4 是一款先进的开放模型,基于多种合成数据集、过滤后的公共领域网站数据以及获取的学术书籍和问答数据集构建。该模型经过严格的增强和对齐过程,包括监督微调(SFT)和直接偏好优化(DPO),以确保精确遵循指令和强大的安全措施。 |
架构 |
140亿参数,密集的仅解码器Transformer模型 |
输入 |
文本,最适合聊天格式的提示 |
上下文长度 |
16K令牌 |
GPU |
1920个H100 - 80G |
训练时间 |
21天 |
训练数据 |
9.8T令牌 |
输出 |
针对输入生成的文本 |
日期 |
2024年10月 - 2024年11月 |
状态 |
在离线数据集上训练的静态模型,公开可用数据的截止日期为2024年6月及更早 |
发布日期 |
2024年12月12日 |
许可证 |
MIT |
预期用途
主要用例
我们的模型旨在加速语言模型的研究,作为生成式AI功能的构建块。它适用于通用AI系统和应用程序(主要为英语),这些应用需要:
- 内存/计算受限的环境。
- 延迟敏感的场景。
- 推理和逻辑能力。
非预期用例
我们的模型并非专门为所有下游用途设计或评估,因此:
- 开发者在选择用例时应考虑语言模型的常见局限性,并在特定下游用例中使用之前评估和减轻准确性、安全性和公平性问题,特别是在高风险场景中。
- 开发者应了解并遵守与其用例相关的适用法律法规(包括隐私、贸易合规法等),包括模型对英语的关注。
- 本模型卡片中的任何内容均不应被解释为或视为对模型发布所依据的许可证的限制或修改。
数据概述
训练数据集
我们的训练数据是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模拟典型的单轮和多轮交互以识别潜在的风险行为。对抗性用户场景测试了旨在故意破坏模型安全训练的各种技术,包括越狱、基于编码的攻击、多轮攻击和对抗性后缀攻击。
模型质量
为了了解其能力,我们在OpenAI的SimpleEval基准上比较了phi-4
与一组模型。以下是在代表性基准上的模型质量概述,数字越高表示性能越好:
类别 |
基准 |
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。
负责任的AI考虑
与其他语言模型一样,phi-4
可能会表现出不公平、不可靠或冒犯性的行为。需要注意的一些限制行为包括:
- 服务质量:该模型主要在英语文本上进行训练。非英语语言的性能会较差。训练数据中代表性较少的英语变体可能比标准美式英语的性能更差。
phi-4
不旨在支持多语言使用。
- 伤害的表现和刻板印象的延续:这些模型可能会过度或不足地代表某些人群,抹去某些群体的代表性,或强化贬低性或负面的刻板印象。尽管进行了安全训练后处理,但由于不同群体的代表性水平不同或训练数据中反映现实世界模式和社会偏见的负面刻板印象示例的普遍性,这些限制可能仍然存在。
- 不适当或冒犯性内容:这些模型可能会产生其他类型的不适当或冒犯性内容,这可能使其在没有针对特定用例的额外缓解措施的情况下不适合在敏感环境中部署。
- 信息可靠性:语言模型可能会生成无意义的内容或编造听起来合理但不准确或过时的内容。
- 代码范围有限:
phi-4
的大部分训练数据基于Python,并使用常见的包,如typing
、math
、random
、collections
、datetime
、itertools
。如果模型生成使用其他包的Python脚本或其他语言的脚本,我们强烈建议用户手动验证所有API的使用。
开发者应应用负责任的AI最佳实践,并负责确保特定用例符合相关法律法规(如隐私、贸易等)。强烈建议使用具有高级防护措施的安全服务,如Azure AI Content Safety。需要考虑的重要领域包括:
- 分配:在没有进一步评估和额外去偏技术的情况下,模型可能不适合对法律地位、资源分配或生活机会(如住房、就业、信贷等)有重大影响的场景。
- 高风险场景:开发者应评估在高风险场景中使用模型的适用性,在这些场景中,不公平、不可靠或冒犯性的输出可能代价极高或导致伤害。这包括在准确性和可靠性至关重要的敏感或专家领域提供建议(如法律或健康建议)。应根据部署上下文在应用程序级别实施额外的保障措施。
- 错误信息:模型可能会产生不准确的信息。开发者应遵循透明度最佳实践,并告知最终用户他们正在与AI系统交互。在应用程序级别,开发者可以构建反馈机制和管道,将响应建立在特定用例的上下文信息之上,这种技术称为检索增强生成(RAG)。
- 有害内容生成:开发者应根据上下文评估输出,并使用适用于其用例的可用安全分类器或自定义解决方案。
- 滥用:可能存在其他形式的滥用,如欺诈、垃圾邮件或恶意软件生产,开发者应确保其应用程序不违反适用的法律法规。
📄 许可证
本模型采用MIT许可证,详情请见许可证链接。