diff --git a/ir/artifacts/albert.json b/ir/artifacts/albert.json index 9807d6e73bcf4cdc8a88968529a92c133d7c032a..2ae78c0a13bee6fc71851cf0f95244b72e1fe3fa 100644 --- a/ir/artifacts/albert.json +++ b/ir/artifacts/albert.json @@ -62,7 +62,8 @@ { "attributes": { "embedding_dim": 128, - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/bamba.json b/ir/artifacts/bamba.json index b200f357388b6c802cf4d9e61586984372154ef1..ebece9f015345847e9a79efcca998de3463ca148 100644 --- a/ir/artifacts/bamba.json +++ b/ir/artifacts/bamba.json @@ -38,7 +38,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/bart.json b/ir/artifacts/bart.json index 101da0a96285df8b8efd744d8272cd0f731924bd..922335195811e21e8f1d17ccaf901e0843184502 100644 --- a/ir/artifacts/bart.json +++ b/ir/artifacts/bart.json @@ -45,7 +45,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "BartScaledWordEmbedding", "id": "shared", @@ -67,7 +68,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "BartScaledWordEmbedding", "id": "encoder.embed_tokens", @@ -108,7 +110,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "BartScaledWordEmbedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/bert.json b/ir/artifacts/bert.json index d9ece88909df6657e1aae9747b661f174577ff16..7da09b4da95ed6351cc5f0c7b62b4a9281294f63 100644 --- a/ir/artifacts/bert.json +++ b/ir/artifacts/bert.json @@ -63,7 +63,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/blenderbot.json b/ir/artifacts/blenderbot.json index 7f365c0acb2423e2fe5c4afbea05a41f4d9dd092..00561d2e85d6fb074a862d93c5698eb9d44a66e7 100644 --- a/ir/artifacts/blenderbot.json +++ b/ir/artifacts/blenderbot.json @@ -41,7 +41,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "BlenderbotScaledWordEmbedding", "id": "shared", @@ -63,7 +64,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "BlenderbotScaledWordEmbedding", "id": "encoder.embed_tokens", @@ -104,7 +106,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "BlenderbotScaledWordEmbedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/blip-2.json b/ir/artifacts/blip-2.json index 405dcfa3c6c8dbd0cb392e953c9059f2bd877ebd..d688dad2fb0057893ce797988a3800a504b7f7a4 100644 --- a/ir/artifacts/blip-2.json +++ b/ir/artifacts/blip-2.json @@ -5,6 +5,7 @@ "is_moe": false, "mixer": "attention", "positional": "learned", + "tie_word_embeddings": true, "towers": [ { "attention_variant": "MHA", @@ -175,7 +176,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "language_model.model.decoder.embed_tokens", diff --git a/ir/artifacts/blip.json b/ir/artifacts/blip.json index 43bd2e2fed2b1057443bedde41c58ea38769da14..85e9d5c8a7f73a1bc036d8b3bd307477b00ae4ba 100644 --- a/ir/artifacts/blip.json +++ b/ir/artifacts/blip.json @@ -85,7 +85,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "text_model.embeddings.word_embeddings", diff --git a/ir/artifacts/bloom.json b/ir/artifacts/bloom.json index 588f718f67bb1bf31b3bd44d615b9ef70d389308..04491b42e8b7d55e80d2bf140489262190fd9c49 100644 --- a/ir/artifacts/bloom.json +++ b/ir/artifacts/bloom.json @@ -40,7 +40,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "word_embeddings", diff --git a/ir/artifacts/camembert.json b/ir/artifacts/camembert.json index cb7b1ef450d82ef4b453d32df30bb5a63febf8ee..97b4b77a9b9d701e810ccacde03fb717dad0bdfd 100644 --- a/ir/artifacts/camembert.json +++ b/ir/artifacts/camembert.json @@ -61,7 +61,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/cohere.json b/ir/artifacts/cohere.json index 17669585fc3ec129bb528327d23e07c2bcd1c05e..d8976f40e6950d432226a23adcbc292cab6d65a6 100644 --- a/ir/artifacts/cohere.json +++ b/ir/artifacts/cohere.json @@ -40,7 +40,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/cohere2.json b/ir/artifacts/cohere2.json index d866cd9ba9db45938067c91eb00736c335715092..e2838b7a04b3772e8f1e79fd63fb2be51df91c53 100644 --- a/ir/artifacts/cohere2.json +++ b/ir/artifacts/cohere2.json @@ -83,7 +83,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/cohere_asr.json b/ir/artifacts/cohere_asr.json index 05fba57d8c44ae80230b3a173e1524bdfdbf017f..5f1094daec285a2c1b7a32e5ee49ac4761600ccf 100644 --- a/ir/artifacts/cohere_asr.json +++ b/ir/artifacts/cohere_asr.json @@ -124,7 +124,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/convbert.json b/ir/artifacts/convbert.json index 2cc687177a1c5ba5f010921296a3b80c4677ef6b..b2e081897f08dec48f7cbc530ef664678a41fe03 100644 --- a/ir/artifacts/convbert.json +++ b/ir/artifacts/convbert.json @@ -55,7 +55,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/cosmos3_omni.json b/ir/artifacts/cosmos3_omni.json index 85ae9341e81f1deafcbb396bb7679851c9109907..90c8d28316e587fe73af4a019baf8f718a1a74bd 100644 --- a/ir/artifacts/cosmos3_omni.json +++ b/ir/artifacts/cosmos3_omni.json @@ -135,7 +135,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/deberta-v2.json b/ir/artifacts/deberta-v2.json index ec0a0fc3345b5153e395a6bfb1fa8aec2f28a147..14fde552c2701485ecdf41502b32399dce788a0e 100644 --- a/ir/artifacts/deberta-v2.json +++ b/ir/artifacts/deberta-v2.json @@ -56,7 +56,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/deberta.json b/ir/artifacts/deberta.json index ea385b9f4ef829fd7b5481a4f22a4c38bfa15e7b..329f5b96a9a8816744d418c3050c3f4b3a13dacb 100644 --- a/ir/artifacts/deberta.json +++ b/ir/artifacts/deberta.json @@ -55,7 +55,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/deepseek_v2.json b/ir/artifacts/deepseek_v2.json index 190bb6cece76addbbbd6066deaf49662c8c4a3f2..35f3ec85d57e08368c71af4b4c28112412a74e2a 100644 --- a/ir/artifacts/deepseek_v2.json +++ b/ir/artifacts/deepseek_v2.json @@ -52,7 +52,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/deepseek_v3.json b/ir/artifacts/deepseek_v3.json index 9447dbdc631c491507b0d2a44717c72cdcb2600f..ecb86aab0d21c101cb00ce8ee27add27ef499a3d 100644 --- a/ir/artifacts/deepseek_v3.json +++ b/ir/artifacts/deepseek_v3.json @@ -54,7 +54,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/deepseek_v32.json b/ir/artifacts/deepseek_v32.json index 591872bc1c3cf4ccad3356e3480522b561001dcb..ee15bb6e47db33982f94e14b8d6ab3044a6b920d 100644 --- a/ir/artifacts/deepseek_v32.json +++ b/ir/artifacts/deepseek_v32.json @@ -50,7 +50,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/deepseek_v4.json b/ir/artifacts/deepseek_v4.json index 12c6c1b32ccd6a9ebc25d22f1db17e143b99812a..7b7cee2ad90539b2bf44016038133148619084e3 100644 --- a/ir/artifacts/deepseek_v4.json +++ b/ir/artifacts/deepseek_v4.json @@ -95,7 +95,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/distilbert.json b/ir/artifacts/distilbert.json index 4a64751e97f8d99555a96273fb0116f6e1327dbb..7046cfa0445faa85b16ef37cd2d3c824cc70eb12 100644 --- a/ir/artifacts/distilbert.json +++ b/ir/artifacts/distilbert.json @@ -59,7 +59,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/electra.json b/ir/artifacts/electra.json index 9a3a117950899381dd20bf386090b3f7dbdebb41..dd22f479f59c68218d9a219288cdfb56d518eff7 100644 --- a/ir/artifacts/electra.json +++ b/ir/artifacts/electra.json @@ -62,7 +62,8 @@ { "attributes": { "embedding_dim": 128, - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/eurobert.json b/ir/artifacts/eurobert.json index 29d44fd610e4fea21e77fb9950fa7ab897c051cf..2e8688d48aa9495c1ca28e50f77356f0a08a0781 100644 --- a/ir/artifacts/eurobert.json +++ b/ir/artifacts/eurobert.json @@ -49,7 +49,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/falcon.json b/ir/artifacts/falcon.json index be6e7573e85268408f385eee26d51de73135778e..669c8112fee0724cbc83d66b5aa8337bde9ac594 100644 --- a/ir/artifacts/falcon.json +++ b/ir/artifacts/falcon.json @@ -42,7 +42,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "word_embeddings", diff --git a/ir/artifacts/florence2.json b/ir/artifacts/florence2.json index f5713589d228ff58b581fc491fe981d2f9a148a2..f6537fc0b36e70b295aa5fd053f162ad56d07920 100644 --- a/ir/artifacts/florence2.json +++ b/ir/artifacts/florence2.json @@ -145,7 +145,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "BartScaledWordEmbedding", "id": "language_model.shared", @@ -167,7 +168,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "BartScaledWordEmbedding", "id": "language_model.encoder.embed_tokens", @@ -208,7 +210,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "BartScaledWordEmbedding", "id": "language_model.decoder.embed_tokens", diff --git a/ir/artifacts/fnet.json b/ir/artifacts/fnet.json index 5dab1a4141ed1784e164f5e96b48ad478a104c6a..d5ab9def4aec53327da6327f97e006bdd078b9d6 100644 --- a/ir/artifacts/fnet.json +++ b/ir/artifacts/fnet.json @@ -49,7 +49,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/gemma.json b/ir/artifacts/gemma.json index 47478c50f114a9e3205f88d349c839eb6beb76df..e4d58e46283615ecd23ad4bc98562ec0e8454aca 100644 --- a/ir/artifacts/gemma.json +++ b/ir/artifacts/gemma.json @@ -42,7 +42,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "GemmaTextScaledWordEmbedding", "id": "embed_tokens", diff --git a/ir/artifacts/gemma2.json b/ir/artifacts/gemma2.json index edaf7b3fe4fdac24533c81d12c7a14ac2fef01f8..26d9c65992d0c5840d6fa7dbfede68850a18dd6e 100644 --- a/ir/artifacts/gemma2.json +++ b/ir/artifacts/gemma2.json @@ -75,7 +75,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Gemma2TextScaledWordEmbedding", "id": "embed_tokens", diff --git a/ir/artifacts/gemma3.json b/ir/artifacts/gemma3.json index 91ea0e05fe600a3605c6505bad5261c577c15770..560f016193afe02d686f1d4375a06769dcf5a056 100644 --- a/ir/artifacts/gemma3.json +++ b/ir/artifacts/gemma3.json @@ -273,7 +273,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Gemma3TextScaledWordEmbedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/gemma3_text.json b/ir/artifacts/gemma3_text.json index 86cebfdc2adaaeea49e33eb87acd4a65172a08ad..5c765b02064f89e35d08d96148b3216dd9371eac 100644 --- a/ir/artifacts/gemma3_text.json +++ b/ir/artifacts/gemma3_text.json @@ -70,7 +70,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Gemma3TextScaledWordEmbedding", "id": "embed_tokens", diff --git a/ir/artifacts/gemma4.json b/ir/artifacts/gemma4.json index a4cf995b7338f43b1cd2551876afd649c6bd724a..bf6a7a27041645c11ede1ad4eac8ff3a78f5332c 100644 --- a/ir/artifacts/gemma4.json +++ b/ir/artifacts/gemma4.json @@ -98,7 +98,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Gemma4TextScaledWordEmbedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/gemma4_unified.json b/ir/artifacts/gemma4_unified.json index 0d4f64796bc8f19717a9fb0dd0c2572b8ac2635f..53933a25d5408432fae05b9f4a28ae0c446cbb18 100644 --- a/ir/artifacts/gemma4_unified.json +++ b/ir/artifacts/gemma4_unified.json @@ -96,7 +96,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Gemma4UnifiedTextScaledWordEmbedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/glm4_moe.json b/ir/artifacts/glm4_moe.json index e16cf927cbeb97b51a58cf7f81ff5b3d3d73488c..14250259d986ac469a025063657c4d90fb8968fb 100644 --- a/ir/artifacts/glm4_moe.json +++ b/ir/artifacts/glm4_moe.json @@ -52,7 +52,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/glm4_moe_lite.json b/ir/artifacts/glm4_moe_lite.json index f4869350ae6d5476f83ac860eedd358336557b25..ac625a6b7121e604b698f8a4803c58854147361a 100644 --- a/ir/artifacts/glm4_moe_lite.json +++ b/ir/artifacts/glm4_moe_lite.json @@ -52,7 +52,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/glm4v.json b/ir/artifacts/glm4v.json index df873e5175c4097b233aa61d9d6685314f75c8c9..fc6156760b1b96a23c798a7ba7a5f6726732eade 100644 --- a/ir/artifacts/glm4v.json +++ b/ir/artifacts/glm4v.json @@ -179,7 +179,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/glm_moe_dsa.json b/ir/artifacts/glm_moe_dsa.json index de9baeccfc57ae0e942aaa6d54b44f14a0f7a0ef..04e9020eda31a9197e06eb32aa8ebcd263661e69 100644 --- a/ir/artifacts/glm_moe_dsa.json +++ b/ir/artifacts/glm_moe_dsa.json @@ -50,7 +50,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/glm_ocr.json b/ir/artifacts/glm_ocr.json index 39752821ac42858995619dc1cc960517b48aa7bd..80fcec7a898354b37985858c6bceab2b0a0c37d5 100644 --- a/ir/artifacts/glm_ocr.json +++ b/ir/artifacts/glm_ocr.json @@ -148,7 +148,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/gpt2.json b/ir/artifacts/gpt2.json index b84a3756e32112469c64b50efb0a1588591fbcb9..0335fdae51429e8d1263849fe921775469ef6096 100644 --- a/ir/artifacts/gpt2.json +++ b/ir/artifacts/gpt2.json @@ -44,7 +44,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "wte", diff --git a/ir/artifacts/gpt_bigcode.json b/ir/artifacts/gpt_bigcode.json index 60d8b48b5166de74b7bbe1cc190f8ae94a59f439..0ed507119aad046026b18f6ff5ed70c7e88674bc 100644 --- a/ir/artifacts/gpt_bigcode.json +++ b/ir/artifacts/gpt_bigcode.json @@ -43,7 +43,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "wte", diff --git a/ir/artifacts/gpt_neo.json b/ir/artifacts/gpt_neo.json index d8ffb80e07168e47f718353723734b9946d19844..0537e1c6e69a29aa4e20778d0618a8184c00d87b 100644 --- a/ir/artifacts/gpt_neo.json +++ b/ir/artifacts/gpt_neo.json @@ -42,7 +42,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "wte", diff --git a/ir/artifacts/gpt_neox.json b/ir/artifacts/gpt_neox.json index 07158f3d7126d29e4206c56809a714647e01265c..cb9a8876003b107d3dd96b9c3e65b91437f877ce 100644 --- a/ir/artifacts/gpt_neox.json +++ b/ir/artifacts/gpt_neox.json @@ -44,7 +44,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_in", diff --git a/ir/artifacts/gpt_oss.json b/ir/artifacts/gpt_oss.json index fd4da29d59d93512e2403929cd3a79b2a78e1b86..62296e36c6f7c17de27395541998772059754bf9 100644 --- a/ir/artifacts/gpt_oss.json +++ b/ir/artifacts/gpt_oss.json @@ -94,7 +94,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/gptj.json b/ir/artifacts/gptj.json index 710e9b63987b241859f0ffab8e0530d1244d9f8c..dc90f4b0a818253a68a67ec92ebc3eca5a820863 100644 --- a/ir/artifacts/gptj.json +++ b/ir/artifacts/gptj.json @@ -40,7 +40,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "wte", diff --git a/ir/artifacts/granite.json b/ir/artifacts/granite.json index 9cea4049653cb25c3917fb58f7619c71df18d3e5..adb25fbdcc6ea026a7145b4096f662840e59c28a 100644 --- a/ir/artifacts/granite.json +++ b/ir/artifacts/granite.json @@ -47,7 +47,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/granite_speech.json b/ir/artifacts/granite_speech.json index 91be41af75e1c666fc2a2b24acbeebc458ffdb40..9b0156d82367466a7cad2124f388ffab5aa885c5 100644 --- a/ir/artifacts/granite_speech.json +++ b/ir/artifacts/granite_speech.json @@ -108,7 +108,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/granitemoe.json b/ir/artifacts/granitemoe.json index c77bf4af6c11c25e1a203cbbdc3b51e144446df2..a5a3e6b37975f71635322bac158028802638e135 100644 --- a/ir/artifacts/granitemoe.json +++ b/ir/artifacts/granitemoe.json @@ -51,7 +51,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/granitemoehybrid.json b/ir/artifacts/granitemoehybrid.json index 110702c61a2a47ea1e0f318da25dc3ada285364f..e34104d8ce45115be2a6c13d5669aa0b8a4a54dd 100644 --- a/ir/artifacts/granitemoehybrid.json +++ b/ir/artifacts/granitemoehybrid.json @@ -41,7 +41,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/grounding-dino.json b/ir/artifacts/grounding-dino.json index 77c6388fc10ded627bd9994787850ac709b60400..93907166eac1ed552d881004a23159baa8d2008d 100644 --- a/ir/artifacts/grounding-dino.json +++ b/ir/artifacts/grounding-dino.json @@ -231,7 +231,8 @@ { "attributes": { "embedding_dim": 768, - "num_embeddings": 30522 + "num_embeddings": 30522, + "tied_lm_head": true }, "class_name": "Embedding", "id": "text_backbone.embeddings.word_embeddings", diff --git a/ir/artifacts/internvl.json b/ir/artifacts/internvl.json index 5c0467d0a13e98b002136c13d747afb11f120ceb..4f500039c932436e7e6a15e80774635d85d4dc9a 100644 --- a/ir/artifacts/internvl.json +++ b/ir/artifacts/internvl.json @@ -138,7 +138,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/jamba.json b/ir/artifacts/jamba.json index cfc96873e993b9913e63ff234da91d818921a586..5c1155e692e390e11b5ffc630431876e04f37dbb 100644 --- a/ir/artifacts/jamba.json +++ b/ir/artifacts/jamba.json @@ -88,7 +88,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/lfm2.json b/ir/artifacts/lfm2.json index bc52e6df4d6891a85e514eb2f0736525daa81a5e..f2cf2db238d03d4c773f17b6034cb0b6c25e25fe 100644 --- a/ir/artifacts/lfm2.json +++ b/ir/artifacts/lfm2.json @@ -47,7 +47,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/lfm2_vl.json b/ir/artifacts/lfm2_vl.json index 85f5fcbba0154a750ccd58a90e2c64f0c0ffde4e..caf5cdb686568c7cae7c219e8fbdfe22bc350219 100644 --- a/ir/artifacts/lfm2_vl.json +++ b/ir/artifacts/lfm2_vl.json @@ -234,7 +234,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/llama.json b/ir/artifacts/llama.json index 32355d1728492af7ec3072d872e0e9772d71c139..97bfa1d231439b8abfdb01296cb67f3e79832aed 100644 --- a/ir/artifacts/llama.json +++ b/ir/artifacts/llama.json @@ -50,7 +50,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/llama4.json b/ir/artifacts/llama4.json index 65f7bbf4c0e282851263cdb5130c40c6a24beb9a..3b7a483006e4462e5aa02a67d311a23217c36f0c 100644 --- a/ir/artifacts/llama4.json +++ b/ir/artifacts/llama4.json @@ -254,7 +254,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.model.embed_tokens", diff --git a/ir/artifacts/llava.json b/ir/artifacts/llava.json index d0e9520bc1d6ee26d6940f74e3a7498535b4ac61..30b46e32e3209902cd24cd80706b24065df61885 100644 --- a/ir/artifacts/llava.json +++ b/ir/artifacts/llava.json @@ -144,7 +144,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/llava_next.json b/ir/artifacts/llava_next.json index d2d76a4877f81bacfbea0f25371b56583e5088db..508ebc73e7dcdbe88abedfcde201a47f00489399 100644 --- a/ir/artifacts/llava_next.json +++ b/ir/artifacts/llava_next.json @@ -144,7 +144,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/llava_onevision.json b/ir/artifacts/llava_onevision.json index 9e199615261f01fafdfa11a5cda6ba3bbd028864..cdab4e33f967192758684f93917253f9ad2b9898 100644 --- a/ir/artifacts/llava_onevision.json +++ b/ir/artifacts/llava_onevision.json @@ -133,7 +133,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/longformer.json b/ir/artifacts/longformer.json index f9735d8262ac9b978e3ac1de353d8f365aa641d7..e68316314e9d8779a992a0661364ffb8395317f9 100644 --- a/ir/artifacts/longformer.json +++ b/ir/artifacts/longformer.json @@ -58,7 +58,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/luke.json b/ir/artifacts/luke.json index c68251a3700c87c12ceee2a8ab22f3437dc5e8d0..39d6ffa6b69dfb3e97ed7ce92f642a5a45a3b789 100644 --- a/ir/artifacts/luke.json +++ b/ir/artifacts/luke.json @@ -58,7 +58,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/m2m_100.json b/ir/artifacts/m2m_100.json index f749da0ef5cda728abb62884d7bdd016437a11e3..cc835b42acd54773637675ab8b2c324038a1e344 100644 --- a/ir/artifacts/m2m_100.json +++ b/ir/artifacts/m2m_100.json @@ -40,7 +40,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "M2M100ScaledWordEmbedding", "id": "shared", @@ -62,7 +63,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "M2M100ScaledWordEmbedding", "id": "encoder.embed_tokens", @@ -103,7 +105,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "M2M100ScaledWordEmbedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/marian.json b/ir/artifacts/marian.json index 4da43a81112a9736a2c9e28b50899f1713a99628..a9cb5425e0a3f98199c340f1f3344f8285659058 100644 --- a/ir/artifacts/marian.json +++ b/ir/artifacts/marian.json @@ -41,7 +41,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "shared", @@ -62,7 +63,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "encoder.embed_tokens", @@ -93,7 +95,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/mbart.json b/ir/artifacts/mbart.json index 07904b8066b139ef756436615d5f525217f65175..a5ec13cd8d50eeb2bcb2a09479899843234303de 100644 --- a/ir/artifacts/mbart.json +++ b/ir/artifacts/mbart.json @@ -44,7 +44,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "MBartScaledWordEmbedding", "id": "shared", @@ -67,7 +68,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "MBartScaledWordEmbedding", "id": "encoder.embed_tokens", @@ -118,7 +120,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "MBartScaledWordEmbedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/minicpmv4_6.json b/ir/artifacts/minicpmv4_6.json index 2f5180bedd09cd457d4ce9b63d8f0d2b650dc67d..7c65296f6f88396c3f2da0d75349010e630ecbff 100644 --- a/ir/artifacts/minicpmv4_6.json +++ b/ir/artifacts/minicpmv4_6.json @@ -276,7 +276,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/minimax_m2.json b/ir/artifacts/minimax_m2.json index 055b8ed460fe774eedda14e8571f3208f2fd8441..9a599890a795ffaca275d8f9760196f509ad6b9a 100644 --- a/ir/artifacts/minimax_m2.json +++ b/ir/artifacts/minimax_m2.json @@ -51,7 +51,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/minimax_m3_vl.json b/ir/artifacts/minimax_m3_vl.json index cd05ee8fc1035304520bb99368332697debfff85..4ffc3bcaa9e8fc54c211330526b5e51f487641c2 100644 --- a/ir/artifacts/minimax_m3_vl.json +++ b/ir/artifacts/minimax_m3_vl.json @@ -129,7 +129,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/mistral.json b/ir/artifacts/mistral.json index 59747b6e93abd1f4a2b409c508dfe30b8e923b1c..260325fef6cc69fddc2b1ed337648e1de0921ff9 100644 --- a/ir/artifacts/mistral.json +++ b/ir/artifacts/mistral.json @@ -51,7 +51,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/mistral3.json b/ir/artifacts/mistral3.json index aed52039a141cd11c0ee00f6c81a8b23c15133b9..2b84574374613ccba9e6af8a1eee7518e1ca1b4d 100644 --- a/ir/artifacts/mistral3.json +++ b/ir/artifacts/mistral3.json @@ -146,7 +146,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/mixtral.json b/ir/artifacts/mixtral.json index 8a135f125d54e1c3104b26b925286bcef3f4b6a0..ca38d949991701d4ea1b8dbdf7b9004a774c0739 100644 --- a/ir/artifacts/mixtral.json +++ b/ir/artifacts/mixtral.json @@ -54,7 +54,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/mobilebert.json b/ir/artifacts/mobilebert.json index ca9a9df076a4e80473c2a56f2879d16c76407c63..112689eb1af5b606ea9f0c044e9dd678d99679fa 100644 --- a/ir/artifacts/mobilebert.json +++ b/ir/artifacts/mobilebert.json @@ -62,7 +62,8 @@ { "attributes": { "embedding_dim": 128, - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/modernbert.json b/ir/artifacts/modernbert.json index bbe8bcec39567fc627b02fe8167392706f4eacb2..94a1282bc89c3c93344f6648b1a1804f1fb096a9 100644 --- a/ir/artifacts/modernbert.json +++ b/ir/artifacts/modernbert.json @@ -83,7 +83,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.tok_embeddings", diff --git a/ir/artifacts/mpnet.json b/ir/artifacts/mpnet.json index 3a50b3f75bb5f738352bec8474d42893cc8b58e9..34614ea097777d012eca37a39f45008b28fe0f71 100644 --- a/ir/artifacts/mpnet.json +++ b/ir/artifacts/mpnet.json @@ -56,7 +56,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/mt5.json b/ir/artifacts/mt5.json index 82475135c8de201724391344995d340bddf5b03d..dfae2d7b88f481c803cc3596348518eb17a4a482 100644 --- a/ir/artifacts/mt5.json +++ b/ir/artifacts/mt5.json @@ -41,7 +41,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "shared", @@ -62,7 +63,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "encoder.embed_tokens", @@ -92,7 +94,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/nomic_bert.json b/ir/artifacts/nomic_bert.json index 63bec690a8d4434365557c45bff7bef1e4cf89a0..34bda69f4a990ad70e9a8f9273ae11e73ddc7251 100644 --- a/ir/artifacts/nomic_bert.json +++ b/ir/artifacts/nomic_bert.json @@ -56,7 +56,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/olmo2.json b/ir/artifacts/olmo2.json index 902777e8f19bd00b20b2b41f82228a6744d01176..895cfed01407340970d5ef04918af201d59fe2fa 100644 --- a/ir/artifacts/olmo2.json +++ b/ir/artifacts/olmo2.json @@ -48,7 +48,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/olmo3.json b/ir/artifacts/olmo3.json index 9ae2af6936765fc31a9107c5a3956b081183c0e5..e8088a4fa3ad77a845e4020f04f19028e209abda 100644 --- a/ir/artifacts/olmo3.json +++ b/ir/artifacts/olmo3.json @@ -83,7 +83,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/openai_privacy_filter.json b/ir/artifacts/openai_privacy_filter.json index 0181aa2854b234d7df197e495b91127fe770190d..2fafa2d4b153d41be98a7d52cd1552e5fa701242 100644 --- a/ir/artifacts/openai_privacy_filter.json +++ b/ir/artifacts/openai_privacy_filter.json @@ -50,7 +50,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/opt.json b/ir/artifacts/opt.json index a9eebcb081e0c5887bbe1b9783dda99e7455eba7..58c19a8585f6be9271b4c5b199fd5a6a17bb4049 100644 --- a/ir/artifacts/opt.json +++ b/ir/artifacts/opt.json @@ -51,7 +51,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/paligemma.json b/ir/artifacts/paligemma.json index 6d7f8d24423fed4d9d85432bb3160433ea1d30ad..b4561fbb7f5472e6281c1879db0e1989799a2100 100644 --- a/ir/artifacts/paligemma.json +++ b/ir/artifacts/paligemma.json @@ -134,7 +134,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "GemmaTextScaledWordEmbedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/pegasus.json b/ir/artifacts/pegasus.json index 2c1e2fd287db992471377257e8eae7f15e166072..cab653ed67d330fd7097df45aff05b8764caecd1 100644 --- a/ir/artifacts/pegasus.json +++ b/ir/artifacts/pegasus.json @@ -41,7 +41,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "shared", @@ -63,7 +64,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "encoder.embed_tokens", @@ -104,7 +106,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/phi.json b/ir/artifacts/phi.json index e6eaded4afcee59f19f363056b867ab127832eb2..568c981cbd939fd7d35fdaa5d1a9184a898b862c 100644 --- a/ir/artifacts/phi.json +++ b/ir/artifacts/phi.json @@ -43,7 +43,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/phi3.json b/ir/artifacts/phi3.json index 651974257f6b17dd37ddfeacf9c783834138b42f..e47110c5dde70acefd6893c35f1b1532354b60a8 100644 --- a/ir/artifacts/phi3.json +++ b/ir/artifacts/phi3.json @@ -49,7 +49,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/phimoe.json b/ir/artifacts/phimoe.json index 3168646ca6c65980aa1d515b0f83506d1ccb69b9..21861540b58d688da61c78e001452917e89b8bc2 100644 --- a/ir/artifacts/phimoe.json +++ b/ir/artifacts/phimoe.json @@ -45,7 +45,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/qwen2.json b/ir/artifacts/qwen2.json index a062335f2949a0b5cb325d6701b6bb26c284c771..79adc797badb96ba9e59dc4eb6cdd56336945914 100644 --- a/ir/artifacts/qwen2.json +++ b/ir/artifacts/qwen2.json @@ -50,7 +50,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/qwen2_5_vl.json b/ir/artifacts/qwen2_5_vl.json index 9d2abbd99e9a7d56dfa4d8297fd6c1af69c9c937..d5ded8c3ca1d89336d68657f36388d2e1e25cd16 100644 --- a/ir/artifacts/qwen2_5_vl.json +++ b/ir/artifacts/qwen2_5_vl.json @@ -179,7 +179,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/qwen2_audio.json b/ir/artifacts/qwen2_audio.json index 54de7eff401f14656ddc76aa7e8349682a1a7d92..8567a7fd2b07b4700533186ed73c5366bfab6a06 100644 --- a/ir/artifacts/qwen2_audio.json +++ b/ir/artifacts/qwen2_audio.json @@ -5,6 +5,7 @@ "is_moe": false, "mixer": "attention", "positional": "rope", + "tie_word_embeddings": false, "towers": [ { "attention_variant": "MHA", @@ -124,7 +125,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/qwen2_moe.json b/ir/artifacts/qwen2_moe.json index d2ae78d9377a8e392e74485de56dd90d0de02f8e..6365cb204d13b7f13ab28234b6658edc49afe892 100644 --- a/ir/artifacts/qwen2_moe.json +++ b/ir/artifacts/qwen2_moe.json @@ -55,7 +55,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/qwen2_vl.json b/ir/artifacts/qwen2_vl.json index 47dea15c6fff4fdbe876aba0824d4d2ad328ad93..2fde27b2746580a044a557e6363b2834b25d363a 100644 --- a/ir/artifacts/qwen2_vl.json +++ b/ir/artifacts/qwen2_vl.json @@ -176,7 +176,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/qwen3.json b/ir/artifacts/qwen3.json index 95efd3321d63c2cf5aaf792344f1e672b8555567..8dc504f1d18adbb7934e1eb4715f498e2783d1e1 100644 --- a/ir/artifacts/qwen3.json +++ b/ir/artifacts/qwen3.json @@ -50,7 +50,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/qwen3_5.json b/ir/artifacts/qwen3_5.json index aa86ad41d29c732356c989cde05315d714170e44..c30f373e9b51dc0859c21ea74201ac539c0a45e4 100644 --- a/ir/artifacts/qwen3_5.json +++ b/ir/artifacts/qwen3_5.json @@ -175,7 +175,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/qwen3_5_moe.json b/ir/artifacts/qwen3_5_moe.json index 53a7c9444a51b08fab31038feafafe7f221db564..bcbd98f22ba192105761c88382d08c885cdb7577 100644 --- a/ir/artifacts/qwen3_5_moe.json +++ b/ir/artifacts/qwen3_5_moe.json @@ -185,7 +185,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/qwen3_asr.json b/ir/artifacts/qwen3_asr.json index f61a9780559b9ec6d654d8d0a16cd36164f86193..aefed66a101328b8faa5b40c150eba062f8198f9 100644 --- a/ir/artifacts/qwen3_asr.json +++ b/ir/artifacts/qwen3_asr.json @@ -125,7 +125,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/qwen3_moe.json b/ir/artifacts/qwen3_moe.json index 75f6a4886c08388382cb398266429ede4430e6c1..3f26d940df0d18250f741c5b4ef170ca7b4c7cd1 100644 --- a/ir/artifacts/qwen3_moe.json +++ b/ir/artifacts/qwen3_moe.json @@ -54,7 +54,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/qwen3_next.json b/ir/artifacts/qwen3_next.json index 7599fab7d37d0f4829d9b3c274c50049281c141d..5d448397018f9642cfc1a7205268cbb90ed7e729 100644 --- a/ir/artifacts/qwen3_next.json +++ b/ir/artifacts/qwen3_next.json @@ -36,7 +36,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/qwen3_vl.json b/ir/artifacts/qwen3_vl.json index 6e211e2747e07f226bf659f6e6931d7beecde6bc..ea0257524d1acc517fe88ddf575db7da73561449 100644 --- a/ir/artifacts/qwen3_vl.json +++ b/ir/artifacts/qwen3_vl.json @@ -142,7 +142,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/qwen3_vl_moe.json b/ir/artifacts/qwen3_vl_moe.json index d77a99b2fb458caa1b8ff448c0969c295341d82f..bf81eab4c85ef25819374528446a174400cddbfc 100644 --- a/ir/artifacts/qwen3_vl_moe.json +++ b/ir/artifacts/qwen3_vl_moe.json @@ -147,7 +147,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/roberta.json b/ir/artifacts/roberta.json index b17d816093bc4b6fe152aa97e67a879d8439686f..be008ffbd65636003a640ce582f421f3abbae231 100644 --- a/ir/artifacts/roberta.json +++ b/ir/artifacts/roberta.json @@ -62,7 +62,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/seamless_m4t_v2.json b/ir/artifacts/seamless_m4t_v2.json index 164e34a4f182648b825602cf4a8cadb67323b32a..933b65712420932b623c3c0ad6a06658357ba552 100644 --- a/ir/artifacts/seamless_m4t_v2.json +++ b/ir/artifacts/seamless_m4t_v2.json @@ -43,7 +43,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "shared", @@ -65,7 +66,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "SeamlessM4Tv2ScaledWordEmbedding", "id": "text_encoder.embed_tokens", @@ -364,7 +366,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "SeamlessM4Tv2ScaledWordEmbedding", "id": "text_decoder.embed_tokens", @@ -456,7 +459,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": 10082 + "num_embeddings": 10082, + "tied_lm_head": true }, "class_name": "Embedding", "id": "t2u_model.model.decoder.embed_tokens", diff --git a/ir/artifacts/smollm3.json b/ir/artifacts/smollm3.json index 19a55acfa1d19907c6db621584dfaeabb73cad57..96d3597a4ac61c63f77fb2072ff242f88fb3e409 100644 --- a/ir/artifacts/smollm3.json +++ b/ir/artifacts/smollm3.json @@ -50,7 +50,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/artifacts/t5.json b/ir/artifacts/t5.json index 9a43c709009f522526b9b2a714b036368de40f8b..160abb4f810c76f546cb748c2fabde3d612e71fc 100644 --- a/ir/artifacts/t5.json +++ b/ir/artifacts/t5.json @@ -42,7 +42,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "shared", @@ -63,7 +64,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "encoder.embed_tokens", @@ -93,7 +95,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/voxtral.json b/ir/artifacts/voxtral.json index c9268b01252d93cd8eae4e47f9d872d6080a325c..895584dac0d0580f10f828d0dad9283793e49730 100644 --- a/ir/artifacts/voxtral.json +++ b/ir/artifacts/voxtral.json @@ -5,6 +5,7 @@ "is_moe": false, "mixer": "attention", "positional": "rope", + "tie_word_embeddings": false, "towers": [ { "attention_variant": "GQA", @@ -120,7 +121,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": false }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/voxtral_realtime.json b/ir/artifacts/voxtral_realtime.json index dc07c128d0bfa6421e4366fc131d17dd2105834b..bb9843daae6ab1955e66562ca84e9c775cce204b 100644 --- a/ir/artifacts/voxtral_realtime.json +++ b/ir/artifacts/voxtral_realtime.json @@ -138,7 +138,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "language_model.embed_tokens", diff --git a/ir/artifacts/whisper.json b/ir/artifacts/whisper.json index 3c48e8128d9adbf508ed82a3b08f8d6d3a79de44..58d5319c8a2d0aa529120cfe8c26a65f3651c8e8 100644 --- a/ir/artifacts/whisper.json +++ b/ir/artifacts/whisper.json @@ -93,7 +93,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "decoder.embed_tokens", diff --git a/ir/artifacts/xlm-roberta.json b/ir/artifacts/xlm-roberta.json index 658e3cc48b5358ec1d7fb62f8a0dc7bbaf2598c2..8bdfea1eed302d181037df4eb742cb665bc042a0 100644 --- a/ir/artifacts/xlm-roberta.json +++ b/ir/artifacts/xlm-roberta.json @@ -62,7 +62,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embeddings.word_embeddings", diff --git a/ir/artifacts/zamba2.json b/ir/artifacts/zamba2.json index c6aa106f5b004fb94205d1728e8d6d122cc9f477..d8ea579dd813cce6eb3120f7790619c49e2152ef 100644 --- a/ir/artifacts/zamba2.json +++ b/ir/artifacts/zamba2.json @@ -100,7 +100,8 @@ { "attributes": { "embedding_dim": "config.hidden_size", - "num_embeddings": "config.vocab_size" + "num_embeddings": "config.vocab_size", + "tied_lm_head": true }, "class_name": "Embedding", "id": "embed_tokens", diff --git a/ir/manifest.json b/ir/manifest.json index 041cdf0bddd0d0e98a87d71eddca16f941a16571..795af5963f7e49692ad360652a27dbafd8969d36 100644 --- a/ir/manifest.json +++ b/ir/manifest.json @@ -1171,7 +1171,7 @@ "status": "failed" } ], - "generated_at": "2026-07-03T13:40:43.372735+00:00", + "generated_at": "2026-07-03T14:22:31.453943+00:00", "modular_graph": "modular_graph.json", "schema_version": "architecture-ir-manifest-v0" } diff --git a/js/app.js b/js/app.js index 46f484213ee2ac0847a6a5d5b53921246c2a97c2..57d938f1f107fe0f52a80eca8dce9214453e9092 100644 --- a/js/app.js +++ b/js/app.js @@ -267,16 +267,19 @@ function setStatus(msg, isError = false) { function rebuild(fit = false) { if (!state.ir) return; + const tied = state.ir.tiedEmbeddings(state.fields); const layout = new Layout(state.ir, { expanded: state.expanded, fields: state.fields, showInfo: state.showInfo, + tied, }); graph.render(layout, { ir: state.ir, fields: state.fields, edgeKinds: state.edgeKinds, avatars: avatarCache, + tied, // TP / kernels are capability-tier (spec Β§02): hidden below tier 2. showTP: state.showTP && state.specLevel >= 2, showKernels: state.showKernels && state.specLevel >= 2, @@ -658,6 +661,7 @@ function renderArchFacts() { .map((k) => a[k]) .filter((v) => v != null); if (a.is_moe) parts.push("MoE"); + if (a.tie_word_embeddings !== undefined) parts.push(a.tie_word_embeddings ? "tied emb" : "untied emb"); note.textContent = parts.join(" Β· "); } @@ -735,10 +739,12 @@ function makePane(svgSelector) { } function renderPane(pane, fit = false) { + const tied = pane.ir.tiedEmbeddings(pane.ir.configFields); const layout = new Layout(pane.ir, { expanded: pane.expanded, fields: pane.ir.configFields, showInfo: state.showInfo, + tied, }); pane.graph.render(layout, { ir: pane.ir, @@ -746,6 +752,7 @@ function renderPane(pane, fit = false) { edgeKinds: new Set(pane.ir.edgeKinds), sharedIds: pane.shared, avatars: avatarCache, + tied, showTP: state.showTP && state.specLevel >= 2, showKernels: state.showKernels && state.specLevel >= 2, }); @@ -774,10 +781,12 @@ function makeMergePane() { } function renderMergePane(pane, fit = false) { + const tied = pane.ir.tiedEmbeddings(pane.ir.configFields); const layout = new Layout(pane.ir, { expanded: pane.expanded, fields: pane.ir.configFields, showInfo: state.showInfo, + tied, }); pane.graph.render(layout, { ir: pane.ir, @@ -786,6 +795,7 @@ function renderMergePane(pane, fit = false) { avatars: avatarCache, origin: pane.origin, edgeOrigin: pane.edgeOrigin, + tied, showTP: state.showTP && state.specLevel >= 2, showKernels: state.showKernels && state.specLevel >= 2, }); diff --git a/js/graph.js b/js/graph.js index 30c1e8eba283d9c2f51c4459aa8bf1867bcdb522..934c4b6a431c4c642d358fd74286c72018c57ee5 100644 --- a/js/graph.js +++ b/js/graph.js @@ -487,6 +487,10 @@ class Graph { const kb = this._kernelBadge(r.node, r.x + r.w, r.y + 8); if (kb) g.appendChild(kb); } + // "tied" badge on the word embedding when weights are shared with the LM head. + if (this.opts.tied && this.opts.ir && this.opts.ir.isWordEmbedding(r.node)) { + g.appendChild(this._tiedBadge(r.x + r.w, r.y + 8)); + } if (r.isRepeat) g.appendChild(this._toggle(r, false)); return g; } @@ -582,6 +586,18 @@ class Graph { return g; } + // "πŸ”— tied" badge β€” the input embedding shares weights with the output head. + _tiedBadge(rightEdge, y) { + const label = "πŸ”— tied"; + const w = Math.round(14 + label.length * 6.0); + const x = rightEdge - w - 8; + const g = el("g", { class: "tied-badge" }); + g.appendChild(el("title", {}, "tied word embeddings β€” input embedding weights shared with the output (LM head)")); + g.appendChild(el("rect", { x, y, width: w, height: 16, rx: 8 })); + g.appendChild(el("text", { class: "attn-tag-txt", x: x + w / 2, y: y + 11.5, "text-anchor": "middle" }, label)); + return g; + } + // A stacked "deck" behind a repeat block conveying its depth: one card per // layer, offset down-right, coloured by the attention schedule when present // (so slidingΓ—5+full reads as 5 amber slivers then 1 blue) or neutral. Drawn diff --git a/js/ir.js b/js/ir.js index 5785cc168b6a3daf5c4a4e17ba89fae75674c725..b1c29c243661d8d148f55ed0afd4b8d51c50ca9b 100644 --- a/js/ir.js +++ b/js/ir.js @@ -19,6 +19,7 @@ const KIND_LABELS = { feed_forward: "Feed-Forward", projection: "Projection", moe: "Mixture-of-Experts", + lm_head: "LM Head", normalization: "Normalization", position: "Position", pooler: "Pooler", @@ -111,6 +112,69 @@ class IRModel { this._index(); this._buildTree(); this._indexEdges(); + this._synthesizeLmHead(); + } + + // The base-model IR stops at the final hidden state β€” it has no LM head. + // But whether the output projection is a *separate* set of weights or shares + // the input embedding's is load-bearing (param count, checkpoint layout), so + // we synthesize an `lm_head` node from the word embedding (hidden β†’ vocab). + // It is always present in the tree; the layout shows it only when *untied* + // and shows a "tied" badge on the embedding otherwise (see tiedEmbeddings()). + _synthesizeLmHead() { + if (!this.rootId) return; + const root = this.nodes.get(this.rootId); + if (!root) return; + const wordEmb = [...this.nodes.values()].find((n) => this.isWordEmbedding(n)); + if (!wordEmb) return; // no vocab embedding β†’ no LM-head concept (e.g. vision) + + // The flow sink at the top level: a direct child of root that receives data + // but emits none (the final norm / decoder), i.e. what feeds the head. + const kidSet = new Set(root.children); + const topChild = (x) => { + let cur = x; + for (let g = 0; g < 64 && cur; g++) { + if (kidSet.has(cur)) return cur; + cur = (this.nodes.get(cur) || {}).parent; + } + return null; + }; + const hasIn = new Set(); + const hasOut = new Set(); + for (const e of this.edges) { + if (e.kind !== "data") continue; + const s = topChild(e.source); + const t = topChild(e.target); + if (s && t && s !== t) { + hasOut.add(s); + hasIn.add(t); + } + } + const sinks = root.children.filter((k) => hasIn.has(k) && !hasOut.has(k) && k !== wordEmb.id); + const sinkId = sinks.length ? sinks[sinks.length - 1] : null; + if (!sinkId) return; + + const a = wordEmb.attributes || {}; + const lm = { + id: "lm_head", + kind: "lm_head", + className: "Linear", + pathPattern: "lm_head", + rawChildren: [], + // hidden β†’ vocab, mirrored from the (transposed) word embedding. + attributes: { + in_features: a.embedding_dim || "config.hidden_size", + out_features: a.num_embeddings || "config.vocab_size", + }, + nodeType: "synthetic", + children: [], + parent: this.rootId, + }; + this.nodes.set(lm.id, lm); + root.children.push(lm.id); + this.lmHeadId = lm.id; + this.lmHeadFrom = sinkId; + this.edges.push({ kind: "data", source: sinkId, target: lm.id, _idx: this.edges.length, _synthetic: true }); } _addRaw(list, nodeType) { @@ -319,6 +383,27 @@ class IRModel { return (this.dataflow && this.dataflow.shapes && this.dataflow.shapes[id]) || null; } + // Whether input word embeddings are tied to the output (LM head) β€” shared + // weights. Read from the (editable) config first, then the architecture block, + // so flipping tie_word_embeddings in the config reflects live. + tiedEmbeddings(fields) { + const f = fields || this.configFields; + if (f && Object.prototype.hasOwnProperty.call(f, "tie_word_embeddings")) return !!f.tie_word_embeddings; + return !!(this.architecture && this.architecture.tie_word_embeddings); + } + + // Is this node the token/word embedding (kind embedding sized to vocab)? + // Excludes position / token-type / vision embeddings. + isWordEmbedding(node) { + return !!( + node && + node.kind === "embedding" && + node.attributes && + node.attributes.num_embeddings === "config.vocab_size" && + node.children.length === 0 + ); + } + // A Hub kernel that can augment this node: { name, repos } from the node's // `attributes.kernel` and the model's `capabilities.kernels` map, or null. nodeKernel(node) { diff --git a/js/layout.js b/js/layout.js index 387ae28bb213ee80efcd3d213e6775ee8f555c60..c6184b71a82110ed2a6a828af85305829d1d9f6e 100644 --- a/js/layout.js +++ b/js/layout.js @@ -28,6 +28,7 @@ class Layout { this.expanded = opts.expanded; // Set this.fields = opts.fields; // resolved config fields this.showInfo = opts.showInfo !== false; // shape/attribute captions on nodes + this.tied = opts.tied !== false; // word embeddings tied β†’ hide the separate LM head this.rectById = new Map(); // id -> {x,y,w,h,...} absolute this.placed = []; // draw order (containers before children) @@ -53,6 +54,8 @@ class Layout { let kids = this.ir.layoutChildrenOf(id).slice(); if (id === this.ir.rootId) { kids = kids.concat([...this.ir.pseudoIds]); + // The synthetic LM head is only a distinct node when embeddings are untied. + if (this.tied && this.ir.lmHeadId) kids = kids.filter((k) => k !== this.ir.lmHeadId); } return kids; } @@ -182,6 +185,8 @@ class Layout { if (info) need = Math.max(need, LEFT + Math.round(info.length * 6.6) + 18); // Reserve room for the kernel org avatar(s) / bolt badge (top-right). if (n && n.attributes && n.attributes.kernel) need += 52; + // Reserve room for the "πŸ”— tied" badge on the word embedding. + if (this.tied && this.ir.isWordEmbedding(n)) need += 62; w = Math.max(MIN_W, Math.min(400, need)); h = (isRepeat ? REPEAT_LEAF_H : LEAF_H) + (info ? 16 : 0); } diff --git a/style.css b/style.css index 8c41a07538dea18fe4cada8b8c4c67bb1758f9b2..6f13ff8eb4c938bc7ea5cdafd9eda837984b6093 100644 --- a/style.css +++ b/style.css @@ -218,6 +218,7 @@ body.compare .spec-panel { display: none; } [data-kind="position"] { --kind: #34d399; } [data-kind="pooler"] { --kind: #c084fc; } [data-kind="model"] { --kind: #fbbf24; } +[data-kind="lm_head"] { --kind: #ef4444; } [data-kind] .kind-bar, [data-kind] .kind-dot { fill: var(--kind, var(--text-faint)); } /* Repeat "deck": stacked cards behind the block (depth = layers). Cards with a @@ -251,6 +252,10 @@ body.compare .spec-panel { display: none; } .toggle:hover circle { fill: var(--accent-soft); } .toggle-icon { stroke: var(--accent-strong); stroke-width: 1.75; stroke-linecap: round; fill: none; } +/* "tied" badge on the word embedding (weights shared with the LM head) */ +.tied-badge rect { fill: color-mix(in srgb, #a78bfa 22%, var(--node-bg)); stroke: #a78bfa; stroke-width: 1.25; } +.tied-badge .attn-tag-txt { fill: #c4b5fd; } + /* Tensor-parallel shard-direction glyph on projection nodes */ .tp-glyph rect { fill: var(--accent-strong); opacity: 0.9; } .tp-glyph.tp-rowwise rect { fill: #38bdf8; }