katib

kubeflowApache-2.0活跃维护

Kubernetes 上的自动机器学习平台,支持超参数调优和神经网络架构搜索,可对接 PyTorch、JAX 等训练框架。项目已弃用,官方建议迁移到 OptimizationJob 和 Kubeflow Trainer。

WARNING: Katib project is DEPRECATED, users should migrate to OptimizationJob and Kubeflow Trainer

v0.19.0发布于 2025-10-30 23:58 UTC1,707star552fork同步于 2026-11-10 11:47 UTC

怎么上手

由 README 提炼,执行前请确认
kubectl apply -k "github.com/kubeflow/katib.git/manifests/v1beta1/installs/katib-standalone?ref=v0.17.0"
pip install -U kubeflow-katib
硬件要求按 README 说明

README 未说明显存或 GPU 型号要求;Katib 本身是 Kubernetes 控制面组件,训练负载的硬件取决于所用 Trial 模板。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Kubernetes 原生的 AutoML 工具,做超参调优、早停和网络结构搜索,但项目已废弃

Kubernetes 上的自动机器学习平台,支持超参数调优和神经网络架构搜索,可对接 PyTorch、JAX 等训练框架。项目已弃用,官方建议迁移到 OptimizationJob 和 Kubeflow Trainer。

核心能力

  • 以 Kubernetes CRD 方式运行超参调优 Experiment
  • 内置随机、网格、贝叶斯、TPE、CMA-ES、HyperBand、PBT 等算法
  • 支持早停的 Median Stop 规则与 ENAS、DARTS 网络结构搜索
  • 框架无关,可驱动任意语言应用及 TensorFlow、PyTorch、XGBoost
  • Trial 可复用 Training Operator、Argo、Tekton 等任意 K8s 自定义资源

容易踩的坑

项目已废弃,官方建议迁移到 Kubeflow Trainer 的 OptimizationJob API;安装前需先满足 Kubeflow 官方文档列出的前置条件(如 Kubernetes 集群);控制面与 Python SDK 需分别安装,SDK 只是简化创建调优任务。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.19.0
  1. v0.19.0Katib v0.19.0最新正式版2025-10-30 · 2025-10-30 23:58 UTC

    This is Kubeflow Katib v0.19.0 release.

    kubectl apply -k "github.com/kubeflow/katib.git/manifests/v1beta1/installs/katib-standalone?ref=v0.19.0"
    

    New Features

    • feat(sdk): Support multiple pip index URLs. (#2566 by @wassimbensalem)
    • Add get_job_logs() API to Katib Python SDK (#2580 by @adity1raut)
    • feat: Add trial_timeout parameter to Katib tune API (#2568 by @wassimbensalem)
    • Upgrade Kubernetes Version to 1.34 (#2573 by @Electronic-Waste)
    • Upgrade Kubernetes Version to 1.33 & Go to 1.24 (#2572 by @Electronic-Waste)
    • Upgrade Kubernetes Version to 1.32.2 (#2521 by @Electronic-Waste)
    • Adding out of the box support to TrainJob (#2560 by @ram4444)

    Bug Fixes

    • fix(metrics-collector): Use strict validation to get remote image (#2583 by @andreyvelich)
    • fix(controller): Fix RBAC to create TrainJobs (#2581 by @andreyvelich)
    • [SDK] fix issue with serialization of LoraConfig (#2567 by @Hexoplon)
    • Fix Istio sidecar injection by moving from annotations to labels (#2527 by @madmecodes)
    • Fix PSS restricted warnings (#2528 by @akagami-harsh)

    Misc

    • feat(release): Update Katib release script to publish SDK models (#2584 by @andreyvelich)
    • chore(models): Move models into kubeflow_katib_api package (#2579 by @kramaranya)
    • Nominate @Electronic-Waste as Approver. (#2574 by @Electronic-Waste)
    • Add license scan report and status (#2564 by @fossabot)
    • chore: Bump go-containerregistry to v0.20.6 (#2575 by @andreyvelich)
    • chore(deps): bump golang.org/x/oauth2 from 0.21.0 to 0.27.0 (#2558 by @dependabot[bot])
    • feat(ci): Add Trivy Vulnerability Scan (#2570 by @andreyvelich)
    • tenzen-y steps down from Katib approver role (#2561 by @tenzen-y)
    • Bump golang.org/x/crypto from 0.31.0 to 0.35.0 (#2543 by @dependabot[bot])
    • chore: Upgrade Go version to 1.23 (#2526 by @tenzen-y)
    • feat(docs): Guide to report security vulnerabilities (#2556 by @andreyvelich)
    • chore(docs): Add OpenSSF Badge (#2555 by @andreyvelich)
    • [GSoC] Add e2e test for tune api with LLM hyperparameter optimization (#2420 by @helenxie-bit)
    • Bump brace-expansion in /pkg/ui/v1beta1/frontend (#2551 by @dependabot[bot])
    • New fixing kustomize5 warning (#2549 by @vikas-saxena02)
    • feat: add CITATION.cff file (#2547 by @milinddethe15)
    • Bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 (#2533 by @dependabot[bot])
    • chore(test): Removed the no longer needed trigger-rerun-test.yaml ([#2540](https://github.com/kubeflow/kati
  2. v0.18.0Katib v0.18.02025-03-31 · 2025-03-31 23:25 UTC
    查看更新说明

    This is the Katib v0.18.0 release.

    The key highlights:

    • KEP-2339: Hyperparameter optimization for LLMs fine-tuning.
    • KEP-2340: Support for push-based metrics collection.
    • KEP-2374: Advanced parameter distribution, such as uniform, log-uniform, normal, and log-normal.

    Breaking Changes

    • Move Katib manifest image references to ghcr (#2535 by @saileshd1402)
    • Migrate docker images to ghcr (#2531 by @mahdikhashan)
    • Upgrade Kubernetes to v1.31.3 (#2478 by @Electronic-Waste)
    • Upgrade Kubernetes to v1.30.7 (#2463 by @Electronic-Waste)
    • Drop Python 3.7 and Support Python 3.11 in the SDK (#2337 by @tenzen-y)

    New Features

    Hyperparameter Optimization for LLMs

    • [DOCS] move llm hyperparameter optimisation design image to the proposal directory and rename it (#2472 by @mahdikhashan)
    • [GSoC] Update tune API for LLM hyperparameters optimization (#2393 by @helenxie-bit)
    • [GSoC] Create LLM Hyperparameters Optimization API Proposal (#2333 by @helenxie-bit)

    Support for Advanced Distributions for HPO

    • [GSOC] optuna suggestion service logic update (#2446 by @shashank-iitbhu)
    • [GSOC] hyperopt suggestion service logic update (#2412 by @shashank-iitbhu)
    • [GSOC] Add validator for feasible space distribution (#2404 by @shashank-iitbhu)
    • [GSOC] added Unknown distribution and convertDistribution in suggestion client (#2403 by @shashank-iitbhu)
    • [GSOC] Support for various Parameter distributions in Katib (#2334 by @shashank-iitbhu)
    • [GSoC] Added DistributionType to Experiment API (#2377 by @shashank-iitbhu)

    Push-based Metrics Collector

    • [GSoC] Provide a PyTorch MNIST Example for Push-based Metrics Collection (#2437 by @Electronic-Waste)
    • [GSoC] Compatibility Changes in Trial Controller (#2394 by @Electronic-Waste)
    • [GSoC] New Interface report_metrics in Python SDK (#2371 by @Electronic-Waste)
    • [GSoC] KEP for Project 6: Push-based Metrics Collection for Katib (#2328 by @Electronic-Waste)
    • [GSoC] Add New Parameter in tune (#2369 by @Electronic-Waste)

    SDK Updates

    • [SDK] Support PyTorchJob as a Trial Worker (#2512 by @andreyvelich)
    • [SDK] test: Add e2e test for tune function. (#2399 by @Electronic-Waste)
    • [SDK] improve PVC creation name error (#2496 by @mahdikhashan)
    • [SDK] Fix empty list for env variables and numpy version (#2360 by @andreyvelich)
    • [SDK] Explain Python version support cycle (#2354 by @andreyvelich)

    Bug Fixes

    • fix(webhook): fix validation message in experiment webhook (#2507 by @Electr
  3. v0.18.0-rc.0Katib v0.18.0-rc.0pre-release2025-02-13 · 2025-02-13 18:30 UTC
    查看更新说明

    This is the Katib v0.18.0-rc.0 release.

    The key highlights:

    • KEP-2339: Hyperparameter optimization for LLMs fine-tuning.
    • KEP-2340: Support for push-based metrics collection.
    • KEP-2374: Advanced parameter distribution, such as uniform, log-uniform, normal, and log-normal.

    Breaking Changes

    • Upgrade Kubernetes to v1.31.3 (#2478 by @Electronic-Waste)
    • Upgrade Kubernetes to v1.30.7 (#2463 by @Electronic-Waste)
    • Drop Python 3.7 and Support Python 3.11 in the SDK (#2337 by @tenzen-y)

    New Features

    Hyperparameter Optimization for LLMs

    • [DOCS] move llm hyperparameter optimisation design image to the proposal directory and rename it (#2472 by @mahdikhashan)
    • [GSoC] Update tune API for LLM hyperparameters optimization (#2393 by @helenxie-bit)
    • [GSoC] Create LLM Hyperparameters Optimization API Proposal (#2333 by @helenxie-bit)

    Push-based metrics collection

    • [GSoC] Provide a PyTorch MNIST Example for Push-based Metrics Collection (#2437 by @Electronic-Waste)
    • [GSoC] Compatibility Changes in Trial Controller (#2394 by @Electronic-Waste)
    • [GSoC] New Interface report_metrics in Python SDK (#2371 by @Electronic-Waste)
    • [GSoC] KEP for Project 6: Push-based Metrics Collection for Katib (#2328 by @Electronic-Waste)
    • [GSoC] Add New Parameter in tune (#2369 by @Electronic-Waste)

    Advanced distributions for HPO

    • [GSOC] optuna suggestion service logic update (#2446 by @shashank-iitbhu)
    • [GSOC] hyperopt suggestion service logic update (#2412 by @shashank-iitbhu)
    • [GSOC] Add validator for feasible space distribution (#2404 by @shashank-iitbhu)
    • [GSOC] added Unknown distribution and convertDistribution in suggestion client (#2403 by @shashank-iitbhu)
    • [GSOC] Support for various Parameter distributions in Katib (#2334 by @shashank-iitbhu)
    • [GSoC] Added DistributionType to Experiment API (#2377 by @shashank-iitbhu)

    SDK Updates

    • [SDK] Support PyTorchJob as a Trial Worker (#2512 by @andreyvelich)
    • [SDK] test: Add e2e test for tune function. (#2399 by @Electronic-Waste)
    • [SDK] improve PVC creation name error (#2496 by @mahdikhashan)
    • [SDK] Fix empty list for env variables and numpy version (#2360 by @andreyvelich)
    • [SDK] Explain Python version support cycle (#2354 by @andreyvelich)

    Bug Fixes

    • fix(webhook): fix validation message in experiment webhook (#2507 by @Electronic-Waste)
    • Install typing-extensions v4.10.0 to fix Python test error (#2504 by @helenxie-bit)
    • [SDK] Update tune API (#2497 by
  4. v0.17.0Katib v0.17.02024-07-15 · 2024-07-15 19:54 UTC
    查看更新说明

    This is the Katib v0.17.0 release.

    Breaking Changes

    • [SDK] Drop Python 3.7 and Support Python 3.11 (#2337 by @tenzen-y)
    • [SDK] Upgrade the protobuf version to >=4.21.12,<5 (#2358 by @tenzen-y)
    • Drop Kubernetes v1.26, and support Kubernetes v1.29 (#2308 by @tenzen-y)
    • Drop Kubernetes v1.25, and Support Kubernetes v1.28 (#2303 by @tenzen-y)
    • Remove MXNet examples (#2267 by @tenzen-y)

    New Features

    Core Features

    • Replace gRPC code generation tool from Znly/protoc to Buf (#2344 by @forsaken628)
    • Support ARM64 arch for release images (#2315 by @andreyvelich)
    • DB: Add environment variable option to skip DB table creation (#2245 by @lkaybob)
    • Add environment variable option to set postgres ssl mode (#2266 by @ckcd)
    • Upgrade TensorFlow version to v2.16.1 (#2282 by @tenzen-y)
    • Upgrade PyTorch version to v2.2.1 (#2279 by @tenzen-y)

    SDK Features

    • [SDK] Generate Name functionality for creating experiments. (#2272 by @bharathk005)
    • [SDK] Add env & env_from in client tune (#2235 by @shipengcheng1230)
    • [SDK] Add 'algorithm_settings' in client tune (#2227 by @shipengcheng1230)
    • [SDK] Raise more human-readable name conflict exception (#2199 by @droctothorpe)

    Bug Fixes

    • Remove code generation from release script (#2364 by @andreyvelich)
    • [SDK] Fix empty list for env variables and numpy version (#2360 by @andreyvelich)
    • Use cache-dependency-path in actions/setup-go for CI workflow (#2355 by @forsaken628)
    • Fix TestReconcileBatchJob (#2350 by @forsaken628)
    • Fix Scikit-Learn Version for Skopt Tests (#2336 by @andreyvelich)
    • [SDK] Fix env per Trial parameter in tune API (#2304 by @andreyvelich)
    • Fix: clean up UTs for file metrics collector (#2285 by @Electronic-Waste)
    • Fix tensor devices for DARTS Trial (#2273 by @sifa1024)
    • Typo fix stale.yaml (#2257 by @tarilabs)
    • Fix Optuna Validation for CMA-ES (#2240 by @andreyvelich)

    Misc

    • Replace already closed github.com/golang/mock with go.uber.org/mock (#2357 by @forsaken628)
    • Update outdated actions (#2324 by @Mersho)
    • Upgrade Go version to v1.22 (#2309 by @tenzen-y)
    • CI: Enable parallel mode for the coveralls (#2297 by @tenzen-y)
    • Upgrade Python version to 3.11 (#2278 by @tenzen-y)
    • chore: add unit testcases for files in Text format. (#2274 by @Electronic-Waste)
    • Upgrade google/go-containerregistry/pkg/authn/k8schain (#2252 by @tenzen-y)
    • Add Technical and style guide to the contribution guide ([#2250](https://github.co
  5. v0.16.0Katib v0.16.02023-11-03 · 2023-11-03 06:11 UTC
    查看更新说明

    This is the Katib v0.16.0 release.

    Breaking Changes

    • Implement KatibConfig API (#2176 by @tenzen-y)
    • Drop Kubernetes v1.24 and support Kubernetes v1.27 (#2182 by @tenzen-y)
    • Drop Kubernetes v1.23 and support Kubernetes v1.26 (#2177 by @tenzen-y)
    • Change failurePolicy to Fail for Katib Webhooks (#2018 by @andreyvelich)

    New Features

    Core Features

    • Consolidate the Katib Cert Generator to the Katib Controller (#2185 by @tenzen-y)
    • Containerize tests for Katib Conformance (#2146 by @nagar-ajay)

    UI Improvements

    • [UI] Default Resume Policy to never from UI (#2195 by @mChowdhury-91)
    • [UI] Remove Deprecated Katib UI (#2179 by @andreyvelich)
    • [UI] Fix Trial Logs when Kubernetes Job Fails (#2164 by @andreyvelich)
    • kwa(front): Support all namespaces (#2119 by @elenzio9)
    • kwa(front): Update the use of SnackBarService (#2113 by @orfeas-k)
    • UI: Remove an unsed import, EventV1beta1Api (#2116 by @tenzen-y)

    SDK Improvements

    • [SDK] Enable resource specification for trial containers (#2192 by @droctothorpe)
    • [SDK] Add namespace parameter to KatibClient (#2183 by @droctothorpe)
    • [SDK] Import all Kubernetes Models (#2148 by @andreyvelich)

    Bug fixes

    • Bug: Wait for the certs to be mounted inside the container (#2213 by @tenzen-y)
    • Start waiting for certs to be ready before sending data to the channel (#2215 by @tenzen-y)
    • E2E: Add additional checks to verify if the components are ready (#2212 by @tenzen-y)
    • Remove a katib-webhook-cert Secret from components (#2214 by @tenzen-y)
    • Skip to inject the metrics-collector pods to the Katib controller (#2211 by @tenzen-y)
    • Sending an empty data to the certsReady channel (#2196 by @tenzen-y)
    • Fix conformance docker image (#2147 by @nagar-ajay)

    Documentation

    • Add PITS Global Data Recovery Services to the adopters list (#2160 by @ghost)
    • Add SDK Breaking Change to Changelog (#2133 by @andreyvelich)
    • Add Changelog for Katib v0.15.0 (#2129 by @andreyvelich)
    • Add Changelog for Katib v0.15.0-rc.1 (#2123 by @andreyvelich)
    • Add Changelog for Katib v0.15.0-rc.0 (#2106 by @andreyvelich)

    Misc

    • Upgrade Tensorflow version to v2.13.0 (#2216 by @tenzen-y)
    • Upgrade Go version to v1.20 (#2190 by @tenzen-y)
    • Replace grpc_health_probe with the built-in gRPC container probe feature (#2189 by @tenzen-y)
    • Allow install binaries for the arm64 in the envtest (#2188 by @tenzen-y)
    • Replace action to setup minikube with medyagh/setup-minikube ([#2178](https://github.com/kubeflow/katib/pul

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Kubeflow Katib

    Build Status Coverage Status Go Report Card Releases Slack Status OpenSSF Best Practices FOSSA Status

    [!WARNING] The Katib project is deprecated. Users should migrate to the OptimizationJob APIs, which are released as part of the Kubeflow Trainer project under the alpha feature gate.

    OptimizationJob is the next step for hyperparameter optimization in Kubeflow. It is natively integrated with the TrainJob API, so every trial can use Trainer runtimes and distributed training features out of the box. Metrics are pushed through the Kubeflow SDK and Trainer status server, so you no longer need a separate database or a metrics collector sidecar.

    Work on the remaining features is tracked in kubeflow/trainer#3562.

    Kubeflow Katib is a Kubernetes-native project for automated machine learning (AutoML). Katib supports Hyperparameter Tuning, Early Stopping and Neural Architecture Search.

    Katib is the project which is agnostic to machine learning (ML) frameworks. It can tune hyperparameters of applications written in any language of the users’ choice and natively supports many ML frameworks, such as TensorFlow, PyTorch, XGBoost, and others.

    Katib can perform training jobs using any Kubernetes Custom Resources with out of the box support for Kubeflow Training Operator, Argo Workflows, Tekton Pipelines and many more.

    Katib stands for secretary in Arabic.

    Search Algorithms

    Katib supports several search algorithms. Follow the Kubeflow documentation to know more about each algorithm and check the this guide to implement your custom algorithm.

    To perform the above algorithms Katib supports the following frameworks:

    Prerequisites

    Please check the official Kubeflow documentation for prerequisites to install Katib.

    Installation

    Please follow the Kubeflow Katib guide for the detailed instructions on how to install Katib.

    Installing the Control Plane

    Run the following command to install the latest stable release of Katib control plane:

    kubectl apply -k "github.com/kubeflow/katib.git/manifests/v1beta1/installs/katib-standalone?ref=v0.17.0"
    

    Run the following command to install the latest changes of Katib control plane:

    kubectl apply -k "github.com/kubeflow/katib.git/manifests/v1beta1/installs/katib-standalone?ref=master"
    

    For the Katib Experiments check the complete examples list.

    Installing the Python SDK

    Katib implements a Python SDK to simplify creation of hyperparameter tuning jobs for Data Scientists.

    Run the following command to install the latest stable release of Katib SDK:

    pip install -U kubeflow-katib
    

    Getting Started

    Please refer to the getting started guide to quickly create your first hyperparameter tuning Experiment using the Python SDK.

    Community

    The following links provide information on how to get involved in the community:

    Contributing

    Please refer to the CONTRIBUTING guide.

    Citation

    If you use Katib in a scientific publication, we would appreciate citations to the following paper:

    A Scalable and Cloud-Native Hyperparameter Tuning System, George et al., arXiv:2006.02085, 2020.

    Bibtex entry:

    @misc{george2020katib,
        title={A Scalable and Cloud-Native Hyperparameter Tuning System},
        author={Johnu George and Ce Gao and Richard Liu and Hou Gang Liu and Yuan Tang and Ramdoot Pydipaty and Amit Kumar Saha},
        year={2020},
        eprint={2006.02085},
        archivePrefix={arXiv},
        primaryClass={cs.DC}
    }