本記事について
先日「AWS Builders Online Series」というセミナーに参加しました。
このセミナーは公式が主催しているAWS初心者を対象とした、AWSの基礎を幅広く学ぶことができるオンラインイベントです。
このセミナーの中で紹介されていたAWS上で簡単に生成AIサービスを使用・構築できる「Amazon Bedrock」が面白そうだったので、自分でも使ってみました。
とは言っても「Amazon Bedrock」自体は非常に多岐に渡るサービスですので、この記事では私が使用した機能のみ紹介したいと思います。
ちなみに実際のセミナーの資料や動画は以下画像のリンク先にありますので、興味がある人は直接見てもらう方が良いかと思います。
生成AIについての基礎知識
「Amazon Bedrock」についての紹介を始める前に先ず生成AIというものがどういうものなのかについてセミナーでは解説がありました。
生成AIとはこれまでのAIで使っていたビッグデータをさらに大規模にして学習(テラバイト規模のデータ)することで、追加学習なしに人間に近い振る舞いが出来るようになったAIのことです。
テラバイト規模のデータを学習したものは「基盤モデル」と呼ばれ、特に文章等の言語を対象にしたデータを学習したものを「大規模言語モデル(LLM)」と呼びます。
このLLMを使ったサービスで有名なものがOpenAIの「ChatGPT」やGoogleの「Gemini」、Anthropicの「Claude」等になります。
文章ではなくイラストを中心にした学習した基盤モデルは「画像生成モデル」と呼ばれ、様々な画像生成サービスで利用されています。
最近では更に動画を学習した基盤モデルの開発も盛んになっているとのことなので、基盤モデルの種類は今後更に多様化していくと思われます。
ちなみにLLMがどうやって文章を生成しているのかの仕組みについても解説がありました。
次の画像のように莫大な学習データの中から入力されたプロンプトに対する回答の続きとして適切なものを確率で求め、その確率に合わせて次から次へと文章を生み出していっているとのことです。
もちろん、確率通りにすべてを生成してしまうと同じプロンプトを入力すれば、毎回同じ答えが返ってしまうので、そうならないように時には確率の低い文章も混ぜられるとのことです。
だから、生成AIのチャットは時に誤った回答や不自然な回答をしてしまうようですね。
Amazon Bedrockとは
生成AIサービスを個人が始めようとすると、それこそ「ChatGPT」のようにすでに利用可能な状態のサービスに登録して活用することがほとんどだと思います。
しかし、それら構築済みのサービスを使うのではなく、独自の環境を自前で用意して安全に利用する方法として、「Amazon Bedrock」があります。
「Amazon Bedrock」は様々な基盤モデルを自由に選択して使用することが出来ます。
例えば、ChatGPTでは利用できる基盤モデルはOpenAIが開発したGPTシリーズの言語モデルしか使用できませんし、GeminiでもGoogleが開発した基盤モデルのみが使用されています。
他のサービスも同様で基本的に世の中の生成AIサービスは利用できる基盤モデルがそれぞれの会社が開発したものに限られています(そうすることで独自性を出して利益を得ているので)。
ですが、「Amazon Bedrock」は利用用途や状況に応じてそれぞれの基盤モデルを使い分けることが出来るというのが大きな利点です。
ただ、かなり多くの基盤モデルを揃えている割に何故かOpenAIのGPTシリーズを取り扱っていません。
これは恐らくOpenAIはMicrosoftと親密のためAmazon側に提供していないのだと思われます。
その一方でAnthropicのClaudeが使えますが、AmazonはAnthropicに多額の投資をしているためだと思われます。
更に「Amazon Bedrock」では基盤モデルをAPI経由で呼び出すことが出来ます。
つまり、自分たちで独自に作ったアプリの裏側で他の基盤モデルを使った応答を実現することが出来るということです。
例えば自社用のチャットボットアプリを作って、そのアプリに対して質問をするとアプリは裏側でClaude等の基盤モデルを呼び出して、その質問に対する回答を生成し、その結果をアプリ側に返すことが出来ます。
現在でもChatGPT等の大手サービスはすでにAPIを提供してくれているものが多いですが、「Amazon Bedrock」の利点として状況に合わせてアプリ側で呼び出す基盤モデルを簡単に変えることが出来る点でしょう。
先ほどのチャットボットのように、例えば給料に関する質問が来た場合はアプリ側でClaudeに回答させ、顧客との折衝に関する質問であれば他のLLMに回答させるといった使い分けも簡単に出来ます。
こういった使い分けはその気になれば他のサービスでも実現可能ですが、仕組みとして提供されている「Amazon Bedrock」が非常に簡単に実現できるのは事実でしょう。
独自の生成AIアプリケーションを作成した際に一番のネックとなってくるのが、セキュリティ面でしょう。
実際、KADOKAWAの情報流出事件をみれば分かる通り、セキュリティの重要性は年々増すばかりであり、最新の攻撃に対するセキュリティを万全にするのはすでに一企業レベルでは不可能と断言できます。
そのため、生成AIアプリケーション等のサービスを独自で運用する場合もセキュリティの意識は常に必要となるのですが、「Amazon Bedrock」であればそういったセキュリティ面でも不安なく使うことが出来ます。
Amazon Bedrockを使ってみる
それでは実際に「Amazon Bedrock」を軽く使っていきたいと思います。
ただし、この機能はAWS上で使う機能となりますので、当然AWSへのアカウント登録が事前に必要となります。
そのため、以降の手順はアカウント登録後、コンソールにログインできる状態になっていることを前提としていますのでご注意ください。
基盤モデルにアクセス権を付与
先ずはAWSコンソールにログインし、「Amazon Bedrockの名前でサービスを検索して該当サービスを表示します。
尚、使い始める前にコンソール右上にあるリージョン設定を「バージニア北部」に変更しておきます。
基盤モデルはリージョン単位で使用可能なものがものが決まっており、すべての基盤モデルが使用できるのは「バージニア北部」等の一部リージョンのみです。
ちなみに多くの日本人が利用している「東京」リージョン等では非常に限定された基盤モデルしか使えないため、様々なモデルを使いたいのであればリージョン変更は必要と覚えておいてください。
リージョン変更が終わったら、左側のリストから「基盤モデル」の「ベースモデル」を選択して下さい。
そうすると、基盤モデルの状態が一覧表示されます。
ただ、初期状態だとそれぞれのモデルをすぐに使用できる状態ではないので、アクセス権を付与するために「Enable all models」を選択します。
そうすると、次のように付与したい基盤モデルの一覧が出てきますので、全て選択された状態のままで画面下部にある「Next」を押します。
次に基盤モデルの利用にあたって、会社名やウェブサイト等を入力する必要があります。
正直利用するためにこういった情報を入力させるのは個人がやるには敷居が上がるし、非常に使い勝手が悪くなるので、「Amazon Bedrock」の極めて残念な点だと思います。
私は自分のウェブサイト等があるのでテキトウに入力してみましたが、無い人はどこまでテキトウな入力で許されるのか分かりませんが、Claudeを使いたい場合はこの入力は避けられないようです。
入力が終わったら、「Next」を押してください。
最後に確認画面が出てきますので、問題なければ「Submit」を押してください。
これでアクセス権が付与されまで数分待つだけです。
・・・と思ったらいくつかの基盤モデルで何故かエラーが起きました。
エラー文言を見る限りもう使えないモデルなんですかね?まぁ、正直メインで使う基盤モデルは性能的にもClaudeが中心となると思いますので、MetaのLLMがいくつか使えなくても問題ないと思います。
コンソール上でチャット機能を使用する
基盤モデルにアクセス権の付与が完了すれば、基盤モデルを使用することが可能になっています。
コンソール上から基盤モデルを使用する簡単な方法として、コンソールの左側にある「プレイグラウンド」の「チャット」を選択してみます。
チャットのプレイグラウンド画面が表示されますので、次にどの基盤モデルを使うのかを選択する必要があります。
「モデルの選択」を押して進めます。
先ほどアクセス権を付与した様々な基盤モデルが提供会社毎で一覧表示されます。
この中でモデルを選ぶ必要がありますが、基本的には最新の最も性能が高いモデルを選ぶのが良いでしょう。
この記事を書いている時点では「Claude 3.5 Sonnet」の性能が高いと話題になっていますので、私も選んでみました。
ClaudeシリーズはChatGPTのGPTシリーズと比べても、性能がほぼ同等レベルで評価されていますので、迷ったらClaudeシリーズの最新版を使えば良いと思います。
モデルを選択したら「適用」を押して進めます。
そうすると基盤モデルが設定された状態となり、画面中央のチャット欄に入力できるようになります。
試しに「どうすれば世界を良くすることが出来ますか?」といった漠然とした問いを投げかけてみます。
チャットを動かすには入力後に「実行」ボタンを押します。
その結果、長文で以下の回答がありました。
「世界を良くするには、個人の小さな行動から始めることが大切です。親切な態度で人に接し、地域社会に貢献し、環境に配慮した生活を心がけることから始められます。また、教育を通じて知識や価値観を広め、社会問題に関心を持ち発言していくことも重要です。一人ひとりが自分にできることから行動を起こし、それが積み重なって大きな変化につながっていくのです。完璧を目指すのではなく、自分なりのペースで継続的に取り組んでいくことが大切だと思います。」
回答内容がかなり真っ当なレベルだということが分かります。この回答のレベルが先ほど選択した基盤モデルに左右されるので、自分の望む回答が来やすいモデルを探すのも良いかもしれません。
チャットですので回答後に更に追加の質問を投げれば、回答内容を踏まえたうえでのさらなる追加回答をしてくれますので、後は自分で試してみて下さい。
また、画面の下部に「モデルメトリクス」と呼ばれる欄が表示されていますが、これはチャットの測定結果となります。
「レイテンシー」は回答に掛かった時間、「入力トークン数」はこちらの入力した文字のトークン数、「出力トークン数」は回答した文字のトークン数となります。
ちなみに画面右側にある「湿度」「トップP」「トップK」というパラメータは基盤モデルの回答結果を調整するためのものです。
詳細な仕様は結構複雑なのですが、簡単な考え方としては次の通りです。
つまり、創作の文章等のオリジナリティを出したい場合は各パラメータを上げて、論文の考察等の詳細で堅実な情報が欲しい場合は各パラメータを下げるのが良いということです。
結構重要なパラメータですので必ず覚えておきましょう。
コンソール上でテキスト機能を使用する
次にコンソールの左側にある「テキスト」を選んだ際に使用できる、「テキストのプレイグラウンド」です。
ただ、ぶっちゃけテキスト機能はチャット機能の下位互換に近く、チャットのように何度もやり取りが出来ずに1度だけテキストで回答してくれるというだけのものです。
チャット機能と同様に「モデルを選択」を押して、使いたい基盤モデルを選択して、テキスト欄に何か入力して「実行」を押すことで利用できます。
一応、「長さ」のパラメータがあるので、非常に長い文章を生成して欲しい場合(例えば創作の小説を書いて欲しい等)であれば、チャット機能よりも有効に使えると思います。
ただ、基本的にはチャット機能で十分なのでほぼ使うことは無い機能だと思います。
コンソール上でイメージ機能(画像生成)を使用する
最後にコンソール上で画像生成に使用できる「イメージ」機能について使ってみます。
コンソール左側の「イメージ」を選択すると、次のような「イメージのプレイグラウンド」画面が表示されます。
チャットやテキストと同様に基盤モデル選びから始める必要がありますので、「モデルを選択」をクリックします。
選択できるモデルは非常に少なく、Amazonの「Titan Image Generator G1」とStabililty AIの「SDXL 1.0」のみというラインナップです。
今後増えるのかもしれませんが、ここまで選択できる幅が少ないと結構厳しいものがありますね。
とりあえず今回は「Titan Image Generator G1」を選択して、「適用」を押します。
そうするとテキスト入力欄が現れるので「1girl」と入力して実行してみます。このプロンプトは一人の女性を出力してくださいという意味となります。
画像生成では主にどういう入力をすればどういった画像が表示されるかという点については、画像生成のプロンプトについてGoogleで調べてみて下さい。
その結果、次のように実写的な3人の女性が出力されました。プロンプトが一つだけなので、生成される画像は結構バラつきのあるイメージですね。
ただ、生成された画像のクオリティはそこまで低くは無いので、「Titan Image Generator G1」は割と使える方のモデルだと感じます。
出力された3枚の画像の中で一番左の画像をクリックしてみます。
そうすると次のように画像の詳細と「Actions」というプルダウンが選択でき、様々な追加操作が出来るようになっています。
今回は「バリエーションを生成」を押してみて、この女の子の違うバリエーション画像を生成してみます。
再び「イメージのプレイグラウンド」に戻ってきますが、コンソールの右側に「推論イメージ」として先ほど表示していた女の子の画像が設定されています。
この状態で入力プロンプトに「Crying」(泣いている)を追加して、「実行」を押してみました。
そうすると、次のように元の少女をベースにしたうえで泣いている表情の画像となって生成されました。
まぁ、良く見ると元の少女とは全然違うのですが、こちらのプロンプトを理解したうえで画像を生成してくれているのが分かります。
こんな感じで画像生成にはイメージ機能が使えます。
コンソール右側には画像のサイズを変更できるパラメータや一度に生成する画像数だったりを変更することも出来るので、多少自由度はあります。
ただ、基本的に画像生成については様々なWEBサービスが世の中にあるので、あえてAWS上でこの機能を使うことはあまり多くは無いかなという気はしますね。
まとめ
今回は生成AI全般に関わる前提知識と「Amazon Bedrock」をコンソール上で使ってみた感想について記事にしました。
個人的には思っていたよりもかなり簡単に生成AIサービスを動かすことが出来たので、そこは少し驚きました。
それに様々な基盤モデルを自由に選択して使えるというのも、個別のサービスに登録する必要なく使えるため便利だと思いました。
その一方でそれぞれに特化した他のWEBサービス等と比較すると、チャットであればChatGPTの方が出来ることは遥かに多いですし、イラストであればStable Diffusion等の方が自由度が高いです。
そのため、この「Amazon Bedrock」を使う際はコンソール上からの利用よりも、アプリとAPIを組み合わせた使い方をする方が本質的な使い方なのだと思います(あとはRAGを使った方法とか)。
APIを使った使い方についてもセミナー内で抗議がありましたので、後日別記事にして掲載したいと思います。
いずれにしても、今後AIはどんな業界でも必須の知識なることは間違いないと思いますので、今のうちにこういった機能に慣れておくのが良いかと思います。
また、過去に世界と日本のAIの市場規模についての以下の記事も書いていますので、興味があれば閲覧ください。
それでは次の記事も閲覧いただけると幸いです。
https://senkohome.com/ai-market-size-and-forecast/
コメント