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

Чтобы получить чистое 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

См. также​