メインコンテンツまでスキップ
バージョン: User Guides (Cloud)

画像データ

Zilliz CloudのWeb UIは、パイプラインを作成、実行、管理するためのシンプルで直感的な方法を提供し、RESTful APIはWeb UIに比べてより柔軟性とカスタマイズ性を提供します。

このガイドでは、画像パイプラインの作成、埋め込み画像データの逆画像検索の実行、パイプラインが不要になった場合の削除に必要な手順を説明します。

📘ノート

Zilliz Cloud Pipelinesは、2025年第2四半期の終わりまでに廃止され、「Data In, Data Out」という新しい機能に置き換えられます。これにより、MilvusとZilliz Cloudの両方で埋め込み生成が効率化されます。2024年12月24日現在、新規ユーザー登録は受け付けられていません。現在のユーザーは、日没日まで月額20ドルの無料手当内でサービスを継続して利用できますが、SLAは提供されていません。モデルプロバイダーまたはオープンソースモデルの埋め込みAPIを使用してベクトル埋め込みを生成することを検討してください。

前提条件と制限

  • Google Cloud Platform(GCP)上のus-west 1にデプロイされたクラスタを作成していることを確認してください。

  • 一つのプロジェクトでは、同じタイプのパイプラインを最大100個まで作成できます。詳細については、Zillizクラウドの制限を参照してください。

イメージデータを取り込む

データを取り込むには、まず取り込みパイプラインを作成してから実行する必要があります。

イメージ取り込みパイプラインを作成する

  1. プロジェクトに移動します。

  2. ナビゲーションパネルからパイプラインをクリックします。次に、概要タブに切り替えて、パイプラインをクリックします。パイプラインを作成するには、+パイプラインをクリックしてください。

    create-pipeline

  3. 作成するパイプラインの種類を選択します。[+パイプライン]ボタンをクリックします。Ingestion Pipeline列。

    choose-pipeline

  4. 作成するIngestionパイプラインを構成します。

    パラメータ

    説明する

    ターゲットクラスタ

    このIngestionパイプラインを使用して新しいコレクションが自動的に作成されるクラスタです。現時点では、GCP us-west 1にデプロイされたクラスタのみとなります。

    コレクション名

    自動作成されたコレクションの名前。

    パイプライン名

    新しいIngestionパイプラインの名前です。小文字、数字、アンダースコアのみを含める必要があります。

    説明(オプション)

    新しいIngestionパイプラインの説明。

    configure-ingestion-pipeline

  5. IngestionパイプラインにINDEX関数を追加するには、+Functionをクリックします。各Ingestionパイプラインに対して、正確に1つのINDEX関数を追加できます。

    1. 関数名を入力します。

    2. 関数タイプとしてINDEX_IMAGEを選択してください。INDEX_IMAGE関数は、提供されたURL内の画像のベクトル埋め込みを生成できます。

    3. ベクトル埋め込みを生成するために使用する埋め込みモデルを選択してください。現在、利用可能なモデルは2つあります:zilliz/vit-base-patch16-224zilliz/clip-vit-base-patch32。以下のチャートは、各埋め込みモデルを簡単に紹介しています。

      埋め込みモデル

      説明する

      ジリズ/vit-base-patch16-224

      Vision Transformer(ViT)は、Googleによってオープンソース化されたトランスエンコーダーモデル(BERTのようなもの)です。このモデルは、画像コンテンツの意味をベクトル空間に埋め込むために、大量の画像コレクションで事前にトレーニングされています。このモデルは、最適なレイテンシを提供するためにZilliz Cloudにホストされています。

      ジリズ/clip-vit-base-patch32

      Open AIによってリリースされたマルチモーダルモデル。このビジョンモデルとそのペアリングテキストモデルは、画像とテキストを同じベクトル空間に埋め込むことができ、視覚情報とテキスト情報の間の意味検索を可能にします。モデルはZilliz Cloudにホストされ、最高のレイテンシを提供します。

      add-index-image-function

    4. [追加]をクリックして関数を保存します。

  6. (オプション)テキストのメタデータを保持する必要がある場合は、別のPRESERVE関数を追加してください。PRE SERVE関数は、データ取り込みとともにコレクションにスカラーフィールドを追加します。

    📘ノート

    各Ingestionパイプラインについて、最大50個のPRESERVE関数を追加できます。

    1. [+Function]をクリックします。

    2. 関数名を入力します。

    3. 入力フィールドの名前と種類を設定します。サポートされている入力フィールドの種類は、BoolInt 8Int 16Int 32Int 64FloatDoubleVarCharです。

      📘ノート
      • 現在、出力フィールド名は入力フィールド名と同じでなければなりません。入力フィールド名は、Ingestionパイプラインを実行する際に使用されるフィールド名を定義します。出力フィールド名は、保存された値が保持されるベクトルコレクションスキーマ内のフィールド名を定義します。

      • VarCharフィールド場合、値は最大4,000文字の英数字の文字列である必要があります。

      • スカラーフィールドに日時を格納する場合は、年データにはInt 16データ型、タイムスタンプにはInt 32データ型を使用することをお勧めします。

    add-preserve-function

    1. [追加]をクリックして関数を保存します。
  7. [Ingestion Pipelineを作成]をクリックします。

  8. 作成したばかりのIngestionパイプラインと互換性があるように自動構成された検索パイプラインと削除パイプラインの作成を続けます。

    auto-create-image-search-and-delete-pipelines

イメージ取り込みパイプラインを実行する

  1. インジェスチョンパイプラインの横にある「▶︎」ボタンをクリックしてください。または、プレイグラウンドタブをクリックすることもできます。

    run-pipeline

  2. 画像IDとURLをimage_idimage_urlフィールドに入力してください。PRESERVE関数を追加した場合は、定義済みの保存フィールドにも値を入力してください。実行をクリックしてください。

  3. 結果を確認してください。

  4. 再度実行する他のテキストを入力します。

画像データを検索する

任意のデータを検索するには、まず検索パイプラインを作成してから実行する必要があります。IngestionおよびDeletionパイプラインとは異なり、検索パイプラインを作成する場合、クラスタとコレクションはパイプラインレベルではなく関数レベルで定義されます。これは、Zilliz Cloudが複数のコレクションから同時に検索できるためです。

画像データを検索するには2つの方法があります。逆画像検索を行うか、テキストによる画像検索を行います。

画像検索パイプラインの作成

  1. プロジェクトに移動します。

  2. ナビゲーションパネルからパイプラインをクリックします。次に、概要タブに切り替えて、パイプラインをクリックします。パイプラインを作成するには、+パイプラインをクリックしてください。

  3. 作成するパイプラインの種類を選択してください。「+パイプライン」ボタンを検索パイプライン欄でクリックしてください。

    create-search-pipeline

  4. 作成したい検索パイプラインを構成します。

    パラメータ

    説明する

    パイプライン名

    新しい検索パイプラインの名前です。小文字、数字、アンダースコアのみを含める必要があります。

    説明(オプション)

    新しい検索パイプラインの説明。

    configure-search-pipeline

  5. +Function」をクリックして、検索パイプラインに関数を追加します。正確に1つの関数を追加できます。

    1. 関数名を入力します。

    2. Target Cluster」と「Target collection」を選択します。Target Clusterは、**us-west 1 on Google Cloud Platform(GCP)**にデプロイされたクラスタである必要があります。また、Target CollectionはIngestionパイプラインによって作成されている必要があります。そうでない場合、Searchパイプラインは互換性がありません。

    3. Function TypeとしてSEARCH_IMAGE_BY_IMAGEを選択してください。Function TypeとしてSEARCH_IMAGE_BY_IMAGE関数を使用すると、クエリ画像をベクトル埋め込みに変換し、最も類似した画像を取得できます。

      add-search-image-function

    4. [追加]をクリックして関数を保存します。

  6. [検索パイプラインを作成]をクリックします。

画像検索パイプラインの実行

  1. 検索パイプラインの横にある「▶︎」ボタンをクリックしてください。または、プレイグラウンドタブをクリックすることもできます。

    run-pipeline

  2. クエリ画像のURLを入力し、実行をクリックします。

  3. 結果を確認してください。

  4. パイプラインを再実行するための新しいクエリイメージURLを入力してください。

テキストで画像を検索する

画像検索パイプラインの作成

  1. プロジェクトに移動します。

  2. ナビゲーションパネルからパイプラインをクリックします。次に、概要タブに切り替えて、パイプラインをクリックします。パイプラインを作成するには、+パイプラインをクリックしてください。

  3. 作成するパイプラインの種類を選択してください。「+パイプライン」ボタンを検索パイプライン欄でクリックしてください。

    create-search-pipeline

  4. 作成したい検索パイプラインを構成します。

    パラメータ

    説明する

    パイプライン名

    新しい検索パイプラインの名前です。小文字、数字、アンダースコアのみを含める必要があります。

    説明(オプション)

    新しい検索パイプラインの説明。

    configure-search-pipeline

  5. +Function」をクリックして、検索パイプラインに関数を追加します。正確に1つの関数を追加できます。

    1. 関数名を入力します。

    2. Target Cluster」と「Target collection」を選択します。Target Clusterは、**us-west 1 on Google Cloud Platform(GCP)**にデプロイされたクラスタである必要があります。また、Target CollectionはIngestionパイプラインによって作成されている必要があります。そうでない場合、Searchパイプラインは互換性がありません。

      📘ノート

      SEARCHIMAGEBY_TEXT関数は、マルチモーダル画像モデルサービスzilliz/clip-vit-base-patch32を使用して互換性のある画像取り込みパイプラインがある場合にのみ使用できます。

    3. Function TypeとしてSEARCH_IMAGE_BY_TEXTを選択してください。Function TypeとしてSEARCH_IMAGE_BY_TEXT関数を使用すると、クエリテキストをベクトル埋め込みに変換し、最も類似した画像を取得できます。

      関数SEARCH_IMAGE_BY_TEXTを選択した場合、マルチモーダルテキスト埋め込みサービスzilliz/clip-vit-base-patch32-multilingual-v1がデフォルトで使用され、対応する取り込みパイプラインとターゲットコレクションに一致します。

      add-search-image-by-text-function

    4. [追加]をクリックして関数を保存します。

  6. [検索パイプラインを作成]をクリックします。

画像検索パイプラインの実行

  1. 検索パイプラインの横にある「▶︎」ボタンをクリックしてください。または、プレイグラウンドタブをクリックすることもできます。

    run-pipeline

  2. クエリテキストを入力します。[実行]をクリックします。

  3. 結果を確認してください。

  4. パイプラインを再実行する新しいクエリテキストを入力してください。

画像データの削除

データを削除するには、まず削除パイプラインを作成してから実行する必要があります。

📘ノート

まずIngestionパイプラインを作成する必要があります。Ingestionパイプラインの作成に成功したら、検索パイプラインと削除パイプラインを作成して、新しく作成したIngestionパイプラインを操作できます。

イメージ削除パイプラインの作成

  1. プロジェクトに移動します。

  2. ナビゲーションパネルからパイプラインをクリックします。次に、概要タブに切り替えて、パイプラインをクリックします。パイプラインを作成するには、+パイプラインをクリックしてください。

  3. 作成するパイプラインの種類を選択してください。「+パイプライン」ボタンを削除パイプライン欄でクリックしてください。

    create-deletion-pipeline

  4. 作成する削除パイプラインを構成します。

    パラメータ

    説明する

    パイプライン名

    新しい削除パイプラインの名前です。小文字、数字、アンダースコアのみを含める必要があります。

    説明(オプション)

    新しいDeletionパイプラインの説明。

    configure-deletion-pipeline

  5. +Function」をクリックして、削除パイプラインに関数を追加します。1つの関数だけを追加できます。

    1. 関数名を入力します。

    2. PURGE_IMAGE_INDEX」または「PURGE_BY_EXPRESSION」を関数タイプとして選択します。PURGE_IMAGE_INDEX関数は指定されたimage_idを持つすべての画像を削除できますが、PURGE_BY_EXPRESSION関数は指定されたフィルタ式に一致するすべてのテキストエンティティを削除できます。

    3. [追加]をクリックして関数を保存します。

  6. [削除パイプラインを作成]をクリックします。

イメージ削除パイプラインの実行

  1. 削除パイプラインの横にある「▶︎」ボタンをクリックしてください。または、プレイグラウンドタブをクリックすることもできます。

    run-pipeline

  2. フィルタ式を入力します。[実行]をクリックします。

  3. 結果を確認してください。

パイプラインの管理

以下は、前述の手順で作成されたパイプラインを管理する関連する操作です。

ビューパイプライン

左ナビゲーションのパイプラインをクリックします。パイプラインタブを選択します。利用可能なすべてのパイプラインが表示されます。

view-pipelines-on-web-ui

特定のパイプラインをクリックすると、基本情報、合計使用量、機能、関連コネクタなどの詳細情報が表示されます。

view-pipeline-details

📘ノート

技術的な制限により、総使用データが数時間遅れる可能性があります。

Web UIでパイプラインのアクティビティを確認することもできます。

view-pipelines-activities-on-web-ui

パイプラインを削除

パイプラインが不要になった場合は、削除できます。パイプラインを削除しても、データを取り込んだ自動作成コレクションは削除されません。

🚧警告
  • ドロップしたパイプラインは回復できません。行動には注意してください。

  • データ取り込みパイプラインを削除しても、パイプラインと一緒に作成されたコレクションには影響しません。データは安全です。

Web UIにパイプラインをドロップするには、をクリックします**。。。**「アクション」列の下にあるボタンをクリックします。次に、「ドロップ」をクリックします。

delete-pipeline