なぜBedrockを選ぶのか
直接APIを叩けばいいのに、なぜAWS Bedrockを介する必要があるのか。この疑問は正当だが、本番環境を運用するとBedrockの価値が見えてくる。VPC内からプライベートエンドポイント経由でアクセスできる(データが公衆インターネットを通らない)、IAMによる細かいアクセス制御、CloudTrailによる全API呼び出しの監査ログ、既存のAWSインフラとのシームレスな統合。特に金融・医療・官公庁系のクライアントでは、これらのコンプライアンス要件が直接API利用を不可能にしている。
モデル選定の実際
- 年6月時点でBedrockが提供するモデル: Amazon Titan(Text/Embedding/Image)、Anthropic Claude 3.5 Sonnet/Haiku/Opus、Meta Llama 3.1 8B/70B/405B、Mistral Large/Small、Cohere Command R/R+、AI21 Jamba。
KGAの本番環境でのモデル使い分けを示す。メインの対話・分析: Claude 3.5 Sonnet(品質と速度のバランス最良)。大量バッチ処理: Claude 3.5 Haiku(コスト1/10で80%の品質)。コード生成: Llama 3.1 70B(Bedrockではオンデマンド課金で利用可能)。Embedding: Amazon Titan Embeddings v2(1024次元、日本語対応、$0.02/100万トークン)。
重要な注意点として、Bedrockでの利用にはモデルアクセスの有効化申請が必要だ。Claude Opusは現在も一部リージョンで利用制限がある。東京リージョン(ap-northeast-1)で利用可能なモデルは米国リージョンより少ないため、レイテンシとモデル選択肢のトレードオフを事前に確認すべきだ。
Guardrailsの設計
Bedrock Guardrailsは、LLMの入出力にポリシーベースのフィルタリングを適用する機能だ。KGAでは以下の4層のGuardrailsを設定している。
Content filters: 有害コンテンツ(暴力、性的表現、差別等)をHIGH感度でブロック。Denied topics: クライアント固有の禁止トピック(例: 競合他社の推奨、投資アドバイス等)をカスタム定義。Word filters: 機密用語、社内コードネーム等のブロックリスト。PII filter: 個人情報(氏名、電話番号、メールアドレス、マイナンバー等)の検出と自動マスキング。
特にPII filterは実用性が高い。ユーザーが入力に個人情報を含めてしまった場合でも、Guardrailsが自動的にマスキングしてからモデルに送信する。KGAのクライアント環境では月間約2,000件のPII含有リクエストを検出・マスキングしており、情報漏洩リスクの低減に大きく貢献している。
Guardrailsのレイテンシオーバーヘッドは入力フィルタリングで約50ms、出力フィルタリングで約30msだ。トータル80msの追加レイテンシは、ストリーミング応答では体感上ほぼ影響ない。
Knowledge BasesによるRAG構築
Bedrock Knowledge Basesは、マネージドRAGソリューションだ。S3にドキュメントをアップロードし、データソースを指定するだけで、チャンキング、Embedding生成、ベクトルDB格納、検索、プロンプト拡張までを自動処理する。
KGAが本番で使用している構成: データソース: S3(PDF、Word、HTML、約15,000ドキュメント)。チャンキング: Hierarchical chunking(親チャンク1500トークン、子チャンク300トークン)。Embedding: Amazon Titan Embeddings v2。ベクトルDB: Amazon OpenSearch Serverless。検索: Hybrid search(ベクトル検索 + キーワード検索の組み合わせ)。
Hierarchical chunkingが重要なポイントだ。検索時は子チャンクで精密にマッチングし、LLMへのコンテキスト注入時は親チャンクで広い文脈を提供する。固定サイズチャンキングと比較して、回答の文脈適合率が34%向上した。
コスト最適化
Bedrockのコストは「モデル推論」+「Knowledge Bases」+「Guardrails」の3要素で構成される。KGAの月間コスト実績を共有する。Claude 3.5 Sonnet推論(月間200万リクエスト): $8,500。Claude 3.5 Haiku推論(月間500万リクエスト): $1,200。Titan Embedding(月間1,000万チャンク): $200。OpenSearch Serverless(ベクトルDB): $700。Guardrails(月間700万評価): $525。合計: 約$11,125/月。
コスト削減の最大レバレッジはモデルの使い分けだ。全リクエストをSonnetで処理していた初期は月額$22,000だったが、Haikuへのルーティング導入で約50%削減した。Provisioned Throughputも検討したが、KGAの利用パターンでは日中と夜間のトラフィック差が大きく、オンデマンド課金の方が有利だった。