View a markdown version of this page

TwelveLabs Marengo Embed 3.0 - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

TwelveLabs Marengo Embed 3.0

Il TwelveLabs Marengo Embed 3.0 modello genera incorporamenti avanzati da input video, testo, audio, immagini o input multipli (testo con più immagini). Quest'ultima versione offre prestazioni e precisione migliorate per la ricerca di similarità, il clustering e altre attività di apprendimento automatico.

  • Fornitore: TwelveLabs

  • ID modello: twelvelabs.marengo-embed-3-0-v1:0

Marengo Embed 3.0 offre diversi miglioramenti chiave:

  • Capacità di elaborazione video estesa: elabora fino a 4 ore di contenuti video e audio. I file possono pesare fino a 6 GB, ovvero il doppio della capacità delle versioni precedenti. Ciò lo rende ideale per analizzare eventi sportivi completi, video di allenamento prolungati e produzioni cinematografiche complete.

  • Analisi sportiva avanzata: il modello offre miglioramenti significativi. Fornisce una migliore comprensione delle dinamiche di gioco, dei movimenti dei giocatori e del rilevamento degli eventi.

  • Supporto multilingue globale: funzionalità linguistiche estese da 12 a 36 lingue. Ciò consente alle organizzazioni globali di creare sistemi di ricerca e recupero unificati che funzionano perfettamente in diverse regioni e mercati.

  • Precisione della ricerca multimodale: combina immagini e testo descrittivo in un'unica richiesta di incorporamento. Ciò unisce la somiglianza visiva con la comprensione semantica per fornire risultati di ricerca più accurati e contestualmente pertinenti.

  • Dimensione di incorporamento ridotta: ridotta da 1024 a 512, il che può aiutare a ridurre i costi di archiviazione.

Il modello TwelveLabs Marengo Embed 3.0 supporta le operazioni di runtime per Amazon Bedrock riportate nella tabella seguente.

Operazione API Tipi di modelli supportati Modalità di input Modalità di output

InvokeModel

Stati Uniti orientali (Virginia settentrionale): modelli di base e profili di inferenza

Europa (Irlanda) — Profili di inferenza

Asia Pacifico (Seoul) - Modelli base

Testo

Immagine

Multi-input (testo con più immagini)

Nota: sono supportati anche testo e immagini interlacciati.

Embedding

StartAsyncInvoke

Stati Uniti orientali (Virginia settentrionale) — Modelli base

Europa (Irlanda) — Modelli base

Asia Pacifico (Seoul) - Modelli base

Video

Audio

Immagine

Testo

Multi-input (testo con più immagini)

Nota: sono supportati anche testo e immagini interlacciati.

Embedding

Nota

Utilizzare InvokeModel per generare embedding per la query di ricerca. Utilizzare StartAsyncInvoke per generare embedding per risorse su larga scala.

All’input si applicano i seguenti limiti:

Modalità di input Massimo
Testo 500 gettoni
Immagine 5 MB per immagine
Video (S3) 6 GB, durata 4 ore
Audio (S3) 6 GB, durata 4 ore
Nota

Se si definiscono audio o video inline utilizzando la codifica base64, assicurarsi che il payload del corpo della richiesta non superi la quota di invocazione del modello Amazon Bedrock di 25 MB.

TwelveLabs Marengo Embed 3.0 parametri richiesta

Quando si effettua una richiesta, il campo in cui viene specificato l’input specifico del modello dipende dall’operazione dell’API:

Il formato dell’input del modello dipende dalla modalità di input:

Text
{ "inputType": "text", "text": { "inputText": "string" } }
Image
{ "inputType": "image", "image": { "mediaSource": { "base64String": "base64-encoded string", // base64String OR s3Location, exactly one "s3Location": { "uri": "s3://amzn-s3-demo-bucket/folder/dog.jpg", "bucketOwner": "123456789012" } } } }
Text & image
{ "inputType": "text_image", "text_image": { "inputText": "man walking a dog", "mediaSource": { "base64String": "base64-encoded string", // base64String OR s3Location, exactly one "s3Location": { "uri": "s3://amzn-s3-demo-bucket/folder/dog.jpg", "bucketOwner": "123456789012" } } } }
Audio
{ "inputType": "audio", "audio": { "mediaSource": { "base64String": "base64-encoded string", // base64String OR s3Location, exactly one "s3Location": { "uri": "s3://amzn-s3-demo-bucket/audio/a.wav", "bucketOwner": "123456789012" } }, "startSec": 0, "endSec": 6, "segmentation": { "method": "fixed", "fixed": { "durationSec": 6 } }, "embeddingOption": [ "audio", "transcription" ], // optional, default=both "embeddingType": [ "separate_embedding" ], // optional, default=["separate_embedding"] "embeddingScope": [ "clip", "asset" ] // optional, one or both } }
Video
{ "inputType": "video", "video": { "mediaSource": { "base64String": "base64-encoded string", // base64String OR s3Location, exactly one "s3Location": { "uri": "s3://amzn-s3-demo-bucket/video/clip.mp4", "bucketOwner": "123456789012" } }, "startSec": 0, "endSec": 6, "segmentation": { "method": "dynamic", // dynamic OR fixed, exactly one "dynamic": { "minDurationSec": 4 } "method": "fixed", "fixed": { "durationSec": 6 } }, "embeddingOption": [ "visual", "audio", "transcription" ], // optional, default=all "embeddingType": [ "separate_embedding" ], // optional, default=["separate_embedding"] "embeddingScope": [ "clip", "asset" ] // optional, one or both } }
Multi-input
{ "inputType": "multi_input", "multi_input": { "inputText": "<@img1> walking a dog with <@img2>", // optional "mediaSources": [ { "name": "img1", // required if inputText uses <@name> placeholders "mediaType": "image", "base64String": "base64-encoded string", // base64String OR s3Location, exactly one "s3Location": { "uri": "s3://amzn-s3-demo-bucket/images/person.jpg", "bucketOwner": "123456789012" } }, { "name": "img2", "mediaType": "image", "base64String": "base64-encoded string", // base64String OR s3Location, exactly one "s3Location": { "uri": "s3://amzn-s3-demo-bucket/images/dog.jpg", "bucketOwner": "123456789012" } } ] } }

Espandi le seguenti sezioni per ulteriori informazioni sui parametri di input:

Modalità per l’embedding.

  • Tipo: stringa

  • Obbligatorio:

  • Valori validi: text | image | text_image | audio | video | multi_input

Testo da incorporare.

  • Tipo: stringa

  • Obbligatorio: sì (per i tipi di input compatibili)

  • Tipi di input compatibili: testo

Contiene informazioni sull’origine multimediale.

  • Tipo: oggetto

  • Obbligatorio: sì (se il tipo è compatibile)

  • Tipi di input compatibili: immagine, video, audio

Il formato dell'mediaSourceoggetto nel corpo della richiesta dipende dal fatto che il supporto sia definito come Base64-encoded stringa o come posizione S3.

  • Base64-encoded stringa

    { "mediaSource": { "base64String": "base64-encoded string" } }
    • base64String— La Base64-encoded stringa per il file multimediale.

  • Posizione S3: specifica l'URI S3 e il proprietario del bucket.

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri: URI S3 contenente il file multimediale.

    • bucketOwner— L'ID dell' AWS account del proprietario del bucket S3.

Specifica i tipi di embedding da recuperare.

  • Tipo: elenco

  • Obbligatorio: no

  • Valori validi per i membri dell’elenco:

    • visual— Incorporamenti visivi tratti dal video.

    • audio: embedding dell’audio nel video.

    • transcription— Incorporamenti del testo trascritto.

  • Valore predefinito:

    • Video: ["visivo», «audio», «trascrizione"]

    • Audio: ["audio», «trascrizione"]

  • Tipi di input compatibili: video, audio

Specifica l'ambito degli incorporamenti da recuperare.

  • Tipo: elenco

  • Obbligatorio: no

  • Valori validi per i membri dell’elenco:

    • clip— Restituisce gli incorporamenti per ogni clip.

    • asset— Restituisce gli incorporamenti per l'intera risorsa.

  • Tipi di input compatibili: video, audio

Punto temporale in secondi del clip in cui deve iniziare l’elaborazione.

  • Tipo: numero a doppia precisione

  • Obbligatorio: no

  • Valore minimo: 0

  • Valore predefinito: 0

  • Tipi di input compatibili: video, audio

Il punto temporale in secondi in cui deve terminare l'elaborazione.

  • Tipo: numero a doppia precisione

  • Obbligatorio: no

  • Valore minimo: StartSec + lunghezza del segmento

  • Valore massimo: durata del file multimediale

  • Valore predefinito: durata del file multimediale

  • Tipi di input compatibili: video, audio

Definisce il modo in cui i file multimediali vengono suddivisi in segmenti per la generazione di incorporamenti.

  • Tipo: oggetto

  • Obbligatorio: no

  • Tipi di input compatibili: video, audio

L'oggetto di segmentazione contiene un method campo e parametri specifici del metodo:

  • method— Il metodo di segmentazione da utilizzare. Valori validi: dynamic | fixed

  • dynamic— Per i video, utilizza il rilevamento dei limiti delle riprese per dividere i contenuti in modo dinamico. Contiene:

    • minDurationSec— Durata minima per ogni segmento in secondi. Tipo: Integer. Intervallo: 1-5. Valore predefinito: 4.

  • fixed— Divide il contenuto in segmenti di uguale durata. Contiene:

    • durationSec— Durata di ogni segmento in secondi. Tipo: Integer. Intervallo: 1-10. Valore predefinito: 6.

Comportamento predefinito:

  • Video: utilizza la segmentazione dinamica con il rilevamento dei limiti delle riprese.

  • Audio: utilizza la segmentazione fissa. Il contenuto viene suddiviso nel modo più uniforme possibile con segmenti di durata prossima ai 10 secondi.

Contiene la configurazione a input multiplo per combinare testo con più immagini in un'unica richiesta di incorporamento. Utilizzate questo tipo di input quando desiderate creare incorporamenti che catturino la relazione tra testo e più immagini.

  • Tipo: oggetto

  • Obbligatorio: Sì (quando inputType èmulti_input)

L'oggetto multi_input include i seguenti campi:

  • inputText— (Facoltativo) Interrogazione di testo con sintassi segnaposto. <@name>Da utilizzare per fare riferimento a fonti multimediali (ad esempio,). "<@img1> walking with <@img2>" Se dotato di segnaposti, ciascuno <@name> deve corrispondere a un. mediaSources[].name Massimo: 500 gettoni inclusi i segnaposti.

  • mediaSources— (Obbligatorio) Matrice di oggetti sorgente multimediali. Ogni fonte multimediale contiene dati di immagine. L'array deve contenere almeno un elemento.

    • name— (Condizionale) Identificatore univoco per questa fonte multimediale. Obbligatorio solo se inputText utilizza segnaposti<@name>. Se fornito, deve corrispondere a un segnaposto in inputText (senza i <@ caratteri e). >

    • mediaType— (Obbligatorio) Tipo di supporto. Attualmento solo "image" è supportato.

    • base64String— payload Base64-encoded dell'immagine. Massimo: 5 MB per immagine. Fornisci esattamente uno dei base64String nostris3Location.

    • s3Location— Oggetto di localizzazione S3 contenente uri (URI S3) e bucketOwner (ID account a 12 cifre AWS ). Massimo: 5 MB per immagine. Fornisci esattamente uno dei base64String nostris3Location.

Ordinazione dei media:

  • Se inputText contiene <@name> segnaposti, l'ordine è determinato dall'ordine dei segnaposto in. inputText

  • Se inputText è omesso o è vuoto, l'ordine predefinito è l'ordine dell'array di. mediaSources

Controlla il modo in cui gli incorporamenti vengono aggregati tra le diverse modalità.

  • Tipo: elenco

  • Obbligatorio: no

  • Valori validi per i membri dell’elenco:

    • separate_embedding— Restituisce gli incorporamenti per ciascuna modalità separatamente (video, audio, trascrizione).

    • fused_embedding— Restituisce una fusione ponderata di più modalità di incorporamento.

  • Valore predefinito: ["separate_embedding"]

  • Tipi di input compatibili: video, audio

Vincoli:

  • Per i video: fused_embedding richiede almeno 2 tipi di incorporamento. embeddingOption

  • Per l'audio: fused_embedding richiede entrambi audio gli ingressitranscription. embeddingOption

Identificatore univoco per la richiesta di inferenza.

  • Tipo: stringa

  • Obbligatorio: no

TwelveLabs Marengo Embed 3.0 risposta

La posizione degli embedding di output e dei metadati associati dipende dal metodo di invocazione:

  • InvokeModel — Nel corpo di risposta.

  • StartAsyncInvoke — Nel bucket S3 definito ins3OutputDataConfig, dopo il completamento del processo di invocazione asincrona.

Se sono presenti più vettori di embedding, l’output è un elenco di oggetti, ciascuno contenente un vettore e i relativi metadati associati.

Il formato del vettore degli embedding di output è il seguente:

{ "data": { "embedding": [ 0.111, 0.234, ... ], "embeddingOption": ["visual", "audio", "transcription", "fused" (for video input) | "audio", "transcription", "fused" (for audio input)], "embeddingScope": ["asset" | "clip"], "startSec": 0, "endSec": 4.2 } }

Gli incorporamenti vengono restituiti come una matrice di float.

La posizione in cui vedi questa risposta dipende dal metodo API che hai utilizzato:

  • InvokeModel — Viene visualizzato nel corpo della risposta.

  • StartAsyncInvoke — Viene visualizzato nella posizione S3 specificata nella richiesta. La risposta restituisce uninvocationArn. Puoi usarlo per ottenere metadati sulla chiamata asincrona. Ciò include lo stato e la posizione S3 in cui vengono scritti i risultati.

Espandere le seguenti sezioni per ulteriori informazioni sui parametri della risposta:

Rappresentazione dei vettori di embedding dell’input.

  • Tipo: elenco di numeri a doppia precisione

Tipo di embedding.

  • Tipo: stringa

  • Valori possibili:

    • visivo: incorporamenti visivi del video.

    • audio: incorporamenti dell'audio nel video.

    • trascrizione — Incorporamenti del testo trascritto.

    • fused — Fusione ponderata di più tipi di incorporamento. Restituito solo se embeddingType incluso "fused_embedding" nella richiesta.

  • Tipi di input compatibili: video, audio

Nota

Non applicabile ai tipi di input text, image, text_image e multi_input. Questi restituiscono un singolo incorporamento senza il campo. embeddingOption

Specifica l'ambito degli incorporamenti da recuperare.

  • Tipo: stringa

È possibile includere uno o più dei seguenti valori:

  • clip: restituisce gli incorporamenti per ogni clip.

  • asset: restituisce gli incorporamenti per l'intera risorsa.

Offset iniziale del clip.

  • Tipo: numero a doppia precisione

  • Tipi di input compatibili: video, audio

L'offset finale della clip. Non applicabile per gli incorporamenti di testo, immagine, text_image e multi_input.

  • Tipo: numero a doppia precisione

  • Tipi di input compatibili: video, audio

TwelveLabs Marengo Embed 3.0 esempi di codice

Questa sezione mostra come utilizzare il modello TwelveLabs Marengo Embed 3.0 con diversi tipi di input utilizzando Python. Gli esempi mostrano come definire l'input specifico del modello ed eseguire le chiamate del modello.

Nota

InvokeModel supporta testo, immagini, input multipli e testo con input interlacciato da immagini. Per l'input video e audio, usa. StartAsyncInvoke

Assemblare il codice seguendo questa procedura:

1. Definisci l’input specifico del modello

Definire l’input specifico del modello in base al tipo di input:

Text
# Create the model-specific input model_id = "twelvelabs.marengo-embed-3-0-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0" model_input = { "inputType": "text", "text": { "inputText": "man walking a dog" } }
Image
# Create the model-specific input model_id = "twelvelabs.marengo-embed-3-0-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0" model_input = { "inputType": "image", "image": { "mediaSource": { "s3Location": { "uri": "s3://amzn-s3-demo-bucket/my_image.png", "bucketOwner": "123456789012" } } } }
Text & image
# Create the model-specific input model_id = "twelvelabs.marengo-embed-3-0-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0" model_input = { "inputType": "text_image", "text_image": { "inputText": "man walking a dog", "mediaSource": { "s3Location": { "uri": "s3://amzn-s3-demo-bucket/my_image.jpg", "bucketOwner": "123456789012" } } } }
Audio
# Create the model-specific input model_id = "twelvelabs.marengo-embed-3-0-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0" model_input = { "inputType": "audio", "audio": { "mediaSource": { "s3Location": { "uri": "s3://amzn-s3-demo-bucket/my-audio.wav", "bucketOwner": "123456789012" } }, "startSec": 0, "endSec": 5, "segmentation": { "method": "fixed", "fixed": { "durationSec": 5 } }, "embeddingScope": ["clip", "asset"], "embeddingOption": ["audio", "transcription"], "embeddingType": ["separate_embedding", "fused_embedding"] } }
Video
# Create the model-specific input model_id = "twelvelabs.marengo-embed-3-0-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0" model_input = { "inputType": "video", "video": { "mediaSource": { "s3Location": { "uri": "s3://amzn-s3-demo-bucket/my-video.mp4", "bucketOwner": "123456789012" } }, "startSec": 10, "endSec": 20, "segmentation": { "method": "fixed", "fixed": { "durationSec": 5 } }, "embeddingOption": [ "visual", "audio" ], "embeddingType": ["separate_embedding", "fused_embedding"], "embeddingScope": [ "clip", "asset" ] } }
Multi-input
# Create the model-specific input model_id = "twelvelabs.marengo-embed-3-0-v1:0" # Replace the us prefix depending on your region inference_profile_id = "us.twelvelabs.marengo-embed-3-0-v1:0" model_input = { "inputType": "multi_input", "multi_input": { "inputText": "<@img1> walking a dog with <@img2>", "mediaSources": [ { "name": "img1", "mediaType": "image", "s3Location": { "uri": "s3://amzn-s3-demo-bucket/images/person.jpg", "bucketOwner": "123456789012" } }, { "name": "img2", "mediaType": "image", "s3Location": { "uri": "s3://amzn-s3-demo-bucket/images/dog.jpg", "bucketOwner": "123456789012" } } ] } }
2. Eseguire l’invocazione del modello utilizzando l’input del modello

Poi aggiungere il frammento di codice che corrisponde al metodo di invocazione del modello scelto.

InvokeModel
# Run model invocation with InvokeModel import boto3 import json # Initialize the Bedrock Runtime client client = boto3.client('bedrock-runtime') # Make the request response = client.invoke_model( modelId=inference_profile_id, body=json.dumps(model_input) ) # Print the response body response_body = json.loads(response['body'].read().decode('utf-8')) print(response_body)
StartAsyncInvoke
# Run model invocation asynchronously import boto3 import json # Initalize the Bedrock Runtime client. client = boto3.client("bedrock-runtime") try: # Start the asynchronous job invocation = client.start_async_invoke( modelId=model_id, modelInput=model_input, outputDataConfig={ "s3OutputDataConfig": { "s3Uri": "s3://amzn-s3-demo-bucket" } } ) # Print the response JSON print("Response:") print(json.dumps(invocation, indent=2, default=str)) except Exception as e: # Implement error handling here. message = e.response["Error"]["Message"] print(f"Error: {message}")