Facebook开源大模型可视分析工具:Transparency Tool ,将Transformer扒的一干二净 原创 精华

发布于 2024-5-24 11:27
浏览
0收藏

Transparency Tool是facebook开源的大语言模型可视分析工具,用于分析基于Transformer架构的语言模型。

源码:https://github.com/facebookresearch/llm-transparency-tool
技术报告:https://arxiv.org/pdf/2404.07004.pdf

一、浅谈原理

Transformer是由多个注意力块堆叠而成,每个注意力块视为一层,每个层包含一个多头注意力层和一个前馈网络。token向量在注意力层中,向量之间能够相互交流,并根据彼此信息更新自身的值;在前馈网络中,向量的值会被修改。

Facebook开源大模型可视分析工具:Transparency Tool ,将Transformer扒的一干二净 -AI.x社区

Transparency Tool将模型的前向推理过程构建成一个信息流图,图的节点表示token向量,图的边表示操作。以次来追踪和可视化模型内部的信息流动路径,同时允许检查单个注意力头和神经元的贡献。

Facebook开源大模型可视分析工具:Transparency Tool ,将Transformer扒的一干二净 -AI.x社区


二、在线体验

https://huggingface.co/spaces/facebook/llm-transparency-tool-demo

在huggingface上可以体验一下这个在线demo,在左侧选择模型,默认gpt2,在上方选择输入提示文本,默认“When Mary and John went to the store, John gave a drink to”。

Facebook开源大模型可视分析工具:Transparency Tool ,将Transformer扒的一干二净 -AI.x社区

Graph就是构建的信息流图,在Graph中圆圈代表节点,线代表边。点击token“to”最后一层的节点,右侧Top Tokens中排在第一个的是token“Mary”。

Facebook开源大模型可视分析工具:Transparency Tool ,将Transformer扒的一干二净 -AI.x社区

同样,通过点击连接节点的注意力边,您可以探索形成相关连接的头的模式。

Facebook开源大模型可视分析工具:Transparency Tool ,将Transformer扒的一干二净 -AI.x社区

Facebook开源大模型可视分析工具:Transparency Tool ,将Transformer扒的一干二净 -AI.x社区

如果想了解图的详细构建过程以及如何通过图进行分析,请参考下面这篇论文。

https://arxiv.org/pdf/2403.00824.pdf


三、私人定制

huggingface只提供了gpt2、distilgpt2、facebook/opt-125m三个模型,如何加载自己的模型呢?

Transparency Tool是基于TransformerLens开发的,TransformerLens是一个专注于生成语言模型(如GPT-2风格的模型)的可解释性的库。其核心目标是利用训练好的模型,通过分析模型的内部工作机制,来提供对模型行为的深入理解。

https://github.com/neelnanda-io/TransformerLens

所以,凡是TransformerLens支持的模型,Transparency Tool都能支持。

对于TransformerLens不支持的模型,需要实现自己的TransparentLlm类。

首先要搭建本地环境。

Dockerized running

# From the repository root directory
docker build -t llm_transparency_tool .
docker run --rm -p 7860:7860 llm_transparency_tool

Local Installation

# download
git clone git@github.com:facebookresearch/llm-transparency-tool.git
cd llm-transparency-tool


# install the necessary packages
conda env create --name llmtt -f env.yaml
# install the `llm_transparency_tool` package
pip install -e .


# now, we need to build the frontend
# don't worry, even `yarn` comes preinstalled by `env.yaml`
cd llm_transparency_tool/components/frontend
yarn install
yarn build

修改配置文件config/local.json,将模型添加到model中。

{
    "allow_loading_dataset_files": true,
    "preloaded_dataset_filename": "sample_input.txt",
    "debug": true,
    "models": {
        "": null,


        "gpt2": null,
        "distilgpt2": null,
        "facebook/opt-125m": null,
        "facebook/opt-1.3b": null,
        "EleutherAI/gpt-neo-125M": null,
        "Qwen/Qwen-1_8B": null,
        "Qwen/Qwen1.5-0.5B": null,
        "Qwen/Qwen1.5-0.5B-Chat": null,
        "Qwen/Qwen1.5-1.8B": null,
        "Qwen/Qwen1.5-1.8B-Chat": null,
        "microsoft/phi-1": null,
        "microsoft/phi-1_5": null,
        "microsoft/phi-2": null,


        "meta-llama/Llama-2-7b-hf": null,
        "meta-llama/Llama-2-7b-chat-hf": null,


        "meta-llama/Llama-2-13b-hf": null,
        "meta-llama/Llama-2-13b-chat-hf": null,




        "gpt2-medium": null,
        "gpt2-large": null,
        "gpt2-xl": null,


        "mistralai/Mistral-7B-v0.1": null,
        "mistralai/Mistral-7B-Instruct-v0.1": null,
        "mistralai/Mistral-7B-Instruct-v0.2": null,


        "google/gemma-7b": null,
        "google/gemma-2b": null,


        "facebook/opt-2.7b": null,
        "facebook/opt-6.7b": null,
        "facebook/opt-13b": null,
        "facebook/opt-30b": null
    },
    "default_model": "",
    "demo_mode": false
}

启动

streamlit run llm_transparency_tool/server/app.py -- config/local.json



本文转载自公众号人工智能大讲堂 

原文链接:​​https://mp.weixin.qq.com/s/TSOkh5LEnE0sraE6yGRaCw​


©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐