Commit graph

6294 commits

Author SHA1 Message Date
Stephanie Wang
28d597e009
Revert "[workflow] Convert DAG to workflow (#22925)" (#23081)
This reverts commit 0a9f966e63.
2022-03-11 09:49:08 -08:00
shrekris-anyscale
665bdbff47
[serve] Exclude unset fields from Ray actor options (#23059)
The `schema_to_deployment()` function preserve unset fields with unexpected default argument types. This change excludes unset fields in that function and also changes the dictionaries' default values to empty dicts.
2022-03-11 10:45:21 -06:00
Kenneth
07372927cc
Enable buffering and spilling to multiple remote storages (#22798)
Buffering writes to AWS S3 is highly recommended to maximize throughput. Reducing the number of remote I/O requests can make spilling to remote storages as effective as spilling locally.

In a test where 512GB of objects were created and spilled, varying just the buffer size while spilling to a S3 bucket resulted in the following runtimes.

Buffer Size | Runtime (s)
-- | --
Default | 3221.865916
256KB | 1758.885839
1MB | 748.226089
10MB | 526.406466
100MB | 494.830513

Based on these results, a default buffer size of 1MB has been added. This is the minimum buffer size used by AWS Kinesis Firehose, a streaming service for S3. On systems with larger availability, it is good to configure a larger buffer size.

For processes that reach the throughput limits provided by S3, we can remove that bottleneck by supporting more prefixes/buckets. These impacts are less noticeable as the performance gains from using a large buffer prevent us from reaching a bottleneck. The following runtimes were achieved by spilling 512GB with a 1MB buffer and varying prefixes.

Prefixes | Runtime (s)
-- | --
1 | 748.226089
3 | 527.658646
10 | 516.010742


Together these changes enable faster large-scale object spilling.

Co-authored-by: Ubuntu <ubuntu@ip-172-31-54-240.us-west-2.compute.internal>
2022-03-11 11:27:02 -05:00
Kai Fricke
61295f8b58
[ml/checkpoint] Fix checkpoint location on remote node (#23068)
Currently breaks tests where the checkpoint is stored on a remote node (e.g. via Ray client), e.g.: https://buildkite.com/ray-project/release-tests-branch/builds/132#6a4936a8-41dd-4fd2-9f02-976855cbd9b7
Instead, we can set the properties manually.
In the future, we need a story on how to refer to checkpoints kept on remote nodes.
2022-03-11 15:38:21 +00:00
Jialing He
0cbbb8c1d0
[runtime env][core] Use Proto message RuntimeEnvInfo between user code and core_worker (#22856) 2022-03-11 22:14:18 +08:00
Kai Fricke
aed17dd346
Revert "Revert "[ml/tune] Expose new checkpoint interface to users (#22741)" (#23006)" (#23009)
This reverts commit 85598d9d10.

Test breakage was unrelated.
2022-03-11 09:51:41 +00:00
Jialing He
0c5440ee72
[runtime env] Deletes the proto cache on RuntimeEnv (#22944)
Mainly the following things:
- This PR deletes the proto cache on RuntimeEnv, ensuring that the user's modification of RuntimeEnv can take effect in the Proto message.
- validate whole runtime env when serialize runtime_env. 
- overload method `__setitem__` to parse and validate field when it has to modify.
2022-03-11 15:37:18 +08:00
matthewdeng
3a3a7b4be4
[test] add back deleted datasets train test file (#23051) 2022-03-10 21:46:07 -08:00
Amog Kamsetty
f80602b7d2
[Datasets] Separate pandas to torch conversion in to_torch (#22939)
Separate out the conversion of pandas dataframe to torch tensor in a utility function so that the same logic can be used in other places in Ray ML (for example during inference).
2022-03-10 20:40:01 -08:00
xwjiang2010
4b28bc3f09
[Tuner part1] Add Tuner interface. (#22975) 2022-03-10 19:55:59 -08:00
Siyuan (Ryans) Zhuang
0a9f966e63
[workflow] Convert DAG to workflow (#22925)
* convert DAG to a workflow

* deduplicate

* check duplication of steps

* add test for object refs
2022-03-10 19:40:14 -08:00
Eric Liang
148eaeac2e
[minor] Leave a big of wiggle room when calculating shared memory max (#23034) 2022-03-10 17:37:26 -08:00
Amog Kamsetty
9bd00f3e1a
[ml/train] Remove ConvertibleToTrainable and move Trainer to ray.ml.trainer (#23030)
As discussed,

- Removes ConvertibleToTrainable interface and makes as_trainable part of the Trainer interface
- Moves Trainer interface to ray.ml.trainer from ray.ml.train.trainer
2022-03-10 15:24:58 -08:00
Edward Oakes
5a18802ad7
[serve] Remove runtime-env arg from serve start (#23017) 2022-03-10 15:15:59 -06:00
Archit Kulkarni
52a722ffe7
[jobs] Make local pip/conda requirements files work with jobs (#22849) 2022-03-10 15:15:16 -06:00
Amog Kamsetty
a5f41b2c9f
[ml/train] Training Interfaces [1/4]: Ray AIR Trainer interface (#22980) 2022-03-10 13:12:44 -08:00
Guyang Song
3d9f214833
[runtime env] Fix import in subprocess when using pip in runtime_env (#22983)
Fix the issue https://github.com/ray-project/ray/issues/22968
2022-03-10 15:11:41 -06:00
xwjiang2010
b1496d235f
[tune] fix error handling for fail_fast case. (#22982) 2022-03-10 20:10:05 +00:00
Simon Mo
832354ce3f
[Serve] Compatibility bridge between model wrappers and pipeline (#22995) 2022-03-10 11:52:03 -08:00
qicosmos
e4a9517739
[C++ Worker]Python call cpp worker (#22820) 2022-03-10 11:06:14 -08:00
Yi Cheng
bb5fa6b851
Remove redis in setup.py (#22979) 2022-03-10 11:05:03 -08:00
Archit Kulkarni
c78bd809ce
[job submission] Support local py_modules in jobs (#22843) 2022-03-10 11:42:25 -06:00
Stephanie Wang
85598d9d10
Revert "[ml/tune] Expose new checkpoint interface to users (#22741)" (#23006)
This reverts commit e9692a2a80.
2022-03-10 17:07:44 +00:00
shrekris-anyscale
1100c98222
[serve] Implement Serve Application object (#22917)
The concept of a Serve Application, a data structure containing all information needed to deploy Serve on a Ray cluster, has surfaced during recent design discussions. This change introduces a formal Application data structure and refactors existing code to use it.
2022-03-10 10:28:29 -06:00
Jiajun Yao
2e828cc9e1
Delete dead test_setup_worker.py (#22970)
The tested code is dead so we can remove the code and the test.
2022-03-10 07:20:41 -08:00
Antoni Baum
bf49d37176
[tune] Add Trainable.postprocess_checkpoint (#22973)
Adds postprocess_checkpoint method to Trainable to facilitate the checkpointing of preprocessors in AIR.
2022-03-10 12:14:39 +00:00
Tao Wang
bc14512471
[Hotfix]Fix test_actor failure caused by interface change (#23000) 2022-03-10 19:34:12 +08:00
Kai Fricke
e9692a2a80
[ml/tune] Expose new checkpoint interface to users (#22741)
This PR exposes the new checkpoint interface, implemented in #22691, to end users. It does this by replacing the old external facing TrialCheckpoint class with a merged class that supports the old TrialCheckpoint API (upload, download, save) as well as the new Checkpoint API.

With this PR, users can use the new Checkpoint interface for downstream processing of their Ray Tune results. In a follow-up PR, the new Checkpoint interface will be used internally within Ray Tune and Train for bookkeeping, however, that is not required to unblock the Ray ML use case.
2022-03-10 10:20:24 +00:00
kyle-chen-uber
592656ca28
[horovod] remove deprecated slot concept, use worker instead (#22708)
Horovod updated the attributes of DistributedTrainableCreator and args to create Horovod RayExecutor.
horovod/horovod@a729ba7

The major issue is Horovod deprecated "slot" concept, use "worker" instead, which is more consistent with Generic Ray worker. The issue is currently blocking Uber DL trainers to use raytune.

This commit updates the Horovod RayExecutor init args.

Co-authored-by: Kai Fricke <kai@anyscale.com>
2022-03-10 08:16:42 +00:00
shrekris-anyscale
bc82e2d5c4
[serve] Restore "[serve] Support working_dir in serve run (#22760)" (#22971) 2022-03-09 21:31:23 -08:00
Dmitri Gekhtman
19b4281991
[KubeRay] Pin autoscaler image (#22987)
Sets the autoscaler image to the one from this PR's commit.
#22847
2022-03-09 20:38:37 -08:00
Dmitri Gekhtman
413fe08f87
Move KubeRay autoscaler files into Ray autoscaler directory, add an entry-point. (#22847)
This PR consists of the following clean-up items for KubeRay autoscaler integration:

Remove the docker/kuberay directory

Move the Python files formerly in docker/kuberay to the autoscaler directory.

Use a rayproject/ray image for the autoscaler.

Add an entry point for the kuberay autoscaler to scripts.py. Use the entry point in the example config.

Slightly simplify the code that starts the autoscaler.

Ray versions are updated to Ray 1.11.0, which will be officially released within the next couple of days.

By default, Ray >= 1.11.0 runs without Redis. References to Redis are removed from the example config.

Add the autoscaler configuration test to the CI.

Update development documentation to reflect the changes in this PR.
2022-03-09 18:26:57 -08:00
Jiao
3546aabefd
[7/X][Pipeline] pipeline user facing build function (#22934) 2022-03-09 16:11:11 -08:00
Simon Mo
34ffc7e5cf
[Serve] [3/3 Wrappers] Add Model Wrapper with ray.ml (#22915) 2022-03-09 16:06:59 -08:00
Simon Mo
c844c706bf
[Serve] Use starlette public accessor for Request (#22957) 2022-03-09 13:25:03 -08:00
Jiao
ea9069fef4
[6/X][Pipeline] Add HTTP ingress to serve pipeline (#22878) 2022-03-09 11:39:15 -08:00
Simon Mo
3c4827e0b2
[Serve] [2/3 Wrappers] Add Basic HTTP Adapters (#22914) 2022-03-09 11:36:46 -08:00
Antoni Baum
2ead945438
[datasets] Make label_column optional in to_tf (#22916)
Makes the `label_column` argument in `Dataset.to_tf` optional so that it can be used for prediction.
2022-03-09 11:34:18 -08:00
shrekris-anyscale
61e132b478
[serve] Split test_deploy (#22908)
`test_deploy` has become [flakey](https://flakey-tests.ray.io/#) due to timeout. Since `test_deploy` is already a "large" test, this change splits it into two testing files instead of simply increasing the timeout.
2022-03-09 12:22:51 -06:00
Kai Fricke
b267be4758
[ml] Add Ray ML / AIR checkpoint implementation (#22691)
This PR splits up the changes in #22393 and introduces an implementation of the ML Checkpoint interface used by Ray Tune.

This means, the TuneCheckpoint class implements the to/from_[bytes|dict|directory|object_ref|uri] conversion functions, as well as more high-level functions to transition between the different TuneCheckpoint classes. It also includes test cases for Tune's main conversion modes, i.e. dict - intermediate - dict and fs - intermediate - fs.

These changes will be the basis for refactoring the tune interface to use TuneCheckpoint objects instead of TrialCheckpoints (externally) and instead of paths/objects (internally).
2022-03-09 10:02:59 -08:00
Eric Liang
79a3b56015
[ml] Improve the documentation of ml common classes; add kwargs to predictor (#22936) 2022-03-09 10:01:20 -08:00
Simon Mo
77ead01b65
[Serve] [1/3 Wrappers] Allow @serve.batch to accept args and kwargs (#22913) 2022-03-09 09:15:57 -08:00
Kai Fricke
15601ed79b
Revert "[serve] Support working_dir in serve run (#22760)" (#22956)
This reverts commit ab2741d64b.

The PR breaks ray job submission for anyscale:// URLs
2022-03-09 17:04:46 +00:00
Jiajun Yao
069f5f467c
[Test] Fix and enable test_logging.py (#22904)
Fix and enable test_logging.py
2022-03-09 09:01:38 -08:00
ZhuSenlin
a15890be58
[GCS] refactor the resource related data structures on the GCS (#22924)
* refactor resource data structure in gcs

* fix comment

* fix lint error

* fix

* DISABLED_TestRejectedRequestWorkerLeaseReply as it depends on the update of normal task

Co-authored-by: 黑驰 <senlin.zsl@antgroup.com>
2022-03-09 08:22:02 -08:00
matthewdeng
6b0169b23d
[ml] enable CI tests (#22926)
Follow-up to #22748, enabling tests in CI.

Conditions: A new RAY_CI_ML_AFFECTED condition is added for this test suite. The package currently depends on Ray Data, and will be triggered accordingly.

Dependencies: Adding DATA_PROCESSING_TESTING dependencies (set for install-dependencies.sh) for now.
2022-03-09 14:31:53 +00:00
Jialing He
795b5787dc
[runtime env][bug] Fix RuntimEnv ignore eager_install when _validate is True (#22935)
When _validate is True, RuntimeEnv will ignore field eager_install.
2022-03-09 20:16:55 +08:00
Siyuan (Ryans) Zhuang
b621dc099b
[DAG] Update the example in the doc (#22930)
* update doc
2022-03-08 20:09:45 -08:00
Guyang Song
56287d63e5
[runtime env] remove _rewrite_pip_list_ray_libraries (#22890)
We don't need this logic after using virtualenv.
2022-03-09 11:41:33 +08:00
Stephanie Wang
bf09f5071a
[core] Deflake test_plasma_unlimited (#22911)
test_plasma_unlimited::test_task_unlimited is flaky because one of the assertions is race-y and can trigger after the condition is no longer true (see #22883). This fixes the flake by:
- adding an assertion in between two object allocations to force the object store queue to flush
- keeping one of the ObjectRefs in scope to make sure that the object is still fallback-allocated by the time we reach the failing assertion
2022-03-08 22:00:04 -05:00