Tfx Versions Save

TFX is an end-to-end platform for deploying production ML pipelines

v1.15.1

2 weeks ago

Version 1.15.1

Major Features and Improvements

Breaking Changes

  • Support KFP pipeline spec 2.1.0 version schema and YAML files with KFP v2 DAG runner

For Pipeline Authors

For Component Authors

Deprecations

Bug Fixes and Other Changes

Dependency Updates

Package Name Version Constraints Previously (in v1.14.0) Comments
kfp-pipeline-spec kfp-pipeline-spec>=0.1.10,<0.2 >0.1.13,<0.2

Documentation Updates

v1.15.0

1 month ago

Version 1.15.0

Major Features and Improvements

  • Dropped python 3.8 support.
  • Extend GetPipelineRunExecutions, GetPipelineRunArtifacts APIs to support filtering by execution create_time, type.
  • ExampleValidator and DistributionValidator now support anomalies alert generation. Users can use their own toolkits to extract and process the alerts from the execution parameter.
  • Allow DistributionValidator baseStatistics input channel artifacts to be empty for cold start of data validation.
  • ph.make_proto() allows constructing proto-valued placeholders, e.g. for larger config protos fed to a component.
  • ph.join_path() is like os.path.join() but for placeholders.
  • Support passing in experimental_debug_stripper into the Transform pipeline runner.

Breaking Changes

  • Placeholder and all subclasses have been moved to other modules, their structure has been changed and they're now immutable. Most users won't care (the main public-facing API is unchanged and behaves the same way). If you do special operations like isinstance() or some kind of custom serialization on placeholders, you will have to update your code.
  • placeholder.Placeholder.traverse() now returns more items than before, namely also placeholder operators like _ConcatOperator (which is the implementation of Python's + operator).
  • The placeholder.RuntimeInfoKey enumeration was removed. Just hard-code the appropriate string values in your code, and reference the new Literal type placeholder.RuntimeInfoKeys if you want to ensure correctness.
  • Arguments to @component must now be passed as kwargs and its return type is changed from being a Type to just being a callable that returns a new instance (like the type's initializer). This will allow us to instead return a factory function (which is not a Type) in future. For a given @component def C(), this means:
    • You should not use C as a type anymore. For instance, replace isinstance(foo, C) with something else. Depending on your use case, if you just want to know whether it's a component, then use isinstance(foo, tfx.types.BaseComponent) or isinstance(foo, tfx.types.BaseFunctionalComponent). If you want to know which component it is, check its .id instead. Existing such checks will break type checking today and may additionally break at runtime in future, if we migrate to a factory function.
    • You can continue to use C.test_call() like before, and it will continue to be supported in future.
    • Any type declarations using foo: C break and must be replaced with foo: tfx.types.BaseComponent or foo: tfx.types.BaseFunctionalComponent.
    • Any references to static class members like C.EXECUTOR_SPEC breaks type checking today and should be migrated away from. In particular, for .EXECUTOR_SPEC.executor_class().Do() in unit tests, use .test_call() instead.
    • If your code previously asserted a wrong type declaration on C, this can now lead to (justified) type checking errors that were previously hidden due to C being of type Any.
  • ph.to_list() was renamed to ph.make_list() for consistency.

For Pipeline Authors

For Component Authors

Deprecations

  • Deprecated python 3.8

Bug Fixes and Other Changes

  • Fixed a synchronization bug in google_cloud_ai_platform tuner.
  • Print best tuning trials only from the chief worker of google_cloud_ai_platform tuner.
  • Add a kpf dependency in the docker-image extra packages.
  • Fix BigQueryExampleGen failure without custom_config.

Dependency Updates

Package Name Version Constraints Previously (in v1.14.0) Comments
keras-tuner >=1.0.4,<2,!=1.4.0,!=1.4.1 >=1.0.4,<2
packaging >=20,<21 >=22
attrs 19.3.0,<22 19.3.0,<24
google-cloud-bigquery >=2.26.0,<3 >=3,<4
tensorflow >=2.15,<2.16 >=2.13,<2.14
tensorflow-decision-forests >=1.0.1,<1.9 >=1.0.1,<2
tensorflow-hub >=0.9.0,<0.14 >=0.15.0,<0.16
tensorflow-serving >=1.15,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,<3 >=2.15,<2.16

Documentation Updates

v1.15.0-rc0

1 month ago

Major Features and Improvements

  • Dropped python 3.8 support.
  • Extend GetPipelineRunExecutions, GetPipelineRunArtifacts APIs to support filtering by execution create_time, type.
  • ExampleValidator and DistributionValidator now support anomalies alert generation. Users can use their own toolkits to extract and process the alerts from the execution parameter.
  • Allow DistributionValidator baseStatistics input channel artifacts to be empty for cold start of data validation.
  • ph.make_proto() allows constructing proto-valued placeholders, e.g. for larger config protos fed to a component.
  • ph.join_path() is like os.path.join() but for placeholders.
  • Support passing in experimental_debug_stripper into the Transform pipeline runner.

Breaking Changes

  • Placeholder and all subclasses have been moved to other modules, their structure has been changed and they're now immutable. Most users won't care (the main public-facing API is unchanged and behaves the same way). If you do special operations like isinstance() or some kind of custom serialization on placeholders, you will have to update your code.
  • placeholder.Placeholder.traverse() now returns more items than before, namely also placeholder operators like _ConcatOperator (which is the implementation of Python's + operator).
  • The placeholder.RuntimeInfoKey enumeration was removed. Just hard-code the appropriate string values in your code, and reference the new Literal type placeholder.RuntimeInfoKeys if you want to ensure correctness.
  • Arguments to @component must now be passed as kwargs and its return type is changed from being a Type to just being a callable that returns a new instance (like the type's initializer). This will allow us to instead return a factory function (which is not a Type) in future. For a given @component def C(), this means:
    • You should not use C as a type anymore. For instance, replace isinstance(foo, C) with something else. Depending on your use case, if you just want to know whether it's a component, then use isinstance(foo, tfx.types.BaseComponent) or isinstance(foo, tfx.types.BaseFunctionalComponent). If you want to know which component it is, check its .id instead. Existing such checks will break type checking today and may additionally break at runtime in future, if we migrate to a factory function.
    • You can continue to use C.test_call() like before, and it will continue to be supported in future.
    • Any type declarations using foo: C break and must be replaced with foo: tfx.types.BaseComponent or foo: tfx.types.BaseFunctionalComponent.
    • Any references to static class members like C.EXECUTOR_SPEC breaks type checking today and should be migrated away from. In particular, for .EXECUTOR_SPEC.executor_class().Do() in unit tests, use .test_call() instead.
    • If your code previously asserted a wrong type declaration on C, this can now lead to (justified) type checking errors that were previously hidden due to C being of type Any.
  • ph.to_list() was renamed to ph.make_list() for consistency.

Deprecations

  • Deprecated python 3.8

Bug Fixes and Other Changes

  • Fixed a synchronization bug in google_cloud_ai_platform tuner.
  • Print best tuning trials only from the chief worker of google_cloud_ai_platform tuner.
  • Add a kpf dependency in the docker-image extra packages.
  • Fix BigQueryExampleGen failure without custom_config.

Dependency Updates

Package Name Version Constraints Previously (in v1.14.0) Comments
keras-tuner >=1.0.4,<2,!=1.4.0,!=1.4.1 >=1.0.4,<2
packaging >=20,<21 >=22
attrs 19.3.0,<22 19.3.0,<24
google-cloud-bigquery >=2.26.0,<3 >=3,<4
tensorflow >=2.15,<2.16 >=2.13,<2.14
tensorflow-decision-forests >=1.0.1,<1.9 >=1.0.1,<2
tensorflow-hub >=0.9.0,<0.14 >=0.15.0,<0.16
tensorflow-serving >=1.15,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,<3 >=2.15,<2.16

Documentation Updates

v1.14.0

8 months ago

Major Features and Improvements

  • Added python 3.10 support.

Breaking Changes

  • Placeholder (and _PlaceholderOperator) are no longer Jsonable.
  • Optimize MLMD register type to one call in most time instead of two calls.

For Pipeline Authors

  • N/A

For Component Authors

  • Replace "tf_estimator" with "tfma_eval" as the identifier for tfma EvalSavedModel. "tf_estimator" is now serves as the identifier for the normal estimator model with any signature (by default 'serving').

Deprecations

  • N/A

Bug Fixes and Other Changes

  • Apply latest TFX image vulnerability resolutions (base OS and software updates)

Dependency Updates

Package Name Version Constraints Previously (in v1.13.0) Comments
tensorflow-hub >=0.9.0,<0.14 >=0.9.0,<0.13
pyarrow >=10,<11 >=6,<7
apache-beam >=2.40,<3 >=2.47,<3
scikit-learn >=1.0,<2 >=0.23,<0.24
google-api-core <3 <1.33
google-cloud-aiplatform >=1.6.2,<2 >=1.6.2,<1.18
tflite-support >=0.4.3,<0.4.5 >=0.4.2,<0.4.3
pyyaml >=6,<7 >=3.12,<6 Issue with installation of PyYaml 5.4.1. (https://github.com/yaml/pyyaml/issues/724)
tensorflow >=2.13,<2.14 >=2.12,<2.13
tensorflowjs >=4.5,<5 >=3.6.0,<4

Documentation Updates

  • N/A

v1.14.0-rc0

9 months ago

Major Features and Improvements

  • Added python 3.10 support.

Breaking Changes

  • Placeholder (and _PlaceholderOperator) are no longer Jsonable.
  • Optimize MLMD register type to one call in most time instead of two calls.

For Pipeline Authors

  • N/A

For Component Authors

  • Replace "tf_estimator" with "tfma_eval" as the identifier for tfma EvalSavedModel. "tf_estimator" is now serves as the identifier for the normal estimator model with any signature (by default 'serving').

Deprecations

  • N/A

Bug Fixes and Other Changes

  • Apply latest TFX image vulnerability resolutions (base OS and software updates)

Dependency Updates

Package Name Version Constraints Previously (in v1.13.0) Comments
tensorflow-hub >=0.9.0,<0.14 >=0.9.0,<0.13
pyarrow >=10,<11 >=6,<7
apache-beam >=2.40,<3 >=2.47,<3
scikit-learn >=1.0,<2 >=0.23,<0.24
google-api-core <3 <1.33
google-cloud-aiplatform >=1.6.2,<2 >=1.6.2,<1.18
tflite-support >=0.4.3,<0.4.5 >=0.4.2,<0.4.3
pyyaml >=6,<7 >=3.12,<6 Issue with installation of PyYaml 5.4.1. (https://github.com/yaml/pyyaml/issues/724)
tensorflow >=2.13,<2.14 >=2.12,<2.13
tensorflowjs >=4.5,<5 >=3.6.0,<4

Documentation Updates

  • N/A

v1.13.0

1 year ago

Major Features and Improvements

  • Supported setting the container image at a component level for Kubeflow V2 Dag Runner.

Breaking Changes

For Pipeline Authors

  • Conditional can be used from tfx.dsl.Cond (Given from tfx import v1 as tfx).

  • Dummy channel for testing can be constructed by tfx.testing.Channel(artifact_type).

  • placeholder.Placeholder.placeholders_involved() was replaced with placeholder.Placeholder.traverse().

  • placeholder.Predicate.dependent_channels() was replaced with channel_utils.get_dependent_channels(Placeholder).

  • placeholder.Predicate.encode_with_keys(...) was replaced with channel_utils.encode_placeholder_with_channels(Placeholder, ...).

  • placeholder.Predicate.from_comparison() removed (was deprecated)

  • enable external_pipeline_artifact_query for querying artifact within one pipeline

  • Support InputArtifact[List[Artifact]] annotation in Python function custom component

For Component Authors

  • N/A

Deprecations

  • Deprecate python 3.7 support

Bug Fixes and Other Changes

  • Support to task type "workerpool1" of CLUSTER_SPEC in Vertex AI training's service according to the changes of task type in Tuner component.
  • Propagates unexpected import failures in the public v1 module.

Dependency Updates

Package Name Version Constraints Previously (in v1.12.0) Comments
click >=7,<9 >=7,<8
ml-metadata ~=1.13.1 ~=1.12.0 Synced release train
protobuf >=3.13,<4 >=3.20.3,<5 To support TF 2.12
struct2tensor ~=0.44.0 ~=0.43.0 Synced release train
tensorflow ~=2.12.0 >=1.15.5,<2 or ~=2.11.0
tensorflow-data-validation ~=1.13.0 ~=1.12.0 Synced release train
tensorflow-model-analysis ~=0.44.0 ~=0.43.0 Synced release train
tensorflow-transform ~=1.13.0 ~=1.12.0 Synced release train
tfx-bsl ~=1.13.0 ~=1.12.0 Synced release train

Documentation Updates

  • Added page for TFX-Addons

v1.13.0-rc0

1 year ago

Major Features and Improvements

  • Supported setting the container image at a component level for Kubeflow V2 Dag Runner.

Breaking Changes

For Pipeline Authors

  • Conditional can be used from tfx.dsl.Cond (Given from tfx import v1 as tfx).

  • Dummy channel for testing can be constructed by tfx.testing.Channel(artifact_type).

  • placeholder.Placeholder.placeholders_involved() was replaced with placeholder.Placeholder.traverse().

  • placeholder.Predicate.dependent_channels() was replaced with channel_utils.get_dependent_channels(Placeholder).

  • placeholder.Predicate.encode_with_keys(...) was replaced with channel_utils.encode_placeholder_with_channels(Placeholder, ...).

  • placeholder.Predicate.from_comparison() removed (was deprecated)

  • enable external_pipeline_artifact_query for querying artifact within one pipeline

For Component Authors

  • N/A

Deprecations

  • Deprecate python 3.7 support

Bug Fixes and Other Changes

  • Support to task type "workerpool1" of CLUSTER_SPEC in Vertex AI training's service according to the changes of task type in Tuner component.
  • Propagates unexpected import failures in the public v1 module.

Dependency Updates

Package Name Version Constraints Previously (in v1.12.0) Comments
click >=7,<9 >=7,<8
ml-metadata ~=1.13.1 ~=1.12.0 Synced release train
protobuf >=3.13,<4 >=3.20.3,<5 To support TF 2.12
struct2tensor ~=0.44.0 ~=0.43.0 Synced release train
tensorflow ~=2.12.0 >=1.15.5,<2 or ~=2.11.0
tensorflow-data-validation ~=1.13.0 ~=1.12.0 Synced release train
tensorflow-model-analysis ~=0.44.0 ~=0.43.0 Synced release train
tensorflow-transform ~=1.13.0 ~=1.12.0 Synced release train
tfx-bsl ~=1.13.0 ~=1.12.0 Synced release train

Documentation Updates

  • Added page for TFX-Addons

v1.12.0

1 year ago

Major Features and Improvements

  • N/A

Breaking Changes

  • N/A

For Pipeline Authors

  • N/A

For Component Authors

  • N/A

Deprecations

  • N/A

Bug Fixes and Other Changes

  • ExampleValidator and DistributionValidator now support custom validations.

Dependency Updates

Package Name Version Constraints Previously (in v1.11.0) Comments
tensorflow ~=2.11.0 >=1.15.5,<2 or ~=2.10.0
tensorflow-decision-forests >=1.0.1,<2 ==1.0.1 Make it compatible with more TF versions.
ml-metadata ~=1.12.0 ~=1.11.0 Synced release train
struct2tensor ~=0.43.0 ~=0.42.0 Synced release train
tensorflow-data-validation ~=1.12.0 ~=1.11.0 Synced release train
tensorflow-model-analysis ~=0.43.0 ~=0.42.0 Synced release train
tensorflow-transform ~=1.12.0 ~=1.11.0 Synced release train
tfx-bsl ~=1.12.0 ~=1.11.0 Synced release train

Documentation Updates

  • N/A

v1.12.0-rc0

1 year ago

Major Features and Improvements

  • N/A

Breaking Changes

  • N/A

For Pipeline Authors

  • N/A

For Component Authors

  • N/A

Deprecations

  • N/A

Bug Fixes and Other Changes

  • ExampleValidator and DistributionValidator now support custom validations.

Dependency Updates

Package Name Version Constraints Previously (in v1.11.0) Comments
tensorflow ~=2.11.0 >=1.15.5,<2 or ~=2.10.0
tensorflow-decision-forests >=1.0.1,<2 ==1.0.1 Make it compatible with more TF versions.
ml-metadata ~=1.12.0 ~=1.11.0 Synced release train
struct2tensor ~=0.43.0 ~=0.42.0 Synced release train
tensorflow-data-validation ~=1.12.0 ~=1.11.0 Synced release train
tensorflow-model-analysis ~=0.43.0 ~=0.42.0 Synced release train
tensorflow-transform ~=1.12.0 ~=1.11.0 Synced release train
tfx-bsl ~=1.12.0 ~=1.11.0 Synced release train

Documentation Updates

  • N/A

v1.11.0

1 year ago

Major Features and Improvements

  • This is the last version that supports TensorFlow 1.15.x. TF 1.15.x support will be removed in the next version. Please check the TF2 migration guide to migrate to TF2.

  • Artifact/Channel properties now support the new MLMD PROTO property type.

  • Supports environment variables in the placeholder expression. This placeholder can be used to generate beam_pipeline_args dynamically.

Breaking Changes

  • N/A

For Pipeline Authors

  • N/A

For Component Authors

  • N/A

Deprecations

  • N/A

Bug Fixes and Other Changes

  • Moved tflite-support related dependencies from [examples] to a separate [tflite-support] extra.
  • Moved flax related dependencies from [examples] to a separate [flax] extra.
  • Statistics gen and Schema gen now crash on empty input examples and statistics respectively.
  • Importer will now check that an existing artifact has the same type as the intended output before reusing the existing artifact.
  • Importer will now use the most recently created artifact when reusing an existing artifact instead of the one with the highest ID.
  • Proto placeholder now works with proto files that have non-trivial transitive dependencies.
  • Adding tutorials for recommenders and ranking

Dependency Updates

Package Name Version Constraints Previously (in v1.8.0) Comments
tensorflow >=1.15.5,<2 or ~=2.10.0 >=1.15.5,<2 or ~=2.9.0
tflite-support ~=0.4.2 >=0.1.0a1,<0.2.1 Update to a TF-2.10 compatible version.
google-cloud-aiplatform >=1.6.2,<1.18 >=1.6.2,<2 Added to help pip dependency resolution.
ml-metadata ~=1.11.0 ~=1.10.0 Synced release train
struct2tensor ~=0.42.0 ~=0.41.0 Synced release train
tensorflow-data-validation ~=1.11.0 ~=1.10.0 Synced release train
tensorflow-model-analysis ~=0.42.0 ~=0.41.0 Synced release train
tensorflow-transform ~=1.11.0 ~=1.10.0 Synced release train
tfx-bsl ~=1.11.0 ~=1.10.0 Synced release train

Documentation Updates

  • N/A