Pour en savoir plus sur ce concept, consultez Embeddings multimodaux.
Modèles compatibles :
Modèle | Code |
---|---|
Embeddings multimodaux | multimodalembedding@001 |
Exemple de syntaxe
Syntaxe permettant d'envoyer une requête API d'embeddings multimodaux.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:predict \ -d '{ "instances": [ ... ], }'
Python
from vertexai.vision_models import MultiModalEmbeddingModel model = MultiModalEmbeddingModel.from_pretrained("multimodalembedding") model.get_embeddings(...)
Liste des paramètres
Consultez des exemples pour en savoir plus sur l'implémentation.
Corps de la requête
{
"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
}
}
]
}
Paramètres | |
---|---|
|
Facultatif : Image pour laquelle générer des embeddings. |
|
Facultatif : Texte pour lequel générer des embeddings. |
|
Facultatif : Segment vidéo pour lequel générer des embeddings. |
|
Facultatif : Dimension de l'embedding, incluse dans la réponse. S'applique uniquement aux entrées de texte et d'image. Valeurs acceptées : |
Image
Paramètres | |
---|---|
|
Facultatif : Octets de l'image encodés dans une chaîne en base64. Doit être |
|
Facultatif : Emplacement Cloud Storage de l'image pour effectuer l'embedding. |
|
Facultatif : Type MIME du contenu de l'image. Valeurs acceptées : |
Vidéo
Paramètres | |
---|---|
|
Facultatif : Octets de la vidéo encodés dans une chaîne en base64. |
|
Facultatif : Emplacement Cloud Storage de la vidéo pour effectuer l'embedding. |
|
Facultatif : Configuration du segment vidéo. |
VideoSegmentConfig
Paramètres | |
---|---|
|
Facultatif : Décalage de début du segment vidéo, exprimé en secondes. Si aucune valeur n'est spécifiée, elle est calculée avec |
|
Facultatif : Décalage de fin du segment vidéo en secondes. Si aucune valeur n'est spécifiée, elle est calculée avec |
|
Facultatif : Intervalle de la vidéo pour lequel l'embedding sera généré. La valeur minimale de |
Corps de la réponse
{
"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
}
Élément de réponse | Description |
---|---|
imageEmbedding |
Liste de 128, 256, 512 ou 1 408 dimensions à virgule flottante. |
textEmbedding |
Liste de 128, 256, 512 ou 1 408 dimensions à virgule flottante. |
videoEmbeddings |
Liste de 1 408 dimensions à virgule flottante avec les heures de début et de fin (en secondes) de la séquence vidéo pour laquelle les embeddings sont générés. |
Exemples
Cas d'utilisation de base
Générer des embeddings à partir d'une image
Utilisez l'exemple suivant pour générer des embeddings pour une image.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- LOCATION : région de votre projet (
us-central1
,europe-west2
ouasia-northeast3
, par exemple). Pour obtenir la liste des régions disponibles, consultez IA générative sur les emplacements Vertex AI. - PROJECT_ID : ID de votre projet Google Cloud .
- TEXT : texte cible pour lequel vous souhaitez obtenir des embeddings. Par exemple :
a cat
. - B64_ENCODED_IMG : image cible pour laquelle vous souhaitez obtenir des embeddings. L'image doit être spécifiée en tant que chaîne d'octets encodés en base64.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corps JSON de la requête :
{ "instances": [ { "text": "TEXT", "image": { "bytesBase64Encoded": "B64_ENCODED_IMG" } } ] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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.010477379, -0.00399621, 0.00576670747, [...] -0.00823613815, -0.0169572588, -0.00472954148 ], "imageEmbedding": [ 0.00262696808, -0.00198890246, 0.0152047109, -0.0103145819, [...] 0.0324628279, 0.0284924973, 0.011650892, -0.00452344026 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
SDK Vertex AI pour Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API SDK Vertex AI pour Python.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Node.js.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Java.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Go.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Générer des embeddings à partir d'une vidéo
Utilisez l'exemple suivant pour obtenir des embeddings pour du contenu vidéo.
REST
L'exemple suivant utilise une vidéo située dans Cloud Storage. Vous pouvez également utiliser le champ video.bytesBase64Encoded
pour fournir une représentation de la vidéo sous forme de chaîne encodée en base64.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- LOCATION : région de votre projet (
us-central1
,europe-west2
ouasia-northeast3
, par exemple). Pour obtenir la liste des régions disponibles, consultez IA générative sur les emplacements Vertex AI. - PROJECT_ID : ID de votre projet Google Cloud .
- VIDEO_URI : URI Cloud Storage de la vidéo cible pour laquelle vous souhaitez obtenir des embeddings.
Par exemple :
gs://my-bucket/embeddings/supermarket-video.mp4
.Vous pouvez également fournir la vidéo en tant que chaîne d'octets encodés en base64 :
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Facultatif. Définit les séquences vidéo spécifiques (en secondes) pour lesquelles les embeddings sont générés.Par exemple :
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
L'utilisation de cette configuration spécifie la présence de données vidéo de la 10e à la 60e seconde, et génère des embeddings pour les intervalles de 10 secondes suivants : [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Cet intervalle vidéo (
"intervalSec": 10
) est défini sur le mode d'embedding vidéo Standard. L'utilisateur est facturé au tarif en mode Standard.Si vous omettez
videoSegmentConfig
, le service utilise les valeurs par défaut suivantes :"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Cet intervalle vidéo ("intervalSec": 16
) est défini sur le mode d'embedding vidéo Essentiel. L'utilisateur est facturé au tarif en mode Essentiel.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corps JSON de la requête :
{ "instances": [ { "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Réponse (sept secondes de vidéo, pas d'élément videoSegmentConfig
spécifié) :
{ "predictions": [ { "videoEmbeddings": [ { "endOffsetSec": 7, "embedding": [ -0.0045467657, 0.0258095954, 0.0146885719, 0.00945400633, [...] -0.0023291884, -0.00493789, 0.00975185353, 0.0168156829 ], "startOffsetSec": 0 } ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Réponse (59 secondes de vidéo, avec la configuration de séquence vidéo suivante : "videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 60, "intervalSec": 10 }
) :
{ "predictions": [ { "videoEmbeddings": [ { "endOffsetSec": 10, "startOffsetSec": 0, "embedding": [ -0.00683252793, 0.0390476175, [...] 0.00657121744, 0.013023301 ] }, { "startOffsetSec": 10, "endOffsetSec": 20, "embedding": [ -0.0104404651, 0.0357737206, [...] 0.00509833824, 0.0131902946 ] }, { "startOffsetSec": 20, "embedding": [ -0.0113538112, 0.0305239167, [...] -0.00195809244, 0.00941874553 ], "endOffsetSec": 30 }, { "embedding": [ -0.00299320649, 0.0322436653, [...] -0.00993082579, 0.00968887936 ], "startOffsetSec": 30, "endOffsetSec": 40 }, { "endOffsetSec": 50, "startOffsetSec": 40, "embedding": [ -0.00591270532, 0.0368893594, [...] -0.00219071587, 0.0042470959 ] }, { "embedding": [ -0.00458270218, 0.0368121453, [...] -0.00317760976, 0.00595594104 ], "endOffsetSec": 59, "startOffsetSec": 50 } ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
SDK Vertex AI pour Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API SDK Vertex AI pour Python.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Go.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Cas d'utilisation avancé
L'exemple suivant permet d'obtenir des embeddings pour du contenu vidéo, du texte et des images.
Pour l'embedding de vidéos, vous pouvez spécifier la séquence vidéo et la densité d'embedding.
REST
L'exemple ci-dessous utilise des données de type image, texte et vidéo. Vous pouvez utiliser n'importe quelle combinaison de ces types de données dans le corps de votre requête.
Cet exemple utilise une vidéo située dans Cloud Storage. Vous pouvez également utiliser le champ video.bytesBase64Encoded
pour fournir une représentation de la vidéo sous forme de chaîne encodée en base64.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- LOCATION : région de votre projet (
us-central1
,europe-west2
ouasia-northeast3
, par exemple). Pour obtenir la liste des régions disponibles, consultez IA générative sur les emplacements Vertex AI. - PROJECT_ID : ID de votre projet Google Cloud .
- TEXT : texte cible pour lequel vous souhaitez obtenir des embeddings. Par exemple :
a cat
. - IMAGE_URI : URI Cloud Storage de l'image cible pour laquelle vous souhaitez obtenir des embeddings.
Par exemple :
gs://my-bucket/embeddings/supermarket-img.png
.Vous pouvez également fournir l'image en tant que chaîne d'octets encodés en base64 :
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- VIDEO_URI : URI Cloud Storage de la vidéo cible pour laquelle vous souhaitez obtenir des embeddings.
Par exemple :
gs://my-bucket/embeddings/supermarket-video.mp4
.Vous pouvez également fournir la vidéo en tant que chaîne d'octets encodés en base64 :
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Facultatif. Définit les séquences vidéo spécifiques (en secondes) pour lesquelles les embeddings sont générés.Par exemple :
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
L'utilisation de cette configuration spécifie la présence de données vidéo de la 10e à la 60e seconde, et génère des embeddings pour les intervalles de 10 secondes suivants : [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Cet intervalle vidéo (
"intervalSec": 10
) est défini sur le mode d'embedding vidéo Standard. L'utilisateur est facturé au tarif en mode Standard.Si vous omettez
videoSegmentConfig
, le service utilise les valeurs par défaut suivantes :"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Cet intervalle vidéo ("intervalSec": 16
) est défini sur le mode d'embedding vidéo Essentiel. L'utilisateur est facturé au tarif en mode Essentiel.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Corps JSON de la requête :
{ "instances": [ { "text": "TEXT", "image": { "gcsUri": "IMAGE_URI" }, "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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" }
SDK Vertex AI pour Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API SDK Vertex AI pour Python.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Go.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Étape suivante
Pour obtenir une documentation détaillée, consultez :