すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:EAS における LLM アプリケーションへのトレーシング機能の有効化

最終更新日:Mar 24, 2026

分散トレーシングを有効化して、LLM アプリケーションのパフォーマンスをモニタリングし、呼び出しチェーンを可視化し、ボトルネックを特定します。

概要

LLM アプリケーションは、予測不能な出力、複雑な呼び出しチェーン、パフォーマンスボトルネック、および可観測性の欠如といった課題に直面することがあります。EAS トレーシングは、ARMS との統合により、これらの課題に対応します。

トレーシングが提供する機能は以下のとおりです。

  • 呼び出しチェーンの可視化:明確なログとともに、リクエストの完全なパスを可視化します。

  • パフォーマンスモニタリング:応答時間、トークン消費量、エラー発生回数を追跡し、ボトルネックを特定します。

  • 問題の特定:Trace ID を活用して問題箇所を特定し、コンテキスト情報を用いた根本原因分析を実行します。

  • 評価ツール:呼び出しチェーンのデータに基づき、LLM アプリケーションの出力の精度および信頼性を検証します。

基本概念

  • トレース

    分散システムにおけるリクエストの完全な実行パスであり、複数のスパンで構成されます。各トレースには一意の TraceID が割り当てられます。トレースはリクエストフローを可視化し、パフォーマンスボトルネックやエラー発生源の特定を支援します。

  • スパン

    トレース内の基本単位であり、特定の操作を表します。操作名、開始時刻、終了時刻を記録します。

  • Python プローブ

    Python アプリケーションから自動的に呼び出しチェーンのデータおよびパフォーマンスメトリクスを収集するツールです。EAS サービスをデプロイする際に Python プローブをインストールすることで、トレーシングを有効化できます。

  • 評価

    LLM アプリケーションの回答を複数のディメンションで評価します。具体的な評価ディメンション名については、担当の営業担当者にお問い合わせください。

制限事項

本機能は、LangChain、LlamaIndex、または Dashscope を使用して開発された Python ベースの LLM アプリケーションのみをサポートします。

前提条件

手順 1:サンプルコードの準備

本チュートリアルでは、サービスのデプロイ、呼び出し、およびトレースの確認を目的として、シンプルな予測サービスを使用します。

この例では、DashScope API と Flask フレームワークを用いて、テキスト生成のために Generation.call メソッドを呼び出す Web サービスを構築します。DashScope を使用する前に、有効化手続きを完了し、API キーを取得してください。詳細については、「初回の Tongyi Qianwen API 呼び出し」をご参照ください。サービスをデプロイする際には、API への適切なアクセスを確保するために、環境変数として DASHSCOPE_API_KEY を設定します。以下のコードは、app.py ファイルの例です。

import os
import json
import flask
import dashscope

app = flask.Flask(__name__)

def run_query(query):
    """クエリを実行します。"""

    response = dashscope.Generation.call(
        api_key=os.getenv('DASHSCOPE_API_KEY'),
        model="qwen-plus",
        messages=[
            {'role': 'system', 'content': 'あなたは親切なアシスタントです。'},
            {'role': 'user', 'content': query}
        ],
        result_format='message'
    )
    return response


@app.route('/api/trace_demo', methods=['POST'])
def query():
    """
    POST データの例:
    {
        "query": "中国の首都"
    }
    """
    data = flask.request.get_data("utf-8")
    query = json.loads(data).get('query', '')
    response = run_query(query)
    return response.output.choices[0].message.content


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)  

手順 2:トレーシングの有効化

EAS サービスをデプロイする際には、サービス機能 セクションで トレーシング スイッチをオンにします。表示されるプロンプトに従い、ご使用のイメージに組み込みのトレーシングコンポーネントが含まれているかを確認します。必要に応じて、プローブのインストールおよび ARMS Python プローブによるアプリケーション起動のためのコマンドを設定します。詳細については、「Python プローブの手動インストール」をご参照ください。

  • 組み込みのトレーシングコンポーネントを含むイメージを使用する場合: トレーシング スイッチをオンにするだけで、トレーシングが有効化されます。追加の構成は不要です。

  • 組み込みのトレーシングコンポーネントを含まないイメージを使用する場合: トレーシング スイッチをオンにし、プロンプトに従ってサードパーティライブラリおよび起動コマンドを構成します。

    パラメーター

    説明

    Command to Run

    aliyun-bootstrap -a install && aliyun-instrument python app.py を追加して、プローブをインストールし、ARMS Python プローブでアプリケーションを起動します。 app.py は、予測サービスを提供するためにイメージで構成されたメインファイルです。 また、PyPI からプローブインストーラーをダウンロードするには、サードパーティのライブラリ構成に aliyun-bootstrap を追加する必要もあります。

    Third-party Library Settings

    PyPI からプローブインストーラをダウンロードするために、aliyun-bootstrap を追加します。

image

本トピックでは、組み込みのトレーシングコンポーネントを含まないイメージおよび上記のサンプルコードを例として使用します。カスタム EAS サービスのデプロイに必要な主なパラメーターについては、以下の表をご参照ください。手順については、「コンソールでのサービスデプロイ」をご参照ください。デプロイ後は、以下の操作を行います。

パラメーター

説明

Environment Information

Deployment Method

Image-based Deployment を選択します。

Image Configuration

本トピックでは、デフォルトのイメージを使用します:Alibaba Cloud Image

また、Image Address タブで、あらかじめ準備したカスタムイメージを入力することもできます。

Directly Mount

サンプルコードファイルがイメージに統合されていないため、サービスインスタンスにマウントします。OSS からのマウントを例として示します。OSS をクリックし、以下のパラメーターを構成します。

  • Uri:サンプルコードファイルが配置されている OSS フォルダーを選択します。コードファイルを OSS フォルダーにアップロードする方法については、「コンソールでのクイックスタート」をご参照ください。

  • Mount Path/mnt/data/ を指定します。コードファイルはこのパスから読み込まれます。

カスタムイメージを使用し、予測サービスのメインファイルをイメージ内に既に構成済みの場合は、この構成を省略できます。

Command

本トピックでは、コマンドを aliyun-bootstrap -a install && aliyun-instrument python /mnt/data/app.py に設定します。

/mnt/data/app.py はマウントされたサンプルコードファイルです。

Environment Variables

サンプルコードが Dashscope API を呼び出すため、Add をクリックし、以下の環境変数を構成します。

Third-party Library Settings

サードパーティライブラリを aliyun-bootstrap flask dashscope に設定します。

Service Access

VPC

トレーシング機能を利用するには、仮想プライベートクラウド (VPC) を構成する必要があります。リージョン内で VPCvSwitch、および Security group を選択します。

デフォルトでは、EAS サービスはインターネットにアクセスできません。サンプルコード(Dashscope API を呼び出す)を実行するには、インターネット接続可能な VPC を構成する必要があります。手順については、「シナリオ 1:EAS サービスのインターネットアクセス許可」をご参照ください。

vSwitch

Security Group Name

Features

Tracing Analysis

トレーシング スイッチをオンにし、環境コンテキスト セクションでサードパーティライブラリおよび起動コマンドを構成します。

手順 3:トレースの確認

トレースに基づく評価ツールは、開発者が LLM アプリケーションの出力の精度および信頼性を検証するのに役立ちます。

EAS サービスの呼び出し

本トピックでは、オンラインデバッグを例として使用します。API を使用して EAS サービスを呼び出すことも可能です。詳細については、「API 呼び出し」をご参照ください。

  1. Elastic Algorithm Service (EAS) ページで対象のサービスを見つけ、操作列の image > Online Debugging をクリックします。

  2. [ボディ] タブで、定義済みの予測サービスに基づいて、指定されたアドレスにリクエストデータを送信します。

    本トピックでは、サンプル app.py ファイルで定義されたサービスインターフェイスを使用します。以下の図は、結果の例を示しています。

    image

トレース情報の確認

説明

デフォルトでは、トレースデータは生成時から 30 日間保存されます。保存期間を延長するには、ARMS チームに連絡してカスタム構成を行ってください。

  1. Tracing Analysis タブの Trace Query タブに切り替えて、トレース情報を確認します。

    image

  2. 対象のトレースを見つけ、View TracesActions 列でクリックして、[トレースの詳細] ページに移動します。

    このページのトレースデータにより、サービスの入力、出力、および関連するログ情報を確認できます。

    注:RAM ユーザーまたは RAM ロールを使用する場合、本機能を利用するには AliyunARMSReadOnlyAccess 権限を付与する必要があります。image

  3. トレースの詳細を共有するには、共有アイコン image をクリックしてワンタイムアドレスを生成します。

    注:RAM ユーザーまたは RAM ロールを使用する場合、本機能を利用するには cms:CreateTicket 権限を事前に付与する必要があります。

手順 4:アプリケーションパフォーマンスの評価

EAS は、トレースに基づく評価ツールを提供しており、LLM アプリケーションの出力の精度および信頼性を検証できます。サポートされる評価方法は以下の 2 種類です。

  • 方法 1:単一のトレースを評価:EAS サービスから手動でトレースを選択して評価します。開発またはテスト段階において、特定のトレースをデバッグし、そのロジックおよびパフォーマンスを検証するのに適しています。

  • 方法 2:オンラインでトレースをバッチ評価:実行中の EAS サービスからサンプリングされたトレースを定期的に評価します。大規模なパフォーマンステストまたは機能検証に適しており、システム全体の状態を把握できます。

説明

デフォルトでは、トレースデータは生成時から 30 日間保存されます。保存期間を延長するには、ARMS チームに連絡してカスタム構成を行ってください。

方法 1:単一のトレースを評価

  1. Tracing Analysis タブの Trace Query タブで、対象のトレースを探し、Actions 列の Evaluate をクリックします。 次に、Evaluate 構成パネルで、次のパラメーターを構成します。image

    • Evaluation Metrics:固定構成であり、変更できません。以下のディメンションに基づいて評価が実行されます。

      評価指標

      説明

      正確性

      入力およびリファレンステキストに基づき、回答が質問を正しく解決しているかどうかを判定します。

      忠実性

      回答が入力およびリファレンステキストに基づいて生成されているか、およびハルシネーションを含むかどうかを判定します。

      検索関連性

      取得された結果が入力質問に関連しているかどうかを判定します。以下の 4 つの指標を含みます。

      • nDCG: 正規化割引累積利得

      • ヒット率 (Hit Rate)

      • Precision@K

      • MRR:平均逆順位 (Mean Reciprocal Rank)

    • Model Settings:トレースの評価に使用される LLM です。初期設定後、この構成は後続の評価で自動的にバックフィルされます。

      パラメーター

      説明

      Model Selection

      以下の 2 つのモデルがサポートされています。

      • PAI Judge Model

      • qwen-max (Model Studio モデル)

        説明

      Model Token

      選択したモデルのトークンを入力します。

      • ジャッジモデル: ジャッジモデル ページに移動し、PAI ジャッジモデルを有効化してトークンを取得します。

      • qwen-max:Model Studio qwen-max モデルのトークンの取得方法については、「初回の Tongyi Qianwen API 呼び出し」をご参照ください。

    • 抽出構成クエリ抽出構成回答抽出構成、および コンテキスト抽出構成 の各セクションで、以下の表のパラメーターを構成して、対応するコンテンツを抽出します。

      • クエリ抽出構成:ユーザークエリの内容(入力)を抽出します。

      • 回答抽出構成:システムが生成した回答(出力)を抽出します。

      • コンテキスト抽出構成:システムに提供されたテキストまたは背景情報(ドキュメント)を抽出します。

      パラメーター

      説明

      SpanName

      SpanName に一致するスパンを検索します。

      JsonPathInSpan

      形式は a.b.c です。このパラメーターは空にできません。一致したスパンの指定要素から値を抽出します。

      JsonPathInSpanValue

      形式は a.b.c です。このパラメーターは空にできます。JsonPathInSpan に対応する要素が見つかった後、その要素の内容が JSON 文字列である場合、JsonPathInSpanValue を使用して対応する値を抽出します。

      Actions 列の View Traces をクリックすると、トレースの詳細 ページから構成内容を取得できます。以下の表に構成例を示します。

      抽出構成

      取得方法

      例の値

      クエリ抽出構成

      本トピックでは、JsonPathInSpanValue に値がない例を示します。

      image

      JsonPathInSpanValue に値がある例については、以下の図をご参照ください。

      image

      • JsonPathInSpanValue に値がない場合

        • SpanName:LLM

        • JsonPathInSpan:attributes.input.value

        • JsonPathInSpanValueJsonPathInSpan 要素の内容が JSON 文字列でないため、このパラメーターは空です。

      • JsonPathInSpanValue に値がある場合

        • SpanName:LLM

        • JsonPathInSpanattributes.input.value

        • JsonPathInSpanValue: [JsonPathInSpan] 要素の内容が JSON 文字列であるため、ここに text[0] を入力します。

      回答抽出構成

      image

      • SpanName:LLM

      • JsonPathInSpanattributes.output.value

      • JsonPathInSpanValue:このパラメーターは空です。

      コンテキスト抽出構成

      本トピックのサンプルサービスにはコンテキスト抽出構成が含まれていません。例については、以下の図をご参照ください。

      image

      • SpanName:retrieve

      • JsonPathInSpanattributes.retrieval.documents[*].document.content

        重要

        アスタリスク (*) は、コンテキスト構成でのみ使用できます。

      • JsonPathInSpanValueJsonPathInSpan 要素の内容が JSON 文字列でないため、このパラメーターは空です。

  2. パラメーターを構成した後、Confirm をクリックします。

    Evaluation Result 列に結果が表示された場合(以下の図を参照)、評価は完了です。結果をクリックすると、その詳細を確認できます。image

方法 2:オンラインでトレースをバッチ評価

  1. Tracing Analysis タブの Online Evaluation タブで、New Assessment をクリックします。

  2. Create Evaluation Task ページで、以下のパラメーターを構成し、Confirm をクリックします。

    パラメーター

    説明

    基本構成

    タスク名

    任意のタスク名を入力します。

    評価構成

    評価指標

    固定構成であり、変更できません。以下のディメンションに基づいて評価が実行されます。

    • 正確性:入力およびリファレンステキストに基づき、回答が質問を正しく解決しているかどうかを判定します。

    • 忠実性:回答が入力およびリファレンステキストに基づいて生成されているか、およびハルシネーションを含むかどうかを判定します。

    • 取得関連性:取得されたコンテンツが入力質問に関連しているかどうかを判定します。以下の 4 つの指標を含みます。

      • nDCG: 正規化減衰累積利得

      • ヒット率 (Hit Rate)

      • Precision@K

      • MRR:平均逆順位 (Mean Reciprocal Rank)

    モデル選択

    以下の 2 つのモデルがサポートされています。

    • PAI Judge Model

    • qwen-max (Model Studio モデル)

      説明

    モデルトークン

    選択したモデルのトークンを入力します。

    • ジャッジモデルジャッジモデル ページに移動し、PAI ジャッジモデルを有効化してトークンを取得します。

    • qwen-max:Model Studio qwen-max モデルのトークンの取得方法については、「初回の Tongyi Qianwen API 呼び出し」をご参照ください。

    サンプリング開始および終了時刻

    サンプリングの開始日および終了日を選択します。

    サンプリングポリシー

    以下のサンプリングポリシーが利用可能です。

    • 時間ウィンドウベースのサンプリング:一定の間隔(x 分ごと)で 1 つのトレースをキャプチャします。

    • 確率ベースのサンプリング:指定された割合のトレースをランダムにキャプチャします。

    QCA 抽出構成:トレースデータは JSON 文字列としてフォーマットされます。QCA 抽出構成は、この JSON 構造内における QCA のパスを定義します。このパスの値は、特定の QCA コンテンツを表します。

    クエリ抽出構成

    • クエリ抽出構成:ユーザークエリの内容(入力)を抽出します。

    • 回答抽出構成:システムが生成した回答(出力)を抽出します。

    • コンテキスト抽出構成:システムに提供されたテキストまたは背景情報(ドキュメント)を抽出します。

    SpanNameJsonPathInSpan、および JsonPathInSpanValue のパラメーターを構成して、対応するコンテンツを抽出します。これらのパラメーターの構成方法については、「抽出構成」をご参照ください。

    回答抽出構成

    コンテキスト抽出構成

    評価タスクの ステータス完了 になると、すべてのサンプリング評価操作が終了し、タスクは新しい評価結果を生成しません。

  3. 評価が完了したら、評価タスクの 評価結果 列で結果を確認できます。また、タスク名をクリックして詳細を確認することもできます。

    • 評価結果の確認:システムは、すべての成功した評価から平均スコアを算出し、表示します。スコアが 1 に近いほど品質が高いことを示します。image

    • 評価詳細の確認:image

作成後は、評価タスクを更新、停止、削除、または複製して管理できます。複製では、タスク構成が複製され、新しい評価タスクが作成されます。image