最近时常被吐槽不够开源的 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 希望通过开源的方式让更多人受益,并期待社区在其基础上不断改进。