HuggingFace镜像/phi-4
模型介绍文件和版本分析
下载使用量0

Phi-4 模型卡片

Phi-4 技术报告

模型概述

开发者Microsoft Research
描述phi-4 是一款最先进的开源模型,其构建融合了合成数据集、来自经过筛选的公共领域网站的数据,以及获取的学术书籍和问答数据集。此方法的目标是确保小型高性能模型在训练时使用专注于高质量和高级推理的数据。

phi-4 经过了严格的增强和对齐流程,融合了监督微调与直接偏好优化,以确保精确的指令遵循和稳健的安全措施。
架构140亿参数,密集型仅解码器 Transformer 模型
输入文本,最适合聊天格式的提示词
上下文长度16K tokens
GPU1920 H100-80G
训练时间21 天
训练数据9.8T tokens
输出响应输入生成的文本
日期2024年10月 – 2024年11月
状态静态模型,训练于离线数据集,公开可用数据的截止日期为2024年6月及更早
发布日期2024年12月12日
许可证MIT

预期用途

主要使用场景我们的模型旨在加速语言模型研究,用作生成式 AI 驱动功能的构建块。它适用于需要以下条件的通用 AI 系统和应用程序(主要针对英语):

1. 内存/计算资源受限的环境。
2. 延迟受限的场景。
3. 推理和逻辑能力。
超出范围的使用场景我们的模型并非专门为所有下游用途设计或评估,因此:

1. 开发人员在选择使用场景时应考虑语言模型的常见局限性,并在特定下游用例中使用之前评估和缓解准确性、安全性和公平性问题,尤其是在高风险场景中。
2. 开发人员应了解并遵守与其使用场景相关的适用法律或法规(包括隐私、贸易合规法律等),包括模型对英语的侧重。
3. 本模型卡片中的任何内容均不应被解释为或视为对模型发布所依据的许可的限制或修改。

数据概述

训练数据集

我们的训练数据是 Phi-3 所用数据的扩展,包含多种来源:

  1. 经过严格质量筛选的公开可用文档、精选的高质量教育数据和代码。

  2. 新创建的合成“教科书式”数据,用于教授数学、编码、常识推理、世界通识(科学、日常活动、心智理论等)。

  3. 获取的学术书籍和问答数据集。

  4. 高质量的聊天格式监督数据,涵盖各种主题,以反映人类在指令遵循、真实性、诚实性和帮助性等不同方面的偏好。

多语言数据约占我们整体数据的 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-miniLlama-3.3 (70B instruct)Qwen 2.5 (72B instruct)GPT-4o
热门综合基准MMLU84.877.979.981.886.385.388.1
科学GPQA56.131.242.940.949.149.050.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
代码生成HumanEval82.667.872.186.278.9*80.490.6
事实知识SimpleQA3.07.65.49.920.910.239.4
推理DROP75.568.385.579.390.276.780.9

* 这些分数低于 Meta 报告的分数,可能是因为 simple-evals 有严格的格式要求,而 Llama 模型在遵循这些要求方面存在特别的困难。我们使用 simple-evals 框架是因为它具有可复现性,但 Meta 报告 Llama-3.3-70B 在 MATH 上的得分为 77,在 HumanEval 上的得分为 88。

使用方法

输入格式

考虑到训练数据的特性,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|>

使用 transformers

import transformers

pipeline = transformers.pipeline(
    "text-generation",
    model="microsoft/phi-4",
    model_kwargs={"torch_dtype": "auto"},
    device_map="auto",
)

messages = [
    {"role": "system", "content": "You are a medieval knight and must provide explanations to modern people."},
    {"role": "user", "content": "How should I explain the Internet?"},
]

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 Content Safety。需要考虑的重要方面包括:

  • 资源分配:如果没有进一步的评估和额外的去偏技术,模型可能不适用于可能对法律地位或资源、生活机会(例如住房、就业、信贷等)的分配产生重大影响的场景。

  • 高风险场景:开发人员应评估在高风险场景中使用模型的适用性,在这些场景中,不公平、不可靠或冒犯性的输出可能代价极高或导致伤害。这包括在准确性和可靠性至关重要的敏感或专业领域提供建议(例如法律或健康建议)。应根据部署环境在应用层面实施额外的安全措施。

  • 错误信息:模型可能会产生不准确的信息。开发人员应遵循透明度最佳实践,并告知最终用户他们正在与AI系统交互。在应用层面,开发人员可以构建反馈机制和管道,使响应基于特定用例的上下文信息,这种技术称为检索增强生成(RAG)。

  • 有害内容的生成:开发人员应根据其上下文评估输出,并使用适用于其用例的可用安全分类器或自定义解决方案。

  • 滥用:可能存在其他形式的滥用,如欺诈、垃圾邮件或恶意软件制作,开发人员应确保其应用程序不违反适用的法律法规。