announcements

Polyaxon v1.12: Runs comparison, Diff mode, Filtering for/out values in the runs table, Tags management, Backfill, and many more

Polyaxon v1.12 release of our MLOps platform builds on top of the previous version and brings new features and improvements to the specification and dashboard experience.

UI features and improvements

Compare table

Polyaxon v1.12 brings a new view to the runs page, called “Comparison”, this view allows a side-by-side comparison of runs. Each column is one run and each row is a field (info, metadata, params, or metrics) of that run.

compare-runs

The comparison view comes with two modes, that can be used individually or together: diff mode and changes mode.

  • Diff mode: allows to see rows(info, metadata, params, or metrics) where the constant values are hidden and only fields with changes are shown. compare-diff-on
  • Changes mode: allows to see changes (up/down) of values for info, metrics, or params rows based on a baseline run, users can change the baseline run by clicking the Pin icon. compare-changes-on

Filter for/out values

In the last couple of releases, we shipped several shortcuts and quick filters to allow users to perform most of their searches without the need to learn about the query language: quick-filters

In this release we added a new feature to filter for or out a specific value when interacting with the runs table:

  • Hovering a cell: filter-values-hover-cell
  • Clicking a cell: filter-values-click-cell

The expanded rendering was also improved for several fields and value types.

Table resizing

Polyaxon provides two layouts for displaying widgets, a fixed layout where the table is set to the left and additional widgets, dashboard of events to compare the metrics and other artifacts of the runs visible on the table or the comparison table, a vertical layout where the sections enabled are rendered sequentially allowing the users to scroll to view each section. comparison-layouts

In this release, the resizing has been improved to show the minimum information on the table (run id, color, and controls) to provide a larger real estate of the events dashboard, the table’s columns, sort, and density headers are also automatocally minimized and only the icons of the buttons are visible: comparison-resizing

Improved analytics

The analytics page was improved with a new breakdown view:

new-analytics-views

The breakdown view has several group-by options to quickly view stats by users, projects, agents, queues:

breadown-group-by

The series view was also improved, and now it lets users select additional group-by options:

times-series-group-by

Cross-project runs overview

Users with the admin roles or higher can have a full overview of all runs under their organization and can derive quick analytics about the runs assigned to a specific agent or a queue, or runs started by a specific user in all projects:

cross-project-runs

Runs transfer functionality

Users with the admin roles or higher can transfer a single run or multiple runs to a new project, this is helpful when refactortoring or re-organizing the team’s efforts:

runs-transfer-selection

When using the multi-run action, users should be careful to only transfer finished runs:

runs-transfer-destination

Improved lineage tables

The artifacts lineage table was improved with search, sort, and pagination:

artifacts-lineage

Tags management

In v1.11 we introduced a new management feature called tags, and in v1.12 we enabled the feature in all organizations.

Users with the admin roles or higher can add new tags and assign them custom colors, they can also discover the tags that are used organization-wide:

new-tag

One of the important features of adding canonical tags is that they are preloaded in all filters (runs, projects, components, models, …), so they would simplify showing/hiding information.

Each tag has an info button:

tag-info

Users can check all entities that are tagged with a specific value:

tag-stats

And one interesting feature about the tags table is that admins can delete a tag and also untag all entities that have that value at the same time:

tag-delete

Improved bookmarks & archives

We add the flags filter to all entities (projects, components, models, …) to quickly show bookmarks and archived entities:

bookmakrs-archives-projects

The runs table shows now a filter pin to not confuse the user about the state of the runs displayed in the table:

bookmakrs-archives-runs

Other improvements

  • Improved logs view
  • Related model versions on the run’s overview page.

promoted-runs

  • A new button to view raw artifacts in read-only mode is now available when browsing the artifacts.

read-only-artifacts

  • Improved filter suggestions and the possibility to filter runs based on memory or CPU using simple values memory: >= 8Gi.

resources-filters

  • New reset button on the dashboards page.

reset-dashboard

Specification features and improvements

New IO and Params option toEnv

Several users expose one or several inputs/outputs/params as environment variables in their component or operation specifications. Until now the logic required changing the container where the value needed to be exposed:

container:
  env:
    - name: ENV_VAR_NAME
      value: '{{ value }}'

In this release, we added a new option on the inputs, outputs, or params sections called toEnv that allows users to expose the value to an env var without changing the container. Users can decide to expose the value by default when defining the inputs/outputs:

inputs:
  - name: input_foo
    type: str
    toEnv: SOME_ENV_VAR_NAME # <----

Or to do it only for specific operations when they pass the param:

params:
  message:
    value: 'This text will be available in the spec context and as an env var'
    toEnv: SOME_ENV_VAR_NAME # <----

New hyperparam generators for dates and datetimes

Users can now generate new types of hyperparam values of type dates and datetimes, examples:

params:
  valueEveryHour:
    kind: datetimerange
    value: ['2019-06-22 21:00', '2019-06-25 21:00', 3600]
  valueEvery2Days:
    kind: daterange
    value: ['2019-06-22', '2019-07-25', 2]

Backfill scheduling strategy

Although it was always possible to perform backfill operations, either using a manual mapping or using the Python client to loop and trigger operations. With the new dates or datetimes, and the grid search, users can perform backfills in an automated way while leveraging features like concurrency, pipeline progress, and pipeline grouping and analytics:

version: 1.1
kind: operations
params:
  dummy_input1: {value: "test"}
  dummy_input2: {value: 10}
matrix:
  kind: grid
  concurrency: 1
  params:
    dt:
      kind: daterange
      value: ["2021-05-01", "2021-05-08", 1]

For more information please refer to this guide on backfills in the scheduling guides.

Improved cache specification

The cache specification was improved, in addition to the inputs and outputs, the cache now takes into consideration the init, connections, and containers sections. Additionally, users can tune the IO and sections that the compiler should consider for calculating the state.

New model initializer

Instead of using the full path of the model artifacts:

version:  1.1
kind: component
run:
  kind: job
  ...
  init:
  - artifacts:
      dirs: ["path/to/model/artifacts"]
  ...

It’s now possible to use a model initializer to load the artifacts that were collected during an experiment if it’s promoted to the model registry:

version:  1.1
kind: component
run:
  kind: job
  ...
  init:
  - model: "modelA:rc12"
  ...

Core and CLI features and improvements

Enabling/Disabling operation cache from CLI

polyaxon run command comes with several flags, e.g. disabling the cache layer to force rerunning an operation. In this release we deprecated polyaxon run --nocache in favor of a better flag that allows to also to force the usage of the cache:

polyaxon run --cache=y/yes/t/true/1 ...

Or

 polyaxon run --cache=n/no/f/false/0 ...

Other improvements and fixes

  • A hotfix for the GCS artifacts backend was pushed in v1.12.2, the regression was introduced in the upstream library and has been already fixed.
  • The per-CPU tracking was removed in favor of a global value only, this change also means that only a single event file is generated.
  • Sampling of events is now enforced and in future releases, a the widgets will allow the users to set the sampling rate or to fetch the full event entries when plotting line charts or other widgets.
  • Several improvements to the core library.
  • Several fixes and improvements to the sidecar and the in-notebook tracking logic.

Learn More about Polyaxon

This blog post just goes over a couple of features that we shipped in v1.12. To learn more about all the features, fixes, and enhancements, please visit the release notes, the current known issues and the short term roadmap.

Polyaxon continues to grow quickly and keeps improving and providing the simplest machine learning layer on Kubernetes. We hope that these updates will improve your workflows and increase your productivity, and again, thank you for your continued feedback and support.

Subscribe to Polyaxon

Get the latest posts delivered right to your inbox