vatt'ghern jaskier's ballads

2026.08.13 —— 今日 10 則

TODAY'S THREAD 今天的題目大半繞著同一件事:那些為了省成本而少做的一步,後來都以另一種形式回來收帳——Chrome 為了少解一點 JPEG 而丟掉整段高頻係數、SQLite 的 checkpoint 為了少搬幾頁而在競態裡數錯、CLAUDE.md 為了省下寫理由的力氣而再也刪不掉一行,而 OpenSSH 乾脆把「累積到下一個計畫中的版本」這個省法整個拿掉。

10 items ai · 3 systems · 2 infra · 1 web · 2 backend · 2
0 / 10 read
#02

CLAUDE.md 為什麼只會變長

這篇 preprint 追蹤 1,867 個 repo 裡 247,694 條 instruction 的生命週期,量到 agentic prompt 檔在整段生命週期成長超過三倍,平均每次 commit 淨增 4.9 條。作者把成因叫作 catastrophic remembering,也就是 catastrophic forgetting 的反面——新增一條指令很便宜,刪掉一條卻要冒險,而指令越老越不容易被刪,論文給的 log-hazard 是每個 commit 減 0.032。對照實驗把「為什麼要有這條」寫成註解之後,超額成長從 211.3% 掉到 1.4%,論文並回報真實情境下的 instruction-following 最多改善 23.1%。

read source → deep read agentic-coding

#06

RL rollout 不能只看 prefix

RL post-training 的 rollout 現在混著 RLVR、RLHF 與 agentic 三種形狀,序列結構、互動模式與 KV 停留時間都不一樣,對服務端的需求差很多,而只看 prefix locality 的路由並不管這些 session 之間怎麼競爭 KV-cache 容量。MISA-T 把決策搬到 routing 層做 admission,依 workload 分配 KV-cache 容量,並以 residency-time-aware 的方式記帳,同時把實際消耗掉的混合比例維持在 trainer 指定的目標附近。論文回報相對於調校過的 vLLM Router,在 Step3.7 與 Qwen3.6-35B-A3B 上分別多出 53.3% 與 43.6% 吞吐;50 次迭代的對照實驗裡 rollout 吞吐增加 35.6%,平均迭代時間降低 22.8%。

read source → llm-inference

#10

41.6% 到 67.2%,一條下界被推上去

Anthropic 公布一個未發布的研究版 Claude 把 zeta 函式零點落在臨界線上的比例下界,從 41.6% 推到 67.2%。過程是兩次 Claude Code session、3,100 萬個 output token,前段丟掉 650 個失敗的想法,後段由大約 60 個 subagent 協作跑了 2,400 個 shell 指令與數百支 Python 腳本,大約 36 小時。Anthropic 自家的兩位數學家 Levent Alpöge 與 Ralph Furman 檢視了 Claude 的成果,證明也用 Lean 形式化過;官方給的說法是這顯示 AI 模型「能以新的、有時令人意外的方式,延伸數學家想法的影響力與觸及範圍」。

read source → math-ai

#04

少乘一次的 dtoa

yyjson 裡的 yy_double 屬於 Schubfach 家族,做的是最短往返的十進位表示,但它只需要一次乘上預先算好的 10 的冪,「而經典 Schubfach 需要兩次或三次」。省下來的關鍵在半個 ulp 的容差帶:它直接重用同一次乘法的結果再位移得到,因此不必再做額外的 192 位元乘法。作者也提醒這個實作沒有論文,「在 JSON 效能圈以外幾乎沒有公開能見度」,即使它是目前最快的 dtoa 實作之一。

read source → floating-point

#05

OpenSSH 不再等下一個版本

OpenSSH 10.5 在 8 月 11 日發布,修掉三件事:ssh-agent 上鎖時會拒絕 session-bind 請求,結果讓原本只該限於本機的操作可以從遠端執行、ssh client 在多工 session 的遠端轉發裡可能 use-after-free,以及 restrict 沒有套用到 tunnel 轉發。比修正本身更值得記下的是釋出節奏的轉向,公告寫明「OpenSSH 團隊目前將更頻繁地發布版本,讓 bugfix 更快到使用者手上,而不是把它們累積到下一個計畫中的版本」。團隊同時表明歡迎 AI 產出的回報,尤其是「搭配人工分流、分析、測試案例,特別是附上建議修正的時候」。

read source → ssh

#03

19 次損毀,指向十六年前的競態

Tailscale 半年內遇上 19 次資料庫損毀,最後追到 SQLite 的 checkpoint 與寫入交易之間的一個 data race,而那段程式碼已經在那裡至少十六年。文章描述的機制是「如果寫入發生在 checkpoint 期間的某個特定時機,checkpoint 的處理流程會搞混——它以為某些 page 已經從 WAL 複製進主資料庫檔案,其實並沒有」,結果是靜默的資料遺失。會被踩到,是因為他們為了跑快而一致的備份自己接管了 checkpoint;診斷的突破口是 SQLite 開發者寫出來的 tmstmpvfs shim,一層用來追蹤資料庫操作的 VFS 包裝。

read source → deep read sqlite

#01

Chrome 沒把整張圖解開

同一張 15 像素的 JPEG logo,在 Chrome 裡看起來比 Firefox 粗,也比較不忠於原圖。原因是 Chrome 的 Skia 不一定先完整解壓再縮小:「它會算出最接近的、分母為 8 的分數,然後以那個比例解碼影像」,於是整段高頻係數根本沒有被重建,邊緣與漸層那些細節就跟著消失。省下來的成本確實可觀——一張 2000×2000 的 JPEG 要顯示成 20×20,完整解壓大約要 12 MB,而最終畫面只需要約 1.2 KB。

read source → deep read jpeg

#09

把 HTML 推過 WebSocket

這個模式把伺服器渲染好的 HTML 直接推過持續連線,而不是推 JSON,每個 client 在伺服器端對應一個帶狀態的行程,前端幾乎不需要框架。作者把它跟 htmx 與 SSE 放在同一張表上比較,結論是「如果你需要雙向、低延遲的通訊(聊天、協作、遊戲),用 WebSocket;如果只是從伺服器推播,SSE 更簡單、營運成本也更低」。代價寫得很誠實:狀態放在記憶體裡,水平擴展就得共用狀態,連線一斷應用就停擺,而作者說自己的網站在類似 Raspberry Pi 3 的硬體上撐過 600 位同時上線的讀者。

read source → web

#07

Signal 把安全碼比對交給機器

Signal 把 key transparency 開進產品:一棵 log tree 記下所有識別碼到公鑰的對應,再用 prefix tree 讓用戶端能二分搜尋,不必掃完整本帳。官方的比喻很直白,「在一本十億頁的帳本裡,Bob 不必往回翻完十億頁,最多只需要檢視 30 頁」。稽核由 Cloudflare 與 Trail of Bits 對每筆 log 條目簽章,讓伺服器沒辦法同時維持多本不一致的帳本;至於隱私,公開識別碼會先過一層 verifiable random function,它們對應到的值再用 keyed hash function 保護。

read source → cryptography

#08

端到端加密裡的詐騙偵測

WhatsApp 的 Scam Alert 把分類模型完全留在裝置上跑,「模型與它處理的訊息資料全都留在裝置上」,而且 WhatsApp 沒有辦法在使用者沒動作的情況下主動送出任何資料。比較新的是可驗證性那一層:每個模型版本上線前先雜湊並公布到第三方的 append-only ledger,由 Cloudflare 而非 Meta 用 Ed25519 簽章,用戶端要比對 manifest digest 與 SHA-256 才肯載入,任何一項對不上就拒絕。回傳的統計則先在裝置上聚合,走 OHTTP relay 剝掉 IP,再進 TEE 處理,最後加上差分隱私雜訊與 k-匿名門檻。

read source → privacy

today's deep reads

deep · 01 Chrome 只解了八分之一張圖? deep · 02 CLAUDE.md 為什麼只會變長 deep · 03 19 次損毀,指向十六年前的競態