许可证: mit
许可证链接: https://huggingface.co/microsoft/phi-4/resolve/main/LICENSE
语言:
- 英文
任务标签: 文本生成
基础模型: microsoft/phi-4
标签:
- phi
- 自然语言处理
- 数学
- 代码
- 对话
- 会话
- neuralmagic
- redhat
- llmcompressor
- 量化
- int4
phi-4-quantized.w4a16
模型概述
- 模型架构: Phi3ForCausalLM
- 模型优化:
- 预期用途: 本模型旨在加速语言模型研究,作为生成式AI功能的基础构建模块。适用于需要以下特性的通用AI系统和应用(主要为英文场景):
- 内存/计算受限环境
- 延迟敏感场景
- 逻辑推理任务
- 非适用范围: 本模型并非针对所有下游用途专门设计或评估,因此:
- 开发者在选择用例时应考虑语言模型的通用限制,并在高风险场景使用前评估和修正准确性、安全性和公平性
- 开发者需知晓并遵守适用法律法规(包括隐私、贸易合规等),特别是模型主要面向英文的局限性
- 本模型卡片内容不应被解释为对模型发布许可证的限制或修改
- 发布日期: 2025年3月3日
- 版本: 1.0
- 模型开发者: Red Hat (Neural Magic)
模型优化
本模型通过对phi-4的权重进行INT4量化获得。该优化将每个参数的比特数从16降至4,磁盘大小和GPU内存需求减少约75%。
仅对transformer块内线性运算符的权重进行量化,采用分组大小为128的对称分组量化方案。使用llm-compressor库实现的GPTQ算法完成量化。
部署
可通过vLLM后端高效部署,示例如下:
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "neuralmagic-ent/phi-4-quantized.w4a16"
number_gpus = 1
sampling_params = SamplingParams(temperature=0.7, top_p=0.8, max_tokens=256)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
{"role": "user", "content": "简要介绍大语言模型"},
]
prompts = tokenizer.apply_chat_template(messages, tokenize=False)
llm = LLM(model=model_id, tensor_parallel_size=number_gpus)
outputs = llm.generate(prompts, sampling_params)
generated_text = outputs[0].outputs[0].text
print(generated_text)
vLLM同时支持OpenAI兼容的服务,详见文档。
创建过程
创建详情
通过运行以下代码片段使用[llm-compressor](https://github.com/vllm-project/llm-compressor)创建:
评估
使用lm-evaluation-harness和vLLM引擎在OpenLLM基准任务(v1)上评估:
准确率
OpenLLM排行榜评估分数
基准测试 |
phi-4 |
本量化模型 |
性能保持率 |
MMLU (5-shot) |
80.30 |
79.87 |
99.5% |
ARC挑战赛 (25-shot) |
64.42 |
62.88 |
97.6% |
GSM-8K (5-shot严格匹配) |
90.07 |
89.69 |
99.6% |
Hellaswag (10-shot) |
84.37 |
83.42 |
98.9% |
Winogrande (5-shot) |
80.58 |
80.74 |
100.2% |
TruthfulQA (0-shot mc2) |
59.37 |
59.18 |
99.7% |
平均 |
76.52 |
75.96 |
99.3% |