Skip to content

5. 核心模块速查

本章是 Ray 各组件的"参数与边界速查表"。每个模块给一句话定位、关键 API/参数、成熟度、出处。


5.1 库总览

组件定位成熟度
Ray Coretask/actor/object/placement group 分布式原语GA(稳定 API)
Ray Serve模型服务(HTTP+gRPC)、DAG、自动伸缩GA
Ray Serve LLM(原 RayLLM/Aviary)OpenAI 兼容 LLM 服务(默认 vLLM 引擎)GA(快速演进)
Ray Data流式数据预处理;map_batchesGA(2.10)
Ray Train分布式训练(PyTorch/FSDP/DeepSpeed/HF/XGBoost/JAX)GA(2.7)
Ray Tune超参搜索;ASHA/PBO/BOHB;Optuna/HyperOpt/W&BGA
RLlib分布式 RL;新 API stack(PyTorch-only)GA(API 迁移中)
Ray Workflows持久、可 checkpoint 的长任务 DAGBeta(2025 弃用)
Compiled Graph编译静态执行图(紧耦合集合通信)Beta(2.44 起)
KubeRayK8s operator + RayCluster/RayJob/RayService CRDGA
RayDP(Spark on Ray)在 Ray 上跑 PySpark社区
Dask/Modin/Mars on Ray熟悉 dataframe API 跑在 Ray 后端社区/GA

5.2 Ray Core 关键参数

@ray.remote 装饰器参数

参数默认说明
num_cpustask=1 / actor=0(执行)+1(放置)CPU 资源
num_gpus0GPU 资源;分配即设 CUDA_VISIBLE_DEVICES
memory / object_store_memory内存(仅准入控制,运行时不强制
resources自定义资源键值
max_restarts(actor)0actor 死后重启次数
max_task_retries(actor)0在途方法重试次数
max_retries(task)3非任务重试次数
max_concurrency(actor)1并发度(async actor 才有真并行)
runtime_env每任务依赖环境
scheduling_strategyDEFAULT(HYBRID)SPREAD/PACK/PlacementGroup/NodeAffinity

全局/集群关键常量(源码 ray_constants.py / ray_config_def.h

常量含义
DEFAULT_OBJECT_STORE_MEMORY_PROPORTION0.30对象存储 = 30% 可用 RAM
DEFAULT_OBJECT_STORE_MAX_MEMORY_BYTES200 GiBLinux/云硬上限
MAC_DEGRADED_PERF_MMAP_SIZE_LIMIT2 GiBmacOS 上限(避免性能退化)
OBJECT_STORE_MINIMUM_MEMORY_BYTES75 MiB最小
max_direct_call_object_size100 KiBin-band 小对象阈值(随 owner 而亡)
task_rpc_inlined_bytes_limit10 MiB单 task RPC 内联上限
object_spilling_threshold0.8主动溢写阈值
max_lineage_bytes1 GiB每 worker lineage 缓存上限
CALLER_MEMORY_USAGE_PER_OBJECT_REF3000 B每 ObjectRef 元数据约 3 KB
RAY_scheduler_spread_threshold0.5HYBRID 打包→摊开切换阈值
RAY_gcs_rpc_server_reconnect_timeout_s60raylet 重连 GCS 超时
RAY_memory_monitor_refresh_ms250OOM killer 检查间隔
RAY_memory_usage_threshold0.95OOM killer 触发阈值

5.3 Ray Serve 关键参数

概念API/参数说明
部署@serve.deployment(num_replicas, ray_actor_options, autoscaling_config)副本数 / actor 资源 / 伸缩
路由DeploymentHandle + Router(power-of-two-choices)模型组合/DAG
批处理@serve.batch(max_batch_size, batch_wait_timeout_s)动态批
伸缩autoscaling_configmin_replicas/max_replicas/target_num_ongoing_requests_per_replica/upscale_delay_s/downscale_delay_s按请求驱动,与集群 VM autoscaler 独立
IngressHTTP(Uvicorn)/ gRPC(grpcio)/ HAProxy routerproxy 每节点一个
健康RayService CRD 滚动更新 + 健康探针零停机升级

5.4 Ray Serve LLM(ray.serve.llm

python
from ray import serve
from ray.serve.llm import LLMConfig, build_openai_app

cfg = LLMConfig(
    model_loading_config=dict(model_id="qwen", model_source="Qwen/Qwen2.5-0.5B-Instruct"),
    deployment_config=dict(autoscaling_config=dict(min_replicas=1, max_replicas=4)),
    accelerator_type="A10G",
    engine_kwargs=dict(tensor_parallel_size=1, max_model_len=8192),
)
serve.run(build_openai_app({"llm_configs": [cfg]}), blocking=True)

5.5 Ray Train 关键参数

概念API说明
规模ScalingConfig(num_workers, use_gpu, resources_per_worker)worker 数与资源
持久化RunConfig(storage_path=...)2.7 起必需(trial/checkpoint)
TrainerTorchTrainer/HuggingFaceTrainer/XGBoostTrainer/LightGBMTrainer/JAXTrainer/DeepSpeedTrainer/HorovodTrainer/TensorflowTrainerAccelerateTrainer 自 2.8 弃用,改用 HuggingFaceTrainer
上报session.report(metrics, checkpoint=ray.train.Checkpoint(...))指标 + checkpoint
弹性Elastic trainingworker 加入/离开
容错Fault tolerance重启 + spot + checkpoint

ScalingConfig.trainer_resources 已弃用——trainer 资源改由 trainer 构造器传。


5.6 Ray Data 关键参数

概念API说明
抽象Dataset(惰性分布式集合)+ Block(单分区,Pandas/PyArrow)两层
计划逻辑计划(ReadOp/MapBatches/Filter/Project)→ 优化器(OperatorFusionRule)→ 物理计划(TaskPoolMapOperator/ActorPoolMapOperator两阶段
执行流式(非 shuffle 算子流水线,不同 stage 独立伸缩并发);shuffle(sort/groupby)需物化、中断流式
主变换ds.map_batches(fn, batch_format=, num_cpus=, num_gpus=)核心算子
连接器Parquet/JSON/CSV/text/binary/HuggingFace(read_huggingface)/TFRecords/WebDataset/NumPy/pandas/Delta Lake;远端 S3/GCS/Azure/HDFS
LLM 批推理ray.data.LLM / Dataset.map_llm()批推理 API

5.7 RLlib(新 API stack,PyTorch-only)

新(默认)旧(淘汰)
RLModuleModelV2 + Policy
Learner / LearnerGroupRolloutWorker(训练侧)
EnvRunnerRolloutWorker(采样侧)
ConnectorV2ViewRequirement
OfflineDataPolicy 上的离线 API
  • 算法:PPO/IMPALA/APPO/DQN(Rainbow)/SAC/A2C/A3C/PG/MARL(QMIX…)(Algorithms)。
  • GRPO 不是 RLlib 原生:走 TRL 的 GRPOTrainer,由 Ray Train 的 TorchTrainer 包装(vllm_mode="colocate")。
  • Ray + vLLM 的 RLHF 框架:verlOpenRLHF

5.8 KubeRay CRD 选型

CRD何时用
RayCluster声明式集群(head + worker pod 模板 + 集群内 autoscaler)
RayJob提交/跟踪一个 Ray Job(entrypoint、runtime_env、shutdownAfterJobFinishes、TTL)
RayService部署 Ray Serve 应用,滚动更新 + 健康探针 + 零停机 + HA
RayCronJob定时任务(2.56 文档 ToC 出现,[细节未完全核验])

集成:Kueue/Volcano/YuniKorn/KAI Scheduler/Istio mTLS/Prometheus+Grafana


5.9 可观测工具速查

工具用途
Dashboard :8265集群/actor/task/PG/日志/指标/内存/事件
ray status集群资源摘要
ray list actors/tasks/placement-groups/nodes/cluster-events实体列表
ray get <type> <id> / ray summary actors/tasks详情/聚合
ray memoryObjectRef 五类引用诊断
Prometheus metrics第 8 章 §8.x
Task Timelinechrome://tracing / Perfetto
TracingOpenTelemetry 导出

下一章 源码与生态分析 深入仓库的真实文件与调用链。

Released under CC-BY-SA-4.0 License.