🎓 AI-LECTURER 週末主題課|2026-08-23|約 150 分鐘(可分次讀)

AI瘦身革命:把巨型模型塞進你的手機與筆電

彙整本週素材:Turbovec – Google's TurboQuant for 、DFlash 2: Keep Drafting Parallel、Show HN: I trained a 125M model to autoc、Unsloth Dynamic 3.0 GGUFs、Up to 3.2x Faster Inference with LFM2.5-、Ornith-1.5: From Self-Scaffolding to Sel
📍 真實場景
一位想在自己筆電上做出「離線AI筆記助理」的自由接案者

她已經用ChatGPT用了一年,但每個月的API帳單越來越心疼,也擔心把客戶資料傳到雲端不安全,於是想把AI「搬回」自己的電腦

😖 卡住的地方:打開Hacker News全是「量化」「推測解碼」「邊緣部署」這些詞,看起來都在講同一件事,卻完全抓不到重點,也不知道這些技術跟她的需求有什麼關係
💡 這門課會用六個真實的技術突破案例,帶你搞懂「怎麼把巨大的AI塞進小裝置,還跑得又快又準」——上完課你會明白,一個屬於自己、不必依賴雲端的AI助理,其實沒有想像中遙遠
第 1 單元|見面禮:什麼是「AI本地化」浪潮

🧭 本單元白話講

想像一下,你口袋裡的手機或桌上的筆電,竟然能跑動一個原本得靠整排伺服器機櫃才撐得住的巨型AI模型——這正是這門課要帶你認識的「AI瘦身革命」。過去兩年,雲端上的AI模型越做越大、越聰明,但也越來越貴、越來越慢;於是整個業界忽然轉向,開始拼命把這些巨獸「搬回」你我手邊的裝置。這一單元,我們先建立大圖像:這股「AI本地化」浪潮到底在瘋什麼、靠的是哪兩把關鍵武器。

要讓一個原本活在雲端資料中心的AI模型塞進手機或筆電,得同時解決兩個問題:「裝得下」跟「跑得動」。裝不下,是因為模型的參數(可以想成它腦中儲存知識的無數個數字)動輒幾百億個,直接存起來就是幾十、上百GB;跑不動,則是因為就算裝得下,逐字生成回答的運算量還是太大,普通裝置的晶片撐不住反應速度。這波浪潮裡,業界剛好練出了兩把對症下藥的武器:一把專門負責「把模型變小」,叫量化(Quantization)把模型內部用來計算的數字,從精細但佔空間的格式,換成比較粗略但省空間的格式儲存,類似把相片存成品質降低但檔案小很多的JPG;另一把專門負責「把生成過程變快」,叫推測解碼(Speculative Decoding)先讓一個小model快速「起草」猜接下來一整段可能的內容,再交給正牌大model一次驗證整段對不對,省下逐字慢慢算的時間

開源社群工具 Unsloth 在這場瘦身賽裡跑在前面。他們最新推出的 Dynamic v3.0 量化技術,鎖定的正是「瘦身但不失智」這個難題——同樣的檔案大小下,準確度比市面上其他家的量化版本平均高出超過10%。做法上,他們沒有重新訓練模型,而是靠更講究的imatrix校準資料集量化前用來「彩排」的一批範例題目,讓演算法知道模型裡哪些數字特別重要、動不得,哪些可以放心壓縮,校準做得細,瘦身後的模型才不會變笨,再搭配更聰明的「哪一層該多留一點細節、哪一層可以狠狠壓縮」的判斷。效果具體到什麼程度?他們最激進的1-bit壓縮版本,體積只剩原本的11%(6.2GB),卻還保留了七成左右的準確度;而其中一款9.83GB的版本,甚至能穩定寫出一個能動的HTML小程式——原本同尺寸的舊版量化模型會在這種任務上直接寫壞。

光是「裝得下」還不夠快,這時候就輪到 DFlash 2 登場。它的前身 DFlash 已經被 NVIDIA、Google TPU、Meta、Poolside 等一線大廠採用,實測能把生成速度拉快3到15倍不等,甚至有雲端服務商直接把它當成預設加速引擎。DFlash 系列的關鍵突破,在於把「起草」這個步驟從過去一次只能猜一個字,改成一次平行猜出一整個區塊的所有位置,再讓正牌大model一口氣驗證整段——猜對就整段收下,猜錯的部分才丟掉重猜。DFlash 2 在這個基礎上再進化:同一次驗證能多產出超過20%的內容,而且幾乎不增加額外延遲(大約只多1%),同時保證最終輸出結果和沒加速時完全一樣,不會因為求快而犧牲正確性。

把這兩把武器放在一起看,你會發現「AI本地化」浪潮並不是靠某個單一天才技術突破,而是「變小」跟「變快」兩條路線同時成熟、彼此互補的結果:量化負責讓巨型模型塞得進你的硬碟和記憶體,推測解碼負責讓它塞進去之後還能即時對答。接下來幾個單元,我們會一層層拆開這兩把武器的引擎蓋,看看它們實際上是怎麼運作的,以及這一切最終會如何落到你自己的裝置上。

⚙️ 脈絡拆解

1
雲端巨獸,裝置裝不下AI模型的知識存在幾百億個數字裡,原封不動存下來動輒幾十、上百GB,一般手機筆電根本裝不進去。
2
先用「量化」瘦身像 Unsloth Dynamic v3.0 這樣的技術,把模型內部數字換成更省空間的格式儲存,同樣檔案大小下還能守住更多準確度,讓模型真正裝得進裝置。
3
瘦身完還要衝刺——上「推測解碼」光裝得下不夠,還要即時反應。DFlash 2 這類技術讓一個小model先平行起草一整段內容,再由大model一次驗證,大幅縮短逐字生成的等待時間。
4
大廠齊步跟進,浪潮成形NVIDIA、Google TPU、Meta、Poolside 等業界重量級玩家陸續把這些技術收進自己的產品線,「AI本地化」從實驗室構想變成正在發生的產業浪潮。
兩把瘦身武器,各自解決什麼問題
武器解決的問題這次認識的代表技術具體成果
量化 Quantization模型檔案太大,裝置裝不下Unsloth Dynamic v3.0同尺寸下準確度提升逾10%;1-bit版本縮至6.2GB仍保留約72%準確度
推測解碼 Speculative Decoding生成速度太慢,裝置跑不動DFlash 2較前代再提升16~25%輸出量,延遲只多約1%,結果與未加速時完全一致

🧠 工程思維透鏡(資深工程師看到的是什麼)

🔭 量化技術一直都有,為什麼 Unsloth Dynamic v3.0 特別被強調『不犧牲品質』?
傳統量化常見的取捨是「檔案越小、模型越笨」,但 Dynamic v3.0 的重點在於它沒有粗暴地對整個模型一視同仁地壓縮,而是靠imatrix校準資料集先摸清楚哪些數字動了會傷準確度、哪些可以放心犧牲,再針對不同層做不同程度的壓縮——甚至連要不要保留某個特定模組(像文中提到的MTP模組)都是精算過的取捨。這說明「瘦身」的真正難點從來不是把數字變少,而是知道該從哪裡少。
🔭 DFlash 2 強調『結果和沒加速時完全一樣』,這句話為什麼重要?
一般人聽到「加速」,直覺會擔心是不是用犧牲正確性換來的抄捷徑。但推測解碼的設計本來就內建了驗證機制——小model負責快速起草,大model仍然要驗證每一段猜測是否正確,猜錯就丟掉重來。這代表「變快」跟「變準」在這個技術路線裡並不衝突,DFlash 2 只是把起草的效率再往上推一層,而不是放寬驗證的標準。

📝 隨堂考(點選答案,立即回饋)

Q1. Unsloth Dynamic v3.0 這次更新,主要做到的是什麼?
✅ Dynamic v3.0 透過更好的imatrix校準資料集與更細緻的分層壓縮策略,在檔案大小不變的情況下把準確度拉高,重點是「維持品質的瘦身」,而不是重新訓練模型或改變執行環境。
Q2. DFlash 2 的「平行草稿」比傳統一次猜一個字的做法強在哪裡?
✅ DFlash系列的核心突破就是把「起草」從一次一個字的逐步預測,改成一整個區塊同時平行預測,再交給大model一次驗證整段,猜對就整段收下、猜錯才重來,速度因此大幅提升,而驗證步驟仍完整保留以確保正確性。
第 2 單元|為什麼各大廠都搶著讓AI跑更快

🧭 本單元白話講

上一集我們認識了「AI本地化」這股浪潮——想辦法把巨大的AI模型塞進你口袋裡的手機、桌上的筆電。但這裡有個問題:這些巨頭手上明明握有全世界最頂級的運算資源,為什麼NVIDIA、Google、Meta卻反而卯足全力在研究「怎麼讓AI回答問題的速度更快」?答案藏在AI生成答案的方式裡。

AI在「一個字一個字往外吐」答案的時候,其實最花時間的不是算數學,而是記憶體頻寬瓶頸每吐一個字,都要把整個模型幾十億個參數從記憶體搬到運算晶片裡跑一遍,就像每次只搬一件行李卻要來回跑一趟樓梯,真正卡住的是走道太窄,不是你力氣不夠。這代表就算換更強的晶片,只要還是「一次一個字」,速度天花板就在那裡。

於是業界想出一招叫推測解碼先找一個小小的「草稿模型」,讓它大膽一次猜出接下來好幾個字,再讓真正的大模型一口氣核對整串猜測對不對;猜對的地方直接採用,等於省下大模型重新算一次的時間,猜錯的地方大模型照樣會自己補上正確答案,所以最終答案完全不會變。素材裡的DFlash,就是把這個「猜」的動作也改成同時(平行)猜好幾個位置,而不是猜一個字又等一下再猜下一個字。

這一招的效果好到讓各大廠搶著跟進:NVIDIA用它在Blackwell GPU上量到最高15倍的處理速度,Google在自家TPU上測出3倍的每秒生成字數,CoreWeave拿它跑Kimi K2.7 Code的正式服務。連Meta(Muse Glimmer)、Poolside(Laguna)、小米(MiMo-V2.5-Pro)、NVIDIA自己(Nemotron 3.5 Lightning)都直接推出自家專屬的「草稿模型」搭配使用,DFlash相關模型在Hugging Face上被下載超過350萬次。接著登場的DFlash 2,在幾乎不增加等待時間(約多1%)的情況下,又多擠出超過20%的產出——這已經不是單一公司的技術突破,而是整條生態系一起在拼「同樣的算力,誰能榨出更多字」。

LFM團隊的DSpark則是把這場競賽再往前推一步:除了DFlash式的平行猜測,還加了一個「序列頭」讓猜出來的字前後接得更順,再加一個「信心排程驗證器」——猜到後面沒把握時乾脆提早喊停,省下白做的驗證。結果是GPU上最高3.18倍加速、裝置端最高2.87倍,而且特別針對手機、筆電這種邊緣裝置優化「函式呼叫」(也就是AI要指揮工具、下指令的能力),把延遲砍了57%。這正好呼應了本集的重點:手機沒有資料中心等級的記憶體頻寬,反而是逼出這些精巧加速技巧的最大推力。

⚙️ 脈絡拆解

1
草稿模型先開口一個很小的草稿模型(DSpark約只有3億參數)一次同時猜出接下來好幾個字,不是一個字算完才算下一個
2
大模型一次性驗證真正的大模型把這一整串猜測拿來核對,只需要跑一次,就能同時確認好幾個字對不對
3
猜對照收、猜錯補上猜對的字直接採用,猜錯的地方由大模型自己的答案取代,所以最終輸出跟大模型單獨生成時完全一樣
4
沒把握就提早喊停DSpark多了一道「信心排程」機制,如果猜到後段的字信心不足,乾脆放棄驗證那幾個字,省下不划算的運算
5
反覆推進到答案完成上述流程一輪一輪重複,直到整段回答生成完畢,過程中大模型永遠是最後拍板的人
三種生成方式速度比一比
方式怎麼運作速度表現
傳統一字一字生成大模型自己一個字一個字慢慢吐,吐完才吐下一個基準速度(1倍)
DFlash(平行草稿+一次驗證)小模型同時猜好幾個字,大模型一次驗證整串GPU上最高15倍,TPU上3倍
DSpark(平行+銜接順暢+提早喊停)在DFlash基礎上加「字與字接得順」與「沒把握就先不驗證」兩道機制GPU最高3.18倍、裝置端最高2.87倍,函式呼叫延遲降57%

🧠 工程思維透鏡(資深工程師看到的是什麼)

🔭 為什麼手握全世界最頂級算力的NVIDIA、Google,還要拼命研究怎麼「省」算力?
因為Agent時代的AI不再只是聊個幾句話,而是要讀資料、規劃、呼叫工具,一次任務可能要吐出成千上萬個字,每個字都要重新搬一次模型參數。就算運算力再強,只要是「一字一等」,使用者體驗仍然是卡頓的。於是推理速度變成不是比誰的算力大,而是比「同樣算力誰能擠出更多有效輸出」——這正是DFlash能同時被GPU、TPU等不同硬體陣營採用的原因:它是純粹的效率技巧,不需要換硬體,也不用重新訓練整個大模型。
🔭 為什麼手機這種「小」裝置的需求,反而推動了大廠的技術突破?
手機、筆電的記憶體頻寬與電量遠不如資料中心GPU,「一字一等」的瓶頸在裝置端被放大好幾倍。LFM2.5-DSpark特別鎖定「函式呼叫」(AI代理要呼叫工具、下指令的動作)優化、降低57%延遲,正是因為裝置端的AI助理若要即時反應,就必須在算力最吃緊的地方擠出效率。換句話說,手機的限制條件逼出了最精巧的演算法,而這些演算法之後又被更大型的GPU、TPU系統反向採用。

📝 隨堂考(點選答案,立即回饋)

Q1. 根據文章,推測解碼(speculative decoding)的核心概念是什麼?
✅ 推測解碼的關鍵是「猜的工作交給小模型、確認的工作交給大模型」:猜對就省下大模型逐字生成的時間,猜錯也不影響最終答案的正確性,因為大模型永遠會用自己的判斷覆蓋掉錯誤的猜測。
Q2. 為什麼LFM2.5-DSpark特別強調把「函式呼叫延遲降低57%」這件事對手機、筆電這類裝置很重要?
✅ 手機、筆電若要跑「AI代理」類應用(例如自動幫你操作App、呼叫工具),太高的延遲會讓互動明顯卡頓;DSpark鎖定這個場景優化,正說明邊緣裝置的即時性需求,反過來推動了大廠投入這類加速技術的研發。
第 3 單元|拆解引擎蓋:量化、推測解碼與本地搜尋怎麼運作

🧭 本單元白話講

上一堂我們看到各大廠為什麼卯足全力想讓AI跑更快、更省——這堂課就來打開引擎蓋,看看檯面下到底是哪些技術在撐著這股「瘦身競賽」。這次要拆解的三個技術,剛好對應AI要塞進你電腦時的三大關卡:模型本身要瘦身、每次回話要加速、還要有辦法在本機建立自己的知識庫。

Unsloth團隊發布的Dynamic 3.0,解決的就是第一關「怎麼瘦身還不失準頭」。要理解這件事,先要知道量化把模型裡每個數字改用更少的位元儲存,就像把一張高畫質照片壓縮成較小的檔案這個動作。過去量化最怕的是「壓縮完AI變笨」,Dynamic 3.0的做法不是對整個模型「雨露均霑」平均壓縮,而是先用一批多樣化的imatrix校準資料集拿一批具代表性的範例句子先跑過模型,觀察哪些部分的數字對輸出影響大、哪些影響小,再針對「動刀不能太深」的關鍵層少壓一點、其餘層多壓一點。官方號稱整體準確度比其他方案高出10%以上,其中UD-Q2_K_XL這個版本檔案只有9.83GB,準確度卻比第二名再高出約8%,甚至連原本會整個寫壞的網頁小程式,現在也能做出一個能動、只剩一個小瑕疵的版本。

光是模型變小還不夠快,因為AI每吐一個字,都要把整個模型的參數從記憶體搬到運算晶片上算一次——這個「搬資料」的時間,往往比真正計算的時間還久,這正是LFM團隊要用推測解碼先讓一個小的「草稿模型」快速猜接下來好幾個字,再讓正式的大模型一次驗證這些猜測對不對,而不是一個字一個字重新算(DSpark)解決的問題。DSpark比較特別的地方是同時用了三招:一個小草稿模型平行預測好幾步、一個負責抓「這個字和下個字關聯性」的小模組讓猜測更準、再加上一個會自己判斷「這段猜測值不值得驗證」的信心把關機制,猜不準就提早放棄省時間。而且因為猜錯的字最後都會換回大模型自己算出來的答案,最終結果跟完全不用推測解碼時一模一樣,只是速度在GPU上最快可到3.18倍、裝置端也有2.87倍,手機筆電這類裝置呼叫工具的等待時間平均還能再降57%。

第三關是「AI要怎麼在你的電腦裡有一個自己的知識庫」,答案是向量搜尋把文字轉成一串數字(向量),再靠比對這些數字的相似程度找出意思相近的內容,是打造「問AI關於我自己資料」系統的核心技術,這也是RAG(讓AI先查資料再回答)能夠成立的基礎。Google研究團隊的TurboQuant演算法被寫成Rust函式庫turbovec後,同樣的量化精神也用在向量上:一千萬筆文件原本要吃掉31GB記憶體,壓縮後只要4GB,而且在4位元設定下平均還比業界常用的FAISS快3.4倍。更關鍵的是它「不用訓練」,資料丟進去馬上就能查,跟著資料庫一起成長也不用整個重建索引。

把這三件事放在一起看,你會發現它們其實是同一種思路的三次應用:不是靠堆更多硬體去換效能,而是想辦法把「不重要的細節」榨出去,把省下來的空間和時間留給真正影響結果的部分。下一堂就要接著問:這些實驗室裡打磨出來的技術,實際落到你的手機和筆電上,能讓你做到哪些以前做不到的事。

⚙️ 脈絡拆解

1
先讓模型瘦身Dynamic 3.0用更聰明的位元分配,讓模型檔案不變胖也能保留、甚至提升準確度,這是塞進裝置的第一步。
2
讓每次回話加速DSpark用「草稿模型先猜、大模型後驗證」的推測解碼,把最耗時的記憶體搬運成本攤提到多個字上,GPU上最快可到3.18倍。
3
建立你自己的知識庫turbovec把向量搜尋的索引也用量化壓縮,讓一千萬筆資料的搜尋庫從31GB瘦到4GB,還能比FAISS更快查到答案。
4
三個技術疊在一起瘦身的模型+加速的推理+壓縮的知識庫,三者合起來才是「本地AI」真正能落地的組合拳。
三項技術各自解決什麼問題
技術解決的問題關鍵效果
動態量化(Unsloth Dynamic 3.0)模型檔案太大、壓縮後容易變笨檔案大小不變,整體準確度號稱高10%以上(UD-Q2_K_XL單一版本達+8%、9.83GB)
推測解碼(LFM2.5-DSpark)每個字都要重新搬一次模型參數,速度慢GPU最快3.18倍、裝置端2.87倍,工具呼叫延遲平均降57%
向量量化搜尋(turbovec)本地知識庫的索引太佔記憶體、搜尋慢1000萬筆文件從31GB壓到4GB,4-bit下平均比FAISS快3.4倍

🔍 程式碼漫遊(點有 ● 的行看白話講解)

turbovec的官方範例展示了怎麼在本機建立一個向量索引、加入資料、搜尋,完全不用另外跑一個訓練步驟。

from turbovec import TurboQuantIndex
💬 先把工具庫叫進來,準備建一個本地向量索引倉庫
index = TurboQuantIndex(dim=1536, bit_width=4)
💬 建立索引,dim是每筆資料轉成向量後的維度數,bit_width=4代表每個數字只用4位元壓縮儲存
index.add(vectors)
💬 把一批向量資料丟進去就直接建好索引,不像FAISS要先訓練、調參數
scores, indices = index.search(query, k=10)
💬 拿一個查詢向量,回傳跟它最相似的10筆結果與相似度分數
index.write("my_index.tv")
💬 把整個索引存成檔案,之後可以直接讀回來重複使用,不用重新計算一次

🧠 工程思維透鏡(資深工程師看到的是什麼)

🔭 「檔案大小不變」卻「準確度提升」,聽起來是不是有點違反直覺?
关键不在檔案大小,而在「位元怎麼分配」。Dynamic 3.0不是把每個數字都省一樣多位元,而是先用imatrix校準資料集看出哪些層對輸出影響最大,這些層就少壓一點、次要的層多壓一點。省下來的空間拿去補在關鍵地方,整體檔案沒變大,準確度反而因為分配更聰明而提升——這跟「把行李箱裝更滿」不同,比較像是「把重要的東西放在不會被壓壞的位置」。
🔭 推測解碼是不是「AI用猜的」在唬弄使用者?
不是。DSpark的草稿模型猜的字,一定要通過大模型驗證才會被採用;只要有一個字沒通過,就直接換回大模型自己算出來的答案。因為最終每個字的來源判斷邏輯跟不用推測解碼時完全一樣,整條輸出序列在數學上是一致的,差別只在於用草稿去猜、一次驗證多個字,省下了反覆搬運模型參數的時間,而不是犧牲正確性換速度。

📝 隨堂考(點選答案,立即回饋)

Q1. 關於 Unsloth Dynamic 3.0,下列敘述何者正確?
✅ Dynamic 3.0屬於「訓練後量化」,不改動模型本身也不訓練新模型,而是靠更好的imatrix校準資料集與逐層挑選,把有限的位元預算用在對輸出影響最大的地方,因此檔案大小不變、準確度反而提升。
Q2. DSpark推測解碼算得比較快,為什麼最終輸出結果卻和不用它時一模一樣?
✅ 在greedy decoding下,草稿模型猜的token只有真的符合目標模型的機率分佈才會被採用;一旦不符合,就退回用目標模型自己算出的token。所以整條輸出序列跟不用推測解碼時完全相同,差別只在於算得比較快。
第 4 單元|從實驗室到你的裝置:這股浪潮能為你做什麼

🧭 本單元白話講

上一堂課我們把AI的引擎蓋掀開,看了量化把模型內部數字的精細度降低、讓體積跟著變小的壓縮技巧這類讓AI能塞進手機的工程手法。這一堂課要換個角度,直接看兩個真實案例:一個是一個人在家用MIDI鋼琴做出來的接龍AI,另一個是效能比肩Claude Opus的Ornith-1.5,兩者剛好站在本地化浪潮的兩端,卻通往同一個地方——你手上的裝置。

第一個案例是開發者做的「RollTab」:一台1.25億參數的AI,能即時接續你在鋼琴上彈的旋律,在iPhone 15上每秒能生成約108個音符。它的原始資料是MIDI檔案一種只記錄「哪個琴鍵在什麼時候被按下、力道多大、何時放開」的樂譜格式,不是像MP3那樣直接錄下聲音,光是要讓AI讀懂這種格式,開發者就得先把彈奏拆成一連串事件,再token化把資料切成AI看得懂的小單位,讓模型能一步步預測「接下來會是什麼」

如果每個音符事件都直接拿「音高×力道」組合成一個token,光是按鍵這一項就有128×128+128=16,512種可能,資料一下子變得又稀疏又難學。開發者後來改用文法規則拆開:先決定是「按下」「放開」還是「經過多久時間」,再各自決定音高、力道、時長,生成時還會強制擋掉不合文法的選項(例如按下之後只能接音高,不能亂跳)。這個做法加上前後總共14次實驗的反覆調整、狠狠清掉非鋼琴音軌的雜訊資料,最後再用DPO(直接偏好優化)讓AI直接從「這個接續版本比較好」的示範裡學習,而不是單純硬記規則做最後微調,才做出聽起來夠自然的接龍效果。

第二個案例站在光譜的另一端。Ornith-1.5是一個開源基礎模型,一口氣推出397B、35B、9B三種規模,設計目標是同時顧到推理、多步驟代理任務跟寫程式。旗艦版397B在Terminal-Bench 2.1拿下86.1分、DeepSWE拿下56.0分,幾乎打平Claude Opus 4.8的85.0分與59.0分,也贏過同量級的GLM-5.2和DeepSeek-V4-Flash-0731。最小的9B版本另外做出一個量化壓縮的「9B-Mobile」版本,可以直接裝進iPhone、Android,實測還贏過參數量更大的Gemma 4-31B、Qwen 3.6-35B。

Ornith-1.5真正的重點不是分數,而是它怎麼練出來的。它不是靠人工整理好的固定題庫,而是啟動一個自我提升迴圈(self-improvement loop)AI自己出題目、自己想辦法搭配解題流程、再用解題過程產生的資料反過來訓練自己進步的機制:模型自己提出比上一輪更難的任務、自己搭建解這道題要用的鷹架,再自己跑出解題過程的資料餵給強化學習讓AI靠「做完拿分數、再依分數調整行為」持續進步的訓練方式。換句話說,連「找什麼題目來練習」這件事,Ornith-1.5都不再假手他人。

把這兩個案例放在一起看,你會發現本地化AI浪潮已經不是實驗室裡的展示品:一個人靠公開的技巧跟一支iPhone就能做出堪用的鋼琴AI;一個對標頂尖商業模型的巨獸,也會特地再壓縮出一個能塞進你口袋的版本。無論你是想自己動手做點小東西,還是只想在手機上用到最新的AI能力,這股浪潮這次是真的走到你手上了。

⚙️ 脈絡拆解

1
先找到對的資料表示法RollTab光是要教AI「看懂」音樂,就先把MIDI事件轉成token,還設計了文法規則,規定按下之後只能接音高、音高之後只能接力道,強迫AI不會生成亂七八糟的組合
2
把訓練資料洗乾淨開發者花大量力氣只留下鋼琴相關的音軌、清掉其他樂器雜訊,因為髒資料比模型大小更容易拖垮最終效果
3
用偏好對齊技巧再微調一次光靠預測下一個音還不夠好聽,RollTab在後段加上DPO訓練,讓模型直接學「哪個接續版本比較順耳」,而不是死記規則
4
讓模型自己出題目訓練自己Ornith-1.5走另一條路:不找人工任務,而是讓模型自己提出任務、自己搭配解法鷹架、自己產生強化學習用的資料,一輪一輪自己把自己教強
5
壓縮進裝置,讓你直接用不管是RollTab從頭就設計成1.25億參數的小模型,還是Ornith-1.5另外做出9B的量化Mobile版,終點都是同一件事:塞進你口袋裡的手機
兩個案例,兩種「落地到裝置」的路
案例模型規模要解決的任務怎麼落地到你的裝置你能不能自己動手做
RollTab1.25億參數(125M)即時接續你彈的鋼琴,秒接下一段旋律模型本身就做得夠小,直接跑在iPhone上,每秒可生成約108個音符能,是開發者一個人從零打造,資料處理與訓練心得都公開分享
Ornith-1.5397B / 35B / 9B三種規模(MoE與稠密)推理、多步驟代理任務、寫程式,效能比肩Claude Opus 4.89B版本另外做出量化壓縮的Mobile版,可直接裝進iPhone、Android難,需要實驗室等級的自我提升訓練迴圈才能練出來,但練好的成果你能直接下載到手機用

🧠 工程思維透鏡(資深工程師看到的是什麼)

🔭 為什麼一個獨立開發者做的鋼琴AI,和一整個實驗室做的Ornith-1.5,會被放在同一堂課裡?
因為兩者示範的是同一波「本地化」浪潮的兩端:RollTab證明就算只有一個人、一支iPhone,也能透過挑對資料表示法、洗乾淨資料、加上DPO微調做出跑得動的實用AI;Ornith-1.5則證明就連要對標Claude Opus等級的頂尖模型,也會特別再做一個量化過的9B Mobile版塞進手機。當「能不能塞進裝置」變成連旗艦模型都要顧慮的設計目標,而不是事後才想到的妥協,代表本地化已經不是邊緣需求,而是主流方向。
🔭 Ornith-1.5的「自我提升迴圈」跟RollTab反覆試驗14次,有什麼共通點?
兩者都在說明同一件事:好的本地化AI很少一次到位。RollTab作者光是找到堪用的MIDI token方式跟訓練配方就試了14次實驗;Ornith-1.5則是把這種「試了不夠好、再調整、再試」的過程直接寫進模型的訓練機制裡,讓模型自己出題、自己解題、自己用解題紀錄反過來訓練自己,把「反覆試驗」從開發者的手動工作變成模型自己會做的事。

📝 隨堂考(點選答案,立即回饋)

Q1. RollTab的開發者發現,讓鋼琴接龍AI效果大幅進步的關鍵,主要來自下列哪一項?
✅ 文章開頭就明講,效果進步最大的來源是挑對MIDI表示法、積極清理訓練資料、加上DPO後訓練,模型本身只有1.25億參數,並不是靠堆大參數量取勝。
Q2. Ornith-1.5所謂的「自我提升迴圈」,具體是指模型做了什麼?
✅ 文章說明Ornith-1.5的訓練不是靠固定的人工任務集加人工設計的鷹架,而是模型自己提出任務、自己生成任務專屬的鷹架、自己產生解題過程的資料來做強化學習,靠這個迴圈持續創造新的學習經驗。

✅ 離開前自測(全勾=這課真的學會了)

0%