Что такое Time to First Token (TTFT)?
Время от запроса до начала стриминга первого токена ответа.
Формула
$$TTFT = t_{\text{first stream chunk}} - t_{\text{request sent}}$$Как считать
Измеряем end-of-request → first byte of streaming response. Считают P50 / P95 / P99.
Зачем нужна
Для streaming-UI это «perceived latency» — юзер видит, что модель начала отвечать. Если TTFT < 500ms, ощущение мгновенности. TTFT > 2s = «модель думает». Не путать с end-to-end latency, которая ещё включает generation duration.
SQL-запрос
SELECT
date_trunc('hour', requested_at) AS hour,
COUNT(*) AS streaming_requests,
ROUND(AVG(ttft_ms)) AS avg_ttft_ms,
ROUND(percentile_cont(0.5) WITHIN GROUP (ORDER BY ttft_ms)) AS p50_ms,
ROUND(percentile_cont(0.95) WITHIN GROUP (ORDER BY ttft_ms)) AS p95_ms,
ROUND(AVG(retrieval_ms)) AS avg_retrieval_ms,
ROUND(AVG(prompt_processing_ms)) AS avg_prompt_proc_ms
FROM llm_streaming_logs
WHERE streaming = true AND requested_at >= CURRENT_DATE - INTERVAL '24 hours'
GROUP BY 1
ORDER BY 1;