AWS入門ブログリレー2024〜Amazon Bedrock編〜
こんにちは、つくぼし(tsukuboshi0755)です!
当エントリは弊社AWS事業本部による『AWS入門ブログリレー 2024』の28日目のエントリです。
このブログリレーの企画は、普段AWSサービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。
AWSをこれから学ぼう!という方にとっては文字通りの入門記事として、またすでにAWSを活用されている方にとってもAWSサービスの再発見や2024年のサービスアップデートのキャッチアップの場となればと考えておりますので、ぜひ最後までお付合い頂ければ幸いです。
では、さっそくいってみましょう。今回のテーマは『Amazon Bedrock』です。
基本情報
Amazon Bedrockについて、まず初めに知っておくべき基本情報を説明します。
概要
Amazon Bedrockとは、主要な生成AIの基盤モデル(FM)を、AWS上で利用できるフルマネージド型サービスです。
直接生成AIを利用する場合と比較して、Amazon Bedrockから基盤モデルを利用すると以下のようなメリットを得られます。
- 有名なAI企業が提供する、テキスト生成/埋め込み/画像生成/動画生成等の様々な基盤モデルを、同一のAPIで使用可能
- プライバシーとセキュリティを維持しながら、生成AIアプリケーションを構築可能
- RAG、AIエージェント、AIワークフローといった生成AIに関する各種機能を提供
- 使い慣れたAWSサービスとのスムーズな統合が可能
Bedrockの始め方
Bedrockの基盤モデルを初めて利用する際は、事前に以下のマネジメントコンソールのモデルアクセスより、基盤モデルへのアクセスリクエストが必要になります。
モデルを一度有効化すれば、そのアカウントでは基盤モデルを自由に利用できるようになります。
詳細は以下のブログをご確認ください。
注意点として、通常Bedrockにおける最新の基盤モデルは、バージニア(us-east-1)及びオレゴン(us-west-2)のリージョンから先にリリースされる一方で、東京(ap-northeast-1)等のリージョンには遅れてリリースされる傾向にあります。
そのためBedrockの一部の基盤モデル及び機能が、東京リージョンで利用できない場合があります。
ただバージニア及びオレゴンのBedrockを利用する場合でも比較的レスポンスは早い傾向にあり、また通信もAWS内部で閉じるためセキュリティも担保されています。
そのため生成AIアプリ基盤をAWSで構築する場合は、他のリソースについては自国のリージョンを利用しつつ、Bedrockのみバージニアやオレゴンのリージョンを指定し利用するパターンが多いです。
本記事でも、基本的にバージニア及びオレゴンリージョンにおけるBedrockの利用を前提として解説します。
Bedrockの使い方
Bedrockでの基盤モデルの使い方について、GUIとAPIの2つの観点から説明します。
GUIでの利用
プレイグラウンドを利用する事で、以下の通りマネジメントコンソールから簡単にAmazon Bedrockの基盤モデルを選択し呼び出す事ができます。
各々の基盤モデルがどのような出力を返すかを検証する際に便利です。
APIでの利用
まずAmazon Bedrock APIのうち、ListFoundationModels
アクションを利用する事で、該当リージョンで利用可能な基盤モデルの一覧を取得できます。
AWS CLIからListFoundationModels
を実行する場合のコマンド例は、以下の通りです。
aws bedrock list-foundation-models --region us-east-1
上記アクションの結果に含まれるmodelIdを、基盤モデルを呼び出す際に指定する必要があります。
次にAmazon Bedrock Runtime APIの内、以下4つのアクションのいずれかを利用する事で、アプリケーションのプログラムからAmazon Bedrockの基盤モデルを呼び出す事ができます。
- InvokeModel:基盤モデル毎に要求されるリクエストを送付し、レスポンス内容を一度にすべて取得
- InvokeModelWithResponseStream:基盤モデル毎に要求されるリクエストを送付し、レスポンス内容を少量の文字ずつ徐々にストリームとして取得
- Converse:全ての基盤モデルで機能する統一されたリクエストを送付し、レスポンス内容を一度にすべて取得
- ConverseStream:全ての基盤モデルで機能する統一されたリクエストを送付し、レスポンス内容を少量の文字ずつ徐々にストリームとして取得
大まかにInvokeModel APIとConverse APIに分かれており、2024年時点ではConverse APIの方が同じリクエスト内容で異なる基盤モデルを呼び出せる点で汎用性に優れています。
なお両者とも、APIを実行する際はbedrock:InvokeModel
アクションに対する権限が必要です。
AWS CLIからConverse APIを実行する場合のコマンド例は、以下の通りです。
aws bedrock-runtime converse \
--model-id "anthropic.claude-3-sonnet-20240229-v1:0" \
--messages '[{"role": "user", "content": [{"text": "日本の偉人の名言を1つ教えてください。"}]}]' \
--inference-config '{"maxTokens": 512, "temperature": 0.5, "topP": 0.9}' \
--region us-east-1
Boto3(Python)からConverse APIを実行する場合のコード例は、以下の通りです。
import boto3
modelRegion = "us-east-1"
modelId = "anthropic.claude-3-sonnet-20240229-v1:0"
br = boto3.client(service_name="bedrock-runtime", region_name=modelRegion)
prompt = "日本の偉人の名言を1つ教えてください"
messages = [
{
"role": "user",
"content": [{"text": prompt}],
}
]
inferenceConfig = {
"maxTokens": 512,
"temperature": 1,
"topP": 0.9,
}
response = br.converse(
modelId=modelId ,
messages=messages,
inferenceConfig=inferenceConfig
)
response_output=response["output"]["message"]["content"][0]["text"]
print(response_output)
InvokeModel APIとConverse APIの違いについては、以下のブログも合わせてご確認ください。
関連用語
Amazon Bedrockでは、他にも生成AI独自の用語が多く出てきます。
以下の公式ドキュメントで説明があるため、一通り目を通しておくとよりBedrockの理解が深まるかと思います。
基盤モデルの選択
Amazon Bedrockには、様々な基盤モデルが用意されています。
以下では、基盤モデルの選択にあたって考慮すべきポイントを説明します。
モダリティ
Bedrockの基盤モデルは、用途に応じて以下のモダリティに分類されています。
用途に応じたモダリティを選択する事で、最適なモデルを利用できるようになります。
- Text(テキスト生成モデル):入力されたテキストを解釈し、テキストを出力するモデル
- Vision(テキスト生成モデル):入力された画像を解釈し、テキストを出力するモデル
- Embedding(埋め込みモデル):入力されたデータを解釈し、埋め込みベクトルを出力するモデル
- Image(画像生成モデル):入力されたデータを解釈し、画像を出力するモデル
- Video(動画生成モデル):入力されたデータを解釈し、動画を出力するモデル
デプロイメント
Bedrockの基盤モデルは、様々なデプロイ方法が用意されています。
最初はデプロイが不要なサーバレスのモデルから始めるのがオススメですが、もしサーバレスのモデルで不十分な箇所があれば、他のデプロイ方法を検討する事も可能です。
以下では、各々のデプロイ方法について簡単に紹介します。
サーバレス
最初からAmazon Bedrockに組み込まれているため、追加のデプロイ作業なしでサーバレスに利用できる基盤モデルです。
以下の手順でBedrockのモデルアクセスから選択し有効化するだけで、Bedrockの基盤モデルとして利用できるようになります。
マーケットプレイスデプロイメント
Amazon Bedrockに組み込まれていない3rd Partyのモデルを、Amazon Bedrock Marketplaceから選択する事で、Bedrockの基盤モデルとしてデプロイする機能です。
インスタンス設定等を指定した上でのモデルのデプロイが別途必要であり、こちらはSageMakerエンドポイント経由でデプロイする事になります。
詳細は以下のブログも合わせてご確認ください。
なおMarketplace deploymentで使用可能な基盤モデルは数が非常に多いため、本記事ではこのタイプの基盤モデルの紹介は割愛します。
カスタムモデル
Bedrockのサーバレス基盤モデルに対してトレーニングデータを提供しカスタマイズしたモデルを、Bedrockの基盤モデルとしてデプロイする機能です。
基盤モデルに対して以下の手法によりカスタマイズする事で、特定のユースケースに合わせたモデルを作成します。
- ファインチューニング
- 継続的な事前トレーニング
- モデル蒸留
Bedrockにおけるファインチューニング及び継続的な事前トレーニングについては、以下の記事も合わせてご確認ください。
Bedrockにおけるモデル蒸留については、以下の記事も合わせてご確認ください。
カスタムモデルインポート
他のプラットフォームで既にトレーニングされたカスタムモデルをBedrockにインポートし、Bedrockの基盤モデルとしてデプロイする機能です。
既にSageMakerやHugging Face等でトレーニングされたモデルを、Bedrock上で利用する事が可能になります。
Bedrockにおけるカスタムモデルインポートについては、以下の記事も合わせてご確認ください。
料金体系
Bedrockには様々な料金体系があり、用途に応じて各々の料金体系を選択できます。
詳細は以下の料金表をご確認ください。
以下では、主要な2種類の料金体系について簡単に紹介します。
オンデマンド
使用した分のみ課金される、スタンダードな料金体系です。
モデルの種類により、以下の形で従量課金されます。
- テキスト生成モデル:入力トークンの処理および出力トークンの生成ごとに課金
- 埋め込みモデル:入力トークンの処理ごとに課金
- 画像生成モデル:画像の生成ごとに課金
- 動画生成モデル:動画の生成ごとに課金
プロビジョンドスループット
特定のベースモデルまたはカスタムモデルについて、モデルユニットという単位で購入する料金体系です。
モデルユニットは、1分あたりに処理される入力トークンまたは出力トークンの最大数によって測定される特定のスループットを表します。
こちらの料金体系の場合、1か月または6か月の契約期間を選択し、課金する形になります。
プロビジョンドスループットの詳細については、以下のブログも合わせてご確認ください。
テキスト生成モデル
テキスト生成モデルを利用する事で、入力されたテキストや画像を元に、文章を生成する事ができます。
Amazon Bedrockで利用可能なテキスト生成モデルは、以下の表の通りです。
なお価格については、バージニアリージョンまたはオレゴンリージョンでのオンデマンド料金モデルを参照します。
基盤モデル | プロバイダー | モダリティ | 最大トークン | 対応言語 | 入力トークン 1,000 個あたりの価格 | 出力トークン 1,000 個あたりの価格 |
---|---|---|---|---|---|---|
Claude 3.5 Sonnet | Anthropic | Text & Vision | 200k | 英語、スペイン語、日本語、他の複数の言語 | 0.003000 USD | 0.015000 USD |
Claude 3.5 Haiku | Anthropic | Text & Vision | 200k | 英語、スペイン語、日本語、他の複数の言語 | 0.000800 USD | 0.004000 USD |
Claude 3 Opus | Anthropic | Text & Vision | 200k | 英語、スペイン語、日本語、その他複数の言語 | 0.015000 USD | 0.075000 USD |
Claude 3 Haiku | Anthropic | Text & Vision | 200k | 英語、スペイン語、日本語、その他複数の言語 | 0.000250 USD | 0.001250 USD |
Claude 3 Sonnet | Anthropic | Text & Vision | 200k | 英語、スペイン語、日本語、その他複数の言語 | 0.003000 USD | 0.015000 USD |
Claude v2.1/2.0 | Anthropic | Text | 200k | 英語と他の複数の言語 | 0.008000 USD | 0.024000 USD |
Claude Instant | Anthropic | Text | 100k | 英語と他の複数の言語 | 0.000800 USD | 0.002400 USD |
Command | Cohere | Text | 4k | 英語 | 0.001500 USD | 0.002000 USD |
Command Light | Cohere | Text | 4k | 英語 | 0.000300 USD | 0.000600 USD |
Command R | Cohere | Text | 128k | ※1 | 0.000500 USD | 0.001500 USD |
Command R+ | Cohere | Text | 128k | ※1 | 0.003000 USD | 0.015000 USD |
Jamba 1.5 Large | AI21 Labs | Text | 256k | ※2 | 0.002000 USD | 0.008000 USD |
Jamba 1.5 Mini | AI21 Labs | Text | 256k | ※2 | 0.000200 USD | 0.000400 USD |
Jamba-Instruct | AI21 Labs | Text | 8k | 英語 | 0.000500 USD | 0.000700 USD |
Llama 3.3 Instruct (70B) | Meta | Text | 128k | 英語 | 0.000720 USD | 0.000720 USD |
Llama 3.2 Instruct (1B) | Meta | Text | 131k | 英語 | 0.000100 USD | 0.000100 USD |
Llama 3.2 Instruct (3B) | Meta | Text | 131k | 英語 | 0.000150 USD | 0.000150 USD |
Llama 3.2 Instruct (11B) | Meta | Text | 131k | 英語 | 0.000160 USD | 0.000160 USD |
Llama 3.2 Instruct (90B) | Meta | Text | 131k | 英語 | 0.000720 USD | 0.000720 USD |
Llama 3.1 Instruct (8B) | Meta | Text | 128k | 英語 | 0.000220 USD | 0.000220 USD |
Llama 3.1 Instruct (70B) | Meta | Text | 128k | 英語 | 0.000720 USD | 0.000720 USD |
Llama 3.1 Instruct (405B) | Meta | Text | 128k | 英語 | 0.002400 USD | 0.002400 USD |
Llama 3 Instruct (8B) | Meta | Text | 8k | 英語 | 0.000300 USD | 0.000600 USD |
Llama 3 Instruct(70B) | Meta | Text | 8k | 英語 | 0.002650 USD | 0.003500 USD |
Mistral 7B Instruct | Mistral AI | Text | 32k | 英語 | 0.000150 USD | 0.000200 USD |
Mixtral 8x7B Instruct | Mistral AI | Text | 32k | ※3 | 0.000450 USD | 0.000700 USD |
Mistral Small (24.02) | Mistral AI | Text | 32k | ※3 | 0.001000 USD | 0.003000 USD |
Mistral Large (24.02) | Mistral AI | Text | 32k | ※3 | 0.004000 USD | 0.012000 USD |
Mistral Large 2 (24.07) | Mistral AI | Text | 128k | ※4 | 0.002000 USD | 0.006000 USD |
Titan Text Premier | Amazon | Text | 32k | 英語 | 0.000500 USD | 0.001500 USD |
Titan Text Lite | Amazon | Text | 4k | 英語 | 0.000150 USD | 0.000200 USD |
Titan Text Express | Amazon | Text | 8k | ※5 | 0.000200 USD | 0.000600 USD |
Nova Micro | Amazon | Text | 128k | ※6 | 0.000035 USD | 0.000140 USD |
Nova Lite | Amazon | Text & Vision | 300k | ※6 | 0.000060 USD | 0.000240 USD |
Nova Pro | Amazon | Text & Vision | 300k | ※6 | 0.000800 USD | 0.003200 USD |
※1英語、フランス語、スペイン語、イタリア語、ドイツ語、ポルトガル語、日本語、韓国語、アラビア語、中国語
※2英語、スペイン語、フランス語、ポルトガル語、イタリア語、オランダ語、ドイツ語、アラビア語、ヘブライ語
※3英語、フランス語、イタリア語、ドイツ語、スペイン語
※4英語、フランス語、ドイツ語、スペイン語、イタリア語、中国語、日本語、韓国語、ポルトガル語、オランダ語、ポーランド語、アラビア語、ヒンディー語等数十の言語
※5英語 (GA)、100以上の言語での多言語 (プレビュー)
※6英語、ドイツ語、スペイン語、フランス語、イタリア語、日本語、韓国語、アラビア語、中国語、ロシア語、ヒンディー語、ポルトガル語、オランダ語、トルコ語、ヘブライ語を含む200以上の言語
テキスト生成モデルでは、Anthropic社、Cohere社、AI21 Labs社、Meta社、Mistral AI社、Amazon社が提供するモデルを利用できます。
以下では各々のテキスト生成モデルについて、シリーズ別で簡単に紹介します。
Claude
Claudeシリーズは、Anthropic社が提供するテキスト生成モデルです。
特にClaude 3は、日本語対応が明記されており、最大トークンも多いため、Bedrockでテキスト生成するのであればまず検討したいモデルです。
Claude 3はモダリティとして、Textの他にVisionが搭載されており、画像を入力し認識した上で回答を生成できます。
BedrockにおけるClaude 3の画像認識については、以下の記事も合わせてご確認ください。
またClaude 3では、Haiku/Sonnet/Opusの3つのモデルが提供されており、価格と性能に応じて選択できるようになっています。
特にHaikuは、2024年時点では基盤モデルの中では非常に安く利用できるテキスト生成モデルであり、コストを抑えたい場面では有力な選択肢になります。
BedrockにおけるClaude 3 Haikuについては、以下の記事も合わせてご確認ください。
逆にOpusは、Anthropic社の検証によるとGPT-4を超えるトップレベルのベンチマークを持ち、性能が求められる場面では有力な選択肢になります。
BedrockにおけるClaude 3 Opusについては、以下の記事も合わせてご確認ください。
さらに最新モデルとして、Claude 3.5 Sonnetが提供されています。
こちらはClaude 3 Opusに匹敵し、かつ5分の1の価格で利用できるため、コストを抑えつつ性能を求める場面では有力な選択肢になります。
BedrockにおけるClaude 3.5 Sonnetについては、以下の記事も合わせてご確認ください。
加えてClaude 3.5 Haikuも提供されており、こちらはClaude 3.5 Sonnetよりもさらにコストを抑えたモデルとなっています。
BedrockにおけるClaude 3.5 Haikuについては、以下の記事も合わせてご確認ください。
Command
Commandシリーズは、Cohere社が提供するテキスト生成モデルです。
特にCommand R及びCommand R+は、日本語対応が明記されている高性能モデルとして注目を集めています。
BedrockにおけるCommand Rについては、以下の記事も合わせてご確認ください。
Jamba
Jambaシリーズは、AI21 Labs社が提供するテキスト生成モデルです。
特にJamba 1.5モデルは、最大256kトークンのコンテキスト長を持ち、長文ドキュメントの要約や分析に適しているとされています。
BedrockにおけるJamba 1.5については、以下の公式ブログも合わせてご確認ください。
Mistral
Mistralシリーズは、Misral AI社が提供するテキスト生成モデルです。
特にMistral Large 2は、日本語対応が明記されている高性能モデルとして注目を集めています。
BedrockにおけるMistral Large 2については、以下の公式ブログも合わせてご確認ください。
Llama
Llamaシリーズは、Meta社が提供するテキスト生成モデルです。
特にLlama 3.3 Instruct (70B)は、軽量かつコストも比較的安いモデルとして注目を集めています。
BedrockにおけるLlama 3.3 Instruct (70B)については、以下の記事も合わせてご確認ください。
Titan Text
Titan Textシリーズは、Amazon社が提供するテキスト生成モデルです。
特にExpressは、2024/4現在はプレビュー版ですが100以上の言語での多言語も提供されており、今後日本語でも利用できるようになる事が期待されています。
BedrockにおけるTitan Textについては、以下の記事も合わせてご確認ください。
Nova Pro/Lite/Micro
Novaシリーズは、Amazon社が提供するマルチモーダル対応の基盤モデルです。
その内Pro/Lite/Microは、テキスト生成モデルとして利用可能です。
全てのモデルで日本語対応が明記されているため、BedrockでAmazon純正のテキスト生成モデルを利用したい場合はこちらを検討すると良いでしょう。
Nova Microは、2024年時点では最もコストも安いモデルとなっており、コストを抑えたい場面では有力な選択肢になります。
一方でNova Lite及びProはモダリティとして、Textの他にVisionが搭載されており、画像を入力し認識した上で回答を生成できます。
さらにNova Lite及びProは、最大300kトークンのコンテキスト長を持つため、長文ドキュメントにも柔軟に対応できるモデルとなっています。
BedrockにおけるNova Micro/Lite/Proについては、以下の記事も合わせてご確認ください。
Rerank
厳密にはシリーズではないのですが、Rerankモデルについてもここで紹介します。
2024年時点でAmazon社が提供するRerank 1.0、またはCohere社が提供するRerank 3.5を使用すると、セマンティック検索における情報選択の優先順位を、ユーザーの意図や文脈に最も適した順番で並び替える事ができます。
このモデルを活用する事で、RAGの精度向上や応答コストの削減が期待できます。
BedrockにおけるRerankモデルについては、以下の記事も合わせてご確認ください。
埋め込みモデル
埋め込みモデルを利用する事で、入力されたテキストや画像を数値ベクトルに変換する事ができ、その数値ベクトルを用いてテキスト間の類似性を評価したり、関連性の高い情報を検索する事が可能になります。
Amazon Bedrockで利用可能な埋め込みモデルは、以下の表の通りです。
なお価格については、バージニアリージョンまたはオレゴンリージョンでのオンデマンド料金モデルを参照します。
基盤モデル | プロバイダー | モダリティ | 最大トークン | 言語 | 入力トークン 1,000 個あたりの価格 | 入力画像1枚あたりの価格 |
---|---|---|---|---|---|---|
Embed English | Cohere | Embedding | 5k | 英語 | 0.00010 USD | 該当なし |
Embed Multilingual | Cohere | Embedding | 5k | 108 の言語 | 0.00010 USD | 該当なし |
Titan Embeddings | Amazon | Embedding | 8k | ※7 | 0.00010 USD | 該当なし |
Titan Text Embeddings V2 | Amazon | Embedding | 8k | 英語 | 0.00002 USD | 該当なし |
Titan Multimodal Embeddings G1 | Amazon | Embedding | 128k | 英語 | 0.00080 USD | 0.00006 USD |
※7英語、アラビア語、中国語 (簡体字)、フランス語、ドイツ語、ヒンディー語、日本語、スペイン語、チェコ語、フィリピン語、ヘブライ語、イタリア語、韓国語、ポルトガル語、ロシア語、スウェーデン語、トルコ語、中国語 (繁体字)、オランダ語、カンナダ語、マラヤーラム語、マラーティー語、ポーランド語、タミル語、テルグ語など。
埋め込みモデルでは、Cohere社とAmazon社が提供するモデルを利用できます。
以下では各々の埋め込みモデルについて、シリーズ別で簡単に紹介します。
Embed
Embedシリーズは、Cohere社が提供する埋め込みモデルです。
埋め込みに関して優れた性能を持つと言われており、Bedrockで埋め込みベクトルを生成するのであればまずこちらから検討すると良いかもしれません。
特にEmbed Multilingualは日本語に対応しているため、日本語のテキストを埋め込みベクトルに変換できます。
Titan Embeddings
Titan Embeddingsシリーズは、Amazon社が提供する埋め込みモデルです。
Titan Embeddingsは日本語に対応しており、かつV2であれば価格が安いという特徴を持つため、埋め込みモデルをより安価に使用したい場面では有力な選択肢になります。
BedrockのTitan Embedding V2については、以下の記事も合わせてご確認ください。
またTitan Multimodal Embeddingsは、テキストと画像の組み合わせで埋め込みベクトルを生成する事ができます。
画像生成モデル
画像生成モデルを利用する事で、入力されたテキストを元に、画像を生成する事ができます。
Amazon Bedrockで利用可能な画像生成モデルは、以下の表の通りです。
なお価格については、バージニアリージョンまたはオレゴンリージョンでのオンデマンド料金モデルを参照します。
基盤モデル | プロバイダー | モダリティ | 最大トークン | 言語 | 画像解像度 | 画像1枚あたりの価格 | 標準画質画像1枚あたりの価格 | 高品質画像1枚あたりの価格 |
---|---|---|---|---|---|---|---|---|
Stable Diffusion 3.5 Large | Stability AI | Image | 77 | 英語 | - | 0.080USD | - | - |
Stable Image Core | Stability AI | Image | 77 | 英語 | - | 0.040 USD | - | - |
Stable Diffusion 3 Large | Stability AI | Image | 77 | 英語 | - | 0.080USD | - | - |
Stable Image Ultra | Stability AI | Image | 77 | 英語 | - | 0.140 USD | - | - |
Titan Image Generator | Amazon | Image | 512 | 英語 | 512 x 512 | - | 0.008 USD | 0.010 USD |
Titan Image Generator | Amazon | Image | 512 | 英語 | 1024 x 1024 | - | 0.010 USD | 0.012 USD |
Nova Canvas | Amazon | Image | 1024 | 英語 | 1024 x 1024 | - | 0.040 USD | 0.060 USD |
Nova Canvas | Amazon | Image | 1024 | 英語 | 2048 x 2048 | - | 0.060 USD | 0.080 USD |
画像生成モデルでは、Stability AI社とAmazon社が提供するモデルを利用できます。
以下では各々の画像生成モデルについて、シリーズ別で簡単に紹介します。
Stable Diffusion
Stable Diffusionシリーズは、Stability AI社が提供する画像生成モデルです。
Stable Image Coreは低価格&高速モデル、Stable Diffusion Large 3は価格と速度共にバランスの取れたモデル、Stable Image Ultraは高品質モデルという位置づけで、用途に応じて選択できるようになっています。
用途に応じて画像を生成する事ができるため、Bedrockで画像生成するのであればまずこちらから検討すると良いかもしれません。
BedrockにおけるStable Diffusion 3については、以下の公式ドキュメントも合わせてご確認ください。
さらに2024年時点の最新モデルとして、Stable Diffusion 3.5 Largeが提供されています。
BedrockにおけるStable Diffusion 3.5 Largeについては、以下の記事も合わせてご確認ください。
Titan Image Generator
Titan Image Generatorシリーズは、Amazon社が提供する画像生成モデルです。
非常に低価格な画像生成モデルとして利用できるため、コストを抑えたい場面では有力な選択肢になります。
BedrockにおけるTitan Image Generatorについては、以下の記事も合わせてご確認ください。
Nova Canvas
Novaシリーズは、Amazon社が提供するマルチモーダル対応の基盤モデルです。
その内Canvasは、画像生成モデルとして利用可能です。
画像生成だけではなく、生成された画像を細かくチューニング可能という特徴を持っています。
BedrockにおけるNova Canvasについては、以下の記事も合わせてご確認ください。
動画生成モデル
動画生成モデルを利用する事で、入力されたテキストを元に、動画を生成する事ができます。
Amazon Bedrockで利用可能な動画生成モデルは、以下の表の通りです。
なお価格については、バージニアリージョンまたはオレゴンリージョンでのオンデマンド料金モデルを参照します。
基盤モデル | プロバイダー | モダリティ | 最大トークン | 言語 | 動画解像度 | 動画生成1秒あたりの価格 |
---|---|---|---|---|---|---|
Nova Reel | Amazon | Video | 512 | 英語 | 720p, 24 fps | 0.08 USD |
Nova Reel
Novaシリーズは、Amazon社が提供するマルチモーダル対応の基盤モデルです。
その内Reelは、動画生成モデルとして利用可能です。
Reelを使用する事で高品質な動画を生成する事ができるため、Bedrockで動画生成したい場合はあればこちらを検討すると良さそうです。
BedrockにおけるNova Reelについては、以下の記事も合わせてご確認ください。
セーフガード機能
Amazon Bedrockの基盤モデルをより安全に活用するためのセーフガード機能について紹介します。
ガードレール
ガードレールは、責任あるAIポリシーに基づいて、ユースケース毎にカスタマイズされた保護手段を実装できる機能です。
特定のコンテンツ、トピック、単語、機密情報をフィルタリングする事で、安全に生成AIを使用する事ができます。
Bedrockのガードレールについては、以下の記事も併せてご確認ください。
ウォーターマーク検出
ウォーターマークとは、著作権表示のため画像に写し込まれる小さな図案や文字を指します。
ウォーターマーク検出を用いる事で、画像に写し込まれたウォーターマークを検出し、コンテンツが不正に変更されていないかを確認する事ができます。
Bedrockのウォーターマーク検出については、以下の記事も併せてご確認ください。
オーケストレーション機能
Amazon Bedrockの基盤モデルをより便利に活用するためのオーケストレーション機能について紹介します。
ナレッジベース
ナレッジベースは、Bedrockの基盤モデルと関連サービスを活用し、AWSマネージドなRAG(Retrieval-Augmented Generation)を構築できる機能です。
データソースに存在するドキュメントについて、埋め込みモデルを用いてエンベディングを生成した後、ベクトルデータベースに保存し、そのデータを元にテキスト生成モデルが回答します。
Bedrockのナレッジベースについては、以下の記事も合わせてご確認ください。
エージェント
エージェントは、Bedrockの基盤モデルと関連サービスを活用し、AWSマネージドなAIエージェントを構築できる機能です。
アクショングループで定義されたアクションを自動的に呼び出して実行すると共に、ナレッジベースを呼び出してこれらのアクションの情報を補足し、テキスト生成モデルが回答を生成します。
Bedrockのエージェントについては、以下の記事も合わせてご確認ください。
プロンプトマネジメント
プロンプトマネジメントは、独自のプロンプトをテンプレート化できる、AWSマネージドなプロンプト管理機能です。
プロンプトの作成、テスト、バージョン管理に対応しており、特定のプロンプトの再利用を効率化できます。
Bedrockのプロンプトマネジメントについては、以下の記事も合わせてご確認ください。
フロー
フローは、Bedrockの基盤モデルと関連サービスを活用し、AWSマネージドなAIワークフローを構築できる機能です。
単純な「質問への回答」「文章の生成」から、「条件分岐」や「繰り返し」を含むものまで、様々なロジックを用いたワークフローをGUI上で構成できます。
Bedrockのフローについては、以下の記事も合わせてご確認ください。
推論・評価機能
Amazon Bedrockの基盤モデルを推論・評価するための機能について紹介します。
バッチ推論
バッチ推論は、複数のリクエストを非同期的に実行し、大量のリクエストを効率的に処理するための機能です。
S3に保存されているモデル入力用ファイルに対して実行する事で、S3から出力ファイルを取得する事ができます。
オンデマンド推論料金と比較して、50%低い料金で使用できるため、大規模なデータセットでのモデル推論のパフォーマンスを向上させる事が可能です。
Bedrockのバッチ推論については、以下の公式ブログも合わせてご確認ください。
クロスリージョン推論
クロスリージョン推論は、推論プロファイルで定義されたリージョンをまたいでモデル呼び出しリクエストを動的にルーティングできる機能です。
この機能を使用する事で複数のAWSリージョンにトラフィックを分散することができ、スロットリング対策やより高いスループットでの利用が可能になります。
Bedrockのクロスリージョン推論については、以下の記事も合わせてご確認ください。
モデル評価
モデル評価は、基盤モデル自体の性能を評価するための機能です。
評価基準のタスクタイプと評価対象のメトリクス、モデル評価ジョブを作成する事で、各メトリクスのサマリーをレポートとして確認できます。
こちらはデータセットとして、最初から用意されている組み込みデータセットか、またはユーザーが独自に用意するカスタムデータセットを使用する事ができます。
Bedrockのモデル評価については、以下の公式ブログも合わせてご確認ください。
ナレッジベース評価
ナレッジベース評価は、ナレッジベースで構築されたRAGの性能を評価するための機能です。
評価対象のメトリクスを選択し、対応する評価データセットを準備し、モデル評価ジョブを作成する事で、各メトリクスのサマリーをレポートとして確認できます。
こちらはデータセットとして、ユーザーが独自に用意するカスタムデータセットが必要です。
Bedrockのナレッジベース評価については、以下の記事も合わせてご確認ください。
プライバシー・セキュリティ関連情報
Amazon Bedrockのプライバシーやセキュリティに関する設定/情報について紹介します。
ログ記録
以下のマネジメントコンソールにおけるBedrockの設定から、モデル呼び出しのログ記録を有効にする事ができます。
ログ記録を有効にする事で、Bedrockの基盤モデル呼び出しに関するログをCloudWatch LogsまたはS3に送信できます。
特にCloudWatch Logsに出力する事で、各種CloudWatch機能と組み合わせてモデル呼び出しを監視する事も可能になります。
Bedrockのモデル呼び出しのログ記録については、以下の記事も合わせてご確認ください。
またBedrockはCloudTrailと統合されているため、BedrockにおけるAPI呼び出しはCloudTrailによって記録されます。
閉域網アクセス
PrivateLinkを併せて利用する事で、Bedrockの基盤モデルを閉域網からのみ呼び出すように設定する事もできます。
Bedrockへのアクセスを閉域網のみに制限する事で、プライベートな生成AIアプリの構築が可能になります。
Bedrockの閉域網アクセスについては、以下の記事も合わせてご確認ください。
利用規約
生成AIサービスを利用する際にプライバシーを保障されるかどうかを確かめるには、利用規約の確認が重要です。
Bedrockの利用規約には、「入力されたプロンプト情報はモデルの学習に利用しない」「不正な利用については自動検出する仕組みが備わっている」等の記載があり、プライバシー保護にも配慮されています。
Bedrockの利用規約については、以下の記事も合わせてご確認ください。
最後に
以上、『AWS入門ブログリレー 2024』の28日目のエントリ『Amazon Bedrock』編でした。
次回、4/22は弊社たかくにによる『Knowledge bases for Amazon Bedrock』編の予定です!