写点什么

极客说|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:1211891

    评论

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

    企业的数字化转型探索

    松子(李博源)

    企业架构 数字化 企业数字化转型

    Redis基础:redis特点

    奈学教育

    redis

    java 后端博客系统文章系统——No4

    猿灯塔

    快来!我从源码中学习到了一招Dubbo的骚操作!

    why技术

    源码 面试 dubbo 动态代理

    week6

    Geek_2e7dd7

    火焰图:全局视野的Linux性能剖析

    Marionxue

    【融云分析】融云实时音视频 SDK 对智能硬件的视频适配

    Geek_116789

    MySql的Dockerfile编写

    玏佾

    一口气讲透一致性哈希(Hash),助力「码农变身」

    码农神说

    一致性算法 一致性哈希 一致性hash 一致性Hash算法

    支付公司如何赚钱?支付网关如何设计?

    诸葛小猿

    微信 支付宝 聚合支付 第三方支付 支付网关

    第六周作业

    赵龙

    啃碎并发(10):内存模型之内部原理

    猿灯塔

    统一物品编码 破解追溯“断链”困局

    CECBC

    Redis基础:redis特点

    古月木易

    redis

    猿灯塔:spring Boot Starter开发及源码刨析(四)

    猿灯塔

    Java 猿灯塔 spring Boot Starter

    week6 学习总结

    Geek_2e7dd7

    架构师训练营 - 第六周 - 学习总结

    韩挺

    《中国区块链产业园15强名录》

    CECBC

    数据库周刊32丨Oracle自治数据库大动作;腾讯云MySQL 8.0上线;华为数据库工程师认证发布;update引起业务卡顿;PostgreSQL安全加固;openGauss单机安装;中国DBA联盟"ACDU"邀您加入……

    墨天轮

    MySQL 数据库 oracle postgresql

    Markdown工具Typora结合gitee码云图床自动上传云端图片

    Flychen

    Typora markdown gitee

    Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览

    YourBatman

    spring springboot

    将设计模式应用到日常的curd中—分离关联查询

    LSJ

    Java 设计

    你有认真了解过自己的“Java对象”吗

    大头星

    Java JVM

    我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。

    why技术

    Java 源码 jdk 并发 bug

    解读:新基建为区块链带来的新机遇

    CECBC

    架构师训练营 - 第六周 - 作业

    韩挺

    ARTS - Week 5

    Khirye

    ARTS 打卡计划

    话题讨论|在编程中,有哪些好习惯是应该一直坚持下去的?

    InfoQ写作社区官方

    写作平台 话题讨论 话题

    练习 6-1

    闷骚程序员

    ServerlessDays China:无服务器的未来

    WasmEdge

    云计算 Serverless 容器 虚拟机 webassembly

    架构师是怎样炼成的 6-1

    闷骚程序员

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