ModelScope中,这是另外千问的,直接取出qkv//3就完了。这个分别取出,但是维度又不同。这里的维度不同,是在哪里造成的?
在ModelScope中,维度不同可能是由于以下原因造成的:
模型参数的形状不匹配:在将模型参数分割成q、k、v部分时,可能使用了错误的索引或形状。请检查model_params[prefix+"c_attn."+suf]
的索引和形状是否正确。
分割操作的顺序错误:在将q、k、v部分拼接回原始形状之前,可能需要调整它们的顺序。请检查torch.cat([q_part, k_part, v_part], dim=0)
的操作顺序是否正确。
映射表(mapping)的tp_size设置不正确:在将qkv_part分割成多个部分时,可能使用了错误的tp_size。请检查dim[1] // mapping.tp_size
的计算结果是否正确。
为了解决这个问题,你可以尝试以下方法:
确保模型参数的形状与预期相符,可以通过打印model_params[prefix+"c_attn."+suf].shape
来查看。
检查分割操作的顺序,确保它们按照正确的顺序进行。
检查映射表(mapping)的tp_size设置,确保它与模型参数的形状相匹配。