Commit graph

12448 commits

Author SHA1 Message Date
Antoni Baum
668049492c
[Datasets] Add from_huggingface for Hugging Face datasets integration (#24464)
Adds a from_huggingface method to Datasets, which allows the conversion of a Hugging Face Dataset to a Ray Dataset. As a Hugging Face Dataset is backed by an Arrow table, the conversion is trivial.
2022-05-06 13:09:28 -07:00
Siyuan (Ryans) Zhuang
84ccab2d5f
[workflow] Defining and updating workflow options (#24498)
* implement "options" for workflow

* update tests
2022-05-06 13:08:22 -07:00
Charles Greer
189f7a469b
change docs for ray.remote num_gpus (#24551)
The documentation says that @ray.remote can take fractional num_gpus which is true, but the documentation lists it as an integer. I think this is strictly a problem in the docs.
2022-05-06 11:04:11 -07:00
kourosh hakhamaneshi
69055f556d
[RLlib] Move agents.ars to algorithms.ars. (#24516) 2022-05-06 19:11:15 +02:00
Kai Fricke
5d9bf4234a
[air] Example to track runs with Weights & Biases (#24459)
This PR 
- adds an example on how to run Ray Train and log results to weights & biases
- adds functionality to the W&B plugin to store checkpoints
- fixes a bug introduced in #24017
- Adds a CI utility script to setup credentials
- Adds a CI utility script to remove test state from external services cc @simon-mo
2022-05-06 15:52:37 +01:00
Daewoo Lee
fee35444ab
[RLlib] Issue 24530: Fix add_time_dimension (#24531)
Co-authored-by: Daewoo Lee <dwlee@rtst.co.kr>
2022-05-06 15:21:42 +02:00
kourosh hakhamaneshi
f48f1b252c
[RLlib] Moved agents.es to algorithms.es (#24511) 2022-05-06 14:54:22 +02:00
Antoni Baum
c5e1851ab9
[Tune] Improve JupyterNotebookReporter (#24444)
Improves Tune Jupyter notebook experience by modifying the `JupyterNotebookReporter` in two ways:
* Previously, the `overwrite` flag controlled whether the entire cell would be overwritten with the updated table. This caused all the other logs to be cleared. Now, we use IPython display handle functionality to create a table at the top of the cell and update only that, preserving the rest of the output. The `overwrite` flag now controls whether the cell output *prior* to the initialization of `JupyterNotebookReporter` is overwritten or not.
* The Ray Client detection was not working unless the user specifically passed a `JupyterNotebookReporter` as the `progress_reporter`. Now, the default value allows for correct detection of the enviroment while running Ray Client.

Furthermore, the progress reporter detection logic in `rllib/train.py` has been replaced to make use of the `detect_reporter` function for consistency with Tune (the sign in the overwrite condition was similarly flipped).
2022-05-06 11:52:47 +01:00
Sven Mika
7ab19ddc32
[RLlib] MADDPG: Move into agents folder (from contrib) and use training_iteration method. (#24502) 2022-05-06 12:35:21 +02:00
Sven Mika
f54557073e
[RLlib] Remove execution_plan API code no longer needed. (#24501) 2022-05-06 12:29:53 +02:00
Sven Mika
f891a2b6f1
[RLlib] SlateQ + tf; release test fixes, related to TD-error not properly being formatted. (#24521) 2022-05-06 08:50:30 +02:00
Siyuan (Ryans) Zhuang
417b72efdc
[workflow] Update workflow docs (#24249)
* update workflow docs

* rename "step" to "task"
2022-05-05 22:22:51 -07:00
Chris K. W
5a7c5ab79c
[client] fix OOM caused by debug log (#24477)
When this line tries to format the task into the string, it also attempts to format all of the serialized arguments passed to the task, which can be memory intensive, even if the debug log never gets displayed. Switch to only logging the task name, type and payload_id.

Repro script if you want to see how big a difference commenting out the debug log makes (takes up about 8GiB swap on my machine):
```
import ray
import numpy as np
import logging
ray.init("ray://localhost:10001")

@ray.remote
def run_ray_remote(np_array):
    return np_array.shape

a = np.random.random((1024, 1024, 128))  # approx 1GiB
b = run_ray_remote.remote(a) 
c = ray.get(b)
print(c)

```
2022-05-05 16:37:39 -07:00
Stephanie Wang
2931a23760
[doc] Add docs for push-based shuffle in Datasets (#24486)
Adds recommendations, example, and brief benchmark results for push-based shuffle in Datasets.
2022-05-05 14:59:33 -07:00
Kai Fricke
d6096df742
[release] Add utility script to fetch release logs (#24508)
This PR adds a utility script to automatically fetch release test results from the Buildkite pipeline for a release branch. This was previously a manual process.
2022-05-05 19:32:34 +01:00
mwtian
68c4023c20
[Core] fix inaccurate Raylet log message for aborting object creation (#24450)
Found many log messages about Not enough memory to create requested object ... when running shuffle tests, even when object store memory is far from full.

It seems when ObjectBufferPool::AbortCreate() is called, Raylet logs Not enough memory to create requested object .... However, ObjectBufferPool::AbortCreate() is called under 3 different codepaths:

    ObjectManager::ReceiveObjectChunk()
    PullManager::UpdatePullsBasedOnAvailableMemory() -> cancel_pull_request_
    PullManager::CancelPull() -> cancel_pull_request_

Only codepath (2) is due to having not enough object store memory. So the logging in ObjectBufferPool::AbortCreate() is moved to the callsites instead, which have more context of the situation and can log with more accurate messages.

Also change codepath (3) to be DEBUG, because it is an expected behavior and can be quite spammy when running shuffle / sort workload.
2022-05-05 10:59:10 -07:00
Simon Mo
a424e91aba
[Serve] Support serializing numpy scaler (#24512) 2022-05-05 10:46:01 -07:00
Sven Mika
70d3bfcf9c
[RLlib] Provide more time for APPO Pong release and performance tests. (#24503) 2022-05-05 18:19:38 +02:00
Kai Fricke
e1eec5507a
[ci/release] Fix ray version from init test (#24510)
This release package unit test fails on release branches. Instead of checking for a hard-coded version number, we should just require the value to be non-empty.

See e.g. https://buildkite.com/ray-project/ray-builders-pr/builds/31295#b6c6c952-ce34-4521-9342-429e92560dd3
2022-05-05 16:05:23 +01:00
Avnish Narayan
f2bb6f6806
[RLlib] Impala training iteration fn (#23454) 2022-05-05 16:11:08 +02:00
Christy Bergman
76eb47e226
[RLlib; docs] Rename UCB -> LinUCB. (#24348) 2022-05-05 10:20:16 +02:00
Artur Niederfahrenhorst
86bc9ecce2
[RLlib] DDPG Training iteration fn & Replay Buffer API (#24212) 2022-05-05 09:41:38 +02:00
Siyuan (Ryans) Zhuang
b3c93b91b0
[Serve] Reuse existing validation functions for Ray Serve config & bug fix (#24265)
* set default cpus in ray_actor_options

* remove unnecessary tests

* update message
2022-05-04 23:17:44 -07:00
Siyuan (Ryans) Zhuang
7a48d708d5
[core] Update metadata in options properly (#24458)
* implement proper updating of metadata in options
2022-05-04 23:11:36 -07:00
ZhuSenlin
83dd3b6cfc
remove TABLE_PREFIX_MAX from TablePrefix (#24331) 2022-05-05 14:08:35 +08:00
SangBin Cho
295b4436b3
[Nightly tests] Increase wait for nodes timeout (#24457)
Although there's enough quota, it is possible the AWS doesn't have enough capacity to start up new nodes. According to @allenyin55, the current wait for node timeout is too short. This PR increases the timeout to 3000 seconds (50 minutes) from 600 seconds. Let's see if this can resolve the issue. If it makes things worse, I will revert it quickly (I will closely monitor the infra failure rate)
2022-05-04 19:42:21 -07:00
Frank Luan
af1684af51
[Storage] Fix spill/restore error when using Arrow S3FS (#24196) 2022-05-04 19:06:36 -07:00
mwtian
b02029b29f
[Core] allow using grpcio > 1.44.0 (#23722) 2022-05-04 19:06:11 -07:00
SangBin Cho
168790c276
[Test] Add grace period to long running actor test failure (#24469)
Add 30 seconds grace period before raising an exception from this test failure (https://console.anyscale.com/o/anyscale-internal/projects/prj_2xR6uT6t7jJuu1aCwWMsle/clusters/ses_1FL4g3cMg1wYifWf52tAaWtJ?command-history-section=command_history). What I'd like to see is some sort of error messages are propagated to the driver if this is due to some unexpected issues.

Note that this PR also adds more detailed exit information to all worker failures, but this is still WIP #24468
2022-05-04 16:00:22 -07:00
Kai Fricke
b05531177c
[tune/ci] Fix GRPC resource exhausted test for tune trainables (#24467)
#24421 increased the default maximum GRPC limit to 250MB, which broke a Tune test that catches too large training functions.

This PR fixes this test by increasing the size of the experiment. However, please note that this leads to an inconsistency: For training functions of size 100 < fn < 250, an error will be raised only at runtime when trying to start the actor:

```
ValueError: The actor ImplicitFunc is too large (125 MiB > FUNCTION_SIZE_ERROR_THRESHOLD=95 MiB). Check that its definition is not implicitly capturing a large array or other object in scope. Tip: use ray.put() to put large objects in the Ray object store.
```

But it will successfully pass the registration stage `self._run_identifier = Experiment.register_if_needed(run)`.

cc @ericl should we set the default limit back to 100 MB (or maybe set the FUNCTION_SIZE_ERROR_THRESHOLD to 250 or whatever the GRPC limit is?)
2022-05-04 18:32:13 +01:00
Jiajun Yao
6bd65ceb1c
Fix flaky test_locality_aware_leasing_borrowed_objects (#24452)
The test is flaky because we schedule g task without waiting for f task to complete (because f_obj is embedded inside a list) so we may not have the locality information for f_obj from owner during g task scheduling.

Related issue number

Closes #23964
2022-05-04 10:12:31 -07:00
mwtian
e00c611807
[Core] rename PinObjectIDs to PinObjectID (#24451)
As discussed in #24322, rename so the function name matches its signature for PinObjectID(). Also rename the RPC request/reply/method names, to keep them consistent.
2022-05-04 10:08:32 -07:00
Archit Kulkarni
b79b8340f0
Don't redefine runtime_env in actor, to skip bug (#24448)
test_usage_stats was very flaky due to a runtime env setup error.

The test defined the runtime env {pip: "ray[serve]"} simultaneously in ray.init() and also in ray.remote() for the actor. This is redundant but should be supported by runtime_env, but it turns out it reveals a bug in runtime_env. The env appears to be installed twice concurrently in this situation, causing flakiness.

I'll make a followup issue for the runtime env bug with more details and a simpler repro, and link it here. Until then, we should merge this PR to deflake CI. This PR only defines the runtime_env in ray.init(), and removes the redefinition in ray.remote(). The actor will still inherit the correct runtime environment.

I tested manually by inspecting dashboard_agent.log locally. The virtualenv install commands were duplicated about 75% of the time before this PR, indicating the concurrent install. But with this change, the commands were never duplicated in the 7-8 times that I ran it. So this PR should deflake the test.
2022-05-04 09:51:53 -07:00
Yi Cheng
09f1cf26dc
[core] Share channel with GcsClient. (#24409)
According to https://grpc.io/docs/guides/performance/ we should: Always re-use stubs and channels when possible.

This PR share channels between different services.
2022-05-04 09:45:47 -07:00
Sihan Wang
3f5da8af7a
[Serve] Add serve handle graph workload nightly tests (#24435) 2022-05-04 09:07:50 -07:00
Simon Mo
21d76c4ca4
[Serve] Add short-hand for pydantic http adapter (#24404) 2022-05-04 09:43:18 -05:00
Antoni Baum
7ea00b282a
[AIR] Allow users to configure verbosity (#24443)
Makes verbosity a configurable parameter in RunConfig.
2022-05-04 15:43:01 +01:00
Sven Mika
5b61a00792
[RLlib] Feed all values in COMMON_CONFIG directly from TrainerConfig() (removes duplicate values and comments). (#24433) 2022-05-04 16:28:12 +02:00
Kai Fricke
21f8c68c8d
[ci] Try/except pytest makereport (#24462)
kai.fricke@mailbox.org
2022-05-04 14:02:27 +01:00
Sven Mika
b48f63113b
[RLlib] SlateQ fixes: Release learning tests wrong yaml structure + TD-error torch issue (#24429) 2022-05-04 13:37:14 +02:00
Alyetama
5f43906b5d
Fix broken documentation URL (#24437)
The link to the documentation to troubleshoot TypeError: Could not serialize the function ... is broken. This PR fixes the link by replacing it with the correct URL.
2022-05-03 21:44:31 -07:00
Jiajun Yao
b8e61bc4d8
Add actor out-of-band communication doc (#24185)
Add typical use cases for actor out-of-band communication.
2022-05-03 21:36:26 -07:00
mwtian
5a8264015b
[Core] Batch PinObjectIDs requests from Raylet client (#24322)
During investigations for #24176, it is found that the majority of memory used by Raylet and core workers are due to gRPC client (core worker) and server (raylet) data structures for inflight PinObjectIDs RPCs. Instead of buffering the requests in gRPC, this PR changes to buffer ObjectIDs that need to be pinned inside RayletClient instead. This shows significant reduction in raylet's memory usage outside of object stores.

Also made minor cleanups in Raylet client:

    Move aborting object creation error from ObjectBufferPool::AbortCreate() to callsites, with hopefully more accurate reasons.
    C++ style cleanups.
2022-05-03 15:58:12 -07:00
Simon Mo
dccea240e8
[Serve] Unify Starlette and FastAPI JSON serialization stack (#24417) 2022-05-03 15:17:42 -07:00
Archit Kulkarni
fa7a934bb9
[Doc] [Serve] Add note about relationship between serve autoscaler and ray autoscaler (#24414) 2022-05-03 13:54:19 -07:00
Eric Liang
5bdd9e4be5
[minor] Make the max runtime_env size configurable (#24421) 2022-05-03 11:13:04 -07:00
Jiao
9d31f5f7b2
[Serve] Change deployment graph long chain test (#24418) 2022-05-03 10:38:47 -07:00
Kai Fricke
4cec228657
[ci] Print pip environment in failed test annotations (#24427)
For better debugging, we should print the installed pip packages in the buildkite annotations. Additionally, shorten the summary message to make the output less cluttered.
2022-05-03 17:47:02 +01:00
Dmitri Gekhtman
6d09244a7e
[Dashboard][K8s] Add toggle to enable showing node disk usage on K8s (#24416)
https://github.com/ray-project/ray/pull/14676 disabled the disk usage/total display for Ray nodes on K8s, because Ray nodes on K8s are run as pods, which in general do not use up the entire machine.

However, in some situations, it is useful to run one Ray pod per K8s node and report the disk usage.

This PR adds a flag to enable displaying disk usage in those situations.
2022-05-03 10:58:05 -05:00
Jiajun Yao
bf2dc94cdb
Fix check failure when DisconnectClient happens before AnnounceWorkerPort (#24403)
We have several issues if DisconnectClient happens before AnnounceWorkerPort:

- Check failure for removing io worker from registered_io_workers since the io worker is only added to that set after AnnounceWorkerPort.
- num_starting_(io)_workers is not decremented.
2022-05-03 07:48:30 -07:00