實際影片長度:18:46.000。原文、繁中、雙語可點擊句子跳轉影片。
0:00.000–0:03.849
zh開放了千萬3.8RGB的模型權重。
0:03.849–0:08.151
zh很多人看到RGB之後的第一個問題就是,
0:08.151–0:09.057
zh這東西,
0:09.057–0:12.000
zh我的Mac到底能不能跑呢?
0:12.000–0:16.171
zh有人看到量化以後只需要十幾GB的內存,
0:16.171–0:21.000
zh覺得自己的24GB Mac應該也沒有什麼問題。
0:21.000–0:24.060
zh结果模型下载完以后
0:24.060–0:25.780
zh要么加载失败
0:25.780–0:27.880
zh要么刚开始生成
0:27.880–0:30.380
zh系统内存就直接爆掉
0:30.380–0:34.880
zh有人花了半天时间把模型跑起来
0:34.880–0:38.600
zh最后发现生成速度只有每秒八九个Token
0:38.600–0:41.700
zh打开MTP之后不仅没有加速
0:41.700–0:42.980
zh反而更慢了
0:42.980–0:45.520
zh所以今天这支影片
0:45.520–0:47.660
zh我会从零开始
0:47.660–0:50.840
zh带你在Mac上完整部署一次
0:50.840–0:52.680
zh千万3.8 RGB
0:52.680–0:56.100
zh我们会先搞清楚RGP到底代表什么
0:56.100–0:58.960
zh它和Cloud GPT这些B原模型
0:58.960–1:00.620
zh大概处于什么水平
1:00.620–1:03.880
zh然后算清楚模型运行时
1:03.880–1:05.880
zh到底会占用多少内存
1:05.880–1:11.120
zh接下来我会带你选择正确的MLX量化版本
1:11.120–1:13.560
zh使用Hugging Face的并行下载工具
1:13.560–1:16.440
zh把模型下载到本地
1:17.660–1:21.500
zh先跑出一个没有任何加速的基础速度
1:21.500–1:24.140
zh最后再安装DFlesh 2
1:24.140–1:26.280
zh在下载模型之前
1:26.280–1:28.460
zh我们首先得搞清楚一件事
1:28.460–1:33.620
zh前往3.827B里面的这个27B到底是什么意思
1:33.620–1:37.580
zh这里的B是Billing
1:37.580–1:39.000
zh也就是实义
1:39.000–1:42.840
zh27B代表这个语言的模型部分
1:42.840–1:46.140
zh大约拥有271个参数
1:46.140–1:53.780
zh你可以把参数理解成有模型训练完成以后保留下来的271个数字
1:53.780–1:58.600
zh模型每生成一个token都要读取这些数字进行计算
1:58.600–2:02.640
zh然后判断下一个token最有可能是什么
2:02.640–2:04.720
zh如果想象的更具体一点
2:04.720–2:10.900
zh你可以把它理解成一台拥有271个旋钮的巨大机器
2:10.900–2:15.780
zh训练模型的过程就是不断调整这271个旋钮
2:15.780–2:18.740
zh而我们现在进行的本地推理
2:18.740–2:22.160
zh就是把这些调整好的旋钮加载到内存里
2:22.160–2:24.400
zh然后用它们来生成答案
2:24.400–2:27.240
zh这里还有一个非常重要的概念
2:27.240–2:32.100
zh也就是说千问3.827B是一个Distance模型
2:32.100–2:33.820
zh也就是稠密模型
2:33.820–2:36.720
zh而不是MROE混合专家模型
2:36.720–2:41.840
zh有些模型名称可能写着总参数35B
2:41.840–2:44.160
zh但是后面还有一个A3B
2:44.160–2:45.980
zh所谓的A3B呢
2:45.980–2:47.380
zh这个A3B的意思就是
2:47.380–2:49.980
zh它虽然一共有350亿参数
2:49.980–2:51.780
zh但每次生成Token的时候
2:51.780–2:54.600
zh大约只有30亿参数会被激活
2:54.600–2:57.620
zh前往3.827B不一样
2:57.620–2:59.700
zh它没有A几B的后缀
2:59.700–3:02.980
zh它的语言模型拥有270亿参数
3:02.980–3:05.020
zh每生成一个Token
3:05.020–3:07.800
zh那么就代表着
3:07.800–3:10.740
zh基本要经过这270亿参数的计算
3:10.740–3:13.680
zh所以它的总参数大约是27B
3:13.680–3:16.120
zh激活参数呢
3:16.120–3:18.160
zh同样也是27B
3:18.160–3:23.320
zh这也是为什么同样叫做30B左右的模型
3:23.320–3:25.180
zh千万3.8 27B
3:25.180–3:28.800
zh可能比一些35B A3B的MOE模型大很多
3:28.800–3:29.400
zh当然
3:29.400–3:31.860
zh稠密模型也不是只有缺点
3:31.860–3:36.140
zh它的优势是所有能力都集中在同一套参数里
3:36.140–3:37.940
zh通常在输出稳定性
3:37.940–3:41.060
zh复杂任务和知识调用上会更加均衡
3:41.060–3:44.860
zh如果可以把本地运行的模型简单承评成三个类别
3:44.860–3:47.660
zh3B到8B通常属于轻量模型
3:47.660–3:49.220
zh这类模型速度很快
3:49.220–3:51.580
zh但复杂任务比较容易走偏
3:51.580–3:57.680
zh14B到30B可以看成本地大模型目前最实用的高质量区间
3:57.680–4:02.380
zh能力已经足以处理比较复杂的编程文章生成和工具调用
4:02.380–4:03.720
zh以及agent任务
4:03.720–4:10.860
zh70B以上的稠密模型能力通常会更加稳定
4:10.860–4:15.080
zh但需要的内存和内存带宽也会明显上升
4:15.080–4:17.440
zh对于大部分个人用户来说
4:17.440–4:19.880
zh部署成本其实是比较高的
4:19.880–4:26.880
zh所以千万3.8RGB基本属于个人电脑还能够比较现实的部署
4:26.880–4:30.900
zh同时能力有足够强的高端本地模型
4:30.900–4:34.000
zh那它跟市面上的B1模型相比怎么样呢
4:34.000–4:40.020
zh首先我们不能直接拿RGB去和Cloud和GPT的比较参数量
4:40.020–4:45.080
zh因为大部分B原模型不会公开完整参数量和激活参数
4:45.080–4:47.720
zh即使参数量一样
4:47.720–4:51.800
zh训练数据、模型架构、后训练和推理预算不同
4:51.800–4:54.380
zh最终能力也可能差很多
4:54.380–4:56.240
zh比较稳妥的说法是
4:56.240–5:00.680
zh千万3.8RGB已经进入了可以和B原旗舰模型
5:00.680–5:02.920
zh在部分任务上正面竞争的范围
5:02.920–5:06.920
zh但它还不能全面替代B原旗舰
5:06.920–5:11.260
zh以签问官方测试为例
5:11.260–5:13.000
zh可以看到
5:13.000–5:17.640
zh在Batch Pro里签问3.8
5:17.640–5:19.080
zhRTB是61.7
5:19.080–5:21.440
zhOPLA 4.6 MAX是53.4
5:21.440–5:25.620
zhTerminal Bench则是73对78.2
5:25.620–5:28.840
zhHLE是30.8对40
5:28.840–5:32.240
zh那么这组数据就可以说明
5:32.240–5:35.080
zh它在某些编程和工具调用任务上
5:35.080–5:37.180
zh可以接近甚至超过B元
5:37.180–5:39.120
zh但是复杂开放式推理
5:39.120–5:41.060
zh知识广度和长容稳定性
5:41.060–5:44.040
zhB元旗舰通常还是更强一些
5:44.040–5:48.320
zh而且这是签问官方公布的测试
5:48.320–5:52.180
zh它不是不同模型可能使用了不同的harness
5:52.180–5:57.040
zh所以这也包含官方自己的测试集
5:57.040–6:00.320
zh可以作为一部分定位参考
6:00.320–6:03.080
zh但不能因为某一个分数更高
6:03.080–6:05.320
zh就是说千万已经全面超越了Cloud
6:05.320–6:07.600
zh对我来说最准确的定位是
6:07.600–6:10.680
zh它不是B原旗舰的完整替代品
6:10.680–6:15.680
zh但已经是一款可以真正承担生产任务的高端本地模型
6:15.680–6:18.980
zh接下来我们来算一下它到底需要多少内存
6:18.980–6:23.680
zh很多人看到27B会直接认为它需要27G的内存
6:23.680–6:28.160
zh这个说法只在非常特定的条件下才大致成立
6:29.440–6:32.840
zh如果使用BF16一个参数呢
6:32.840–6:34.160
zh需要两个字节
6:34.160–6:36.900
zh270一个参数乘以两个字节的话
6:36.900–6:41.480
zh光语言模型原始权重就要大约54G
6:41.480–6:43.640
zh这还没有算计算系统
6:43.640–6:46.620
zh缓存和退理过程中的临时内存
6:46.620–6:48.280
zh所以64G Mac
6:48.280–6:50.540
zh虽然理论上可以放下BF16权重
6:50.540–6:53.100
zh但运行语量其实非常有限
6:53.100–6:55.900
zh量化的作用呢
6:55.900–6:59.060
zh就是使用更少的位数保存这些参数
6:59.060–7:02.340
zh8bit理论权重大约27G
7:02.340–7:06.120
zh4bit理论上大约13.5G
7:06.120–7:10.080
zh实际MLX版本还包含量化参数
7:10.080–7:11.400
zh词表和配置
7:11.400–7:14.140
zh8bit纯文字版约28.6G
7:14.140–7:16.420
zh带视觉能力约29.5G
7:16.420–7:18.820
zh4bit版本大约16G
7:18.820–7:22.120
zh那么从这些地方的这些数字
7:22.120–7:24.120
zh只代表模型权重
7:24.120–7:27.280
zh并不是模型启动后的总内存占用
7:27.280–7:29.140
zh每次运行时
7:29.140–7:31.200
zh内存里至少还要放进五类东西
7:31.200–7:33.000
zh第一类也就是最大的一类
7:33.000–7:35.040
zh就是模型群众
7:35.040–7:39.440
zh运行8bit版本光这一向就已经接近29G
7:39.440–7:42.700
zh而且启动后基本都要进入Mac统一内存
7:42.700–7:47.140
zh第二类是KVKISH和线性注意力技术
7:47.140–7:50.160
zh模型需要保存已经处理过的上下文
7:50.160–7:56.700
zh否则每生成一个Token都需要重新计算前文
7:56.700–8:00.000
zhKVKISH和上下文长度直接下文
8:01.400–8:07.760
zh前文原生支持约26万Token,但支持不代表你的Mac适合直接开满。
8:07.760–8:09.780
zh粗略计算
8:09.780–8:11.220
zh32K上下文
8:11.220–8:12.620
zh仅标准注意力
8:12.620–8:14.260
zh64K约4G
8:14.260–8:16.640
zh128K约8G
8:16.640–8:19.120
zh256K就要16G
8:19.120–8:22.760
zh此外还没包含线性注意力状态
8:22.760–8:25.340
zh如果平常只是聊天
8:25.340–8:26.920
zh或者处理普通代码任务
8:26.920–8:29.160
zh先从16K和32K开始
8:29.160–8:31.080
zh通常就已经足够了
8:31.080–8:34.060
zh第三类是MLX和META运行时
8:34.060–8:35.540
zh使用的计算空间
8:35.540–8:38.860
zh包括临时激活值和计算缓冲区
8:38.860–8:41.640
zh那么它不是固定数字
8:41.640–8:44.020
zh会随输入程度和并发变化
8:44.020–8:47.860
zh尤其是在第一次读取大段Prompt
8:47.860–8:49.460
zh也就是Prefill阶段
8:49.460–8:52.020
zh内存占用可能突然上升
8:52.020–8:56.000
zh第四类是视觉编码器
8:56.000–8:59.140
zh那么只做文字
8:59.140–9:00.880
zh写代码或运行Agent
9:00.880–9:02.300
zh可以选择TextOnly
9:02.300–9:04.260
zh需要读取图片或视频
9:04.260–9:06.260
zh才选择完整多模态版本
9:06.260–9:09.500
zh第五类是DFLASH2草稿模型
9:09.500–9:11.020
zh它不是普通开关
9:11.020–9:13.220
zh还需要一个配套的草稿模型
9:13.220–9:17.020
zh本身它大约21个参数
9:17.020–9:21.480
zh并额外占用缓存和缓冲区
9:21.480–9:26.380
zh所以最终的内存杖不是27B等于27G
9:26.380–9:28.220
zh而是模型权重加Cache
9:28.220–9:31.020
zh加运行缓冲加系统占用
9:31.020–9:33.840
zh再加DFLASH2草稿模型
9:33.840–9:37.880
zh如果想运行8bit版本
9:37.880–9:41.820
zh那么48G统一内存可以作为比较现实的起点
9:41.820–9:44.220
zh例如4G会更加舒服
9:44.220–9:47.300
zh32G不是绝对加载不了
9:47.300–9:48.780
zh但余量非常小
9:48.780–9:51.220
zh如果Mac只有24G或32G的话
9:51.220–9:56.980
zh我建议更加直接使用4bit版本是比较好的
9:56.980–9:59.960
zh模型文件大约16G
9:59.960–10:05.000
zh给系统Cache和D-Flash 2留下的空间会宽松很多
10:05.000–10:07.600
zhMac运行本地模型常见的聊线
10:07.600–10:10.500
zhGGUF加Lama CPP一节MLX
10:10.500–10:13.320
zh这次选择MLX
10:13.320–10:18.240
zh因为它针对苹果电脑有比较特殊的一些优化
10:18.240–10:21.880
zh而且后面的D-Flash 2工具可以直接运行MLX权重
10:21.880–10:28.860
zh我这次选择千万3.8RGB的MLX 8bit版本
10:28.860–10:30.860
zh如果内存比较小
10:30.860–10:34.120
zh把8bit换成对应的4bit仓库即可
10:34.120–10:37.680
zh其他流程基本是一样的
10:37.680–10:41.360
zh模型可以直接去HarkinFace下载
10:41.360–10:42.960
zh那么下载的时候
10:42.960–10:44.620
zh不建议打开浏览器
10:44.620–10:46.520
zh一个文件一个文件点击
10:46.520–10:49.940
zh大模型通常拆成多个权重封片
10:49.940–10:52.500
zh浏览器下载非常容易中断
10:52.500–10:54.500
zh也可能漏掉配置文件
10:54.500–10:58.180
zh那么这里更推荐用HarkinFace官方的
10:58.180–10:59.660
zhHF命令航工具
10:59.660–11:02.580
zh使用新版的HUB
11:02.580–11:04.920
zh使用XNET后端
11:04.920–11:06.800
zh它可以支持并行下载
11:06.800–11:09.700
zh就造成你的Transfer
11:09.700–11:11.780
zh已经逐步被淘汰了
11:11.780–11:12.840
zh那么我们这里
11:12.840–11:15.680
zh首先安装最新版Hagenface CLI
11:15.680–11:17.440
zh接下来
11:17.440–11:19.340
zh开启高性能模式
11:19.340–11:22.560
zh然后把模型下载到指定目录
11:22.560–11:25.960
zh那么高性能模式会提高并发
11:25.960–11:28.200
zh尽可能利用网络和CPU资源
11:28.200–11:29.280
zh模型比较大
11:29.280–11:32.560
zh下载前记得磁盘至少还有几十T的空余空间
11:32.560–11:34.000
zh下载完成之后
11:34.000–11:36.580
zh我们先别着急安装D-Flash 2
11:36.580–11:40.600
zh先跑出没有加速的基础版本
11:40.600–11:43.160
zh建议给本地模型单独创建
11:43.160–11:44.660
zhPython虚拟环境
11:44.660–11:48.880
zh避免不同的项目依赖会互相污染
11:48.880–11:50.480
zh创建环境
11:50.480–11:51.880
zh激活环境
11:51.880–11:54.800
zh以及安装MXM和MX
11:54.800–11:56.720
zh第一次测试呢
11:56.720–11:58.420
zh不要开超长的上下纹
11:58.420–12:00.560
zh不要开Dflash 2
12:00.560–12:02.220
zh同时呢
12:02.220–12:04.960
zh也不要修改一大堆采样参数
12:04.960–12:07.300
zh只指定模型路径
12:07.300–12:08.340
zh固定Prompt
12:08.340–12:09.960
zh生成几百个Token
12:09.960–12:12.120
zh运行最基础的生成命令
12:12.120–12:14.200
zh运行完成之后呢
12:14.200–12:17.180
zh我们可以把模型加载时间
12:17.180–12:18.900
zhPrompt处理速度
12:18.900–12:21.660
zh守Token等待时间和生成Token速度
12:21.660–12:23.860
zh这四个数字记录下来
12:23.860–12:26.040
zh如果没有基础数据
12:26.040–12:29.800
zh后面看到每每20几个token也不知道到底快了多少
12:29.800–12:32.020
zh基础9变27是3倍
12:32.020–12:37.380
zh那么基础20变22可能就不值得增加内存和复杂度
12:37.380–12:42.600
zh确认基础模型稳定之后呢
12:42.600–12:45.480
zh我们就可以安装D-Flash 2
12:45.480–12:49.960
zhD-Flash 2本质上是一种推测解码技术
12:49.960–12:51.200
zh正常情况下
12:51.200–12:54.160
zh千万3.827B每生成一个token的话
12:54.160–12:57.580
zh都要让完整270亿参数计算一次
12:57.580–13:00.280
zh那么生成10个token
13:00.280–13:03.280
zh就要连续做10次完整的推理
13:03.280–13:05.400
enDflash 2
13:05.400–13:08.760
zh让一个大约20亿参数的草稿模型
13:08.760–13:12.300
zh一次性并行预测接下来的一组token
13:12.300–13:18.080
zh然后再让27B主模型一次检查这一整组答案
13:18.080–13:20.920
zh如果草稿模型猜的比较准
13:20.920–13:24.200
zh主模型一次计算就可以接受多个Token
13:24.200–13:27.260
zh原本连续走五六四的流程
13:27.260–13:29.620
zh现在可能只需要一次验证
13:29.620–13:32.460
zh草稿模型只负责猜
13:32.460–13:35.960
zh最终决定权依然在27B主模型手上
13:35.960–13:37.740
zh贪心解码下最终输出
13:37.740–13:39.860
zh可以与基础模型一致
13:39.860–13:42.720
zh随机采样则保留主模型原本的分布
13:42.720–13:44.340
zh在Mac上
13:44.340–13:47.320
zh比较直接的实现是MX的D Spark
13:47.320–13:51.240
zh那么这个虽然名字写着Dspark
13:51.240–13:54.280
zh但它同时支持Dspark,Dflash和Dflash2
13:54.280–13:57.082
zh在用的时候对于千万3.8,
13:57.082–13:57.944
en27B,
13:57.944–14:02.040
zhUltra模式会直接使用Dflash2
14:02.040–14:07.200
zh安装命令也非常简单
14:11.880–14:13.360
zh屏幕上的安装命令
14:13.360–14:17.060
zh安装完成以后不要凭感觉判断有没有变快
14:17.060–14:19.520
zh直接运行项目自带的Benchmark
14:19.520–14:21.720
zh使用三轮测试
14:21.720–14:27.140
zh第一次运行会自动下载匹配的DFlesh2草稿模型
14:27.140–14:30.340
zh并根据这台Mac的实际成本测试
14:30.340–14:32.580
zh合适的推理长度
14:32.580–14:35.780
zhM1 M3 M4 M5的最佳参数呢
14:35.780–14:37.440
zh它是不一定一样的
14:37.440–14:40.080
zh如果你想直接生成内容的话
14:40.080–14:42.320
zh建议用这个命令
14:42.320–14:44.780
zh可以使用MXD Spark Generate
14:44.780–14:50.840
zh默认AUTO模式会为千万3.8RCB匹配DFLASH2
14:50.840–14:54.300
zh再用完全相同的Prompt测试
14:54.300–14:55.660
zh对比基础速度
14:55.660–14:59.100
zhDFLASH2速度接受长度和内存占用
14:59.100–15:00.980
zh那么比下来之后
15:00.980–15:03.360
zh项目在特定的M4 Pro测试中
15:03.360–15:06.160
zh8bit的基础约8.4Token每秒
15:06.160–15:09.160
zhDFLASH2平均约30.5Token每秒
15:09.160–15:13.040
zh不同任务约2.8到4倍
15:13.040–15:17.220
zh但这不是你的Mac一定能达到的速度
15:17.220–15:17.980
zh因为呢
15:17.980–15:20.620
zhDFLASH2不是打开以后
15:20.620–15:22.000
zh它就一定变快
15:22.000–15:23.980
zh如果草稿接受率低的话
15:23.980–15:26.980
zh主模型会不断拒绝和重新生成
15:26.980–15:30.080
zh草稿计算反而成为额外的负担
15:30.080–15:33.440
zh对于只有几十个Token的短回答
15:33.440–15:36.240
zh模型刚加载完成和校准
15:36.240–15:37.440
zh任务就结束了
15:37.440–15:39.980
zh实际体感提升可能不是很明显
15:39.980–15:43.040
zhD-Flash 2还会增加内存占用
15:43.040–15:44.460
zh所以呢
15:44.460–15:45.936
zh如果8bit主
15:45.936–15:49.611
zh所以,如果8bit主模型以及頻繁swap,
15:49.611–15:51.361
zh那麼再加載草稿模型,
15:51.361–15:52.936
zh最終速度反而更慢。
15:52.936–15:58.936
zh所以要用自己最常執行的任務去測試一下。寫代碼就測真實代碼修改。
15:58.936–16:02.376
zh生成口播稿就连续输出一两千的token
16:02.376–16:06.236
zh运行agent就测试完整工具调用
16:06.236–16:09.936
zh最后一步是把模型启动成API
16:09.936–16:14.076
zhMLX的Dspark可以兼容OpenAI
16:14.076–16:18.036
zh那么和Astorbit格式的本地服务
16:18.036–16:20.716
zh启动命令是MLXDsparkServe
16:22.796–16:27.656
zh默认是开在本级8080端口去提供接口的
16:27.656–16:32.296
zh客户端BaseURL设置成127.0.18080
16:32.296–16:35.576
zh设置好之后
16:35.576–16:37.276
zh只在自己电脑使用
16:37.276–16:40.016
zh可以不设置真正的API Key
16:40.016–16:41.836
zh需要局域网访问的时候
16:41.836–16:43.396
zh要调整监听地址
16:43.396–16:44.976
zh检查防火墙
16:44.976–16:49.256
zh但不要把无件权接口直接暴露到公网
16:49.256–16:52.756
zh到这里我们完成了整套部署流程
16:52.756–16:53.476
zh第一
16:53.476–16:56.576
zhR7B代表约270亿参数
16:56.576–16:59.596
zh而且它是全量激活的稠密模型
16:59.596–17:00.196
zh第二
17:00.196–17:03.456
zhRGB不等于只需RGB内存
17:03.456–17:05.556
zh把比特权重接近R9G运行
17:05.556–17:09.416
zh是要加CASE缓冲区系统和草稿模型
17:09.416–17:12.136
zh那么第三
17:12.136–17:15.016
zh它属于本地模型高端档
17:15.016–17:18.116
zh部分编程和Agent任务接近B原起见
17:18.116–17:19.996
zh但不是全面的替代
17:19.996–17:21.076
zh第四
17:21.076–17:22.596
zh不要一上来
17:22.596–17:24.516
zh就打开所有加速箱
17:24.516–17:26.976
zh先用MLX跑出基础速度
17:26.976–17:29.436
zh再用相同Prompt做A-B测试
17:29.436–17:32.596
zh决定是否长期使用D-Flash 2
17:32.596–17:35.716
zh如果真实任务从每秒9个Token
17:35.716–17:37.776
zh能够提高到2-30个的话
17:37.776–17:39.356
zh而且内存稳定
17:39.356–17:41.856
zh那么它就值得长期去打开
17:41.856–17:45.996
zh如果频繁Swap或者主要都是短问答的话
17:45.996–17:48.736
zh4bit基础模型可能更舒服一些
17:48.736–17:53.036
zh本地部署大模型的价值不是省API费用
17:53.036–17:55.936
zh当它变成Mac上的本地服务
17:55.936–17:58.696
zh它就可以接入代码Langraph
17:58.696–17:59.936
zh自动剪辑系统
17:59.936–18:00.776
zh知识库
18:00.776–18:03.916
zh以及agent工作流
18:03.916–18:07.556
zh真正好的本地布置方案
18:07.556–18:08.876
zh不是参数最大
18:08.876–18:10.636
zh也不是测试数字最高
18:10.636–18:12.116
zh而是在自己的设备上
18:12.116–18:13.076
zh质量足够好
18:13.076–18:14.316
zh速度能够接受
18:14.316–18:16.236
zh内存保持稳定
18:16.236–18:19.156
zh并且真的进入日常工作流
18:19.156–18:20.756
zh才能长期去使用
18:20.756–18:24.196
zh影片领誘到的模型地址安装命令和测试命令
18:24.196–18:26.416
zh我都会整理在下方
18:26.416–18:33.436
zh如果希望下一期测试4bit 6bit和8bit的品质差距的话
18:33.436–18:36.856
zh以及DFlex 2速度也可以留言给我
18:36.856–18:39.056
zh喜欢这支影片的话
18:39.056–18:42.776
zh记得帮我按赞订阅加分享哦
18:42.776–18:44.956
zh这是我持续创作的最大动力
18:44.956–18:45.916
zh我们下次再见
0:00.000–0:03.849
開放了千萬3.8RGB的模型權重。
0:03.849–0:08.151
很多人看到RGB之後的第一個問題就是,
0:08.151–0:09.057
這東西,
0:09.057–0:12.000
我的Mac到底能不能跑呢?
0:12.000–0:16.171
有人看到量化以後只需要十幾GB的內存,
0:16.171–0:21.000
覺得自己的24GB Mac應該也沒有什麼問題。
0:21.000–0:24.060
结果模型下载完以后
0:24.060–0:25.780
要么加载失败
0:25.780–0:27.880
要么刚开始生成
0:27.880–0:30.380
系统内存就直接爆掉
0:30.380–0:34.880
有人花了半天时间把模型跑起来
0:34.880–0:38.600
最后发现生成速度只有每秒八九个Token
0:38.600–0:41.700
打开MTP之后不仅没有加速
0:41.700–0:42.980
反而更慢了
0:42.980–0:45.520
所以今天这支影片
0:45.520–0:47.660
我会从零开始
0:47.660–0:50.840
带你在Mac上完整部署一次
0:50.840–0:52.680
千万3.8 RGB
0:52.680–0:56.100
我们会先搞清楚RGP到底代表什么
0:56.100–0:58.960
它和Cloud GPT这些B原模型
0:58.960–1:00.620
大概处于什么水平
1:00.620–1:03.880
然后算清楚模型运行时
1:03.880–1:05.880
到底会占用多少内存
1:05.880–1:11.120
接下来我会带你选择正确的MLX量化版本
1:11.120–1:13.560
使用Hugging Face的并行下载工具
1:13.560–1:16.440
把模型下载到本地
1:17.660–1:21.500
先跑出一个没有任何加速的基础速度
1:21.500–1:24.140
最后再安装DFlesh 2
1:24.140–1:26.280
在下载模型之前
1:26.280–1:28.460
我们首先得搞清楚一件事
1:28.460–1:33.620
前往3.827B里面的这个27B到底是什么意思
1:33.620–1:37.580
这里的B是Billing
1:37.580–1:39.000
也就是实义
1:39.000–1:42.840
27B代表这个语言的模型部分
1:42.840–1:46.140
大约拥有271个参数
1:46.140–1:53.780
你可以把参数理解成有模型训练完成以后保留下来的271个数字
1:53.780–1:58.600
模型每生成一个token都要读取这些数字进行计算
1:58.600–2:02.640
然后判断下一个token最有可能是什么
2:02.640–2:04.720
如果想象的更具体一点
2:04.720–2:10.900
你可以把它理解成一台拥有271个旋钮的巨大机器
2:10.900–2:15.780
训练模型的过程就是不断调整这271个旋钮
2:15.780–2:18.740
而我们现在进行的本地推理
2:18.740–2:22.160
就是把这些调整好的旋钮加载到内存里
2:22.160–2:24.400
然后用它们来生成答案
2:24.400–2:27.240
这里还有一个非常重要的概念
2:27.240–2:32.100
也就是说千问3.827B是一个Distance模型
2:32.100–2:33.820
也就是稠密模型
2:33.820–2:36.720
而不是MROE混合专家模型
2:36.720–2:41.840
有些模型名称可能写着总参数35B
2:41.840–2:44.160
但是后面还有一个A3B
2:44.160–2:45.980
所谓的A3B呢
2:45.980–2:47.380
这个A3B的意思就是
2:47.380–2:49.980
它虽然一共有350亿参数
2:49.980–2:51.780
但每次生成Token的时候
2:51.780–2:54.600
大约只有30亿参数会被激活
2:54.600–2:57.620
前往3.827B不一样
2:57.620–2:59.700
它没有A几B的后缀
2:59.700–3:02.980
它的语言模型拥有270亿参数
3:02.980–3:05.020
每生成一个Token
3:05.020–3:07.800
那么就代表着
3:07.800–3:10.740
基本要经过这270亿参数的计算
3:10.740–3:13.680
所以它的总参数大约是27B
3:13.680–3:16.120
激活参数呢
3:16.120–3:18.160
同样也是27B
3:18.160–3:23.320
这也是为什么同样叫做30B左右的模型
3:23.320–3:25.180
千万3.8 27B
3:25.180–3:28.800
可能比一些35B A3B的MOE模型大很多
3:28.800–3:29.400
当然
3:29.400–3:31.860
稠密模型也不是只有缺点
3:31.860–3:36.140
它的优势是所有能力都集中在同一套参数里
3:36.140–3:37.940
通常在输出稳定性
3:37.940–3:41.060
复杂任务和知识调用上会更加均衡
3:41.060–3:44.860
如果可以把本地运行的模型简单承评成三个类别
3:44.860–3:47.660
3B到8B通常属于轻量模型
3:47.660–3:49.220
这类模型速度很快
3:49.220–3:51.580
但复杂任务比较容易走偏
3:51.580–3:57.680
14B到30B可以看成本地大模型目前最实用的高质量区间
3:57.680–4:02.380
能力已经足以处理比较复杂的编程文章生成和工具调用
4:02.380–4:03.720
以及agent任务
4:03.720–4:10.860
70B以上的稠密模型能力通常会更加稳定
4:10.860–4:15.080
但需要的内存和内存带宽也会明显上升
4:15.080–4:17.440
对于大部分个人用户来说
4:17.440–4:19.880
部署成本其实是比较高的
4:19.880–4:26.880
所以千万3.8RGB基本属于个人电脑还能够比较现实的部署
4:26.880–4:30.900
同时能力有足够强的高端本地模型
4:30.900–4:34.000
那它跟市面上的B1模型相比怎么样呢
4:34.000–4:40.020
首先我们不能直接拿RGB去和Cloud和GPT的比较参数量
4:40.020–4:45.080
因为大部分B原模型不会公开完整参数量和激活参数
4:45.080–4:47.720
即使参数量一样
4:47.720–4:51.800
训练数据、模型架构、后训练和推理预算不同
4:51.800–4:54.380
最终能力也可能差很多
4:54.380–4:56.240
比较稳妥的说法是
4:56.240–5:00.680
千万3.8RGB已经进入了可以和B原旗舰模型
5:00.680–5:02.920
在部分任务上正面竞争的范围
5:02.920–5:06.920
但它还不能全面替代B原旗舰
5:06.920–5:11.260
以签问官方测试为例
5:11.260–5:13.000
可以看到
5:13.000–5:17.640
在Batch Pro里签问3.8
5:17.640–5:19.080
RTB是61.7
5:19.080–5:21.440
OPLA 4.6 MAX是53.4
5:21.440–5:25.620
Terminal Bench则是73对78.2
5:25.620–5:28.840
HLE是30.8对40
5:28.840–5:32.240
那么这组数据就可以说明
5:32.240–5:35.080
它在某些编程和工具调用任务上
5:35.080–5:37.180
可以接近甚至超过B元
5:37.180–5:39.120
但是复杂开放式推理
5:39.120–5:41.060
知识广度和长容稳定性
5:41.060–5:44.040
B元旗舰通常还是更强一些
5:44.040–5:48.320
而且这是签问官方公布的测试
5:48.320–5:52.180
它不是不同模型可能使用了不同的harness
5:52.180–5:57.040
所以这也包含官方自己的测试集
5:57.040–6:00.320
可以作为一部分定位参考
6:00.320–6:03.080
但不能因为某一个分数更高
6:03.080–6:05.320
就是说千万已经全面超越了Cloud
6:05.320–6:07.600
对我来说最准确的定位是
6:07.600–6:10.680
它不是B原旗舰的完整替代品
6:10.680–6:15.680
但已经是一款可以真正承担生产任务的高端本地模型
6:15.680–6:18.980
接下来我们来算一下它到底需要多少内存
6:18.980–6:23.680
很多人看到27B会直接认为它需要27G的内存
6:23.680–6:28.160
这个说法只在非常特定的条件下才大致成立
6:29.440–6:32.840
如果使用BF16一个参数呢
6:32.840–6:34.160
需要两个字节
6:34.160–6:36.900
270一个参数乘以两个字节的话
6:36.900–6:41.480
光语言模型原始权重就要大约54G
6:41.480–6:43.640
这还没有算计算系统
6:43.640–6:46.620
缓存和退理过程中的临时内存
6:46.620–6:48.280
所以64G Mac
6:48.280–6:50.540
虽然理论上可以放下BF16权重
6:50.540–6:53.100
但运行语量其实非常有限
6:53.100–6:55.900
量化的作用呢
6:55.900–6:59.060
就是使用更少的位数保存这些参数
6:59.060–7:02.340
8bit理论权重大约27G
7:02.340–7:06.120
4bit理论上大约13.5G
7:06.120–7:10.080
实际MLX版本还包含量化参数
7:10.080–7:11.400
词表和配置
7:11.400–7:14.140
8bit纯文字版约28.6G
7:14.140–7:16.420
带视觉能力约29.5G
7:16.420–7:18.820
4bit版本大约16G
7:18.820–7:22.120
那么从这些地方的这些数字
7:22.120–7:24.120
只代表模型权重
7:24.120–7:27.280
并不是模型启动后的总内存占用
7:27.280–7:29.140
每次运行时
7:29.140–7:31.200
内存里至少还要放进五类东西
7:31.200–7:33.000
第一类也就是最大的一类
7:33.000–7:35.040
就是模型群众
7:35.040–7:39.440
运行8bit版本光这一向就已经接近29G
7:39.440–7:42.700
而且启动后基本都要进入Mac统一内存
7:42.700–7:47.140
第二类是KVKISH和线性注意力技术
7:47.140–7:50.160
模型需要保存已经处理过的上下文
7:50.160–7:56.700
否则每生成一个Token都需要重新计算前文
7:56.700–8:00.000
KVKISH和上下文长度直接下文
8:01.400–8:07.760
前文原生支持约26万Token,但支持不代表你的Mac适合直接开满。
8:07.760–8:09.780
粗略计算
8:09.780–8:11.220
32K上下文
8:11.220–8:12.620
仅标准注意力
8:12.620–8:14.260
64K约4G
8:14.260–8:16.640
128K约8G
8:16.640–8:19.120
256K就要16G
8:19.120–8:22.760
此外还没包含线性注意力状态
8:22.760–8:25.340
如果平常只是聊天
8:25.340–8:26.920
或者处理普通代码任务
8:26.920–8:29.160
先从16K和32K开始
8:29.160–8:31.080
通常就已经足够了
8:31.080–8:34.060
第三类是MLX和META运行时
8:34.060–8:35.540
使用的计算空间
8:35.540–8:38.860
包括临时激活值和计算缓冲区
8:38.860–8:41.640
那么它不是固定数字
8:41.640–8:44.020
会随输入程度和并发变化
8:44.020–8:47.860
尤其是在第一次读取大段Prompt
8:47.860–8:49.460
也就是Prefill阶段
8:49.460–8:52.020
内存占用可能突然上升
8:52.020–8:56.000
第四类是视觉编码器
8:56.000–8:59.140
那么只做文字
8:59.140–9:00.880
写代码或运行Agent
9:00.880–9:02.300
可以选择TextOnly
9:02.300–9:04.260
需要读取图片或视频
9:04.260–9:06.260
才选择完整多模态版本
9:06.260–9:09.500
第五类是DFLASH2草稿模型
9:09.500–9:11.020
它不是普通开关
9:11.020–9:13.220
还需要一个配套的草稿模型
9:13.220–9:17.020
本身它大约21个参数
9:17.020–9:21.480
并额外占用缓存和缓冲区
9:21.480–9:26.380
所以最终的内存杖不是27B等于27G
9:26.380–9:28.220
而是模型权重加Cache
9:28.220–9:31.020
加运行缓冲加系统占用
9:31.020–9:33.840
再加DFLASH2草稿模型
9:33.840–9:37.880
如果想运行8bit版本
9:37.880–9:41.820
那么48G统一内存可以作为比较现实的起点
9:41.820–9:44.220
例如4G会更加舒服
9:44.220–9:47.300
32G不是绝对加载不了
9:47.300–9:48.780
但余量非常小
9:48.780–9:51.220
如果Mac只有24G或32G的话
9:51.220–9:56.980
我建议更加直接使用4bit版本是比较好的
9:56.980–9:59.960
模型文件大约16G
9:59.960–10:05.000
给系统Cache和D-Flash 2留下的空间会宽松很多
10:05.000–10:07.600
Mac运行本地模型常见的聊线
10:07.600–10:10.500
GGUF加Lama CPP一节MLX
10:10.500–10:13.320
这次选择MLX
10:13.320–10:18.240
因为它针对苹果电脑有比较特殊的一些优化
10:18.240–10:21.880
而且后面的D-Flash 2工具可以直接运行MLX权重
10:21.880–10:28.860
我这次选择千万3.8RGB的MLX 8bit版本
10:28.860–10:30.860
如果内存比较小
10:30.860–10:34.120
把8bit换成对应的4bit仓库即可
10:34.120–10:37.680
其他流程基本是一样的
10:37.680–10:41.360
模型可以直接去HarkinFace下载
10:41.360–10:42.960
那么下载的时候
10:42.960–10:44.620
不建议打开浏览器
10:44.620–10:46.520
一个文件一个文件点击
10:46.520–10:49.940
大模型通常拆成多个权重封片
10:49.940–10:52.500
浏览器下载非常容易中断
10:52.500–10:54.500
也可能漏掉配置文件
10:54.500–10:58.180
那么这里更推荐用HarkinFace官方的
10:58.180–10:59.660
HF命令航工具
10:59.660–11:02.580
使用新版的HUB
11:02.580–11:04.920
使用XNET后端
11:04.920–11:06.800
它可以支持并行下载
11:06.800–11:09.700
就造成你的Transfer
11:09.700–11:11.780
已经逐步被淘汰了
11:11.780–11:12.840
那么我们这里
11:12.840–11:15.680
首先安装最新版Hagenface CLI
11:15.680–11:17.440
接下来
11:17.440–11:19.340
开启高性能模式
11:19.340–11:22.560
然后把模型下载到指定目录
11:22.560–11:25.960
那么高性能模式会提高并发
11:25.960–11:28.200
尽可能利用网络和CPU资源
11:28.200–11:29.280
模型比较大
11:29.280–11:32.560
下载前记得磁盘至少还有几十T的空余空间
11:32.560–11:34.000
下载完成之后
11:34.000–11:36.580
我们先别着急安装D-Flash 2
11:36.580–11:40.600
先跑出没有加速的基础版本
11:40.600–11:43.160
建议给本地模型单独创建
11:43.160–11:44.660
Python虚拟环境
11:44.660–11:48.880
避免不同的项目依赖会互相污染
11:48.880–11:50.480
创建环境
11:50.480–11:51.880
激活环境
11:51.880–11:54.800
以及安装MXM和MX
11:54.800–11:56.720
第一次测试呢
11:56.720–11:58.420
不要开超长的上下纹
11:58.420–12:00.560
不要开Dflash 2
12:00.560–12:02.220
同时呢
12:02.220–12:04.960
也不要修改一大堆采样参数
12:04.960–12:07.300
只指定模型路径
12:07.300–12:08.340
固定Prompt
12:08.340–12:09.960
生成几百个Token
12:09.960–12:12.120
运行最基础的生成命令
12:12.120–12:14.200
运行完成之后呢
12:14.200–12:17.180
我们可以把模型加载时间
12:17.180–12:18.900
Prompt处理速度
12:18.900–12:21.660
守Token等待时间和生成Token速度
12:21.660–12:23.860
这四个数字记录下来
12:23.860–12:26.040
如果没有基础数据
12:26.040–12:29.800
后面看到每每20几个token也不知道到底快了多少
12:29.800–12:32.020
基础9变27是3倍
12:32.020–12:37.380
那么基础20变22可能就不值得增加内存和复杂度
12:37.380–12:42.600
确认基础模型稳定之后呢
12:42.600–12:45.480
我们就可以安装D-Flash 2
12:45.480–12:49.960
D-Flash 2本质上是一种推测解码技术
12:49.960–12:51.200
正常情况下
12:51.200–12:54.160
千万3.827B每生成一个token的话
12:54.160–12:57.580
都要让完整270亿参数计算一次
12:57.580–13:00.280
那么生成10个token
13:00.280–13:03.280
就要连续做10次完整的推理
13:03.280–13:05.400
Dflash 2
13:05.400–13:08.760
让一个大约20亿参数的草稿模型
13:08.760–13:12.300
一次性并行预测接下来的一组token
13:12.300–13:18.080
然后再让27B主模型一次检查这一整组答案
13:18.080–13:20.920
如果草稿模型猜的比较准
13:20.920–13:24.200
主模型一次计算就可以接受多个Token
13:24.200–13:27.260
原本连续走五六四的流程
13:27.260–13:29.620
现在可能只需要一次验证
13:29.620–13:32.460
草稿模型只负责猜
13:32.460–13:35.960
最终决定权依然在27B主模型手上
13:35.960–13:37.740
贪心解码下最终输出
13:37.740–13:39.860
可以与基础模型一致
13:39.860–13:42.720
随机采样则保留主模型原本的分布
13:42.720–13:44.340
在Mac上
13:44.340–13:47.320
比较直接的实现是MX的D Spark
13:47.320–13:51.240
那么这个虽然名字写着Dspark
13:51.240–13:54.280
但它同时支持Dspark,Dflash和Dflash2
13:54.280–13:57.082
在用的时候对于千万3.8,
13:57.082–13:57.944
27B,
13:57.944–14:02.040
Ultra模式会直接使用Dflash2
14:02.040–14:07.200
安装命令也非常简单
14:11.880–14:13.360
屏幕上的安装命令
14:13.360–14:17.060
安装完成以后不要凭感觉判断有没有变快
14:17.060–14:19.520
直接运行项目自带的Benchmark
14:19.520–14:21.720
使用三轮测试
14:21.720–14:27.140
第一次运行会自动下载匹配的DFlesh2草稿模型
14:27.140–14:30.340
并根据这台Mac的实际成本测试
14:30.340–14:32.580
合适的推理长度
14:32.580–14:35.780
M1 M3 M4 M5的最佳参数呢
14:35.780–14:37.440
它是不一定一样的
14:37.440–14:40.080
如果你想直接生成内容的话
14:40.080–14:42.320
建议用这个命令
14:42.320–14:44.780
可以使用MXD Spark Generate
14:44.780–14:50.840
默认AUTO模式会为千万3.8RCB匹配DFLASH2
14:50.840–14:54.300
再用完全相同的Prompt测试
14:54.300–14:55.660
对比基础速度
14:55.660–14:59.100
DFLASH2速度接受长度和内存占用
14:59.100–15:00.980
那么比下来之后
15:00.980–15:03.360
项目在特定的M4 Pro测试中
15:03.360–15:06.160
8bit的基础约8.4Token每秒
15:06.160–15:09.160
DFLASH2平均约30.5Token每秒
15:09.160–15:13.040
不同任务约2.8到4倍
15:13.040–15:17.220
但这不是你的Mac一定能达到的速度
15:17.220–15:17.980
因为呢
15:17.980–15:20.620
DFLASH2不是打开以后
15:20.620–15:22.000
它就一定变快
15:22.000–15:23.980
如果草稿接受率低的话
15:23.980–15:26.980
主模型会不断拒绝和重新生成
15:26.980–15:30.080
草稿计算反而成为额外的负担
15:30.080–15:33.440
对于只有几十个Token的短回答
15:33.440–15:36.240
模型刚加载完成和校准
15:36.240–15:37.440
任务就结束了
15:37.440–15:39.980
实际体感提升可能不是很明显
15:39.980–15:43.040
D-Flash 2还会增加内存占用
15:43.040–15:44.460
所以呢
15:44.460–15:45.936
如果8bit主
15:45.936–15:49.611
所以,如果8bit主模型以及頻繁swap,
15:49.611–15:51.361
那麼再加載草稿模型,
15:51.361–15:52.936
最終速度反而更慢。
15:52.936–15:58.936
所以要用自己最常執行的任務去測試一下。寫代碼就測真實代碼修改。
15:58.936–16:02.376
生成口播稿就连续输出一两千的token
16:02.376–16:06.236
运行agent就测试完整工具调用
16:06.236–16:09.936
最后一步是把模型启动成API
16:09.936–16:14.076
MLX的Dspark可以兼容OpenAI
16:14.076–16:18.036
那么和Astorbit格式的本地服务
16:18.036–16:20.716
启动命令是MLXDsparkServe
16:22.796–16:27.656
默认是开在本级8080端口去提供接口的
16:27.656–16:32.296
客户端BaseURL设置成127.0.18080
16:32.296–16:35.576
设置好之后
16:35.576–16:37.276
只在自己电脑使用
16:37.276–16:40.016
可以不设置真正的API Key
16:40.016–16:41.836
需要局域网访问的时候
16:41.836–16:43.396
要调整监听地址
16:43.396–16:44.976
检查防火墙
16:44.976–16:49.256
但不要把无件权接口直接暴露到公网
16:49.256–16:52.756
到这里我们完成了整套部署流程
16:52.756–16:53.476
第一
16:53.476–16:56.576
R7B代表约270亿参数
16:56.576–16:59.596
而且它是全量激活的稠密模型
16:59.596–17:00.196
第二
17:00.196–17:03.456
RGB不等于只需RGB内存
17:03.456–17:05.556
把比特权重接近R9G运行
17:05.556–17:09.416
是要加CASE缓冲区系统和草稿模型
17:09.416–17:12.136
那么第三
17:12.136–17:15.016
它属于本地模型高端档
17:15.016–17:18.116
部分编程和Agent任务接近B原起见
17:18.116–17:19.996
但不是全面的替代
17:19.996–17:21.076
第四
17:21.076–17:22.596
不要一上来
17:22.596–17:24.516
就打开所有加速箱
17:24.516–17:26.976
先用MLX跑出基础速度
17:26.976–17:29.436
再用相同Prompt做A-B测试
17:29.436–17:32.596
决定是否长期使用D-Flash 2
17:32.596–17:35.716
如果真实任务从每秒9个Token
17:35.716–17:37.776
能够提高到2-30个的话
17:37.776–17:39.356
而且内存稳定
17:39.356–17:41.856
那么它就值得长期去打开
17:41.856–17:45.996
如果频繁Swap或者主要都是短问答的话
17:45.996–17:48.736
4bit基础模型可能更舒服一些
17:48.736–17:53.036
本地部署大模型的价值不是省API费用
17:53.036–17:55.936
当它变成Mac上的本地服务
17:55.936–17:58.696
它就可以接入代码Langraph
17:58.696–17:59.936
自动剪辑系统
17:59.936–18:00.776
知识库
18:00.776–18:03.916
以及agent工作流
18:03.916–18:07.556
真正好的本地布置方案
18:07.556–18:08.876
不是参数最大
18:08.876–18:10.636
也不是测试数字最高
18:10.636–18:12.116
而是在自己的设备上
18:12.116–18:13.076
质量足够好
18:13.076–18:14.316
速度能够接受
18:14.316–18:16.236
内存保持稳定
18:16.236–18:19.156
并且真的进入日常工作流
18:19.156–18:20.756
才能长期去使用
18:20.756–18:24.196
影片领誘到的模型地址安装命令和测试命令
18:24.196–18:26.416
我都会整理在下方
18:26.416–18:33.436
如果希望下一期测试4bit 6bit和8bit的品质差距的话
18:33.436–18:36.856
以及DFlex 2速度也可以留言给我
18:36.856–18:39.056
喜欢这支影片的话
18:39.056–18:42.776
记得帮我按赞订阅加分享哦
18:42.776–18:44.956
这是我持续创作的最大动力
18:44.956–18:45.916
我们下次再见
0:00.000–0:03.849
zh開放了千萬3.8RGB的模型權重。
開放了千萬3.8RGB的模型權重。
0:03.849–0:08.151
zh很多人看到RGB之後的第一個問題就是,
很多人看到RGB之後的第一個問題就是,
0:08.151–0:09.057
zh這東西,
這東西,
0:09.057–0:12.000
zh我的Mac到底能不能跑呢?
我的Mac到底能不能跑呢?
0:12.000–0:16.171
zh有人看到量化以後只需要十幾GB的內存,
有人看到量化以後只需要十幾GB的內存,
0:16.171–0:21.000
zh覺得自己的24GB Mac應該也沒有什麼問題。
覺得自己的24GB Mac應該也沒有什麼問題。
0:21.000–0:24.060
zh结果模型下载完以后
结果模型下载完以后
0:24.060–0:25.780
zh要么加载失败
要么加载失败
0:25.780–0:27.880
zh要么刚开始生成
要么刚开始生成
0:27.880–0:30.380
zh系统内存就直接爆掉
系统内存就直接爆掉
0:30.380–0:34.880
zh有人花了半天时间把模型跑起来
有人花了半天时间把模型跑起来
0:34.880–0:38.600
zh最后发现生成速度只有每秒八九个Token
最后发现生成速度只有每秒八九个Token
0:38.600–0:41.700
zh打开MTP之后不仅没有加速
打开MTP之后不仅没有加速
0:41.700–0:42.980
zh反而更慢了
反而更慢了
0:42.980–0:45.520
zh所以今天这支影片
所以今天这支影片
0:45.520–0:47.660
zh我会从零开始
我会从零开始
0:47.660–0:50.840
zh带你在Mac上完整部署一次
带你在Mac上完整部署一次
0:50.840–0:52.680
zh千万3.8 RGB
千万3.8 RGB
0:52.680–0:56.100
zh我们会先搞清楚RGP到底代表什么
我们会先搞清楚RGP到底代表什么
0:56.100–0:58.960
zh它和Cloud GPT这些B原模型
它和Cloud GPT这些B原模型
0:58.960–1:00.620
zh大概处于什么水平
大概处于什么水平
1:00.620–1:03.880
zh然后算清楚模型运行时
然后算清楚模型运行时
1:03.880–1:05.880
zh到底会占用多少内存
到底会占用多少内存
1:05.880–1:11.120
zh接下来我会带你选择正确的MLX量化版本
接下来我会带你选择正确的MLX量化版本
1:11.120–1:13.560
zh使用Hugging Face的并行下载工具
使用Hugging Face的并行下载工具
1:13.560–1:16.440
zh把模型下载到本地
把模型下载到本地
1:17.660–1:21.500
zh先跑出一个没有任何加速的基础速度
先跑出一个没有任何加速的基础速度
1:21.500–1:24.140
zh最后再安装DFlesh 2
最后再安装DFlesh 2
1:24.140–1:26.280
zh在下载模型之前
在下载模型之前
1:26.280–1:28.460
zh我们首先得搞清楚一件事
我们首先得搞清楚一件事
1:28.460–1:33.620
zh前往3.827B里面的这个27B到底是什么意思
前往3.827B里面的这个27B到底是什么意思
1:33.620–1:37.580
zh这里的B是Billing
这里的B是Billing
1:37.580–1:39.000
zh也就是实义
也就是实义
1:39.000–1:42.840
zh27B代表这个语言的模型部分
27B代表这个语言的模型部分
1:42.840–1:46.140
zh大约拥有271个参数
大约拥有271个参数
1:46.140–1:53.780
zh你可以把参数理解成有模型训练完成以后保留下来的271个数字
你可以把参数理解成有模型训练完成以后保留下来的271个数字
1:53.780–1:58.600
zh模型每生成一个token都要读取这些数字进行计算
模型每生成一个token都要读取这些数字进行计算
1:58.600–2:02.640
zh然后判断下一个token最有可能是什么
然后判断下一个token最有可能是什么
2:02.640–2:04.720
zh如果想象的更具体一点
如果想象的更具体一点
2:04.720–2:10.900
zh你可以把它理解成一台拥有271个旋钮的巨大机器
你可以把它理解成一台拥有271个旋钮的巨大机器
2:10.900–2:15.780
zh训练模型的过程就是不断调整这271个旋钮
训练模型的过程就是不断调整这271个旋钮
2:15.780–2:18.740
zh而我们现在进行的本地推理
而我们现在进行的本地推理
2:18.740–2:22.160
zh就是把这些调整好的旋钮加载到内存里
就是把这些调整好的旋钮加载到内存里
2:22.160–2:24.400
zh然后用它们来生成答案
然后用它们来生成答案
2:24.400–2:27.240
zh这里还有一个非常重要的概念
这里还有一个非常重要的概念
2:27.240–2:32.100
zh也就是说千问3.827B是一个Distance模型
也就是说千问3.827B是一个Distance模型
2:32.100–2:33.820
zh也就是稠密模型
也就是稠密模型
2:33.820–2:36.720
zh而不是MROE混合专家模型
而不是MROE混合专家模型
2:36.720–2:41.840
zh有些模型名称可能写着总参数35B
有些模型名称可能写着总参数35B
2:41.840–2:44.160
zh但是后面还有一个A3B
但是后面还有一个A3B
2:44.160–2:45.980
zh所谓的A3B呢
所谓的A3B呢
2:45.980–2:47.380
zh这个A3B的意思就是
这个A3B的意思就是
2:47.380–2:49.980
zh它虽然一共有350亿参数
它虽然一共有350亿参数
2:49.980–2:51.780
zh但每次生成Token的时候
但每次生成Token的时候
2:51.780–2:54.600
zh大约只有30亿参数会被激活
大约只有30亿参数会被激活
2:54.600–2:57.620
zh前往3.827B不一样
前往3.827B不一样
2:57.620–2:59.700
zh它没有A几B的后缀
它没有A几B的后缀
2:59.700–3:02.980
zh它的语言模型拥有270亿参数
它的语言模型拥有270亿参数
3:02.980–3:05.020
zh每生成一个Token
每生成一个Token
3:05.020–3:07.800
zh那么就代表着
那么就代表着
3:07.800–3:10.740
zh基本要经过这270亿参数的计算
基本要经过这270亿参数的计算
3:10.740–3:13.680
zh所以它的总参数大约是27B
所以它的总参数大约是27B
3:13.680–3:16.120
zh激活参数呢
激活参数呢
3:16.120–3:18.160
zh同样也是27B
同样也是27B
3:18.160–3:23.320
zh这也是为什么同样叫做30B左右的模型
这也是为什么同样叫做30B左右的模型
3:23.320–3:25.180
zh千万3.8 27B
千万3.8 27B
3:25.180–3:28.800
zh可能比一些35B A3B的MOE模型大很多
可能比一些35B A3B的MOE模型大很多
3:28.800–3:29.400
zh当然
当然
3:29.400–3:31.860
zh稠密模型也不是只有缺点
稠密模型也不是只有缺点
3:31.860–3:36.140
zh它的优势是所有能力都集中在同一套参数里
它的优势是所有能力都集中在同一套参数里
3:36.140–3:37.940
zh通常在输出稳定性
通常在输出稳定性
3:37.940–3:41.060
zh复杂任务和知识调用上会更加均衡
复杂任务和知识调用上会更加均衡
3:41.060–3:44.860
zh如果可以把本地运行的模型简单承评成三个类别
如果可以把本地运行的模型简单承评成三个类别
3:44.860–3:47.660
zh3B到8B通常属于轻量模型
3B到8B通常属于轻量模型
3:47.660–3:49.220
zh这类模型速度很快
这类模型速度很快
3:49.220–3:51.580
zh但复杂任务比较容易走偏
但复杂任务比较容易走偏
3:51.580–3:57.680
zh14B到30B可以看成本地大模型目前最实用的高质量区间
14B到30B可以看成本地大模型目前最实用的高质量区间
3:57.680–4:02.380
zh能力已经足以处理比较复杂的编程文章生成和工具调用
能力已经足以处理比较复杂的编程文章生成和工具调用
4:02.380–4:03.720
zh以及agent任务
以及agent任务
4:03.720–4:10.860
zh70B以上的稠密模型能力通常会更加稳定
70B以上的稠密模型能力通常会更加稳定
4:10.860–4:15.080
zh但需要的内存和内存带宽也会明显上升
但需要的内存和内存带宽也会明显上升
4:15.080–4:17.440
zh对于大部分个人用户来说
对于大部分个人用户来说
4:17.440–4:19.880
zh部署成本其实是比较高的
部署成本其实是比较高的
4:19.880–4:26.880
zh所以千万3.8RGB基本属于个人电脑还能够比较现实的部署
所以千万3.8RGB基本属于个人电脑还能够比较现实的部署
4:26.880–4:30.900
zh同时能力有足够强的高端本地模型
同时能力有足够强的高端本地模型
4:30.900–4:34.000
zh那它跟市面上的B1模型相比怎么样呢
那它跟市面上的B1模型相比怎么样呢
4:34.000–4:40.020
zh首先我们不能直接拿RGB去和Cloud和GPT的比较参数量
首先我们不能直接拿RGB去和Cloud和GPT的比较参数量
4:40.020–4:45.080
zh因为大部分B原模型不会公开完整参数量和激活参数
因为大部分B原模型不会公开完整参数量和激活参数
4:45.080–4:47.720
zh即使参数量一样
即使参数量一样
4:47.720–4:51.800
zh训练数据、模型架构、后训练和推理预算不同
训练数据、模型架构、后训练和推理预算不同
4:51.800–4:54.380
zh最终能力也可能差很多
最终能力也可能差很多
4:54.380–4:56.240
zh比较稳妥的说法是
比较稳妥的说法是
4:56.240–5:00.680
zh千万3.8RGB已经进入了可以和B原旗舰模型
千万3.8RGB已经进入了可以和B原旗舰模型
5:00.680–5:02.920
zh在部分任务上正面竞争的范围
在部分任务上正面竞争的范围
5:02.920–5:06.920
zh但它还不能全面替代B原旗舰
但它还不能全面替代B原旗舰
5:06.920–5:11.260
zh以签问官方测试为例
以签问官方测试为例
5:11.260–5:13.000
zh可以看到
可以看到
5:13.000–5:17.640
zh在Batch Pro里签问3.8
在Batch Pro里签问3.8
5:17.640–5:19.080
zhRTB是61.7
RTB是61.7
5:19.080–5:21.440
zhOPLA 4.6 MAX是53.4
OPLA 4.6 MAX是53.4
5:21.440–5:25.620
zhTerminal Bench则是73对78.2
Terminal Bench则是73对78.2
5:25.620–5:28.840
zhHLE是30.8对40
HLE是30.8对40
5:28.840–5:32.240
zh那么这组数据就可以说明
那么这组数据就可以说明
5:32.240–5:35.080
zh它在某些编程和工具调用任务上
它在某些编程和工具调用任务上
5:35.080–5:37.180
zh可以接近甚至超过B元
可以接近甚至超过B元
5:37.180–5:39.120
zh但是复杂开放式推理
但是复杂开放式推理
5:39.120–5:41.060
zh知识广度和长容稳定性
知识广度和长容稳定性
5:41.060–5:44.040
zhB元旗舰通常还是更强一些
B元旗舰通常还是更强一些
5:44.040–5:48.320
zh而且这是签问官方公布的测试
而且这是签问官方公布的测试
5:48.320–5:52.180
zh它不是不同模型可能使用了不同的harness
它不是不同模型可能使用了不同的harness
5:52.180–5:57.040
zh所以这也包含官方自己的测试集
所以这也包含官方自己的测试集
5:57.040–6:00.320
zh可以作为一部分定位参考
可以作为一部分定位参考
6:00.320–6:03.080
zh但不能因为某一个分数更高
但不能因为某一个分数更高
6:03.080–6:05.320
zh就是说千万已经全面超越了Cloud
就是说千万已经全面超越了Cloud
6:05.320–6:07.600
zh对我来说最准确的定位是
对我来说最准确的定位是
6:07.600–6:10.680
zh它不是B原旗舰的完整替代品
它不是B原旗舰的完整替代品
6:10.680–6:15.680
zh但已经是一款可以真正承担生产任务的高端本地模型
但已经是一款可以真正承担生产任务的高端本地模型
6:15.680–6:18.980
zh接下来我们来算一下它到底需要多少内存
接下来我们来算一下它到底需要多少内存
6:18.980–6:23.680
zh很多人看到27B会直接认为它需要27G的内存
很多人看到27B会直接认为它需要27G的内存
6:23.680–6:28.160
zh这个说法只在非常特定的条件下才大致成立
这个说法只在非常特定的条件下才大致成立
6:29.440–6:32.840
zh如果使用BF16一个参数呢
如果使用BF16一个参数呢
6:32.840–6:34.160
zh需要两个字节
需要两个字节
6:34.160–6:36.900
zh270一个参数乘以两个字节的话
270一个参数乘以两个字节的话
6:36.900–6:41.480
zh光语言模型原始权重就要大约54G
光语言模型原始权重就要大约54G
6:41.480–6:43.640
zh这还没有算计算系统
这还没有算计算系统
6:43.640–6:46.620
zh缓存和退理过程中的临时内存
缓存和退理过程中的临时内存
6:46.620–6:48.280
zh所以64G Mac
所以64G Mac
6:48.280–6:50.540
zh虽然理论上可以放下BF16权重
虽然理论上可以放下BF16权重
6:50.540–6:53.100
zh但运行语量其实非常有限
但运行语量其实非常有限
6:53.100–6:55.900
zh量化的作用呢
量化的作用呢
6:55.900–6:59.060
zh就是使用更少的位数保存这些参数
就是使用更少的位数保存这些参数
6:59.060–7:02.340
zh8bit理论权重大约27G
8bit理论权重大约27G
7:02.340–7:06.120
zh4bit理论上大约13.5G
4bit理论上大约13.5G
7:06.120–7:10.080
zh实际MLX版本还包含量化参数
实际MLX版本还包含量化参数
7:10.080–7:11.400
zh词表和配置
词表和配置
7:11.400–7:14.140
zh8bit纯文字版约28.6G
8bit纯文字版约28.6G
7:14.140–7:16.420
zh带视觉能力约29.5G
带视觉能力约29.5G
7:16.420–7:18.820
zh4bit版本大约16G
4bit版本大约16G
7:18.820–7:22.120
zh那么从这些地方的这些数字
那么从这些地方的这些数字
7:22.120–7:24.120
zh只代表模型权重
只代表模型权重
7:24.120–7:27.280
zh并不是模型启动后的总内存占用
并不是模型启动后的总内存占用
7:27.280–7:29.140
zh每次运行时
每次运行时
7:29.140–7:31.200
zh内存里至少还要放进五类东西
内存里至少还要放进五类东西
7:31.200–7:33.000
zh第一类也就是最大的一类
第一类也就是最大的一类
7:33.000–7:35.040
zh就是模型群众
就是模型群众
7:35.040–7:39.440
zh运行8bit版本光这一向就已经接近29G
运行8bit版本光这一向就已经接近29G
7:39.440–7:42.700
zh而且启动后基本都要进入Mac统一内存
而且启动后基本都要进入Mac统一内存
7:42.700–7:47.140
zh第二类是KVKISH和线性注意力技术
第二类是KVKISH和线性注意力技术
7:47.140–7:50.160
zh模型需要保存已经处理过的上下文
模型需要保存已经处理过的上下文
7:50.160–7:56.700
zh否则每生成一个Token都需要重新计算前文
否则每生成一个Token都需要重新计算前文
7:56.700–8:00.000
zhKVKISH和上下文长度直接下文
KVKISH和上下文长度直接下文
8:01.400–8:07.760
zh前文原生支持约26万Token,但支持不代表你的Mac适合直接开满。
前文原生支持约26万Token,但支持不代表你的Mac适合直接开满。
8:07.760–8:09.780
zh粗略计算
粗略计算
8:09.780–8:11.220
zh32K上下文
32K上下文
8:11.220–8:12.620
zh仅标准注意力
仅标准注意力
8:12.620–8:14.260
zh64K约4G
64K约4G
8:14.260–8:16.640
zh128K约8G
128K约8G
8:16.640–8:19.120
zh256K就要16G
256K就要16G
8:19.120–8:22.760
zh此外还没包含线性注意力状态
此外还没包含线性注意力状态
8:22.760–8:25.340
zh如果平常只是聊天
如果平常只是聊天
8:25.340–8:26.920
zh或者处理普通代码任务
或者处理普通代码任务
8:26.920–8:29.160
zh先从16K和32K开始
先从16K和32K开始
8:29.160–8:31.080
zh通常就已经足够了
通常就已经足够了
8:31.080–8:34.060
zh第三类是MLX和META运行时
第三类是MLX和META运行时
8:34.060–8:35.540
zh使用的计算空间
使用的计算空间
8:35.540–8:38.860
zh包括临时激活值和计算缓冲区
包括临时激活值和计算缓冲区
8:38.860–8:41.640
zh那么它不是固定数字
那么它不是固定数字
8:41.640–8:44.020
zh会随输入程度和并发变化
会随输入程度和并发变化
8:44.020–8:47.860
zh尤其是在第一次读取大段Prompt
尤其是在第一次读取大段Prompt
8:47.860–8:49.460
zh也就是Prefill阶段
也就是Prefill阶段
8:49.460–8:52.020
zh内存占用可能突然上升
内存占用可能突然上升
8:52.020–8:56.000
zh第四类是视觉编码器
第四类是视觉编码器
8:56.000–8:59.140
zh那么只做文字
那么只做文字
8:59.140–9:00.880
zh写代码或运行Agent
写代码或运行Agent
9:00.880–9:02.300
zh可以选择TextOnly
可以选择TextOnly
9:02.300–9:04.260
zh需要读取图片或视频
需要读取图片或视频
9:04.260–9:06.260
zh才选择完整多模态版本
才选择完整多模态版本
9:06.260–9:09.500
zh第五类是DFLASH2草稿模型
第五类是DFLASH2草稿模型
9:09.500–9:11.020
zh它不是普通开关
它不是普通开关
9:11.020–9:13.220
zh还需要一个配套的草稿模型
还需要一个配套的草稿模型
9:13.220–9:17.020
zh本身它大约21个参数
本身它大约21个参数
9:17.020–9:21.480
zh并额外占用缓存和缓冲区
并额外占用缓存和缓冲区
9:21.480–9:26.380
zh所以最终的内存杖不是27B等于27G
所以最终的内存杖不是27B等于27G
9:26.380–9:28.220
zh而是模型权重加Cache
而是模型权重加Cache
9:28.220–9:31.020
zh加运行缓冲加系统占用
加运行缓冲加系统占用
9:31.020–9:33.840
zh再加DFLASH2草稿模型
再加DFLASH2草稿模型
9:33.840–9:37.880
zh如果想运行8bit版本
如果想运行8bit版本
9:37.880–9:41.820
zh那么48G统一内存可以作为比较现实的起点
那么48G统一内存可以作为比较现实的起点
9:41.820–9:44.220
zh例如4G会更加舒服
例如4G会更加舒服
9:44.220–9:47.300
zh32G不是绝对加载不了
32G不是绝对加载不了
9:47.300–9:48.780
zh但余量非常小
但余量非常小
9:48.780–9:51.220
zh如果Mac只有24G或32G的话
如果Mac只有24G或32G的话
9:51.220–9:56.980
zh我建议更加直接使用4bit版本是比较好的
我建议更加直接使用4bit版本是比较好的
9:56.980–9:59.960
zh模型文件大约16G
模型文件大约16G
9:59.960–10:05.000
zh给系统Cache和D-Flash 2留下的空间会宽松很多
给系统Cache和D-Flash 2留下的空间会宽松很多
10:05.000–10:07.600
zhMac运行本地模型常见的聊线
Mac运行本地模型常见的聊线
10:07.600–10:10.500
zhGGUF加Lama CPP一节MLX
GGUF加Lama CPP一节MLX
10:10.500–10:13.320
zh这次选择MLX
这次选择MLX
10:13.320–10:18.240
zh因为它针对苹果电脑有比较特殊的一些优化
因为它针对苹果电脑有比较特殊的一些优化
10:18.240–10:21.880
zh而且后面的D-Flash 2工具可以直接运行MLX权重
而且后面的D-Flash 2工具可以直接运行MLX权重
10:21.880–10:28.860
zh我这次选择千万3.8RGB的MLX 8bit版本
我这次选择千万3.8RGB的MLX 8bit版本
10:28.860–10:30.860
zh如果内存比较小
如果内存比较小
10:30.860–10:34.120
zh把8bit换成对应的4bit仓库即可
把8bit换成对应的4bit仓库即可
10:34.120–10:37.680
zh其他流程基本是一样的
其他流程基本是一样的
10:37.680–10:41.360
zh模型可以直接去HarkinFace下载
模型可以直接去HarkinFace下载
10:41.360–10:42.960
zh那么下载的时候
那么下载的时候
10:42.960–10:44.620
zh不建议打开浏览器
不建议打开浏览器
10:44.620–10:46.520
zh一个文件一个文件点击
一个文件一个文件点击
10:46.520–10:49.940
zh大模型通常拆成多个权重封片
大模型通常拆成多个权重封片
10:49.940–10:52.500
zh浏览器下载非常容易中断
浏览器下载非常容易中断
10:52.500–10:54.500
zh也可能漏掉配置文件
也可能漏掉配置文件
10:54.500–10:58.180
zh那么这里更推荐用HarkinFace官方的
那么这里更推荐用HarkinFace官方的
10:58.180–10:59.660
zhHF命令航工具
HF命令航工具
10:59.660–11:02.580
zh使用新版的HUB
使用新版的HUB
11:02.580–11:04.920
zh使用XNET后端
使用XNET后端
11:04.920–11:06.800
zh它可以支持并行下载
它可以支持并行下载
11:06.800–11:09.700
zh就造成你的Transfer
就造成你的Transfer
11:09.700–11:11.780
zh已经逐步被淘汰了
已经逐步被淘汰了
11:11.780–11:12.840
zh那么我们这里
那么我们这里
11:12.840–11:15.680
zh首先安装最新版Hagenface CLI
首先安装最新版Hagenface CLI
11:15.680–11:17.440
zh接下来
接下来
11:17.440–11:19.340
zh开启高性能模式
开启高性能模式
11:19.340–11:22.560
zh然后把模型下载到指定目录
然后把模型下载到指定目录
11:22.560–11:25.960
zh那么高性能模式会提高并发
那么高性能模式会提高并发
11:25.960–11:28.200
zh尽可能利用网络和CPU资源
尽可能利用网络和CPU资源
11:28.200–11:29.280
zh模型比较大
模型比较大
11:29.280–11:32.560
zh下载前记得磁盘至少还有几十T的空余空间
下载前记得磁盘至少还有几十T的空余空间
11:32.560–11:34.000
zh下载完成之后
下载完成之后
11:34.000–11:36.580
zh我们先别着急安装D-Flash 2
我们先别着急安装D-Flash 2
11:36.580–11:40.600
zh先跑出没有加速的基础版本
先跑出没有加速的基础版本
11:40.600–11:43.160
zh建议给本地模型单独创建
建议给本地模型单独创建
11:43.160–11:44.660
zhPython虚拟环境
Python虚拟环境
11:44.660–11:48.880
zh避免不同的项目依赖会互相污染
避免不同的项目依赖会互相污染
11:48.880–11:50.480
zh创建环境
创建环境
11:50.480–11:51.880
zh激活环境
激活环境
11:51.880–11:54.800
zh以及安装MXM和MX
以及安装MXM和MX
11:54.800–11:56.720
zh第一次测试呢
第一次测试呢
11:56.720–11:58.420
zh不要开超长的上下纹
不要开超长的上下纹
11:58.420–12:00.560
zh不要开Dflash 2
不要开Dflash 2
12:00.560–12:02.220
zh同时呢
同时呢
12:02.220–12:04.960
zh也不要修改一大堆采样参数
也不要修改一大堆采样参数
12:04.960–12:07.300
zh只指定模型路径
只指定模型路径
12:07.300–12:08.340
zh固定Prompt
固定Prompt
12:08.340–12:09.960
zh生成几百个Token
生成几百个Token
12:09.960–12:12.120
zh运行最基础的生成命令
运行最基础的生成命令
12:12.120–12:14.200
zh运行完成之后呢
运行完成之后呢
12:14.200–12:17.180
zh我们可以把模型加载时间
我们可以把模型加载时间
12:17.180–12:18.900
zhPrompt处理速度
Prompt处理速度
12:18.900–12:21.660
zh守Token等待时间和生成Token速度
守Token等待时间和生成Token速度
12:21.660–12:23.860
zh这四个数字记录下来
这四个数字记录下来
12:23.860–12:26.040
zh如果没有基础数据
如果没有基础数据
12:26.040–12:29.800
zh后面看到每每20几个token也不知道到底快了多少
后面看到每每20几个token也不知道到底快了多少
12:29.800–12:32.020
zh基础9变27是3倍
基础9变27是3倍
12:32.020–12:37.380
zh那么基础20变22可能就不值得增加内存和复杂度
那么基础20变22可能就不值得增加内存和复杂度
12:37.380–12:42.600
zh确认基础模型稳定之后呢
确认基础模型稳定之后呢
12:42.600–12:45.480
zh我们就可以安装D-Flash 2
我们就可以安装D-Flash 2
12:45.480–12:49.960
zhD-Flash 2本质上是一种推测解码技术
D-Flash 2本质上是一种推测解码技术
12:49.960–12:51.200
zh正常情况下
正常情况下
12:51.200–12:54.160
zh千万3.827B每生成一个token的话
千万3.827B每生成一个token的话
12:54.160–12:57.580
zh都要让完整270亿参数计算一次
都要让完整270亿参数计算一次
12:57.580–13:00.280
zh那么生成10个token
那么生成10个token
13:00.280–13:03.280
zh就要连续做10次完整的推理
就要连续做10次完整的推理
13:03.280–13:05.400
enDflash 2
Dflash 2
13:05.400–13:08.760
zh让一个大约20亿参数的草稿模型
让一个大约20亿参数的草稿模型
13:08.760–13:12.300
zh一次性并行预测接下来的一组token
一次性并行预测接下来的一组token
13:12.300–13:18.080
zh然后再让27B主模型一次检查这一整组答案
然后再让27B主模型一次检查这一整组答案
13:18.080–13:20.920
zh如果草稿模型猜的比较准
如果草稿模型猜的比较准
13:20.920–13:24.200
zh主模型一次计算就可以接受多个Token
主模型一次计算就可以接受多个Token
13:24.200–13:27.260
zh原本连续走五六四的流程
原本连续走五六四的流程
13:27.260–13:29.620
zh现在可能只需要一次验证
现在可能只需要一次验证
13:29.620–13:32.460
zh草稿模型只负责猜
草稿模型只负责猜
13:32.460–13:35.960
zh最终决定权依然在27B主模型手上
最终决定权依然在27B主模型手上
13:35.960–13:37.740
zh贪心解码下最终输出
贪心解码下最终输出
13:37.740–13:39.860
zh可以与基础模型一致
可以与基础模型一致
13:39.860–13:42.720
zh随机采样则保留主模型原本的分布
随机采样则保留主模型原本的分布
13:42.720–13:44.340
zh在Mac上
在Mac上
13:44.340–13:47.320
zh比较直接的实现是MX的D Spark
比较直接的实现是MX的D Spark
13:47.320–13:51.240
zh那么这个虽然名字写着Dspark
那么这个虽然名字写着Dspark
13:51.240–13:54.280
zh但它同时支持Dspark,Dflash和Dflash2
但它同时支持Dspark,Dflash和Dflash2
13:54.280–13:57.082
zh在用的时候对于千万3.8,
在用的时候对于千万3.8,
13:57.082–13:57.944
en27B,
27B,
13:57.944–14:02.040
zhUltra模式会直接使用Dflash2
Ultra模式会直接使用Dflash2
14:02.040–14:07.200
zh安装命令也非常简单
安装命令也非常简单
14:11.880–14:13.360
zh屏幕上的安装命令
屏幕上的安装命令
14:13.360–14:17.060
zh安装完成以后不要凭感觉判断有没有变快
安装完成以后不要凭感觉判断有没有变快
14:17.060–14:19.520
zh直接运行项目自带的Benchmark
直接运行项目自带的Benchmark
14:19.520–14:21.720
zh使用三轮测试
使用三轮测试
14:21.720–14:27.140
zh第一次运行会自动下载匹配的DFlesh2草稿模型
第一次运行会自动下载匹配的DFlesh2草稿模型
14:27.140–14:30.340
zh并根据这台Mac的实际成本测试
并根据这台Mac的实际成本测试
14:30.340–14:32.580
zh合适的推理长度
合适的推理长度
14:32.580–14:35.780
zhM1 M3 M4 M5的最佳参数呢
M1 M3 M4 M5的最佳参数呢
14:35.780–14:37.440
zh它是不一定一样的
它是不一定一样的
14:37.440–14:40.080
zh如果你想直接生成内容的话
如果你想直接生成内容的话
14:40.080–14:42.320
zh建议用这个命令
建议用这个命令
14:42.320–14:44.780
zh可以使用MXD Spark Generate
可以使用MXD Spark Generate
14:44.780–14:50.840
zh默认AUTO模式会为千万3.8RCB匹配DFLASH2
默认AUTO模式会为千万3.8RCB匹配DFLASH2
14:50.840–14:54.300
zh再用完全相同的Prompt测试
再用完全相同的Prompt测试
14:54.300–14:55.660
zh对比基础速度
对比基础速度
14:55.660–14:59.100
zhDFLASH2速度接受长度和内存占用
DFLASH2速度接受长度和内存占用
14:59.100–15:00.980
zh那么比下来之后
那么比下来之后
15:00.980–15:03.360
zh项目在特定的M4 Pro测试中
项目在特定的M4 Pro测试中
15:03.360–15:06.160
zh8bit的基础约8.4Token每秒
8bit的基础约8.4Token每秒
15:06.160–15:09.160
zhDFLASH2平均约30.5Token每秒
DFLASH2平均约30.5Token每秒
15:09.160–15:13.040
zh不同任务约2.8到4倍
不同任务约2.8到4倍
15:13.040–15:17.220
zh但这不是你的Mac一定能达到的速度
但这不是你的Mac一定能达到的速度
15:17.220–15:17.980
zh因为呢
因为呢
15:17.980–15:20.620
zhDFLASH2不是打开以后
DFLASH2不是打开以后
15:20.620–15:22.000
zh它就一定变快
它就一定变快
15:22.000–15:23.980
zh如果草稿接受率低的话
如果草稿接受率低的话
15:23.980–15:26.980
zh主模型会不断拒绝和重新生成
主模型会不断拒绝和重新生成
15:26.980–15:30.080
zh草稿计算反而成为额外的负担
草稿计算反而成为额外的负担
15:30.080–15:33.440
zh对于只有几十个Token的短回答
对于只有几十个Token的短回答
15:33.440–15:36.240
zh模型刚加载完成和校准
模型刚加载完成和校准
15:36.240–15:37.440
zh任务就结束了
任务就结束了
15:37.440–15:39.980
zh实际体感提升可能不是很明显
实际体感提升可能不是很明显
15:39.980–15:43.040
zhD-Flash 2还会增加内存占用
D-Flash 2还会增加内存占用
15:43.040–15:44.460
zh所以呢
所以呢
15:44.460–15:45.936
zh如果8bit主
如果8bit主
15:45.936–15:49.611
zh所以,如果8bit主模型以及頻繁swap,
所以,如果8bit主模型以及頻繁swap,
15:49.611–15:51.361
zh那麼再加載草稿模型,
那麼再加載草稿模型,
15:51.361–15:52.936
zh最終速度反而更慢。
最終速度反而更慢。
15:52.936–15:58.936
zh所以要用自己最常執行的任務去測試一下。寫代碼就測真實代碼修改。
所以要用自己最常執行的任務去測試一下。寫代碼就測真實代碼修改。
15:58.936–16:02.376
zh生成口播稿就连续输出一两千的token
生成口播稿就连续输出一两千的token
16:02.376–16:06.236
zh运行agent就测试完整工具调用
运行agent就测试完整工具调用
16:06.236–16:09.936
zh最后一步是把模型启动成API
最后一步是把模型启动成API
16:09.936–16:14.076
zhMLX的Dspark可以兼容OpenAI
MLX的Dspark可以兼容OpenAI
16:14.076–16:18.036
zh那么和Astorbit格式的本地服务
那么和Astorbit格式的本地服务
16:18.036–16:20.716
zh启动命令是MLXDsparkServe
启动命令是MLXDsparkServe
16:22.796–16:27.656
zh默认是开在本级8080端口去提供接口的
默认是开在本级8080端口去提供接口的
16:27.656–16:32.296
zh客户端BaseURL设置成127.0.18080
客户端BaseURL设置成127.0.18080
16:32.296–16:35.576
zh设置好之后
设置好之后
16:35.576–16:37.276
zh只在自己电脑使用
只在自己电脑使用
16:37.276–16:40.016
zh可以不设置真正的API Key
可以不设置真正的API Key
16:40.016–16:41.836
zh需要局域网访问的时候
需要局域网访问的时候
16:41.836–16:43.396
zh要调整监听地址
要调整监听地址
16:43.396–16:44.976
zh检查防火墙
检查防火墙
16:44.976–16:49.256
zh但不要把无件权接口直接暴露到公网
但不要把无件权接口直接暴露到公网
16:49.256–16:52.756
zh到这里我们完成了整套部署流程
到这里我们完成了整套部署流程
16:52.756–16:53.476
zh第一
第一
16:53.476–16:56.576
zhR7B代表约270亿参数
R7B代表约270亿参数
16:56.576–16:59.596
zh而且它是全量激活的稠密模型
而且它是全量激活的稠密模型
16:59.596–17:00.196
zh第二
第二
17:00.196–17:03.456
zhRGB不等于只需RGB内存
RGB不等于只需RGB内存
17:03.456–17:05.556
zh把比特权重接近R9G运行
把比特权重接近R9G运行
17:05.556–17:09.416
zh是要加CASE缓冲区系统和草稿模型
是要加CASE缓冲区系统和草稿模型
17:09.416–17:12.136
zh那么第三
那么第三
17:12.136–17:15.016
zh它属于本地模型高端档
它属于本地模型高端档
17:15.016–17:18.116
zh部分编程和Agent任务接近B原起见
部分编程和Agent任务接近B原起见
17:18.116–17:19.996
zh但不是全面的替代
但不是全面的替代
17:19.996–17:21.076
zh第四
第四
17:21.076–17:22.596
zh不要一上来
不要一上来
17:22.596–17:24.516
zh就打开所有加速箱
就打开所有加速箱
17:24.516–17:26.976
zh先用MLX跑出基础速度
先用MLX跑出基础速度
17:26.976–17:29.436
zh再用相同Prompt做A-B测试
再用相同Prompt做A-B测试
17:29.436–17:32.596
zh决定是否长期使用D-Flash 2
决定是否长期使用D-Flash 2
17:32.596–17:35.716
zh如果真实任务从每秒9个Token
如果真实任务从每秒9个Token
17:35.716–17:37.776
zh能够提高到2-30个的话
能够提高到2-30个的话
17:37.776–17:39.356
zh而且内存稳定
而且内存稳定
17:39.356–17:41.856
zh那么它就值得长期去打开
那么它就值得长期去打开
17:41.856–17:45.996
zh如果频繁Swap或者主要都是短问答的话
如果频繁Swap或者主要都是短问答的话
17:45.996–17:48.736
zh4bit基础模型可能更舒服一些
4bit基础模型可能更舒服一些
17:48.736–17:53.036
zh本地部署大模型的价值不是省API费用
本地部署大模型的价值不是省API费用
17:53.036–17:55.936
zh当它变成Mac上的本地服务
当它变成Mac上的本地服务
17:55.936–17:58.696
zh它就可以接入代码Langraph
它就可以接入代码Langraph
17:58.696–17:59.936
zh自动剪辑系统
自动剪辑系统
17:59.936–18:00.776
zh知识库
知识库
18:00.776–18:03.916
zh以及agent工作流
以及agent工作流
18:03.916–18:07.556
zh真正好的本地布置方案
真正好的本地布置方案
18:07.556–18:08.876
zh不是参数最大
不是参数最大
18:08.876–18:10.636
zh也不是测试数字最高
也不是测试数字最高
18:10.636–18:12.116
zh而是在自己的设备上
而是在自己的设备上
18:12.116–18:13.076
zh质量足够好
质量足够好
18:13.076–18:14.316
zh速度能够接受
速度能够接受
18:14.316–18:16.236
zh内存保持稳定
内存保持稳定
18:16.236–18:19.156
zh并且真的进入日常工作流
并且真的进入日常工作流
18:19.156–18:20.756
zh才能长期去使用
才能长期去使用
18:20.756–18:24.196
zh影片领誘到的模型地址安装命令和测试命令
影片领誘到的模型地址安装命令和测试命令
18:24.196–18:26.416
zh我都会整理在下方
我都会整理在下方
18:26.416–18:33.436
zh如果希望下一期测试4bit 6bit和8bit的品质差距的话
如果希望下一期测试4bit 6bit和8bit的品质差距的话
18:33.436–18:36.856
zh以及DFlex 2速度也可以留言给我
以及DFlex 2速度也可以留言给我
18:36.856–18:39.056
zh喜欢这支影片的话
喜欢这支影片的话
18:39.056–18:42.776
zh记得帮我按赞订阅加分享哦
记得帮我按赞订阅加分享哦
18:42.776–18:44.956
zh这是我持续创作的最大动力
这是我持续创作的最大动力
18:44.956–18:45.916
zh我们下次再见
我们下次再见

影片筆記:不用5090,Mac也能实现Token自由!Qwen3.8 27B本地实测

<!-- VIDEONOTE_PUBLICATION_WARNINGS_BEGIN -->

⚠️ 可先使用,仍有待修正項目

本筆記已完成可閱讀的逐字稿與時間跳轉;下列為待處理問題,建議播放原片確認。

  • 待修正:逐字稿全文快速校讀未完成(已保留自動字幕/原始逐字稿並繼續生成筆記。;未完成的全文速讀項目可在精進模式回聽確認。)

<!-- VIDEONOTE_PUBLICATION_WARNINGS_END -->

一句話總結

影片詳細演示如何在 Mac 上從零開始部署「千問 3.8 27B」模型,涵蓋記憶體計算、量化選擇、使用 Hugging Face CLI 下載、安裝 MLX 環境,以及透過 D-Flash 2(推测解碼)技術將生成速度從約 8.4 Token/秒提升至 30.5 Token/秒,最終啟動本地 API 服務以接入工作流。

核心重點

  • 模型定位與架構:
  • 「千問 3.8 27B」為稠密模型(Dense Model),每生成一個 Token 需經過全部 270 億參數計算。
  • 相比 MOE(混合專家)模型,稠密模型在輸出穩定性、複雜任務和知識調用上更均衡,雖非全面替代雲端旗艦模型,但在本地高端檔中表現優異。
  • 記憶體與硬體配置:
  • 量化選擇:4bit 版本約佔 16GB 記憶體,適合 24GB/32GB Mac;8bit 版本約 28-29GB,建議 48GB 統一記憶體起步。
  • 額外佔用:需預留空間給 KV Cache(上下文)、MLX 運行時緩衝區及 D-Flash 2 草稿模型(約 20 億參數)。
  • 下載與環境設置:
  • 推薦使用 Hugging Face CLI 進行並行下載,避免瀏覽器下載的中斷與配置錯誤。
  • 需建立 Python 虛擬環境並安裝 MLX 相關庫。
  • 速度加速技術(D-Flash 2):
  • 原理:使用約 20 億參數的草稿模型並行預測 Token,再由 27B 主模型驗證。若猜測準確,可減少主模型推理次數。
  • 效果:在 M4 Pro 測試中,基礎速度約 8.4 Token/秒,啟用 D-Flash 2 後提升至約 30.5 Token/秒(提升 2.8-4 倍)。
  • 代價:增加記憶體佔用,若草稿接受率低或頻繁 Swap,速度可能變慢。
  • 本地 API 服務:
  • 使用 MLX D-Spark Serve 啟動服務,默認監聽本地 8080 端口。
  • 客戶端設置 BaseURL 為 127.0.0.1:8080,無需 API Key 即可本地使用。

詳細大綱

一、 模型概念與定位

  • 參數含義解析:
  • 「27B」代表約 270 億參數(影片口述為 Billing/實義,疑為 Billion 聽誤)。
  • 稠密模型 vs MOE:
  • 稠密模型:無激活參數縮減,每 Token 全量計算。
  • MOE 模型:總參數高但激活參數低(如 35B 總參數僅激活 3B)。
  • 優勢:稠密模型在輸出穩定性、複雜任務處理及知識調用上更均衡。
  • 能力評估:
  • 屬於本地模型高端檔,部分編程和 Agent 任務可接近雲端旗艦模型。
  • 在複雜開放式推理、知識廣度和長容穩定性上,雲端旗艦模型仍較強。
  • 官方測試數據顯示在 Batch Pro、Terminal Bench 等項目表現優異,但非全面替代。

二、 記憶體佔用計算

  • 權重佔用估算:
  • BF16(全精度):約 54GB(不推薦普通 Mac 使用)。
  • 8bit:純文字版約 28.6GB,帶視覺能力約 29.5GB。
  • 4bit:約 16GB。
  • 額外記憶體需求項目:
  1. 模型權重:啟動後進入 Mac 統一記憶體。
  2. KV Cache 與上下文:
  • 原生支持約 26 萬 Token,但受硬體限制。
  • 估算:32K 上下文需額外空間,128K 約需 8GB,256K 約需 16GB(不含線性注意力狀態)。
  1. MLX 與 Meta 運行時:臨時激活值和計算緩衝區,隨輸入變化。
  2. 視覺編碼器:純文字任務可選 TextOnly,需處理圖片/視頻則選多模態版。
  3. D-Flash 2 草稿模型:約 20 億參數,額外佔用緩衝區。
  • 硬體建議:
  • 8bit 版本建議 48GB 統一記憶體起步(48G 較舒適,32G 餘量小)。
  • 24GB 或 32GB Mac 建議直接使用 4bit 版本(模型約 16GB,留給系統和草稿模型空間較寬鬆)。

三、 下載與環境設置

  • 下載策略:
  • 不建議使用瀏覽器逐文件下載(易中斷、漏配)。
  • 推薦使用 Hugging Face CLI(HF 命令工具),新版 HUB 支持 XNET 後端並行下載。
  • 確保磁盤有幾十 GB 空餘空間。
  • 環境配置:
  • 創建 Python 虛擬環境以避免依賴衝突。
  • 安裝 MLX 相關庫。

四、 基礎速度測試與 D-Flash 2 加速

  • 基礎測試標準:
  • 不開啟超長上下文、不開啟 D-Flash 2、不修改採樣參數。
  • 記錄指標:模型加載時間、Prompt 處理速度、首 Token 等待時間、生成 Token 速度。
  • D-Flash 2 技術原理:
  • 推测解碼:使用約 20 億參數的草稿模型並行預測一組 Token,再由 27B 主模型一次性驗證。
  • 效率機制:若草稿猜測準確,可減少主模型推理次數。
  • 支持模式:Greedy Decoding(貪心解碼)和 Random Sampling(隨機採樣)。
  • 安裝與測試流程:
  • 安裝 MLX 的 D-Spark(支持 D-Spark, D-Flash, D-Flash 2)。
  • 對於千問 3.8 27B,Ultra 模式會直接使用 D-Flash 2。
  • 運行項目自帶 Benchmark:自動下載匹配草稿模型,測試最佳推理長度。
  • 速度對比參考(M4 Pro):
  • 8bit 基礎速度:約 8.4 Token/秒。
  • D-Flash 2 平均速度:約 30.5 Token/秒(提升 2.8-4 倍)。
  • 注意事項:
  • D-Flash 2 增加記憶體佔用。
  • 若草稿接受率低,主模型拒絕重生成會增加負擔。
  • 短回答或頻繁 Swap 時,速度可能變慢。
  • 建議用真實任務(寫代碼、生成口播稿、運行 Agent)進行測試。

五、 啟動本地 API 服務

  • 啟動命令:使用 MLX D-Spark Serve。
  • 配置細節:
  • 默認監聽本地 8080 端口。
  • 客戶端 BaseURL 設置為 127.0.0.1:8080。
  • 本地使用可不設置 API Key。
  • 需局域網訪問時調整監聽地址並檢查防火牆。
  • 安全警告:切勿將無件權(無密碼)接口直接暴露到公網。

六、 總結與建議

  • 部署價值:不僅是節省 API 費用,更是為了接入代碼 Langraph、自動剪輯系統、知識庫及 Agent 工作流。
  • 成功標準:質量足夠好、速度可接受、記憶體穩定、進入日常工作流。
  • 決策流程:
  1. 先跑基礎速度。
  2. 再做 A-B 測試。
  3. 若真實任務能從每秒 9 Token 提高到 20-30 Token 且記憶體穩定,則值得長期開啟 D-Flash 2。
  4. 若頻繁 Swap 或主要為短問答,4bit 基礎模型可能更舒適。

工具 / 模型 / 名詞整理

  • 模型名稱:
  • 千問 3.8 27B RGB(影片稱呼,疑點見下文)
  • MOE 模型(混合專家模型)
  • Cloud GPT(疑點:可能指代某類雲端模型或聽誤)
  • B 原模型 / B 原旗艦(疑點:聽誤,可能指代某知名閉源模型)
  • 技術與框架:
  • MLX
  • D-Flash 2(推测解碼技術)
  • D-Spark(MLX 工具,支持 D-Spark, D-Flash, D-Flash 2)
  • KV Cache
  • BF16
  • 8bit / 4bit 量化
  • GGUF
  • Lama CPP(疑點:可能指 llama.cpp)
  • OpenAI API 格式
  • Langraph(疑點:可能指 LangGraph)
  • 工具與平台:
  • Hugging Face
  • HF 命令工具 / Hugging Face CLI
  • XNET 後端
  • Python 虛擬環境
  • Benchmark(基準測試工具)
  • Mac(硬體平台)
  • M1 / M3 / M4 / M5(晶片型號)

操作流程整理

  1. 準備環境:
  • 確保 Mac 硬體符合記憶體需求(建議 48GB 跑 8bit,32GB/24GB 跑 4bit)。
  • 建立 Python 虛擬環境。
  • 安裝 MLX 相關庫及 D-Spark。
  1. 下載模型:
  • 使用 Hugging Face CLI 下載「千問 3.8 27B」模型文件。
  • 確保磁盤有足夠空間(幾十 GB)。
  1. 基礎速度測試:
  • 不開啟加速功能,記錄基礎生成速度(Token/秒)、加載時間及首 Token 等待時間。
  1. 啟用加速(可選):
  • 安裝並配置 D-Flash 2。
  • 運行 Benchmark 測試最佳推理長度。
  • 對比啟用前後的速度差異及記憶體佔用情況。
  1. 啟動 API 服務:
  • 執行 MLX D-Spark Serve 命令。
  • 確認服務監聽本地 8080 端口。
  1. 接入工作流:
  • 客戶端設置 BaseURL 為 127.0.0.1:8080。
  • 測試真實任務(編程、Agent 等)的穩定性與速度。

值得注意的限制或風險

  • 記憶體壓力:
  • 啟用 D-Flash 2 會額外增加約 20 億參數的記憶體佔用。
  • 若硬體記憶體不足(如 32GB 跑 8bit),可能導致頻繁 Swap,反而降低速度。
  • 速度不穩定性:
  • D-Flash 2 在草稿接受率低時,主模型拒絕重生成會增加負擔。
  • 短回答或頻繁 Swap 時,速度可能變慢,甚至低於基礎模式。
  • 安全性:
  • 啟動本地 API 服務時,默認為無密碼接口。切勿將接口直接暴露到公網,以免被未經授權訪問。
  • 模型能力邊界:
  • 雖為本地高端模型,但在複雜開放式推理、知識廣度和長容穩定性上,仍不如雲端旗艦模型。

逐字稿辨識疑點

  • RGB:逐字稿中多次出現「RGB」,結合上下文「千萬 3.8 RGB」及「27B」,疑為「Qwen 3.8」或特定版本號的聽誤,或指代某種量化格式/特性,但標準命名中 RGB 通常指顏色空間。需查證該模型確切名稱。
  • Billing:逐字稿稱「B 是 Billing,也就是實義」,疑為「Billion」(十億)的聽誤。
  • Cloud GPT:疑點,可能為特定模型名稱聽誤。
  • B 原:逐字稿中多次出現「B 原模型」、「B 原旗艦」,疑為「閉源」或某特定品牌(如 Claude、GPT 系列)的聽誤。
  • Lama CPP:疑點,通常為 llama.cpp。
  • Langraph:疑點,通常為 LangGraph。
  • DFlesh / D-Flash / D-Flash 2:逐字稿中混用「DFlesh」、「D-Flash」、「D-Flash 2」,需確認該技術或工具的確切名稱。
  • D Spark:疑點,可能為 D-Spark 或 DeepSpeed 等工具的聽誤,需查證 MLX 生態中的具體工具名稱。
  • Transfer:逐字稿稱「就造成你的 Transfer,已經逐步被淘汰了」,疑點,可能指 Transfer 功能或某種下載方式被淘汰。
  • HarkinFace:疑點,應為 Hugging Face。
  • MXM 和 MX:疑點,可能指 mlx 相關庫。
  • 守 Token:疑點,應為「首 Token」。
  • 無件權接口:疑點,應為「無密碼接口」或類似含義。
  • 影片領誘:疑點,應為「影片介紹」或「影片推薦」。
  • DFlex 2:疑點,應為 D-Flash 2。

可延伸追問

  • 千問 3.8 27B 的確切官方名稱是否包含「RGB」?這是否指代某種特定的多模態或量化版本?
  • D-Spark 工具在 MLX 生態中的具體文檔與最新版本號為何?
  • 對於不同型號的 Mac(M1/M2/M3/M4),在運行此模型時是否有特定的晶片優化建議?
  • 除了 D-Flash 2,還有其他適用於 MLX 的加速技術嗎?
  • 如何具體配置防火牆以允許局域網訪問本地 API 服務,同時確保安全性?

尚未產生學習筆記

請在 Telegram 指令最後加上「學習」,例如:videonote 網址 英文 雙語 學習