写点什么

极客说|Phi-4 模型的 4 位量化与 vLLM 高速推理

  • 2025-01-17
    北京
  • 本文字数:1819 字

    阅读完需:约 6 分钟

大小:931.23K时长:05:17
极客说|Phi-4 模型的 4 位量化与 vLLM 高速推理

Phi-4 的模型参数量是 14B,这使它在推理的时候比较耗费内存。因此如果我们想要在边缘端运行,需要对它进行量化。量化的手段很多,此前也介绍过,使用 Auto-Round GTPQ 格式的方法量化即可。


我们看一下量化到四位以后,推理时占用的显存以及效果。


针对量化版本,我写了一个 vLLM 推理的程序,推理速度很快,占用 11GB 显存,推理的结果也很准确。这样我们就可以在消费显卡上运行 Phi-4 了。


00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    推理代码见 repo:

    https://github.com/xinyuwei-david/david-share.git 下的

    DeepLearning/Phi4


    接下来,我将介绍 Phi-4 整体的架构。


    近期,微软推出了最新的大型语言模型 Phi-4,它在保持相对较小参数规模的情况下,展示了令人瞩目的性能。Phi-4 通过创新的训练方法和高质量的数据,在多个自然语言处理任务中取得了优异的成绩。本文将详细介绍 Phi-4 的模型架构、训练策略、性能表现,以及如何在本地计算机上对其进行微调。


    Phi-4 简介


    Phi-4 是微软 Phi 系列模型的最新成员,参数量为 140 亿。这一规模在大型语言模型中属于中等,但 Phi-4 通过精心设计的训练流程和数据,展现出了与更大参数量模型相媲美的性能。



    模型架构与特点


    • 基于 Transformer 的架构


    Phi-4 采用了经典的 Transformer 解码器架构,共有 40 层网络结构。这种架构在自然语言处理任务中被证明是高效且有效的,能够捕捉文本序列中的长期依赖关系。


    • 上下文长度的扩展


    初始的 Phi-4 支持 4,096 个 Token 的上下文长度。在中期训练阶段,微软将上下文长度扩展到了 16,000 个 Token,使得模型能够处理更长的文本输入,适应更多样化的任务需求。


    • 分词器与词汇表


    Phi-4 使用了 OpenAI 的 tiktoken 分词器,词汇表大小为 100,352。这一选择兼顾了多语言支持和分词效果的优化。


    • 注意力机制与位置编码


    Phi-4 在模型中使用了全局注意力机制(Full Attention),对整个上下文序列进行自注意力计算。此外,模型采用了旋转位置编码(RoPE)并在中期训练中调整了基频,以适应更长的上下文长度。


    创新的训练策略


    • 合成数据的广泛应用


    与传统模型主要依赖互联网抓取的数据不同,Phi-4 大量使用了合成数据进行训练。微软通过多种技术生成了大约 4,000 亿个 Token 的高质量合成数据,包括:

    • 多代理提示:利用多个语言模型生成多样化的数据。

    • 自我修正流程:模型生成初始输出后,进行自我评估和修正。

    • 指令反转:从已有的输出生成对应的输入指令,增强模型的指令理解能力。


    合成数据具有结构化、渐进式的特点,能够引导模型逐步学习复杂的推理和问题解决能力。


    • 精选的有机数据


    除了合成数据,Phi-4 还从多种来源精心挑选了高质量的有机数据,如网页内容、书籍、代码库和问答集合。通过严格的过滤和去重,确保了数据的高质量和多样性。


    • 多阶段训练流程


    Phi-4 的训练分为多个阶段:

    • 预训练阶段:建立模型的基础语言理解能力,使用了约 10 万亿个 Token 的数据。

    • 中期训练阶段:扩展上下文长度至 16,000 个 Token,进一步提升模型的性能。

    • 后训练阶段(微调):通过监督微调(SFT)和直接偏好优化(DPO)等方法,优化模型的输出,使其更符合人类的偏好。


    先进的训练技术


    • 关键 Token 搜索(PTS)


    PTS 是一种创新的训练方法,通过识别对模型输出影响最大的关键 Token,针对性地优化模型在这些位置的预测。这种方法提高了训练效率,增强了模型在关键决策点上的表现。


    • 改进的直接偏好优化(DPO)


    在 DPO 过程中,Phi-4 结合了 PTS 方法,使用高质量的偏好数据优化模型的输出。通过评估模型在关键 Token 上的表现,进一步提升了优化效果。


    性能评估


    • 外部评测基准


    Phi-4 在多个公开的评测基准上表现出色:

    • MMLU:在多任务语言理解测试中取得了优异成绩。

    • GPQA:在研究生水平的 STEM 问答中表现突出。

    • MATH:在数学问题解决方面展现了强大的能力。

    • HumanEval:在代码生成和理解任务中超越了同等规模的模型。


    • 内部评测套件(PhiBench)


    微软开发了内部评测套件 PhiBench,涵盖了代码调试、代码补全、数学推理等任务,帮助团队深入了解模型的能力和不足,并有针对性地进行改进。


    模型的局限性


    尽管 Phi-4 性能强大,但仍存在一些局限性:

    • 指令遵循能力:在严格格式化输出方面表现不佳。

    • 冗长的回答:有时会对简单问题给出过于详细的答案。

    • 对话能力:优化于单轮查询,缺乏持续对话的能力。


    这些局限性主要源于模型的训练重点在于推理和问题解决,而非对话或指令遵循。


    更多精彩内容请点击下载

    《极客说|微软新模型:Phi-4 来了》

    《利用 AI 和 DevOps 重新定义开发人员体验》

    《SAP on Microsoft Cloud》

    《智能GitHub Copilot副驾驶®提示和技巧》

    2025-01-17 15:1211864

    评论

    发布
    暂无评论
    发现更多内容

    Windows 和 Linux 上安装 TTF 字体的方法

    编程三昧

    HTML5, CSS3 1月月更

    模块六作业

    Anlumina

    架构实战营

    第六周作业

    cqyanbo

    Kubectl插件开发及开源发布分享| 社区征文

    雪雷

    golang 云原生 cobra kubectl plugin 新春征文

    从 TDD 到测试策略

    Teobler

    前端 TDD 单元测试 测试策略 测试金字塔

    Kubernetes初学者指南

    俞凡

    架构 Kubernetes 云原生 2月月更

    拆分电商系统为微服务

    AUV

    「架构实战营」

    模块六作业-拆分电商系统为微服务

    CH

    #架构实战营 「架构实战营」

    WebRTC 流媒体常见开源方案综述 | 社区征文

    liuzhen007

    音视频 新春征文 2月月更

    Linux之killall命令

    入门小站

    Linux

    JAVA新特性的入场券-函数式接口

    蜜糖的代码注释

    Java 后端 Java高级特性

    2021年度总结-拥抱变化

    wood

    300天创作

    ReactNative进阶(四十四):Mobile App 适配性优化

    No Silver Bullet

    React Native 适配 1月月更

    Promise 基本方法的简单实现

    编程三昧

    JavaScript Promise 2月月更

    云原生的前世今生(一)

    劼哥stone

    云原生

    我所理解的云原生(二)

    劼哥stone

    云原生

    从IaC到IaD

    俞凡

    云计算 基础设施即代码

    【优化技术专题】「系统性能调优实战」终极关注应用系统性能调优及原理剖析(下册)

    码界西柚

    性能调优 Java 分布式 优化逻辑 技术职场 1月日更

    行业研究流程及资源总结

    轻口味

    android AI 1月月更

    简单入门计算机网络

    宇宙之一粟

    计算机网络 2月月更

    我的2021

    劼哥stone

    年终总结

    Java NIO为何导致堆外内存OOM了?

    JavaEdge

    2月月更

    特征工程:归一化与标准化

    强劲九

    Python 人工智能 神经网络 机器学习 scikit-learn

    Linux之kill命令

    入门小站

    Linux

    TTF、OTF、WOFF 和 WOFF2 的相关概念

    编程三昧

    CSS css3 1月月更

    浅谈 Java 集合框架

    宇宙之一粟

    java集合总结 1月月更

    ReactNative进阶(四十三):Mac 通过 .bash_profile 文件配置环境变量

    No Silver Bullet

    Mac 2月月更 .bash_profile

    Mybatis技术专题之MybatisPlus自带强大功能之多租户插件实现原理和实战分析

    码界西柚

    多租户 MyBatisPlus 2月日更 多租户技术

    模块六

    Geek_59dec2

    架构

    ReactNative进阶(四十六):移动端实现字体自适应

    No Silver Bullet

    自适应 React Native 2月月更

    2021,平(jia)凡(ban)的一年

    xiezhr

    年终总结 2021 2021年终总结

    极客说|Phi-4 模型的 4 位量化与 vLLM 高速推理_微软_微软中国MSDN_InfoQ精选文章