From e11d23c7693f9836c574e10df272b6bafef18424 Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 00:16:28 +0000 Subject: [PATCH 01/24] init --- _posts/2025-04-18-openrlhf-vllm.md | 168 +++++++++++++++++++++++++++ assets/figures/openrlhf-vllm/ray.png | Bin 0 -> 102254 bytes 2 files changed, 168 insertions(+) create mode 100644 _posts/2025-04-18-openrlhf-vllm.md create mode 100644 assets/figures/openrlhf-vllm/ray.png diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md new file mode 100644 index 0000000..f022739 --- /dev/null +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -0,0 +1,168 @@ +--- +layout: post +title: "Accelerating RLHF with vLLM Ray Executor (OpenRLHF)" +author: "The OpenRLHF Team" +image: /assets/figures/openrlhf-vllm/ray.png +thumbnail-img: /assets/figures/openrlhf-vllm/ray.png +share-img: /assets/figures/openrlhf-vllm/ray.png +--- + +As the demand for training reasoning large language models (LLMs) grows, Reinforcement Learning from Human Feedback (RLHF) has become a pivotal technique. However, traditional RLHF training pipelines, especially those involving Proximal Policy Optimization (PPO), often face significant computational bottlenecks, with long chain-of-thought generation consuming up to 90% of the total training time. + +## Design Philosophy + +To address these challenges, OpenRLHF is designed as a user-friendly, high-performance framework for Reinforcement Learning from Human Feedback (RLHF), integrating key technologies such as Ray, vLLM, ZeRO-3, and AutoTP: + +**Ray** serves as the backbone for distributed programming within OpenRLHF. Its robust scheduling and orchestration capabilities make it ideal for managing the complex data flows and computations inherent in RLHF training, including the distribution of reward models across multiple nodes. + +**vLLM with Ray Executor and Auto TP** is central to accelerating inference within OpenRLHF. It naturally supports Ray Executors and integrates with Hugging Face Transformers, enabling efficient weight updates through AutoTP. This combination ensures high-throughput, memory-efficient serving of large language models. + +**ZeRO-3**, a memory optimization strategy from DeepSpeed, enables OpenRLHF to train large-scale models without the need for complex frameworks like Megatron. This allows for seamless integration with Hugging Face Transformers, facilitating straightforward loading and fine-tuning of pre-trained models. + +By combining Ray, vLLM, ZeRO-3, and Hugging Face Transformers, OpenRLHF offers a leading solution for accelerating RLHF training. This architecture has influenced other frameworks, such as veRL, which adopt a similar paradigm for efficient and scalable RLHF training. + +Ray and vLLM in OpenRLHF + +​As illustrated in the figure, OpenRLHF utilizes Ray's placement group API to flexibly schedule various RLHF components, including the vLLM engine, Actor, Critic, Reference, and Reward models. While these models are depicted separately, they can be co-located within shared placement groups to optimize resource utilization. For instance, all modules can share the same GPU group in a Hybrid Engine configuration, or specific components like the Actor and Critic can be assigned to the same GPU group. Weight synchronization between the Actor and the vLLM engine is achieved through high-performance communication mechanisms such as NVIDIA's NCCL or CUDA IPC memory copying, particularly in Hybrid Engine setups. + +## Implementing RLHF Acceleration with vLLM Ray Executor + +vLLM provides examples demonstrating how to accelerate RLHF training using Ray. By defining a custom `WorkerExtension` class, users can implement logic for weight synchronization between training and inference components. The `VLLM_RAY_PER_WORKER_GPUS` environment variable facilitates the allocation of GPU resources per worker, enabling configurations like hybrid engines where multiple components share the same GPU group. + +[An example](https://docs.vllm.ai/en/latest/getting_started/examples/rlhf_colocate.html) setup involves initializing Ray with a specified number of GPUs, creating a placement group for resource allocation, and defining training actors and inference engines. The training actors handle model initialization and weight updates, while the inference engines serve the models using vLLM. Weight synchronization between these components is achieved through inter-process communication mechanisms like CUDA IPC or NCCL, ensuring consistency across the training pipeline. + + +```python +import os +import ray +import torch +from ray.util.placement_group import placement_group +from ray.util.scheduling_strategies import PlacementGroupSchedulingStrategy +from vllm import LLM +from transformers import AutoModelForCausalLM + +class ColocateWorkerExtension: + """ + Extension class for vLLM workers to handle weight synchronization. + This class ensures compatibility with both vLLM V0 and V1. + """ + def report_device_id(self) -> str: + """Report the unique device ID for this worker""" + from vllm.platforms import current_platform + self.device_uuid = current_platform.get_device_uuid(self.device.index) + return self.device_uuid + + def update_weights_from_ipc_handles(self, ipc_handles): + """Update model weights using IPC handles""" + handles = ipc_handles[self.device_uuid] + device_id = self.device.index + weights = [] + for name, handle in handles.items(): + func, args = handle + list_args = list(args) + list_args[6] = device_id # Update device ID for current process + tensor = func(*list_args) + weights.append((name, tensor)) + self.model_runner.model.load_weights(weights=weights) + torch.cuda.synchronize() + + def check_weights_changed(self): + """Verify if weights have been updated""" + return all(torch.allclose(p, torch.zeros_like(p)) + for p in self.model_runner.model.parameters()) + +class MyLLM(LLM): + """ + Custom LLM class to handle GPU resource allocation and bundle indices. + This ensures proper GPU utilization and placement group management. + """ + def __init__(self, *args, bundle_indices: list, **kwargs): + # Prevent Ray from manipulating CUDA_VISIBLE_DEVICES at the top level + os.environ.pop("CUDA_VISIBLE_DEVICES", None) + # Configure GPU utilization per worker + os.environ["VLLM_RAY_PER_WORKER_GPUS"] = "0.4" + os.environ["VLLM_RAY_BUNDLE_INDICES"] = ",".join(map(str, bundle_indices)) + super().__init__(*args, **kwargs) + +class TrainingActor: + """ + Actor class for model training. + Handles model initialization and weight synchronization. + """ + def __init__(self): + self.model = AutoModelForCausalLM.from_pretrained("facebook/opt-125m") + self.model.to("cuda:0") + # Initialize weights to zero for demonstration + for p in self.model.parameters(): + p.data.zero_() + torch.cuda.synchronize() + from vllm.platforms import current_platform + self.device_uuid = current_platform.get_device_uuid(0) + + def report_device_id(self) -> str: + return self.device_uuid + + def get_weight_ipc_handles(self): + """Get IPC handles for model weights""" + from torch.multiprocessing.reductions import reduce_tensor + return {self.device_uuid: {name: reduce_tensor(p.detach()) + for name, p in self.model.named_parameters()}} + +# Initialize Ray with 4 GPUs +os.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2,3" +ray.init() + +# Create placement group for GPU allocation +pg = placement_group([{"GPU": 1, "CPU": 0}] * 4) +ray.get(pg.ready()) + +# Create training actors +training_actors = [] +for i in range(4): + actor = ray.remote( + num_gpus=0.4, + scheduling_strategy=PlacementGroupSchedulingStrategy( + placement_group=pg, + placement_group_bundle_index=i + ) + )(TrainingActor).remote() + training_actors.append(actor) + +# Create inference engines +inference_engines = [] +for bundle_indices in [[0, 1], [2, 3]]: + llm = ray.remote( + num_gpus=0, + scheduling_strategy=PlacementGroupSchedulingStrategy( + placement_group=pg + ) + )(MyLLM).remote( + model="facebook/opt-125m", + tensor_parallel_size=2, + distributed_executor_backend="ray", + gpu_memory_utilization=0.4, + worker_extension_cls="__main__.ColocateWorkerExtension", + bundle_indices=bundle_indices + ) + inference_engines.append(llm) + +# Collect device IDs for verification +training_device_ids = [ray.get(actor.report_device_id.remote()) + for actor in training_actors] +inference_device_ids = [ray.get(llm.collective_rpc.remote("report_device_id", args=tuple())) + for llm in inference_engines] + +# Verify device placement +assert training_device_ids[:2] == inference_device_ids[0] +assert training_device_ids[2:] == inference_device_ids[1] + +# Synchronize weights +ipc_handles = {} +for actor in training_actors: + ipc_handles.update(ray.get(actor.get_weight_ipc_handles.remote())) + +for llm in inference_engines: + ray.get(llm.collective_rpc.remote("update_weights_from_ipc_handles", + args=(ipc_handles,))) + assert ray.get(llm.collective_rpc.remote("check_weights_changed", args=tuple())) +``` \ No newline at end of file diff --git a/assets/figures/openrlhf-vllm/ray.png b/assets/figures/openrlhf-vllm/ray.png new file mode 100644 index 0000000000000000000000000000000000000000..f767de4e3e7773959161a105594881c860078b0e GIT binary patch literal 102254 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

EBHQt!RK8OO29q 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 YY{7uevY^Wna4A62;tFDAqDBG#2c(${oB#j- literal 0 HcmV?d00001 From 7f0acd07555c95011a6ef0ac96d772029e605fac Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 00:18:27 +0000 Subject: [PATCH 02/24] fix --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index f022739..6884012 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -23,7 +23,7 @@ By combining Ray, vLLM, ZeRO-3, and Hugging Face Transformers, OpenRLHF offers a Ray and vLLM in OpenRLHF -​As illustrated in the figure, OpenRLHF utilizes Ray's placement group API to flexibly schedule various RLHF components, including the vLLM engine, Actor, Critic, Reference, and Reward models. While these models are depicted separately, they can be co-located within shared placement groups to optimize resource utilization. For instance, all modules can share the same GPU group in a Hybrid Engine configuration, or specific components like the Actor and Critic can be assigned to the same GPU group. Weight synchronization between the Actor and the vLLM engine is achieved through high-performance communication mechanisms such as NVIDIA's NCCL or CUDA IPC memory copying, particularly in Hybrid Engine setups. +​As illustrated in the figure, OpenRLHF utilizes [Ray's placement group API](https://docs.ray.io/en/latest/ray-core/scheduling/placement-group.html) to flexibly schedule various RLHF components, including the vLLM engine, Actor, Critic, Reference, and Reward models. While these models are depicted separately, they can be co-located within shared placement groups to optimize resource utilization. For instance, all modules can share the same GPU group in a Hybrid Engine configuration, or specific components like the Actor and Critic can be assigned to the same GPU group. Weight synchronization between the Actor and the vLLM engine is achieved through high-performance communication mechanisms such as NVIDIA's NCCL or CUDA IPC memory copying, particularly in Hybrid Engine setups. ## Implementing RLHF Acceleration with vLLM Ray Executor From e62b4390a4da769a6b0e8faf7deeefc354369032 Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 00:19:43 +0000 Subject: [PATCH 03/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 6884012..d6bf0b9 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -15,11 +15,11 @@ To address these challenges, OpenRLHF is designed as a user-friendly, high-perfo **Ray** serves as the backbone for distributed programming within OpenRLHF. Its robust scheduling and orchestration capabilities make it ideal for managing the complex data flows and computations inherent in RLHF training, including the distribution of reward models across multiple nodes. -**vLLM with Ray Executor and Auto TP** is central to accelerating inference within OpenRLHF. It naturally supports Ray Executors and integrates with Hugging Face Transformers, enabling efficient weight updates through AutoTP. This combination ensures high-throughput, memory-efficient serving of large language models. +**vLLM with Ray Executor and AutoTP** is central to accelerating inference within OpenRLHF. It naturally supports Ray Executors and integrates with Hugging Face Transformers, enabling efficient weight updates through AutoTP. This combination ensures high-throughput, memory-efficient serving of large language models. **ZeRO-3**, a memory optimization strategy from DeepSpeed, enables OpenRLHF to train large-scale models without the need for complex frameworks like Megatron. This allows for seamless integration with Hugging Face Transformers, facilitating straightforward loading and fine-tuning of pre-trained models. -By combining Ray, vLLM, ZeRO-3, and Hugging Face Transformers, OpenRLHF offers a leading solution for accelerating RLHF training. This architecture has influenced other frameworks, such as veRL, which adopt a similar paradigm for efficient and scalable RLHF training. +By combining Ray, vLLM, ZeRO-3, and Hugging Face Transformers, OpenRLHF offers a leading and simple solution for accelerating RLHF training. This architecture has influenced other frameworks, such as veRL, which adopt a similar paradigm for efficient and scalable RLHF training. Ray and vLLM in OpenRLHF From fad732bd9d22247b70716f5ad7cae1b9de6b71a8 Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 00:20:04 +0000 Subject: [PATCH 04/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index d6bf0b9..4ed62d3 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -17,9 +17,9 @@ To address these challenges, OpenRLHF is designed as a user-friendly, high-perfo **vLLM with Ray Executor and AutoTP** is central to accelerating inference within OpenRLHF. It naturally supports Ray Executors and integrates with Hugging Face Transformers, enabling efficient weight updates through AutoTP. This combination ensures high-throughput, memory-efficient serving of large language models. -**ZeRO-3**, a memory optimization strategy from DeepSpeed, enables OpenRLHF to train large-scale models without the need for complex frameworks like Megatron. This allows for seamless integration with Hugging Face Transformers, facilitating straightforward loading and fine-tuning of pre-trained models. +**ZeRO-3 with HuggingFace Transformers**, a memory optimization strategy from DeepSpeed, enables OpenRLHF to train large-scale models without the need for complex frameworks like Megatron. This allows for seamless integration with HuggingFace Transformers, facilitating straightforward loading and fine-tuning of pre-trained models. -By combining Ray, vLLM, ZeRO-3, and Hugging Face Transformers, OpenRLHF offers a leading and simple solution for accelerating RLHF training. This architecture has influenced other frameworks, such as veRL, which adopt a similar paradigm for efficient and scalable RLHF training. +By combining Ray, vLLM, ZeRO-3, and HuggingFace Transformers, OpenRLHF offers a leading and simple solution for accelerating RLHF training. This architecture has influenced other frameworks, such as veRL, which adopt a similar paradigm for efficient and scalable RLHF training. Ray and vLLM in OpenRLHF From eecd0ff1cd5f5a2a88ac12f6fa69c20209fcc4d0 Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 01:26:16 +0000 Subject: [PATCH 05/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 14 +++++++------- assets/figures/openrlhf-vllm/ray.png | Bin 102254 -> 109397 bytes 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 4ed62d3..40b64d2 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -7,15 +7,15 @@ thumbnail-img: /assets/figures/openrlhf-vllm/ray.png share-img: /assets/figures/openrlhf-vllm/ray.png --- -As the demand for training reasoning large language models (LLMs) grows, Reinforcement Learning from Human Feedback (RLHF) has become a pivotal technique. However, traditional RLHF training pipelines, especially those involving Proximal Policy Optimization (PPO), often face significant computational bottlenecks, with long chain-of-thought generation consuming up to 90% of the total training time. +As the demand for training reasoning large language models (LLMs) grows, Reinforcement Learning from Human Feedback (RLHF) has become a pivotal technique. However, traditional RLHF training pipelines, especially those involving Proximal Policy Optimization (PPO), often face significant computational bottlenecks. In particular, for models that excel at complex reasoning tasks (often referred to as O1 models), the generation of long chain-of-thought (CoT) outputs can consume up to 90% of the total training time. This is because these models need to generate detailed step-by-step reasoning processes, which can span thousands of tokens, making the inference phase significantly more time-consuming than the training phase itself. ## Design Philosophy -To address these challenges, OpenRLHF is designed as a user-friendly, high-performance framework for Reinforcement Learning from Human Feedback (RLHF), integrating key technologies such as Ray, vLLM, ZeRO-3, and AutoTP: +To address these challenges, OpenRLHF is designed as a user-friendly, high-performance framework for Reinforcement Learning from Human Feedback (RLHF), integrating key technologies such as Ray, vLLM, Zero Redundancy Optimizer (ZeRO-3), and Automatic Tensor Parallelism (AutoTP): **Ray** serves as the backbone for distributed programming within OpenRLHF. Its robust scheduling and orchestration capabilities make it ideal for managing the complex data flows and computations inherent in RLHF training, including the distribution of reward models across multiple nodes. -**vLLM with Ray Executor and AutoTP** is central to accelerating inference within OpenRLHF. It naturally supports Ray Executors and integrates with Hugging Face Transformers, enabling efficient weight updates through AutoTP. This combination ensures high-throughput, memory-efficient serving of large language models. +**vLLM with Ray Executor and AutoTP** is central to accelerating inference within OpenRLHF. It naturally supports Ray Executors and integrates with Hugging Face Transformers, enabling efficient weight updates through AutoTP. This combination ensures high-throughput, memory-efficient generation of large language models. **ZeRO-3 with HuggingFace Transformers**, a memory optimization strategy from DeepSpeed, enables OpenRLHF to train large-scale models without the need for complex frameworks like Megatron. This allows for seamless integration with HuggingFace Transformers, facilitating straightforward loading and fine-tuning of pre-trained models. @@ -23,13 +23,14 @@ By combining Ray, vLLM, ZeRO-3, and HuggingFace Transformers, OpenRLHF offers a Ray and vLLM in OpenRLHF -​As illustrated in the figure, OpenRLHF utilizes [Ray's placement group API](https://docs.ray.io/en/latest/ray-core/scheduling/placement-group.html) to flexibly schedule various RLHF components, including the vLLM engine, Actor, Critic, Reference, and Reward models. While these models are depicted separately, they can be co-located within shared placement groups to optimize resource utilization. For instance, all modules can share the same GPU group in a Hybrid Engine configuration, or specific components like the Actor and Critic can be assigned to the same GPU group. Weight synchronization between the Actor and the vLLM engine is achieved through high-performance communication mechanisms such as NVIDIA's NCCL or CUDA IPC memory copying, particularly in Hybrid Engine setups. +​As illustrated in the figure, OpenRLHF utilizes [Ray's placement group API](https://docs.ray.io/en/latest/ray-core/scheduling/placement-group.html) to flexibly schedule various RLHF components, including the vLLM engine, Actor, Critic, Reference, and Reward models. While these models are depicted separately, they can be co-located within shared Ray placement groups to optimize resource utilization. For instance, all modules can share the same GPU group in a Hybrid Engine configuration, or specific components like the Actor and Critic can be assigned to the same GPU group. All these modules are scheduled and controlled through a centralized Ray Actor, which orchestrates the entire training process. Weight synchronization between the Actor and the vLLM engine is achieved through high-performance communication mechanisms such as NVIDIA Collective Communications Library (NCCL) or Compute Unified Device Architecture (CUDA) Inter-Process Communication (IPC) memory copying, particularly in Hybrid Engine setups. + ## Implementing RLHF Acceleration with vLLM Ray Executor vLLM provides examples demonstrating how to accelerate RLHF training using Ray. By defining a custom `WorkerExtension` class, users can implement logic for weight synchronization between training and inference components. The `VLLM_RAY_PER_WORKER_GPUS` environment variable facilitates the allocation of GPU resources per worker, enabling configurations like hybrid engines where multiple components share the same GPU group. -[An example](https://docs.vllm.ai/en/latest/getting_started/examples/rlhf_colocate.html) setup involves initializing Ray with a specified number of GPUs, creating a placement group for resource allocation, and defining training actors and inference engines. The training actors handle model initialization and weight updates, while the inference engines serve the models using vLLM. Weight synchronization between these components is achieved through inter-process communication mechanisms like CUDA IPC or NCCL, ensuring consistency across the training pipeline. +[The example](https://docs.vllm.ai/en/latest/getting_started/examples/rlhf_colocate.html) setup involves initializing Ray with a specified number of GPUs, creating a placement group for resource allocation, and defining training actors and inference engines. The training actors handle model initialization and weight updates, while the inference engines serve the models using vLLM. Weight synchronization between these components is achieved through inter-process communication mechanisms like CUDA IPC or NCCL, ensuring consistency across the training pipeline. ```python @@ -164,5 +165,4 @@ for actor in training_actors: for llm in inference_engines: ray.get(llm.collective_rpc.remote("update_weights_from_ipc_handles", args=(ipc_handles,))) - assert ray.get(llm.collective_rpc.remote("check_weights_changed", args=tuple())) -``` \ No newline at end of file + assert ray.get(llm.collective_rpc.remote("check_weights_changed", args=tuple())) \ No newline at end of file diff --git a/assets/figures/openrlhf-vllm/ray.png b/assets/figures/openrlhf-vllm/ray.png index f767de4e3e7773959161a105594881c860078b0e..ca3c0c0a463636f33203b1103020c573ea989955 100644 GIT binary patch literal 109397 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 ~E^k?uHMg=3=lHya?-O2D_WVcU6Q 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

=w;G{!m(SRzBPQP3YfIww6d{7sqpgKpY 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 literal 102254 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

EBHQt!RK8OO29q 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 YY{7uevY^Wna4A62;tFDAqDBG#2c(${oB#j- From 1678575fbf16cb3b9f9a1552165fe07d606ca4a1 Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 01:29:37 +0000 Subject: [PATCH 06/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 40b64d2..8831f4b 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -11,9 +11,9 @@ As the demand for training reasoning large language models (LLMs) grows, Reinfor ## Design Philosophy -To address these challenges, OpenRLHF is designed as a user-friendly, high-performance framework for Reinforcement Learning from Human Feedback (RLHF), integrating key technologies such as Ray, vLLM, Zero Redundancy Optimizer (ZeRO-3), and Automatic Tensor Parallelism (AutoTP): +To address these challenges, [OpenRLHF](https://github.com/OpenRLHF/OpenRLHF) is designed as a user-friendly, high-performance framework for Reinforcement Learning from Human Feedback (RLHF), integrating key technologies such as Ray, vLLM, Zero Redundancy Optimizer (ZeRO-3), and Automatic Tensor Parallelism (AutoTP): -**Ray** serves as the backbone for distributed programming within OpenRLHF. Its robust scheduling and orchestration capabilities make it ideal for managing the complex data flows and computations inherent in RLHF training, including the distribution of reward models across multiple nodes. +**Ray** serves as the backbone for distributed programming within OpenRLHF. Its robust scheduling and orchestration capabilities make it ideal for managing the complex data flows and computations inherent in RLHF training, including the distribution of rule-based reward models across multiple nodes. **vLLM with Ray Executor and AutoTP** is central to accelerating inference within OpenRLHF. It naturally supports Ray Executors and integrates with Hugging Face Transformers, enabling efficient weight updates through AutoTP. This combination ensures high-throughput, memory-efficient generation of large language models. From 38060d11cc7448e86e53e4675ffb5240fa2400ca Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 01:31:13 +0000 Subject: [PATCH 07/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 8831f4b..ff456b4 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -19,7 +19,7 @@ To address these challenges, [OpenRLHF](https://github.com/OpenRLHF/OpenRLHF) is **ZeRO-3 with HuggingFace Transformers**, a memory optimization strategy from DeepSpeed, enables OpenRLHF to train large-scale models without the need for complex frameworks like Megatron. This allows for seamless integration with HuggingFace Transformers, facilitating straightforward loading and fine-tuning of pre-trained models. -By combining Ray, vLLM, ZeRO-3, and HuggingFace Transformers, OpenRLHF offers a leading and simple solution for accelerating RLHF training. This architecture has influenced other frameworks, such as veRL, which adopt a similar paradigm for efficient and scalable RLHF training. +By combining Ray, vLLM, ZeRO-3, and HuggingFace Transformers, OpenRLHF offers a leading and simple solution for accelerating RLHF training. This architecture has influenced other frameworks, such as [veRL](https://github.com/volcengine/verl), which adopt a similar paradigm for efficient and scalable RLHF training. Ray and vLLM in OpenRLHF From f55dd43b4dcca1fde9e669e7d3d7285ace51b419 Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 06:47:27 +0000 Subject: [PATCH 08/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 109 +++++------------------------ 1 file changed, 18 insertions(+), 91 deletions(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index ff456b4..bd4fa31 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -1,47 +1,35 @@ --- -layout: post -title: "Accelerating RLHF with vLLM Ray Executor (OpenRLHF)" -author: "The OpenRLHF Team" -image: /assets/figures/openrlhf-vllm/ray.png -thumbnail-img: /assets/figures/openrlhf-vllm/ray.png -share-img: /assets/figures/openrlhf-vllm/ray.png +layout: post +title: "Accelerating RLHF with vLLM Ray Executor (OpenRLHF)" +author: "The OpenRLHF Team" +image: /assets/figures/openrlhf-vllm/ray.png +thumbnail-img: /assets/figures/openrlhf-vllm/ray.png +share-img: /assets/figures/openrlhf-vllm/ray.png --- -As the demand for training reasoning large language models (LLMs) grows, Reinforcement Learning from Human Feedback (RLHF) has become a pivotal technique. However, traditional RLHF training pipelines, especially those involving Proximal Policy Optimization (PPO), often face significant computational bottlenecks. In particular, for models that excel at complex reasoning tasks (often referred to as O1 models), the generation of long chain-of-thought (CoT) outputs can consume up to 90% of the total training time. This is because these models need to generate detailed step-by-step reasoning processes, which can span thousands of tokens, making the inference phase significantly more time-consuming than the training phase itself. +As demand grows for training reasoning-capable large language models (LLMs), Reinforcement Learning from Human Feedback (RLHF) has emerged as a cornerstone technique. However, conventional RLHF pipelines—especially those using Proximal Policy Optimization (PPO)—are often hindered by substantial computational overhead. This challenge is particularly pronounced with models that excel at complex reasoning tasks (commonly referred to as O1 models), where generating long chain-of-thought (CoT) outputs can account for up to 90% of total training time. These models must produce detailed, step-by-step reasoning that can span thousands of tokens, making inference significantly more time-consuming than the training phase itself. As a pioneering inference framework, vLLM provides a user-friendly interface for generating RLHF samples and updating model weights. -## Design Philosophy +## Design of OpenRLHF -To address these challenges, [OpenRLHF](https://github.com/OpenRLHF/OpenRLHF) is designed as a user-friendly, high-performance framework for Reinforcement Learning from Human Feedback (RLHF), integrating key technologies such as Ray, vLLM, Zero Redundancy Optimizer (ZeRO-3), and Automatic Tensor Parallelism (AutoTP): +To strike a balance between performance and usability in RLHF frameworks, [OpenRLHF](https://github.com/OpenRLHF/OpenRLHF) is designed as a high-performance yet user-friendly solution that integrates key technologies like Ray, vLLM, Zero Redundancy Optimizer (ZeRO-3), and Automatic Tensor Parallelism (AutoTP): -**Ray** serves as the backbone for distributed programming within OpenRLHF. Its robust scheduling and orchestration capabilities make it ideal for managing the complex data flows and computations inherent in RLHF training, including the distribution of rule-based reward models across multiple nodes. +**Ray** acts as the backbone of OpenRLHF's distributed architecture. With powerful scheduling and orchestration features, Ray efficiently manages complex data flows and computations, including distributing rule-based reward models across multiple nodes. -**vLLM with Ray Executor and AutoTP** is central to accelerating inference within OpenRLHF. It naturally supports Ray Executors and integrates with Hugging Face Transformers, enabling efficient weight updates through AutoTP. This combination ensures high-throughput, memory-efficient generation of large language models. +**vLLM with Ray Executor and AutoTP** plays a central role in accelerating inference. With built-in support for Ray Executors and integration with HuggingFace Transformers, it enables efficient weight updates through AutoTP, resulting in high-throughput and memory-efficient LLM generation. -**ZeRO-3 with HuggingFace Transformers**, a memory optimization strategy from DeepSpeed, enables OpenRLHF to train large-scale models without the need for complex frameworks like Megatron. This allows for seamless integration with HuggingFace Transformers, facilitating straightforward loading and fine-tuning of pre-trained models. +**ZeRO-3 with HuggingFace Transformers**, a memory optimization approach from DeepSpeed, empowers OpenRLHF to train large models without requiring heavyweight frameworks like Megatron. This seamless integration with HuggingFace allows for simple loading and fine-tuning of pre-trained models. -By combining Ray, vLLM, ZeRO-3, and HuggingFace Transformers, OpenRLHF offers a leading and simple solution for accelerating RLHF training. This architecture has influenced other frameworks, such as [veRL](https://github.com/volcengine/verl), which adopt a similar paradigm for efficient and scalable RLHF training. +Together, Ray, vLLM, ZeRO-3, and HuggingFace Transformers create a cutting-edge yet streamlined solution for accelerating RLHF training. The architecture has also influenced other frameworks such as [veRL](https://github.com/volcengine/verl), which adopt similar paradigms for scalable and efficient RLHF training. Ray and vLLM in OpenRLHF -​As illustrated in the figure, OpenRLHF utilizes [Ray's placement group API](https://docs.ray.io/en/latest/ray-core/scheduling/placement-group.html) to flexibly schedule various RLHF components, including the vLLM engine, Actor, Critic, Reference, and Reward models. While these models are depicted separately, they can be co-located within shared Ray placement groups to optimize resource utilization. For instance, all modules can share the same GPU group in a Hybrid Engine configuration, or specific components like the Actor and Critic can be assigned to the same GPU group. All these modules are scheduled and controlled through a centralized Ray Actor, which orchestrates the entire training process. Weight synchronization between the Actor and the vLLM engine is achieved through high-performance communication mechanisms such as NVIDIA Collective Communications Library (NCCL) or Compute Unified Device Architecture (CUDA) Inter-Process Communication (IPC) memory copying, particularly in Hybrid Engine setups. +As illustrated above, OpenRLHF uses [Ray’s Placement Group API](https://docs.ray.io/en/latest/ray-core/scheduling/placement-group.html) to flexibly schedule components of the RLHF pipeline, including the vLLM engine, Actor, Critic, Reference, and Reward models. Although represented separately, these components can be colocated in shared Ray placement groups to maximize resource efficiency. For example, all modules can operate within the same GPU group in a hybrid engine configuration, or specific components—such as the Actor and Critic—can be grouped together. All modules are orchestrated by a central Ray Actor, which manages the entire training lifecycle. Weight synchronization between the Actor and the vLLM engine is handled via high-performance communication methods, such as NVIDIA Collective Communications Library (NCCL) or CUDA Inter-Process Communication (IPC) memory transfers in hybrid engine settings. +## Implementing RLHF Acceleration with vLLM Ray Executor -## Implementing RLHF Acceleration with vLLM Ray Executor - -vLLM provides examples demonstrating how to accelerate RLHF training using Ray. By defining a custom `WorkerExtension` class, users can implement logic for weight synchronization between training and inference components. The `VLLM_RAY_PER_WORKER_GPUS` environment variable facilitates the allocation of GPU resources per worker, enabling configurations like hybrid engines where multiple components share the same GPU group. - -[The example](https://docs.vllm.ai/en/latest/getting_started/examples/rlhf_colocate.html) setup involves initializing Ray with a specified number of GPUs, creating a placement group for resource allocation, and defining training actors and inference engines. The training actors handle model initialization and weight updates, while the inference engines serve the models using vLLM. Weight synchronization between these components is achieved through inter-process communication mechanisms like CUDA IPC or NCCL, ensuring consistency across the training pipeline. - +OpenRLHF and vLLM provide a clean and efficient set of APIs to simplify interaction within RLHF pipelines. By implementing a custom `WorkerExtension` class, users can handle weight synchronization between training and inference components. The environment variable `VLLM_RAY_PER_WORKER_GPUS` allows fine-grained GPU resource allocation per worker, enabling hybrid engine configurations where multiple components share a GPU group: ```python -import os -import ray -import torch -from ray.util.placement_group import placement_group -from ray.util.scheduling_strategies import PlacementGroupSchedulingStrategy -from vllm import LLM -from transformers import AutoModelForCausalLM - class ColocateWorkerExtension: """ Extension class for vLLM workers to handle weight synchronization. @@ -67,11 +55,6 @@ class ColocateWorkerExtension: self.model_runner.model.load_weights(weights=weights) torch.cuda.synchronize() - def check_weights_changed(self): - """Verify if weights have been updated""" - return all(torch.allclose(p, torch.zeros_like(p)) - for p in self.model_runner.model.parameters()) - class MyLLM(LLM): """ Custom LLM class to handle GPU resource allocation and bundle indices. @@ -85,50 +68,11 @@ class MyLLM(LLM): os.environ["VLLM_RAY_BUNDLE_INDICES"] = ",".join(map(str, bundle_indices)) super().__init__(*args, **kwargs) -class TrainingActor: - """ - Actor class for model training. - Handles model initialization and weight synchronization. - """ - def __init__(self): - self.model = AutoModelForCausalLM.from_pretrained("facebook/opt-125m") - self.model.to("cuda:0") - # Initialize weights to zero for demonstration - for p in self.model.parameters(): - p.data.zero_() - torch.cuda.synchronize() - from vllm.platforms import current_platform - self.device_uuid = current_platform.get_device_uuid(0) - - def report_device_id(self) -> str: - return self.device_uuid - - def get_weight_ipc_handles(self): - """Get IPC handles for model weights""" - from torch.multiprocessing.reductions import reduce_tensor - return {self.device_uuid: {name: reduce_tensor(p.detach()) - for name, p in self.model.named_parameters()}} - -# Initialize Ray with 4 GPUs -os.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2,3" -ray.init() # Create placement group for GPU allocation pg = placement_group([{"GPU": 1, "CPU": 0}] * 4) ray.get(pg.ready()) -# Create training actors -training_actors = [] -for i in range(4): - actor = ray.remote( - num_gpus=0.4, - scheduling_strategy=PlacementGroupSchedulingStrategy( - placement_group=pg, - placement_group_bundle_index=i - ) - )(TrainingActor).remote() - training_actors.append(actor) - # Create inference engines inference_engines = [] for bundle_indices in [[0, 1], [2, 3]]: @@ -146,23 +90,6 @@ for bundle_indices in [[0, 1], [2, 3]]: bundle_indices=bundle_indices ) inference_engines.append(llm) +``` -# Collect device IDs for verification -training_device_ids = [ray.get(actor.report_device_id.remote()) - for actor in training_actors] -inference_device_ids = [ray.get(llm.collective_rpc.remote("report_device_id", args=tuple())) - for llm in inference_engines] - -# Verify device placement -assert training_device_ids[:2] == inference_device_ids[0] -assert training_device_ids[2:] == inference_device_ids[1] - -# Synchronize weights -ipc_handles = {} -for actor in training_actors: - ipc_handles.update(ray.get(actor.get_weight_ipc_handles.remote())) - -for llm in inference_engines: - ray.get(llm.collective_rpc.remote("update_weights_from_ipc_handles", - args=(ipc_handles,))) - assert ray.get(llm.collective_rpc.remote("check_weights_changed", args=tuple())) \ No newline at end of file +[The complete example](https://docs.vllm.ai/en/latest/getting_started/examples/rlhf_colocate.html) walks through initializing Ray with a specified GPU count, creating a placement group to manage resources, and defining both training actors and inference engines. The training actors manage model initialization and weight updates, while the inference engines serve models via vLLM. Weight synchronization is carried out using CUDA IPC or NCCL, ensuring coherence and efficiency throughout the RLHF pipeline. From 45f95a86150cd3f71570ac745debc1dd3dd0bf13 Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 07:01:16 +0000 Subject: [PATCH 09/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index bd4fa31..5c05e36 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -93,3 +93,8 @@ for bundle_indices in [[0, 1], [2, 3]]: ``` [The complete example](https://docs.vllm.ai/en/latest/getting_started/examples/rlhf_colocate.html) walks through initializing Ray with a specified GPU count, creating a placement group to manage resources, and defining both training actors and inference engines. The training actors manage model initialization and weight updates, while the inference engines serve models via vLLM. Weight synchronization is carried out using CUDA IPC or NCCL, ensuring coherence and efficiency throughout the RLHF pipeline. + + +## Acknowledgements + +We would like to express our sincere gratitude to [Kaichao You](https://github.com/youkaichao) from the **vLLM** team and [Jian Hu](https://github.com/hijkzzz) from **OpenRLHF** for their invaluable contributions and close collaboration throughout this integration. Kaichao’s guidance on vLLM’s internals and RLHF API design significantly accelerated our implementation of high-throughput inference, while Jian’s deep insights into distributed RLHF architecture and training optimization were instrumental in refining OpenRLHF’s usability and performance. Their support not only made this work possible, but also laid the foundation for future advancements in efficient, scalable RLHF systems. \ No newline at end of file From 070d5792817168c37f10bde99a51ff15122b2f93 Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 07:02:35 +0000 Subject: [PATCH 10/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 5c05e36..49fa431 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -19,7 +19,7 @@ To strike a balance between performance and usability in RLHF frameworks, [OpenR **ZeRO-3 with HuggingFace Transformers**, a memory optimization approach from DeepSpeed, empowers OpenRLHF to train large models without requiring heavyweight frameworks like Megatron. This seamless integration with HuggingFace allows for simple loading and fine-tuning of pre-trained models. -Together, Ray, vLLM, ZeRO-3, and HuggingFace Transformers create a cutting-edge yet streamlined solution for accelerating RLHF training. The architecture has also influenced other frameworks such as [veRL](https://github.com/volcengine/verl), which adopt similar paradigms for scalable and efficient RLHF training. +Together, Ray, vLLM, ZeRO-3, and HuggingFace Transformers create a cutting-edge yet streamlined solution for accelerating RLHF training. The architecture has also influenced other frameworks such as [veRL](https://github.com/volcengine/verl), which adopt similar paradigms for scalable and efficient RLHF training. OpenRLHF is also the first open-source RLHF framework developed based on Ray and vLLM. Ray and vLLM in OpenRLHF From 52ee5f797f5f50291196b63dc35ab02ff2f76afa Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 07:04:11 +0000 Subject: [PATCH 11/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 49fa431..1fbead7 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -19,7 +19,7 @@ To strike a balance between performance and usability in RLHF frameworks, [OpenR **ZeRO-3 with HuggingFace Transformers**, a memory optimization approach from DeepSpeed, empowers OpenRLHF to train large models without requiring heavyweight frameworks like Megatron. This seamless integration with HuggingFace allows for simple loading and fine-tuning of pre-trained models. -Together, Ray, vLLM, ZeRO-3, and HuggingFace Transformers create a cutting-edge yet streamlined solution for accelerating RLHF training. The architecture has also influenced other frameworks such as [veRL](https://github.com/volcengine/verl), which adopt similar paradigms for scalable and efficient RLHF training. OpenRLHF is also the first open-source RLHF framework developed based on Ray and vLLM. +Together, Ray, vLLM, ZeRO-3, and HuggingFace Transformers create a cutting-edge yet streamlined solution for accelerating RLHF training. The architecture has also influenced other frameworks such as [veRL](https://github.com/volcengine/verl), which adopt similar paradigms for scalable and efficient RLHF training. OpenRLHF is also the first open-source RLHF framework developed based on Ray and vLLM, and has been used by Google, Bytedance, Alibaba, Meituan, Berkeley Starling Team etc. Ray and vLLM in OpenRLHF From fe943ee9852216391317eb82b20359eceb93f56f Mon Sep 17 00:00:00 2001 From: hijkzzz Date: Fri, 18 Apr 2025 15:10:35 +0800 Subject: [PATCH 12/24] Update _posts/2025-04-18-openrlhf-vllm.md Co-authored-by: youkaichao --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 1fbead7..2ac7c92 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -1,6 +1,6 @@ --- layout: post -title: "Accelerating RLHF with vLLM Ray Executor (OpenRLHF)" +title: "Accelerating RLHF with vLLM, Best Practice from OpenRLHF" author: "The OpenRLHF Team" image: /assets/figures/openrlhf-vllm/ray.png thumbnail-img: /assets/figures/openrlhf-vllm/ray.png From d13b135f33df8caa557a536a8943a869f39b36fb Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 07:24:12 +0000 Subject: [PATCH 13/24] fix --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 2ac7c92..e32523f 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -27,7 +27,7 @@ As illustrated above, OpenRLHF uses [Ray’s Placement Group API](https://docs.r ## Implementing RLHF Acceleration with vLLM Ray Executor -OpenRLHF and vLLM provide a clean and efficient set of APIs to simplify interaction within RLHF pipelines. By implementing a custom `WorkerExtension` class, users can handle weight synchronization between training and inference components. The environment variable `VLLM_RAY_PER_WORKER_GPUS` allows fine-grained GPU resource allocation per worker, enabling hybrid engine configurations where multiple components share a GPU group: +OpenRLHF and vLLM provide a clean and efficient set of APIs to simplify interaction within RLHF pipelines. By implementing a custom `WorkerExtension` class, users can handle weight synchronization between training and inference components. The environment variables `VLLM_RAY_PER_WORKER_GPUS` and `VLLM_RAY_BUNDLE_INDICES` allows fine-grained GPU resource allocation per worker, enabling hybrid engine configurations where multiple components share a GPU group: ```python class ColocateWorkerExtension: From 039e02bc467764fdc665d2251bc89d9dd98ff81a Mon Sep 17 00:00:00 2001 From: hijkzzz Date: Fri, 18 Apr 2025 15:25:09 +0800 Subject: [PATCH 14/24] Update _posts/2025-04-18-openrlhf-vllm.md Co-authored-by: youkaichao --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index e32523f..fed1299 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -7,7 +7,7 @@ thumbnail-img: /assets/figures/openrlhf-vllm/ray.png share-img: /assets/figures/openrlhf-vllm/ray.png --- -As demand grows for training reasoning-capable large language models (LLMs), Reinforcement Learning from Human Feedback (RLHF) has emerged as a cornerstone technique. However, conventional RLHF pipelines—especially those using Proximal Policy Optimization (PPO)—are often hindered by substantial computational overhead. This challenge is particularly pronounced with models that excel at complex reasoning tasks (commonly referred to as O1 models), where generating long chain-of-thought (CoT) outputs can account for up to 90% of total training time. These models must produce detailed, step-by-step reasoning that can span thousands of tokens, making inference significantly more time-consuming than the training phase itself. As a pioneering inference framework, vLLM provides a user-friendly interface for generating RLHF samples and updating model weights. +As demand grows for training reasoning-capable large language models (LLMs), Reinforcement Learning from Human Feedback (RLHF) has emerged as a cornerstone technique. However, conventional RLHF pipelines—especially those using Proximal Policy Optimization (PPO)—are often hindered by substantial computational overhead. This challenge is particularly pronounced with models that excel at complex reasoning tasks (such as OpenAI-o1 and DeepSeek-R1), where generating long chain-of-thought (CoT) outputs can account for up to 90% of total training time. These models must produce detailed, step-by-step reasoning that can span thousands of tokens, making inference significantly more time-consuming than the training phase itself. As a pioneering inference framework, vLLM provides a user-friendly interface for generating RLHF samples and updating model weights. ## Design of OpenRLHF From 860a5812a174fc00c2ffbc1d512c6dedaf5c1a2a Mon Sep 17 00:00:00 2001 From: hijkzzz Date: Fri, 18 Apr 2025 15:25:17 +0800 Subject: [PATCH 15/24] Update _posts/2025-04-18-openrlhf-vllm.md Co-authored-by: youkaichao --- _posts/2025-04-18-openrlhf-vllm.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index fed1299..476d136 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -97,4 +97,6 @@ for bundle_indices in [[0, 1], [2, 3]]: ## Acknowledgements -We would like to express our sincere gratitude to [Kaichao You](https://github.com/youkaichao) from the **vLLM** team and [Jian Hu](https://github.com/hijkzzz) from **OpenRLHF** for their invaluable contributions and close collaboration throughout this integration. Kaichao’s guidance on vLLM’s internals and RLHF API design significantly accelerated our implementation of high-throughput inference, while Jian’s deep insights into distributed RLHF architecture and training optimization were instrumental in refining OpenRLHF’s usability and performance. Their support not only made this work possible, but also laid the foundation for future advancements in efficient, scalable RLHF systems. \ No newline at end of file +We would like to express our sincere gratitude to the **vLLM** contributors, including [Kaichao You](https://github.com/youkaichao), [Cody Yu](https://github.com/comaniac), [Rui Qiao](https://github.com/ruisearch42), and many others, without which the OpenRLHF integration with vLLM will not be possible. [Kaichao You](https://github.com/youkaichao) from the vLLM team leads the RLHF integration. + +The ** OpenRLHF** project is an open-source project that provides xxx benefit, and we would like to thank xxx (contributors) for their major contribution to the OpenRLHF project. \ No newline at end of file From c890d3d2bdfe338ea7d60b07b649a9f50a5ff502 Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 07:28:41 +0000 Subject: [PATCH 16/24] fix --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 476d136..9dd00a7 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -99,4 +99,4 @@ for bundle_indices in [[0, 1], [2, 3]]: We would like to express our sincere gratitude to the **vLLM** contributors, including [Kaichao You](https://github.com/youkaichao), [Cody Yu](https://github.com/comaniac), [Rui Qiao](https://github.com/ruisearch42), and many others, without which the OpenRLHF integration with vLLM will not be possible. [Kaichao You](https://github.com/youkaichao) from the vLLM team leads the RLHF integration. -The ** OpenRLHF** project is an open-source project that provides xxx benefit, and we would like to thank xxx (contributors) for their major contribution to the OpenRLHF project. \ No newline at end of file +The **OpenRLHF** project is the first open-source RLHF framework based on Ray and vLLM. We would like to thank [Jian Hu](https://github.com/hijkzzz) and [HollowMan6](https://github.com/HollowMan6) for their significant contributions to the vLLM generation and Hybrid Engine components of the OpenRLHF project. From e5cff2d135c7f5f95e1caf0c09c6fad3d3148caf Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 07:36:46 +0000 Subject: [PATCH 17/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 9dd00a7..48766ef 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -99,4 +99,4 @@ for bundle_indices in [[0, 1], [2, 3]]: We would like to express our sincere gratitude to the **vLLM** contributors, including [Kaichao You](https://github.com/youkaichao), [Cody Yu](https://github.com/comaniac), [Rui Qiao](https://github.com/ruisearch42), and many others, without which the OpenRLHF integration with vLLM will not be possible. [Kaichao You](https://github.com/youkaichao) from the vLLM team leads the RLHF integration. -The **OpenRLHF** project is the first open-source RLHF framework based on Ray and vLLM. We would like to thank [Jian Hu](https://github.com/hijkzzz) and [HollowMan6](https://github.com/HollowMan6) for their significant contributions to the vLLM generation and Hybrid Engine components of the OpenRLHF project. +The **OpenRLHF** project is the first open-source RLHF framework based on Ray and vLLM. We would like to thank [Jian Hu](https://github.com/hijkzzz), [HollowMan6](https://github.com/HollowMan6), [Zilin Zhu](https://github.com/zhuzilin), [Xibin Wu](https://github.com/wuxibin89) and many others for their significant contributions to the Ray, vLLM Wrapper and Hybrid Engine components of the OpenRLHF project. [Jian Hu](https://github.com/hijkzzz) leads the development. From 9a4fbcb43d494c9c0385521189939b72dcd705bd Mon Sep 17 00:00:00 2001 From: hijkzzz Date: Fri, 18 Apr 2025 15:44:05 +0800 Subject: [PATCH 18/24] Update _posts/2025-04-18-openrlhf-vllm.md Co-authored-by: youkaichao --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 48766ef..eeef1bf 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -99,4 +99,4 @@ for bundle_indices in [[0, 1], [2, 3]]: We would like to express our sincere gratitude to the **vLLM** contributors, including [Kaichao You](https://github.com/youkaichao), [Cody Yu](https://github.com/comaniac), [Rui Qiao](https://github.com/ruisearch42), and many others, without which the OpenRLHF integration with vLLM will not be possible. [Kaichao You](https://github.com/youkaichao) from the vLLM team leads the RLHF integration. -The **OpenRLHF** project is the first open-source RLHF framework based on Ray and vLLM. We would like to thank [Jian Hu](https://github.com/hijkzzz), [HollowMan6](https://github.com/HollowMan6), [Zilin Zhu](https://github.com/zhuzilin), [Xibin Wu](https://github.com/wuxibin89) and many others for their significant contributions to the Ray, vLLM Wrapper and Hybrid Engine components of the OpenRLHF project. [Jian Hu](https://github.com/hijkzzz) leads the development. +The **OpenRLHF** project is the first open-source RLHF framework based on Ray and vLLM. We would like to thank [Jian Hu](https://github.com/hijkzzz), [Songlin Jiang](https://github.com/HollowMan6), [Zilin Zhu](https://github.com/zhuzilin), [Xibin Wu](https://github.com/wuxibin89) and many others for their significant contributions to the Ray, vLLM Wrapper and Hybrid Engine components of the OpenRLHF project. [Jian Hu](https://github.com/hijkzzz) leads the development. From 9b51fe7df9bf684386895062c2dd89ced51f939c Mon Sep 17 00:00:00 2001 From: jianh Date: Fri, 18 Apr 2025 07:46:42 +0000 Subject: [PATCH 19/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index eeef1bf..7db38fb 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -13,11 +13,11 @@ As demand grows for training reasoning-capable large language models (LLMs), Rei To strike a balance between performance and usability in RLHF frameworks, [OpenRLHF](https://github.com/OpenRLHF/OpenRLHF) is designed as a high-performance yet user-friendly solution that integrates key technologies like Ray, vLLM, Zero Redundancy Optimizer (ZeRO-3), and Automatic Tensor Parallelism (AutoTP): -**Ray** acts as the backbone of OpenRLHF's distributed architecture. With powerful scheduling and orchestration features, Ray efficiently manages complex data flows and computations, including distributing rule-based reward models across multiple nodes. +**[Ray](https://github.com/ray-project/ray)** acts as the backbone of OpenRLHF's distributed architecture. With powerful scheduling and orchestration features, Ray efficiently manages complex data flows and computations, including distributing rule-based reward models across multiple nodes. **vLLM with Ray Executor and AutoTP** plays a central role in accelerating inference. With built-in support for Ray Executors and integration with HuggingFace Transformers, it enables efficient weight updates through AutoTP, resulting in high-throughput and memory-efficient LLM generation. -**ZeRO-3 with HuggingFace Transformers**, a memory optimization approach from DeepSpeed, empowers OpenRLHF to train large models without requiring heavyweight frameworks like Megatron. This seamless integration with HuggingFace allows for simple loading and fine-tuning of pre-trained models. +**ZeRO-3 with [HuggingFace Transformers](https://github.com/huggingface/transformers)**, a memory optimization approach from [DeepSpeed](https://github.com/deepspeedai/DeepSpeed), empowers OpenRLHF to train large models without requiring heavyweight frameworks like Megatron. This seamless integration with HuggingFace allows for simple loading and fine-tuning of pre-trained models. Together, Ray, vLLM, ZeRO-3, and HuggingFace Transformers create a cutting-edge yet streamlined solution for accelerating RLHF training. The architecture has also influenced other frameworks such as [veRL](https://github.com/volcengine/verl), which adopt similar paradigms for scalable and efficient RLHF training. OpenRLHF is also the first open-source RLHF framework developed based on Ray and vLLM, and has been used by Google, Bytedance, Alibaba, Meituan, Berkeley Starling Team etc. @@ -92,7 +92,7 @@ for bundle_indices in [[0, 1], [2, 3]]: inference_engines.append(llm) ``` -[The complete example](https://docs.vllm.ai/en/latest/getting_started/examples/rlhf_colocate.html) walks through initializing Ray with a specified GPU count, creating a placement group to manage resources, and defining both training actors and inference engines. The training actors manage model initialization and weight updates, while the inference engines serve models via vLLM. Weight synchronization is carried out using CUDA IPC or NCCL, ensuring coherence and efficiency throughout the RLHF pipeline. +[The complete RLHF example](https://docs.vllm.ai/en/latest/getting_started/examples/rlhf_colocate.html) walks through initializing Ray with a specified GPU count, creating a placement group to manage resources, and defining both training actors and inference engines. The training actors manage model initialization and weight updates, while the inference engines serve models via vLLM. Weight synchronization is carried out using CUDA IPC or NCCL, ensuring coherence and efficiency throughout the RLHF pipeline. ## Acknowledgements From afe5181aa967d48fe2a1bd9e76d8102137988ed7 Mon Sep 17 00:00:00 2001 From: youkaichao Date: Sat, 19 Apr 2025 20:25:28 +0800 Subject: [PATCH 20/24] minor fix Signed-off-by: youkaichao --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 7db38fb..ceddd61 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -1,5 +1,5 @@ --- -layout: post +layout: post title: "Accelerating RLHF with vLLM, Best Practice from OpenRLHF" author: "The OpenRLHF Team" image: /assets/figures/openrlhf-vllm/ray.png From 41c900e9053ba07aeb5ca06b7d8316a2cf38c513 Mon Sep 17 00:00:00 2001 From: youkaichao Date: Sat, 19 Apr 2025 20:41:14 +0800 Subject: [PATCH 21/24] minor fix Signed-off-by: youkaichao --- _posts/2025-04-18-openrlhf-vllm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index ceddd61..17af550 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -97,6 +97,6 @@ for bundle_indices in [[0, 1], [2, 3]]: ## Acknowledgements -We would like to express our sincere gratitude to the **vLLM** contributors, including [Kaichao You](https://github.com/youkaichao), [Cody Yu](https://github.com/comaniac), [Rui Qiao](https://github.com/ruisearch42), and many others, without which the OpenRLHF integration with vLLM will not be possible. [Kaichao You](https://github.com/youkaichao) from the vLLM team leads the RLHF integration. +We would like to express our sincere gratitude to the vLLM contributors, including [Kaichao You](https://github.com/youkaichao), [Cody Yu](https://github.com/comaniac), [Rui Qiao](https://github.com/ruisearch42), and many others, without which the OpenRLHF integration with vLLM will not be possible. [Kaichao You](https://github.com/youkaichao) from the vLLM team leads the RLHF integration. -The **OpenRLHF** project is the first open-source RLHF framework based on Ray and vLLM. We would like to thank [Jian Hu](https://github.com/hijkzzz), [Songlin Jiang](https://github.com/HollowMan6), [Zilin Zhu](https://github.com/zhuzilin), [Xibin Wu](https://github.com/wuxibin89) and many others for their significant contributions to the Ray, vLLM Wrapper and Hybrid Engine components of the OpenRLHF project. [Jian Hu](https://github.com/hijkzzz) leads the development. +The OpenRLHF project is the first open-source RLHF framework based on Ray and vLLM. We would like to thank [Jian Hu](https://github.com/hijkzzz), [Songlin Jiang](https://github.com/HollowMan6), [Zilin Zhu](https://github.com/zhuzilin), [Xibin Wu](https://github.com/wuxibin89) and many others for their significant contributions to the Ray, vLLM Wrapper and Hybrid Engine components of the OpenRLHF project. [Jian Hu](https://github.com/hijkzzz) leads the development. From 8b7f6ddf170ed2f1be171ab2b90d51ccedf288ee Mon Sep 17 00:00:00 2001 From: jianh Date: Sat, 19 Apr 2025 22:47:04 +0000 Subject: [PATCH 22/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index 17af550..c3c697b 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -30,6 +30,7 @@ As illustrated above, OpenRLHF uses [Ray’s Placement Group API](https://docs.r OpenRLHF and vLLM provide a clean and efficient set of APIs to simplify interaction within RLHF pipelines. By implementing a custom `WorkerExtension` class, users can handle weight synchronization between training and inference components. The environment variables `VLLM_RAY_PER_WORKER_GPUS` and `VLLM_RAY_BUNDLE_INDICES` allows fine-grained GPU resource allocation per worker, enabling hybrid engine configurations where multiple components share a GPU group: ```python +# rlhf_utils.py class ColocateWorkerExtension: """ Extension class for vLLM workers to handle weight synchronization. @@ -55,6 +56,7 @@ class ColocateWorkerExtension: self.model_runner.model.load_weights(weights=weights) torch.cuda.synchronize() +# main.py class MyLLM(LLM): """ Custom LLM class to handle GPU resource allocation and bundle indices. @@ -69,7 +71,7 @@ class MyLLM(LLM): super().__init__(*args, **kwargs) -# Create placement group for GPU allocation +# Create Ray's placement group for GPU allocation pg = placement_group([{"GPU": 1, "CPU": 0}] * 4) ray.get(pg.ready()) @@ -86,7 +88,7 @@ for bundle_indices in [[0, 1], [2, 3]]: tensor_parallel_size=2, distributed_executor_backend="ray", gpu_memory_utilization=0.4, - worker_extension_cls="__main__.ColocateWorkerExtension", + worker_extension_cls="rlhf_utils.ColocateWorkerExtension", bundle_indices=bundle_indices ) inference_engines.append(llm) From 62ca2844bc02be3824d4662da9f515dea1232076 Mon Sep 17 00:00:00 2001 From: jianh Date: Sat, 19 Apr 2025 22:47:49 +0000 Subject: [PATCH 23/24] update --- _posts/2025-04-18-openrlhf-vllm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-18-openrlhf-vllm.md index c3c697b..6b6e39d 100644 --- a/_posts/2025-04-18-openrlhf-vllm.md +++ b/_posts/2025-04-18-openrlhf-vllm.md @@ -19,7 +19,7 @@ To strike a balance between performance and usability in RLHF frameworks, [OpenR **ZeRO-3 with [HuggingFace Transformers](https://github.com/huggingface/transformers)**, a memory optimization approach from [DeepSpeed](https://github.com/deepspeedai/DeepSpeed), empowers OpenRLHF to train large models without requiring heavyweight frameworks like Megatron. This seamless integration with HuggingFace allows for simple loading and fine-tuning of pre-trained models. -Together, Ray, vLLM, ZeRO-3, and HuggingFace Transformers create a cutting-edge yet streamlined solution for accelerating RLHF training. The architecture has also influenced other frameworks such as [veRL](https://github.com/volcengine/verl), which adopt similar paradigms for scalable and efficient RLHF training. OpenRLHF is also the first open-source RLHF framework developed based on Ray and vLLM, and has been used by Google, Bytedance, Alibaba, Meituan, Berkeley Starling Team etc. +Together, Ray, vLLM, ZeRO-3, and HuggingFace Transformers create a cutting-edge yet streamlined solution for accelerating RLHF training. The architecture has also influenced other frameworks such as [veRL](https://github.com/volcengine/verl), which adopt similar paradigms for scalable and efficient RLHF training. OpenRLHF is also the first open-source RLHF framework developed based on Ray, vLLM and ZeRO-3, and has been used by Google, Bytedance, Alibaba, Meituan, Berkeley Starling Team etc. Ray and vLLM in OpenRLHF From 4ebcb7e695864f8076609ec705e5afbd6830d2ff Mon Sep 17 00:00:00 2001 From: youkaichao Date: Thu, 24 Apr 2025 15:09:28 +0800 Subject: [PATCH 24/24] rename files Signed-off-by: youkaichao --- .../{2025-04-18-openrlhf-vllm.md => 2025-04-23-openrlhf-vllm.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _posts/{2025-04-18-openrlhf-vllm.md => 2025-04-23-openrlhf-vllm.md} (100%) diff --git a/_posts/2025-04-18-openrlhf-vllm.md b/_posts/2025-04-23-openrlhf-vllm.md similarity index 100% rename from _posts/2025-04-18-openrlhf-vllm.md rename to _posts/2025-04-23-openrlhf-vllm.md