分子圖形語言:LLM 終於看懂化學了
點解 LLM 睇唔明化學
LLM 喺化學領域長期表現差勁,唔係因為模型唔夠聰明,而係因為我哋一直用錯語言餵佢。SMILES——呢種 1980 年代發明嘅線性字串——將分子結構壓縮成括號同數字嘅密碼,原子之間嘅連通性要靠位置推測,環狀結構要靠配對索引碼去解讀。LLM 每次處理一個分子,都要先「逆向工程」返個圖譜出嚟,先至開始真正嘅推理。呢個 overhead 喺熟悉分子上勉強可接受,但一遇到陌生分子,整個系統就崩潰——準確率由 42% 直插落 20%。模型唔係唔識化學,而係被個 representation 累死咗。
MoleCode 嘅核心洞察好簡單好暴力:分子係圖,就用圖嘅語言去表達。佢用 Mermaid 圖形語法,將每個原子寫成有永久 ID 嘅節點,每條鍵寫成明確嘅邊——「C_1 --- C_2」就係碳一單鍵黐住碳二,唔使解碼,唔使推測,一眼睇晒。呢個純粹表述上嘅改動,帶嚟嘅效果極具震撼力:喺陌生分子上,SMILES 得 20%,MoleCode 穩定維持 76-80%。唔係靠更多參數,唔係靠更大模型,純粹係換咗種語言。
四倍推理成本,原來係自找嘅
詳細睇論文數據,你會發現 SMILES 嘅表現高度依賴分子熟悉度——常見分子 ~42%,古典分子 ~42%,新穎分子 ~20%。呢個係典型嘅記憶主導行為:模型認得某個字串 pattern 就答得中,否則就亂撞。MoleCode 喺三個熟悉度層級上都維持 76-80% 嘅 flat curve,代表模型真係理解咗結構,而唔係背答案。一個簡單嘅 canonical-vs-permuted-SMILES 測試證實咗呢點:SMILES 有 +17% 嘅差距(佢記住咗特定字串),MoleCode 零差距。
最反直覺嘅係 token 成本。MoleCode input 比 SMILES 長約 20 倍——38.4 tokens 對 2.0 tokens 每粒碳——但 chain-of-thought 增長係 sub-linear(C^0.52),SMILES 係 super-linear(C^1.65)。總 token 成本每條 query:MoleCode 約 2,000,SMILES 約 10,000。五倍差距。呢個數據說明咗一條重要原理:你餵畀模型嘅 input 有幾 explicit,直接決定咗佢要花幾多推理資源去解讀。Input 嘅「認知密度」先係 bottleneck,而唔係 context window 嘅大小。
Representation 先於 Scaling
MoleCode 對 AI for Science 最大嘅啟示唔係化學本身,而係示範咗一條截然不同嘅路徑:與其不斷放大模型、收集更多 domain data、訓練 specialist model,不如重新審視你點樣將問題呈現畀模型。Representation engineering——用問題嘅結構匹配模型嘅 inductive bias——好多時候比 scaling law 更實際、更便宜、效果仲更顯著。
呢個思路對香港嘅創業者同開發者尤其有價值。我哋冇資源去訓練 foundational model,但我哋可以在 representation layer 做創新。MoleCode 係一個 open-source Python package,三行 code 就將 SMILES 轉成 Mermaid 圖形語法,任何 LLM 都用得。佢哋團隊仲基於呢個 representation 做出 AtomChat 同 AtomRetro 兩個產品——由 representation 創新到 product 落地,呢條路徑好值得借鏡。同一套 Subgraph-Node-Edge grammar 仲延伸到 polymer 同 Markush 結構,一個語法打通三個 domain。
你可以即時做嘅一件事
去 GitHub 搜 AtomFlow-AI/MoleCode,pip install molecode 就開始玩。佢哋嘅 molecode.prompts module 直接 export 咗 LLM system prompt,放入任何 conversation 就用到。不妨攞一個你自己 domain 嘅「結構化資料」——電路圖、分子結構、知識圖譜——諗下現有嘅線性表述係咪限制咗 LLM 嘅理解。答案好可能係:你只需要換一種語言,個模型就會忽然開竅。Representation 先於 architecture,呢個 lesson 唔止適用於化學。