Amazon Bedrockで、長尺の動画をタイムスタンプ付きの構造化メタデータに変換するTwelveLabsの動画言語モデル「Pegasus 1.5」の提供開始が、2026年10月9日に発表されました。Pegasus 1.5は、動画とテキストプロンプトまたはセグメント定義を受け取り、テキストまたはJSONを返します。
動画は非構造化データの中でも重要かつ複雑な種類ですが、その大半は検索不能で十分に活用されていません。従来、動画から構造化された実用的な洞察を取り出すには、労力のかかる手作業での確認や、分断されたツールチェーンが必要でした。
Pegasus 1.5の新機能と処理方式
以前のバージョンのPegasusでは、クリップに対してモデルを向けて質問すると回答が得られる仕組みでした。Pegasus 1.5は、動画全体を分析してユーザーが定義した基準に一致するすべてのセグメントを見つけ、タイムスタンプ付きの構造化メタデータを返します。
Amazon Bedrock上のPegasus 1.5は、最長2時間の動画を1回のリクエストで分析できます。Pegasus 1.2では1時間まででした。また、Amazon Simple Storage Service(Amazon S3)のURIまたはbase64文字列から動画を直接分析でき、事前のインデックス作成は不要です。データはAWSのデータ境界内にとどまります。
Pegasus 1.5のオンザフライ処理(on-the-fly processing)では、取り込みパイプラインや事前のインデックス作成は不要です。動画はAmazon S3から直接送られ、結果はレスポンスで返されます。
Pegasus 1.5は、Pegasus 1.2を強力な動画理解ツールにした中核機能を維持・強化しています。その一つが動画からのテキスト生成(Video-to-text generation)で、動画の内容に基づく詳細なテキスト説明を作成します。きめ細かな視覚理解(Granular visual comprehension)は、動画フレーム内のオブジェクトや画面上のテキスト、数値的な内容を分析します。時間的な位置の特定(temporal grounding)は、動画内の特定のイベントのタイムスタンプを正確に特定します。マルチモーダル理解(Multimodal understanding)は、視覚、音声、テキストの情報を組み合わせて包括的に分析します。多言語サポートは、英語は完全対応で、アラビア語、中国語、フランス語、ドイツ語、イタリア語、日本語、韓国語、ポルトガル語、ロシア語、スペイン語、タイ語、ベトナム語は部分的な対応です。
呼び出し方法と動画の指定方法
Amazon Bedrock上の動画言語モデルであるPegasus 1.5は、`bedrock-runtime` エンドポイントの `InvokeModel` APIを使用して呼び出します。レスポンスを生成と同時にストリーミングしたい場合は、`InvokeModelWithResponseStream` を使用します。
Amazon Bedrock上のPegasus 1.5の設定は、モデルIDが `twelvelabs.pegasus-1-5-v1:0`、AWSリージョンが米国西部(オレゴン)の `us-west-2` で、推論はオンデマンドです。APIは `InvokeModel` と `InvokeModelWithResponseStream` が利用できます。`analysisMode` を `time_based_metadata` にすると、`responseFormat` にセグメント定義を渡し、開始・終了時刻と要求したフィールドを持つ `segments` リストが返ります。
Pegasus 1.5というモデルにビデオを指定する方法は2通りあります。S3の場所(`s3Location`)を使う場合は、オブジェクトの`uri`と`bucketOwner`のアカウントIDを指定し、長尺ビデオに向いています。base64文字列(`base64String`)は、ビデオをリクエスト本文に埋め込む方式で、上限は25 MBであり、短いクリップに向いています。
利用の準備と generalモードの使い方
ここからは、Pegasus 1.5の使い始め方を説明します。前提条件は全部で5つあります。Amazon Bedrockにアクセスできる有効なAWSアカウント、Python 3.10以降とインストール済みのAWS SDK for Python (Boto3)、`bedrock:InvokeModel` と `bedrock:InvokeModelWithResponseStream` のAWS Identity and Access Management (IAM) 権限、Amazon BedrockコンソールでTwelveLabs Pegasus 1.5のモデルアクセスを有効にすること、そしてビデオをAmazon S3バケットに保存しているか、インラインで送れる短いクリップを用意していることです。
最初のリクエストの準備として、Boto3をインストールします。Boto3は通常のAWS認証情報でリクエストに署名しますが、代わりに環境変数 `AWS_BEARER_TOKEN_BEDROCK` にAmazon Bedrock APIキーを設定して認証することもできます。本番環境では、`aws-bedrock-token-generator` パッケージを用いてIAM認証情報から生成する短期キーの利用が推奨されます。自動的に失効するためです。ベアラートークン認証には `bedrock:CallWithBearerToken` 権限も必要です。
Amazon S3に保存した動画をgeneralモードで分析するときは、グローバルのCross Region Inference (CRIS) エンドポイントを使用できます。米国の地理的エンドポイントを対象にするには、エンドポイントURLの「global.」を「us.」に置き換えます。
Amazon BedrockのPegasus 1.5(モデルID `twelvelabs.pegasus-1-5-v1:0`)では、各リクエストは`analysisMode`フィールドで選ぶ2つの分析モードのどちらかで実行されます。generalモードがデフォルトです。generalモードでは、`inputPrompt`にテキストプロンプトを送り、`message`にテキストの回答が返ります。スキーマを指定した場合はJSONが返ります。また、回答を JSON Schema で制約でき、下流のコードが直接パースできます。このとき、`responseFormat.type`を`json_schema`に設定し、スキーマを`jsonSchema`の下に置きます。generalモードのリクエストには、動画に関する質問または指示を指定する`inputPrompt`が必須です。ビデオソースとして、`mediaSource.s3Location.uri`(バケットを所有するAWSアカウントIDである`mediaSource.s3Location.bucketOwner`が必要)か、Base64エンコードした動画で最大25 MBの`mediaSource.base64String`のどちらか1つが必須です。generalモードのリクエストフィールドには、出力のランダム性を0から1で指定する`temperature`(デフォルト0.2)、生成する最大トークン数を512〜98,304で指定する`maxOutputTokens`、回答が従うべきJSON Schemaを指定する`responseFormat`、および`general`(デフォルト)または`time_based_metadata`を指定する`analysisMode`があります。generalモードのレスポンスは、回答を`message`、トークン数を`input_tokens`と`output_tokens`、生成が終了した理由を`stopReason`に持ちます。`stopReason`が`length`なら、回答は完了する前に`maxOutputTokens`に達しているため、出力に頼る前に確認する必要があります。対話型アプリケーション向けに、`InvokeModelWithResponseStream`は生成されるそばから回答をチャンクに分けて返します。各チャンクは`message`に次のテキスト断片を持ちます。
| フィールド | Required | Description |
|---|---|---|
| inputPrompt | Yes | The question or instruction about the video |
| mediaSource.s3Location.uri | One video source is required | S3 URI of the video |
| mediaSource.s3Location.bucketOwner | With uri | AWS account ID that owns the bucket |
| mediaSource.base64String | One video source is required | Base64-encoded video, up to 25 MB |
| temperature | No | Randomness of the output, from 0 to 1. Default 0.2 |
| maxOutputTokens | No | Maximum tokens to generate, from 512 to 98,304 |
| responseFormat | No | A JSON Schema the answer must follow |
| analysisMode | No | general (default) or time_based_metadata |
元記事の表を転載しています(見出しは日本語にしています。値は原文のままです)。出典: 元記事
Pegasus 1.5は、動画セグメンテーション、参照画像を使ったマルチモーダルプロンプト、およびオンザフライ処理を導入しています。マルチモーダルプロンプトでは、テキストのプロンプトと一緒に参照画像を渡すことができ、これにより動画分析の精度が高まります。
短いクリップは、S3からではなく動画をインラインで送ることもできます。短いクリップをインラインで送るときは、任意の`includeMetering`属性を使用できます。`includeMetering: True` を指定すると、Pegasus 1.5は非ストリーミングのレスポンスに課金用の使用量フィールドとして、`outputTokenCount` と分析した動画の長さを示す`inputVideoSecond`(秒単位)の2つを追加します。
時間ベースのメタデータ、参照画像、利用状況の監視
Pegasus 1.5は、時間ベースのメタデータを生成できます。ユーザーが編集上のセグメント、スポーツのプレー、話者の交代、ブランドの登場など、ワークフローで重要なセグメント、イベント、ドメイン固有の手がかりを定義すると、Pegasus 1.5は一致するすべてのセグメントを、開始時刻と終了時刻、および要求したフィールドが入ったJSONで返します。時間ベースのメタデータ生成は、Pegasus 1.5が以前のバージョンと最も異なる点です。プロンプトの代わりに1つ以上のセグメント定義を送ると、モデルは各定義に一致する動画のすべてのセグメントを返します。Pegasus 1.5で動画セグメンテーションを行うには、`analysisMode` を `time_based_metadata` に、`responseFormat.type` を `segment_definitions` に設定します。セグメント定義は `inputPrompt` の代わりになるため、`inputPrompt` フィールドは省きます。1回のリクエストに複数のセグメント定義を含めることができ、例えば編集上のセクション用の定義と画面上のブランド登場用の定義を1つずつ含めることができます。Pegasus 1.5は、すべての定義に対する一致結果を1つの `segments` リストで返し、各セグメントに `_definition_id` を付けるため、どの定義の結果かを区別できます。`analysisMode` が `time_based_metadata` の動画セグメンテーションの出力では、各セグメントが `start_sec`、`end_sec`、および定義した `fields` を持ちます。レスポンスには `definition_errors` のリストも含まれ、すべての定義が処理された場合は空になります。`segmentTimeFormat` は時刻の書式を制御します。`seconds` は計算に使える数値を返し、`hh:mm:ss` と `hh:mm:ss.fff` は読みやすいタイムスタンプを文字列で返します。スキーマは一度定義すれば、同じ定義を動画ライブラリ全体に適用でき、すべてのアセットに一貫したメタデータを生成できます。各セグメント定義には `id` と `description` があります。`id` は定義の名前で、その定義に一致した各セグメントに付いて返されます。`description` は一致するセグメントがどのようなものかを記述します。セグメント定義の `fields` は、各セグメントについて抽出する値を指定します。各フィールドには `name`、`type` (`string`、`boolean`、`number`、`integer`、`array`、`timestamp` のいずれか)、および `description` を指定します。セグメント定義では、たとえばニュース放送の各編集セクションを識別し、それぞれのタイトル、要約、主要トピックを返すよう指定できます。
Pegasus 1.5はマルチモーダルプロンプトを導入しており、テキストプロンプトと一緒に参照画像を含めることができます。これは、言葉で説明するより見せたほうが簡単な、特定の物体・人物・シーンについて尋ねたいときに役立ちます。Pegasus 1.5のマルチモーダルプロンプトでは、セグメントの定義にテキストの説明と視覚的な参照を組み合わせられます。これにより、特定の製品、ロゴ、人物を、それらが画面上で何をしているかとあわせて見つけることが可能です。 参照画像の付け方はモードによって異なります。general モードのリクエストでは、質問を入れる `promptV2.inputText` と並べて `promptV2.mediaSources` に参照画像を置きます。セグメンテーションモード(`analysisMode: time_based_metadata`)では、参照画像は `responseFormat.segmentDefinitions` 内の各セグメント定義の `mediaSources` に付けます。このとき、参照画像がセグメント定義の中に置かれるため、Pegasusは参照画像の製品が登場するセグメントだけを返します。 `mediaSources` に付ける参照画像には、それぞれ `name`、`image` を値とする `media_type`、そしてちょうど1つのソースが必要です。ソースはインラインの `base64String`、または `uri` と `bucketOwner` を持つ `s3Location` のどちらかです。1回のリクエストには最大30枚の参照画像を含められます。例えば、製品画像を渡して、動画内でその製品が登場するすべての場面を特定させることができます。また、特定のロゴの参照画像を渡して、ブランドの登場とそのタイムスタンプを検出させることもできます。この機能は、視覚的なブランドモニタリング、プロダクトプレースメント分析、画像を手がかりにしたコンテンツ検索といった用途を開きます。これにより、セグメント定義はテキストの説明だけでなく、視覚的な参照にも一致できます。
Pegasus 1.5はAmazon CloudWatchメトリクスを `AWS/Bedrock` 名前空間に、そのモデルIDのもとで公開します。メトリクスには `Invocations`、`OutputTokenCount`、`InvocationLatency`、`InvocationClientErrors` などが含まれます。AWSは、これらを利用量とレイテンシの追跡に使うよう勧めています。利用状況をアプリケーションごとに分けて把握したい場合は、アプリケーション推論プロファイル(application inference profile)と組み合わせるよう勧めています。アプリケーションごとにコストを追跡するには、Pegasus 1.5モデルからアプリケーション推論プロファイルを作成してタグ付けし、モデルIDの代わりにそのAmazon Resource Name (ARN) で呼び出します。
活用例と動画の仕様、提供状況
Pegasus 1.5は、長尺の動画を大量に管理する組織向けに設計されています。ニュース・放送アーカイブでは、編集上のセグメントやトピックなどを一度定義することで、これまで文字起こしのキーワードでしか検索できなかった映像をカタログ化できます。スポーツ放送事業者などは、試合の全編映像からプレーや得点イベントなどの重要な場面を検出してハイライト制作を速めることが可能です。ストリーミングアプリケーションでは、シーン単位のメタデータが場面ベースのレコメンデーションやコンテキストに沿った広告配置、セグメント単位のブランドセーフティ審査を支えます。
Pegasus 1.5を使用する各ケースにおいて、人はワークフローの一部として残ります。人の作業は、すべての場面を手作業で探してタグ付けすることから、モデルが生成したメタデータをレビューして改善することへ移ります。
Pegasus 1.5が対応する動画の仕様は、長さが最大2時間、解像度が360×360から5184×2160までです。アスペクト比は1:1から2.4:1の間、またはその逆数に対応しています。ファイルサイズは、Amazon S3から渡す場合は最大2 GB、base64文字列として渡す場合は最大25 MBです。また、FFmpegが対応するフォーマットに対応しています。
TwelveLabs Pegasus 1.5は、Amazon Bedrockの米国西部(オレゴン)AWSリージョンで提供中です。AWSは、今後のリージョン展開などの更新については全リージョン一覧を、料金についてはAmazon Bedrockの料金ページを確認するよう勧めています。Pegasus 1.5はAWS Marketplace経由で課金されるため、料金はAmazon Bedrockではなく、TwelveLabsの項目としてAWS請求書とAWS Cost Explorerに表示されます。
TwelveLabsのモデルファミリーの詳細はAmazon BedrockのTwelveLabsモデルページで確認できます。機能のサポート状況、リージョン提供状況、およびサンプルコードについては、Pegasus 1.5のモデルカードで確認できます。Pegasus 1.5へのフィードバックは、Amazon Bedrock向けのAWS re:Postか、通常のAWS Supportの連絡先を通じて送ることができます。
| 設定 | Value |
|---|---|
| モデルID | twelvelabs.pegasus-1-5-v1:0 |
| AWS Region | US West (Oregon), us-west-2 |
| 推論 | On-demand |
| APIs | InvokeModel, InvokeModelWithResponseStream |
元記事の表を転載しています(見出しは日本語にしています。値は原文のままです)。出典: 元記事