--- language: [ja] license: apache-2.0 library_name: transformers pipeline_tag: text-generation base_model: Qwen/Qwen3-235B-A22B tags: [cot, sft, moe, qwen3, long-context] --- # team_suzuki_submit 本モデルは、松尾研 LLM 開発コンペ 2025 においてTeam RAMEN (Reasoning AI Model Engineering Network) が開発した大規模言語モデルである。高難度領域における推論性能の最大化を目的として、Qwen3 系 Mixture-of-Experts を基盤に Chain-of-Thought Supervised Fine-Tuning(CoT-SFT)で最適化している。数理・自然科学・人文社会など多様なドメインにおける長文かつ高負荷な推論を前提に設計した。 --- ## 1. モデル仕様 - **ベースモデル**: https://huggingface.co/Qwen/Qwen3-235B-A22B (Mixture-of-Experts (MoE)) - **コンテキスト長**: 既定 32,768 tokens。YaRN 併用時は最大 131,072 tokens で運用を確認 - **推論** - リソース: H100 80GB × 8 (1 node) - **学習** - 手法: CoT-SFT - リソース: H100 × 16 (2 node) - データ: 大学院レベル以上の数理・自然科学・人文社会系の公開/合成データ(件数・URL は後日追記) --- ## 2. 評価方法 ### 2.1 Humanity’s Last Exam(HLE) - 評価コード: https://github.com/matsuolab/llm_bridge_prod/tree/master/eval_hle - 運用メモ: 2401 件(text-only)の全問が一度で完了しない場合は、複数回に分けて実行してください。 #### 設定ファイル(`conf/config.yaml`) ```yaml dataset: cais/hle provider: vllm # [vllm] base_url: http://localhost:8000/v1 model: weblab-llm-competition-2025-bridge/team_suzuki_submit max_completion_tokens: 38000 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 テンプレート ```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=64 #SBATCH --time=04: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" # デバッグ用 #--- GPU 監視 ------------------------------------------------------- nvidia-smi -i 0,1,2,3,4,5,6,7 -l 3 > nvidia-smi.log & pid_nvsmi=$! #--- vLLM 起動(8GPU)---------------------------------------------- vllm serve weblab-llm-competition-2025-bridge/team_suzuki_submit \ --tensor-parallel-size 8 \ --enable-reasoning \ --reasoning-parser qwen3 \ --rope-scaling '{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":32768}' \ --max-model-len 131072 \ --gpu-memory-utilization 0.95 \ > 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.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=64 #SBATCH --time=04: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" # デバッグ用 #--- 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)---------------------------------------------- vllm serve weblab-llm-competition-2025-bridge/team_suzuki_submit \ --tensor-parallel-size 8 \ --reasoning-parser qwen3 \ --rope-scaling '{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":32768}' \ --max-model-len 131072 \ --gpu-memory-utilization 0.95 \ > 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/team_suzuki_submit" \ --dataset_path datasets/Instruction/do_not_answer_en.csv \ --output_dir evaluation_results \ --use_vllm \ --max_questions 50 \ --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 | Ours |----------------------------------------------|-------------------------------|---------------------|------| | Humanity's Last Exam (text-only) | 6.5 | 8.6 | ?? | Humanity's Last Exam Extract120 (text-only) | 4.9 | 11.5 | 14.2 | Do-Not-Answer | 97.2 | 97.9 | 96.0 ---