QCon 演讲火热征集中,快来分享技术实践与洞见!222222 了解详情
写点什么

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

    评论

    发布
    暂无评论

    深入react源码看setState究竟做了什么?

    flyzz177

    React

    一文盘点,ZBC的应用场景与通缩场景

    股市老人

    PMR 提取视频特征,理解上下文

    Zilliz

    试试 MyBatis 流式查询,很强!!!

    Steven

    升级到JDK17和Spring Boot 2.7.8

    xiaoboey

    Spring Cloud Spring Boot

    前端工程师leetcode算法面试必备-二叉树的构造和遍历

    js2030code

    JavaScript LeetCode

    看透react源码之感受react的进化

    goClient1992

    React

    喜讯:行云绽放荣获国家高新技术企业证书

    行云管家

    高新企业 高新技术 高新

    ChatGPT类AI软件供应链的安全及合规风险

    墨菲安全

    代码安全检测 墨菲安全 软件供应链安全 ChatGPT

    为实现跨境文件高速传输,镭速传输都用了哪些技术

    镭速

    转角遇到爱,资源中心系统和图数据库

    鲸品堂

    技术 图数据库 企业号 2 月 PK 榜

    GaussDB(DWS)性能调优:indexscan导致的性能问题识别与优化

    华为云开发者联盟

    数据库 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

    熊猫小说家功能升级:支持阅读原文+更多功能等你解锁

    澜舟孟子开源社区

    NLP 大模型 AIGC 澜舟科技

    StarRocks获评「2022 中国开源社区健康案例」!

    StarRocks

    数据库 开源

    关于我在学习LFU的时候,在开源项目捡了个漏这件事

    why技术

    Java 面试 算法

    React-Hooks源码深度解读

    goClient1992

    React

    为什么西门子、美的等企业这样进行架构升级,看看改造效果就知道了

    TDengine

    数据库 tdengine 开源 时序数据库

    阿里IM技术分享(十):深度揭密钉钉后端架构的单元化演进之路

    JackJiang

    StarRocks 企业行|走进 58 同城,探索极速统一 3.0 时代的企业实践

    StarRocks

    数据库

    深度使用国产Bg-Tinkle数据库客户端—太赞了,居然还集成chatGPT AI生成SQL

    非喵鱼

    Java MySQL 数据库 国产软件 Tinkle

    细说react源码中的合成事件

    flyzz177

    React

    三十分钟入门基础Go(Java小子版)

    京东科技开发者

    Java php Go nil 企业号 2 月 PK 榜

    倒带ChunJun,同心前行|2022年度回顾&2023年共建规划

    袋鼠云数栈

    开源

    手写JavaScript常见5种设计模式

    helloworld1024fd

    JavaScript

    React源码分析(一)Fiber

    goClient1992

    React

    从源码角度看React-Hydrate原理

    flyzz177

    React

    企业级数据平台为什么要“可观测”? | StartDT Hackathon

    奇点云

    数据平台 可观测 云数据 黑客马拉松 奇点云

    IM通讯协议专题学习(九):手把手教你如何在iOS上从零使用Protobuf

    JackJiang

    【等保要求】等保要求堡垒机审计日志保留多久?

    行云管家

    等保 堡垒机 等级保护

    2023最新Java面试手册(性能优化+微服务架构+并发编程+开源框架)

    小小怪下士

    Java 程序员 面试 金三银四

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