Spaces:
Sleeping
Sleeping
models : fix HF fine-tuned model conversion script (#157)
Browse files- models/convert-h5-to-ggml.py +27 -26
models/convert-h5-to-ggml.py
CHANGED
|
@@ -9,27 +9,28 @@ import numpy as np
|
|
| 9 |
|
| 10 |
from transformers import WhisperForConditionalGeneration
|
| 11 |
|
| 12 |
-
conv_map = {
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
|
|
|
| 33 |
|
| 34 |
# ref: https://github.com/openai/gpt-2/blob/master/src/encoder.py
|
| 35 |
def bytes_to_unicode():
|
|
@@ -95,12 +96,12 @@ fout.write(struct.pack("i", 0x67676d6c)) # magic: ggml in hex
|
|
| 95 |
fout.write(struct.pack("i", hparams["vocab_size"]))
|
| 96 |
fout.write(struct.pack("i", hparams["max_source_positions"]))
|
| 97 |
fout.write(struct.pack("i", hparams["d_model"]))
|
| 98 |
-
fout.write(struct.pack("i", hparams["decoder_attention_heads"]))
|
| 99 |
-
fout.write(struct.pack("i", hparams["decoder_layers"]))
|
| 100 |
-
fout.write(struct.pack("i", hparams["max_length"]))
|
| 101 |
-
fout.write(struct.pack("i", hparams["d_model"]))
|
| 102 |
fout.write(struct.pack("i", hparams["encoder_attention_heads"]))
|
| 103 |
fout.write(struct.pack("i", hparams["encoder_layers"]))
|
|
|
|
|
|
|
|
|
|
|
|
|
| 104 |
fout.write(struct.pack("i", hparams["num_mel_bins"]))
|
| 105 |
fout.write(struct.pack("i", use_f16))
|
| 106 |
|
|
@@ -139,7 +140,7 @@ for name in list_vars.keys():
|
|
| 139 |
|
| 140 |
if nn[1] == "layers":
|
| 141 |
nn[1] = "blocks"
|
| 142 |
-
if ".".join(nn[3:-1]) == "
|
| 143 |
mapped = "attn.key" if nn[0] == "encoder" else "cross_attn.key"
|
| 144 |
else:
|
| 145 |
mapped = conv_map[".".join(nn[3:-1])]
|
|
|
|
| 9 |
|
| 10 |
from transformers import WhisperForConditionalGeneration
|
| 11 |
|
| 12 |
+
conv_map = {
|
| 13 |
+
'self_attn.k_proj' : 'attn.key',
|
| 14 |
+
'self_attn.q_proj' : 'attn.query',
|
| 15 |
+
'self_attn.v_proj' : 'attn.value',
|
| 16 |
+
'self_attn.out_proj' : 'attn.out',
|
| 17 |
+
'self_attn_layer_norm' : 'attn_ln',
|
| 18 |
+
'encoder_attn.q_proj' : 'cross_attn.query',
|
| 19 |
+
'encoder_attn.v_proj' : 'cross_attn.value',
|
| 20 |
+
'encoder_attn.out_proj' : 'cross_attn.out',
|
| 21 |
+
'encoder_attn_layer_norm' : 'cross_attn_ln',
|
| 22 |
+
'fc1' : 'mlp.0',
|
| 23 |
+
'fc2' : 'mlp.2',
|
| 24 |
+
'final_layer_norm' : 'mlp_ln',
|
| 25 |
+
'encoder.layer_norm.bias' : 'encoder.ln_post.bias',
|
| 26 |
+
'encoder.layer_norm.weight' : 'encoder.ln_post.weight',
|
| 27 |
+
'encoder.embed_positions.weight': 'encoder.positional_embedding',
|
| 28 |
+
'decoder.layer_norm.bias' : 'decoder.ln.bias',
|
| 29 |
+
'decoder.layer_norm.weight' : 'decoder.ln.weight',
|
| 30 |
+
'decoder.embed_positions.weight': 'decoder.positional_embedding',
|
| 31 |
+
'decoder.embed_tokens.weight' : 'decoder.token_embedding.weight',
|
| 32 |
+
'proj_out.weight' : 'decoder.proj.weight',
|
| 33 |
+
}
|
| 34 |
|
| 35 |
# ref: https://github.com/openai/gpt-2/blob/master/src/encoder.py
|
| 36 |
def bytes_to_unicode():
|
|
|
|
| 96 |
fout.write(struct.pack("i", hparams["vocab_size"]))
|
| 97 |
fout.write(struct.pack("i", hparams["max_source_positions"]))
|
| 98 |
fout.write(struct.pack("i", hparams["d_model"]))
|
|
|
|
|
|
|
|
|
|
|
|
|
| 99 |
fout.write(struct.pack("i", hparams["encoder_attention_heads"]))
|
| 100 |
fout.write(struct.pack("i", hparams["encoder_layers"]))
|
| 101 |
+
fout.write(struct.pack("i", hparams["max_length"]))
|
| 102 |
+
fout.write(struct.pack("i", hparams["d_model"]))
|
| 103 |
+
fout.write(struct.pack("i", hparams["decoder_attention_heads"]))
|
| 104 |
+
fout.write(struct.pack("i", hparams["decoder_layers"]))
|
| 105 |
fout.write(struct.pack("i", hparams["num_mel_bins"]))
|
| 106 |
fout.write(struct.pack("i", use_f16))
|
| 107 |
|
|
|
|
| 140 |
|
| 141 |
if nn[1] == "layers":
|
| 142 |
nn[1] = "blocks"
|
| 143 |
+
if ".".join(nn[3:-1]) == "encoder_attn.k_proj":
|
| 144 |
mapped = "attn.key" if nn[0] == "encoder" else "cross_attn.key"
|
| 145 |
else:
|
| 146 |
mapped = conv_map[".".join(nn[3:-1])]
|