MCPcopy Create free account
hub / github.com/OpenNMT/CTranslate2 / set_decoder

Method set_decoder

python/ctranslate2/converters/transformers.py:1401–1424  ·  view source on GitHub ↗
(self, spec, module)

Source from the content-addressed store, hash-verified

1399 config.unk_token = tokenizer.unk_token
1400
1401 def set_decoder(self, spec, module):
1402 spec.scale_embeddings = False
1403 self.set_embeddings(spec.embeddings, module.word_embeddings)
1404 self.set_layer_norm(spec.layernorm_embedding, module.word_embeddings_layernorm)
1405 self.set_layer_norm(spec.layer_norm, module.ln_f)
1406
1407 for layer_spec, layer in zip(spec.layer, module.h):
1408 self.set_layer_norm(
1409 layer_spec.self_attention.layer_norm, layer.input_layernorm
1410 )
1411 self.set_qkv_linear(
1412 layer_spec.self_attention.linear[0],
1413 layer.self_attention.query_key_value,
1414 layer.self_attention.num_heads,
1415 )
1416 self.set_linear(
1417 layer_spec.self_attention.linear[1], layer.self_attention.dense
1418 )
1419
1420 self.set_layer_norm(
1421 layer_spec.ffn.layer_norm, layer.post_attention_layernorm
1422 )
1423 self.set_linear(layer_spec.ffn.linear_0, layer.mlp.dense_h_to_4h)
1424 self.set_linear(layer_spec.ffn.linear_1, layer.mlp.dense_4h_to_h)
1425
1426 def set_qkv_linear(self, spec, module, num_heads):
1427 weight = module.weight

Callers 1

get_model_specMethod · 0.95

Calls 4

set_qkv_linearMethod · 0.95
set_embeddingsMethod · 0.45
set_layer_normMethod · 0.45
set_linearMethod · 0.45

Tested by

no test coverage detected