黑匣子被開啟了!能玩的Transformer視覺化解釋工具,本地執行GPT-2、還可實時推理

机器之心發表於2024-08-11

都 2024 年,還有人不瞭解 Transformer 工作原理嗎?快來試一試這個互動式工具吧。


2017 年,谷歌在論文《Attention is all you need》中提出了 Transformer,成為了深度學習領域的重大突破。該論文的引用數已經將近 13 萬,後來的 GPT 家族所有模型也都是基於 Transformer 架構,可見其影響之廣。

作為一種神經網路架構,Transformer 在從文字到視覺的多樣任務中廣受歡迎,尤其是在當前火熱的 AI 聊天機器人領域。

圖片

不過,對於很多非專業人士來說,Transformer 的內部工作原理仍然不透明,阻礙了他們的理解和參與進來。因此,揭開這一架構的神秘面紗尤其必要。但很多部落格、影片教程和 3D 視覺化往往強調數學的複雜性和模型實現,可能會讓初學者無所適從。同時為 AI 從業者設計的視覺化工作側重於神經元和層級可解釋性,對於非專業人士來說具有挑戰性。

因此,佐治亞理工學院和 IBM 研究院的幾位研究者開發了一款基於 web 的開源互動式視覺化工具「Transformer Explainer」,幫助非專業人士瞭解 Transformer 的高階模型結構和低階數學運算。如下圖 1 所示。

圖片

Transformer Explainer 透過文字生成來解釋 Transformer 內部工作原理,採用了桑基圖視覺化設計,靈感來自最近將 Transformer 視為動態系統的工作,強調了輸入資料如何流經模型元件。從結果來看,桑基圖有效地說明了資訊如何在模型中傳遞,並展示了輸入如何透過 Transformer 操作進行處理和變換。

在內容上,Transformer Explainer 緊密整合了對 Transformer 結構進行總結的模型概述,並允許使用者在多個抽象層級之間平滑過渡,以視覺化低階數學運算和高階模型結構之間的相互作用,幫助他們全面理解 Transformer 中的複雜概念。

在功能上,Transformer Explainer 在提供基於 web 的實現之外,還具有實時推理的功能。與現有很多需要自定義軟體安裝或缺乏推理功能的工具不同,它整合了一個實時 GPT-2 模型,使用現代前端框架在瀏覽器本地執行。使用者可以互動式地試驗自己的輸入文字,並實時觀察 Transformer 內部元件和引數如何協同工作以預測下一個 token。

在意義上,Transformer Explainer 擴充了對現代生成式 AI 技術的訪問,且不需要高階計算資源、安裝或程式設計技能。而之所以選擇 GPT-2,是因為該模型知名度高、推理速度快,並且與 GPT-3、GPT-4 等更高階的模型在架構上相似。

圖片

  • 論文地址:https://arxiv.org/pdf/2408.04619
  • GitHub 地址:http://poloclub.github.io/transformer-explainer/
  • 線上體驗地址:https://t.co/jyBlJTMa7m
黑匣子被開啟了!能玩的Transformer視覺化解釋工具,本地執行GPT-2、還可實時推理
既然支援自己輸入,機器之心也試用了一下「what a beautiful day」,執行結果如下圖所示。

圖片

對於 Transformer Explainer,一眾網友給出了很高的評價。有人表示,這是非常酷的互動式工具。

圖片

有人稱自己一直在等待一個直觀的工具來解釋自注意力和位置編碼,就是 Transformer Explainer 了。它會是一個改變遊戲規則的工具。

圖片

還有人做出了中譯版。

圖片

展示地址:http://llm-viz-cn.iiiai.com/llm

這裡不禁想到了另一位科普界的大牛 Karpathy,它之前寫了很多關於復現 GPT-2 的教程,包括「純 C 語言手搓 GPT-2,前 OpenAI、特斯拉高管新專案火了」、「Karpathy 最新四小時影片教程:從零復現 GPT-2,通宵執行即搞定」等。如今有了 Transformer 內部原理視覺化工具,看起來兩者搭配使用,學習效果會更佳。

Transformer Explainer 系統設計與實現

Transformer Explainer 視覺化展示了基於 Transformer 的 GPT-2 模型經過訓練是如何處理文字輸入並預測下一個 token 的。前端使用了 Svelte 和 D3 實現互動式視覺化,後端則利用 ONNX runtime 和 HuggingFace 的 Transformers 庫在瀏覽器中執行 GPT-2 模型。

設計 Transformer Explainer 的過程中,一個主要的挑戰是如何管理底層架構的複雜性,因為同時展示所有細節會讓人抓不住重點。為了解決這個問題,研究者十分注意兩個關鍵的設計原則。

首先,研究者透過多級抽象來降低複雜性。他們將工具進行結構化設計,以不同的抽象層次呈現資訊。這讓使用者能夠從高層概覽開始,並根據需要逐步深入瞭解細節,從而避免資訊過載。在最高層,工具展示了完整的處理流程:從接收使用者提供的文字作為輸入(圖 1A),將其嵌入,經過多個 Transformer 塊處理,再到使用處理後的資料來對最有可能的下一個 token 預測進行排序。

中間操作,如注意力矩陣的計算(圖 1C),這在預設情況下被摺疊起來,以便直觀地顯示計算結果的重要性,使用者可以選擇展開,透過動畫序列檢視其推導過程。研究者採用了一致的視覺語言,比如堆疊注意力頭和摺疊重複的 Transformer 塊,以幫助使用者識別架構中的重複模式,同時保持資料的端到端流程。

其次,研究者透過互動性增強理解和參與。 溫度引數在控制 Transformer 的輸出機率分佈中至關重要,它會影響下一個 token 預測的確定性(低溫時)或隨機性(高溫時)。但是現有關於 Transformers 的教育資源往往忽視了這一方面。使用者現在能夠使用這個新工具實時調整溫度引數(圖 1B),並視覺化其在控制預測確定性中的關鍵作用(圖 2)。

圖片

此外,使用者可以從提供的示例中選擇或輸入自己的文字(圖 1A)。支援自定義輸入文字可以讓使用者更深入參與,透過分析模型在不同條件下的行為,並根據不同的文字輸入對自己的假設進行互動式測試,增強了使用者的參與感。

那在實際中有哪些應用場景呢?

Rousseau 教授正在對自然語言處理課程的課程內容進行現代化改造,以突出生成式 AI 的最新進展。她注意到,一些學生將基於 Transformer 的模型視為捉摸不透的「魔法」,而另一些學生則希望瞭解這些模型的工作原理,但不確定從何入手。

為了解決這一問題,她引導學生使用 Transformer Explainer,該工具提供了 Transformer 的互動概覽(圖 1),鼓勵學生積極進行實驗和學習。她的班級有 300 多名學生,而 Transformer Explainer 能夠完全在學生的瀏覽器中執行,無需安裝軟體或特殊硬體,這是一個顯著的優勢,消除了學生對管理軟體或硬體設定的擔憂。

該工具透過動畫和互動的可逆抽象(圖 1C),向學生介紹了複雜的數學運算,如注意力計算。這種方法幫助學生既獲得了對操作的高層次理解,又能深入瞭解產生這些結果的底層細節。

Rousseau 教授還意識到,Transformer 的技術能力和侷限性有時會被擬人化(例如,將溫度引數視為「創造力」控制)。透過鼓勵學生實驗溫度滑塊(圖 1B),她向學生展示了溫度實際上是如何修改下一個詞元的機率分佈(圖 2),從而控制預測的隨機性,在確定性和更具創造性的輸出之間取得平衡。

此外,當系統視覺化 token 處理流程時,學生們可以看到這裡並沒有任何所謂的「魔法」—— 無論輸入文字是什麼(圖 1A),模型都遵循一個定義明確的操作順序,使用 Transformer 架構,一次只取樣一個 token,然後重複這一過程。

未來工作

研究者們正在增強工具的互動式解釋來改善學習體驗。同時,他們還在透過 WebGPU 提升推理速度,並透過壓縮技術來減小模型的大小。他們還計劃進行使用者研究,來評估 Transformer Explainer 的效能和可用性,觀察 AI 新手、學生、教育者和從業者如何使用該工具,並收集他們希望支援的額外功能的反饋意見。

還在等什麼,你也上手體驗一下,打破對 Transformer 的「魔法」幻想,真正瞭解這背後的原理吧。

相關文章