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