TwelveLabs Marengo Embed 3.0 - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

TwelveLabs Marengo Embed 3.0

O TwelveLabs Marengo Embed 3.0 modelo gera incorporações aprimoradas a partir de entradas de vídeo, texto, áudio ou imagem. Essa versão mais recente oferece desempenho e precisão aprimorados para pesquisa por similaridade, agrupamento e outras tarefas de aprendizado de máquina.

  • Fornecedor — TwelveLabs

  • ID de modelo: twelvelabs.marengo-embed-3-0-v1:0

O Marengo Embed 3.0 oferece vários aprimoramentos importantes:

  • Capacidade de processamento de vídeo estendida — Processe até 4 horas de conteúdo de vídeo e áudio. Os arquivos podem ter até 6 GB, o dobro da capacidade das versões anteriores. Isso o torna ideal para analisar eventos esportivos completos, vídeos de treinamento estendidos e produções cinematográficas completas.

  • Análise esportiva aprimorada — O modelo oferece melhorias significativas. Ele fornece uma melhor compreensão da dinâmica do jogo, dos movimentos do jogador e da detecção de eventos.

  • Suporte multilíngue global — Capacidades linguísticas expandidas de 12 para 36 idiomas. Isso permite que organizações globais criem sistemas unificados de busca e recuperação que funcionem perfeitamente em diversas regiões e mercados.

  • Precisão de pesquisa multimodal — combine imagens e texto descritivo em uma única solicitação de incorporação. Isso combina semelhança visual com compreensão semântica para fornecer resultados de pesquisa mais precisos e contextualmente relevantes.

  • Dimensão de incorporação reduzida — Reduzida de 1024 para 512, o que pode ajudar a reduzir os custos de armazenamento.

O modelo TwelveLabs Marengo Embed 3.0 permite as operações do Amazon Bedrock Runtime descritas na tabela a seguir.

Operação de API Tipos de modelo compatíveis Modalidades de entrada Modalidades de saída

InvokeModel

Leste dos EUA (Norte da Virgínia) — Modelos básicos e perfis de inferência

Europa (Irlanda) — Perfis de inferência

Ásia-Pacífico (Seul) - Modelos básicos

Texto

Imagem

Observação: texto e imagem intercalados também são suportados.

Incorporação

StartAsyncInvoke Modelos básicos

Vídeo

Áudio

Imagem

Texto

Observação: texto e imagem intercalados também são suportados.

Incorporação

nota

Use InvokeModel para gerar incorporações para consulta de pesquisa. Use StartAsyncInvoke para gerar incorporações para ativos em grande escala.

As seguintes cotas se aplicam à saída:

Modalidade de entrada Máximo
Texto 500 fichas
Imagem 5 MB por imagem
Vídeo (S3) 6 GB, 4 horas de duração
Áudio (S3) 6 GB, 4 horas de duração
nota

Se você definir áudio ou vídeo em linha usando a codificação em base64, a carga útil do corpo da solicitação não deve ultrapassar a cota de invocação de 25 MB do modelo do Amazon Bedrock.

Parâmetros de solicitação do TwelveLabs Marengo Embed 3.0

Quando você faz uma solicitação, o campo no qual a entrada específica do modelo é estipulada depende da operação de API:

O formato da entrada do modelo depende da modalidade de entrada:

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 "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 "embeddingScope": [ "clip", "asset" ] // optional, one or both }, "inferenceId": "some inference id" }

Expanda as seguintes seções para obter detalhes sobre os parâmetros de entrada:

Modalidade para a incorporação.

  • Tipo: string

  • Obrigatório: Sim

  • Valores válidos: text | image | text_image | audio | video

Texto a ser incorporado.

  • Tipo: string

  • Obrigatório: sim (para tipos de entrada compatíveis)

  • Tipos de entrada compatíveis: texto

Contém informações sobre a fonte de mídia.

  • Tipo: objeto

  • Obrigatório: sim (se for do tipo compatível)

  • Tipos de entrada compatíveis: imagem, vídeo, áudio

O formato do objeto mediaSource no corpo da solicitação depende se a mídia está definida como uma string codificada em base64 ou como um local do S3.

  • Cadeia de caracteres codificada em Base64

    { "mediaSource": { "base64String": "base64-encoded string" } }
    • base64String: a string codificada em base64 para a mídia.

  • Localização do S3 — especifique o URI do S3 e o proprietário do bucket.

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri: o URI do S3 que contém a mídia.

    • bucketOwner— O ID da AWS conta do proprietário do bucket do S3.

Especifica quais tipos de incorporação devem ser recuperadas.

  • Tipo: lista

  • Obrigatório: não

  • Valores válidos para membros da lista:

    • visual— Incorporações visuais do vídeo.

    • audio: incorporações de áudio no vídeo.

    • transcription— Incorporações do texto transcrito.

  • Valor padrão:

    • Vídeo: ["visual”, “áudio”, “transcrição"]

    • Áudio: ["áudio”, “transcrição"]

  • Tipos de entrada compatíveis: vídeo, áudio

Especifica o escopo das incorporações a serem recuperadas.

  • Tipo: lista

  • Obrigatório: não

  • Valores válidos para membros da lista:

    • clip— Retorna as incorporações de cada clipe.

    • asset— Retorna incorporações para todo o ativo.

  • Tipos de entrada compatíveis: vídeo, áudio

O ponto no tempo em segundos do clipe em que o processamento deve começar.

  • Tipo: duplo

  • Obrigatório: não

  • Valor mínimo: 0

  • Valor padrão: 0

  • Tipos de entrada compatíveis: vídeo, áudio

O momento em segundos em que o processamento deve terminar.

  • Tipo: duplo

  • Obrigatório: não

  • Valor mínimo: StartSec + comprimento do segmento

  • Valor máximo: duração da mídia

  • Valor padrão: duração da mídia.

  • Tipos de entrada compatíveis: vídeo, áudio

Define como a mídia é dividida em segmentos para geração de incorporação.

  • Tipo: objeto

  • Obrigatório: não

  • Tipos de entrada compatíveis: vídeo, áudio

O objeto de segmentação contém um method campo e parâmetros específicos do método:

  • method— O método de segmentação a ser usado. Valores válidos: dynamic | fixed

  • dynamic— Para vídeo, usa a detecção de limites de captura para dividir o conteúdo dinamicamente. Contém:

    • minDurationSec— Duração mínima para cada segmento em segundos. Tipo: número inteiro. Intervalo: 1-5. Padrão: 4.

  • fixed— Divide o conteúdo em segmentos de igual duração. Contém:

    • durationSec— Duração de cada segmento em segundos. Tipo: número inteiro. Intervalo: 1-10. Padrão: 6.

Comportamento padrão:

  • Vídeo: usa segmentação dinâmica com detecção de limites de disparo.

  • Áudio: usa segmentação fixa. O conteúdo é dividido o mais uniformemente possível com segmentos próximos a 10 segundos.

Identificador exclusivo para a solicitação de inferência.

  • Tipo: string

  • Obrigatório: não

Resposta TwelveLabs Marengo Embed 3.0

A localização das incorporações de saída e dos metadados associados depende do método de invocação:

  • InvokeModel — No corpo da resposta.

  • StartAsyncInvoke — No bucket S3 definido ems3OutputDataConfig, após a conclusão do trabalho de invocação assíncrona.

Se houver vários vetores de incorporação, a saída será uma lista de objetos, cada um contendo um vetor e os metadados correspondentes.

O formato do vetor de incorporações de saída é o seguinte:

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

As incorporações são retornadas como uma matriz de flutuadores.

O local em que você vê essa resposta depende do método de API usado:

  • InvokeModel — Aparece no corpo da resposta.

  • StartAsyncInvoke — Aparece no local do S3 que você especificou na solicitação. A resposta retorna uminvocationArn. Você pode usar isso para obter metadados sobre a invocação assíncrona. Isso inclui o status e a localização do S3 em que os resultados são gravados.

Expanda as seguintes seções para obter detalhes sobre os parâmetros de resposta:

Representação vetorial de incorporações da entrada.

  • Tipo: lista de duplos

O tipo de incorporação.

  • Tipo: string

  • Valores possíveis:

    • visual — Incorporações visuais do vídeo.

    • áudio — Incorporações do áudio no vídeo.

    • transcrição — Incorporações do texto transcrito.

  • Tipos de entrada compatíveis: vídeo, áudio

Especifica o escopo das incorporações a serem recuperadas.

  • Tipo: string

Você pode incluir um ou mais dos seguintes valores:

  • clipe: retorna as incorporações de cada clipe.

  • ativo: retorna incorporações para todo o ativo.

O deslocamento inicial do clipe.

  • Tipo: duplo

  • Tipos de entrada compatíveis: vídeo, áudio

O deslocamento final do clipe. Não aplicável para incorporações de texto, imagem e text_image.

  • Tipo: duplo

  • Tipos de entrada compatíveis: vídeo, áudio

Exemplos de código do TwelveLabs Marengo Embed 3.0

Esta seção mostra como usar o modelo TwelveLabs Marengo Embed 3.0 com diferentes tipos de entrada usando Python. Os exemplos demonstram como definir a entrada específica do modelo e executar invocações do modelo.

nota

InvokeModel suporta texto, imagem e texto com entrada intercalada de imagem. Para entrada de vídeo e áudio, use StartAsyncInvoke.

Organize seu código nas seguintes etapas:

1. Defina a entrada específica do modelo

Defina a entrada específica do modelo dependendo do tipo de entrada:

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"] } }
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" ], "embeddingScope": [ "clip", "asset" ] } }
2. Execute a invocação do modelo usando a entrada do modelo

Em seguida, adicione o trecho de código que corresponde ao método de invocação do modelo de sua preferência.

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}")