🙆

Aurora MySQL Bedrock 統合について試してみた。

2024/03/10に公開

アップデート概要

Amazon Aurora MLからClaude2などの foundation models に直接叩ける機能が3/8にアナウンスされました。
https://aws.amazon.com/about-aws/whats-new/2024/03/aurora-mysql-integration-amazon-bedrock-generative-ai/

CDKでAurora Serveless v2を作成

Bedrock統合する機能を使うには、Aurora Engine 3.06が必要。
3/10現在、VER_3_06_0がないので一カ所aws-cdk-libをいじってAurora Serverless v2を作成しました。

aws-cdk-libのビルドは、CONTRIBUTINGを参照。
https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md

RDS Managed Role

RDS ClusterからBedrock Modelにアクセスするために、RDS ClusterにManaged Roleをアタッチします。
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/mysql-ml.html#aurora-ml-setup-bedrock

クラスタパラメータグループの変更

aws_default_bedrock_role に、Bedrockアクセス用に作成したIAM Role ARNを記載

UDF Function

(Claude 2.1 Modelの例)

CREATE FUNCTION invoke_claude2 (request_body TEXT)
    RETURNS TEXT
    ALIAS AWS_BEDROCK_INVOKE_MODEL
    MODEL ID 'anthropic.claude-v2:1'
    CONTENT_TYPE 'application/json'
    ACCEPT 'application/json';

Grant

権限付与

GRANT AWS_BEDROCK_ACCESS TO clusteradmin@`%`;
GRANT EXECUTE ON FUNCTION bedrockdemo.invoke_claude2 TO clusteradmin@`%`;

Prompt (Table )

Anthropic Claude Messages APIでプロンプト部分を記載する必要がありそうです。

CREATE TABLE prompts (request varchar(1024));
INSERT INTO prompts VALUES (
'{
    "anthropic_version": "bedrock-2023-05-31", 
    "max_tokens": 1024,
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "日本国の首相は ?"
                }
            ]
        }
    ]
} ');

下記SQLを叩くと、

SELECT invoke_claude2(request) FROM prompts;

下記のようにClaudeからレスポンスがきます。

まとめ

マルチモーダルモデルであるClaude 3 Sonnet にも対応しているので、Aurora内のデータ(画像など)を直接Bedrockと連携できて便利と思われる
OpenSearch ConnectorからもBedrockと直接アクセスできますが、Auroraからも同様アクセスできるようになります。

https://github.com/aws/aws-cdk/pull/29422

Discussion