Перейти к основному содержимому

Чтобы получить чистое Markdown-содержимое этой страницы, добавьте .md к этому URL. Полный индекс документации см. в https://docs.nvidia.com/dynamo/llms.txt. Полное содержимое, включая справочник API и примеры SDK, см. в https://docs.nvidia.com/dynamo/llms-full.txt.

Спекулятивное декодирование

Спекулятивное декодирование - это метод оптимизации, который использует меньшую "черновую" модель для предсказания нескольких токенов, которые затем параллельно проверяются основной моделью. Это может значительно снизить задержку при авторегрессионной генерации.

Поддержка бэкендов

BackendСтатусПримечания
vLLMПоддержка черновой модели Eagle3
SGLang🚧Пока не задокументировано
TensorRT-LLM🚧Пока не задокументировано

Обзор

Спекулятивное декодирование работает так:

  1. Черновая фаза: меньшая и более быстрая модель генерирует токены-кандидаты
  2. Фаза проверки: основная модель проверяет эти кандидаты за один прямой проход
  3. Принятие/отклонение: токены принимаются, если они совпадают с тем, что сгенерировала бы основная модель

В этом подходе дополнительные вычисления обмениваются на меньшую задержку, поскольку за один прямой проход основной модели можно сгенерировать несколько токенов.

Быстрый старт (vLLM + Eagle3)

В этом руководстве показано развертывание Meta-Llama-3.1-8B-Instruct со спекулятивным декодированием Eagle3 на одном GPU с VRAM не менее 16GB.

Предварительные требования

  1. Запустите инфраструктурные сервисы:
docker compose -f dev/docker-compose.yml up -d
  1. Соберите и запустите контейнер vLLM:
./container/build.sh --framework VLLM
./container/run.sh -it --framework VLLM --mount-workspace
  1. Настройте доступ к Hugging Face (доступ к Meta-Llama-3.1-8B-Instruct ограничен):
export HUGGING_FACE_HUB_TOKEN="your_token_here"
export HF_TOKEN=$HUGGING_FACE_HUB_TOKEN

Запустите спекулятивное декодирование

cd examples/backends/vllm
bash launch/agg_spec_decoding.sh

Проверьте развертывание

curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Meta-Llama-3.1-8B-Instruct",
"messages": [
{"role": "user", "content": "Write a poem about why Sakura trees are beautiful."}
],
"max_tokens": 250
}'

Руководства для отдельных бэкендов

BackendРуководство
vLLMspeculative_decoding_vllm.md

См. также