模型简介
模型特点
模型能力
使用案例
许可证:MIT
许可证链接:https://huggingface.co/microsoft/Phi-3-medium-4k-instruct/resolve/main/LICENSE
语言:
- 多语言
任务标签:文本生成
标签: - NLP
- 代码
推理参数:
- 温度:0.7
示例输入:
- 角色: 用户
内容: 你能提供一些香蕉和火龙果的搭配吃法吗?
🎉 Phi-3.5:
模型概述
Phi-3-Medium-4K-Instruct 是一个拥有140亿参数的轻量级、前沿开源模型,使用 Phi-3 数据集训练而成。该数据集包含合成数据以及经过筛选的公开网站数据,重点关注高质量和推理密集的特性。
该模型属于 Phi-3 系列,提供两种上下文长度变体:4K 和 128K(以 token 为单位)。
模型经过监督微调和直接偏好优化的后训练过程,以确保指令遵循和安全性。
在常识、语言理解、数学、代码、长上下文和逻辑推理等基准测试中,Phi-3-Medium-4K-Instruct 在同尺寸及更大尺寸模型中展现了强大且前沿的性能。
资源与技术文档:
短上下文 | 长上下文 | |
---|---|---|
Mini | 4K [HF] ; [ONNX] ; [GGUF] | 128K [HF] ; [ONNX] |
Small | 8K [HF] ; [ONNX] | 128K [HF] ; [ONNX] |
Medium | 4K [HF] ; [ONNX] | 128K [HF] ; [ONNX] |
Vision | 128K [HF] ; [ONNX] |
用途
主要用例
该模型适用于广泛的商业和研究用途(英文场景),尤其适合以下需求:
- 内存/计算受限的环境
- 延迟敏感的场景
- 强推理能力(尤其是代码、数学和逻辑)
本模型旨在加速语言和多模态模型的研究,并作为生成式 AI 功能的构建模块。
使用注意事项
本模型并非为所有下游用途专门设计或评估。开发者在选择用例时需考虑语言模型的常见限制,并在高风险场景中评估和缓解准确性、安全性和公平性问题。开发者应了解并遵守适用法律法规(如隐私、贸易合规等)。
本模型卡中的内容不应被解释为对模型许可证的限制或修改。
使用方法
Phi-3-Medium-4K-Instruct 已集成到 transformers
的开发版本 (4.40.2) 中。在官方版本通过 pip
发布前,请确保执行以下操作之一:
- 加载模型时,在
from_pretrained()
函数中传递参数trust_remote_code=True
。 - 将本地
transformers
更新至开发版本:pip uninstall -y transformers && pip install git+https://github.com/huggingface/transformers
。
当前 transformers
版本可通过 pip list | grep transformers
验证。
Phi-3-Medium-4K-Instruct 也可在 Azure AI Studio 中使用。
分词器
Phi-3-Medium-4K-Instruct 支持最多 32064
个 token 的词汇量。分词器文件 已提供可用于下游微调的占位符 token,但也可扩展至模型的词汇量上限。
对话格式
根据训练数据的特性,Phi-3-Medium-4K-Instruct 模型最适合使用以下对话格式的提示:
<|user|>\n问题 <|end|>\n<|assistant|>
例如:
<|user|>
如何向中世纪骑士解释互联网?<|end|>
<|assistant|>
模型会在 <|assistant|>
后生成文本。对于少样本提示,格式如下:
<|user|>
我要去巴黎,应该看什么?<|end|>
<|assistant|>
巴黎是法国的首都,以其 stunning 建筑、艺术博物馆、历史地标和浪漫氛围闻名。以下是巴黎的一些 top 景点:\n\n1. 埃菲尔铁塔:这座标志性建筑是世界最知名的地标之一,提供 breathtaking 的城市景观。\n2. 卢浮宫博物馆:卢浮宫是世界最大且最著名的博物馆之一,收藏 impressive 的艺术品和文物,包括《蒙娜丽莎》。\n3. 巴黎圣母院:这座美丽的大教堂是巴黎最著名的地标之一,以其哥特式建筑和 stunning 彩绘玻璃窗闻名。\n\n这些只是巴黎众多景点中的一小部分。有如此多的景点和活动,难怪巴黎是全球最受欢迎的旅游目的地之一。"<|end|>
<|user|>
#1 有什么特别之处?<|end|>
<|assistant|>
示例推理代码
以下代码片段展示如何在 GPU 上快速运行模型:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
torch.random.manual_seed(0)
model_id = "microsoft/Phi-3-medium-4k-instruct"
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cuda",
torch_dtype="auto",
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
{"role": "user", "content": "你能提供一些香蕉和火龙果的搭配吃法吗?"},
{"role": "assistant", "content": "当然!以下是香蕉和火龙果的搭配吃法:1. 香蕉火龙果奶昔:将香蕉和火龙果与牛奶和蜂蜜一起搅拌。2. 香蕉火龙果沙拉:将切片香蕉和火龙果混合,加入柠檬汁和蜂蜜。"},
{"role": "user", "content": "如何解方程 2x + 3 = 7?"},
]
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'])
某些应用/框架可能未在对话开头包含 BOS token (<s>
)。请确保包含它,以获得更可靠的结果。
负责任 AI 考量
与其他语言模型类似,Phi 系列模型可能表现出不公平、不可靠或冒犯性的行为。需注意的限制包括:
- 服务质量:Phi 模型主要基于英文文本训练。非英语语言的性能可能较差。训练数据中代表性不足的英语变体可能比标准美式英语表现更差。
- 危害表现与刻板印象延续:这些模型可能过度或不足代表某些群体,或强化贬低性/负面刻板印象。尽管经过安全后训练,但由于训练数据中不同群体的代表性差异或负面刻板印象的普遍性,这些限制可能仍然存在。
- 不当或冒犯性内容:这些模型可能生成其他类型的不当或冒犯性内容,因此在敏感场景中部署时需额外缓解措施。
- 信息可靠性:语言模型可能生成无意义内容或捏造看似合理但不准确或过时的内容。
- 代码范围限制:Phi-3 训练数据主要基于 Python 及常用包(如 "typing, math, random, collections, datetime, itertools")。如果模型生成使用其他包或其他语言的脚本,强烈建议用户手动验证所有 API 使用。
开发者应遵循负责任 AI 最佳实践,并确保特定用例符合相关法律法规(如隐私、贸易等)。重要考量领域包括:
- 资源分配:模型可能不适合对法律地位或资源/生活机会分配(如住房、就业、信贷等)有重大影响的场景,除非进行进一步评估和去偏技术。
- 高风险场景:开发者应评估模型在高风险场景中的适用性,其中不公平、不可靠或冒犯性输出可能代价极高或导致伤害。这包括在准确性至关重要的敏感或专业领域(如法律或健康建议)提供建议。应根据部署上下文在应用层面实施额外保障措施。
- 错误信息:模型可能生成不准确信息。开发者应遵循透明度最佳实践,告知终端用户他们正在与 AI 系统交互。在应用层面,开发者可构建反馈机制和流程,将响应基于特定用例的上下文信息(即检索增强生成,RAG)。
- 有害内容生成:开发者应根据上下文评估输出,并使用适用于其用例的安全分类器或自定义解决方案。
- 滥用:可能存在欺诈、垃圾邮件或恶意软件制作等滥用形式,开发者应确保其应用不违反适用法律法规。
训练
模型
- 架构:Phi-3-Medium-4K-Instruct 拥有140亿参数,是基于密集解码器的 Transformer 模型。通过监督微调(SFT)和直接偏好优化(DPO)进行微调,以确保符合人类偏好和安全准则。
- 输入:文本。最适合使用对话格式的提示。
- 上下文长度:4K token
- GPU:512 台 H100-80G
- 训练时间:42 天
- 训练数据:4.8 万亿 token
- 输出:根据输入生成的文本
- 训练时间:2024 年 2 月至 4 月
- 状态:这是基于 2023 年 10 月截止数据的静态模型。未来可能发布改进后的调优模型版本。
- 发布日期:模型权重于 2024 年 5 月 21 日发布。
数据集
训练数据包含多种来源,总计 4.8 万亿 token(含 10% 多语言数据),包括:
- 经过严格质量筛选的公开文档、精选高质量教育数据和代码;
- 新创建的合成“教科书式”数据,用于教授数学、编码、常识推理和世界常识(科学、日常活动、心理理论等);
- 高质量对话格式监督数据,涵盖各种主题以反映人类在指令遵循、真实性、诚实和帮助性等方面的偏好。
我们专注于可能提升模型推理能力的数据质量,并筛选公开文档以包含适当的知识水平。例如,英超某场比赛的结果可能适合前沿模型的训练数据,但我们需要删除此类信息,以便为小尺寸模型保留更多推理能力。更多数据详情请参阅 Phi-3 技术报告。
基准测试
我们报告了 Phi-3-Medium-4K-Instruct 在标准开源基准测试中的结果,衡量模型的推理能力(包括常识推理和逻辑推理)。我们与 Mixtral-8x22b、Gemini-Pro、Command R+ 104B、Llama-3-70B-Instruct、GPT-3.5-Turbo-1106 和 GPT-4-Turbo-1106(Chat)进行了比较。
所有报告的数字均使用相同的流程生成,以确保可比性。由于评估中的微小差异,这些数字可能与其他发布的数据不同。
按照标准做法,我们使用少样本提示(温度 0)评估模型。提示和样本数量是微软内部评估语言模型工具的一部分,特别是我们未对 Phi-3 进行任何流程优化。具体而言,我们没有更改提示、选择不同的少样本示例、更改提示格式或进行任何其他形式的模型优化。
每个基准测试的 k-shot 样本数量如下表所示。
(后续表格内容保持原格式,仅翻译表头)
基准测试 | Phi-3-Medium-4K-Instruct 14b |
Command R+ 104B |
Mixtral 8x22B |
Llama-3-70B-Instruct | GPT3.5-Turbo version 1106 |
Gemini Pro |
GPT-4-Turbo version 1106 (Chat) |
---|---|---|---|---|---|---|---|
AGI 评估 5-shot |
50.2 | 50.1 | 54.0 | 56.9 | 48.4 | 49.0 | 59.6 |
MMLU 5-shot |
78.0 | 73.8 | 76.2 | 80.2 | 71.4 | 66.7 | 84.0 |
BigBench Hard 3-shot |
81.4 | 74.1 | 81.8 | 80.4 | 68.3 | 75.6 | 87.7 |
...(其余表格内容保持原样) |
软件
硬件
默认情况下,Phi-3-Medium 模型使用 flash attention,需要特定类型的 GPU 硬件运行。我们已在以下 GPU 类型上测试:
- NVIDIA A100
- NVIDIA A6000
- NVIDIA H100
如需在以下环境运行:
- GPU、CPU 和移动设备上的优化推理:使用 ONNX 模型 4K
跨平台支持
ONNX 运行时生态系统现支持跨平台和硬件的 Phi3 Medium 模型。
优化后的 phi-3 模型也以 ONNX 格式发布,可通过 ONNX Runtime 在服务器平台、Windows、Linux 和 Mac 桌面以及移动 CPU 上运行,并为每个目标选择最佳精度。Windows 桌面 GPU(AMD、Intel 和 NVIDIA)支持 DirectML GPU 加速。
除了 DML,ONNX Runtime 还提供跨平台支持,涵盖 CPU、GPU 和移动设备。以下是我们添加的一些优化配置:
- 用于 int4 DML 的 ONNX 模型:通过 AWQ 量化为 int4
- 用于 fp16 CUDA 的 ONNX 模型
- 用于 int4 CUDA 的 ONNX 模型:通过 RTN 量化为 int4
- 用于 int4 CPU 和移动设备的 ONNX 模型:通过 RTN 量化为 int4
许可证
本模型根据 MIT 许可证 授权。
商标
本项目可能包含项目、产品或服务的商标或徽标。经授权使用 Microsoft 商标或徽标需遵守并遵循 Microsoft 商标和品牌指南。在本项目的修改版本中使用 Microsoft 商标或徽标不得引起混淆或暗示 Microsoft 赞助。任何第三方商标或徽标的使用均受其政策约束。


