不用敲代码,就可以快速探索模型结构。
最近时常被吐槽不够开源的 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 [email protected]: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 —config=mypy.ini;
运转激活服务器和神经元查看器,并确认 TDB 和神经元查看器页面等基本功能仍然有效。
Jan Leike 表示,TDB 目前仍然是一个早期阶段的研究东西,OpenAI 希望通过开源的方式让更多人受益,并期待社区在其基础上不断改进。
参考内容:https://twitter.com/janleike/status/1767347608065106387