deepseek-ai/DeepSeek-V3 解析記録
要旨
- 規模:約6,845億個の数値(パラメータ)から成る。保存ファイルの大きさは約689GB。
- 構成:入力のたびに、256個の専門家(エキスパート)から8個だけを選んで用いる混合エキスパート(MoE)モデルである。全体約6,845億のうち、1回の計算で用いられるのは約375億である。パラメータの約96%は専門家群(エキスパート)、約2%は先読み予測部(MTP)、約2%は文脈を参照する部分(アテンション)に割り当てられている。
- 日本語の扱い:日本語では1トークンに約1.4文字が収まる。英語では1トークンに約4.2文字が収まる。同じ文字数を処理するのに、日本語は英語の約3.0倍のトークンを要する。語彙約13万語のうち、かな・漢字を含む語は36,086語である。
- 一度に扱える長さ:config に書かれた上限(max_position_embeddings)は163,840トークンであり、日本語でおよそ230,000字、英語でおよそ690,000字に相当する。
- 数値の偏り:モデル内部の数値は7,168個を1組として流れる。そのうち番号2010の位置は、全61層すべてで、外れ値(極端に大きな値)が多く現れる位置に入っていた。番号2010は、正規化層の重みが極端な値をとる位置の集計にも現れた(245個の正規化層のうち98個)。この種の偏りは、一般に、モデルを圧縮(量子化)した際の精度低下の要因とされる。
一行要約:MoE(256エキスパート中8個稼働)、deepseek_v3、61層、総パラメータ 684.49B、稼働 37.51B、MLA、文脈長 163,840、語彙 129,280
基本情報
- モデル:deepseek-ai/DeepSeek-V3(リビジョン
e815299b0bcb、config.json) - ライセンス:記載なし
- base_model の宣言:なし
- 保存形式:F8_E4M3 680.57B、BF16 3.92B、F32 41.56M
仕組み(段階0)
部位別パラメータ数
safetensors のヘッダにある形状から数えた値(実測)。
| 部位 | パラメータ数 | 割合 |
|---|---|---|
| エキスパート | 653,908,770,816 | 95.53% |
| MTP(先読み予測) | 13,463,426,304 | 1.97% |
| アテンション | 11,413,422,080 | 1.67% |
| 共有エキスパート | 2,554,331,136 | 0.37% |
| FFN(密) | 1,189,085,184 | 0.17% |
| 埋め込み | 926,679,040 | 0.14% |
| 出力層 | 926,679,040 | 0.14% |
| ルーター | 106,445,312 | 0.02% |
| 正規化 | 1,006,592 | 0.00% |
構造
config.json の値。
| 項目 | 値 |
|---|---|
| model_type / architectures | deepseek_v3 / DeepseekV3ForCausalLM |
| 層数 | 61 |
| 隠れ次元 | 7,168 |
| FFN 中間次元 | 18,432 |
| アテンション方式 | MLA |
| ヘッド数 / KV ヘッド数 / ヘッド次元 | 128 / 128 / 56 |
| MLA の設定 | q_lora_rank=1536, kv_lora_rank=512, qk_rope_head_dim=64, qk_nope_head_dim=128, v_head_dim=128 |
| スライディングウィンドウ | —(use_sliding_window=—) |
| 層の種類(layer_types) | — |
| RoPE θ | 10,000 |
| RoPE スケーリング | {'beta_fast': 32, 'beta_slow': 1, 'factor': 40, 'mscale': 1.0, 'mscale_all_dim': 1.0, 'original_max_position_embeddings': 4096, 'type': 'yarn'} |
| 部分回転(partial_rotary_factor) | — |
| 文脈長(max_position_embeddings) | 163,840 |
| 入出力埋め込みの共有 | いいえ |
| 活性化関数 | silu |
| 正規化の ε | 1.000e-06 |
MoE の構成
エキスパート数は config とテンソル名の両方から(MTP の層は除く)。稼働パラメータ数は「全体 − MTP − エキスパート部分 + エキスパート部分×稼働数÷エキスパート数」で計算した値(計算)。
| 項目 | 値 |
|---|---|
| エキスパート数(config) | 256 |
| エキスパート数(テンソル名から数えた数:層数) | 256:58層 |
| 1トークンあたりの稼働数 | 8 |
| 共有エキスパート | 1 |
| MoE 層の数 | 58 |
| 先頭の密な層(first_k_dense_replace) | 3 |
| エキスパート部分のパラメータ数 | 653.95B |
| 稼働パラメータ数 | 37.51B |
| MTP のパラメータ数(稼働数から除いた分) | 13.46B |
config と実体の突き合わせ
config.json の値と、実際のテンソル形状を並べたもの(実測)。
| 項目 | config | 実体 | 一致 | 実体の出どころ |
|---|---|---|---|---|
| vocab_size | 129,280 | 129,280 | はい | model.embed_tokens.weight |
| hidden_size | 7,168 | 7,168 | はい | model.embed_tokens.weight |
| num_hidden_layers | 61 | 61 | はい | 最大の層番号+1(MTP層を除く) |
| intermediate_size | 18,432 | 18,432 | はい | model.layers.0.mlp.gate_proj.weight |
| tie_word_embeddings(出力層テンソルが無い) | いいえ | いいえ | はい | テンソル一覧 |
| num_experts | 256 | 256 | はい | テンソル名 |
トークナイザ
固定の日本語文・英語文(測定条件を参照)を、特殊トークンを付けずに分割した結果(実測)。「文字の途中で切れたトークン」は、1トークン単独で復号すると壊れた文字(U+FFFD)になるトークンの割合。
| 文 | 文字数 | トークン数 | 文字/トークン | バイト/トークン | 文字の途中で切れたトークン | 復号で元に戻る |
|---|---|---|---|---|---|---|
| 日本語 | 449 | 316 | 1.421 | 4.256 | 3.2% | はい |
| 英語 | 1,201 | 284 | 4.229 | 4.327 | 0.0% | はい |
語彙 128,815 個のうち、かな・漢字を1文字以上含むもの 36,086 個(28.01%)、2文字以上含むもの 30,674 個(読み込み:tokenizers)。
特殊トークンとチャット書式
特殊トークン 804 個。BOS:<|begin▁of▁sentence|>、EOS:<|end▁of▁sentence|>。チャットテンプレート:あり(2145 文字、sha256 先頭 3b8267e54b67)。
思考タグ:いいえ、ツール呼び出し:はい、FIM:いいえ、画像用トークン:いいえ(特殊トークン名とテンプレート中の文字列を探した結果)。
特殊トークン一覧
<|begin▁of▁sentence|>, <|end▁of▁sentence|>, <|▁pad▁|>, <|place▁holder▁no▁0|>, <|place▁holder▁no▁1|>, <|place▁holder▁no▁2|>, <|place▁holder▁no▁3|>, <|place▁holder▁no▁4|>, <|place▁holder▁no▁5|>, <|place▁holder▁no▁6|>, <|place▁holder▁no▁7|>, <|place▁holder▁no▁8|>, <|place▁holder▁no▁9|>, <|place▁holder▁no▁10|>, <|place▁holder▁no▁11|>, <|place▁holder▁no▁12|>, <|place▁holder▁no▁13|>, <|place▁holder▁no▁14|>, <|place▁holder▁no▁15|>, <|place▁holder▁no▁16|>, <|place▁holder▁no▁17|>, <|place▁holder▁no▁18|>, <|place▁holder▁no▁19|>, <|place▁holder▁no▁20|>, <|place▁holder▁no▁21|>, <|place▁holder▁no▁22|>, <|place▁holder▁no▁23|>, <|place▁holder▁no▁24|>, <|place▁holder▁no▁25|>, <|place▁holder▁no▁26|>, <|place▁holder▁no▁27|>, <|place▁holder▁no▁28|>, <|place▁holder▁no▁29|>, <|place▁holder▁no▁30|>, <|place▁holder▁no▁31|>, <|place▁holder▁no▁32|>, <|place▁holder▁no▁33|>, <|place▁holder▁no▁34|>, <|place▁holder▁no▁35|>, <|place▁holder▁no▁36|>, <|place▁holder▁no▁37|>, <|place▁holder▁no▁38|>, <|place▁holder▁no▁39|>, <|place▁holder▁no▁40|>, <|place▁holder▁no▁41|>, <|place▁holder▁no▁42|>, <|place▁holder▁no▁43|>, <|place▁holder▁no▁44|>, <|place▁holder▁no▁45|>, <|place▁holder▁no▁46|>, <|place▁holder▁no▁47|>, <|place▁holder▁no▁48|>, <|place▁holder▁no▁49|>, <|place▁holder▁no▁50|>, <|place▁holder▁no▁51|>, <|place▁holder▁no▁52|>, <|place▁holder▁no▁53|>, <|place▁holder▁no▁54|>, <|place▁holder▁no▁55|>, <|place▁holder▁no▁56|> …
重み(段階1)
全 91,991 テンソルのうち 46,183 個を解析(計算時間 10.8 分)。各テンソルを fp32 に変換して計算した。 解析の対象外としたテンソル:FP8 の倍率(重みではない)(45808 個)。 MTP(先読み予測)の部分(層 61)のテンソル 788 個は、解析はしたが、本体の層だけを数えるため、以下の層ごとの推移・突出チャネル・正規化層・埋め込み・エキスパート間の似かた・極端値の集計からは除いた。 FP8 で保存された重み(45,808 個)は、128×128 ブロックごとの倍率を掛けて fp32 に戻してから計算した。
層ごとの推移
RMS は要素の二乗平均の平方根。最大絶対値÷RMS は、最も大きい要素が典型的な大きさの何倍か。超過尖度は分布の裾の重さで、正規分布なら 0(いずれも実測)。
最大値を取った行列:最大絶対値÷RMS 401.535(model.layers.60.mlp.experts.53.down_proj.weight)、超過尖度 3611.59(model.layers.60.mlp.experts.53.down_proj.weight)、外れ値の割合 0.781%(model.layers.36.mlp.gate.e_score_correction_bias)。
外れ値と突出チャネル
外れ値は、同じ行列の標準偏差の 6 倍を超える要素。隠れ次元を入力に取る行列ごとに外れ値の多い列(上位 16 列)を拾い、同じ列が何層に現れたかを数えた(実測)。
| 隠れ次元の列 | 現れた層数(全 61 層中) |
|---|---|
| 2010 | 61 |
| 2372 | 61 |
| 2784 | 61 |
| 5426 | 61 |
| 2785 | 60 |
| 5070 | 60 |
| 317 | 59 |
| 2564 | 59 |
| 3500 | 59 |
| 5729 | 59 |
正規化層の重み
正規化層 245 個それぞれで、中央値から最も離れた次元(上位 16 個)を拾い、同じ次元が何個の正規化層に現れたかを数えた(実測)。
| 次元 | 現れた正規化層の数 |
|---|---|
| 6441 | 106 |
| 6739 | 103 |
| 2010 | 98 |
| 3500 | 95 |
| 2785 | 94 |
| 1364 | 90 |
| 1969 | 87 |
| 5426 | 83 |
| 317 | 81 |
| 7000 | 80 |
上の突出チャネル上位10列と重なる次元:317, 2010, 2785, 3500, 5426。
実効ランク
安定ランク=(フロベニウスノルムの二乗)÷(最大特異値の二乗)。行列の短辺で割り、0〜1 にそろえた。最大特異値はべき乗法(30 回)で求めた近似値(推定)。
部位ごとの安定ランク÷短辺:
| 部位 | 行列数 | 最小 | 中央値 | 最大 | 最小の行列 |
|---|---|---|---|---|---|
| エキスパート | 44544 | 7.6307e-04 | 0.0744 | 0.317 | model.layers.14.mlp.experts.202.down_proj.weight |
| MTP(先読み予測) | 780 | 0.0022 | 0.0255 | 0.3177 | model.layers.61.mlp.shared_experts.up_proj.weight |
| アテンション | 305 | 0.0023 | 0.0431 | 0.4038 | model.layers.2.self_attn.o_proj.weight |
| 共有エキスパート | 174 | 5.6018e-04 | 0.0188 | 0.1588 | model.layers.3.mlp.shared_experts.gate_proj.weight |
| ルーター | 58 | 0.009 | 0.0111 | 0.0172 | model.layers.42.mlp.gate.weight |
| FFN(密) | 9 | 1.5599e-04 | 9.9366e-04 | 0.0029 | model.layers.0.mlp.gate_proj.weight |
| 埋め込み | 1 | 0.0166 | 0.0166 | 0.0166 | model.embed_tokens.weight |
| 出力層 | 1 | 0.0125 | 0.0125 | 0.0125 | lm_head.weight |
埋め込みの行
語彙ごとの埋め込み行ベクトルの長さ(ノルム)の分布と、ノルムの小さい行(下位 0.1%)(実測)。
model.embed_tokens.weight(129,280 行)
| 最小 | 下位0.1% | 下位1% | 中央値 | 上位1% | 最大 |
|---|---|---|---|---|---|
| 0.4932 | 0.5055 | 1.5467 | 3.196 | 3.9873 | 4.6582 |
ノルムの小さい行(下位 0.1% の 130 行のうち小さい順に20件):128963:''(0.4932)、128957:''(0.4945)、129261:''(0.4974)、129269:''(0.4977)、128926:''(0.4978)、129118:''(0.498)、128940:''(0.498)、128933:''(0.4985)、129017:''(0.4992)、128954:''(0.4996)、129203:''(0.4998)、129125:''(0.5)、129062:''(0.5)、128888:''(0.5002)、128894:''(0.5004)、129012:''(0.5008)、129046:''(0.5008)、128986:''(0.5008)、128969:''(0.5009)、128989:''(0.5011)
lm_head.weight(129,280 行)
| 最小 | 下位0.1% | 下位1% | 中央値 | 上位1% | 最大 |
|---|---|---|---|---|---|
| 1.0945 | 1.1017 | 4.0422 | 6.7939 | 8.4443 | 10.521 |
ノルムの小さい行(下位 0.1% の 130 行のうち小さい順に20件):129189:''(1.0945)、129067:''(1.0965)、129136:''(1.0967)、128842:''(1.0968)、129277:''(1.097)、128944:''(1.0972)、129044:''(1.0975)、129208:''(1.0975)、129269:''(1.098)、128927:''(1.0981)、128894:''(1.0983)、129188:''(1.0985)、129180:''(1.0986)、129077:''(1.0986)、128943:''(1.0987)、129008:''(1.0987)、129059:''(1.0989)、128908:''(1.0989)、129099:''(1.0989)、128911:''(1.099)
ノルムが小さいことは、そのトークンが重要でない、あるいは学習されていないことを意味しない。
エキスパートどうしの似かた
同じ層・同じ種類の行列について、エキスパート間のコサイン類似度を 32×32 のランダム射影で推定した(推定)。全層の平均:9.8575e-04。
測定条件
- mbscope 0.2.1(結果の形式 v1)、Python 3.14.4、torch 2.13.0+cu130、safetensors 0.8.0、huggingface_hub 0.36.2、tokenizers 0.21.4、transformers 4.49.0
- 推定の基準:outlier_sigma=6.0、embed_low_pct=0.1、power_iters=30、sketch_dim=32、top_channels=16、seed=20261002
- FP8(F8_E4M3)の重みは、同名の _scale_inv(ブロックごとの倍率)を掛けて fp32 に戻してから計算
- 入力文:ja(夏目漱石『吾輩は猫である』冒頭(青空文庫 789_ruby_5639、底本:夏目漱石全集1 ちくま文庫)、sha256 先頭
5d6b40f79b6a)、en(Jane Austen, Pride and Prejudice, Chapter 1 冒頭(Project Gutenberg eBook #1342)、sha256 先頭0a714a270435) - 実行:2026-10-02T17:17:22+09:00 〜 2026-10-02T21:27:40+09:00、計算は GPU NVIDIA GeForce RTX 3090(CUDA 13.0、TF32 無効)・fp32
- 測定は mbscope 0.1.9。測定値はそのままに、2026-10-03T08:31:44+09:00 に mbscope 0.2.1 で集計し直した
- この記録の文面は mbscope 0.2.2 で作成(測定は 0.2.1)
コメント
…