输出 HTML 和 Markdown

Vertex AI Pipelines 提供了一组预定义的可视化类型(例如 MetricsClassificationMetrics),用于评估流水线作业的结果。但是,在许多情况下需要自定义可视化。Vertex AI Pipelines 提供了两种输出自定义可视化工件的主要方法:Markdown 和 HTML 文件。

导入所需的依赖项

在开发环境中,导入所需的依赖项。

from kfp import dsl
from kfp.dsl import (
    Output,
    HTML,
    Markdown
)

输出 HTML

要导出 HTML 文件,请使用 Output[HTML] 工件定义组件。您还必须将 HTML 内容写入工件的路径。在此示例中,您将使用字符串变量表示 HTML 内容。

@dsl.component
def html_visualization(html_artifact: Output[HTML]):
    public_url = 'http://user-images.githubusercontent.com/37026441/140434086-d9e1099b-82c7-4df8-ae25-83fda2929088.png'
    html_content = \
      '<html><head></head><body><h1>Global Feature Importance</h1>\n<img src="{}" width="97%"/></body></html>'.format(public_url)
    with open(html_artifact.path, 'w') as f:
        f.write(html_content)

Google Cloud 控制台中的 HTML 工件

控制台中的 HTML 工件

Google Cloud 控制台中的 HTML 工件信息

控制台中的 HTML 工件信息

点击“查看 HTML”以打开新标签页中的 HTML 文件

控制台中的 HTML 工件信息

输出 Markdown

要导出 Markdown 文件,请使用 Output[Markdown] 工件定义组件。您还必须将 Markdown 内容写入工件的路径。在此示例中,您将使用字符串变量表示 Markdown 内容。

@dsl.component
def markdown_visualization(markdown_artifact: Output[Markdown]):
    import urllib.request

    with urllib.request.urlopen('http://gist.githubusercontent.com/zijianjoy/a288d582e477f8021a1fcffcfd9a1803/raw/68519f72abb59152d92cf891b4719cd95c40e4b6/table_visualization.md') as table:
        markdown_content = table.read().decode('utf-8')
        with open(markdown_artifact.path, 'w') as f:
            f.write(markdown_content)

Google Cloud 控制台中的 Markdown 工件

控制台中的 Markdown 工件

Google Cloud 控制台中的 Markdown 工件信息

控制台中的 Markdown 工件信息

创建流水线

使用 HTML 或 Markdown 工件定义组件后,您可以创建并运行使用该组件的流水线。

@dsl.pipeline(
    name=f'metrics-visualization-pipeline')
def metrics_visualization_pipeline():
    html_visualization_op = html_visualization()
    markdown_visualization_op = markdown_visualization()

提交流水线运行后,您可以在 Google Cloud 控制台中查看此运行的图示。此图包含您在相应组件中声明的 HTML 和 Markdown 工件。您可以选择这些工件来查看详细的可视化效果。