diff --git a/studio/frontend/src/features/onboarding/components/steps/hyperparameters-step.tsx b/studio/frontend/src/features/onboarding/components/steps/hyperparameters-step.tsx
index 5117debcce..0a04a1e71f 100644
--- a/studio/frontend/src/features/onboarding/components/steps/hyperparameters-step.tsx
+++ b/studio/frontend/src/features/onboarding/components/steps/hyperparameters-step.tsx
@@ -23,7 +23,7 @@ import {
TooltipTrigger,
} from "@/components/ui/tooltip";
import { CONTEXT_LENGTHS } from "@/config/training";
-import { useTrainingConfigStore } from "@/features/training";
+import { useMaxStepsEpochsToggle, useTrainingConfigStore } from "@/features/training";
import { InformationCircleIcon } from "@hugeicons/core-free-icons";
import { HugeiconsIcon } from "@hugeicons/react";
import { useShallow } from "zustand/react/shallow";
@@ -35,6 +35,8 @@ export function HyperparametersStep() {
setMaxSteps,
epochs,
setEpochs,
+ saveSteps,
+ setSaveSteps,
contextLength,
setContextLength,
learningRate,
@@ -52,6 +54,8 @@ export function HyperparametersStep() {
setMaxSteps: s.setMaxSteps,
epochs: s.epochs,
setEpochs: s.setEpochs,
+ saveSteps: s.saveSteps,
+ setSaveSteps: s.setSaveSteps,
contextLength: s.contextLength,
setContextLength: s.setContextLength,
learningRate: s.learningRate,
@@ -67,6 +71,15 @@ export function HyperparametersStep() {
const showLoraParams =
trainingMethod === "lora" || trainingMethod === "qlora";
+ const { useEpochs, toggleUseEpochs } = useMaxStepsEpochsToggle({
+ maxSteps,
+ epochs,
+ saveSteps,
+ setMaxSteps,
+ setEpochs,
+ setSaveSteps,
+ });
+
const maxStepsSliderMax = Math.max(500, maxSteps, 30);
const epochsSliderMax = Math.max(10, epochs, 1);
@@ -75,52 +88,84 @@ export function HyperparametersStep() {