AWS 기술 블로그

TwelveLabs 비디오 이해 모델, Amazon Bedrock 에서 사용하기

이 블로그는 원본 블로그를 번역 및 일부 내용을 수정한 버전 입니다. TwelveLabs video understanding models are now available in Amazon Bedrock 

2025년 초, Amazon Bedrock에 TwelveLabs 의 비디오 이해 모델이 출시될 예정이라는 소식이 사전 발표되었습니다. TwelveLabs 모델들을 통해 정확하고 신뢰할 수 있는 비디오 검색, 장면 분류, 요약 및 인사이트 추출 작업이 Amazon Bedrock 에서 현재 사용 가능함을 안내드립니다.

TwelveLabs는 검색 및 분류와 같은 작업을 수행하는 비디오 임베딩 모델인 Marengo와 비디오 데이터를 기반으로 텍스트를 생성할 수 있는 비디오 언어 모델인 Pegasus를 발표하였습니다. 이 모델들은 텍스트 요약, 메타데이터 생성 및 창의적 최적화를 제공하는 혁신적인 비디오 분석을 제공하기 위해 Amazon SageMaker HyperPod에서 훈련되었습니다.

Amazon Bedrock의 TwelveLabs 모델을 사용하면, “Show me the first touchdown of the game(경기의 첫 터치다운 장면을 보여줘)” 또는 “Find the scene where the main characters first meet (주인공들이 처음 만나는 장면을 찾아줘)”와 같은 자연어 비디오 검색 기능을 통해 특정 순간을 찾아 해당 장면으로 바로 이동할 수 있습니다. 또한 미리 정의된 레이블이나 카테고리 없이도 제목, 주제, 해시태그, 요약, 챕터 또는 하이라이트와 같은 설명 텍스트를 생성하여 비디오 콘텐츠를 이해하는 애플리케이션을 구축할 수 있습니다.

예를 들어, 고객 피드백에서 반복되는 주제를 찾거나 이전에는 명확하지 않았던 제품 사용 패턴을 발견할 수 있습니다. 수백 또는 수천 시간의 비디오 콘텐츠도 엔터프라이즈급 보안과 성능을 유지하면서 검색 가능한 지식 리소스로 전환할 수 있습니다.

그럼 이제 TwelveLabs가 공개한 Marengo와 Pegasus 비디오 모델에 대해 자세히 살펴보겠습니다.

데모영상 바로가기(Video)

데모영상 바로가기(Video)

이러한 모델들은 다양한 산업 분야의 비디오 워크플로우에 혁신을 가져올 것으로 기대됩니다. 예를 들어, 미디어 제작자와 편집자들은 원하는 특정 장면이나 대화를 즉시 찾아낼 수 있어, 수많은 영상을 검색해야 하는 시간을 줄이고, 창의적인 스토리텔링에 더 집중할 수 있습니다. 마케팅 팀의 경우, 다양한 시청자에게 맞춤화된 콘텐츠를 신속하게 제작하여 광고 워크플로우를 간소화할 수 있으며, 보안 팀은 여러 비디오 피드를 동시에 분석하여 일정 패턴을 발견하며, 잠재적 위험 요소를 사전에 감지하는 데 이 기술을 활용할 수 있습니다.

Amazon Bedrock에서 TwelveLabs 모델 시작하기

시작하기 전에, TwelveLabs 모델을 처음 사용하는 경우 Amazon Bedrock 콘솔로 이동하여 왼쪽 하단 탐색 창에서 Model access를 선택하여 Access 를 요청해야 합니다. 최신 TwelveLabs 모델에 액세스하려면 사용 가능한 리전에서 TwelveLabs의 Marengo Embed 2.7 또는 Pegasus 1.2에 대한 액세스를 요청하세요.

Amazon Bedrock에서 TwelveLabs 모델을 사용하려면 왼쪽 탐색 창의 Test 아래에서 Chat/Text Playground를 선택합니다. Select model을 선택하고, 카테고리로 TwelveLabs를 선택한 다음 모델로 Pegasus를 선택하고 Apply를 클릭합니다.

비디오에서 검색하거나 텍스트를 생성하려면 비디오를 Amazon Simple Storage Service(Amazon S3) 버킷에 업로드하거나 Base64 형식의 비디오 문자열을 입력해야 합니다.

저는 “수중에서 기타를 연주하는 귀여운 너구리”라는 프롬프트로 Amazon Nova Reel를 통해 생성한 샘플 비디오를 사용하겠습니다.

데모영상 바로가기(Video)

업로드한 비디오의 S3 URI와 S3 Bucket Owner를 입력한 다음 “Tell me about the video by timeline”이라는 프롬프트를 실행합니다.

다음과 같은 모델 응답을 받을 수 있습니다:

The video opens with an underwater scene featuring a sandy seabed and swaying seaweed, creating a serene atmosphere. At around 5 seconds, a raccoon appears, swimming towards the camera with a curious expression. By 10 seconds, the raccoon is seen swimming near the seabed. The focus then shifts to a group of koi fish swimming gracefully near the seabed from 11 to 13 seconds.

At 14 seconds, the scene transitions to an ukulele resting on the seabed, with the camera zooming in to highlight its details. The raccoon reappears at 20 seconds, swimming among the koi fish, and by 23 seconds, it begins to play the ukulele. The raccoon continues to play the ukulele from 29 to 41 seconds, with the koi fish swimming around it, adding a lively and colorful touch to the underwater setting.

From 42 to 49 seconds, the raccoon is shown playing the ukulele with the koi fish swimming around it. The video concludes with a screen displaying “Video generated with Amazon Novo Reel 1.1” and “Available in Amazon Bedrock” from 50 to 54 seconds, followed by the AWS logo from 55 to 57 seconds.

TwelveLabs 모델은 대화형 AI 상호작용을 위한 통합 인터페이스를 제공하는 Amazon Bedrock Invoke API를 사용하여 애플리케이션에 쉽게 통합할 수 있습니다.

다음은 TwelveLabs Pegasus 모델과 함께 AWS SDK for Python(Boto3)을 사용하는 예제입니다:

import boto3
import json
import base64

AWS_REGION = "us-west-2"
MODEL_ID = "us.twelvelabs.pegasus-1-2-v1:0" # OR "eu.twelvelabs.pegasus-1-2-v1:0" if it is doing cross region inference in europe
VIDEO_PATH = "sample.mp4"

def read_file(file_path: str) -> str:
    """Read a file and return as base64 encoded string."""
    try:
        with open(file_path, 'rb') as file:
            file_content = file.read()
            return base64.b64encode(file_content).decode('utf-8')
    except Exception as e:
        raise Exception(f"Error reading file {file_path}: {str(e)}")


bedrock_runtime = boto3.client(
    service_name="bedrock-runtime",
    region_name=AWS_REGION
)

request_body = {
    "inputPrompt": "tell me about the video",
    "mediaSource": {
        "base64String": read_file(VIDEO_PATH)
    }
}

response = bedrock_runtime.invoke_model(
    modelId=MODEL_ID,
    body=json.dumps(request_body),
    contentType="application/json",
    accept="application/json"
)

response_body = json.loads(response['body'].read())
print(json.dumps(response_body, indent=2))

TwelveLabs Marengo Embed 2.7 모델은 비디오, 텍스트, 오디오 또는 이미지 입력에서 벡터 임베딩을 생성합니다. 이러한 임베딩은 유사성 검색, 클러스터링 및 기타 머신 러닝(ML) 작업에 사용될 수 있습니다. 이 모델은 Bedrock StartAsyncInvoke API를 통한 비동기 추론 또한 지원합니다.

비디오 소스의 경우, StartAsyncInvoke API 를 사용하여 TwelveLabs Marengo Embed 2.7 모델에 대한 JSON 형식을 요청할 수 있습니다.

{
    "modelId": "twelvelabs.marengo-embed-2-7-v1:0",
    "modelInput": {
        "inputType": "video",
        "mediaSource": {
            "s3Location": {
                "uri": "s3://your-video-object-s3-path",
                "bucketOwner": "your-video-object-s3-bucket-owner-account"
            }
        }
    },
    "outputDataConfig": {
        "s3OutputDataConfig": {
            "s3Uri": "s3://your-bucket-name"
        }
    }
}

지정된 S3 위치로 전달되는 응답을 받을 수 있습니다.

{
    "embedding": [0.345, -0.678, 0.901, ...],
    "embeddingOption": "visual-text",
    "startSec": 0.0,
    "endSec": 5.0
}

다양한 사용 사례와 여러 코드 예제는 광범위한 코드 예제에서 참고하실 수 있습니다. 자세한 내용은 AWS 문서의 TwelveLabs Pegasus 1.2 및 TwelveLabs Marengo Embed 2.7를 참고하여 주시기 바랍니다.

지금 바로 사용 해보세요

TwelveLabs 모델은 현재 Amazon Bedrock에서 사용 가능합니다: Marengo 모델은 US East(N. Virginia), Europe(Ireland), Asia Pacific(Seoul) 리전에서, Pegasus 모델은 US West(Oregon) 및 Europe(Ireland) 리전에서 미국 및 유럽 리전에서의 교차 리전 추론이 가능합니다. 향후 업데이트를 위해 전체 리전 목록을 확인하세요. 더 자세한 내용은 Amazon Bedrock의 TwelveLabs 페이지와 Amazon Bedrock 요금 페이지를 참고하여 주시기 바랍니다.

Amazon Bedrock 콘솔에서 TwelveLabs 모델을 사용해보고, Amazon Bedrock용 AWS re:Post나 평소 AWS 지원 연락처를 통해 피드백을 보내주시면 감사하겠습니다. 그럼, 지금 바로 Amazon Bedrock에서 TwelveLabs 모델을 사용해보세요!

Kyoungah Lee

Kyoungah Lee

이경아 Cloud Suppport BigData Engineer 는 Amazon Web Services(AWS)의 BigData 서비스에 대한 고객들의 기술적 문의 및 이슈 분석 등의 고객지원 업무를 수행하고 있습니다. 또한, Amazon MWAA의 주제 전문가(SME)로 활동하고 있습니다.