Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

求复现指导2.1 #14

Open
gaotongxue12138 opened this issue Jan 5, 2024 · 19 comments
Open

求复现指导2.1 #14

gaotongxue12138 opened this issue Jan 5, 2024 · 19 comments

Comments

@gaotongxue12138
Copy link

我在复现2.1的假说时,出现
截屏2024-01-05 17 10 51_副本

我将“归一化”操作注释掉后,可以看出结果是基本符合假说的,但是不归一化的话,就出现这个情况,请问有什么指导意见嘛

@gaotongxue12138
Copy link
Author

三条曲线按顺序分别对应着2.1的那三个量化分数。

@gaotongxue12138 gaotongxue12138 changed the title 复现结果问题 求复现指导2.1 Jan 5, 2024
@leanwang326
Copy link
Collaborator

啊这个不归一化的话,有几层curve2会很高,我们当时归一化也是为了更好的看出1/2/3的相对关系。主要的问题是,同层的attention的相对大小能反映模型这一层在干什么,但是不同层的话,因为我们这里的指标是平均saliency,是要关于涉及的(token_i,token_j)pair数取平均,由于curve_2的(token_i,token_j)pair数较小,它的值的上限能比别的大上不少,所以不同层之间还不大好比较

@leanwang326
Copy link
Collaborator

所以我们当时为了更好地展现规律做了归一化

@gaotongxue12138
Copy link
Author

上面那张图,是归一化之后的结果, curve2依然很高,不知道为什么,我并没改动归一化部分的代码

@leanwang326
Copy link
Collaborator

啊你是用的attention_attr_ana.ipynb吗

@leanwang326
Copy link
Collaborator

你指的归一化是attention_attr_ana.ipynb里proportions / proportions.sum(axis=0,keepdims=True)这个吗

@gaotongxue12138
Copy link
Author

我指的是attention_attr.py里get_proportion函数的归一化的操作

@gaotongxue12138
Copy link
Author

proportion1 = proportion1 / sum(class_poss) 
proportion2 = proportion2 / len(class_poss) 
proportion3 = proportion3 / sum3 

@leanwang326
Copy link
Collaborator

哦,我说的归一化是attention_attr_ana.ipynb里proportions / proportions.sum(axis=0,keepdims=True)这个,呃如果你用attention_attr_ana.ipynb画(代码里的results就是加载了attention_attr.py算出并存储的proportions)就是我说的结果,加这个归一化的原因就是我上面说的

@leanwang326
Copy link
Collaborator

proportion1 = proportion1 / sum(class_poss)
proportion2 = proportion2 / len(class_poss)
proportion3 = proportion3 / sum3
这个是为了取平均(除以(token_i,token_j)pair数,算出两个token间的平均saliency)

@gaotongxue12138
Copy link
Author

嗷嗷,明白了,我是直接把这几个proportion【i】画出来了,谢谢!!

@gaotongxue12138
Copy link
Author

proportion1 = proportion1 / sum(class_poss) proportion2 = proportion2 / len(class_poss) proportion3 = proportion3 / sum3 这个是为了取平均(除以(token_i,token_j)pair数,算出两个token间的平均saliency)

我想问下这里的(token_i,token_j)pair数,proportion1 除的不应该是 len(class_poss)*final_poss 吗?
多个上下文的句子不已经 整合到一个Sentence中了吗?

@leanwang326
Copy link
Collaborator

哦proportion 1算的是class_label 和在它之前的文本的交互

@gaotongxue12138
Copy link
Author

哦proportion 1算的是class_label 和在它之前的文本的交互

再次谢谢 明白了!

@exectrl
Copy link

exectrl commented May 28, 2024

哦proportion 1算的是class_label 和在它之前的文本的交互

还有个疑问:多个上下文的句子已经整合到一个Sentence中。请问class_label是对应其左边的所有文本,还是仅仅对应于该class_label左边的文本呢?

@leanwang326
Copy link
Collaborator

哦proportion 1算的是class_label 和在它之前的文本的交互

还有个疑问:多个上下文的句子已经整合到一个Sentence中。请问class_label是对应其左边的所有文本,还是仅仅对应于该class_label左边的文本呢?

我实现的时候按左边所有文本算了score,当时没细想,确实可能是对应于该label左边的更好点

@exectrl
Copy link

exectrl commented Jun 3, 2024

哦proportion 1算的是class_label 和在它之前的文本的交互

还有个疑问:多个上下文的句子已经整合到一个Sentence中。请问class_label是对应其左边的所有文本,还是仅仅对应于该class_label左边的文本呢?

我实现的时候按左边所有文本算了score,当时没细想,确实可能是对应于该label左边的更好点

感谢及时回复。还想请教一下:attentioner_for_attribution.py文件中的for attention_adapter in self.attention_adapters:
attention_adapter.register_input_ids(input_ids)这部分,是否有必要将input_ids注入到attention_adapter中?有何作用?我看后面好像也只是attentionermanger用到了input_ids这个属性。

@leanwang326
Copy link
Collaborator

哦proportion 1算的是class_label 和在它之前的文本的交互

还有个疑问:多个上下文的句子已经整合到一个Sentence中。请问class_label是对应其左边的所有文本,还是仅仅对应于该class_label左边的文本呢?

我实现的时候按左边所有文本算了score,当时没细想,确实可能是对应于该label左边的更好点

感谢及时回复。还想请教一下:attentioner_for_attribution.py文件中的for attention_adapter in self.attention_adapters: attention_adapter.register_input_ids(input_ids)这部分,是否有必要将input_ids注入到attention_adapter中?有何作用?我看后面好像也只是attentionermanger用到了input_ids这个属性。

应该确实不用,这儿我代码整理的时候忘记删了

@exectrl
Copy link

exectrl commented Jun 4, 2024

哦proportion 1算的是class_label 和在它之前的文本的交互

还有个疑问:多个上下文的句子已经整合到一个Sentence中。请问class_label是对应其左边的所有文本,还是仅仅对应于该class_label左边的文本呢?

我实现的时候按左边所有文本算了score,当时没细想,确实可能是对应于该label左边的更好点

感谢及时回复。还想请教一下:attentioner_for_attribution.py文件中的for attention_adapter in self.attention_adapters: attention_adapter.register_input_ids(input_ids)这部分,是否有必要将input_ids注入到attention_adapter中?有何作用?我看后面好像也只是attentionermanger用到了input_ids这个属性。

应该确实不用,这儿我代码整理的时候忘记删了

好的,感谢感谢。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants