捷徑

Kubeflow Pipelines

TorchX 提供了一個轉接器,可以在 Kubeflow Pipelines 中執行 TorchX 元件。請參閱 KubeFlow Pipelines 範例

../_images/kfp_diagram.jpg

torchx.pipelines.kfp

../_images/pipeline_kfp_diagram.png

此模組包含用於將 TorchX 元件轉換為 KubeFlow Pipeline 元件的轉接器。

目前的 KFP 轉接器僅支援單一節點(1 個角色和 1 個複本)元件。

torchx.pipelines.kfp.adapter.container_from_app(app: AppDef, *args: object, ui_metadata: Optional[Mapping[str, object]] = None, **kwargs: object) ContainerOp[原始碼]

container_from_app 將應用程式轉換為 KFP 元件,並傳回相應的 ContainerOp 執行個體。

如需參數說明,請參閱 component_from_app。任何未指定的參數都會傳遞給 KFP 容器工廠方法。

>>> import kfp
>>> from torchx import specs
>>> from torchx.pipelines.kfp.adapter import container_from_app
>>> app_def = specs.AppDef(
...     name="trainer",
...     roles=[specs.Role("trainer", image="foo:latest")],
... )
>>> def pipeline():
...     trainer = container_from_app(app_def)
...     print(trainer)
>>> kfp.compiler.Compiler().compile(
...     pipeline_func=pipeline,
...     package_path="/tmp/pipeline.yaml",
... )
{'ContainerOp': {... 'name': 'trainer-trainer', ...}}
torchx.pipelines.kfp.adapter.resource_from_app(app: AppDef, queue: str, service_account: Optional[str] = None) ResourceOp[原始碼]

resource_from_app 從提供的應用程式產生一個 KFP ResourceOp,該應用程式使用 Kubernetes 上的 Volcano 作業排程器來執行分散式應用程式。如需 Volcano 以及如何安裝的更多資訊,請參閱 https://volcano.sh/en/docs/

參數
  • app – 要轉接的 torchx AppDef。

  • queue – 要在其中排程運算元的 Volcano 佇列。

>>> import kfp
>>> from torchx import specs
>>> from torchx.pipelines.kfp.adapter import resource_from_app
>>> app_def = specs.AppDef(
...     name="trainer",
...     roles=[specs.Role("trainer", image="foo:latest", num_replicas=3)],
... )
>>> def pipeline():
...     trainer = resource_from_app(app_def, queue="test")
...     print(trainer)
>>> kfp.compiler.Compiler().compile(
...     pipeline_func=pipeline,
...     package_path="/tmp/pipeline.yaml",
... )
{'ResourceOp': {... 'name': 'trainer-0', ... 'name': 'trainer-1', ... 'name': 'trainer-2', ...}}
torchx.pipelines.kfp.adapter.component_from_app(app: AppDef, ui_metadata: Optional[Mapping[str, object]] = None) ContainerFactory[原始碼]

component_from_app 接收一個 TorchX 元件/AppDef 並傳回一個 KFP ContainerOp 工廠。這相當於 kfp.components.load_component_from_* 方法。

參數
>>> from torchx import specs
>>> from torchx.pipelines.kfp.adapter import component_from_app
>>> app_def = specs.AppDef(
...     name="trainer",
...     roles=[specs.Role("trainer", image="foo:latest")],
... )
>>> component_from_app(app_def)
<function component_from_app...>
torchx.pipelines.kfp.adapter.component_spec_from_app(app: AppDef) Tuple[str, Role][原始碼]

component_spec_from_app 接收一個 TorchX 元件,並為其產生 yaml 規格。值得注意的是,這不適用於資源或 port_maps,因為這些必須在執行時套用,這就是它也傳回角色規格的原因。

>>> from torchx import specs
>>> from torchx.pipelines.kfp.adapter import component_spec_from_app
>>> app_def = specs.AppDef(
...     name="trainer",
...     roles=[specs.Role("trainer", image="foo:latest")],
... )
>>> component_spec_from_app(app_def)
('description: ...', Role(...))
class torchx.pipelines.kfp.adapter.ContainerFactory(*args, **kwargs)[原始碼]

ContainerFactory 是一個協定,表示一個函數,當它被呼叫時會產生一個 kfp.dsl.ContainerOp。

文件

取得 PyTorch 的完整開發人員文件

查看文件

教學課程

取得適用於初學者和進階開發人員的深入教學課程

查看教學課程

資源

尋找開發資源並獲得問題的解答

查看資源