# FP8強化学習

RL向けのFP8精度トレーニングを導入しており、これによりFP8でのGRPOが今や可能になりました（実行環境： **コンシューマー向けGPU** （RTX 40、50など）。DeepSeek-R1はFP8の強力さを示し、Unsloth を使えば Qwen3-1.7B の FP8 GRPO が今やただ **5GBのVRAMで動作します**.

RLにおいて最も計算負荷の高いワークロードであるため、より高速なRL推論は極めて重要です。我々は [TorchAO](https://github.com/pytorch/ao) （PyTorch側）と協力して、精度を損なうことなく性能向上を実現しました。

* **約1.4×高速化** によるRL推論 [vLLM](https://github.com/vllm-project/vllm) • BF16やFP16と比べて2倍長いコンテキスト
* **60%少ないVRAM** および **10倍長い** 他のFP8 RL実装よりも長いコンテキスト
* Unslothは **唯一のフレームワーク** で、コンシューマー向けGPU（例：NVIDIA GeForce RTX 40および50シリーズ）上でFP8 RL LoRAを動作させます。H100、H200、B200などでも動作します。
* 使用する `load_in_fp8 = True` を `FastLanguageModel` 内に設定することでFP8 RLを有効にします。
* Qwen3-8Bは16GBのVRAMに収まりますが、無料のColabのNVIDIA Tesla T4 GPUは **FP8をサポートしていません**。したがって我々のノートブックでは **Qwen3-14Bが収まる24GBのL4 GPUを使用しています**.

**ノートブック：** [Qwen3-8B FP8 GRPO](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_8B_FP8_GRPO.ipynb) および [Llama-3.2-1B FP8 GRPO](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Llama_FP8_GRPO.ipynb)

{% hint style="success" %}
ボーナス： ご覧のとおり、Unslothは現在かなり少ないVRAMで動作します。詳細は近く新しいブログで共有します。
{% endhint %}

我々のFP8サポートはUnslothの [重み共有機能](/docs/jp/meru/reinforcement-learning-rl-guide/memory-efficient-rl.md)を利用しており、VRAM使用量をさらに **50%**&#x524A;減し、 **10倍以上の** コンテキストを精度劣化なしに可能にします。我々は高速推論のために [vLLM](https://github.com/vllm-project/vllm) を使い、またUnslothのような手法（例： [Standby](/docs/jp/meru/reinforcement-learning-rl-guide/memory-efficient-rl.md) および [Flex Attention](/docs/jp/moderu/gpt-oss-how-to-run-and-fine-tune/long-context-gpt-oss-training.md) ）でVRAM使用量をさらに削減します。TorchAOはオンザフライでの汎用FP8を可能にするため、Llama、Gemma、Mistralなども動作します。さらに我々は [をアップロードしました](#unsloth-fp8-uploads) ほとんどのFP8モデル（Qwen3を含む）。

<figure><img src="/files/da396e4625c6d481d3f2443326ae03e6743a8886" alt="" width="375"><figcaption><p>報酬プロットはFP8がBF16と同じ傾向に従うことを示しています</p></figcaption></figure>

### :sunflower:FP8対BF16のトレーニング

研究ではFP8トレーニングが概ねBF16の精度に匹敵できることが示されており、モデルをFP8でサーブする場合、 **同じ精度でのトレーニングとサービング** が精度維持に役立ちます。またFP8はBF16に比べてH100上でスループットが1.6倍高く、メモリ使用量は2倍低くなります。

<figure><img src="/files/07b4277fd270de5231fac9e5064b67a64f0722af" alt="" width="375"><figcaption></figcaption></figure>

#### 重みスケールとFP8の種類

量子化されたトレーニングでは、低精度の重み（例：FP8）と高精度のスケール（FP16/BF16/FP32）を保存します。おおよそ次の式で元の重みを復元できます： `original_weight ≈ quantized_weight * weight_scale`

スケールは重みのレンジをFP8の表現可能なレンジにマッピングします。スケール数が多いほど精度が改善することが多いですが、スケールは追加の高精度メモリを消費するためトレードオフになります。 [DeepSeek R1](https://arxiv.org/abs/2501.12948)は例えば、主にブロック量子化を好みます。

vLLMの [llm-compressor](https://github.com/vllm-project/llm-compressor)で定義される3つの一般的なFP8タイプがあります。我々はQwen3-8Bを3種類すべてでベンチマークし、スループット、MMLU Pro、GQPA Diamondもチェックしました。我々の結論は **FP8のブロック単位またはチャネル毎（-FP8-Dynamic）が最良である** ということです（精度とスループットの観点で）。

<table><thead><tr><th width="121">タイプ</th><th width="225.20001220703125"></th><th width="126.4000244140625">スループット</th><th width="121.60003662109375">MMLU Pro</th><th>GQPA Diamond</th></tr></thead><tbody><tr><td></td><td>Bfloat16ベースライン</td><td>11,367</td><td><strong>62.04%</strong></td><td>28.79%</td></tr><tr><td>ブロック単位</td><td>ブロックごとのスケール（128×128）</td><td>12,041</td><td><strong>62.37%</strong></td><td><strong>29.29%</strong></td></tr><tr><td>チャネル単位</td><td>行または列ごとに1つのスケール</td><td>12,963</td><td>61.89%</td><td><strong>31.82%</strong></td></tr><tr><td>テンソル単位</td><td>テンソル全体に1つのスケール</td><td><strong>13,681</strong></td><td>61.83%</td><td>27.78%</td></tr></tbody></table>

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

vLLM経由のUnsloth FP8 RL推論は一般にBF16より約1.4倍高速です。モデルが大きいほどさらに速度改善が見られる可能性があります！

#### 精度 トレーニング損失ベンチマーク

我々はQwen3-4B、8B、14B、Llama 3.2 1B、3B、Qwen3-VL-2B、Qwen3-VL-4Bなど多くのモデルをテストしました。すべてBF16とFP8の両方で訓練しました。プロットに見られるように、 **SFT中のBF16とFP8の損失曲線はお互いにほぼ一致します**。トレーニング損失の観点では2つのデータ型の間に大きな差はありません：

{% columns %}
{% column %}

<figure><img src="/files/311ca843488992c0fcb3de10667cbf442abf7486" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/84f5166841b75758189feb7a44fe4e8fc2912eae" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

GRPOに関しては、生成の違いのため、報酬プロットが少なくとも一致して発散しないかを確認することが目的です（例えばQwen3-14Bの実行は必ずしも完全に同一にはならないことがあります）。

{% columns %}
{% column width="50%" %}

<figure><img src="/files/0122d67017d9b7d3c5412cb69c549c9be80d99a7" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/b43d8c56d8a9957b355139e8b571484310eb13e3" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column width="50%" %}

<figure><img src="/files/3cd8af28e3f06776978651ffe984fb4782044dd8" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/3241fe140c954d293dfb344050c9675824504858" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### :shinto\_shrine:推論はRLトレーニングの96％に相当

<figure><img src="/files/7a5bc0f1c45a53a0f39b7eaeee435e1bc68d1ac6" alt=""><figcaption></figcaption></figure>

RLでは、LLM / VLMを呼び出していくつかの候補解を生成し、それぞれの解を評価し、 **良い解には報酬を与え、悪い回答にはペナルティを与えます**。最大効率を達成するために、推論をトレーニング実行のほぼ100％にする必要があります。Unslothでは、 **我々はトレーニングを全RL実行のわずか<4%に抑え、96%を純粋なvLLM推論にすることに成功しました。**

例えばQwen-3-8Bでは、短いシーケンス長で1.15×高速化され、推論（トレーニングを含まない）におけるvLLM FP8自体のスループットも1.15×高速でした。Unslothにおける我々のRL実行でも処理トークン数で1.15×の高速化が確認され、 **Unslothではトレーニングオーバーヘッドが無視できるほど小さいことが示されます。**

<figure><img src="/files/7828f48cbfd358fe8171505e6590385f7bdc10ad" alt=""><figcaption></figcaption></figure>

### :1234:メモリ使用量を60%削減

理論的には、メモリ節約は概ね **モデルの重みメモリに等しい**と期待されます。なぜなら：オプティマイザ状態は依然として高精度で保存され、活性化も高精度で保存されるからです（現時点では）。我々の観察は理論と一致します。LoRA微調整では次を観察しました： **約30GB節約** 用に **Qwen3-32Bで約14GB節約** 用に **Qwen2.5-14B** および **約8GB節約** 用に **Qwen3-8B**

に関して **BF16でのLoRA微調整において** Qwen3-32Bでは、大きめのバッチサイズでOOMが発生し、バッチを縮小する必要がありました。 **FP8バリアントではそのような問題は発生せず**、我々は **より大きなバッチサイズ** をOOMなしで使用できました。

またUnslothでは、vLLMの重み用メモリ空間を共有する機能を導入しています（詳細は [メモリ効率の高いRL](/docs/jp/meru/reinforcement-learning-rl-guide/memory-efficient-rl.md) で紹介しています）- このトリックをFP8領域にも持ち込みました！

| 80GB GPU                                                                                                                                               | 推論エンジン         | トレーニングエンジン       |
| ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- | ---------------- |
| モデル重み                                                                                                                                                  | **8GB 共有 FP8** | **<<< 共有**       |
| <p><mark style="background-color:purple;"><strong>多目的</strong></mark></p><p><mark style="background-color:purple;"><strong>72GBの空間</strong></mark></p> | KVキャッシュ        | 活性化、勾配、オプティマイザ状態 |

レイヤーとしてではありません。これが量子化を複雑にします。特にMoE/MLPエキスパートは20Bパラメータのうち約19Bを占めます。 [Unsloth Standby](/docs/jp/meru/reinforcement-learning-rl-guide/memory-efficient-rl.md) FP8（またはBF16）RL用には、Unslothのインポート前にすべてのRL / GRPOトレーニング実行に以下を追加してください：

```python
import os
os.environ["UNSLOTH_VLLM_STANDBY"] = "1"
```

### :question:FP8 RL の使い方 / インストール方法

単にUnslothをアップデートするか、H100、L4、RTX 50x、RTX 40x、H200、B200、およびRTX 4090以降にリリースされた任意のNVIDIA GPU（コンシューマーまたはデータセンター）用に新しい仮想環境へUnslothをインストールしてください。

Unslothをアップデートするには： `pip install --upgrade --force-reinstall --no-cache-dir --no-deps unsloth unsloth_zoo`あるいは新しい環境を作る場合：

{% code overflow="wrap" %}

```bash
python -m venv unsloth_env
source unsloth_env/bin/activate

pip install unsloth vllm
pip install --pre torchao --index-url https://download.pytorch.org/whl/nightly/cu128 --force-reinstall
pip install --pre fbgemm-gpu fbgemm-gpu-genai --index-url https://download.pytorch.org/whl/cu128 --force-reinstall
pip install --upgrade numba numpy
```

{% endcode %}

その後、次を使用します `load_in_fp8 = True` これで準備完了です！モデル名をFloat8バリアントに自動マップするか、オンザフライでモデルをFloat8に変換します！

<pre class="language-python" data-overflow="wrap"><code class="lang-python">import os
os.environ['UNSLOTH_VLLM_STANDBY'] = "1" # Unsloth StandbyはRLで30%以上のメモリ節約を実現します
from unsloth import FastLanguageModel
import torch
max_seq_length = 2048 # より長い推論履歴には増やせます
lora_rank = 32 # ランクが大きいほど賢くなりますが遅くなります
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/Qwen3-8B",
    max_seq_length = max_seq_length,
    load_in_4bit = False, # LoRA 16bit用はFalse
    fast_inference = True, # vLLM の高速推論を有効にする
    max_lora_rank = lora_rank,
<strong>    load_in_fp8 = True, # Float8 RL / GRPO!
</strong>)
</code></pre>

例えばRTX 5090上では（設定を忘れずに、 `os.environ["UNSLOTH_VLLM_STANDBY"] = "1"` )

<figure><img src="/files/488771c80ebc27f3213882973064909e6fed6b0d" alt="" width="375"><figcaption></figcaption></figure>

それから我々の2つのFP8ノートブックをRL用に使ってください：

{% columns %}
{% column %}
**Qwen3-8B FP8 RL Colab**

{% embed url="<https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen3_8B_FP8_GRPO.ipynb>" %}
{% endcolumn %}

{% column %}
**Llama-3.2-1B-FP8 RL Colab**

{% embed url="<https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Llama_FP8_GRPO.ipynb>" %}
{% endcolumn %}
{% endcolumns %}

### :cd:FP8トレーニングの実装

我々の最初の参照点は `transformers`で、ここでは既にいくつかの方法でFP8をサポートしています。その一つがブロック量子化されたmatmul実装です：あるレイヤが16ビット活性化を受け取ると、それを量子化してカスタムのFP8 matmulカーネルに渡します。これをNVIDIA H100で配線してベンチマークしたところ、我々が望んだ結果とは逆になり：微調整が **4倍遅く** なり、標準のBF16微調整より遅くなりました。

### 🔥 TorchAOとのコラボ

そこで我々は [TorchAO](https://github.com/pytorch/ao) チームと協力し（特に[ Andrew](https://github.com/unslothai/unsloth/pull/3440)に大きな感謝を）、TorchAOのFP8サポートを我々のRLワークロードに組み込み、約 **1.4×のスループット向上** を確認し、最大で **60%のモデルメモリ使用量削減**を達成しました。概要として：

* 我々は固定されたLoRA重みをFP8で保存します。
* フォワードパスでは入力活性化に動的FP8量子化を適用し、訓練可能なLoRAアダプタはBF16のままにします。
* これらのFP8重みはvLLMのモデル重みと同じバッファを共有するため、メモリ上にFP8のモデルコピーは一つだけ（“二重モデル”のメモリオーバーヘッドはなし）です。
* バックワードパスではLoRA重みをデクオンタイズして、すべての勾配計算をBF16で行い精度を確保します。

この一般的なセットアップは、我々がサポートするすべてのRLアルゴリズム（例えば [や Dr. GRPO のような他のものに設定することもできる点に注意。](/docs/jp/meru/reinforcement-learning-rl-guide/advanced-rl-documentation/gspo-reinforcement-learning.md)、Dr. GRPO、PPO、DPOなど）で動作します。

<figure><img src="/files/be5095fd87507b75355204627f9c99149d94b940" alt="" width="375"><figcaption></figcaption></figure>

TorchAOはトレーニングと推論の両方に対するPyTorchネイティブのFP8サポートを提供し、テンソル単位、行単位、128x128のブロック単位（プロトタイプ）など様々なスケーリング粒度を提供します。TorchAOのFP8サポートは、行単位スケーリング粒度で27B規模において推論スループットを最大 [1.64倍向上させることができます](https://huggingface.co/pytorch/gemma-3-27b-it-FP8/blob/main/README.md#results-h100-machine) 。詳細はTorchAOの [FP8 README](https://github.com/pytorch/ao/blob/main/torchao/float8/README.md).

#### をご覧ください。

TorchAOのブロック量子化FP8 matmul

* **我々はTorchAOのブロック量子化FP8 matmul実装を使用し、以下を得ました：**
* BF16の約80%のスループット

損失やトレーニングの安定性を損なうことなく

しばらくの間、これは我々のデフォルトのFP8 matmulバックエンドとなりましたが、FBGEMMが追いつくまでのことでした。現在のUnslothはインストール状況に基づいて最適なバックエンドを自動選択できます。適切なパッケージがあれば、性能を無駄にする必要はありません 🙂

### :bird:追記：DeepSeekのDeepGEMMも試しましたが、エンドツーエンドで完全に統合してクリーンに比較できる状態にすることはできませんでした。

オンザフライのTorchAO FP8量子化 [Andrew](https://github.com/unslothai/unsloth/pull/3440) 大変感謝します： `load_in_fp8 = True` TorchAOの貢献により、Unsloth FP8 RLはモデルロード時にオンザフライで量子化を行い、それをvLLMに渡すことができます。この方法では、ユーザーが明示的にモデルを量子化する必要はありません（我々が処理します）。モデルロード引数で

```python
from unsloth import FastLanguageModel
を設定することでこれを行い、適切な事前量子化チェックポイントが見つからない場合はオフラインFP8を実行します。
    fp8_model = FastLanguageModel.from_pretrained(
    "unsloth/Llama-3.3-70B-Instruct", # 任意のモデル名を指定可能
)
```

### :tada:load\_in\_fp8 = True, # ブロックFP8なら"block"、行FP8ならTrue、無効ならFalse

UnslothのFP8アップロード [vLLM](/docs/jp/ji-ben/inference-and-deployment/vllm-guide.md)/[SGLang](/docs/jp/ji-ben/inference-and-deployment/sglang-guide.md) など。

FP8 Dynamic は FP8 Block より若干高速なトレーニングと低い VRAM 使用量を提供しますが、精度に小さなトレードオフがあります。 [利便性のため、我々はHugging FaceにFP8 DynamicおよびFP8 Blockモデルをアップロードしました。これらはFP8トレーニングや、](/docs/jp/meru/unsloth-model-catalog.md#fp8) を介した効率的で高速なサービング/デプロイに利用できます。

| モデル                   | こちらをご覧ください                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Qwen3（2507）**       | <p>14B — <a href="https://huggingface.co/unsloth/Qwen3-4B-Instruct-2507-FP8">FP8</a><br>32B — <a href="https://huggingface.co/unsloth/Qwen3-4B-Thinking-2507-FP8">FP8</a><br>4B インストラクト — <a href="https://huggingface.co/unsloth/Qwen3-30B-A3B-Instruct-2507-FP8">FP8</a><br>4B シンキング — <a href="https://huggingface.co/unsloth/Qwen3-30B-A3B-Thinking-2507-FP8">FP8</a></p>                                                                                                                                                                                                                                                                                                                                       |
| **。**                 | <p>14B — <a href="https://huggingface.co/unsloth/Qwen3-VL-4B-Instruct-FP8">FP8</a><br>32B — <a href="https://huggingface.co/unsloth/Qwen3-VL-4B-Thinking-FP8">FP8</a><br>3B ベース — <a href="https://huggingface.co/unsloth/Qwen3-VL-8B-Instruct-FP8">FP8</a><br>30B-A3B インストラクト — <a href="https://huggingface.co/unsloth/Qwen3-VL-8B-Thinking-FP8">FP8</a></p>                                                                                                                                                                                                                                                                                                                                                      |
| **Llama 3.1**         | <p>3B ベース — <a href="https://huggingface.co/unsloth/Llama-3.1-8B-Instruct-FP8-Dynamic">動的な</a> · <a href="https://huggingface.co/unsloth/Llama-3.1-8B-Instruct-FP8-Block">Block</a><br>3B インストラクト — <a href="https://huggingface.co/unsloth/Llama-3.1-8B-FP8-Dynamic">動的な</a> · <a href="https://huggingface.co/unsloth/Llama-3.1-8B-FP8-Block">Block</a><br>で我々のFP8量子化一覧を確認できますが、ここではよく使われるものを示します： <a href="https://huggingface.co/unsloth/Llama-3.1-70B-FP8-Dynamic">動的な</a> · <a href="https://huggingface.co/unsloth/Llama-3.1-70B-FP8-Block">Block</a></p>                                                                                                                                                    |
| **Qwen3**             | <p>8B インストラクト — <a href="https://huggingface.co/unsloth/Qwen3-0.6B-FP8">FP8</a><br>8B ベース — <a href="https://huggingface.co/unsloth/Qwen3-1.7B-FP8">FP8</a><br>4B — <a href="https://huggingface.co/unsloth/Qwen3-4B-FP8">FP8</a><br>0.6B — <a href="https://huggingface.co/unsloth/Qwen3-8B-FP8">FP8</a><br>1.7B — <a href="https://huggingface.co/unsloth/Qwen3-14B-FP8">FP8</a><br>8B — <a href="https://huggingface.co/unsloth/Qwen3-32B-FP8">FP8</a></p>                                                                                                                                                                                                                                                       |
| **Llama 3.3**         | で我々のFP8量子化一覧を確認できますが、ここではよく使われるものを示します： [動的な](https://huggingface.co/unsloth/Llama-3.3-70B-Instruct-FP8-Dynamic) · [Block](https://huggingface.co/unsloth/Llama-3.3-70B-Instruct-FP8-Block)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| **Llama 3.2**         | <p>FP8アップロード一覧 <a href="https://huggingface.co/unsloth/Llama-3.2-1B-FP8-Dynamic">動的な</a> · <a href="https://huggingface.co/unsloth/Llama-3.2-1B-FP8-Block">Block</a><br>70B — <a href="https://huggingface.co/unsloth/Llama-3.2-1B-Instruct-FP8-Dynamic">動的な</a> · <a href="https://huggingface.co/unsloth/Llama-3.2-1B-Instruct-FP8-Block">Block</a><br>1B ベース — <a href="https://huggingface.co/unsloth/Llama-3.2-3B-FP8-Dynamic">動的な</a> · <a href="https://huggingface.co/unsloth/Llama-3.2-3B-FP8-Block">Block</a><br>1B インストラクト — <a href="https://huggingface.co/unsloth/Llama-3.2-3B-Instruct-FP8-Dynamic">動的な</a> · <a href="https://huggingface.co/unsloth/Llama-3.2-3B-Instruct-FP8-Block">Block</a></p> |
| **Granite 4.0**       | <p>30B-A3B シンキング — <a href="https://huggingface.co/unsloth/granite-4.0-h-tiny-FP8-Dynamic">FP8 Dynamic</a><br>8B シンキング — <a href="https://huggingface.co/unsloth/granite-4.0-h-small-FP8-Dynamic">FP8 Dynamic</a></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Magistral Small**   | [FP8 Dynamic](https://huggingface.co/unsloth/Magistral-Small-2509-FP8-Dynamic) · [FP8 torchao](https://huggingface.co/unsloth/Magistral-Small-2509-FP8-torchao)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| **Mistral Small 3.2** | [FP8](https://huggingface.co/unsloth/Mistral-Small-3.2-24B-Instruct-2506-FP8)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| **Gemma 3**           | <p>h-tiny — <a href="https://huggingface.co/unsloth/gemma-3-270m-it-FP8-Dynamic">FP8</a><br>1B — <a href="https://huggingface.co/unsloth/gemma-3-1b-it-FP8-Dynamic">FP8</a><br>4B — <a href="https://huggingface.co/unsloth/gemma-3-4b-it-FP8-Dynamic">FP8</a><br>12B — <a href="https://huggingface.co/unsloth/gemma-3-12B-it-FP8-Dynamic">FP8</a><br>27B — <a href="https://huggingface.co/unsloth/gemma-3-27b-it-FP8-Dynamic">FP8</a></p>                                                                                                                                                                                                                                                                        |

### :person\_tipping\_hand:h-small —

270m —


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/jp/meru/reinforcement-learning-rl-guide/fp8-reinforcement-learning.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
