Re Reference AI

インフラ

Bedrockとは

Amazon Bedrock

AWSが提供する、複数のAIプロバイダの基盤モデルを単一APIで呼び出せるフルマネージドサービス

AWSマネージドサービスAPI

ひとことで言うと

AWSが提供する、複数の会社のAIモデルをまとめて使えるサービス。

概要

Amazon Bedrock(Bedrock)とは、AWSが提供する、複数のAIプロバイダの基盤モデル(Foundation Model)を単一のAPIを通じて呼び出せるフルマネージドサービス。 Anthropic Claude・Meta LlamaMistral・Amazon Nova・Cohere・AI21 Labs等、複数ベンダーのモデルを、モデルごとに異なるSDKやインフラを構築せず統一されたインターフェースから利用できる。 モデルの呼び出しだけでなく、自社データを使ったファインチューニング、社内文書を検索対象に加えるKnowledge Bases(RAGの実装)、有害な入力・出力を検知・遮断するGuardrailsAIエージェントを構築するAgentsといった周辺機能も提供する。 AWSの他サービス(IAM・VPC・CloudWatch等)とシームレスに統合できる点が、既存のAWS環境で生成AI機能を組み込む際の主な採用理由の1つになっている。

背景

複数のAIプロバイダのモデルを併用するには、本来プロバイダごとに異なるAPI仕様・認証方式・SDKへ個別に対応する必要がある。Bedrockは、この差異を単一のAPIの背後に隠蔽することで、モデルの切り替えや比較検証を容易にする狙いを持つ。

歴史

Amazon Bedrockは2023年4月にプレビューとして発表され、同年9月に一般提供(GA)を開始した。

ワークフロー

IAMで実行ロール・権限を設定 → 利用したい基盤モデルを選択し有効化 → boto3等のSDKからBedrock RuntimeのAPIを呼び出しモデルを実行 → Knowledge Bases(RAG)やGuardrails等の周辺機能を組み合わせて利用する。

コード例

boto3でBedrockのモデルを呼び出す

import boto3
import json

client = boto3.client("bedrock-runtime", region_name="us-east-1")

response = client.invoke_model(
    modelId="anthropic.claude-3-5-sonnet-20240620-v1:0",
    body=json.dumps({
        "anthropic_version": "bedrock-2023-05-31",
        "max_tokens": 256,
        "messages": [{"role": "user", "content": "こんにちは"}],
    }),
)
print(json.loads(response["body"].read()))

利点

  • モデルプロバイダごとに異なるAPIを個別に実装する必要がなく、統一されたインターフェースで複数モデルを比較・切り替えられる
  • IAMによるアクセス制御やVPC経由の接続等、既存のAWSインフラのセキュリティ・ガバナンス体系をそのまま生成AI機能に適用できる
  • Knowledge Bases(RAG)やGuardrails等、モデル呼び出し以外の周辺機能もあわせて利用できる

欠点

  • 利用できるモデルはBedrock対応のプロバイダ・モデルに限られ、対応していないモデルは別途自前で用意する必要がある
  • AWS特有のサービス構成やIAM権限設計の理解が求められ、AWSに不慣れなチームには学習コストがかかる
  • モデルの新機能が各社のネイティブAPIより遅れてBedrockへ提供される場合がある

比較

  • ClaudeBedrockはClaude等複数プロバイダのモデルを単一APIで提供する基盤サービスであり、Claudeはその中で利用できるモデルの1つ
  • AgentCoreAgentCore(Amazon Bedrock AgentCore)は、Bedrockが提供するエージェント関連機能をさらに拡張した、AIエージェント専用のマネージドサービス群
  • vLLMvLLMはセルフホスト型のOSS推論エンジンであるのに対し、BedrockはAWSが運用を担うフルマネージド型のサービス

関連用語

AgentCoreClaudeRAGガードレールLLM Gateway

よくある質問

BedrockでClaudeを使うのと、Anthropic APIを直接使うのとの違いは?

モデル自体は同じだが、Bedrock経由ではAWSの請求・IAM権限管理・VPC接続等、既存のAWSインフラとの統合を活かせる点が異なる。Anthropic APIを直接利用する場合は、AWS環境に依存せず最新機能へいち早くアクセスしたい場合に向く。

Bedrockで使えるモデルはどう決まる?

AWSが個別のモデルプロバイダと提携し、Bedrock上で提供するモデルとして追加する形をとる。 利用可能なモデルの一覧やリージョンごとの対応状況は、AWSの公式ドキュメントで随時更新される。

参考文献

関連Zenn記事