Skip to content

Latest commit

 

History

History
390 lines (299 loc) · 13.8 KB

RELEASE.md

File metadata and controls

390 lines (299 loc) · 13.8 KB

Release 0.21.5

Major Features and Improvements

  • Add label_feature to StatsOptions and enable LiftStatsGenerator when label_feature and schema are provided.
  • Add JSON serialization support for StatsOptions.

Bug Fixes and Other Changes

  • Only requires avro-python3>=1.8.1,!=1.9.2.*,<2.0.0 on Python 3.5 + MacOS

Breaking Changes

Deprecations

Release 0.21.4

Major Features and Improvements

  • Support visualizing feature value lift in facets visualization.

Bug Fixes and Other Changes

  • Fix issue writing out string feature values in LiftStatsGenerator.
  • Requires 'apache-beam[gcp]>=2.17,<3'.
  • Requires 'tensorflow-transform>=0.21.1,<0.22'.
  • Requires 'tfx-bsl>=0.21.3,<0.22'.

Breaking Changes

Deprecations

Release 0.21.2

Major Features and Improvements

Bug Fixes and Other Changes

  • Fix facets visualization.
  • Optimize LiftStatsGenerator for string features.
  • Make _WeightedCounter serializable.
  • Add support computing for weighted examples in LiftStatsGenerator.

Breaking Changes

Deprecations

  • tfdv.TFExampleDecoder has been removed. This legacy decoder converts serialized tf.Example to a dict of numpy arrays, which is the legacy input format (prior to Apache Arrow). TFDV has stopped accepting that format since 0.14. Use tfdv.DecodeTFExample instead.

Release 0.21.1

Major Features and Improvements

Bug Fixes and Other Changes

  • Do validation on weighted feature stats.
  • During schema inference, skip features which are missing common stats. This makes schema inference work when the input stats are generated from some pre-existing, unknown schema.
  • Fix facets visualization in Chrome >=M80.

Known Issues

  • Running TFDV with Apache Beam 2.18 or 2.19 does not work on Windows. If you are using TFDV on Windows, use Apache Beam 2.17.

Breaking Changes

Deprecations

Release 0.21.0

Major Features and Improvements

  • Started depending on the CSV parsing / type inferring utilities provided by tfx-bsl (since tfx-bsl 0.15.2). This also brings performance improvements to the CSV decoder (~2x faster in decoding. Type inferring performance is not affected).
  • Compute bytes statistics for features of BYTES type. Avoid computing topk and uniques for such features.
  • Added LiftStatsGenerator which computes lift between one feature (typically a label) and all other categorical features.

Bug Fixes and Other Changes

  • Exclude examples in which the entire sparse feature is missing when calculating sparse feature statistics.
  • Validate min_examples_count dataset constraint.
  • Document the schema fields, statistics fields, and detection condition for each anomaly type that TFDV detects.
  • Handle null array in cross feature stats generator, top-k & uniques combiner stats generator, and sklearn mutual information generator.
  • Handle infinity in basic stats generator.
  • Set num_missing and num_examples correctly in the presence of sparse features.
  • Compute weighted feature stats for all weighted features declared in schema.
  • Enforce that mutual information is non-negative.
  • Depends on tensorflow-metadata>=0.21.0,<0.22.
  • Depends on pyarrow>=0.15 (removed the upper bound as it is determined by tfx-bsl).
  • Depends on tfx-bsl>=0.21.0,<0.22
  • Depends on apache-beam>=2.17,<3
  • Validate that float feature does not contain NaNs (if disallow_nan is True).

Breaking Changes

  • Changed the behavior regarding to statistics over CSV data:

    • Previously, if a CSV column was mixed with integers and empty strings, FLOAT statistics will be collected for that column. A change was made so INT statistics would be collected instead.
  • Removed csv_decoder.DecodeCSVToDict as Dict[str, np.ndarray] had no longer been the internal data representation any more since 0.14.

Deprecations

Release 0.15.0

Major Features and Improvements

  • Generate statistics for sparse features.
  • Directly convert a batch of tf.Examples to Arrow tables. Avoids conversion of tf.Example to intermediate Dict representation.

Bug Fixes and Other Changes

  • Generate statistics for the weight feature.
  • Support validation and schema inference from sliced statistics that include the default slice (validation/inference will be done using the default slice statistics).
  • Avoid flattening null arrays.
  • Set weighted_num_examples field in the statistics proto if a weight feature is specified.
  • Replace DecodedExamplesToTable with a Python implementation.
  • Building TFDV from source does not need pyarrow anymore.
  • Depends on apache-beam[gcp]>=2.16,<3.
  • Depends on six>=1.12,<2.
  • Depends on scikit-learn>=0.18,<0.22.
  • Depends on tfx-bsl>=0.15,<0.16.
  • Depends on tensorflow-metadata>=0.15,<0.16.
  • Depends on tensorflow-transform>=0.15,<0.16.
  • Depends on tensorflow>=1.15,<3.
    • Starting from 1.15, package tensorflow comes with GPU support. Users won't need to choose between tensorflow and tensorflow-gpu.
    • Caveat: tensorflow 2.0.0 is an exception and does not have GPU support. If tensorflow-gpu 2.0.0 is installed before installing tensorflow-data-validation, it will be replaced with tensorflow 2.0.0. Re-install tensorflow-gpu 2.0.0 if needed.

Breaking Changes

Deprecations

Release 0.14.1

Major Features and Improvements

  • Add support for custom schema transformations when inferring schema.

Bug Fixes and Other Changes

  • Fix incorrect file hashes in the TFDV wheel.
  • Fix DOMException when embedding visualization in iframe.

Breaking Changes

Deprecations

Release 0.14.0

Major Features and Improvements

  • Performance improvement due to optimizing inner loops.
  • Add support for time semantic domain related statistics.
  • Performance improvement due to batching accumulators before merging.
  • Add utility method validate_examples_in_tfrecord, which identifies anomalous examples in TFRecord files containing TFExamples and generates statistics for those anomalous examples.
  • Add utility method validate_examples_in_csv, which identifies anomalous examples in CSV files and generates statistics for those anomalous examples.
  • Add fast TF example decoder written in C++.
  • Make BasicStatsGenerator to take arrow table as input. Example batches are converted to Apache Arrow tables internally and we are able to make use of vectorized numpy functions. Improved performance of BasicStatsGenerator by ~40x.
  • Make TopKUniquesStatsGenerator and TopKUniquesCombinerStatsGenerator to take arrow table as input.
  • Add update_schema API which updates the schema to conform to statistics.
  • Add support for validating changes in the number of examples between the current and previous spans of data (using the existing validate_statistics function).
  • Support building a manylinux2010 compliant wheel in docker.
  • Add support for cross feature statistics.

Bug Fixes and Other Changes

  • Expand unit test coverage.
  • Update natural language stats generator to generate stats if actual ratio equals match_ratio.
  • Use __slots__ in accumulators.
  • Fix overflow warning when generating numeric stats for large integers.
  • Set max value count in schema when the feature has same valency, thereby inferring shape for multivalent required features.
  • Fix divide by zero error in natural language stats generator.
  • Add load_anomalies_text and write_anomalies_text utility functions.
  • Define ReasonFeatureNeeded proto.
  • Add support for Windows OS.
  • Make semantic domain stats generators to take arrow column as input.
  • Fix error in number of missing examples and total number of examples computation.
  • Make FeaturesNeeded serializable.
  • Fix memory leak in fast example decoder.
  • Add semantic_domain_stats_sample_rate option to compute semantic domain statistics over a sample.
  • Increment refcount of None in fast example decoder.
  • Add compression_type option to generate_statistics_from_* methods.
  • Add link to SysML paper describing some technical details behind TFDV.
  • Add Python types to the source code.
  • MakeGenerateStatistics generate a DatasetFeatureStatisticsList containing a dataset with num_examples == 0 instead of an empty proto if there are no examples in the input.
  • Depends on absl-py>=0.7,<1
  • Depends on apache-beam[gcp]>=2.14,<3
  • Depends on numpy>=1.16,<2.
  • Depends on pandas>=0.24,<1.
  • Depends on pyarrow>=0.14.0,<0.15.0.
  • Depends on scikit-learn>=0.18,<0.21.
  • Depends on tensorflow-metadata>=0.14,<0.15.
  • Depends on tensorflow-transform>=0.14,<0.15.

Breaking Changes

  • Change examples_threshold to values_threshold and update documentation to clarify that counts are of values in semantic domain stats generators.

  • Refactor IdentifyAnomalousExamples to remove sampling and output (anomaly reason, example) tuples.

  • Rename anomaly_proto parameter in anomalies utilities to anomalies to make it more consistent with proto and schema utilities.

  • FeatureNameStatistics produced by GenerateStatistics is now identified by its .path field instead of the .name field. For example:

    feature {
      name: "my_feature"
    }
    

    becomes:

    feature {
      path {
        step: "my_feature"
      }
    }
    
  • Change validate_instance API to accept an Arrow table instead of a Dict.

  • Change GenerateStatistics API to accept Arrow tables as input.

Deprecations

Release 0.13.1

Major Features and Improvements

Bug Fixes and Other Changes

  • Modify validation logic to raise SCHEMA_MISSING_COLUMN anomaly when observing a feature with no stats (was still broken, now fixed).

Breaking Changes

Deprecations

Release 0.13.0

Major Features and Improvements

  • Use joblib to exploit multiprocessing when computing statistics over a pandas dataframe.
  • Add support for semantic domain related statistics (natural language, image), enabled by StatsOptions.enable_semantic_domain_stats.
  • Python 3.5 is supported.

Bug Fixes and Other Changes

  • Expand unit test coverage.
  • Modify validation logic to raise SCHEMA_MISSING_COLUMN anomaly when observing a feature with no stats.
  • Add utility functions write_stats_text and load_stats_text to write and load DatasetFeatureStatisticsList protos.
  • Avoid using multiprocessing by default when generating statistics over a dataframe.
  • Depends on joblib>=0.12,<1.
  • Depends on tensorflow-transform>=0.13,<0.14.
  • Depends on tensorflow-metadata>=0.12.1,<0.14.
  • Requires pre-installed tensorflow>=1.13.1,<2.
  • Depends on apache-beam[gcp]>=2.11,<3.
  • Depends on absl>=0.1.6,<1.

Breaking Changes

Deprecations

Release 0.12.0

Major Features and Improvements

  • Add support for computing statistics over slices of data.
  • Performance improvement due to optimizing inner loops.
  • Add support for generating statistics from a pandas dataframe.
  • Performance improvement due to pre-allocating tf.Example in TFExampleDecoder.
  • Performance improvement due to merging common stats generator, numeric stats generator and string stats generator as a single basic stats generator.
  • Performance improvement due to merging top-k and uniques generators.
  • Add a validate_instance function, which checks a single example for anomalies.
  • Add a utility method get_statistics_html, which returns HTML that can be used for Facets visualization outside of a notebook.
  • Add support for schema inference of semantic domains.
  • Performance improvement on statistics computation over a pandas dataframe.

Bug Fixes and Other Changes

  • Use constant 'BYTES_VALUE' in the statistics proto to represent a bytes value which cannot be decoded as a utf-8 string.
  • Introduced CombinerFeatureStatsGenerator, a specialized interface for combiners that do not require cross-feature computations.
  • Expand unit test coverage.
  • Add optional frequency threshold that allows keeping only the most frequent values that are present in a minimum number of examples.
  • Add optional desired batch size that allows specification of the number of examples to include in each batch.
  • Depends on numpy>=1.14.5,<2.
  • Depends on protobuf>=3.6.1,<4.
  • Depends on apache-beam[gcp]>=2.10,<3.
  • Depends on tensorflow-metadata>=0.12.1,<0.13.
  • Depends on scikit-learn>=0.18,<1.
  • Depends on IPython>=5.0.
  • Requires pre-installed tensorflow>=1.12,<2.
  • Revise example notebook and update it to be able to run in Colab and Jupyter.

Breaking changes

  • Represent batch as a list of ndarrays instead of ndarrays of ndarrays.
  • Modify decoders to return ndarrays of type numpy.float32 for FLOAT features.

Deprecations

Release 0.11.0

Major Features and Improvements

  • Add option to infer feature types from schema when generating statistics over CSV data.
  • Add utility method set_domain to set the domain of a feature in the schema.
  • Add option to compute weighted statistics by providing a weight feature.
  • Add a PTransform for decoding TF examples.
  • Add utility methods write_schema_text and load_schema_text to write and load the schema protocol buffer.
  • Add option to compute statistics over a sample.
  • Optimize performance of statistics computation (~2x improvement on benchmark datasets).

Bug Fixes and Other Changes

  • Depends on apache-beam[gcp]>=2.8,<3.
  • Depends on tensorflow-transform>=0.11,<0.12.
  • Depends on tensorflow-metadata>=0.9,<0.10.
  • Fix bug in clearing oneof domain_info field in Feature proto.
  • Fix overflow error for large integers by casting them to STRING type.
  • Added API docs.

Breaking changes

  • Requires pre-installed tensorflow>=1.11,<2.
  • Make tf.Example decoder to represent a feature with no value list as a missing value (None).
  • Make StatsOptions as a class.

Deprecations

Release 0.9.0

  • Initial release of TensorFlow Data Validation.