Durch das Einbettungsmodell für multimodale Modelle (multimodalembedding
) werden Dimensionsvektoren (128, 256, 512 oder 1408 Dimensionen) basierend auf der von Ihnen bereitgestellten Eingabe generiert. Diese Eingabe kann eine beliebige Kombination aus Text, Bild oder Video enthalten. Die Einbettungsvektoren können dann für andere nachfolgende Aufgaben wie die Bildklassifizierung oder Inhaltsmoderation verwendet werden.
Die Einbettungsvektoren für Text, Bilder und Videos befinden sich im selben semantischen Bereich mit derselben Dimensionalität. Daher können diese Vektoren austauschbar für Anwendungsfälle wie die Bildsuche nach Text oder die Videosuche nach Bild verwendet werden.
Anwendungsfälle
Typische Anwendungsfälle für multimodale Einbettungen:
- Bild- oder Videoklassifizierung: Nimmt ein Bild oder Video als Eingabe und sagt eine oder mehrere Klassen (Labels) vorher.
- Bildersuche: Nach relevanten oder ähnlichen Bildern suchen.
- Suche nach Videoinhalten
- Semantische Suche verwenden: Nimmt einen Text als Eingabe und gibt eine Reihe von eingestuften Frames zurück, die mit der Abfrage übereinstimmen.
- Ähnlichkeitssuche verwenden:
- Nehmen Sie ein Video als Eingabe und geben Sie eine Reihe von Videos zurück, die der Abfrage entsprechen.
- Nehmen Sie ein Bild als Eingabe und geben Sie eine Reihe von Videos zurück, die der Abfrage entsprechen.
- Empfehlungen: Generiert Produkt- oder Werbeempfehlungen auf Basis von Bildern oder Videos (Ähnlichkeitssuche).
Weitere Informationen zu diesem Modell finden Sie in der Console auf der Modellkarte Einbettungen für multimodal im Model Garden.
HTTP-Anfrage
POST https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/us-central1/publishers/google/models/multimodalembedding:predict
Anfragetext
{
"instances": [
{
"text": string,
"image": {
// Union field can be only one of the following:
"bytesBase64Encoded": string,
"gcsUri": string,
// End of list of possible types for union field.
"mimeType": string
},
"video": {
// Union field can be only one of the following:
"bytesBase64Encoded": string,
"gcsUri": string,
// End of list of possible types for union field.
"videoSegmentConfig": {
"startOffsetSec": integer,
"endOffsetSec": integer,
"intervalSec": integer
}
},
"parameters": {
"dimension": integer
}
}
]
}
Verwenden Sie folgende Parameter für das multimodale Generierungsmodell multimodal
embeddings
. Weitere Informationen finden Sie unter Multimodale Einbettungen abrufen.
Parameter | Beschreibung | Zulässige Werte |
---|---|---|
instances |
Ein Array, das das Objekt mit Daten (Text, Bild und Video) enthält, zu denen Informationen abgerufen werden sollen. | Array (1 Objekt zulässig) |
text |
Der Eingabetext, für den Sie eine Einbettung erstellen möchten. | String (max. 32 Tokens) |
image.bytesBase64Encoded |
Das Bild, für das Einbettungen abgerufen werden sollen. Wenn Sie image.bytesBase64Encoded angeben, können Sie image.gcsUri nicht festlegen. |
Base64-codierter Bildstring (BMP-, GIF-, JPG- oder PNG-Datei, maximal 20 MB) |
image.gcsUri |
Der Cloud Storage-URI des Bildes, für das Einbettungen abgerufen werden sollen. Wenn Sie image.gcsUri angeben, können Sie image.bytesBase64Encoded nicht festlegen. |
String-URI der Bilddatei in Cloud Storage (BMP-, GIF-, JPG- oder PNG-Datei, maximal 20 MB) |
image.mimeType |
Optional. Der MIME-Typ des angegebenen Bilds. | String (image/bmp , image/gif , image/jpeg , oder image/png ) |
video.bytesBase64Encoded |
Das Video, für das Einbettungen abgerufen werden sollen. Wenn Sie video.bytesBase64Encoded angeben, können Sie video.gcsUri nicht festlegen. |
Base64-codierter Videostring (AVI, FLV, MKV, MOV, MP4, MPEG, MPG, WEBM oder WMV-Datei) |
video.gcsUri |
Der Cloud Storage-URI des Videos, für das Einbettungen abgerufen werden sollen. Wenn Sie video.gcsUri angeben, können Sie video.bytesBase64Encoded nicht festlegen. |
String-URI der Videodatei in Cloud Storage (AVI, FLV, MKV, MOV, MP4, MPEG, MPG, WEBM oder WMV-Datei) |
videoSegmentConfig.startOffsetSec |
Optional. Die Zeit (in Sekunden), zu der das Modell mit der Einbettungserkennung beginnt. Standardwert: 0 | integer |
videoSegmentConfig.endOffsetSec |
Optional. Die Zeit (in Sekunden), zu der das Modell die Einbettungserkennung beendet. Standard: 120 | integer |
videoSegmentConfig.intervalSec |
Optional. Die Zeit (in Sekunden) von Videodatensegmenten, für die Einbettungen generiert werden. Dieser Wert entspricht dem Einbettungsmodus für Videos (Essential, Standard oder Plus), der sich auf die Funktion pricing auswirkt “ Essentials-Modus ( intervalSec >= 15): Die wenigsten Videosegmente, für die Einbettungen generiert werden. Die niedrigste Kostenoption.Standardstufe (8 <= intervalSec < 15): Für diese Videosegmente werden mehr Videosegmente erstellt als im Modus „Essential“, aber weniger als im Plus-Modus. Zwischenkostenoption.Plus-Modus (4 <= intervalSec < 8): Die meisten Segmente des Videos, für die Einbettungen generiert werden. Die höchste Kostenoption.Standardeinstellung: 16 (Essential Modus) |
Ganzzahl (Mindestwert: 4) |
parameters.dimension |
Optional. Die Vektordimension, für die Einbettungen generiert werden sollen (nur Text oder Bild). Wenn nicht festgelegt, wird der Standardwert 1408 verwendet. | Ganzzahl (128 , 256 , 512 oder 1408 [Standard]) |
Beispielanfrage
REST
Im folgenden Beispiel werden Bild-, Text- und Videodaten verwendet. Sie können eine beliebige Kombination dieser Datentypen im Anfragetext verwenden.
Außerdem wird in diesem Beispiel ein Video in Cloud Storage verwendet. Sie können auch das Feld video.bytesBase64Encoded
verwenden, um eine base64-codierte Stringdarstellung des Videos bereitzustellen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Die Region Ihres Projekts. Beispiel:
us-central1
,europe-west2
oderasia-northeast3
. Eine Liste der verfügbaren Regionen finden Sie unter Generative AI an Vertex AI-Standorten. - PROJECT_ID: Ihre Google Cloud-Projekt-ID.
- TEXT: Der Zieltext, für den Einbettungen abgerufen werden sollen. Beispiel:
a cat
- IMAGE_URI: Der Cloud Storage-URI des Zielvideos, für das Einbettungen abgerufen werden sollen.
Beispiel:
gs://my-bucket/embeddings/supermarket-img.png
.Sie können das Bild auch als Base64-codierten Bytestring bereitstellen:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- VIDEO_URI: Der Cloud Storage-URI des Zielvideos, für das Einbettungen abgerufen werden sollen.
Beispiel:
gs://my-bucket/embeddings/supermarket-video.mp4
.Sie können das Video auch als Base64-codierten Bytestring bereitstellen:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Optional. Die spezifischen Videosegmente (in Sekunden), für die die Einbettungen generiert werden.Beispiel:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Mit dieser Konfiguration werden Videodaten von 10 bis 60 Sekunden angegeben und Einbettungen für die folgenden 10-Sekunden-Videointervalle generiert: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Dieses Videointervall (
"intervalSec": 10
) fällt in den Standardmodus zum Einbetten von Videos und dem Nutzer wird der Standardpreis für den Standardmodus in Rechnung gestellt.Wenn Sie
videoSegmentConfig
weglassen, verwendet der Dienst die folgenden Standardwerte:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Dieses Videointervall ("intervalSec": 16
) fällt in den Einbettungsmodus für wichtige Videos und dem Nutzer wird der Preis für den wichtigen Modus in Rechnung gestellt.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
JSON-Text der Anfrage:
{ "instances": [ { "text": "TEXT", "image": { "gcsUri": "IMAGE_URI" }, "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand Content
{ "predictions": [ { "textEmbedding": [ 0.0105433334, -0.00302835181, 0.00656806398, 0.00603460241, [...] 0.00445805816, 0.0139605571, -0.00170318608, -0.00490092579 ], "videoEmbeddings": [ { "startOffsetSec": 0, "endOffsetSec": 7, "embedding": [ -0.00673126569, 0.0248149596, 0.0128901172, 0.0107588246, [...] -0.00180952181, -0.0054573305, 0.0117037306, 0.0169312079 ] } ], "imageEmbedding": [ -0.00728622358, 0.031021487, -0.00206603738, 0.0273937676, [...] -0.00204976718, 0.00321615417, 0.0121978866, 0.0193375275 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Antworttext
{
"predictions": [
{
"textEmbedding": [
float,
// array of 128, 256, 512, or 1408 float values
float
],
"imageEmbedding": [
float,
// array of 128, 256, 512, or 1408 float values
float
],
"videoEmbeddings": [
{
"startOffsetSec": integer,
"endOffsetSec": integer,
"embedding": [
float,
// array of 1408 float values
float
]
}
]
}
],
"deployedModelId": string
}
Antwortelement | Beschreibung |
---|---|
imageEmbedding |
Liste mit 128-, 256-, 512- oder 1408-Gleitkommazahlen. |
textEmbedding |
Liste mit 128-, 256-, 512- oder 1408-Gleitkommazahlen. |
videoEmbeddings |
Liste mit 1408 Dimensionen mit Gleitkommazahlen mit der Start- und Endzeit (in Sekunden) des Videosegments, für das die Einbettungen generiert werden. |