# Qwen3-Coder: ローカルで実行する方法

Qwen3-Coder は Qwen の新しいコーディングエージェントモデルシリーズで、30B（**Qwen3-Coder-Flash**）と 480B パラメータで利用可能です。 **Qwen3-480B-A35B-Instruct** は Claude Sonnet-4、GPT-4.1 と肩を並べる最先端のコーディング性能を達成しており、 [Kimi K2](https://unsloth.ai/docs/jp/moderu/tutorials/kimi-k2-thinking-how-to-run-locally)と同等の性能で、Aider Polyglot で 61.8% を記録し、256K（1M まで拡張可能）のトークンコンテキストをサポートします。

また、ネイティブで動作する Qwen3-Coder もアップロードしました <mark style="background-color:purple;">**1M コンテキスト長**</mark> は YaRN によって拡張され、フルプレシジョンの 8bit および 16bit 版もあります。 [Unsloth](https://github.com/unslothai/unsloth) また、現在ファインチューニングと [強化学習（RL）](https://unsloth.ai/docs/jp/meru/reinforcement-learning-rl-guide) Qwen3-Coder の。

{% hint style="success" %}
[**更新：** Qwen3-Coder のツールコールを修正しました！ ](#tool-calling-fixes)現在、llama.cpp、Ollama、LMStudio、Open WebUI、Jan などでツールコールをシームレスに使用できます。この問題は普遍的で全てのアップロード（Unsloth に限らず）に影響しており、修正について Qwen チームと連絡を取りました！ [続きを読む](#tool-calling-fixes)
{% endhint %}

<a href="#run-qwen3-coder-30b-a3b-instruct" class="button primary">30B-A3Bを実行する</a><a href="#run-qwen3-coder-480b-a35b-instruct" class="button secondary">480B-A35B を実行</a>

{% hint style="success" %}
**次のことを行いますか** [**Unsloth Dynamic Quants**](https://unsloth.ai/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs) **は機能しますか？** はい、非常によく機能します。Aider Polyglot ベンチマークのサードパーティテストでは、 **UD-Q4\_K\_XL（276GB）** のダイナミック量子化はほぼ匹敵し、 **フル bf16（960GB）** Qwen3-coder モデルとほぼ同等で、スコアは 60.9% 対 61.8% でした。 [詳細はこちら。](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/discussions/8)
{% endhint %}

#### **Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs**:

| Dynamic 2.0 GGUF（実行用）                                                                                                                                                                                                         | 1M コンテキスト Dynamic 2.0 GGUF                                                                                                                                                                                                          |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <ul><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF">30B-A3B-Instruct</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF">480B-A35B-Instruct</a></li></ul> | <ul><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-1M-GGUF">30B-A3B-Instruct</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-1M-GGUF">480B-A35B-Instruct</a></li></ul> |

## 🖥️ **Qwen3-Coder の実行**

以下はモデルの [**30B-A3B**](#run-qwen3-coder-30b-a3b-instruct) と [**480B-A35B**](#run-qwen3-coder-480b-a35b-instruct) モデルのバリアント。

### :gear: 推奨設定

Qwen は両モデルに対して次の推論設定を推奨しています：

`temperature=0.7`, `top_p=0.8`, `top_k=20`, `repetition_penalty=1.05`

* <mark style="background-color:green;">**温度（Temperature）: 0.7**</mark>
* Top\_K: 20
* Min\_Pを0.00（オプション、但し0.01がよく機能します。llama.cppのデフォルトは0.1）
* Top\_P: 0.8
* <mark style="background-color:green;">**反復ペナルティ（Repetition Penalty）: 1.05**</mark>
* チャットテンプレート：

  ```
  <|im_start|>user
  Hey there!<|im_end|>
  <|im_start|>assistant
  What is 1+1?<|im_end|>
  <|im_start|>user
  2<|im_end|>
  <|im_start|>assistant
  ```
* 推奨コンテキスト出力：65,536 トークン（増加可能）。詳細はこちら。

**改行がレンダリングされていないチャットテンプレート／プロンプト形式**

{% code overflow="wrap" %}

```
<|im_start|>user\nHey there!<|im_end|>\n<|im_start|>assistant\nWhat is 1+1?<|im_end|>\n<|im_start|>user\n2<|im_end|>\n<|im_start|>assistant\n
```

{% endcode %}

<mark style="background-color:yellow;">**ツールコール用チャットテンプレート**</mark> （サンフランシスコの現在の気温を取得する例）。ツールコールのフォーマット方法の詳細はこちら。

```
<|im_start|>user
今のサンフランシスコの気温は？明日はどうですか？<|im_end|>
<|im_start|>assistant
<tool_call>\n<function=get_current_temperature>\n<parameter=location>\nSan Francisco, CA, USA
</parameter>\n</function>\n</tool_call><|im_end|>
<|im_start|>user
<tool_response>
{"temperature": 26.1, "location": "San Francisco, CA, USA", "unit": "celsius"}
</tool_response>\n<|im_end|>
```

{% hint style="info" %}
このモデルは思考モードをサポートしておらず、出力に `<think></think>` ブロックを生成しないことを思い出してください。一方で、 `enable_thinking=False` を指定する必要はもはやありません。
{% endhint %}

### Qwen3-Coder-30B-A3B-Instruct を実行する：

Dynamic 4-bit 量子化で 1 秒あたり 6 トークン以上の推論速度を達成するには、少なくとも **18GB のユニファイドメモリ** （VRAM と RAM の合計）または **単独で 18GB のシステム RAM** が必要です。経験則として、使用可能なメモリは利用するモデルのサイズと同等かそれ以上であるべきです。例えば、UD\_Q8\_K\_XL 量子化（フルプレシジョン）は 32.5GB で、少なくとも **33GB のユニファイドメモリ** （VRAM + RAM）または **33GB の RAM** が最適な性能のために必要になります。

**注意：** モデルは合計サイズより少ないメモリで動作することがありますが、これにより推論が遅くなります。最大メモリは最速速度のためにのみ必要です。

これは非思考モデルであるため、 `thinking=False` を設定する必要はなく、モデルは生成しません `<think> </think>` ブロックを。

{% hint style="info" %}
上記の [**ベストプラクティスに従ってください**](#recommended-settings)。これらは 480B モデルと同じです。
{% endhint %}

#### 🦙 Ollama: Qwen3-Coder-30B-A3B-Instruct 実行チュートリアル

1. Ollamaで実行する `をインストールしてください` まだ行っていない場合は！ 最大32Bまでのモデルのみ実行できます。

```bash
apt-get update
こちらを参照してください
apt-get install pciutils -y
```

2. curl -fsSL <https://ollama.com/install.sh> | sh `モデルを実行してください！失敗した場合は別のターミナルで`ollama serve `を呼び出すことができます！私たちはすべての修正と推奨パラメータ（temperatureなど）を` params

```bash
ollama run hf.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:UD-Q4_K_XL
```

#### :sparkles: Llama.cpp: Qwen3-Coder-30B-A3B-Instruct 実行チュートリアル

1. 最新の `llama.cpp` を [GitHubで入手してください](https://github.com/ggml-org/llama.cpp)。以下のビルド手順にも従うことができます。を変更してください `-DGGML_CUDA=ON` に `-DGGML_CUDA=OFF` GPUを持っていない場合やCPUで推論したい場合は **Apple Mac / Metalデバイスの場合**、次を設定してください `-DGGML_CUDA=OFF` その後通常通り続行してください — Metalサポートはデフォルトで有効です。

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

2. HuggingFace から直接プルできます：

   ```bash
   export LLAMA_CACHE="unsloth/GLM-4.7-GGUF"
       -hf unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:Q4_K_XL \
       --jinja -ngl 99 --ctx-size 32768 \
       --temp 0.7 --min-p 0.0 --top-p 0.80 --top-k 20 --repeat-penalty 1.05
   ```
3. モデルをダウンロードするには（をインストールした後） `モデルをダウンロードするには（` ）。UD\_Q4\_K\_XL や他の量子化バージョンを選択できます。ダウンロードが止まる場合は、参照してください [hugging-face-hub-xet-debugging](https://unsloth.ai/docs/jp/ji-ben/troubleshooting-and-faqs/hugging-face-hub-xet-debugging "mention")

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF",
    local_dir = "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF",
    allow_patterns = ["*UD-Q4_K_XL*"],
)
```

### Qwen3-Coder-480B-A35B-Instruct を実行：

1-bit 量子化で 1 秒あたり 6 トークン以上の推論速度を達成するには、少なくとも **150GB のユニファイドメモリ** （VRAM と RAM の合計）または **150GB のシステム RAM** 単独で。経験則として、使用可能なメモリは利用するモデルのサイズと同等かそれ以上であるべきです。例えば、Q2\_K\_XL 量子化は 180GB で、少なくとも **180GB のユニファイドメモリ** （VRAM + RAM）または **180GB の RAM** が最適な性能のために必要になります。

**注意：** モデルは合計サイズより少ないメモリで動作することがありますが、これにより推論が遅くなります。最大メモリは最速速度のためにのみ必要です。

{% hint style="info" %}
上記の [**ベストプラクティスに従ってください**](#recommended-settings)が必要になります。これらは 30B モデルと同じです。
{% endhint %}

#### 📖 Llama.cpp: Qwen3-Coder-480B-A35B-Instruct 実行チュートリアル

Coder-480B-A35B では、最適化された推論と豊富なオプションのために特に Llama.cpp を使用します。

{% hint style="success" %}
もし **フルプレシジョンの非量子化バージョン**が必要なら、私たちの `Q8_K_XL、Q8_0` または `BF16` バージョンを使ってください！
{% endhint %}

1. 最新の `llama.cpp` を [GitHubで入手してください](https://github.com/ggml-org/llama.cpp)。以下のビルド手順にも従うことができます。を変更してください `-DGGML_CUDA=ON` に `-DGGML_CUDA=OFF` GPUを持っていない場合やCPUで推論したい場合は

   ```bash
   apt-get update
   apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
   git clone https://github.com/ggml-org/llama.cpp
   cmake llama.cpp -B llama.cpp/build \
       -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
   cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
   cp llama.cpp/build/bin/llama-* llama.cpp
   ```
2. llama.cppで直接モデルをダウンロードすることもできますが、通常は `huggingface_hub` を使うことをお勧めします。llama.cppを直接使用するには、次を実行してください：

   ```bash
   export LLAMA_CACHE="unsloth/GLM-4.7-GGUF"
       -hf unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF:Q2_K_XL \
       --jinja \
       --n-gpu-layers 99 \
       model = "unsloth/Kimi-K2-Thinking",
       --temp 0.7 \\
       --min-p 0.0 \\
       --top-p 0.8 \\
       --top-k 20 \\
       --repeat-penalty 1.05
   ```
3. または、（インストール後に）モデルをダウンロードしてください `モデルをダウンロードするには（` ）UD-Q2\_K\_XLやその他の量子化バージョンを選択できます。

   ```python
   # !pip install huggingface_hub hf_transfer
   import os
   os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0" # 時折レート制限されることがあるため、無効にするには 0 に設定します
   from huggingface_hub import snapshot_download
   snapshot_download(
       repo_id = "unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF",
       local_dir = "unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF",
       allow_patterns = ["*UD-Q2_K_XL*"],
   )
   ```
4. 会話モードでモデルを実行し、任意のプロンプトを試してください。
5. 編集 `--threads -1` --threads 32 `--ctx-size` コンテキスト長は262114、 `--n-gpu-layers 99` --n-gpu-layers 2

{% hint style="success" %}
使用してください `-ot ".ffn_.*_exps.=CPU"` すべての MoE レイヤーを CPU にオフロードするために！これにより非 MoE レイヤーを 1 GPU に収めることができ、生成速度が向上します。GPU 容量があれば正規表現をカスタマイズしてさらに多くのレイヤーを収めることができます。その他のオプションについては議論しています [こちら](#improving-generation-speed).
{% endhint %}

{% code overflow="wrap" %}

```bash
export LLAMA_CACHE="unsloth/GLM-4.7-GGUF"
    --model unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/UD-Q2_K_XL/Qwen3-Coder-480B-A35B-Instruct-UD-Q2_K_XL-00001-of-00004.gguf \
    --jinja \
    --n-gpu-layers 99 \
    model = "unsloth/Kimi-K2-Thinking",
    --temp 0.7 \\
    --min-p 0.0 \\
    --top-p 0.8 \\
    --top-k 20 \\
    --repeat-penalty 1.05
```

{% endcode %}

{% hint style="success" %}
また、新しい Qwen3 のアップデートもお忘れなく。実行してください [**Qwen3-235B-A22B-Instruct-2507**](https://unsloth.ai/docs/jp/moderu/tutorials/qwen3-next) をローカルで llama.cpp で実行してください。
{% endhint %}

#### :tools: GLM 4.7で生成されたPythonコードを実行するためのツール呼び出し

より多くのVRAMがある場合、より多くのMoE層をオフロードするか、層全体をオフロードすることを試せます。

通常は、 `-ot ".ffn_.*_exps.=CPU"` はすべてのMoE層をCPUにオフロードします！これにより、非MoE層を1つのGPUに収めることができ、生成速度が向上します。GPU容量が多い場合は、より多くの層に合わせて正規表現をカスタマイズできます。

もし少し多くのGPUメモリがあるなら、次を試してください `-ot ".ffn_(up|down)_exps.=CPU"` これは up と down の投影 MoE 層をオフロードします。

試してみてください `-ot ".ffn_(up)_exps.=CPU"` さらに多くのGPUメモリがある場合。これは up 投影の MoE 層のみをオフロードします。

正規表現をカスタマイズすることもできます。例えば `-ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU"` は gate、up、down の MoE 層をオフロードしますが、6層目以降に限定します。

最新の [llama.cpp リリース](https://github.com/ggml-org/llama.cpp/pull/14363) 高スループットモードも導入しています。使用するには `llama-parallel`。詳細は [こちら](https://github.com/ggml-org/llama.cpp/tree/master/examples/parallel)。また、 **KVキャッシュを4ビットに量子化することができます** こちら

#### :triangular\_ruler:長いコンテキスト（256K ～ 1M）を収める方法

より長いコンテキストに対応するには、 <mark style="background-color:green;">**KVキャッシュの量子化**</mark> を使用してKおよびVキャッシュをより低ビットに量子化できます。これによりRAM / VRAMのデータ移動が減少し、生成速度が向上することもあります。Kの量子化で許容されるオプション（デフォルトは `f16`)には以下が含まれます。

`--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1`

多少精度が向上するので、 `_1` バリアントを使用するべきですが、やや遅くなります。例えば `q4_1, q5_1`

Vキャッシュも量子化できますが、 <mark style="background-color:yellow;">**Flash Attentionを使ってllama.cppをコンパイルする必要があります**</mark> サポートを有効にするには `-DGGML_CUDA_FA_ALL_QUANTS=ON`、そして `--flash-attn` を有効にすること。

YaRN スケーリングを通じて 100 万コンテキスト長の GGUF もアップロードしました [こちら](https://app.gitbook.com/o/HpyELzcNe0topgVLGCZY/s/xhOjnexMCB3dmuQFQ2Zq/).

## :toolbox: ツールコールの修正

ツールコールを次の方法で修正することに成功しました： `llama.cpp --jinja` 特に の通過でのサービングのために `return messages`！もし 30B-A3B の量子化ファイルをダウンロードしているなら、これらには既に修正が含まれているので心配はいりません。480B-A35B モデルについては、次のことを行ってください：

1. UD-Q2\_K\_XL の場合は <https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/tree/main/UD-Q2\\_K\\_XL> の最初のファイルをダウンロードし、現在のファイルを置き換えてください
2. 使用してください `snapshot_download` 通常通り <https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial> のように、古いファイルを自動で上書きします
3. 新しいチャットテンプレートを次で使用してください： `--chat-template-file`。参照： [GGUF チャットテンプレート](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF?chat_template=default) または [chat\_template.jinja](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct/raw/main/chat_template.jinja)
4. 追加として、Ollama が動作するように 1 つの 150GB UD-IQ1\_M ファイルを <https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/blob/main/Qwen3-Coder-480B-A35B-Instruct-UD-IQ1\\_M.gguf> に用意しました。

これは <https://github.com/ggml-org/llama.cpp/issues/14915> のような問題を解決するはずです。

### ツールコーリングの使用

ツールコール用のプロンプトのフォーマット方法を、例を使って示します。

私は次という名前の Python 関数を作成しました： `get_current_temperature` これはロケーションの現在の気温を取得する関数です。今のところプレースホルダ関数を作成しており、常に摂氏 21.6 度を返します。実際の関数に変更してください！！

{% code overflow="wrap" %}

```python
def get_current_temperature(location: str, unit: str = "celsius"):
    """特定の場所の現在の気温を取得します。

    引数：
        location: 気温を取得する場所。フォーマットは「City, State, Country」です。
        unit: 気温を返す単位。デフォルトは "celsius"。（選択肢：["celsius", "fahrenheit"]）

    返り値：
        気温、場所、および単位を dict で返します
    """
    return {
        "temperature": 26.1, # 事前設定 -> 変更してください！
        "location": location,
        "unit": unit,
    }
```

{% endcode %}

次にトークナイザーを使ってプロンプト全体を作成します：

{% code overflow="wrap" %}

```python
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("unsloth/Qwen3-Coder-480B-A35B-Instruct")

messages = [
    {'role': 'user', 'content': "What's the temperature in San Francisco now? How about tomorrow?"},
    {'content': "", 'role': 'assistant', 'function_call': None, 'tool_calls': [
        {'id': 'ID', 'function': {'arguments': {"location": "San Francisco, CA, USA"}, 'name': 'get_current_temperature'}, 'type': 'function'},
    ]},
    {'role': 'tool', 'content': '{"temperature": 26.1, "location": "San Francisco, CA, USA", "unit": "celsius"}', 'tool_call_id': 'ID'},
]

prompt = tokenizer.apply_chat_template(messages, tokenize = False)
```

{% endcode %}

## :bulb:パフォーマンスベンチマーク

{% hint style="info" %}
これらの公式ベンチマークはフル BF16 チェックポイントに対するものです。これを使用するには、単に我々がアップロードした `Q8_K_XL、Q8_0、BF16` チェックポイントを使用してください — これらのバージョンでも MoE オフローディングなどの手法を使用できます！
{% endhint %}

ここに 480B モデルのベンチマークがあります：

#### エージェンティックコーディング

<table data-full-width="true"><thead><tr><th>ベンチマーク</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3-0324</th><th>Claude 4 Sonnet</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>Terminal‑Bench</td><td><strong>37.5</strong></td><td>30.0</td><td>2.5</td><td>35.5</td><td>25.3</td></tr><tr><td>SWE‑bench Verified w/ OpenHands (500 turns)</td><td><strong>69.6</strong></td><td>–</td><td>–</td><td>70.4</td><td>–</td></tr><tr><td>SWE‑bench Verified w/ OpenHands (100 turns)</td><td><strong>67.0</strong></td><td>65.4</td><td>38.8</td><td>68.0</td><td>48.6</td></tr><tr><td>SWE‑bench Verified w/ Private Scaffolding</td><td>–</td><td>65.8</td><td>–</td><td>72.7</td><td>63.8</td></tr><tr><td>SWE‑bench Live</td><td><strong>26.3</strong></td><td>22.3</td><td>13.0</td><td>27.7</td><td>–</td></tr><tr><td>SWE‑bench Multilingual</td><td><strong>54.7</strong></td><td>47.3</td><td>13.0</td><td>53.3</td><td>31.5</td></tr><tr><td>Multi‑SWE‑bench mini</td><td><strong>25.8</strong></td><td>19.8</td><td>7.5</td><td>24.8</td><td>–</td></tr><tr><td>Multi‑SWE‑bench flash</td><td><strong>27.0</strong></td><td>20.7</td><td>–</td><td>25.0</td><td>–</td></tr><tr><td>Aider‑Polyglot</td><td><strong>61.8</strong></td><td>60.0</td><td>56.9</td><td>56.4</td><td>52.4</td></tr><tr><td>Spider2</td><td><strong>31.1</strong></td><td>25.2</td><td>12.8</td><td>31.1</td><td>16.5</td></tr></tbody></table>

#### エージェンティックブラウザ使用

<table data-full-width="true"><thead><tr><th>ベンチマーク</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3 0324</th><th>Claude Sonnet‑4</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>WebArena</td><td><strong>49.9</strong></td><td>47.4</td><td>40.0</td><td>51.1</td><td>44.3</td></tr><tr><td>Mind2Web</td><td><strong>55.8</strong></td><td>42.7</td><td>36.0</td><td>47.4</td><td>49.6</td></tr></tbody></table>

#### エージェンティックツール使用

<table data-full-width="true"><thead><tr><th>ベンチマーク</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3 0324</th><th>Claude Sonnet‑4</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>BFCL‑v3</td><td><strong>68.7</strong></td><td>65.2</td><td>56.9</td><td>73.3</td><td>62.9</td></tr><tr><td>TAU‑Bench Retail</td><td><strong>77.5</strong></td><td>70.7</td><td>59.1</td><td>80.5</td><td>–</td></tr><tr><td>TAU‑Bench Airline</td><td><strong>60.0</strong></td><td>53.5</td><td>40.0</td><td>60.0</td><td>–</td></tr></tbody></table>
