baichuan-inc / Baichuan2

A series of large language models developed by Baichuan Intelligent Technology
https://huggingface.co/baichuan-inc
Apache License 2.0
4.03k stars 286 forks source link

baichuan2-13b-4bits离线模型的quant_state存储类型错误 #367

Open sxndqc opened 5 months ago

sxndqc commented 5 months ago

以其中一个layer为例,存储的quant_state长这样:[tensor([177, 190, 199, ..., 30, 25, 26], dtype=torch.uint8), torch.Size([15360, 5120]), torch.float16, 64, [tensor(0.0704), [tensor([0.2030, 0.2773, 0.2030, ..., 0.0407, 0.0440, 0.0435]), tensor([-9.9297e-01, -9.7891e-01, -9.6484e-01, -9.5078e-01, -9.3672e-01, -9.2266e-01, -9.0859e-01, -8.9453e-01, -8.8047e-01, -8.6641e-01, -8.5234e-01, -8.3828e-01, -8.2422e-01, -8.1016e-01, -7.9609e-01, -7.8203e-01, -7.6797e-01, -7.5391e-01, -7.3984e-01, -7.2578e-01, -7.1172e-01, -6.9766e-01, -6.8359e-01, -6.6953e-01, -6.5547e-01, -6.4141e-01, -6.2734e-01, -6.1328e-01, -5.9922e-01, -5.8516e-01, -5.7109e-01, -5.5703e-01, -5.4297e-01, -5.2891e-01, -5.1484e-01, -5.0078e-01, -4.8672e-01, -4.7266e-01, -4.5859e-01, -4.4453e-01, -4.3047e-01, -4.1641e-01, -4.0234e-01, -3.8828e-01, -3.7422e-01, -3.6016e-01, -3.4609e-01, -3.3203e-01, -3.1797e-01, -3.0391e-01, -2.8984e-01, -2.7578e-01, -2.6172e-01, -2.4766e-01, -2.3359e-01, -2.1953e-01, -2.0547e-01, -1.9141e-01, -1.7734e-01, -1.6328e-01, -1.4922e-01, -1.3516e-01, -1.2109e-01, -1.0703e-01, -9.8594e-02, -9.5781e-02, -9.2969e-02, -9.0156e-02, -8.7344e-02, -8.4531e-02, -8.1719e-02, -7.8906e-02, -7.6094e-02, -7.3281e-02, -7.0469e-02, -6.7656e-02, -6.4844e-02, -6.2031e-02, -5.9219e-02, -5.6406e-02, -5.3594e-02, -5.0781e-02, -4.7969e-02, -4.5156e-02, -4.2344e-02, -3.9531e-02, -3.6719e-02, -3.3906e-02, -3.1094e-02, -2.8281e-02, -2.5469e-02, -2.2656e-02, -1.9844e-02, -1.7031e-02, -1.4219e-02, -1.1406e-02, -9.7187e-03, -9.1562e-03, -8.5938e-03, -8.0312e-03, -7.4687e-03, -6.9063e-03, -6.3437e-03, -5.7813e-03, -5.2188e-03, -4.6562e-03, -4.0937e-03, -3.5312e-03, -2.9687e-03, -2.4062e-03, -1.8438e-03, -1.2812e-03, -9.4375e-04, -8.3125e-04, -7.1875e-04, -6.0625e-04, -4.9375e-04, -3.8125e-04, -2.6875e-04, -1.5625e-04, -8.8750e-05, -6.6250e-05, -4.3750e-05, -2.1250e-05, -7.7500e-06, -3.2500e-06, -5.5000e-07, 0.0000e+00, 5.5000e-07, 3.2500e-06, 7.7500e-06, 2.1250e-05, 4.3750e-05, 6.6250e-05, 8.8750e-05, 1.5625e-04, 2.6875e-04, 3.8125e-04, 4.9375e-04, 6.0625e-04, 7.1875e-04, 8.3125e-04, 9.4375e-04, 1.2812e-03, 1.8438e-03, 2.4062e-03, 2.9687e-03, 3.5312e-03, 4.0937e-03, 4.6562e-03, 5.2188e-03, 5.7813e-03, 6.3437e-03, 6.9063e-03, 7.4687e-03, 8.0312e-03, 8.5938e-03, 9.1562e-03, 9.7187e-03, 1.1406e-02, 1.4219e-02, 1.7031e-02, 1.9844e-02, 2.2656e-02, 2.5469e-02, 2.8281e-02, 3.1094e-02, 3.3906e-02, 3.6719e-02, 3.9531e-02, 4.2344e-02, 4.5156e-02, 4.7969e-02, 5.0781e-02, 5.3594e-02, 5.6406e-02, 5.9219e-02, 6.2031e-02, 6.4844e-02, 6.7656e-02, 7.0469e-02, 7.3281e-02, 7.6094e-02, 7.8906e-02, 8.1719e-02, 8.4531e-02, 8.7344e-02, 9.0156e-02, 9.2969e-02, 9.5781e-02, 9.8594e-02, 1.0703e-01, 1.2109e-01, 1.3516e-01, 1.4922e-01, 1.6328e-01, 1.7734e-01, 1.9141e-01, 2.0547e-01, 2.1953e-01, 2.3359e-01, 2.4766e-01, 2.6172e-01, 2.7578e-01, 2.8984e-01, 3.0391e-01, 3.1797e-01, 3.3203e-01, 3.4609e-01, 3.6016e-01, 3.7422e-01, 3.8828e-01, 4.0234e-01, 4.1641e-01, 4.3047e-01, 4.4453e-01, 4.5859e-01, 4.7266e-01, 4.8672e-01, 5.0078e-01, 5.1484e-01, 5.2891e-01, 5.4297e-01, 5.5703e-01, 5.7109e-01, 5.8516e-01, 5.9922e-01, 6.1328e-01, 6.2734e-01, 6.4141e-01, 6.5547e-01, 6.6953e-01, 6.8359e-01, 6.9766e-01, 7.1172e-01, 7.2578e-01, 7.3984e-01, 7.5391e-01, 7.6797e-01, 7.8203e-01, 7.9609e-01, 8.1016e-01, 8.2422e-01, 8.3828e-01, 8.5234e-01, 8.6641e-01, 8.8047e-01, 8.9453e-01, 9.0859e-01, 9.2266e-01, 9.3672e-01, 9.5078e-01, 9.6484e-01, 9.7891e-01, 9.9297e-01, 1.0000e+00]), 256, False, torch.float32, None, None]], 'nf4', tensor([-1.0000, -0.6962, -0.5251, -0.3949, -0.2844, -0.1848, -0.0911, 0.0000, 0.0796, 0.1609, 0.2461, 0.3379, 0.4407, 0.5626, 0.7230, 1.0000])]

类型是一个list。但是用到bitsandbytes中要求是一个QuantState,导致读取错误。

sxndqc commented 5 months ago

0.41.0的bitsandbytes没有加载quant_state,返回是None

Zjie commented 4 months ago

我也遇到这个问题了,有解决方案么?