模型简介
模型特点
模型能力
使用案例
🚀 Phi-3-Mini-4K-Instruct模型
本项目提供了Phi-3-Mini-4K-Instruct的GGUF格式文件。Phi-3-Mini-4K-Instruct是一个参数为38亿的轻量级、最先进的开源模型,它基于Phi-3数据集进行训练,该数据集包含合成数据和经过筛选的公开网站数据,注重高质量和强推理能力。该模型属于Phi-3家族的Mini版本,有4K和128K两种变体,分别代表其支持的上下文长度(以标记为单位)。该模型经过了后训练过程,包括监督微调(SFT)和直接偏好优化(DPO),以确保精确遵循指令并具备强大的安全措施。在常识、语言理解、数学、代码、长上下文和逻辑推理等基准测试中,Phi-3 Mini-4K-Instruct在参数少于130亿的模型中表现出色。
资源与技术文档
- Phi-3微软博客
- Phi-3技术报告
- Azure AI Studio上的Phi-3
- Hugging Face上的Phi-3
- Phi-3 ONNX: 4K 和 128K
🚀 快速开始
本仓库提供了Phi-3 Mini-4K-Instruct模型的GGUF文件。以下是不同量化方法的文件信息:
名称 | 量化方法 | 位数 | 大小 | 使用场景 |
---|---|---|---|---|
Phi-3-mini-4k-instruct-q4.gguf | Q4_K_M | 4 | 2.2 GB | 中等,平衡质量 - 推荐 |
Phi-3-mini-4k-instruct-fp16.gguf | 无 | 16 | 7.2 GB | 最小质量损失 |
📦 安装指南
下载GGUF文件
- 安装Hugging Face CLI
pip install huggingface-hub>=0.17.1
- 登录Hugging Face
huggingface-cli login
- 下载GGUF模型
huggingface-cli download microsoft/Phi-3-mini-4k-instruct-gguf Phi-3-mini-4k-instruct-q4.gguf --local-dir . --local-dir-use-symlinks False
使用Ollama
- 安装Ollama
curl -fsSL https://ollama.com/install.sh | sh
- 运行phi3模型
ollama run phi3
从Modelfile
构建
假设你已经下载了GGUF文件,以下是如何在Ollama中使用它们:
- 获取Modelfile
huggingface-cli download microsoft/Phi-3-mini-4k-instruct-gguf Modelfile_q4 --local-dir /path/to/your/local/dir
- 构建Ollama模型 使用Ollama CLI创建模型,命令如下:
ollama create phi3 -f Modelfile_q4
- 运行phi3模型 现在你可以使用以下命令在Ollama中运行Phi-3-Mini-4k-Instruct模型:
ollama run phi3 "Your prompt here"
将 "Your prompt here" 替换为你想要用于生成模型响应的实际提示。
使用Llamafile
假设你已经下载了GGUF文件,以下是如何在Llamafile中使用GGUF模型:
- 下载Llamafile-0.7.3
wget https://github.com/Mozilla-Ocho/llamafile/releases/download/0.7.3/llamafile-0.7.3
- 使用聊天格式提示运行模型
<|user|>
How to explain Internet for a medieval knight?<|end|>
<|assistant|>
./llamafile-0.7.3 -ngl 9999 -m Phi-3-mini-4k-instruct-q4.gguf --temp 0.6 -p "<|user|>\nHow to explain Internet for a medieval knight?\n<|end|>\n<|assistant|>"
- 使用聊天界面运行
./llamafile-0.7.3 -ngl 9999 -m Phi-3-mini-4k-instruct-q4.gguf
你的浏览器应该会自动打开并显示一个聊天界面。(如果没有打开,只需打开浏览器并访问 http://localhost:8080)
在Python中运行
- 安装llama-cpp-python
! CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python
- 运行模型
from llama_cpp import Llama
llm = Llama(
model_path="./Phi-3-mini-4k-instruct-q4.gguf", # GGUF文件路径
n_ctx=4096, # 最大序列长度 - 注意,更长的序列长度需要更多资源
n_threads=8, # CPU线程数,根据你的系统和性能进行调整
n_gpu_layers=35, # 卸载到GPU的层数,如果你有GPU加速可用。如果你的系统没有GPU加速,则设置为0。
)
prompt = "How to explain Internet to a medieval knight?"
# 简单推理示例
output = llm(
f"<|user|>\n{prompt}<|end|>\n<|assistant|>",
max_tokens=256, # 生成最多256个标记
stop=["<|end|>"],
echo=True, # 是否回显提示
)
print(output['choices'][0]['text'])
💻 使用示例
基础用法
由于训练数据的性质,Phi-3-Mini-4K-instruct模型最适合使用以下聊天格式的提示。你可以按照以下通用模板将提示作为问题提供:
<|user|>
Question<|end|>
<|assistant|>
例如:
<|user|>
How to explain Internet for a medieval knight?<|end|>
<|assistant|>
模型将在 "<|assistant|>" 之后生成文本。在少样本提示的情况下,提示可以格式化为以下形式:
<|user|>
I am going to Paris, what should I see?<|end|>
<|assistant|>
Paris, the capital of France, is known for its stunning architecture, art museums, historical landmarks, and romantic atmosphere. Here are some of the top attractions to see in Paris:\n\n1. The Eiffel Tower: The iconic Eiffel Tower is one of the most recognizable landmarks in the world and offers breathtaking views of the city.\n2. The Louvre Museum: The Louvre is one of the world's largest and most famous museums, housing an impressive collection of art and artifacts, including the Mona Lisa.\n3. Notre-Dame Cathedral: This beautiful cathedral is one of the most famous landmarks in Paris and is known for its Gothic architecture and stunning stained glass windows.\n\nThese are just a few of the many attractions that Paris has to offer. With so much to see and do, it's no wonder that Paris is one of the most popular tourist destinations in the world."<|end|>
<|user|>
What is so great about #1?<|end|>
<|assistant|>
📚 详细文档
预期用途
主要用例
该模型旨在用于英语的商业和研究用途。该模型适用于以下应用场景:
- 内存/计算资源受限的环境
- 低延迟场景
- 强推理(特别是数学和逻辑)
- 长上下文
我们的模型旨在加速语言和多模态模型的研究,作为生成式AI功能的构建块。
使用用例考虑因素
我们的模型并非专门为所有下游用途设计或评估。开发人员在选择用例时应考虑语言模型的常见限制,并在特定下游用例中使用之前评估和减轻准确性、安全性和公平性问题,特别是在高风险场景中。开发人员应了解并遵守与其用例相关的适用法律或法规(包括隐私、贸易合规法等)。本模型卡片中的任何内容均不应被解释为或视为对模型发布所依据的许可证的限制或修改。
负责任的AI考虑因素
与其他语言模型一样,Phi系列模型可能会以不公平、不可靠或冒犯性的方式运行。需要注意的一些限制行为包括:
- 服务质量:Phi模型主要在英语文本上进行训练。非英语语言的性能会较差。训练数据中代表性较少的英语变体的性能可能比标准美式英语差。
- 危害的呈现和刻板印象的延续:这些模型可能会过度或不足地呈现某些人群,抹去某些群体的代表性,或强化贬低或负面的刻板印象。尽管进行了安全后训练,但由于不同群体的代表性水平不同或训练数据中反映现实世界模式和社会偏见的负面刻板印象示例的普遍性,这些限制可能仍然存在。
- 不适当或冒犯性内容:这些模型可能会产生其他类型的不适当或冒犯性内容,这可能使其在没有针对特定用例的额外缓解措施的情况下不适合用于敏感上下文。
- 信息可靠性:语言模型可以生成无意义的内容或编造听起来合理但不准确或过时的内容。
- 代码范围有限:Phi-3的大部分训练数据基于Python,并使用常见的包,如 "typing, math, random, collections, datetime, itertools"。如果模型生成使用其他包的Python脚本或其他语言的脚本,我们强烈建议用户手动验证所有API的使用。
开发人员应应用负责任的AI最佳实践,并负责确保特定用例符合相关法律法规(如隐私、贸易等)。需要考虑的重要领域包括:
- 分配:在没有进一步评估和额外去偏技术的情况下,模型可能不适用于对法律地位、资源分配或生活机会(如住房、就业、信贷等)有重大影响的场景。
- 高风险场景:开发人员应评估在高风险场景中使用模型的适用性,在这些场景中,不公平、不可靠或冒犯性的输出可能代价极高或导致伤害。这包括在敏感或专业领域提供建议,其中准确性和可靠性至关重要(如法律或健康建议)。应根据部署上下文在应用程序级别实施额外的保障措施。
- 错误信息:模型可能会产生不准确的信息。开发人员应遵循透明度最佳实践,并告知最终用户他们正在与AI系统交互。在应用程序级别,开发人员可以构建反馈机制和管道,将响应基于特定用例的上下文信息,这种技术称为检索增强生成(RAG)。
- 有害内容的生成:开发人员应根据上下文评估输出,并使用适用于其用例的可用安全分类器或自定义解决方案。
- 滥用:其他形式的滥用,如欺诈、垃圾邮件或恶意软件生产可能是可能的,开发人员应确保其应用程序不违反适用的法律法规。
训练
模型
- 架构:Phi-3 Mini有38亿个参数,是一个密集的仅解码器Transformer模型。该模型使用监督微调(SFT)和直接偏好优化(DPO)进行微调,以确保与人类偏好和安全指南保持一致。
- 输入:文本。最适合使用聊天格式的提示。
- 上下文长度:4K标记
- GPU:512个H100-80G
- 训练时间:7天
- 训练数据:3.3T标记
- 输出:对输入的生成文本
- 日期:我们的模型在2024年2月至4月之间进行训练。
- 状态:这是一个基于截止日期为2023年10月的离线数据集训练的静态模型。随着我们改进模型,可能会发布调优模型的未来版本。
数据集
我们的训练数据包括各种来源,总计33万亿个标记,是以下数据的组合:
- 经过严格质量筛选的公开可用文档、选定的高质量教育数据和代码;
- 为教授数学、编码、常识推理、世界常识(科学、日常活动、心理理论等)而新创建的合成“教科书式”数据;
- 涵盖各种主题的高质量聊天格式监督数据,以反映人类在指令遵循、真实性、诚实性和有用性等不同方面的偏好。
软件
许可证
该模型根据MIT许可证授权。
商标
本项目可能包含项目、产品或服务的商标或标志。对微软商标或标志的授权使用须遵守并必须遵循微软商标和品牌指南。在本项目的修改版本中使用微软商标或标志不得造成混淆或暗示微软的赞助。任何第三方商标或标志的使用须遵守这些第三方的政策。



