MastraにおけるAIオブザーバビリティの改善

OpenTelemetryは、モダンなシステムを監視するための標準です。従来のトレースはほとんどのソフトウェアで機能しますが、AIアプリケーションでは不十分です。

AIを構築する際、以下のような具体的な回答が必要になります: • どのモデルが出力を生成したのか? • どのプロバイダーを使用したのか? • トークンをいくつ消費したのか? • どの埋め込み(embedding)モデルがドキュメントを処理したのか? • その操作のコストはいくらだったのか?

これらの問いは、Retrieval-Augmented Generation (RAG) システムにおいて最も重要です。

Mastraへのコントリビューションを行っている際、RAGの埋め込みにおけるオブザーバビリティに欠落があることに気づきました。Mastraは多くのAIタスクのメタデータをエクスポートしていましたが、RAGの埋め込みスパンには標準的な属性が不足していました。

オブザーバビリティツールは埋め込み操作自体は検知していましたが、そのコンテキストを理解できていませんでした。モデルの詳細、プロバイダー情報、トークン使用量などが欠落していたのです。

RAGパイプラインは以下のステップで構成されます: • ドキュメント • チャンキング • 埋め込みモデル • ベクトルデータベース • 類似性検索 • LLM生成

埋め込みステージは極めて重要です。ここでデータが不足していると、パフォーマンスのデバッグが困難になります。

OpenTelemetryは、共通言語を作成するためにセマンティック・コンベンション(semantic conventions)を使用しています。ツールごとにカスタム名を使用するのではなく、全員が一つの標準に従います。これにより、ツールは以下のような属性を読み取ることが可能になります: • gen_ai.systemgen_ai.request.modelgen_ai.usage.input_tokens

私は、MastraのRAG埋め込みデータをこれらのOpenTelemetry標準にマッピングするためのプルリクエストを提出しました。

この作業には以下が含まれます: • 埋め込みモデルのメタデータの書き出し • プロバイダー情報の書き出し • トークン使用量メトリクスのマッピング • 属性のグローバル標準への適合

これにより、カスタムコードを書くことなく、オブザーバビリティシステムが埋め込みを理解できるようになります。

本番環境のAIシステムには可視性が必要です。どのモデルがレイテンシを引き起こしているのか、あるいはどのプロバイダーのコストが最も高いのかを知る必要があります。標準化されたテレメトリは、これらの回答を自動的に提供します。

オープンソースは素晴らしい教訓を与えてくれます。優れたコントリビューションが、必ずしも新しい機能を追加するものとは限りません。既存のシステムをより監視しやすく、運用しやすくすることこそが、時には最高の仕事となるのです。

AIインフラを構築しているなら、オブザーバビリティを無視しないでください。最高のAIシステムは、オブザーバブル(観測可能)なものです。

ソース: https://dev.to/akash_santra_3c96613546c6/fixing-ai-observability-how-i-added-genai-semantic-support-for-rag-embedding-spans-in-mastra-4db9

オプションの学習コミュニティ: https://t.me/GyaanSetuAi