跳至主要内容

離線 AI 根本是奇蹟

· 閱讀時間約 3 分鐘 ┊ 純文字版

最近半年,全世界都在討論 AI Agents(代理人):養龍蝦(OpenClaw)、Codex、Claude Code、Hermes 什麼的。用的人都一直說多好用、多強、多方便,好像不用就落伍了。

我當然能想像叫 AI 自動做事一定會很好玩,但我對那些雲端的 Agents 真的超沒興趣──做什麼事情都要依賴遠端的主機,而且要長時間工作的話,很快就會把用量燒完,或者是要付很多錢

直到上個禮拜,新模型 Qwen3.8-27B1 正式推出!它是第一個真正有能力「長時間獨自做事」的離線模型,我當然是推出第一天就迫不及待開始玩了。

解謎任務

那要叫它做什麼好呢?

因為前幾天這個 blog 剛好聊到《大富翁 2》以及它的音樂;我想,那就叫它寫個「大富翁 2 → 標準 MIDI」轉換器好了。

我是在 Linux 下用 Pi Coding Agent2,直接連接本機的 Qwen3.8-27B 語言模型。我就是把整個《大富翁 2》DOS 版的資料夾丟給它,然後跟它說:「你想辦法幫我把裡面的音樂轉成標準 MIDI 檔案

就這樣,沒有給別的線索──因為我也沒有別的線索了。

然後它就自己去了

  • 首先,它自己發現了資料夾裡面的一堆 .RIX 檔案可能是音樂檔。
  • 接著,自己上網搜尋找到了一個能播放 .RIX 檔案、叫做 adplug3 的函式庫。
  • 但可惜,這個 adplug 只能播放(轉成音訊),並不能提取檔案裡面的音符資訊。
  • 於是它自己去讀了 adplug 關於 RIX 格式的原始程式碼。
  • 發現 .RIX 檔其實是直接送往 AdLib 音效卡 FM 合成器的機器碼,並不是一般 MIDI 檔案。裡面沒有音符、沒有拍子、沒有小節,只有「在第幾個時間點對暫存器寫入什麼數值」的指令。所有音符的時間都要自己回推出來。
  • 而且,它從原始碼發現了 AdLib 其實有個「打擊樂模式」,打開的話,頻道 7-9 會變成鼓組。
  • 但它不知道哪一軌是哪個鼓,所以計算了每軌的音符數量,猜測打最多下的那個應該是 closed hi-hat(它猜對了)。
  • 結合以上的邏輯,它寫了一個 C++ 程式。過程中當然發生許多 bug,但它自己一遍又一遍測試程式、自己修改、自己重跑,最後終於把全部檔案轉成了可用的 MIDI 檔案!

(我只是去喝個咖啡,回來檔案就自己出現了!)

根本奇蹟

這一切如果要我去研究,可能要花我好幾個月,而且我根本不可能為了這種事投資這麼多時間。但現在,這一切只需要我硬碟裡一個 17 GB 的檔案,只花一個多小時就搞定了,還不用依賴大科技公司的資料中心(除了搜尋)4

你說這不是奇蹟是什麼?

送上轉成 MIDI 以後,用 General User GS 音色庫播放的結果:

作為對照,這是原始的 FM 合成器版本:

Footnotes

  1. https://huggingface.co/Qwen/Qwen3.8-27B

  2. https://pi.dev/

  3. https://adplug.github.io/

  4. 雖然如果用 Claude Opus 的話,可能五分鐘就搞定了,但我依然覺得離線模型可以做到這樣已經是奇蹟了。