---
title: 【Paper&amp;Hacks vol.98】医療LLM事後学習：RL系とPinpointTuningの実験記録
tags: 
author: [松尾研LLMコミュニティ](https://www.docswell.com/user/matsuo-lab_llm)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/L71YXX44JG.jpg?width=480
description: 【Paper&amp;Hacks vol.98】医療LLM事後学習：RL系とPinpointTuningの実験記録 by 松尾研LLMコミュニティ
published: September 08, 26
canonical: https://www.docswell.com/s/matsuo-lab_llm/KJWR7M-Paper&amp;HacksVol.98
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/L71YXX44JG.jpg)



# Page. 2

![Page Image](https://bcdn.docswell.com/page/G7WGNNXZE2.jpg)

RAMEN TEAM ／ 東京大学 医療 LLM プロジェクト
医療 LLM の事後学習を複数
手法で並べて回した記録
RL 系（GRPO / GSPO / CHORD）と Pinpoint Tuning の比較実験
NEDO「AI の安全性確保に関する研究開発・検証等の推進事業 /
日本語版医療特化型 LLM の社会実装に向けた安全性検証・実証」（JPNP25006）


# Page. 3

![Page Image](https://bcdn.docswell.com/page/4JZL336LE3.jpg)

AGENDA
本日の構成
1
プロジェクト概要
目的・成果物・2 系統のアプローチ
2
共通基盤
ベースモデル / 学習環境 / 評価データ
Part A ─ RL 系手法
GRPO / GSPO / CHORD を 80B MoE で並列比較
3
4
5
3.1 アルゴリズム比較 3.2 報酬関数の設計 3.3 実験と結果 3.4 要因の考察
Part B ─ Pinpoint Tuning
Path Patching + Selective SFT の 2 段構え
4.1 diagnose：Path Patching 4.2 optimize：学習設計 4.3 結果と失敗分析
公開成果物
HuggingFace / GitHub / 技術記事


# Page. 4

![Page Image](https://bcdn.docswell.com/page/YE6WXX2MEV.jpg)

1
プロジェクト概要
2
共通基盤
SECTION 1
プロジェクト概要
何をやったプロジェクトか、成果物は何か。
1-1 プロジェクト概要
1-2 2 系統のアプローチ
3
Part A ─ RL 系手法
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GE5MXX2QE4.jpg)

1-1
プロジェクト概要
医療ドメインにおける LLM 事後学習の実験コード・分析パイプライン一式。
リポジトリ
成果物
singularitypost-training-medical
資金
NEDO
AI の安全性確保に関する
01
02
学習済みモデル 5 本
HuggingFace weblab-LLM-M
実験コード・パイプライン
RL 系 + Pinpoint Tuning 系
研究開発・検証等の推進事業
JPNP25006
03
技術記事 5 本
Qiita にて公開


# Page. 6

![Page Image](https://bcdn.docswell.com/page/9729XX4WJR.jpg)

1-2
2 系統のアプローチ
同一の学習データから 2 系統を並列に走らせ、共通の評価セットで比較する。
RL 系
Qwen3-Next-80B
医師国試データ
2001–2022
GRPO
GSPO
CHORD
評価
Post-Training
Positive
Pinpoint 系
Path Patching
Qwen3-30B-A3B
で効くヘッド特
Negative
定
専門医試験 13 科
系統
ベースモデル
サイズ
手法
RL系
Qwen3-Next-80B-A3B-Instruc
t
80B MoE
GRPO / GSPO / CHORD
Pinpoint
系
Qwen3-30B-A3B-Instruct-250
7
30B MoE（128 experts,
top-8）
Positive / Negative Pinpoint
SFT
MoE モデルへの Pinpoint Tuning は先行研究に例がなく、本プロジェクトが第一報にあたる。
igakuqa 2023–25


# Page. 7

![Page Image](https://bcdn.docswell.com/page/DJY488M97M.jpg)

1
プロジェクト概要
2
共通基盤
SECTION 2
共通基盤
両 Part で共通のベースモデル・学習環境・評価データ。
2-1 ベースモデル / 学習環境 / 評価データ
3
Part A ─ RL 系手法
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 8

![Page Image](https://bcdn.docswell.com/page/V7NYQQWDE8.jpg)

2-1
共通基盤
学習は 2022 年以前、評価は 2023–2025 年。時間軸で分離しておりデータリークはない。
ベースモデル
80B 側
Qwen3-Next-80B-A3B-Instruct
80B MoE
30B 側
Qwen3-30B-A3B-Instruct-2507
用途
データセット
期間 / 規模
RL / SFT 学習
医師国試
2001–2022
評価① igakuqa
医師国試
2023–2025 ／
N=1,122
評価② specialist
専門医試験 13 診療科
N=3,757
評価③ guideline
診療ガイドライン
—
30B MoE ／ 128 experts, top-8
学習環境
• ms-swift 3.11 + Megatron-LM
core_r0.14.0
• 8 nodes × 8 GPU（GSPO のみ 12 nodes）
学習 2001–2022 ／ 評価 2023–2025 で時間軸を分
離。評価問題が学習データに混入する余地はない。


# Page. 9

![Page Image](https://bcdn.docswell.com/page/YJ9PDDX873.jpg)

1
プロジェクト概要
SECTION 3
2
共通基盤
3
Part A ─ RL 系手法
PART A
Part A ─ RL 系手法
GRPO / GSPO / CHORD を 80B MoE で並列比較する。まず 3.1 アルゴリズム比較から。
3 アルゴリズム比較
3 報酬関数の設計
3 実験セットアップと結果
3 結果を分けた要因の考察
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GJ8D332ZJD.jpg)

PART A ／ 3.1-1
3 手法の関係
GSPO も CHORD も GRPO の派生。共通の骨格は「group ベースラインで advantage を作り、何かに掛ける」
。
GSPO
importance ratio を sequence-level に
CHORD
loss に SFT loss を μ の重みで混合
GRPO 共
通土台
手法
由来
GRPO からの差分
GRPO
DeepSeek-R1 系
（基
準）
GSPO
Qwen
ratio を token-level → sequence-level（幾何平
均）
CHORD
Trinity-RF
T
loss に SFT loss を μ の重みで混合


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LJLMVV21ER.jpg)

PART A ／ 3.1-2
GRPO
PPO の critic を捨て、同一プロンプトに対する G 個のサンプルの報酬平均をベースラインに使う。
advantage（group 内標準化）
要点
critic なし 180B でも実装・メモリの負
担が軽い
目的関数
group 内標準化 advantage 2 他
completion との相対順位が学習信号
importance ratio
KL to reference 3 β = 0.1 でベースか
らの逸脱を抑制
同じ問題を G = 16 回解かせ、
他より良かった回答を強化する。


# Page. 12

![Page Image](https://bcdn.docswell.com/page/47MYGG857W.jpg)

PART A ／ 3.1-3
GSPO
token-level ratio を系列全体の幾何平均に置き換える。その他は GRPO と共通。
sequence-level にする理由
• token-level の ratio は MoE で分散が大きい
• expert のルーティングが揺れ、その 1 token だけ跳ね
る
• 系列全体の幾何平均が跳ねを吸収する
実運用
clipping ε = 3e-4 / 4e-4
GRPO デフォルト 0.2 の 3 桁下。ratio が 1 近傍に収まる想定。
例：y₃ で expert が入れ替わり ratio が 2.5 に跳ねた場合
GRPO
y₃ の勾配寄与だけが暴れる
y1
y2
y3
y4
y5
1.0
1.1
2.5
0.9
1.0
GSPO
を全 token に均一に掛ける
y1
y2
y3
y4
y5
1.19
1.19
1.19
1.19
1.19


# Page. 13

![Page Image](https://bcdn.docswell.com/page/P7R9ZZ5ZE9.jpg)

PART A ／ 3.1-4
CHORD
GRPO loss と SFT loss を μ で凸結合する。
μ はステップごとに動くスケジューラ。
•L_GRPO：on-policy の RL loss
•L_SFT：SFT データセットに対する token-level NLL
μ スケジューラ
CHORD framework overview（Xie et al. 2025, Fig 3）
Warmup
Peak
Decay
0 → μ_peak
μ_peak を維持
→ μ_valley
SFT と RL を μ で凸結合し、さらに token-wise の重み φ(·) で SFT 側の焼き付
け強度を制御する。
今回の設定
μ_peak = 0.1
／
μ_valley = 0.01
／
decay 500 step


# Page. 14

![Page Image](https://bcdn.docswell.com/page/PJXQ99K17X.jpg)

PART A ／ 3.1-4
CHORD ─ 2 バリアントと今回の設定
論文では Chord-φ が Chord-μ を上回り、公式実装も φ 有効がデフォルト。
バリアン
ト
μ の設定
φ
Chord-μ
peak 0.9 から valley 0.05 へ
decay
無効
Chord-φ
μ = 0.1 に固定し token 単位の φ で制御
有効
今回の設定φ 無効 ＋ μ_peak = 0.1Chord-μ 系だが、μ_peak は Chord-φ 側に近
い値。経緯と帰結は 3.4-2 で扱う。
CHORD Table 1 ─ Chord-μ と Chord-φ の比較（Xie et al. 2025）
reasoning / tool-use いずれのタスクでも Chord-φ が上回る、というのが論文
側の主張。


# Page. 15

![Page Image](https://bcdn.docswell.com/page/3JK9PP5MJD.jpg)

PART A ／ 3.1-5
3 手法の比較
GSPO は advantage を掛ける相手を、CHORD は loss に足すものを変えている。骨格は共通。
観点
GRPO
GSPO
CHORD
由来
DeepSeek-R1 系
Qwen
Trinity-RF
T
GRPO からの差分
（基
準）
ratio を sequence-level
に
SFT loss を μ で混合
advantag
e
group 標準化
group 標準化
group 標準化
importance
ratio
token-leve
l
sequence-level（幾何平
均）
token-leve
l
追加ハイパラ
β, ε
ε（非常に小さ
い）
μ_peak, μ_valley, decay, φ
追加データ
不要
不要
SFT データセットが必
要
想定用途
汎用
MoE / 大規模系列
SFT 教材が手元にある場面


# Page. 16

![Page Image](https://bcdn.docswell.com/page/LE3WXXK2E5.jpg)

1
プロジェクト概要
2
共通基盤
SECTION 3.2
報酬関数の設計
RL に渡していた rule-based 報酬 2 本の中身。
3 アルゴリズム比較
3 報酬関数の設計
3 実験セットアップと結果
3 結果を分けた要因の考察
3
Part A ─ RL 系手法
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 17

![Page Image](https://bcdn.docswell.com/page/8EDK22367G.jpg)

PART A ／ 3.2-1
報酬関数（1）正解報酬
最後の [ans]…[/ans] を抜き出し、gold と完全一致すれば 1.0、それ以外は 0.0。
ANS_PATTERN = re.compile(r&quot;\ [ans\](.*?)\[/ans\]&quot;,
re.IGNORECASE | re.DOTALL)
def parse_output(output: str):
matches = list(ANS_PATTERN.finditer(output))
設計判断
accuracy と format を掛け算 gate で統合
タグ欠落 → parse 失敗 → 0.0 が自動確定
return matches[-1].group(1).strip() if matches else None
単一・複数解答を set 一致で同一視
def answer_reward(pred, gold):
「a」も「a,c」も同じ分岐で判定
if pred is None:
return 0.0
return 1.0 if pred == gold else 0.0
部分点なし・順序無視
正解か不正解かの二値のみを渡す
重み 1.5 に固定
主軸の正解信号は動かさない
実装は約 90 行。短く書けたのは、データ変換側で下ごしらえを済ませたため。
SFT / RL / eval で完全に同じフォーマットを使う。


# Page. 18

![Page Image](https://bcdn.docswell.com/page/V7PK11PZJ8.jpg)

PART A ／ 3.2-2
報酬関数（2）言語ペナルティ
ひらがな・カタカナを含まない文が 2 文連続したら 0.0、それ以外は 1.0。
def has_chinese_consecutive(text: str) -&gt; bool:
judged = [
not re.search(r&#039;[ ぁ-ヿ]&#039;, t) # ひらがな + カタカナ
for t in text.split(&quot; 。&quot;) if t
「連続」だけを罰する理由
(a)
単発の漢字語は自然
]
「心筋梗塞」
「原発性硬化性胆管炎」など専門用語は仮名を含まない。単
return any(a and b for a, b in zip(judged, judged[1:]))
発を罰すると正常な応答まで潰してしまう。
実質 2 行。
(b)
対処した現象
推論の途中から中国語モードに滑り落ちる
Qwen3 系は中国語の学習比率が高く、日本語プロンプトでも「症状表现为发热和咳嗽。
因此选择。」のように連続して湧く。
モード滑りは連文で起こる
言語モード自体が切り替わる現象だけを狙い撃ちできる。


# Page. 19

![Page Image](https://bcdn.docswell.com/page/2JVVYY2MJQ.jpg)

1
プロジェクト概要
2
共通基盤
SECTION 3.3
実験セットアップと結果
アルゴリズムと報酬が揃った。ここから実際に回した結果。
3 アルゴリズム比較
3 報酬関数の設計
3 実験セットアップと結果
3 結果を分けた要因の考察
3
Part A ─ RL 系手法
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 20

![Page Image](https://bcdn.docswell.com/page/5EGL99RXJL.jpg)

PART A ／ 3.3-1
実験セットアップ
揃っていないのは GSPO の ε・steps_per_generation・ノード数と、CHORD の SFT データ併用のみ。
ハイパラ
GRPO
GSPO
CHORD
lr / β (KL)
1e-6 /
0.1
1e-6 /
0.1
1e-6 /
0.1
ε (clip)
0.
2
3e-4 / 4e-4
0.
2
batch /
generations
512 /
16
512 /
16
512 /
16
max_length /
temp
4096 /
0.9
4096 /
0.9
4096 /
0.9
max_epoch
s
5
5
5
reward_weigh
ts
(1.5,
1.0)
(1.5,
1.0)
(1.5,
1.0)
steps_per_generati
on
5
3
5
ノード
数
8
12
8
学習データ構成の違い
GRPO / GSPO
RL データのみ
MCQ + [ans] 形式
CHORD
RL データ + SFT データ
自然言語質問 → 5 部構成の医療文
CHORD の SFT データだけ MCQ とフォーマットが異なる。
あ


# Page. 21

![Page Image](https://bcdn.docswell.com/page/4JQYWWV57P.jpg)

PART A ／ 3.3-2
結果 ─ 医師国試（N=1,122）
Base 89.5% と天井が近く、3 手法とも +0.7〜0.9 pt。統計的な有意差は出ない。
Model
202
3
202
4
202
5
All
text
only
Base 80B
87.
9
89.
8
90.
5
89.
5
93.
6
GRPO
88.
8
91.
0
90.
8
90.3
(+0.8)
94.
2
p=
0.349
GSPO
88.
5
91.
2
90.
5
90.2
(+0.7)
94.
1
p=
0.396
CHORD
89.
1
91.
0
90.
8
90.4
(+0.9)
94.
1
p=
0.282
McNemar
3 手法とも Base との差は有意ではない。天井効果で手法差を検出できない。
年度別 accuracy 推移（80B グループ）
実線は全問、破線はテキストのみ。80B の RL 系は Base を上回る


# Page. 22

![Page Image](https://bcdn.docswell.com/page/K74WKKMVE1.jpg)

PART A ／ 3.3-3
結果 ─ 専門医試験（N=3,757）
GRPO と GSPO は Base 比で有意に改善。CHORD は有意差に達しない。
Model
All
text
only
Base 80B
69.
0
73.
0
GRPO
71.1
(+2.1)
74.
8
p = 0.0013
意
有
GSPO
70.9
(+1.9)
74.
5
p = 0.0036
意
有
判定
73.
9
p = 0.119
し
有意差な
手法間の比較
CHORD
70.0
(+1.0)
p値
McNemar（vs
Base）
GRPO vs GSPO
0.77
5
GRPO vs CHORD
0.07
6
有意差なし（GRPO がやや有利な傾向）
0.12
有意差な
有意差なし
GSPO vs CHORD
改善は確認できるが、どの手法が優れているかまでは判定できない。
し
8
診療科別 Base 差分（80B）


# Page. 23

![Page Image](https://bcdn.docswell.com/page/LJ1YXX84EG.jpg)

PART A ／ 3.3-4
診療科別 ─ 最良手法は科によって入れ替わる
13 診療科中、GRPO 最良 5 科 ／ GSPO 最良 5 科 ／ CHORD 最良 3 科。
手法
特に効いた科
Base からの改善幅
最良の科数
GRPO
耳鼻科 / 神経内科 / 麻酔科 / 内科
+8.6 / +5.9 / +3.3 /
+2.1
5科
GSPO
肝臓 / 産婦人科 / 消化器 / 外科
+5.2 / +4.8 / +2.6 /
+2.0
5科
CHORD
整形外科 / 心臓外科 / 救急
+2.8 / +2.4 /
+1.7
3科
全科で一貫してリードする手法は存在しない。
診療科別 accuracy（30B・80B グループ）


# Page. 24

![Page Image](https://bcdn.docswell.com/page/GJWGNNZZ72.jpg)

1
プロジェクト概要
2
共通基盤
SECTION 3.4
結果を分けた要因の考察
数値としての結果はここまで。なぜそうなったかを掘る。
3 アルゴリズム比較
3 報酬関数の設計
3 実験セットアップと結果
3 結果を分けた要因の考察
3
Part A ─ RL 系手法
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 25

![Page Image](https://bcdn.docswell.com/page/4EZL331L73.jpg)

PART A ／ 3.4-1
GRPO と GSPO はほぼ同着
GSPO の想定効果は accuracy ではなく学習安定性に現れる性質のもの。
71.1 / 70.9
90.3 / 90.2
専門医試験
医師国家資格試験（igakuqa）
p = 0.775
McNemar：有意差なし
accuracy 差として現れなかった理由
診療科別の噛み合わせも相殺
GSPO の効果は学習安定性に出る
• GRPO は耳鼻科 (+8.6) / 神経内科 (+5.9) で伸びる
• GSPO は肝臓 (+5.2) / 産婦人科 (+4.8) で伸びる
• 総合値では両者が相殺される分布
sequence-level ratio による rollout 分散の抑制は、loss 曲線の滑らかさや
divergence 率に現れる性質のもの。今回の 5 epoch × 500-step では GRPO 側
も発散せずに収束した。


# Page. 26

![Page Image](https://bcdn.docswell.com/page/Y76WXXLM7V.jpg)

PART A ／ 3.4-2
CHORD が有意差に達しなかった要因
SFT データのフォーマットが評価タスクと乖離していたことが主因。
項目
GRPO/GSPO 用 RL データ
CHORD 用 SFT データ
評価データ
入力
MCQ 選択肢
自然言語質問
MCQ 選択肢
出力
[ans]a[/ans] タグ形
式
5 部構成の医療文（数百
字）
[ans]a[/ans] タグ形
式
何が起きていたか
φ 有効の予備走も同根
1 SFT loss が自然言語 QA のクセを学習させる
• φ は迷っている token に SFT を強く焼き付ける
• 評価と乖離した状態では精度を下げる方向に働く
• 本走は φ を無効にして固定
2 評価と GRPO 側は [ans]a[/ans] を要求する
3 学習方向と評価方向が別のフォーマットに向く
RL 側でフォーマットを固定するなら、SFT データも同じ形式で作るべきだった。


# Page. 27

![Page Image](https://bcdn.docswell.com/page/G75MXX1Q74.jpg)

PART A ／ 3.4-3
診療科別ばらつきの解釈
説明はつくが、
母数は「科ごとに手法を使い分ける」結論を出すには足りない。
仮説
手法ごとの噛み合わせ（観察にとどまる解釈）
Base の到達度と残余改善余地の関数
GRPO ─ 耳鼻科 +8.6
Base が元々弱い科ほど改善余地が大きい。耳鼻科
Base が 13 科中最低。token-level ratio が低頻度の専門用語に学習圧を通しやすい
54.7% ／ 心臓外科 63.3% ／ 神経内科 62.9%
報酬信号は診療科を区別しない
GSPO ─ 肝臓 +5.2 / 産婦人科 +4.8
sequence-level ratio が長い推論を一括評価する性質と、複数症状の統合判断が整合
正解／不正解の二値のみ。手法ごとに動きやすい知識回路の癖が、科別スコア
に間接的に現れる。
CHORD ─ 整形外科 / 心臓外科 / 救急
3 手法 × 13 科の 39 セルでは、科ごとに手法を使い分ける結論を出すには母
数が足りない。
SFT データの「症状→対応→受診目安」構造が、手術系・急性期系と噛み合った


# Page. 28

![Page Image](https://bcdn.docswell.com/page/9J29XX1WER.jpg)

1
プロジェクト概要
SECTION 4
2
共通基盤
3
PART B
Part B ─ Pinpoint Tuning
Path Patching + Selective SFT の 2 段構え。まず diagnose 側から。
4 diagnose：Path Patching
4 optimize：学習設計
4 結果と失敗分析
Part A ─ RL 系手法
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 29

![Page Image](https://bcdn.docswell.com/page/DEY488Z9JM.jpg)

PART B ／ 4.1-1
Chen24 の 2 段構え framework
diagnose → optimize の枠組みを医療 QA タスクへ移植する。対象は Qwen3-30B-A3B（1,536 head）。
① diagnosePath
② optimize そのヘッドだ
Patching で効く
け狙って学習 Pinpoint
ヘッドを特定
Tuning
参照論文
Path Patching の原点
Wang et al. (2022)
arXiv:2211.00593
翻訳メカニズム
Zhang et al. (2025)
arXiv:2502.11806
Sycophancy ／ 2 段構えの借用元
Chen et al. (2024)
arXiv:2409.01658
Chen24 Fig 1 ─ Pinpoint Tuning の 2 段構え
MoE モデルへの Pinpoint Tuning は先行研究に例がなく、freeze 粒度
の設計空間を最初の一手として探索した記録にあたる。


# Page. 30

![Page Image](https://bcdn.docswell.com/page/VJNYQQ3D78.jpg)

PART B ／ 4.1-2
Path Patching の考え方
別の入力を通したときの活性値を対象ヘッドの位置にだけ差し込み、出力の変化量を測る。
正常な forward
X_f
Head 0
Head 1
Head 2
y_f
「head を 1 個」の正確な意味
モデルは Layer × Head の 2 次元格子。
全マスを 1 個ずつ順に潰す。
Head 1 の活性値だけ、壊した問題文から得たものに差し替えた forward
X_f
Head 0
Head 1
差し替え
Head 2
ỹ_f
•X_f：正常な問題文 ／ X_cf：壊した問題文
•impact は元のロジット差分に対する相対変化
48 Layer × 32 Head ＝ 1,536 head
Qwen3-30B-A3B（MoE, 128 experts, top-8）
1,536 マス分をまとめると、Layer × Head の 2 次元 impact マップが得られる。


# Page. 31

![Page Image](https://bcdn.docswell.com/page/YE9PDD98J3.jpg)

PART B ／ 4.1-3
医療 QA への写像
反事実入力を 2 種類つくり、
「医療知識」と「問いの構造」を別々に炙り出す。
反事実的入力
内容
例
メトリク
ス
医療用語 → 一般語
医療知識の手がかりを削る
「胃癌」→「疾
患」
medical_impac
t
推論キーワード置換
問いの構造を歪める
「誤っているのはどれか」→「診断されるのはどれ
か」
reasoning_impa
ct
impact の定義
符号の解釈
impact &gt; 0
元の head は正解と誤答の差を縮める方向に効いていた
impact &lt; 0
元の head は差を広げる方向に効いていた


# Page. 32

![Page Image](https://bcdn.docswell.com/page/GE8D339ZED.jpg)

PART B ／ 4.1-4
計算規模と並列化
1,536 head × 6,478 サンプル。素朴に 1 GPU で回すと数週間規模になる。
1,536
6,478
約 995 万
約 60 GB
Head 数
サンプル数
Forward pass 数
モデルロード
並列化戦略
8 node × 8 GPU ＝ 64 プロセスで並列実行
• forward は互いに独立で embarrassingly
parallel
• 6,478 サンプルを 64 分割、各 101 サンプル程
度
• サンプル数で重み付け平均して統合
実行条件
• Path Patching 実行（batch=2）
：A100 80GB
必須
• 1 サンプルあたり十数秒
• Expert 側への patch は今回の対象外
128 Expert × top-8 のルーティングを持つが、Attention head 単位で測る縛りを維
持した。


# Page. 33

![Page Image](https://bcdn.docswell.com/page/LELMVVW17R.jpg)

PART B ／ 4.1-5
結果 ─ 効くヘッドの分布
1,536 head の約半数で 2 軸の符号が一致した。Positive は浅い層、Negative は深い層に集中。
集合
定義
Head 数
割合
Layer 別の集中場所
Both
Positive
medical &gt; 0 かつ reasoning &gt;
0
378
24.6
%
Both
Negative
medical &lt; 0 かつ reasoning &lt;
0
457
29.8
%
混在
符号が一致しないもの
impact 分布のスケール感
70
1
45.6
%
Both Positive
Both Negative
含む Layer 数
46 / 48
48 / 48（全層）
Top5 集中層
L24, L22, L1, L0,L26
L45, L47, L44, L16,L43
傾向
浅い層 + 中間層
深い層
Both Positive
Both Negative
浅い層 ＝ 用語のマッチングなど表面パターン処理
medical 範囲
+0.0000 〜 +0.0494
−0.6238 〜 −0.0000
深い層 ＝ MCQ の推論・回答生成
medical 平均
+0.0061
−0.0075
reasoning 範囲
+0.0000 〜 +0.1291
−0.1965 〜 −0.0000
reasoning 平均
+0.0067
−0.0076
impact の絶対値は Negative 側のほうが大きい。
最大は Layer 9 Head 3 の medical = −0.624。


# Page. 34

![Page Image](https://bcdn.docswell.com/page/4JMYGG95JW.jpg)

PART B ／ 4.1-5
Path Patching ヒートマップ
緑枠は medical / reasoning の両軸で符号が一致した head。
Both-Positive Heads（378 個 , 24.6%）
Both-Negative Heads（457 個 , 29.8%）
L24 / L22 / L1 / L0 が上位。浅い層は用語マッチングなど表面パターン処理を担う。
L45 / L47 / L44 が上位。深い層は MCQ の推論・回答生成を担う。Zhang25 の翻訳タス
クでも同種の傾向が報告されている。


# Page. 35

![Page Image](https://bcdn.docswell.com/page/PJR9ZZGZ79.jpg)

1
プロジェクト概要
2
共通基盤
3
Part A ─ RL 系手法
SECTION 4.2
optimize ─ Pinpoint Tuning の設計
Path Patching の出力を、実際の学習にどう繋いだか。
4 diagnose：Path Patching
4 optimize：学習設計
4 結果と失敗分析
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 36

![Page Image](https://bcdn.docswell.com/page/PEXQ99X1JX.jpg)

PART B ／ 4.2-1
学習対象とした head
「妨害を弱める」と「貢献を強める」の両方向を、
同じ学習パイプラインで並列に検証する。
Positive Pinpoint
medical &gt; 0 かつ reasoning &gt; 0
378
head（24.6%）
Negative Pinpoint
medical &lt; 0 かつ reasoning &lt; 0
医療用語を消すと正解率が上がる
医療用語を消すと正解率が下がる
元の head は正答を妨害していた
医療タスクに貢献している
→ 修正して伸ばす
→ 貢献をさらに伸ばす
Path Patching 段階での予想
Negative 側の impact の絶対値が大きい ＝ モデルは貢献している head に強く依存 → Negative 側のほうが強く動くはず
457
head（29.8%）


# Page. 37

![Page Image](https://bcdn.docswell.com/page/3EK9PPWMED.jpg)

PART B ／ 4.2-2
学習設定と pinpoint plugin
ms-swift の既定は全パラ学習と LoRA の 2 択。pinpoint 制御は plugin として自前で拡張した。
plugin が提供する制御レベル
• Layer 単位
• Expert 単位（MoE）
• Attention Head 単位
• ブロック freeze（mlp / attention / router
…）
MLP を該当 layer で開放した理由
• Chen24 の Dense 版は attention と MLP を両方触る
• freeze すると MoE Expert 側の医療知識に触れられない
• 中間解として head 粒度 + MLP 該当 layer 開放を採用
ハイパ
ラ
値
Base model
Qwen3-30B-A3B-Instruct-25
07
Trainable
heads
378 / 457（qkv_proj スライスの
み）
Learning
rate
1e-4（cosine, warmup
5%）
Global batch
size
32
Epochs
1
MLP freeze
無効（該当 layer の MLP は学習対象）
Attention
freeze
無効（対象 head の qkv の
み）
その他
router / shared_expert / embed / lm_head は
凍結


# Page. 38

![Page Image](https://bcdn.docswell.com/page/L73WXX1275.jpg)

1
プロジェクト概要
SECTION 4.3
結果と失敗分析
本走した結果と、その解釈。
4 diagnose：Path Patching
4 optimize：学習設計
4 結果と失敗分析
2
共通基盤
3
Part A ─ RL 系手法
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 39

![Page Image](https://bcdn.docswell.com/page/87DK22X6JG.jpg)

PART B ／ 4.3-1
結果 ─ 3 データセットすべてで劣化
いずれも p &lt; 10⁻⁶。モデル自体が悪化していることが確認された。
評価データセット
Base 30B
Positive
Negative
医師国家試験
86.2
80.3 (−5.9)
79.2 (−7.0)
専門医試験
60.9
44.9 (−16.0)
48.2 (−12.7)
診療ガイドライン
15.7
10.8 (−5.0)
11.7 (−4.0)
McNemar（vs Base 30B）
改善
劣化
Net
chi²
p値
igakuqa ─ Positive
57
123
−66
23.47
&lt; 10⁻⁶
igakuqa ─ Negative
58
136
−78
30.56
&lt; 10⁻⁶
specialist ─ Positive
305
905
−600
296.53
&lt; 10⁻⁶
specialist ─ Negative
337
813
−476
196.20
&lt; 10⁻⁶
Base 正解の 35〜40% が壊れる一方、改善は 20〜23%。
診療科別 Base 差分（30B）


# Page. 40

![Page Image](https://bcdn.docswell.com/page/VJPK11KZE8.jpg)

PART B ／ 4.3-1
診療科別の壊れ率
Base で正答していた問題のうち、不正解化した割合。
診療科
Base 正答数
Positive 壊れ
率
Negative 壊れ
率
specialist 全
体
改善
改善率
劣化
劣化率
Net
耳鼻科
15
4
50.0
%
44.8
%
Positiv
e
30
5
20.7
%
90
5
39.6
%
−
600
神経内科
11
6
47.4
%
40.5
%
Negativ
e
33
7
22.9
%
81
3
35.5
%
−
476
麻酔科
20
4
47.1
%
41.7
%
所見
肝臓
12
9
45.7
%
31.8
%
13 科中もっとも激しい壊れ方
救急
18
2
45.6
%
33.5
%
眼科
13
8
42.8
%
46.4
%
Positive は 13 科中 10 科で Negative より壊れ率が高く、診療科によらず満遍なく壊れている。
産婦人科
内科
23
1
29.9
%
35.1
%
282
20.9
%
19.9
%
耳鼻科は Positive で半数が破壊
眼科・産婦人科では Negative が壊れる
この非対称性は 4.3-3 で扱う
内科だけが 20% 台に留まる
原因は特定できていない


# Page. 41

![Page Image](https://bcdn.docswell.com/page/2EVVYYVMEQ.jpg)

PART B ／ 4.3-2
劣化の要因 ─ 3 つの仮説
影響度が大きいと考える順に並べる。
仮説 1
MLP unfreeze が MoE ではスケール的に強すぎた
• Dense なら 1 layer あたり MLP は 1 個で問題にならない
• MoE では 1 layer に Expert が 128 個。46 layer × 128 ≒ 5,888 個が学習対象になる
• head 側の 378 個とは 2 桁近くスケールが違う
Expert 側が学習の主役になり、head 粒度の pinpoint はほぼ寄与しなくなった。
仮説 2
378
≒5,888
絞った attention head
開いた Expert MLP
Dense の直感がそのまま
MoE に転用できない
学習率 lr = 1e-4
full-SFT でも 5e-5〜2e-5 が標準。
広範囲を高い lr で更新し、既存知識の消し込みを加速した。
仮説 3
選ばれた head の層分布が壊れ方に反映されている
• Positive（浅い層）：下流の全 head の入力を狂わせ、全診療科に波及する
• Negative（深い層）：特定領域に集中して壊れ、集計平均には乗りにくい
Expert 側の分析もしなけれ
ば使えない？


# Page. 42

![Page Image](https://bcdn.docswell.com/page/57GL99LXEL.jpg)

PART B ／ 4.3-3
Positive と Negative の優劣は判定できない
劣化幅の差は「どこで壊れるか」の違いであって、学習の優劣ではない。
評価
Positiv
e
Negative
igakuq
a
−5.9
pt
−7.0
pt
Positive が 1.1pt 小さ
い
specialis
t
−16.0
pt
−12.7
pt
Negative が 3.3pt 小さ
い
差
Negative が 1.0pt 小さ
guidelin
−5.0 精度が上がったことを意味しない。
−4.0
劣化幅が小さいことは、
e
pt
pt
い
結論
見かけの優位は specialist の Negative（3.3pt）だが、中身は壊し 1 た
領域の偏りであって学習の優劣ではない
Negative は眼科・産婦人科を強く壊しつつ他の科では軽く済ま 2 せ
ており、どこで壊れるかのトレードオフでしかない
差は「壊す領域の違い」
Positive
浅い層に集中。下流の全 head の入力を狂わせ、全診療科に波及。
Negative
深い層に集中。特定領域に集中して壊れ、集計平均には乗りにくい。
両手法とも大幅に劣化しており、どちらが有効だったかという問 3 い
に正の答えは出せない


# Page. 43

![Page Image](https://bcdn.docswell.com/page/4EQYWWY5JP.jpg)

1
プロジェクト概要
SECTION 5
公開成果物
成果として何を外に出したか。
5-1 学習済みモデル
5-2 コードと技術記事
5-3 主要成果まとめ
2
共通基盤
3
Part A ─ RL 系手法
4
Part B ─ Pinpoint Tuning
5
公開成果物


# Page. 44

![Page Image](https://bcdn.docswell.com/page/KJ4WKKWV71.jpg)

5-1
公開成果物 ─ 学習済みモデル
HuggingFace の weblab-LLM-M org 配下に 5 モデルを公開している。
モデル
手法
ベース
Ramen-GRPO-Qwen3-Next-80B-A3B-Instruc
t
GRPO
80B MoE
Ramen-GSPO-Qwen3-Next-80B-A3B-Instruc
t
GSPO
80B MoE
Ramen-CHORD-Qwen3-Next-80B-A3B-Instruc
t
CHORD
80B MoE
Ramen-PinPointTuning-Positive-Qwen3-30B-A3B-Instruct-25
07
Pinpoint
Positive
30B MoE
Pinpoint
Negative
30B MoE
https://huggingface.co/collections/weblab-LLM-M/ramen-team
Ramen-PinPointTuning-Negative-Qwen3-30B-A3B-Instruct-25
07


# Page. 45

![Page Image](https://bcdn.docswell.com/page/LE1YXXY47G.jpg)

5-2
公開成果物 ─ コードと技術記事
技術記事 5 本は Qiita で公開
GitHub リポジトリ構成（ リンク）
技術記事（Qiita にて公開）
singularity-post-training-medical/
├── Pinpoint-tuning/
│
MoE 版
├── Qwen30B-A3B/
共通モジュール
└── shared/
├── ms-swift-megatron_v3.8.1/
SFT / DFT / DPO
├── ms-swift-megatron_v3.9.3/
GRPO / GSPO /
│
CHORD / Pinpoint
├── dataset_sft/
データ生成
├── tools/
補助ツール
└── outputs/
分析結果・評価レポート
RL 系 2 系統と Pinpoint 系 2 実装を、同一リポジトリ内で並列に保持して
いる。
1 医療 LLM に GRPO / GSPO / CHORD を並べて学習
Dense 版
├── Qwen14B/
│
│
Path Patching + SFT
2 医療 LLM の RL post-training で CHORD を ms-swift に載せて回した
3 医療 LLM を RL post-training するときに使った報酬関数
4 医療 LLM に Pinpoint Tuning をかけて「特定の場所」だけを学習してみた話
5 Qwen3-30B に Path Patching をかけて Head / Layer の傾向を見た話


# Page. 46

![Page Image](https://bcdn.docswell.com/page/GEWGNNGZJ2.jpg)

5-3
主要成果まとめ
モデル
手法
Base 80B
医師国試
専門医試験
89.5
%
69.0
%
統計的有意性（専門医試験）
GRPO
RL
90.3%
(+0.8)
71.1%
(+2.1)
p = 0.0013
意
有
GSPO
RL
90.2%
(+0.7)
70.9%
(+1.9)
p = 0.0036
意
有
CHORD
RL
90.4%
(+0.9)
70.0%
(+1.0)
p = 0.119
し
有意差な
86.2
%
60.9
%
80.3% (−
5.9)
44.9% (−
16.0)
Part B
48.2% (−
12.7)
MoE への Pinpoint Tuning は劣化。MLP unfreeze のスケールが最大要因。
p &lt; 10⁻⁶ 有意に劣
化
Base 30B
Pinpoint
Part A
(Positive)
SFT
RL 系は 80B MoE で専門医試験を +1〜2 pt 改善。GRPO / GSPO は有意。
Pinpoint
79.2% (−
SFT
(Negative)
7.0)
p &lt; 10⁻⁶
化
有意に劣


# Page. 47

![Page Image](https://bcdn.docswell.com/page/47ZL33LLJ3.jpg)

ACKNOWLEDGEMENTS
謝辞
本研究は、NEDO（国立研究開発法人新エネルギー・産業技術総合開発機構）「AI の安全性確保に関す
る研究開発・検証等の推進事業 / 日本語版医療特化型 LLM の社会実装に向けた安全性検証・実証」の
支援を受けて実施されました。
JPNP25006
This paper is based on results obtained from a project, JPNP25006, commissioned by the New Energy and
Industrial Technology Development Organization (NEDO).
免責事項
公開している学習済みモデルは医療ドメインを対象とした事後学習の研究成果であり、臨床診断・治療判断など医療
現場での実利用を意図したものではありません。
Ramen Team ／ 東京大学 医療 LLM プロジェクト
参照論文
GRPO
Shao et al. (2024) ─ arXiv:2402.03300
GSPO
Zheng et al. (2025) ─ arXiv:2507.18071
CHORD
Xie et al. (2025) ─ arXiv:2508.11408
Path Patching
Wang et al. (2022) ─ arXiv:2211.00593
翻訳メカニズム
Zhang et al. (2025) ─ arXiv:2502.11806
Sycophancy
Chen et al. (2024) ─ arXiv:2409.01658


