2.32.0
Ray-2.32.0
Added 4
- aDAG Developer Preview: Ray accelerated DAGs with Ray Core-like API and extensibility to pre-compile execution paths across pre-allocated resources
- Support async callable classes in map_batches()
- APPO on new API stack with EnvRunners
- Added customizable refresh frequency for metrics on Ray Dashboard
Changed 12
- Optimize ServeController.get_app_config()
- Change default for max and target ongoing requests
- Integrate Ray Serve with Ray structured logging
- Allow configuring handle cache size and controller max concurrency
- Optimize DeploymentDetails.deployment_route_prefix_not_set()
- Allow env setup logger encoding
- ray list tasks filter state and name on GCS side
- Log ray version and ray commit during GCS start
- Upgraded Dashboard to MUIv5 and React 18
- Make Tune trial ID available in EnvRunners and callbacks
- Add env- and agent_steps to custom evaluation function
- Remove default-metrics from Algorithm
Fixed 4
- Ensure InputDataBuffer doesn't free block references
- MapOperator.num_active_tasks should exclude pending actors
- Fix progress bars being displayed as partially completed in Jupyter notebooks
- Decrement lineage ref count of an actor when the actor task return object reference is deleted
Highlight: aDAG Developer Preview
This is a new Ray Core specific feature called Ray accelerated DAGs (aDAGs).
- aDAGs give you a Ray Core-like API but with extensibility to pre-compile execution paths across pre-allocated resources on a Ray Cluster to possible benefits for optimization on throughput and latency. Some practical examples include:
- Up to 10x lower task execution time on single-node.
- Native support for GPU-GPU communication, via NCCL.
- This is still very early, but please reach out on #ray-core on Ray Slack to learn more!
Ray Libraries
Ray Data
💫 Enhancements:
- Support async callable classes in
map_batches()(#46129)
🔨 Fixes:
- Ensure
InputDataBufferdoesn't free block references (#46191) MapOperator.num_active_tasksshould exclude pending actors (#46364)- Fix progress bars being displayed as partially completed in Jupyter notebooks (#46289)
📖 Documentation:
- Fix docs:
read_api.pydocstring (#45690) - Correct API annotation for
tfrecords_datasource(#46171) - Fix broken links in
READMEand inray.data.Dataset(#45345)
Ray Train
📖 Documentation:
- Update PyTorch Data Ingestion User Guide (#45421)
Ray Serve
💫 Enhancements:
- Optimize
ServeController.get_app_config()(#45878) - Change default for max and target ongoing requests (#45943)
- Integrate with Ray structured logging (#46215)
- Allow configuring handle cache size and controller max concurrency (#46278)
- Optimize
DeploymentDetails.deployment_route_prefix_not_set()(#46305)
RLlib
🎉 New Features:
- APPO on new API stack (w/
EnvRunners). (#46216)
💫 Enhancements:
- Stability: APPO, SAC, and DQN activate multi-agent learning tests (#45542, #46299)
- Make Tune trial ID available in
EnvRunners(and callbacks). (#46294) - Add
env-andagent_stepsto custom evaluation function. (#45652) - Remove default-metrics from Algorithm (tune does NOT error anymore if any stop-metric is missing). (#46200)
🔨 Fixes:
- Various bug fixes: #45542
📖 Documentation:
- Example for new API stack: Offline RL (BC) training on single-agent, while evaluating w/ multi-agent setup. (#46251)
- Example for new API stack: Custom RLModule with an LSTM. (#46276)
Ray Core
🎉 New Features:
- aDAG Developer Preview.
💫 Enhancements:
- Allow env setup logger encoding (#46242)
- ray list tasks filter state and name on GCS side (#46270)
- Log ray version and ray commit during GCS start (#46341)
🔨 Fixes:
- Decrement lineage ref count of an actor when the actor task return object reference is deleted (#46230)
- Fix negative ALIVE actors metric and introduce IDLE state (#45718)
psutilprocess attrnum_fdsis not available on Windows (#46329)
Dashboard
🎉 New Features:
- Added customizable refresh frequency for metrics on Ray Dashboard (#44037)
💫 Enhancements:
- Upgraded to MUIv5 and React 18 (#45789)
🔨 Fixes:
- Fix for multi-line log items breaking log viewer rendering (#46391)
- Fix for UI inconsistency when a job submission creates more than one Ray job. (#46267)
- Fix filtering by job id for tasks API not filtering correctly. (#45017)
Docs
🔨 Fixes:
- Re-enabled automatic cross-reference link checking for Ray documentation, with Sphinx nitpicky mode (#46279)
- Enforced naming conventions for public and private APIs to maintain accuracy, starting with Ray Data API documentation (#46261)
📖 Documentation:
- Upgrade Python 3.12 support to alpha, marking the release of the Ray wheel to PyPI and conducting a sanity check of the most critical tests.
Thanks
Many thanks to all those who contributed to this release!
@stephanie-wang, @MortalHappiness, @aslonnie, @ryanaoleary, @jjyao, @jackhumphries, @nikitavemuri, @woshiyyya, @JoshKarpel, @ruisearch42, @sven1977, @alanwguo, @GeneDer, @saihaj, @raulchen, @liuxsh9, @khluu, @cristianjd, @scottjlee, @bveeramani, @zcin, @simonsays1980, @SumanthRH, @davidxia, @can-anyscale, @peytondmurray, @kevin85421