從零實作機器學習模型
每一篇都能在瀏覽器裡訓練、拆開、弄壞
沒有 PyTorch,也沒有推論函式庫:卷積、注意力、擴散、SLAM,都用 TypeScript 一行一行寫出來,就跑在你現在開著的這個分頁裡。文章裡的每個數字,都是實際量出來的。
- 篇文章
- 10
- 篇可以動手玩
- 10
- 個手寫運算子
- 30
最新文章
№ 0109 分鐘互動
從零打造一個任務排程器
60 個互相等待的任務、4 個 worker、215 行 TypeScript。排程器本身只有四條規則,連任務失敗後重新排進去都算在內;難的是回答「還要多久」。看三條進度條各自怎麼騙你,再用排程器自己去預測,最後讓它從做完的任務裡學。
閱讀全文
筆記索引
依時間排序,新的在上面。
№ 0099 分鐘
沒有人排班的城市:300 個小人各忙各的
一座程序化生成的 3D 城市,每個小人只看自己的四條需求決定下一件事。把決策換成隨機或固定時程,看整座城市的節奏怎麼變。
互動#ai-agent#from-scratch
№ 0086 分鐘
一邊畫地圖,一邊找自己:從零寫一個 SLAM
一台沒有 GPS、沒有地圖的小車,怎麼一邊畫地圖、一邊知道自己在地圖上的哪裡。開著它繞一圈,看地圖慢慢歪掉,再在回到起點的那一刻整張彈正。
互動#ai-agent#robotics#from-scratch
№ 0079 分鐘
一團雜訊怎麼長成一顆蘋果:在瀏覽器裡訓練 3D 擴散模型
選兩種水果,按下訓練。一個從零寫起的擴散模型會在你的瀏覽器裡,學會把一團彩色的 3D 雜訊點,一步一步收成那兩顆水果,連顏色一起。
互動#generative#diffusion#from-scratch
№ 0067 分鐘
把一隻機器狗搬進瀏覽器:它的走路策略只是四次矩陣乘法
用 MuJoCo 的 WebAssembly 版和 Deep Robotics 公開的走路策略,在瀏覽器裡讓 Lite3 走起來,然後動手把它弄倒:蒙住它的感覺、推它、調壞它的馬達。
互動#ai-agent#robotics#reinforcement-learning
№ 0059 分鐘
一個身體,兩個頭:在瀏覽器裡訓練同時畫框又畫遮罩的 HydraNet
用 emoji 水果當訓練資料,在瀏覽器裡從零訓練一個共用主幹、兩個輸出頭的小網路。十秒鐘它就找得到水果。然後我們誠實地量一次:多任務學習到底幫了什麼忙,又要付出什麼代價。
互動#computer-vision#multi-task#from-scratch
№ 0047 分鐘
在瀏覽器裡從零訓練一個 Transformer:看注意力自己長出來
不用 PyTorch,也不用任何函式庫。用 TypeScript 寫一個會自動微分的小引擎、一個一萬多個參數的 Transformer,然後按下按鈕,看它在幾秒內學會把一串數字反過來。
互動#llm#transformer#from-scratch
- 電腦視覺
- 多任務感知網路、teacher / student 蒸餾、Jetson 上的 ONNX / TensorRT。
- 多代理系統
- orchestrator / worker 架構、MCP 工具契約、邊緣與雲端的分工。
- LLM
- 多模態文件理解、結構化輸出、只在事件觸發時才呼叫的 VLM。
- 邊緣運算
- RTSP、GStreamer、WebRTC;Python 太慢的地方用 Rust 與 Kotlin Multiplatform。