ひとことで言うと
S3自体の機能説明ではなく、Bedrockの各機能がS3をどう扱うかが試験の対象です。データソース(Knowledge Bases)・学習データ置き場(モデルカスタマイズ)・入出力先(バッチ推論)の3役です。
要するに、Bedrockから見たS3は「棚」ではなく「受け渡し窓口」です。Knowledge Basesは棚に並んだ文書を検索して答えを作りますが、モデルカスタマイズとバッチ推論はS3を素通りする窓口として使います。学習データはJSONLファイルとしてS3に置かれ、Bedrockが読みに来て、結果もまたS3に置かれる。窓口が3つあるだけで、どれも「S3が主役」ではありません。
何に使うか
| 用途 | S3の役割 | 関連ドメイン |
|---|---|---|
| Knowledge Bases のデータソース | 元文書+サイドカーメタデータファイルを置く場所 | D1 1.4 |
| モデルカスタマイズ(ファインチューニング) | 学習・検証データセット(.jsonl)の置き場所 | D1 1.2 |
| バッチ推論 | 入力プロンプト(JSONL)と出力結果の受け渡し先 | D1 1.3 / D2 2.2 |
試験でどう問われるか
| 問われ方 | 正解に寄る条件 | 引っかけ |
|---|---|---|
| 「CSVの特定列だけをメタデータとして扱いたい」 | <ファイル名>.csv.metadata.json に contentFields / fieldsToInclude を書く | メタデータをS3のオブジェクトタグで管理する案(Knowledge Basesのメタデータフィルタはサイドカーファイル方式) |
| 「ファインチューニングの学習データをどう渡すか」 | S3に .jsonl を置き、モデルカスタマイズジョブにS3パスを指定する | SageMaker Ground Truth を経由させる案(それはラベリング用途で、渡し方そのものとは別問題) |
| 「バッチ推論の入力と出力の場所」 | inputDataConfig / outputDataConfig にそれぞれS3の場所を指定する。バッチ推論はプロビジョンドスループットのモデルには使えない | 入出力を同じバケットの同じプレフィックスにする案(許可はされるが、出力ファイルの上書き事故を招きやすい) |
| 「マルチモーダル画像を学習データに含めたい」 | JSONの image フィールドに s3Location.uri(s3://bucket/path)を書く | 画像をBase64でJSONに埋め込む案(対応モデルによっては可能だが、S3参照の方がファイルサイズ制限に強い) |
バッチ推論はツール呼び出し(function calling)と構造化出力に対応していません。入力JSONLの各レコードは独立して処理され、対話的なやり取りを前提とする機能は使えません。「エージェントの処理を一括で流したい」というシナリオでバッチ推論を選ぶのは誤りです。
実務でどう使うか
- モデルごとに学習データのサイズ上限が違う。 例えばAnthropic Claude 3 Haikuのファインチューニングは最大10GB(学習)+1GB(検証)、Titan Text Premierは学習ファイル1GB・検証ファイル100MBが上限です。上限を跨いだ設計をすると、S3側ではなくジョブ投入時にエラーになります
- バッチ推論・ファインチューニングとも、別アカウントのS3バケットを使うにはAPI経由の指定が必要。 コンソールの「Browse S3」は同一アカウント前提です
- Knowledge Basesのメタデータフィルタは、CSVの列を使う方法とサイドカー
.metadata.jsonを使う方法の2系統がある。 CSV方式は「1コンテンツ列+複数メタデータ列」に限定され、サイドカー方式は任意のドキュメント形式に使えてincludeForEmbeddingなどのオプションも持ちます。混同すると「メタデータのはずなのに検索対象に含まれてしまう」ような事故になります
別アカウントのS3バケットを使う場合、コンソールの「Browse S3」は使えません。バッチ推論もモデルカスタマイズも、クロスアカウントのS3パスを指定するにはAPI経由でジョブを作成する必要があります。「コンソールにバケットが出てこない」はバグではなく仕様です。
取り違えやすいもの
| 迷う相手 | 切り分けの一言 |
|---|---|
| S3 Vectors | S3自体はベクトルを保持しない。Knowledge Basesのベクトルストア選択肢の1つとして別サービス扱いになる(浮動小数点のみ・メタデータは1KB/35キーまで) |
| SageMaker Ground Truth | S3はデータの置き場所。Ground Truthはラベル付け(アノテーション)そのものを行う別サービス |
| Bedrock Data Automation | S3は入出力の場所。Data Automationは非構造化データ(PDF・動画等)を構造化データに変換する処理そのもの |
想起チェック
Q1. Knowledge BasesでCSVの特定列だけを検索対象にしたいとき、何を用意しますか?
<ファイル名>.csv.metadata.json というサイドカーファイルを用意し、contentFields で検索対象の列を、fieldsToInclude(または fieldsToExclude)でメタデータ扱いにする列を指定します。
Q2. バッチ推論で使えない機能は何ですか?
ツール呼び出し(function calling)と構造化出力(response_format)です。各レコードが独立処理される前提のため、対話的なやり取りが必要な機能は使えません。