Amazon BedrockワークショップをSageMaker Studioを使ってセットアップして画像生成を試してみた

Amazon BedrockワークショップをSageMaker Studioを使ってセットアップして画像生成を試してみた

Amazon Bedrockのワークショップをやるために新しいSageMaker StudioのCode Editorを使ってみました
Clock Icon2024.07.07

こんにちは、臼田です。

みなさん、生成AIしてますか?(挨拶

本日は7月7日ということで七夕ですね。ポニーテールの日でもあります。(・ω・`)乙  これは乙じゃなくてポニーテールなんだからね!

そして、クラスメソッドの創立記念日でもあります。なのでブログを書きます。

たまには新しいことをやってみようと思い、普段直接触らないAmazon Bedrockのワークショップを探していたら、このワークショップを見つけました。ワークショップスタジオ製ですが、セルフスペースでも実施できるということでチャレンジすることにしました。

git clone してごにょごにょするとなっていたのですが、ちょうどSageMaker StudioでCode Editorが利用できるようになっていてやりやすそうだったので、これも使ってみることにしました。

このワークショップでは以下のようないろんな小さいワークショップが詰まっているものでした。

  • プロンプトエンジニアリング[完了までの推定時間 - 20 分]
  • テキスト生成[完了までの推定時間 - 30 分]
  • KnowledgeBase と RAG [完了までの推定時間 - 30 分]
  • モデルのカスタマイズ[完了までの推定時間 - 45 分]
  • 画像とマルチモーダル[完了までの推定時間 - 45 分]
  • エージェント[完了までの推定時間 - 30 分]
  • オープンソース[完了までの推定時間 - 30 分]

それぞれさらに詳細なパターンがあり、画像とマルチモーダルは下記3つがありました。

  1. テキストとプロンプトを画像に変換する - Bedrock は、StableDiffusion や Titan Image 生成などのさまざまな画像生成モデルへのアクセスを提供します。
  2. Titan 画像ジェネレーター - テキストを画像に変換 - Bedrock Titan 画像生成モデルは、入力テキストから高品質の画像を生成する機能を提供します。このモデルは、生成されたすべての画像に目に見えない透かしを追加して、誤情報の拡散を減らし、著作権保護を支援し、コンテンツの使用状況を追跡します。
  3. Titan マルチモーダル画像 - Amazon Titan マルチモーダル埋め込みモデルは、テキスト、画像、グラフなどの異なる情報項目を含むドキュメントからの画像検索や類似性に基づく推奨などのエンタープライズタスクに使用できます。

今回はこの中からテキストとプロンプトを画像に変換するを中心にやっていきます。

やってみた

ワークショップを開いて確認していきます。英語になっていますが、ブラウザの翻訳機能を駆使して日本語で見ていきましょう。

001_amazon_bedrock_workshop

「アマゾン岩盤」ってなんだか素晴らしい響きですね。岩盤ってみると「ドラゴンボール岩盤」を思い出すのは私だけでしょうか?早く復活してくれニコニコ動画!

ちなみに、ワークショップスタジオをGoogle Chromeの翻訳を使っていると、画面遷移時に定期的にエラーになるので、そのときにはリロードしましょう。

セルフスペースでのセットアップについては前提条件から確認できます。まずは実行環境を用意しましょうとありますが、今回はこれをSageMakerでやっていきます。

002_amazon_bedrock_workshop

Bedrockモデルの有効化

もし初めてBedrockを利用する場合には、モデルを有効化する必要があります。今回は対応しているモデルが多いバージニアリージョンを利用します。

「モデルアクセス」ページから有効化しておきましょう。

019_amazon_bedrock_workshop

SageMakerのセットアップ

それではSageMaker StudioでCode Editorを立ち上げていきましょう。まずモデルを有効化したのと同じリージョンでSageMakerのセットアップを開始します。初めて利用する場合にはいろんなセットアップが必要ですが、簡単に使えるようにできる「シングルユーザー向けの設定」があるので、ポチッと押します。

003_amazon_bedrock_workshop

しばらくするとドメインやユーザーが作成されます。ユーザープロファイルを開きましょう。

004_amazon_bedrock_workshop

右側の「起動」から「Studio」を選択したらSageMaker Studioが立ち上がります。

005_amazon_bedrock_workshop

最近新しくなったSageMaker StudioのHome画面が開きます。左のアプリケーションアイコンからCode Editorのアイコンを選びます。

006_amazon_bedrock_workshop

右上からスペースを作成します。

007_amazon_bedrock_workshop

適当な名前を入れて作成。

008_amazon_bedrock_workshop

作成できたら、「Run space」で開始します。

009_amazon_bedrock_workshop

開始できたら開きましょう。

010_amazon_bedrock_workshop

別タブでVSCodeが立ち上がります。右上からターミナルを開き、慣れない白いテーマなので左下から適当にテーマを変えます。

011_amazon_bedrock_workshop

お好きなダークテーマをどうぞ。

012_amazon_bedrock_workshop

ワークショップを開始する

SageMaker StudioでCode Editorが準備できたのでワークショップを始めていきましょう。まずはセルフスペースの手順を確認していきます。

VSCodeのターミナルにて下記コマンドを実行します。

git clone https://github.com/aws-samples/amazon-bedrock-workshop

cloneできたら、Open Folderから該当ディレクトリを開きます。

013_amazon_bedrock_workshop

なんやかんやして

014_amazon_bedrock_workshop

開けたらチュートリアル用ノートブック00_Prerequisites/bedrock_basics.ipynbを開きます。

015_amazon_bedrock_workshop

ノートブックを読みながら(あるいは翻訳しながら)読み進め実行していきます。まずはちゃんとBedrockが利用できるか確認していきます。

セル左の再生ボタンを押したら、初回は実行環境を確認するプロンプトが出てきますので今回はPythonの

016_amazon_bedrock_workshop

レコメンデーションされた環境を利用してみます。

017_amazon_bedrock_workshop

実行すると問題なくboto3が読み込めました。

018_amazon_bedrock_workshop

続いて基盤モデルの確認などのスクリプトがありますので順番に実行して、Amazon Bedrockの使い方を理解していきます。

各モデルの使い方として、インプットのやり方が違うというモデルごとのお作法も学びます。

そして実際にモデルを利用する場面。最初はAmazon Titanを利用してテキスト生成します。

020_amazon_bedrock_workshop

続いてAnthropic Claude Instant。同じことをやってもらうにもプロンプトを変える必要があるのは気をつけるポイントですね。

021_amazon_bedrock_workshop

そしてStable Diffusion XLでは画像生成のやり方を学びます。base64で受け取るので、Python上ではpillowを利用して画像にしています。

022_amazon_bedrock_workshop

使い方がわかってきましたね。

テキストとプロンプトを画像に変換する

では本題のテキストとプロンプトを画像に変換するを実施します。

まずは左カラムから04_Image_and_Multimodal/bedrock-stable-diffusionXL.ipynbを開きます。

023_amazon_bedrock_workshop

内容を読みながら(あるいは翻訳しながら)読み進めます。

Stable Diffusionの仕組みやプロンプトのコツなどを学習します。

そして実際に画像を作ってみます。

024_amazon_bedrock_workshop

幻想的な山の画像が出来上がりました。

image_1

次のプロンプトでは、生成した画像を調整します。木が追加されました。(湖はうまく追加できなかったです)

image_2

そしてマスクをつかって上空にヘリコプターを追加しました!

inpaint

Amazon BedrockをつかってStable Diffusion XLを利用する具体的な方法を学習できましたね。

他にもいろんなワークショップがありますので是非トライしてみてください。

環境の破壊

それでは要らなくなった環境を破壊していきましょう。環境破壊は気持ちいいZOY!

まずCode Editorのスペースを止めて、

025_amazon_bedrock_workshop

削除します。

026_amazon_bedrock_workshop

SageMakerの環境は、まずユーザーをすべて削除し、

027_amazon_bedrock_workshop

ドメイン詳細画面下の方でドメインを削除します。

028_amazon_bedrock_workshop

きれいになりました。

まとめ

Amazon Bedrockのワークショップをやってみました。ローカル環境でやっていくと大変なところもありますので、今回はSageMaker StudioのCode Editorでやってみましたが、結構良さそうですね。

ぜひいろんなワークショップをやってみてください。

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.