模型1B代表10亿参数。
Mac检查内存大小
1、简单的通过命令行查询
system_profiler SPHardwareDataType | grep "Memory"
2、图形界面
左上角苹果图标、关于本机、系统报告、内存,可以查看当前电脑的内存。
Mac检查显存大小
1、Mac自带的工具是不行的。方法一,是使用上一篇文章《Mac运行使用最新DeepSeek R1模型体验》提到的LM Studio软件
点击设置,界面最右下角。再点击HardWare可以看。这里也可以看内存大小。
这里的VRAM就是显存大小。
多大的模型我能跑?
一般的模型,需要显卡跑。但是也可以用CPU跑,只是性能比较差。速度非常慢。
抄一段网上的介绍:1B模型参数对应多少G内存和参数的精度有关,如果是全精度训练(fp32),一个参数对应32比特,也就是4个字节,参数换算到显存的时候要乘4,也就是1B模型参数对应4G显存,如果是fp16或者bf16就是乘2,1B模型参数对应2G显存。
正常我们一般用的是量化过后的模型,效果比全精度差一些。
我们常用的量化,一般是4位量化或者8位量化后的模型,效果比16位的、32位的差。但是区别不大。
在LM中下载模型时,会显示这是多少位的量化版本。
同样,如果使用Ollama安装的模型,也会在官网显示量化精度
在HuggingFace上的模型,也会提示出量化长度。像deepseek V3的,不量化的用Fp16位精度的模型。没有几百GB的内存显卡,根本跑不动。
所以,明明是开源的模型,但是,普通人没办法跑,还是老老实实买deepseek的api吧。。。
下面我之前整理的一些资料分享一下吧。
量化
我们都知道,模型的权重是浮点数。就像表示大整数(例如1000)比表示小整数(例如1)需要更多的空间一样,表示高精度浮点数(例如0.0001)比表示低精度浮点数(例如0.1)需要更多的空间。量化大型语言模型的过程涉及降低表示权重的精度,以减少使用模型所需的资源。GGML支持许多不同的量化策略(例如4位、5位和8位量化),每种策略在效率和性能之间提供不同的权衡。
下面是量化后模型大小的对比:
常见的量化方案有Q5_0、Q5_K_M、Q6_K和Q8_0
这些量化方案主要是为了减少模型的存储和计算开销,同时尽量保持模型的性能。下面是这些量化方案的具体区别:
1、Q5_0:
Q5_0 表示将权重量化到 5 比特。
这是一个较为基础的量化方法,不涉及复杂的权重分布优化。
在这种量化中,权重的表示相对简单,适合快速的计算和存储优化。
2、Q5_K_M:
Q5_K_M 也是将权重量化到 5 比特,但相比 Q5_0,它在量化过程中引入了更多的优化策略。
“K” 和 “M” 通常表示某种特定的优化技术或方法,用于更好地适配权重的分布,从而提高量化后的模型性能。
这种量化方法在某些情况下可以提供比 Q5_0 更好的精度和性能。
3、Q6_K:
Q6_K 表示将权重量化到 6 比特,同时使用特定的优化策略 “K”。
6 比特的量化能提供比 5 比特更细的权重表示,可能在某些场景下保持较高的模型性能。
结合优化策略,这种量化方法在精度和性能之间寻找更好的平衡。
4、Q8_0:
Q8_0 表示将权重量化到 8 比特。
8 比特量化通常提供了较好的精度,因为它能更细致地表示权重值。
这种量化方法通常在性能和存储优化之间有较好的折中效果。
总结来说,这些量化方案主要在于比特数和优化策略的不同。Q5_0 和 Q8_0 是较为基础的量化方法,而 Q5_K_M 和 Q6_K 则引入了更多的优化策略,旨在提高量化后的模型性能。选择哪种量化方案通常取决于具体应用场景的性能需求和资源限制。
总结
我理解的,搞不明白,就看内存减半来看吧。
比如我之前的电脑,8G内存的,能跑4B的模型,要流畅的话,1-2B是流畅的。
16G内存,跑8B以下的模型,要流畅的话,最好是5B以内。
32G的,跑14B以下的模型,要流畅的话,最好是8B左右。
64G的,跑32B以上的模型,要流畅的话,20B以内的比较流畅。
当然,都是指4位量化的。8位量化的模型,还要打个折扣。
自己YY的。不喜勿喷。当缝合怪挺好,没必要自己电脑跑这些。免费的都够用了,何必折腾。