AI engineering and inferenceLoading progress…

Observability

Calculate cost per token, estimate stable concurrency and define operational metrics tied to user-facing objectives.

Measuring what users feel

Track the stages of a request with consistent definitions: queueing time, time to first token, the gaps between tokens, failures and end-to-end latency. Record them as histograms so you can read percentiles. The mean can hide the slow tail: with 95 requests at 0.2 s and 5 at 3.0 s the mean is 0.34 s, yet 5% of users waited three seconds.

requests (of 100) taking 3.0 s instead of 0.2 s5
bucketcount
< 0.5 s95
0.5 – 1 s0
1 – 5 s5
mean = 0.34 s p50 = 0.2 s p95 = 0.34 s p99 = 3 s fraction slower than 1 s = 0.05

Measure queueing, time to first token, the gaps between tokens, failures and end-to-end time with consistent definitions. Histograms show the shape; a mean can look healthy while users in the tail wait seconds.

Increase the number of slow requests.

Predict first. Does mean latency alone establish a p95 target?

Chapter context

An efficient service delivers useful requests within latency and quality targets at a sustainable cost. Hardware utilization, application traffic and failure handling determine whether an attractive benchmark becomes an economical deployment.

Chapter reference: math, worked example & code

This section belongs to the whole chapter, so it is the same on every lesson in it and may cover a different lesson's topic. The code for the experiment you just ran is inside the experiment itself.

Math and notation

For hourly cost H and useful sustained output rate r:

Cmillion=106H3600r.C_{million}=\frac{10^6H}{3600r}.

For a stable system under compatible averages, Little's law is L=λWL=\lambda W: average in-system requests equal arrival rate times average time in system. It does not make an unstable queue stable.

Worked example

At a fictional 2/hourand100usefuloutputtokens/s,costis2×1,000,000/(3600×100)≈2/hour and 100 useful output tokens/s, cost is 2×1,000,000/(3600×100)≈5.5556 per million output tokens, excluding other costs. If useful throughput falls to 50, cost doubles to about $11.1111. At four requests/s and two seconds average in-system time, average concurrent requests are eight.

Reference code

The following example uses the Python standard library and does not call a remote service.

from math import isclose
cost=lambda rate: 1_000_000*2/(3600*rate)
assert isclose(cost(100),5.555555555555555)
assert isclose(cost(50),2*cost(100))
assert 4*2 == 8

Python examples are provided for study and local execution; this page does not execute Python.

Common mistakes

Fictional arithmetic prices are not current provider quotes. Little's law requires a stable, consistently measured system. Counting failed or late tokens as useful throughput can hide poor service.