Open main menu
IT人
黑匣子被開啟了!能玩的Transformer視覺化解釋工具,本地執行GPT-2、還可實時推理
机器之心
發表於
2024-08-11
ORM
視覺化
GPT
都 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
既然支援自己輸入,
機器之心
也試用了一下「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 的「魔法」幻想,真正瞭解這背後的原理吧。
相關文章
影像識別的視覺化解釋史
2021-03-22
視覺化
前端實時視覺化開發工具
2017-03-23
前端
視覺化
大螢幕實時資料視覺化解決方案?
2020-09-30
視覺化
資料大屏視覺化解決方案,常用的資料視覺化工具軟體
2023-02-21
視覺化
寫了個基於 MacOS + iTerm2 自動開啟視窗執行命令的工具
2022-06-22
Mac
可本地執行大模型的應用
2024-08-03
大模型
Google釋出機器學習開源視覺化工具Facets
2017-07-26
Go
機器學習
視覺化
執行Windows 98系統的智慧手錶:還能玩掃雷
2017-03-07
Windows
剛剛,Llama 3.2 來了!支援影像推理,還有可在手機上執行的版本
2024-09-26
馬爾可夫鏈你知道多少?Python視覺化解析MCMC
2019-10-15
馬爾可夫
Python
視覺化
面試時說Redis是單執行緒的,被噴慘了!
2020-11-02
面試
Redis
執行緒
網頁版的 Redis 視覺化工具來了,已開源!
2023-11-19
網頁
Redis
視覺化
ICCV2021 | Swin Transformer: 使用移位視窗的分層視覺Transformer
2021-11-28
ORM
視覺
Linux 檢視程式啟動時間、執行時間
2022-09-23
Linux
win10怎樣開啟執行視窗快捷鍵_win10開啟執行視窗的4個方法
2020-03-13
Win10
四元數在旋轉變換和插值中的有趣的視覺化解釋
2024-05-04
視覺化
小程式 web 端實時執行工具
2016-12-26
Web
檢視cpu是否開啟超執行緒
2017-10-09
執行緒
太高效了,全靠這款視覺化報表工具,實用
2023-03-08
視覺化
開啟IDEA工具的service執行spingboot啟動類
2024-09-12
Idea
boot
記一次翻譯工具的開發-有了它,實現實時翻譯還遠嗎?
2020-10-10
在JVM執行時開啟GC日誌
2015-04-27
JVM
GC
EasyCV開源|開箱即用的視覺自監督+Transformer演算法庫
2022-04-26
視覺
ORM
演算法
onDestroy方法被延時執行~事件
2016-12-21
事件
javascript指令碼何時被執行
2014-05-11
JavaScript
指令碼
linux檢視是否開啟超執行緒
2018-10-08
Linux
執行緒
ICCV2021 | PnP-DETR:用Transformer進行高效的視覺分析
2021-11-23
ORM
視覺
Smartbi:智慧園區資料視覺化解決方案
2022-01-07
視覺化
用go開發了一個實時檢視mysql資料字典的小工具
2019-09-03
Go
MySql
ICCV2021 | 用於視覺跟蹤的學習時空型transformer
2021-12-10
視覺
ORM
限制SQLPLUS工具可執行的命令
2009-08-05
SQL
大屏視覺化解決方案公司,三維視覺化地圖怎麼做?
2023-02-28
視覺化
地圖
win10執行哪裡找_win10執行視窗的開啟方法
2020-03-13
Win10
Java執行緒篇——執行緒的開啟
2018-10-27
Java
執行緒
網頁開啟時都發生了什麼?我被嚇著了
2015-01-18
網頁
本地視覺化工具連線阿里雲centOS伺服器的redis
2022-06-27
視覺化
阿里
CentOS
伺服器
Redis
乾貨|0基礎,開啟COS公鏈本地化執行
2019-10-11
美團視覺GPU推理服務部署架構最佳化實踐
2023-02-10
視覺
GPU
架構