vatt'ghern jaskier's ballads

2026.07.23 —— 今日 10 則

TODAY'S THREAD 今天一條線是 SIMD 與極限壓縮——GigaToken 號稱 1000 倍的 tokenizer、一篇勸你都學一點 SIMD 的長文、Box3D 的碰撞偵測,再到把 27B 壓進 7 GB 的三元量化;另一條線是「一種語言吃下全端」的賭注,Elixir 進了瀏覽器、Rust 也要做 reactive web,中間再夾著 PyPI 對舊版發行關門、git --end-of-options 擋參數注入這些把攻擊面收窄的硬工。

10 items ai · 2 systems · 4 infra · 1 web · 2 backend · 1
0 / 10 read
#01

GigaToken:宣稱比 HuggingFace tokenizers 快約 1000 倍

一個叫 GigaToken 的專案用 Rust 加 SIMD 重寫 BPE 的 pretokenization,號稱可 drop-in 取代 HuggingFace 的 tokenizers、吞吐達 GB/s 等級。真正的加速來自把通常外包給 regex 引擎的切詞用 SIMD 硬幹、重度快取已見過的 pretoken 對映,並最小化與 Python 的往返。但那個「約 1000 倍」得先打個折扣——它自己的 benchmark 就寫明 GigaToken 是整檔不切、做了更多工,對手卻只吃已 presplit 的前 100 MB。

read source → deep read tokenizer

#04

Ternary-Bonsai-27B:把 27B 壓進 7 GB 的三元量化

從 Qwen3.6-27B 蒸出來的 Ternary-Bonsai-27B 這幾天衝上 Hugging Face 趨勢榜,賣點是三元權重——每個權重只取 −1/0/+1,平均約 1.71 bits,把部署大小壓到約 7.2 GB,相較 FP16 的約 54 GB 是近 9.4 倍的縮減。model card 宣稱保住了約 95% 的 FP16 智力,平均分 80.49 對上 FP16 的 85.07。對被 VRAM 綁住、想在單卡或筆電跑 27B 的人,這種極端量化就是那條一直被試探的路。

read source → quantization

#02

每個工程師都該懂一點 SIMD

Mitchell Hashimoto 想扭轉一個印象:SIMD 常被當成艱深小眾,但他認為常見情況其實簡單得多。他把向量化拆成一個五步範式——broadcast 常數、以 vector width 為步長跑迴圈、對所有 lane 平行運算、把結果 reduce、再用 scalar tail 收尾——並用 Ghostty 掃描控制字元當例子,量到約 5 倍。他也直說別太指望編譯器:即使研究了數十年,production compilers 到今天仍常常錯過該向量化的地方。

read source → deep read simd

#05

Box3D 用 SIMD 做碰撞偵測,SSE2 就快了一倍多

Box3D 作者把碰撞偵測裡分離軸測試(SAT)的 edge-edge 那段改成 wide SIMD——一次拿一條邊去比四條邊,代價是要先把資料翻成 structure-of-arrays。他坦白這不是萬靈丹:hull 只有十幾條邊時 SIMD 的前置成本不划算,box-box 幾乎沒賺頭。但在 5,120 個 32 點凸包的壓力測試裡,光是 SSE2 就比 scalar 快了一倍有餘。

read source → collision

#06

重寫 Futhark 的型別檢查器

陣列平行語言 Futhark 把一路加了 records、modules、higher-order functions、Hindley-Milner 推論、還有 size types 的單遍型別檢查器整個重寫——壓垮它的是 AUTOMAP,那需要對函式有一個 global view,舊架構塞不進去。作者坦言舊的權宜做法把規則抄了兩份:「every type checking rule was duplicated in code」。新版拆成四階段(name resolution、無 size 的 ground 型別推論、size 推論、in-place update 違規檢查),每一階都拿得到前面完整資訊、錯誤訊息也更有上下文;效能一度慢 20%,優化後反而快了 4%。

read source → type-inference

#07

git --end-of-options 與參數注入

git 的 --end-of-options 之所以存在,是因為 git 很早就把 -- 拿去分隔 revision 與 pathspec,反而沒留下乾淨結束選項解析的辦法。少了它,script 裡的 git log $rev 只要 $rev 以連字號開頭就會被當成選項——這正是 CWE-88 參數注入,Docker 的 CVE-2019-13139 就是讓 git URL 的片段一路變成 --upload-pack 拿到命令執行。作者建議兩個標記並用:git log --end-of-options $rev -- $path;但採用率慘澹,十七個 fork git 的套件管理器裡只有 Go 用了它。

read source → argument-injection

#08

PyPI:發行 14 天後拒收新檔案

PyPI 現在不再讓你往「發行超過 14 天」的版本上傳新檔案,動機是防止舊而穩定的版本在發佈 token 或 workflow 被盜時遭下毒——今年三月 LiteLLM 與 Telnyx 被入侵就是導火線。實測衝擊很小:PyPI 掃過資料庫,15,000 個專案裡只有 56 個會在發行 14 天後才補上 Python 3.14 的 wheel。但官方也提醒現在別急著依賴這個行為,因為「release 不再收檔」還沒有明確語意與可查詢的 API。

read source → supply-chain

#03

Hologram:讓 Elixir 直接跑在瀏覽器

Hologram 這套框架把同一份 Elixir 同時當前端與伺服端:一個把 Elixir 編譯成 JavaScript 的編譯器,加上一層 client runtime,讓你不必再另外養一套 JS stack。這一輪的里程碑是把 Erlang 標準函式庫幾乎補齊——150 個 Erlang function、49 位貢獻者——client 端也有了 JS interop、pub/sub、regex 與 try/rescue/catch。作者說 Hologram 現在已能用於生產環境,當初 v0.7 上 HN 拿了 107 分。

read source → deep read elixir

#09

Topcoat:用 Rust 打造全端 reactive web 框架

Tokio 團隊發表 Topcoat:一個 batteries-included、走純伺服器渲染的 Rust 全端 reactive web 框架。它刻意繞開 WebAssembly——用一個 macro 把「通過型別檢查的 Rust 子集」cross-compile 成 JavaScript 來做前端互動,也能搭 HTMX、Alpine.js。這是第一個版本,client 端反應式還在早期、有不少限制;作者也直言 Topcoat 和偏低階的 Axum 是互補而非取代。

read source → rust-web

#10

新創的 Postgres 生存指南

一份給新創的 Postgres 生存指南,把生產環境最容易踩的坑濃縮成幾條:schema 最難改、要趁早想清楚;讀查詢的心智模型就是「走索引或做 seq scan」,兩萬列以下的 seq scan 幾乎瞬間;在大表建索引一律用 CREATE INDEX CONCURRENTLY。寫入端則是交易要短、只鎖必要的列,批次處理可以把吞吐拉高約十倍,連線很貴、該用 pgbouncer 這類 pooler。最容易被忽略的是 autovacuum——一旦某個 autovacuum 跑超過一小時就該調參數,不然可能撞上 transaction id wraparound 停機。

read source → postgres

today's deep reads

deep · 01 GigaToken 的 1000 倍:一次對 tokenizer benchmark 的追問 deep · 02 每個工程師都該懂一點 SIMD deep · 03 Hologram:讓 Elixir 直接跑在瀏覽器