# Offline Mode

{% hint style="info" %}
Roboflow Enterprise のお客様向けの Offline Mode では、当社の Docker コンテナを使用する必要があります。
{% endhint %}

Roboflow Enterprise のお客様は、オンデバイス推論サーバーである Roboflow Inference を設定して、重みを最大 30 日間キャッシュできます。

これにより、モデルを完全にエアギャップ環境で、またはインターネット接続がすぐに利用できない場所で実行できます。

モデルをオフラインで実行するには、次の操作が必要です:

1. Docker volume を作成して `/tmp/cache` を Inference Server 上にアタッチします。
2. Docker で Roboflow Inference server を起動します。
3. server 経由でモデルにリクエストを送信すると、モデル重みのダウンロードとキャッシュ処理が開始されます。この手順にはインターネット接続が必要です。

重みがキャッシュされると、ローカルで使用できます。

以下では、CPU から GPU まで、さまざまなデバイス種別でモデルをオフライン実行する方法を説明します。

## CPU

Image: [roboflow / roboflow-inference-server-cpu](https://hub.docker.com/r/roboflow/roboflow-inference-server-cpu)

```bash
sudo docker volume create roboflow
sudo docker run --net=host --env LICENSE_SERVER=10.0.1.1 --mount source=roboflow,target=/tmp/cache roboflow/roboflow-inference-server-cpu
```

## GPU

GPU コンテナを使用するには、まず [nvidia-container-runtime](https://github.com/NVIDIA/nvidia-container-runtime).

Image:[ roboflow / roboflow-inference-server-gpu](https://hub.docker.com/r/roboflow/roboflow-inference-server-gpu)

```bash
sudo docker volume create roboflow
docker run -it --rm -p 9001:9001 --gpus all --mount source=roboflow,target=/tmp/cache roboflow/roboflow-inference-server-gpu
```

## Jetson 4.5

お使いの Jetson Jetpack 4.5 にはすでに <https://github.com/NVIDIA/nvidia-container-runtime> がインストールされていること。

Image:[ roboflow/roboflow-inference-server-jetson-4.5.0](https://hub.docker.com/r/roboflow/roboflow-inference-server-jetson-4.5.0)

<pre class="language-bash"><code class="lang-bash">sudo docker volume create roboflow
<strong>docker run -it --rm -p 9001:9001 --runtime=nvidia --mount source=roboflow,target=/tmp/cache roboflow/roboflow-inference-server-jetson-4.5.0
</strong></code></pre>

## Jetson 4.6

お使いの Jetson Jetpack 4.6 にはすでに <https://github.com/NVIDIA/nvidia-container-runtime> がインストールされていること。

Image:[ roboflow/roboflow-inference-server-jetson-4.6.1](https://hub.docker.com/r/roboflow/roboflow-inference-server-jetson-4.6.1/tags)

<pre class="language-bash"><code class="lang-bash">sudo docker volume create roboflow
<strong>docker run -it --rm -p 9001:9001 --runtime=nvidia --mount source=roboflow,target=/tmp/cache roboflow/roboflow-inference-server-jetson-4.6.1
</strong></code></pre>

## Jetson 5.1

お使いの Jetson Jetpack 5.1 にはすでに <https://github.com/NVIDIA/nvidia-container-runtime> がインストールされていること。

Image: [roboflow/roboflow-inference-server-jetson-5.1.1](https://hub.docker.com/r/roboflow/roboflow-inference-server-jetson-5.1.1)

```bash
sudo docker volume create roboflow
docker run -it --rm -p 9001:9001 --runtime=nvidia --mount source=roboflow,target=/tmp/cache roboflow/roboflow-inference-server-jetson-5.1.1
```

## Inference の実行

Inference server をローカルキャッシュ付きでセットアップすると、インターネット接続なしで画像や動画フレームに対してモデルを実行できます。

「[Predict on an Image Over HTTP](https://inference.roboflow.com/quickstart/run_model_on_image/)」の Inference ドキュメントを参照して、モデルの実行方法を確認してください。

## Inference Results

重みは、インターネット経由であなたの Roboflow アカウントから読み込まれ（License Server を設定している場合はそれ経由で）、SSL 暗号化によって安全に Docker volume に最大 30 日間保存されます。

推論結果には新しい `expiration` キーが含まれます。これを使って、Internet または License Server 接続を介して重みの lease を更新する前に、Inference Server が予測を提供し続けられる期間を判断できます。重みの expiration date が 7 日未満になると、Inference Server は Roboflow API への接続が成功するまで、1 時間に 1 回、重みの lease 更新を試行し始めます。

lease が更新されると、カウンターは 30 日にリセットされます。

```json
{
    "predictions": [
        {
            "x": 340.9,
            "y": 263.6,
            "width": 284,
            "height": 360,
            "class": "example",
            "confidence": 0.867
        }
    ],
    "expiration": {
        "value": 29.91251408564815,
        "unit": "days"
    }
}
```

{% hint style="info" %}
モデルのオフライン展開についてご不明な点がある場合は、Roboflow の担当者にご連絡ください。
{% endhint %}
