For the complete documentation index, see llms.txt. This page is also available as Markdown.

CLIP

OpenAI の CLIP モデルを Serverless Cloud API で使用します

OpenAI の CLIP 画像とテキストの埋め込みを生成し、それらのゼロショット類似度比較を行うモデルを、当社の Serverless Cloud API。3つのエンドポイントを公開しています:

  • /clip/embed_image、画像の埋め込みベクトルを返します

  • /clip/embed_text、文字列または文字列のリストの埋め込みベクトルを返します

  • /clip/compare、subject と prompt のリスト間の類似度スコアを返します

埋め込みはキャッシュして、分類、検索、クラスタリング、セマンティック検索などのタスクに再利用できます。より広い利用方法の詳細については、 推論ドキュメント.

コード例

以下は、画像をテキストラベルのリストと比較するコードサンプルです。HTTP エンドポイントを直接呼び出すには、 curl、または次を使用します: inference-sdk ラッパーを使用します。

1

API キーを取得する

Roboflow アカウントを作成し、キーを次の場所で見つけてください。 Roboflow API 設定ページ そしてシェルから使えるようにします。

export ROBOFLOW_API_KEY="your-key-here"
2

モデルを実行する

次の /clip/compare エンドポイントを curl:

curl --location 'https://serverless.roboflow.com/clip/compare' \
  --header 'Content-Type: application/json' \
  --data '{
    "api_key": "'"$ROBOFLOW_API_KEY"'",
    "subject": {"type": "url", "value": "https://media.roboflow.com/notebooks/examples/dog.jpeg"},
    "subject_type": "image",
    "prompt": ["a photo of a dog", "a photo of a cat", "a photo of a car"],
    "prompt_type": "text"
  }'
1

API キーを取得する

Roboflow アカウントを作成し、キーを次の場所で見つけてください。 Roboflow API 設定ページ そしてシェルから使えるようにします。

export ROBOFLOW_API_KEY="your-key-here"
2

依存関係をインストールする

このパッケージは次のモデルを呼び出します:

pip install -U inference-sdk supervision
3

モデルを実行する

比較を実行する(画像の取得元: こちら):

import os
import supervision as sv
from inference_sdk import InferenceHTTPClient

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

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

result = client.clip_compare(
    subject=image,
    prompt=[
        "a photo of a dog",
        "a photo of a cat",
        "a photo of a car",
    ],
    subject_type="image",
    prompt_type="text",
)

# similarity は、各 prompt ごとのコサイン類似度スコアのリストです
print(result["similarity"])

上記のコードは推論結果をターミナルに出力します:

[0.2726989686489105, 0.19865083694458008, 0.20997387170791626]

推論速度

以下で測定したレイテンシ Roboflow Inference 1台のNVIDIA L4、バッチサイズ1、ウォームアップ後の平均で測定。

モデル
レイテンシ(ms)

clip

3.9

で測定 embed_imageViT-B-16 チェックポイント(画像埋め込みのみ)。

設定してください api_url をデプロイ先に合わせてください:

  • https://serverless.roboflow.com Serverless Cloud API 用です。

  • http://localhost:9001 ローカルの Inference サーバー。

  • あなたの 専用デプロイメント プライベートエンドポイント用の URL。

Inference(セルフホスト)で使用

CLIP は、次の inference Python パッケージを使えば、完全にお使いのハードウェア上でも実行できます。重みをプロセス内で読み込むため、呼び出しごとのネットワーク往復を避けられます。これは、検索、クラスタリング、データセットのクレンジングのために大量の画像セットを埋め込む場合に重要です。

1

パッケージをインストールしてください

2

ローカルで埋め込みと比較を行う

その Clip クラスは次を公開します: embed_image, embed_text、および compare。このサンプルでは、画像とプロンプトを埋め込み、そのコサイン類似度をスコアリングします:

結果は 0 から 1 の間です。数値が高いほど、画像とテキストの類似性が高くなります。

利用可能なチェックポイント

model_id CLIP のバックボーンを選択します:

clip/RN50, clip/RN101, clip/RN50x4, clip/RN50x16, clip/RN50x64, clip/ViT-B-32, clip/ViT-B-16, clip/ViT-L-14, clip/ViT-L-14-336px.

SDK のメソッド clip_compare, get_clip_image_embeddings、および get_clip_text_embeddingsclip_version という引数を受け取り、サーバーを呼び出す際に同じチェックポイントを選択できます。

参考資料

最終更新

役に立ちましたか?