Alterna · учебный материал

17.4 Несколько запросов используют общую вычислительную работу

Один запрос может закончиться раньше другого. Планировщик меняет заполнение вычислительных мест, а не веса модели.

Что в этом материале

Содержание и основные понятия

На предыдущей странице: как выбирается один вариант.
Один запрос может закончиться раньше другого. Планировщик меняет заполнение вычислительных мест, а не веса модели.
Первый запуск обрабатывает префикс. Каждый последующий добавляет одну позицию; K/V прошлых позиций можно сохранять. Выборка и сжатое хранение решают разные задачи.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Состав batch может меняться между decode ticks
При static batching все requests стартуют вместе, а короткие могут ждать длинный. Continuous batching удаляет завершённые sequences и добавляет новые, чтобы каждый iteration обслуживал актуальный набор. Scheduler должен учитывать доступную KV-memory, token budget, priority и fairness, а не только максимальный batch size. F09.
В упрощённом fixture три requests имеют остатки
[2,1,3]
. За tick каждый active request производит один token, поэтому active counts
[3,2,1]
, всего шесть token-slots. Реальный iteration time не обязан быть постоянным:
W
t
o
k
e
n
s
=
∑
t
B
t
,
t
h
r
o
u
g
h
p
u
t
=
completed output tokens
wall time
.
W_{tokens}=\sum_t B_t,
\qquad throughput=\frac{\text{completed output tokens}}{\text{wall time}}.
W
t
o
k
e
n
s
​
=
t
∑
​
B
t
​
,
t
h
ro
ug
h
p
u
t
=
wall time
completed output tokens
​
.
Что показывает модель.
Timeline различает waiting, prefill, decode и completed. Хороший throughput может сосуществовать с плохой latency отдельного request, поэтому dashboard показывает queue time, TTFT и inter-token latency отдельно. Admission control должен отклонить или отложить request до allocation, а не падать посреди generation без явной ошибки.
Граница применимости.
Учебный tick не моделирует разную prompt length, speculative decoding, preemption, prefix caching или hardware occupancy. Aggressive batching способен увеличить latency. Приоритеты без aging создают starvation; fairness policy должна быть наблюдаемой и тестируемой.
remaining_17d=[2,1,3]; active_counts_17d=[]
while any(remaining_17d):
active_counts_17d.append(sum(value>0 for value in remaining_17d))
remaining_17d=[max(0,value-1) for value in remaining_17d]
assert active_counts_17d==[3,2,1] and sum(active_counts_17d)==6
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Scheduler совместно использует slots, не переобучая модель.
Приближённое хранение весов. Как этот вопрос продолжает полученный результат?
Python-примеры главы 17
Академическая база →

Структурная карта учебников