初始化项目,由ModelHub XC社区提供模型
Model: ZhipuAI/LongWriter-glm4-9b Source: Original Platform
This commit is contained in:
37
.gitattributes
vendored
Normal file
37
.gitattributes
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bin.* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.model filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.db* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ark* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
|
||||||
|
**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gguf* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ggml filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.llamafile* filter=lfs diff=lfs merge=lfs -text
|
||||||
79
README.md
Normal file
79
README.md
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
---
|
||||||
|
language:
|
||||||
|
- en
|
||||||
|
- zh
|
||||||
|
library_name: transformers
|
||||||
|
tags:
|
||||||
|
- Long Context
|
||||||
|
- chatglm
|
||||||
|
- llama
|
||||||
|
datasets:
|
||||||
|
- THUDM/LongWriter-6k
|
||||||
|
pipeline_tag: text-generation
|
||||||
|
---
|
||||||
|
# LongWriter-glm4-9b
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
🤗 <a href="https://huggingface.co/datasets/THUDM/LongWriter-6k" target="_blank">[LongWriter Dataset] </a> • 💻 <a href="https://github.com/THUDM/LongWriter" target="_blank">[Github Repo]</a> • 📃 <a href="https://arxiv.org/abs/2408.07055" target="_blank">[LongWriter Paper]</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
LongWriter-glm4-9b is trained based on [glm-4-9b](https://huggingface.co/THUDM/glm-4-9b), and is capable of generating 10,000+ words at once.
|
||||||
|
|
||||||
|
Environment: Same environment requirement as [glm-4-9b-chat](https://huggingface.co/THUDM/glm-4-9b-chat) (`transformers>=4.43.0`).
|
||||||
|
|
||||||
|
A simple demo for deployment of the model:
|
||||||
|
```python
|
||||||
|
from transformers import AutoTokenizer, AutoModelForCausalLM
|
||||||
|
import torch
|
||||||
|
tokenizer = AutoTokenizer.from_pretrained("THUDM/LongWriter-glm4-9b", trust_remote_code=True)
|
||||||
|
model = AutoModelForCausalLM.from_pretrained("THUDM/LongWriter-glm4-9b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto")
|
||||||
|
model = model.eval()
|
||||||
|
query = "Write a 10000-word China travel guide"
|
||||||
|
response, history = model.chat(tokenizer, query, history=[], max_new_tokens=32768, temperature=0.5)
|
||||||
|
print(response)
|
||||||
|
```
|
||||||
|
You can also deploy the model with [vllm](https://github.com/vllm-project/vllm), which allows 10,000+ words generation within a minute. Here is an example code:
|
||||||
|
```python
|
||||||
|
from vllm import LLM, SamplingParams
|
||||||
|
model = LLM(
|
||||||
|
model= "THUDM/LongWriter-glm4-9b",
|
||||||
|
dtype="auto",
|
||||||
|
trust_remote_code=True,
|
||||||
|
tensor_parallel_size=1,
|
||||||
|
max_model_len=32768,
|
||||||
|
gpu_memory_utilization=1,
|
||||||
|
)
|
||||||
|
tokenizer = model.get_tokenizer()
|
||||||
|
stop_token_ids = [tokenizer.eos_token_id, tokenizer.get_command("<|user|>"), tokenizer.get_command("<|observation|>")]
|
||||||
|
generation_params = SamplingParams(
|
||||||
|
temperature=0.5,
|
||||||
|
top_p=0.8,
|
||||||
|
top_k=50,
|
||||||
|
max_tokens=32768,
|
||||||
|
repetition_penalty=1,
|
||||||
|
stop_token_ids=stop_token_ids
|
||||||
|
)
|
||||||
|
query = "Write a 10000-word China travel guide"
|
||||||
|
input_ids = tokenizer.build_chat_input(query, history=[], role='user').input_ids[0].tolist()
|
||||||
|
outputs = model.generate(
|
||||||
|
sampling_params=generation_params,
|
||||||
|
prompt_token_ids=[input_ids],
|
||||||
|
)
|
||||||
|
output = outputs[0]
|
||||||
|
print(output.outputs[0].text)
|
||||||
|
```
|
||||||
|
|
||||||
|
License: [glm-4-9b License](https://huggingface.co/THUDM/glm-4-9b-chat/blob/main/LICENSE)
|
||||||
|
|
||||||
|
## Citation
|
||||||
|
|
||||||
|
If you find our work useful, please consider citing LongWriter:
|
||||||
|
|
||||||
|
```
|
||||||
|
@article{bai2024longwriter,
|
||||||
|
title={LongWriter: Unleashing 10,000+ Word Generation from Long Context LLMs},
|
||||||
|
author={Yushi Bai and Jiajie Zhang and Xin Lv and Linzhi Zheng and Siqi Zhu and Lei Hou and Yuxiao Dong and Jie Tang and Juanzi Li},
|
||||||
|
journal={arXiv preprint arXiv:2408.07055},
|
||||||
|
year={2024}
|
||||||
|
}
|
||||||
|
```
|
||||||
51
config.json
Normal file
51
config.json
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
"_name_or_path": "THUDM/LongWriter-glm4-9b",
|
||||||
|
"add_bias_linear": false,
|
||||||
|
"add_qkv_bias": true,
|
||||||
|
"apply_query_key_layer_scaling": true,
|
||||||
|
"apply_residual_connection_post_layernorm": false,
|
||||||
|
"architectures": [
|
||||||
|
"ChatGLMForConditionalGeneration"
|
||||||
|
],
|
||||||
|
"attention_dropout": 0.0,
|
||||||
|
"attention_softmax_in_fp32": true,
|
||||||
|
"attn_implementation": "sdpa",
|
||||||
|
"auto_map": {
|
||||||
|
"AutoConfig": "configuration_chatglm.ChatGLMConfig",
|
||||||
|
"AutoModel": "modeling_chatglm.ChatGLMForConditionalGeneration",
|
||||||
|
"AutoModelForCausalLM": "modeling_chatglm.ChatGLMForConditionalGeneration",
|
||||||
|
"AutoModelForSeq2SeqLM": "modeling_chatglm.ChatGLMForConditionalGeneration",
|
||||||
|
"AutoModelForSequenceClassification": "modeling_chatglm.ChatGLMForSequenceClassification"
|
||||||
|
},
|
||||||
|
"bias_dropout_fusion": true,
|
||||||
|
"classifier_dropout": null,
|
||||||
|
"eos_token_id": [
|
||||||
|
151329,
|
||||||
|
151336,
|
||||||
|
151338
|
||||||
|
],
|
||||||
|
"ffn_hidden_size": 13696,
|
||||||
|
"fp32_residual_connection": false,
|
||||||
|
"hidden_dropout": 0.0,
|
||||||
|
"hidden_size": 4096,
|
||||||
|
"kv_channels": 128,
|
||||||
|
"layernorm_epsilon": 1.5625e-07,
|
||||||
|
"model_type": "chatglm",
|
||||||
|
"multi_query_attention": true,
|
||||||
|
"multi_query_group_num": 2,
|
||||||
|
"num_attention_heads": 32,
|
||||||
|
"num_hidden_layers": 40,
|
||||||
|
"num_layers": 40,
|
||||||
|
"original_rope": true,
|
||||||
|
"pad_token_id": 151329,
|
||||||
|
"padded_vocab_size": 151552,
|
||||||
|
"post_layer_norm": true,
|
||||||
|
"rmsnorm": true,
|
||||||
|
"rope_ratio": 500,
|
||||||
|
"seq_length": 1048576,
|
||||||
|
"tie_word_embeddings": false,
|
||||||
|
"torch_dtype": "bfloat16",
|
||||||
|
"transformers_version": "4.43.0",
|
||||||
|
"use_cache": true,
|
||||||
|
"vocab_size": 151552
|
||||||
|
}
|
||||||
58
configuration_chatglm.py
Normal file
58
configuration_chatglm.py
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
from transformers import PretrainedConfig
|
||||||
|
|
||||||
|
|
||||||
|
class ChatGLMConfig(PretrainedConfig):
|
||||||
|
model_type = "chatglm"
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
num_layers=28,
|
||||||
|
padded_vocab_size=65024,
|
||||||
|
hidden_size=4096,
|
||||||
|
ffn_hidden_size=13696,
|
||||||
|
kv_channels=128,
|
||||||
|
num_attention_heads=32,
|
||||||
|
seq_length=2048,
|
||||||
|
hidden_dropout=0.0,
|
||||||
|
classifier_dropout=None,
|
||||||
|
attention_dropout=0.0,
|
||||||
|
layernorm_epsilon=1e-5,
|
||||||
|
rmsnorm=True,
|
||||||
|
apply_residual_connection_post_layernorm=False,
|
||||||
|
post_layer_norm=True,
|
||||||
|
add_bias_linear=False,
|
||||||
|
add_qkv_bias=False,
|
||||||
|
bias_dropout_fusion=True,
|
||||||
|
multi_query_attention=False,
|
||||||
|
multi_query_group_num=1,
|
||||||
|
rope_ratio=1,
|
||||||
|
apply_query_key_layer_scaling=True,
|
||||||
|
attention_softmax_in_fp32=True,
|
||||||
|
fp32_residual_connection=False,
|
||||||
|
**kwargs
|
||||||
|
):
|
||||||
|
self.num_layers = num_layers
|
||||||
|
self.vocab_size = padded_vocab_size
|
||||||
|
self.padded_vocab_size = padded_vocab_size
|
||||||
|
self.hidden_size = hidden_size
|
||||||
|
self.ffn_hidden_size = ffn_hidden_size
|
||||||
|
self.kv_channels = kv_channels
|
||||||
|
self.num_attention_heads = num_attention_heads
|
||||||
|
self.seq_length = seq_length
|
||||||
|
self.hidden_dropout = hidden_dropout
|
||||||
|
self.classifier_dropout = classifier_dropout
|
||||||
|
self.attention_dropout = attention_dropout
|
||||||
|
self.layernorm_epsilon = layernorm_epsilon
|
||||||
|
self.rmsnorm = rmsnorm
|
||||||
|
self.apply_residual_connection_post_layernorm = apply_residual_connection_post_layernorm
|
||||||
|
self.post_layer_norm = post_layer_norm
|
||||||
|
self.add_bias_linear = add_bias_linear
|
||||||
|
self.add_qkv_bias = add_qkv_bias
|
||||||
|
self.bias_dropout_fusion = bias_dropout_fusion
|
||||||
|
self.multi_query_attention = multi_query_attention
|
||||||
|
self.multi_query_group_num = multi_query_group_num
|
||||||
|
self.rope_ratio = rope_ratio
|
||||||
|
self.apply_query_key_layer_scaling = apply_query_key_layer_scaling
|
||||||
|
self.attention_softmax_in_fp32 = attention_softmax_in_fp32
|
||||||
|
self.fp32_residual_connection = fp32_residual_connection
|
||||||
|
super().__init__(**kwargs)
|
||||||
10
generation_config.json
Normal file
10
generation_config.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"_from_model_config": true,
|
||||||
|
"eos_token_id": [
|
||||||
|
151329,
|
||||||
|
151336,
|
||||||
|
151338
|
||||||
|
],
|
||||||
|
"pad_token_id": 151329,
|
||||||
|
"transformers_version": "4.43.0"
|
||||||
|
}
|
||||||
3
model-00001-of-00004.safetensors
Normal file
3
model-00001-of-00004.safetensors
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:38fcd3e38c291c7b63f7c784de99acf2008ed2b9813dc6cb69c3f5e497dab001
|
||||||
|
size 4984147224
|
||||||
3
model-00002-of-00004.safetensors
Normal file
3
model-00002-of-00004.safetensors
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5d4f93dc73feb92a370018365f84dfe9fc0e368576f6f366c8eb5d2736967676
|
||||||
|
size 4895071360
|
||||||
3
model-00003-of-00004.safetensors
Normal file
3
model-00003-of-00004.safetensors
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:9b3364e4b4f21a8dd4cce49b92cf0749f2d87d4ebcdb8eb96f5b576b7bc9ea3e
|
||||||
|
size 4895071384
|
||||||
3
model-00004-of-00004.safetensors
Normal file
3
model-00004-of-00004.safetensors
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:a703a6e77ec1fceca638c89c82901283e5a384313c50c842da9068b3a6e135aa
|
||||||
|
size 4025651256
|
||||||
291
model.safetensors.index.json
Normal file
291
model.safetensors.index.json
Normal file
@@ -0,0 +1,291 @@
|
|||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"total_size": 18799902784
|
||||||
|
},
|
||||||
|
"weight_map": {
|
||||||
|
"transformer.embedding.word_embeddings.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.final_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.0.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.0.mlp.dense_4h_to_h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.0.mlp.dense_h_to_4h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.0.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.0.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.0.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.0.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.1.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.1.mlp.dense_4h_to_h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.1.mlp.dense_h_to_4h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.1.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.1.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.1.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.1.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.10.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.10.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.10.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.10.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.10.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.10.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.10.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.11.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.11.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.11.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.11.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.11.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.11.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.11.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.12.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.12.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.12.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.12.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.12.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.12.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.12.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.13.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.13.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.13.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.13.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.13.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.13.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.13.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.14.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.14.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.14.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.14.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.14.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.14.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.14.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.15.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.15.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.15.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.15.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.15.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.15.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.15.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.16.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.16.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.16.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.16.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.16.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.16.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.16.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.17.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.17.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.17.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.17.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.17.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.17.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.17.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.18.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.18.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.18.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.18.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.18.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.18.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.18.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.19.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.19.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.19.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.19.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.19.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.19.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.19.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.2.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.2.mlp.dense_4h_to_h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.2.mlp.dense_h_to_4h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.2.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.2.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.2.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.2.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.20.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.20.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.20.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.20.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.20.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.20.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.20.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.21.input_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.21.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.21.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.21.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.21.self_attention.dense.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.21.self_attention.query_key_value.bias": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.21.self_attention.query_key_value.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.22.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.22.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.22.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.22.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.22.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.22.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.22.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.23.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.23.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.23.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.23.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.23.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.23.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.23.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.24.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.24.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.24.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.24.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.24.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.24.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.24.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.25.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.25.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.25.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.25.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.25.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.25.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.25.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.26.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.26.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.26.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.26.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.26.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.26.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.26.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.27.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.27.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.27.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.27.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.27.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.27.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.27.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.28.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.28.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.28.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.28.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.28.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.28.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.28.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.29.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.29.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.29.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.29.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.29.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.29.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.29.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.3.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.3.mlp.dense_4h_to_h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.3.mlp.dense_h_to_4h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.3.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.3.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.3.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.3.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.30.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.30.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.30.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.30.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.30.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.30.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.30.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.31.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.31.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.31.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.31.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.31.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.31.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.31.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.32.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.32.mlp.dense_4h_to_h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.32.mlp.dense_h_to_4h.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.32.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.32.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.32.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.32.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.33.input_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.33.mlp.dense_4h_to_h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.33.mlp.dense_h_to_4h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.33.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.33.self_attention.dense.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.33.self_attention.query_key_value.bias": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.33.self_attention.query_key_value.weight": "model-00003-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.34.input_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.34.mlp.dense_4h_to_h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.34.mlp.dense_h_to_4h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.34.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.34.self_attention.dense.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.34.self_attention.query_key_value.bias": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.34.self_attention.query_key_value.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.35.input_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.35.mlp.dense_4h_to_h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.35.mlp.dense_h_to_4h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.35.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.35.self_attention.dense.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.35.self_attention.query_key_value.bias": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.35.self_attention.query_key_value.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.36.input_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.36.mlp.dense_4h_to_h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.36.mlp.dense_h_to_4h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.36.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.36.self_attention.dense.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.36.self_attention.query_key_value.bias": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.36.self_attention.query_key_value.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.37.input_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.37.mlp.dense_4h_to_h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.37.mlp.dense_h_to_4h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.37.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.37.self_attention.dense.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.37.self_attention.query_key_value.bias": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.37.self_attention.query_key_value.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.38.input_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.38.mlp.dense_4h_to_h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.38.mlp.dense_h_to_4h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.38.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.38.self_attention.dense.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.38.self_attention.query_key_value.bias": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.38.self_attention.query_key_value.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.39.input_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.39.mlp.dense_4h_to_h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.39.mlp.dense_h_to_4h.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.39.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.39.self_attention.dense.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.39.self_attention.query_key_value.bias": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.39.self_attention.query_key_value.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.4.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.4.mlp.dense_4h_to_h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.4.mlp.dense_h_to_4h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.4.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.4.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.4.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.4.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.5.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.5.mlp.dense_4h_to_h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.5.mlp.dense_h_to_4h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.5.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.5.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.5.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.5.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.6.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.6.mlp.dense_4h_to_h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.6.mlp.dense_h_to_4h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.6.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.6.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.6.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.6.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.7.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.7.mlp.dense_4h_to_h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.7.mlp.dense_h_to_4h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.7.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.7.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.7.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.7.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.8.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.8.mlp.dense_4h_to_h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.8.mlp.dense_h_to_4h.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.8.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.8.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.8.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.8.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.9.input_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.9.mlp.dense_4h_to_h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.9.mlp.dense_h_to_4h.weight": "model-00002-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.9.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.9.self_attention.dense.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.9.self_attention.query_key_value.bias": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.encoder.layers.9.self_attention.query_key_value.weight": "model-00001-of-00004.safetensors",
|
||||||
|
"transformer.output_layer.weight": "model-00004-of-00004.safetensors",
|
||||||
|
"transformer.rotary_pos_emb.inv_freq": "model-00001-of-00004.safetensors"
|
||||||
|
}
|
||||||
|
}
|
||||||
1064
modeling_chatglm.py
Normal file
1064
modeling_chatglm.py
Normal file
File diff suppressed because it is too large
Load Diff
3
special_tokens_map.json
Normal file
3
special_tokens_map.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"eos_token": "<|endoftext|>"
|
||||||
|
}
|
||||||
265
tokenization_chatglm.py
Normal file
265
tokenization_chatglm.py
Normal file
@@ -0,0 +1,265 @@
|
|||||||
|
import regex as re
|
||||||
|
import base64
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
import tiktoken
|
||||||
|
from transformers import PreTrainedTokenizer
|
||||||
|
from typing import List, Optional, Union, Dict
|
||||||
|
from transformers import PreTrainedTokenizer
|
||||||
|
from transformers.utils import logging, PaddingStrategy
|
||||||
|
from transformers.tokenization_utils_base import EncodedInput, BatchEncoding
|
||||||
|
|
||||||
|
|
||||||
|
class ChatGLM4Tokenizer(PreTrainedTokenizer):
|
||||||
|
vocab_files_names = {"vocab_file": "tokenizer.model"}
|
||||||
|
model_input_names = ["input_ids", "attention_mask", "position_ids"]
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
vocab_file,
|
||||||
|
padding_side="left",
|
||||||
|
clean_up_tokenization_spaces=False,
|
||||||
|
encode_special_tokens=False,
|
||||||
|
**kwargs
|
||||||
|
):
|
||||||
|
self.name = "GLMTokenizer"
|
||||||
|
self.vocab_file = vocab_file
|
||||||
|
pat_str = "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+"
|
||||||
|
self.pat_str = re.compile(pat_str)
|
||||||
|
self.encode_special_tokens = encode_special_tokens
|
||||||
|
|
||||||
|
mergeable_ranks = {}
|
||||||
|
with open(vocab_file) as f:
|
||||||
|
for line in f:
|
||||||
|
token, rank = line.strip().split()
|
||||||
|
rank = int(rank)
|
||||||
|
token = base64.b64decode(token)
|
||||||
|
mergeable_ranks[token] = rank
|
||||||
|
|
||||||
|
self.mergeable_ranks = mergeable_ranks
|
||||||
|
self.special_tokens = ["<|endoftext|>", "[MASK]", "[gMASK]", "[sMASK]", "<sop>", "<eop>", "<|system|>",
|
||||||
|
"<|user|>", "<|assistant|>", "<|observation|>", "<|begin_of_image|>", "<|end_of_image|>",
|
||||||
|
"<|begin_of_video|>", "<|end_of_video|>"]
|
||||||
|
|
||||||
|
self.special_tokens = {
|
||||||
|
token: idx for idx, token in enumerate(self.special_tokens, start=len(mergeable_ranks))
|
||||||
|
}
|
||||||
|
self.special_token_ids = {idx: token for token, idx in self.special_tokens.items()}
|
||||||
|
|
||||||
|
self.tokenizer = tiktoken.Encoding(
|
||||||
|
name="my_tokenizer",
|
||||||
|
pat_str=pat_str,
|
||||||
|
mergeable_ranks=mergeable_ranks,
|
||||||
|
special_tokens=self.special_tokens
|
||||||
|
)
|
||||||
|
self.decoder = {rank: token for token, rank in mergeable_ranks.items()}
|
||||||
|
self.n_words = len(self.decoder) + len(self.special_tokens)
|
||||||
|
|
||||||
|
super().__init__(
|
||||||
|
padding_side=padding_side,
|
||||||
|
clean_up_tokenization_spaces=clean_up_tokenization_spaces,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
def get_command(self, token):
|
||||||
|
assert token in self.special_tokens
|
||||||
|
return self.special_tokens[token]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def vocab_size(self):
|
||||||
|
return self.n_words
|
||||||
|
|
||||||
|
@property
|
||||||
|
def eos_token_id(self):
|
||||||
|
return self.get_command("<|endoftext|>")
|
||||||
|
|
||||||
|
def get_vocab(self):
|
||||||
|
""" Returns vocab as a dict """
|
||||||
|
vocab = {self._convert_id_to_token(i): i for i in range(self.vocab_size)}
|
||||||
|
vocab.update(self.added_tokens_encoder)
|
||||||
|
return vocab
|
||||||
|
|
||||||
|
def convert_tokens_to_string(self, tokens: List[Union[bytes, str]]) -> str:
|
||||||
|
"""
|
||||||
|
Converts a sequence of tokens in a single string.
|
||||||
|
"""
|
||||||
|
text = ""
|
||||||
|
temp = b""
|
||||||
|
for t in tokens:
|
||||||
|
if isinstance(t, str):
|
||||||
|
if temp:
|
||||||
|
text += temp.decode("utf-8", errors="replace")
|
||||||
|
temp = b""
|
||||||
|
text += t
|
||||||
|
elif isinstance(t, bytes):
|
||||||
|
temp += t
|
||||||
|
else:
|
||||||
|
raise TypeError("token should only be of type types or str")
|
||||||
|
if temp:
|
||||||
|
text += temp.decode("utf-8", errors="replace")
|
||||||
|
return text
|
||||||
|
|
||||||
|
def _tokenize(self, text, **kwargs):
|
||||||
|
tokens = []
|
||||||
|
if self.encode_special_tokens:
|
||||||
|
ids = self.tokenizer.encode(text, allowed_special="all")
|
||||||
|
else:
|
||||||
|
ids = self.tokenizer.encode(text, disallowed_special=())
|
||||||
|
for t in ids:
|
||||||
|
tokens.append(self.decoder[t])
|
||||||
|
return tokens
|
||||||
|
|
||||||
|
def _convert_token_to_id(self, token):
|
||||||
|
""" Converts a token (str) in an id using the vocab. """
|
||||||
|
if token in self.special_tokens:
|
||||||
|
return self.special_tokens[token]
|
||||||
|
return self.mergeable_ranks[token]
|
||||||
|
|
||||||
|
def _convert_id_to_token(self, index):
|
||||||
|
"""Converts an index (integer) in a token (str) using the vocab."""
|
||||||
|
if index in self.special_token_ids:
|
||||||
|
return self.special_token_ids[index]
|
||||||
|
return self.decoder[index]
|
||||||
|
|
||||||
|
def save_vocabulary(self, save_directory, filename_prefix=None):
|
||||||
|
"""
|
||||||
|
Save the vocabulary and special tokens file to a directory.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
save_directory (`str`):
|
||||||
|
The directory in which to save the vocabulary.
|
||||||
|
filename_prefix (`str`, *optional*):
|
||||||
|
An optional prefix to add to the named of the saved files.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
`Tuple(str)`: Paths to the files saved.
|
||||||
|
"""
|
||||||
|
if os.path.isdir(save_directory):
|
||||||
|
vocab_file = os.path.join(
|
||||||
|
save_directory, self.vocab_files_names["vocab_file"]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
vocab_file = save_directory
|
||||||
|
|
||||||
|
with open(self.vocab_file, 'rb') as fin:
|
||||||
|
proto_str = fin.read()
|
||||||
|
|
||||||
|
with open(vocab_file, "wb") as writer:
|
||||||
|
writer.write(proto_str)
|
||||||
|
|
||||||
|
return (vocab_file,)
|
||||||
|
|
||||||
|
def get_prefix_tokens(self):
|
||||||
|
prefix_tokens = [self.get_command("[gMASK]"), self.get_command("<sop>")]
|
||||||
|
return prefix_tokens
|
||||||
|
|
||||||
|
def build_single_message(self, role, metadata, message):
|
||||||
|
assert role in ["system", "user", "assistant", "observation"], role
|
||||||
|
role_tokens = [self.get_command(f"<|{role}|>")] + self.tokenizer.encode(f"{metadata}\n")
|
||||||
|
message_tokens = self.tokenizer.encode(message, disallowed_special=())
|
||||||
|
tokens = role_tokens + message_tokens
|
||||||
|
return tokens
|
||||||
|
|
||||||
|
def build_chat_input(self, query, history=None, role="user"):
|
||||||
|
if history is None:
|
||||||
|
history = []
|
||||||
|
input_ids = []
|
||||||
|
for item in history:
|
||||||
|
content = item["content"]
|
||||||
|
if item["role"] == "system" and "tools" in item:
|
||||||
|
for function in item["tools"]:
|
||||||
|
content += f"\n\n## {function['name']}\n\n{json.dumps(function, ensure_ascii=False, indent=4)}"
|
||||||
|
content += "\n在调用上述函数时,请使用 Json 格式表示调用的参数。"
|
||||||
|
input_ids.extend(self.build_single_message(item["role"], item.get("metadata", ""), content))
|
||||||
|
input_ids.extend(self.build_single_message(role, "", query))
|
||||||
|
input_ids.extend([self.get_command("<|assistant|>")])
|
||||||
|
return self.batch_encode_plus([input_ids], return_tensors="pt", is_split_into_words=True)
|
||||||
|
|
||||||
|
def build_inputs_with_special_tokens(
|
||||||
|
self, token_ids_0: List[int], token_ids_1: Optional[List[int]] = None
|
||||||
|
) -> List[int]:
|
||||||
|
"""
|
||||||
|
Build model inputs from a sequence or a pair of sequence for sequence classification tasks by concatenating and
|
||||||
|
adding special tokens. A BERT sequence has the following format:
|
||||||
|
|
||||||
|
- single sequence: `[CLS] X [SEP]`
|
||||||
|
- pair of sequences: `[CLS] A [SEP] B [SEP]`
|
||||||
|
|
||||||
|
Args:
|
||||||
|
token_ids_0 (`List[int]`):
|
||||||
|
List of IDs to which the special tokens will be added.
|
||||||
|
token_ids_1 (`List[int]`, *optional*):
|
||||||
|
Optional second list of IDs for sequence pairs.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
`List[int]`: List of [input IDs](../glossary#input-ids) with the appropriate special tokens.
|
||||||
|
"""
|
||||||
|
prefix_tokens = self.get_prefix_tokens()
|
||||||
|
token_ids_0 = prefix_tokens + token_ids_0
|
||||||
|
if token_ids_1 is not None:
|
||||||
|
token_ids_0 = token_ids_0 + token_ids_1 + [self.get_command("<eos>")]
|
||||||
|
return token_ids_0
|
||||||
|
|
||||||
|
def _pad(
|
||||||
|
self,
|
||||||
|
encoded_inputs: Union[Dict[str, EncodedInput], BatchEncoding],
|
||||||
|
max_length: Optional[int] = None,
|
||||||
|
padding_strategy: PaddingStrategy = PaddingStrategy.DO_NOT_PAD,
|
||||||
|
pad_to_multiple_of: Optional[int] = None,
|
||||||
|
return_attention_mask: Optional[bool] = None,
|
||||||
|
padding_side: Optional[str] = None,
|
||||||
|
) -> dict:
|
||||||
|
"""
|
||||||
|
Pad encoded inputs (on left/right and up to predefined length or max length in the batch)
|
||||||
|
|
||||||
|
Args:
|
||||||
|
encoded_inputs:
|
||||||
|
Dictionary of tokenized inputs (`List[int]`) or batch of tokenized inputs (`List[List[int]]`).
|
||||||
|
max_length: maximum length of the returned list and optionally padding length (see below).
|
||||||
|
Will truncate by taking into account the special tokens.
|
||||||
|
padding_strategy: PaddingStrategy to use for padding.
|
||||||
|
|
||||||
|
- PaddingStrategy.LONGEST Pad to the longest sequence in the batch
|
||||||
|
- PaddingStrategy.MAX_LENGTH: Pad to the max length (default)
|
||||||
|
- PaddingStrategy.DO_NOT_PAD: Do not pad
|
||||||
|
The tokenizer padding sides are defined in self.padding_side:
|
||||||
|
|
||||||
|
- 'left': pads on the left of the sequences
|
||||||
|
- 'right': pads on the right of the sequences
|
||||||
|
pad_to_multiple_of: (optional) Integer if set will pad the sequence to a multiple of the provided value.
|
||||||
|
This is especially useful to enable the use of Tensor Core on NVIDIA hardware with compute capability
|
||||||
|
`>= 7.5` (Volta).
|
||||||
|
return_attention_mask:
|
||||||
|
(optional) Set to False to avoid returning attention mask (default: set to model specifics)
|
||||||
|
"""
|
||||||
|
# Load from model defaults
|
||||||
|
assert self.padding_side == "left"
|
||||||
|
|
||||||
|
required_input = encoded_inputs[self.model_input_names[0]]
|
||||||
|
seq_length = len(required_input)
|
||||||
|
|
||||||
|
if padding_strategy == PaddingStrategy.LONGEST:
|
||||||
|
max_length = len(required_input)
|
||||||
|
|
||||||
|
if max_length is not None and pad_to_multiple_of is not None and (max_length % pad_to_multiple_of != 0):
|
||||||
|
max_length = ((max_length // pad_to_multiple_of) + 1) * pad_to_multiple_of
|
||||||
|
|
||||||
|
needs_to_be_padded = padding_strategy != PaddingStrategy.DO_NOT_PAD and len(required_input) != max_length
|
||||||
|
|
||||||
|
# Initialize attention mask if not present.
|
||||||
|
if "attention_mask" not in encoded_inputs:
|
||||||
|
encoded_inputs["attention_mask"] = [1] * seq_length
|
||||||
|
|
||||||
|
if "position_ids" not in encoded_inputs:
|
||||||
|
encoded_inputs["position_ids"] = list(range(seq_length))
|
||||||
|
|
||||||
|
if needs_to_be_padded:
|
||||||
|
difference = max_length - len(required_input)
|
||||||
|
|
||||||
|
if "attention_mask" in encoded_inputs:
|
||||||
|
encoded_inputs["attention_mask"] = [0] * difference + encoded_inputs["attention_mask"]
|
||||||
|
if "position_ids" in encoded_inputs:
|
||||||
|
encoded_inputs["position_ids"] = [0] * difference + encoded_inputs["position_ids"]
|
||||||
|
encoded_inputs[self.model_input_names[0]] = [self.pad_token_id] * difference + required_input
|
||||||
|
|
||||||
|
return encoded_inputs
|
||||||
3
tokenizer.model
Normal file
3
tokenizer.model
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5a493598071550244b2ee7f26118f3edec2150b9dfa967929a99052ac83fe716
|
||||||
|
size 2623634
|
||||||
26
tokenizer_config.json
Normal file
26
tokenizer_config.json
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"added_tokens_decoder": {
|
||||||
|
"151329": {
|
||||||
|
"content": "<|endoftext|>",
|
||||||
|
"lstrip": false,
|
||||||
|
"normalized": false,
|
||||||
|
"rstrip": false,
|
||||||
|
"single_word": false,
|
||||||
|
"special": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"auto_map": {
|
||||||
|
"AutoTokenizer": [
|
||||||
|
"tokenization_chatglm.ChatGLM4Tokenizer",
|
||||||
|
null
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"chat_template": "{% for message in messages %}{% if loop.first %}[gMASK]<sop><|{{ message['role'] }}|>\n {{ message['content'] }}{% else %}<|{{ message['role'] }}|>\n {{ message['content'] }}{% endif %}{% endfor %}{% if add_generation_prompt %}<|assistant|>{% endif %}",
|
||||||
|
"clean_up_tokenization_spaces": false,
|
||||||
|
"do_lower_case": false,
|
||||||
|
"eos_token": "<|endoftext|>",
|
||||||
|
"model_max_length": 1000000000000000019884624838656,
|
||||||
|
"padding_side": "left",
|
||||||
|
"remove_space": false,
|
||||||
|
"tokenizer_class": "ChatGLM4Tokenizer"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user