Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

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 —config=mypy.ini;
  • 运行激活服务器和神经元查看器,并确认 TDB 和神经元查看器页面等基本功能仍然有效。

Jan Leike 表示,TDB 目前仍然是一个早期阶段的研究工具,OpenAI 希望通过开源的方式让更多人受益,并期待社区在其基础上不断改进。

参考内容:https://twitter.com/janleike/status/1767347608065106387
工程Transformer DebuggerOpenAI
相关数据
自动编码器技术

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

主题模型技术

主题模型(Topic Model)在机器学习和自然语言处理等领域是用来在一系列文档中发现抽象主题的一种统计模型。直观来讲,如果一篇文章有一个中心思想,那么一些特定词语会更频繁的出现。比方说,如果一篇文章是在讲狗的,那“狗”和“骨头”等词出现的频率会高些。如果一篇文章是在讲猫的,那“猫”和“鱼”等词出现的频率会高些。而有些词例如“这个”、“和”大概在两篇文章中出现的频率会大致相等。但真实的情况是,一篇文章通常包含多种主题,而且每个主题所占比例各不相同。因此,如果一篇文章10%和猫有关,90%和狗有关,那么和狗相关的关键字出现的次数大概会是和猫相关的关键字出现次数的9倍。一个主题模型试图用数学框架来体现文档的这种特点。主题模型自动分析每个文档,统计文档内的词语,根据统计的信息来断定当前文档含有哪些主题,以及每个主题所占的比例各为多少。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

GPT-2技术

GPT-2是OpenAI于2019年2月发布的基于 transformer 的大型语言模型,包含 15 亿参数、在一个 800 万网页数据集上训练而成。据介绍,该模型是对 GPT 模型的直接扩展,在超出 10 倍的数据量上进行训练,参数量也多出了 10 倍。在性能方面,该模型能够生产连贯的文本段落,在许多语言建模基准上取得了 SOTA 表现。而且该模型在没有任务特定训练的情况下,能够做到初步的阅读理解、机器翻译、问答和自动摘要。

推荐文章
暂无评论
暂无评论~