写点什么

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

    评论

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

    如何通过链路追踪进行定时任务诊断

    阿里巴巴云原生

    阿里云 云原生 SchedulerX

    前端培训程序员学习就业还有前途吗?

    小谷哥

    面试合集:数据库+数据结构+JVM+网络+JAVA+分布式+操作系统

    钟奕礼

    Java 程序员 java面试 java编程

    Intel Arch SIG:介绍下一代数据中心互联协议CXL及在龙蜥的规划 | 第 54 期

    OpenAnolis小助手

    开源 直播 intel 龙蜥大讲堂 CXL

    又一创新!阿里云 Serverless 调度论文被云计算顶会 ACM SoCC 收录

    Serverless Devs

    New Features | NFTScan 推出 BlueChip、Watch List、Activity Overview

    NFT Research

    区块链 NFT 数据基础设施

    基于云边协同架构的五大应用场景革新

    阿里云CloudImagine

    阿里云 边缘计算 边缘云

    一个小而美的项目如何进行跨端选型

    Onegun

    移动端 跨端开发

    参加大数据培训学习还来得及吗

    小谷哥

    TCL 基于 StarRocks 构建统一的数据分析平台

    StarRocks

    #数据库

    Service Mesh 的下一站是 Sidecarless 吗?

    SOFAStack

    MOSN

    降价背后,函数计算规格自主选配功能揭秘

    阿里巴巴云原生

    阿里云 云原生 函数计算

    阿里P8面试官总结的《2022最新年底java面试题》,搞定90%以上的技术面

    钟奕礼

    Java 程序员 java面试 java编程

    制造业数字化发展,瓴羊Quick BI引起了需求者的关注

    夏日星河

    web前端和java培训学编程哪个更好

    小谷哥

    LeetCode题解:938. 二叉搜索树的范围和,栈,JavaScript,详细注释

    Lee Chen

    JavaScript LeetCode

    深入了解瓴羊Quick BI,对于商业智能BI发展情况更好分析

    巷子

    K3S +Helm+NFS最小化测试安装部署只需十分钟

    京东科技开发者

    Docker k8s 软件测试 k3s 应用程序

    华夏银行:详解iDo平台一体化运维的落地过程

    嘉为蓝鲸

    运维 金融 银行 数字化

    教你用JavaScript完成进度条

    小院里的霍大侠

    JavaScript 编程开发 初学者 入门实战

    供应链-数字化招投标/采购/供应商管理系统

    金陵老街

    数字化 Java‘’ Vue 3 spring-boot

    MobPush 推送查询API

    MobTech袤博科技

    我代码就加了一行log日志,结果引发了P1的线上事故

    小小怪下士

    Java 程序员 log 代码

    为什么mysql不推荐使用雪花ID作为主键

    京东科技开发者

    MySQL 数据 雪花id 主键 自增

    java培训学习中怎么来提升开发水平

    小谷哥

    ansible2.4安装和体验

    程序员欣宸

    DevOps ansible 11月月更

    前端培训程序员不好招吗,应该怎么学习

    小谷哥

    磐久网络|揭秘阿里云HAIL数据中心网络

    云布道师

    阿里云 数据中心 基础设施建设

    瓴羊Quick BI自助式报表分析工具,令企业的运营服务更高效

    夏日星河

    火山引擎DataLeap的Data Catalog系统公有云实践

    字节跳动数据平台

    大数据 火山引擎 大数据研发

    java程序员,是不是很想进字节跳动?开发三年的我拿到了入职通知

    钟奕礼

    Java 程序员 java面试 java编程

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