Alibaba Cloud は、OpenTelemetry の標準と大規模言語モデル (LLM) アプリケーションドメインの概念に基づいて LLM Trace フィールドを定義しています。これらのフィールドは、Attributes、Resources、Events を拡張して、LLM アプリケーションのトレースデータのセマンティクスを記述します。これらは、LLM の入出力リクエストやトークン消費などの主要な操作を反映します。Completion、Chat、検索拡張生成 (RAG)、Agent、Tool などのシナリオに対して、コンテキストを認識した豊富なセマンティックデータを提供し、データのトレースとレポート作成を容易にします。これらのセマンティックフィールドは、コミュニティの進化に伴い、継続的に更新および最適化されます。
トップレベルの Span フィールド定義は、OpenTelemetry のオープン標準に基づいています。Managed Service for OpenTelemetry によって保存されるトップレベルの Trace フィールドの詳細については、「Trace 分析パラメーター」をご参照ください。
LLM 関連の SpanKind は Attribute です。これは、OpenTelemetry Traces で定義されている Span kind とは異なります。
共通フィールド
Attributes
AttributeKey | 説明 | タイプ | 値の例 | 要件レベル |
| セッション ID | String |
| 条件付きで必須 |
| アプリケーションのエンドユーザーの ID。 | String |
| 条件付きで必須 |
| 操作タイプ | String | LLM Span Kind をご参照ください | 必須 |
| 使用されるフレームワークのタイプ。 | String |
| 条件付きで必須 |
Resources
ResourceKey | 説明 | タイプ | 値の例 | 要件レベル |
| アプリケーション名 | String |
| 必須 |
Chain
Chain は、LLM を他の複数のコンポーネントと接続して複雑なタスクを実行するツールです。これには、Retrieval、Embedding、LLM の呼び出し、さらにはネストされた Chain が含まれる場合があります。
Attributes
AttributeKey | 説明 | タイプ | 値の例 | 要件レベル |
| 操作タイプ。LLM spanKind 専用の列挙です。Chain の場合、値は 必ず | String |
| 必須 |
| セカンダリ操作タイプ | String |
| 条件付きで必須 |
| 入力内容 | String |
| 推奨 |
| 返される内容 | String |
| 推奨 |
| 最初のトークンまでの時間。サーバーがユーザーのリクエストを受信してから、応答の最初のパケットが返されるまでの全体的な時間。単位はナノ秒です。 | Integer | 1000000 | 推奨 |
Retriever
Retriever は通常、ベクターストアまたはデータベースにアクセスしてデータを取得します。これは、LLM の応答の精度と効率を向上させるためにコンテキストを補足するためによく使用されます。
Attributes
AttributeKey | 説明 | タイプ | 値の例 | 要件レベル |
| 操作タイプ。LLM spanKind 専用の列挙です。Retriever の場合、値は 必ず | String |
| 必須 |
| 取得のための短いクエリ。 | String |
| 推奨 |
| 取得されたドキュメントのリスト。 | JSON array |
| 必須 |
Reranker
Reranker は、クエリとの関連性に基づいて複数の入力ドキュメントをソートします。LLM のために上位 K 個のドキュメントを返すことがあります。
Attributes
AttributeKey | 説明 | タイプ | 値の例 | 要件レベル |
| 操作タイプ。LLM spanKind 専用の列挙です。Reranker の場合、値は 必ず | String |
| 必須 |
| Reranker リクエストの入力パラメーター。 | String |
| 任意 |
| Reranker で使用されるモデルの名前。 | String |
| 任意 |
| 再ランキング後のランク。 | Integer |
| 任意 |
| 再ランキングのための入力ドキュメントに関連するメタデータ。JSON 配列構造です。メタデータには、パス、ファイル名、ソースなどの基本的なドキュメント情報が含まれます。 | String | - | 必須 |
| 再ランキング後の出力ドキュメントに関連するメタデータ。JSON 配列構造です。メタデータには、パス、ファイル名、ソースなどの基本的なドキュメント情報が含まれます。 | String | - | 必須 |
LLM
LLM スパンは、SDK や OpenAPI を使用してさまざまな大規模モデルに推論やテキスト生成をリクエストするなど、大規模言語モデルへの呼び出しを示します。
Attributes
AttributeKey | 説明 | タイプ | 値の例 | 要件レベル |
| 操作タイプ。LLM spanKind 専用の列挙です。LLM の場合、値は 必ず | String |
| 必須 |
| セカンダリ操作タイプ | String |
| 任意 |
| プロンプトテンプレート | String |
| 任意 |
| プロンプトテンプレートの特定の値。 | String |
| 任意 |
| プロンプトテンプレートのバージョン番号。 | String |
| 任意 |
| 大規模モデルのプロバイダー。 | String |
| 必須 |
| LLM 呼び出しの入力パラメーター。 | String |
| 任意 |
| モデル名 | String |
| 任意 |
| 会話の一意の ID。イベントトラッキング中にセッション ID を簡単に取得できる場合は、これを収集する必要があります。 | String |
| 条件付きで必須 |
| LLM リクエストで指定された出力タイプ。利用可能で、リクエストが出力フォーマットなどのタイプを指定している場合は、これを収集する必要があります。 | String |
| 条件付きで必須 |
| LLM にリクエストされた候補生成の数。 | Int |
| 値が 1 でない場合に条件付きで必須 |
| LLM リクエストで指定されたモデル名。 | String |
| 必須 |
| LLM リクエストで指定されたシード。 | String |
| 条件付きで必須 |
| LLM リクエストで設定された周波数ペナルティ。 | Float |
| 推奨 |
| LLM リクエストで指定されたトークンの最大数。 | Integer |
| 推奨 |
| LLM リクエストで設定された存在ペナルティ。 | Float |
| 推奨 |
| LLM リクエストで指定された温度。 | Float |
| 推奨 |
| LLM リクエストで指定された top_p 値。 | Float |
| 推奨 |
| LLM リクエストで指定された top_k 値。 | Float |
| 推奨 |
| 応答がストリーミングされるかどうかを示します。このフィールドが存在しない場合、値は false と見なされます。 | Boolean |
| 推奨 |
| LLM の停止シーケンス。 | String[] |
| 推奨 |
| ツール呼び出しの内容。(非推奨になり、 | String |
| 推奨 |
| LLM によって生成された一意の ID。 | String |
| 推奨 |
| LLM 生成に使用されたモデルの名前。 | String |
| 推奨 |
| LLM が生成を停止した理由。 | String[] |
| 推奨 |
| ストリーミング応答シナリオにおける大規模モデル自体の最初のトークンまでの時間。サーバーがユーザーのリクエストを受信してから、応答の最初のパケットが返されるまでの全体的な時間を表します。単位はナノ秒です。 | Integer |
| 推奨 |
| 推論モデルの推論時間。応答における推論プロセスの期間を表します。単位はミリ秒です。 | Integer |
| 推奨 |
| 入力に使用されたトークンの数。 | Integer |
| 推奨 |
| 出力に使用されたトークンの数。 | Integer |
| 推奨 |
| 使用されたトークンの総数。 | Integer |
| 推奨 |
| モデル入力内容へのリンク。 | String |
| 推奨 |
| モデル出力内容へのリンク。 | String |
| 推奨 |
| システムプロンプトの内容へのリンク。システムプロンプト (/system instruction) の内容への外部リンクを個別に記録するために使用されます。システムプロンプトの内容を個別に取得できる場合は、このフィールドに記録する必要があります。システムプロンプトの内容がモデル呼び出しの一部である場合は、 | String |
| 利用可能な場合は推奨 |
| モデルの入力内容。メッセージは、モデルまたはエージェントに送信される順序で提供される必要があります。 デフォルトでは、ユーザーが明示的に有効にしない限り、この情報は収集されるべきではありません。 | String |
| 任意 |
| モデルの出力内容。メッセージは、モデルまたはエージェントに送信される順序で提供される必要があります。 デフォルトでは、ユーザーが明示的に有効にしない限り、この情報は収集されるべきではありません。 | String |
| 任意 |
| システムプロンプトの内容。システムプロンプト (/system instruction) の内容を JSON 文字列として個別に記録するために使用されます。システムプロンプトの内容を個別に取得できる場合は、このフィールドに記録する必要があります。システムプロンプトの内容がモデル呼び出しの一部である場合は、 デフォルトでは、ユーザーが明示的に有効にしない限り、この情報は収集されるべきではありません。 | String |
| 任意 |
| 推論モデルからの推論内容。応答における推論プロセスの内容を表します。デフォルトの長さ制限は 1024 文字です。この制限を超える内容は切り捨てられる必要があります。 | String |
| 任意 |
| ツール定義 | String |
| 推奨 |
Embedding
Embedding スパンは、テキストを大規模モデルに埋め込む操作など、埋め込みプロセスを示します。これは後で類似性クエリに使用して、後続の操作を最適化できます。
Attributes
AttributeKey | 説明 | タイプ | 値の例 | 要件レベル |
| 操作タイプ。LLM spanKind 専用の列挙です。Embedding の場合、値は 必ず | String |
| 必須 |
| 入力テキストのトークン消費量。 | Integer |
| 任意 |
| 埋め込みの総トークン消費量。 | Integer |
| 任意 |
| 埋め込みモデルの名前。(非推奨になり、 | String |
| 任意 |
| 埋め込み結果。(非推奨)。 | String | - | 任意 |
| セカンダリ操作タイプ | String |
| 条件付きで必須 |
| エンコーディングフォーマット | String | ["base64"] | 推奨 |
| 埋め込みディメンションの数。 | Integer | 100 | 推奨 |
| Embedding リクエストで指定されたモデル名。 | String |
| 条件付きで必須 |
Tool
Tool スパンは、外部ツールへの呼び出しを示します。たとえば、電卓を呼び出したり、天気 API から最新の天気情報をリクエストしたりすることが含まれる場合があります。
Attributes
AttributeKey | 説明 | タイプ | 値の例 | 要件レベル |
| 操作タイプ。LLM spanKind 専用の列挙です。Tool の場合、値は 必ず | String |
| 必須 |
| ツール名。(非推奨になり、 | String |
| 必須 |
| ツールの説明。(非推奨になり、 | String |
| 必須 |
| ツールの入力パラメーター。(非推奨になり、 | String |
| 必須 |
| セカンダリ操作タイプ | String |
| 条件付きで必須 |
| ツール ID | String |
| 推奨 |
| ツールの説明 | String |
| 推奨 |
| ツール名 | String |
| 推奨 |
| ツールタイプ | String |
| 推奨 |
| ツール呼び出しの入力引数。 | String |
| 任意 |
| ツール呼び出しの戻り値。 | String |
| 任意 |
Agent
Agent スパンは、エージェントシナリオを表します。これは、大規模モデルの推論結果に基づいて次のステップの決定を行う、より複雑なタイプの Chain です。たとえば、LLM や Tool への複数回の呼び出しを行い、最終的な回答に到達するために段階的な決定を下すことが含まれる場合があります。
Attributes
AttributeKey | 説明 | タイプ | 値の例 | 要件レベル |
| 操作タイプ。LLM spanKind 専用の列挙です。Agent の場合、値は 必ず | String |
| 必須 |
| 入力パラメーター。元の入力を記録します。 | String |
| 必須 |
| 入力 MIME タイプ。 | String |
| 任意 |
| 戻り結果。最終的な出力を返します。 | String |
| 必須 |
| 出力 MIME タイプ。 | String |
| 任意 |
| Agent の最初のトークンまでの時間。サーバーがユーザーのリクエストを受信してから、応答の最初のパケットが返されるまでの全体的な時間を表します。単位はナノ秒です。 | Integer |
| 推奨 |
Task
Task スパンは、内部のカスタムメソッドを示します。たとえば、ローカル関数やその他のアプリケーション定義ロジックの呼び出しが含まれる場合があります。
Attributes
AttributeKey | 説明 | タイプ | 値の例 | 要件レベル |
| 操作タイプ。LLM spanKind 専用の列挙です。Task の場合、値は 必ず | String |
| 必須 |
| 入力パラメーター | String | カスタム JSON フォーマット | 任意 |
| 入力 MIME タイプ。 | String |
| 任意 |
| 出力 MIME タイプ。 | String |
| 任意 |