NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #541 most downloaded on PyPI
Ray provides a simple, universal API for building distributed applications.
Last release 1 months ago
23 Aug 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
9 years old
132 releases · first in 2017
Remove deprecated TENSOR_COLUMN_NAME constant
🎉 New Features
sql_params support to read_sql (#60030)AsList aggregation (#59920)CountDistinct aggregate (#59030)UDFExpr (#56725)write_parquet() (#59102)💫 Enhancements
preserve_order (#60555)DefaultClusterAutoscalerV2 thresholds via env vars (#60133)DownstreamCapacityBackpressurePolicy (#59753)node_id, pid, attempt number for hanging tasks (#59793)OpRuntimeMetrics for progress (#60304)OpMetrics logging (#59907)TENSOR_COLUMN_NAME constant (#60573)meta_provider parameter (#60379)ray.data imports (#60292)StatefulShuffleAggregation.finalize allow incremental streaming (#59972)OutputSplitter semantics to avoid unnecessary buffer accumulation (#60237)BackpressurePolicy to streaming executor progress bar (#59637)StandardScaler preprocessor with Arrow format (#59906)🔨 Fixes
MapBatches even if they modify the row count (#60756)map_batches by default (#60448)ActorPoolMapOperator to guarantee dispatch of all given inputs (#60763)ArrowInvalid error when backfilling missing fields from map tasks (#60643)UnionOperator.clear_internal_output_queue (#60538)DefaultClusterAutoscalerV2 raising KeyError: 'CPU' (#60208)ReorderingBundleQueue handling of empty output sequences (#60470)DefaultAutoscalerV2 not scaling nodes from zero (#59896)use_ray_tqdm (#59996)StreamingRepartition hang with empty upstream results (#59848)AutoscalingCoordinator double-allocating resources for multiple datasets (#59740)DownstreamCapacityBackpressurePolicy issues (#59990)AutoscalingCoordinator crash when requesting 0 GPUs on CPU-only cluster (#59514)TensorArray to Arrow tensor conversion (#59449)max_actors is set (#59632)📖 Documentation
resource_limits refers to logical resources (#60109)read_lance doc (#59673)read_unity_catalog docstring (#59745)enable_true_multi_threading (#60515)🎉 New Features
QueueMonitor actor that queries message brokers (Redis, RabbitMQ) for queue length, enabling TaskConsumer scaling based on pending tasks rather than HTTP load. (#59430)apply_autoscaling_config decorator allows custom autoscaling policies to automatically benefit from Ray Serve's standard parameters (delays, scaling factors, bounds) without reimplementation. (#58857)label_selector and bundle_label_selector in Serve deployments. Deployments can now specify node label selectors for scheduling and bundle-level label selectors for placement groups, useful for targeting specific hardware (e.g., TPU topologies). (#57694)serve_autoscaling_snapshot log per autoscaling-enabled deployment each control-loop tick, with an event summarizer that reduces duplicate logs. (#56225)@serve.batch. (#59334)💫 Enhancements
lookback_period_s must now be greater than metrics_interval_s, preventing silent misconfigurations. (#59456)root_path support for uvicorn. root_path now works correctly across all uvicorn versions, including >=0.26.0 which changed how root_path is processed. (#57555)serve.shutdown(), eliminating cross-library import dependencies. (#60067)ray.init() when Pydantic v1 is detected, as support will be removed in Ray 2.56. (#59703)🔨 Fixes
_ray_trace_ctx when calling actors from a different process than the one that created them (e.g., serve start + dashboard interaction). (#59634)TaskProcessorAdapter shutdown during rolling updates. Removed shutdown() from __del__, which was broadcasting a kill signal to all Celery workers instead of just the local one, breaking rolling updates. (#59713)test_router_queue_len_metric, ensured proxy replica queue cache is populated before GCS failure tests, and added metrics server readiness checks. (#60333, #60466, #60468)📖 Documentation
🏗 Architecture refactoring
RAY_SERVE_DEFAULT_HTTP_HOST, RAY_SERVE_DEFAULT_HTTP_PORT, RAY_SERVE_DEFAULT_GRPC_PORT, RAY_SERVE_HTTP_KEEP_ALIVE_TIMEOUT_S, RAY_SERVE_REQUEST_PROCESSING_TIMEOUT_S, RAY_SERVE_ENABLE_JSON_LOGGING, RAY_SERVE_ALWAYS_RUN_PROXY_ON_HEAD_NODE), cleaned up legacy constant fallbacks, and added documentation for previously undocumented env vars (e.g., RAY_SERVE_CONTROLLER_MAX_CONCURRENCY, RAY_SERVE_ROOT_URL, proxy health check settings, and fault tolerance params). Users relying on removed env vars should migrate to the Serve config API (http_options, grpc_options, LoggingConfig). (#59470, #59619, #59647, #59963, #60093)🎉 New Features
CallbackManager and guardrail some callback hooks (#60117)💫 Enhancements
Predictor API (#60305)PlacementGroup and SlicePlacementGroup interface in WorkerGroup (#60116)RayTrainWorker actors (#59872)pg.ready() with pg.wait() in worker group (#60568)DatasetsSetupCallback to DatasetsCallback (#59423)🔨 Fixes
try-except for pg.wait() (#60743)TrainController reraises AsyncioActorExit (#59461)📖 Documentation
JaxTrainer template (#59842)checkpoint_upload_fn backend and cuda:nccl backend support (#60541)checkpoint_upload_func to checkpoint_upload_fn in docs (#60390)🔨 Fixes
🎉 New Features
/tokenize and /detokenize endpoints (#59787)/collective_rpc endpoint for RLHF weight synchronization (#59529)pooling parameter (#59534)guided_decoding (#59421)should_continue_on_error support for ServeDeploymentStage (#59395)HttpRequestUDF resources (#60313)💫 Enhancements
world_size==1 (#60403)compute instead of concurrency to specify ActorPool size (#59645)DataContext overrides in Ray Data LLM Processor (#60142)torch.Tensor serialization overhead (#59919)PrefixCacheAwareRouter imbalance threshold less surprising (#59390)tokenized_prompt without prompt in vLLMEngineStage (#59801)fn_constructor_kwargs (#59806)CUDA_VISIBLE_DEVICES deletion workaround (#60502)🔨 Fixes
Namespace conversion in vLLM engine initialization (#60380)ndarray exception in http_request_stage (#60299)EngineDeadError to enable recovery (#60145)📖 Documentation
vLLMEngineProcessor (#59446)🎉 New Features
BC and MARWIL (#59067)💫 Enhancements
np.nanmean warnings in EMA stats (#60408)🔨 Fixes
RLModule forward methods to handle dict spaces (#60451)LearnerGroup.load_module_state() and mark as deprecated (#60354)AlgorithmConfig (#59438)flatten_observations.py for nested spaces for ignored multi-agent (#59928)🎉 New Features
cgroup_path in ray.init() (#59372, #60183, #60726)is_canceled() (#58914)--entrypoint-resource (#59735)--ip option in ray attach (#59931)ray kill-actor --name/--namespace for force/graceful shutdown (#60258)💫 Enhancements
RAY_AUTH_MODE=k8s with separate config for Kubernetes token auth (#59621)shared_ptr caching and avoid per-RPC construction (#59500)OpenTelemetry metric recording calls (#59337)working_dir uploads (#59566)DEBUG in RaySyncer (#59616)std::unordered_map to absl::flat_hash_map (#59921)NodeDefinitionEvent proto (#60314)repr_name to actor_lifecycle_event (#59925)ALL in exposable event config (#59878)SubprocessModuleHandle.destroy_module() resource cleanup (#60172)is_head in dashboard agent startup (#59378)get_session_name() to RuntimeContext (#59469)MAX_APPLICATION_ERROR_LEN configurable via env var (#59543)🔨 Fixes
idle_time_ms resetting for nodes not running tasks (#60581)RAY_EXPERIMENTAL_NOSET_* environment variable parsing in accelerator managers (#60577)ray start --no-redirect-output crash (#60394)PSUTIL_PROCESS_ATTRS returning empty list on Windows (#60173)available_node_types on on-prem clusters (#60184)MetricsAgentClient exporter initialization (#59611)internal_ip() within StandardAutoscaler (#57279)uv_runtime_env_hook.py to pin worker Python version (#59768)STRICT_PACK placement groups ignoring bundle label selectors (#60170)psutil internal API usage in dashboard disk usage reporting (#59659)RUNNING vs FINISHED metrics (#59893)symmetric_run using wrong condition to check GCS readiness (#59794)TypeError when using bundle_label_selectors (#59850)📖 Documentation
ray.shutdown() behavior for local vs remote clusters (#59845)RAY_RUNTIME_ENV_BEARER_TOKEN env var (#60136)💫 Enhancements
🔨 Fixes
ray-cpp wheels are now py3-none, without specific Python versions. (#59969)RayJob InTreeAutoscaling with Kueue docs after Kueue 0.16.0 release (#59648)RunLLM chat widget for Ray docs (#59126)Thank you to everyone who contributed to this release! @KaisennHu, @MiXaiLL76, @slfan1989, @krisselberg, @JasonLi1909, @Priya-753, @pseudo-rnd-thoughts, @zzchun, @ZacAttack, @pushpavanthar, @jjyao, @ryanaoleary, @pcmoritz, @akshay-anyscale, @HassamSheikh, @yurekami, @Hyunoh-Yeo, @ruoliu2, @nrghosh, @wxwmd, @myandpr, @J-Meyers, @trilamsr, @kouroshHakha, @limarkdcunha, @manhld0206, @jreiml, @preneond, @yuchen-ecnu, @Yicheng-Lu-llll, @AchimGaedkeLynker, @vaishdho1, @israbbani, @OneSizeFitsQuorum, @Sathyanarayanaa-T, @nadongjun, @xinyuangui2, @Rob12312368, @as-jding, @lee1258561, @popojk, @coqian, @rajeshg007, @jeffreywang-anyscale, @kamil-kaczmarek, @alexeykudinkin, @Aydin-ab, @mgchoi239, @dragongu, @edoakes, @smortime, @tk42, @abrarsheikh, @jakubzimny, @Future-Outlier, @axreldable, @owenowenisme, @g199209, @cem-anyscale, @dayshah, @akelloway, @daiping8, @dlwh, @robertnishihara, @400Ping, @matthewdeng, @antoine-galataud, @cristianjd, @Partth101, @goutamvenkat-anyscale, @codope, @seanlaii, @andrew-anyscale, @andrewsykim, @liulehui, @simonsays1980, @Sparks0219, @yifanmai, @landscapepainter, @win5923, @kangwangamd, @srinarayan-srikanthan, @KeeProMise, @srinathk10, @my-vegetable-has-exploded, @MengjinYan, @yancanmao, @yuhuan130, @ArturNiederfahrenhorst, @akyang-anyscale, @rushikeshadhav, @kongjy, @harshit-anyscale, @justinvyu, @dancingactor, @Vito-Yang, @cr7258, @marwan116, @muyihao, @DeborahOlaboye, @bveeramani, @kriyanshii, @khluu, @machichima, @Kunchd, @jonded94, @iamjustinhsu, @sampan-s-nayak, @wingkitlee0, @sunsetxh, @dkhachyan, @can-anyscale, @TimothySeah, @raulchen, @elliot-barn, @ryankert01, @xyuzh, @stephanie-wang, @hao-aaron, @simeetnayan81, @cszhu, @richardliaw, @yuanjiewei, @kyuds, @eicherseiji, @RedGrey1993, @rueian, @jeffreyjeffreywang, @crypdick, @ankur-anyscale, @aslonnie
One column per quarter.
Deprecated API removal: Remove deprecated read_parquet_bulk API
🎉 New Features
Dataset.summary() API for quick dataset inspection (#58862)should_continue_on_error for graceful error handling in batch inference (#59212)with_column expressions: Enable expressions for grouped with_column in Ray Data (#58231)DefaultCollateFn, arrow_batch_to_tensors (#58821)💫 Enhancements
__init__ (#59105)iter_batches (#58657)HashShuffleAggregator breaks down blocks on finalize (#58603)ApproximateTopK aggregator (#58659)read_lance() (#58895)time_to_first_batch and get_ref_bundles metrics to data dashboard (#58912)iter_prefetched_bytes statistics tracking (#58900)iter_batches: Add configurable batching for resolve_block_refs to speed up iter_batches (#58467)read_parquet_bulk API (#58970)🔨 Fixes
obj_store_mem_max_pending_output_per_task reporting (#58864)get_parquet_dataset (#57047)📖 Documentation
vision_preprocess and vision_postprocess in VLM docs (#59012)huggingface_hub instruction (#59109)🎉 New Features
external_scaler_enabled flag to application config, enabling third-party autoscalers to control replica counts. (#57727, #57698)@serve.batch, useful when batch items have varying weights (e.g., token counts in LLM inference). (#59059)ray_serve_deployment_target_replicas, ray_serve_autoscaling_decision_replicas), batching statistics, and router queue latency for improved observability. (#59220, #59232, #59233)💫 Enhancements
GET, PUT) corresponding to a route. (#58927)@ingress now preserve original class metadata (__qualname__, __module__, __doc__, __annotations__). (#58478)DeploymentHandle, DeploymentResponse, and DeploymentResponseGenerator for better IDE support and type inference. Adds .result() stub to DeploymentResponseGenerator to fix static typing errors. (#59363, #58522)🔨 Fixes
RepresenterError when using serve build with AggregationFunction enum values in autoscaling config. (#58509)last_scale_up_time and last_scale_down_time on autoscaling context. (#59057)DeploymentResponse objects in a chain of deployment calls from different event loops. (#59385)make_fastapi_class_based_view to properly handle inherited methods. (#59410)📖 Documentation
🎉 New Features
label_selector to ScalingConfig. This allows users to control worker placement by targeting specific labeled nodes in the cluster. (#58845, #59414)JaxTrainer running on GPU machines. (#58322)CheckpointConsistencyMode to get_all_reported_checkpoints, providing options for handling checkpoint retrieval consistency. (#58271)DataConfig now supports setting execution_options on a per-dataset basis for finer-grained control over data loading. (#58717)💫 Enhancements
Result.get_best_checkpoint now supports nested metrics, allowing for more flexible metric tracking and checkpoint selection. (#58537)get_all_reported_checkpoints no longer blocks when only metrics are reported. (#58870)🔨 Fixes
setup_mlflow API to ensure full compatibility with Ray Train V2. (#58705)ValueError is now raised if checkpoint_upload_fn fails to return a valid checkpoint. (#58863)📖 Documentation
ray.train.get_all_reported_checkpoints method. (#58946)💫 Enhancements:
Result.get_best_checkpoint now supports nested metrics, allowing for more flexible metric tracking and checkpoint selection. (#58537)💫 Enhancements
transformers to 4.57.3 (#58980)vllm_engine.py to check for VLLM_USE_V1 attribute (#58820)VLLM_RAY_PER_WORKER_GPUS from fractional placement-group bundles automatically (#58949)🔨 Fixes
🎉 New Features
num_env_runners \> 0 (#58495)💫 Enhancements
MetricsLogger tweaks+ Stats rewrite (#56838)EnvRunner (#56750)AlgorithmConfig deprecated argument with incorrect behavior/semantics (#59138)examples/ (#58893)/component/tests (#58890)pytest_runtest_makereport) across tests (#59003)asv.conf.json (#58934)byod_rllib.sh (#59157)🔨 Fixes
📖 Documentation
🎉 New Features
RAY_ENABLE_ZERO_COPY_TORCH_TENSORS (#57639).rayignore file support for controlling cluster uploads (#58500)AuthenticationError exception (#58737)X-Ray-Authorization fallback header for auth token in dashboard (#58819)💫 Enhancements
RAY_core_worker_num_server_call_thread (#58771)OtlpGrpcMetricExporter wrapper to log export failures (#58929)get_if_exists=True for actor lookup (#58628)AuthenticationError from Python for token loading errors (#59031)secrets.token_hex(32) to generate auth tokens (#58818)AUTH_MODE=token check in get-auth-token CLI (#58848)🔨 Fixes
grpc_authentication_server_interceptors streaming response handling (#59104)IsProcessAlive on Windows (#59106)RAY_enable_open_telemetry (#59095)RAY_DISABLE_FAILURE_SIGNAL_HANDLER option (#58984)RayletClient causing driver crash (use-after-free) (#58660)shared_ptr for pins_in_flight_ to prevent use-after-free (#58744)add_command_alias (#58719)cluster_full_of_actors_detected_* fields (unused in autoscaler v2) (#59052)📖 Documentation
token-auth.md documentation page (#58829)💫 Enhancements
time_to_first_batch and get_ref_bundles metrics to data dashboard (#58912)rich, cupy-cuda12x, and memray (#58983)lxml to 6.0.2 (#58808)requests from 2.32.3 to 2.32.5 (#58724)openlineage-python in the dependency set (#58724)Thank you to everyone who contributed to this release! @xinyuangui2, @harshit-anyscale, @Sparks0219, @israbbani, @siyuanfoundation, @robertnishihara, @thomasdesr, @spencer-p, @aslonnie, @ZacAttack, @soodoshll, @marosset, @simeetnayan81, @soffer-anyscale, @abrarsheikh, @400Ping, @richo-anyscale, @as-jding, @rueian, @kshanmol, @yancanmao, @zzchun, @coqian, @matthewdeng, @Future-Outlier, @YoussefEssDS, @ykdojo, @pseudo-rnd-thoughts, @lowdy1, @ArturNiederfahrenhorst, @myandpr, @komikndr, @machichima, @RisinT96, @curiosity-hyf, @alanwguo, @CaiZhanqi, @Aydin-ab, @MengjinYan, @suzuri-lollipop, @jeffreyjeffreywang, @rushikeshadhav, @alexeykudinkin, @meAmitPatil, @zcin, @teddygood, @elliot-barn, @dayshah, @srinathk10, @XLC127, @simonsays1980, @kevin85421, @bveeramani, @kunling-anyscale, @khluu, @andrew-anyscale, @KaisennHu, @kouroshHakha, @ryankert01, @pavitrabhalla, @jjyao, @dragongu, @SolitaryThinker, @justinrmiller, @wxwmd, @Haustle-v, @TimothySeah, @goutamvenkat-anyscale, @liulehui, @raulchen, @HassamSheikh, @Priya-753, @vaishdho1, @dancingactor, @daiping8, @eloaf, @JasonLi1909, @rayci-bot, @richardliaw, @SheldonTsen, @Yicheng-Lu-llll, @ktyxx, @pschmutz, @iamjustinhsu, @ahao-anyscale, @cem-anyscale, @eicherseiji, @edoakes, @rajeshg007, @arki05, @andrewsykim, @nrghosh, @ryanaoleary, @kyuds, @Daraan, @can-anyscale, @sampan-s-nayak, @xyuzh, @owenowenisme
More robust handling for CVE-2025-62593: test for more browser-specific headers in dashboard browser rejection logic
Clean up checkpoint config and trainer param deprecations
Ray Core:
Ray Data:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture:
🎉 New Features:
💫 Enhancements:
📖 Documentation:
/api/users/{user_id}) instead of just route prefixes, enabling granular endpoint monitoring without high cardinality issues. Performance impact is minimal (~1% RPS decrease). (#58180)list_outbound_deployments() method to discover downstream deployment dependencies, enabling programmatic analysis of service topology for both stored and dynamically-obtained handles. (#58345, #58350)ReplicaRank schema with global, node-level, and local ranks to support advanced coordination scenarios like tensor parallelism and model sharding across nodes. (#58471, #58473)serve.run() completes, improving deployment reliability. (#57723)RAY_SERVE_THROUGHPUT_OPTIMIZED without manually configuring all flags, improving flexibility for performance tuning. (#58057)ray_serve_*) and improved observability infrastructure. (#56432)RunningReplicaInfo objects passed in long-poll updates, avoiding complex reference counting patterns. (#58174)IMPLICIT_RESOURCE_PREFIX from ReplicaConfig.ray_actor_options to prevent internal resource annotations from leaking into user-visible configurations. (#58275)from_proxy_manager argument to get_target_groups() for finer control over returned routing targets. (#57620)_TaskConsumerWrapper during async inference implementation. (#57664)serve run now respects proxy_location from config files instead of hardcoding EveryNode, and serve.start() no longer defaults to HeadOnly when http_options are provided without an explicit location. (#57622)stabilityai/stable-diffusion-2 was deprecated on Hugging Face. (#58609)RankManager class with type-safe ReplicaRank representation, creating a cleaner foundation for future multi-level rank support. (#58471, #58473)💫 Enhancements:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
📖 Documentation:
Thank You to all the Contributors! @marosset, @curiosity-hyf, @bveeramani, @Future-Outlier, @saihaj, @ZacAttack, @ArthurBook, @crypdick, @Aydin-ab, @elliot-barn, @Kunchd, @justinvyu, @jjyao, @gangsf, @sunsetxh, @Daraan, @justinyeh1995, @MatthewCWeston, @kyuds, @daiping8, @sauravvenkat, @omatthew98, @CowKeyMan, @morotti, @israbbani, @goutamvenkat-anyscale, @fscnick, @Zakelly, @xyuzh, @kouroshHakha, @owenowenisme, @Qiaolin-Yu, @czgdp1807, @shen-shanshan, @wph95, @iamjustinhsu, @MengjinYan, @jugalshah291, @Yicheng-Lu-llll, @ryanaoleary, @nadongjun, @xinyuangui2, @ideal, @my-vegetable-has-exploded, @lucaschadwicklam97, @tianyi-ge, @ahao-anyscale, @abrarsheikh, @Blaze-DSP, @rueian, @thomasdesr, @CaiZhanqi, @harshit-anyscale, @jeffreyjeffreywang, @TimothySeah, @codope, @sampan-s-nayak, @andrewsykim, @xingsuo-zbz, @aslonnie, @OneSizeFitsQuorum, @ryankert01, @Sparks0219, @soffer-anyscale, @akyang-anyscale, @alanwguo, @chrisfellowes-anyscale, @richo-anyscale, @alexeykudinkin, @JasonLi1909, @ruisearch42, @EkinKarabulut, @MarcoGorelli, @SolitaryThinker, @srinathk10, @dayshah, @richardliaw, @pseudo-rnd-thoughts, @win5923, @axreldable, @matthewdeng, @ArturNiederfahrenhorst, @can-anyscale, @khluu, @landscapepainter, @kevin85421, @seanlaii, @edoakes, @nrghosh, @eicherseiji, @Artimislyy, @cem-anyscale, @coqian, @chiayi, @liulehui
Fix for CVE-2025-62593: reject Sec-Fetch-* other browser-specific headers in dashboard browser rejection logic
Reuse previous metadata if transferring the same tensor list with nixl
nixl (https://github.com/ray-project/ray/pull/58309)Improve deprecation handling when ray.train methods are called from ray.tune
Ray Train:
RAY_TRAIN_V2_ENABLED=0.Ray Serve:
AutoscalingContext with total_running_requests, total_queued_requests, and total_num_requests, plus adds support for min, max, and time-weighted average aggregation functions. These improvements give users fine-grained control to implement sophisticated custom autoscaling policies based on real-time workload metrics.🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New features
ray.train aliases for public APIs (#57758)💫 Enhancements
jax.distributed.shutdown() for JaxBackend (#57802)TrainingFailedError module (#57865)ray.train methods are called from ray.tune (#57810)🔨 Fixes
ControllerError triggered by after_worker_group_poll_status errors (#57869)iter_torch_batches use of ray.train.torch.get_device outside Train (#57816)ThreadRunner (#57249)📖 Documentation
🏗 Architecture / tests
test_util, torch_trainer) (#57939, #57873)💫 Enhancements:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
💫 Enhancements:
🔨 Fixes:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
Thank you to everyone who contributed to this release! Special thanks to all the contributors who helped make Ray 2.51.0 possible through bug fixes, features, documentation improvements, and testing efforts.
Ray Core: Fix deadlock when cancelling stale requests on in-order actors
Ray Core: Fix deadlock when cancelling stale requests on in-order actors (#57746)
Add per worker process group and deprecate process subreaper in favor of cleanup using process group.
Ray Data: This release offers many updates to Ray Data, including:
with_column, and column aliasing for more powerful data transformationsRay Core:
Alpha release of Ray Direct Transport (formerly GPU objects) - simply enable it by adding the tensor_transport parameter to the existing native Ray Core API. This keeps GPU data in GPU memory until a transfer is needed, avoiding expensive serialization and copies to and from the Ray object store. It uses efficient data transports such as collective communication libraries (GLOO or NCCL) or point-to-point RDMA (via NVIDIA’s NIXL) to transfer data directly between devices, including both CPUs and GPUs.
Ray Train:
Local mode support for multi-process training with torchrun, enhanced checkpoint management with new upload modes and validation functions
Ray Serve:
celery and DLQ.RAY_SERVE_THROUGHPUT_OPTIMIZED environment variable.RLLib:
Add StepFailedRecreateEnv exception for users with unsatisfiable environments
Ray Serve/Data LLM:
Improvements to multi node serving, loading models from remote storages, and sharing resources for efficiency (fractional gpus, sharing gpus on a data pipeline with shared stages)
🎉 New Features:
explain() API provides insights into dataset execution plans (#55482)streaming_train_test_split to avoid materialization for train/test splits (#56803)chat_template_kwargs parameter for customizing chat templates (#56490)max_task_concurrency and resource allocation options (#56370, #56381)💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
💫 Enhancements:
🔨 Fixes:
🎉 New Features:
💫 Enhancements:
📖 Documentation:
💫 Enhancements:
Thank you to everyone who contributed to this release!
@alexeykudinkin, @richardliaw, @nrghosh, @ljstrnadiii, @Daraan, @kouroshHakha, @Bye-legumes, @kamil-kaczmarek, @jugalshah291, @sampan-s-nayak, @jjyao, @Evelynn-V, @gangsf, @omatthew98, @TimothySeah, @kshanmol, @goutamvenkat-anyscale, @axreldable, @jiangwu300, @simonsays1980, @400Ping, @JasonLi1909, @chuang0221, @weiliango, @Myasuka, @win5923, @liulehui, @khluu, @ok-scale, @eicherseiji, @tianyi-ge, @MengjinYan, @kevin85421, @Yevet, @orangeQWJ, @vie-serendipity, @edoakes, @wyhong3103, @israbbani, @vickytsang, @HassamSheikh, @acrewdson, @czgdp1807, @daiping8, @carolynwang, @thc1006, @jeffreyjeffreywang, @Stack-Attack, @Catch-Bull, @elliot-barn, @Levi080513, @BestVIncent, @dragongu, @jmajety-dev, @jcarlson212, @tohtana, @abrarsheikh, @crypdick, @Yicheng-Lu-llll, @ZacAttack, @justinvyu, @lk-chen, @alanwguo, @mcoder6425, @my-vegetable-has-exploded, @yancanmao, @arcyleung, @rjpower, @codope, @harshit-anyscale, @dayshah, @stephanie-wang, @KaisennHu, @ryanaoleary, @saihaj, @mattip, @rueian, @Kunchd, @pavitrabhalla, @owenowenisme, @Aydin-ab, @gvspraveen, @minerharry, @JackGammack, @jpatra72, @coqian, @zcin, @dstrodtman, @aslonnie, @ahao-anyscale, @GuyStone, @iamjustinhsu, @seanlaii, @ruisearch42, @akyang-anyscale, @ArturNiederfahrenhorst, @bveeramani, @OneSizeFitsQuorum, @xinyuangui2, @sb-hakunamatata, @22quinn, @Sparks0219, @sven1977, @snehachhabria, @dioptre, @nadongjun, @eric-higgins-ai, @marosset, @MatthewCWeston, @pcmoritz, @can-anyscale, @pimdh, @roshankathawate, @matthewdeng, @martinbomio, @GokuMohandas, @alimaazamat, @ali-corpo, @landscapepainter, @Qiaolin-Yu, @vaishdho1, @avigyabb, @srinathk10, @tannerdwood
There is no difference between 2.49.2 and 2.49.1, though we needed a patch version for other out of band reasons. To fill the awkward blankness, here
There is no difference between 2.49.2 and 2.49.1, though we needed a patch version for other out of band reasons. To fill the awkward blankness, here is a haiku about Ray:
Summit drawing near Ray advances, step by step Scaling without end
Ray Dashboard: Fix issue where GPU metrics are missing
Autoscaling ergonomics. Marked per-deployment autoscaling metrics push interval config as deprecated for consistency. #55102
Ray Data:
Ray Core:
Ray Train:
Ray Serve:
Ray Serve/Data LLM:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
iter_torch_batches. (#54277)🔨 Fixes:
TensorType handling. (#55694)ImportError in Atari examples. (#54967)TorchMultiCategorical.to_deterministic when having different number of categories and logits with time dimension. (#54414)SACConfig's training(). (#53918)restore_from_path such that connector states are also restored on remote EnvRunners. (#54672)config.count_steps_by = "agent_steps". (#54885)CUBLAS_WORKSPACE_CONFIG. (#53913)rllib_contrib completely from RLlib. (#55182)🏗 Architecture refactoring:
RLModule. (#55141)--enable-new-api-stack flag from all scripts. (#54853, #54702)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
💫 Enhancements:
RayNodeType label on for nodes. (#55493, #55192)🔨 Fixes:
🎉 New Features:
💫 Enhancements:
💫 Enhancements:
🔨 Fixes:
Thank you to everyone who contributed to this release! @pavitrabhalla, @Daraan, @Sparks0219, @daiping8, @abrarsheikh, @sven1977, @Toshaksha, @bveeramani, @MengjinYan, @GokuMohandas, @codope, @nadongjun, @SolitaryThinker, @matthewdeng, @elliot-barn, @isimluk, @avibasnet31, @OneSizeFitsQuorum, @Future-Outlier, @marosset, @jackfrancis, @kshanmol, @eicherseiji, @dayshah, @iamjustinhsu, @Qiaolin-Yu, @goutamvenkat-anyscale, @Yicheng-Lu-llll, @yantarou, @rclough, @zcin, @NeilGirdhar, @VarunBhandary, @400Ping, @akshay-anyscale, @vickytsang, @xushiyan, @JasonLi1909, @n-elia, @simonsays1980, @dragongu, @Kishanthan, @ruisearch42, @jectpro7, @TimothySeah, @liulehui, @rueian, @HollowMan6, @akyang-anyscale, @axreldable, @czgdp1807, @alanwguo, @justinvyu, @ok-scale, @my-vegetable-has-exploded, @landscapepainter, @fscnick, @machichima, @mpashkovskii, @ZacAttack, @gvspraveen, @sword865, @lmsh7, @Ziy1-Tan, @rebel-scottlee, @sampan-s-nayak, @coqian, @can-anyscale, @Bye-legumes, @win5923, @MortalHappiness, @angelinalg, @khluu, @aslonnie, @krishnakalyan3, @minosvasilias, @x-tong, @xinyuangui2, @raulchen, @Yangruipis, @edoakes, @kevin85421, @wingkitlee0, @Fokko, @cristianjd, @srinathk10, @owenowenisme, @JoshKarpel, @MengqingCao, @leopardracer, @westonpace, @LeslieWongCV, @VassilisVassiliadis, @crypdick, @alexeykudinkin, @mjacar, @kunling-anyscale, @saihaj, @kouroshHakha, @ema-pe, @markjm, @avigyabb, @dshepelev15, @mauvilsa, @omatthew98, @nrghosh, @ryanaoleary, @Aydin-ab, @lk-chen, @stephanie-wang, @harshit-anyscale, @jjyao, @bullgom, @Yevet, @israbbani
Removed deprecated ray.workflow package
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features
💫 Enhancements
🔨 Fixes
📖 Documentation
🏗 Architecture refactoring
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
Docs 🎉 New Features:
💫 Enhancements:
Breaking Changes
Dependencies & Build
Thank you to everyone who contributed to this release! @kouroshHakha, @davidwagnerkc, @MengjinYan, @minerharry, @simonsays1980, @Myasuka, @noemotiovon, @goutamvenkat-anyscale, @harshit-anyscale, @jugalshah291, @tianyi-ge, @sven1977, @crypdick, @JohnsonKuan, @lk-chen, @richardsliu, @alexeykudinkin, @EagleLo, @soffer-anyscale, @zcin, @AdrienVannson, @nilsmelchert, @raulchen, @jujipotle, @DrehanM, @vigneshka, @Ziy1-Tan, @Blaze-DSP, @ArthurBook, @GokuMohandas, @walkoss, @bveeramani, @edoakes, @omatthew98, @SeanQuant, @CheyuWu, @cszhu, @win5923, @kevin85421, @angelinalg, @iamjustinhsu, @eicherseiji, @kunling-anyscale, @vickytsang, @MortalHappiness, @aslonnie, @psr-ai, @sbhat98, @anyadontfly, @marwan116, @cristianjd, @2niuhe, @codope, @fscnick, @ryanaoleary, @srinathk10, @TimothySeah, @han-steve, @Future-Outlier, @Syulin7, @Qiaolin-Yu, @elliot-barn, @JoshKarpel, @dayshah, @can-anyscale, @ok-scale, @mattip, @SolitaryThinker, @owenowenisme, @nehiljain, @GeneDer, @rnkrtt, @israbbani, @DriverSong, @sinalallsite, @pcmoritz, @akyang-anyscale, @xinyuangui2, @nrghosh, @davidxia, @rueian, @stephanie-wang, @jjyao, @chris-ray-zhang, @czgdp1807, @justinvyu, @Daraan, @landscapepainter, @troychiu, @khluu, @hipudding, @ruisearch42, @robertnishihara, @ArturNiederfahrenhorst, @abrarsheikh, @alanwguo, @HollowMan6, @ran1995data, @matthewdeng
Ray 2.47.1 fixed an issue where Ray failed to start on Mac
Ray 2.47.1 fixed an issue where Ray failed to start on Mac (https://github.com/ray-project/ray/pull/53807)
Prefill disaggregation is now supported in initial support in Ray Serve LLM (#53092). This is critical for production LLM serving use cases.
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
from_torch respect Dataset len (#52804)on_exit hook (#53249)move_tensors_to_device utility for the list/tuple[tensor] case (#53109)ActorPool scaling to avoid scaling down when the input queue is empty (#53009)FileBasedDatasource. This fixes potential OOMs for workloads using FileBasedDatasources (#52852)📖 Documentation:
🎉 New Features:
TrainControllerState to enhance observability. (#52805)💫 Enhancements:
Noop scaling decisions for smoother scaling logic. (#53180)🔨 Fixes:
move_tensors_to_device utility to correctly handle list / tuple of tensors. (#53109)test_torch_device_manager to reduce flakiness. (#52917)📖 Documentation:
🏗 Architecture refactoring:
PARALLEL_CI blocks and combined imports. (#53087, #52742)💫 Enhancements:
test_train_v2_integration to use the correct RunConfig. (#52882)📖 Documentation:
session.report with tune.report and corrected import paths. (#52801)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
runtime_env validation for py_modules. (#53186)📖 Documentation:
🎉 New Features:
serve.llm API (#52719)💫 Enhancements:
name_prefix in build_llm_deployment (#53316)repetition_penalty vLLM sampling parameter (#53222)wait_for_min_actors_s🔨 Fixes:
LLMRouter.check_health() should check LLMServer.check_health() (#53358)check_health return type (#53114)<bos> token (#52853)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
split_and_zero_pad utility function (related to complex structures vs simple values or np.arrays). (#52818)💫 Enhancements:
uv run integration is now enabled by default, so you don't need to set the RAY_RUNTIME_ENV_HOOK any more (#53060). If you rely on the previous behavior where uv run only runs the Ray driver but not the workers in the uv environment, you can switch back to the old behavior by setting the RAY_ENABLE_UV_RUN_RUNTIME_ENV=0 environment variable.🔨 Fixes:
RuntimeEnv in the Job Submission API. (#52704)serialize_to_numpy_or_scalar (#53160)RestartActor rpc is ignored (#53330)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
h11 (#53361), requests, starlette, jinja2 (#52951), pyopenssl and cryptography (#52941)🎉 New Features:
💫 Enhancements:
Thank you to everyone who contributed to this release!
@NeilGirdhar, @ok-scale, @JiangJiaWei1103, @brandonscript, @eicherseiji, @ktyxx, @MichalPitr, @GeneDer, @rueian, @khluu, @bveeramani, @ArturNiederfahrenhorst, @c8ef, @lk-chen, @alanwguo, @simonsays1980, @codope, @ArthurBook, @kouroshHakha, @Yicheng-Lu-llll, @jujipotle, @aslonnie, @justinvyu, @machichima, @pcmoritz, @saihaj, @wingkitlee0, @omatthew98, @can-anyscale, @nadongjun, @chris-ray-zhang, @dizer-ti, @matthewdeng, @ryanaoleary, @janimo, @crypdick, @srinathk10, @cszhu, @TimothySeah, @iamjustinhsu, @mimiliaogo, @angelinalg, @gvspraveen, @kevin85421, @jjyao, @elliot-barn, @xingyu-long, @LeoLiao123, @thomasdesr, @ishaan-mehta, @noemotiovon, @hipudding, @davidxia, @omahs, @MengjinYan, @dengwxn, @MortalHappiness, @alhparsa, @emmanuel-ferdman, @alexeykudinkin, @KunWuLuan, @dev-goyal, @sven1977, @akyang-anyscale, @GokuMohandas, @raulchen, @abrarsheikh, @edoakes, @JoshKarpel, @bhmiller, @seanlaii, @ruisearch42, @dayshah, @Bye-legumes, @petern48, @richardliaw, @rclough, @israbbani, @jiwq
New custom_data attribute for SingleAgentEpisode and MultiAgentEpisode to store custom metrics. Deprecates add|get_temporary_timestep_data()
The 2.46 Ray release comes with a couple core highlights:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
📖 Documentation:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
on_offline_evaluate_start, on_offline_evaluate_end, on_offline_eval_runners_recreated (#52308)💫 Enhancements:
custom_data attribute for SingleAgentEpisode and MultiAgentEpisode to store custom metrics. Deprecates add|get_temporary_timestep_data() (#52603)💫 Enhancements:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
Thank you to everyone who contributed to this release! @kevin85421, @edoakes, @wingkitlee0, @alexeykudinkin, @chris-ray-zhang, @sophie0730, @zcin, @raulchen, @matthewdeng, @abrarsheikh, @popojk, @Jay-ju, @ruisearch42, @eicherseiji, @lk-chen, @justinvyu, @dayshah, @kouroshHakha, @NeilGirdhar, @omatthew98, @ishaan-mehta, @davidxia, @ArthurBook, @GeneDer, @srinathk10, @dependabot[bot], @JoshKarpel, @aslonnie, @khluu, @can-anyscale, @israbbani, @saihaj, @MortalHappiness, @alanwguo, @bveeramani, @iamjustinhsu, @Ziy1-Tan, @xingyu-long, @simonsays1980, @fscnick, @chuang0221, @sven1977, @jjyao
Make Object Store Fallback Directory configurable (#51189).
💫 Enhancements
with_tensor_transport(transport='shm') (#51872).🔨 Fixes
KillActor RPC with force_kill=True can actually kill the threaded actor (#51414).CoreWorker::Shutdown instead of CoreWorker::Disconnect (#52374).🏗 Architecture refactoring
🎉 New Features
Dataset.write_clickhouse() (#50377)ray_remote_args_fn in Dataset.groupby().map_groups() to set per-group runtime env and resource hints (#51236)Dataset.name / set_name as a public API for easier lineage tracking (#51076)Dataset.flat_map() (#51180)read_json() (#52083)Dataset.export_metadata() for schema & stats snapshots (#52227)💫 Enhancements
RefBundle.get_cached_location() lookup (#52097)PandasBlock.size_bytes() (#52510)BlockColumnAccessor utilities and ops (#51326, #51571)🔨 Fixes
MapTransformFn.__eq__ equality check (#51434)FileBasedDataSource (#51424)_expand_paths (#50178)Dataset.random_sample() (#51401)RandomAccessDataset.multiget() return values (#51421)ResourceManager (#52226)📖 Documentation
🎉 New Features
v2.LightGBMTrainer API into the public trainer class as an alternate constructor (#51265).💫 Enhancements
test_telemetry to medium size (#52178).Trainer initialization (#50966).🔨 Fixes
OutputSplitter._locality_hints from actor_locality_enabled and locality_with_output (#52005).RunAttempt workers as dead after completion to avoid stale states (#51540).setup_wandb rank_zero_only logic (#52381).📖 Documentation
🏗 Architecture refactoring
HIP_VISIBLE_DEVICES (#51104).📖 Documentation
pbt_ppo_example.ipynb (#51626).🎉 New Features
ray.llm support custom accelerators (#51359).💫 Enhancements
🔨 Fixes
RAY_SERVE_ENABLE_QUEUE_LENGTH_CACHE flag (#51649).RAY_SERVE_EAGERLY_START_REPLACEMENT_REPLICAS flag (#51722).ServeReplica deployment failure for DeepSeek (#51989).GPUType enum value rather than enum itself (#52037).📖 Documentation
tokenizer_pool_size (#52356).🎉 New Features
💫 Enhancements
MetricsLogger and Stats (#52334).duration="auto" (#51637).on_episode_end (#52252).🔨 Fixes
🏗 Architecture refactoring
EnvRunner (optional) (#52091).💫 Enhancements
🔨 Fixes
DurationText component (#52395).Many thanks to all those who contributed to this release! @samhallam-reverb, @vickytsang, @anyadontfly, @zhaoch23, @bryant1410, @khluu, @akyang-anyscale, @angelinalg, @RocketRider, @wingkitlee0, @robertnishihara, @liuxsh9, @KepingYan, @SumanthRH, @emmanuel-ferdman, @ashwinsnambiar, @ArturNiederfahrenhorst, @KPCOFGS, @Bye-legumes, @400Ping, @dayshah, @aslonnie, @justinvyu, @rugggg, @zhiqiwangebay, @comaniac, @thusoy, @JDarDagran, @chuang0221, @davidxia, @tnixon, @israbbani, @win5923, @leibovitzgil, @simonsays1980, @machichima, @VamshikShetty, @zcin, @lk-chen, @abrarsheikh, @edoakes, @alexeykudinkin, @ruisearch42, @tespent, @jecsand838, @sijieamoy, @can-anyscale, @JonDum, @jyakaranda, @nadongjun, @d-miketa, @MortalHappiness, @kevin85421, @Ziy1-Tan, @matthewdeng, @crypdick, @hongpeng-guo, @richardliaw, @Qiaolin-Yu, @bhmiller, @soffer-anyscale, @kenchung285, @nishi-t, @Drice1999, @ryanaoleary, @chris-ray-zhang, @MengjinYan, @saihaj, @jjyao, @jaganmolleti7, @iamjustinhsu, @fscnick, @pcmoritz, @Jay-ju, @westonpace, @han-steve, @GeneDer, @denadai2, @thomasdesr, @jaychia, @raulchen, @omatthew98, @srinathk10, @alanwguo, @rueian, @akshay-anyscale, @bveeramani, @dentiny, @dhakshin32, @kouroshHakha, @sven1977
There is no difference between 2.44.1 and 2.44.0, though we needed a patch version for other out of band reasons. To fill the awkward blankness, here
There is no difference between 2.44.1 and 2.44.0, though we needed a patch version for other out of band reasons. To fill the awkward blankness, here is a haiku about Ray:
Under screen-lit skies A ray of bliss in each patch Joy at any scale
The experimental Ray Workflows library has been deprecated and will be removed in a future version of Ray. Ray Workflows has been marked experimental…
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
override_num_blocks when reading from a HuggingFace Dataset (#50998)StandardScaler to handle NaN stats (#51281)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
additional_log_standard_attrs to serve logging config (#51144)asyncache and cachetools from dependencies (#50806)backoff dependency (#50822)asyncio_timeout from ray[llm] deps on python<3.11 (#50815)jsonref packages lazy imported (#50821)AutoscalingConfig and DeploymentConfig from Serve (#50871)pyarrow FS for cloud remote storage interaction (#50820)serve.llm (#51221)🔨 Fixes:
device_capability issue in vllm on quantized models (#51007)gen-config related data file to the package (#51347)📖 Documentation:
build_openai_app to include yaml example (#51283)💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
uv support (#51233)💫 Enhancements:
🔨 Fixes:
ray.wait on object store objects (#50680)ray.actor.exit_actor() from within an async background thread (#49451)📖 Documentation:
jemalloc profiling doc (#51031)🎉 New Features:
💫 Enhancements:
ray status -v (#51192)🔨 Fixes:
🏗 Architecture refactoring:
CoordinatorSenderNodeProvider (#51292)🎉 New Features:
🔨 Fixes:
Many thanks to all those who contributed to this release! @crypdick, @rueian, @justinvyu, @MortalHappiness, @CheyuWu, @GeneDer, @dayshah, @lk-chen, @matthewdeng, @co63oc, @win5923, @sven1977, @akshay-anyscale, @ShaochenYu-YW, @gvspraveen, @bveeramani, @jakac, @VamshikShetty, @raulchen, @PaulFenton, @elimelt, @comaniac, @qinyiyan, @ruisearch42, @nadongjun, @AndyUB, @israbbani, @hongpeng-guo, @laysfire, @alexeykudinkin, @Drice1999, @harborn, @scottsun94, @abrarsheikh, @martinbomio, @MengjinYan, @HollowMan6, @orcahmlee, @kenchung285, @csy1204, @noemotiovon, @jujipotle, @davidxia, @kevin85421, @hcc429, @edoakes, @kouroshHakha, @omatthew98, @alanwguo, @farridav, @aslonnie, @simonsays1980, @pcmoritz, @terraflops1048576, @JoshKarpel, @SumanthRH, @sijieamoy, @zcin, @can-anyscale, @akyang-anyscale, @angelinalg, @saihaj, @jjyao, @anmscale, @ryanaoleary, @dentiny, @jimmyxie-figma, @stephanie-wang, @khluu, @maofagui
These APIs are marked as alpha -- meaning they may change in future releases without a deprecation period.
ray.data.llm and ray.serve.llm. See the below notes for more details. These APIs are marked as alpha -- meaning they may change in future releases without a deprecation period.RAY_TRAIN_V2_ENABLED=1 environment variable. See the migration guide for more information.uv run that allows easily specifying Python dependencies for both driver and workers in a consistent way and enables quick iterations for development of Ray applications (#50160, 50462), check out our blog post🎉 New Features:
Processor abstraction that interoperates with existing Ray Data pipelines. This abstraction can be configured two ways:
vLLMEngineProcessorConfig, which configures vLLM to load model replicas for high throughput model inferenceHttpRequestProcessorConfig, which sends HTTP requests to an OpenAI-compatible endpoint for inference.UnionOperator (#50436)💫 Enhancements:
ShufflingBatcher onto try_combine_chunked_columns (#50296)ArrowBlockAccessor, PandasBlockAccessor (#50498)AggregateFn with AggregateFnV2, cleaning up Aggregation infrastructure (#50585)TaskDurationStats and on_execution_step callback (#50766)🔨 Fixes:
grouped_data.py docstrings (#50392)test_map_batches_async_generator (#50459)pyarrow.infer_type on datetime arrays (#50403)📖 Documentation:
🎉 New Features:
RAY_TRAIN_V2_ENABLED=1 environment variable. See the migration guide for more information.💫 Enhancements:
ray[train] extra install (#46682)🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
VLLMService: A prebuilt deployment that offers a full-featured vLLM engine integration, with support for features such as LoRA multiplexing and multimodal language models.LLMRouter: An out-of-the-box OpenAI compatible model router that can route across multiple LLM deployments.💫 Enhancements:
required_resources to REST API (#50058)🔨 Fixes:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
on_workers/env_runners_recreated callback would be called twice. (#50172)default_resource_request: aggregator actors missing in placement group for local Learner. (#50219, #50475)📖 Documentation:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
Thank you to everyone who contributed to this release! 🥳 @liuxsh9, @justinrmiller, @CheyuWu, @400Ping, @scottsun94, @bveeramani, @bhmiller, @tylerfreckmann, @hefeiyun, @pcmoritz, @matthewdeng, @dentiny, @erictang000, @gvspraveen, @simonsays1980, @aslonnie, @shorbaji, @LeoLiao123, @justinvyu, @israbbani, @zcin, @ruisearch42, @khluu, @kouroshHakha, @sijieamoy, @SergeCroise, @raulchen, @anson627, @bluenote10, @allenyin55, @martinbomio, @rueian, @rynewang, @owenowenisme, @Betula-L, @alexeykudinkin, @crypdick, @jujipotle, @saihaj, @EricWiener, @kevin85421, @MengjinYan, @chris-ray-zhang, @SumanthRH, @chiayi, @comaniac, @angelinalg, @kenchung285, @tanmaychimurkar, @andrewsykim, @MortalHappiness, @sven1977, @richardliaw, @omatthew98, @fscnick, @akyang-anyscale, @cristianjd, @Jay-ju, @spencer-p, @win5923, @wxsms, @stfp, @letaoj, @JDarDagran, @jjyao, @srinathk10, @edoakes, @vincent0426, @dayshah, @davidxia, @DmitriGekhtman, @GeneDer, @HYLcool, @gameofby, @can-anyscale, @ryanaoleary, @eddyxu
## Ray Data 🔨 Fixes: - Fixes incorrect assertion
🔨 Fixes:
Deprecated num_rows_per_file in favor of min_rows_per_file
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🗑️ Deprecations:
💫 Enhancements:
📖 Documentation:
💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
AddTimeDimToBatchAndZeroPad and AddStatesFromEpisodesToBatch) (#49835)🔨 Fixes:
replay-ratio=0 (fixes a memory leak). (#49964)📖 Documentation:
training_step(). (#49976)TargetNetAPI) (#49825)💫 Enhancements:
🔨 Fixes:
🔨 Fixes:
Thank you to everyone who contributed to this release! 🥳 @wingkitlee0, @saihaj, @win5923, @justinvyu, @kevin85421, @edoakes, @cristianjd, @rynewang, @richardliaw, @LeoLiao123, @alexeykudinkin, @simonsays1980, @aslonnie, @ruisearch42, @pcmoritz, @fscnick, @bveeramani, @mattip, @till-m, @tswast, @ujjawal-khare, @wadhah101, @nikitavemuri, @akshay-anyscale, @srinathk10, @zcin, @dayshah, @dentiny, @LydiaXwQ, @matthewdeng, @JoshKarpel, @MortalHappiness, @sven1977, @omatthew98
Major update of RLlib docs and example scripts for the new API stack.
🎉 New Features:
partition_cols in write_parquet (#49411)💫 Enhancements:
ValueError when the data sort key is None (#48969)hudi version to 0.2.0 (#48875)webdataset: expand JSON objects into individual samples (#48673)ExecutionCallback interface (#49205)select_columns and rename_columns use Project operator (#49393)🔨 Fixes:
map_groups (#48907)read_sql (#48923)webdataset: flatten return args (#48674)numpy > 2.0.0 behaviour in _create_possibly_ragged_ndarray (#48064)DataContext sealing for multiple datasets. (#49096)to_tf for List types (#49139)on_write_completes (#49251)groupby hang when value contains np.nan (#49420)file_extensions doesn't work with compound extensions (#49244)🎉 New Features:
💫 Enhancements:
🏗 Architecture refactoring:
get_network_params implementation (#49019)🎉 New Features:
optuna_search to allow users to configure optuna storage (#48547)🏗 Architecture refactoring:
💫 Enhancements:
pickle.dumps for faster serialization from proxy to replica (#49539)🔨 Fixes:
ray.init() is called multiple times with different runtime_envs (#49074)🗑️ Deprecations:
RAY_SERVE_RUN_SYNC_IN_THREADPOOL=1. (#48897)🎉 New Features:
💫 Enhancements:
EpisodeReplayBuffer. (#48116)SampleBatch data and fully compressed observations. (#48699)OfflineData. (#49015)AggregatorActors per Learner. (#49284)tuned_examples). (#49068)📖 Documentation:
RLModule page. (#49387)package_ref page for algo configs. (#49464)🔨 Fixes:
on_episode_created callback to SingleAgentEnvRunner. (#49487)train_batch_size_per_learner problems. (#49715)🏗 Architecture refactoring:
Default[algo]RLModule classes (#49366, #49368)ormsgpack (#49489)🗑️ Deprecations:
💫 Enhancements:
task_name, task_function_name and actor_name in Structured Logging (#48703)nsight.nvtx profiling (#49392)🔨 Fixes:
WORKER_OBJECT_EVICTION when the object is out of scope or manually freed (#47990).whl file (#48560)💫 Enhancements:
📖 Documentation:
DaemonSet and Grafana Loki to "Persist KubeRay Operator Logs" (#48725)Dashboard
💫 Enhancements:
RAY_PROMETHEUS_HEADERS env for carrying additional headers to Prometheus (#49353)RAY_PROMETHEUS_HEADERS env for carrying additional headers to Prometheus (#49700)🏗 Architecture refactoring:
memray dependency from default to observability (#47763)StateHead's methods into free functions. (#49388)@raulchen, @alanwguo, @omatthew98, @xingyu-long, @tlinkin, @yantzu, @alexeykudinkin, @andrewsykim, @win5923, @csy1204, @dayshah, @richardliaw, @stephanie-wang, @gueraf, @rueian, @davidxia, @fscnick, @wingkitlee0, @KPostOffice, @GeneDer, @MengjinYan, @simonsays1980, @pcmoritz, @petern48, @kashiwachen, @pfldy2850, @zcin, @scottjlee, @Akhil-CM, @Jay-ju, @JoshKarpel, @edoakes, @ruisearch42, @gorloffslava, @jimmyxie-figma, @bthananjeyan, @sven1977, @bnorick, @jeffreyjeffreywang, @ravi-dalal, @matthewdeng, @angelinalg, @ivanthewebber, @rkooo567, @srinathk10, @maresb, @gvspraveen, @akyang-anyscale, @mimiliaogo, @bveeramani, @ryanaoleary, @kevin85421, @richardsliu, @hartikainen, @coltwood93, @mattip, @Superskyyy, @justinvyu, @hongpeng-guo, @ArturNiederfahrenhorst, @jecsand838, @Bye-legumes, @hcc429, @WeichenXu123, @martinbomio, @HollowMan6, @MortalHappiness, @dentiny, @zhe-thoughts, @anyadontfly, @smanolloff, @richo-anyscale, @khluu, @xushiyan, @rynewang, @japneet-anyscale, @jjyao, @sumanthratna, @saihaj, @aslonnie
Many thanks to all those who contributed to this release!
Deprecated read_parquet_bulk https://github.com/ray-project/ray/pull/48691
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🗑️ Deprecations:
🔨 Fixes:
📖 Documentation:
🔨 Fixes:
clear_checkpoint function during Trial restoration error handling. (#48532)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
rllib_contrib from repo. (#48565)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🔨 Fixes:
💫 Enhancements:
🔨 Fixes:
Thanks to all those who contributed to this release! @rynewang, @rickyyx, @bveeramani, @marwan116, @simonsays1980, @dayshah, @dentiny, @KepingYan, @mimiliaogo, @kevin85421, @SeaOfOcean, @stephanie-wang, @mohitjain2504, @azayz, @xushiyan, @richardliaw, @can-anyscale, @xingyu-long, @kanwang, @aslonnie, @MortalHappiness, @jjyao, @SumanthRH, @matthewdeng, @alexeykudinkin, @sven1977, @raulchen, @andrewsykim, @zcin, @nadongjun, @hongpeng-guo, @miguelteixeiraa, @saihaj, @khluu, @ArturNiederfahrenhorst, @ryanaoleary, @ltbringer, @pcmoritz, @JoshKarpel, @akyang-anyscale, @frances720, @BeingGod, @edoakes, @Bye-legumes, @Superskyyy, @liuxsh9, @MengjinYan, @ruisearch42, @scottjlee, @angelinalg
Removed long-deprecated set_progress_bars
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🗑 Deprecations:
🔨 Fixes:
pyarrow.fs.S3FileSystem (#48216)🔨 Fixes:
pyarrow.fs.S3FileSystem (#48216)💫 Enhancements:
🔨 Fixes:
📖 Documentation:
💫 Enhancements:
📖 Documentation:
EnvRunners (using MetricsLogger API on the new stack). (#47969)🏗 Architecture refactoring:
recreate_failed_env_runners=False to True). (#48286)🔨 Fixes:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🔨 Fixes:
Many thanks to all those who contributed to this release!
@akyang-anyscale, @rkooo567, @bveeramani, @dayshah, @martinbomio, @khluu, @justinvyu, @slfan1989, @alexeykudinkin, @simonsays1980, @vigneshka, @ruisearch42, @rynewang, @scottjlee, @jjyao, @JoshKarpel, @win5923, @MengjinYan, @MortalHappiness, @ujjawal-khare-27, @zcin, @ccoulombe, @Bye-legumes, @dentiny, @stephanie-wang, @LeoLiao123, @dengwxn, @richo-anyscale, @pcmoritz, @sven1977, @omatthew98, @GeneDer, @srinathk10, @can-anyscale, @edoakes, @kevin85421, @aslonnie, @jeffreyjeffreywang, @ArturNiederfahrenhorst
Remove deprecated mosaic and sklearn trainer code
🎉 New Features:
Dataset.rename_columns (#47906)💫 Enhancements:
partitioning parameter to read_parquet (#47553)SERVICE_UNAVAILABLE to list of retried transient errors (#47673)OpRuntimeMetrics to support properties (#47800)plan_write_op and Datasinks (#47942)PhysicalOperator to its LogicalOperator (#47986)num_cpus and num_gpus for map APIs (#47995)Rules (#48039)🔨 Fixes:
map_batches (#47696)num_gpus provide to Ray Data is appropriately passed to ray.remote call (#47768)write_xxx APIs (#48096)📖 Documentation:
🏗 Architecture refactoring:
🔨 Fixes:
🔨 Fixes:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🏗 Architecture refactoring:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
ObjectRef (#47544)🔨 Fixes:
ray_tasks{State="PENDING_ARGS_FETCH"} metric counting (#47770)sync_reactors_.find(reactor->GetRemoteNodeID()) == sync_reactors_.end() (#47861)RAY_CHECK(it != current_tasks_.end()); (#47659)📖 Documentation:
💫 Enhancements:
🔨 Fixes:
Many thanks to all those who contributed to this release! @GeneDer, @rkooo567, @dayshah, @saihaj, @nikitavemuri, @bill-oconnor-anyscale, @WeichenXu123, @can-anyscale, @jjyao, @edoakes, @kekulai-fredchang, @bveeramani, @alexeykudinkin, @raulchen, @khluu, @sven1977, @ruisearch42, @dentiny, @MengjinYan, @Mark2000, @simonsays1980, @rynewang, @PatricYan, @zcin, @sofianhnaide, @matthewdeng, @dlwh, @scottjlee, @MortalHappiness, @kevin85421, @win5923, @aslonnie, @prithvi081099, @richardsliu, @milesvant, @omatthew98, @Superskyyy, @pcmoritz
Simplify custom metadata provider API
💫 Enhancements:
🔨 Fixes:
plan_read_op (#47456)💫 Enhancements:
TrainRunInfo (#46875)💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
GeneralAdvantageEstimation connector in learner pipeline. (#47532)SelfSupervisedLossAPI for RLModules that bring their own loss and InferenceOnlyAPI. (#47581, #47572)💫 Enhancements:
🔨 Fixes:
📖 Documentation:
Many thanks to all those who contributed to this release! @ruisearch42, @andrewsykim, @timkpaine, @rkooo567, @WeichenXu123, @GeneDer, @sword865, @simonsays1980, @angelinalg, @sven1977, @jjyao, @woshiyyya, @aslonnie, @zcin, @omatthew98, @rueian, @khluu, @justinvyu, @bveeramani, @nikitavemuri, @chris-ray-zhang, @liuxsh9, @xingyu-long, @peytondmurray, @rynewang
Fix broken dashboard cluster page when there are dead nodes
🔨 Fixes:
Remove limit on number of tasks launched per scheduling step
💫 Enhancements:
🔨 Fixes:
arrow_parquet_args aren't used (#47161)read_json() (#47378)Datasource in read_datasource() (#47467)from_*_operator modules (#47457)AWS ACCESS_DENIED as retryable exception for multi-node Data+Train benchmarks (#47232)read_images_comparison_microbenchmark_single_node release test (#47228)📖 Documentation:
Dataset.deserialize_lineage (#47203)map_batches with default batch_size (#47433)💫 Enhancements:
🔨 Fixes:
📖 Documentation:
📖 Documentation:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
📖 Documentation:
🏗 Architecture refactoring:
🔨 Fixes:
💫 Enhancements:
🔨 Fixes:
🔨 Fixes:
💫 Enhancements:
make local.Many thanks to all those who contributed to this release! @GeneDer, @Bye-legumes, @nikitavemuri, @kevin85421, @MortalHappiness, @LeoLiao123, @saihaj, @rmcsqrd, @bveeramani, @zcin, @matthewdeng, @raulchen, @mattip, @jjyao, @ruisearch42, @scottjlee, @can-anyscale, @khluu, @aslonnie, @rynewang, @edoakes, @zhanluxianshen, @venkatram-dev, @c21, @allenyin55, @alexeykudinkin, @snehakottapalli, @BitPhinix, @hongchaodeng, @dengwxn, @liuxsh9, @simonsays1980, @peytondmurray, @KepingYan, @bryant1410, @woshiyyya, @sven1977
Deprecate passing arguments that contain DeploymentResponses in nested objects to downstream deployment handle calls
Notice: Starting from this release, pip install ray[all] will not include ray[cpp], and will not install the respective ray-cpp package. To install everything that includes ray-cpp, one can use pip install ray[cpp-all] instead.
🎉 New Features:
💫 Enhancements:
size_bytes from metadata and consolidate metadata methods (#46862)_internal subpackage (#46825)🔨 Fixes:
DataContext.retried_io_errors from tuple to list (#46884)Object Store Memory metrics on Ray Data Dashboard (#47170)📖 Documentation:
Rule.plan (#47094)💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
🏗 Architecture refactoring:
DeploymentResponses in nested objects to downstream deployment handle calls (#46806)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
esbonio section🔨 Fixes:
Many thanks to all those who contributed to this release! @simonsays1980, @bveeramani, @tungh2, @zcin, @xingyu-long, @WeichenXu123, @aslonnie, @MaxVanDijck, @can-anyscale, @galenhwang, @omatthew98, @matthewdeng, @raulchen, @sven1977, @shrekris-anyscale, @deepyaman, @alexeykudinkin, @stephanie-wang, @kevin85421, @ruisearch42, @hongchaodeng, @khluu, @alanwguo, @hongpeng-guo, @saihaj, @Superskyyy, @tespent, @slfan1989, @justinvyu, @rynewang, @nikitavemuri, @amogkam, @mattip, @dev-goyal, @ryanaoleary, @peytondmurray, @edoakes, @venkatajagannath, @jjyao, @cristianjd, @scottjlee, @Bye-legumes
Move DQN into the TargetNetworkAPI (and deprecate RLModuleWithTargetNetworksInterface).
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
RLModuleWithTargetNetworksInterface). (#46752)🔨 Fixes:
📖 Documentation:
🏗 Architecture refactoring:
🏗 Architecture refactoring:
Many thanks to all those who contributed to this release! @KyleKoon, @ruisearch42, @rynewang, @sven1977, @saihaj, @aslonnie, @bveeramani, @akshay-anyscale, @kevin85421, @omatthew98, @anyscalesam, @MaxVanDijck, @justinvyu, @simonsays1980, @can-anyscale, @peytondmurray, @scottjlee
Deprecate Dataset.get_internal_block_refs()
💫 Enhancements:
🔨 Fixes:
🎉 New Features:
💫 Enhancements:
BlockRefs in-memory (#46369)ProgressBar totals (#46601)🔨 Fixes:
📖 Documentation:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🔨 Fixes:
🎉 New Features:
target_num_ongoing_requests_per_replica and max_concurrent_queries, respectively replaced by max_ongoing_requests and target_ongoing_requests (#46392 and #46427)💫 Enhancements:
batch_mode=complete_episodes to synchronous_parallel_sample. (#46321)🏗 Architecture refactoring:
🔨 Fixes:
📖 Documentation:
🔨 Fixes:
Many thanks to all those who contributed to this release!
@alanwguo, @hongchaodeng, @anyscalesam, @brucebismarck, @bt2513, @woshiyyya, @terraflops1048576, @lorenzoritter, @omrishiv, @davidxia, @cchen777, @nono-Sang, @jackhumphries, @aslonnie, @JoshKarpel, @zjregee, @bveeramani, @khluu, @Superskyyy, @liuxsh9, @jjyao, @ruisearch42, @sven1977, @harborn, @saihaj, @zcin, @can-anyscale, @veekaybee, @chungen04, @WeichenXu123, @GeneDer, @sergey-serebryakov, @Bye-legumes, @scottjlee, @rynewang, @kevin85421, @cristianjd, @peytondmurray, @MortalHappiness, @MaxVanDijck, @simonsays1980, @mjovanovic9999
This is a new Ray Core specific feature called Ray accelerated DAGs (aDAGs).
This is a new Ray Core specific feature called Ray accelerated DAGs (aDAGs).
💫 Enhancements:
map_batches() (#46129)🔨 Fixes:
InputDataBuffer doesn't free block references (#46191)MapOperator.num_active_tasks should exclude pending actors (#46364)📖 Documentation:
read_api.py docstring (#45690)tfrecords_datasource (#46171)README and in ray.data.Dataset (#45345)📖 Documentation:
💫 Enhancements:
ServeController.get_app_config() (#45878)DeploymentDetails.deployment_route_prefix_not_set() (#46305)🎉 New Features:
EnvRunners). (#46216)💫 Enhancements:
EnvRunners (and callbacks). (#46294)env- and agent_steps to custom evaluation function. (#45652)🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
psutil process attr num_fds is not available on Windows (#46329)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🔨 Fixes:
📖 Documentation:
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
Nothing published for this version
Fixed bug where preserve_order doesn’t work with file reads
🔨 Fixes:
preserve_order doesn’t work with file reads (#46135)📖 Documentation:
dataset.Schema (#46170)💫 Enhancements:
💫 Enhancements:
📖 Documentation:
WARNING: the following default values will change in Ray 2.32:
max_ongoing_requests will change from 100 to 5.target_ongoing_requests will change from 1 to 2.💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
📖 Documentation:
💫 Enhancements:
🔨 Fixes:
Many thanks to all those who contributed to this release!
@jjyao, @kevin85421, @vincent-pli, @khluu, @simonsays1980, @sven1977, @rynewang, @can-anyscale, @richardsliu, @jackhumphries, @alexeykudinkin, @bveeramani, @ruisearch42, @shrekris-anyscale, @stephanie-wang, @matthewdeng, @zcin, @hongchaodeng, @ryanaoleary, @liuxsh9, @GeneDer, @aslonnie, @peytondmurray, @Bye-legumes, @woshiyyya, @scottjlee, @JoshKarpel
Improve fractional CPU/GPU formatting
💫 Enhancements:
💫 Enhancements:
💫 Enhancements:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
Many thanks to all those who contributed to this release: @liuxsh9, @peytondmurray, @pcmoritz, @GeneDer, @saihaj, @khluu, @aslonnie, @yucai, @vickytsang, @can-anyscale, @bthananjeyan, @raulchen, @hongchaodeng, @x13n, @simonsays1980, @peterghaddad, @kevin85421, @rynewang, @angelinalg, @jjyao, @BenWilson2, @jackhumphries, @zcin, @chris-ray-zhang, @c21, @shrekris-anyscale, @alanwguo, @stephanie-wang, @Bye-legumes, @sven1977, @WeichenXu123, @bveeramani, @nikitavemuri
Improve excessive syncing warning and deprecate TUNE_RESULT_DIR, RAY_AIR_LOCAL_CACHE_DIR, local_dir
🎉 New Features:
💫 Enhancements:
📖 Documentation:
🏗 Architecture refactoring:
💫 Enhancements:
📖 Documentation:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
--object-store-memory to describe how the default value is set (#45301)🔨 Fixes:
Many thanks to all those who contributed to this release: @maxliuofficial, @simonsays1980, @GeneDer, @dudeperf3ct, @khluu, @justinvyu, @andrewsykim, @Catch-Bull, @zcin, @bveeramani, @rynewang, @angelinalg, @matthewdeng, @jjyao, @kira-lin, @harborn, @hongchaodeng, @peytondmurray, @aslonnie, @timkpaine, @982945902, @maxpumperla, @stephanie-wang, @ruisearch42, @alanwguo, @can-anyscale, @c21, @Atry, @KamenShah, @sven1977, @raulchen
Fix result dict “spam” (duplicate, deprecated keys, e.g. “sampler_results” dumped into top level).
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🔨 Fixes:
🔨 Fixes:
💫 Enhancements:
tuned_examples learning test for new API stack are now “self-executable” (don’t require a third-party script anymore to run them). + WandB support. (#45023)🔨 Fixes:
📖 Documentation:
💫 Enhancements:
ray.util.collective support torch.bfloat16 (#39845)🔨 Fixes:
Many thanks to all those who contributed to this release: @hongchaodeng, @khluu, @antoni-jamiolkowski, @ameroyer, @bveeramani, @can-anyscale, @WeichenXu123, @peytondmurray, @jackhumphries, @kevin85421, @jjyao, @robcaulk, @rynewang, @scottsun94, @swang, @GeneDer, @zcin, @ruisearch42, @aslonnie, @angelinalg, @raulchen, @ArthurBook, @sven1977, @wuxibin89
Add function to dynamically generate ray_remote_args for Map APIs
🎉 New Features:
ray_remote_args for Map APIs (#45143)💫 Enhancements:
SplitCoordinator (#45226)🔨 Fixes:
AllToAllOperator progress bar if the disable flag is set (#45136)PyExtensionType by default (#45084)num_gpus=0 (#45202)💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
Many thanks to all those who contributed to this release: @justinvyu, @simonsays1980, @chris-ray-zhang, @kevin85421, @angelinalg, @rynewang, @brycehuang30, @alanwguo, @jjyao, @shaikhismail, @khluu, @can-anyscale, @bveeramani, @jrosti, @WeichenXu123, @MortalHappiness, @raulchen, @scottjlee, @ruisearch42, @aslonnie, @alexeykudinkin
Remove deprecated ray.air.callbacks modules
🎉 New features:
read_lance API to read Lance Dataset (#45106)🔨 Fixes:
📖 Documentation:
📖 Documentation:
📖 Documentation:
🏗 Architecture refactoring:
ray.air.callbacks modules (#45104)💫 Enhancements:
🔨 Fixes:
🎉 New Features:
💫 Enhancements:
EnvRunnerGroup.foreach_worker… methods to new defaults: mark_healthy=True (used to be False) and healthy_only=True (used to be False). (#44993)get_state()/from_state() methods in SingleAgent- and MultiAgentEpisodes. (#45012)🔨 Fixes:
📖 Documentation:
🔨 Fixes:
ray.init(logging_format) argument is ignored (#45037)🔨 Fixes:
Many thanks to all those who contributed to this release: @rynewang, @can-anyscale, @scottsun94, @bveeramani, @ceddy4395, @GeneDer, @zcin, @JoshKarpel, @nikitavemuri, @stephanie-wang, @jackhumphries, @matthewdeng, @yash97, @simonsays1980, @peytondmurray, @evalaiyc98, @c21, @alanwguo, @shrekris-anyscale, @kevin85421, @hongchaodeng, @sven1977, @st--, @khluu
Deprecate prefetch_batches arg of iter_rows and change default value
💫 Enhancements:
ParquetDatasource metadata prefetching (#44750)map_groups implementation to better handle large outputs (#44862)prefetch_batches arg of iter_rows and change default value (#44982)name a required argument for AggregateFn (#44880)📖 Documentation:
💫 Enhancements:
CommunicatorContext automatically (#44883)TrainStateActor (#44585)📖 Documentation:
accelerator_type (#44882)💫 Enhancements:
📖 Documentation:
💫 Enhancements:
🔨 Fixes:
🎉 New Features:
MetricsLogger, a unified API for users of RLlib to log custom metrics and stats in all of RLlib’s components (Algorithm, EnvRunners, and Learners). Rolled out for new API stack for Algorithm (training_step) and EnvRunners (custom callbacks). Learner (custom loss functions) support in progress. #44888, #44442💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
🔨 Fixes:
Thanks @can-anyscale, @hongchaodeng, @zcin, @marwan116, @khluu, @bewestphal, @scottjlee, @andrewsykim, @anyscalesam, @MortalHappiness, @justinvyu, @JoshKarpel, @woshiyyya, @rynewang, @Abirdcfly, @omatthew98, @sven1977, @marcelocarmona, @rueian, @mattip, @angelinalg, @aslonnie, @matthewdeng, @abizjakpro, @simonsays1980, @jjyao, @terraflops1048576, @hongpeng-guo, @stephanie-wang, @bw-matthew, @bveeramani, @ruisearch42, @kevin85421, @Tongruizhe
Many thanks to all those who contributed to this release!
Clarify deprecated Datasource docstrings
🎉 New Features:
💫 Enhancements:
local_read option to from_torch (#44752)🔨 Fixes:
📖 Documentation:
🔨 Fixes:
RayFSDPStrategy for lightning>2.1 (#44569)💫 Enhancements:
🔨 Fixes:
🎉 New Features:
💫 Enhancements:
model_config_dict in new API stack. (#44263)RLModule in single-agent fashion, then bring checkpoint into multi-agent setup and continue training. (#44674)examples scripts got translated from the old- to the new API stack: Curriculum learning, custom-gym-env, etc..: (#44706, #44707, #44735, #44841)🔨 Fixes:
is_running_tasks is not returning the correct value when driver starts ray (#44459)Many thanks to all those who contributed to this release! @can-anyscale, @hongpeng-guo, @sven1977, @zcin, @shrekris-anyscale, @liuxsh9, @jackhumphries, @GeneDer, @woshiyyya, @simonsays1980, @omatthew98, @andrewsykim, @n30111, @architkulkarni, @bveeramani, @aslonnie, @alexeykudinkin, @WeichenXu123, @rynewang, @matthewdeng, @angelinalg, @c21
Log a deprecation warning for local_dir and related environment variables
ray.data.read_avro🎉 New Features:
ray.data.read_avro (#43663)💫 Enhancements:
ipywidgets==7.7.2 to enable Data progress bars in VSCode Web (#44398)🔨 Fixes:
numpy.ndarray (#44236)📖 Documentation:
TFPRedictor in batch inference example (#44434)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🏗 Architecture refactoring:
BatchPredictor (#43934)💫 Enhancements:
🏗 Architecture refactoring:
🔨 Fixes:
_to_object_ref memory leak (#43763)max_ongoing_requests if max_batch_size is less than max_ongoing_requests (#43840)ModuleNotFoundError in Ray 3.10 (#44329)
sys.path behavior. Revert "[core] If there's working_dir, don't set _py_driver_sys_path." (#44435)batch_queue_cls parameter is removed from the @serve.batch decorator (#43935)🎉 New Features:
PrioritizedEpisodeReplayBuffer is available for off-policy learning using the EnvRunner API (SingleAgentEnvRunner) and supports random n-step sampling (#42832, #43258, #43458, #43496, #44262)💫 Enhancements:
examples/ folder; started moving example scripts to the new API stack (#44559, #44067, #44603)enable_async_evaluation option (in favor of existing evaluation_parallel_to_training setting). (#43787)module_for API to MultiAgentEpisode (analogous to policy_for API of the old Episode classes). (#44241)rllib_contrib old stack algorithms have been removed from rllib/algorithms (#43656)🔨 Fixes:
📖 Documentation:
🎉 New Features:
💫 Enhancements:
RayActorError to distinguish between actor died (ActorDiedError) and actor temporarily unavailable (ActorUnavailableError) cases.🔨 Fixes:
ModuleNotFound issued introduced in 2.10 (#44435)💫 Enhancements:
🔨 Fixes:
💫 Enhancements:
Many thanks to all those who contributed to this release!
@aslonnie, @brycehuang30, @MortalHappiness, @astron8t-voyagerx, @edoakes, @sven1977, @anyscalesam, @scottjlee, @hongchaodeng, @slfan1989, @hebiao064, @fishbone, @zcin, @GeneDer, @shrekris-anyscale, @kira-lin, @chappidim, @raulchen, @c21, @WeichenXu123, @marian-code, @bveeramani, @can-anyscale, @mjd3, @justinvyu, @jackhumphries, @Bye-legumes, @ashione, @alanwguo, @Dreamsorcerer, @KamenShah, @jjyao, @omatthew98, @autolisis, @Superskyyy, @stephanie-wang, @simonsays1980, @davidxia, @angelinalg, @architkulkarni, @chris-ray-zhang, @kevin85421, @rynewang, @peytondmurray, @zhangyilun, @khluu, @matthewdeng, @ruisearch42, @pcmoritz, @mattip, @jerome-habana, @alexeykudinkin
Deprecate legacy components and classes (#43575, #43178, #43347, #43349, #43342, #43341, #42936, #43144, #43022, #43023)
Ray 2.10 release brings important stability improvements and enhancements to Ray Data, with Ray Data becoming generally available (GA).
num_replicas=”auto” (#42613).max_queued_requests (#42950).max_ongoing_requests (max_concurrent_queries) is also now strictly enforced (#42947).RAY_SERVE_ENABLE_QUEUE_LENGTH_CACHE=0.max_concurrent_queries -> max_ongoing_requeststarget_num_ongoing_requests_per_replica -> target_ongoing_requestsdownscale_smoothing_factor -> downscaling_factorupscale_smoothing_factor -> upscaling_factorScalingConfig(accelerator_type).XGBoostTrainer and LightGBMTrainer to no longer depend on xgboost_ray and lightgbm_ray. A new, more flexible API will be released in a future release.local_dir and RAY_AIR_LOCAL_CACHE_DIR.🎉 New Features:
num_rows_per_file parameter to file-based writes (#42694)DataIterator.materialize (#43210)DataIterator.to_tf if tf.TypeSpec is provided (#42917)Dataset.write_bigquery (#42584)💫 Enhancements:
ImageDatasource to use Image.BILINEAR as the default image resampling filter (#43484)ray.data.from_huggingface (#42599)Stage class and related usages (#42685)🔨 Fixes:
OutputSplitter (#43740)OpBufferQueue (#43015)Limit operators. (#42958)Dataset.streaming_split for job hanging (#42601)📖 Documentation:
🎉 New Features:
ScalingConfig(accelerator_type) for improved worker scheduling (#43090)💫 Enhancements:
train_func for setup/teardown logic (#43209)DEFAULT_NCCL_SOCKET_IFNAME to simplify network configuration (#42808)🔨 Fixes:
memory resource requirements (#42999)Path.as_posix over os.path.join (#42037)RayFSDPStrategy (#43594)RayTrainReportCallback (#42751)get_latest_checkpoint returns None (#42953)📖 Documentation:
train_loop_config (#43691)ray.train.report docstring that it is not a barrier (#42422)prepare_data_loader shuffle behavior and set_epoch (#41807)🏗 Architecture refactoring:
XGBoostTrainer and LightGBMTrainer as DataParallelTrainer. Removed dependency on xgboost_ray and lightgbm_ray. (#42111, #42767, #43244, #43424)local_dir and RAY_AIR_LOCAL_CACHE_DIR. Add isolation between driver and distributed worker artifacts so that large files written by workers are not uploaded implicitly. Results are now only written to storage_path, rather than having another copy in the user’s home directory (~/ray_results). (#43369, #43403, #43689)ray.train.torch.get_device into another get_devices API for multi-GPU worker setup (#42314)storage_path (#42853, #43179)SyncConfig (#42909)preprocessor argument from Trainers (#43146, #43234)MosaicTrainer and remove SklearnTrainer (#42814)💫 Enhancements:
TBXLogger for logging images (#37822)Experiment(config) to handle RLlib AlgorithmConfig (#42816, #42116)🔨 Fixes:
reuse_actors error on actor cleanup for function trainables (#42951)os.path.join (#42037)📖 Documentation:
🏗 Architecture refactoring:
local_dir and RAY_AIR_LOCAL_CACHE_DIR. Add isolation between driver and distributed worker artifacts so that large files written by workers are not uploaded implicitly. Results are now only written to storage_path, rather than having another copy in the user’s home directory (~/ray_results). (#43369, #43403, #43689)SyncConfig and chdir_to_trial_dir (#42909)storage_path (#42853, #43179)NevergradSearch (#42305)checkpoint_dir and reporter deprecation notices (#42698)🎉 New Features:
max_queued_requests (#42950).num_replicas=”auto” (#42613).🏗 API Changes:
max_concurrent_queries to max_ongoing_requeststarget_num_ongoing_requests_per_replica to target_ongoing_requestsdownscale_smoothing_factor to downscaling_factorupscale_smoothing_factor to upscaling_factormax_ongoing_requests will change from 100 to 5.target_ongoing_requests will change from 1 to 2.💫 Enhancements:
RAY_SERVE_LOG_ENCODING env to set the global logging behavior for Serve (#42781).max_ongoing_requests (max_concurrent_queries) is also now strictly enforced (#42947).RAY_SERVE_ENABLE_QUEUE_LENGTH_CACHE=0.max_ongoing_requests=1 for autoscaling deployments and still upscale properly, because requests queued at handles are properly taken into account for autoscaling.RAY_SERVE_COLLECT_AUTOSCALING_METRICS_ON_HANDLE=0RAY_SERVE_EAGERLY_START_REPLACEMENT_REPLICAS=0🔨 Fixes:
KeyError on disconnects (#43713).📖 Documentation:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
policy_to_train logic (#41529), fix multi-APU for PPO on the new API stack. (#44001), Issue 40347: (#42090)📖 Documentation:
🎉 New Features:
💫 Enhancements:
get_task() now accepts ObjectRef (#43507)🔨 Fixes:
📖 Documentation:
💫 Enhancements:
heap_memory param for setup_ray_cluster API, and change default value of per ray worker node config, and change default value of ray head node config for global Ray cluster (#42604)🔨 Fixes:
Many thanks to all those who contributed to this release!
@ronyw7, @xsqian, @justinvyu, @matthewdeng, @sven1977, @thomasdesr, @veryhannibal, @klebster2, @can-anyscale, @simran-2797, @stephanie-wang, @simonsays1980, @kouroshHakha, @Zandew, @akshay-anyscale, @matschaffer-roblox, @WeichenXu123, @matthew29tang, @vitsai, @Hank0626, @anmyachev, @kira-lin, @ericl, @zcin, @sihanwang41, @peytondmurray, @raulchen, @aslonnie, @ruisearch42, @vszal, @pcmoritz, @rickyyx, @chrislevn, @brycehuang30, @alexeykudinkin, @vonsago, @shrekris-anyscale, @andrewsykim, @c21, @mattip, @hongchaodeng, @dabauxi, @fishbone, @scottjlee, @justina777, @surenyufuz, @robertnishihara, @nikitavemuri, @Yard1, @huchen2021, @shomilj, @architkulkarni, @liuxsh9, @Jocn2020, @liuyang-my, @rkooo567, @alanwguo, @KPostOffice, @woshiyyya, @n30111, @edoakes, @y-abe, @martinbomio, @jiwq, @arunppsg, @ArturNiederfahrenhorst, @kevin85421, @khluu, @JingChen23, @masariello, @angelinalg, @jjyao, @omatthew98, @jonathan-anyscale, @sjoshi6, @gaborgsomogyi, @rynewang, @ratnopamc, @chris-ray-zhang, @ijrsvt, @scottsun94, @raychen911, @franklsf95, @GeneDer, @madhuri-rai07, @scv119, @bveeramani, @anyscalesam, @zen-xu, @npuichigo
Fix protobuf breaking change by adding a compat layer.
This patch release contains fixes for Ray Core, Ray Data, and Ray Serve.
🔨 Fixes:
🔨 Fixes:
schema call in to_tf if tf.TypeSpec is provided (#42917)🔨 Fixes:
Many thanks to all those who contributed to this release!
@rynewang, @GeneDer, @alexeykudinkin, @edoakes, @c21, @rkooo567
This patch release contains fixes for Ray Core, Ray Data, and Ray Serve.
This patch release contains fixes for Ray Core, Ray Data, and Ray Serve.
🔨 Fixes:
🔨 Fixes:
ParquetDatasource._estimate_files_encoding_ratio() (https://github.com/ray-project/ray/pull/42759) (https://github.com/ray-project/ray/pull/42774)🔨 Fixes:
Many thanks to all those who contributed to this release!
@c21, @raulchen, @can-anyscale, @edoakes, @peytondmurray, @scottjlee, @aslonnie, @architkulkarni, @GeneDer, @Zandew, @sihanwang41
This patch release contains fixes for Ray Core, Ray Data, and Ray Serve.
This patch release contains fixes for Ray Core, Ray Data, and Ray Serve.
🔨 Fixes:
🔨 Fixes:
🔨 Fixes:
Your coding agent can read these notes before it upgrades. Set up the MCP server →