OpenAI開源了:Transformer自動Debug工具上線GitHub
最近時常被吐槽不夠開源的 OpenAI,突然開放了一次。
今天一早,OpenAI 機器學習研究員 Jan Leike 宣布,OpenAI 開放了自己內部一直用于分析 Transformer 內部結構的工具。
GitHub 鏈接:https://github.com/openai/transformer-debugger
該項目開放才幾個小時,雖然沒有經過太多宣傳,star 數量上漲得也挺快。
Transformer Debugger 介紹
Transformer Debugger (TDB) 是 OpenAI 對齊團隊(Superalignment)開發的一種工具,旨在支持對小體量語言模型的特定行為進行檢查。據介紹,該工具把自動可解釋性技術與稀疏自動編碼器進行了結合。
具體來說,TDB 能夠在需要編寫代碼之前進行快速探索,并能夠干預前向傳遞,幫助人們查看它是如何影響模型特定行為的。TDB 可用于回答諸如「為什么模型在此提示(prompt)中輸出 token A 而不是 token B?」之類的問題或「為什么注意力頭 H 會在這個提示下關注 token T?」
它通過識別對行為有貢獻的特定組件(神經元、注意力頭、自動編碼器 latents),顯示自動生成的解釋來分析導致這些組件最強烈激活的原因,并跟蹤組件之間的連接以幫助人們發現聯系,以此來幫助人們進行 Transformer 的 debug 工作。
OpenAI 放出了幾段視頻概述了 TDB 的能力,并展示了如何使用它來進行論文《Interpretability in the Wild: a Circuit for Indirect Object Identification in GPT-2 small》中的工作:
本次,OpenAI 的開源內容包括:
- Neuron viewer:一個 React 應用程序,用于托管 TDB 以及包含有關各個模型組件(MLP 神經元、注意力頭和兩者的自動編碼器 latents)信息的頁面。
- Activation server:對主題模型進行推理,為 TDB 提供數據的后端服務器。它還從公共 Azure 存儲桶讀取和提供數據。
- Models:GPT-2 模型及其自動編碼器的簡單推理庫,帶有捕獲激活的 hook。
- 整理好的激活數據集:包含 MLP 神經元、注意力頭和自動編碼器 latents 的頂級激活數據集示例。
安裝設置
請按照以下步驟安裝存儲庫。請注意,在此之前你需要 python/pip 以及 node/npm。
雖然不是必要,但 OpenAI 建議使用虛擬環境進行操作:
# If you're already in a venv, deactivate it.
deactivate# Create a new venv.
python -m venv ~/.virtualenvs/transformer-debugger# Activate the new venv.
source ~/.virtualenvs/transformer-debugger/bin/activate
設置好環境后,請按照以下步驟操作:
git clone git@github.com:openai/transformer-debugger.gitcd transformer-debugger
# Install neuron_explainer
pip install -e .
# Set up the pre-commit hooks.
pre-commit install
# Install neuron_viewer.
cd neuron_viewer
npm installcd ..
要運行 TDB 應用程序,你需要按照說明設置激活服務器后端和神經元查看器前端。
要驗證更改,你需要:
- 運行 pytest;
- 運行 mypy —cnotallow=mypy.ini;
- 運行激活服務器和神經元查看器,并確認 TDB 和神經元查看器頁面等基本功能仍然有效。
Jan Leike 表示,TDB 目前仍然是一個早期階段的研究工具,OpenAI 希望通過開源的方式讓更多人受益,并期待社區在其基礎上不斷改進。