Amazon SageMaker Jumpstartで大規模言語モデル(LLM)を試してみた

記事タイトルとURLをコピーする

サーバーワークスの村上です。

NBAはいよいよカンファレンスファイナルが始まりますね!

正直レイカーズがここまで勝ち上がるとは思っていませんでした、とっても楽しみです。

楽しみなことと言えば、2023年4月に新しいGenerative AI(生成系AI)サービス「Amazon Bedrock」が発表されましたね。現在は限定プレビューですが、近い将来使ってみるのが楽しみです。

aws.amazon.com

さて今回は、生成系AIアプリをサクッと作れるというAWSブログが公開されていましたので、それを試してみたというブログです。

aws.amazon.com

前提:基盤モデルとは

基盤モデルとは大量のデータで訓練された、さまざまなタスクに対応できるモデルです。

従来の機械学習モデルは、数値データから目的の値を予測したり、画像データから分類をしたり、対応したいタスクに特化していました。これに対しChatGPTなどの基盤モデルでは、要約や翻訳、画像生成など多様なタスクに対応できるという違いがあります。

【開催報告 & 資料公開】Generative AI(生成系 AI)へのアプローチ – 今、見直される AI 活用と変革を迎える生成系 AI 戦略より抜粋

作成するアプリケーション

構成は以下のとおりです。

前提として、Amazon KendraのデータソースにはAmazon SageMakerの公式ドキュメントを定義しています。ウェブサイトのリンクを設定するだけで、あとはKendraのクローラが内容を読み込んでくれます。

Quickly build high-accuracy Generative AI applications on enterprise data using Amazon Kendra, LangChain, and large language modelsより引用

利用の流れとしては、

①ユーザーがアプリケーションのUI上で質問します。

②③Kendraは関連するドキュメントを検索し、アプリケーションに結果を応答します。

④アプリケーションは上記の結果を添えて、機械学習モデルに質問をプロンプトとして渡します。

⑤⑥機械学習モデルは質問の回答を応答し、アプリケーションはユーザーに応答します。

以上のようになります。

使ってみる

構築手順はAWSブログ「Quickly build high-accuracy Generative AI applications on enterprise data using Amazon Kendra, LangChain, and large language models」に詳細が記載されていますので、そちらをご参照ください。

SageMaker Jumpstartでは自分の好きなモデルを選択してデプロイするだけで、自分の環境に推論エンドポイントが作成されます。

ただし、さすが基盤モデルだけあって小さなインスタンスタイプではモデルをホストできません。ここではml.p3.2xlarge(執筆時点で$5.242/h...!)を選択しています。

質問1. SageMaker AutopilotでParquet形式は使えますか?

まずはシンプルな質問をしてみたところ、yesとだけ返ってきました。

サンプルアプリケーションのUI上にある「Source」にはKendraが見つけたリンクが掲載されています。

なお、回答は正しい結果です。

aws.amazon.com

ちなみにAmazon Kendra自体が検索サービスですので、同様の質問をしても適切なドキュメントを案内してくれます。LLMを利用することで変わるのは、ユーザーへの応答形式です。

質問2. SageMaker Autopilotではどのようなファイル形式が使えますか?

さきほどの質問をオープンクエスチョンにしてみたところ、CSV files or as Parquet filesと回答されました。

英語に若干の違和感がありますが、おそらく参照しているドキュメントの該当部分をそのまま答えているのかと考えます。その理由は、Sourceに記載された公式ドキュメントに同じ表現があるからです。

Autopilot supports tabular data formatted as CSV files or as Parquet files.
Amazon SageMaker Autopilot datasets and problem types - Amazon SageMaker

質問3. 日本の首都はどこですか?

Kendraに定義したデータソースにはない情報を確認してみたところ、don't knowと返ってきました。これは今回のサンプルアプリケーションの仕様上、Kendraが情報を見つけられない場合にdon't knowと返すようになっているためです。

使用しているモデル自体はさまざまなタスクに対応できる基盤モデルなので、Kendraを介さずに質問すると答えてくれます。

SageMaker Jumpstartから起動できるサンプルノートブックでは、以下のようにボロネーゼのパスタの作り方を答えてくれています。

SageMaker Autopilotのメリットも答えてくれました。SageMaker Autopilot is a powerful, easy-to-use, and affordable way(SageMaker Autopilotは、パワフルで使いやすく、低価格な方法です。)

感想

最近話題のChatGTPでいろいろ質問してみるのも面白いですが、様々な基盤モデルをファインチューニングして自社向けにしたり、任意のアプリケーションからAPIとして活用すると、さらに可能性が広がるな実感しました。

やはり実際に触ってみるのは重要だと思います。SageMaker Jumpstartはさまざまなモデルを素早く試すことができるので、ぜひみなさんも試してみてください。

村上博哉 (執筆記事の一覧)

2020年4月入社。機械学習が好きです。記事へのご意見など:hiroya.murakami@serverworks.co.jp