Koopa.ai Agentic AI Architect Calendar Contact

Delivery calendar

A Mac mini becomes a local AI lab: six language models in a contest, plus images and songs

Delivered · 18 Oct 2026

Over two days a Mac mini with an M5 Pro and 24 GB of memory was set up to run AI entirely on the desk. Six language models answered the same ten questions, wrote code that was actually run, and played Connect Four; the same machine then drew images with Qwen-Image 2.1 and composed a Chinese song with MiniMax Music 3.

一台 Mac mini 变成本地 AI 实验室:六个大模型同场比赛,还能画图、写歌

交付日期 · 2026 年 10 月 18 日

两天里,把一台 M5 Pro、24 GB 内存的 Mac mini 搭成完全在桌面上运行的 AI 实验室。六个大模型回答同样十道题、写会被实际运行的代码、下四子棋;同一台机器再用 Qwen-Image 2.1 画图,用 MiniMax Music 3 作了一首中文歌。

一台 Mac mini 變成本地 AI 實驗室:六個大模型同場比賽,還能畫圖、寫歌

交付日期 · 2026 年 10 月 18 日

兩天裡,把一台 M5 Pro、24 GB 記憶體的 Mac mini 搭成完全在桌面上執行的 AI 實驗室。六個大模型回答同樣十道題、寫會被實際執行的程式碼、下四子棋;同一台機器再用 Qwen-Image 2.1 畫圖,用 MiniMax Music 3 作了一首中文歌。

DeliveryLocal LLMMac miniBenchmarkImage generationMusic

Results · architecture, leaderboard, speed, games, images and songs · sound on测试结果 · 架构、排行榜、速度、棋局、图片和歌曲 · 请打开声音測試結果 · 架構、排行榜、速度、棋局、圖片和歌曲 · 請開啟聲音

Open full screen ↗全屏打开 ↗全螢幕開啟 ↗

What was delivered

  • Hardware: Mac mini, Apple M5 Pro (15-core CPU, 16-core GPU), 24 GB unified memory, macOS 27. Numbers below were measured on 17–18 October 2026.
  • Text: oMLX serves the models through an OpenAI-compatible API. The Qwen3.8-9B Distill is the everyday default at about 54 tokens a second, with a 32K window.
  • Contest: Bonsai 2 27B (Qwen3.8-27B squeezed to ternary weights) won with 85 of 100 at 23 tokens a second; the 9B distill was second with 80; Gemma 4 12B and Ornith-1.5-9B 73; the official Qwen3.5-9B 72; MiniCPM5-2B 50 at 172 tokens a second.
  • Coding: every program was run. Only Bonsai and Gemma wrote a tic-tac-toe program that never loses; in a warehouse stock task Bonsai scored 79 and Gemma 71, the 9B models 28 and 0.
  • Games: the models wrote Connect Four AIs for a 112-game tournament, then Bonsai played Connect Four itself, reading the board as text each turn: 3 wins, 3 losses.
  • Vision: a photo of 38 poker chips in four rows. No model counted every colour right; Bonsai came closest with 37, and Gemma and Qwen3.5-9B were off by one or two in most rows.
  • Images: Qwen-Image 2.1 Turbo in ComfyUI, about 70 seconds per 1024 × 1024 image, with Chinese and English text drawn correctly.
  • Music: MiniMax Music 3 in audio.cpp composed a 4-minute Chinese song from hand-written lyrics in about 30 minutes; ACE-Step 1.5 re-sang the lyrics over the melody of my own Suno song, 5 minutes of music in under 3 minutes; Qwen3-ASR listened back to check the words.

How it is built

  • Four engines share one pool of unified memory, so one heavy job runs at a time: oMLX for text, a separate MLX runtime for Bonsai 2, ComfyUI for images, audio.cpp for music and speech.
  • Claude Code ran the whole lab from a phone through Remote Control: installing, downloading, writing the test harnesses, running each model's code and grading the answers.
  • Third-party loader code was read before it was run and kept in its own Python environment.

Who scored, and how

  • The judge was Claude, running in Claude Code. The models never graded themselves or each other.
  • Ten questions: each had a known correct answer. Claude read every answer and gave 0 to 10, taking points off for wrong facts, invented names or sources, and unsafe advice; an answer that never reached a conclusion scored 0.
  • Code was not graded by reading it. An automatic referee ran it: every possible tic-tac-toe game, 31 hidden tests for the warehouse task, and rule, tactics and tournament tests for Connect Four. Only the documentation part was judged by Claude.
  • Connect Four games were refereed by a program; Bonsai's results are wins and losses, not opinions.
  • Images were rated by Claude looking at each one against its prompt. For the songs, Qwen3-ASR transcribed each one and the words were compared with the lyrics; whether it sounds good is left to your ears.
  • One judge and one run per question: a hands-on comparison on one machine, not a formal benchmark.

What went wrong, and the fix

  • oMLX's safe memory mode thought only about 2 GB was free and refused to load a 5 GB model. Fix: a fixed 12 GB limit.
  • The distilled model's MTP speed-up accepted 0 of 270 draft tokens and made it slower. Fix: leave MTP off.
  • The same model silently dropped images: its file has no vision part. Images go to Gemma or Bonsai instead.
  • The 9B models often thought in circles until they ran out of tokens. Bonsai reasoned best but invented names and sources in Chinese history.
  • Bonsai's moves were cut off before it named a column. Fix: a larger budget per move and a word limit on its analysis.
  • Qwen-Image failed at the first step: the GGUF text encoder lacked its vision part, so ComfyUI misread the model. Fix: the official int8 encoder.
  • MiniMax Music 3 in ComfyUI ran on the CPU, then hit an operation the Mac GPU does not support: two hours for 90 seconds of music. Fix: audio.cpp on Metal, more than ten times faster.
  • Long-document caches had grown to 26 GB on the SSD. Fix: cleared, and capped at 10 GB.

Why it matters

A small desktop now answers questions, writes code, draws images and makes songs with nothing leaving the room. The tests also show where the limits are: local models make small mistakes in almost every program, so the code has to be run and checked, and a measured contest, not a model card, is the way to choose which model does which job.

Stack

Mac mini M5 ProoMLXMLXBonsai 2Qwen3.8-9B DistillGemma 4ComfyUIQwen-Image 2.1audio.cppMiniMax Music 3ACE-Step 1.5Qwen3-ASRClaude Code

交付了什么

  • 硬件:Mac mini,Apple M5 Pro(15 核 CPU、16 核 GPU),24 GB 统一内存,macOS 27。以下数字都是 2026 年 10 月 17–18 日实测。
  • 文字:oMLX 用 OpenAI 兼容接口提供模型服务。日常默认用 Qwen3.8-9B 蒸馏版,每秒约 54 个 token,上下文 32K。
  • 比赛:Bonsai 2 27B(把 Qwen3.8-27B 压缩成三值权重)以 85 分夺冠,每秒 23 个 token;9B 蒸馏版 80 分第二;Gemma 4 12B 和 Ornith-1.5-9B 各 73 分;官方 Qwen3.5-9B 72 分;MiniCPM5-2B 50 分,但每秒 172 个 token。
  • 写代码:每个程序都实际运行。只有 Bonsai 和 Gemma 写出了永远不会输的井字棋;仓库库存题 Bonsai 79 分、Gemma 71 分,两个 9B 模型分别 28 分和 0 分。
  • 下棋:先让模型写四子棋 AI 打了 112 局循环赛,再让 Bonsai 亲自下棋,每一步用文字读棋盘:3 胜 3 负。
  • 看图:一张四排共 38 个筹码的照片。没有一个模型把每种颜色都数对;Bonsai 最接近,数出 37 个,Gemma 和 Qwen3.5-9B 大多数排都差一两个。
  • 图片:ComfyUI 跑 Qwen-Image 2.1 Turbo,1024 × 1024 每张约 70 秒,中英文字都写得正确。
  • 音乐:audio.cpp 跑 MiniMax Music 3,用自己写的歌词约 30 分钟作出一首 4 分钟的中文歌;ACE-Step 1.5 用我自己 Suno 歌的旋律重唱这份歌词,5 分钟的歌不到 3 分钟就生成;再用 Qwen3-ASR 听一遍核对歌词。

架构

  • 四套引擎共用一块统一内存,同一时间只跑一个重任务:oMLX 跑文字模型,Bonsai 2 用独立的 MLX 运行环境,ComfyUI 画图,audio.cpp 负责音乐和语音。
  • 整个实验室由 Claude Code 通过 Remote Control 在手机上指挥:安装、下载、写测试程序、运行每个模型的代码,再逐题打分。
  • 第三方加载代码先读过再运行,并放在独立的 Python 环境里。

谁打分、怎么打分

  • 裁判是 Claude(在 Claude Code 里运行)。模型不给自己打分,也不互相打分。
  • 十道题:每题都有标准答案。Claude 逐个阅读回答,打 0 到 10 分;事实错误、编造人名或出处、给出不安全的建议都会扣分,没给出最终答案就是 0 分。
  • 代码不靠“看”来打分,而是由自动裁判程序实际运行:井字棋把所有可能的对局都下一遍,库存题跑 31 个隐藏测试,四子棋跑规则、战术和循环赛测试。只有文档那部分由 Claude 评分。
  • 四子棋对局由程序当裁判,Bonsai 的成绩是实际的胜负,不是主观评价。
  • 图片由 Claude 逐张对照提示词来评星。歌曲则用 Qwen3-ASR 转写成文字,再和歌词逐句对比;好不好听,留给你的耳朵判断。
  • 一位裁判、每题只跑一次:这是在一台机器上的实测对比,不是正式的基准测试。

遇到的问题与解决

  • oMLX 的安全内存模式以为只剩约 2 GB,拒绝载入 5 GB 的模型。解决:改成固定 12 GB 上限。
  • 蒸馏版的 MTP 加速 270 个预测 token 一个都没命中,反而更慢。解决:关闭 MTP。
  • 同一个模型会悄悄丢掉图片,因为它的文件里没有视觉部分。看图改用 Gemma 或 Bonsai。
  • 9B 模型常常在思考里绕圈,直到 token 用完。Bonsai 推理最强,但会编造中国历史的人名和出处。
  • Bonsai 下棋时分析太长,还没说出下哪一列就被截断。解决:每步给更多 token,并限制分析字数。
  • Qwen-Image 第一次全部失败:GGUF 文本编码器缺了视觉部分,ComfyUI 认错了模型。解决:换成官方 int8 编码器。
  • MiniMax Music 3 在 ComfyUI 里先跑在 CPU 上,换到 GPU 又遇到 Mac 不支持的运算:90 秒的歌要两小时。解决:改用跑在 Metal 上的 audio.cpp,快了十倍以上。
  • 长文档缓存在 SSD 上涨到 26 GB。解决:清掉,并设上限 10 GB。

为什么重要

一台小小的桌面电脑,现在能回答问题、写代码、画图、作曲,数据完全不离开房间。测试也看清了界限:本地模型几乎每个程序都会犯小错,代码一定要跑过、检查过才能用;该用哪个模型做哪件事,要靠实测比赛来决定,而不是看模型介绍。

技术栈

Mac mini M5 ProoMLXMLXBonsai 2Qwen3.8-9B DistillGemma 4ComfyUIQwen-Image 2.1audio.cppMiniMax Music 3ACE-Step 1.5Qwen3-ASRClaude Code

交付了什麼

  • 硬體:Mac mini,Apple M5 Pro(15 核 CPU、16 核 GPU),24 GB 統一記憶體,macOS 27。以下數字都是 2026 年 10 月 17–18 日實測。
  • 文字:oMLX 以 OpenAI 相容介面提供模型服務。日常預設用 Qwen3.8-9B 蒸餾版,每秒約 54 個 token,上下文 32K。
  • 比賽:Bonsai 2 27B(把 Qwen3.8-27B 壓縮成三值權重)以 85 分奪冠,每秒 23 個 token;9B 蒸餾版 80 分第二;Gemma 4 12B 和 Ornith-1.5-9B 各 73 分;官方 Qwen3.5-9B 72 分;MiniCPM5-2B 50 分,但每秒 172 個 token。
  • 寫程式:每個程式都實際執行。只有 Bonsai 和 Gemma 寫出了永遠不會輸的井字棋;倉庫庫存題 Bonsai 79 分、Gemma 71 分,兩個 9B 模型分別 28 分和 0 分。
  • 下棋:先讓模型寫四子棋 AI 打了 112 局循環賽,再讓 Bonsai 親自下棋,每一步用文字讀棋盤:3 勝 3 負。
  • 看圖:一張四排共 38 個籌碼的照片。沒有一個模型把每種顏色都數對;Bonsai 最接近,數出 37 個,Gemma 和 Qwen3.5-9B 大多數排都差一兩個。
  • 圖片:ComfyUI 執行 Qwen-Image 2.1 Turbo,1024 × 1024 每張約 70 秒,中英文字都寫得正確。
  • 音樂:audio.cpp 執行 MiniMax Music 3,用自己寫的歌詞約 30 分鐘作出一首 4 分鐘的中文歌;ACE-Step 1.5 用我自己 Suno 歌的旋律重唱這份歌詞,5 分鐘的歌不到 3 分鐘就生成;再用 Qwen3-ASR 聽一遍核對歌詞。

架構

  • 四套引擎共用一塊統一記憶體,同一時間只跑一個重任務:oMLX 執行文字模型,Bonsai 2 用獨立的 MLX 執行環境,ComfyUI 畫圖,audio.cpp 負責音樂和語音。
  • 整個實驗室由 Claude Code 透過 Remote Control 在手機上指揮:安裝、下載、寫測試程式、執行每個模型的程式碼,再逐題評分。
  • 第三方載入程式碼先讀過再執行,並放在獨立的 Python 環境裡。

誰評分、怎麼評分

  • 裁判是 Claude(在 Claude Code 裡執行)。模型不替自己評分,也不互相評分。
  • 十道題:每題都有標準答案。Claude 逐一閱讀回答,給 0 到 10 分;事實錯誤、編造人名或出處、提出不安全的建議都會扣分,沒給出最終答案就是 0 分。
  • 程式碼不靠「看」來評分,而是由自動裁判程式實際執行:井字棋把所有可能的對局都下一遍,庫存題跑 31 個隱藏測試,四子棋跑規則、戰術和循環賽測試。只有文件那部分由 Claude 評分。
  • 四子棋對局由程式當裁判,Bonsai 的成績是實際的勝負,不是主觀評價。
  • 圖片由 Claude 逐張對照提示詞來評星。歌曲則用 Qwen3-ASR 轉寫成文字,再和歌詞逐句比對;好不好聽,留給你的耳朵判斷。
  • 一位裁判、每題只跑一次:這是在一台機器上的實測比較,不是正式的基準測試。

遇到的問題與解決

  • oMLX 的安全記憶體模式以為只剩約 2 GB,拒絕載入 5 GB 的模型。解決:改成固定 12 GB 上限。
  • 蒸餾版的 MTP 加速 270 個預測 token 一個都沒命中,反而更慢。解決:關閉 MTP。
  • 同一個模型會悄悄丟掉圖片,因為它的檔案裡沒有視覺部分。看圖改用 Gemma 或 Bonsai。
  • 9B 模型常常在思考裡繞圈,直到 token 用完。Bonsai 推理最強,但會編造中國歷史的人名和出處。
  • Bonsai 下棋時分析太長,還沒說出下哪一行就被截斷。解決:每步給更多 token,並限制分析字數。
  • Qwen-Image 第一次全部失敗:GGUF 文字編碼器缺了視覺部分,ComfyUI 認錯了模型。解決:換成官方 int8 編碼器。
  • MiniMax Music 3 在 ComfyUI 裡先跑在 CPU 上,換到 GPU 又遇到 Mac 不支援的運算:90 秒的歌要兩小時。解決:改用跑在 Metal 上的 audio.cpp,快了十倍以上。
  • 長文件快取在 SSD 上漲到 26 GB。解決:清掉,並設上限 10 GB。

為什麼重要

一台小小的桌上型電腦,現在能回答問題、寫程式、畫圖、作曲,資料完全不離開房間。測試也看清了界限:本地模型幾乎每個程式都會犯小錯,程式碼一定要跑過、檢查過才能用;該用哪個模型做哪件事,要靠實測比賽來決定,而不是看模型介紹。

技術堆疊

Mac mini M5 ProoMLXMLXBonsai 2Qwen3.8-9B DistillGemma 4ComfyUIQwen-Image 2.1audio.cppMiniMax Music 3ACE-Step 1.5Qwen3-ASRClaude Code

(07) Contact

Let's talk