start	end	text
0	12000	開放了千萬3.8RGB的模型權重。很多人看到RGB之後的第一個問題就是,這東西,我的Mac到底能不能跑呢?
12000	21000	有人看到量化以後只需要十幾GB的內存,覺得自己的24GB Mac應該也沒有什麼問題。
21000	24060	结果模型下载完以后
24060	25780	要么加载失败
25780	27880	要么刚开始生成
27880	30380	系统内存就直接爆掉
30380	34880	有人花了半天时间把模型跑起来
34880	38600	最后发现生成速度只有每秒八九个Token
38600	41700	打开MTP之后不仅没有加速
41700	42980	反而更慢了
42980	45520	所以今天这支影片
45520	47660	我会从零开始
47660	50840	带你在Mac上完整部署一次
50840	52680	千万3.8 RGB
52680	56100	我们会先搞清楚RGP到底代表什么
56100	58960	它和Cloud GPT这些B原模型
58960	60620	大概处于什么水平
60620	63880	然后算清楚模型运行时
63880	65880	到底会占用多少内存
65880	71120	接下来我会带你选择正确的MLX量化版本
71120	73560	使用Hugging Face的并行下载工具
73560	76440	把模型下载到本地
77660	81500	先跑出一个没有任何加速的基础速度
81500	84140	最后再安装DFlesh 2
84140	86280	在下载模型之前
86280	88460	我们首先得搞清楚一件事
88460	93620	前往3.827B里面的这个27B到底是什么意思
93620	97580	这里的B是Billing
97580	99000	也就是实义
99000	102840	27B代表这个语言的模型部分
102840	106140	大约拥有271个参数
106140	113780	你可以把参数理解成有模型训练完成以后保留下来的271个数字
113780	118600	模型每生成一个token都要读取这些数字进行计算
118600	122640	然后判断下一个token最有可能是什么
122640	124720	如果想象的更具体一点
124720	130900	你可以把它理解成一台拥有271个旋钮的巨大机器
130900	135780	训练模型的过程就是不断调整这271个旋钮
135780	138740	而我们现在进行的本地推理
138740	142160	就是把这些调整好的旋钮加载到内存里
142160	144400	然后用它们来生成答案
144400	147240	这里还有一个非常重要的概念
147240	152100	也就是说千问3.827B是一个Distance模型
152100	153820	也就是稠密模型
153820	156720	而不是MROE混合专家模型
156720	161840	有些模型名称可能写着总参数35B
161840	164160	但是后面还有一个A3B
164160	165980	所谓的A3B呢
165980	167380	这个A3B的意思就是
167380	169980	它虽然一共有350亿参数
169980	171780	但每次生成Token的时候
171780	174600	大约只有30亿参数会被激活
174600	177620	前往3.827B不一样
177620	179700	它没有A几B的后缀
179700	182980	它的语言模型拥有270亿参数
182980	185020	每生成一个Token
185020	187800	那么就代表着
187800	190740	基本要经过这270亿参数的计算
190740	193680	所以它的总参数大约是27B
193680	196120	激活参数呢
196120	198160	同样也是27B
198160	203320	这也是为什么同样叫做30B左右的模型
203320	205180	千万3.8 27B
205180	208800	可能比一些35B A3B的MOE模型大很多
208800	209400	当然
209400	211860	稠密模型也不是只有缺点
211860	216140	它的优势是所有能力都集中在同一套参数里
216140	217940	通常在输出稳定性
217940	221060	复杂任务和知识调用上会更加均衡
221060	224860	如果可以把本地运行的模型简单承评成三个类别
224860	227660	3B到8B通常属于轻量模型
227660	229220	这类模型速度很快
229220	231580	但复杂任务比较容易走偏
231580	237680	14B到30B可以看成本地大模型目前最实用的高质量区间
237680	242380	能力已经足以处理比较复杂的编程文章生成和工具调用
242380	243720	以及agent任务
243720	250860	70B以上的稠密模型能力通常会更加稳定
250860	255080	但需要的内存和内存带宽也会明显上升
255080	257440	对于大部分个人用户来说
257440	259880	部署成本其实是比较高的
259880	266880	所以千万3.8RGB基本属于个人电脑还能够比较现实的部署
266880	270900	同时能力有足够强的高端本地模型
270900	274000	那它跟市面上的B1模型相比怎么样呢
274000	280020	首先我们不能直接拿RGB去和Cloud和GPT的比较参数量
280020	285080	因为大部分B原模型不会公开完整参数量和激活参数
285080	287720	即使参数量一样
287720	291800	训练数据、模型架构、后训练和推理预算不同
291800	294380	最终能力也可能差很多
294380	296240	比较稳妥的说法是
296240	300680	千万3.8RGB已经进入了可以和B原旗舰模型
300680	302920	在部分任务上正面竞争的范围
302920	306920	但它还不能全面替代B原旗舰
306920	311260	以签问官方测试为例
311260	313000	可以看到
313000	317640	在Batch Pro里签问3.8
317640	319080	RTB是61.7
319080	321440	OPLA 4.6 MAX是53.4
321440	325620	Terminal Bench则是73对78.2
325620	328840	HLE是30.8对40
328840	332240	那么这组数据就可以说明
332240	335080	它在某些编程和工具调用任务上
335080	337180	可以接近甚至超过B元
337180	339120	但是复杂开放式推理
339120	341060	知识广度和长容稳定性
341060	344040	B元旗舰通常还是更强一些
344040	348320	而且这是签问官方公布的测试
348320	352180	它不是不同模型可能使用了不同的harness
352180	357040	所以这也包含官方自己的测试集
357040	360320	可以作为一部分定位参考
360320	363080	但不能因为某一个分数更高
363080	365320	就是说千万已经全面超越了Cloud
365320	367600	对我来说最准确的定位是
367600	370680	它不是B原旗舰的完整替代品
370680	375680	但已经是一款可以真正承担生产任务的高端本地模型
375680	378980	接下来我们来算一下它到底需要多少内存
378980	383680	很多人看到27B会直接认为它需要27G的内存
383680	388160	这个说法只在非常特定的条件下才大致成立
389440	392840	如果使用BF16一个参数呢
392840	394160	需要两个字节
394160	396900	270一个参数乘以两个字节的话
396900	401480	光语言模型原始权重就要大约54G
401480	403640	这还没有算计算系统
403640	406620	缓存和退理过程中的临时内存
406620	408280	所以64G Mac
408280	410540	虽然理论上可以放下BF16权重
410540	413100	但运行语量其实非常有限
413100	415900	量化的作用呢
415900	419060	就是使用更少的位数保存这些参数
419060	422340	8bit理论权重大约27G
422340	426120	4bit理论上大约13.5G
426120	430080	实际MLX版本还包含量化参数
430080	431400	词表和配置
431400	434140	8bit纯文字版约28.6G
434140	436420	带视觉能力约29.5G
436420	438820	4bit版本大约16G
438820	442120	那么从这些地方的这些数字
442120	444120	只代表模型权重
444120	447280	并不是模型启动后的总内存占用
447280	449140	每次运行时
449140	451200	内存里至少还要放进五类东西
451200	453000	第一类也就是最大的一类
453000	455040	就是模型群众
455040	459440	运行8bit版本光这一向就已经接近29G
459440	462700	而且启动后基本都要进入Mac统一内存
462700	467140	第二类是KVKISH和线性注意力技术
467140	470160	模型需要保存已经处理过的上下文
470160	476700	否则每生成一个Token都需要重新计算前文
476700	480000	KVKISH和上下文长度直接下文
481400	487760	前文原生支持约26万Token,但支持不代表你的Mac适合直接开满。
487760	489780	粗略计算
489780	491220	32K上下文
491220	492620	仅标准注意力
492620	494260	64K约4G
494260	496640	128K约8G
496640	499120	256K就要16G
499120	502760	此外还没包含线性注意力状态
502760	505340	如果平常只是聊天
505340	506920	或者处理普通代码任务
506920	509160	先从16K和32K开始
509160	511080	通常就已经足够了
511080	514060	第三类是MLX和META运行时
514060	515540	使用的计算空间
515540	518860	包括临时激活值和计算缓冲区
518860	521640	那么它不是固定数字
521640	524020	会随输入程度和并发变化
524020	527860	尤其是在第一次读取大段Prompt
527860	529460	也就是Prefill阶段
529460	532020	内存占用可能突然上升
532020	536000	第四类是视觉编码器
536000	539140	那么只做文字
539140	540880	写代码或运行Agent
540880	542300	可以选择TextOnly
542300	544260	需要读取图片或视频
544260	546260	才选择完整多模态版本
546260	549500	第五类是DFLASH2草稿模型
549500	551020	它不是普通开关
551020	553220	还需要一个配套的草稿模型
553220	557020	本身它大约21个参数
557020	561480	并额外占用缓存和缓冲区
561480	566380	所以最终的内存杖不是27B等于27G
566380	568220	而是模型权重加Cache
568220	571020	加运行缓冲加系统占用
571020	573840	再加DFLASH2草稿模型
573840	577880	如果想运行8bit版本
577880	581820	那么48G统一内存可以作为比较现实的起点
581820	584220	例如4G会更加舒服
584220	587300	32G不是绝对加载不了
587300	588780	但余量非常小
588780	591220	如果Mac只有24G或32G的话
591220	596980	我建议更加直接使用4bit版本是比较好的
596980	599960	模型文件大约16G
599960	605000	给系统Cache和D-Flash 2留下的空间会宽松很多
605000	607600	Mac运行本地模型常见的聊线
607600	610500	GGUF加Lama CPP一节MLX
610500	613320	这次选择MLX
613320	618240	因为它针对苹果电脑有比较特殊的一些优化
618240	621880	而且后面的D-Flash 2工具可以直接运行MLX权重
621880	628860	我这次选择千万3.8RGB的MLX 8bit版本
628860	630860	如果内存比较小
630860	634120	把8bit换成对应的4bit仓库即可
634120	637680	其他流程基本是一样的
637680	641360	模型可以直接去HarkinFace下载
641360	642960	那么下载的时候
642960	644620	不建议打开浏览器
644620	646520	一个文件一个文件点击
646520	649940	大模型通常拆成多个权重封片
649940	652500	浏览器下载非常容易中断
652500	654500	也可能漏掉配置文件
654500	658180	那么这里更推荐用HarkinFace官方的
658180	659660	HF命令航工具
659660	662580	使用新版的HUB
662580	664920	使用XNET后端
664920	666800	它可以支持并行下载
666800	669700	就造成你的Transfer
669700	671780	已经逐步被淘汰了
671780	672840	那么我们这里
672840	675680	首先安装最新版Hagenface CLI
675680	677440	接下来
677440	679340	开启高性能模式
679340	682560	然后把模型下载到指定目录
682560	685960	那么高性能模式会提高并发
685960	688200	尽可能利用网络和CPU资源
688200	689280	模型比较大
689280	692560	下载前记得磁盘至少还有几十T的空余空间
692560	694000	下载完成之后
694000	696580	我们先别着急安装D-Flash 2
696580	700600	先跑出没有加速的基础版本
700600	703160	建议给本地模型单独创建
703160	704660	Python虚拟环境
704660	708880	避免不同的项目依赖会互相污染
708880	710480	创建环境
710480	711880	激活环境
711880	714800	以及安装MXM和MX
714800	716720	第一次测试呢
716720	718420	不要开超长的上下纹
718420	720560	不要开Dflash 2
720560	722220	同时呢
722220	724960	也不要修改一大堆采样参数
724960	727300	只指定模型路径
727300	728340	固定Prompt
728340	729960	生成几百个Token
729960	732120	运行最基础的生成命令
732120	734200	运行完成之后呢
734200	737180	我们可以把模型加载时间
737180	738900	Prompt处理速度
738900	741660	守Token等待时间和生成Token速度
741660	743860	这四个数字记录下来
743860	746040	如果没有基础数据
746040	749800	后面看到每每20几个token也不知道到底快了多少
749800	752020	基础9变27是3倍
752020	757380	那么基础20变22可能就不值得增加内存和复杂度
757380	762600	确认基础模型稳定之后呢
762600	765480	我们就可以安装D-Flash 2
765480	769960	D-Flash 2本质上是一种推测解码技术
769960	771200	正常情况下
771200	774160	千万3.827B每生成一个token的话
774160	777580	都要让完整270亿参数计算一次
777580	780280	那么生成10个token
780280	783280	就要连续做10次完整的推理
783280	785400	Dflash 2
785400	788760	让一个大约20亿参数的草稿模型
788760	792300	一次性并行预测接下来的一组token
792300	798080	然后再让27B主模型一次检查这一整组答案
798080	800920	如果草稿模型猜的比较准
800920	804200	主模型一次计算就可以接受多个Token
804200	807260	原本连续走五六四的流程
807260	809620	现在可能只需要一次验证
809620	812460	草稿模型只负责猜
812460	815960	最终决定权依然在27B主模型手上
815960	817740	贪心解码下最终输出
817740	819860	可以与基础模型一致
819860	822720	随机采样则保留主模型原本的分布
822720	824340	在Mac上
824340	827320	比较直接的实现是MX的D Spark
827320	831240	那么这个虽然名字写着Dspark
831240	834280	但它同时支持Dspark,Dflash和Dflash2
834280	842040	在用的时候对于千万3.8,27B,Ultra模式会直接使用Dflash2
842040	847200	安装命令也非常简单
851880	853360	屏幕上的安装命令
853360	857060	安装完成以后不要凭感觉判断有没有变快
857060	859520	直接运行项目自带的Benchmark
859520	861720	使用三轮测试
861720	867140	第一次运行会自动下载匹配的DFlesh2草稿模型
867140	870340	并根据这台Mac的实际成本测试
870340	872580	合适的推理长度
872580	875780	M1 M3 M4 M5的最佳参数呢
875780	877440	它是不一定一样的
877440	880080	如果你想直接生成内容的话
880080	882320	建议用这个命令
882320	884780	可以使用MXD Spark Generate
884780	890840	默认AUTO模式会为千万3.8RCB匹配DFLASH2
890840	894300	再用完全相同的Prompt测试
894300	895660	对比基础速度
895660	899100	DFLASH2速度接受长度和内存占用
899100	900980	那么比下来之后
900980	903360	项目在特定的M4 Pro测试中
903360	906160	8bit的基础约8.4Token每秒
906160	909160	DFLASH2平均约30.5Token每秒
909160	913040	不同任务约2.8到4倍
913040	917220	但这不是你的Mac一定能达到的速度
917220	917980	因为呢
917980	920620	DFLASH2不是打开以后
920620	922000	它就一定变快
922000	923980	如果草稿接受率低的话
923980	926980	主模型会不断拒绝和重新生成
926980	930080	草稿计算反而成为额外的负担
930080	933440	对于只有几十个Token的短回答
933440	936240	模型刚加载完成和校准
936240	937440	任务就结束了
937440	939980	实际体感提升可能不是很明显
939980	943040	D-Flash 2还会增加内存占用
943040	944460	所以呢
944460	945936	如果8bit主
945936	952936	所以,如果8bit主模型以及頻繁swap,那麼再加載草稿模型,最終速度反而更慢。
952936	958936	所以要用自己最常執行的任務去測試一下。寫代碼就測真實代碼修改。
958936	962376	生成口播稿就连续输出一两千的token
962376	966236	运行agent就测试完整工具调用
966236	969936	最后一步是把模型启动成API
969936	974076	MLX的Dspark可以兼容OpenAI
974076	978036	那么和Astorbit格式的本地服务
978036	980716	启动命令是MLXDsparkServe
982796	987656	默认是开在本级8080端口去提供接口的
987656	992296	客户端BaseURL设置成127.0.18080
992296	995576	设置好之后
995576	997276	只在自己电脑使用
997276	1000016	可以不设置真正的API Key
1000016	1001836	需要局域网访问的时候
1001836	1003396	要调整监听地址
1003396	1004976	检查防火墙
1004976	1009256	但不要把无件权接口直接暴露到公网
1009256	1012756	到这里我们完成了整套部署流程
1012756	1013476	第一
1013476	1016576	R7B代表约270亿参数
1016576	1019596	而且它是全量激活的稠密模型
1019596	1020196	第二
1020196	1023456	RGB不等于只需RGB内存
1023456	1025556	把比特权重接近R9G运行
1025556	1029416	是要加CASE缓冲区系统和草稿模型
1029416	1032136	那么第三
1032136	1035016	它属于本地模型高端档
1035016	1038116	部分编程和Agent任务接近B原起见
1038116	1039996	但不是全面的替代
1039996	1041076	第四
1041076	1042596	不要一上来
1042596	1044516	就打开所有加速箱
1044516	1046976	先用MLX跑出基础速度
1046976	1049436	再用相同Prompt做A-B测试
1049436	1052596	决定是否长期使用D-Flash 2
1052596	1055716	如果真实任务从每秒9个Token
1055716	1057776	能够提高到2-30个的话
1057776	1059356	而且内存稳定
1059356	1061856	那么它就值得长期去打开
1061856	1065996	如果频繁Swap或者主要都是短问答的话
1065996	1068736	4bit基础模型可能更舒服一些
1068736	1073036	本地部署大模型的价值不是省API费用
1073036	1075936	当它变成Mac上的本地服务
1075936	1078696	它就可以接入代码Langraph
1078696	1079936	自动剪辑系统
1079936	1080776	知识库
1080776	1083916	以及agent工作流
1083916	1087556	真正好的本地布置方案
1087556	1088876	不是参数最大
1088876	1090636	也不是测试数字最高
1090636	1092116	而是在自己的设备上
1092116	1093076	质量足够好
1093076	1094316	速度能够接受
1094316	1096236	内存保持稳定
1096236	1099156	并且真的进入日常工作流
1099156	1100756	才能长期去使用
1100756	1104196	影片领誘到的模型地址安装命令和测试命令
1104196	1106416	我都会整理在下方
1106416	1113436	如果希望下一期测试4bit 6bit和8bit的品质差距的话
1113436	1116856	以及DFlex 2速度也可以留言给我
1116856	1119056	喜欢这支影片的话
1119056	1122776	记得帮我按赞订阅加分享哦
1122776	1124956	这是我持续创作的最大动力
1124956	1125916	我们下次再见
