> 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/ko/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>`).

## 기본 별칭

별칭을 다음으로 사용하세요 `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>

## 정확도

공식 모델 카드의 주요 제로샷 지표([기본](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>

## 추론 속도

다음을 사용해 측정한 지연 시간 [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 1x NVIDIA L4에서 배치 크기 1로, 다음에서 탐욕적 디코딩을 사용해 정확히 128개 토큰을 생성하는 경우 `<CAPTION>` 프롬프트. 지연 시간은 출력 길이에 따라 달라지므로, 다른 길이를 추정할 때는 토큰/초를 사용하세요.

<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는 공유된 `/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' \
  --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 키 받기

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

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"],
)

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

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

<figure><img src="/files/be33fdf58f965791f70d3c662befc45f1dff1608" 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://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는 프롬프트 토큰으로 작업을 전환합니다. 다음 중 하나를 `프롬프트`:

| 작업        | 프롬프트                                                         |
| --------- | ------------------------------------------------------------ |
| 객체 탐지     | `<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>`                                          |

## Inference(자가 호스팅)와 함께 사용

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 권장).
* **원격 실행**: 모델은 원격 Inference 서버에서 HTTP로 호출됩니다.
