生成AI

RAG・チャットボットの回答品質を継続チェックできる『Arize AX』の使い方

この度、東京エレクトロンデバイスはArize社との代理店契約を締結し、正式な国内代理店となりました。今回はArizeが提供するAIアプリケーション向けオブザーバビリティプラットフォーム『Arize AX』をご紹介します。

Arize AXについて

Arize AXは、生成AIやエージェント等のアプリケーションの開発・評価・運用を支援するプラットフォームです。

今日において、企業がAIを用いたアプリケーションサービスを発表するためには、その正確性と安全性を高い水準に保つ必要があります。そのためには、開発段階ではモデルやパラメータ、プロンプトテンプレートの実験の追跡と評価、また本番運用時においても動作を継続的に追跡し、監視や、場合によっては危険な指示への応答や有害な応答、ハルシネーション等を見つけ出して防止することが重要です。そして、本番環境で得られたデータを利用して更に開発環境での改善を試みる、という反復的なプロセスが生じます。

Arize AXは、このような業務を大幅に効率化し、企業にとって不可欠な正確性と安全性を実現することを支援するツールです。

本稿では、Arize AXを代表する機能と使い方を2つご紹介します。

生成結果のトレース

Traceでは、LLMの生成結果やAIエージェントの実行内容を容易に追跡することが可能です。ArizeはOpenTelemetry互換のOSSライブラリを提供しており、これにより本番環境のAIアプリの動作状況をArizeで把握することができます。

使用方法は、以下の通りです。

  1. Arizeのspace IDとAPIキーをTracerに登録

    space IDとAPIキーはArizeプラットフォーム(https://app.arize.com/)上で作成

  2. Instrumentorの設定 

    OpenAI API用のInstrumentorを設定

     

これらをコードに組み込むことで、OpenAI SDKを使用した際に自動的にトレースが有効化されます。

Python SDKでOpenAI APIを実行

Arize AXでのトレース結果。システムメッセージや入出力、レイテンシーを自動的に取得。

推論用のデータセットとして以下を使用しました。

@preprint{Hirano2023-llmj,   title={{llm-japanese-dataset v0: Construction of Japanese Chat Dataset for Large Language Models and its Methodology}},   autor={Masanori HIRANO and Masahiro SUZUKI and Hiroki SAKAJI},   doi={10.48550/arXiv.2305.12720},   archivePrefix={arXiv},   arxivId=2305.12720

LLMの入出力だけでなく、例えばエージェントを使用している場合であれば、LLMによるツールや関数の呼び出しや、その内容も追跡することができます。トレースされた内部処理はスパンという単位で保持されます。下の図では、AgentOperationやChatCompletionがそれぞれ個別のスパンとして扱われます。

LLM as a Judgeによる自動評価

生成AIをサービスとして提供していく上では、生成結果を可視化するだけでなく、より指示内容に沿った応答ができるように継続的に調整することが重要となります。調整のためにはまず、望ましい応答や処理と望ましくないそれらを区別することが必要です。このような作業は、一般的には人の手によって行われますが、最近ではLLM as a Judgeによる評価が注目されています。

LLM as a Judgeとは、LLMを用いて他のモデルの出力結果を評価することを指します。この手法は、人間による評価と比較して費用対効果や拡張性に優れており、また自動化されることによってエージェントシステムやアプリケーションにおいては特に重要となるリアルタイム評価が可能となります。

Arize AXはLLM as a Judgeをトレース内容に適用するための機能を備えています。コードによる実装も勿論可能ですが、Arizeを利用することでGUIを使ってLLM as a Judge設定することが可能です。ここからはLLM as a Judgeの設定および実行方法をご紹介します。

  1. 評価方法の設定

    Run Onでは、評価の対象となるプロジェクト (モデル/アプリ)を指定します。
    Sampling Rateは、評価対象の内この評価を適用するスパンの割合です。100に設定すると全ての結果を評価しますが、Judge役にGPTモデル等の有償APIを利用する場合は評価の度に費用が生じます。大規模サービスにおける全体的な生成傾向を大まかに把握したい場合は、この数値を下げることも可能です。
    Task Data Filterを指定することで、LLMの入出力やRAGでのindex検索、エージェントによる関数呼び出しなど、処理内容ごとに異なる評価タスクを実行することが可能です。
    Schedule Runでは、タスクの実行タイミングを指定します。指定した期間に収集されたスパンを評価する方法と、新しく収集されたスパンを動的に評価する方法の2つから選択できます。
  2. 評価タスクの作成
    評価方法を設定した後は、実行する評価タスクの具体的な内容を設定します。
    ArizeによるLLM as a Judgeには、主に以下の要素が必要です。
    ・評価役LLM
    ・評価用テンプレート
    ・出力ラベル
    評価方法ではこれらを利用して、1. AIアプリケーションの入力や出力、文脈等を評価テンプレートに代入、2. 評価役LLMに評価テンプレートを指示文として入力、3. 評価役LLMの出力をパースして判定結果や判定理由を抽出、という手順を辿ります。
    これらの要素を全て、ArizeのGUIで設定することができます。
    各種サービスのAPIキーをArizeに登録することでOpenAI APIやAzure OpenAI、AWS Bedrock等のモデルを評価役LLMとして利用できます。今回はOpenAI APIのgpt-4oを使用します。 次に評価用テンプレートと出力ラベルを設定しますが、Arizeには用途に応じたテンプレートが用意されています。今回はQ&Aタスク用のテンプレートを使用します。
    このタスクの場合、評価実行の際には評価対象となるスパンが持つattributes.llm.input_messages.0.message.content、attributes.llm.input_messages.1.message.content、attributes.llm.output_messages.0.message.contentの変数をテンプレートに代入した一つの指示文が作成され、評価役LLMに入力されます。その後、評価役LLMはこの指示文に基づいてcorrectまたはincorrectの判定と、その判定理由を出力します。

では、ここまでの設定を保存した状態で、AIによる推論を実行してみましょう。

今回入力されたのは和文英訳の指示です。「証拠は、更なる明確性の必要性を明示した」という日本語の文章が「The evidence indicated the need for further clarification.」と訳されています。この翻訳結果は意味的に正しそうです。
Evalutionsのタブを選択すると、先ほど設定したLLM as a Judgeによる評価結果が記録されています。

判定結果がcorrectであり、その理由の説明も記載されています。理由を読むと、翻訳前の文章と翻訳語の文章に含まれる各単語の対応関係を確認しながら、正確かつ十分に翻訳されていると判断していることが分かります。

このようにArizeを利用することで、サービスとして動いているAIの動きを追跡(トレース)し、その内容をリアルタイムで評価することができます。他にも、ここでの評価結果を利用して運用を効率化したり、開発環境にフィードバックすることで性能改善に役立てるための機能が用意されています。

ユースケース

Arize AXは、既に海外でAIアプリケーションを提供する数多くの企業に導入されています。今回は、その中でも代表的なユースケースを取り上げます。

https://arize.com/customers より

Wayfair

Wayfairは家具カテゴリの大型ECサイトを運営しています。彼らは販売業顧客向けの手動でのチケット管理業務が遅延と顧客の不満を引き起こすリスクに直面していました。これに対する解決策として、イベント駆動型のLangGraphシステム「Wilma」を導入し、サプライヤーからのメールを受け取ると自動採番を行いチケットフィールドを自動で入力する機能を提供しました。この結果、チケットの65%が自動的にクリアされ、解決時間が29%短縮され、精度(95%)と再現率(97%)の品質目標を上回る成果を達成しました。

Arizeは、このようなLLMエージェントの導入において、性能追跡や評価を行うための観測ツールとして利用されました。これにより、Wayfairは自動化システムの性能を効果的にモニタリングし、必要に応じた迅速な改善が可能となりました。結果として、非技術的なチームでも効果的に問題を発見し、ユーザーへの影響を最小限に抑えることができました。

TheFork

TheForkはレストランの検索と予約のプラットフォームで、AIを活用して顧客体験を向上させています。この中でArize AXは、TheForkのAI機能を支える重要な役割を果たしています。特に、Arize AXはプロンプトレベルのトレース、評価、ドリフトアラートを提供し、リアルタイムでパフォーマンスをモニタリングできるようにしています。これにより、TheForkはパフォーマンスの低下を早期に発見し、高いサービスレベル目標(SLO)を維持することが可能になりました。

具体的には、TheForkはArize AXを活用してAIの重要な処理部分へのリアルタイム評価環境を構成しています。エンジニアはスパン(AIが最終的な成果物を生成する過程に含まれる個別処理)をフィルタリングして、特定の閾値を超えたスパンのみにLLM as a Judgeによる評価を適用することで効果的にパフォーマンスを最適化しています。また、Arize AXのトレース機能により重複する埋め込み処理を排除し、P95レイテンシーを大幅に削減することに成功しました。

導入メリット

AIモデル、特にLLMは、既に多くのソフトウェアやシステムに統合されており、今後は生産性をさらに向上させる中心的な要素となることが期待されています。この流れは、LLMの回答精度、応答速度、そして安全性が、企業の業績と信頼に直接的影響を与える未来を示唆しています。

Arize AXを導入することで、AIアプリケーションの提供者は課題の抽出や改善の取り組みを効率的に進めることが可能となります。AIアプリの利用が拡大するにつれ、Arize AXの機能が企業の生産性に与える影響もますます大きくなるでしょう。

最後に

最後に東京エレクトロン デバイス経由でArize AXのPoVを実施いただいているエクシオグループ 渡邊 様の記事をご紹介いたします。
本稿ではArize AXを実践的観点からご紹介しておりますが、こちらの記事ではSecurity for AIの観点からArize AXのビジネス上の必要性について論じていただいておりますので、是非ご覧ください。

お問い合わせ

※ 本コンテンツに掲載されている会社名・製品・サービス名・ロゴは各社の商標または登録商標です。また、写真・ロゴマーク・その他の著作物に関する著作権はそれぞれの権利を有する各社に帰属します

この記事に関連する製品・サービス