「すべてのユーザーにオブザーバビリティを解放する」という当社のミッションのもとに、私達は New Relic AI の開発に着手しました。New Relic AI は、大規模言語モデル (LLM) と、当社の統合テレメトリデータプラットフォームを組み合わせることで、システムの状態に対する深い洞察、自動アラート、学習曲線を必要としないシステムの最適化を提供し、あらゆる組織でのオブザーバビリティの活用を支援します。

生成 AI のテクノロジーをサービスに組み込むにあたっては、データセキュリティとプライバシーへの懸念が最優先事項となります。ユーザーデータを保護するには、最初のプロンプトから最終的なレスポンスに至るまで、社内およびサードパーティの両方で、顧客情報がどのように扱われるかを考慮することが不可欠です。このブログでは、開発の各段階において当社がデータとプライバシーの保護に対してどのように取り組んだかを紹介します。New Relic AI がユーザーからの質問に答え、New Relic プラットフォーム上でインサイトを提供する際に、内部でどのように顧客情報を処理するかについて、理解を深めて頂ければ幸いです。

高い基準の維持

New Relic AI を支えるエンジニアリングチームは、設立当初からセキュリティ、法務、コンプライアンスチームと緊密に連携して、顧客データの安全を確保してきました。アクセス制御、暗号化、脆弱性管理などの従来のセキュリティ上の懸念に加えて、生成 AI では、データセキュリティのトレーニングやプロンプトインジェクションといった新たなリスクが発生します。これらに対応するために新たな保護層が必要となり、顧客データを保護するプロセスはより複雑になります。データプライバシーに対する New Relic のアプローチでは、顧客データの機密性、完全性、可用性を保護するために高い基準を設けています。当社は生成 AI のような刺激的なテクノロジーにいち早く取り組みたいと考えていましたが、何よりも重視したのは、プロセス全体を通じて「プライバシー・バイ・デザイン」の原則を維持することでした。

New Relic AI の設計に使用されるベンダー選定においては、当社の標準データセキュリティプロトコルに完全に準拠しているだけでなく、セキュリティ第一の開発アプローチに沿っていることを重視しました。Azure OpenAI は、顧客情報を保存しないこと、また顧客情報を使用してモデルを改善しないことを約束しています。私たちは Azure と緊密に連携し、Azure のサービスデータ保護保証が私たちのセキュリティポリシーと一致していることを継続的に確認しています。Azure の API を活用することで、私たちは New Relic AI に最先端の LLM を搭載できるだけでなく、顧客データを安全に保つことができるのです。Azure OpenAI Service におけるデータ保護の詳細は、Azure のウェブサイトをご覧ください。

LLM は New Relic AI の中心となるものですが、生成 AI を用いたアーキテクチャでは、他の領域においてもデータセキュリティに関して考慮すべき事項があります。以下のセクションでは、各ステップで顧客データをどのように安全に保つのかについて説明します。

コンテキストとプライバシーのバランス

まずは、New Relic データベース(NRDB)へのアクセスについて説明します。前提として、LLM は NRDB に直接アクセスすることはできない点に留意してください。ユーザーが New Relic AI に「過去 10 分間にトランザクションは何件あったか」と尋ねると、LLM を呼び出して適切な New Relic クエリ言語(NRQL)、今回の例では "SELECT count(*) FROM Transaction SINCE 10 minutes ago" を生成し、そのクエリを NRDB に対して実行します。New Relic AI サービスは、リクエストで提供されたユーザーのセッショントークンを使用して、NerdGraph API を通じて NRDB にクエリを実行します。そのため、New Relic AI サービスがアクセスできるデータは、リクエスト元のユーザーに与えられた権限でアクセス可能な範囲と等しくなります。New Relic AI サービスには、実行前にクエリを検査して修正する制御があり、応答を編集してから LLM に提供して要約します。これは、必要に応じてフローを中断するためのコントロール手段でもあります。

NerdGraph API にアクセスすると、New Relic AI はリクエストを送信したユーザーの代理として機能します。ただし、ユーザーから NerdGraph への完全なアクセス権を継承するわけではなく、NRQL クエリの実行など、限られた NerdGraph エンドポイントにのみアクセスできます。新しい機能の有効化など、必要に応じて New Relic AI の NerdGraph へのアクセスを拡張する予定ですが、特定の機能を実行するために必須となるアクセス権のみを New Relic AI に提供することに注力しています。

また、直感的なユーザーエクスペリエンスを提供するために、New Relic AI は、質問が行われた時点でユーザーが閲覧している特定のページの UI から情報を取得する機能があります。しかし、ユーザーがページ上に表示するすべての要素に完全にアクセスできるわけではなく、account id, entity id, nerdlet id など、限られたデータセットにのみアクセスできます。これにより、New Relic AI は「このサービスの平均レイテンシはどれくらいか」などの質問に答えることができます。LLM には、「このサービス」が何を指しているのかを判断するための必要最低限のコンテキストが提供されているためです。

New Relic AI は、進行中の会話の前のメッセージを「認識」して、文脈に合わせた回答を行います。ただし、他の会話にはアクセスできません。そのため、Ask AI History から特定の会話を再度開かないと、その会話の文脈に沿った回答を得ることができません。また、同じアカウント内であっても、他のユーザーとの会話は認識されません。これらの制限により、New Relic AI とユーザーとの会話がプライベートに保たれます。

公開ドキュメントの活用

New Relic AI は、ユーザー個別のデータに基づいた質問だけでなく、ドキュメントのコンテキストをモデルに提供する検索拡張生成(RAG)と呼ばれる方法を使用することで、公開ドキュメント、New Relic の使用方法に関する一般的な質問にも答えることができます。(RAG が New Relic AI のパフォーマンス評価を改善する方法の詳細は、New Relic のシニアデータサイエンティスト、Tal Reisfeld による本ブログの投稿をご覧ください。)

当社のドキュメントは Pinecone ベクトルデータベースにインデックス付けされています。ドキュメントの各ページはチャンクに分割され、各チャンクに対して埋め込みが作成され、ベクトルデータベースに保存されます。ユーザーが New Relic AIに質問すると、そのバックエンドサービスは質問を埋め込み、ベクトルデータベース内で関連するドキュメントチャンクを検索し、埋め込みに最も近いチャンクを取得します。

埋め込みは、テキストのチャンクを浮動小数点値のベクトルに変換し、意味論的にテキストの内容を捉える手法です。埋め込みには元のテキストは含まず、また埋め込みに基づいて元のテキストを生成することもできません。この浮動小数点値のベクトルにより、提供された元のリクエストを表すベクトルと、意味的に類似した他のベクトルを見つけることができます。

ベクトルデータベースには、New Relic の公開ドキュメントの埋め込みと元のテキストの両方が含まれています。これで、質問のベクトルに近いベクトルの元のテキストを取得できます。当社は公開情報のみをベクトルデータベースに保存し、顧客データのインデックスは作成していません。このため、ベクトルデータベースを通じてユーザー、アカウント、顧客の間で情報が漏洩することはありません。

また前述の通り、ベクトルデータベースからの関連ドキュメントチャンクの取得は質問から生成された埋め込みに基づいてのみ行われるため、ユーザーから送信された実際の質問内容のテキストは一切ベクトルデータベースに送信されません。

積極的な顧客保護

当社のチームは、ベンダーの評価方法から、New Relic AI の各バックエンド サービスに必要なコンテキストとアクセス権の選択方法まで、お客様のデータの整合性を保護するための積極的なアプローチを維持することに尽力しています。生成AI テクノロジーは信じられないほどのペースで成長し、発展しています。業界をリードする安全な製品を提供するには、最新のベストプラクティスを採用することと、新しいリリースごとに潜在的なセキュリティとプライバシーのリスクを評価するという点で、常に警戒を怠らないことが重要です。生成 AI を用いたオブザーバビリティ アシスタントの能力と適性を高めるプロセスにおいて、データセキュリティが常に最優先事項となるよう、人材、テクノロジー、パートナーシップへの投資を継続します。