优秀的编程知识分享平台

网站首页 > 技术文章 正文

被喷麻了的OpenAI,终于又开源了~

nanyue 2024-08-14 20:34:33 技术文章 7 ℃

此次开源的工具为Transformer Debugger ,一个用于分析Transformer内部结构的工具。研究人员不用写代码,就能快速探索LLM的内部构造,从而对小模型的特定行为进行调查。

Transformer Debugger 介绍

Transformer Debugger (TDB) 是 OpenAI 对齐团队(Superalignment)开发的一种工具,旨在支持对小体量语言模型的特定行为进行检查。据介绍,该工具把自动可解释性技术与稀疏自动编码器进行了结合。

具体来说,TDB 能够在写代码之前进行快速探索,并能够干预前向传递,帮助人们查看它是如何影响模型特定行为的。TDB 可用于回答诸如“为什么模型在此提示(prompt)中输出 token A 而不是 token B?”之类的问题或“为什么模型的关注点从token 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 的数据集示例。

安装步骤

stg1、创建python虚拟环境

# 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

stg2、下载安装

git clone git@github.com:openai/transformer-debugger.git
cd transformer-debugger

# Install neuron_explainer
pip install -e .

# Set up the pre-commit hooks.
pre-commit install

# Install neuron_viewer.
cd neuron_viewer
npm install
cd ..

stg3、激活服务器后端

后端服务器,用于通过 HTTP 从 Azure blob 存储或从主题或助理模型的推理获取激活、神经元和解释数据。

运行 GPT-2 Small 的激活服务器

python main.py --model_name gpt2-small --port 8000

运行相应的自动编码器

python main.py  --model_name gpt2-small --port 8000 --mlp_autoencoder_name ae-resid-delta-mlp-v4
python main.py  --model_name gpt2-small --port 8000 --attn_autoencoder_name ae-resid-delta-attn-v4
python main.py  --model_name gpt2-small --port 8000 --attn_autoencoder_name ae-resid-delta-attn-v4 --mlp_autoencoder_name ae-resid-delta-mlp-v4

查看所有可用的自动编码器名称

from neuron_explainer.models.model_registry import list_autoencoder_names
print(list_autoencoder_names("gpt2-small"))

生成客户端库

python neuron_explainer/activation_server/main.py --run_model False --port 8000

然后在另一个终端中运行:

cd neuron_viewer
npm run generate-client

stg4、本地运行神经元查看器

npm install
npm install

Neuron Viewer 页面: http://localhost:1234

TDB页面:http://localhost:1234/gpt2-small/tdb_alpha

使用自动编码器打开 TDB:http://localhost:1234/gpt2-small_ae-resid-delta-mlp-v4_ae-resid-delta-attn-v4/tdb_alpha (其中 ae-resid-delta-mlp-v4 和 ae-resid-delta-attn-v4 必须与激活服务器中使用的自动编码器名称匹配)

最近发表
标签列表