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

# Florence 2

対応しています [MicrosoftのFlorence 2](https://huggingface.co/microsoft/Florence-2-base)、マルチモーダルな視覚言語モデルを、当社の [Serverless Cloud 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の精度

公式モデルカードの主要なゼロショット指標（[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検出（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) 1基のNVIDIA L4、バッチサイズ1で、greedy decodingによりちょうど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 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' \
  --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/2426d02666c822a5493a718b90849c4f77e4c7d7" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

{% hint style="info" %}
次を設定します: `api_url` をデプロイ先に合わせて設定します:

* `https://serverless.roboflow.com` サーバーレスクラウド 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のタスクプロンプト

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は2つのモードのいずれかで動作します：

* **ローカル実行**: モデルはあなたの Inference サーバー上で実行されます（GPU 推奨）。
* **リモート実行**: モデルはリモートの推論サーバー上で HTTP 経由で呼び出されます。
