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

# Florence 2

지원합니다 [Microsoft의 Florence 2](https://huggingface.co/microsoft/Florence-2-base), 다중모달 비전-언어 모델인 이를 우리의 [Serverless Hosted API](/roboflow/roboflow-ko/deploy/serverless-hosted-api-v2.md). Florence 2는 task prompt(예: `<CAPTION>`, `<OD>`, `<OCR>`, `<REFERRING_EXPRESSION_SEGMENTATION>`).

## 기본 alias

alias를 다음의 `model_id` 요청에 사용하면 runtime이 이를 해당 pretrained weights로 해석합니다.

<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>

## 정확도

공식 model card의 대표 zero-shot metric ([base](https://huggingface.co/microsoft/Florence-2-base), [large](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 Caption (CIDEr)</td><td>133.0</td><td>135.6</td></tr><tr><td>COCO detection (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>

## 추론 속도

다음 기준으로 측정한 지연 시간 [Roboflow Inference](https://inference.roboflow.com/) 1x NVIDIA L4에서 batch size 1로, 다음에서 greedy decoding을 사용해 정확히 128 tokens를 생성할 때: `<CAPTION>` prompt입니다. latency는 output length에 따라 증가하므로, 다른 길이를 추정하려면 tokens/sec을 사용하세요.

<table data-search="false"><thead><tr><th>별칭</th><th>지연 시간, 128 토큰(ms)</th><th>Tokens/sec</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는 공유된 `/infer/lmm` endpoint입니다. 다음을 사용해 HTTP endpoint를 통해 직접 호출하세요: `curl`또는 [`inference-sdk`](https://inference.roboflow.com/inference_helpers/inference_sdk/) 래퍼를 사용하세요.

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

### API Key를 받으세요

Roboflow 계정을 만들고, 다음에서 키를 찾으세요: [Roboflow API 설정 페이지](https://app.roboflow.com/settings/api) 그리고 이를 셸에서 사용할 수 있도록 설정하세요:

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

{% endstep %}

{% step %}

### 모델을 실행하세요

다음에 호출하세요. `/infer/lmm` 다음 task prompt를 사용해 endpoint를 호출하세요: `curl`:

```bash
curl --location 'https://serverless.roboflow.com/infer/lmm' \
  --header 'Content-Type: application/json' \
  --data '{
    "api_key": "'"$ROBOFLOW_API_KEY"'",
    "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 Key를 받으세요

Roboflow 계정을 만들고, 다음에서 키를 찾으세요: [Roboflow API 설정 페이지](https://app.roboflow.com/settings/api) 그리고 이를 셸에서 사용할 수 있도록 설정하세요:

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

{% endstep %}

{% step %}

### 종속성을 설치하세요

이 패키지는 다음 모델을 호출합니다:

```bash
pip install inference-sdk
```

{% endstep %}

{% step %}

### 모델을 실행하세요

task prompt로 LMM inference endpoint를 호출하세요:

```python
import os
import cv2
import numpy as np
import requests
from inference_sdk import InferenceHTTPClient

content = requests.get("https://media.roboflow.com/quickstart/dog.jpeg").content
image = cv2.imdecode(np.frombuffer(content, np.uint8), cv2.IMREAD_COLOR)

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

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

print(result["response"])  # {'<CAPTION>': '개를 등에 업고 있는 남자.'}
```

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

{% hint style="info" %}
설정 `api_url` 을 배포 대상에 맞게 설정하세요:

* `https://serverless.roboflow.com` Serverless Hosted API용입니다.
* `http://localhost:9001` 로컬 [Inference](https://inference.roboflow.com/) 서버용입니다.
* 귀하의 [Dedicated Deployment](/roboflow/roboflow-ko/deploy/dedicated-deployments.md) 비공개 엔드포인트용 URL입니다.
  {% endhint %}

다음으로 바꾸세요 `<CAPTION>` 지원되는 any task prompt로(예: `<DETAILED_CAPTION>`, `<OD>`, `<OCR>`, `<OPEN_VOCABULARY_DETECTION>`, `<REFERRING_EXPRESSION_SEGMENTATION>`)를 사용해 captioning, detection, OCR, segmentation 작업 간을 전환하세요.

self-hosted deployment 및 task prompt의 전체 목록은 다음을 참조하세요: [Inference 문서](https://inference.roboflow.com/).
