Join the conversation

Join the community of Machine Learners and AI enthusiasts.

Sign Up
mayafree 
posted an update 1 day ago
Post
1785
🧬 Architecture lineage of Korea's sovereign-AI foundation models — checked with public data

In late July 2026, as Korea released self-developed foundation models competing with DeepSeek and Qwen (e.g. LG K-EXAONE 2.0, 750B), interest grew — including a Zhihu thread with 2.7M+ views (→ https://www.zhihu.com/question/2067512422555029717 ) — over whether these models are trained from scratch or built on foreign open-weights.

Sharing a tool that answers this with public data rather than opinion.

🔗 Model Genome Korea → mayafree/Model-Genome-Korea

It classifies the public models of 9 Korean organizations that released "self-developed, from-scratch foundation models" on HuggingFace — 3 large enterprises (LG, NAVER, Kakao), 2 telcos (SKT, KT), 2 mid-size firms (NCSOFT, Upstage), 2 startups (Motif, VIDRAFT) — on two axes measured from public config.json + model weights:
• Architecture fingerprint — does model_type + (hidden·intermediate·layers) match a foreign open-weight model
• Weight fingerprint — embedding similarity (from-scratch vs continued-pretraining)

Genotypes: 🟢 Native · 🔵 Adapted · 🟡 Mixed · 🔴 Ported

The results are not uniform. Some models match foreign architectures (Qwen, Llama, …) exactly; others use self-built architectures and weights with no foreign match. Which company/model falls where is shown per model in the Space, along with attention originality, license, and reproducible open-source status.

This is a neutral transparency tool, not an accusation — building foundation models on open-weight bases is a legitimate, industry-standard practice. The exact same yardstick is applied to every model, without exception.

Features a 3D lineage graph, search, EN / 中文 / 한국어, and dark mode. Corrections are welcome via the Community tab.

Articles: https://huggingface.co/blog/mayafree/model-dna

#KoreanAI #LLM #ModelLineage #OpenSource #SovereignAI

Request for Correction Regarding the A.X K2 Entry

This response is not intended to challenge the value of comparing and referencing architectural relationships among open-source models in this Space. Our concern is that the conclusions presented by the Space are substantially stronger and more categorical than what the publicly stated criteria and supporting evidence can justify.

In particular, labeling a model as involving "weight inheritance" is a serious factual claim, as such inheritance may directly conflict with the independence requirements of Korea's Sovereign AI Foundation Model Project. Accordingly, such a claim requires a substantially higher standard of evidence than a general observation of model similarity.

This request concerns one entry — skt/A.X-K2, which in the current build (commit 12773b9500172e91ffedcf6c5e6fc2c4931de0be, retrieved 2026-08-09) is rendered as:

Field Displayed value
Genotype 🧬 Ported (derivative)
Architecture foreign — "DeepSeek-V3 arch exact-match"
Weights inherited — "weights inherited (continued pretraining)"

1. Direct from-scratch training evidence exists

A.X K2 was developed under Korea's Sovereign AI Foundation Model Project, where independent weight initialization and full training are part of the technical independence requirement.

For A.X K2, this is not merely a statement made after release. Sequential checkpoints beginning the start of training, together with the training loss curve from the first iteration onward, were submitted through the project's formal evaluation and verification process to the Ministry of Science and ICT (MSIT), the ministry responsible for the national AI foundation model program.

This is a contemporaneous record of the model's actual initialization and training history. Inferring lineage retrospectively from final-model similarity is fundamentally weaker evidence than the training provenance itself.

2. A.X K2 is not an exact architectural match

A.X K2 and DeepSeek-V3 share hidden size, intermediate size, and layer count. They differ in every other structural field that is publicly verifiable:

Configuration A.X K2 DeepSeek-V3
Attention heads 64 128
KV heads 64 128
Initial dense layers 1 3
Config vocab size 163,840 129,280
Gated Norm Yes No
Attention output gate Yes No

The last two rows are not cosmetic. attention_output_gate, gated_norm, and gated_norm_rank are learned components active throughout pretraining — head-specific gating on the attention output, and an input-dependent gate on the normalization path. The Space's own attention table already records A.X K2's mechanism as gated MLA, distinct from the plain MLA of the config it is being matched against.

The accompanying article [2] defines its architecture fingerprint as (hidden, intermediate, layers, heads, kv) and states that what makes it a fingerprint is several fields matching simultaneously. A.X K2 matches three of those five.

These differences are also why A.X K2 registers model_type: axk2 rather than deepseek_v3. That is not a naming choice: the gated components above require their own modeling implementation, and the checkpoint cannot be loaded under DeepSeek-V3 modeling code. For contrast, kakaocorp/kanana-2-30b-a3b-instruct-2601 in the same table does register deepseek_v3 — it runs on that implementation, and that is what a match looks like under this criterion.

Calling this an "exact architectural match" is therefore not consistent with the public configs, nor with the criterion the Space itself states.

3. The tokenizers are also substantially different

A direct vocabulary-set comparison gives:

Comparison A.X K2 vocab DeepSeek-V3 vocab Shared Shared / A.X K2 Shared / DeepSeek (containment) Jaccard
DeepSeek-V3 163,840 129,280 66,945 40.86% 51.78% 29.60%

Vocabulary sizes here are taken from the vocab_size field in each model's public config.json. The shared-token count is obtained by directly comparing the published tokenizer vocabularies. Method in the appendix.

Even under the Space's own containment metric — the one that scores a strict subset as 1.0 — the overlap is about 51.78%, not the 0.60 recorded in the table, and symmetric Jaccard similarity is 29.60%. This does not support tokenizer identity or near-identity.

4. CKA should not be treated as proof of weight inheritance

CKA [1] measures how similarly two models organize a shared set of inputs in representation space. Whether one checkpoint was initialized from another is a claim about training history, not a statistic about the present model. Independently trained models can converge on similar representations through shared architecture, data, and objectives.

The accompanying article [2] states this directly: a known continued-pretraining derivative scored roughly 0.25 against 0.21 for unrelated models of similar architecture — only a small separation even where inheritance is known to have occurred — and it concludes that the weights axis is supporting evidence rather than a verdict on its own. We accept that framing; we ask only that the Space's presentation match it, rather than rendering the axis as a categorical factual state.

Requested Correction

  1. Correct the architecture axis from foreign to partial. A.X K2 shares the hidden / intermediate / layer dimensions of DeepSeek-V3, but differs in head counts, dense-layer configuration, vocabulary size, and the gated attention and normalization components — which is what this Space labels elsewhere as dimensions borrowed rather than an exact match.
  2. Correct the weights axis from inherited to from-scratch, absent direct and reproducible evidence of checkpoint inheritance.
  3. Correct the resulting genotype from Ported to Adapted. This follows mechanically from (1) and (2) under the Space's own genotype rule (architecture × weights); no separate judgment is required.
  4. Distinguish CKA-based representational similarity from checkpoint inheritance history in the table and tooltips. The former is a similarity measure; the latter is a factual claim about how a model was initialized and trained.
  5. Publish the tokenizer measurement (revision, normalization) behind the 0.60 figure so the difference from the values above can be reconciled.

Corrections (1) and (2) are independent of each other, and each on its own already moves the entry out of the Ported category under the same rule.

We welcome technical criticism and reproducible analysis. Our request is only that the strength of the label match the strength of the evidence behind it.


Appendix — tokenizer measurement

Vocabulary sets were taken from the published tokenizer.json of each model and compared directly as sets of token strings. Containment is |A ∩ B| / min(|A|, |B|), the metric defined in the accompanying article; Jaccard is |A ∩ B| / |A ∪ B|. Revisions used: A.X K2 7b3969c2a84b43c03718b9acc82e15a68b1a4c5a, DeepSeek-V3 e815299b0bcbac849fa540c768ef21845365c9eb.

References

[1] Kornblith, Simon, et al. "Similarity of neural network representations revisited." International Conference on Machine Learning, PMLR, 2019.

[2] https://huggingface.co/blog/mayafree/model-dna

·

On the architecture axis.

Our architecture assessment was not an inference from resemblance. It rested on counts that anyone can reproduce from the published files, and we think it is worth stating them precisely.

Against the 94,172 tensors listed in A.X-K2's model.safetensors.index.json, tensor names are identical for 93,382 (99.2%) with Kimi-K2-Base, 90,721 (96.3%) with DeepSeek-V3.2-Exp, and 90,294 (95.9%) with DeepSeek-V3. At configuration level, A.X-K2 carries all twenty DeepSeek-family-specific keys — q_lora_rank, kv_lora_rank, qk_nope_head_dim, qk_rope_head_dim, v_head_dim, n_routed_experts, n_shared_experts, moe_intermediate_size, first_k_dense_replace, moe_layer_freq, n_group, topk_group, topk_method, scoring_func, routed_scaling_factor, norm_topk_prob, num_experts_per_tok, index_head_dim, index_n_heads, index_topk — and shares fourteen non-obvious constants simultaneously with DeepSeek-V3, V3.2-Exp, Kimi-K2-Base and your own A.X-K1: hidden 7168, intermediate 18432, 61 layers, q_lora 1536, kv_lora 512, qk_nope 128, qk_rope 64, v_head 128, moe_intermediate 2048, 8 experts per token, 1 shared expert, sigmoid scoring, noaux_tc, rms_eps 1e-6. The sparse-attention indexer constants (index_head_dim 128, index_n_heads 64, index_topk 2048) match the DeepSeek V3.2 family exactly, as do the corresponding tensor shapes.

Where the label was wrong. "Exact-match" is not supportable and we are withdrawing it. Your figures are correct: 64 attention and KV heads against 128, one initial dense layer against three, vocabulary 163,840 against 129,280. At tensor level this shows up as o_proj [7168, 8192] against [7168, 16384] and kv_b_proj [16384, 512] against [32768, 512], and A.X-K2 additionally carries rank-16 gated-norm weights on all 61 layers with no counterpart in DeepSeek. A label of partial is the accurate one.

Where we do not think we were wrong. The measurements above describe substantial adoption of published design, and we read your filing as agreeing on this point rather than disputing it: the correction you request on this axis is foreign → partial, not foreign → self, and your model card credits DeepSeek-V3.2 for the sparse attention, Qwen for gated attention and gated norm, and Kimi K2 for the head-count finding. We will present the axis as partial adoption with per-component provenance rather than as a single-baseline match.

What this is not. Adopting a published architecture is standard practice and carries no implication of impropriety. For calibration: Kimi-K2-Base ships DeepSeek's own modeling_deepseek.py (75,769 bytes against DeepSeek's 75,741) and declares DeepseekV3ForCausalLM, and comparable routing choices — sigmoid scoring with noaux_tc balancing, routed_scaling_factor 2.5, 256 routed experts — appear in several models from unrelated organizations released over the same period. Design reuse at this scale is the field's baseline, not a deviation from it. Questions of training independence belong to the weights axis, which we treat separately and address below.

One correction to our own reading. We had attributed A.X-K2's 64 heads, 163,840 vocabulary and single dense layer to Kimi-K2. That is wrong: A.X-K1 (2025-12-29) already carries all of them, along with 61 layers, hidden 7168, q_lora_rank 1536 and routed_scaling_factor 2.5. They are your own prior generation's settings. We also note that the low tensor-name overlap between A.X-K1 and A.X-K2 (0.7%) is an artifact of storage layout — A.X-K1 stores experts stacked per layer — and not a lineage signal; we mention it so the figure is not misread in either direction.

In this post