Releases: tensorflow/tfx
TFX 1.15.1
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
TFX 1.15.0 Release
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 likeos.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 likeisinstance()
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 newLiteral
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 aType
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 aType
) 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 toC
being of typeAny
.
- You should not use
ph.to_list()
was renamed toph.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
TFX 1.15.0-rc0 Release
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 likeos.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 likeisinstance()
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 newLiteral
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 aType
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 aType
) 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 toC
being of typeAny
.
- You should not use
ph.to_list()
was renamed toph.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
TFX 1.14.0 Release
Major Features and Improvements
- Added python 3.10 support.
Breaking Changes
Placeholder
(and_PlaceholderOperator
) are no longerJsonable
.- 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. (yaml/pyyaml#724) |
tensorflow |
>=2.13,<2.14 |
>=2.12,<2.13 |
|
tensorflowjs |
>=4.5,<5 |
>=3.6.0,<4 |
Documentation Updates
- N/A
TFX 1.14.0-rc0 Release
Major Features and Improvements
- Added python 3.10 support.
Breaking Changes
Placeholder
(and_PlaceholderOperator
) are no longerJsonable
.- 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. (yaml/pyyaml#724) |
tensorflow |
>=2.13,<2.14 |
>=2.12,<2.13 |
|
tensorflowjs |
>=4.5,<5 |
>=3.6.0,<4 |
Documentation Updates
- N/A
TFX 1.13.0 Release
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
(Givenfrom 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
TFX 1.13.0-rc0 Release
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
(Givenfrom 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
TFX 1.12.0 Release
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
TFX 1.12.0-rc0 Release
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
TFX 1.11.0 Release
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