Generative AI CDK constructs って何者だ!?

はじめに

re:InventのKeynoteの中で「Building with Generative AI」の話題が出てきました。
その中でQRコードと共に「Generative AI CDK constructs」のスライドがドーンと流れましたが
一瞬の発表内容にその場では理解が追いつけず…CDK好きとしては一体何者だったのかを詳しく調べていきたいと思います。

その一瞬のスライドがこちらです。(YouTubeより抜粋)

AWS re:Invent 2023 – Keynote with Dr. Werner Vogels の大体 1:44:45 頃辺りの映像になります。

目次

QRコードを探る

早速QRコードの正体ですが、GitHubのリンクでした。
生成系AIに関するCDKコンストラクトのリポジトリのようです。
https://github.com/awslabs/generative-ai-cdk-constructs

READMEの概要を翻訳するとこんな感じ。

AWS Generative AI Constructs Library は、AWS Cloud Development Kit (AWS CDK)のオープンソース拡張機能であり、コード内でソリューションを迅速に定義して、コンストラクトと呼ばれる、予測可能で反復可能なインフラストラクチャを作成するための、マルチサービスで適切に設計されたパターンを提供します。AWS Generative AI CDK Constructs の目標は、開発者がアーキテクチャのパターンベースの定義を使用して生成 AI ソリューションを構築できるようにすることです。

AWS Generative AI CDK コンストラクトで定義されたパターンは、適切に設計されたベストプラクティスに基づいたデフォルト設定を持つ AWS CDK コンストラクトの高レベルのマルチサービス抽象化です。ライブラリは、オブジェクト指向技術を使用して論理モジュールに編成され、各アーキテクチャ パターン モデルを作成します。

つまり…
AWSでの生成系AI構築パターン by CDK
といったところでしょうか。

CDKによる構築パターンとなるので、L3コンストラクトになるかと思います。
少しL3について補足しますと、CDKでは3つのレベルのコンストラクト ライブラリが提供されており、L3は構成パターンを抽象化したコンストラクトを指します。
Black Belt より抜粋した画像の通り、一番抽象度の高いコンストラクトとなります。

生成系AI構築パターン

では、具体的にどのような生成系AI構築パターンが用意されているのか、引き続きREADMEを読んでみましょう。
カタログによると、パイプラインやQA、要約のようなお馴染みのパターンのようです。

各コンストラクトのリンクを辿るとアーキテクチャの説明や概要図が記載されていました。
なんてとても親切なドキュメントなんでしょう。
例えばこのようなアーキテクト図になってます。

例1)RAGのためのデータ取り込みパイプライン

例2)LangChainのLambdaLayer

Construct Hub に登録されているため、実際に使って試すことが出来ます。
早速VS Codeでサンプルコードを書いてみました。もちろん言語はTypeScriptです。
このように最低限の必須項目しか設定していませんが、たった20行ほどで完結してしまいます。
恐るべし…L3 コンストラクトさん

さぁ、実際にCDKにて構築をしてみよう!と思ったのですが
GitHubのCostによるとお値段が高めでしたので、一旦調査はここまでとさせてもらいます。
どのような生成系AIの構築パターンが用意されているのかを知れただけでも大きな収穫です。

感想

公開された生成系AIの構築パターンに当てはまるケースがあればパッと試せるためPoCには向いているかと思います。
ですが まだEXPERIMENTALであり、将来変更や削除される可能性もあると記載されていましたので、本番構築を行う際にはL2コンストラクト(一部はL1)にて構築することをオススメします。

またCost欄には全体のアーキテクトの金額感が掲載されていないため、構築パターンによってはOpenSearchなどのAWS使用料金も発生するためご注意ください。

最後に余談ですが、VS Codeを触ってるとAmazon Qなどが登場しており、パワーアップしたIDEになってきました。
コーディング体験も更なる進化をしておりとても楽しくなってきていますね。
引き続き、CodeWhisperer先生にも助けてもらいながら、CDK実装に励んでいきたいと思います。

投稿者プロフィール

tsuji
2021/2にスカイアーチネットワークスにJoin。
(前職ではAIのシステム開発やPoCなどを主に担当)

現在の業務では主にクラウドネイティブなWebアプリケーション/APIのインフラ構築から開発まで幅広く担当。

AWS認定12冠。
コンテナ/CDKマスターになるため日々勉強中。

趣味は読書と競馬鑑賞。

ABOUTこの記事をかいた人

2021/2にスカイアーチネットワークスにJoin。 (前職ではAIのシステム開発やPoCなどを主に担当) 現在の業務では主にクラウドネイティブなWebアプリケーション/APIのインフラ構築から開発まで幅広く担当。 AWS認定12冠。 コンテナ/CDKマスターになるため日々勉強中。 趣味は読書と競馬鑑賞。