すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:マルチモーダル埋め込み API

最終更新日:Mar 27, 2026

マルチモーダル埋め込みモデルは、テキスト、画像、または動画を統一されたベクター表現に変換し、動画分類、画像分類、テキストによる画像検索などのタスクに適しています。

主な機能

  • クロスモーダル取得:テキストによる画像検索、画像による動画検索、画像検索など、異なるコンテンツタイプ間での検索を実行します。

  • 意味的類似度:統一されたベクター空間内で、異なるコンテンツタイプ間の類似度を算出します。

  • コンテンツの分類およびクラスタリング:意味的埋め込みに基づいて、コンテンツをグループ化、タグ付け、およびクラスタリングします。

主要な属性:すべてのモダリティ(テキスト、画像、動画)が同一の意味空間で埋め込みを生成するため、コサイン類似度などの手法を用いた直接的なクロスモーダル一致および比較が可能です。モデル選択および適用方法の詳細については、「テキストおよびマルチモーダル埋め込み」をご参照ください。
重要

このモデルサービスは、中国 (北京) リージョンでのみご利用いただけます。このサービスを呼び出すには、当該リージョンから取得した API キー を使用してください。

ベクターの種類

マルチモーダル埋め込みモデルは、以下の 2 種類のベクター生成方式をサポートしています。

  • マルチモーダル独立ベクター:モデルは、contents 配列内の各入力(テキスト、画像、動画、複数の画像など)に対して個別のベクターを生成します。たとえば、1 つのテキストと 1 つの画像を入力すると、モデルは 2 つの独立したベクターを返します。この方式は、画像間検索やテキストによる画像検索など、異なるタイプのコンテンツを個別に比較する必要があるシナリオに適しています。

  • マルチモーダル融合埋め込みcontents 内のすべての入力を単一の埋め込みに融合し、クロスモーダルな意味表現を実現します。製品画像と説明テキストを統合した表現を生成して取得処理を行うなど、マルチモーダルコンテンツを包括的に理解する必要があるシナリオに最適です。qwen3-vl-embedding の場合、enable_fusion=true を設定することで融合モードを有効化します。 融合埋め込みは、以下の組み合わせをサポートします。

    • テキストおよび画像

    • テキストおよび動画

    • 複数の画像およびテキスト(image エントリを複数指定)

    • 画像、動画、およびテキスト

qwen2.5-vl-embedding は融合埋め込みのみをサポートし、独立ベクターはサポートしません。tongyi-embedding-vision-plus および tongyi-embedding-vision-flash は独立ベクターのみをサポートし、融合埋め込みはサポートしません。

モデルの概要、選択ガイド、および利用方法については、「テキストおよびマルチモーダル埋め込み」をご参照ください。

モデル概要

シンガポール

モデル名

埋め込み次元

テキスト長制限

画像サイズ制限

動画サイズ制限

価格(100 万入力トークンあたり)

無料クォータ(注)

tongyi-embedding-vision-plus

1152

1,024 トークン

画像 1 枚あたり最大 3 MB。最大 8 枚の画像をサポート。

動画ファイル 1 個あたり最大 10 MB

画像/動画:$0.09

テキスト:$0.09

100 万トークン

Model Studio を有効化後 90 日間有効

tongyi-embedding-vision-flash

768

画像/動画:$0.03

テキスト:$0.09

中国 (北京)

モデル名

埋め込み次元

テキスト長制限

画像サイズ制限

動画サイズ制限

価格(100 万入力トークンあたり)

qwen3-vl-embedding

2560(デフォルト)、2048、1536、1024、768、512、256

32,000 トークン

画像最大 5 枚、1 枚あたり最大 5 MB

動画ファイル 1 個あたり最大 50 MB

画像/動画:$0.258

テキスト:$0.1

multimodal-embedding-v1

1024

512 トークン

画像最大 8 枚、1 枚あたり 3 MB

動画ファイル 1 個あたり最大 10 MB

無料トライアル

入力形式および言語制限

融合マルチモーダルモデル

モデル

テキスト

画像

動画

リクエスト制限

qwen3-vl-embedding

中国語、英語、日本語、韓国語、フランス語、ドイツ語など、33 の主要言語をサポート。

JPEG、PNG、WEBP、BMP、TIFF、ICO、DIB、ICNS、SGI(URL または Base64 対応)

MP4、AVI、MOV(URL のみ)

リクエストあたり最大 20 個のコンテンツ要素(画像最大 5 枚、動画最大 1 個)。

独立マルチモーダルモデル

モデル

テキスト

画像

動画

リクエスト制限

tongyi-embedding-vision-plus

中国語および英語

JPG、PNG、BMP(URL または Base64 対応)

MP4、MPEG、MOV、MPG、WEBM、AVI、FLV、MKV(URL のみ)

コンテンツ要素数に制限はありません。入力トークン総数は、バッチ処理トークン制限を超えてはなりません。

tongyi-embedding-vision-flash

multimodal-embedding-v1

JPG、PNG、BMP(URL または Base64 対応)

リクエストあたり最大 20 個のコンテンツ要素(テキストセグメント最大 20 個、画像最大 1 枚、動画最大 1 個)。

すべてのモデルは、テキスト、画像、動画の入力を個別または組み合わせてサポートしています。tongyi-embedding-vision-plustongyi-embedding-vision-flash の各モデルは、画像シーケンス用の multi_images 入力もサポートしています。

モデル機能

モデル

デフォルト次元

タイプ

対応入力

説明

qwen3-vl-embedding

2,560

独立/融合

テキスト、画像、動画、multi_images

enable_fusion パラメーターを有効化することで、マルチモーダル入力を単一のベクターに融合します。

tongyi-embedding-vision-plus

1,152

独立のみ

テキスト、画像、動画、multi_images

multi_images シーケンスを最大 8 枚の画像でサポート。

tongyi-embedding-vision-flash

768

multimodal-embedding-v1

1,024

テキスト、画像、動画

dimension パラメーターはサポートされていません。次元は固定値 1024 です。

前提条件

API キーの取得 および API キーを環境変数としてエクスポート が必要です。SDK を使用して呼び出しを行う場合は、DashScope SDK のインストール が必要です。

HTTP 呼び出し

POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding

リクエスト

マルチモーダル独立埋め込み

以下の例では、tongyi-embedding-vision-plus モデルを使用して独立埋め込み(各入力ごとに 1 つの埋め込み)を生成します。他のモデル名に置き換え可能です。multi_images タイプは、tongyi-embedding-vision-plus および tongyi-embedding-vision-flash のみがサポートします。qwen3-vl-embedding モデルは融合埋め込みモードもサポートしており、enable_fusion=true を設定することで有効化できます。「マルチモーダル融合埋め込み」タブをご参照ください。
curl --silent --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "tongyi-embedding-vision-plus",
    "input": {
        "contents": [ 
            {"text": "マルチモーダル埋め込みモデル"},
            {"image": "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"},
            {"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"},
            {"multi_images": [
                "https://img.alicdn.com/imgextra/i2/O1CN019eO00F1HDdlU4Syj5_!!6000000000724-2-tps-2476-1158.png",
                "https://img.alicdn.com/imgextra/i2/O1CN01dSYhpw1nSoamp31CD_!!6000000005089-2-tps-1765-1639.png"
                ]
              }
        ]
    }
}'

マルチモーダル融合埋め込み

qwen3-vl-embedding モデルは融合埋め込みの生成をサポートしています。enable_fusion=true を設定すると、すべての入力を単一の埋め込みに融合します。これにより、テキストと画像、テキストと動画、複数の画像とテキスト、画像・動画・テキストの混合など、さまざまな組み合わせが可能になります。以下の例では、複数の画像、動画、テキストの混合融合を示しています。
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "qwen3-vl-embedding",
    "input": {
        "contents": [
            {"text": "プロダクト説明テキスト"},
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"},
            {"image": "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"},
            {"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"}
        ]
    },
    "parameters": {
        "enable_fusion": true
    }
}'

リクエストヘッダー

Content-Type 文字列 (必須)

リクエストのコンテンツタイプ。必ず application/json を指定してください。

Authorization 文字列 (必須)

Model Studio API キーを使用した認証情報。

例: Bearer sk-xxxx

リクエストボディ

model 文字列(必須)

モデル名。 モデル概要 からモデル名を指定してください。

input オブジェクト(必須)

入力コンテンツ。

プロパティ

contents 配列(必須)

処理対象のコンテンツリスト。各要素は、モダリティタイプおよび値を指定する辞書または文字列です:{"modality_type": "input_string_or_image/video_url"}。サポートされるタイプ: textimagevideomulti_images

qwen3-vl-embedding モデルは、独立および融合埋め込みの両方をサポートしています。融合埋め込みを生成するには、ブール型フィールド enable_fusion を追加し、true に設定します。qwen2.5-vl-embedding モデルは融合埋め込みのみをサポートします。
  • テキスト:キーは text、値は文字列です。辞書を使用せず、文字列を直接渡すこともできます。

  • 画像:キーは image。値は公開 URL または Base64 Data URI(data:image/{format};base64,{data})で、{format} は画像フォーマット(jpegpng など)、{data} は Base64 文字列です。

  • 複数の画像: tongyi-embedding-vision-plus および tongyi-embedding-vision-flash のみがサポートします。キーは multi_images、値は上記フォーマットに従う画像リスト(最大 8 枚)です。

  • 動画:キーは video。値は公開 URL である必要があります。

parameters オブジェクト (任意)

ベクター処理のパラメーター。HTTP 呼び出しでは parameters オブジェクトでラップしてください。SDK 呼び出しでは直接指定します。

プロパティ

output_type 文字列 任意

出力ベクターのフォーマット。現在は dense のみがサポートされています。

dimension 整数 任意

出力ベクターの次元。モデルによってサポートされる値は異なります。

  • qwen3-vl-embedding:2,560、2,048、1,536、1,024、768、512、256 をサポート。デフォルトは 2,560 です。

  • tongyi-embedding-vision-plus:このパラメーターはサポートされていません。固定次元 1,152 の埋め込みを返します。

  • tongyi-embedding-vision-flash:このパラメーターはサポートされていません。固定次元 768 の埋め込みを返します。

  • multimodal-embedding-v1:このパラメーターはサポートされていません。固定次元 1,024 の埋め込みを返します。

fps 浮動小数点数 任意

動画フレーム抽出レートを制御します。範囲:[0, 1](値が小さいほどフレーム数が少なくなります)。デフォルトは 1.0 です。

instruct 文字列 任意

モデルがクエリ意図を理解するためのカスタムタスク説明。性能向上(1~5%)のために、英語を使用することを推奨します。

enable_fusion ブール値 任意

融合埋め込みを生成するかどうかを指定します。このパラメーターは qwen3-vl-embedding モデルのみがサポートします。true に設定すると、contents 配列内のすべてのマルチモーダルコンテンツが単一の埋め込みに融合されます。デフォルトは false であり、各モダリティに対して独立した埋め込みを生成します。融合埋め込みは、テキストと画像、テキストと動画、複数の画像とテキスト(複数の image アイテムを渡すことで実現)、画像・動画・テキストの混合など、マルチモーダルコンテンツを包括的に理解する必要がある取得ユースケースに適しています。

応答

正常終了時の応答

{
    "output": {
        "embeddings": [
            {
                "index": 0,
                "embedding": [
                    -0.026611328125,
                    -0.016571044921875,
                    -0.02227783203125,
                    ...
                ],
                "type": "text"
            },
            {
                "index": 1,
                "embedding": [
                    0.051544189453125,
                    0.007717132568359375,
                    0.026611328125,
                    ...
                ],
                "type": "image"
            },
            {
                "index": 2,
                "embedding": [
                    -0.0217437744140625,
                    -0.016448974609375,
                    0.040679931640625,
                    ...
                ],
                "type": "video"
            }
        ]
    },
    "usage": {
        "input_tokens": 10,
        "image_tokens": 896
    },
    "request_id": "1fff9502-a6c5-9472-9ee1-73930fdd04c5"
}

エラー応答

{
    "code":"InvalidApiKey",
    "message":"無効な API キーが指定されました。",
    "request_id":"fb53c4ec-1c12-4fc4-a580-cdb7c3261fc1"
}

output オブジェクト

埋め込み結果。

プロパティ

embeddings 配列

入力要素ごとのベクター結果のリスト。

プロパティ

index 整数

入力リスト内のインデックス。

embedding 配列

埋め込みベクター。

type 文字列

入力タイプ:textimagevideomulti_images、または vlqwen3-vl-embedding のみ)。

request_id 文字列

リクエストの一意な識別子。トレースおよびトラブルシューティングに使用します。

code 文字列

エラーコード。リクエストが失敗した場合にのみ返されます。詳細については、「エラーコード」をご参照ください。

message 文字列

詳細なエラーメッセージ。リクエストが失敗した場合にのみ返されます。詳細については、「エラーコード」をご参照ください。

usage オブジェクト

トークン使用量の統計情報。

プロパティ

input_tokens 整数

このリクエストの入力トークン数。

image_tokens 整数

このリクエストの画像/動画トークン数。動画の場合、システムはフレームをサンプリング(構成で制御)し、その結果からトークン数を算出します。

image_count 整数

このリクエストの画像数。

duration 整数

動画の再生時間(秒)。

SDK の使用方法

SDK のリクエストボディは HTTP 呼び出しとは異なります:input は、HTTP の input.contents に対応します。

コード例

画像埋め込み

画像 URL

import dashscope
import json
from http import HTTPStatus
# 画像 URL をここに置き換えます。
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
input = [{'image': image}]
# モデル API を呼び出します。
resp = dashscope.MultiModalEmbedding.call(
    model="tongyi-embedding-vision-plus",
    input=input
)

if resp.status_code == HTTPStatus.OK:
    result = {
        "status_code": resp.status_code,
        "request_id": getattr(resp, "request_id", ""),
        "code": getattr(resp, "code", ""),
        "message": getattr(resp, "message", ""),
        "output": resp.output,
        "usage": resp.usage
    }
    print(json.dumps(result, ensure_ascii=False, indent=4))

ローカル画像

ローカル画像を Base64 に変換し、埋め込みのためにモデルを呼び出します。

import dashscope
import base64
import json
from http import HTTPStatus
# 画像を読み取り、Base64 に変換します。xxx.png を実際の画像ファイル名またはパスに置き換えます。
image_path = "xxx.png"
with open(image_path, "rb") as image_file:
    # ファイルを読み取り、Base64 に変換します。
    base64_image = base64.b64encode(image_file.read()).decode('utf-8')
# 画像フォーマットを設定します。
image_format = "png"  # 実際のフォーマット(jpg や bmp など)に応じて変更してください。
image_data = f"data:image/{image_format};base64,{base64_image}"
# 入力データ
input = [{'image': image_data}]

# モデル API を呼び出します。
resp = dashscope.MultiModalEmbedding.call(
    model="tongyi-embedding-vision-plus",
    input=input
)
if resp.status_code == HTTPStatus.OK:
    result = {
        "status_code": resp.status_code,
        "request_id": getattr(resp, "request_id", ""),
        "code": getattr(resp, "code", ""),
        "message": getattr(resp, "message", ""),
        "output": resp.output,
        "usage": resp.usage
    }
    print(json.dumps(result, ensure_ascii=False, indent=4))

動画埋め込み

動画入力は URL のみをサポートします。ローカル動画はサポートされていません。
import dashscope
import json
from http import HTTPStatus
# 動画 URL をここに置き換えます。
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"
input = [{'video': video}]
# モデル API を呼び出します。
resp = dashscope.MultiModalEmbedding.call(
    model="tongyi-embedding-vision-plus",
    input=input
)

if resp.status_code == HTTPStatus.OK:
    result = {
        "status_code": resp.status_code,
        "request_id": getattr(resp, "request_id", ""),
        "code": getattr(resp, "code", ""),
        "message": getattr(resp, "message", ""),
        "output": resp.output,
        "usage": resp.usage
    }
    print(json.dumps(result, ensure_ascii=False, indent=4))
    

テキスト埋め込み

import dashscope
import json
from http import HTTPStatus

text = "汎用マルチモーダル表現モデルの例"
input = [{'text': text}]
# モデル API を呼び出します。
resp = dashscope.MultiModalEmbedding.call(
    model="tongyi-embedding-vision-plus",
    input=input
)

if resp.status_code == HTTPStatus.OK:
    result = {
        "status_code": resp.status_code,
        "request_id": getattr(resp, "request_id", ""),
        "code": getattr(resp, "code", ""),
        "message": getattr(resp, "message", ""),
        "output": resp.output,
        "usage": resp.usage
    }
    print(json.dumps(result, ensure_ascii=False, indent=4))

融合埋め込み

import dashscope
import json
import os
from http import HTTPStatus

# マルチモーダル融合埋め込み:テキスト、画像、動画を単一の融合埋め込みに結合します。
# クロスモーダル取得および画像検索などのアプリケーションに最適です。
text = "マルチモーダル融合埋め込みを生成するためのテストテキストです。"
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
video = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"

# 入力にはテキスト、画像、動画が含まれます。enable_fusion=True を設定して単一の融合埋め込みを生成します。
input_data = [
    {"text": text},
    {"image": image},
    {"video": video}
]

# qwen3-vl-embedding を使用して融合埋め込みを生成します。
resp = dashscope.MultiModalEmbedding.call(
    # 環境変数が設定されていない場合は、DashScope API キーを直接指定します(例:api_key="sk-xxx")。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen3-vl-embedding",
    input=input_data,
    enable_fusion=True,
    # オプション:埋め込み次元を指定します。サポートされる値は 2560、2048、1536、1024、768、512、256 です。デフォルトは 2560 です。
    # parameters={"dimension": 1024}
)

print(json.dumps(resp, ensure_ascii=False, indent=4))

複数画像融合埋め込み

この例では、qwen3-vl-embedding モデルを使用して、複数の画像とテキストを単一の埋め込みに融合する方法を示しています。この複数画像融合を実行するには、複数の image アイテムを渡します。この手法は、多角度の製品画像とテキスト説明を用いた包括的な意味検索に最適です。

import dashscope
import json
import os
from http import HTTPStatus

# 複数画像+テキスト融合埋め込み:複数の製品画像と説明テキストを単一の埋め込みに融合します。
# 多角度の製品画像とテキスト説明を用いた包括的な意味検索に適しています。
text = "白いスポーツシューズ。軽量で通気性に優れ、ランニングおよび日常着用に適しています。"
image1 = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
image2 = "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"

# 複数画像融合のため、複数の image アイテムを渡します。enable_fusion=True を設定すると、すべての入力が単一の埋め込みに融合されます。
input_data = [
    {"text": text},
    {"image": image1},
    {"image": image2}
]

resp = dashscope.MultiModalEmbedding.call(
    # 環境変数が設定されていない場合は、DashScope API キーを直接指定します(例:api_key="sk-xxx")。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen3-vl-embedding",
    input=input_data,
    enable_fusion=True
)

print(json.dumps(resp, ensure_ascii=False, indent=4))

出力

{
    "status_code": 200,
    "request_id": "40532987-ba72-42aa-a178-bb58b52fb7f3",
    "code": "",
    "message": "",
    "output": {
        "embeddings": [
            {
                "index": 0,
                "embedding": [
                    -0.009490966796875,
                    -0.024871826171875,
                    -0.031280517578125,
                    ...
                ],
                "type": "text"
            }
        ]
    },
    "usage": {
        "input_tokens": 10,
        "input_tokens_details": {
            "image_tokens": 0,
            "text_tokens": 10
        },
        "output_tokens": 1,
        "total_tokens": 11
    }
}

エラーコード

モデル呼び出しが失敗し、エラーメッセージが返された場合は、「エラーメッセージ」をご参照ください。