【初心者向け】AWSで生成AIを試してみよう
Amazon Bedrockではじめる生成AI
投稿日: 2024/08/26
はじめに
こんにちは、高橋です。
皆さん生成AIを使ってますか?
テレビを見ても、雑誌を見ても毎日、毎日生成AIという言葉を聞き、使っていないのは時代遅れという印象を受けますが、実際日常的に利用している人はどの程度いるのでしょうか?かくいう私もChatGPTを試したことはありますが、日常的に利用しているわけではありませんでした。そこで今回はAWSが一押ししているAmazon Bedrockを用いて生成AI環境を作成し、利用する方法についてご紹介いたします。
そもそも生成AIとは?
そもそも生成AIとは何か?
生成AIは英語書けば、Generative AIであり、「Generative」は日本語で「生み出す、引き起こす」あるいは「新しい生命または子孫を生み出す」という意味であり、これまでのコンピューターでは難しく、人間の力でなければできなかった、無から新しいものを作り出す新しい技術ということになります。具体的には
- 文章を書く(メールの文章から詩・小説の執筆まで)
- 文章を纏める
- 絵を描く
- 音楽を作曲する
- 動画を作成する
・
・
・
といった人間の創作活動と同様なことができるため、ビジネス面で見た場合、人が時間をかけていた作業をこれまでのAIよりも幅広くカバーすることができるため、活用するかしないかで生産性の面で大きな差異が出てくることが想像できます。
Amazon Bedrockとは?
Amazon Bedrockとは一言で言えば生成AIを実行・管理するための基盤サービスです。勘違いしてしまいそうですが、Amazon Bedrock自体は生成AIのモデルやアルゴリズムを提供するものではなく、AWSが独自に開発したさまざまなモデルや3rd Partyが提供するさまざまな生成AIの基盤モデルへアクセスし、利用するための仕組みを提供します。そのため、Amazon Bedrock単体では何も提供しませんが、Amazon Bedrockを利用することで様々なものを生み出すことができます。
Amazon Bedrockから利用可能な基盤モデルには以下のようなものがあります(2024/8時点)。
提供元 | モデル | 利用用途 |
---|---|---|
Amazon | Titan | テキスト生成、イメージ生成 |
Anthropic | Claude | テキスト生成 |
AI21 Labs | Jurassic | テキスト生成 |
Cohere | Command | テキスト生成 |
Meta | Llama | テキスト生成 |
Mistral AI | Mistral | テキスト生成 |
Stability AI | Stable Diffusion | イメージ生成 |
このように多くのプロバイダーからさまざまなモデルが提供されているので、自身の目的に合ったものを選択して利用すればいいことになります。
ただし、初心者ではどれを使用すればいいのか分からないですし、モデルも高い頻度で追加・更新が行われるので、何がいいかはその時その時で変化するかもしれません。そういった場合は、Amazon Bedrockにはモデル評価を行う機能も提供されていますので、本格的に利用しようと思った場合は、この機能を利用してみるのがいいかと思います(今回は初心者向けなので、この機能は別回で試してみたいと思います)。
Amazon Bedrockを使ってみよう
ではここからはAmazon Bedrockを使ってみたいと思います。
まず最初にしなければならないのは使用したいモデルを有効化(契約)することです。
モデルの有効化は左のメニューから「モデルアクセス」を選択します。
全てのモデルを利用可能にするなら「Enable all models」を、特定のモデルのみを有効化したい場合は「Enabled specific models」を選択します。
「Enabled specific models」を選択した場合、モデルの選択画面が表示されるので、ここで使用するモデルにチェックを入れて(今回はAmazon Titanの全てとCloud3.5、SDXL 1.0を選びました)、次のページに移動します。
選択したものが表示されるので、問題なければモデルを有効化します(Anthropic(Claude)を選んだ場合のみ、会社情報や利用用途等の追加情報が求められます)。
利用可能になるとステータスが「アクセスが付与されました」となります。
モデルが有効化されたら、左のメニューの「プレイグラウンド」から試すことができます。
ここではチャットを選んで、モデルとしてAmazon Titanを選択した上でボックスに聞きたいことを入力して、実行をクリックします(ここは日本の首都を質問しています)。
すると東京であることと、東京に関する追加な内容についても答えてくれて、正常に動作していることが分かります。
また、画面の下にモデルメトリクスというものが表示されており、実行時間と入力/出力トークン数が表示されています。
この入力/出力トークン数が課金の対象となり、今回使用したAmazon Titan Text Premierであれば、入力トークン1000個につき$ 0.0005、出力トークン1000個につき$ 0.0015の費用が掛かります。なお、トークンとは「大量の」の様な、1つの意味のある言葉の処理単位を1トークンとしています。
続いてもうちょっと生産的な作業としてテキスト機能でお礼のメールのサンプルを作成してもらおうと思います。
するとサンプルの文章を作成してくれましたが、残念ながら英語の文章が作成されました。
日本語で作成してもらいたいので、依頼内容に「日本語で」という文字を追加してみると、今度はちゃんと日本語のサンプルを作成してくれました。
最後はイメージ生成を試します。今回はSDXL 1.0を使用します。
依頼は「高原に咲くひまわりの風景」としましたが、実際にできたものは全然違いました。
これは言語の問題で「Sunflowers blooming on the plateau」として依頼をかけると思ったようなイメージのものが作成されました。
このように使用するモデルによっては(というか多くのモデルになりますが)使用できる言語が限定されているので、使用時は注意が必要となります。
もっとAmazon Bedrockを使ってみよう
実際の利用時には各モデルが保持しているデータではなく、自分(自社)が持っているデータを元に生産活動を行いたいケースが多いのではないでしょうか。これは俗にRAG(検索拡張)という機能で、Amazon Bedrockにも「Knowledge Base for Amazon Bedrock」という機能が提供されており、データをS3に置いてこの機能を使用すると簡単にデータを取り込み、対応しているモデルからそのデータを使用して、独自データを含めた検索・生成を行うことができます。
では実際に実行したいと思います。なお、今回は日本政府がデータを公開している「e-Gov データポータル」から「平成26年度子供の学習費調査の公表について(報道発表資料)」をダウンロードして使用しています。データの準備ができたら、S3バケットに保存します。現在対応しているファイル形式はtxt/md/html/doc/docx/csv/xls/xlsx/pdfとなっています。
データの取り込みは左のメニューから「ナレッジベース」を選択します。画面が表示されたら「ナレッジベースを作成」をクリックして、ナレッジベースを作成します。
ナレッジベース作成時は、ナレッジベースに設定する名前、ナレッジベース作成に利用するIAMロール、取り込みデータの保管箇所(今回はAmazon S3)を選択します。
次にデータソースに設定する名前と取り込みデータを保存しいるS3バケットを指定します。
埋め込みモデルを選択して、ベクトルデータベースを新規作成するか、既存のものを使用するか指定しますが、今回はデフォルト値を指定します。
全ての設定ができたらナレッジベースを作成します。
しばらく待てばナレッジベースの作成は完了しますが、完了後はまずデータソースの同期を行わないと使用できないのです注意が必要です。
データソースの同期が完了すれば、S3に保存してたデータが取り込まれましたので、あとは右側のテストページで使用するモデルを指定し、質問を記載します。
すると取り込んだデータを用いて回答を返してくれます。
確認のためにソースの詳細を表示をクリックすれば、引用元の情報を表示することができるので、情報の正誤を調べることができます。
このように簡単にデータを読み込んでそれを活用することができます。
さいごに
今回は現在のIT業界を席巻している生成AIをAWSで始める方法について紹介しました。正直ChatGPTであればアカウントを作成するだけで、すぐに使えてあちらの方が簡単だなとは思いますが、Amazon Bedrockの場合、生成AIの基盤だけあってさまざまは会社のモデルが使用でき、今後も拡張され、目的が決まっているのであれば、将来的にはより適切なモデルが選べるという優位性が出てくることが予想されます。また使用に関しても見て頂いたように、ほとんど直感的に設定と利用ができるので、難しいという印象はないのではないかと思います。ですので、もしAWSアカウントをお持ちの方であれば、一度Amazon Bedrockで生成AIをお試しいただければと思います。
CTCは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。