最近用 Vibe Coding 配合 index-tts 跑 AI 编程,结果烧坏了两台 Mac M4 的 SSD。一台是 Mac mini M4 24G,一台是 MacBook M4 pro 24G。很多人觉得不可思议,我也觉得不可思议。
做视频自动翻译的任务:
B站视频链接
这让我开始思考:那些教大家买一台 MacMini 跑私有大模型的,是否真的在长时间高负荷使用?
高压工作一阵后,wifi 都会出问题,一重启就是黑屏,需要刷机重装才能启动。
去了多次苹果店天才吧,也解决不了问题。因为刷机以后可以工作,但工作一阵问题重现。电脑都在保修期,全部拿去退了换新。
新软群 AI 群友帮忙分析了这个诡异问题。
群友李海猜测是 swap 大量写入造成了 SSD 损坏:
苹果低内存机器的目标用户还是追求省电静音,能接受苹果把 qlc 卖成 slc 价格的那些轻量级用户。因此苹果偶尔碰到内存不够就大肆使用 swap,反正用户如果一直卡肯定就知道自己该换机器了。但是李总这边用 ai-coding,把 qlc 反复写来写去,反正都是后台执行不在意前台卡顿,结果就把苹果的硬盘写坏了(不是程序输出写的那部分坏掉,是操作系统频繁 swap 产生了大量系统盘写入)。
硬件监控器中,发现 kernel_task
写入过大:
这个数据异常了,很有可能是 indextts 大模型跑 tts 造成的。
群友 nullgate 通过 SSD 寿命估算:一个月必须烧坏 SSD。
需要注意的是,kernel_task
进程本身不会主动向文件写入数据,它主要用于调节 Mac 的 CPU 温度,可能会在 CPU 过热时占用大量资源来帮助 Mac 散热。如果看到 kernel_task
进程在频繁地写入或占用大量资源,通常是由于其他应用程序或系统进程导致 CPU 过载,kernel_task
才介入进行散热工作。
AI Coding 自己写的 tts 调用代码,是使用了 index-tts 的 cli,一句一句循环生成时,每一次都重新加载模型,tts 生成完再退出。
有时候我会并发执行多个任务,导致内存严重不足,CPU 满负荷工作,导致 swap 频繁写入,造成 SSD 损坏。
因为每次都可以运行,只是慢一点,所以没打算优化程序。直到长期运行,导致 Mac 的 SSD 损坏。
后来写了几行 prompt,让 AI 重构了代码,先开启一个 tts 服务,一次性加载后,通过 api 来逐个生成,数据加载压力减少。问题似乎就解决了。
还有一个次要问题是,spotlight 也频繁的工作,可能跟索引有关。通过命令行关掉了 spotlight,尽量减少负荷:
sudo mdutil -i off /
sudo mdutil -i off /Volumes/Disk
使用 tg pro,让风扇满负荷工作,给 CPU 工作时降温。
问题得以解决。
Vibe Coding 写的程序可以跑,但不会保证性能问题或者是否暴力写坏硬件。还是需要工程师的反馈和观察,不断的调教,才能成为可用程序。
AI coding 的锅,谁来背?
一直以来认为 MacBook 质量好,可以拿来当服务器用。但实际上,以前是使用强度没那么大,现在让 AI 满负荷使用,照样会出问题。服务器的事,还是不要用个人电脑来跑。心疼那些廉价的 NAS 系统,根本没有什么工作负荷。