|
|
@ -155,15 +155,15 @@ for k, v in prefix_state_dict.items():
|
|
|
|
new_prefix_state_dict[k[len("transformer.prefix_encoder."):]] = v
|
|
|
|
new_prefix_state_dict[k[len("transformer.prefix_encoder."):]] = v
|
|
|
|
model.transformer.prefix_encoder.load_state_dict(new_prefix_state_dict)
|
|
|
|
model.transformer.prefix_encoder.load_state_dict(new_prefix_state_dict)
|
|
|
|
```
|
|
|
|
```
|
|
|
|
注意你可能需要将 `pre_seq_len` 改成你训练时的实际值。
|
|
|
|
注意你可能需要将 `pre_seq_len` 改成你训练时的实际值。如果你是[从本地加载模型的话](https://github.com/THUDM/ChatGLM-6B#%E4%BB%8E%E6%9C%AC%E5%9C%B0%E5%8A%A0%E8%BD%BD%E6%A8%A1%E5%9E%8B),需要将 `THUDM/chatglm-6b` 改成本地的模型路径(注意不是checkpoint路径)。
|
|
|
|
|
|
|
|
|
|
|
|
(2) 如果需要加载的是旧 Checkpoint(包含 ChatGLM-6B 以及 PrefixEncoder 参数),则直接加载整个 Checkpoint:
|
|
|
|
(2) 如果需要加载的是旧 Checkpoint(包含 ChatGLM-6B 以及 PrefixEncoder 参数),或者进行的全参数微调,则直接加载整个 Checkpoint:
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
```python
|
|
|
|
model = AutoModel.from_pretrained(CHECKPOINT_PATH, config=config, trust_remote_code=True)
|
|
|
|
model = AutoModel.from_pretrained(CHECKPOINT_PATH, config=config, trust_remote_code=True)
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
再进行量化即可使用:
|
|
|
|
之后根据需求可以进行量化,也可以直接使用:
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
```python
|
|
|
|
print(f"Quantized to 4 bit")
|
|
|
|
print(f"Quantized to 4 bit")
|
|
|
|