# Offline Mode

{% hint style="info" %}
Roboflow Enterprise 고객의 Offline Mode를 사용하려면 Docker 컨테이너를 사용해야 합니다.
{% endhint %}

Roboflow Enterprise 고객은 온디바이스 추론 서버인 Roboflow Inference를 구성하여 최대 30일 동안 가중치를 캐시할 수 있습니다.

이를 통해 모델을 완전히 air-gapped 환경이나 인터넷 연결을 쉽게 사용할 수 없는 위치에서 실행할 수 있습니다.

모델을 오프라인으로 실행하려면 다음이 필요합니다:

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를 설정하면 인터넷 연결 없이 이미지와 비디오 프레임에서 모델을 실행할 수 있습니다.

"[HTTP를 통해 이미지에서 예측하기](https://inference.roboflow.com/quickstart/run_model_on_image/)" Inference 문서를 참조하여 모델 실행 방법을 확인하세요.

## Inference 결과

가중치는 SSL 암호화를 통해 인터넷을 사용하여 Roboflow 계정에서 불러오며(구성한 경우 License Server를 통해), Docker volume에 최대 30일 동안 안전하게 저장됩니다.

추론 결과에는 새로운 `expiration` 키가 포함되며, 이를 사용해 Inference Server가 인터넷 또는 License Server 연결을 통해 가중치의 임대(lease)를 갱신하기 전까지 예측을 계속 제공할 수 있는 기간을 확인할 수 있습니다. 가중치 만료일이 7일 미만으로 떨어지면, Inference Server는 Roboflow API에 성공적으로 연결될 때까지 1시간마다 가중치 임대 갱신을 시도하기 시작합니다.

임대가 갱신되면 카운터는 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 %}
