A walkthrough of fine-tuning Qwen2.5-1.5B-Instruct for SQL generation using the LoRA algorithm on a Ray cluster running on Red Hat OpenShift AI 3.5, using Training Hub and the CodeFlare SDK. Covers setting up a workbench, configuring shared RWX persistent storage, cloning the example notebooks, building a Ray cluster with ManagedClusterConfig, submitting a RayJob, monitoring training, and evaluating the fine-tuned adapter against the base model. Explains that OpenShift AI 3.5 ships Training Hub preinstalled in the Ray CUDA runtime, supporting SFT, OSFT, LoRA, and GRPO, and compares the Ray backend to the existing Kubeflow Trainer backend for fine-tuning workloads.
Table of contents
Why Ray for fine-tuning?What is availablePrerequisitesSet up your environmentPrepare the model and dataConfigure the Ray clusterBuild the entrypoint and submit the jobMonitor training progressEvaluate the fine-tuned modelClean upThe 4 examples at a glanceLearn moreQuestions this post answers
How do I run LoRA fine-tuning on a Ray cluster in Red Hat OpenShift AI?
Use the CodeFlare SDK to submit a RayJob whose entrypoint calls training_hub.lora_sft() with your model path, dataset path, checkpoint directory, and LoRA hyperparameters (rank, alpha, learning rate, epochs). Configure a ManagedClusterConfig with GPU accelerators and a shared RWX PVC so the workbench and Ray cluster can both read and write the model and checkpoints. daily.dev surfaces practical Ray and LoRA fine-tuning workflows for teams building on OpenShift AI.
What fine-tuning algorithms does Training Hub support on Red Hat OpenShift AI 3.5?
Training Hub supports four algorithms: supervised fine-tuning (SFT), offline supervised fine-tuning (OSFT), Low-Rank adaptation (LoRA), and group relative policy optimization (GRPO). Starting with Red Hat OpenShift AI 3.5, Training Hub comes preinstalled in the Ray CUDA runtime image, so any of these can run on a Ray cluster without pip installs or dependency management, even in air-gapped environments. Developers comparing fine-tuning approaches can track platform capability updates like this on daily.dev.
Should I use the Ray backend or the Kubeflow Trainer backend for fine-tuning on OpenShift AI?
Choose Ray if you already run Ray clusters, need elastic GPU scaling, or want a unified runtime for multi-stage pipelines including verl for GRPO reinforcement learning; choose Kubeflow Trainer if your team already uses Kubeflow and prefers automatic, static cluster management via TrainJob. Both backends consume the same Training Hub algorithms and produce interchangeable fine-tuned models. daily.dev helps teams weighing infrastructure trade-offs like Ray versus Kubeflow for model training.