メインコンテンツまでスキップ

LiteLLM🚄トレーシング

自動ログによる LiteLLM トレース

LiteLLM は、統合インターフェイスで100以上のLLMにアクセスできるオープンソースのLLMゲートウェイです。

MLflow Tracing は、LiteLLMの自動トレース機能を提供します。 mlflow.litellm.autolog 関数を呼び出すことで、LiteLLM自動トレースを有効にする場合、 MLflow は LLM 呼び出しのトレースをキャプチャし、それらをアクティブ MLflow エクスペリメントに記録します。

Python
import mlflow

mlflow.litellm.autolog()

MLflow トレースは、LiteLLM 呼び出しに関する次の情報を自動的にキャプチャします。

  • プロンプトと完了応答
  • 待ち時間
  • LLM プロバイダーに関するメタデータ (モデル名やエンドポイント URL など)
  • トークンの使用法とコスト
  • キャッシュヒット
  • 例外が発生した場合

前提 条件

以下の例を実行する前に、次のものがあることを確認してください。

  1. Databricks 資格情報が構成されている : Databricks の外部で実行している場合は、環境変数を設定します。

    Bash
    export DATABRICKS_HOST="https://your-workspace.cloud.databricks.com"
    export DATABRICKS_TOKEN="your-personal-access-token"
ヒント

Databricks ノートブック内で実行している場合、これらは自動的に設定されます。

  1. LLM プロバイダー API キー : 使用している LLM プロバイダーの API キーを設定します。

    Bash
    export ANTHROPIC_API_KEY="your-anthropic-api-key"  # For Anthropic models
    export OPENAI_API_KEY="your-openai-api-key" # For OpenAI models
    # Add other provider keys as needed

基本的な例

Python
import mlflow
import litellm

# Enable auto-tracing for LiteLLM
mlflow.litellm.autolog()

# Set up MLflow tracking on Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/litellm-demo")

# Call Anthropic API via LiteLLM
response = litellm.completion(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": "Hey! how's it going?"}],
)

非同期 API

MLflow は、 LiteLLMの非同期 APIのトレースをサポートしています。

Python
mlflow.litellm.autolog()

response = await litellm.acompletion(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": "Hey! how's it going?"}],
)

ストリーミング

MLflow は、 LiteLLMの同期および非同期ストリーミング APIsのトレースをサポートしています。

Python
mlflow.litellm.autolog()

response = litellm.completion(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": "Hey! how's it going?"}],
stream=True,
)
for chunk in response:
print(chunk.choices[0].delta.content, end="|")

MLflow は、ストリーム チャンクから連結された出力をスパン出力として記録します。

自動トレースを無効にする

LiteLLM の自動トレースは、 mlflow.litellm.autolog(disable=True) または mlflow.autolog(disable=True)を呼び出すことでグローバルに無効にできます。

次のステップ