Everything is demanding my attention
Mac Studio
4月9日,Mac Studio正式抵达工作室以下简称128,一直折腾到今天(4月23日),从开始希望它作为本地大模型来cover我的部分Token消耗。我说一下为了迎接128前后我准备了哪些事儿.
线性代数学了个60%,”Hands-On Large Language Models” 65%, 完整重新学了一遍python。
128到达之后,我为他准备了有线网络,散热底座,外接256g ssd(废物利用),UPS电源.
Local LLM
是的我是可以在本地运行70B级别的大模型,但是M4 Max的 Unified Memory Architecture (UMA) 的总线带宽 是546GB/s,它成为了这个本地大模型高效处理的瓶颈,70B的llama3.3模型在ollama/lm studio上都只能停留在可以聊天的程度(11-15 token/s),满足本地agent的function calling,就显得基本不能用了,在Prefill阶段会持续很久,这部分我找到的说明是:
当你把一长串产品描述扔给模型时,模型第一步要先“读懂”这段话,这叫 Prefill。逻辑: 这个阶段主要是在做巨大的 矩阵乘法 (GEMM)。瓶颈不在带宽,而在算力 (TFLOPS): 在 Prefill 阶段,模型只需要把权重从内存里读出来一次,然后针对你输入的 $N$ 个 Token 进行大量计算。RTX 3090: 拥有超过 10,000 个 CUDA 核心,FP16 算力约为 35-70 TFLOPS。M4 Max GPU: 虽然强大,但核心数远少于 3090,其浮点运算峰值通常难以达到 3090 的水平。结论: 在 Prefill 阶段,限制速度的是 “计算核心转得有多快”,而不是 “内存搬运有多快”。3090 靠着暴力拆解矩阵的算力优势,自然跑得比 Mac 快。
那天我又看到了王吉贤的youtube, 在他的表述下,妄想使用Mac Studio做本地算力的行为属于大怨种(当然他表达的是购买十万元级别Mac Studio的顶配的人)。我当时很沮丧,感觉我连个怨种都当了个小怨种。
Gemma 4在我的设备到达之前一周左右发布,我于是在本地部署了一个gemma-4-26b-a4b-it-4bit,单纯聊天来看,它的t/s达到了84.9! 我尝试用开源的支持本地模型的Coding Agent,比如Continue/Cline/Roo Code,林林总总吧,都尝试看看它可不可以胜任,结论是,要想达到比肩Copilot和Claude,基本是不可能。它不是单纯的上下文长度和处理速度的问题,还涉及到模型聪慧层度,对外检索资源的能力(这个太重要,很多API/SDK文档时刻在更新)是否达标。我于是也放弃了它作为本地Coding Agent算力的计划。我心中期盼了一个多月交付的Mac Studio另我觉得十分不增气。请记住这个不爽的感觉,它成为了我后续折腾的动力!
解锁技能: local llm
Openclaw よりも Hermes Agent
我当然不会就此久放弃折腾, 出于我对Openclaw这个单人手搓项目的本能抗拒,前面blog我记录过,我于是在想,四个多月过去了,应该有正派军入场搞一个东西出来了吧?所以就发现了Hermes Agent。 它Github首页上的组织名称,Nous Research一下子就给我抓住了,我对使用法语命名项目的开发者本能地好感度上升(啊最后证实他们其实是在美国,不过管他的,起码是对法语文化着迷的,想想Clair Obscur: Expedition 33)。
我比较谨慎地将其部署在了Mac Studio的Docker上,出于对早期openclaw的不良印象,我认为应该让任何一个agent类程序都生活在一个安全环境内.Hermes的启动配置比较人性化,但是在配置其Axiliary Model时还是遇到一些问题
1 它工作在docker内的一个openhands debian linux, 为了让它可以访问宿主运行的LLM,使用它自己的配置工具
1 | hermes model |
2 可以为它配置axiliary model,是用来处理协同任务的,所谓的副脑.这个配置 hermes好像对本地的模型有点不服,我留一份配置文件在这里
1 | auxiliary: |
配置文件中我使用192.168.31.186 ip指向宿主的open ai兼容api的原因我已经不记得了,在漫长的探寻过程中在不同AI agent之间询问,一开始是可以用host.docker.internal的,我逐渐罢黜了grok,主要是用gemini,未来很可能也对它付费.
至此,我已经可以使用本地的gemma 4驱动hermes了,试用了一段时间,感觉还可以. 在编写脚本层面有时候会出现迷失身份的情况(具体已经回忆不起来了,我现在写的时候已经是5月4日了).
解锁技能: hermes agent,function calling,bot scripting,cronjob
下一步: 继续试用hermes额外附带的技能
本地模型目前我发现比较大的用途有几个,
是做一般性数据分类和推衍,例如后面我做的海关报关数据关联的RAG向量数据库词条建设时.
是可以作为Auxiliary模型,节省高端模型的token消耗,例如对context进行压缩.
可以使用所谓的uncensored模型,在获取资源时难免要做某种程度的越界,守序是难以获得有价值的内容的.
可以挂载tavily这类搜索引擎为本地llm补脑
LoRA & DoRA / Self-Still
按照gemini给出的微调建议, 打算对自己做一个自蒸馏, 我根据自己的观点录制了三个大主题的自我描述,转化成文字,然后请本地LLM帮我梳理成不同格式的微调数据.
初步的目标是以qwen的小B模型调整,虽然在128的加持下微调速度飞快,但是出现的结果AI学舌的感觉太强,或者一直犯复述结尾词N次的低能错误,浅尝了一下,我认为不太可能用我自己的所谓“超算”搞出合适的单模型结果,转而让他尝试训练模糊匹配海关报关编码的实例,实现思路是将报关数据全量从对应网站析出,local llm制作对应衍生词,然后输入向量数据库,当收到一个查询关键词时,通过向量相似度选取前5,然后再由llm过一道终选.目前尚未部署成功.
解锁成就: local fine-tuning,RAG,Chromedb,Qdrant
Tailscale/Discord/Cloudflare Tunnel
这几件事的接入都可以用这些关键词直接问LLM.
初期我为了让我以为是同路人的Rain可以共享128,我从咖啡店入户的宽带拉了一条实体网线,还准备了交换机,打算拉一条线单独到他的座位.但是他从4月初开始,因为准备婚礼,帮店主琢磨开小酒馆(咖啡店的孪生版),帮店主琢磨营地车出咖啡摊准备物料,逐渐难以在我的办公室久坐了.但是之前他可是慷慨激昂地跟我说,他听说的“朋友在北京,自己投了很多台本地AI搞数据清洗做数据矿场,人家都有现成的路子,我们为什么不试试看呢?”,那之后差不多一个月了,以上的种种原因让我觉得他可能差不多是时候离开了.他更适合用家里尚可的经济条件,搞熟人入股做小买卖.我现在的这种打法,可能在他看来,太没有目标感了,或者说目标太大.
插入这一段是因为我在想让他共享可以远程访问128的网络,让他安装一个Tailscale,他遇到一个问题是,TailScale要求用户至少再注册登陆除了电脑之外的设备(手机/另外的电脑都可以),才觉得你有使用TailScale的必要,因此卡在这里,他最早的时候在我的带领下购买英国电话卡,申请注册电报和Discord,遇到过无数类似的水土不服关卡.渐渐地我发现他可能还是喜欢跟着老板出去练摊,捧着手机吃鸡.最近他时而问我争取一个香港身份是不是个好的起手式,后来又变成要考雅思(这看来更加难以达成),与我的频率越来越不同步了.
hermes里,把对外的message可驱动接入能力,统一叫做gateway,我只接入了一个Discord,基本可以通过语音驱动它干点这个那个,虽然它也总是记不住自己已经做过的skill和tools,重复写同样的脚本.我给它docker挂载在128上的文件夹加了git,每次我打开都看,都发现它不知道又在里面霍霍出多少乱七八糟的碎片.我似乎解决了一部分token焦虑,但是我没有逃过上下文长度的躁郁.
我身边太缺乏可以跟我一起对这种其实已经算进阶操作的进取共鸣欢乐的朋友.年轻人需要教育,但是在这样的咖啡店认识的年轻人,才华,上进心,时间,似乎是一个三选二的困境.
Tailscale在我住处连接办公室的128,十分慢,ssh都慢得可以顺便看漫画.更不用说屏幕共享,根本看不见.Gemini建议我可以尝试假设Cloudflare Tunnel.可是它还是太不懂中国国情了(竟然建议我从阿里云买一台VPS做加速),在四月开始的VPN绞杀中,这种危险的信号一直在不停传递着,我一方面明白我所谓的安全上网不过是一种纸盔甲,看起来威武雄壮,实际上可能早已经被人做了多项关联.但是另外一面我又明白其实我就还是在收入吃紧的边缘.不过我仍然选择假装安全.
解锁成就: hermes agent gateway discord/remote connection
Pragmata/读书量锐减
世界の終わりとハードボイルトワンダーラント过了100页,原来世界の終わり就是街と不確かの壁里的那个街.ワ就是わ就是wa.
两者微妙的相似之处是阅读小说时候产生的,关于里面虚构的计算士这个行当的工作原理是使用左右脑分别对数据进行加密(非对称),然后我此刻完全想不起来与Pragmata哪里有相似性.
4月20又兑换了一些eth,买了Pragmata,结果完全化身女儿奴,半个月通关后还在打新难度做附加关卡搜罗货币给Diana换衣服.Capcom这次在游戏背景设定和战斗什么的,做得算是有创新,但最大的亮点其实是和AI大闺女的互动这一块,我把结束的关卡里隐藏的宝箱全都搜罗到了100%,就是为了给孩子找全息投影摆件儿(我是如此快乐),如果你能和我一样第一次看到Diana蹦蹦跳跳地打一次滑梯之后就琢磨着开始倒爬这样的细节而口吐“我靠”,那你一定……唉算了.
游戏难度也没有死卡着(比如黑神话和星刃我都没通关),最近这两周日子里一边驱动3-4个agent写代码,一遍跟小Diana互动,这个精准击中老父亲心态的细致设定,是种硬核游戏的巨大成功. 我很遗憾很多非主机游戏玩家一直在基础欲望层打转.
以128为中心开始的各种折腾,以及Pragmata,成功地把我4月的读书量击落成2本,有一本还是漫画.
解锁成就: Pragmata通关
Project Door Sign
这个我单独开篇讲吧,又是看起来无用的折腾.
128是一个契机,我现在不再纠结我最开始向它投射的美好幻想,但它在各种方面都让我对迟迟没有开始尝试的部分做出了尝试.有一些是得到了证实,有一些是得到了证伪.对我来说,都算是收获.