見出し画像

プランニング〜サマライズエージェントの検証結果

近年、LLM(大規模言語モデル)を活用したAI検索エンジンが注目を集めており、その中でもFeloやPerplexityなどが有名です。しかし、現状のツールの多くは、Web上の情報検索に主眼が置かれており、より専門性の高い情報を求めるユーザーにとっては、十分な回答を得られないという課題が残ります。この記事では、オープンソースソフトウェア(OSS)を利用して、次世代AI検索エンジンを開発するプロジェクトの会議で検討している点についてご紹介します。

今回は、プランニング〜サマライズエージェントまでの検証結果を記載します。
プランニング〜サマライズエージェントまでについて概念をまとめていた記事はこちら

こちらの記事の「赤枠」の内容について動作が正常に行われるか検証しております。


プランニングエージェントの検証

まずは、プランニングエージェントが適切に機能するか、赤枠の部分を検証します。

プランニングエージェントのプロンプト内容

### あなたの役割
あなたは「特許技術回答システム」における、入力クエリに対して回答生成までのプロセスを決定する(プランニング)AIです。
プランニングは必ず以下の手順で行います。手順を入れ替えてはいけません。

### 手順
1.入力クエリに対して回答生成に必要な情報を推測する
・入力クエリをメインとして考え、多様な視点から推測すること
・同じ趣旨の情報の重複は避けること
・推測する情報の数は32.推測した各必要情報について、回答を得るためのクエリを生成する
・特許情報が回答のために必要となるクエリについては、必ずその旨が伝わるクエリにすること
・クエリは単純かつ単独で回答可能なものにすること
3.各クエリに対して、回答を生成するAgentを以下から選択する(注:使用しないagentがあってもよい)
選択可能なAgent
・patent_agent:技術に関するクエリに対して、関連する特許を検索し、取得した特許情報を基に回答を生成するAgent
選択基準:主にメインクエリに対して選択する
・web_agent:Web検索の結果を基に回答を生成するAgent
選択基準:最新の情報または展望などの未来の事象、技術動向などの情報が必要なクエリに対して選択する
・normal_agent:LLM自身の知識に基づいて回答を生成するAgent
選択基準:主に単純なクエリ(技術の定義や用語の意味など)に対して選択する

### 出力形式
出力は以下の形式に従ってください。
sub_info:特定した必要情報
sub_query:必要情報をクエリに変換したもの
agent:選択したAgent

### 入力クエリ
{query}

ユーザの入力

機械学習を使って悪意のあるコードを検出する方法について教えてください。

<プランニングエージェントの回答>
sub_info:悪意のあるコードを検出するための機械学習のアルゴリズムや手法
sub_query:悪意のあるコードを検出する機械学習アルゴリズムに関する特許情報を教えてください
agent: patent_agent

sub_info:最新の悪意のあるコード検出技術の動向
sub_query:悪意のあるコードを検出する機械学習の最新技術動向について教えてください
agent:web_agent

sub_info:悪意のあるコードとそれを検出する機械学習の基本的な概念
sub_query:悪意のあるコードの定義と機械学習を用いた検出の基本概念について教えてください
agent:normal_agent

プランニングエージェントのクエリを使って、中間結果がうまく機能するか検証

次に、赤枠のプランニングエージェントで生成されたクエリが各エージェントに投げて機能するか検証してみました。

特許エージェント(中間結果)

クエリ:悪意のあるコードを検出する機械学習アルゴリズムに関する特許情報を教えてください

<特許エージェントの回答>
悪意のあるコードを検出するための機械学習アルゴリズムに関しては、該当する特許技術として「文書ファイル内で難読化されている悪意のあるコードの検出」があります。この特許は、訓練済みの機械学習モデルを用いて、難読化された悪意のあるコードを検出し、既知の署名を持たない悪意あるコードを含む文書を特定することが可能です。悪意のある文書はネットワークから拒否される仕組みがあります。

Webエージェント(中間結果)

クエリ:悪意のあるコードを検出する機械学習の最新技術動向について教えてください

<Webエージェントの回答>
近年、悪意のあるコードを検出する機械学習技術の動向は、特に動的なアプローチや自然言語処理(NLP)の統合によって進化しています。具体的な技術としては、以下のようなものがあります:

1. **異常検出アルゴリズム**:機械学習モデルを用いて、通常の動作パターンを学習し、これに基づき異常を検出する手法が用いられています。これにより、未知の悪意のあるコードや攻撃手法を早期に発見できます。

2. **NLPによる解析**:PowerShellなどのスクリプト言語において、悪意のあるコマンドや攻撃パターンを自然言語処理技術を用いて解析し、悪意のある可能性を予測する研究が進められています。これにより、様々な表現のチェックや攻撃の予測精度が向上しています。

3. **エンド・ツー・エンドの機械学習パイプライン**:悪意のあるコードの検出のために設計された、完全な機械学習パイプラインが構築され、データ収集からモデルのトレーニング 、デプロイメントまで行われています。これにより、リアルタイムでの検出が可能となります。

4. **バックドア攻撃の特定**:特定の機械学習モデルに対するバックドア攻撃を検出するための研究も進行中で、悪意のある変更を施したモデルがシステムに導入されるのを事前に発見することが目指されています。

これらの技術は、従来の署名ベースの検出手法に比べ、より動的かつ柔軟な対応を可能にし、悪意のあるコードの脅威に対抗するための重要な進展となっています。

LLMエージェント(中間結果)

クエリ:悪意のあるコードの定義と機械学習を用いた検出の基本概念について教えてください

<LLMエージェントの回答>悪意のあるコードとは、特定の目的で害を及ぼすことを目的として設計されたプログラムやスクリプトのことを指します。これにはウイルス、ワーム、トロイの木馬、スパイウェア、ランサムウェア、フィッシングメールなどが含まれます。悪意のあるコードは通常、コンピュータシステムに侵入したり、データを盗んだり、システムを破壊したりすることを目的としています。

機械学習を用いた悪意のあるコードの検出は、特にサイバーセキュリティの分野で重要です。以下はその基本概念です:

1. **データ収集**: 機械学習モデルをトレーニングするためには、正常なコードと悪意のあるコードの大量のデータが必要です。このデータは、マルウェアサンプル、ログファイル、システムトランザクションなどから集められます。

2. **特徴抽出**: 収集したデータから、悪意のあるコードを識別するための特徴(特徴量)を抽出します。これには、コードの文法、関数の使用、通信パターン、システムへの影響などが含まれます。

3. **モデルのトレーニング**: 機械学習アルゴリズム(例:決定木、サポートベクターマシン、ディープラーニングなど)を使用して、抽出した特徴をもとにモデルをトレーニングします。この過程で、モデルは悪意のあるコードと正常なコードを区別する方法を学んでいきます。

4. **検出と評価**: トレーニングされたモデルを使用して、新たに登場したコードを検出します。検出精度を評価するため、誤検知率(正常なコードを悪意のあるコードと誤認する確率)や見逃し率(悪意のあるコードを検出できない確率)を測定します。

5. **反復改善**: 機械学習モデルは新たな悪意あるコードが発見されるたびに再トレーニングし、更新することで、検出精度を向上させ続けます。

このように、機械学習を活用することで、迅速かつ効率的に悪意のあるコードを検出する手法が確立されつつあります。各種のセキュリティソリューションでこれらの技術が利用され、リアルタイムで脅威を監視することが可能となっています。

サマライズエージェントの検証

最後に、赤枠のサマライズエージェントが機能するか検証してみました。

サマライズエージェントのプロンプト

以下にクエリとそれに対する回答が5つ提供されています。

{context}
    
上記をQAのペアを使用して、以下のメインクエリに対する回答をまとめてください。まとめる際は以下の制約に従ってください。
### 制約
・メインクエリに対する回答が明確であること(結論ファースト)
・(特許情報)とあるQAのペアが最も重要な内容であり、この情報を基にメインクエリに回答するように注意する。その際に検索により取得した特許情報を基に述べている旨が伝わる文章にする(例:「該当する特許技術から~」、「~という特許から~」)
・(Web情報)とあるQAペアの内容を引用する場合、Webからの情報であることを明示する
・その他のQAは補足でとして活用すること
・論理的にわかりやすく、自然な文章でまとめること
・うまく構造化しながら、視覚的にもわかりやすい文章にすること

### メインクエリ
{query}

各エージェントからの中間結果をcontextに入力し、ユーザの入力をqueryに入力した結果

<サマライズエージェントの回答>
機械学習を用いて悪意のあるコードを検出する方法についての情報を以下にまとめます。

### 1. 特許技術に基づく検出方法
該当する特許技術から、悪意のあるコードを検出するための機械学習アルゴリズムとして「文書ファイル内で難読化されている悪意のあるコードの検出」技術があります。この特許では、訓練済みの機械学習モデルを使って、難読化された悪意のあるコードを見つけ出し、既知の署名がない悪意のあるコードが含まれる文書を特定することが可能です。また、このプロセスにより、悪意のある文書はネットワークから拒否される仕組みになっています。

### 2. 一般的な機械学習のプロセス
機械学習を活用した悪意のあるコードの検出は、主に以下のステップで行われます:
- **データ収集**: 正常なコードと悪意のあるコードの大規模データを集め、マルウェアやログファイルからの情報を利用します。
- **特徴抽出**: コードの文法や通信パターン、影響を与えるシステムの情報などを抽出し、識別に必要な特徴量を洗い出します。
- **モデルのトレーニング**: 抽出した特徴を使用し、決定木やディープラーニングなどのアルゴリズムでモデルをトレーニングします。
- **検出と評価**: トレーニングしたモデルを用いて新たなコードを検出し、誤検知率や見逃し率を評価します。
- **反復改善**: 新たな悪意のあるコードが発見されるたびに、モデルを再トレーニングし、精度を向上させ続けます。

### 3. 最新の技術動向
Webからの情報によれば、最近の悪意のあるコードの検出技術は以下のように進化しています:
- **異常検出アルゴリズム**: 通常の動作パターンを学習し、それに基づく異常の検出が行われています。
- **NLPの利用**: PowerShellなどのスクリプトの悪意あるコマンドを自然言語処理技術で解析し、検出精度を向上させています。
- **エンド・ツー・エンドの機械学習パイプライン**: データ収集からデプロイメントまでの一連の工程を自動化したパイプラインが構築され、リアルタイムの検出が可能になっていま
す。
- **バックドア攻撃の特定**: 特定モデルへのバックドア攻撃を検出する研究が進行中です。

このように、機械学習を使った悪意のあるコードの検出は、特許情報に基づく具体的な手法や最新の技術動向など、多面的に進化を遂げています。これにより、より動的かつ効果的なセキュリティ対策が実現されています。
-----------------参照特許の出願番号------------------
['特願2024-81556']
-----------------参照WebサイトURL-------------------
https://simplescience.ai/ja/2023-01-28-ji-jie-xue-xi-niokerubatsukudoagong-ji-henodui-ce--anzxe0
https://www.prsol.cc/2022/10/25/malicious-powershell-detection-via-machine-learning/
https://news.mynavi.jp/techplus/article/20240308-2898949/

検証結果サマリー

この検証では、次世代AI検索エンジンの開発における主要なコンポーネントである、プランニングエージェント、特許エージェント、Webエージェント、LLMエージェント、そしてサマライズエージェントの一連の連携動作について検証を行いました。
特に、入力されたクエリに対して、プランニングエージェントが適切な情報収集計画を立て、各エージェントがそれぞれの専門知識に基づいて回答を生成し、最後にサマライズエージェントがそれらの情報を統合して分かりやすくまとめるという一連の流れが、概ね期待通りに機能することを確認できました。

具体的には、プランニングエージェントは、ユーザーの質問「機械学習を使って悪意のあるコードを検出する方法について教えてください」に対し、関連性の高い複数の視点(特許情報、最新動向、基本概念)から必要な情報を推測し、それぞれに適したクエリを生成しました。さらに、各クエリに対して、適切なエージェント(patent_agent, web_agent, normal_agent)を的確に選択しており、そのプランニング能力の有効性が示されました。

続く各エージェントの検証では、プランニングエージェントが生成したクエリに基づき、特許エージェントは関連特許情報を抽出し、具体的な技術内容を提供しました。Webエージェントは、最新の技術動向に関する有益な情報をWeb検索を通じて取得し、LLMエージェントは、悪意のあるコードと機械学習の基本的な概念について明確な説明を行いました。これらの結果は、各エージェントがそれぞれの役割を果たす能力を備えていることを示しています。

そして、サマライズエージェントは、これら複数のエージェントからの回答を統合し、構造化された分かりやすい形で提示することに成功しました。特に、特許情報を最重要視しつつ、Webからの情報を明示的に区別し、他の情報を補足として活用するという制約事項を遵守しており、ユーザーにとって非常に有益な情報集約を実現しています。また、参照特許の出願番号やWebサイトのURLを明記することで、情報の信頼性を高める工夫も見られました。

以上の検証結果から、プランニングからサマライズまでの一連のエージェント連携は、多様な情報源から必要な情報を効率的に収集・整理し、ユーザーに質の高い回答を提供する上で非常に有望であることが示唆されました。今後は、更なる多様なクエリやより複雑なシナリオでの検証を通じて、システムの robustness と精度向上を目指していくことで、より高度なAI検索エンジンの実現に近づくことが期待されます。

いいなと思ったら応援しよう!

Sumi(スミ)2020@SaaSプロダクト・PdM、新規事業・事業開発
よろしければ応援お願いします! いただいたチップはプロダクト開発の開発費に使わせていただきます!