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
視覺化
大螢幕實時資料視覺化解決方案?
2020-09-30
視覺化
資料大屏視覺化解決方案,常用的資料視覺化工具軟體
2023-02-21
視覺化
寫了個基於 MacOS + iTerm2 自動開啟視窗執行命令的工具
2022-06-22
Mac
可本地執行大模型的應用
2024-08-03
大模型
ICCV2021 | Swin Transformer: 使用移位視窗的分層視覺Transformer
2021-11-28
ORM
視覺
馬爾可夫鏈你知道多少?Python視覺化解析MCMC
2019-10-15
馬爾可夫
Python
視覺化
開啟IDEA工具的service執行spingboot啟動類
2024-09-12
Idea
boot
剛剛,Llama 3.2 來了!支援影像推理,還有可在手機上執行的版本
2024-09-26
Linux 檢視程式啟動時間、執行時間
2022-09-23
Linux
網頁版的 Redis 視覺化工具來了,已開源!
2023-11-19
網頁
Redis
視覺化
ICCV2021 | PnP-DETR:用Transformer進行高效的視覺分析
2021-11-23
ORM
視覺
可傳輸執行緒本地簡介
2024-12-11
執行緒
面試時說Redis是單執行緒的,被噴慘了!
2020-11-02
面試
Redis
執行緒
win10怎樣開啟執行視窗快捷鍵_win10開啟執行視窗的4個方法
2020-03-13
Win10
ICCV2021 | 用於視覺跟蹤的學習時空型transformer
2021-12-10
視覺
ORM
四元數在旋轉變換和插值中的有趣的視覺化解釋
2024-05-04
視覺化
EasyCV開源|開箱即用的視覺自監督+Transformer演算法庫
2022-04-26
視覺
ORM
演算法
解決Mac開啟執行PS、AI等軟體時卡在啟動視窗的辦法
2021-12-21
Mac
AI
linux檢視是否開啟超執行緒
2018-10-08
Linux
執行緒
視覺化執行Python的神器Jupyter Notebook
2021-06-09
視覺化
Python
開啟執行Adobe Photoshop 、AI等軟體時卡在啟動視窗怎麼辦?
2022-01-06
AI
太高效了,全靠這款視覺化報表工具,實用
2023-03-08
視覺化
阿里千問開源QVQ視覺推理媲美世界最佳模型
2024-12-27
阿里
視覺
模型
OpenAI開源了:Transformer自動debug工具上線GitHub
2024-03-12
OpenAI
ORM
Github
記一次翻譯工具的開發-有了它,實現實時翻譯還遠嗎?
2020-10-10
本地視覺化工具連線阿里雲centOS伺服器的redis
2022-06-27
視覺化
阿里
CentOS
伺服器
Redis
6個在本地機器上執行 Kubernetes 的工具
2021-08-15
Android 6.0 執行時許可權管理最佳實踐
2019-03-04
Android
win10執行哪裡找_win10執行視窗的開啟方法
2020-03-13
Win10
Java執行緒篇——執行緒的開啟
2018-10-27
Java
執行緒
uniGUI釋出時執行時包的處理
2021-01-03
GUI
使用 Chrome 開發者工具檢視程式執行出錯時的上下文資訊
2022-02-21
Chrome
用go開發了一個實時檢視mysql資料字典的小工具
2019-09-03
Go
MySql
Smartbi:智慧園區資料視覺化解決方案
2022-01-07
視覺化
大屏視覺化解決方案公司,三維視覺化地圖怎麼做?
2023-02-28
視覺化
地圖
乾貨|0基礎,開啟COS公鏈本地化執行
2019-10-11
螞蟻金服移動端視覺化解決方案 F2 3.2 正式釋出
2018-08-28
視覺化