Amazon Web Services ブログ

Knowledge Bases for Amazon Bedrock (RAG) を活用して設計開発や研究における特許検索を効率化しよう

みなさん、こんにちは!製造業のお客様を中心に技術支援を行っているソリューションアーキテクトの山田です。

このブログでは、昨年末のAWS re:Invent 2023 で発表された新機能・Knowledge Bases for Amazon Bedrock を活用して、設計開発や研究における特許検索を効率化する方法について解説します。

はじめに 過去の関連ブログ

前々回、こちらのブログで、AWS の生成系 AI サービス・ Amazon Bedrock の Claude v2 ( by Anthropic 社) モデルを指定して、 Playgrounds のチャット機能を手軽に使用し、設計開発ドキュメントを効率的に作成する方法について解説しました。

前回、こちらのブログで、Amazon Bedrock の Stable Diffusion XL v0.8 ( by Stability AI 社) モデルを指定して、 Playgrounds の画像生成機能を手軽に使用し、新規プロダクト開発において意匠を文章から作るような、企画構想を充実させる方法について解説しました。

Knowledge Bases for Amazon Bedrock について

Knowledge Bases for Amazon Bedrock を使用すると、Amazon Bedrock 内から 基盤モデル をデータソースに接続して検索拡張生成 (RAG) を行うことができます。

RAG は、プライベートデータの使用と基盤モデルを組み合わせた技術です。仕組みを理解するために、Amazon Bedrock のチャット機能と比較します。まずチャット機能のイメージ図です。

次に、Knowledge bases for Amazon Bedrock (RAG)のイメージ図です。

上のレーンの流れを説明します。①データソースから②ドキュメントを管理しやすいチャンク(通常2〜8語程度からなる意味を形成する塊)に分割し、③Embedding(埋め込み:テキストを言語モデルが処理しやすい数値ベクトル表現に変換する)を生成し、④埋め込みをベクトルDBに格納します。

下のレーンでは、水色の箇所が通常のチャット機能と共通する部分になりますが、⑤ユーザーの問い合わせに対して上のレーンと同様に Embedding を生成し、⑥ベクトル DB と照らし合わせて似たドキュメントを検索した上で、検索結果を加味して Text モデルが回答生成し、ユーザーに回答します。

これによって、例えばデータソースを社内ストレージに指定することで世に出ていない自社固有の回答をセキュアに生成したり、または外部の信頼できる知識ベースから事実を検索して、最新の正確な情報に基づいて回答を生成することが可能になります。

Knowledge Bases for Amazon Bedrock を使用することで、RAGの機能がコード不要で、Amazon Bedrock のマネージドな機能で簡単に実現でき、エージェントの構築時間を短縮できます。また、ナレッジベースを追加することで、プライベートデータを活用できるようにモデルを継続的にトレーニングしたりする必要がなくなるため、費用対効果も向上します。

なお、本ブログの内容は2024年3月21日時点の内容に基づいて執筆しています。執筆段階では東京リージョンにおいては Knowledge Bases for Amazon Bedrock は利用できません。 現時点で Knowledge Bases for Amazon Bedrock が利用できる北米のバージニア北部リージョンで試行を行います。また、 Amazon Bedrock は日々進化しており、執筆段階ではできなかったことも、ブログを読んでいただいた時点ではできるようになっている場合もありますのでご注意ください。

取り組む内容

今回のテーマは設計開発における特許検索です。特許を検索する際の主な課題は以下のようなものがあります。

  • 特許の内容は一見難解であることが多いため、解釈が難しい
  • 新規発明案に対して、既に類似の特許が出願されているかを調べるのが困難

こういった課題に対して、Knowledge Bases for Amazon Bedrock を活用して、特許データが保管されているデータソースを対象として RAG を実行することで解決を試みましょう。

Knowledge Bases for Amazon Bedrock のデータソースは現状、Amazon S3 が指定できるようになっています。Amazon S3 に検索対象のデータを保管しますが、例えばもし世の中に存在する全ての特許ファイルを保管してしまうと、データ保存コストやベクトル DB を作成するコストが大幅に上がってしまうため、例えば関連する大きなテーマで絞り込むなどして、RAG を行う目的に応じて適切な特許ファイルを保管するようにしましょう。

Knowledge Bases for Amazon Bedrock の使用にあたって発生する料金については以下関連サービスの料金ページをご参照ください。

Amazon Bedrock

Amazon S3

Amazon OpenSearch Serverless

今回はサンプル題材として、筆者が過去に発明した以下の特許3件を対象に、Bedrock で実現した RAG の仕組みに取り込みます。PDF ファイルをダウンロードして Amazon S3 に保存します。

実行方法

まずマネジメントコンソール上部の検索バーで、「bedrock」などと打ち込んでいただくと、 Amazon Bedrock が候補に表示されます。クリックしてサービス画面に移行してください。

サービス画面に移行すると、画面左に オーケストレーション という項目が表示されます(※初回アクセス時はペーンが表示されておらず「Get started」ボタンを押す必要がある場合があります)ので、配下にある ナレッジベース 機能にアクセスしてみましょう。これが Knowledge Bases for Amazon Bedrock になります。

ここからページ下部にあるオレンジ色の「ナレッジベースを作成」をクリックします。

まずナレッジベース名を入力します。識別しやすい名前をつけてください。

画面下部にある IAM 許可については、「新しいサービスロールを作成して使用」を選択します。サービスロール名は自動的に付与されたもので構いません。

「次へ」を押すと、データソース設定ステップに進みます。

ここではデータソース名を入力します。ナレッジベース名のときと同様、識別しやすい名前をつけてください。

また、RAG のデータソースとなる S3 の URI を指定します。今回のサンプル題材である特許 PDF 3ファイルが保存された S3 バケットのURIを指定します。PDF ファイルを S3 バケットに保存する方法はこちらをご参照ください。なお、Knowledge Bases for Amazon Bedrock は次のファイル形式をサポートしています。

「次へ」を押すと、埋め込みモデルの選択画面に進みます。埋め込みモデルは、RAG のイメージ図のところで説明した Embedding モデルに相当します。ここでは、Amazon が提供する Titan Embeddings G1 – Text モデルを選択します。このモデルは、テキスト検索や、テキスト間のセマンティック類似性の測定、クラスタリングなどのユースケースに活用ができます。 Amazon Titan Embeddings は正式には日本語対応が発表されていませんが、現状でも一定の性能でご利用いただけます。

画面下のほうにあるベクトルデータベースについては、「新しいベクトルストアをクイック作成」を選択します。

「次へ」を押すと、確認して作成ステップに進みます。これまでのステップでの設定をあらためて確認し、一番下にあるオレンジ色の「ナレッジベースを作成」ボタンを押すと、ベクトルデータベース作成、ナレッジベース作成が自動的に開始されます。作成が完了したら、「同期」ボタンを押します。データソースの同期が完了するまでに要する時間はデータ量によりますが、今回のような サンプル題材 PDF 3ファイルの場合は、筆者のネットワーク環境では数秒ですぐに完了しました。

今後、例えばデータソース内の PDF ファイルが新たに100個追加された場合など、更新があったときは同様にデータ同期を実施すると RAG のデータソースが都度更新されることになります。

データソース同期が完了すると、ナレッジベースをテストすることができます。画面右側にあるオレンジ色の「モデルを選択」をクリックします。ここでいうモデルは、 RAG のイメージ図のところで説明した Text モデルに相当します。

候補として提示された基盤モデルの中から選択しますが、ここでは Anthropic 社の Claude の中で最新バージョンの v 2.1 モデルを指定します。

わずかこれだけの前準備で Knowledge Bases for Amazon Bedrock が使用可能な状態になりました。

特許検索における課題への対応

それでは、特許検索における以下課題にどのように対応できるかを見ていきましょう。

課題1 「特許の内容は一見難解であることが多いため、解釈が難しい」

今回のサンプル題材の3つはいずれも極低温冷凍機という一般の方には馴染みが薄いプロダクトを対象としています。その中の一つ、たとえば、 JP2013174393A の文章を見てみますと、馴染みが薄い方には文意を読み取るのが難しいかもしれません。発明者の私ですら正直理解するのが困難です。

そこで、Bedrockに対して以下のような質問を投げてみましょう。以下画像のメッセージ入力欄に質問を書き、オレンジ色の実行ボタンを押します。

Bedrockへの質問「特許JP2013174393Aについて。この特許はどのような内容で、どのような点に新規性、進歩性があるのか、中学生にもわかる言葉で簡潔に説明してください。」

すると、以下画像の紫枠のように、回答を返してくれました。

極低温冷凍機がどういう原理で動作しているかや、特許要件として重要な要素である新規性・進歩性は「弾性手段」を設けてモータ負荷を軽減する工夫を取ったところにあるということが簡潔に要約されました。

また、回答文の中に[1]、[2]といったリンクが付いています。[1]、[2]は回答の元になった文書を指しており、これによって、ファイル内の広範囲に及ぶ情報の中のどの箇所を根拠として回答したかが明らかになり、ユーザーは回答の信頼性を簡単に確認できます。

課題2 「新規発明案に対して、既に類似の特許が出願されているかを調べるのが困難」

自分の思いついた発明内容は既に他人によっても発明されており、特許取得されていたというのはよくあるケースです。手戻りの無駄が発生することを防ぐために、以下のようなRAGを使って類似特許を確認する事前確認を取りましょう。

例えば、極低温冷凍機に関する以下のような発案をした場合です。

Bedrockへの質問「モーターの回転運動を往復運動に変換するネジ螺合駆動形式の極低温冷凍機を発案しました。これによって従来の形式よりも機構部分の部品点数が少なくコストが低くできます。これと内容が重複する既存特許はデータソースの中にありますか?」

これに対しても課題1のときと同様の形式で以下回答を返してくれました。

Bedrockからの回答「はい、データソースの中に本発明と内容が重複する既存特許があります。[1] [2] [3] [4] [5]
特許文献1から5は、モーターの回転運動を螺合機構(ネジ機構)によってディスプレーサの往復運動に変換する極低温冷凍機に関するものであり、本発明と同様に機構部分の部品点数が少なくコストが低減できることが記載されています。[6] [7] [8] [9] [10]

これはデータソース内にある JP2013174394A という特許を指します。

このような形で、概要のような曖昧な文章からでも類似特許を検索でき、重複を指摘してくれます。今回はサンプル題材3ファイルをデータソースに保存しただけですが、データが膨大になるほどより効果を発揮します。

ただし、プロンプト(質問文の書き方)によっては似たような特許が存在するにも関わらず検索されない場合もあります。プロンプトが望ましい形で書かれていた場合であっても、 出願するにあたっての判断のためには弁理士など専門家によるチェックを依頼することを推奨します。

また、今回のような利用方法をする場合には、著作権など法的な問題がないことをご確認のうえ実施いただきますようお願いします。

まとめ

いかがでしょうか。今回は特許検索を題材としましたが、取り扱った二つの課題解決応用以外にも、データソース内にある特許を組み合わせて新たな発明を検討するような使い方をするなど、他にも様々な活用アイデアが考えられると思います。

また、特許検索以外にも、社内文書をデータソースにした RAG は多種多様なユースケースが考えられます。例えば、自社製品の設計過去トラブル集をデータソースとし、新規製品の設計を行うに当たって困っている検討箇所があった場合に、注意すべき点を問いかけて、該当する過去の失敗事例やその解決策を提示してもらう、などが考えられます。

新機能の Knowledge Bases for Amazon Bedrock を活用して、少ない前準備で手軽に RAG を実施し、業務を効率化させていきましょう。

著者プロフィール

山田 航司 (Koji Yamada @yamadakj)
アマゾン ウェブ サービス ジャパン合同会社 ソリューションアーキテクト

製造業のお客様を中心にクラウド活用の技術支援を担当しています。好きな AWS のサービスは Amazon Transcribe です。

愛読書は「大富豪トランプのでっかく考えて、でっかく儲けろ」です。