第8回 Classmethod AI Talks(CATs)のご質問に対する回答
AWS事業本部コンサルティング部の石川です。明日の【11/20(水)リモート】「AWSにおける生成AI&データの全体像」と「より良い成果を得るためのRAGとの向き合い方」のイベントで、事前にいただいた質問について回答をまとめさせていただきました。
Q1.
生成AIを利活用する上で「生成AIがアクセスするデータ」について気になっていること、聞いてみたいこと、悩みや苦労などはありますか?もし何かあるようでしたらお気軽にコメント頂けますと嬉しいです。
Q1-1. ドキュメント内の表形式の回答を向上したい
社内規程、各種設計ドキュメントなどには文中に表形式が差し込まれていることが多々あります。そのようなファイルを元に回答を得ることが難しく、一方でフォーマット形式を変更することも難しいため、どのようなアプローチが取れるのかお聞きしたいです。
A1-1. AWSにおける2つの情報を抽出するためのアプローチ
社内規程や設計ドキュメントなどに含まれる表形式のデータを効果的に処理し、必要な情報を抽出するためのアプローチを2つご紹介します。
テーブル抽出ツールとLLMの連携
doclingなどのツールを使用してテーブルを抽出し、その結果をBedrock上のLLMで処理します。doclingについては、以下のブログをご覧ください。
また、今回のご質問を受けて表形式のデータについてどれくらい読み込めるかも追加検証しました。結果としては、セル結合や日本語はご認識があるため用途としては限定的になります。
Amazon Bedrock Knowledge bases の Advanced Parsing オプションの活用
Amazon Bedrock では、Advanced Parsing というオプションを有効にすることで表形式の認識精度を上げることができます。マルチモーダルLLMである Anthropic Claude 3 モデル(Sonnet, Haiku)の優れた画像理解能力を活かし、文書内の表を含む視覚的要素を理解し、テキストと表の両方から情報を抽出します。
Q1-2. 利用者の権限に応じてデータへのアクセスを制御
社内文書でRAGを構築する場合、利用者が持つ権限と生成AIがデータソースにアクセスする権限を合わせたいことがあります。
権限ことにデータソースをわけたり、文書にメタデータを付与して権限を制御するなどユースケースに応じたやり方はいろいろあるが、事例があれば知りたい。
A1-2. AWSにおける2つの権限制御のアプローチ
Amazon Bedrockを利用してRAG (Retrieval Augmented Generation) システムを構築する際、利用者の権限に応じてデータへのアクセスを制御することは重要なテーマです。
Amazon Bedrockを利用したRAGシステムにおいて、ユーザーの権限に応じたデータアクセス制御を実現するには、メタデータを用いた制御、Amazon Bedrock Knowledge basesもしくはAmazon Kendraの活用など、複数のアプローチが可能です。具体的な実装方法は、組織の要件やシステムの規模によって選択するします。
この課題に対処する2つの方法を紹介します。
Amazon Bedrock Knowledge bases の メタデータフィルタリングを用いた権限制御
より柔軟な方法として、文書にメタデータを付与し、そのメタデータに基づいて権限を制御する方法があります。
- 文書をチャンクに分割する際に、各チャンクに権限情報をメタデータとして付与します。
- ユーザーがクエリを送信する際、そのユーザーの権限情報も一緒に送ります。
- 検索時に、ユーザーの権限とチャンクのメタデータを照合し、アクセス可能なチャンクのみを取得します。
- 取得されたチャンクのみを使用してAIが回答を生成します。
Amazon Kendraを活用した権限制御
Amazon Kendraを利用することで、より高度な権限制御を実現できます。Kendraは文書レベルでのアクセス制御やユーザーの認証情報に基づいて検索結果をフィルタリングできます。
メタデータによる文書レベルでのアクセス制御
データソースが S3 の場合に各ファイルごとにメタデータ(.json)を配置しメタデータの付与を行います。データを取得する際にはメタデータをもとにアプリ側でフィルター指定します。
ユーザーの認証情報に基づいて検索結果をフィルタリング
データソースが S3 の場合、ファイルに加えてフォルダレベルでアクセス制御が可能です。各ドキュメントにアクセス制御リスト(ACL)を設定してドキュメントをインデックス化します。データを取得する際にはAmazon Cognito(ユーザーの認証認可サービス)を用いて認証してトークンを利用者に払い出し、利用者はトークンを用いてKendraにクエリを実行、回答を得ます。認可の仕組みは、Amazon CognitoがKendraから受け取ったトークンに基づきアクセス可能なドキュメントのみを検索結果として返します。
Q1-3. 秘密保持の観点での課題と対処と、RAGの精度向上のポイント
このご時世、社内ノウハウのRAG構築は当たり前にやられてるかと思いますが、秘密保持の観点で、採用時に壁となった事例や対処についておしえてほしです。
また、RAGの精度を上げるための、ポイントを教えてほしいです。
銀の弾はない、とは思いますが、現時点での最低限を知りたいです。よろしくお願いします。
A1-3.
RAGの構築における秘密保持の課題と対処、および精度向上のポイントについて解説します。
秘密保持の観点での課題と対処
秘密保持の観点で採用時に課題なったのは、Q2でも質問いただいた「利用者の権限に応じてデータへのアクセスを制御」です。利用者については、メタデータによるフィルタリング対策は可能です。RAG構築に限った話ではありませんが、不適切な情報アクセスやデータの外部流出リスクも考慮すべきでしょう。
次に考えられる課題は、個人情報の取り扱いです。個人情報をベクトルDBに取り込むことになると、個人情報取扱い事業者としての責務が生じます。個人情報を保持しないのか、個人情報を保持するなら保持するRAGシステムを分離するなど、システム設計、運用体制などのコストも考慮する必要があります。
最初に取り組むRAGの精度向上のポイント
「現時点での最低限」を判断するためのシステム要件やユースケース、システムの規模、ドキュメントの品質、期待する回答精度などの前提条件がありませんので、今回はAmazon Bedrock Knowledge basesを前提とした、Low-huging fruit戦略(低コスト高効果戦略)の観点で回答します。RAGの精度を向上させる最初におすすめ施策を紹介します。
プロンプトエンジニアリング
- 効果的なプロンプトの設計と最適化
検索技術の最適化
- ベクトル検索の導入
- ハイブリッド検索(キーワード検索とベクトル検索の組み合わせ)の活用
チャンク分割の最適化
- 適切なサイズと重複を考慮したチャンク分割
- セマンティックチャンキング
複雑なクエリをサブクエリに分解
- クエリ分割(Break down queries)を有効化
- LLMの問い合わせ回数が増えるためランニングコストは増加
更なるRAGの精度向上のポイント
システム要件やユースケースによっては取り組んだほうが良い項目を紹介します。
データの品質管理
- 信頼性の高いデータソースの選定(Garbage In, Garbage Out の回避)
- 定期的なデータ更新とメンテナンス
データの構造化
-
メタデータの付加による検索効率の向上
-
QA形式でのデータ構造化
最新技術の導入
- GraphRAGやReranking技術の活用
継続的な評価と改善
- 適切な評価指標の設定と定期的な性能評価
- フィードバックに基づく継続的な改善
Q1-4.
弊社では、工場のあらゆるデータを可視化するソリューションを展開しています。ラインの設備稼働状況や品質情報などの可視化〜アラートの流れはわかりやすいのですが、さらにそこに含まれるデータの分析をどういった目的でどのように進めていくのかについては、まだまだ試行錯誤が必要な状況です。
AIを使ったデータ分析について、業務における課題感からどのようにして仮説を建ててデータ分析をすすめていくのか、またその手法など、データ分析における課題に対する取り組み方なども可能であれば聞いてみたいです。
A1-4.
AIを使ったデータ分析に取り組みたいと考えていますが、具体的に何を分析したいのかという点については、まだ明確になっていない状況のようです。
分析対象の明確化
生成AIが読み込めるデータのサイズ(コンテキストサイズ)は、最大でも200,000トークンです。工場のPLCのデータサイズはそれよりも大きいことが予想されますので、生成AIとは別のアプローチが必要になりそうです。
業務における課題については、現状分析(As-Is)します。その結果、あるべき姿(To-Be)を描き、それを実現するための指標を定めます。データ分析を効果的に進めるためには、明確な目的設定と仮説構築が重要です。
- 業務課題の明確化
- 仮説の構築
- 必要なデータの特定
- データの収集と前処理
- データ分析
- 結果の解釈と施策の立案
- 施策の実施とモニタリング
データ分析を成功させるためには、明確な目的設定、適切な仮説構築、そして継続的な改善サイクルの確立が重要です。現場の知見と組み合わせることで、より価値のある洞察を得ることができるでしょう。
Q1-5. 個人情報と機密情報の保護、AIの出力の公平性、最新情報へのアクセス
①個人情報や機密情報が適切に保護されているか。
②AIの出力が公平か。
③AIが最新の情報にアクセスできているか。
A1-5.
AIツールの利用に関して、ご質問毎に回答いたします。
個人情報と機密情報の保護
個人情報や機密情報の保護は、AIツールを使用する上で最も重要な懸念事項の1つです。多くのAIサービスプロバイダーは、ユーザーのプライバシーを守るためのセキュリティ対策を実施していますが、完全な保護を保証することは困難です。
対策
- 機密性の高い情報をAIツールに入力しない
- プライバシーポリシーを確認する
- 必要に応じて匿名化やマスキングを行う
AIの出力の公平性
AIの出力の公平性は、学習データやアルゴリズムのバイアスによって影響を受ける可能性があります。多くのAI開発者がこの問題に取り組んでいますが、完全な公平性を達成するのは難しい課題です。
最新情報へのアクセス
生成AIモデル(LLM)にはナレッジカットオフがあり、これは学習データの最終日を指します。このカットオフ日以降の情報については、モデル自体は直接的な知識を持っていません。
RAG(検索拡張生成)技術は、この制限を克服するための一つの方法です。RAGは、ユーザーの質問に関連する最新の情報を外部ソースから検索し、その情報をAIモデルに提供します。これにより、AIは最新のデータに基づいて回答を生成できる可能性があります。ただし、AIが最新の情報にアクセスできるかどうかは、RAGシステムの実装と、そのシステムが使用する情報源の更新頻度に大きく依存します。適切に実装されたRAGシステムは、AIモデルが最新の情報を考慮に入れて回答を生成することを可能にします。
したがって、AIが最新の情報にアクセスできているかは、AIモデル自体の能力だけでなく、RAGシステムの効果的な実装と、そのシステムが利用する情報源の質と最新性にも左右されます。
RAGシステムによっては、実際にどのようなデータを収集(Retrieve)しているかは、ログファイルから確認できるかもしれません。
Q1-6.
RAGを使ったシステムを内製し、社内で運用する中で、データ品質の重要性を自身では再認識する一方で、データーオーナー側でそのためにリソースを割いたり技術を習得したり方向には向かず、ITチームに丸投げになってしまう。
A1-6.
この問題は多くの組織で直面する課題であり、RAG(Retrieval-Augmented Generation)システムの効果的な実装と運用において重要な障壁となっています。
データオーナーの皆様が生成AIの取り組みに前向きではない理由として考えられることは、データオーナーの皆様の業務が多忙でデータ品質の向上の取り組みに対する優先順位が低いからかもしれません。データ利活用(DX)の初期段階では、経営層の支援獲得しデータ駆動型経営の重要性を説明、トップダウンでの推進力を確保することが欠かせません。また、データ品質の向上に協力していただいた方や生成AIの仕組みを用いて成果を挙げた方を称賛する組織全体でデータ品質を重視する文化を醸成する事が欠かせません。
データ品質向上への投資は、短期的にはコストと労力を要しますが、長期的には組織全体に大きな利益をもたらします。高品質なデータは、生成AIの性能向上だけでなく、意思決定の質の向上、リスク管理の強化、競争優位性の確立など、多岐にわたる恩恵をもたらします。データオーナーの皆様に、この投資が組織の未来を左右する重要な取り組みであることをご理解いただき、積極的な協力をお願いしてください。データ品質の向上は、単なるIT部門の課題ではなく、組織全体の成功と持続可能な成長のための戦略的イニシアチブです。
Q2.
当コミュニティでは生成AIに関する様々なトピックやテーマを採り上げていこうと思っています。イベントやセッションの内容として「こういうのが見たい、聞きたい、参加したい」といったリクエスト、ご要望があればその内容についてお聞かせ頂けますでしょうか。今後の参考にさせて頂きたいと思います。
Q2-1.
企業が持っている 過去のデータを、うまく分析や要約する方法はありますか?
例えば、過去の電気製品の故障事例から、なにかポイントをついた分析をさせる等よろしくお願いします。
A2-1.
データ分析に取り組みたいと考えていますが、具体的に何を分析したいのかという点については、まだ明確になっていない状況のようです。
分析対象の明確化
データ分析には、探索的データ分析(EDA: Exploratory Data Analysis)と、確証的データ分析(CDA: Confirmatory Data Analysis)の2つに大きく分類されます。
明確になっていない状況では、まず探索的データ分析(EDA)から始めるのが適切です。EDAは一般的に数値の要約と視覚化を使用してデータを探索し、変数間の潜在的な関係を特定します。非構造化データ(自然言語)の場合は、生成AIを活用してドキュメントを読み込ませ、質問することで潜在的なパターンや関係性を見出すことができます。
潜在的な関係性や仮説が見出された段階で、確証的データ分析(CDA)に移行します。CDAは、一般的には特定の仮説や予測を統計的に検証することが主な目的です。非構造化データ(自然言語)の場合は、EDAで得られた仮説を他のドキュメントや新たに収集したデータに対して検証します。仮説が正しい場合、さらに因果関係の分析を検討します。
また、EDAとCDAは一度で結果を得られるものではなく、反復的に行われることがあります。新たな発見がEDAで得られれば、それに基づいて新しい仮説を立て、再びCDAで検証するというサイクルを繰り返すことで、より深い洞察を得ることができる相互補完的な関係にあります。
電気製品の故障の分析
分析用検討して、生成AIが効果的であるかは検討の余地がありますが、以下の分析アプローチが考えられます。
故障頻度分析
- 製品別、部品別、故障モード別に故障頻度を集計し、最も問題の多い箇所を特定します。
- 時系列で故障頻度の推移を分析し、季節性や経年変化のパターンを把握します。
故障原因の層別分析
- 4元マトリクスなどを用いて、設備・機器・部品・故障モードの4つの層別項目を同時に分析します。
- どの製品のどの部品でどのような故障が多いかを総合的に把握できます。
故障時期の分析
-
製品の使用期間と故障の関係を分析し、以下のような傾向を把握します
-
初期不良の発生状況
-
経年劣化による故障の傾向
-
製品寿命の予測
-
最後に
生成AIの利活用に関する様々な課題や疑問点について、回答しています。主なトピックとしては、表形式データの処理、権限に応じたデータアクセス制御、秘密保持と個人情報保護、RAGの精度向上、工場データの分析アプローチ、AIの公平性や最新情報へのアクセス、データ品質向上の組織的課題などが取り上げました。
これらの課題に対して、Amazon BedrockやKendraなどのAWSサービスを活用した具体的な解決策や、プロンプトエンジニアリング、データの構造化、継続的な評価と改善といったRAG精度向上のポイントがまとめています。また、データ分析においては目的設定の重要性や、探索的データ分析(EDA)から確証的データ分析(CDA)へのアプローチ方法も説明しています。
明日のイベントでもよろしくお願いいたします。