Add SFT dashboard views and workload filtering - #519
Conversation
|
Documentation preview: https://modal-labs-training-gym--training-gym-previews-preview-r-78da35.modal.run/519/docs |
6d9d888 to
8e4c88e
Compare
338fceb to
94f6b2f
Compare
94f6b2f to
7a9751e
Compare
|
|
||
| export async function fetchRunSteps(trainingRunId, { signal } = {}) { | ||
| const res = await fetch(`${SERVER}/runs/${encodeURIComponent(trainingRunId)}/steps`, { signal }); | ||
| if (!res.ok) return []; |
There was a problem hiding this comment.
🟡 Failed loss requests erase history
An HTTP failure becomes an empty result in fetchRunSteps. The next poll erases loaded loss history and hides the reporting failure.
| if (!res.ok) return []; | |
| if (!res.ok) throw new Error(await getErrorFromResponse(res)); |
Was this helpful? React with 👍 or 👎 to provide feedback.
| $effect(() => { | ||
| if (sft && activeTab === "rollouts") selectTab("summary"); | ||
| }); |
There was a problem hiding this comment.
🟡 Legacy sample links trap navigation
Opening an SFT rollouts deep link makes selectTab push a summary entry. Back restores rollouts, which immediately pushes summary again.
Prompt for agents
In dashboards/frontend/src/pages/TrainingRunDetailPage.svelte, normalize the unsupported rollouts tab for SFT without adding a history entry. Preserve the existing deep-link compatibility while ensuring Back can leave the run page. Consider replacing the current URL entry or making URL parsing workload-aware after the run type is known.
Was this helpful? React with 👍 or 👎 to provide feedback.
| if is_sft(args): | ||
| report_samples(rollout_id, args, samples) | ||
| return True |
9a94190 to
1919319
Compare
1919319 to
d9ab31d
Compare
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
⚠️ 1 issue in files not directly in the diff
⚠️ RL JSON reward contract breaks
run get --json removes current_reward from every RL payload and emits current_metric instead. Existing consumers read no reward or fail when they require the established key.
SFT runs now show training loss and supervised targets instead of empty generated responses and reward charts. Adds an SFT/RL filter and labels, a loss chart using the existing chart component, and a Training samples tab that preserves exact target text and labels context separately.
Example run (dashboard here, Qwen3 32B, 8xH200, 1000 steps, 128 bsz, 4096 max ctx len, not tuned):
Video:
https://github.com/user-attachments/assets/251abe78-4583-4e7c-9a52-2b32494f3fab