1. 这篇文章真正要解决的问题当你听到“语言模型理解世界”时第一反应是什么是它能写诗、编程还是能回答百科问题这些确实是它的能力但今天我们要探讨一个更深层、更本质的问题语言模型究竟是如何“理解”和“表示”那些看不见、摸不着的抽象概念的比如什么是“天空”什么是“球体”当模型读到“天空像一个巨大的蓝色穹顶”时它内部发生了什么这不仅仅是学术好奇心它直接关系到我们如何信任、调试和提升模型。如果你曾困惑于为什么模型在某些问题上表现不稳定或者想更精细地控制模型的输出那么理解其内部的“概念表示”就是一把关键的钥匙。本文要解决的正是这个核心问题。我们将聚焦于一个具体而迷人的研究视角语言模型中的“天空球体”Sky Sphere表示。这并非指一个真实的天文模型而是一个绝佳的“探针”用来探查语言模型如何将复杂的、多模态的视觉、空间、物理概念编码在其神经网络的“残差流”Residual Stream中。本文的核心判断是语言模型并非一个黑箱其内部存在结构化的、可解释的概念表示。通过分析像“天空球体”这样的复合概念我们可以逆向工程模型的“思维”过程这不仅对可解释AI研究至关重要也为更可靠的模型应用如减少幻觉、提升推理一致性提供了底层方法论。读完本文你将能理解主流的概念表示分析方法如主成分分析PCA、留一法测试LOO并掌握一套探查模型内部世界的“基本操作”。2. 基础概念与核心原理打开语言模型的“黑箱”在深入“天空球体”之前我们必须先搭建几个关键的概念脚手架。理解这些是后续所有分析和操作的基础。1. 残差流Residual Stream模型的“工作记忆”与“概念画布”你可以把Transformer架构的语言模型想象成一个多层的加工流水线。每一层Layer都是一个加工站对输入的信息进行变换。而“残差流”就是贯穿所有加工站的那条核心传送带。在每一站信息经过该层处理后的结果会被加回到这条传送带上传递给下一站。关键比喻残差流就像模型正在构思的一篇文章的“草稿纸”。随着层数的加深这张草稿纸上的内容被不断修改和丰富。最终在最后一层模型根据这张几乎完成的草稿预测出下一个词。技术定义在Transformer的每个残差块中输入x经过层归一化LayerNorm和注意力/前馈网络FFN后得到输出f(x)然后执行x_new x f(x)。这个不断更新的x就是残差流。它承载了从输入开始经过所有中间层加工后的全部信息。2. 表示Representation与概念神经元“表示”指的是某个特定信息如一个词、一个短语、一个概念在模型内部通常是残差流的某个特定位置对应的向量。这个高维向量例如有4096或8192个维度就是模型对该信息的“编码”。“天空”的表示当模型处理“天空”这个词时在某一层的残差流中就会激活一个特定的向量模式这个模式就是“天空”在该层的表示。“球体”的表示同理“球体”也有其对应的向量模式。“天空球体”的表示那么当模型理解“天空是一个球体”这个复合概念时它的表示是简单的“天空”向量加上“球体”向量吗还是产生了某种更复杂的、 emergent 的融合这就是研究要探索的。3. 主成分分析PCA降维与可视化残差流中的向量维度极高人类无法直接理解。PCA是一种经典的降维技术它能从高维数据中找出最主要的几个变化方向主成分。在本文语境下的作用我们可以收集大量包含“天空”、“穹顶”、“球体”、“圆形”等语义的句子提取模型在处理这些句子时残差流中的向量。对这些向量做PCA可能发现前两个或三个主成分恰好对应了“天空属性”和“球体属性”。这样我们就能在一个二维或三维散点图上直观地看到不同概念是如何被模型区分和组织的。4. 留一法测试LOO Testing因果干预与概念验证相关性不等于因果性。PCA展示了概念和向量模式的相关性但LOO测试用于验证因果性。基本思想如果我们怀疑某个神经元或某个向量方向例如通过PCA找到的“球体方向”对模型表达“球体”概念至关重要我们可以进行一个“手术”在模型前向传播时手动将这个方向上的激活值设为零即“留一”出去。预期结果如果这个方向真的关键那么“手术”后模型在完成与“球体”相关的任务如判断句子合理性、续写时性能应该会显著下降。这就证明了该方向对“球体”概念具有因果效应。将这些概念串联起来研究“天空球体”表示的典型流程是从大量相关文本中提取残差流向量 - 用PCA等分析其结构发现可能的概念维度 - 设计LOO等干预实验验证这些维度是否对相应概念的输出有因果影响。3. 环境准备与前置条件要进行这样的探查你需要一个可交互、可干预的语言模型以及相应的分析工具。以下是一个基于Python的典型研究环境搭建指南。1. 核心环境与框架操作系统Linux (Ubuntu 20.04) 或 macOSWindows可通过WSL2获得最佳体验。Python版本3.8 - 3.10建议3.9兼容性最广。深度学习框架PyTorch (1.12.0)。这是目前大多数开源LLM和可解释性工具的基础。Transformer模型库Hugging Facetransformers。它是加载和使用预训练模型的瑞士军刀。交互与干预工具transformer_lens或nnsight。这两个库专门设计用于对Transformer模型进行深入的激活提取、编辑和干预实验比直接使用transformers更强大。本文示例将使用transformer_lens。数据处理与可视化numpy,pandas,scikit-learn(用于PCA),plotly或matplotlib(用于绘图)。2. 安装步骤创建一个干净的虚拟环境并安装依赖# 创建并激活虚拟环境以conda为例 conda create -n lm_probe python3.9 conda activate lm_probe # 安装PyTorch请根据你的CUDA版本访问官网获取对应命令 # 例如对于CUDA 11.7 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 # 安装核心工具包 pip install transformers pip install transformer_lens pip install nnsight # 可选作为备选 # 安装数据处理与可视化库 pip install numpy pandas scikit-learn plotly matplotlib jupyterlab # 用于方便地管理实验 pip install datasets tqdm3. 模型选择对于概念表示研究中等规模的模型是理想的起点它们足够复杂以展现有趣的现象又不会大到难以计算。推荐模型GPT-2 Small/Medium (1.5亿/3.45亿参数)或Pythia系列 (1.4亿-28亿参数)。这些模型在transformers和transformer_lens中都有很好的支持且研究社区对其内部机制有大量积累。加载模型代码预览import transformer_lens import transformer_lens.utils as utils from transformer_lens import HookedTransformer # 加载GPT-2 Small模型 model HookedTransformer.from_pretrained(\gpt2-small\) print(f\模型加载成功: {model.cfg.model_name}\)在后续章节我们将基于这个模型进行所有实验。4. 核心流程拆解如何探查“天空球体”表示整个研究流程可以拆解为五个关键步骤从数据准备到因果验证。步骤1构建概念探测数据集目标准备一系列能激发模型对“天空”、“球体”及相关、无关概念进行表示的文本。正例Positive Examples包含目标概念的句子。天空相关“The sky is blue.”, “Clouds float in the sky.”, “The vast sky above us.”球体相关“A basketball is a sphere.”, “The Earth is approximately spherical.”, “Roll the ball.”天空球体复合概念“The sky appears as a dome.”, “Imagine the sky as a giant sphere surrounding the Earth.”, “Celestial sphere is an abstract concept.”负例Negative Examples不包含目标概念但可能在其他方面相似的句子用于对照。“The table is wooden.”, “She writes a program.”, “The idea is complex.”操作将这些句子整理成一个列表或加载为datasets.Dataset对象。步骤2提取残差流激活目标让模型处理这些句子并“钩取”Hook我们感兴趣的中间层激活值残差流状态。关键决策点在哪一层提取通常选择模型的中间层例如对于12层的GPT-2 Small第6层附近因为这里可能包含了融合了低级语法和高级语义的信息。提取什么我们提取的是某个特定位置通常是每个句子的最后一个词元[END]之前的位置的残差流向量。步骤3降维分析与可视化PCA目标从高维激活向量中找出最能区分不同概念的主要方向。操作将所有句子提取到的激活向量堆叠成一个矩阵对其执行PCA保留前2-3个主成分。观察将降维后的点按句子类别天空、球体、复合、无关着色绘制散点图。我们期望看到“天空”句和“球体”句分别聚集在不同的区域而“天空球体”复合句可能位于两者之间或形成一个独立的簇。步骤4定位概念方向目标将PCA找到的主成分或通过其他方法如线性探测找到的方向定义为“天空方向”或“球体方向”。方法我们可以计算所有“天空”句激活向量的平均向量减去所有“无关”句的平均向量得到的差分向量就可以作为一个朴素的“天空概念方向”。PCA的主成分轴提供了更统计稳健的方向。步骤5因果干预验证LOO测试目标证明我们找到的“方向”对模型输出该概念具有因果性。操作准备一批测试句如“The sky looks like a ___.” 我们希望模型能生成“dome”或“sphere”。在模型正常运行时记录其生成下一个词的概率分布特别是目标词如“sphere”的概率。在模型运行时通过钩子函数在特定层对我们认定的“球体方向”进行干预如将该方向上的激活值置零。再次让模型生成记录干预后目标词的概率。对比干预前后概率的变化。如果概率显著下降则强有力地证明了这个方向对表达“球体”概念是因果必要的。5. 完整示例与代码实现下面我们用一个完整的代码示例串联起上述流程。我们将使用transformer_lens对 GPT-2 Small 模型进行分析。5.1 准备环境与数据# 文件sky_sphere_probe.py import torch import numpy as np import plotly.express as px import pandas as pd from sklearn.decomposition import PCA from datasets import Dataset from transformer_lens import HookedTransformer, utils # 1. 加载模型 model HookedTransformer.from_pretrained(\gpt2-small\) model.eval() # 设置为评估模式 device torch.device(\cuda\ if torch.cuda.is_available() else \cpu\) model.to(device) # 2. 构建探测数据集 sentences [ # 天空相关 \The sky is blue.\, \Clouds float in the sky.\, \The vast sky above us.\, \At night, the sky is dark.\, # 球体相关 \A basketball is a sphere.\, \The Earth is approximately spherical.\, \Roll the ball.\, \A globe represents a sphere.\, # 天空球体复合概念 \The sky appears as a dome.\, \Imagine the sky as a giant sphere surrounding the Earth.\, \Celestial sphere is an abstract concept.\, \The sky forms a hemispherical vault.\, # 无关概念 \The table is wooden.\, \She writes a program.\, \The idea is complex.\, \He reads a book.\, ] labels [\sky\]*4 [\sphere\]*4 [\sky_sphere\]*4 [\neutral\]*4 # 转换为 Hugging Face Dataset 格式方便处理 dataset Dataset.from_dict({\text\: sentences, \label\: labels}) print(\数据集构建完成样本数:\, len(dataset))5.2 提取残差流激活# 3. 定义钩取激活的函数 def extract_residual_stream(model, sentences, layer6): \\\ 提取指定层残差流的激活向量。 我们提取每个句子最后一个非填充词元位置的激活。 \\\ activations [] # 获取模型的词元化器 tokenizer model.tokenizer with torch.no_grad(): for sent in sentences: # 词元化并添加批次维度 tokens tokenizer(sent, return_tensors\pt\)[\input_ids\].to(device) # 定义钩子函数捕获指定层的残差流输出 def hook_fn(resid_post, hook): # resid_post 形状: [batch, pos, d_model] # 我们取最后一个有效位置pos-1 return resid_post[:, -1, :] # 形状: [batch, d_model] # 运行模型并钩取 _, cache model.run_with_cache( tokens, return_type\logits\, names_filter[utils.get_act_name(\resid_post\, layer)] ) # 从缓存中取出激活 act cache[utils.get_act_name(\resid_post\, layer)] activations.append(act.squeeze().cpu().numpy()) # 移除批次维度转numpy return np.stack(activations) # 形状: [n_samples, d_model] # 提取第6层的激活GPT2-small共12层第6层是中间层 layer_to_probe 6 activation_vectors extract_residual_stream(model, sentences, layerlayer_to_probe) print(f\激活向量提取完成形状: {activation_vectors.shape}\) # 应为 (16, 768)5.3 执行PCA并可视化# 4. 执行PCA降维 pca PCA(n_components3) # 取前三个主成分 activation_pca pca.fit_transform(activation_vectors) # 形状: [16, 3] print(f\PCA完成。解释方差比: {pca.explained_variance_ratio_}\) # 5. 创建可视化DataFrame df_viz pd.DataFrame({ \PC1\: activation_pca[:, 0], \PC2\: activation_pca[:, 1], \PC3\: activation_pca[:, 2], \label\: labels, \sentence\: sentences }) # 绘制3D散点图 fig px.scatter_3d( df_viz, xPC1, yPC2, zPC3, colorlabel, hover_data[sentence], titlefPCA of Residual Stream Activations at Layer {layer_to_probe}, labels{PC1: fPC1 ({pca.explained_variance_ratio_[0]:.1%}), PC2: fPC2 ({pca.explained_variance_ratio_[1]:.1%}), PC3: fPC3 ({pca.explained_variance_ratio_[2]:.1%})} ) fig.show() # 注意在Jupyter Notebook中fig.show()会直接显示在脚本中可能需要保存为HTML # fig.write_html(\pca_visualization.html\)5.4 进行LOO因果干预测试# 6. 定义LOO干预测试函数 def loo_intervention_test(model, test_prompt, concept_direction, layer, intervention_strength0.0): \\\ 对指定层的激活沿concept_direction方向进行干预缩放或归零观察输出概率变化。 intervention_strength: 干预强度。0无干预-1.0完全反向1.0完全增强一个很大的负数≈归零。 \\\ tokenizer model.tokenizer tokens tokenizer(test_prompt, return_tensors\pt\)[\input_ids\].to(device) # 首先正常前向传播获取原始logits original_logits model(tokens) # 获取目标词元的ID例如我们想看看\sphere\的概率 target_token_id tokenizer(\ sphere\, add_special_tokensFalse)[\input_ids\][0] original_prob torch.softmax(original_logits[0, -1, :], dim-1)[target_token_id].item() # 定义干预钩子 def intervention_hook(resid_post, hook): # resid_post形状: [batch, pos, d_model] # 我们只干预最后一个位置 batch_size, seq_len, d_model resid_post.shape # 计算当前激活在概念方向上的投影 # concept_direction 需要是单位向量 [d_model] proj torch.einsum(bpd,d-bp, resid_post, concept_direction.to(device)) # [batch, pos] # 从原始激活中减去或操作投影部分 # 这里实现“归零”操作减去其在该方向上的全部投影 if intervention_strength \zero_out\: # 更精确的归零减去投影 resid_post resid_post - torch.einsum(bp,d-bpd, proj, concept_direction.to(device)) else: # 或者按强度缩放 resid_post resid_post - intervention_strength * torch.einsum(bp,d-bpd, proj, concept_direction.to(device)) return resid_post # 带干预的前向传播 intervened_logits model.run_with_hooks( tokens, fwd_hooks[(utils.get_act_name(\resid_post\, layer), intervention_hook)] ) intervened_prob torch.softmax(intervened_logits[0, -1, :], dim-1)[target_token_id].item() return original_prob, intervened_prob # 7. 计算“球体”概念方向简化版用球体句平均激活减去无关句平均激活 sphere_sent_idx [i for i, l in enumerate(labels) if l \sphere\] neutral_sent_idx [i for i, l in enumerate(labels) if l \neutral\] sphere_activation_mean activation_vectors[sphere_sent_idx].mean(axis0) neutral_activation_mean activation_vectors[neutral_sent_idx].mean(axis0) sphere_direction sphere_activation_mean - neutral_activation_mean sphere_direction sphere_direction / np.linalg.norm(sphere_direction) # 单位化 sphere_direction torch.from_numpy(sphere_direction).float() # 8. 执行测试 test_prompt \The sky looks like a\ # 期望续写 \ dome\ 或 \ sphere\ original_prob, intervened_prob loo_intervention_test( model, test_prompt, sphere_direction, layerlayer_to_probe, intervention_strength\zero_out\ ) print(f\测试提示: {test_prompt}\) print(f\原始概率下 sphere 的概率: {original_prob:.4f}\) print(f\干预归零球体方向后 sphere 的概率: {intervened_prob:.4f}\) print(f\概率变化: {(intervened_prob - original_prob):.4f} (下降 {((original_prob - intervened_prob)/original_prob*100):.1f}%)\)6. 运行结果与效果验证运行上述代码后你应该能得到以下几类关键结果用于验证我们的分析。1. PCA可视化结果生成的3D散点图是第一个重要验证点。一个理想的结果可能显示“天空”句蓝色点和“球体”句红色点在空间中分别聚集成两个不同的簇。“天空球体”复合句绿色点可能位于这两个簇之间或者偏向其中一个簇这取决于模型是将复合概念视为简单叠加还是独立实体。“无关”句灰色点则分散在其他区域。前两个或三个主成分PC的解释方差比之和最好能超过50%这说明我们找到的方向确实捕捉了数据中的主要变异模式。如果解释方差比很低如30%说明概念信息可能分散在更多维度中或者我们选择的层不合适。2. LOO干预测试结果这是因果性的核心证据。针对测试提示\The sky looks like a\我们期望原始概率模型赋予下一个词是\ sphere\的概率应该有一个基础值例如0.1或更高取决于模型和提示。干预后概率当我们“归零”球体概念方向后\ sphere\的概率应显著下降。成功标志概率下降幅度越大越能证明该方向对生成“球体”概念是因果必要的。例如从0.15下降到0.02下降了87%这就是一个很强的信号。如果下降不明显10%则可能意味着概念方向计算不准确。该概念的处理不主要依赖于我们干预的这一层。模型对提示的续写有多种可能“sphere”本身概率就不高。3. 如何判断实验成功定性成功PCA图显示出符合语义的聚类结构。定量成功LOO测试导致目标词概率显著下降例如下降超过50%。稳健性验证你应该用不同的随机种子、不同的测试句如\The celestial sphere is a\、不同的层如第5层、第7层重复实验观察结果是否一致。一致性越高结论越可靠。7. 常见问题与排查思路在进行概念表示分析时你可能会遇到以下典型问题。问题现象可能原因排查方式解决方案PCA可视化图中所有点混杂在一起无清晰聚类1. 选择的模型层不合适太浅或太深。2. 提取激活的位置不对如提取了[CLS]或填充位置。3. 数据集句子差异太小或太大。4. 概念信息确实分散在许多维度前3个PC解释力不足。1. 检查激活提取代码确认提取的是句子最后一个有效词元的位置。2. 尝试在不同层特别是中间层提取激活。3. 查看PCA解释方差比如果前3个PC总和很低30%尝试增加到5-10个PC再看聚类。1. 系统性地遍历模型的不同层如3,6,9进行PCA分析。2. 确保数据集中正例和负例有明确区分。可先用更简单的概念如“阳性词”vs“阴性词”测试流程。LOO干预后目标词概率几乎没有变化1. 计算的概念方向不准确或噪声太大。2. 干预的层不对该概念的关键表示不在这一层。3. 干预强度不够或方式不对如应归零却做了增强。4. 测试提示本身未能有效激发该概念。1. 验证概念方向向量计算其与正例平均向量的余弦相似度应接近1与负例的应较低。2. 尝试在其他层进行同样的干预。3. 尝试不同的干预方式zero_out归零、amplify增强2倍、invert反向。4. 换用更直接、与概念强相关的测试提示。1. 使用更稳健的方法计算概念方向如用逻辑回归分类器线性探测的权重向量。2. 进行层间扫描Layer-wise Scanning找出对概念预测最重要的层。模型输出乱码或概率异常低1. 干预操作破坏了残差流的正常数值范围导致模型崩溃。2. 钩子函数实现有误改变了张量形状或类型。1. 在干预钩子中加入print(resid_post.shape)或print(torch.any(torch.isnan(resid_post)))调试。2. 先做一个极轻微的干预如strength0.01看输出是否轻微变化确保钩子逻辑正确。1. 确保干预操作是线性的、可逆的且不会引入NaN或Inf。2. 使用transformer_lens或nnsight库提供的标准干预模式避免手动实现复杂操作。提取激活时内存不足OOM1. 一次性处理太多句子或句子太长。2. 模型太大缓存所有激活占用内存过多。1. 分批处理句子。2. 使用model.run_with_cache时通过names_filter只缓存需要的层而不是全部层。1. 实现一个批次循环每次处理少量句子并即时将激活向量转移到CPU或保存到磁盘。2. 考虑使用更小的模型如GPT-2 Tiny进行方法验证。不同运行结果差异大1. 使用了Dropout等随机性操作而未固定随机种子。2. 数据顺序或预处理不一致。1. 在实验开始前设置torch.manual_seed()和np.random.seed()。2. 确保数据加载和处理流程是确定性的。1. 在关键实验前固定所有随机种子。2. 多次运行取平均结果报告均值和标准差。8. 最佳实践与工程建议基于上述流程和常见问题以下最佳实践能帮助你更稳健、更高效地进行语言模型的概念表示分析。1. 概念与数据设计概念定义要清晰可操作避免“美”、“正义”等过于抽象的概念。从具体、高频的词汇和短语开始如“天空”、“球体”、“购买”、“奔跑”。构建高质量探测集正例要纯净且有代表性负例要能起到对照作用如相同句式但不同主题。数据量不必巨大但质量要高通常每个类别20-50个句子足以初探。使用现有基准考虑使用像Brendel et al. 的“Concept Activation Vectors (CAVs)”或AllenAI的“Language Model Interpretability”等领域内公认的数据集和方法作为起点和对比基准。2. 技术实现层选择策略不要只盯着某一层。概念的处理在Transformer中是跨层的。进行层间扫描从输入嵌入层开始每隔几层提取一次激活观察概念可分性例如用线性探测的准确率如何随层数变化。通常低级概念语法、词性在底层高级语义概念在中高层。方向计算方法均值差分简单快速适合初步探索。线性探测Linear Probing更稳健。训练一个线性分类器如逻辑回归来区分正负例分类器的权重向量就是学习到的概念方向。这是目前更受推崇的方法。PCA/ICA用于发现数据中自然涌现的主要变异方向而不是针对预设概念。干预验证的严谨性设置对照方向除了干预目标概念方向还应干预一个随机方向或一个已知无关的概念方向以确认效果特异性。多提示测试使用多个不同的测试提示来评估干预效果避免偶然性。量化指标不仅看单个词概率还可以计算干预前后整个输出分布的变化如KL散度。3. 分析与解释相关性 vs 因果性时刻牢记PCA等分析显示的是相关性LOO等干预实验才能证明因果性。你的结论强度取决于最弱的证据链。概念纠缠现实中的概念很少是正交的。“天空球体”可能和“蓝色”、“巨大”、“包围”等概念纠缠在一起。你的“球体方向”可能也部分编码了“圆形”或“曲线”。解释结果时要保持这种警惕。负结果的价值如果未能找到清晰的概念方向或干预无效这本身也是一个重要发现。它可能意味着1) 该概念在模型中确实是以一种高度分布式、非局部的方式表示的2) 你当前的分析工具单方向干预不足以捕捉它3) 模型本身就没有很好地学习这个概念。4. 工程化与协作代码可复现使用Jupyter Notebook或脚本记录完整的实验流程包括数据、模型版本、随机种子和所有参数。激活缓存提取激活是计算密集型操作。将提取到的激活向量保存为.npy或.pt文件避免重复计算。可视化多样化除了3D散点图可以使用t-SNE、UMAP进行非线性降维可视化作为PCA的补充。绘制概念方向与大量词汇的余弦相似度热图也能提供全局视角。9. 总结与后续学习方向通过本文我们完成了一次对语言模型内部“天空球体”表示从理论到实践的全链路探查。我们明确了残差流作为核心信息通道的角色掌握了使用PCA进行概念结构可视化和使用LOO测试进行因果验证的基本方法。这个过程揭示了一个关键事实现代大语言模型并非完全不可知的“玄学黑箱”其内部存在着一定程度的结构化和可解释的概念表征。这项技能的价值远不止于分析“天空球体”。它是你打开任何Transformer模型内部工作机制的通用钥匙。你可以用同样的方法去探究模型偏见寻找与“性别”、“种族”、“职业”等相关的概念方向并评估它们如何影响模型输出。事实知识存储“巴黎是法国的首都”这个事实存储在哪个些层如何编辑它推理能力来源模型进行数学计算或逻辑推理时中间步骤是如何表示的提示工程原理不同的系统提示如“你是一个有帮助的助手”是如何调整模型内部表示空间的后续深入学习的建议路径工具进阶深入阅读transformer_lens和nnsight的官方文档和论文掌握更高级的干预技术如激活修补Activation Patching、路径剪枝Path Patching等。理论深化阅读可解释AI领域的经典论文如《Transformer Feed-Forward Layers Are Key-Value Memories》、《A Mathematical Framework for Transformer Circuits》以及 Anthropic 和 OpenAI 发布的一系列关于模型可解释性的研究。扩展应用将这套方法应用于更大的模型如LLaMA 2、Mistral或不同的模型架构如Encoder-only的BERTDecoder-only的GPTEncoder-Decoder的T5比较其概念表示方式的异同。参与社区关注EleutherAI、Alignment Forum和arXiv上cs.CL计算语言学与cs.AI人工智能类别的最新研究这是该领域进展最快的地方。理解模型的“内心世界”最终是为了更好地驾驭它。当你下次调试一个难以捉摸的模型行为时或者当你需要构建一个更可靠、更可控的AI系统时今天所学的这套“神经语言解剖学”工具或许就能提供那个关键的洞察。建议收藏本文并将其中的代码框架作为你探索语言模型内部奥秘的起点。