模型 / 資料集
poloclub/transformer-explainer avatar
poloclub/transformer-explainer

Transformer Explainer:把 GPT-2 放進瀏覽器裡拆開來看

Transformer Explained Visually: Learn How LLM Transformer Models Work with Interactive Visualization

8,580 個 Star965 個 ForkJavaScriptMIT

秒懂

它是什麼?
這個由 Georgia Tech Polo Club 維護的 MIT 授權專案,讓你在瀏覽器裡跑一個真實的 GPT-2,邊輸入文字邊看注意力與前饋層如何算出下一個 token。它的價值在教學,不在推論效能。
適合誰用?
如果你要教一群人理解 GPT 類模型內部到底發生什麼事,或自己第一次想看清楚 attention 與 MLP 在推論時的角色,這個專案值得 clone 下來跑一次,npm run dev 之後在 http://localhost:5173 操作比讀論文快得多。反過來說,它不是推論框架,也不是拿來量測模型效能或做批次實驗的工具,想微調、想換模型、想接自己的權重,這裡沒有對應路徑。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 102 天前。
用什麼語言寫的?
主要是 JavaScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

它解決的是「Transformer 到底在做什麼」這個教學缺口

多數人認識 GPT 類模型的路徑是讀架構圖加上看論文,圖上畫著多層堆疊的方塊,箭頭從左到右,但真正決定下一個 token 的那些數值,從來沒有出現在眼前。Transformer Explainer 針對的就是這個落差。README 的定位寫得很直白:這是一個互動式視覺化工具,用來幫助任何人理解 GPT 這類 Transformer 模型如何運作。

它的目標讀者不是已經在做推論優化的人,而是剛接觸 LLM 的學習者、需要向非技術背景聽眾解釋模型的講者、以及想確認自己對 attention 理解是否正確的工程師。專案背後有一篇 CHI 2026 的論文支撐,作者群來自 Georgia Institute of Technology,這說明它不是隨手做的 demo,而是有教學研究目的的作品。

關鍵差別在於它跑的是真實模型。README 明確寫著它在你瀏覽器裡執行一個 live GPT-2,你可以輸入自己的文字,然後即時觀察內部元件與運算如何協同預測下一個 token。這跟播放預錄動畫的教學頁面是兩件事:你改一個字,畫面上的數值就跟著變。

模型跑在前端,視覺化跟著推論過程走

從 README 能確認的機制是:GPT-2 在瀏覽器端執行,使用者的輸入文字會實際經過模型的前向傳播,而視覺化呈現的是這個傳播過程中各層的運算結果。也就是說,畫面不是事先算好的對照表,而是跟著你當下的輸入重新計算出來的。

這個設計決定了整個專案的技術形狀。它是一個 JavaScript 專案,主要工作發生在瀏覽器,而不是在伺服器上跑推論再把結果回傳。首頁網址 poloclub.github.io/transformer-explainer 是 GitHub Pages 的靜態託管位置,這與「模型在前端跑」的說法一致:沒有後端服務需要維運。

README 沒有進一步交代模型權重的來源、量化方式、載入策略,也沒有說明用了哪個前端推論執行環境。這些細節在提供的材料裡看不到,我不會替它補上。可以確定的是,資料流的方向是「你的文字輸入 → 前端模型前向傳播 → 各層中間結果 → 視覺化元件」,而使用者能操作的是最前端的輸入。

倉庫的 topics 標籤列了 deep-learning、generative-ai、gpt、langauge-model、llm、visualization,其中 langauge-model 是拼錯的,這類小瑕疵不影響功能,但可以看出專案的維護重心不在倉庫門面。

本機啟動只需要四條指令,但前置版本不能將就

README 給的本機執行步驟很短:

git clone https://github.com/poloclub/transformer-explainer.git cd transformer-explainer npm install npm run dev

跑完之後在瀏覽器打開 http://localhost:5173。這個埠號是 Vite 的預設值,從 npm run dev 這個指令可以推斷專案用 Vite 作為開發伺服器,但 README 本身沒有明講建置工具,我不把它當成已確認的事實。

前置條件寫得比步驟更嚴格:Node.js 需要 v20 或以上,NPM 需要 v10 或以上。這兩個門檻不算低,如果你的環境還停在 Node 18,npm install 這一步就可能出問題,而不是等到執行階段才發現。專案沒有提供 Docker 映像或 devcontainer 設定,因此版本管理得靠你自己,nvm 之類的工具會比系統套件管理器直接。

README 沒有列出任何環境變數、config 檔或建置參數。這代表可調的東西不多,也代表你不需要為了跑起來先去讀一份設定文件。對教學用途來說,這是合理的取捨。

另外,README 沒有交代正式建置與部署的指令,只給了開發模式。如果你打算把它放進自己的教學網站,這部分得自己從 Vite 的慣例推導,專案沒有現成答案。

它不會告訴你模型好不好,只會告訴你模型怎麼算

最容易被誤解的地方,是把這類工具當成模型評估平台。Transformer Explainer 展示的是運算過程,不是品質指標。你在上面輸入一段文字,看到的是各層如何把輸入轉成對下一個 token 的預測分布,它不會給你準確率、延遲、吞吐量或任何跨模型的比較。

第二個限制來自模型本身。README 講的是 GPT-2,這是一個相對早期的模型,規模遠小於現在的生產級 LLM。用它來建立對 attention 機制的直覺是有效的,但把在 GPT-2 上看到的行為直接套用到更大、採用了不同架構改進的模型上,推論會失準。教學工具的通病就在這裡:它必須選一個小到能跑在瀏覽器裡的模型,而這個選擇本身就限制了結論的外推範圍。

第三,這是一個視覺化專案,不是推論框架。它沒有提供 API、沒有批次處理介面、沒有模型轉換工具鏈。想拿它做 serving、做 A/B 測試、做 prompt 工程的自動化評估,方向就錯了。它也沒有微調能力,README 完全沒有提到任何訓練或微調路徑。

還有一個實際的摩擦點:專案只有一個 release,v0.0.1,發佈於 2024 年 6 月。版本號停在 0.0.1 意味著作者沒有把它當成有穩定 API 的函式庫在維護,任何依賴它內部結構的做法都得自己承擔變動風險。

跟其他解釋工具比,差別在「跑真的模型」還是「畫示意圖」

同一個團隊另外做了幾個 AI 解釋器,README 末尾列了 Diffusion Explainer、CNN Explainer 與 GAN Lab。這幾個專案的共同點是都把模型放進瀏覽器執行,用互動取代靜態圖解,這條路線跟 Distill 風格的靜態文章、或純動畫教學影片明顯不同。

如果拿它跟一般深度學習課程的架構圖相比,差異在於架構圖是固定的,你只能看作者想讓你看的那條路徑;Transformer Explainer 讓你換輸入,觀察同一組權重在不同輸入下的反應。這個自由度是它最主要的教學價值。

如果拿它跟直接在本機跑 transformers 之類的推論程式庫相比,差別在於後者給你數值,但不給你組織過的理解路徑。你要自己寫 hook、自己抓中間層、自己想辦法把張量畫出來。Transformer Explainer 把這一整段工作做完了,代價是你只能看它設計好的視角,不能自由指定要觀察哪一層的哪一個維度。

反過來,如果你的目標是驗證某個架構改動的效果,或者需要對大量輸入做統計,這兩類工具都不適合,你需要的是可程式化的推論環境加上自己的分析腳本。

MIT 授權讓改編成本很低,但維護成本要看你的用途

專案採用 MIT License,README 也明確標示。這意味著你可以拿它來教課、放進內部訓練教材、甚至改編後再散布,只要保留授權聲明。對於教學單位與企業內訓來說,這個授權條款幾乎不構成障礙。這不是法律意見,實際使用前仍應自行確認條款全文與你的使用情境。

維護成本取決於你要拿它做什麼。如果只是 clone 下來跑一次、或直接使用線上版本,成本接近零,README 沒有提到任何外部服務依賴或金鑰需求。如果你想把它當成自己產品的元件,成本就上來了:專案只有 v0.0.1 一個版本,沒有語意化版本承諾,也沒有 API 穩定性保證,升級時要有心理準備。

從倉庫狀態看,最後一次推送是 2026 年 6 月,專案並未封存,仍在活動。但活動不等於頻繁發版,兩者要分開看。

升級的實際風險集中在 Node 版本。README 要求 Node.js v20 以上、NPM v10 以上,這個門檻會隨著前端生態推進而變動,而你手上其他專案可能還卡在舊版。把這個專案放進既有的 monorepo 之前,先確認版本能不能對齊,否則光是依賴解析就會耗掉不少時間。

什麼情況下該用它,什麼情況下該直接跳過

適合採用的情境很明確:課堂教學、工作坊、技術演講的現場演示,以及自學時想驗證自己對 attention 的理解。它讓抽象概念變成可以動手改參數的東西,這個轉換在教學上的效率,靜態教材很難追上。線上版本可以直接分享連結給聽眾,不需要他們安裝任何東西。

不適合的情境同樣清楚。需要模型評估指標的人、需要把 Transformer 放進生產服務的人、需要微調或替換模型的人、需要對大量輸入批次處理的人,都應該去找別的方案。這個專案的設計目標從頭到尾都是理解,不是產出。

決定動手之前,建議依序確認三件事。第一,Node.js 是否為 v20 以上、NPM 是否為 v10 以上,這是 README 寫死的前置條件。第二,瀏覽器能否順利載入並執行 GPT-2,這決定了整個體驗是否成立。第三,你打算用它來教什麼、給誰看,因為 GPT-2 的規模限制會直接影響你能下的結論。這三點確認完,再決定要不要把它排進你的教材或工作流程。

編輯結論

如果你要教一群人理解 GPT 類模型內部到底發生什麼事,或自己第一次想看清楚 attention 與 MLP 在推論時的角色,這個專案值得 clone 下來跑一次,npm run dev 之後在 http://localhost:5173 操作比讀論文快得多。反過來說,它不是推論框架,也不是拿來量測模型效能或做批次實驗的工具,想微調、想換模型、想接自己的權重,這裡沒有對應路徑。動手前先確認兩件事:Node.js 是否為 v20 以上、NPM 是否為 v10 以上,這是 README 明列的前置條件;其次確認你的瀏覽器能順利載入模型權重,因為整個體驗仰賴前端把 GPT-2 跑起來,這一環不順,後面的視覺化都無從談起。

官方來源

  1. License: MIT
  2. poloclub/transformer-explainer on GitHub
  3. Project website
  4. README
  5. Releases
社群筆記

社群筆記