> 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/hi/inference/inference-python/offline-weights.md).

# Model Weights Download

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). यह पृष्ठ मॉडल वेट्स के डाउनलोड और कैशिंग पर केंद्रित है, जबकि उपयोग ट्रैकिंग, बिलिंग, और Workflow अपडेट्स के लिए कनेक्टिविटी बनाए रखता है।
{% 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 में इन्फ़रेंस चलाते समय, कंटेनर रीस्टार्ट्स के बीच वेट्स को सुरक्षित रखने के लिए एक स्थायी कैश वॉल्यूम माउंट करें। देखें [Docker कॉन्फ़िगरेशन](https://docs.roboflow.com/deployment/self-hosted/inference-server/configuration/docker-configuration#persistent-model-cache) विवरण के लिए।
{% endhint %}

## मूल Python API

यह [मूल Python API](/reference/hi/inference/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 के माध्यम से वेट्स को पहले से लोड कर सकते हैं: देखें [Model Management](/reference/hi/inference/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) जब Docker कंटेनरों में चल रहे हों। कंटेनर फ़ाइलसिस्टम में संग्रहीत वेट्स रीस्टार्ट पर खो जाते हैं।
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
```
