TwelveLabs Marengo Embed 3.0 - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

TwelveLabs Marengo Embed 3.0

TwelveLabs Marengo Embed 3.0Model ini menghasilkan penyematan yang disempurnakan dari input video, teks, audio, atau gambar. Versi terbaru ini menawarkan peningkatan kinerja dan akurasi untuk pencarian kesamaan, pengelompokan, dan tugas pembelajaran mesin lainnya.

  • Penyedia — TwelveLabs

  • ID Model — twelvelabs.marengo-embed-3-0-v1:0

Marengo Embed 3.0 memberikan beberapa penyempurnaan utama:

  • Kapasitas pemrosesan video yang diperluas - Memproses hingga 4 jam konten video dan audio. File dapat mencapai 6 GB, yang merupakan dua kali lipat kapasitas versi sebelumnya. Ini membuatnya ideal untuk menganalisis acara olahraga penuh, video pelatihan yang diperpanjang, dan produksi film lengkap.

  • Analisis olahraga yang ditingkatkan — Model ini memberikan peningkatan yang signifikan. Ini memberikan pemahaman yang lebih baik tentang dinamika gameplay, gerakan pemain, dan deteksi peristiwa.

  • Dukungan multibahasa global - Kemampuan bahasa yang diperluas dari 12 hingga 36 bahasa. Hal ini memungkinkan organisasi global untuk membangun sistem pencarian dan pengambilan terpadu yang bekerja dengan mulus di berbagai wilayah dan pasar.

  • Presisi pencarian multimodal - Gabungkan gambar dan teks deskriptif dalam satu permintaan penyematan. Ini menggabungkan kesamaan visual dengan pemahaman semantik untuk memberikan hasil pencarian yang lebih akurat dan relevan secara kontekstual.

  • Mengurangi dimensi embedding - Dikurangi dari 1024 menjadi 512, yang dapat membantu mengurangi biaya penyimpanan.

TwelveLabs Marengo Embed 3.0Model ini mendukung operasi Amazon Bedrock Runtime dalam tabel berikut.

Operasi API Jenis model yang didukung Modalitas masukan Modalitas keluaran

InvokeModel

US East (Virginia N.) — Model dasar dan profil Inferensi

Eropa (Irlandia) — Profil inferensi

Asia Pasifik (Seoul) - Model dasar

Teks

Citra

Catatan: Teks dan gambar yang disisipkan juga didukung.

Menyematkan

StartAsyncInvoke Model dasar

Video

Audio

Citra

Teks

Catatan: Teks dan gambar yang disisipkan juga didukung.

Menyematkan

catatan

Gunakan InvokeModel untuk menghasilkan embeddings untuk permintaan pencarian. Gunakan StartAsyncInvoke untuk menghasilkan embeddings untuk aset dalam skala besar.

Kuota berikut berlaku untuk input:

Modalitas masukan Maksimum
Teks 500 token
Citra 5 MB per gambar
Video (S3) 6 GB, panjang 4 jam
Audio (S3) 6 GB, panjang 4 jam
catatan

Jika Anda menentukan audio atau video sebaris menggunakan pengkodean base64-, pastikan payload isi permintaan tidak melebihi kuota pemanggilan model Amazon Bedrock 25 MB.

TwelveLabs Marengo Embed 3.0parameter permintaan

Saat Anda membuat permintaan, bidang di mana input khusus model ditentukan bergantung pada operasi API:

Format input model tergantung pada modalitas 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 "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" }

Perluas bagian berikut untuk detail tentang parameter input:

Modalitas untuk penyematan.

  • Tipe: String

  • Wajib: Ya

  • Nilai yang valid: text | image | text_image | audio | video

Teks yang akan disematkan.

  • Tipe: String

  • Diperlukan: Ya (untuk jenis input yang kompatibel)

  • Jenis masukan yang kompatibel: Teks

Berisi informasi tentang sumber media.

  • Jenis: Objek

  • Diperlukan: Ya (jika tipe kompatibel)

  • Jenis input yang kompatibel: Gambar, Video, Audio

Format mediaSource objek dalam badan permintaan tergantung pada apakah media didefinisikan sebagai string yang dikodekan Base64 atau sebagai lokasi S3.

  • String yang dikodekan Base64

    { "mediaSource": { "base64String": "base64-encoded string" } }
    • base64String— String yang dikodekan Base64 untuk media.

  • Lokasi S3 — Tentukan URI S3 dan pemilik bucket.

    { "s3Location": { "uri": "string", "bucketOwner": "string" } }
    • uri— URI S3 yang berisi media.

    • bucketOwner— ID AWS akun pemilik bucket S3.

Menentukan jenis embeddings untuk mengambil.

  • Tipe: Daftar

  • Wajib: Tidak

  • Nilai yang valid untuk anggota daftar:

    • visual— Penyematan visual dari video.

    • audio— Penyematan audio dalam video.

    • transcription— Penyematan teks yang ditranskripsi.

  • Nilai default:

    • Video: ["visual”, “audio”, “transkripsi"]

    • Audio: ["audio”, “transkripsi"]

  • Jenis input yang kompatibel: Video, Audio

Menentukan ruang lingkup embeddings untuk mengambil.

  • Tipe: Daftar

  • Wajib: Tidak

  • Nilai yang valid untuk anggota daftar:

    • clip— Mengembalikan embeddings untuk setiap klip.

    • asset— Mengembalikan embeddings untuk seluruh aset.

  • Jenis input yang kompatibel: Video, Audio

Titik waktu dalam detik klip tempat pemrosesan harus dimulai.

  • Tipe: Ganda

  • Wajib: Tidak

  • Nilai minimum: 0

  • Nilai default: 0

  • Jenis input yang kompatibel: Video, Audio

Titik waktu dalam detik di mana pemrosesan harus berakhir.

  • Tipe: Ganda

  • Wajib: Tidak

  • Nilai minimum: StartSec + panjang segmen

  • Nilai maksimum: Durasi media

  • Nilai default: Durasi media

  • Jenis input yang kompatibel: Video, Audio

Mendefinisikan bagaimana media dibagi menjadi beberapa segmen untuk pembuatan embedding.

  • Jenis: Objek

  • Wajib: Tidak

  • Jenis input yang kompatibel: Video, Audio

Objek segmentasi berisi method bidang dan parameter khusus metode:

  • method— Metode segmentasi yang digunakan. Nilai yang valid: dynamic | fixed

  • dynamic— Untuk video, gunakan deteksi batas bidikan untuk membagi konten secara dinamis. Berisi:

    • minDurationSec— Durasi minimum untuk setiap segmen dalam hitungan detik. Jenis: Integer. Rentang: 1-5. Default: 4.

  • fixed— Membagi konten menjadi segmen dengan durasi yang sama. Berisi:

    • durationSec— Durasi setiap segmen dalam hitungan detik. Jenis: Integer. Rentang: 1-10. Default: 6.

Perilaku default:

  • Video: Menggunakan segmentasi dinamis dengan deteksi batas bidikan.

  • Audio: Menggunakan segmentasi tetap. Konten dibagi serata mungkin dengan segmen mendekati 10 detik.

Pengidentifikasi unik untuk permintaan inferensi.

  • Tipe: String

  • Wajib: Tidak

TwelveLabs Marengo Embed 3.0respon

Lokasi embeddings output dan metadata terkait tergantung pada metode pemanggilan:

  • InvokeModel Dalam tubuh respon.

  • StartAsyncInvoke — Dalam bucket S3 yang ditentukan dalams3OutputDataConfig, setelah pekerjaan pemanggilan asinkron selesai.

Jika ada beberapa vektor embeddings, outputnya adalah daftar objek, masing-masing berisi vektor dan metadata terkait.

Format vektor embeddings output adalah sebagai berikut:

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

Embeddings dikembalikan sebagai susunan pelampung.

Di mana Anda melihat respons ini bergantung pada metode API yang Anda gunakan:

  • InvokeModel — Muncul di badan respons.

  • StartAsyncInvoke — Muncul di lokasi S3 yang Anda tentukan dalam permintaan. Respons mengembalikan sebuahinvocationArn. Anda dapat menggunakan ini untuk mendapatkan metadata tentang pemanggilan asinkron. Ini termasuk status dan lokasi S3 di mana hasilnya ditulis.

Perluas bagian berikut untuk detail tentang parameter respons:

Embeddings vektor representasi input.

  • Jenis: Daftar ganda

Jenis embeddings.

  • Tipe: String

  • Nilai yang mungkin:

    • visual — Penyematan visual dari video.

    • audio — Penyematan audio dalam video.

    • transkripsi — Penyematan teks yang ditranskripsi.

  • Jenis input yang kompatibel: Video, Audio

Menentukan ruang lingkup embeddings untuk mengambil.

  • Tipe: String

Anda dapat menyertakan satu atau lebih dari nilai-nilai berikut:

  • clip: Mengembalikan embeddings untuk setiap klip.

  • aset: Mengembalikan embeddings untuk seluruh aset.

Offset awal klip.

  • Tipe: Ganda

  • Jenis input yang kompatibel: Video, Audio

Offset akhir klip. Tidak berlaku untuk penyematan teks, gambar, dan text_image.

  • Tipe: Ganda

  • Jenis input yang kompatibel: Video, Audio

TwelveLabs Marengo Embed 3.0contoh kode

Bagian ini menunjukkan cara menggunakan TwelveLabs Marengo Embed 3.0 model dengan tipe input yang berbeda menggunakan Python. Contoh menunjukkan bagaimana mendefinisikan input khusus model dan menjalankan pemanggilan model.

catatan

InvokeModel mendukung teks, gambar, dan teks dengan input gambar yang disisipkan. Untuk input video dan audio, gunakan StartAsyncInvoke.

Satukan kode Anda dalam langkah-langkah berikut:

1. Tentukan masukan khusus model

Tentukan input khusus model tergantung pada jenis input Anda:

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. Jalankan pemanggilan model menggunakan input model

Kemudian, tambahkan cuplikan kode yang sesuai dengan metode pemanggilan model pilihan Anda.

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