PartyRockではじめて生成系AIアプリを作ってみたよ!みんなも遊んでみよう!
泥臭い仕事を効率化することを効率化したい「ぎだじゅん」です。
ライフイズテックという会社でサービス開発部 インフラ/SREグループに所属しています。
新しいことを学ぶのって結構パワーのいることで、まわりで必要だから覚えなきゃって空気になっても、学習するものに対してそもそも興味がもてないと頭に入っていかないし、なかなかやる気もおきないものです。
その興味をどのように持たせるのかってところが重要で、いきなり難しいことに興味を持たせようと頑張ろうとしても、自分にとっての達成感などが感じていかないとなかなか学習を前進させれない感じがします。
でも、小さくて簡単なことでも「わかった!」と思える達成感が少しでもあれば、それが継続されていくことで興味がどんどん湧いてくると思っています。
仕事などで強制的に身についた「なんとなく」な知識があったとして、「ちゃんと学習しないと」という空気になったとき、すでに「なんとなく」知り得た内容があっても簡単なことろから学習して「達成感」を積み重ねていくことで、本当の興味に繋がり知識に深みが出てくるんだと思います。
・・・って、前説書いていますが、なんだかこれまでと違う真面目な前説やいつも使っている「いらすとや」と異なる画像にいちいち「(生成AIによるイラスト)」って書いてて、自分でも違和感を感じます。
なぜこんなことになっているのかをこれから説明していきます。
本題です。
AWSの生成系AI関連サービス「Amazon Bedrock」
いきなり生成系AIの話に飛びます。
生成系AI(Generative AI)といえば、テキスト生成のChatGPT(OpenAI API)や、画像生成のStable Diffusion、コーディング支援のCopilotって名の付くいろんなサービスなど、ここ1年の間にいろいろな生成系AIサービスがでてきて、自分たちの生活や仕事にも少しずつ依存しはじめてきているのを感じます。
そんな中、2023年9月23日にAWSでもフルマネージドなAI基盤モデルを使って生成系AIアプリケーション構築ができるサービス「Amazon Bedrock」の一般提供が開始しました。
Amazon Bedrock ではAI21 Labs、Anthropic、Cohere、Stability AI、Amazon Titanなど、いろんな特徴を持つ基盤モデル (Foundation Models) を選択して使用したり、GUIの画面から独自のデータを使って基盤モデルをカスタマイズしたりすることができます。
このBedrockによる基盤モデルを、AWSのセキュアな環境の中で既存のAWS サービスを使用して構築することで、プライバシーとセキュリティを維持した生成系AIアプリケーションが実現できます。
で、この基盤モデル (Foundation Models) ですが・・・
って自分が説明できるほどの知識はないのですが、AWSの方が公開されているこの資料に利用できる基盤モデル (Foundation Models)のそれぞれの特徴やAmazon Bedrockの利用開始の方法がまとまっているので、こちらをぜひご覧ください。
さらに、生成系AIを使ってプロダクトの価値を高めるために必要な3つのフェーズ(Biz、Dev、ML)とそれぞれのフェーズで考えるべきことなどがまとまっている資料も公開されていて、とても参考になりそうな内容だったので紹介しておきます。
ということで、Amazon Bedrockのご紹介でした。
それでは、また!
・・・で終わったら、ブログのノルマにカウントされなさそうなので前節の意味がわからないので、このBedrockの基盤モデルを裏側で使用した生成系AIアプリケーションを簡単に作成体験できる新しいサービスも紹介します!
PartyRockで生成系AIのアプリケーションを簡単に作成
こういった生成系AIの基盤モデルって専門的で興味持てないとか、こういう技術を使うには、結局はがっつりコード書いたりAWSサービスを知っていないと利用できないからエンジニア以外には敷居が高いよね・・・って、思われた方に素敵な情報です。
このAmazon Bedrockの基盤モデルを使った生成系AIアプリケーションを簡単に作れちゃうプレイグラウンド環境のエンタメ系サービス「PartyRock」がAWSから発表されました。
あっ、違った・・・
こちらです。
PartyRock の裏側では先ほど紹介した Amazon Bedrock の基盤モデルが使用されており、PartyRock ではこれらの基盤モデルを用いたウィジェット(インターフェース)を組み合わせることで、生成系AIアプリケーションが自動で作成されます。
「でも、結局AWSサービスにクレジットカード登録してアカウント作成が必要なんでしょ?」って思った、あなた!
しかも今なら無料で使えます。(利用の上限制限はあります)
驚くほどと簡単に利用できるので、是非一度さわってみてください。
PartyRockのはじめ方などのガイドも公開されていますので、こちらも参考にしてみてください。
それでは今回、このPartyRockの使い方を紹介します。
①PartyRockへサインイン
早速 https://partyrock.aws/ へアクセスして始めましょう!!
サインインできましたね!
②デモアプリをさわってみる
サインインした画面から「Build your own app」をクリックして、作成したいアプリケーションの要件(プロンプト)を記入するだけでアプリケーションを生成してくれるので、すぐ作りたい方は次の工程の「③アプリケーションを作成する」へ進んでもOKです。
でも、簡単にできるとはいえ初めてのツールでどのような要件(プロンプト)を書くとどのようなものができるのかを知ってから使うと、作ってみたいアプリケーションのアイデアもわいてくると思います。
ここではまずデフォルトで用意されているデモアプリケーションをさわってみて、後述の「App Builder」画面でどのような要件を入力をすると、どのような生成系AIアプリケーションができるのかを見てみましょう。
デモのアプリケーションは3つ用意されていて、以下ではそれぞれの生成系AIアプリケーションをどのような要件(プロンプト)を入力して作成されたものかをまとめました。
Haiku Creator(俳句クリエーター)
https://partyrock.aws/u/partyrock/jAJQ4WYAS/Haiku-Creator
ユーザ入力欄にトピックを入力すると、トピックに5-7-5の俳句と俳句をイメージした画像が出力。
Wired Tour Guide(ワイアードツアーガイド)
https://partyrock.aws/u/partyrock/a1cTSd2ea/Weird-Trivia-Tour-Guide-Discover-Unique-Insights-and-Stories-from-Any-Place
入力した場所(国や都市)に関する 5 つの奇妙でユニークで予期せぬ事実(?)をランダムで 200文字以内で教えてくれます。
また地元のツアーガイドとして詳細を説明するチャットボットも提供。
Podcast Generator(ポッドキャスト・ジェネレーター)
https://partyrock.aws/u/partyrock/wWo-KNwoS/Podcast-Generator
入力したトピックからポッドキャストのタイトルや説明や質問などの台本やイメージ画像、出演するキャスト(ホスト)2名のバックヒストリーと、それをふまえたキャストのチャットボットなどを提供。
いずれも100文字前後の要件の文章を入力するだけで、要件に合わせたアプリケーションを作成してくれます。
そして、それぞれのアプリケーション画面では条件などを入力する項目(ウィジェット)と、AI機能(ジェネレータ)となる以下の3種類の項目(ウィジェット)が生成系AIアプリケーションの画面内にいくつか構成されていることがわかります。
テキスト生成(Text Generation)
テキストをAIで生成するウィジェット画像生成(Image Generation)
画像をAIで生成するウィジェットチャットボット(Chatbot)
AIチャットボットでの対話を行えるウィジェット
入力する項目(ウィジェット)からこれらのAI機能(ジェネレータ)の項目で生成するように指定したり、AI機能(ジェネレータ)で生成したものからさらに別のAI機能(ジェネレータ)で生成されるように連携したりすることで、要件に合わせたアプリケーションが生成されます。
③アプリケーションを作成する
では実際にアプリケーションを作成してみましょう。
「Build your own app」をクリックして作成開始します。
「Build your own app」をクリックすると「Add builder」ウィンドウが表示します。
ここではどのようなアプリケーションを作るのかの要件を入力します。
PartyRock は、現状では英語のプロンプトでのみ使用することを目的としている模様ですが、日本語で入力してもアプリケーションは作成してくれます。
ただし、内部で一度英語に訳されて生成しているようなので、文章によっては若干おかしな訳され方で生成されることもあるかもです。
私はよくnoteで「いらすとや」のイメージを使わせてもらっていますが、これを代替するような画像生成アプリケーションができないかと考えて、今回、以下のような要件で作成をしてみました。
できあがったアプリケーションがこちらです。
アプリケーションのタイトルや説明文、各項目(ウィジェット)などはPartyRock側で自動で生成して作ってくれました。
(それもあってアプリケーションのタイトルに少し違和感が・・・)
上の「Situation」の項目に作成したいキャラクターの内容を入力すると、「Character Image」の項目で Situation で入力したイメージのキャラクター画像を生成してくれます。
PartyRock でもっと細かい要件(プロンプト)を書いて作成されるアプリケーションの精度を上げたい場合は、以下で紹介されているプロンプトエンジニアリングなどを参考にしてください。
できあがったアプリケーションを実際に使ってみましょう。
④アプリケーションをさわってみる
実際に使ってみました。
私が個人的に好きなジュリアン・オピーの作品を思わせるようなイメージ画像ができました(そんな要件は出していませんでしたが)。
たしかにスーツを着たサラリーマン風の男性がびっくりした表情しています。ちょっと髪型に目がいってしまいますが・・・。
細かい気になる点はありますが、要望に沿ったアプリケーションが自動で完成したことがわかりました。
念のため、ほかの画像を作ってみましょう。
今度はnoteでよく使っている「二度見する男性」で作成してみました。
えっ、驚いている印象はありますが二度見るイメージとはちょっと違う。
海外などで「二度見する」って言葉が表現として通じるのかはわかりませんので、その影響かもしれませんね(憶測)。
⑤アプリケーションをカスタマイズしてみる
自動生成されたアプリケーションはカスタマイズも可能です。
レイアウトを変更したり、チャットなどの新しい項目(ウィジェット)を追加することができます。
レイアウトの変更、大きさの変更、文言変更など
各項目の右上にあるアイコンをクリックすると、各項目(ウィジェット)の配置や表示サイズ、タイトル(Widget Title)や他の文言(PlaceholderやContent、Default valueなど)を修正できます。
ウィジェットの追加
アプリケーション画面上で使用できる項目(ウィジェット)として以下の5つのウィジェットが用意されています。
User Input
アプリケーション利用者が生成物の条件などをテキストで入力するウィジェット
(今回作成された「Situation」の項目でも使用されている)Static Text
アプリケーションの説明文など定型の静的テキストを表示するウィジェット
(今回作成された「Comical Image Creator」の項目でも使用されている)Text Generation [AI Powerd]
テキストをAIで生成するウィジェットImage Generation [AI Powerd]
画像をAIで生成するウィジェット
(今回作成された「Character Image」の項目でも使用されている)Chatbot [AI Powerd]
AIチャットボットでの対話を行えるウィジェット
このウィジェットから今回「Text Generation」を使って、「Image Generation」で生成されたキャラクターの特徴の説明をテキスト生成するようにアプリケーション画面に追加してみます。
ウィジェットの追加画面が表示したら、作成したいウィジェットの種類を選択します。
今回はテキストをAIで生成するウィジェットを追加したいので、「Text Generation」をクリックします。
「Text Generation」の編集画面が表示されるので、ここで必要な設定を行っていきます。
Widget Titleには該当のウィジェットのタイトルを入力します。
入力可能な文字はアルファベット、数字、スペースのみです。
今回はキャラクターの説明を表示させるので「Character Description」とします。Modelの箇所ではテキスト生成で使用するモデルを選択ができます。
各モデルの特徴などの説明は割愛しますが(というかわかりませんでした)、モデルごとに消費するクレジット(後述で説明します)が1~3バーのスケールで表されており、高性能なモデルほど多くのクレジットを消費する模様です。( ここでいうクレジットは利用金額のことではありませんのでご安心を)
今回は「Cohere Instant」を使用します。Promptには「Text Generation」で生成するテキストの要件(プロンプト)を記入します。
今回は「Character Image」で生成された画像の特徴などを説明する文章を生成させるため「Character Image の特徴を100字以内で箇条書きにしたリストを作成する」と記入。文章の「Character Image」の箇所は実際のウィジェットの出力結果と連携するため、「@」を入力して「Character Image」を選択して記載します。
そうすることで、指定したウィジェットの出力結果を「Text Generation」で生成するテキストの要件(プロンプト)の入力情報として使用できます。
Advanced settingsではこのウィジェットでのジェネレーターの詳細設定を提供します。
「Text Generation」ではモデルの温度(Temperature)およびトップ Pパラメーターが調整でき、この数値を調整することでLLMの応答のランダム性が増し、より創造的で想像力豊かなテキストが得られます。
詳細はこちらを参照ください。数値を増加させると、モデルの応答のランダム性が増加し、より創造的で想像力豊かなテキストが生成されます。
数値を下げると、より事実に基づいたテキストが生成されます。
今回は以下の内容で設定しました。
レイアウトの変更、大きさの変更、文言変更などもろもろ修正して、キャラクターの説明を生成するウィジェットも追加したアプリケーションがこちらになります。
キャラクターの作風がなぜか変わったけど、結構いい感じにできあがったと思います!!
⑥アプリケーションを公開してみる
作成したアプリケーションは公開して他の人にも利用してもらうことができます。
<アプリケーションの公開>
なお、アプリケーションを公開する場合は、公開する前に、作成したアプリケーションがPartyRock コミュニティ ガイドラインに従っていることを確認したうえで問題がないようであれば公開をください。
<アプリケーションの非公開>
公開したけど、やっぱり公開したくない場合には右上の「Your app is public.」の「public.」部分をクリックすると「Make private」ボタンが表示されるので、このボタンを押せば非公開になります。
今回作成したアプリケーションを公開
今回作成したアプリケーションはこちらで利用できます。
アプリケーションを実際に利用するには、利用者側もPartyRockへソーシャルログインする必要があります。
■表情キャラクター生成アプリ
https://partyrock.aws/u/gidajun/JCpYhrATZ
ちなみに今回のnoteの投稿で(生成AIによるイラスト)と書かれた画像はすべてこのアプリで生成されたものになります!!
PartyRockを利用にあたっての注意事項
こんな素敵な生成系AIアプリケーションを作成して遊べる環境を無料で体験できるのはとても素晴らしいのですが、タダほど怖いものはないので、PartyRock を利用するにあたって注意しておくべき事項を紹介しておきます。
■クレジットの消費について
PartyRockは現在は期間限定で、クレジット カードの提供や AWS アカウントへのサインアップを必要としない無料トライアルで提供しています。
これにより、課金の発生を心配することなく利用することができます。
ただし、無料トライアルの新規利用時にクレジットと呼ばれる利用可能な容量が割り当てられており、これらがすべて消費されると利用できなくなります。
つまり、無料トライアルは利用にあたって料金はかかりませんが利用できる量が設定されて制限されています。
ここでいうクレジットは利用金額のことではありませんのでご安心ください。
すべて消費されると利用できなくなるとはっきりした明記は見当たりませんでしたが、おそらく利用できなくなるんだと思います
また、AWSのEC2のt系インスタンスやEBSなどでもおなじみのクレジットとは異なり、現状では消費されたクレジットを増やす手段はない模様です。
このPartyRockのクレジットは、入力、出力、生成されたイメージによって計算され消費されて行きます。
「⑤アプリケーションをカスタマイズしてみる」のウィジェットの追加で少し触れましたが、「Text Generation」などのウィジェットでは選択したモデルによって消費される量が変わってきます。
利用しているアカウントでの残りのクレジット量については、左上にある「My Apps」をクリックして表示する「Backstage」画面上で「My PartyRock Credits: XX% Used」としてクレジットの消費量をパーセンテージでリアルタイムで確認できます。
■公開アプリケーション利用側のクレジット消費について
なお、このクレジットですが公開したアプリケーションを利用されているときはアプリケーション作成者側のクレジットは消費されませんが、アプリケーションを利用した側(利用者側)のクレジットが消費されます。
公開したアプリケーションを利用する場合は、利用者側もソーシャルログインをしないと利用できないようになっており、ソーシャルログインした初回に割り当てられたクレジットは、アプリケーションの作成時だけでなく公開されている他者のアプリケーション利用時にクレジットが消費されていきます。
■入力データの利用ポリシーについて確認する
PartyRock での入力したデータなどは以下のように利用されます。
なお、サービス向上のためにPartyRock データが使用されることをオプトアウトしたい場合は、左上にある「My App」をクリックして表示する「Backstage」画面にて、PartyRock クレジット トラッカーの下にスクロールして、「Share PartyRock Data with AWS」のチェックボックスを外すことでオプトアプトできます。
その他、PartyRockを利用するにあたっての注意事項などは以下のFAQsでも確認できますので、こちらも一度確認ください。
PartyRock Guide (FAQs)
https://partyrock.aws/guide/faq
■コミュニティガイドラインを守る
PartyRockを利用する前に公開されているコミュニティ ガイドラインをよく理解しておく必要があります。
コミュニティガイドライン
https://partyrock.aws/community-guidelines
ちなみに今回、Text Generationでテキスト生成するウィジェットを使った際に、自分をイメージする画像を生成する際に「太っている男性」のような入力をしたところ、Text Generationのウィジェットでは「申し訳ありませんが、その要求は差別的または有害な内容を含んでいる可能性があるため作成できません。」のような文章が出力されました。
このあたりは基盤モデル側でコントロールや制限されているかもしれません。(モデルによって異なるかもしれませんが)
■18歳未満はPartyRockを利用できない
生成系AIのアプリケーションがどのように作られるかなどがよくわかる素晴らしい学習ツールでもありますが、コミュニティガイドライン にて「* You may not use PartyRock if you are under the age of 18.(※18歳未満の方はPartyRockをご利用いただけません。)」と記載されていました。
中高生の生成系AIに関する学習ツールとしてもとてもよさそうなのですが、アプリケーションを無条件で公開できる部分がいろいろ引っかかるのかもしれませんね。
【重要】PartyRockはあくまで遊んで学習する環境
PartyRockは専門的な知識がなくとも生成系AIアプリケーションを作成することができる、とても面白いサービスです。
ただ、このPartyRockの立ち位置はあくまで遊んで学習するプレイグラウンド環境です。
ここでアプリを作成しながら遊ぶことで、Amazon Bedrockなどの基礎モデルが特定のプロンプトでどのような応答をするのかを理解したり、さまざまなテキストベースのモデルやプロンプトの実験、プロンプトの連鎖など、生成 AI を始めるために必要とされる基本的なテクニックや機能について触れて学ぶために提供された環境です。
なので、本格的なアプリケーションをPartyRockで作成して商用利用するようなものではないことを理解したうえで利用するようにしましょう。
最後に
実際にPartyRockを使ってみて、テキスト生成と画像生成とチャットボットの機能を連携させた生成系AIアプリケーションの作り方などを体験し、それらの機能がどのような連携をして実現しているのかを実際に見て知ることができました。
また、PartyRockを使ってみて改めて感じましたが、生成系AIサービスが増えていく中でこれらのサービスやツールを上手につかっていくには、どのようなプロンプトで上手に指示や要望、命令をするかによって精度が変わってくることを実感できました。
仕事でのリアルなコミュニケーションなどで上手にメンバーや部下に指示や要望が出せないと、思ったような成果物が出来上がらないのと同じ感じですので、自分も気を付けます。
あと、自分の本来の業務の分野(?)であるセキュリティ関連でもMicrosoft がSecurity Copilotの早期アクセスプログラムを開始したりして、自分の泥臭い仕事もAIによって効率化できるようになっていくサービスがでてきているので、生成系AIの分野は引き続きウォッチしていきたいと思います。
最後までご購読いただきありがとうございました!!
こんな新しい体験もチャレンジできる今の会社はとてもいい会社なので、興味のある方はこちらも是非見てみてください。
あと、2023年12月31日に弊社で「LLMと歩んだ2023忘年会 - 最前線」と題して、この先「生成AI」元年を振り返り、LLM(Large Language Models)の活用法を探る特別イベントを開催します。
LLMを活用して実際にプロダクトを創出した先進的プレイヤーたちが集い、知見と経験を共有し、LLMがもたらす無限の可能性について深く掘り下げていく面白いイベントになると思いますので、ご興味のある方はぜひご参加ください。