东莞网站建设专业品牌,wordpress发不了博文,个人网站备案转公司备案,一个网站2级域名多背景
LLM Transparency Tool 是一个用于深入分析和理解大型语言模型#xff08;LLM#xff09;工作原理的工具#xff0c;旨在增加这些复杂系统的透明度。它提供了一个交互式界面#xff0c;用户可以通过它观察、分析模型对特定输入#xff08;prompts#xff09;的反应…背景
LLM Transparency Tool 是一个用于深入分析和理解大型语言模型LLM工作原理的工具旨在增加这些复杂系统的透明度。它提供了一个交互式界面用户可以通过它观察、分析模型对特定输入prompts的反应以及模型内部的决策过程。
LLM Transparency Tool的主要功能包括
选择模型和提示并运行推理用户可以选择一个已经集成的语言模型并给这个模型提供一个提示prompt工具会显示模型是如何处理这个提示的。浏览贡献图这个功能允许用户社交从模型生成的token开始构建图表通过调整贡献门槛来过滤信息。选择任何模块后的token表示用户可以查看每个处理块之后任意token的内部表示。查看输出词汇表的投影对于选中的表示工具可以显示它是如何影响模型输出词汇的选择的包括哪些token被之前的块促进或抑制了。可交互的图形元素包括连接线展示了贡献的注意力头信息、当选中连接线时显示的头部信息、前馈网络块FFN blocks、以及选中FFN块时的神经元等。
使用场景
模型分析与调优研究人员或开发者在开发或优化语言模型时可以使用此工具来观察模型对特定输入的处理过程找出模型的优点与不足。教育与学习对深度学习和NLP自然语言处理感兴趣的学生或爱好者可以通过这个工具来加深对大型语言模型工作原理的理解。算法透明度与可解释性在追求算法透明度和可解释AI的推进中该工具可作为分析工具的一种帮助解释模型的决策依据
项目说明
项目地址https://github.com/facebookresearch/llm-transparency-tool项目依赖https://github.com/TransformerLensOrg/TransformerLens论文地址https://arxiv.org/pdf/2403.00824.pdfTransparency Tool是基于TransformerLens开发的TransformerLens是一个专注于生成语言模型如GPT-2风格的模型的可解释性的库。其核心目标是利用训练好的模型通过分析模型的内部工作机制来提供对模型行为的深入理解凡是TransformerLens支持的模型Transparency Tool都能支持。对于TransformerLens不支持的模型需要实现自己的TransparentLlm类
部署
# download
git clone gitgithub.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
# dont worry, even yarn comes preinstalled by env.yaml
cd llm_transparency_tool/components/frontend
yarn install
yarn build模型配置
{allow_loading_dataset_files: true,preloaded_dataset_filename: sample_input.txt,debug: true,models: {: null,/root/.cache/modelscope/hub/AI-ModelScope/gpt2-medium: null, // 额外添加模型/root/.cache/Qwen1.5-14B-Chat/: 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效果
原理
引言 Transformer架构作者首先指出当前最先进的语言模型LMs大多基于Transformer架构这是一种深度学习模型广泛应用于自然语言处理任务中。Transformer模型通过自注意力机制self-attention和前馈网络feed-forward networks处理语言信息。 信息流的概念在Transformer模型中每个token的表示representation会随着网络层的加深而不断演化。这种演化过程可以视为信息流即信息在模型内部的流动和转换。作者将这种信息流比作一个图其中节点代表token的表示边代表模型内部的计算操作。 信息流的重要性尽管在模型的前向传播过程中所有的计算路径都存在但对于特定的预测任务只有一部分计算是重要的。作者强调了识别和提取这些重要信息流路径的重要性因为这有助于我们更好地理解模型是如何做出特定预测的。 现有方法的局限性论文提到了现有的基于激活补丁activation patching的方法这种方法通过替换模型内部的激活值来研究模型的行为。然而这种方法存在局限性包括需要人为设计预测模板、分析仅限于预定义模板、以及在大规模模型中不切实际等。 提出的新方法为了克服现有方法的局限性作者提出了一种新的方法来自动构建信息流图并提取对于每个预测最重要的节点和边。这种方法不需要人为设计的模板可以高效地应用于任何预测任务并且只需单次前向传播即可完成。 实验和结果在引言的最后作者简要提到了他们使用Llama 2模型进行的实验展示了新方法的有效性。他们发现某些注意力头如处理前一个token的头和子词合并头在整体上很重要并且模型在处理相同词性的token时表现出相似的行为模式。 贡献总结作者总结了他们的贡献包括提出了一种新的解释Transformer LMs预测的方法与现有方法相比新方法具有更广泛的适用性、更高的信息量和更快的速度
信息流路径的提取
实现步骤 构建信息流图首先将模型内部的计算过程表示为一个图其中节点代表token的表示边代表模型内部的操作如注意力头、前馈层等。 自顶向下追踪从预测结果的节点开始自顶向下地追踪网络中的信息流动。在每一步中只保留对当前预测结果有重要影响的节点和边。 设置重要性阈值通过设置一个阈值τ只有当边的重要性高于这个阈值时才会将其包含在最终的信息流路径图中。 利用属性方法与传统的激活补丁方法不同作者使用属性attribution方法来确定边的重要性。这种方法不需要人为设计对比模板可以更高效地识别对预测结果有实质性影响的信息流动路径。 计算边的重要性根据ALTIAggregation of Layer-Wise Token-to-Token Interactions方法计算每个边对于节点即token表示的总和的贡献度。贡献度与边向量与节点向量的接近程度成正比。
意义 提高透明度通过提取信息流路径可以更清晰地看到模型内部是如何进行决策的提高了模型的透明度。 优化模型设计理解信息流动的模式可以帮助研究者发现模型设计中的不足之处从而进行优化。 解释预测结果信息流路径提供了一种方式来解释模型的预测结果有助于理解模型为何做出特定的预测。 发现模型组件的专门化通过分析信息流路径可以识别出模型中专门针对特定领域或任务的组件。 提高模型的可靠性通过识别和强化重要的信息流动路径可以提高模型在面对复杂或模糊输入时的可靠性
如何理解模型行为 注意力头的作用通过分析哪些注意力头在信息流路径中起关键作用可以理解模型在处理特定类型的输入时依赖哪些信息。 信息流动模式观察信息在模型内部如何流动可以帮助我们理解模型是如何处理和整合不同部分的信息来做出预测的。 模型的泛化能力通过分析信息流路径可以评估模型在不同任务或不同领域中的泛化能力。 模型的脆弱性识别信息流路径中的脆弱环节可以帮助我们理解模型可能在哪些情况下失效并采取措施进行改进。 模型的自我修复能力通过比较信息流路径在正常和干预如激活补丁情况下的差异可以研究模型的自我修复能力。
参数解释 y轴表示 模型层横轴表示对应得token每次计算从L0依次向上计算并经过attention计算在经过ffn泛化每次都得到最重要得 top k个token
怎么理解Promoted Tokens
L39 ffn 在Transformer架构中l39 ffn通常指的是位于模型第39层layer 39的前馈网络feed-forward network简称FFN。以下是对l39 ffn的详细解释 Layer层在深度学习模型中尤其是Transformer模型信息会通过多个层次layers进行处理。每一层都会对输入数据进行一些变换以提取特征或进行抽象表示。 Feed-Forward Network前馈网络FFN是Transformer模型中的一种组件通常位于每个注意力attention层之后。它由两个线性变换组成中间夹着一个非线性激活函数如ReLU。FFN的作用是对注意力层的输出进行进一步的非线性变换增加模型的表达能力。 Layer 39第39层在某些大型语言模型中可能会有数十层的深度结构。l39指的是模型中的第39层这意味着信息已经通过了前38层的处理并且在第39层中进一步被变换和抽象。 FFN的作用在第39层的FFN中模型会对从第38层传递来的信息进行处理。这个过程包括 一个线性变换将输入映射到一个更高或更低维度的空间。 应用一个非线性激活函数通常是ReLU以引入非线性特性帮助模型学习复杂的模式。另一个线性变换将激活后的结果映射回原始维度或另一个特定的维度。 理解FFN的重要性FFN是Transformer模型中不可或缺的一部分它允许模型在每个层级上进行更复杂的特征转换。通过这种方式模型可以学习到更加抽象和高级的语言特征这对于处理复杂的语言任务至关重要。 在模型解释性中的作用在论文中提到的信息流路径提取方法中FFN的重要性也可能被评估。研究者可能会分析第39层FFN对最终预测的贡献以及它如何与同一层次的注意力机制协同工作。
怎么理解Top Tokens
L8 T0 after attn: 表示第8层经过attention 计算得到预测tokenL8 T0 after ffn表示第8层经过ffn 泛化 计算得到预测token使模型表达能力更强了
待继续…