Skip to content

Instantly share code, notes, and snippets.

@tsukumonasu
Last active March 20, 2024 06:00
Show Gist options
  • Save tsukumonasu/6bb265c33afec10297ba81abe8821219 to your computer and use it in GitHub Desktop.
Save tsukumonasu/6bb265c33afec10297ba81abe8821219 to your computer and use it in GitHub Desktop.
20240318 AWS生成AI体験ワークショップ JAWS-UG名古屋

準備

概要

Generative AI (生成 AI) アプリケーションを作成するための2024/03/16時点の手順です。
https://github.com/aws-samples/generative-ai-use-cases-jp

注意事項

Bedrock の一部モデルは$25クーポンの対象外です(TitanImageGenerator は試していないため不明)。
画像生成を大量にしない限り$0.2程度の料金となる見込みです。

  • Claude 3 Sonnet (Amazon Bedrock Edition)
    • MP:inputTokenCount-Units AWS Marketplace software usage|us-east-1|$3 per Million Input Tokens
    • MP:outputTokenCount-Units AWS Marketplace software usage|us-east-1|$15 per Million Response Tokens
  • SDXL V1.0 (Amazon Bedrock Edition)
    • AWS Marketplace software usage|us-east-1|$0.04 per Output Images 1024 x 1024, 50 steps or less
  • Amazon Bedrock
    • USE1-TitanImageGeneratorG1-T2I-512-Standard $0.008 per image for TitanImageGeneratorG1-T2I-512-Standard in US East (N. Virginia)

利用頻度の低い環境の料金例 image

AIモデルアクセスリクエスト

  1. 以下URLにアクセスし、ログインしているユーザの権限を確認する。
    https://us-east-1.console.aws.amazon.com/iam/home?region=ap-northeast-1#/users
  2. AdministratorAccess 権限がついていることを確認する(ついていなければ管理者につけてもらう)。 image
  3. 以下URLにアクセスし、バージニア北部のBedrockコンソールを開き、Anthropic の下の「ユースケースの詳細を送信」をクリックする。
    https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess
    image
  4. 内容を埋めて「送信」をクリックする。
    • 会社名
      • JAWS-UG Nagoya
    • 会社のウェブサイトの URL
    • どの業界で事業を行っていますか?
      • 教育
    • 対象ユーザは誰ですか?
      • 社内の従業員
    • Anthropic モデルは次のいずれかの目的で使用しますか?
      • 上記のいずれでもない
    • ユースケースの説明を入力してください (PII や IP 情報は共有しないでください)。
      • Hands-on implementation of generative AI applications
      • 生成系 AI アプリケーションのハンズオン実施
  5. 「ユースケースの詳細が送信されました」と表示されるので「↪️」のボタンをクリックする。
    image
  6. Claudeが「リクエスト可能」になったら、「モデルアクセスを管理」をクリックする。
    image
  7. 以下モデルをチェックし、「モデルアクセスをリクエスト」をクリックする。
    • Amazon Titan Image Generator G1
    • Anthropic Claude 3 Sonnet
    • Anthropic Claude 3 Haiku
    • Stability AI SDXL 1.0 image
  8. 「進行中」と表示されるようになるのでしばらく待つ。
    image
  9. 1-5分ぐらい待つと「アクセスが付与されました」と変わり利用可能となります。 image

アプリ構築

Cloud9の作成

  1. 以下のURLにアクセスし、CloudShellのコンソールを開く。
    https://ap-northeast-1.console.aws.amazon.com/cloudshell/home?region=ap-northeast-1# image
  2. 以下のコマンドを実行し、Cloud9環境を作成する。
    git clone https://github.com/aws-samples/cloud9-setup-for-prototyping
    cd cloud9-setup-for-prototyping
    ./bin/bootstrap
    
    image
  3. しばらく待つ(5分未満)と「Done!」と表示され、Cloud9作成が完了する(中身はt2.largeのECインスタンスで、30分接続がないと自動で停止します)。 image
  4. 以下URLにアクセスし、Cloud9のコンソールを開き、名前が「cloud9-for-prototyping」の行の「開く」をクリックする。
    https://ap-northeast-1.console.aws.amazon.com/cloud9control/home?region=ap-northeast-1#/ image
  5. Cloud9開発環境 image

依存関係の設定

  1. 以下のコマンドをターミナルで実行し、ソースコードのコピーする。
    cd ~/environment
    git clone https://github.com/aws-samples/generative-ai-use-cases-jp.git
    cd generative-ai-use-cases-jp
    
  2. 以下のコマンドをターミナルで実行し、nodeの必要なパッケージをインストールする。
    npm ci
    
  3. 以下のコマンドをターミナルで実行し、AWS CDK をセットアップする。
    npx -w packages/cdk cdk bootstrap
    

モデル ID の変更

  1. GUIで「/generative-ai-use-cases-jp/packages/cdk/cdk.json」を開き、以下のように編集する。
        "modelIds": [
          "anthropic.claude-3-sonnet-20240229-v1:0"
        ],
        "imageGenerationModelIds": [
          "stability.stable-diffusion-xl-v1"
        ],
    
        "modelIds": [
          "anthropic.claude-3-sonnet-20240229-v1:0",
          "anthropic.claude-3-haiku-20240307-v1:0"
        ],
        "imageGenerationModelIds": [
          "stability.stable-diffusion-xl-v1",
          "amazon.titan-image-generator-v1"
        ],
    
  2. Mac では 「Command + S」、Windows では 「Ctrl + S」を押してファイルを保存する(ファイル名の右の●が消える)。
  3. ターミナルで以下のコマンドを入力し、AWSへデプロイする(10分ほどかかる)。
    npm -w packages/cdk run -- cdk deploy GenerativeAiUseCasesStack --require-approval never
    
  4. 作成状況は以下のURLで確認ができる。
    https://ap-northeast-1.console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks image
  5. 作成が完了すると「GenerativeAiUseCasesStack.WebUrl」にアプリケーションとして利用な可能なURLが記載されているので、アクセスする。
    image

アプリケーションの動作確認

  1. URLを開いたら、「アカウントを作る」タブをクリックし、ユーザー名とパスワードを入力し「アカウントを作る」ボタンをクリックする。
    image
  2. メールが届くので、コードを入力して「確定」をクリックすると、アプリのホーム画面が表示される。 image image
  3. デフォルトで有効な機能は以下。
    image

Appendix

時間が余った方向け。 ※カスタマイズリポジトリなので、本家への追随が面倒になります。

プロンプト共有機能追加

  1. Cloud9のターミナルを開く。

  2. 以下のコマンドを実行し、別のリポジトリを追加する。

    cd generative-ai-use-cases-jp
    git remote add add-prompt-share https://github.com/tsukumonasu/generative-ai-use-cases-jp.git
    git fetch add-prompt-share
    git checkout add-prompt-share/add-prompt-share
    
  3. デプロイコマンドをターミナルで実行する(6分ほどかかる)。

    npm run cdk:deploy
    
  4. 「Do you wish to deploy these changes (y/n)?」と表示されたら、 「y」を入力し、ENTERキーを入力する。

  5. 「GenerativeAiUseCasesStack.RequireInitDataCommand」の後ろに記載されたコマンドをコピーしてターミナルで実行する。
    例:

    aws lambda invoke --function-name GenerativeAiUseCasesStack-TemplateInitDataLambdaxxxxxxx --payload '{}' output.json
    

    image

  6. マイテンプレートから社内のユーザ間で共有したいプロンプトを作成する。 image

  7. 共有したテンプレートを使って生成AIに文章を作ってもらう。 image image image

リソース削除

軽食前のぐらいの20:30とかまでに削除実行開始できていれば良いと思います。

以下の手順をそのまま実施してください。
https://catalog.workshops.aws/generative-ai-use-cases-jp/ja-JP/cleanup/cdk

リソースが削除できない場合の例

S3にバージョニング設定が入っていて削除できない場合

image

  1. バージョニングを停止する。 image
  2. 全バージョンファイルを表示して削除する。 image
  3. ターミナルで削除コマンドを再試行する。

削除しない方向けへの案内

「ドメインで絞る」または「アカウントを作る機能を停止」を実施して、勝手にアカウントを作られないように設定してください。

ドメインで絞る(会社、学校など)

アカウントを作る機能を停止

@tsukumonasu
Copy link
Author

tsukumonasu commented Mar 20, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment