マルチモーダル埋め込みモデルは、テキスト、画像、動画を共通の意味空間内の埋め込みに変換し、クロスモーダル取得、コンテンツ分類、類似検索を可能にします。
コア機能
-
クロスモーダル取得:コンテンツタイプを横断した検索(テキストによる画像検索、画像による動画検索、画像間検索など)が可能です。
-
意味的類似性:統一された埋め込み空間内で異なるコンテンツタイプ間の類似性を測定できます。
-
コンテンツ分類およびクラスタリング:コンテンツを意味に基づいてグループ化・ラベル付け・クラスタリングできます。
主な属性:すべてのモダリティ(テキスト、画像、動画)が同じ意味空間内に埋め込みを生成するため、余弦類似度を用いた直接的なクロスモーダルマッチングおよび比較が可能です。モデルの選択と使用方法については、「テキストおよびマルチモーダル埋め込み」をご参照ください。
このモデルサービスは 中国 (北京) リージョンでのみ利用可能です。API キー をこのリージョンから取得し、サービスを呼び出してください。
埋め込みタイプ
マルチモーダル埋め込みモデルは、次の 2 種類の埋め込み生成モードをサポートしています。
-
マルチモーダル独立埋め込み:
contents配列内の各入力(テキスト、画像、動画、または画像シーケンス)に対して個別の埋め込みを生成します。たとえば、テキスト 1 つと画像 1 つで、2 つの独立した埋め込みが生成されます。画像間検索やテキストによる画像検索など、個々のコンテンツ項目を比較する用途に最適です。 -
マルチモーダル融合埋め込み:
contents内のすべての入力を 1 つの埋め込みに統合し、クロスモーダルな意味表現を統一的に提供します。商品画像と説明文を組み合わせて 1 つの埋め込みを作成するなど、マルチモーダルコンテンツ全体を包括的に理解する必要がある場合に最適です。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 のみ) |
1 リクエストあたり最大 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 対応) |
1 リクエストあたり最大 20 要素。テキストセグメントは最大 20 個、画像は最大 1 枚、動画は最大 1 件まで。 |
||
すべてのモデルは、テキスト、画像、動画の入力を個別または組み合わせでサポートしています。tongyi-embedding-vision-plus、tongyi-embedding-vision-flashモデルは、画像シーケンス用のmulti_images入力もサポートしています。
モデル機能
|
モデル |
デフォルトディメンション |
タイプ |
対応する入力 |
説明 |
|
qwen3-vl-embedding |
2,560 |
独立/融合 |
text、image、video、multi_images |
融合モードでは、 |
|
tongyi-embedding-vision-plus |
1,152 |
独立のみ |
text、image、video、multi_images |
|
|
tongyi-embedding-vision-flash |
768 |
|||
|
multimodal-embedding-v1 |
1,024 |
text、image、video |
dimension パラメーターはサポートされていません。固定値は 1,024 です。 |
前提条件
API キーを作成し、API キーを環境変数としてエクスポートしてください。SDK を使用して呼び出す場合は、DashScope SDK をインストールしてください。
HTTP 呼び出し
POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding
リクエスト |
マルチモーダル独立埋め込み次の例では、
マルチモーダル融合埋め込み
|
リクエストヘッダー |
|
|
Content-Type リクエストのコンテンツタイプです。 |
|
|
Authorization Model Studio API キーを使用してリクエストを認証します。例:Bearer sk-xxxx。 |
|
リクエストボディ |
|
|
model モデル名です。「モデル概要」からモデル名を指定してください。 |
|
|
input 入力コンテンツです。 parameters 埋め込み生成パラメーターです。HTTP 呼び出しでは |
応答 |
成功時の応答
エラー応答
|
|
output 埋め込み結果です。 |
|
|
request_id トレースおよびトラブルシューティング用の一意のリクエスト識別子です。 |
|
|
code エラーコードです。失敗したリクエストの場合にのみ返されます。「エラーメッセージ」をご参照ください。 |
|
|
message 詳細なエラーメッセージです。失敗したリクエストの場合にのみ返されます。「エラーメッセージ」をご参照ください。 |
|
|
usage トークン使用量の統計情報です。 |
SDK の使用方法
SDK の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 = "General multimodal representation model example"
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 = "This is a test text for generating a multimodal fused embedding."
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 = "White sports shoes, lightweight and breathable, suitable for running and daily wear."
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"
# 複数画像の融合のために、複数の画像アイテムを渡します。`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))
2026-03-06 スナップショットバージョン
この例では、tongyi-embedding-vision-plus-2026-03-06モデルとそのres_level(解像度)およびmax_video_frames(ビデオフレーム)パラメーターの使用方法を示しています。Qwen3 基盤上に構築されており、30 言語以上をサポートし、独立埋め込みおよび融合埋め込みの両方を生成できます。
import dashscope
import json
import os
from http import HTTPStatus
# tongyi-embedding-vision-plus-2026-03-06 の例
# res_level(解像度)および max_video_frames(ビデオフレーム)パラメーターの使用を示します。
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"
text = "This is a visual multimodal representation model."
input_data = [
{"text": text},
{"image": image},
{"video": video}
]
# 2026-03-06 スナップショットバージョンのモデルを呼び出します。
resp = dashscope.MultiModalEmbedding.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-embedding-vision-plus-2026-03-06",
input=input_data,
dimension=1152, # サポートされる値:1152、1024、512、256、128、64
res_level=1, # 解像度レベル。サポートされる値:0、1、2、3。デフォルト:1。
max_video_frames=64 # サンプリングする動画フレームの最大数。デフォルト:8、最大:64。
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, ensure_ascii=False, indent=4))
次の例では、2026-03-06 バージョンの 融合埋め込み の使用方法を示しています。text、image、および video を同じ content オブジェクト内に配置すると、モデルはすべての入力を融合し、type が fused の単一の埋め込みを生成します。
import dashscope
import json
import os
from http import HTTPStatus
# 融合埋め込み:テキスト、画像、動画を同じコンテンツオブジェクト内に配置します。
# モデルはすべての入力を融合し、タイプが "fused" の単一の埋め込みを生成します。
text = "White sports shoes, lightweight and breathable, suitable for running and daily wear."
image = "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png"
# 同じオブジェクト内のマルチモーダルコンテンツは、単一の埋め込みに融合されます。
input_data = [
{"text": text, "image": image}
]
resp = dashscope.MultiModalEmbedding.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-embedding-vision-plus-2026-03-06",
input=input_data,
dimension=1152
)
if resp.status_code == HTTPStatus.OK:
result = {
"status_code": resp.status_code,
"request_id": getattr(resp, "request_id", ""),
"output": resp.output,
"usage": resp.usage
}
print(json.dumps(result, 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
}
}
エラーコード
モデル呼び出しが失敗し、エラーメッセージが返された場合は、「エラーメッセージ」を参照して解決してください。