3
4

Bedrockでカスタムモデルのクロスアカウント共有とリージョンコピーが可能になりました!

Last updated at Posted at 2024-08-01

はじめに

これまでBedrockのデフォルトでは、カスタムモデルの使用は作成されたリージョンとアカウントでのみ利用可能でした。今回追加された機能では他のリージョンへのコピーや別AWSアカウントへの共有ができるようになりました!

スクリーンショット 2024-08-02 9.50.57.png

カスタムモデルのリージョンコピー

カスタムモデルコピーのサポートリージョンとベースモデル

※Claude 3 Haikuはまだプレビュー中なのでClaude 3 Haikuを微調整したい場合は、事前にサポートへ問い合わせをしましょう。

モデル 米国東部 (バージニア北部) 米国西部 (オレゴン) アジア太平洋 (ムンバイ) アジア太平洋 (シドニー) ヨーロッパ (アイルランド) ヨーロッパ (フランクフルト) ヨーロッパ (ロンドン) ヨーロッパ (パリ) カナダ (中央) 南米 (サンパウロ)
Amazon Titan Text G1 - Lite はい はい はい はい ゲート付き はい はい はい はい はい
Amazon Titan Text G1 - Express はい はい はい はい ゲート付き いいえ はい はい はい はい
Amazon Titan Multimodal Embeddings G1 はい はい はい はい ゲート付き はい はい はい はい はい
Amazon Titan Image Generator G1 はい はい はい いいえ ゲート付き いいえ はい いいえ いいえ いいえ
Anthropic Claude Instant はい はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ
Anthropic Claude 3 Haiku はい はい はい はい ゲート付き いいえ いいえ はい いいえ いいえ
Cohere Command はい はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ
Cohere Command Light はい はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ
Meta Llama 2 13B はい はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ
Meta Llama 2 70B はい はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ

カスタムモデルコピーに必要な権限

モデルのコピーを実施するためには以下のIAM権限をIAMロールに付与する必要があります。

{ 
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CopyModels",
            "Effect": "Allow",
            "Action": [
                "bedrock:CreateModelCopyJob",
                "bedrock:GetModelCopyJob",
                "bedrock:ListModelCopyJobs"
            ],
            "Resource": [
                "${model-arn}"
            ],
            "Condition": {
               "StringEquals": {
                   "aws:RequestedRegion": [
                        "${region}"
                   ]
               }
            }
        }
    ]
}

コピーしてみた

まずはじめにコピー元となるカスタムモデルを以下を参照に用意します。

トレーニングジョブが完了してモデル一覧にカスタムモデルが表示されたら、該当のモデルを選択して「︙」->「Copy」をクリックします。

スクリーンショット_2024-08-02_8_11_35.png

コピージョブ作成画面に遷移したら「Model name」にモデル名を入力して、「Destination region」にコピー先リージョンを選択したら「Copy Model」をクリックします。

スクリーンショット_2024-08-02_8_12_05.png

コピー先リージョンにてBedrockのカスタムモデル->トレーニングジョブ画面に移動するとコピージョブが実行されていることが確認できます。

スクリーンショット_2024-08-02_8_21_22.png

私が試した際には数分程度でコピージョブが完了しました。

スクリーンショット_2024-08-02_8_22_54.png

モデル一覧のタブを開くと、コピーしたカスタムモデルが表示されるようになります。

スクリーンショット_2024-08-02_8_24_14.png

無事コピーされたことが確認できました!

カスタムモデルのクロスアカウント共有

モデル共有のサポートリージョンとベースモデル

はい、モデル名をそのままにしたマークダウン形式の表を作成しました。

モデル 米国東部(バージニア州北部) 米国西部(オレゴン) アジア太平洋(ムンバイ) アジア太平洋(シドニー) ヨーロッパ(アイルランド) ヨーロッパ(パリ)
Amazon Titan Text G1 - Lite はい はい はい はい ゲート付き はい
Amazon Titan Text G1 - Express はい はい はい はい ゲート付き はい
Amazon Titan Multimodal Embeddings G1 はい はい はい はい ゲート付き はい
Amazon Titan Image Generator G1 はい はい はい いいえ ゲート付き いいえ
Anthropic Claude Instant はい はい いいえ いいえ いいえ いいえ
Anthropic Claude 3 Haiku はい はい はい はい ゲート付き はい
Cohere Command はい はい いいえ いいえ いいえ いいえ
Cohere Command Light はい はい いいえ いいえ いいえ いいえ
Meta Llama 2 13B はい はい いいえ いいえ いいえ いいえ
Meta Llama 2 70B はい はい いいえ いいえ いいえ いいえ

カスタムモデルの共有に必要な権限

別AWSアカウントへモデルを共有するには、AWS Resource Access ManagerとBedrockの関連権限が必要になります。

{ 
    "Version": "2012-10-17",
    "Statement": [
        {
           "Sid": "ShareResources",
           "Effect": "Allow",
           "Action": [
               "ram:CreateResourceShare",
               "ram:UpdateResourceShare",
               "ram:DeleteResourceShare",
               "ram:AssociateResourceShare",
               "ram:DisassociateResourceShare",
               "ram:GetResourceShares"
           ],
           "Resource": [
               "${model-arn}"
           ]
        },
        {
            "Sid": "ShareCustomModels",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetCustomModel",
                "bedrock:ListCustomModels",
                "bedrock:PutResourcePolicy",
                "bedrock:DescribeResourcePolicy",
                "bedrock:DeleteResourcePolicy"
            ],
            "Resource": [
                "${model-arn}"
            ]
        }
    ]
}

クロスアカウント共有してみた

作成された該当のモデルを選択して「︙」->「Share」をクリックします。
スクリーンショット_2024-08-02_8_27_55.png

モデル共有画面にて「Resource share name」にリソース共有名と「Recipient account ID」に共有先AWSアカウントIDを入力して、「Share model」をクリックします。

スクリーンショット_2024-08-02_8_28_31.png

Resource Access Managerにアクセスするとリソースの共有状況がわかります。

スクリーンショット_2024-08-02_8_31_31.png

共有先AWSアカウントにログインして、共有をい実行したリージョンからResource Access Managerにアクセスすると「自分と共有」の「リソースの共有」画面にて、共有元で指定したリソースが確認できますので、これをクリックします。

スクリーンショット_2024-08-02_8_45_18.png

所有者、レシーバーにはそれぞれのAWSアカウントが表示されているので、自身が共有したものであることを確認した後、「リソース共有を承認」をクリックします。

スクリーンショット_2024-08-02_8_45_26.png

最後にリソースの共有を承認画面にて「承認」をクリックします。

スクリーンショット_2024-08-02_8_45_32.png

以上で、アカウント間のカスタムモデル共有が完了しました。

Bedrockのカスタムモデル画面に移動すると「Models shared with you」セクションにて共有されたカスタムモデルが表示されていることが確認できました。

スクリーンショット_2024-08-02_8_51_59.png

共有の解除

Resource Access Managerにて該当の共有リソースを選択して「共有プリンシパル」で共有先AWSアカウントIDであるプリンシパルIDを選択した後に「関連付け解除」をクリック

スクリーンショット_2024-08-02_8_59_59.png

少しするとステータスが「関連付けが解除されました」となります。

スクリーンショット_2024-08-02_9_03_19.png

共有先アカウントにログインすると、Resource Access Manager及びBedrockのカスタムモデル画面から先程の共有モデルが消えていることが確認できます。

スクリーンショット 2024-08-02 9.05.27.png

スクリーンショット 2024-08-02 9.05.40.png

さいごに

クロスアカウント共有とリージョンコピー機能の追加によって、作成したカスタムモデルの可搬性がグッとあがりました。これにより開発環境でカスタムモデルを作成して、同様のモデルをSTG環境、本番環境アカウントへ共有、或いはアプリケーションが実行されているそれぞれのリージョンへコピーといったことが容易になったのではないでしょうか。

一方で作成したカスタムモデルを用いて推論を行うには、高額なプロビジョンドスループットの購入が前提にあるので、注意が必要です!

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4