ModelScope跑千问int4模型,报这个错误是什么意思?
错误信息中提到了 sequence_output[0][:, -1, :],这是来自 BertModel 的 predict() 方法。该方法返回 BertEncoder 的输出,即 sequence_output,shape 为 [batch_size, sequence_length, hidden_size]。然后 predict() 方法会取出 sequence_output 的第 0 维,也就是 batch_size,并取出该维度的最后一个时间步的输出,也就是 sequence_output[0][:, -1, :]。
然而,在您的情况中,传入的 input_data 的 batch_size 为 0,也就是说只有一个样本。由于 sequence_output 的 batch_size 必须大于 0,所以就会报错。
要解决这个问题,您可以增加 input_data 的 batch_size,或者使用 BertModel 的 from_pretrained() 方法,直接从预训练模型中加载 BertModel 的权重,然后使用 predict() 方法进行预测。
希望以上信息对您有所帮助。