--- language: [ja] license: apache-2.0 library_name: transformers pipeline_tag: text-generation base_model: Qwen/Qwen3-235B-A22B tags: [moe, qwen3] --- # RAMEN-MISO MISO は、松尾研 LLM 開発コンペ 2025 において Team RAMEN (Reasoning AI Model Engineering Network) が開発した大規模言語モデルである。高難度領域における推論性能の最大化を目的として、Qwen3 系 Mixture-of-Experts (MoE) を基盤に Chain-of-Thought Supervised Fine-Tuning (CoT-SFT) で最適化している。数理・自然科学・人文社会など多様なドメインにおける長文かつ高負荷な推論を前提に設計した。 --- ## 1. モデル仕様 - **ベースモデル**: https://huggingface.co/Qwen/Qwen3-235B-A22B - **推論** - リソース: H100 80GB × 16 (2 node) または H100 80GB × 8 (1 node) - **学習** - 手法: CoT-SFT - リソース: H100 × 16 (2 node) - データ: 大学院レベル以上の数理・自然科学・人文社会系の公開/合成データ(件数・URL は後日追記) --- ## 2. 評価方法 - 共通実行環境: **vLLM 0.10.1.1**(本 README 記載の推奨構成で検証済み) ### 2.1 Humanity’s Last Exam(HLE) - 評価コード: https://github.com/matsuolab/llm_bridge_prod/tree/master/eval_hle - 運用メモ: 2401 件(text-only)の全問が一度で完了しない場合は、複数回に分けて実行してください。 - まず **2ノード** を試し、失敗したら **1ノード** で実行してください。 - 本 README に記載の設定ファイルおよび Slurm テンプレートは、運営提供の公式コードを基に最適化した推奨構成です。評価を実施する際は、本設定を利用してください。 #### 設定ファイル(`conf/config.yaml`) ```yaml dataset: cais/hle provider: vllm # [vllm] base_url: http://localhost:8000/v1 model: weblab-llm-competition-2025-bridge/RAMEN-MISO max_completion_tokens: 35000 reasoning: true # sample with multimodal is 2500, so text-only sample is about 2400 num_workers: 2500 max_samples: 2500 judge: o3-mini-2025-01-31 ``` #### Slurm テンプレート **1ノード実行** ```bash #!/bin/bash #SBATCH --job-name=qwen3_8gpu #SBATCH --partition=P01 #SBATCH --nodelist=osk-gpu51 #SBATCH --nodes=1 #SBATCH --gpus-per-node=8 #SBATCH --cpus-per-task=240 #SBATCH --time=24:00:00 #SBATCH --output=/home/Competition2025/adm/X006/logs/%x-%j.out #SBATCH --error=/home/Competition2025/adm/X006/logs/%x-%j.err #SBATCH --export=OPENAI_API_KEY="openai_api_keyをここに" #--- モジュール & Conda -------------------------------------------- module purge module load cuda/12.6 miniconda/24.7.1-py312 module load cudnn/9.6.0 module load nccl/2.24.3 source "$(conda info --base)/etc/profile.d/conda.sh" conda activate llmbench # Hugging Face 認証 export HF_TOKEN= "" export HF_HOME=${SLURM_TMPDIR:-$HOME}/.hf_cache export TRANSFORMERS_CACHE=$HF_HOME export HUGGINGFACE_HUB_TOKEN=$HF_TOKEN mkdir -p "$HF_HOME" echo "HF cache dir : $HF_HOME" # デバッグ用 #--- メモリ/性能チューニング ------------------------------------------ # ベスト構成での推奨:拡張セグメントでメモリ断片化を低減 export PYTORCH_CUDA_ALLOC_CONF="expandable_segments:True" #--- GPU 監視 ------------------------------------------------------- nvidia-smi -i 0,1,2,3,4,5,6,7 -l 3 > nvidia-smi.log & pid_nvsmi=$! #--- vLLM 起動(8GPU)---------------------------------------------- # ベスト構成での推奨:rope-scaling なし / reasoning-parser なし # - tensor-parallel=4, pipeline-parallel=2 # - enable-expert-parallel # - disable-custom-all-reduce # - gpu-memory-utilization=0.90 vllm serve weblab-llm-competition-2025-bridge/REMEN-MISO \ --tensor-parallel-size 4 \ --pipeline-parallel-size 2 \ --enable-expert-parallel \ --gpu-memory-utilization 0.90 \ --disable-custom-all-reduce \ > vllm.log 2>&1 & pid_vllm=$! #--- ヘルスチェック ------------------------------------------------- until curl -s http://127.0.0.1:8000/health >/dev/null; do echo "$(date +%T) vLLM starting …" sleep 10 done echo "vLLM READY" #--- 推論 ----------------------------------------------------------- python predict.py > predict.log 2>&1 #--- 評価 ----------------------------------------------------------- OPENAI_API_KEY=xxx python judge.py #--- 後片付け ------------------------------------------------------- kill $pid_vllm kill $pid_nvsmi wait ``` **2ノード実行(Ray クラスタ方式・運営指示準拠)** `jobs/ray_cluster.sh`を使用してray clusterを起動してください。その時partitionやnodelist、ログファイルを設定してください。 そしてsshで出力されたheadノードのノードに接続し、モジュールとcondaを読み込み、vLLMをいつも通り起動してください。ray clusterを自動で認識します。 その後、上記スクリプトからvLLM起動とヘルスチェックを削除し、configを修正してから推論してください。 ### 2.2 Do-Not-Answer(DNA) - 評価コード: https://github.com/matsuolab/llm_bridge_prod/tree/master/eval_dna #### Slurm テンプレート ```bash #!/bin/bash #SBATCH --job-name=qwen3_8gpu #SBATCH --partition=P01 #SBATCH --nodelist=osk-gpu51 #SBATCH --nodes=1 #SBATCH --gpus-per-node=8 #SBATCH --cpus-per-task=240 #SBATCH --time=24:00:00 #SBATCH --output=/home/Competition2025/adm/X006/logs/%x-%j.out #SBATCH --error=/home/Competition2025/adm/X006/logs/%x-%j.err #SBATCH --export=OPENAI_API_KEY="openai_api_keyをここに" #--- モジュール & Conda -------------------------------------------- module purge module load cuda/12.6 miniconda/24.7.1-py312 module load cudnn/9.6.0 module load nccl/2.24.3 source "$(conda info --base)/etc/profile.d/conda.sh" conda activate llmbench # Hugging Face 認証 export HF_TOKEN= "" export HF_HOME=${SLURM_TMPDIR:-$HOME}/.hf_cache export TRANSFORMERS_CACHE=$HF_HOME export HUGGINGFACE_HUB_TOKEN=$HF_TOKEN mkdir -p "$HF_HOME" echo "HF cache dir : $HF_HOME" # デバッグ用 #--- メモリ/性能チューニング ------------------------------------------- # ベスト構成での推奨:拡張セグメントでメモリ断片化を低減 export PYTORCH_CUDA_ALLOC_CONF="expandable_segments:True" #--- GPU 監視 ------------------------------------------------------- nvidia-smi -i 0,1,2,3,4,5,6,7 -l 3 > nvidia-smi.log & pid_nvsmi=$! #--- 必要なディレクトリを作成 ----------------------------------------- mkdir -p evaluation_results #--- vLLM 起動(8GPU)---------------------------------------------- # ベスト構成での推奨:rope-scaling なし / reasoning-parser なし # - tensor-parallel=4, pipeline-parallel=2 # - enable-expert-parallel # - disable-custom-all-reduce # - gpu-memory-utilization=0.90 vllm serve weblab-llm-competition-2025-bridge/REMEN-MISO \ --tensor-parallel-size 4 \ --pipeline-parallel-size 2 \ --enable-expert-parallel \ --gpu-memory-utilization 0.90 \ --disable-custom-all-reduce \ > vllm.log 2>&1 & pid_vllm=$! #--- ヘルスチェック ------------------------------------------------- until curl -s http://127.0.0.1:8000/health >/dev/null; do echo "$(date +%T) vLLM starting …" sleep 10 done echo "vLLM READY" #--- 推論 ----------------------------------------------------------- python llm-compe-eval/evaluate_huggingface_models.py \ --model_name "weblab-llm-competition-2025-bridge/RAMEN-MISO" \ --dataset_path datasets/Instruction/do_not_answer_en.csv \ --output_dir evaluation_results \ --use_vllm \ --max_questions 939 \ --vllm_base_url http://localhost:8000/v1 > predict.log 2>&1 #--- 後片付け ------------------------------------------------------- kill $pid_vllm kill $pid_nvsmi wait ``` --- ## 3. 評価結果 | Benchmark | DeepSeek R1 0528 Qwen3 8B | Qwen3 235B A22B | MISO |----------------------------------------------|-------------------------------|---------------------|------| | Humanity's Last Exam (text-only) | 6.46 ±1.96 | 11.75 ±1.36 | ?? | Humanity's Last Exam Extract120 (text-only) | 4.85 ±4.15 | 11.54 ±6.14 | 19.33 ±7.10 | Do-Not-Answer | 97.2 | 97.9 | 92.0 注: HLE-Extract120 は、公式データセット(cais/hle)の text-only 問題からカテゴリ比率を維持して 120問 を層化抽出したサブセットです。 ---