Alterna · учебный материал
17.6 Что хранится во время ответа
Кроме весов нужны сохранённые промежуточные числа запросов. Их объём зависит от длины фразы, устройства модели и формата хранения.
Что в этом материале
- Измеряем путь request, а не только model forward
Содержание и основные понятия
На предыдущей странице: приближённое хранение весов.
Кроме весов нужны сохранённые промежуточные числа запросов. Их объём зависит от длины фразы, устройства модели и формата хранения.
Первый запуск обрабатывает префикс. Каждый последующий добавляет одну позицию; K/V прошлых позиций можно сохранять. Выборка и сжатое хранение решают разные задачи.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Измеряем путь request, а не только model forward
Serving включает прием запроса, validation, queue, prefill, decode, postprocessing и передачу ответа. End-to-end latency раскладывается на time-to-first-token и интервалы последующих tokens. Throughput измеряется на фиксированном workload; среднее без percentiles скрывает tail latency.
Для samples sorted
x_(1)..x_(n)
nearest-rank percentile определяется индексом
ceil(qn)
. Это явный локальный контракт dashboard, а не единственное статистическое определение percentile.
p
q
=
x
(
⌈
q
n
⌉
)
,
R
=
N
o
u
t
p
u
t
t
e
n
d
−
t
s
t
a
r
t
.
p_q=x_{(\lceil qn\rceil)},\qquad
R=\frac{N_{output}}{t_{end}-t_{start}}.
p
q
=
x
(⌈
q
n
⌉)
,
R
=
t
e
n
d
−
t
s
t
a
r
t
N
o
u
tp
u
t
.
Что показывает модель.
Dashboard связывает каждую метрику с точными границами времени и workload: input/output lengths, concurrency, sampler, dtype и hardware. Error rate разделяется по validation, overload, timeout и internal failure. SLO может требовать одновременно p95 TTFT, p95 total latency и availability.
Граница применимости.
Четыре samples не дают надёжной оценки tail. Warmup, compilation, cache hits и network location меняют результат. Сравнивать два сервера корректно только при одинаковых requests и критерии качества; ускорение ценой другого tokenizer, shorter outputs или худшего model quality не является чистым serving improvement.
from math import ceil
latencies_17f=[0.4,0.8,0.6,1.0]; ordered_17f=sorted(latencies_17f)
p95_17f=ordered_17f[ceil(0.95*len(ordered_17f))-1]
throughput_17f=12/2.0
assert p95_17f==1.0 and throughput_17f==6.0
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Payload складывается из K и V по всем перечисленным осям.
Веса не содержат новый школьный документ. Как дать модели внешнее свидетельство?
Python-примеры главы 17
Академическая база →