2023年9月、アマゾン ウェブ サービス社の生成系AIサービス「Amazon Bedrock」が正式に提供開始され、国内各社で生成系AIの検証および導入事例が増えてきています。当社はAmazon Bedrockの限定プレビューにて検証を行い、9月28日(木)より「Amazon Bedrock導入ソリューション」の提供を開始しました。そして生成系AIの導入を更に推進するため、11月2日(木)には、社内技術者を対象としたアマゾン ウェブ サービス社によるハンズオンセミナーを開催しました。
本コラムでは、そのハンズオンセミナーの内容を一部ご紹介します。
ハンズオンの内容
ハンズオンの主な内容は、Retrieval Augmented Generation(RAG)のアーキテクチャを利用した検索ツールを構築し、AIとのQ&Aを体験する、といった内容でした。
RAGとは、Amazon BedrockやAmazon SageMakerなどの生成系AIと、Amazon Kendraなどの検索サービスを組み合わせた手法を指します。LLM単体で利用した場合、事実とは異なる内容を回答してしまうハルシネーションで、想定外の動作をしてしまうことがあります。その課題を改善する技術がRAGであり、文章検索で関連文章を抽出してLLMにプロンプトとして渡し、LLMがそのプロンプトを基に回答するという手法です。この手法により、プロンプトの質が高い状態になるため、LLMはより精度の高い回答を生成できるようになります。
<AWS構成図>
ハンズオンでは、予め用意された構築の手順やソースコード(アプリケーションやIaC含む)を利用して、検索ツールを簡単に構築できました。ハンズオンで利用したサンプルソースや手順はAWS公式のGitHubに展開されていますので、ご興味のある方はこちらをご参照ください。
https://github.com/aws-samples/jp-rag-sample/tree/main
検索ツールには、3種類の検索モードが用意されています。それぞれのモードを選択して質問ができるため、各モードの回答の特性を体感できます。
- AIモード:プロンプトをLLMに送信し、回答を生成する。
- Kendraモード:プロンプトをKendraに送信し、文書検索した結果を回答する。
- RAGモード:プロンプトをKendraに送信し、文書検索した結果を利用してLLMに回答を生成させる。
ハンズオンの実施結果
実際に検索ツールですべてのモードに対して「Amazon Kendraについて教えてください」と質問してみました。
<前提条件>
- Amazon SageMakerにて指定した学習モデル(LLM):rinna/japanese-gpt-neox-3.6b-instruction-ppo(rinna 社が開発した日本語対応されたモデル)
- Amazon Kendraのデータソース設定:Amazon EC2、Amazon Kendra、Amazon LexのAWS公式ドキュメントのURLに対するWebクローラーを指定
<各モードの回答>
- AIモード
- Kendraモード
- RAGモード
AIモードは、Amazon Kendraに関する内容とは全く異なる回答が返ってきてしまいました。(これが“ハルシネーション”という現象です)
Kendraモードは、コネクタとしてWebクローラーを利用するよう設定しているため、今回はAmazon KendraのAWSドキュメントに対する検索結果が関連文章として表示されています。
RAGモードは、Amazon Kendraについて検索した結果をもとに、LLMにて回答を生成しています。“Amazon”のワードが強く残っていて、少し違和感はありますが、AIモードに比べて回答の精度は上がっているようです。
ハンズオンの感想
ブログやドキュメントを読むだけでは、単体でLLMを利用した場合とRAGを利用した場合での精度がどれほど違うものなのかイメージがつかなかったのですが、今回のハンズオンを通してその違いを理解することができ、非常に良い経験となりました。
予め用意されたコードを基にLLMの環境を構築したため、Amazon KindraやAmazon SageMakerの各設定内容や構築の手順まで体験することができませんでした。これについては、GitHubにて提供されているAWS CloudFormationの中身を確認し、各AWSサービスを手動で構築してみることで、より生成系AIサービスへの理解が深まるのではないでしょうか。
追加検証
セミナー内のハンズオンでは、LLMにAmazon SageMakerを利用しましたが、ハンズオン資料にAmazon Bedrockを利用した手順も含まれていましたので、試してみました。Amazon Bedrockにて指定したLLMは以下の2つです。
- Claude Instant v1.2(Anthropic 社が開発した日本語対応されたモデル。現在東京リージョンで利用できる唯一のモデル)
- Claude v2(上記の上位モデル)
<各モードの回答>
- AIモード
【Claude Instant v1.2】
【Claude v2】
- Kendraモードの結果はハンズオンと同様であったため割愛します。
- RAGモード
【Claude Instant v1.2】
【Claude v2】
AIモードの回答の差について、LLMによって生成される文言が異なることは予想していましたが、RAGモードでもかなり差が生まれる結果となりました。
また、Amazon Bedrockで利用したClaude Instant v1.2とClaude v2の回答結果ですが、RAGモードではClaude v2の文章が優れていました。AIモードでは、Claude v2は回答が途切れていました。その原因は不明ですが、Claude Instant v1.2・Claude v2どちらも正しい情報を回答しているようです。Amazon Kendraのサービス開始は2020年5月頃だったため、ある程度最近の情報も理解していることが回答結果からも読み取れます。Claude Instant v1.2は、回答速度の速さや価格の安さがClaude v2よりも優れているようなので、用途に合わせてモデルを選択することもできると感じました。
追加検証を通して、Amazon Bedrockにて利用できるClaude Instant v1.2・Claude v2どちらのモデルも回答の精度が高い印象を受けました。Claude Instant v1.2は既に東京リージョンで利用できるため、国内向けの生成系AI実用化に向けた検証がより捗るのではないでしょうか。
同セミナーでは、ハンズオンの他に座学やデモンストレーションを通じて、最新動向など多くの情報を入手できました。富士ソフト全体の生成系AIに対する理解および技術レベルの向上に繋がる体験ができたと思います。
当社では引き続き生成系AIの推進に取り組んでまいりますので、ご興味のある方はぜひ富士ソフトまでお問い合わせください。
Amazon Bedrock導入ソリューションについて、詳しくはこちら
Amazon Bedrock導入ソリューション