10.用AI解释AI

news2024/12/28 19:21:41

文章目录

  • 用AI解释AI
    • 目的
    • 思路
      • 成功解释实例
      • 失败例子
    • 评估解释结果
    • 结果分析
    • 方法小结
    • 整体评估
    • 缺点与改进
    • 其他槽点

部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜索。
用AI解释AI来自openAI的论文: Language models can explainneurons in language models
官网Blog地址:https://openai.com/research/language-models-can-explain-neurons-in-language-models
AI涉及到的神经网络模型是一个黑盒子,关于AI的可解释性一直也是研究的一个热点,现有研究有从不同目的,不同角度对这个黑盒子做了一些可解释性的解读。

用AI解释AI

目的

这篇论文是从单一神经元(Neuron)的角度来进行研究的,主要目的就是要解释/预测/复现某个神经元在模型中的作用。主要原理是根据神经元何时激活(Activate),来猜测它的作用。
例如:
在这里插入图片描述
在上图的多层Transformer模型中,可以吃一个句子,预测该句子的下一个词。这个模型中有一个神经元,每次读到句子中包含有right、correct等词汇的时候,其输出score比较高,就给其冠名“正确神经元”
在文章We Found An Neuron in GPT-2中,就使用了这个原理。这里的“An”不是定冠词,而是这个神经元的名字。估计作者是看过周星星的电影的,跟“有间客栈”里面的“有间”有异曲同工之处。
作者发现在GPT-2中的第31层892号位上的神经元有一个特定的作用。
在这里插入图片描述
如图所示,蓝色代表892号神经元的输出,颜色越深输出越高,虽然每次得分高的词不一样,但是这些词都在单词“an”的前面,也就是说当下一个单词要输出“an”的时候,892号神经元就会Activate,所以得名:An Neuron
当然不是每个神经元都这么容易看出其作用,openAI提出使用GPT-4来解释神经元的作用,也就是这节的内容主旨:用AI解释AI。

思路

将不同句子丢到GPT-2中,查看某个神经元的Activate状态(下图中颜色越深Activate分数越高),将神经元的Activate状态丢进GPT-4,让GPT-4给出这个神经元作用的解释。
在这里插入图片描述
openAI给出了如何让GPT-4吃Activate状态(每个单词都对应神经元的输出score,具体格式看下面,这里要对输出score做normalization,使其取值范围从0-10)的Prompt。
We’re studying neurons in a neural network, Each neuron looks for some particular thing in a short document. Look at the parts of the document the neuron activates for and summarizein a single sentence what the neuron is looking for. Don’t list examples of words.
The activation format is token<tab>activation. Activation values range from 0 to 10. A neuron finding what it’s looking for is represented by a non-zero activation value. The higher the activation value, the stronger the match.
输入实例1:
在这里插入图片描述
这个输入效果并不好,因为神经元对大多数单词都不会有激活,因此太多未激活的状态会使得GPT-4难以更精准的分析,因此过滤到score为0的单词再次输入:
在这里插入图片描述
最后提问得到的结果如下:
在这里插入图片描述

成功解释实例

在这里插入图片描述
解释:words and phrases related to performing actions correctly or properly.
在这里插入图片描述
descriptive comparisonses pecially similes(明喻). 这个神经元作用比较抽象,作用是比较描述或明喻。
在这里插入图片描述
在这里插入图片描述
解释: repetitions of a similar word or an evolving sequence of words. 找出重复出现的词,或者有重复模式的词组。

失败例子

在这里插入图片描述
解释:words related to general concepts, titles, and partial terms.一般概念等
实际上,这些词都出现在错误单词或者乱码单词后面。
在这里插入图片描述
解释:numbers, ordinal terms,and possessive constructions.
实际上是当前面有规律的序列被打破的时候,这个神经元就会激活。

评估解释结果

原理就是用GPT-4这个大模型来角色扮演,让其模拟某一个神经元。给出的Prompt如下:
神经元 #1938 的功用是寻找 words and phrases related to performing actions correctly or properly.
給一個句子 if their applications are executed properly
请问神元神经元 #1938 读到最后一个 token 会输出多少数值 ?
GPT-4会给出结果:9
Ground Truth会是什么呢,可将句子丢入GPT-2看答案:
在这里插入图片描述
Ground Truth与GPT-4的答案可以转化为Explaination Score(取值范围为0~1,具体转化方法要看原文)
实际使用的Prompt例子如下:
We’re studying neurons in a neural network, Each neuron looks for some particular thing in a short document. Look at an explanation of what the neuron does, and try to predict its activations on a particular token.
The activation format is token <tab> activation, and activations range from 0 to 10. Most activations will be 0.
Neuron 4
Explanation of neuron 4 behavior: the main thing this neuron does is find present tense verbs ending in 'ing
Text: l am
Last token activation, considering the token in the context in which it appeared in the text:
这个例子中的神经元激活条件是判断现在进行时的动词。这个例子最后的词是“am”,所以GPT-4给出的激活分数为0。如果Prompt中的Text为:l am swimming,这个时候激活分数则为10。

结果分析

在这里插入图片描述
上图中横轴是模型的参数多少,越多表示模型越大;
纵轴是模型中神经元的Explaination Score,分数越高表示该模型可解释性越好。
可以看出,小模型的神经元比较好解释。
在这里插入图片描述
上图中是对同一个模型,不同层的神经元的可解释性的分析结果。从图中可以看到,底层的神经元可解释性较好,高层的神经元通常会看到更多的信息,其激活条件就更为抽象。
利用GPT-4来对GPT-2中的神经元进行解释,最终得到平均Explaination Score为0.15,虽然这个分数看上去很低,但是与人类亲自出马的结果0.18相比较,还算不错,换而言之,大多数神经元都没有办法很好的解释。
在这里插入图片描述

方法小结

  1. 先找到一个我们想要解释的模型
  2. 吃不同的句子,得到某个神经元的激活分数
  3. 将上一步的结果输入到解释模型,得到某个神经元的作用解释
  4. 将得到解释输入到模拟模型,评判解释结果是否正确

在这里插入图片描述
注意:以上3个模型可以不是同一个模型,也可以不是GPT-4

整体评估

虽然前面是通过单个神经元的激活分数对神经元的作用作了预测,但是从整体上来看,一个模型包含了很多个神经元,每个神经元的重要程度是不一样的,有的神经元比较重要,甚至会影响模型的输出,有的则是摸鱼的存在。因此,有必要从整个模型输出来整体评估神经元的作用。思路如下:
先确定我们要解释的模型:
在这里插入图片描述
然后用整个GPT-4模型替换其中某一个神经元:
在这里插入图片描述
然后考查被替换后的模型的输出是否会有变化,或者说考查其输出的变化程度。其结果如下:
在这里插入图片描述
横轴是GPT-4扮演的单个神经元与原模型中单个神经元的输出差异
纵轴代表替换后模型的整体输出与原模型的差异
可以看到两个变量之间是呈正相关的关系,说明研究个体就行,对整体输出的影响不大。

缺点与改进

在测试被解释模型的某个神经元的时候,需要输入大量的句子或文本:
在这里插入图片描述
但是大多数句子可能不会激活被解释模型的某个神经元,因此,这里要将没有激活效果的句子剔除。就好比有100种新药对小白鼠进行测试,小白鼠对其中90种药根本没有反应,则没有必要去研究这些无效药,而要将重点放在有药效的10种药上。否则无论激活与否都做为输入丢进GPT-4是不现实的,数据量太大,前面也提到,就算有激活效果的句子,其中无激活效果的词也会被过滤掉。这样的做法会带来一个问题,例如:
在这里插入图片描述
GPT-4比较倾向比较General的解释,因此对这个神经元的激活解释为带有:“all”这个单词,但实际上应该是“not all”才对。
改进方法:
将GPT-4生成的解释丢进GPT-4,让其生成更多类似的语料,这些语料可以用来检测之前生成的解释对不对,例如上面的例子可以有以下Prompt:
The task format is as follows, description .::<answer>example sentence that fits that description</answer>
This task has exactly 10 answer(s) each enclosed in <answer></answer> tags.
Remember, the answer is always at least one full sentence, not just a word or a phrase.
the term “all” along with related contextual phrases.::
GPT-4生成的语料如下:

<answer>Everyone is excited about the event.</answer>
<answer>All the students attended the lecture.</answer>
<answer>She managed to read all the books on the list.</answer>
<answer>They invited all their friends to the party.</answer>
<answer>All the employees received a bonus this year.</answer>
<answer>He finished all his chores before going out.</answer>
<answer>All the ingredients were mixed together in a bowl.</answer>
<answer>All the lights in the house were turned off.</answer>

改进后的结果如下:
在这里插入图片描述
最后一列效果最后,前一列revision_rand是使用随机句子来检测,虽然随机找来的句子不一定适用于检测当前神经元,但聊胜于无。

其他槽点

1.目标质疑:解释单一神经元是否有意义?因为有可能是多个神经元协同合作来完成某个功能(原文有做这方面的尝试);神经元的功能能用语言来描述吗?有些神经元的功能非常抽象(尤其是接近输出层),很可能其功能无法用语言进行描述。
2.方法质疑:如果模拟模型很烂,就算解释模型生成的神经元解释很好,但是模拟模型无法很好的模拟出该神经元的功能;解释模型和模拟模型可能会串通,使用暗语导致Explaination Score虚高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1520734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

凝思操作系统离线安装mysql和node

PS&#xff1a;下面这就是国产凝思的界面,测试版本是V6.0.80&#xff0c;第一次听说这种系统&#xff0c;于是去官网下载部署包&#xff0c;下面是地址 注意:这个系统如果没有激活&#xff0c;ip都不会有&#xff0c;这样文件都不能传到服务器&#xff0c;xshell这些工具都连不…

java-ssm-jsp基于java的信访管理系统的设计与实现

java-ssm-jsp基于java的信访管理系统的设计与实现 获取源码——》公主号&#xff1a;计算机专业毕设大全 获取源码——》公主号&#xff1a;计算机专业毕设大全

双线性插值缩放算法原理以及matlab与verilog的实现(二)

系列文章目录 双线性插值缩放算法原理以及matlab与verilog的实现&#xff08;一&#xff09; 文章目录 系列文章目录前言一、前提回顾二、FPGA实现步骤2.1 找到源图像四个像素点求目标像素点2.2 FPGA实现步骤2.3 总体框架2.4 ROM缓存模块2.5 VGA模块2.6 双线性算法模块 三、下…

《Learning Hierarchical Modular Networks for Video Captioning》论文笔记

论文信息 原文链接&#xff1a; Learning Hierarchical Modular Networks for Video Captioning | IEEE Journals & Magazine | IEEE Xplore 原文代码 GitHub - MarcusNerva/HMN: [CVPR2022] Official code for Hierarchical Modular Network for Video Captioning. Ou…

C#,图论与图算法,双连通图(Biconnected Components of Graph)的算法与源代码

1 双连通图(Biconnected Components of Graph) 如果任意两个顶点之间有两条顶点不相交的路径,则无向图称为双连通图。在双连通图中,有一个通过任意两个顶点的简单循环。 按照约定,由边连接的两个节点构成双连通图,但这并不验证上述属性。对于具有两个以上顶点的图,必须…

原生微信小程序代码转uniapp代码 插件

一、安装依赖 npm install miniprogram-to-uniapp -g 继续在命令行里&#xff0c;运行【 wtu -V 】&#xff0c;查看版本号&#xff0c;执行结果如下&#xff1a; 二、使用插件 wtu -i "这里写你的微信小程序项目路径" 如&#xff1a;【wtu -i "D:\Desktop\…

【PyTorch】基础学习:在Pycharm等IDE中打印或查看Pytorch版本信息

【PyTorch】基础学习&#xff1a;在Pycharm等IDE中打印或查看Pytorch版本信息 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

【C++】实现红黑树

目录 一、认识红黑树1.1 概念1.2 定义 二、实现红黑树2.1 插入2.2 与AVL树对比 一、认识红黑树 1.1 概念 红黑树是一个二叉搜索树&#xff0c;与AVL树相比&#xff0c;红黑树不再使用平衡因子来控制树的左右子树高度差&#xff0c;而是用颜色来控制平衡&#xff0c;颜色为红色…

52 硬中断的实现

前言 呵呵 中断机制 也是内核中很常见的机制了 中断机制是现代计算机系统中的基本机制之一&#xff0c;它在系统中起着通信网络的作用&#xff0c;以协调系统对各种外部事件的响应和处理&#xff0c;中断是实现多道程序设计的必要条件&#xff0c;中断是CPU 对系统发生的某个…

C#,入门教程(27)——应用程序(Application)的基础知识

上一篇: C#,入门教程(26)——数据的基本概念与使用方法https://blog.csdn.net/beijinghorn/article/details/124952589 一、什么是应用程序 Application? 应用程序是编程的结果。一般把代码经过编译(等)过程,最终形成的可执行 或 可再用 的文件称为应用程序。可执行文…

cool 中的Midway ----node.js的TypeORM的使用

1.介绍 TypeORM | Midway TypeORM 是 node.js 现有社区最成熟的对象关系映射器&#xff08;ORM &#xff09;。本文介绍如何在 Midway 中使用 TypeORM 相关信息&#xff1a; 描述可用于标准项目✅可用于 Serverless✅可用于一体化✅包含独立主框架❌包含独立日志❌ 和老写…

Docker入门一(Docker介绍、Docker整体结构、Docker安装、镜像、容器、Docker的容器与镜像)

文章目录 一、Docker介绍1.什么是虚拟化2.虚拟化模块3.docker是什么4.docker平台介绍5.为什么使用docker6.docker主要解决的问题 二、docker整体结构1.Docker引擎介绍&#xff08;Docker Engine&#xff09;2.Docker结构概览介绍3.Docker底层技术 三、docker安装1.Docker-CE和D…

【java开发者工具】IDEA(java编程语言开发的集成环境)带你了解背后故事与基础操作指南

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;橘橙黄又青-CSDN博客 1.&#x1f34e; IDEA介绍 IDEA 全称 IntelliJ IDEA&#xff0c;是java编程语言的集成开…

202109青少年软件编程(图形化) 等级考试试卷(二级)

第1题:【 单选题】 执行下图所示程序, 舞台上的角色?( ) A:在 1 秒内滑行到随机位置 B:不断地重复滑行到随机位置 C:只有按下空格键的时候, 才会滑行到随机位置 D:只有按下空格键以外键的时候, 才会滑行到随机位置 【正确答案】: C 【试题解析】 : 第2题:【 单…

力扣简单串题:转换成小写字母

char* toLowerCase(char* s) {if(sNULL){return NULL;}for(int x0;x<strlen(s);x){if(s[x]>A&&s[x]<Z){s[x]s[x]-Aa;}}return s; }

高速电路顶级会议DesignCon 2021年会议总结和论文资料分享

DesignCon2021基本介绍 DesignCon 2021是一个涉及设计、创新和技术的年度会议&#xff0c;于2021年在美国加利福尼亚州举行。以下是该会议的一些重要主题和亮点&#xff1a; 人工智能和机器学习&#xff1a;会议探讨了人工智能和机器学习如何改变设计过程&#xff0c;以及设计…

二,几何相交---4,BO算法---(3)数据结构

数据结构分两块&#xff0c;一个是某一时间状态的局部相交线段。一个是事件队列&#xff0c;是某一时刻局部相交线段的集合。

WRF模型运行教程(ububtu系统)--III.运行WRF模型(官网案例)

零、创建DATA目录 # 1.创建一个DATA目录用于存放数据&#xff08;一般为fnl数据&#xff0c;放在Build_WRF目录下&#xff09;。 mkdir DATA # 2.进入 DATA cd DATA 一、WPS预处理 在模拟之前先确定模拟域&#xff08;即模拟范围&#xff09;,并进行数据预处理&#xff08…

防范服务器被攻击:查询IP地址的重要性与方法

在当今数字化时代&#xff0c;服务器扮演着重要的角色&#xff0c;为企业、组织和个人提供各种网络服务。然而&#xff0c;服务器也成为了网络攻击者的目标之一&#xff0c;可能面临各种安全威胁&#xff0c;例如DDoS攻击、恶意软件攻击、数据泄露等。为了有效地防范服务器被攻…

2024.3.11 训练记录(14)

继续补题 文章目录 ICPC 2018青岛I Soldier GameICPC 2018青岛K Airdrop ICPC 2018青岛I Soldier Game 题目链接 线段树 果然稍微复杂一点的线段树就很难实现啊&#xff0c;不看题解根本没反应过来是线段树 struct Node {int l, r, lb, rb, nb, b; } tr[N * 4];其中&#x…