| --- |
| 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) |
| - データ: 大学院レベル以上の数理・自然科学・人文社会系の公開/合成データ |
| https://huggingface.co/datasets/weblab-llm-competition-2025-bridge/RAMEN-phase1 |
| |
| --- |
|
|
| ## 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= "<huggingface_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= "<huggingface_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 | 11.12 |
| | 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問 を層化抽出したサブセットです。 |
| |
| --- |