Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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,
)
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="")
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)
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).