weblab-LLM-M/Ramen-CHORD-Qwen3-Next-80B-A3B-Instruct
Ramen-CHORD-Qwen3-Next-80B-A3B-Instruct
本モデルは、NEDO(国立研究開発法人新エネルギー・産業技術総合開発機構)「AIの安全性確保に関する研究開発・検証等の推進事業 / 日本語版医療特化型LLMの社会実装に向けた安全性検証・実証」において開発された医療特化型大規模言語モデルであり、東京大学開発チーム内の Ramen Team による「日本語医療LLMに対する事後学習手法の比較研究」の成果物です。
手法検証を目的とした研究成果の公開であり、Weblab-MedLLM 本系列とは異なり実運用向けの調整・安全性検証は行われていません。臨床現場での直接利用は推奨されません。
モデル概要
研究シリーズ内の位置づけ
本モデルは事後学習手法比較研究の1バリアントです。同一ベースモデルに対する他手法および同一プロジェクトの他モデルと合わせて評価してください。
- RL系(Qwen3-Next-80B-A3B-Instruct ベース)
- Ramen-GRPO — 標準 GRPO
- Ramen-GSPO — Importance Sampling 付き GRPO 派生
- Ramen-CHORD(本モデル)— GRPO + SFT ハイブリッド
- Pinpoint Tuning系(Qwen3-30B-A3B-Instruct-2507 ベース)
- Ramen-PinPointTuning-Positive
- Ramen-PinPointTuning-Negative
利用にあたっての注意事項
- 本モデルは手法検証を目的とした研究成果であり、実臨床における安全性・有効性の検証は行われていません。
- 開発者は本モデルの正確性・完全性・最新性・品質等について一切の保証を行わず、本モデルの利用または利用不能により生じたいかなる損害についても責任を負いません。
- 医療行為(診断、治療方針の決定、健康への助言など)に直接適用することは推奨されません。
- 本モデルを活用して具体的な医療用途の製品を開発される場合、その製品が医療機器プログラムとして薬機法の規制対象となる可能性があることにご留意ください。
- プログラム医療機器の該当性に関する相談窓口:独立行政法人医薬品医療機器総合機構(PMDA)
事後学習手法
Qwen3-Next-80B-A3B-Instruct をベースに、CHORD(GRPO + On-the-fly SFT ハイブリッド)による事後学習を実施しました。GRPO の探索とパラレルに、構造化医療回答形式の SFT データを混合学習することで、生成品質の維持と正解率向上の両立を狙う手法です。
学習ハイパーパラメータ
注意(既知の交絡因子): CHORD の SFT データ(chord_igakuqa.jsonl)は自然言語QA形式(要点/原因/対応/受診目安の構造化回答)であり、RL 用データおよび評価タスクの MCQ 選択式([ans]...[/ans])とフォーマットが大きく乖離しています。この不整合が RL 部分の改善を相殺している可能性があり、SFT データを MCQ 形式に揃えれば性能が改善する余地があります。
詳細な設計・実装は ANALYSIS_REPORT_RL.md を参照してください。
評価結果
同一プロジェクト内で実施したベンチマークのみを記載します。括弧内はベースモデル(Qwen3-Next-80B-A3B-Instruct)からの変化幅。
医師国家試験(igakuqa, 2023–2025, N=1,122)
統計検定(McNemar, Base vs CHORD, N=1,122): 改善 40 / 劣化 30, χ²=1.16, p=0.282(n.s.)
igakuqa ではベースモデルが既に高スコアで、統計的有意差は検出されませんでした。
専門医試験(specialistexamtest_v2, 13診療科, N=3,757)
統計検定(McNemar, Base vs CHORD, N=3,757): 改善 317 / 劣化 278, χ²=2.43, p=0.119(n.s.)
平均値では改善傾向にあるものの、CHORD 単体では専門医試験でも統計的有意差は検出されませんでした。上記「既知の交絡因子」(SFT データのフォーマット不整合)が主因と考えられます。
診療科別の顕著な改善(Base 80B → CHORD)
フォーマット遵守率
[ans]...[/ans] フォーマットのパース失敗率: 0.0%
未実施の評価
以下のベンチマークは本モデルでは実施していません。同種の評価を必要とする場合は Weblab-MedLLM 本系列を参照してください。
- 対話型診断(J-HealthBench)
- Do-Not-Answer
- AnswerCarefully
- 診療ガイドライン(guidelinewrongfiltered, 本モデルでは未評価)
学習データ
- RL用: 医師国家試験過去問(2022年以前)由来の GRPO 形式データ(
igakuqa.jsonl) - SFT用:
generate_chord.pyによる2ステップ合成データ(chord_igakuqa.jsonl, MCQ → 自然質問 → 構造化医療回答)
評価データ(2023–2025年の医師国試および専門医試験)とはデータリークがないよう分離しています。
推奨動作環境
ハードウェア
- GPUメモリ(推論, BF16): 約 160GB 以上(80B × 2byte, 参考値。KVキャッシュ・アクティベーション込みで余裕を持って H100 80GB × 4枚以上を推奨)
- 実測値ではなくパラメータ数からの算出値のため、実運用前に対象環境でのメモリ実測を推奨します。
ソフトウェア
- python>=3.9(transformersを使用する場合)
- python 3.12(vLLMを使用する場合は推奨)
- transformers>=4.55.0(
qwen3_nextアーキテクチャに対応したバージョンが必要) - vllm(推奨)
- accelerate>=1.10.0
- torch>=2.8.0
ダウンロード
pip install hf_transfer
HF_HUB_ENABLE_HF_TRANSFER=1 hf download weblab-LLM-M/Ramen-CHORD-Qwen3-Next-80B-A3B-Instruct \
--local-dir ./Ramen-CHORD-Qwen3-Next-80B-A3B-InstructvLLMを使った推論(推奨)
vllm serve ./Ramen-CHORD-Qwen3-Next-80B-A3B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--served-model-name Ramen-CHORD-Qwen3-Next-80B-A3B-Instruct \
--tensor-parallel-size 4 \
--dtype bfloat16 \
--gpu-memory-utilization 0.90 \
--trust-remote-code \
--enable-chunked-prefill \
--enable-prefix-caching \
--enable-expert-parallelfrom openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy")
response = client.chat.completions.create(
model="Ramen-CHORD-Qwen3-Next-80B-A3B-Instruct",
messages=[
{"role": "system", "content": "あなたは医療の専門知識を持つアシスタントです。"},
{"role": "user", "content": "脳梗塞の急性期治療において、rt-PA静注療法の適応基準について説明してください。"}
],
max_tokens=1024*4,
)
print(response.choices[0].message.content)transformersを使った推論
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "./Ramen-CHORD-Qwen3-Next-80B-A3B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
messages = [
{"role": "system", "content": "あなたは医療の専門知識を持つアシスタントです。"},
{"role": "user", "content": "脳梗塞の急性期治療において、rt-PA静注療法の適応基準について説明してください。"}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([text], return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024*4)
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(response)Citation
@misc{ramen2026chord,
title = { Ramen-CHORD-Qwen3-Next-80B-A3B-Instruct },
author = { Ramen Team, Matsuo-Iwasawa Lab, The University of Tokyo },
year = { 2026 },
url = { https://huggingface.co/weblab-LLM-M/Ramen-CHORD-Qwen3-Next-80B-A3B-Instruct },
note = { NEDO Project JPNP25006 }
}謝辞
この成果は、NEDO(国立研究開発法人新エネルギー・産業技術総合開発機構)の 委託業務(JPNP25006)の結果得られたものです。
お問い合わせ
contact-medllm@weblab.t.u-tokyo.ac.jp
