> 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/models/hi/supported-models/florence-2.md).

# Florence 2

हम समर्थन करते हैं [Microsoft का Florence 2](https://huggingface.co/microsoft/Florence-2-base), एक बहु-माध्यमीय विज़न-भाषा मॉडल, के माध्यम से हमारे [सर्वरलेस क्लाउड API](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api). Florence 2 कार्य प्रॉम्प्ट के माध्यम से कैप्शनिंग, ऑब्जेक्ट डिटेक्शन, सेगमेंटेशन, और OCR का समर्थन करता है (जैसे `<CAPTION>`, `<OD>`, `<OCR>`, `<REFERRING_EXPRESSION_SEGMENTATION>`).

## Florence 2 के प्रीट्रेंड उपनाम

उपनाम को के रूप में उपयोग करें `model_id` अपने अनुरोध में, और रनटाइम इसे संबंधित प्रीट्रेंड वज़नों में हल कर देता है।

<table data-search="false"><thead><tr><th>उपनाम</th></tr></thead><tbody><tr><td><code>florence-2-base</code></td></tr><tr><td><code>florence-2-large</code></td></tr></tbody></table>

## Florence 2 की सटीकता

आधिकारिक मॉडल कार्ड से प्रमुख ज़ीरो-शॉट मीट्रिक्स ([बेस](https://huggingface.co/microsoft/Florence-2-base), [लार्ज](https://huggingface.co/microsoft/Florence-2-large)):

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td>बेंचमार्क</td><td><code>florence-2-base</code></td><td><code>florence-2-large</code></td></tr><tr><td>COCO कैप्शन (CIDEr)</td><td>133.0</td><td>135.6</td></tr><tr><td>COCO डिटेक्शन (mAP)</td><td>34.7</td><td>37.5</td></tr><tr><td>RefCOCO (सटीकता)</td><td>53.9</td><td>56.3</td></tr></tbody></table>

## Florence 2 की इन्फ़रेंस गति

लेटेंसी मापी गई [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 1x NVIDIA L4 पर, बैच आकार 1 के साथ, ठीक 128 टोकन जनरेट करते हुए, greedy decoding के माध्यम से से `<CAPTION>` प्रॉम्प्ट। विलंबता आउटपुट लंबाई के साथ स्केल होती है, इसलिए अन्य लंबाइयों का अनुमान लगाने के लिए tokens/sec का उपयोग करें।

<table data-search="false"><thead><tr><th>उपनाम</th><th>लेटेंसी, 128 टोकन (ms)</th><th>टोकन/सेकंड</th></tr></thead><tbody><tr><td><code>florence-2-base</code></td><td>652</td><td>198</td></tr><tr><td><code>florence-2-large</code></td><td>1120</td><td>115</td></tr></tbody></table>

## Florence 2 API

Florence 2 साझा किए गए `/infer/lmm` एंडपॉइंट। इसे HTTP एंडपॉइंट के माध्यम से सीधे इस तरह कॉल करें `curl`या साथ में [`inference-sdk`](https://docs.roboflow.com/reference/inference/inference-sdk) रैपर।

{% tabs %}
{% tab title="HTTP (curl)" icon="webhook" %}
{% stepper %}
{% step %}

### अपनी API कुंजी प्राप्त करें

एक Roboflow खाता बनाएँ, अपनी कुंजी यहाँ खोजें [Roboflow API सेटिंग्स पेज](https://app.roboflow.com/settings/api) और इसे अपने शेल में उपलब्ध कराएँ:

```bash
export ROBOFLOW_API_KEY="your-key-here"
```

{% endstep %}

{% step %}

### मॉडल चलाएँ

कॉल करें `/infer/lmm` एंडपॉइंट को एक कार्य प्रॉम्प्ट के साथ, उपयोग करके `curl`:

```bash
curl --location 'https://serverless.roboflow.com/infer/lmm' \
  --header 'Content-Type: application/json' \\
  --header "Authorization: Bearer $ROBOFLOW_API_KEY" \\
  --data '{
    "image": {"type": "url", "value": "https://media.roboflow.com/quickstart/dog.jpeg"},
    "model_id": "florence-2-base",
    "prompt": "<CAPTION>"
  }'
```

{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="SDK (Python)" icon="python" %}
{% stepper %}
{% step %}

### अपनी API कुंजी प्राप्त करें

एक Roboflow खाता बनाएँ, अपनी कुंजी यहाँ खोजें [Roboflow API सेटिंग्स पेज](https://app.roboflow.com/settings/api) और इसे अपने शेल में उपलब्ध कराएँ:

```bash
export ROBOFLOW_API_KEY="your-key-here"
```

{% endstep %}

{% step %}

### निर्भरताएँ इंस्टॉल करें

यह पैकेज मॉडल को कॉल करता है:

```bash
pip install -U inference-sdk supervision
```

{% endstep %}

{% step %}

### मॉडल चलाएँ

एक कार्य प्रॉम्प्ट के साथ LMM इन्फ़रेंस एंडपॉइंट को कॉल करें:

```python
import os
import supervision as sv
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

image = sv.load_image_from_url("https://media.roboflow.com/quickstart/dog.jpeg")

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["ROBOFLOW_API_KEY"],
).configure(InferenceConfiguration(api_key_transport="header"))

result = client.infer_lmm(
    inference_input=image,
    model_id="florence-2-base",
    prompt="<CAPTION>",
)

print(result["response"])  # {'<CAPTION>': 'अपनी पीठ पर एक कुत्ता लिए हुए एक आदमी।'}
```

<figure><img src="/files/9c24ed708e347be7d680350315e98f9d3322f7c7" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

{% hint style="info" %}
सेट करें `api_url` को अपने परिनियोजन लक्ष्य से मिलाएँ:

* `https://serverless.roboflow.com` सर्वरलेस क्लाउड API के लिए।
* `http://localhost:9001` एक स्थानीय [इन्फ़रेंस](https://docs.roboflow.com/deployment/self-hosted/self-hosted) सर्वर।
* आपका [समर्पित परिनियोजन](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) एक निजी एंडपॉइंट के लिए URL.
  {% endhint %}

बदलें `<CAPTION>` किसी भी समर्थित कार्य प्रॉम्प्ट से (उदाहरण के लिए `<DETAILED_CAPTION>`, `<OD>`, `<OCR>`, `<OPEN_VOCABULARY_DETECTION>`, `<REFERRING_EXPRESSION_SEGMENTATION>`) ताकि कैप्शनिंग, डिटेक्शन, OCR, और सेगमेंटेशन कार्यों के बीच स्विच किया जा सके।

स्व-होस्टेड परिनियोजन और कार्य प्रॉम्प्ट की पूरी सूची के लिए, देखें [इनफ़रेंस दस्तावेज़ीकरण](https://docs.roboflow.com/deployment/self-hosted/self-hosted).

## Florence 2 कार्य प्रॉम्प्ट

Florence 2 प्रॉम्प्ट टोकन द्वारा कार्य बदलता है। निम्नलिखित में से एक को इस रूप में दें `प्रॉम्प्ट`:

| कार्य                          | प्रॉम्प्ट                                                    |
| ------------------------------ | ------------------------------------------------------------ |
| वस्तु पहचान                    | `<OD>`                                                       |
| सघन क्षेत्र कैप्शनिंग          | `<DENSE_REGION_CAPTION>`                                     |
| छवि कैप्शनिंग                  | `<CAPTION>`, `<DETAILED_CAPTION>`, `<MORE_DETAILED_CAPTION>` |
| क्षेत्र प्रस्ताव               | `<REGION_PROPOSAL>`                                          |
| वाक्यांश ग्राउंडिंग            | `<CAPTION_TO_PHRASE_GROUNDING>`                              |
| संदर्भित अभिव्यक्ति सेगमेंटेशन | `<REFERRING_EXPRESSION_SEGMENTATION>`                        |
| क्षेत्र से सेगमेंटेशन          | `<REGION_TO_SEGMENTATION>`                                   |
| ओपन-वोकैबुलरी डिटेक्शन         | `<OPEN_VOCABULARY_DETECTION>`                                |
| क्षेत्र से विवरण               | `<REGION_TO_DESCRIPTION>`                                    |
| OCR                            | `<OCR>`                                                      |
| क्षेत्र के साथ OCR             | `<OCR_WITH_REGION>`                                          |

## स्व-होस्टेड इन्फ़रेंस के साथ Florence 2 चलाएँ

Florence 2 को सीधे भी लोड किया जा सकता है [`inference`](https://docs.roboflow.com/deployment/self-hosted/self-hosted) पैकेज।

{% stepper %}
{% step %}

### पैकेज इंस्टॉल करें

```bash
pip install "inference[transformers]"
```

उपयोग करें `inference-gpu[transformers]` एक GPU मशीन पर।
{% endstep %}

{% step %}

### मॉडल चलाएँ

```python
from inference import get_model

model = get_model("florence-2-base", api_key="YOUR_API_KEY")

result = model.infer(
    "https://media.roboflow.com/inference/seawithdock.jpeg",
    prompt="<CAPTION>",
)

print(result[0].response)
```

बदलें `<CAPTION>` ऊपर दी गई तालिका के किसी भी कार्य प्रॉम्प्ट के लिए।
{% endstep %}
{% endstepper %}

### Workflows में निष्पादन मोड

जब इसे किसी [Workflow](https://docs.roboflow.com/workflows), Florence 2 दो में से किसी एक मोड में चलता है:

* **स्थानीय निष्पादन**: मॉडल आपके Inference सर्वर पर चलता है (GPU अनुशंसित)।
* **दूरस्थ निष्पादन**: मॉडल को एक दूरस्थ इन्फ़रेंस सर्वर पर HTTP के माध्यम से बुलाया जाता है।
