AIUnlimited
🌳

AI基础

🌱
AI 种子

从零开始

🌿
AI 萌芽

打好基础

🌳
AI 枝干

付诸实践

🏕️
AI 树冠

深入探索

🌲
AI 森林

精通AI

🔨

AI精通

✏️
AI 草图

从零开始

🪨
AI 雕刻

打好基础

⚒️
AI 匠心

付诸实践

💎
AI 打磨

深入探索

🏆
AI 杰作

精通AI

📘

AI实战

📖
理解开源模型

开源模型的基础知识和资源

🎯
问题到模型任务

将业务问题转化为模型任务

⚡
跑通第一个模型

30分钟快速看到第一个结果

🔧
微调与评测

微调模型并评估性能

🚀
应用系统

构建实际AI应用系统

🎨
生成式AI

探索AIGC的开源模型

🤖
Agent智能体

学习Agent框架和MCP工具

📐
基础补充

LLM基础知识和评测

🎓

Claude 学院

🤖
Claude 101 入门

用 Claude 学习 AI 基础知识

💻
Claude Code 101 入门

让 Claude 成为你的结对编程伙伴

🤝
Claude Cowork 入门

与 Claude 协作完成复杂项目

⚙️
Claude 平台 101

使用 Claude API 构建应用

实验室

已加载 7 个实验
🧬神经网络沙盒🤖AI 还是人类?🥋提示工程道场🏁算法竞速🧠AI 知识挑战🏗️系统设计画布
🎯模拟面试进入实验室→
🚀

职业发展

🚀
面试发射台

开启你的旅程

🌟
行为面试精通

掌握软技能

💻
技术面试

通过编程轮次

🤖
AI与ML面试

ML面试精通

🏆
Offer与未来

拿下最好的Offer

立即开始
AIUnlimited

AI 教育平台

沪ICP备18025655号-11

学习

  • AI基础
  • AI实战
  • Claude学院
  • 实验室
  • 职业发展

社区

  • 关于
  • 常见问题

支持

  • 服务条款
  • 隐私政策
  • 联系我们
AI & 工程学习计划›⚡ 跑通第一个模型›课程›模型需要资源太多,量化能帮上什么忙?
📦
跑通第一个模型 • 入门⏱️ 15 分钟阅读

模型需要资源太多,量化能帮上什么忙?

模型需要资源太多,量化能帮上什么忙?

模型下载好了,运行时却提示内存/显存不足,这大概是很多人尝试本地模型时最不想看到的结果。

前面介绍过,模型运行时需要把权重加载到内存或显存中,生成回答还要占用额外的空间。如果手头的设备装不下模型,除了换一个参数量更小的模型,还可以看看有没有量化版本。

量化之后,模型能省多少空间?

模型的权重由大量数值组成,保存每个数值都需要一定的空间。量化(Quantization)通过降低这些数值的表示精度,减少模型的资源占用。例如,将原本以16 bit浮点数保存的权重,转换为以8 bit或4 bit为主的低精度表示。参数数量通常没有变,每个参数占用的空间变小了。

以一个70亿参数的模型为例,只计算权重本身,忽略量化附加信息,可以得到下面这组粗略估算。

权重表示方式

理论权重大小

16 bit

约14 GB

8 bit

约7 GB

4 bit

约3.5 GB

这里的GB按十进制计算,实际量化文件还会保存缩放系数等信息,也可能混用不同精度,因此大小会与估算有差异。

对普通用户来说,量化最直接的好处是模型文件更小,下载和存储更省空间,运行时权重占用的内存或显存也更少。在硬件和推理框架支持合适的情况下,量化还可能提升推理速度。

不过,文件缩小到原来的四分之一,并不意味着回答速度也会提高四倍。

降低精度也可能影响回答质量,具体影响取决于模型、量化方法和任务。选择量化版本时,除了确认能运行,还要用自己关心的问题试一试,看看回答是否仍然可靠。

想把模型量化,有哪些做法?

对于已经下载或微调完成的模型,常见做法是训练后量化(PTQ),也就是在模型训练完成后,再把权重等数值转换为更低精度的表示。有些方法需要准备一小批有代表性的数据,用来校准量化过程,尽量减小误差。

另一类是量化感知训练(QAT),在训练过程中模拟量化带来的影响,让模型提前适应低精度表示。

本章先讲本地运行中常见的GGUF量化模型,帮助大家看懂文件、区分版本并作出选择。其他量化方法的具体操作,后续再补充。

GGUF文件里,装了些什么?

使用Ollama运行模型时,经常会看到GGUF、Q4、Q8等名称。这些名称主要与模型的存储格式和量化方式有关,也是大模型能够在个人电脑上运行的重要原因。

2023年8月份,Georgi Gerganov推出 GGUF 格式,主要优势包含单文件部署、可扩展、支持内存映射、信息完整、易于使用。一个GGUF文件包括文件头、元数据键值对和张量信息等。这些组成部分共同定义了模型的结构和行为。具体如下所示:GGUF是一种用于大模型推理的模型文件格式,目前被llama.cpp、Ollama等本地推理工具广泛使用。Ollama将GGUF格式、模型量化和模型加载等过程进行了封装,用户无需自己转换模型格式,直接下载和运行已经量化好的模型。一个GGUF文件中并不只有模型参数,还包含模型的基本信息、模型结构以及张量等内容。GGUF通过统一的文件格式将这些信息组织在一起,方便llama.cpp等推理工具直接读取和加载。其基本结构如下图所示。

ModelScope上也是支持展示结构化GGUF文件,如下图所示,推理工具加载GGUF文件时,可以直接读取这些信息并加载模型,不需要再单独准备多个模型配置文件。

GGUF本身只是一种模型文件格式,并不会直接降低模型的内存和显存占用。真正降低模型资源占用的是量化(Quantization)。

Q4、Q8这些名字,该怎么看?

在llama.cpp和GGUF模型中,Q4、Q5、Q8、Q4_K_M表示不同的量化名称。其中,Q表示量化,后面的数字表示主要采用的量化位数,例如Q4表示以4bit量化为主,Q8表示以8bit量化为主。

需要注意的是,Q4并不代表模型中的所有参数都统一使用4bit表示。以常见的Q4_K_M为例,它属于llama.cpp中的一种K-quant量化类型。名称中的Q4表示以4 bit量化为主,K表示使用K-quant量化方案,而M表示该方案中的Medium配置。实际模型中,不同张量可能使用不同的量化精度,而不是所有参数统一采用4bit表示,具体如下图所示。

同一个模型,我该下载哪个版本?

选择GGUF模型时,先确认推理工具支持这个模型,再看具体的量化版本。较低的量化精度通常能减少内存和显存占用,让模型更容易在普通设备上运行,但可能损失一部分模型效果;较高的量化精度通常能保留更多原始模型的能力,同时也需要更多硬件资源。

如果一个版本已经接近设备的内存或显存上限,就要考虑换一个占用更小的版本,给上下文和运行过程留出余量。如果资源足够,可以用相同的问题比较不同版本的回答,尤其关注自己要用的任务,例如信息抽取、代码生成或规定格式的输出。

先确认能稳定运行,再检查回答质量。这样选出来的量化版本,才更适合自己的设备和用途。

第 5 课,共 5 课已完成 0%
←把模型放到云端跑,用Notebook试试CPU和GPU

讨论

登录 参与讨论