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

# Florence 2

対応しています [Microsoft の Florence 2](https://huggingface.co/microsoft/Florence-2-base)、マルチモーダルな視覚言語モデルである、当社の [Serverless Hosted API](/roboflow/roboflow-jp/deploy/serverless-hosted-api-v2.md)。Florence 2 は、タスクプロンプト（たとえば `<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>

## 精度

公式モデルカードの主要なゼロショット指標（[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、バッチサイズ 1 で、 `<CAPTION>` プロンプトから greedy decoding によりちょうど 128 トークンを生成した場合の値です。レイテンシは出力長に比例するため、他の長さの見積もりには 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 は共有の `/infer/lmm` エンドポイント経由で動作します。HTTP エンドポイントを直接 `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` タスクプロンプト付きで呼び出すには、 `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 %}

### モデルを実行する

LMM 推論エンドポイントをタスクプロンプト付きで呼び出します：

```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>': 'A man carrying a dog on his back.'}
```

<figure><img src="/files/ac5d87ad151c8559ec1b5ee357103baf7fe6dcdc" 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-jp/deploy/dedicated-deployments.md) プライベートエンドポイントの URL。
  {% endhint %}

差し替えてください `<CAPTION>` 任意の対応タスクプロンプト（たとえば `<DETAILED_CAPTION>`, `<OD>`, `<OCR>`, `<OPEN_VOCABULARY_DETECTION>`, `<REFERRING_EXPRESSION_SEGMENTATION>`）を使用すると、captioning、detection、OCR、segmentation タスクを切り替えられます。

セルフホストのデプロイと task prompt の全一覧については、 [推論ドキュメント](https://inference.roboflow.com/).
