Model Fine-Tuning Latency Capacity Estimator

The Model Fine-Tuning Latency Capacity Estimator estimates how long a fine-tuning job will run and how many similar jobs a GPU pool can complete per day. It uses dataset token volume, epochs, effective training throughput, setup time, and the number of GPUs assigned per job.

The output helps teams schedule experiments and reserve shared infrastructure. It assumes each job receives a fixed GPU allocation and that the entered throughput already reflects distributed-training efficiency.

Calculator inputs

tokens
epochs
tokens/s
min
GPUs
GPUs
%
Result
Estimated job duration
Concurrent jobs
Jobs per day
Processing time

1. Enter one-epoch token volume
Use the tokens in the actual training subset.

2. Set epochs and throughput
Throughput should represent the whole assigned GPU group, not one GPU unless the job uses one.

3. Add setup overhead
Include startup, data loading, checkpoint, or teardown time not captured by token processing.

4. Describe the shared pool
Enter total GPUs, GPUs per job, and the intended scheduling utilization.

5. Review duration and daily capacity
Use the outputs for queue planning and experiment cadence.

Processing time = Tokens per epoch × Epochs ÷ Throughput
Job duration = Processing time + Setup overhead
Concurrent jobs = floor(Pool GPUs ÷ GPUs per job)
Jobs per day = Concurrent jobs × Utilization × 24 hours ÷ Job duration

What the result means

The main result is elapsed time for one job under the entered throughput. Daily capacity is the theoretical number of equivalent jobs completed by the pool.

Checkpoint frequency, failures, queue gaps, and non-linear distributed scaling can reduce actual capacity.

Given: 36 million tokens per epoch, 3 epochs, 4,500 tokens/second per job, 20 minutes setup, 16 GPUs total, 4 GPUs per job, and 80% utilization.

Calculation: Processing time = 108,000,000 ÷ 4,500 = 24,000 seconds = 6.67 hours. Duration = 7.00 hours. Concurrent jobs = floor(16 ÷ 4) = 4. Jobs/day = 4 × 0.80 × 24 ÷ 7 = 10.97.

Result: One job takes about 7 hours and the pool can complete about 10.97 equivalent jobs per day.

Should throughput be measured per GPU or per job?

Enter total throughput for the full GPU allocation assigned to one job.

Why use floor for concurrent jobs?

A partial GPU group cannot start another job under the fixed-allocation assumption.

Does daily capacity mean all jobs finish within the same calendar day?

It is an average steady-state rate, not a promise about calendar-day boundaries.

How should checkpoint time be handled?

Include it in setup overhead if it is roughly fixed, or lower the measured throughput if it grows with token volume.

Can this model compare GPU configurations?

Yes. Change GPUs per job and the corresponding measured throughput, then compare duration and pool capacity.