Compartir a través de

记分器生命周期管理 API 参考

重要

此功能在 Beta 版中。 工作区管理员可以从 预览 页控制对此功能的访问。 请参阅 管理 Azure Databricks 预览版

本页介绍用于实现生产监视的方法。 有关 Azure Databricks 上生产环境中的 GenAI 监视指南,请参阅 Monitor GenAI in production

记分器实例方法

Scorer.register()

API 参考:Scorer.register

向服务器注册自定义记分器函数。 用于使用 @scorer 修饰器创建的记分器。

@scorer
def custom_scorer(outputs):
    return len(str(outputs.get("response", "")))

# Register the custom scorer
my_scorer = custom_scorer.register(name="response_length")

参数:

  • name (str):试验中记分器的唯一名称。 默认为评分器的现有名称。

返回: 已注册服务器的新Scorer 实例

Scorer.start()

API 参考:Scorer.start

使用指定的采样配置开始联机评估。

from mlflow.genai.scorers import ScorerSamplingConfig

# Start monitoring with sampling
active_scorer = registered_scorer.start(
    sampling_config=ScorerSamplingConfig(
        sample_rate=0.5,
        filter_string="trace.status = 'OK'"
    ),
)

参数:

  • name (str):记分器的名称。 如果未提供,则默认为评分器的当前名称。
  • sampling_configScorerSamplingConfig):跟踪采样配置
    • sample_rate (float):要评估的跟踪比例(0.0-1.0)。 默认值:1.0
    • filter_string (str,可选):用于跟踪选择的 MLflow 兼容筛选器

返回: 处于活动状态的新 Scorer 实例

Scorer.update()

API 参考:Scorer.update

修改活动评分器的采样配置。 这是一个不可变的操作。

# Update sampling rate (returns new scorer instance)
updated_scorer = active_scorer.update(
    sampling_config=ScorerSamplingConfig(
        sample_rate=0.8,
    ),
)

# Original scorer remains unchanged
print(f"Original: {active_scorer.sample_rate}")  # 0.5
print(f"Updated: {updated_scorer.sample_rate}")   # 0.8

参数:

  • name (str):记分器的名称。 如果未提供,则默认为评分器的当前名称。
  • sampling_configScorerSamplingConfig):跟踪采样配置
    • sample_rate (float):要评估的跟踪比例(0.0-1.0)。 默认值:1.0
    • filter_string (str,可选):用于跟踪选择的 MLflow 兼容筛选器

返回: 具有更新配置的新 Scorer 实例

Scorer.stop()

API 参考:Scorer.stop

通过将采样率设置为 0 来停止联机评估。 使记分器保持注册状态。

# Stop monitoring but keep scorer registered
stopped_scorer = active_scorer.stop()
print(f"Sample rate: {stopped_scorer.sample_rate}")  # 0

参数:

  • name (str):记分器的名称。 如果未提供,则默认为评分器的当前名称。

返回: 具有 sample_rate=0 的新 Scorer 实例

记分器注册表函数

mlflow.genai.scorers.get_scorer()

API 参考:get_scorer

按名称检索已注册的记分器。

from mlflow.genai.scorers import get_scorer

# Get existing scorer by name
existing_scorer = get_scorer(name="safety_monitor")
print(f"Current sample rate: {existing_scorer.sample_rate}")

参数:

  • name (str):已注册的记分器的名称

返回:Scorer 实例

mlflow.genai.scorers.list_scorers()

列出当前试验的所有已注册评分器。

from mlflow.genai.scorers import list_scorers

# List all registered scorers
all_scorers = list_scorers()
for scorer in all_scorers:
    print(f"Name: {scorer._server_name}")
    print(f"Sample rate: {scorer.sample_rate}")
    print(f"Filter: {scorer.filter_string}")

返回:Scorer实例列表

mlflow.genai.scorers.delete_scorer()

API 参考:delete_scorer

按名称删除已注册的记分器。

from mlflow.genai.scorers import delete_scorer

# Delete existing scorer by name
delete_scorer(name="safety_monitor")

参数:

  • name (str):已注册的记分器的名称

返回: 没有

记分器属性

Scorer.sample_rate

当前采样率(0.0-1.0)。 返回已停止的记分器的 0。

print(f"Sampling {scorer.sample_rate * 100}% of traces")

Scorer.filter_string

MLflow 跟踪选择的当前跟踪筛选器字符串。

print(f"Filter: {scorer.filter_string}")

配置类

ScorerSamplingConfig

API 参考:ScorerSamplingConfig

保存评分器的采样配置的数据类。

from mlflow.genai import ScorerSamplingConfig

config = ScorerSamplingConfig(
    sample_rate=0.5,
    filter_string="trace.status = 'OK'"
)

属性:

  • sample_rate (浮点数,可选):采样率介于 0.0 和 1.0 之间
  • filter_string (str,可选):MLflow 跟踪筛选器

指标回填

backfill_scorers()

from databricks.agents.scorers import backfill_scorers, BackfillScorerConfig

job_id = backfill_scorers(
    experiment_id="your-experiment-id",
    scorers=[
        BackfillScorerConfig(scorer=safety_scorer, sample_rate=0.8),
        BackfillScorerConfig(scorer=response_length, sample_rate=0.9)
    ],
    start_time=datetime(2024, 1, 1),
    end_time=datetime(2024, 1, 31)
)

参数:

所有参数都是关键字参数。

  • experiment_id (str, optional):要回填的试验的 ID。 如果未提供,请使用当前的试验上下文
  • scorers (Union[List[BackfillScorerConfig], List[str]], required):具有自定义采样率的对象列表 BackfillScorerConfig (如果 BackfillScorerConfig 中未提供sample_rate,则默认为已注册的记分器的采样率)、或记分器名称列表(字符串)以使用试验计划评分器中的当前采样率。 不能为空。
  • start_time (日期时间,可选):回填评估的开始时间。 如果未提供,则不应用开始时间约束
  • end_time (日期时间,可选):回填评估的结束时间。 如果未提供,则不应用结束时间约束

返回: 为状态跟踪创建的回填作业的作业 ID (str)