> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/reference/ja/tui-lun/inference-python/offline-weights.md).

# モデル重みのダウンロード

Roboflow Inference をデプロイする場合、モデルの重みは推論がローカルで実行されるデバイスにダウンロードされます。このページでは、どのように `推論` パッケージがそれらの重みをダウンロードしてキャッシュするかを説明します。

{% hint style="info" %}
生の `.pt` 重みファイルをお探しですか？Roboflow Inference エコシステムの外で実行するには？ 次を参照してください： [モデルの重みをダウンロード](https://docs.roboflow.com/models/model-weights/download-roboflow-model-weights).
{% endhint %}

## 概要

モデルの重みは、特定のモデルで推論を初めて実行するときに自動的にダウンロードされます。重みはデバイス上にローカルでキャッシュされ、すべての推論はデバイス上（クラウドではなく）で実行されます。

仕組み：

1. インターネットに接続している間に、モデルの重みをデバイスにダウンロードします。
2. 重みはマシン上にローカルでキャッシュされます。
3. キャッシュされた重みを使ってデバイス上で推論を実行します。

この方法はすべての Roboflow デプロイ方法で機能し、高速なローカル推論を保証します。

{% hint style="warning" %}
**デフォルトのキャッシュ場所。** デフォルトでは、モデルの重みは `/tmp/cache`に保存され、これは **システム再起動時に消去されます**。本番デプロイや、再起動をまたいで重みを保持する必要があるあらゆるシナリオでは、 `MODEL_CACHE_DIR` 環境変数を使用して永続的なキャッシュディレクトリを設定する必要があります（ [キャッシュ場所](#cache-location) を参照）。
{% endhint %}

{% hint style="info" %}
**エンタープライズ向けオフラインモード。** 完全に切り離された運用を必要とするエンタープライズデプロイについては、 [オフラインモード](https://docs.roboflow.com/deployment/self-hosted/enterprise/offline-mode)を参照してください。このページでは、利用状況の追跡、請求、ワークフローの更新のための接続性を維持しつつ、モデルの重みのダウンロードとキャッシュに焦点を当てています。
{% endhint %}

## キャッシュ場所

デフォルトでは、モデルの重みは `/tmp/cache`. **このディレクトリはシステム再起動時に消去されます**。つまり、再起動のたびにモデルの重みを再ダウンロードする必要があります。

本番デプロイや、再起動をまたいで重みを保持する必要があるあらゆるシナリオでは、 **必ず** を使って永続的なキャッシュディレクトリを設定 `MODEL_CACHE_DIR` する必要があります：

```python
import os
# 永続的なディレクトリに設定する（/tmp ではない）
os.environ["MODEL_CACHE_DIR"] = "/home/user/.roboflow/cache"

from inference import get_model
# ... 残りのコード
```

または、システム全体で設定します：

```bash
export MODEL_CACHE_DIR="/home/user/.roboflow/cache"
```

ディレクトリが存在し、適切な権限があることを確認してください：

```bash
mkdir -p /home/user/.roboflow/cache
chmod 755 /home/user/.roboflow/cache
```

{% hint style="success" %}
**Docker デプロイ。** Docker で Inference を実行する場合は、コンテナの再起動後も重みを保持するために永続的なキャッシュボリュームをマウントしてください。次を参照してください： [Docker 設定](https://docs.roboflow.com/deployment/self-hosted/inference-server/configuration/docker-configuration#persistent-model-cache) を使用します。詳しくは
{% endhint %}

## ネイティブ Python API

この [ネイティブ Python API](/reference/ja/tui-lun/inference-python/native-python-api.md) でモデルを読み込むと、重みが自動的にダウンロードされ、キャッシュされます `get_model()`.

### 重みの事前ダウンロード

```python
from inference import get_model

# モデルを読み込む（重みをダウンロードしてキャッシュする）
model = get_model(
    model_id="rfdetr-base",
    api_key="YOUR_ROBOFLOW_API_KEY"
)
print("モデルの重みがキャッシュされました！")
```

### 推論の実行

```python
from inference import get_model

# キャッシュされた重みを使ってデバイス上で推論する
model = get_model(
    model_id="rfdetr-base",
    api_key="YOUR_ROBOFLOW_API_KEY"
)

results = model.infer("path/to/image.jpg")
```

セルフホストの Inference Server では、その代わりに HTTP 経由で重みを事前読み込みできます。次を参照してください： [モデル管理](/reference/ja/tui-lun/inference-sdk/model-management.md).

## ベストプラクティス

1. **まず永続的なキャッシュを設定します。** いずれかの重みをダウンロードする前に、 `MODEL_CACHE_DIR` を永続的なディレクトリ（ `/tmp`ではない）を指すように設定してください。これは本番デプロイで、再起動時にキャッシュされた重みを失わないために不可欠です。
2. **セットアップ中に事前ダウンロードします。** デプロイのセットアップ段階で、必要なすべてのモデルの重みをダウンロードし、キャッシュされてすぐ使えるようにします。
3. **Docker では永続的なキャッシュを使います。** 常に [永続ボリュームをマウント](https://docs.roboflow.com/deployment/self-hosted/inference-server/configuration/docker-configuration#persistent-model-cache) してください。コンテナのファイルシステムに保存された重みは、再起動時に失われます。
4. **デプロイ前に検証します。** 本番環境にデプロイする前に、モデルが正しくキャッシュされており、キャッシュディレクトリが再起動をまたいで維持されることを確認してください。
5. **モデル ID を文書化します。** 事前キャッシュやトラブルシューティングをしやすくするために、アプリケーションに必要なすべてのモデル ID とバージョンの一覧を保持してください。
6. **ストレージを考慮します。** モデルの重みは大きくなることがあります（モデルごとに 100MB〜1GB 以上）。永続的なキャッシュディレクトリに十分なディスク容量があることを確認してください。
7. **再起動時の挙動をテストします。** 重みをキャッシュした後、システム再起動後も保持されることをテストして、キャッシュ設定が正しいことを確認してください。

## トラブルシューティング

### 再起動後に重みが消える

デフォルトのキャッシュ場所（`/tmp/cache`）は再起動時に消去されます。で説明されているように永続的なキャッシュディレクトリを設定するか、 [キャッシュ場所](#cache-location)、または [Docker 用の永続ボリュームマウント](https://docs.roboflow.com/deployment/self-hosted/inference-server/configuration/docker-configuration#persistent-model-cache).

### モデルが見つからないエラー

* モデルが実際にダウンロードされていることを確認してください（ `ls -lh $MODEL_CACHE_DIR`).
* ダウンロード時とまったく同じ `model_id` を使用していることを確認してください。
* 次を確認してください `MODEL_CACHE_DIR` カスタムの場所を使用している場合は、正しく設定されていること。

### 権限の問題

アプリケーションがキャッシュディレクトリに対して読み書き権限を持っていることを確認してください：

```bash
chmod -R 755 /path/to/cache
```
