开始使用
开始使用Katib
本指南介绍如何开始使用 Katib 并运行一些示例。
前提条件
您需要安装以下Katib组件以运行示例:
使用Katib Python SDK入门
您可以使用Python SDK运行您的第一次超参数调优Katib实验。
在以下示例中,我们将最大化一个简单的目标函数:
$$ F(a,b) = 4a - b^2 $$
值越大的 \(a\) 和越小的 \(b\) ,函数值 \(F\) 越大。
如果您独立安装 Katib,请确保您
配置本地 kubeconfig
以访问您安装了 Katib 控制平面的 Kubernetes 集群。
如果您将Katib作为Kubeflow平台的一部分进行安装,您可以打开一个新的 Kubeflow Notebook 来运行此脚本。
注意。如果您在Kubeflow平台中使用Katib来运行此示例,您需要使用这个命名空间: KatibClient(namespace="kubeflow-user-example-com")。
注意。kubeflow 命名空间预先配置了所需的标签 katib.kubeflow.org/metrics-collector-injection: enabled 用于指标收集。如果您想在其他命名空间中使用基于拉取的指标收集器,您可以按照 Metrics Collector 中的说明附加此标签。
# [1] Create an objective function.
def objective(parameters):
# Import required packages.
import time
time.sleep(5)
# Calculate objective function.
result = 4 * int(parameters["a"]) - float(parameters["b"]) ** 2
# Katib parses metrics in this format: <metric-name>=<metric-value>.
print(f"result={result}")
import kubeflow.katib as katib
# [2] Create hyperparameter search space.
parameters = {
"a": katib.search.int(min=10, max=20),
"b": katib.search.double(min=0.1, max=0.2)
}
# [3] Create Katib Experiment with 12 Trials and 2 CPUs per Trial.
katib_client = katib.KatibClient(namespace="kubeflow")
name = "tune-experiment"
katib_client.tune(
name=name,
objective=objective,
parameters=parameters,
objective_metric_name="result",
max_trial_count=12,
resources_per_trial={"cpu": "2"},
)
# [4] Wait until Katib Experiment is complete
katib_client.wait_for_experiment_condition(name=name)
# [5] Get the best hyperparameters.
print(katib_client.get_optimal_hyperparameters(name))
对于最优的试验、超参数和观察指标,您应该获得类似的输出:
{
"best_trial_name": "tune-experiment-nmggpxx2",
"parameter_assignments": [
{
"name": "a",
"value": "19"
},
{
"name": "b",
"value": "0.13546396192975868"
}
],
"observation": {
"metrics": [
{
"latest": "75.98164951501829",
"max": "75.98164951501829",
"min": "75.98164951501829",
"name": "result"
}
]
}
}
在 Katib 用户界面 中,您应该看到所有完成的试验及其结果列表:

下一步
查看 Katib UI 指南 以获取有关您的 Katib 实验的更多信息。
运行 Katib 超参数调优 实验使用 YAML。
了解如何配置 Katib Experiment 参数。
查看更多 Katib 示例。
Last modified January 27, 2025: 更新 Katib Python SDK 示例中的命名空间标签用户指南 (#3976) (2a5ef22)