跳到主要内容

设置跟踪标签

标签是可变的键值对,您可以将其附加到跟踪上,以添加有价值的元数据和上下文。这些元数据对于组织、搜索和过滤您的跟踪非常有用。例如,您可以根据用户输入的主题、他们运行的环境或使用的模型版本来标记您的跟踪。

MLflow 通过其 API 或 MLflow UI,为您提供了在任何时候(即使在跟踪记录之后)添加、更新或删除标签的灵活性。

何时使用跟踪标签

跟踪标签对于以下场景特别有用:

  • 会话管理:按对话会话或用户交互对跟踪进行分组
  • 环境跟踪:区分生产、暂存和开发跟踪
  • 模型版本控制:跟踪生成特定跟踪的模型版本
  • 用户上下文:将跟踪与特定用户或客户群体关联起来
  • 性能监控:根据性能特征标记跟踪
  • A/B 测试:区分不同的实验变体

为活动跟踪设置标签

使用 mlflow.update_current_trace() 在跟踪执行期间添加标签。

import mlflow


@mlflow.trace
def my_func(x):
mlflow.update_current_trace(tags={"fruit": "apple"})
return x + 1


result = my_func(5)

示例:在生产系统中设置服务标签

import mlflow
import os


@mlflow.trace
def process_user_request(user_id: str, session_id: str, request_text: str):
# Add comprehensive tags for production monitoring
mlflow.update_current_trace(
tags={
"user_id": user_id,
"session_id": session_id,
"environment": os.getenv("ENVIRONMENT", "development"),
"model_version": os.getenv("MODEL_VERSION", "1.0.0"),
"request_type": "chat_completion",
"priority": "high" if "urgent" in request_text.lower() else "normal",
}
)

response = f"Processed: {request_text}"
return response
注意

当键尚不存在时,`mlflow.update_current_trace()` 函数会将指定的标签添加到当前跟踪。如果键已存在,它会使用新值更新该键。

总结

跟踪标签提供了一种强大的方式来为您的 MLflow 跟踪添加上下文和元数据,从而实现:

  • 更好的组织:将相关跟踪分组在一起
  • 强大的过滤:通过搜索快速找到特定跟踪
  • 操作监控:按类别跟踪性能和问题
  • 用户分析:了解用户行为模式
  • 调试:添加有助于故障排除的上下文

无论您是在跟踪执行期间还是在事后添加标签,标签都能使您的跟踪数据对生产监控和分析更有价值且更具可操作性。