RoFormer_pytorch
RoFormer_pytorch copied to clipboard
RoFormer V1 & V2 pytorch
Hi, I design a plug-in version of rotation position embeddings: ``` def apply_rotary(x, sinusoidal_pos): sin, cos = sinusoidal_pos x1, x2 = x[..., 0::2], x[..., 1::2] # 如果是旋转query key的话,下面这个直接cat就行,因为要进行矩阵乘法,最终会在这个维度求和。(只要保持query和key的最后一个dim的每一个位置对应上就可以) # torch.cat([x1...
我这边用3050 显卡生成30个近似句子需要1秒多,大家有加速的思路吗?
运行结果如下。['广州和深圳哪个好', '广州和深圳那个好?', '广州和深圳圳哪个好??', '广州和深圳市哪个好', '广州和深圳,哪个更好', '广州与深圳哪个好', '在广州和深圳,哪个好?', '广州和广州和深圳圳哪个好', '深圳和广州哪个好', '深圳和广州和广州哪个好', '广州和深圳哪个好?深圳圳和深圳圳哪个好', '广州和广州深圳哪个好好好', '广州和深圳圳比哪个好好', '深圳和广州那个好?深圳和深圳圳哪个好好', '深圳和广州好?', '深圳广州哪个好', '广州深圳和深圳圳,哪个比较好好好', '深圳和广州和广州州哪个好好', '广州与深圳比较广州州哪个好好好好好好好好好', '广州和深圳大学哪个好好']
直接用也没报错 from transformers import AutoTokenizer, RoFormerModel import torch tokenizer = AutoTokenizer.from_pretrained("junnyu/roformer_v2_chinese_char_base") model = RoFormerModel.from_pretrained("junnyu/roformer_v2_chinese_char_base") inputs = tokenizer("Hello, my dog is cute", return_tensors="pt") outputs = model(**inputs) last_hidden_states = outputs.last_hidden_state last_hidden_states 能这样用吗?...
https://github.com/JunnYu/RoFormer_pytorch/blob/447aa8f6e6ddec28e0cffb06eeb12f2d33fb2724/src/roformer/modeling_roformer.py#L1465 transformers模型的generate方法代码中,上文状态的参数名为past_key_values,不是past; 以transformers.GenerationMixin.sample方法为例,在其主循环while True中,在上一循环末尾会调用self._update_model_kwargs_for_generation 更新model_kwargs,此时更新进去的参数名为past_key_values;但到了下一循环调用self.prepare_inputs_for_generation时,又要从model_kwargs中取past参数,从而取不到,导致重复计算(基于更新了的input_ids重新算一遍上文状态),并且token_type_ids会一直取0,而不是预期的在生成第一个token时取0,此后一直取1。
有Roformer-sim微调的代码吗
AttributeError: 'RoFormerModel' object has no attribute 'create_extended_attention_mask_for_decoder'
AttributeError: 'RoFormerModel' object has no attribute 'create_extended_attention_mask_for_decoder'