Qwythos-9B の使い方:vLLM、SGLang、Transformers デプロイガイド

Qwythos-9B-Claude-Mythos-5-1M は Empero AI が公開した 9B 推論モデルです。Qwen3.5-9B をベースに、1M context、ネイティブなツール呼び出し、長文推論、Apache-2.0 ライセンスを特徴とします。この記事ではモデルの特徴、vLLM/SGLang のデプロイ、サンプリング設定、利用時の注意点を整理します。

Qwythos-9B-Claude-Mythos-5-1M は、Empero AI が Hugging Face で公開した 9B 推論モデルです。

モデルページ:empero-ai/Qwythos-9B-Claude-Mythos-5-1M

目立つポイントはかなり明確です。

  • Qwen3.5-9B ベース;
  • 9B パラメータ規模;
  • Apache-2.0 ライセンス;
  • デフォルトで 1,048,576 token context;
  • Qwen3.5 形式の function calling をサポート;
  • 長文推論、ツール利用、agentic な用途向け;
  • モデルカードに vLLM、SGLang、Transformers の使用例がある。

小さめで、長文コンテキストを扱え、ツール接続もできる open-weight モデルを探しているなら、Qwythos-9B は見る価値があります。

まず向いている用途

Qwythos-9B は普通のチャットモデルとは少し違います。

向いている場面は次の通りです。

  • 長い文書の分析;
  • 複数ファイルのコードベース読解;
  • 長い agent タスク;
  • ツール呼び出し付きの Q&A;
  • Python executor や検索ツールで検証するタスク;
  • 研究、推論、数学、コード、技術文書処理;
  • 1M context のローカルまたはプライベートデプロイ検証。

あまり向いていない場面:

  • 軽いチャットだけしたい;
  • GPU リソースがない;
  • <think> 推論ブロックを扱いたくない;
  • そのまま使える一般向けチャット体験が欲しい;
  • アプリケーション側の安全制御がない。

モデルカードでは reasoning model と明記されています。回答には先に <think> 推論ブロックが出て、その後に最終回答が出ます。ユーザー向け製品に接続する場合は、この部分を自分で処理または非表示にする必要があります。

モデルの基本情報

Hugging Face のモデルカードによると、基本情報は次の通りです。

項目 情報
モデル名 empero-ai/Qwythos-9B-Claude-Mythos-5-1M
公開元 Empero AI
ベース Qwen/Qwen3.5-9B
規模 9B
形式 Safetensors
ライセンス Apache-2.0
コンテキスト 1,048,576 tokens
特徴 reasoning、function calling、long-context、agentic

単なる prompt 包装ではなく、full-parameter fine-tune です。モデルカードでは、訓練データに 5 億 token 以上の Claude Mythos / Claude Fable traces と、Empero AI の内部ツール rethink で生成した chain-of-thought データが含まれると説明されています。

この種のモデルで見るべき点は「チャットできるか」だけではありません。複雑なコンテキストで推論を続け、ツールを呼び出し、答えを修正できるかが重要です。

1M context の意味

Qwythos-9B のモデルカードで最も目を引く機能は、YaRN rope scaling によってコンテキストを次まで拡張している点です。

1
1,048,576 tokens

およそ 1M token です。

設定には次のようなパラメータがあります。

1
2
3
4
5
6
7
8
9
"rope_parameters": {
  "rope_type": "yarn",
  "factor": 4.0,
  "original_max_position_embeddings": 262144,
  "mrope_interleaved": true,
  "mrope_section": [11, 11, 10],
  "rope_theta": 10000000
},
"max_position_embeddings": 1048576

これは次の場面で魅力的です。

  • 大きなコードベースを直接コンテキストに入れる;
  • 10〜20本の論文とメモを処理する;
  • 長時間 agent タスクでツール出力を保持する;
  • 複数文書を横断して分析する;
  • 長い traceback、ログ、API レスポンスを継続的に推論する。

ただし現実的に考える必要があります。1M context は、どんな消費者向け GPU でも快適に全量を走らせられる、という意味ではありません。

モデルカードでも、完全な 1M window は tensor parallel のマルチ GPU や aggressive KV-cache offload に向くと説明されています。単一の高性能 GPU では 256k〜512k 程度が現実的な場合もあり、後端、量子化、KV cache、VRAM に左右されます。

vLLM でデプロイする

OpenAI-compatible API に慣れているなら、vLLM はかなり直接的な選択肢です。

インストール:

1
pip install vllm

モデル起動:

1
vllm serve "empero-ai/Qwythos-9B-Claude-Mythos-5-1M"

1M 近いコンテキストを明示したい場合は、モデルカードの例に従います。

1
vllm serve empero-ai/Qwythos-9B-Claude-Mythos-5-1M --max-model-len 1010000

API 呼び出し:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
curl -X POST "http://localhost:8000/v1/chat/completions" \
  -H "Content-Type: application/json" \
  --data '{
    "model": "empero-ai/Qwythos-9B-Claude-Mythos-5-1M",
    "messages": [
      {
        "role": "user",
        "content": "What is the capital of France?"
      }
    ]
  }'

VRAM 不足で起動に失敗する場合、最初から 1M にしないでください。32k、64k、128k など小さめの --max-model-len で確認し、徐々に増やす方が安全です。

SGLang でデプロイする

SGLang もモデルカードに記載されています。

インストール:

1
pip install sglang

起動:

1
2
3
4
python3 -m sglang.launch_server \
  --model-path "empero-ai/Qwythos-9B-Claude-Mythos-5-1M" \
  --host 0.0.0.0 \
  --port 30000

長いコンテキストを試す場合:

1
2
3
SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 python -m sglang.launch_server \
  --model-path empero-ai/Qwythos-9B-Claude-Mythos-5-1M \
  --context-length 1010000

呼び出し:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
curl -X POST "http://localhost:30000/v1/chat/completions" \
  -H "Content-Type: application/json" \
  --data '{
    "model": "empero-ai/Qwythos-9B-Claude-Mythos-5-1M",
    "messages": [
      {
        "role": "user",
        "content": "What is the capital of France?"
      }
    ]
  }'

Docker 例もモデルカードにあります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
docker run --gpus all \
  --shm-size 32g \
  -p 30000:30000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --env "HF_TOKEN=<secret>" \
  --ipc=host \
  lmsysorg/sglang:latest \
  python3 -m sglang.launch_server \
    --model-path "empero-ai/Qwythos-9B-Claude-Mythos-5-1M" \
    --host 0.0.0.0 \
    --port 30000

デプロイ前に、gated resource や private cache へのアクセスが必要なら HF_TOKEN を設定しておきます。

Transformers で読み込む

モデルカードの text-only 推論例では AutoModelForImageTextToTextAutoTokenizer を使っています。

構造はおおむね次の通りです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import torch
from transformers import AutoModelForImageTextToText, AutoTokenizer

model_id = "empero-ai/Qwythos-9B-Claude-Mythos-5-1M"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
    model_id, dtype="bfloat16", device_map="auto"
)

messages = [
    {
        "role": "user",
        "content": "Explain how tool calling helps a reasoning model verify exact facts."
    }
]

text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tok(text, return_tensors="pt").to(model.device)

out = model.generate(
    **inputs,
    max_new_tokens=16384,
    do_sample=True,
    temperature=0.6,
    top_p=0.95,
    top_k=20,
    repetition_penalty=1.05,
)

print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))

重要な点は 2 つです。

  1. 回答に <think>...</think> が含まれる;
  2. max_new_tokens を十分に取ることが推奨されており、モデルカードでは 16384 が示されています。

製品出力に使う場合は、通常は後処理で <think> 部分を取り除き、最終回答だけを表示します。

推奨サンプリング設定

モデルカードの推奨パラメータは次の通りです。

1
2
3
4
5
6
7
8
gen_kwargs = dict(
    do_sample=True,
    temperature=0.6,
    top_p=0.95,
    top_k=20,
    repetition_penalty=1.05,
    max_new_tokens=16384,
)

最初から greedy decoding を使ったり、temperature を低くしすぎたりしない方がよいです。

モデルカードでは、greedy や非常に低い温度(T <= 0.3)では、この種の reasoning model が繰り返しループに入る可能性があるとされています。まずは推奨設定で走らせる方が安定します。

ツール呼び出しの理解

Qwythos-9B は Qwen3.5 形式の function calling をサポートします。

モデルカードでは、tools=[...] を chat template に渡すことで、Qwen3.5 仕様の <tool_call> block を出力できると説明されています。

簡略化したツール定義は次のようになります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
TOOLS = [
    {
        "type": "function",
        "function": {
            "name": "python_executor",
            "description": "Execute Python code and return stdout.",
            "parameters": {
                "type": "object",
                "properties": {
                    "code": {"type": "string"}
                },
                "required": ["code"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "web_search",
            "description": "Search the web for current facts and citations.",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string"},
                    "max_results": {"type": "integer"}
                },
                "required": ["query"]
            }
        }
    }
]

モデルは <tool_call> のような内容を生成します。アプリケーション側でそれを解析し、ツールを実行し、結果をモデルに戻す必要があります。

つまり、Qwythos-9B が自分で本当にネットに接続するわけではありません。

ツール実行環境は利用者側で用意します。

ハードウェアへの現実的な期待

9B パラメータは小さく見えますが、1M context は別の次元の負荷です。

デプロイ時は次を分けて見ます。

  • モデル重みの VRAM;
  • KV cache;
  • コンテキスト長;
  • batch size;
  • 並行数;
  • 量子化の有無;
  • KV cache offload の有無;
  • vLLM、SGLang、Transformers のどれを使うか。

モデル能力を試すだけなら、小さめのコンテキストから始めます。

1
32k -> 64k -> 128k -> 256k

安定してから長いコンテキストを試します。

1M context は、毎回必ず使うものではありません。コードベース分析、複数論文の要約、長い agent 軌跡のような場面で、必要に応じて段階的に伸ばす方が現実的です。

制限と安全境界

モデルカードには、注意すべき制限があります。

  • reasoning model なので <think> を出力する;
  • 低温度や greedy decoding では繰り返しループが起きる可能性がある;
  • 具体的な識別子、CVE、薬品ラベル、正確な数値などはツールや検索で検証が必要;
  • uncensored で、複雑な技術問題を簡単には拒否しない;
  • 視覚能力はベースから継承しているが、この fine-tune は text-only で、視覚動作は主な訓練・評価対象ではない。

ユーザー向けアプリで使うなら、次を追加するのがおすすめです。

  • 出力フィルタ;
  • 安全ポリシー;
  • ツール呼び出しの許可リスト;
  • レート制限;
  • ログ監査;
  • 高リスク領域での人間レビュー;
  • 検索またはツールによる検証。

特にサイバーセキュリティ、医療、薬理、金融、法律の領域では、モデル回答を最終事実として扱ってはいけません。推論補助には使えますが、最終判断は信頼できる情報源、ツール結果、人間の確認に戻すべきです。

テスト方法

初めて Qwythos-9B を試すなら、いきなり超長コンテキストから始めない方がよいです。

おすすめの順序:

  1. Transformers または vLLM で短い Q&A を通す;
  2. 推奨サンプリング設定を使う;
  3. <think> と最終回答の形式を見る;
  4. 少し長めの文書要約を試す;
  5. Python executor を接続する;
  6. 最後に web_search や RAG を試す;
  7. 安定してからコンテキストを伸ばす。

テスト prompt は次のようなものから始められます。

1
請閱讀下面這段程式碼,找出可能的邊界條件問題,並給出最小修復建議。

または:

1
請先列出你需要驗證的關鍵事實,再說明哪些可以用工具確認,哪些需要人工複核。

このような問題は、reasoning model と tool-use の価値を見やすくします。

一言まとめ

Qwythos-9B-Claude-Mythos-5-1M は、エンジニアリングと研究向けの 9B 推論モデルです。

見どころは単なるパラメータ数ではなく、次の組み合わせです。

1
Qwen3.5-9B base + 1M context + function calling + reasoning training + Apache-2.0

長文コンテキストでのコードベース分析、複数文書研究、ツール検証付き agent ワークフローを試したいなら、試す価値があります。ただし 1M context に引っ張られすぎず、小さいコンテキストで安定させてから、VRAM、KV cache、後端能力に応じて段階的に広げるのが安全です。

记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。