# Ray 2.46.0 — Ray-2.46.0 - Product: Ray (https://whatsnew.fyi/product/ray) - Vendor: Anyscale - Date: 2025-05-07 - Version: 2.46.0 - Original notes: https://github.com/ray-project/ray/releases/tag/ray-2.46.0 - Permalink: https://whatsnew.fyi/product/ray/releases/2.46.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 Data now supports hash-shuffle based repartitioning and aggregations - **added** — Ray Data now supports joins using hash-shuffle - **added** — Ray Serve LLM is now compatible with vLLM v1 - **added** — Add initial Train Grafana dashboard with built-in metrics for training workloads - **added** — Offline Evaluation with loss function for Offline RL pipeline, introducing three new callbacks: on_offline_evaluate_start, on_offline_evaluate_end, on_offline_eval_runners_recreated - **added** — New custom_data attribute for SingleAgentEpisode and MultiAgentEpisode to store custom metrics - **changed** — Add memory attribute to ExecutionResources - **changed** — Support ray_remote_args for read_tfrecords - **changed** — Add PhysicalOperator.min_max_resource_usage_bounds - **changed** — Support num_cpus, memory, concurrency, batch_size for preprocess - **changed** — Support new pyiceberg version - **changed** — Lazily import torch FSDP for ray.train.torch module to improve performance and reduce unnecessary dependencies - **changed** — Deserialize the user-defined training function directly on workers, improving efficiency - **changed** — Refactor LLMServer and LLMEngine to not diverge too much from vllm chat formatting logic - **changed** — Add router replicas and batch size to llm config - **changed** — Bump vllm from 0.8.2 to 0.8.5 - **fixed** — Handle Arrow Array null types in to_numpy - **fixed** — Fix S3 serialization wrapper compatibility with RetryingPyFileSystem - **fixed** — Fix Optimizer to apply rules until plan stabilizes - **fixed** — Fix FuseOperators rule to properly handle transformations that drastically change size of the dataset - **fixed** — Fix error when no arguments are passed into TorchTrainer #### Release Highlights The 2.46 Ray release comes with a couple core highlights: 1. Ray Data now supports **hash shuffling for repartition and aggregations, along with support for joins**. This enables many new data processing workloads to be run on Ray Data. Please give it a try and let us know if you have any feedback! 2. Ray Serve LLM now **supports vLLM v1** to be forward-compatible with upcoming vLLM releases. This also opens up significant performance improvements that come with vLLM's v1 refactor. 3. There is a new **Train Grafana dashboard** which provides in-depth metrics on Grafana for better metrics on training workloads. #### Ray Libraries ##### Ray Data 🎉 New Features: - Adding support for hash-shuffle based repartitioning and aggregations (#52664) - Added support for Joins (using hash-shuffle) (#52728) - [LLM] vLLM support upgrades to 0.8.5 (#52344) 💫 Enhancements: - Add memory attribute to ExecutionResources (#51127) - Support ray_remote_args for read_tfrecords #52450 - [data.dashboard] Skip reporting internal metrics (#52666) - Add PhysicalOperator.min_max_resource_usage_bounds (#52502) - Speed up printing the schema (#52612) - [data.dashboard] Dataset logger for worker (#52706) - Support new pyiceberg version (#51744) - Support num_cpus, memory, concurrency, batch_size for preprocess (#52574) 🔨 Fixes: - Handle Arrow Array null types in to_numpy (#52572) - Fix S3 serialization wrapper compatibility with RetryingPyFileSystem (#52568) - Fixing Optimizer to apply rules until plan stabilize; (#52663) - Fixing FuseOperators rule to properly handle the case of transformations drastically changing size of the dataset (#52570) 📖 Documentation: - [LLM] Improve concurrency settings, improve prompt to achieve better throughput (#52634) ##### Ray Train 🎉 New Features: - Add initial Train Grafana dashboard (#52709) 💫 Enhancements: - Lazily import torch FSDP for ray.train.torch module to improve performance and reduce unnecessary dependencies (#52707) - Deserialize the user-defined training function directly on workers, improving efficiency (#52684) 🔨 Fixes: - Fixed error when no arguments are passed into TorchTrainer (#52693) 📖 Documentation: - Added new XGBoostTrainer user guide (#52355) 🏗 Architecture refactoring: - Re-enabled isort for python/ray/train to maintain code formatting consistency (#52717) ##### Ray Tune 📖 Documentation: - Fixed typo in Ray Tune PyTorch Lightning docs (#52756) ##### Ray Serve 💫 Enhancements: - [LLM] Refactor LLMServer and LLMEngine to not diverge too much from vllm chat formatting logic ([#52597](https://github.com/ray-project/ray/pull/52597)) - Bump vllm from 0.8.2 to 0.8.5 in /python ([#52344](https://github.com/ray-project/ray/pull/52344)) - [LLM] Add router replicas and batch size to llm config ([#52655](https://github.com/ray-project/ray/pull/52655)) 🔨 Fixes: - Request cancellation not propagating correctly across deployments (#52591) - BackpressureError not properly propagated in FastAPI ingress deployments (#52397) - Hanging issue when awaiting deployment responses (#52561) - [Serve.llm] made Ray Serve LLM compatible with vLLM v1 ([#52668](https://github.com/ray-project/ray/pull/52668)) 📖 Documentation: - [Serve][LLM] Add doc for deploying DeepSeek ([#52592](https://github.com/ray-project/ray/pull/52592)) ##### RLLib 🎉 New Features: - Offline Evaluation with loss function for Offline RL pipeline. Introduces three new callbacks, `on_offline_evaluate_start`, `on_offline_evaluate_end`, `on_offline_eval_runners_recreated` (#52308) 💫 Enhancements: - New `custom_data` attribute for `SingleAgentEpisode` and `MultiAgentEpisode` to store custom metrics. Deprecates `add|get_temporary_timestep_data()` (#52603) #### Ray Core 💫 Enhancements: - Only get serialization context once for all .remote args (#52690) - Add grpc server success and fail count metric (#52711) 🔨 Fixes: - Fix op _[Truncated at 4000 characters — full notes: https://github.com/ray-project/ray/releases/tag/ray-2.46.0]_