# Ray 2.1.0 — Ray-2.1.0 - Product: Ray (https://whatsnew.fyi/product/ray) - Vendor: Anyscale - Date: 2022-11-08 - Version: 2.1.0 - Original notes: https://github.com/ray-project/ray/releases/tag/ray-2.1.0 - Permalink: https://whatsnew.fyi/product/ray/releases/2.1.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Ray Datasets read_images() API for loading image data - **added** — Ray Datasets read_tfrecords() API to read TFRecord files - **added** — Numpy-based API for user-defined functions in Preprocessor - **added** — Ray Serve support for gRPC endpoint (alpha release) - **added** — RLlib decision transformer (DT) algorithm - **added** — RLlib on_episode_created() callback hook - **added** — Learning rate schedule to SimpleQ and PG algorithms - **added** — Ray OOM prevention (alpha release) - **added** — Support dynamic generators as task return values - **added** — Dashboard time series metrics support - **added** — Dashboard export configuration files for Prometheus or Grafana - **added** — Dashboard new progress bar in job detail view - **added** — NumPy batch format to Preprocessor and BatchMapper - **added** — Ragged tensor extension type - **added** — KBinsDiscretizer Preprocessor - **added** — FullyShardedDataParallel support to TorchTrainer - **added** — Tuner.get_results() to retrieve results after restore - **changed** — Auto-enable GPU for Predictors - **changed** — Deprecate Checkpoint.to_object_ref and Checkpoint.from_object_ref - **changed** — Deprecate legacy train/tune functions in favor of Session #### Release Highlights * Ray AI Runtime (AIR) * Better support for Image-based workloads. * Ray Datasets `read_images()` API for loading data. * Numpy-based API for user-defined functions in Preprocessor. * Ability to read TFRecord input. * Ray Datasets `read_tfrecords()` API to read TFRecord files. * Ray Serve: * Add support for gRPC endpoint (alpha release). Instead of using an HTTP server, Ray Serve supports gRPC protocol and users can bring their own schema for their use case. * RLlib: * Introduce decision transformer (DT) algorithm. * New hook for callbacks with `on_episode_created()`. * Learning rate schedule to SimpleQ and PG. * Ray Core: * Ray [OOM prevention](https://docs.ray.io/en/master/ray-core/scheduling/ray-oom-prevention.html) (alpha release). * Support dynamic generators as task return values. * Dashboard: * Time series metrics support. * Export configuration files can be used in Prometheus or Grafana instances. * New progress bar in job detail view. #### Ray Libraries ##### Ray AIR 💫Enhancements: * Improve readability of training failure output (#27946, #28333, #29143) * Auto-enable GPU for Predictors (#26549) * Add ability to create TorchCheckpoint from state dict (#27970) * Add ability to create TensorflowCheckpoint from saved model/h5 format (#28474) * Add attribute to retrieve URI from Checkpoint (#28731) * Add all allowable types to WandB Callback (#28888) 🔨 Fixes: * Handle nested metrics properly as scoring attribute (#27715) * Fix serializability of Checkpoints (#28387, #28895, #28935) 📖Documentation: * Miscellaneous updates to documentation and examples (#28067, #28002, #28189, #28306, #28361, #28364, #28631, #28800) 🏗 Architecture refactoring: * Deprecate Checkpoint.to_object_ref and Checkpoint.from_object_ref (#28318) * Deprecate legacy train/tune functions in favor of Session (#28856) ##### Ray Data Processing 🎉 New Features: * Add read_images (#29177) * Add read_tfrecords (#28430) * Add NumPy batch format to Preprocessor and `BatchMapper` (#28418) * Ragged tensor extension type (#27625) * Add KBinsDiscretizer Preprocessor (#28389) 💫Enhancements: * Simplify to_tf interface (#29028) * Add metadata override and inference in `Dataset.to_dask()` (#28625) * Prune unused columns before aggregate (#28556) * Add Dataset.default_batch_format (#28434) * Add partitioning parameter to read_ functions (#28413) * Deprecate "native" batch format in favor of "default" (#28489) * Support None partition field name (#28417) * Re-enable Parquet sampling and add progress bar (#28021) * Cap the number of stats kept in StatsActor and purge in FIFO order if the limit exceeded (#27964) * Customized serializer for Arrow JSON ParseOptions in read_json (#27911) * Optimize groupby/mapgroups performance (#27805) * Improve size estimation of image folder data source (#27219) * Use detached lifetime for stats actor (#25271) * Pin _StatsActor to the driver node (#27765) * Better error message for partition filtering if no file found (#27353) * Make Concatenator deterministic (#27575) * Change FeatureHasher input schema to expect token counts (#27523) * Avoid unnecessary reads when truncating a dataset with `ds.limit()` (#27343) * Hide tensor extension from UDFs (#27019) * Add __repr__ to AIR classes (#27006) 🔨 Fixes: * Add upper bound to pyarrow version check (#29674) (#29744) * Fix map_groups to work with different output type (#29184) * read_csv not filter out files by default (#29032) * Check columns when adding rows to TableBlockBuilder (#29020) * Fix the peak memory usage calculation (#28419) * Change sampling to use same API as read Parquet (#28258) * Fix column assignment in Concatenator for Pandas 1.2. (#27531) * Doing partition filtering in reader constructor (#27156) * Fix split ownership (#27149) 📖Documentation: * Clarify dataset transformation. (#28482) * Update map_batches do _[Truncated at 4000 characters — full notes: https://github.com/ray-project/ray/releases/tag/ray-2.1.0]_