Qwenのアーキテクチャを論文から読み解く
概要
Qwenは、Alibaba Cloud(阿里云)が開発するオープンウェイトLLMシリーズである。Qwen-1(2023年9月)からQwen-3(2025年4月)まで急速に進化し、Llama 3やMistralと並ぶオープンソースLLMの主要モデルとなった。
基盤アーキテクチャはLLaMAと同じくDecoder-Only Transformerだが、Grouped Query Attention(GQA)、Dual Chunk Attention(DCA)、大語彙トークナイザといった拡張に加え、世代ごとにQKV bias(Qwen2系)やQK-Norm(Qwen3)といったAttention安定化の工夫を取り入れ、多言語性能・長文処理・推論効率を大幅に強化している。
プロフィール
いつできたの?
- Qwen-1: 2023年9月
- Qwen-2: 2024年7月
- Qwen-2.5: 2024年9月(テクニカルレポートは2024年12月)
- Qwen-3: 2025年4月
誰が作ったの?
- 開発元:Alibaba Cloud / Qwen Team
- 開発国:中国
Qwenの核心的位置づけ:LLaMAとの対比
LLaMAの遺産を受け継ぐ
LLaMAが示した「小さいモデルを長く学習して推論コスト最適化」という思想を、Qwenはさらに推し進めた。Chinchillaの法則(パラメータ数の約20倍のトークンが最適)に対して、LLaMA-7Bは1Tトークン(約7倍のover-training)で学習したが、Qwenはこれをさらに極端にスケールしている。
データスケーリングの系譜
| モデル | 学習トークン数 | Chinchilla比(7B換算の目安) |
|---|---|---|
| LLaMA-1(2023年2月) | 1.0T〜1.4T | 約7倍 |
| Qwen-1(2023年9月) | 最大3T | 約21倍 |
| Qwen-2(2024年7月) | 7T以上 | 約50倍 |
| Qwen-2.5(2024年9月) | 18T | 約129倍 |
| Qwen-3(2025年4月) | 36T | 約257倍 |
※「Chinchilla比」はあくまで7Bモデルの最適学習量(約140Bトークン)を基準にした概算であり、各世代は複数サイズ・MoEを含むため、データスケーリングの大まかな傾向を示す目安
Qwen-2テクニカルレポートでは、7Tの高品質データセットに加えて12Tトークンのデータセットも実験したが、有意な性能向上が見られなかったと報告されている。品質閾値を下げてデータ量を増やすだけでは改善しないことを示す重要な知見であり、Qwen-2.5以降はデータの品質フィルタリングと合成データの活用に注力することでこの壁を突破している。
多言語対応という差別化軸
LLaMAは英語中心の設計だった。Qwenは最初から中国語・英語のバイリンガルを設計の中核に据え、トークナイザの語彙サイズを15万超(LLaMAの32,000の約4.7倍)と大きくすることで、多言語テキストの効率的な符号化を実現した。Qwen-2以降は約30言語、Qwen-3では119の言語・方言を明示的にサポートしている。
アーキテクチャ詳解
全体構造:LLaMAとの共通基盤
LLaMAと同じく、Decoder-Only Transformerを基盤とする。各Transformer Blockの基本的な処理フローは以下のとおり:
- 入力にRMSNormを適用(Pre-normalization)
- Grouped Query Attention(GQA)を計算(Q, KにRoPEを適用)
- Attentionの出力と入力の残差接続
- 残差接続の結果にRMSNormを適用
- SwiGLU Feed Forward Networkを計算
- FFNの出力と中間結果の残差接続
LLaMAと共通する技術要素(RMSNorm、SwiGLU、RoPE、Pre-normalization、Causal Mask)については、LLaMAの記事を参照してほしい。本記事ではQwen独自の拡張に焦点を当てる。
Grouped Query Attention(GQA)
Multi-Head Attentionの問題
LLaMA-1が採用していたMulti-Head Attention(MHA)では、すべてのAttentionヘッドがそれぞれ独立したQuery、Key、Valueの射影を持つ。ヘッド数を $h$ 、ヘッドの次元を $d_k$ とすると、K, Vのパラメータ量はそれぞれ $h \times d_k \times d_{model}$ となる。
推論時には過去のトークンのKey, Value(KVキャッシュ)をメモリに保持し続ける必要がある。バッチサイズと層数を省いた簡略式で表すと、シーケンス長を $L$ としたときのKVキャッシュのメモリ量は以下のオーダーになる:
$$
\text{KV Cache} \propto 2 \times L \times h \times d_k \times \text{precision}
$$
ヘッド数 $h$ に比例してKVキャッシュが増大するため、長いコンテキストやバッチ推論の際にメモリがボトルネックになる。
GQAの仕組み
GQA(Ainslie et al., 2023)は、Queryのヘッド数はそのまま維持し、KeyとValueのヘッド数を減らしてグループ間で共有する手法。
Queryのヘッド数を $h_Q$ 、K, Vのヘッド数を $h_{KV}$ とすると、 $h_Q / h_{KV}$ 個のQueryヘッドが1つのK, Vペアを共有する。Qwen2.5-7Bの場合:
- $h_Q = 28$(Queryヘッド数)
- $h_{KV} = 4$(K, Vヘッド数)
- グループサイズ: $28 / 4 = 7$(7つのQが1つのK, Vを共有)
KVキャッシュのメモリ量は以下のように削減される:
$$
\text{KV Cache (GQA)} \propto 2 \times L \times h_{KV} \times d_k \times \text{precision}
$$
Qwen2.5-7Bでは $h_{KV} / h_Q = 4/28 \approx 1/7$ となり、MHA比でKVキャッシュが約1/7に削減される。
Attention計算の全体像
GQAにおけるAttention計算は、通常のMHAとほぼ同じ式だが、K, Vの参照先がグループ単位で共有される点が異なる:
$$
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}} + M\right) V
$$
ここで $M$ はCausal Maskであり、位置 $i$ のトークンが位置 $i+1$ 以降を参照できないように $-\infty$ を設定する。この部分はLLaMAのMHAと同一。
各モデルサイズのGQA構成
| モデル | Layers | $h_Q$ | $h_{KV}$ | グループサイズ | $d_{model}$ |
|---|---|---|---|---|---|
| Qwen2.5-0.5B | 24 | 14 | 2 | 7 | 896 |
| Qwen2.5-7B | 28 | 28 | 4 | 7 | 3,584 |
| Qwen2.5-14B | 48 | 40 | 8 | 5 | 5,120 |
| Qwen2.5-32B | 64 | 40 | 8 | 5 | 5,120 |
| Qwen2.5-72B | 80 | 64 | 8 | 8 | 8,192 |
モデルが大きくなるほどK, Vヘッド数に対するQヘッド数の比率が大きくなり、KVキャッシュの節約効果が高まる傾向がある。
GQAの導入経緯
初代Qwen-1ではMHAを使用していた。Qwen-1.5でまず大型モデルにGQAを導入し、Qwen-2で全モデルサイズに拡大した。推論効率がモデルの実用性に直結するという判断が背景にある。
Attention安定化の工夫:QKV bias と QK-Norm
Qwenシリーズは、Attentionの学習安定性を高めるための工夫を世代ごとに変えてきた。ここはLLaMAとの大きな差分であると同時に、Qwen内部でも進化している部分なので、世代を分けて整理する。
Qwen2系のQKV bias
Qwen1.5/2/2.5のアーキテクチャ仕様には「Attention QKV bias」が含まれる。これはQuery、Key、Valueの線形射影にバイアス項を追加するもので、数式では以下のようになる:
$$
Q = xW_Q + b_Q, \quad K = xW_K + b_K, \quad V = xW_V + b_V
$$
LLaMAはバイアスなし( $Q = xW_Q$ )で設計されている。Qwen2テクニカルレポートでは、PaLM流に全体のバイアスを除去しつつ、QKV層にだけバイアスを残すことで、長文への外挿(length extrapolation)を改善する狙いがあったとされる。バイアスを加えることで射影の自由度が増す一方、パラメータ数はわずかに増える。
Qwen3でのQKV bias廃止とQK-Norm導入
Qwen3テクニカルレポート(arXiv:2505.09388)では、Qwen2で使われていたQKV biasを廃止し、代わりにQK-Norm(Dehghani et al., 2023)をAttention機構に導入して学習安定性を確保したと明記されている。Qwen3 denseモデルのアーキテクチャはQwen2.5に準じつつ(GQA・SwiGLU・RoPE・pre-norm付きRMSNorm)、このAttention部分が更新された点が大きな違いである。
QK-Normは、QueryとKeyのベクトルを内積を取る前に正規化する手法で、特にFP16精度での数値オーバーフローを抑える効果がある。Qwen2はFP16でのオーバーフローが起きやすかったことが知られており、QK-Normの導入によりエッジ環境を含む推論時の数値安定性が大きく改善した。
数式のイメージとしては、正規化したQ・Kを用いてスコアを計算する:
$$
\text{score} = \frac{\text{Norm}(Q),\text{Norm}(K)^T}{\sqrt{d_k}}
$$
つまり「QKV bias(Qwen2系)→ QK-Norm(Qwen3)」という形で、Attentionの安定化手段そのものが世代で置き換わっている。
Sliding Window Attention と Full Attentionのハイブリッド(主にQwen1.5/2)
Full Attentionの計算コスト
標準的なFull Attention(全トークン間のAttention)は、シーケンス長 $L$ に対して計算量が $O(L^2)$ でスケールする。コンテキスト長が32Kや128Kになると、この二乗的なコストが問題になる。
ハイブリッド構成
Qwen1.5/2では、一部の層にSliding Window Attention(SWA)を、残りの層にFull Attentionを配置するハイブリッド構成が採用された。
SWAでは、各トークンが固定サイズのウィンドウ $w$ 内のトークンのみを参照する:
$$
\text{SWA: 位置 } i \text{ は位置 } \max(0, i-w) \text{ から } i \text{ までを参照}
$$
計算量は $O(L \times w)$ に削減される。ウィンドウの外の長距離依存はFull Attention層が担当し、局所的なパターンの学習はSWA層が効率的に処理する。
ただし、長文拡張の主役はSWAではなく後述のDCA + YARNであり、Qwen2.5/3ではSWAは前面に出ておらず、DCAベースの長文処理が中心になっている点に注意。SWAは「Qwenが試した工夫の一つ」として捉えるのが正確である。
Dual Chunk Attention(DCA):長文処理の中核
RoPEの長距離問題
RoPEは位置 $m$ のトークンに対して角度 $m \times \theta_i$ の回転を適用する。しかしシーケンスが極端に長くなると、角度の累積値が大きくなり、学習時に経験していない角度範囲に達してしまう。結果として、遠く離れたトークン間のAttentionスコアが不安定になる。
DCAの仕組み
Dual Chunk Attention(An et al., 2024)は、長いシーケンスをチャンク単位で分割し、2種類の相対位置を別々に計算して統合する手法:
- チャンク内相対位置(Intra-chunk): 同一チャンク内のトークン間の位置関係。通常のRoPEと同じ。
- チャンク間相対位置(Inter-chunk): 異なるチャンク間のトークン間の位置関係。チャンク単位でのオフセットを用いる。
入力がチャンクサイズ以下の場合、DCAは通常のAttentionと完全に同一の結果を返す。つまり、短い入力では追加コストなし、長い入力でのみ効果を発揮する設計。
Qwen2テクニカルレポートでは、DCAとYARN(Yet another RoPE extensioN)を組み合わせることで、最大131,072トークン(128K)のコンテキスト長を実現したと報告されている。DCAはQwen2.5/3でも長文処理の中核として継続採用されている。
RoPEの拡張:ABF技法
Qwen2.5以降では、RoPEのベース周波数を10,000から1,000,000に引き上げるABF(Adjusted Base Frequency)技法が導入された。
RoPEにおける次元 $i$ の角度周波数は以下で定義される:
$$
\theta_i = \frac{1}{b^{2i/d}}
$$
ここで $b$ はベース周波数、 $d$ は次元数。 $b$ を大きくすると各次元の回転速度が遅くなり、同じ位置差に対する角度変化が小さくなる。これにより、長いシーケンスでも角度の累積値が学習時の範囲内に収まりやすくなる。
事前学習では4,096トークンのコンテキスト長で開始し、最終段階で32,768トークンに拡張するアプローチを取っている。ABF + DCA + YARNの組み合わせにより、推論時にはさらに128Kトークン(Qwen2.5-1Mバリアントでは1Mトークン)まで外挿可能。
トークナイザ:大語彙による多言語効率化
LLaMAとの設計思想の違い
| 項目 | LLaMA-1 | Qwen |
|---|---|---|
| 手法 | SentencePiece BPE | tiktoken(Byte-Level BPE) |
| 語彙サイズ | 32,000 | 151,646(Qwen2.5)/151,669(Qwen3) |
| 対象言語 | 英語中心 | 多言語(中英バイリンガル中心) |
| 数値処理 | 1桁ずつ分割 | BPEの学習結果に依存 |
※語彙サイズは世代で微妙に異なる。Qwen2.5系は151,646、Qwen3系は151,669が使われている。
Byte-Level BPEの特徴
LLaMAのSentencePieceはUnicodeコードポイント上でBPEを適用し、未知の文字はバイト列にフォールバックする。一方、QwenのtiktokenはUTF-8バイト列に直接BPEを適用する。
この違いにより:
- 未知トークンが存在しない: すべてのテキストがバイト列として表現可能
- 多言語テキストの効率性: 語彙サイズが大きいため、中国語や日本語のテキストを少ないトークン数で符号化できる。目安として英語は1トークン≒3〜4文字、中国語は1トークン≒1.5〜1.8文字
大語彙のトレードオフ
語彙サイズ $V$ の増大は、Embedding層とOutput層のパラメータ数に直接影響する:
$$
\text{Embedding params} = V \times d_{model}
$$
例えば $d_{model} = 3,584$(Qwen2.5-7B)の場合、語彙サイズ151,646で約5.4億パラメータがEmbedding層だけで消費される。総パラメータのうちかなりの割合がEmbedding由来となり、小型モデルほどこの比率が大きくなるため、Qwen2ではQwen2-0.5Bなどの小型モデルでEmbedding層の重み共有(Tied Embedding)を採用している。
Qwen-3の新要素
MoE(Mixture of Experts)
Qwen-3ではMoEバリアント(Qwen3-30B-A3B、Qwen3-235B-A22B)が導入された。Qwen3-235B-A22Bの構成:
- 総パラメータ: 235B
- アクティブパラメータ: 22B(トークンあたり)
- エキスパート数: 128
- トークンあたりのアクティブエキスパート数: 8
- 共有エキスパート: なし(Qwen2-MoEとの違い)
- 負荷分散: Global-batch load balancing loss
全エキスパートのうち少数のみをアクティベートすることで、推論時の計算量は22B相当に抑えつつ、235Bの表現力を活用できる。
ハイブリッド思考モード(Thinking / Non-thinking)
Qwen-3の最大の特徴は、1つのモデルがthinkingモード(Chain-of-Thought的な深い推論)とnon-thinkingモード(即座の応答)を切り替えられる点。OpenAIのo1/o3系が示した推論時計算スケーリング(test-time compute scaling)の流れを汲む。
学習は以下のように行われる:
- Long CoT Cold Start: 大規模なChain-of-Thoughtデータでthinking能力を獲得
- RL(強化学習)によるモード統合: thinking/non-thinking両方のデータでGRPO(Group Relative Policy Optimization、DeepSeek発の手法)を適用し、タスクの複雑さに応じたモード切り替えを学習
thinking budgetという仕組みにより、ユーザーが推論に使うトークン数を制御でき、簡単な質問には高速に、複雑な問題には時間をかけて回答する適応的な振る舞いを実現している。
学習データと学習手法
データ品質フィルタリング
Qwenのテクニカルレポートで一貫して強調されているのが、多段階のデータ品質パイプライン:
- 言語フィルタリング: 対象言語のテキストを選別
- 重複排除(Deduplication): 同一・類似テキストの除去
- 品質スコアリング: パープレキシティベースおよびモデルベースのフィルタで低品質テキストを除去
- 安全性フィルタリング: 有害コンテンツの除去
Qwen-2.5以降は合成データ(LLMが生成したデータ)も本格的に活用。数学はQwen2.5-Math、コードはQwen2.5-Coderが生成した教科書・問題集・コードスニペットを学習データに含めている。Qwen-3ではさらにQwen2.5-VLを使ってPDF文書からテキストを抽出するマルチモーダルなデータパイプラインも導入された。
3段階の事前学習(Qwen-3)
| 段階 | トークン数 | コンテキスト長 | 目的 |
|---|---|---|---|
| S1(General) | 30T以上 | 4,096 | 基礎的な言語能力・汎用知識の獲得 |
| S2(Reasoning) | 約5T | 4,096 | STEM・コード・推論の強化 |
| S3(Long Context) | 数千億 | 32,768 | 長文処理能力の獲得 |
S3では、16,384〜32,768トークンのテキストが75%、4,096〜16,384トークンのテキストが25%という配分のコーパスを使用。RoPEのベース周波数をABFで引き上げ、YARN + DCAの導入により、推論時に128Kトークンまでの外挿を可能にしている。
結果と意義
LLaMAとの構造的差分まとめ
| 要素 | LLaMA-1 | Qwen-2 / 2.5 | Qwen-3 |
|---|---|---|---|
| Attention | Multi-Head Attention(MHA) | Grouped Query Attention(GQA) | GQA |
| Attention安定化 | バイアスなし | QKV bias あり | QKV bias 廃止 + QK-Norm |
| Sliding Window | なし | 一部の層でSWA(主にQwQ1.5/2系) | DCA中心(SWAは前面に出ない) |
| 長文拡張 | なし(2Kコンテキスト) | DCA + YARN + ABF(128K〜1M) | DCA + YARN + ABF(128K〜) |
| トークナイザ | SentencePiece BPE(32K語彙) | tiktoken BBPE(151,646) | tiktoken BBPE(151,669) |
| 活性化関数 | SwiGLU | SwiGLU(同一) | SwiGLU(同一) |
| 正規化 | RMSNorm(Pre-norm) | RMSNorm(Pre-norm) | RMSNorm(Pre-norm) |
| 位置埋め込み | RoPE | RoPE + ABF拡張 | RoPE + ABF拡張 |
| MoE | なし | Qwen2にMoEあり | 128エキスパート・8アクティブ |
オープンソースLLMにおけるQwenの位置
Qwen-2.5-72B-Instructは、約5倍のサイズ(405B/72B≒5.6倍)であるLlama-3-405B-Instructに対し、ほとんどのベンチマークで匹敵または上回る性能を示した。Qwen-3ではさらに「同じサイズのQwen-3ベースモデルが、1サイズ上のQwen-2.5ベースモデルと同等性能」を達成している(例: Qwen3-8B-Base ≒ Qwen2.5-14B-Base)。
LLaMAが「小さいモデルでも十分な学習で大きいモデルに匹敵する」ことを示した出発点だとすれば、Qwenはその思想をデータスケーリング・アーキテクチャ改良・多言語対応という3軸で発展させた到達点の一つと言える。
参考文献
- Bai, J. et al. (2023). "Qwen Technical Report." arXiv:2309.16609
- Yang, A. et al. (2024). "Qwen2 Technical Report." arXiv:2407.10671
- Yang, A. et al. (2024). "Qwen2.5 Technical Report." arXiv:2412.15115
- Qwen Team (2025). "Qwen3 Technical Report." arXiv:2505.09388
- Ainslie, J. et al. (2023). "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints." arXiv:2305.13245
- An, C. et al. (2024). "Training-Free Long-Context Scaling of Large Language Models." arXiv:2402.17463
- Peng, B. et al. (2023). "YaRN: Efficient Context Window Extension of Large Language Models." arXiv:2309.00071
- Dehghani, M. et al. (2023). "Scaling Vision Transformers to 22 Billion Parameters." PMLR(QK-Normの出典)
- Su, J. et al. (2021). "RoFormer: Enhanced Transformer with Rotary Position Embedding." arXiv:2104.09864
- Shazeer, N. (2020). "GLU Variants Improve Transformer." arXiv:2002.05202
- Touvron, H. et al. (2023). "LLaMA: Open and Efficient Foundation Language Models." arXiv:2302.13971