Udostępnij przez


Śledzenie modeli platformy Databricks Foundation

MLflow Tracing zapewnia funkcję automatycznego śledzenia dla modeli Databricks Foundation. Ponieważ modele Databricks Foundation używają interfejsu API zgodnego z OpenAI, możesz włączyć automatyczne śledzenie, wywołując funkcję mlflow.openai.autolog, a MLflow przechwyci ślady wywołania LLM i zarejestruje je w aktywnym eksperymencie MLflow.

import mlflow

mlflow.openai.autolog()

Śledzenie MLflow automatycznie przechwytuje następujące informacje o wywołaniach Databricks Foundation Model:

  • Polecenia i odpowiedzi końcowe
  • Opóźnienia
  • Nazwa modelu i punkt końcowy
  • Dodatkowe metadane, takie jak temperature, , max_tokensjeśli określono
  • Wywołanie funkcji, gdy jest zwrócone w odpowiedzi
  • Jakiekolwiek wyjątki, jeśli zostaną zgłoszone

Uwaga / Notatka

W bezserwerowych klastrach obliczeniowych automatyczne rejestrowanie nie jest automatycznie włączone. Aby włączyć automatyczne śledzenie dla tej integracji, należy jawnie wywołać mlflow.openai.autolog() metodę .

Wymagania wstępne

Aby używać funkcji śledzenia MLflow z modelami Databricks Foundation, należy zainstalować bibliotekę MLflow i zestaw OpenAI SDK (ponieważ modele databricks Foundation Models używają interfejsu API zgodnego z technologią OpenAI).

Rozwój

W przypadku środowisk deweloperskich zainstaluj pełny pakiet MLflow przy użyciu dodatków usługi Databricks i zestawu OpenAI SDK:

pip install --upgrade "mlflow[databricks]>=3.1" openai

Pełny mlflow[databricks] pakiet zawiera wszystkie funkcje lokalnego programowania i eksperymentowania w usłudze Databricks.

Produkcja

W przypadku wdrożeń produkcyjnych zainstaluj mlflow-tracing oraz zestaw SDK OpenAI.

pip install --upgrade mlflow-tracing openai

Pakiet mlflow-tracing jest zoptymalizowany pod kątem użycia w środowisku produkcyjnym.

Uwaga / Notatka

Rozwiązanie MLflow 3 jest zdecydowanie zalecane w celu uzyskania najlepszego doświadczenia w śledzeniu z modelami Databricks Foundation.

Przed uruchomieniem przykładów należy skonfigurować środowisko:

W przypadku użytkowników niekorzystających z notesów Databricks: Ustaw zmienne środowiskowe usługi Databricks:

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

W przypadku użytkowników w notesach usługi Databricks: te poświadczenia są automatycznie ustawiane.

Obsługiwane interfejsy API

Platforma MLflow obsługuje automatyczne śledzenie dla następujących interfejsów API modelu bazowego Databricks:

Uzupełnianie czatu Wywoływanie funkcji Przesyłanie strumieniowe Async

Aby poprosić o pomoc techniczną dotyczącą dodatkowych interfejsów API, otwórz żądanie funkcji w witrynie GitHub.

Przykład podstawowy

import mlflow
import os
from openai import OpenAI

# Databricks Foundation Model APIs use Databricks authentication.

# Enable auto-tracing for OpenAI (which will trace Databricks Foundation Model API calls)
mlflow.openai.autolog()

# Set up MLflow tracking to Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/databricks-foundation-models-demo")

# Create OpenAI client configured for Databricks
client = OpenAI(
    api_key=os.environ.get("DATABRICKS_TOKEN"),
    base_url=f"{os.environ.get('DATABRICKS_HOST')}/serving-endpoints"
)

messages = [
    {
        "role": "user",
        "content": "What is the capital of France?",
    }
]

response = client.chat.completions.create(
    model="databricks-llama-4-maverick",
    messages=messages,
    temperature=0.1,
    max_tokens=100,
)

Śledzenie modeli Fundacji Databricks

Przesyłanie strumieniowe

Śledzenie MLflow obsługuje strumieniowy interfejs API modeli Databricks Foundation. W przypadku tej samej konfiguracji automatycznego śledzenia platforma MLflow automatycznie śledzi odpowiedź strumieniową i renderuje łączone dane wyjściowe w interfejsie użytkownika span.

import mlflow
import os
from openai import OpenAI

# Enable auto-tracing for OpenAI (which will trace Databricks Foundation Model API calls)
mlflow.openai.autolog()

# Set up MLflow tracking to Databricks if not already configured
# mlflow.set_tracking_uri("databricks")
# mlflow.set_experiment("/Shared/databricks-streaming-demo")

# Create OpenAI client configured for Databricks
client = OpenAI(
    api_key=os.environ.get("DATABRICKS_TOKEN"),
    base_url=f"{os.environ.get('DATABRICKS_HOST')}/serving-endpoints"
)

stream = client.chat.completions.create(
    model="databricks-llama-4-maverick",
    messages=[
        {"role": "user", "content": "Explain the benefits of using Databricks Foundation Models"}
    ],
    stream=True,  # Enable streaming response
)

for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

Modele bazowe Databricks - śledzenie strumieniowe

Wywoływanie funkcji

Śledzenie MLflow automatycznie przechwytuje odpowiedzi na wywołania funkcji z modeli Databricks Foundation. Instrukcja funkcji w odpowiedzi zostanie wyróżniona w interfejsie śledzenia. Ponadto można dodać adnotację do funkcji narzędzia za pomocą @mlflow.trace dekoratora, aby utworzyć zakres wykonywania narzędzia.

Poniższy przykład implementuje prostego agenta wywołującego funkcję przy użyciu modeli Foundation Databricks i śledzenia MLflow.

import json
import os
from openai import OpenAI
import mlflow
from mlflow.entities import SpanType

# Enable auto-tracing for OpenAI (which will trace Databricks Foundation Model API calls)
mlflow.openai.autolog()

# Set up MLflow tracking to Databricks if not already configured
# mlflow.set_tracking_uri("databricks")
# mlflow.set_experiment("/Shared/databricks-function-agent-demo")

# Create OpenAI client configured for Databricks
client = OpenAI(
    api_key=os.environ.get("DATABRICKS_TOKEN"),
    base_url=f"{os.environ.get('DATABRICKS_HOST')}/serving-endpoints"
)

# Define the tool function. Decorate it with `@mlflow.trace` to create a span for its execution.
@mlflow.trace(span_type=SpanType.TOOL)
def get_weather(city: str) -> str:
    if city == "Tokyo":
        return "sunny"
    elif city == "Paris":
        return "rainy"
    return "unknown"

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "parameters": {
                "type": "object",
                "properties": {"city": {"type": "string"}},
            },
        },
    }
]

_tool_functions = {"get_weather": get_weather}

# Define a simple tool calling agent
@mlflow.trace(span_type=SpanType.AGENT)
def run_tool_agent(question: str):
    messages = [{"role": "user", "content": question}]

    # Invoke the model with the given question and available tools
    response = client.chat.completions.create(
        model="databricks-llama-4-maverick",
        messages=messages,
        tools=tools,
    )
    ai_msg = response.choices[0].message

    # If the model requests tool call(s), invoke the function with the specified arguments
    if tool_calls := ai_msg.tool_calls:
        for tool_call in tool_calls:
            function_name = tool_call.function.name
            if tool_func := _tool_functions.get(function_name):
                args = json.loads(tool_call.function.arguments)
                tool_result = tool_func(**args)
            else:
                raise RuntimeError("An invalid tool is returned from the assistant!")

            messages.append(
                {
                    "role": "tool",
                    "tool_call_id": tool_call.id,
                    "content": tool_result,
                }
            )

        # Send the tool results to the model and get a new response
        response = client.chat.completions.create(
            model="databricks-llama-4-maverick", messages=messages
        )

    return response.choices[0].message.content

# Run the tool calling agent
question = "What's the weather like in Paris today?"
answer = run_tool_agent(question)

Ślad wywołań funkcji modeli Foundation firmy Databricks

Dostępne modele

Modele bazowe Databricks zapewniają dostęp do różnych najnowocześniejszych modeli, w tym Llama, Anthropic i innych wiodących modeli bazowych.

Aby uzyskać pełną i najbardziej up-tolistę dostępnych modeli i ich identyfikatorów modeli, zapoznaj się z dokumentacją modeli Databricks Foundation Models.

Wyłączanie automatycznego śledzenia

Automatyczne śledzenie modeli usługi Databricks Foundation można wyłączyć globalnie przez wywołanie metody mlflow.openai.autolog(disable=True) lub mlflow.autolog(disable=True).