Closed Cooperx521 closed 8 months ago
我觉得可以重写一下,重写一下也应该方便一些。我当时只是为了方便调试写成这样了(因为如果改modeling_llama的话,如果需要不同的重加权策略可能就得写出几个modeling_llama.py
嗯嗯,谢谢作者,是不是可以理解为你的代码复用性更强一些,很多模型都可以用,但是因为llama没有attn函数,所以重新写方便一些
@leanwang326 作者您好,我今天在修改代码的时候发现llama本身是有三种attention
LLAMA_ATTENTION_CLASSES = {
"eager": LlamaAttention,
"flash_attention_2": LlamaFlashAttention2,
"sdpa": LlamaSdpaAttention,
}
模型原本用的是FlashAttention,但是我看到FlashAttention里面接口比较复杂不太好直接reweighting,我想改成sdpa,但是不知道性能是否会受影响,所以想要向您请教一下怎么解决,想知道这三种对于性能是不是影响不大
用eager/sdpa大概不会有事,就是会慢一些吧(如果是说数值精度上的影响会不会导致一点性能差异的话,这个我没试过,不确定
嗯嗯,谢谢您的帮助!我仔细看了一下实现的功能应该是一样的,我直接用的eager,发现慢了一些,但是能跑起来了
eager
hello, 想请教一下最后您是使用了方法二改写了信息流套用在llama框架中吗? 没太懂layer.attn._attn在llama框架中应该对应什么,不知道是否可以解疑一下,谢谢.
eager
hello, 想请教一下最后您是使用了方法二改写了信息流套用在llama框架中吗? 没太懂layer.attn._attn在llama框架中应该对应什么,不知道是否可以解疑一下,谢谢.
最后是直接用register_hook解决了
eager
hello, 想请教一下最后您是使用了方法二改写了信息流套用在llama框架中吗? 没太懂layer.attn._attn在llama框架中应该对应什么,不知道是否可以解疑一下,谢谢.
最后是直接用register_hook解决了
hello~我是在modeling_llama里面直接修改的
eager
hello, 想请教一下最后您是使用了方法二改写了信息流套用在llama框架中吗? 没太懂layer.attn._attn在llama框架中应该对应什么,不知道是否可以解疑一下,谢谢.
最后是直接用register_hook解决了
hello~我是在modeling_llama里面直接修改的
谢谢! 我发现我的写法中显著性得分算出来,最后一个token对于它前面token的分数都为0,后来发现是梯度<sent_num,head_num,token_len,token_len>的最后一维中last token对应的那一行都是0,一时不知道为啥?想请教您的写法得到的梯度最后一行都是0嘛,我目前还没有解决出问题在哪里.
作者您好,我目前正在尝试去对llama2-7b做一些attention map的重加权,也就是类似的直接乘上一个系数,但是关于具体实现遇到一些问题,我现在正在想要尝试两种方式:1. 直接重写modeling_llama.py中的attention block,稍微改写attention forward计算,再去载入预训练参数。2. 套用类似于您代码中GPT2AttentionerManager的方案,先载入参数,再加attention_adapter,但是这里遇到一个问题,就是
这里我找了一下llama的框架好像没有这个函数 layer.attn._attn,想问一下怎么解决。 因为是代码小白,所以想请教一下您上面两种哪种更好或者更可行,不知道有什么潜在的问题