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
Upgrade grpc from 1.50.2 to 1.57.1 to include security fixes
🎉 New Features:
concurrency argument to replace ComputeStrategy in map-like APIs (#41461)map_groups (#40778)💫 Enhancements:
OpState.outqueue_num_blocks (#41748)StreamingOutputsBackpressurePolicy (#41637)ConcurrencyCapBackpressurePolicy._cap_multiplier to be set to 1.0 (#41222)StatsManager to manage _StatsActor remote calls (#40913)max_retry_cnt parameter for BigQuery Write (#41163)🔨 Fixes:
Dataset.context not being sealed after creation (#41569)DataContext is not propagated when using streaming_split (#41473)BigQueryDatasource fault tolerance bugs (#40986)📖 Documentation:
ray.data.read_databricks_tables doc (#41366)read_json docs example for setting PyArrow block size when reading large files (#40533)AllToAllAPI to dataset methods (#40842)🎉 New Features:
Result from cloud storage (#40622)💫 Enhancements:
Result.from_path (#40684)ReportCheckpointCallback to delete temporary directory (#41033)🔨 Fixes:
RayTrainReportCallback to ensure synchronous reporting. (#40875)Results properly from moved storage path (#40647)📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
Result from cloud storage (#40622)💫 Enhancements:
🔨 Fixes:
Results properly from moved storage path (#40647)📖 Documentation:
MLflowLoggerCallback and setup_mlflow (#37854)🏗 Architecture refactoring:
TuneClient/TuneServer APIs (#41469)Searchers (#41414)air.remote_storage, etc.) (#40207)🎉 New Features:
💫 Enhancements:
__del__ in the deployment to execute custom clean up steps.🔨 Fixes:
🎉 New Features:
MultiAgentEpisode class introduced. Basis for upcoming multi-agent EnvRunner, which will replace RolloutWorker APIs. (#40263, #40799)SingleAgentEnvRunner (w/o Policy/RolloutWorker APIs). CI learning tests added. (#39732, #41074, #41075)on_workers_recreated callback to Algorithm, which is triggered after workers have failed and been restarted. (#40354)💫 Enhancements:
rllib_contrib cleanups: #40939, #40744, #40789, #40444, #37271🔨 Fixes:
AlgorithmConfig.rl_module_spec was NOT a “@property” yet) breaks when trying to load from this checkpoint. (#41157)📖 Documentation:
🎉 New Features:
ObjectRefGenerator -> “DynamicObjectRefGenerator”💫 Enhancements:
__ray_call__ default actor method (#41534)🔨 Fixes:
💫 Enhancements:
🔨 Fixes:
run_init for TPU command runner📖Documentation:
💫 Enhancements:
🎉 New Features:
Many thanks to all those who contributed to this release!
@justinvyu, @zcin, @avnishn, @jonathan-anyscale, @shrekris-anyscale, @LeonLuttenberger, @c21, @JingChen23, @liuyang-my, @ahmed-mahran, @huchen2021, @raulchen, @scottjlee, @jiwq, @z4y1b2, @jjyao, @JoshTanke, @marxav, @ArturNiederfahrenhorst, @SongGuyang, @jerome-habana, @rickyyx, @rynewang, @batuhanfaik, @can-anyscale, @allenwang28, @wingkitlee0, @angelinalg, @peytondmurray, @rueian, @KamenShah, @stephanie-wang, @bryanjuho, @sihanwang41, @ericl, @sofianhnaide, @RaffaGonzo, @xychu, @simonsays1980, @pcmoritz, @aslonnie, @WeichenXu123, @architkulkarni, @matthew29tang, @larrylian, @iycheng, @hongchaodeng, @rudeigerc, @rkooo567, @robertnishihara, @alanwguo, @emmyscode, @kevin85421, @alexeykudinkin, @michaelhly, @ijrsvt, @ArkAung, @mattip, @harborn, @sven1977, @liuxsh9, @woshiyyya, @hahahannes, @GeneDer, @vitsai, @Zandew, @evalaiyc98, @edoakes, @matthewdeng, @bveeramani
One column per quarter.
Additional context can be found here: https://www.anyscale.com/blog/update-on-ray-cves-cve-2023-6019-cve-2023-6020-cve-2023-6021-cve-2023-48022-cve-20…
The Ray 2.8.1 patch release contains fixes for the Ray Dashboard.
Additional context can be found here: https://www.anyscale.com/blog/update-on-ray-cves-cve-2023-6019-cve-2023-6020-cve-2023-6021-cve-2023-48022-cve-2023-48023
🔨 Fixes:
[core][state][log] Cherry pick changes to prevent state API from reading files outside the Ray log directory (#41520) [Dashboard] Migrate Logs page to use state api. (#41474) (#41522)
In Ray Serve, we are deprecating the previously experimental DAG API for deployment graphs. Model composition will be supported through deployment han…
This release features stability improvements and API clean-ups across the Ray libraries.
rllib_contrib (still available within RLlib for Ray 2.8).🎉 New Features:
Dataset.map and Dataset.flat_map (#40010)💫Enhancements:
DatasetPipeline (#40129)BulkExecutor code path (#40200)Dataset parameters and methods (#40385)_StatsActor (#40118)Dataset.unique() (#40016)sample_boundaries in SortTaskSpec (#39581)🔨 Fixes:
_StatsActor errors with PandasBlock (#40481)do_write (#40422)get_object_locations for metrics (#39884).pieces with updated .fragments (#39523)Preprocessor that have been fit in older versions (#39173)convert_udf_returns_to_numpy (#39188)RefBundles (#39016)📖Documentation:
🎉 New Features:
💫Enhancements:
pytorch_lightning and lightning (#39841, #40266)DataContext to RayTrainWorkers (#40116)🔨 Fixes:
📖Documentation:
🏗 Architecture refactoring:
LightningTrainer, AccelerateTrainer, `TransformersTrainer (#40163)DatasetConfig (#39963)DatasetPipeline (#40159)💫Enhancements:
Tuner.restore() is called on an instance (#39676)
🏗 Architecture refactoring:💫Enhancements:
8265.52365) is deprecated. The support will be removed in a future version.InputNode and DAGDriverDeployment.deploy(), Deployment.delete(), Deployment.get_handle()serve.get_deployment and serve.list_deployments🔨 Fixes:
dedicated_cpu and detached options in serve.start() have been fully disallowed.grpc_options on serve.start() was only allowing a gRPCOptions object in Ray 2.7.0. Dictionaries are now allowed to be used asgrpc_options in the serve.start() call.💫Enhancements:
rllib_contrib algorithms (A2C, A3C, AlphaStar #36584, AlphaZero #36736, ApexDDPG #36596, ApexDQN #36591, ARS #36607, Bandits #36612, CRR #36616, DDPG, DDPPO #36620, Dreamer(V1), DT #36623, ES #36625, LeelaChessZero #36627, MA-DDPG #36628, MAML, MB-MPO #36662, PG #36666, QMix #36682, R2D2, SimpleQ #36688, SlateQ #36710, and TD3 #36726) all produce warnings now if used. See here for more information on the rllib_contrib efforts. (36620, 36628, 3🔨 Fixes:
🎉 New Features:
ray start --runtime-env-agent-port is officially supported. (#39919)🔨 Fixes:
📖Documentation:
💫Enhancements:
📖Documentation:
🔨 Fixes:
🎉 New Features:
Many thanks to all who contributed to this release!
@scottjlee, @chappidim, @alexeykudinkin, @ArturNiederfahrenhorst, @stephanie-wang, @chaowanggg, @peytondmurray, @maxpumperla, @arvind-chandra, @iycheng, @JalinWang, @matthewdeng, @wfangchi, @z4y1b2, @alanwguo, @Zandew, @kouroshHakha, @justinvyu, @yuanchen8911, @vitsai, @hongchaodeng, @allenwang28, @caozy623, @ijrsvt, @omus, @larrylian, @can-anyscale, @joncarter1, @ericl, @lejara, @jjyao, @Ox0400, @architkulkarni, @edoakes, @raulchen, @bveeramani, @sihanwang41, @WeichenXu123, @zcin, @Codle, @dimakis, @simonsays1980, @cadedaniel, @angelinalg, @luv003, @JingChen23, @xwjiang2010, @rynewang, @Yicheng-Lu-llll, @scrivy, @michaelhly, @shrekris-anyscale, @xxnwj, @avnishn, @woshiyyya, @aslonnie, @amogkam, @krfricke, @pcmoritz, @liuyang-my, @jonathan-anyscale, @rickyyx, @scottsun94, @richardliaw, @rkooo567, @stefanbschneider, @kevin85421, @c21, @sven1977, @GeneDer, @matthew29tang, @RocketRider, @LaynePeng, @samhallam-reverb, @scv119, @huchen2021
Nothing published for this version
Added an application tag to the ray_serve_num_http_error_requests metric
application tag to the ray_serve_num_http_error_requests metricError QPS per Application panel in the Ray DashboardTrial.node_ip property (#40028)ray start would occasionally fail with ValueError: acceleratorType should match v(generation)-(cores/chips).🔨 Fixes:
Error QPS per Application panel in the Ray Dashboard🔨 Fixes:
🔨 Fixes:
Thanks
Many thanks to all those who contributed to this release!
@chaowanggg, @allenwang28, @shrekris-anyscale, @GeneDer, @justinvyu, @can-anyscale, @edoakes, @architkulkarni, @rkooo567, @rynewang, @rickyyx, @sven1977
[Breaking change] ray job submit now exits with 1 if the job fails instead of 0. To get the old behavior back, you may use ray job submit ... || true…
Ray 2.7 release brings important stability improvements and enhancements to Ray libraries, with Ray Train and Ray Serve becoming generally available. Ray 2.7 is accompanied with a GA release of KubeRay.
DeploymentHandle API to unify various existing Handle APIs, a high performant gRPC proxy to serve gRPC requests through Ray Serve, along with various stability and usability improvements.Take a look at our refreshed documentation and the Ray 2.7 migration guide and let us know your feedback!
🏗 Architecture refactoring:
🎉 New Features:
Read and Map operator (zero-copy fusion) (#38789)Dataset.write_images to write images (#38228)Dataset.write_sql() to write SQL databases (#38544)Dataset.map() and flat_map() (#38606)💫Enhancements:
FileBasedDataSource (#39493)ArrowBlock building time for blocks of size 1 (#38988)partition_filter parameter to read_parquet (#38479)Dataset.take() and related methods (#38677)reader.get_read_tasks until execution (#38373)iter_batches an Iterable (#37881)Dataset.to_pandas() (#37420)Dataset.to_dask() parameter to toggle consistent metadata check (#37163)Datasource.on_write_start (#38298)DatasetDict as input into from_huggingface() (#37555)🔨 Fixes:
Preprocessor that have been fit in older versions (#39488)RefBundles (#39085)local_uri to all non-Parquet data sources (#38719)ctx parameter to Datasource.write (#38688)map_batches over empty blocks (#38161)ActorPool map_batches (#38110)tif file extension to ImageDatasource (#38129)_block_udf from FileBasedDatasource reads (#38111)📖Documentation:
🤝 API Changes
train.Checkpoint class that unifies interaction with remote storage such as S3, GS, and HDFS. The changes follow the proposal in [REP35] Consolidated persistence API for Ray Train/Tune (#38452, #38481, #38581, #38626, #38864, #38844)preprocessor arg to Trainer (#38640)Result.log_dir (#38794)💫Enhancements:
🔨 Fixes:
🏗 Architecture refactoring:
📖Documentation:
🤝 API Changes
train.Checkpoint class that unifies interaction with remote storage such as S3, GS, and HDFS. The changes follow the proposal in [REP35] Consolidated persistence API for Ray Train/Tune (#38452, #38481, #38581, #38626, #38864, #38844)Result.log_dir (#38794)💫Enhancements:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
DeploymentHandle API that will replace the existing RayServeHandle and RayServeSyncHandle APIs in a future release. You are encouraged to migrate to the new API to avoid breakages in the future. To opt in, either use handle.options(use_new_handle_api=True) or set the global environment variable export RAY_SERVE_ENABLE_NEW_HANDLE_API=1. See https://docs.ray.io/en/latest/serve/model_composition.html for more details.get_app_handle that gets a handle used to send requests to an application. The API uses the new DeploymentHandle API.get_deployment_handle that gets a handle that can be used to send requests to any deployment in any application.serve.status which can be used to get the status of proxies and Serve applications (and their deployments and replicas). This is the pythonic equivalent of the CLI serve status.--reload option has been added to the serve run CLI.💫Enhancements:
serve.start and serve.run have a few small changes and deprecations in preparation for this, see https://docs.ray.io/en/latest/serve/api/index.html for details.ray_serve_num_ongoing_http_requests) to track the number of ongoing requests in each proxyRAY_SERVE_MULTIPLEXED_MODEL_ID_MATCHING_TIMEOUT_S flag to wait until the model matching.🔨 Fixes:
asyncio.Events not being removed in the long poll host: https://github.com/ray-project/ray/pull/38516.ray_serve_deployment_queued_queries wouldn’t decrement when clients disconnected: https://github.com/ray-project/ray/pull/37965.📖Documentation:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
🎉 New Features:
num_returns="dynamic" generator. The API could be used by specifying num_returns="streaming". The API has been used for Ray data and Ray serve to support streaming use cases. See the test script to learn how to use the API. The documentation will be available in a few days.💫Enhancements:
pip install ray doesn't require the Python grpcio dependency anymore.ray job submit now exits with 1 if the job fails instead of 0. To get the old behavior back, you may use ray job submit ... || true . (#38390)get_assigned_resources in pg will return the name of the original resources instead of formatted name (#37421)${ENV_VAR} now can be replaced. Previous versions only supported limited number of env vars. (#36187)🔨 Fixes:
ray start --node-ip-address=..., the driver also had to specify ray.init(_node_ip_address). Now Ray finds the node ip address automatically. (#37644)ray.init: https://github.com/ray-project/ray/issues/26019💫Enhancements:
📖Documentation:
Thanks
Many thanks to all those who contributed to this release!
@simran-2797, @can-anyscale, @akshay-anyscale, @c21, @EdwardCuiPeacock, @rynewang, @volks73, @sven1977, @alexeykudinkin, @mattip, @Rohan138, @larrylian, @DavidYoonsik, @scv119, @alpozcan, @JalinWang, @peterghaddad, @rkooo567, @avnishn, @JoshKarpel, @tekumara, @zcin, @jiwq, @nikosavola, @seokjin1013, @shrekris-anyscale, @ericl, @yuxiaoba, @vymao, @architkulkarni, @rickyyx, @bveeramani, @SongGuyang, @jjyao, @sihanwang41, @kevin85421, @ArturNiederfahrenhorst, @justinvyu, @pleaseupgradegrpcio, @aslonnie, @kukushking, @94929, @jrosti, @MattiasDC, @edoakes, @PRESIDENT810, @cadedaniel, @ddelange, @alanwguo, @noahjax, @matthewdeng, @pcmoritz, @richardliaw, @vitsai, @Michaelvll, @tanmaychimurkar, @smiraldr, @wfangchi, @amogkam, @crypdick, @WeichenXu123, @darthhexx, @angelinalg, @chaowanggg, @GeneDer, @xwjiang2010, @peytondmurray, @z4y1b2, @scottsun94, @chappidim, @jovany-wang, @jaidisido, @krfricke, @woshiyyya, @Shubhamurkade, @ijrsvt, @scottjlee, @kouroshHakha, @allenwang28, @raulchen, @stephanie-wang, @iycheng
Nothing published for this version
The Ray 2.6.3 patch release contains fixes for Ray Serve, and Ray Core streaming generators.
The Ray 2.6.3 patch release contains fixes for Ray Serve, and Ray Core streaming generators.
🔨 Fixes:
🔨 Fixes:
serve run help message (#37859) (#38018)ray_serve_deployment_queued_queries when client disconnects (#37965) (#38020)📖 Documentation:
The Ray 2.6.2 patch release contains a critical fix for ray's logging setup, as well fixes for Ray Serve, Ray Data, and Ray Job.
The Ray 2.6.2 patch release contains a critical fix for ray's logging setup, as well fixes for Ray Serve, Ray Data, and Ray Job.
🔨 Fixes:
🔨 Fixes:
request_timeout_s from Serve config to the cluster (#37884) (#37903)🔨 Fixes:
[air][doc] Update docs to reflect head node syncing deprecation #37475
The Ray 2.6.1 patch release contains a critical fix for cluster launcher, and compatibility update for Ray Serve protobuf definition with python 3.11, as well doc improvements.
⚠️ Cluster launcher in Ray 2.6.0 fails to start multi-node clusters. Please update to 2.6.1 if you plan to use 2.6.0 cluster launcher.
🔨 Fixes:
🔨 Fixes:
📖Documentation:
The DatasetPipeline API is also being deprecated in favor of Dataset with streaming execution.
@serve.batch-decorated methods can stream responses.🎉 New Features:
💫 Enhancements:
🔨 Fixes:
pg.ready() task for pending trials that end up reusing an actor (#35748)Dict[str, np.array] batches in DummyTrainer read bytes calculation (#36484)📖 Documentation:
dreambooth example (#37102)🏗 Architecture refactoring:
🎉 New Features:
Dataset.unique() (#36655, #36802)DataIterator.iter_batches() (#36842) (#37260)DataIterator.iter_batches() (#36686)ray.data.range_arrow() (#35756)💫 Enhancements:
Dataset.write_datasource() (#36134)Dataset.schema() with new execution plan optimizer (#36740)Dataset.streaming_split() (#36908)🔨 Fixes:
Dataset.streaming_split() operatorDataset.streaming_split() (#36039)Dataset.materialize() and Dataset.streaming_split() (#36092)Dataset.streaming_split() (#36919)BlockMetadata (#37119)📖 Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
code-block to testcode. (#36483)🏗 Architecture refactoring:
BatchPredictor (#36947, #37178)🔨 Fixes:
PENDING trials (#35338)📖 Documentation:
🏗 Architecture refactoring:
tune/automl (#35557)ray.tune.integration (#35160)💫 Enhancements:
@serve.batch-decorated methods can stream responses.@serve.batch settings can be reconfigured dynamically.max_concurrent_queries and tail latencies under load.🔨 Fixes:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
📖 Documentation:
Many thanks to all those who contributed to this release!
@ericl, @ArturNiederfahrenhorst, @sihanwang41, @scv119, @aslonnie, @bluecoconut, @alanwguo, @krfricke, @frazierprime, @vitsai, @amogkam, @GeneDer, @jovany-wang, @gjoliver, @simran-2797, @rkooo567, @shrekris-anyscale, @kevin85421, @angelinalg, @maxpumperla, @kouroshHakha, @Yard1, @chaowanggg, @justinvyu, @fantow, @Catch-Bull, @cadedaniel, @ckw017, @hora-anyscale, @rickyyx, @scottsun94, @XiaodongLv, @SongGuyang, @RocketRider, @stephanie-wang, @inpefess, @peytondmurray, @sven1977, @matthewdeng, @ijrsvt, @MattiasDC, @richardliaw, @bveeramani, @rynewang, @woshiyyya, @can-anyscale, @omus, @eax-anyscale, @raulchen, @larrylian, @Deegue, @Rohan138, @jjyao, @iycheng, @akshay-anyscale, @edoakes, @zcin, @dmatrix, @bryant1410, @WanNJ, @architkulkarni, @scottjlee, @JungeAlexander, @avnishn, @harisankar95, @pcmoritz, @wuisawesome, @mattip
The Ray 2.5.1 patch release adds wheels for MacOS for Python 3.11. It also contains fixes for multiple components, along with fixes for our documentat
The Ray 2.5.1 patch release adds wheels for MacOS for Python 3.11. It also contains fixes for multiple components, along with fixes for our documentation.
🔨 Fixes:
🎉 New Features:
🔨 Fixes:
Replace deprecated usage of get_runtime_context().node_id
The Ray 2.5 release features focus on a number of enhancements and improvements across the Ray ecosystem, including:
💫Enhancements:
air_verbosity against None. (#33871)RunConfig.storage_path to replace SyncConfig.upload_dir and RunConfig.local_dir. (#33463)🔨 Fixes:
test_tune_torch_get_device_gpu race condition (#35004)📖Documentation:
convert_torch_code_to_ray_air (#35224)🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
torch.save() (#35615) (#35790)📖Documentation:
🏗 Architecture refactoring:
ray.train HuggingFace modules (#35270) (#35488)🎉 New Features:
💫Enhancements:
tune.ExperimentAnalysis to pull experiment checkpoint files from the cloud if needed (#34461)🔨 Fixes:
test_tune_torch_get_device_gpu race condition (#35004)tune/execution/checkpoint_manager state serialization. (#34368)--smoke-test. (#34167)📖Documentation:
🏗 Architecture refactoring:
tabulate package (#34789)🎉 New Features:
💫Enhancements:
LongPoll updates (#34675)ClassNode and FunctionNode with Application in top-level Serve APIs (#34627)🔨 Fixes:
app_msg to empty string by default (#35646)📖Documentation:
RayServeHandle and RayServeSyncHandle docstrings & typing (#34714)🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
💫Enhancements:
example-full.yaml (#34487)📖Documentation:
pip and conda requirements files (#34071)💫Enhancements:
--err flag to query stderr logs from worker/actors instead of --suffix=err (#34300)is_head_node to state API and GcsNodeInfo (#34299)Many thanks to all those who contributed to this release!
@vitsai, @XiaodongLv, @justinvyu, @Dan-Yeh, @dependabot[bot], @alanwguo, @grimreaper, @yiwei00000, @pomcho555, @ArturNiederfahrenhorst, @maxpumperla, @jjyao, @ijrsvt, @sven1977, @Yard1, @pcmoritz, @c21, @architkulkarni, @jbedorf, @amogkam, @ericl, @jiafuzha, @clarng, @shrekris-anyscale, @matthewdeng, @gjoliver, @jcoffi, @edoakes, @ethanabrooks, @iycheng, @Rohan138, @angelinalg, @Linniem, @aslonnie, @zcin, @wuisawesome, @Catch-Bull, @woshiyyya, @avnishn, @jjyyxx, @jianoaix, @bveeramani, @sihanwang41, @scottjlee, @YQ-Wang, @mattip, @can-anyscale, @xwjiang2010, @fedassembly, @joncarter1, @robin-anyscale, @rkooo567, @DACUS1995, @simran-2797, @ProjectsByJackHe, @zen-xu, @ashahab, @larrylian, @kouroshHakha, @raulchen, @sofianhnaide, @scv119, @nathan-az, @kevin85421, @rickyyx, @Sahar-E, @krfricke, @chaowanggg, @peytondmurray, @cadedaniel
Make Keras Callback raise DeprecationWarning
Over the last few months, we have seen a flurry of innovative activity around generative AI models and large language models (LLM). To continue our effort to ensure Ray provides a pivotal compute substrate for generative AI workloads and addresses the challenges (as explained in our blog series), we have invested engineering efforts in this release to ensure that these open source LLM models and workloads are accessible to the open source community and performant with Ray.
This release includes new examples for training, batch inference, and serving with your own LLM.
ray.data.DatasetContext.get_current().execution_options.preserve_order = True.💫Enhancements:
TorchDetectionPredictor (#32199)artifact_location, run_name to MLFlow integration (#33641)*path properties to Result and ResultGrid (#33410)Preprocessor.transform lazy by default (#32872)BatchPredictor lazy (#32510, #32796)TempFileLock util (#32862)collate_fn to iter_torch_batches (#32412)Callable[[torch.Tensor], torch.Tensor] to TorchVisionTransform (#32383)DatasetIterator torch tensors to correct device (#31753)🔨 Fixes:
use_gpu with HuggingFacePredictor (#32333)Callback raise DeprecationWarning (#33775)Checkpoint.from_checkpoint as developer API (#33094)DatasetIterator backwards compability (#32526)CountVectorizer failing with big data (#32351)from_uri. (#32386)dtype type hint in DLPredictor methods (#32198)set_preprocessor (#33088)📖Documentation:
BatchPredictor.from_checkpoint to docs (#32877)🏗 Architecture refactoring:
TensorflowCheckpoint.get_model model_definition parameter (#33776)🎉 New Features:
collate_fn to Dataset.iter_torch_batches() (#32412)ignore_missing_paths in reading Datasource (#33126)💫Enhancements:
tf_schema parameter in read_tfrecords() and write_tfrecords() (#32857)TorchVisionTransform (#32383)ArrowTensorArray and ArrowVariableShapedTensorArray (#32143)🔨 Fixes:
📖Documentation:
🎉 New Features:
AccelerateTrainer (#33269)Trainer.restore API for train experiment-level fault tolerance (#31920)💫Enhancements:
Trainer.restore on errors raised by trainer.fit() (#33610)CUDA_VISIBLE_DEVICES (#33159)train.torch.get_device() (#32893)torch.distributed env vars (#32450)🔨 Fixes:
DatasetIterator, handle device_map (#32955)test_torch_trainer (#32963)test_gpu by sorting the devices (#33002)📖Documentation:
🏗 Architecture refactoring:
🎉 New Features:
OrderedDict import. (#33709)experimental/output.py (#33767)💫Enhancements:
Tuner.restore (#32317)Tuner.can_restore(path) utility for checking if an experiment exists at a path/uri (#32003)Tuner.restore usage to prepare for trainable becoming a required arg (#32912)on_experiment_end hook for the final wait of SyncCallback sync processes (#33390)remote_checkpoint_dir upon actor reuse (#32420)use_threads=False in pyarrow syncing (#32256)WandbLoggerCallback actors to finish uploading to wandb on experiment end (#33174)🔨 Fixes:
ray.data.Dataset w/o lineage captured in trial config (#33565)trial.__getstate__ (#32624)📖Documentation:
tune.run API in logging messages when using the Tuner (#33642)log_to_file doc. (#32128)🏗 Architecture refactoring:
🎉 New Features:
💫Enhancements:
log_to_stderr option to logger and improve internal logging (#33597)🔨 Fixes:
📖Documentation:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
💫Enhancements:
🎉 New Features:
🔨 Fixes:
Many thanks to all those who contributed to this release!
@zjf2012, @christy, @fyrestone, @avnishn, @scottjlee, @sijieamoy, @jjyao, @sven1977, @jamesclark-Zapata, @cadedaniel, @jovany-wang, @pcmoritz, @MaskRay, @csivanich, @augray, @wuisawesome, @Wendi-anyscale, @maxpumperla, @shawnpanda, @DmitriGekhtman, @yuduber, @gjoliver, @ju2ez, @clarkzinzow, @brycehuang30, @iycheng, @justinvyu, @dmatrix, @edoakes, @tmbdev, @scottsun94, @jianoaix, @cool-RR, @prrajput1199, @amogkam, @ckw017, @alanwguo, @architkulkarni, @chaowanggg, @AmeerHajAli, @stephanie-wang, @bewestphal, @matthew29tang, @dbczumar, @sihanwang41, @ericl, @soumitrak, @matthewdeng, @Catch-Bull, @peytondmurray, @XiaodongLv, @bveeramani, @YQ-Wang, @Linniem, @ProjectsByJackHe, @woshiyyya, @c21, @shrekris-anyscale, @zcin, @Yard1, @can-anyscale, @kouroshHakha, @robertnishihara, @richardliaw, @krfricke, @shomilj, @ArturNiederfahrenhorst, @ijrsvt, @GokuMohandas, @jbedorf, @xwjiang2010, @anydayeol, @clarng, @davidxia, @rickyyx, @Siraj-Qazi, @kira-lin, @scv119, @chengscott, @angelinalg, @rkooo567, @rshin, @deanwampler, @gramhagen, @larrylian, @WeichenXu123, @simonsays1980
The Ray 2.3.1 patch release contains fixes for multiple components:
The Ray 2.3.1 patch release contains fixes for multiple components:
zip() (https://github.com/ray-project/ray/pull/32795)serve run to use Ray Client instead of Ray Jobs (https://github.com/ray-project/ray/pull/32976)max_concurrent_queries being ignored when autoscaling (https://github.com/ray-project/ray/pull/32772 and https://github.com/ray-project/ray/pull/33022)--block (https://github.com/ray-project/ray/pull/32961)Deprecate MlflowTrainableMixin in favor of setup_mlflow() function
💫Enhancements:
set_preprocessor method to Checkpoint (#31721)save_checkpoints to upload_checkpoints (#31582)WandbLoggerCallback example (#31625)DLPredictor.call_model tensor parameter to inputs (#30574)use_gpu to HuggingFacePredictor (#30945)Checkpoint improvements (#30948)TensorflowCheckpoint.get_model (#31203)🔨 Fixes:
📖Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫Enhancements:
ds.map_batches() (#30000)🔨 Fixes:
📖Documentation:
🎉 New Features:
💫Enhancements:
NCCL_SOCKET_IFNAME to blacklist veth (#31824)RunConfig is used when there are multiple places to specify it (#31959)ScalingConfig to be optional for DataParallelTrainers if already in Tuner param_space (#30920)🔨 Fixes:
Preprocessor configs when using stream API. (#31725)fail_fast="raise" (#30817)SklearnTrainer (#30593)📖Documentation:
🏗 Architecture refactoring:
💫Enhancements:
validate_upload_dir to Syncer (#30869)🔨 Fixes:
AxSearch save and nan/inf result handling (#31147)AxSearch search space conversion for fixed list hyperparameters (#31088)Tuner.restore (#30893)sort_by_metric with nested metrics (#30906)fail_fast="raise" (#30817)📖Documentation:
🏗 Architecture refactoring:
overwrite_trainable argument in Tuner restore to trainable (#32059)🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
🎉 New Features:
💫Enhancements:
experimental_relax_shapes (but reduce_retracing instead). (#29214)__str__() method to PolicyMap. (#31098)contrib folder. (#30992)AlgorithmConfig.overrides() to replace multiagent->policies->config and evaluation_config dicts. (#30879)deprecation_warning(.., error=True) should raise ValueError, not DeprecationWarning. (#30255)gym.spaces.Text serialization. (#30794)MultiAgentBatch to SampleBatch in offline_rl.py. (#30668)Algorithm.train() return Tune-style config dict (instead of AlgorithmConfig object). (#30591)🔨 Fixes:
try_import_..(). (#31332)tensorflow_probability imports. (#31331)PolicyMap.__del__() to also remove a deleted policy ID from the internal deque. (#31388)get_model_v2() instead of get_model() with MADDPG. (#30905)📖Documentation:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
🎉 New Features:
💫Enhancements:
ray status and autoscaler (#32337)🔨 Fixes:
📖Documentation:
🎉 New Features:
📖Documentation:
Many thanks to all those who contributed to this release!
@minerharry, @scottsun94, @iycheng, @DmitriGekhtman, @jbedorf, @krfricke, @simonsays1980, @eltociear, @xwjiang2010, @ArturNiederfahrenhorst, @richardliaw, @avnishn, @WeichenXu123, @Capiru, @davidxia, @andreapiso, @amogkam, @sven1977, @scottjlee, @kylehh, @yhna940, @rickyyx, @sihanwang41, @n30111, @Yard1, @sriram-anyscale, @Emiyalzn, @simran-2797, @cadedaniel, @harelwa, @ijrsvt, @clarng, @pabloem, @bveeramani, @lukehsiao, @angelinalg, @dmatrix, @sijieamoy, @simon-mo, @jbesomi, @YQ-Wang, @larrylian, @c21, @AndreKuu, @maxpumperla, @architkulkarni, @wuisawesome, @justinvyu, @zhe-thoughts, @matthewdeng, @peytondmurray, @kevin85421, @tianyicui-tsy, @cassidylaidlaw, @gvspraveen, @scv119, @kyuyeonpooh, @Siraj-Qazi, @jovany-wang, @ericl, @shrekris-anyscale, @Catch-Bull, @jianoaix, @christy, @MisterLin1995, @kouroshHakha, @pcmoritz, @csko, @gjoliver, @clarkzinzow, @SongGuyang, @ckw017, @ddelange, @alanwguo, @Dhul-Husni, @Rohan138, @rkooo567, @fzyzcjy, @chaokunyang, @0x2b3bfa0, @zoltan-fedor, @Chong-Li, @crypdick, @jjyao, @emmyscode, @stephanie-wang, @starpit, @smorad, @nikitavemuri, @zcin, @tbukic, @ayushthe1, @mattip
Nothing published for this version
Deprecate Checkpoint.to_object_ref and Checkpoint.from_object_ref
Ray 2.2 is a stability-focused release, featuring stability improvements across many Ray components.
🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
🏗 Architecture refactoring:
🎉 New Features:
select_columns() to select a subset of columns (#29081)write_tfrecords() to write TFRecord files (#29448)from_torch() to create dataset from Torch dataset (#29588)from_tf() to create dataset from TensorFlow dataset (#29591)batch_size in BatchMapper (#29193)💫Enhancements:
include_paths in read_images() to return image file path (#30007)to_pandas() and to_dask() (#29417)read_tfrecords() output from Pandas to Arrow format (#30390)str exclude in Concatenator (#29443)🔨 Fixes:
random_shuffle() (#29276)random_shuffle_each_window() (#29482)iter_batches() to not return empty batch (#29638)map_batches() to fetch input blocks on-demand (#29289)take_all() to not accept limit argument (#29746)map_groups() (#30172)stats() call causing Dataset schema to be unset (#29635)batch_format is not specified for BatchMapper (#30366)📖Documentation:
map_batches() documentation about execution model and UDF pickle-ability requirement (#29233)to_tf() docstring (#29464)🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
🏗 Architecture refactoring:
🎉 New Features:
Tuner.restore work with relative experiment paths (#30363)Tuner.restore from a local directory that has moved (#29920)💫Enhancements:
with_resources takes in a ScalingConfig (#30259)with_resources in with_parameters (#29740)trial_name_creator and trial_dirname_creator to TuneConfig (#30123)BaseTrainer to Trainable once in the Tuner (#30355)remote_checkpoint_dir work with query strings (#30125)🔨 Fixes:
ResourceChangingScheduler dropping PGF args (#30304)Tuner (#29956)TUNE_ORIG_WORKING_DIR env variable (#30134)📖Documentation:
ResultGrid and Result) (#29072)🏗 Architecture refactoring:
setup_wandb() function (#29828)🎉 New Features:
💫Enhancements:
🔨 Fixes:
🎉 New Features:
💫Enhancements:
from_checkpoint()) for directly instantiating instances from a checkpoint directory w/o knowing the original configuration used or any other information (having the checkpoint is sufficient). For a detailed overview, see here. (#28812, #29772, #29370, #29520, #29328)🏗 Architecture refactoring:
🔨 Fixes:
📖Documentation:
🎉 New Features:
💫Enhancements:
entrypoint_num_cpus, entrypoint_num_gpus, or entrypoint_resources. (#28564, #28203)🔨 Fixes:
num_cpus required by task/actors by default (#30496)📖Documentation:
💫Enhancements:
🎉 New Features:
ray list cluster-events.🔨 Fixes:
💫Enhancements:
Many thanks to all those who contributed to this release!
@shrekris-anyscale, @rickyyx, @scottjlee, @shogohida, @liuyang-my, @matthewdeng, @wjrforcyber, @linusbiostat, @clarkzinzow, @justinvyu, @zygi, @christy, @amogkam, @cool-RR, @jiaodong, @EvgeniiTitov, @jjyao, @ilee300a, @jianoaix, @rkooo567, @mattip, @maxpumperla, @ericl, @cadedaniel, @bveeramani, @rueian, @stephanie-wang, @lcipolina, @bparaj, @JoonHong-Kim, @avnishn, @tomsunelite, @larrylian, @alanwguo, @VishDev12, @c21, @dmatrix, @xwjiang2010, @thomasdesr, @tiangolo, @sokratisvas, @heyitsmui, @scv119, @pcmoritz, @bhavika, @yzs981130, @andraxin, @Chong-Li, @clarng, @acxz, @ckw017, @krfricke, @kouroshHakha, @sijieamoy, @iycheng, @gjoliver, @peytondmurray, @xcharleslin, @DmitriGekhtman, @andreichalapco, @vitrioil, @architkulkarni, @simon-mo, @ArturNiederfahrenhorst, @sihanwang41, @pabloem, @sven1977, @avivhaber, @wuisawesome, @jovany-wang, @Yard1
Deprecate Checkpoint.to_object_ref and Checkpoint.from_object_ref
read_images() API for loading data.read_tfrecords() API to read TFRecord files.on_episode_created().💫Enhancements:
🔨 Fixes:
📖Documentation:
🏗 Architecture refactoring:
🎉 New Features:
BatchMapper (#28418)💫Enhancements:
Dataset.to_dask() (#28625)ds.limit() (#27343)🔨 Fixes:
📖Documentation:
limit() and take() docstrings (#27367)🎉 New Features:
💫Enhancements:
🔨 Fixes:
train.torch.get_device() (#28659)📖Documentation:
🏗 Architecture refactoring:
🎉 New Features:
Tuner.get_results() to retrieve results after restore (#29083)💫Enhancements:
🔨 Fixes:
📖Documentation:
🏗 Architecture refactoring:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
🎉 New Features:
on_episode_created(). (#28600)💫Enhancements:
🔨 Fixes:
📖Documentation:
🔨 Fixes:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
run_function_on_all_workers as deprecated until we get rid of this (#29062)📖Documentation:
💫Enhancements:
📖Documentation:
🎉 New Features:
🔨 Fixes:
📖Documentation:
Many thanks to all those who contributed to this release!
@sihanwang41, @simon-mo, @avnishn, @MyeongKim, @markrogersjr, @christy, @xwjiang2010, @kouroshHakha, @zoltan-fedor, @wumuzi520, @alanwguo, @Yard1, @liuyang-my, @charlesjsun, @DevJake, @matteobettini, @jonathan-conder-sm, @mgerstgrasser, @guidj, @JiahaoYao, @Zyiqin-Miranda, @jvanheugten, @aallahyar, @SongGuyang, @clarng, @architkulkarni, @Rohan138, @heyitsmui, @mattip, @ArturNiederfahrenhorst, @maxpumperla, @vale981, @krfricke, @DmitriGekhtman, @amogkam, @richardliaw, @maldil, @zcin, @jianoaix, @cool-RR, @kira-lin, @gramhagen, @c21, @jiaodong, @sijieamoy, @tupui, @ericl, @anabranch, @se4ml, @suquark, @dmatrix, @jjyao, @clarkzinzow, @smorad, @rkooo567, @jovany-wang, @edoakes, @XiaodongLv, @klieret, @rozsasarpi, @scottsun94, @ijrsvt, @bveeramani, @chengscott, @jbedorf, @kevin85421, @nikitavemuri, @sven1977, @acxz, @stephanie-wang, @PaulFenton, @WangTaoTheTonic, @cadedaniel, @nthai, @wuisawesome, @rickyyx, @artemisart, @peytondmurray, @pingsutw, @olipinski, @davidxia, @stestagg, @yaxife, @scv119, @mwtian, @yuanchi2807, @ntlm1686, @shrekris-anyscale, @cassidylaidlaw, @gjoliver, @ckw017, @hakeemta, @ilee300a, @avivhaber, @matthewdeng, @afarid, @pcmoritz, @Chong-Li, @Catch-Bull, @justinvyu, @iycheng
[Workflows] Replace deprecated name option with task_id
The Ray 2.0.1 patch release contains dependency upgrades and fixes for multiple components:
python -m (#28140)host and port in Serve config (#27026)name option with task_id (#28151)The Trainer API is now deprecated for the new Ray AIR Trainers API. Trainers for Pytorch, Tensorflow, Horovod, XGBoost, and LightGBM are now in Beta.
Ray 2.0 is an exciting release with enhancements to all libraries in the Ray ecosystem. With this major release, we take strides towards our goal of making distributed computing scalable, unified, and open.
Towards these goals, Ray 2.0 features new capabilities for unifying the machine learning (ML) ecosystem, improving Ray's production support, and making it easier than ever for ML practitioners to use Ray's libraries.
Highlights:
A migration guide for all the different libraries can be found here: Ray 2.0 Migration Guide.
Ray AIR is now in beta. Ray AIR builds upon Ray’s libraries to enable end-to-end machine learning workflows and applications on Ray. You can install all dependencies needed for Ray AIR via pip install -u "ray[air]".
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
KerasCallback to work with TensorflowPredictor (#26089)predict_pandas implementation (#25534)_predict_arrow interface for Predictor (#25579)call_model API for unsupported output types (#26845)🎉 New Features:
💫 Enhancements:
🔨 Fixes:
Ray Train has received a major expansion of scope with Ray 2.0.
In particular, the Ray Train module now contains:
for common different ML frameworks including Pytorch, Tensorflow, XGBoost, LightGBM, HuggingFace, and Scikit-Learn. These API help provide end-to-end usage of Ray libraries in Ray AIR workflows.
🎉 New Features:
ray.train namespace. This provides streamlined API for offline and online inference of Pytorch, Tensorflow, XGBoost models and more. (#25769 #26215, #26251, #26451, #26531, #26600, #26603, #26616, #26845)💫 Enhancements:
📖 Documentation:
🏗 Architecture refactoring:
🔨 Fixes:
__getstate__ method (#25335)🎉 New Features:
get_dataframe() method to result grid, fix config flattening (#24686)💫 Enhancements:
TempFileLock (#25408)📖 Documentation:
🏗 Architecture refactoring:
🔨 Fixes:
dataset_tune (#25402)set_tune_experiment (#26298)🎉 New Features:
💫 Enhancements:
🎉 New Features:
💫 Enhancements:
evaluation_duration. (#26000)🔨 Fixes:
self._local_worker is None (e.g. in evaluation worker sets)”. (#25332) (#25493)target_network_update_freq for R2D2. (#25510)input_dict arg). (#25877)async_parallel_requests utility. (#26117)torch_utils.py::convert_to_torch_tensor. (#26863)🎉 New Features:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
head_node, worker_nodes, head_node_type, default_worker_node_type, autoscaling_mode, target_utilization_fraction are removed. Check out the migration guide to learn how to migrate to the new versions.🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🎉 New Features:
Breaking changes:
🔨 Fixes:
Many thanks to all those who contributed to this release!
@ujvl, @xwjiang2010, @EricCousineau-TRI, @ijrsvt, @waleedkadous, @captain-pool, @olipinski, @danielwen002, @amogkam, @bveeramani, @kouroshHakha, @jjyao, @larrylian, @goswamig, @hanming-lu, @edoakes, @nikitavemuri, @enori, @grechaw, @truelegion47, @alanwguo, @sychen52, @ArturNiederfahrenhorst, @pcmoritz, @mwtian, @vakker, @c21, @rberenguel, @mattip, @robertnishihara, @cool-RR, @iamhatesz, @ofey404, @raulchen, @nmatare, @peterghaddad, @n30111, @fkaleo, @Riatre, @zhe-thoughts, @lchu-ibm, @YoelShoshan, @Catch-Bull, @matthewdeng, @VishDev12, @valtab, @maxpumperla, @tomsunelite, @fwitter, @liuyang-my, @peytondmurray, @clarkzinzow, @VeronikaPolakova, @sven1977, @stephanie-wang, @emjames, @Nintorac, @suquark, @javi-redondo, @xiurobert, @smorad, @brucez-anyscale, @pdames, @jjyyxx, @dmatrix, @nakamasato, @richardliaw, @juliusfrost, @anabranch, @christy, @Rohan138, @cadedaniel, @simon-mo, @mavroudisv, @guidj, @rkooo567, @orcahmlee, @lixin-wei, @neigh80, @yuduber, @JiahaoYao, @simonsays1980, @gjoliver, @jimthompson5802, @lucasalavapena, @zcin, @clarng, @jbn, @DmitriGekhtman, @timgates42, @charlesjsun, @Yard1, @mgelbart, @wumuzi520, @sihanwang41, @ghost, @jovany-wang, @siavash119, @yuanchi2807, @tupui, @jianoaix, @sumanthratna, @code-review-doctor, @Chong-Li, @FedericoGarza, @ckw017, @Makan-Ar, @kfstorm, @flanaman, @WangTaoTheTonic, @franklsf95, @scv119, @kvaithin, @wuisawesome, @jiaodong, @mgerstgrasser, @tiangolo, @architkulkarni, @MyeongKim, @ericl, @SongGuyang, @avnishn, @chengscott, @shrekris-anyscale, @Alyetama, @iycheng, @rickyyx, @krfricke, @sijieamoy, @kimikuri, @czgdp1807, @michalsustr
Hard-deprecate build_trainer() (trainer_templates.py): All custom Trainers should now sub-class from any existing Trainer class.
💫Enhancements:
🔨 Fixes:
💫Enhancements:
None from internal KV for non-existent keys (#24058)🔨 Fixes:
SimpleQueue on Python 3.7 and newer in async dataclient (#23995)🎉 New Features:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
🏗 Architecture refactoring:
recreate_failed_workers=True config flag. (#23739)build_trainer() (trainer_templates.py): All custom Trainers should now sub-class from any existing Trainer class. (#23488)💫Enhancements:
🔨 Fixes:
as_eager() twice by mistake). (#24268)timesteps_per_iteration is used (use min_train_timesteps_per_reporting instead). (#24345)🎉 New Features:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
💫Enhancements:
MLflowLoggerUtil copyable (#23333)🔨Fixes:
Most distributed training enhancements will be captured in the new Ray AIR category!
🔨Fixes:
train.torch.get_device() for fractional GPU or multiple GPU per worker case (#23763)ray.train.Trainer and ray.tune DistributedTrainableCreators (#24056)📖Documentation:
🎉 New Features:
HuggingFaceTrainer & HuggingFacePredictor (#23615, #23876)SklearnTrainer & SklearnPredictor (#23803, #23850)HorovodTrainer (#23437)RLTrainer & RLPredictor (#23465, #24172)BatchMapper preprocessor (#23700)Categorizer preprocessor (#24180)BatchPredictor (#23808)💫Enhancements:
Checkpoint.as_directory() for efficient checkpoint fs processing (#23908)config to Result, extend ResultGrid.get_best_config (#23698)_get_unique_value_indices (#24144)most_frequent SimpleImputer (#23706)🔨Fixes:
run_config from Trainer per default (#24079)📖Documentation:
torch_geometric example (#23580)🎉 New Features:
💫Enhancements:
input_schema is now renamed as http_adapter for usability (#24353, #24191)🔨Fixes:
None in ReplicaConfig's resource_dict (#23851)"memory" to None in ray_actor_options by default (#23619)serve.shutdown() shutdown remote Serve applications (#23476)🔨Fixes:
Thanks Many thanks to all those who contributed to this release! @matthewdeng, @scv119, @xychu, @iycheng, @takeshi-yoshimura, @iasoon, @wumuzi520, @thetwotravelers, @maxpumperla, @krfricke, @jgiannuzzi, @kinalmehta, @avnishn, @dependabot[bot], @sven1977, @raulchen, @acxz, @stephanie-wang, @mgelbart, @xwjiang2010, @jon-chuang, @pdames, @ericl, @edoakes, @gjoseph92, @ddelange, @bkasper, @sriram-anyscale, @Zyiqin-Miranda, @rkooo567, @jbedorf, @architkulkarni, @osanseviero, @simonsays1980, @clarkzinzow, @DmitriGekhtman, @ashione, @smorad, @andenrx, @mattip, @bveeramani, @chaokunyang, @richardliaw, @larrylian, @Chong-Li, @fwitter, @shrekris-anyscale, @gjoliver, @simontindemans, @silky, @grypesc, @ijrsvt, @daikeshi, @kouroshHakha, @mwtian, @mesjou, @sihanwang41, @PavelCz, @czgdp1807, @jianoaix, @GuillaumeDesforges, @pcmoritz, @arsedler9, @n30111, @kira-lin, @ckw017, @max0x7ba, @Yard1, @XuehaiPan, @lchu-ibm, @HJasperson, @SongGuyang, @amogkam, @liuyang-my, @WangTaoTheTonic, @jovany-wang, @simon-mo, @dynamicwebpaige, @suquark, @ArturNiederfahrenhorst, @jjyao, @KepingYan, @jiaodong, @frosk1
Patch release with the following fixes:
Patch release with the following fixes:
ray-ml Docker images for CPU will start being built again after they were stopped in Ray 1.9 (https://github.com/ray-project/ray/pull/24266).Ray AI Runtime (AIR), an open-source toolkit for building end-to-end ML applications on Ray, is now in Alpha. AIR is an effort to unify the experience
🎉 New Features
💫 Enhancements
🔨 Fixes
🎉 New Features:
💫Enhancements:
🔨 Fixes:
🎉 New Features
🔨 Fixes
parallel_memcopy() / memcpy() during serializations. (#22492)🏗 Architecture refactoring
🎉 New Features
_spread_resource_prefix hack (#21303)TableRow API + minimize copies/type-conversions on row-based ops (#22305)DatasetPipelines (#22830)read_text() (#21967)read_text() (#22298)add_column() utility for adding derived columns (#21967)🔨 Fixes
DatasetPipeline stage boundaries (#21970)batch_format=”native” is given (#21566)iter_epochs() batch format (#22550)iter_epochs() loop on unconsumed epochs (#22572)split() when num_shards < num_rows (#22559)to_tf() so it can be used for inference (#22916)schema() for DatasetPipelines (#23032)num_splits == num_blocks (#23191)💫 Enhancements
🏗 Architecture refactoring
DatasetPipeline stages (#22912)🎉 New Features
agents folder as first-class citizens, TensorFlow-Version, unified w/ other agents’ APIs. (#22821, #22028, #22427, #22465, #21949, #21773, #21932, #22421)🔨 Fixes
🏗 Architecture refactoring
training_iteration API (from exeution_plan API). Lead to a ~2.7x performance increase on a Atari + CNN + LSTM benchmark. (#22126, #22316)multiagent->policies_to_train more flexible via callable option (alternative to providing a list of policy IDs). (#20735)💫Enhancements:
on_sub_environment_created and on_trainer_init callback options. (#21893, #22493)📖Documentation:
🎉 New Features:
🔨 Fixes:
🎉 New Features:
💫Enhancements:
🔨Fixes:
🏗 Refactoring:
📖Documentation:
🎉 New Features
💫 Enhancements
trainer.best_checkpoint and Trainer.load_checkpoint_path. You can now directly access the best in memory checkpoint, or load an arbitrary checkpoint path to memory. (#22306)🔨 Fixes
train.report(), etc.) can now be called outside of a Train session (#21969)📖 Documentation
prepare_data_loader (#22876)train.torch.get_device as a Public API (#22024)🎉 New Features
health_check API for end to end user provided health check. (#22178, #22121, #22297)🔨 Fixes
root_path setting to http_options (#21090)shard_key, http_method, and http_headers in ServeHandle (#21590)🔨Fixes:
Many thanks to all those who contributed to this release! @edoakes, @pcmoritz, @jiaodong, @iycheng, @krfricke, @smorad, @kfstorm, @jjyyxx, @rodrigodelazcano, @scv119, @dmatrix, @avnishn, @fyrestone, @clarkzinzow, @wumuzi520, @gramhagen, @XuehaiPan, @iasoon, @birgerbr, @n30111, @tbabej, @Zyiqin-Miranda, @suquark, @pdames, @tupui, @ArturNiederfahrenhorst, @ashione, @ckw017, @siddgoel, @Catch-Bull, @vicyap, @spolcyn, @stephanie-wang, @mopga, @Chong-Li, @jjyao, @raulchen, @sven1977, @nikitavemuri, @jbedorf, @mattip, @bveeramani, @czgdp1807, @dependabot[bot], @Fabien-Couthouis, @willfrey, @mwtian, @SlowShip, @Yard1, @WangTaoTheTonic, @Wendi-anyscale, @kaushikb11, @kennethlien, @acxz, @DmitriGekhtman, @matthewdeng, @mraheja, @orcahmlee, @richardliaw, @dsctt, @yupbank, @Jeffwan, @gjoliver, @jovany-wang, @clay4444, @shrekris-anyscale, @jwyyy, @kyle-chen-uber, @simon-mo, @ericl, @amogkam, @jianoaix, @rkooo567, @maxpumperla, @architkulkarni, @chenk008, @xwjiang2010, @robertnishihara, @qicosmos, @sriram-anyscale, @SongGuyang, @jon-chuang, @wuisawesome, @valiantljk, @simonsays1980, @ijrsvt
Patch release including fixes for the following issues:
Patch release including fixes for the following issues:
working_dir URLs in their runtime environment (https://github.com/ray-project/ray/pull/22018)gym not pinned, leading to version incompatibility issues (https://github.com/ray-project/ray/pull/23705)Replace deprecated running_sanity_check with sanity_checking in PTL integration
🎉 Ray no longer starts Redis by default. Cluster metadata previously stored in Redis is stored in the GCS now.
🎉 New Features
💫 Enhancements
🔨 Fixes
🎉 New Features
🔨 Fixes
SchedulingClassInfo.running_tasks memory leak #21535🏗 Architecture refactoring
🎉 New Features
🔨 Fixes
🎉 New Features
MultiAgentEnv pre-checker (#21476)🔨 Fixes
unsquash_action and clip_action (when None) cause wrong actions computed by Trainer.compute_single_action. (#21553)🏗 Architecture refactoring
🔨 Fixes
🎉 New Features
💫 Enhancements
return_or_clean_cached_pg (#21403)TrialExecutor.resume_trial (#21225)🔨 Fixes
running_sanity_check with sanity_checking in PTL integration (#21831)ExperimentAnalysis object without a registered Trainable (#21475)tune/tests/test_commands.py to run on Windows (#21342)tune.choice (#21270)📖 Documentation
schedulers.rst (#21777)🎉 New Features
💫 Enhancements
🔨 Fixes
📖 Documentation
🎉 New Features
🔨 Fixes
Thanks Many thanks to all those who contributed to this release! @isaac-vidas, @wuisawesome, @stephanie-wang, @jon-chuang, @xwjiang2010, @jjyao, @MissiontoMars, @qbphilip, @yaoyuan97, @gjoliver, @Yard1, @rkooo567, @talesa, @czgdp1807, @DN6, @sven1977, @kfstorm, @krfricke, @simon-mo, @hauntsaninja, @pcmoritz, @JamieSlome, @chaokunyang, @jovany-wang, @sidward14, @DmitriGekhtman, @ericl, @mwtian, @jwyyy, @clarkzinzow, @hckuo, @vakker, @HuangLED, @iycheng, @edoakes, @shrekris-anyscale, @robertnishihara, @avnishn, @mickelliu, @ndrwnaguib, @ijrsvt, @Zyiqin-Miranda, @bveeramani, @SongGuyang, @n30111, @WangTaoTheTonic, @suquark, @richardliaw, @qicosmos, @scv119, @architkulkarni, @lixin-wei, @Catch-Bull, @acxz, @benblack769, @clay4444, @amogkam, @marin-ma, @maxpumperla, @jiaodong, @mattip, @isra17, @raulchen, @wilsonwang371, @carlogrisetti, @ashione, @matthewdeng
Security fixes for log4j2 – the log4j2 version has been bumped to 2.17.1
💫Enhancements:
🔨 Fixes:
💫Enhancements
🎉 New Features:
runtime_env’s pip field now installs pip packages in your existing environment instead of installing them in a new isolated environment. (#20341)🔨 Fixes:
log4j2 – the log4j2 version has been bumped to 2.17.1 (#21373)💫Enhancements:
🏗 Architecture refactoring:
📖Documentation:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
🏗 Architecture refactoring:
train doesn't ever have to wait for eval to finish (b/c of long episodes). (#20757); Always attach latest eval metrics. (#21011)build_trainer() utility function in favor of sub-classing Trainer directly (and overriding some of its methods). (#20635, #20636, #20633, #20424, #20570, #20571, #20639, #20725)SampleBatch instead of an input dict whenever possible. (#20746)Preprocessors by default for PGTrainer (experimental). (#21008)rllib/execution/buffers dir) (#20552)📖Documentation:
🔨 Fixes:
🎉 New Features:
BasicVariantGenerator (#20926)💫Enhancements:
set_max_concurrency to Searcher API (#20576)on_no_available_trials to a subclass under runner (#20809)🔨Fixes:
🔨Fixes:
💫Enhancements:
🔨Fixes:
🎉 New Features:
ray job logs command (#20976)🔨Fixes:
💫Enhancements:
Many thanks to all those who contributed to this release!
@dmatrix, @suquark, @tekumara, @jiaodong, @jovany-wang, @avnishn, @simon-mo, @iycheng, @SongGuyang, @ArturNiederfahrenhorst, @wuisawesome, @kfstorm, @matthewdeng, @jjyao, @chenk008, @Sertingolix, @larrylian, @czgdp1807, @scv119, @duburcqa, @runedog48, @Yard1, @robertnishihara, @geraint0923, @amogkam, @DmitriGekhtman, @ijrsvt, @kk-55, @lixin-wei, @mvindiola1, @hauntsaninja, @sven1977, @Hankpipi, @qbphilip, @hckuo, @newmanwang, @clay4444, @edoakes, @liuyang-my, @iasoon, @WangTaoTheTonic, @fgogolli, @dproctor, @gramhagen, @krfricke, @richardliaw, @bveeramani, @pcmoritz, @ericl, @simonsays1980, @carlogrisetti, @stephanie-wang, @AmeerHajAli, @mwtian, @xwjiang2010, @shrekris-anyscale, @n30111, @lchu-ibm, @Scalsol, @seonggwonyoon, @gjoliver, @qicosmos, @xychu, @iamhatesz, @architkulkarni, @jwyyy, @rkooo567, @mattip, @ckw017, @MissiontoMars, @clarkzinzow
Patch release to bump the log4j version from 2.16.0 to 2.17.0. This resolves the security issue CVE-2021-45105.
Patch release to bump the log4j version from 2.16.0 to 2.17.0. This resolves the security issue CVE-2021-45105.
This resolves the security vulnerabilities https://nvd.nist.gov/vuln/detail/CVE-2021-44228 and https://nvd.nist.gov/vuln/detail/CVE-2021-45046.
Patch release to bump the log4j2 version from 2.14 to 2.16. This resolves the security vulnerabilities https://nvd.nist.gov/vuln/detail/CVE-2021-44228 and https://nvd.nist.gov/vuln/detail/CVE-2021-45046.
No library or core changes included.
Thanks @seonggwonyoon and @ijrsvt for contributing the fixes!
ray-ml:cpu images are now deprecated. The ray-ml images are only built for GPU.
-cuXXX suffix to pick a specific version.
ray-ml:cpu images are now deprecated. The ray-ml images are only built for GPU.💫Enhancements:
🔨 Fixes:
🎉 New Features:
💫Enhancements:
🔨 Fixes:
📖Documentation:
API Changes:
Ray.Get() API. #20282Note:
Ray.getActor(name, namespace) API to get a named actor between jobs instead of Ray.getGlobalActor(name).PlacementGroup.getPlacementGroup(name, namespace) API to get a placement group between jobs instead of PlacementGroup.getGlobalPlacementGroup(name).🎉 New Features:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
🔨 Fixes:
🏗 Architecture refactoring:
build_trainer/build_(tf_)?policy utility functions. Instead, use sub-classing of Trainer or Torch|TFPolicy. POCs done for PGTrainer, PPO[TF|Torch]Policy. (#20055, #20061)🔨 Fixes:
📖Documentation:
💫Enhancements:
🔨Fixes:
Ray Train is now in Beta! The beta version includes various usability improvements for distributed PyTorch training and checkpoint management, support for Ray Client, and an integration with Ray Datasets for distributed data ingest.
Check out the docs here, and the migration guide from Ray SGD to Ray Train here. If you are using Ray Train, we’d love to hear your feedback here!
🎉 New Features:
train.torch.prepare_model(...) and train.torch.prepare_data_loader(...) API to automatically handle preparing your PyTorch model and DataLoader for distributed training (#20254).💫Enhancements:
PACK strategy is used by default but can be changed by setting the TRAIN_ENABLE_WORKER_SPREAD environment variable.🔨Fixes:
HorovodBackend to automatically detect NICs- thanks @tgaddair! (#19533).📖Documentation:
We would love to hear from you! Fill out the Ray Serve survey here.
🎉 New Features:
checkpoint_path configuration allows Serve to save its internal state to external storage (disk, S3, and GCS) and recover upon failure. (#19166, #19998, #20104)🔨Fixes:
pip install ray[serve] will now install ray[default] as well. (#19570)🏗 Architecture refactoring:
Many thanks to all those who contributed to this release! @krfricke, @stefanbschneider, @ericl, @nikitavemuri, @qicosmos, @worldveil, @triciasfu, @AmeerHajAli, @javi-redondo, @architkulkarni, @pdames, @clay4444, @mGalarnyk, @liuyang-my, @matthewdeng, @suquark, @rkooo567, @mwtian, @chenk008, @dependabot[bot], @iycheng, @jiaodong, @scv119, @oscarknagg, @Rohan138, @stephanie-wang, @Zyiqin-Miranda, @ijrsvt, @roireshef, @tkaymak, @simon-mo, @ashione, @jovany-wang, @zenoengine, @tgaddair, @11rohans, @amogkam, @zhisbug, @lchu-ibm, @shrekris-anyscale, @pcmoritz, @yiranwang52, @mattip, @sven1977, @Yard1, @DmitriGekhtman, @ckw017, @WangTaoTheTonic, @wuisawesome, @kcpevey, @kfstorm, @rhamnett, @renos, @TeoZosa, @SongGuyang, @clarkzinzow, @avnishn, @iasoon, @gjoliver, @jjyao, @xwjiang2010, @dmatrix, @edoakes, @czgdp1807, @heng2j, @sungho-joo, @lixin-wei
Ray SGD has been rebranded to Ray Train! The new documentation landing page can be found here.
🎉 New Features:
💫Enhancements:
💫Enhancements
💫Enhancements
🔨 Fixes:
Ray Datasets is now in beta! The beta release includes a new integration with Ray Train yielding scalable ML ingest for distributed training. It supports repeating and rewindowing pipelines, zipping two pipelines together, better cancellation of Datasets workloads, and many performance improvements. Check out the docs here, try it out for your ML ingest and batch inference workloads, and let us know how it goes!
🎉 New Features:
💫Enhancements:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
🔨Fixes:
🏗 Architecture refactoring:
🎉 New Features:
💫Enhancements:
save and restore methods for searchers that were missing it & test (#18760)max_concurrent in TuneBOHB (#18770)on_trial_result to ConcurrencyLimiter (#18766)remote_run match (#18733)🔨Fixes:
loc column in progress reporter is filled (#19182)Analysis.dataframe() documentation and enable passing of mode=None (#18850)Ray SGD has been rebranded to Ray Train! The new documentation landing page can be found here. Ray Train is integrated with Ray Datasets for distributed data loading while training, documentation available here.
🎉 New Features:
🔨Fixes:
📖Documentation:
🎉 New Features:
🔨Fixes:
🏗 Architecture refactoring:
🎉 New Features:
🔨Fixes:
🏗 Architecture refactoring:
Many thanks to all those who contributed to this release! @rkooo567, @lchu-ibm, @scv119, @pdames, @suquark, @antoine-galataud, @sven1977, @mvindiola1, @krfricke, @ijrsvt, @sighingnow, @marload, @jmakov, @clay4444, @mwtian, @pcmoritz, @iycheng, @ckw017, @chenk008, @jovany-wang, @jjyao, @hauntsaninja, @franklsf95, @jiaodong, @wuisawesome, @odp, @matthewdeng, @duarteocarmo, @czgdp1807, @gjoliver, @mattip, @richardliaw, @max0x7ba, @Jasha10, @acxz, @xwjiang2010, @SongGuyang, @simon-mo, @zhisbug, @ccssmnn, @Yard1, @hazeone, @o0olele, @froody, @robertnishihara, @amogkam, @sasha-s, @xychu, @lixin-wei, @architkulkarni, @edoakes, @clarkzinzow, @DmitriGekhtman, @avnishn, @liuyang-my, @stephanie-wang, @Chong-Li, @ericl, @juliusfrost, @carlogrisetti
Nothing published for this version
serve.start(http_host=..., http_port=..., http_middlewares=...) has been deprecated since Ray 1.2.0. They are now removed in favor of serve.start(http…
💫Enhancements:
🔨 Fixes:
🎉 New Features:
ray.init() args can be forwarded to remote server (#17776)💫Enhancements
🔨 Fixes:
🎉 New Features:
pip install -U ray[cpp] to install Ray with C++ API support.ray cpp --help to learn how to use it.🔨 Fixes:
🎉 New Features:
💫Enhancements
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
💫Enhancements:
evaluation_num_episodes=”auto”). (#18380)🏗 Architecture refactoring:
policies arg to callback: on_episode_step (already exists in all other episode-related callbacks) (#18119)worker arg (optional) to policy_mapping_fn. (#18184)🔨 Fixes:
evaluation_num_episodes episodes each evaluation run (no matter the other eval config settings). (#18335)seed in single vectorized sub-envs properly, if num_envs_per_worker > 1 (#18110)final_scale's default value to 0.02 (see OrnsteinUhlenbeck exploration). (#18070)prioritized_replay into account (#17541)💫Enhancements:
🔨Fixes:
Ray SGD v2 is now in Alpha! The v2 version introduces APIs that focus on ease of use and composability. Check out the docs here, and the migration guide from v1 to v2 here. If you are using Ray SGD v2, we’d love to hear your feedback here!
🎉 New Features:
📖 Documentation:
↗️Deprecation and API changes:
serve.start(http_host=..., http_port=..., http_middlewares=...) has been deprecated since Ray 1.2.0. They are now removed in favor of serve.start(http_options={“host”: …, “port”: …, “middlewares”: …). (#17762)🎉 New Features:
🔨Fixes:
🏗 Architecture refactoring:
🎉 New Features:
Many thanks to all those who contributed to this release! @scottsun94, @hngenc, @iycheng, @asm582, @jkterry1, @ericl, @thomasdesr, @ryanlmelvin, @ellimac54, @Bam4d, @gjoliver, @juliusfrost, @simon-mo, @ashione, @RaphaelCS, @simonsays1980, @suquark, @jjyao, @lixin-wei, @77loopin, @Ivorforce, @DmitriGekhtman, @dependabot[bot], @souravraha, @robertnishihara, @richardliaw, @SongGuyang, @rkooo567, @edoakes, @jsuarez5341, @zhisbug, @clarkzinzow, @triciasfu, @architkulkarni, @akern40, @liuyang-my, @krfricke, @amogkam, @Jingyu-Peng, @xwjiang2010, @nikitavemuri, @hauntsaninja, @fyrestone, @navneet066, @ijrsvt, @mwtian, @sasha-s, @raulchen, @holdenk, @qicosmos, @Yard1, @yuduber, @mguarin0, @MissiontoMars, @stephanie-wang, @stefanbschneider, @sven1977, @AmeerHajAli, @matthewdeng, @chenk008, @jiaodong, @clay4444, @ckw017, @tchordia, @ThomasLecat, @Chong-Li, @jmakov, @jovany-wang, @tdhopper, @kfstorm, @wgifford, @mxz96102, @WangTaoTheTonic, @lada-kunc, @scv119, @kira-lin, @wuisawesome
Runtime Environments are ready for general use! This feature enables you to dynamically specify per-task, per-actor and per-job dependencies, includin
pip install -U 'ray[default]'.pip install ray-lightning. Ray Lightning is a library of PyTorch Lightning plugins for distributed training using Ray. Features:
pip install ray now has a significantly reduced set of dependencies. Features such as the dashboard, the cluster launcher, runtime environments, and observability metrics may require pip install -U 'ray[default]' to be enabled. Please report any issues on Github if this is an issue!🎉 New Features:
💫Enhancements:
🔨 Fixes:
💫Enhancements:
🔨 Fixes:
🎉 New Features:
🔨 Fixes:
🏗 Architecture refactoring:
Ray Dataset is now in alpha! Dataset is an interchange format for distributed datasets, powered by Arrow. You can also use it for a basic Ray native data processing experience. Check it out here.
🎉 New Features:
🔨 Fixes:
Fix for view requirements captured during compute actions test pass. Shoutout to Chris Bamford (#15856)
Issues: 17397, 17425, 16715, 17174. When on driver, Torch|TFPolicy should not use ray.get_gpu_ids() (b/c no GPUs assigned by ray). (#17444)
Other bug fixes: #15709, #15911, #16083, #16716, #16744, #16896, #16999, #17010, #17014, #17118, #17160, #17315, #17321, #17335, #17341, #17356, #17460, #17543, #17567, #17587
🏗 Architecture refactoring:
📖Documentation:
🎉 New Features:
💫Enhancements:
🔨Fixes:
📖Documentation:
🎉 New Features:
💫Enhancements:
🎉 New Features:
serve.\* APIs as Stable (#17295)runtime_env's working_dir for Ray Serve (#16480)🔨Fixes:
backend with deployment in metrics & logging (#17434)🏗Stability Enhancements:
Many thanks to all who contributed to this release:
@suquark, @xwjiang2010, @clarkzinzow, @kk-55, @mGalarnyk, @pdames, @Souphis, @edoakes, @sasha-s, @iycheng, @stephanie-wang, @antoine-galataud, @scv119, @ericl, @amogkam, @ckw017, @wuisawesome, @krfricke, @vakker, @qingyun-wu, @Yard1, @juliusfrost, @DmitriGekhtman, @clay4444, @mwtian, @corentinmarek, @matthewdeng, @simon-mo, @pcmoritz, @qicosmos, @architkulkarni, @rkooo567, @navneet066, @dependabot[bot], @jovany-wang, @kombuchafox, @thomasjpfan, @kimikuri, @Ivorforce, @franklsf95, @MissiontoMars, @lantian-xu, @duburcqa, @ddworak94, @ijrsvt, @sven1977, @kira-lin, @SongGuyang, @kfstorm, @Rohan138, @jamesmishra, @amavilla, @fyrestone, @lixin-wei, @stefanbschneider, @jiaodong, @richardliaw, @WangTaoTheTonic, @chenk008, @Catch-Bull, @Bam4d
Cherrypick release to address RLlib issue, no library or core changes included.
Cherrypick release to address RLlib issue, no library or core changes included.
Cherrypick release to address a few external integration and documentation issues, no library or core changes included.
Cherrypick release to address a few external integration and documentation issues, no library or core changes included.
LightGBM on Ray is now in beta (https://github.com/ray-project/lightgbm_ray).
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
🎉 New Features:
disconnect and can be used as a context manager (#16021)💫 Enhancements:
🔨 Fixes:
dir() Works for client-side Actor Handles (#16157)🎉 New Features:
🔨 Fixes:
🏗 Architecture refactoring:
🎉 New Features:
🔨 Fixes:
📖 Documentation and testing:
🏗 Architecture refactoring:
🎉 New Features:
💫 Enhancements:
🔨 Fixes:
Searcher that limits concurrency internally in conjunction with a ConcurrencyLimiter (#16416)DurableTrainable (#16739)📖 Documentation and testing:
🎉 New Features:
🔨 Fixes:
📖 Documentation and testing:
💫 Enhancements: UX improvements (#16227, #15909), Improved logging (#16468) 🔨 Fixes: Fix shutdown logic (#16524), Assorted bug fixes (#16647, #16760, #16783) 📖 Documentation and testing: #16042, #16631, #16759, #16786
Many thanks to all who contributed to this release:
@Tonyhao96, @simon-mo, @scv119, @Yard1, @llan-ml, @xcharleslin, @jovany-wang, @ijrsvt, @max0x7ba, @annaluo676, @rajagurunath, @zuston, @amogkam, @yorickvanzweeden, @mxz96102, @chenk008, @Bam4d, @mGalarnyk, @kfstorm, @crdnb, @suquark, @ericl, @marload, @jiaodong, @thexiang, @ellimac54, @qicosmos, @mwtian, @jkterry1, @sven1977, @howardlau1999, @mvindiola1, @stefanbschneider, @juliusfrost, @krfricke, @matthewdeng, @zhuangzhuang131419, @brandonJY, @Eleven1Liu, @nikitavemuri, @richardliaw, @iycheng, @stephanie-wang, @HuangLED, @clarkzinzow, @fyrestone, @asm582, @qingyun-wu, @ckw017, @yncxcw, @DmitriGekhtman, @benjamindkilleen, @Chong-Li, @kathryn-zhou, @pcmoritz, @rodrigodelazcano, @edoakes, @dependabot[bot], @pdames, @frenkowski, @loicsacre, @gabrieleoliaro, @achals, @thomasjpfan, @rkooo567, @dibgerge, @clay4444, @architkulkarni, @lixin-wei, @ConeyLiu, @WangTaoTheTonic, @AnnaKosiorek, @wuisawesome, @gramhagen, @zhisbug, @franklsf95, @vakker, @jenhaoyang, @liuyang-my, @chaokunyang, @SongGuyang, @tgaddair
Python 3.9 wheels (Linux / MacOS / Windows) are available (#16347 #16586)
Python 3.9 wheels (Linux / MacOS / Windows) are available (#16347 #16586)
🔨 Fixes: On-prem bug resolved (#16281)
💫Enhancements:
🔨 Fixes:
🔨 Fixes:
💫Enhancements: Dask 2021.06.1 support (#16547)
💫Enhancements: Support object refs in with_params (#16753)
🔨Fixes: Ray serve shutdown goes through Serve controller (#16524)
🔨Fixes: Upgrade dependencies to fix CVEs (#16650, #16657)
Move wheel and Docker image upload from Travis to Buildkite (#16138 #16241)
Many thanks to all those who contributed to this release!
@rkooo567, @clarkzinzow, @WangTaoTheTonic, @ckw017, @stephanie-wang, @Yard1, @mwtian, @jovany-wang, @jiaodong, @wuisawesome, @krfricke, @architkulkarni, @ijrsvt, @simon-mo, @DmitriGekhtman, @amogkam, @richardliaw
Namespaces (check out the docs)! Note: this may be a breaking change if you’re using detached actors (set ray.init(namespace=””) for backwards compati…
Trainer._evaluate() renamed to Trainer.evaluate() (backward compatible); Trainer.evaluate() can be called even w/o evaluation worker set, if create_env_on_driver=True (#15591).max_concurrent option to BasicVariantGenerator (#15680)seed parameter to OptunaSearch (#15248)del when cleaning up actors (#15687)serve.deployment API: @serve.deployment, serve.get_deployments, serve.list_deployments (#14935, #15172, #15124, #15121, #14953, #15152, #15821)serve.ingress(fastapi_app) API (#15445, 15441, 14858)@serve.batch decorator in favor of legacy max_batch_size in backend config (#15065)serve.start() is now idempotent (#15148)handle.method_name.remote() (#14831)num_cpus=0 by default (#15000)max_restarts (#15047)Many thanks to all those who contributed to this release!
@clay4444, @Fabien-Couthouis, @mGalarnyk, @smorad, @ckw017, @ericl, @antoine-galataud, @pleiadesian, @DmitriGekhtman, @robertnishihara, @Bam4d, @fyrestone, @stephanie-wang, @kfstorm, @wuisawesome, @rkooo567, @franklsf95, @micahtyong, @WangTaoTheTonic, @krfricke, @hegdeashwin, @devin-petersohn, @qicosmos, @edoakes, @llan-ml, @ijrsvt, @richardliaw, @Sertingolix, @ffbin, @simjay, @AmeerHajAli, @simon-mo, @tom-doerr, @sven1977, @clarkzinzow, @mxz96102, @SebastianBo1995, @amogkam, @iycheng, @sumanthratna, @Catch-Bull, @pcmoritz, @architkulkarni, @stefanbschneider, @tgaddair, @xcharleslin, @cthoyt, @fcardoso75, @Jeffwan, @mvindiola1, @michaelzhiluo, @rlan, @mwtian, @SongGuyang, @YeahNew, @kathryn-zhou, @rfali, @jennakwon06, @Yeachan-Heo
lru_evict flag is now deprecated. Recommended solution now is to use object spilling.
ray.get ctrl-c (#14425)dask.persist().lru_evict flag is now deprecated. Recommended solution now is to use object spilling.rllib rollout runs in parallel by default via Trainer’s evaluation worker set. (#14208)on_learn_on_batch callback allows custom metrics. (#13584); Add TorchPolicy.export_model(). (#13989)HEBOSearcher (#14504, #14246, #13863, #14427)Many thanks to all those who contributed to this release: @geraint0923, @iycheng, @yurirocha15, @brian-yu, @harryge00, @ijrsvt, @wumuzi520, @suquark, @simon-mo, @clarkzinzow, @RaphaelCS, @FarzanT, @ob, @ashione, @ffbin, @robertnishihara, @SongGuyang, @zhe-thoughts, @rkooo567, @Ezra-H, @acxz, @clay4444, @QuantumMecha, @jirkafajfr, @wuisawesome, @Qstar, @guykhazma, @devin-petersohn, @jeroenboeye, @ConeyLiu, @dependabot[bot], @fyrestone, @micahtyong, @javi-redondo, @Manuscrit, @mxz96102, @EscapeReality846089495, @WangTaoTheTonic, @stanislav-chekmenev, @architkulkarni, @Yard1, @tchordia, @zhisbug, @Bam4d, @niole, @yiranwang52, @thomasjpfan, @DmitriGekhtman, @gabrieleoliaro, @jparkerholder, @kfstorm, @andrew-rosenfeld-ts, @erikerlandson, @Crissman, @raulchen, @sumanthratna, @Catch-Bull, @chaokunyang, @krfricke, @raoul-khour-ts, @sven1977, @kathryn-zhou, @AmeerHajAli, @jovany-wang, @amogkam, @antoine-galataud, @tgaddair, @randxie, @ChaceAshcraft, @ericl, @cassidylaidlaw, @TanjaBayer, @lixin-wei, @lena-kashtelyan, @cathrinS, @qicosmos, @richardliaw, @rmsander, @jCrompton, @mjschock, @pdames, @barakmich, @michaelzhiluo, @stephanie-wang, @edoakes
Ray Serve backends now accept a Starlette request object instead of a Flask request object (#12852). This is a breaking change, so please read the mig…
WandbLogger) now also accepts wandb.data_types.Video (#13169)HyperoptSearch) can now directly accept category variables instead of indices (#12715)points_to_evaluate (#12790, #12916)as_trainable (#13173)💫 Enhancements:
serve_handle.remote(...). (#12592)📖 Documentation:
Progress towards supporting a Ray client
mode is set in tune.run (#12159).metric or mode unset in search algorithms (#11646)reconfigure method to your Servable to allow reconfiguring backend replicas at runtime. (#11709)ddp_args field into TrainingOperator.register (#11771).TorchTrainer now properly scales up to more workers if more resources become available (#12562)Many thanks to all those who contributed to this release: @bartbroere, @SongGuyang, @gramhagen, @richardliaw, @ConeyLiu, @weepingwillowben, @zhongchun, @ericl, @dHannasch, @timurlenk07, @kaushikb11, @krfricke, @desktable, @bcahlit, @rkooo567, @amogkam, @micahtyong, @edoakes, @stephanie-wang, @clay4444, @ffbin, @mfitton, @barakmich, @pcmoritz, @AmeerHajAli, @DmitriGekhtman, @iamhatesz, @raulchen, @ingambe, @allenyin55, @sven1977, @huyz-git, @yutaizhou, @suquark, @ashione, @simon-mo, @raoul-khour-ts, @Leemoonsoo, @maximsmol, @alanwguo, @kishansagathiya, @wuisawesome, @acxz, @gabrieleoliaro, @clarkzinzow, @jparkerholder, @kingsleykuan, @InnovativeInventor, @ijrsvt, @lasagnaphil, @lcodeca, @jiajiexiao, @heng2j, @wumuzi520, @mvindiola1, @aaronhmiller, @robertnishihara, @WangTaoTheTonic, @chaokunyang, @nikitavemuri, @kfstorm, @roireshef, @fyrestone, @viotemp1, @yncxcw, @karstenddwx, @hartikainen, @sumanthratna, @architkulkarni, @michaelzhiluo, @UWFrankGu, @oliverhu, @danuo, @lixin-wei
Ray 1.0.1 is now officially released!
Ray 1.0.1 is now officially released!
serve_client is serialized. (#11181)serve_client.get_handle("endpoint") will now get a handle to nearest node, increasing scalability in distributed mode. (#11477)num_steps continue training (#11142)tune.with_parameters(), a wrapper function to pass arbitrary objects through the object store to trainables (#11504)DockerSyncer (#11035)tune.is_session_enabled() in the Function API to toggle between Tune and non-tune code (#10840)yield and return statements (#10857)tune.run(callbacks=... (#11001)reuse_actors for function API, which can largely accelerate tuning jobs.We thank all the contributors for their contribution to this release!
@acxz, @Gekho457, @allenyin55, @AnesBenmerzoug, @michaelzhiluo, @SongGuyang, @maximsmol, @WangTaoTheTonic, @Basasuya, @sumanthratna, @juliusfrost, @maxco2, @Xuxue1, @jparkerholder, @AmeerHajAli, @raulchen, @justinkterry, @herve-alanaai, @richardliaw, @raoul-khour-ts, @C-K-Loan, @mattearllongshot, @robertnishihara, @internetcoffeephone, @Servon-Lee, @clay4444, @fangyeqing, @krfricke, @ffbin, @akotlar, @rkooo567, @chaokunyang, @PidgeyBE, @kfstorm, @barakmich, @amogkam, @edoakes, @ashione, @jseppanen, @ttumiel, @desktable, @pcmoritz, @ingambe, @ConeyLiu, @wuisawesome, @fyrestone, @oliverhu, @ericl, @weepingwillowben, @rkube, @alanwguo, @architkulkarni, @lasagnaphil, @rohitrawat, @ThomasLecat, @stephanie-wang, @suquark, @ijrsvt, @VishDev12, @Leemoonsoo, @scottwedge, @sven1977, @yiranwang52, @carlos-aguayo, @mvindiola1, @zhongchun, @mfitton, @simon-mo
The ray.init() and ray start commands have been cleaned up to remove deprecated arguments
We're happy to announce the release of Ray 1.0, an important step towards the goal of providing a universal API for distributed computing.
To learn more about Ray 1.0, check out our blog post and whitepaper.
ray start commands have been cleaned up to remove deprecated arguments@ray.remoteBreaking changes:
ray_auto_init, run_errored_only, global_checkpoint_period, with_server (#10518)tune.run(upload_dir, sync_to_cloud, sync_to_driver, sync_on_checkpoint have been moved to tune.SyncConfig [docs] (#10518)New APIs:
mode, metric, time_budget parameters for tune.run (#10627, #10642)create_scheduler/create_searcher shim layer to create search algorithms/schedulers via string, reducing boilerplate code (#10456).tune.run(resume="run_errored_only") (#10060)Other Changes:
tune.run(log_to_file=...) (#9817)serve.client API makes it easy to appropriately manage lifetime for multiple Serve clusters. (#10460)We thank all the contributors for their contribution to this release!
@MissiontoMars, @ijrsvt, @desktable, @kfstorm, @lixin-wei, @Yard1, @chaokunyang, @justinkterry, @pxc, @ericl, @WangTaoTheTonic, @carlos-aguayo, @sven1977, @gabrieleoliaro, @alanwguo, @aryairani, @kishansagathiya, @barakmich, @rkube, @SongGuyang, @qicosmos, @ffbin, @PidgeyBE, @sumanthratna, @yushan111, @juliusfrost, @edoakes, @mehrdadn, @Basasuya, @icaropires, @michaelzhiluo, @fyrestone, @robertnishihara, @yncxcw, @oliverhu, @yiranwang52, @ChuaCheowHuan, @raphaelavalos, @suquark, @krfricke, @pcmoritz, @stephanie-wang, @hekaisheng, @zhijunfu, @Vysybyl, @wuisawesome, @sanderland, @richardliaw, @simon-mo, @janblumenkamp, @zhuohan123, @AmeerHajAli, @iamhatesz, @mfitton, @noahshpak, @maximsmol, @weepingwillowben, @raulchen, @09wakharet, @ashione, @henktillman, @architkulkarni, @rkooo567, @zhe-thoughts, @amogkam, @kisuke95, @clarkzinzow, @holli, @raoul-khour-ts
__Deprecated “Policy Optimizer”__ package (in favor of new distributed execution API).
ObjectIDs are now called ObjectRefs because they are not just IDs.ray up --log-new-style. The new output style will be enabled by default (with opt-out) in a later release.ray up and ray down, available with the --log-new-style flag. It will be enabled by default (with opt-out) in a later release. Full output style coverage for Cluster Launcher commands will also be available in a later release. (#9322, #9943, #9960, #9690)ray status debug tool and ray --version (#9091, #8886).ray memory now also supports redis_password (#9492)replay_sequence_length. We now allow a) storing sequences (over time) in replay buffers and retrieving “lock-stepped” multi-agent samples.DistributedTrainableCreator, a simple wrapper for distributed parameter tuning with multi-node DistributedDataParallel models (#9550, #9739)serve.shadow_traffic(endpoint, backend, fraction) duplicates and sends a fraction of the incoming traffic to a specific backend. (#9106)serve.shutdown() cleanup the current Serve instance in Ray cluster. (#8766)num_replicas exceeds the maximum resource in the cluster (#9005)--dashboard-port and the argument dashboard_port to ray.initWe thank the following contributors for their work on this release: @jsuarez5341, @amitsadaphule, @krfricke, @williamFalcon, @richardliaw, @heyitsmui, @mehrdadn, @robertnishihara, @gabrieleoliaro, @amogkam, @fyrestone, @mimoralea, @edoakes, @andrijazz, @ElektroChan89, @kisuke95, @justinkterry, @SongGuyang, @barakmich, @bloodymeli, @simon-mo, @TomVeniat, @lixin-wei, @alanwguo, @zhuohan123, @michaelzhiluo, @ijrsvt, @pcmoritz, @LecJackS, @sven1977, @ashione, @JerryLeeCS, @raphaelavalos, @stephanie-wang, @ruifangChen, @vnlitvinov, @yncxcw, @weepingwillowben, @goulou, @acmore, @wuisawesome, @gramhagen, @anabranch, @internetcoffeephone, @Alisahhh, @henktillman, @deanwampler, @p-christ, @Nicolaus93, @WangTaoTheTonic, @allenyin55, @kfstorm, @rkooo567, @ConeyLiu, @09wakharet, @piojanu, @mfitton, @KristianHolsheimer, @AmeerHajAli, @pdames, @ericl, @VishDev12, @suquark, @stefanbschneider, @raulchen, @dcfidalgo, @chappers, @aaarne, @chaokunyang, @sumanthratna, @clarkzinzow, @BalaBalaYi, @maximsmol, @zhongchun, @wumuzi520, @ffbin
Deprecate PolicyOptimizers in favor of the new distributed execution API.
max_restarts in @ray.remote). Try it out with max_task_retries=-1 where -1 indicates that the system can retry the task until it succeeds.max_restarts in the @ray.remote decorator instead of max_reconstructions. You can use -1 to indicate infinity, i.e., the system should always restart the actor if it fails unexpectedly.name=<str> in its remote constructor (Actor.options(name='<str>').remote()). To delete the actor, you can use ray.kill.rllib/examples scripts now work for either TensorFlow or PyTorch (--torch command line option).use_pytorch and eager flags in configs and replace these with framework=[tf|tfe|torch].ExperimentAnalysis tool (#8445).tune.report is now the right way to use the Tune function API. tune.track is deprecated (#8388)serve.list_backends and serve.list_endpoints (#8737)serve.delete_backend and serve.delete_endpoint (#8252, #8256)serve.create_endpoint now requires specifying the backend directly. You can remove serve.set_traffic if there's only one backend per endpoint. (#8764)serve.init API cleanup, the following options were removed:
blocking, ray_init_kwargs, start_server (#8747, #8447, #8620)serve.init now supports namespacing with name. You can run multiple serve clusters with different names on the same ray cluster. (#8449)X-SERVE-SHARD-KEY HTTP header. (#8449)ray up accepts remote URLs that point to the desired cluster YAML. (#8279)ray.init()).We thank the following contributors for their work on this release: @pcmoritz, @akharitonov, @devanderhoff, @ffbin, @anabranch, @jasonjmcghee, @kfstorm, @mfitton, @alecbrick, @simon-mo, @konichuvak, @aniryou, @wuisawesome, @robertnishihara, @ramanNarasimhan77, @09wakharet, @richardliaw, @istoica, @ThomasLecat, @sven1977, @ceteri, @acxz, @iamhatesz, @JarnoRFB, @rkooo567, @mehrdadn, @thomasdesr, @janblumenkamp, @ujvl, @edoakes, @maximsmol, @krfricke, @amogkam, @gehring, @ijrsvt, @internetcoffeephone, @LucaCappelletti94, @chaokunyang, @WangTaoTheTonic, @fyrestone, @raulchen, @ConeyLiu, @stephanie-wang, @suquark, @ashione, @Coac, @JosephTLucas, @ericl, @AmeerHajAli, @pdames
Search algorithms are refactored to make them easier to extend, deprecating max_concurrent argument. (#7037, #8258, #8285)
ray.cancel API.lineage_pinning_enabled: 1 in the internal config. (#7733)max_concurrent argument. (#7037, #8258, #8285)We thank the following contributors for their work on this release:
@simon-mo, @robertnishihara, @BalaBalaYi, @ericl, @kfstorm, @tirkarthi, @nflu, @ffbin, @chaokunyang, @ijrsvt, @pcmoritz, @mehrdadn, @sven1977, @iamhatesz, @nmatthews-asapp, @mitchellstern, @edoakes, @anabranch, @billowkiller, @eisber, @ujvl, @allenyin55, @yncxcw, @deanwampler, @DavidMChan, @ConeyLiu, @micafan, @rkooo567, @datayjz, @wizardfishball, @sumanthratna, @ashione, @marload, @stephanie-wang, @richardliaw, @jovany-wang, @MissiontoMars, @aannadi, @fyrestone, @JarnoRFB, @wumuzi520, @roireshef, @acxz, @gramhagen, @Servon-Lee, @ClarkZinzow, @mfitton, @maximsmol, @janblumenkamp, @istoica
Fix asycnio actor deserialization.
ray memory will collect statistics from all nodes. (#7721)Policy.export_model(). (#7759)fail_fast enables experiments to fail quickly. (#7528)serve.create_backend(..., methods=["GET", "POST"]).X-SERVE-CALL-METHOD header or in RayServeHandle through handle.options("method").remote(...).We thank the following contributors for their work on this release:
@carlbalmer, @BalaBalaYi, @saurabh3949, @maximsmol, @SongGuyang, @istoica, @pcmoritz, @aannadi, @kfstorm, @ijrsvt, @richardliaw, @mehrdadn, @wumuzi520, @cloudhan, @edoakes, @mitchellstern, @robertnishihara, @hhoke, @simon-mo, @ConeyLiu, @stephanie-wang, @rkooo567, @ffbin, @ericl, @hubcity, @sven1977
Deprecate use_pickle flag for serialization.
ray.init(_internal_config=json.dumps({"distributed_ref_counting_enabled": 0})).ray.init(lru_evict=True).ray memory is added to help debug memory usage: (#7589)
> ray memory
-----------------------------------------------------------------------------------------------------
Object ID Reference Type Object Size Reference Creation Site
=====================================================================================================
; worker pid=51230
ffffffffffffffffffffffff0100008801000000 PINNED_IN_MEMORY 8231 (deserialize task arg) __main__..sum_task
; driver pid=51174
45b95b1c8bd3a9c4ffffffff010000c801000000 USED_BY_PENDING_TASK ? (task call) memory_demo.py:<module>:13
ffffffffffffffffffffffff0100008801000000 USED_BY_PENDING_TASK 8231 (put object) memory_demo.py:<module>:6
ef0a6c221819881cffffffff010000c801000000 LOCAL_REFERENCE ? (task call) memory_demo.py:<module>:14
-----------------------------------------------------------------------------------------------------
actor.__ray_kill__() to ray.kill(actor). (#7360)use_pickle flag for serialization. (#7474)experimental.NoReturn. (#7475)experimental.signal API. (#7477)prctl(PR_SET_PDEATHSIG) on Linux instead of reaper. (#7150)get_global_worker(), RuntimeContext. (#7638)repeater class for high variance trials. (#7366)@serve.route returns a handle, add handle.scale, handle.set_max_batch_size. (#7569)data_creator fed to TorchTrainer now must return a dataloader rather than datasets.data_loader_config and batch_size are no longer parameters for TorchTrainer.num_workers.@RayRemote annotation is removed.Ray.call(ActorClass::method, actor), the new API is actor.call(ActorClass::method).We thank the following contributors for their work on this release: @rkooo567, @maximsmol, @suquark, @mitchellstern, @micafan, @ClarkZinzow, @Jimpachnet, @mwbrulhardt, @ujvl, @chaokunyang, @robertnishihara, @jovany-wang, @hyeonjames, @zhijunfu, @datayjz, @fyrestone, @eisber, @stephanie-wang, @allenyin55, @BalaBalaYi, @simon-mo, @thedrow, @ffbin, @amogkam, @TisonKun, @richardliaw, @ijrsvt, @wumuzi520, @mehrdadn, @raulchen, @landcold7, @ericl, @edoakes, @sven1977, @ashione, @jorenretel, @gramhagen, @kfstorm, @anthonyhsyu, @pcmoritz
Pyarrow is no longer vendored. Ray directly uses the C++ Arrow API. You can use any version of pyarrow with ray.
ray.show_in_webui to display custom messages for actors. Please try it out and send us feedback! (#6705, #6820, #6822, #6911, #6932, #6955, #7028, #7034)ray.init(_internal_config=json.dumps({"distributed_ref_counting_enabled": 1})). It is designed to help manage memory using precise distributed garbage collection. (#6945, #6946, #7029, #7075, #7218, #7220, #7222, #7235, #7249)ray.experimental.multiprocessing => ray.util.multiprocessingray.experimental.joblib => ray.util.joblibray.experimental.iter => ray.util.iterray.experimental.serve => ray.serveray.experimental.sgd => ray.util.sgdOMP_NUM_THREADS environment variable defaults to 1 if unset. This improves training performance and reduces resource contention. (#6998)psutil and setproctitle to support turning the dashboard on by default. Running import psutil after import ray will use the version of psutil that ships with Ray. (#7031)delete() will not delete objects in the in-memory store. (#7117)--all-nodes option to rsync-up. (#7065)We thank the following contributors for their work on this release: @mitchellstern, @hugwi, @deanwampler, @alindkhare, @ericl, @ashione, @fyrestone, @robertnishihara, @pcmoritz, @richardliaw, @yutaizhou, @istoica, @edoakes, @ls-daniel, @BalaBalaYi, @raulchen, @justinkterry, @roireshef, @elpollouk, @kfstorm, @Bassstring, @hhbyyh, @Qstar, @mehrdadn, @chaokunyang, @flying-mojo, @ujvl, @AnanthHari, @rkooo567, @simon-mo, @jovany-wang, @ijrsvt, @ffbin, @AmeerHajAli, @gaocegege, @suquark, @MissiontoMars, @zzyunzhi, @sven1977, @stephanie-wang, @amogkam, @wuisawesome, @aannadi, @maximsmol
Deprecated Python 2 (#6581, #6601, #6624, #6665)
ObjectIDs corresponding to ray.put() objects and task returns are now reference counted locally in Python and when passed into a remote task as an argument. ObjectIDs that have a nonzero reference count will not be evicted from the object store. Note that references for ObjectIDs passed into remote tasks inside of other objects (e.g., f.remote((ObjectID,)) or f.remote([ObjectID])) are not currently accounted for. (#6554)asyncio actor support: actors can now define async def method and Ray will run multiple method invocations in the same event loop. The maximum concurrency level can be adjusted with ActorClass.options(max_concurrency=2000).remote().asyncio ObjectID support: Ray ObjectIDs can now be directly awaited using the Python API. await my_object_id is similar to ray.get(my_object_id), but allows context switching to make the operation non-blocking. You can also convert an ObjectID to a asyncio.Future using ObjectID.as_future().ParallelIterators can be used to more convienently load and process data into Ray actors. See the documentation for details.multiprocessing.Pool API out of the box, so you can scale existing programs up from a single node to a cluster by only changing the import statment. See the documentation for details.actor.__ray_kill__() to terminate actors immediately (#6523)We thank the following contributors for their work on this release:
@chaokunyang, @Qstar, @simon-mo, @wlx65003, @stephanie-wang, @alindkhare, @ashione, @harrisonfeng, @JingGe, @pcmoritz, @zhijunfu, @BalaBalaYi, @kfstorm, @richardliaw, @mitchellstern, @michaelzhiluo, @ziyadedher, @istoica, @EyalSel, @ffbin, @raulchen, @edoakes, @chenk008, @frthjf, @mslapek, @gehring, @hhbyyh, @zzyunzhi, @zhu-eric, @MissiontoMars, @sven1977, @walterddr, @micafan, @inventormc, @robertnishihara, @ericl, @ZhongxiaYan, @mehrdadn, @jovany-wang, @ujvl, @bharatpn
This is the first release with gRPC direct calls enabled by default for both tasks and actors, which substantially improves task submission performanc
This is the first release with gRPC direct calls enabled by default for both tasks and actors, which substantially improves task submission performance.
Note: in some cases, reconstruction of large evicted objects is not possible with direct calls. To revert to the 0.7.7 behaviour, you can set the environment variable RAY_FORCE_DIRECT=0.
We thank the following contributors for their work on this release:
@zplizzi, @istoica, @ericl, @mehrdadn, @walterddr, @ujvl, @alindkhare, @timgates42, @chaokunyang, @eugenevinitsky, @kfstorm, @Maltimore, @visatish, @simon-mo, @AmeerHajAli, @wumuzi520, @robertnishihara, @micafan, @pcmoritz, @zhijunfu, @edoakes, @sytelus, @ffbin, @richardliaw, @Qstar, @stephanie-wang, @Coac, @mitchellstern, @MissiontoMars, @deanwampler, @hhbyyh, @raulchen
Remote functions and actors now support kwargs and positionals (#5606).
ray.get now supports a timeout argument (#6107). If the object isn't available before the timeout passes, a RayTimeoutError is raised.queue_trials so to enable cluster autoscaling with a CPU-Only Head Node. #5900We thank the following contributors for their amazing contributions:
@zhuohan123, @jovany-wang, @micafan, @richardliaw, @waldroje, @mitchellstern, @visatish, @mehrdadn, @istoica, @ericl, @adizim, @simon-mo, @lsklyut, @zhu-eric, @pcmoritz, @hhbyyh, @suquark, @sotte, @hershg, @pschafhalter, @stackedsax, @edoakes, @mawright, @stephanie-wang, @ujvl, @ashione, @couturierc, @AdamGleave, @robertnishihara, @DaveyBiggers, @daiyaanarfeen, @danyangz, @AmeerHajAli, @mimoralea
The Ray autoscaler now supports Kubernetes as a backend (#5492). This makes it possible to start a Ray cluster on top of your existing Kubernetes clus
The Ray autoscaler now supports Kubernetes as a backend (#5492). This makes it possible to start a Ray cluster on top of your existing Kubernetes cluster with a simple shell command.
The Ray cluster dashboard has been revamped (#5730, #5857) to improve the UI and include logs and error messages. More improvements will be coming in the near future.
ray.init(include_webui=True) or ray start --include-webui.tf.function. #5705We thank the following contributors for their amazing contributions:
@hershg, @JasonWayne, @kfstorm, @richardliaw, @batzner, @vakker, @robertnishihara, @stephanie-wang, @gehring, @edoakes, @zhijunfu, @pcmoritz, @mitchellstern, @ujvl, @simon-mo, @ecederstrand, @mawright, @ericl, @anthonyhsyu, @suquark, @waldroje
tune.function() is now deprecated. #5601
ray.put() are now reference counted. #5590pin_object_data() API. #5637ray.init(). #5685redis_address passed to ray.init is now just address. #5602tune.function() is now deprecated. #5601Breaking change: The redis_address parameter was renamed to address (#5412, #5602) and the former will be removed in the future.
There were many documentation improvements (#5391, #5389, #5175). As we continue to improve the documentation we value your feedback through the “Doc suggestion?” link at the top of the documentation. Notable improvements:
Ray supports memory limits now to ensure memory-intensive applications run predictably and reliably. You
can activate them through the ray.remote decorator:
@ray.remote(
memory=2000 * 1024 * 1024,
object_store_memory=200 * 1024 * 1024)
class SomeActor(object):
def __init__(self, a, b):
pass
You can set limits for the heap and the object store, see the documentation.
There is now preliminary support for projects, see the the project documentation. Projects allow you to package your code and easily share it with others, ensuring a reproducible cluster setup. To get started, you can run
# Create a new project.
ray project create <project-name>
# Launch a session for the project in the current directory.
ray session start
# Open a console for the given session.
ray session attach
# Stop the given session and all of its worker nodes.
ray session stop
Check out the examples. This is an actively developed new feature so we appreciate your feedback!
Breaking change: The redis_address parameter was renamed to address (#5412, #5602) and the former will be removed in the future.
{“a”: {“b”: 1}} => {“a/b”: 1} #5346Various fixes: Fix log monitor issues #4382 #5221 #5569, the top-level ray directory was cleaned up #5404
We thank the following contributors for their amazing contributions:
@jon-chuang, @lufol, @adamochayon, @idthanm, @RehanSD, @ericl, @michaelzhiluo, @nflu, @pengzhenghao, @hartikainen, @wsjeon, @raulchen, @TomVeniat, @layssi, @jovany-wang, @llan-ml, @ConeyLiu, @mitchellstern, @gregSchwartz18, @jiangzihao2009, @jichan3751, @mhgump, @zhijunfu, @micafan, @simon-mo, @richardliaw, @stephanie-wang, @edoakes, @akharitonov, @mawright, @robertnishihara, @lisadunlap, @flying-mojo, @pcmoritz, @jredondopizarro, @gehring, @holli, @kfstorm
It improves support for Keras and RNN models, as well as allowing object-oriented reuse of variables. ModelV1 API is deprecated. No migration is neede…
ray.experimental.sgd.pytorch.PyTorchTrainer is ready for early adopters. Checkout the documentation here. We welcome your feedback!model_creator = lambda config: YourPyTorchModel()
data_creator = lambda config: YourTrainingSet(), YourValidationSet()
trainer = PyTorchTrainer(
model_creator,
data_creator,
optimizer_creator=utils.sgd_mse_optimizer,
config={"lr": 1e-4},
num_replicas=2,
resources_per_replica=Resources(num_gpus=1),
batch_size=16,
backend="auto")
for i in range(NUM_EPOCHS):
trainer.train()
ray.init to connect to the current cluster with ray.jobs(). #5076>>> ray.jobs()
[{'JobID': '02000000',
'NodeManagerAddress': '10.99.88.77',
'DriverPid': 74949,
'StartTime': 1564168784,
'StopTime': 1564168798},
{'JobID': '01000000',
'NodeManagerAddress': '10.99.88.77',
'DriverPid': 74871,
'StartTime': 1564168742}]
local_mode now behaves more consistently. #5060learner_queue_timeout can be configured for async sample optimizer. #5270reproducible_seed can be used for reproducible experiments. #5197ExperimentAnalysis is now returned by default from tune.run. To obtain a list of trials, use analysis.trials. #5115sync_to_driver). Syncing behavior (upload_dir) between cluster and cloud is now separately customizable (sync_to_cloud). This changes the structure of the uploaded directory - now local_dir is synced with upload_dir. #4450Analysis and ExperimentAnalysis objects. Analysis object will now return all trials in a folder; ExperimentAnalysis is a subclass that returns all trials of an experiment. #5115tune.run(keep_checkpoints_num=...). Enables only keeping the last N checkpoints. #5117tune.run(log_sys_usage=True). #4924tune.run(global_checkpoint_period=...). #4859Add a request_cores function for manual autoscaling. You can now manually request resources for the autoscaler. #4754
Local cluster:
More readable example yaml with comments. #5290
Multiple cluster name is supported. #4864
Improved logging with AWS NodeProvider. create_instance call will be logged. #4998
We thank the following contributors for their amazing contributions:
@joneswong, @1beb, @richardliaw, @pcmoritz, @raulchen, @stephanie-wang, @jiangzihao2009, @LorenzoCevolani, @kfstorm, @pschafhalter, @micafan, @simon-mo, @vipulharsh, @haje01, @ls-daniel, @hartikainen, @stefanpantic, @edoakes, @llan-ml, @alex-petrenko, @ztangent, @gravitywp, @MQQ, @dulex123, @morgangiraud, @antoine-galataud, @robertnishihara, @qxcv, @vakker, @jovany-wang, @zhijunfu, @ericl
Continue moving the worker code to C++. #5031, #4966, #4922, #4899, #5032, #4996, #4875
@ray.remote now inherits the function docstring. #4985typing module from setup.py install_requirements. #4971DriverID -> JobID, change all ID functions to camel case. #4964, #4896resources_per_trial when it is already configured. #4880extra_action_out_fn. #4894sample_async is used with pytorch for A3C. #5000PolicyEvaluator => RolloutWorker. #4820build_trainer() pattern. #4920build_tf_policy() pattern. #4823signal.receive. #5002We thank the following contributors for their amazing contributions: @jiangzihao2009, @raulchen, @ericl, @hershg, @kfstorm, @kiddyboots216, @jovany-wang, @pschafhalter, @richardliaw, @robertnishihara, @stephanie-wang, @simon-mo, @zhijunfu, @ls-daniel, @ajgokhale, @rueberger, @suquark, @guoyuhong, @jovany-wang, @pcmoritz, @hartikainen, @timonbimon, @TianhongDai
Begin deprecating Python 2 support in RLlib. #4832
ray.global_state.client_table() -> ray.nodes()ray.global_state.task_table() -> ray.tasks()ray.global_state.object_table() -> ray.objects()ray.global_state.chrome_tracing_dump() -> ray.timeline()ray.global_state.cluster_resources() -> ray.cluster_resources()ray.global_state.available_resources() -> ray.available_resources()<branch-name>/<commit-id>. #4949resources_per_trial when it is already configured. #4880extra_action_out_fn. #4894build_trainer() pattern. #4823PolicyEvaluator -> RolloutWorker. #4820PolicyGraph -> Policy, move from evaluation/ to policy/. #4819(Revision: 6/23/2019 - Accidentally included commits that were not part of the release.)
Backend bug fixes. #4766, #4763, #4605
Your coding agent can read these notes before it upgrades. Set up the MCP server →