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

最大絶対値÷RMS

超過尖度

最大値を取った行列:最大絶対値÷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)

コメント

…

コメントは公開されます。個人情報は書かないでください。不適切なものは削除することがあります。

← 記録の一覧へ