はじめに
この記事ではAmazon bedrockをAWS CLIで検証します。
主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)誤りなどがあれば書き直していく予定です。
AWS CLIでAmazon bedrockの基盤モデルを取得するには
AWS CLIを使ってAmazon bedrockの基盤モデルを取得するにはどうすれば良いのでしょうか。
結論を言うと下記のとおり、ドキュメントがありますので書いてある内容を辿っていくとだいたいのことはわかります。
bedrock — AWS CLI 1.33.10 Command Reference
ですが、どう調査すれば良いのかわかりませんよね?当然のことながら私もわかりません。一緒に見ていきましょう。
おさらい:AWS CLIの基本
AWS CLIは実行する端末もしくはシェルによって認証方法が異なります。
EC2などIAMのプロファイルを参照できる環境であれば、プロファイルで認証するため、認証済みのプロファイルで暗黙的に認証されます。
プロファイルを持たない場合は--profileというオプションをつけて、認証に使うプロファイルを指定する必要があります。
具体的には以下のとおりです。プロファイルを指定しないで実行する。
aws ecr describe-repositories --output json
プロファイルを指定して実行する。
aws ecr describe-repositories --profile cicd_handson --output json
もう1つ、おさえておくべき内容として
awsに続く、サブコマンドはサービス名でその次に来るのは操作の名前になっていることが大半です。
たとえば、S3バケット名のリストを表示するコマンドは以下のようにaws サービス名 操作となっています。
aws s3 ls
上記を踏まえてAmazon bedrockに登録されている基盤モデルの情報を取得してみましょう。
ハンズオン
今回はAdministrator Accessの権限でAWS CloudShellを起動します。
AWS CloudShellを起動する
今回はTokyoリージョンでAWS CloudShellを起動します。コンソールマークをクリックします。
基盤モデル名の情報を取得する
Amazon TitanとClaudeのモデル情報を取得します。
まずはAmazon Titanを取得するために以下のコマンドを実行します。
aws bedrock get-foundation-model --model-identifier amazon.titan-embed-text-v1
実行結果
{
"modelDetails": {
"modelArn": "arn:aws:bedrock:ap-northeast-1::foundation-model/amazon.titan-embed-text-v1",
"modelId": "amazon.titan-embed-text-v1",
"modelName": "Titan Embeddings G1 - Text",
"providerName": "Amazon",
"inputModalities": [
"TEXT"
],
"outputModalities": [
"EMBEDDING"
],
"responseStreamingSupported": false,
"customizationsSupported": [],
"inferenceTypesSupported": [
"ON_DEMAND"
],
"modelLifecycle": {
"status": "ACTIVE"
}
}
}
次にClaudeを取得するために以下のコマンドを実行します。※2.1を取得
aws bedrock get-foundation-model --model-identifier anthropic.claude-v2:1
実行結果
{
"modelDetails": {
"modelArn": "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-v2:1",
"modelId": "anthropic.claude-v2:1",
"modelName": "Claude",
"providerName": "Anthropic",
"inputModalities": [
"TEXT"
],
"outputModalities": [
"TEXT"
],
"responseStreamingSupported": true,
"customizationsSupported": [],
"inferenceTypesSupported": [
"ON_DEMAND"
],
"modelLifecycle": {
"status": "ACTIVE"
}
}
}
「モデルIDだけ取得したいなぁ」と思ったときは以下のように--queryオプションを指定することで絞り込めます。なお、最後に--output text指定しておくことでダブルクウォーテーションなしで出力できます。
aws bedrock get-foundation-model --model-identifier anthropic.claude-v2:1 --query 'modelDetails.modelArn' --output text
生成AIの基盤モデルごとに見ていく
なんとなく基盤モデルの情報を取得できたと思うので「どんな基盤モデルがあってどういう情報を持っているのか」順番に見ていきましょう。
Amazon Titan
| プロバイダ | モデル名 | モデル識別子(--model-identifier) |
|---|---|---|
| Amazon | Titan Text G1 - Express | amazon.titan-text-express-v1:0:8k |
| Amazon | Titan Text G1 - Express | amazon.titan-text-express-v1 |
| Amazon | Titan Embeddings G1 - Text | amazon.titan-embed-text-v1:2:8k |
| Amazon | Titan Embeddings G1 - Text | amazon.titan-embed-text-v1 |
| Amazon | Titan Text Large | amazon.titan-tg1-large |
| Amazon | Titan Image Generator G1 | amazon.titan-image-generator-v1:0 |
| Amazon | Titan Image Generator G1 | amazon.titan-image-generator-v1 |
| Amazon | Titan Text Embeddings v2 | amazon.titan-embed-g1-text-02 |
| Amazon | Titan Text G1 - Lite | amazon.titan-text-lite-v1:0:4k |
| Amazon | Titan Text G1 - Lite | amazon.titan-text-lite-v1 |
| Amazon | Titan Text G1 - Express | amazon.titan-text-express-v1:0:8k |
| Amazon | Titan Text G1 - Express | amazon.titan-text-express-v1 |
| Amazon | Titan Embeddings G1 - Text | amazon.titan-embed-text-v1:2:8k |
| Amazon | Titan Embeddings G1 - Text | amazon.titan-embed-text-v1 |
| Amazon | Titan Multimodal Embeddings G1 | amazon.titan-embed-image-v1:0 |
| Amazon | Titan Multimodal Embeddings G1 | amazon.titan-embed-image-v1 |
モデル情報を調べる場合は以下のコマンドを実行します。(amazon.titan-text-express-v1:0:8k)を取得する場合)
aws bedrock get-foundation-model --model-identifier amazon.titan-text-express-v1:0:8k --query 'modelDetails.modelArn' --output text
Anthropic Claude
| プロバイダ | モデル名 | モデル識別子(--model-identifier) |
|---|---|---|
| Anthropic | Claude Instant | anthropic.claude-instant-v1:2:18k |
| Anthropic | Claude Instant | anthropic.claude-instant-v1 |
| Anthropic | Claude | anthropic.claude-v2:1:18k |
| Anthropic | Claude | anthropic.claude-v2:1:200k |
| Anthropic | Claude | anthropic.claude-v2:1 |
| Anthropic | Claude Instant | anthropic.claude-instant-v1:2:100k |
| Anthropic | Claude Instant | anthropic.claude-instant-v1 |
| Anthropic | Claude | anthropic.claude-v2:0:18k |
| Anthropic | Claude | anthropic.claude-v2:0:100k |
| Anthropic | Claude | anthropic.claude-v2:1:18k |
| Anthropic | Claude | anthropic.claude-v2:1:200k |
| Anthropic | Claude | anthropic.claude-v2:1 |
| Anthropic | Claude | anthropic.claude-v2 |
| Anthropic | Claude 3 Sonnet | anthropic.claude-3-sonnet-20240229-v1:0 |
モデル情報を調べる場合は以下のコマンドを実行します。(anthropic.claude-instant-v1:2:18k)を取得する場合)
aws bedrock get-foundation-model --model-identifier anthropic.claude-instant-v1:2:18k --query 'modelDetails.modelArn' --output text
Stability AI SDXL
| プロバイダ | モデル名 | モデル識別子(--model-identifier) |
|---|---|---|
| Stability AI | SDXL 0.8 | stability.stable-diffusion-xl |
| Stability AI | SDXL 0.8 | stability.stable-diffusion-xl-v0 |
| Stability AI | SDXL 1.0 | stability.stable-diffusion-xl-v1:0 |
| Stability AI | SDXL 1.0 | stability.stable-diffusion-xl-v1 |
モデル情報を調べる場合は以下のコマンドを実行します。(stability.stable-diffusion-xl)を取得する場合)
aws bedrock get-foundation-model --model-identifier stability.stable-diffusion-xl --query 'modelDetails.modelArn' --output text
※Tokyoリージョンではまだ提供されていないため、エラーが返ってきます。
AI21 Labs
| プロバイダ | モデル名 | モデル識別子(--model-identifier) |
|---|---|---|
| AI21 Labs | J2 Grande Instruct | ai21.j2-grande-instruct |
| AI21 Labs | J2 Jumbo Instruct | ai21.j2-jumbo-instruct |
| AI21 Labs | Jurassic-2 Mid | ai21.j2-mid |
| AI21 Labs | Jurassic-2 Mid | ai21.j2-mid-v1 |
| AI21 Labs | Jurassic-2 Ultra | ai21.j2-ultra |
| AI21 Labs | Jurassic-2 Ultra | ai21.j2-ultra-v1 |
モデル情報を調べる場合は以下のコマンドを実行します。(ai21.j2-grande-instruct)を取得する場合)
aws bedrock get-foundation-model --model-identifier ai21.j2-grande-instruct --query 'modelDetails.modelArn' --output text
※Tokyoリージョンではまだ提供されていないため、エラーが返ってきます。
Cohere
| プロバイダ | モデル名 | モデル識別子(--model-identifier) |
|---|---|---|
| Cohere | Command | cohere.command-text-v14:7:4k |
| Cohere | Command | cohere.command-text-v14 |
| Cohere | Command Light | cohere.command-light-text-v14:7:4k |
| Cohere | Command Light | cohere.command-light-text-v14 |
| Cohere | Embed English | cohere.embed-english-v3 |
| Cohere | Embed Multilingual | cohere.embed-multilingual-v3 |
モデル情報を調べる場合は以下のコマンドを実行します。(cohere.command-text-v14:7:4k)を取得する場合)
aws bedrock get-foundation-model --model-identifier cohere.command-text-v14:7:4k --query 'modelDetails.modelArn' --output text
※Tokyoリージョンではまだ提供されていないため、エラーが返ってきます。
Meta
| プロバイダ | モデル名 | モデル識別子(--model-identifier) |
|---|---|---|
| Meta | Llama 2 Chat 13B | meta.llama2-13b-chat-v1:0:4k |
| Meta | Llama 2 Chat 13B | meta.llama2-13b-chat-v1 |
| Meta | Llama 2 Chat 70B | meta.llama2-70b-chat-v1:0:4k |
| Meta | Llama 2 Chat 70B | meta.llama2-70b-chat-v1 |
| Meta | Llama 2 13B | meta.llama2-13b-v1:0:4k |
| Meta | Llama 2 13B | meta.llama2-13b-v1 |
| Meta | Llama 2 70B | meta.llama2-70b-v1:0:4k |
| Meta | Llama 2 70B | meta.llama2-70b-v1 |
モデル情報を調べる場合は以下のコマンドを実行します。(meta.llama2-13b-chat-v1:0:4k)を取得する場合)
aws bedrock get-foundation-model --model-identifier meta.llama2-13b-chat-v1:0:4k --query 'modelDetails.modelArn' --output text
※Tokyoリージョンではまだ提供されていないため、エラーが返ってきます。
まとめ
今回はAWS CLIでAmazon bedrockを実行する方法を見ていきました。基盤モデルはリージョンによって提供有無が異なるのでAPIの実行に失敗します。
ですが、提供開始されたらすぐに実行できるようになるので確認方法を覚えておくとあとで便利です。
