Commit graph

12173 commits

Author SHA1 Message Date
Kai Fricke
5e1218aae1
[ci/release] Quote pip installs in client runner (#23888)
What: Quotes pip install packages in local environment setup for client runner.

Why: Strings like pyarrow>=6.0.1<7.0.0 currently don't work as they are interpreted as output redirection.
2022-04-13 11:07:12 +01:00
Kai Fricke
40d3a62aa1
[air/wip] Add batch predictor class (#23808)
What: This class adds a generic BatchPredictor class that offers an interface to run batch inference on Ray datasets. It takes a Predictor class and checkpoint as an input, and provides a predict(dataset) method to run scalable scoring inference.

Why: Currently users have to implement scorers themselves. This is mostly boilerplate and prone to errors, so we should provide a simple solution instead.

Note that this predictor also implements the Predictor interface.
2022-04-13 08:58:08 +01:00
mwtian
a85baac3b4
[Core] do not add Ray's pickle5 path to sys.path when running Python >= 3.8 (#23879) 2022-04-12 22:06:25 -07:00
Jiajun Yao
95714cc281
Node affinity scheduling strategy (#23381)
Instead of relying on the node-ip custom resource for static task-to-node placement, this PR introduces an explicit NodeAffinitySchedulingStrategy with the following benefits:

1. Specify node using id instead of ip since ip may not be unique for each node.
2. Support soft constraint so the task can be tolerant to node failures.

After this PR, the node-ip custom resource can be deprecated.
2022-04-12 21:31:26 -07:00
Clark Zinzow
983ef1f2a7
[Datasets] Make from_numpy() more user-friendly. (#23871)
`ray.data.from_numpy()` currently expects to be given a list of ndarray futures, instead of handling concrete ndarrays, as expected (and as allowed by other `from_*` APIs, e.g. `from_pandas`). This PR renames the existing `from_numpy` API to `from_numpy_refs`, and exposes `ray.data.from_numpy`, which takes concrete ndarrays (not object references).
2022-04-12 18:37:59 -07:00
Jian Xiao
6d93e9f0f5
Cleanup the DatasetPipeline references in Getting Started; rename Exchanging to Accessing (#23786) 2022-04-12 17:10:14 -07:00
Stephanie Wang
6d52abe2a2
Add "issue severity" back to GitHub bug template #23793 (#23846) 2022-04-12 17:06:36 -07:00
Clark Zinzow
12f0dc1faf
Revert "[serialization] Enable debugging into pickle backend (#23854)" (#23877)
This reverts commit ef7180365d.
2022-04-12 16:53:20 -07:00
Eric Liang
191c83305b
[minor] Fix minor spelling issue on actor task execution 2022-04-12 16:18:25 -07:00
Edward Oakes
de227ac407
[serve] Add component logger + basic access logging (#23558)
Adds a "component logger" to standardize logging across the HTTP proxy, controller, and deployment replicas.
2022-04-12 18:16:58 -05:00
Jian Xiao
00bdee1290
Add test case for merging empty and non-empty results of map_groups (#23545)
In some cases, the UDF for map_groups() may return value of different types, which should be disallowed.

This PR is to add unit test to make sure we do raise error if such case happens.
2022-04-12 15:30:27 -07:00
Sriram Sankar
608aa771b9
Clean up interaction between Autoscaler and Kuberay (#23428)
This PR updates the KuberayNodeProvider for a more robust interaction with the KubeRay operator.
2022-04-12 14:31:27 -07:00
Siyuan (Ryans) Zhuang
ef7180365d
[serialization] Enable debugging into pickle backend (#23854)
* enable debugging cloudpickle
2022-04-12 13:48:35 -07:00
Kinal Mehta
758e758c32
[rllib] Fix incorrect sequence length for rnn (#23830)
Update the torch policy to find the seq_lens using state_batches instead of input_dict. This helps handle the complex inputs to the model when the inbuilt preprocessing API is disabled.
2022-04-12 21:07:18 +01:00
Kai Fricke
4cb6205726
[tune] Fix empty CSV headers on trial restart (#23860)
What: Only open (create) CSV files when actually reporting results.
Why: When trials crash before they report first (e.g. on init), they will have created an empty CSV file. When results are subsequently written, the CSV header is then missing.
2022-04-12 21:05:29 +01:00
Antoni Baum
ff60ebd4b3
[tune] Fix memory resources for head bundle (#23861)
Fixes memory and object_store_memory actor options not being set properly for the Tune trainable.
2022-04-12 20:56:05 +01:00
Stephanie Wang
71e142b1fa
[core][tests] Add nightly test for datasets random_shuffle and sort (#23807)
Copied from #23784.

Adding a large-scale nightly test for Datasets random_shuffle and sort. The test script generates random blocks and reports total run time and peak driver memory.

Modified to fix lint.
2022-04-12 12:53:57 -07:00
Tao Wang
6aefe9b36e
[Core]Save task spec in separate table (#22650)
This is a rebase version of #11592. As task spec info is only needed when gcs create or start an actor, so we can remove it from actor table and save the serialization time and memory/network cost when gcs clients get actor infos from gcs.

As internal repository varies very much from the community. This pr just add some manual check with simple cherry pick. Welcome to comment first and at the meantime I'll see if there's any test case failed or some points were missed.
2022-04-12 12:24:26 -07:00
Kai Fricke
c30491d6ef
[tune] Skip tmp checkpoints in analysis and read iteration from metadata (#23859)
What: Skips left-over checkpoint_tmp* directories when loading experiment analysis. Also loads iteration number from metadata file rather than parsing the checkpoint directory name.

Why: Sometimes temporary checkpoint directories are not deleted correctly when restoring (e.g. when interrupted). In these cases, they shouldn't be included in experiment analysis. Parsing their iteration number also failed, and should generally be done by reading the metadata file, not by inferring it from the directory name.
2022-04-12 17:09:03 +01:00
Kai Fricke
416cfb8753
[tune] Fix syncing between nodes in placement groups (#23864)
Break out of placement groups to make syncing work in tune/train trials.
2022-04-12 17:06:19 +01:00
Kai Fricke
7eb3543e93
[tune] Chunk file transfers in cross-node checkpoint syncing (#23804)
What: This introduces a general utility to synchronize directories between two nodes, derived from the RemoteTaskClient. This implementation uses chunked transfers for more efficient communication.

Why: Transferring files over 2GB in size leads to superlinear time complexity in some setups (e.g. local macbooks). This could be due to memory limits, swapping, or gRPC limits, and is explored in a different thread. To overcome this limitation, we use chunked data transfers which show quasi-linear scalability for larger files.
2022-04-12 13:45:07 +01:00
Clark Zinzow
7d262f886d
[data] Preserve block order when batch mapping using the actor compute model. (#23837)
This PR preserves block order when transforming under the actor compute model. Before this PR, we were submitting block transformations in reverse order and creating the output block list in completion order.
2022-04-12 08:42:27 +01:00
Siyuan (Ryans) Zhuang
e0a68f5076
[workflow] skip flaky tests (#23848)
* skip flaky tests
2022-04-11 23:08:56 -07:00
Sven Mika
a8494742a3
[RLlib] Memory leak finding toolset using tracemalloc + CI memory leak tests. (#15412) 2022-04-12 07:50:09 +02:00
Siyuan (Ryans) Zhuang
d7ef546352
[core] Simplify options handling [Part 1] (#23127)
* handle options

* update doc

* fix serve
2022-04-11 20:49:58 -07:00
Qing Wang
77b0015ea0
[Java] Add NO_RESTART and INFINITE_RESTART constants. (#23771) 2022-04-12 10:40:44 +08:00
Antoni Baum
40646eecd4
[AIR] SklearnTrainer & Predictor interfaces (#23803)
Co-authored-by: Amog Kamsetty <amogkam@users.noreply.github.com>
2022-04-11 15:11:42 -07:00
Stephanie Wang
984e704207
Revert "Add "issue severity" back to GitHub bug template (#23838)" (#23841)
This reverts commit de7c0339ec.
2022-04-11 14:54:34 -07:00
Stephanie Wang
de7c0339ec
Add "issue severity" back to GitHub bug template (#23838)
Adds back the "Issue severity" dropdown to the bug template so that Ray users can have a way of reporting UX problems. Made some changes to try to streamline issue reporting:

- made this field optional
- moved the field to be last
- slightly changed some of the wording
2022-04-11 14:47:57 -07:00
shrekris-anyscale
87d1f97e2e
[runtime_env] Add print statements to TestGC tests (#23716)
The tests in `TestGC` are flaky due to timeout ([example 1](https://buildkite.com/ray-project/ray-builders-branch/builds/6868#5540f19e-3669-46eb-a4ee-c71a1252f9ae), [example 2](https://buildkite.com/ray-project/ray-builders-branch/builds/6872#8912eb47-eb63-40c9-949f-a020a5f8f42d)):

<img width="1304" alt="Screen Shot 2022-04-05 at 11 30 04 AM" src="https://user-images.githubusercontent.com/92341594/161825080-c2fe3887-f87c-4175-924f-80ae9b371157.png">

This change adds print statements to the `TestGC` tests to detect where they're hanging.
2022-04-11 16:09:41 -05:00
Jun Gong
500cf7dcef
[RLlib] Run test_policy_client_server_setup.sh tests on different ports. (#23787) 2022-04-11 22:07:07 +02:00
Amog Kamsetty
d33483de3d
[Tune] Don't include nan metrics for best checkpoint (#23820)
Nan values do not have a well defined ordering. When sorting metrics to determine the best checkpoint, we should always filter out checkpoints that are associated with nan values.

Closes #23812
2022-04-11 12:51:00 -07:00
Stephanie Wang
d8efa372b2
Revert "Add "issue severity" back to GitHub bug template (#23793)" (#23834)
Fix the bug report issue template.
2022-04-11 11:01:01 -07:00
Balaji Veeramani
394e5ec1c2
[Train] Raise helpful error when required backend isn't installed (#23583)
Closes #22347
2022-04-11 10:46:32 -07:00
Jun Gong
c61910487f
[RLlib] Fix typo in docstring of PGTorchPolicy (#23818) 2022-04-11 19:31:45 +02:00
Sven Mika
a3d4fc74a6
[RLlib] MARWIL: Move to training_iteration API. (#23798) 2022-04-11 19:28:32 +02:00
Antoni Baum
5dc958037e
[air] Refactor most_frequent SimpleImputer (#23706)
Takes care of the TODO left for SimpleImputer with most_frequent strategy by refactoring and optimising the logic for computing the most frequent value.

Co-authored-by: Clark Zinzow <clarkzinzow@gmail.com>
2022-04-11 18:20:44 +01:00
Stephanie Wang
2b04e5bd7e
Add "issue severity" back to GitHub bug template (#23793)
Adds back the "Issue severity" dropdown to the bug template so that Ray users can have a way of reporting UX problems. Made some changes to try to streamline issue reporting:

- made this field optional
- moved the field to be last
- slightly changed some of the wording
2022-04-11 10:10:12 -07:00
Amog Kamsetty
38696b155a
[Docker/CI] Add comment on keeping Docker images in sync (#23782) 2022-04-11 18:09:10 +01:00
Tao Wang
a051e693c1
[Test]Add a time check for task benchmark (#23170)
In test_many_tasks.py case, we usually found the case failing and found the reason.

We sleep for sleep_time seconds to wait all tasks to be finished, but the computation of actual sleep time is done by 0.1 * #rounds, where 0.1 is the sleep time every round.
It looks perfect but one factor was missed, and that's the computation time elapsed. In this case, it is the time consumed by

            cur_cpus = ray.available_resources().get("CPU", 0)
            min_cpus_available = min(min_cpus_available, cur_cpus)
especially the ray.available_resources() took a quite time when the cluster is large. (in our case it took beyond 1s with 1500 nodes).

The situation we thought it would be:

for _ in range(sleep_time / 0.1):
    sleep(0.1)
The actual situation happens:

for _ in range(sleep_time / 0.1):
    do_something(); # it costs time, sometimes pretty much
    sleep(0.1)
We don't know why ray.available_resources() is slow and if it's logical, but we can add a time checker to make the sleep time precise.
2022-04-11 06:27:04 -07:00
Steven Morad
00922817b6
[RLlib] Rewrite PPO to use training_iteration + enable DD-PPO for Win32. (#23673) 2022-04-11 08:39:10 +02:00
Eric Liang
1ff874e8e8
[spelling] Add linter rule for mis-capitalizations of RLLib -> RLlib (#23817) 2022-04-10 16:12:53 -07:00
Chen Shen
15c32a210c
[GCS][Storage unification 1/n] store index in memory instead of storage (#23754)
Today we have two storage interfaces in Gcs, one is InternalKvInterface which exposes key value interfaces, another is StoreClient which is kv interface with secondary index support.
To make GCS storage pluggable, we need to narrow down and unify the storage interface. This is a try to only use kv store and build index purely in memory.

known limitations:

we need to rebuild index during GCS startup
there might be consistency issues when concurrent change (write/delete) to the same key; but the current redis based solution also suffer from the same issue.
2022-04-10 15:56:08 -07:00
Qing Wang
c1dee15613
[xlang] Hotly fix the importing error for python call Java. (#23734)
The PR https://github.com/ray-project/ray/pull/22820 introduced a API breakage for xlang usage, causing that `ray.java_actor_class` has not been available any longer from then on.

I'm fixing it in this PR. We should remove these top level APIs in 2.0 instead of minor versions.
2022-04-10 15:36:12 +08:00
Eric Liang
858d607b19
[data] Fix small doc issues (#23813) 2022-04-09 12:09:08 -07:00
Yi Cheng
9655851f32
[ray] Remove RAY_USER_SETUP_FUNCTION (#23780)
`RAY_USER_SETUP_FUNCTION` is not a public API and is also not used by ray internally. This PR removes this feature.
2022-04-08 22:43:57 -07:00
Kai Fricke
8c2e471265
[AIR] Add RLTrainer interface, implementation, and examples (#23465)
This PR adds a RLTrainer to Ray AIR. It works for both offline and online use cases. In offline training, it will leverage the datasets key of the Trainer API to specify a dataset reader input, used e.g. in Behavioral Cloning (BC). In online training, it is a wrapper around the rllib trainables making use of the parameter layering enabled by the Trainer API.
2022-04-08 17:16:42 -07:00
Amog Kamsetty
5a41fb18bd
[Docs] Automatically render latest ray_lightning docs (#23729)
Automatically pull the latest ray_lightning README to render on Ray docs. (#23505)

Depends on ray-project/ray_lightning#135
2022-04-08 16:57:23 -07:00
Siyuan (Ryans) Zhuang
6dc74f5808
[workflow] Deprecate "workflow.step" [Part 3 - events] (#23796)
* update workflow events
2022-04-08 16:09:55 -07:00
Jiajun Yao
e910f0abcf
[Test] Don't send usage data to server for unit tests (#23800)
There are two tests that are accidentally sending usage data to the server. This pr fixes that.
2022-04-08 16:02:30 -07:00