From a3291b5654a1790c5a70610e17007b7127380fe7 Mon Sep 17 00:00:00 2001 From: Mingyi Date: Mon, 20 Apr 2026 15:10:22 -0700 Subject: [PATCH] Add new Mintlify documentation site (docs_new/) (#23001) Co-authored-by: AdityaVKochar Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com> Co-authored-by: adhyan-jain Co-authored-by: Adhyan Jain <71976554+adhyan-jain@users.noreply.github.com> Co-authored-by: Maitri-shah29 Co-authored-by: Adarsh Shirawalmath <114558126+adarshxs@users.noreply.github.com> Co-authored-by: Maitri Shah Co-authored-by: Aditya Vardhan Kochar <80113212+AdityaVKochar@users.noreply.github.com> Co-authored-by: Rishit Shivam <164783543+pokymono@users.noreply.github.com> Co-authored-by: Rishitshivam <164783543+Rishitshivam@users.noreply.github.com> Co-authored-by: IshhanKheria Co-authored-by: Ishita Joshi Co-authored-by: Richard Chen <104477092+Richardczl98@users.noreply.github.com> Co-authored-by: longGGGGGG <553746008@qq.com> Co-authored-by: Richard Co-authored-by: Nakul Sinha Co-authored-by: Divyam Agrawal Co-authored-by: Richardczl98 Co-authored-by: Krishang Zinzuwadia Co-authored-by: nimeshas Co-authored-by: Claude Opus 4.6 Co-authored-by: github-actions[bot] Co-authored-by: Jignas Paturu <86356085+JignasP@users.noreply.github.com> Co-authored-by: zijiexia <37504505+zijiexia@users.noreply.github.com> --- .gitignore | 1 + .../workflows/sync-lmsys-sglang-blogs.yml | 39 + docs_new/.gitignore | 30 + docs_new/.mintignore | 7 + docs_new/AGENTS.md | 381 ++ docs_new/CONTRIBUTING.md | 34 + docs_new/LICENSE | 201 + docs_new/README.md | 126 + .../cards/Autoregressive-benchmark-card.png | Bin 0 -> 699119 bytes docs_new/cards/Autoregressive-card.png | Bin 0 -> 661305 bytes docs_new/cards/Classification-card.png | Bin 0 -> 126484 bytes docs_new/cards/Diffusion-benchmark-card.png | Bin 0 -> 718444 bytes docs_new/cards/Diffusion-card.png | Bin 0 -> 179619 bytes docs_new/cards/Embedding-card.png | Bin 0 -> 720529 bytes docs_new/cards/LLM-card.png | Bin 0 -> 633361 bytes docs_new/cards/Omni-card.png | Bin 0 -> 3012 bytes docs_new/cards/Rerank-card.png | Bin 0 -> 731047 bytes docs_new/cards/Reward-card.png | Bin 0 -> 651985 bytes docs_new/cards/VLM-card.png | Bin 0 -> 486469 bytes docs_new/cards/dLLM-card.png | Bin 0 -> 357376 bytes docs_new/cards/logos/deepseek.png | Bin 0 -> 11405 bytes docs_new/cards/logos/ernie.png | Bin 0 -> 11037 bytes docs_new/cards/logos/fishaudio.png | Bin 0 -> 1441 bytes docs_new/cards/logos/flashlabs.png | Bin 0 -> 12742 bytes docs_new/cards/logos/flux.png | Bin 0 -> 8988 bytes docs_new/cards/logos/glm.png | Bin 0 -> 7232 bytes docs_new/cards/logos/google.png | Bin 0 -> 11750 bytes docs_new/cards/logos/inclusionai.png | Bin 0 -> 40134 bytes docs_new/cards/logos/internlm.png | Bin 0 -> 100672 bytes docs_new/cards/logos/internvl.png | Bin 0 -> 93854 bytes docs_new/cards/logos/jina.png | Bin 0 -> 6466 bytes docs_new/cards/logos/llama.png | Bin 0 -> 22396 bytes docs_new/cards/logos/minimax.png | Bin 0 -> 31244 bytes docs_new/cards/logos/mistral.png | Bin 0 -> 3748 bytes docs_new/cards/logos/moonshotai.png | Bin 0 -> 9771 bytes docs_new/cards/logos/mova.png | Bin 0 -> 86216 bytes docs_new/cards/logos/nvidia.png | Bin 0 -> 27187 bytes docs_new/cards/logos/openai.png | Bin 0 -> 13554 bytes docs_new/cards/logos/qwen.png | Bin 0 -> 43458 bytes docs_new/cards/logos/stepfun.png | Bin 0 -> 18467 bytes docs_new/cards/logos/wan.png | Bin 0 -> 43458 bytes docs_new/cards/logos/xiaomi.png | Bin 0 -> 30624 bytes docs_new/cards/logos/zimage.png | Bin 0 -> 43458 bytes .../DeepSeek/DeepSeek-Math-V2.mdx | 522 +++ .../DeepSeek/DeepSeek-OCR-2.mdx | 250 ++ .../autoregressive/DeepSeek/DeepSeek-OCR.mdx | 204 + .../autoregressive/DeepSeek/DeepSeek-R1.mdx | 910 +++++ .../autoregressive/DeepSeek/DeepSeek-V3.mdx | 520 +++ .../autoregressive/DeepSeek/DeepSeek-V3_1.mdx | 941 +++++ .../autoregressive/DeepSeek/DeepSeek-V3_2.mdx | 827 ++++ .../autoregressive/Ernie/Ernie4.5-VL.mdx | 28 + .../autoregressive/Ernie/Ernie4.5.mdx | 696 ++++ .../autoregressive/FlashLabs/Chroma1.0.mdx | 193 + .../cookbook/autoregressive/GLM/GLM-4.5.mdx | 490 +++ .../cookbook/autoregressive/GLM/GLM-4.5V.mdx | 533 +++ .../cookbook/autoregressive/GLM/GLM-4.6.mdx | 888 +++++ .../cookbook/autoregressive/GLM/GLM-4.6V.mdx | 382 ++ .../autoregressive/GLM/GLM-4.7-Flash.mdx | 931 +++++ .../cookbook/autoregressive/GLM/GLM-4.7.mdx | 546 +++ .../cookbook/autoregressive/GLM/GLM-5.1.mdx | 641 ++++ .../cookbook/autoregressive/GLM/GLM-5.mdx | 667 ++++ .../cookbook/autoregressive/GLM/GLM-Glyph.mdx | 829 ++++ .../cookbook/autoregressive/GLM/GLM-OCR.mdx | 227 ++ .../cookbook/autoregressive/Google/Gemma4.mdx | 1290 +++++++ .../autoregressive/InclusionAI/LLaDA-2.1.mdx | 701 ++++ .../InclusionAI/Ling-2.5-1T.mdx | 221 ++ .../InclusionAI/Ring-2.5-1T.mdx | 266 ++ .../autoregressive/InternLM/Intern-S1.mdx | 28 + .../autoregressive/InternVL/InternVL3.5.mdx | 29 + .../autoregressive/Jina/Jina-reranker-m0.mdx | 28 + .../autoregressive/Llama/Llama3.1.mdx | 644 ++++ .../autoregressive/Llama/Llama3.3-70B.mdx | 229 ++ .../cookbook/autoregressive/Llama/Llama4.mdx | 474 +++ .../autoregressive/MiniMax/MiniMax-M2.5.mdx | 1041 ++++++ .../autoregressive/MiniMax/MiniMax-M2.7.mdx | 723 ++++ .../autoregressive/MiniMax/MiniMax-M2.mdx | 541 +++ .../autoregressive/Mistral/Devstral-2.mdx | 518 +++ .../autoregressive/Mistral/Ministral-3.mdx | 288 ++ .../Mistral/Mistral-Small-4.mdx | 393 ++ .../autoregressive/Moonshotai/Kimi-K2.5.mdx | 1244 ++++++ .../autoregressive/Moonshotai/Kimi-K2.6.mdx | 1309 +++++++ .../autoregressive/Moonshotai/Kimi-K2.mdx | 520 +++ .../autoregressive/Moonshotai/Kimi-Linear.mdx | 297 ++ .../autoregressive/NVIDIA/Nemotron3-Nano.mdx | 375 ++ .../autoregressive/NVIDIA/Nemotron3-Super.mdx | 571 +++ .../autoregressive/OpenAI/GPT-OSS.mdx | 572 +++ .../autoregressive/Qwen/Qwen2.5-VL.mdx | 392 ++ .../autoregressive/Qwen/Qwen3-Coder-Next.mdx | 902 +++++ .../autoregressive/Qwen/Qwen3-Coder.mdx | 520 +++ .../autoregressive/Qwen/Qwen3-Next.mdx | 774 ++++ .../cookbook/autoregressive/Qwen/Qwen3-VL.mdx | 777 ++++ .../cookbook/autoregressive/Qwen/Qwen3.5.mdx | 1001 +++++ .../cookbook/autoregressive/Qwen/Qwen3.6.mdx | 471 +++ .../cookbook/autoregressive/Qwen/Qwen3.mdx | 884 +++++ .../autoregressive/StepFun/Step3-VL-10B.mdx | 695 ++++ .../autoregressive/StepFun/Step3.5.mdx | 529 +++ .../autoregressive/Xiaomi/MiMo-V2-Flash.mdx | 106 + docs_new/cookbook/autoregressive/intro.mdx | 118 + .../autoregressive_model_benchmark.mdx | 287 ++ .../benchmarks/diffusion_model_benchmark.mdx | 235 ++ .../base/reference/server_arguments.mdx | 46 + docs_new/cookbook/diffusion/FLUX/FLUX.mdx | 294 ++ docs_new/cookbook/diffusion/MOVA/MOVA.mdx | 268 ++ .../diffusion/Qwen-Image/Qwen-Image-Edit.mdx | 280 ++ .../diffusion/Qwen-Image/Qwen-Image.mdx | 271 ++ docs_new/cookbook/diffusion/README.mdx | 91 + docs_new/cookbook/diffusion/Wan/Wan2.1.mdx | 268 ++ docs_new/cookbook/diffusion/Wan/Wan2.2.mdx | 346 ++ .../diffusion/Z-Image/Z-Image-Turbo.mdx | 281 ++ docs_new/cookbook/diffusion/intro.mdx | 40 + docs_new/cookbook/intro copy.mdx | 224 ++ docs_new/cookbook/intro.mdx | 42 + docs_new/cookbook/omni/FishAudio/S2-Pro.mdx | 208 ++ docs_new/cookbook/omni/intro.mdx | 16 + .../cookbook/specbundle/specbundle_usage.mdx | 152 + .../cookbook/specbundle/supported_models.mdx | 191 + docs_new/custom.css | 101 + docs_new/docs.json | 564 +++ .../advanced_features/attention_backend.mdx | 520 +++ .../breakable_cuda_graph.mdx | 192 + .../advanced_features/checkpoint_engine.mdx | 257 ++ .../cuda_graph_for_multi_modal_encoder.mdx | 76 + .../deterministic_inference.mdx | 215 ++ .../advanced_features/dp_dpa_smg_guide.mdx | 509 +++ .../dp_for_multi_modal_encoder.mdx | 33 + .../advanced_features/epd_disaggregation.mdx | 83 + .../advanced_features/expert_parallelism.mdx | 288 ++ .../docs/advanced_features/forward_hooks.mdx | 298 ++ docs_new/docs/advanced_features/hicache.mdx | 8 + docs_new/docs/advanced_features/hicache.rst | 9 + .../hicache_best_practices.mdx | 202 + .../docs/advanced_features/hicache_design.mdx | 164 + .../hicache_storage_runtime_attach_detach.mdx | 133 + .../hyperparameter_tuning.mdx | 82 + docs_new/docs/advanced_features/lora.ipynb | 714 ++++ docs_new/docs/advanced_features/lora.mdx | 507 +++ .../docs/advanced_features/object_storage.mdx | 142 + .../docs/advanced_features/observability.mdx | 38 + docs_new/docs/advanced_features/overview.mdx | 18 + .../advanced_features/pd_disaggregation.mdx | 404 ++ .../piecewise_cuda_graph.mdx | 299 ++ .../pipeline_parallelism.mdx | 119 + .../docs/advanced_features/quantization.mdx | 395 ++ .../advanced_features/quantized_kv_cache.mdx | 256 ++ docs_new/docs/advanced_features/rfork.mdx | 82 + .../separate_reasoning.ipynb | 377 ++ .../advanced_features/separate_reasoning.mdx | 317 ++ .../advanced_features/server_arguments.mdx | 2871 ++++++++++++++ .../advanced_features/sgl_model_gateway.mdx | 2775 ++++++++++++++ .../docs/advanced_features/sglang_for_rl.mdx | 575 +++ .../speculative_decoding.ipynb | 360 ++ .../speculative_decoding.mdx | 278 ++ .../structured_outputs.ipynb | 997 +++++ .../advanced_features/structured_outputs.mdx | 803 ++++ ...uctured_outputs_for_reasoning_models.ipynb | 841 +++++ ...tructured_outputs_for_reasoning_models.mdx | 663 ++++ .../docs/advanced_features/tool_parser.ipynb | 854 +++++ .../docs/advanced_features/tool_parser.mdx | 740 ++++ .../docs/advanced_features/vlm_query.ipynb | 388 ++ docs_new/docs/advanced_features/vlm_query.mdx | 275 ++ docs_new/docs/basic_usage/deepseek_v3.mdx | 337 ++ docs_new/docs/basic_usage/deepseek_v32.mdx | 575 +++ docs_new/docs/basic_usage/glm45.mdx | 76 + docs_new/docs/basic_usage/glmv.mdx | 139 + docs_new/docs/basic_usage/gpt_oss.mdx | 181 + docs_new/docs/basic_usage/kimi_k2_5.mdx | 106 + docs_new/docs/basic_usage/llama4.mdx | 117 + docs_new/docs/basic_usage/minimax_m2.mdx | 69 + docs_new/docs/basic_usage/native_api.ipynb | 667 ++++ docs_new/docs/basic_usage/native_api.mdx | 450 +++ .../docs/basic_usage/offline_engine_api.ipynb | 235 ++ .../docs/basic_usage/offline_engine_api.mdx | 143 + docs_new/docs/basic_usage/ollama_api.mdx | 157 + docs_new/docs/basic_usage/openai_api.mdx | 7 + docs_new/docs/basic_usage/openai_api.rst | 9 + .../basic_usage/openai_api_completions.ipynb | 552 +++ .../basic_usage/openai_api_completions.mdx | 456 +++ .../basic_usage/openai_api_embeddings.ipynb | 193 + .../basic_usage/openai_api_embeddings.mdx | 126 + .../docs/basic_usage/openai_api_vision.ipynb | 252 ++ .../docs/basic_usage/openai_api_vision.mdx | 189 + docs_new/docs/basic_usage/overview.mdx | 11 + .../docs/basic_usage/popular_model_usage.mdx | 14 + .../docs/basic_usage/popular_model_usage.rst | 16 + docs_new/docs/basic_usage/qwen3.mdx | 42 + docs_new/docs/basic_usage/qwen3_vl.mdx | 133 + docs_new/docs/basic_usage/sampling_params.mdx | 576 +++ docs_new/docs/basic_usage/send_request.ipynb | 251 ++ docs_new/docs/basic_usage/send_request.mdx | 172 + docs_new/docs/developer_guide/JIT_kernels.mdx | 266 ++ .../docs/developer_guide/bench_serving.mdx | 358 ++ .../benchmark_and_profiling.mdx | 459 +++ .../developer_guide/contribution_guide.mdx | 149 + .../development_guide_using_docker.mdx | 119 + .../developer_guide/evaluating_new_models.mdx | 149 + docs_new/docs/developer_guide/overview.mdx | 11 + .../docs/developer_guide/release_process.mdx | 21 + .../developer_guide/setup_github_runner.mdx | 54 + docs_new/docs/get-started/installation.mdx | 256 ++ docs_new/docs/get-started/quickstart.mdx | 332 ++ docs_new/docs/hardware-platforms/amd-gpus.mdx | 194 + .../Best-Practice-on-Ascend-NPU.mdx | 2911 ++++++++++++++ .../ascend-npus/DeepSeek-Examples.mdx | 309 ++ .../hardware-platforms/ascend-npus/GLM-5.mdx | 200 + .../ascend-npus/MindSpore-Models.mdx | 169 + .../ascend-npus/Qwen3-Examples.mdx | 124 + .../ascend-npus/Qwen3.5.mdx | 106 + .../SGLang-installation-with-NPUs-support.mdx | 318 ++ .../Support-Features-on-Ascend-NPU.mdx | 3327 +++++++++++++++++ .../Support-Models-on-Ascend-NPU.mdx | 610 +++ .../docs/hardware-platforms/cpu-server.mdx | 355 ++ .../docs/hardware-platforms/nvidia-gpus.mdx | 5 + docs_new/docs/hardware-platforms/nvidia.mdx | 102 + docs_new/docs/hardware-platforms/overview.mdx | 12 + docs_new/docs/hardware-platforms/tpu.mdx | 673 ++++ docs_new/docs/hardware-platforms/xpu.mdx | 146 + .../docs/references/custom_chat_template.mdx | 54 + .../docs/references/environment_variables.mdx | 652 ++++ docs_new/docs/references/faq.mdx | 42 + .../references/frontend/choices_methods.mdx | 81 + .../references/frontend/frontend_index.mdx | 7 + .../references/frontend/frontend_index.rst | 9 + .../frontend/frontend_tutorial.ipynb | 456 +++ .../references/frontend/frontend_tutorial.mdx | 318 ++ .../multi_node_deployment/deploy_on_k8s.mdx | 340 ++ .../lws_pd/lws_pd_deploy.mdx | 786 ++++ .../multi_node_deployment/multi_node.mdx | 103 + .../multi_node_index.mdx | 11 + .../multi_node_index.rst | 14 + .../rbg_pd/deepseekv32_pd.mdx | 570 +++ docs_new/docs/references/overview.mdx | 13 + .../references/post_training_integration.mdx | 34 + .../docs/references/production_metrics.mdx | 234 ++ .../references/production_request_trace.mdx | 164 + .../docs/references/torch_compile_cache.mdx | 16 + docs_new/docs/sglang-diffusion/api/cli.mdx | 366 ++ .../docs/sglang-diffusion/api/openai-api.mdx | 421 +++ .../sglang-diffusion/attention-backends.mdx | 405 ++ docs_new/docs/sglang-diffusion/cache-dit.mdx | 433 +++ .../sglang-diffusion/caching-acceleration.mdx | 88 + .../docs/sglang-diffusion/ci-performance.mdx | 32 + .../environment-variables.mdx | 140 + docs_new/docs/sglang-diffusion/index.mdx | 65 + .../docs/sglang-diffusion/installation.mdx | 110 + .../performance-optimization.mdx | 105 + docs_new/docs/sglang-diffusion/profiling.mdx | 139 + .../sglang-diffusion/supported-models.mdx | 350 ++ docs_new/docs/sglang-diffusion/tea-cache.mdx | 143 + docs_new/docs/supported-models.mdx | 87 + .../classification-models.mdx | 323 ++ .../diffusion-language-models.mdx | 13 + .../supported-models/embedding-models.mdx | 173 + .../large-language-models.mdx | 265 ++ .../supported-models/mindspore-models.mdx | 167 + docs_new/docs/supported-models/modelscope.mdx | 32 + .../supported-models/new-model-support.mdx | 307 ++ .../docs/supported-models/rerank-models.mdx | 311 ++ .../docs/supported-models/reward-models.mdx | 30 + .../transformers-fallback.mdx | 70 + .../vision-language-models.mdx | 316 ++ docs_new/docs_migration_plan.md | 133 + docs_new/favicon.png | Bin 0 -> 2171 bytes docs_new/fonts/Approach-Medium.woff2 | Bin 0 -> 25840 bytes docs_new/fonts/Approach-Regular.woff2 | Bin 0 -> 25888 bytes docs_new/images/dpa.png | Bin 0 -> 101525 bytes docs_new/index.mdx | 497 +++ docs_new/logo/logo.png | Bin 0 -> 402692 bytes docs_new/scripts/update_lmsys_sglang_blogs.py | 303 ++ docs_new/sglang-diffusion/intro.mdx | 65 + .../src/generated/lmsys_sglang_blogs.json | 59 + .../deepseek-math-v2-deployment.jsx | 359 ++ .../deepseek-ocr-deployment.jsx | 168 + .../deepseek-ocr-v2-deployment.jsx | 342 ++ .../deepseek-r1-advanced-deployment.jsx | 856 +++++ .../deepseek-r1-basic-deployment.jsx | 394 ++ .../autoregressive/deepseek-v3-deployment.jsx | 186 + .../deepseek-v31-deployment.jsx | 197 + .../deepseek-v32-deployment.jsx | 318 ++ .../autoregressive/devstral-2-deployment.jsx | 182 + .../autoregressive/ernie-45-deployment.jsx | 345 ++ .../autoregressive/gemma4-deployment.jsx | 376 ++ .../autoregressive/glm-45-deployment.jsx | 197 + .../autoregressive/glm-45v-deployment.jsx | 175 + .../autoregressive/glm-46-deployment.jsx | 207 + .../autoregressive/glm-46v-deployment.jsx | 196 + .../autoregressive/glm-47-deployment.jsx | 197 + .../glm-47-flash-deployment.jsx | 191 + .../autoregressive/glm-5-deployment.jsx | 266 ++ .../autoregressive/glm-51-deployment.jsx | 228 ++ .../autoregressive/glm-glyph-deployment.jsx | 372 ++ .../autoregressive/glm-ocr-deployment.jsx | 140 + .../autoregressive/gpt-oss-deployment.jsx | 237 ++ .../autoregressive/kimi-k2-deployment.jsx | 373 ++ .../autoregressive/kimi-k25-deployment.jsx | 264 ++ .../autoregressive/kimi-k26-deployment.jsx | 181 + .../autoregressive/kimi-linear-deployment.jsx | 358 ++ .../autoregressive/ling-25-1t-deployment.jsx | 189 + .../autoregressive/llada-21-deployment.jsx | 338 ++ .../autoregressive/llama31-deployment.jsx | 252 ++ .../autoregressive/llama33-70b-deployment.jsx | 138 + .../llama4-maverick-deployment.jsx | 347 ++ .../llama4-scout-deployment.jsx | 374 ++ .../mimo-v2-flash-deployment.jsx | 194 + .../autoregressive/minimax-m2-deployment.jsx | 353 ++ .../autoregressive/minimax-m25-deployment.jsx | 390 ++ .../autoregressive/minimax-m27-deployment.jsx | 203 + .../autoregressive/ministral-3-deployment.jsx | 348 ++ .../mistral-small-4-deployment.jsx | 365 ++ .../nemotron3-nano-deployment.jsx | 371 ++ .../nemotron3-super-deployment.jsx | 381 ++ .../autoregressive/qwen25-vl-deployment.jsx | 364 ++ .../qwen3-coder-480b-a35b-deployment.jsx | 139 + .../autoregressive/qwen3-coder-deployment.jsx | 426 +++ .../qwen3-coder-next-deployment.jsx | 370 ++ .../autoregressive/qwen3-deployment.jsx | 330 ++ .../autoregressive/qwen3-next-deployment.jsx | 409 ++ .../autoregressive/qwen3-vl-deployment.jsx | 245 ++ .../autoregressive/qwen35-deployment.jsx | 442 +++ .../autoregressive/qwen36-deployment.jsx | 219 ++ .../autoregressive/ring-25-1t-deployment.jsx | 217 ++ .../autoregressive/step-35-deployment.jsx | 393 ++ .../step-3vl-10b-deployment.jsx | 383 ++ .../snippets/diffusion/flux-deployment.jsx | 335 ++ .../snippets/diffusion/mova-deployment.jsx | 115 + .../diffusion/qwen-image-deployment.jsx | 316 ++ .../diffusion/qwen-image-edit-deployment.jsx | 319 ++ .../snippets/diffusion/wan21-deployment.jsx | 337 ++ .../snippets/diffusion/wan22-deployment.jsx | 216 ++ .../diffusion/zimage-turbo-deployment.jsx | 319 ++ .../specbundle/specbundle-deployment.jsx | 214 ++ 330 files changed, 100371 insertions(+) create mode 100644 docs_new/.github/workflows/sync-lmsys-sglang-blogs.yml create mode 100644 docs_new/.gitignore create mode 100644 docs_new/.mintignore create mode 100644 docs_new/AGENTS.md create mode 100644 docs_new/CONTRIBUTING.md create mode 100644 docs_new/LICENSE create mode 100644 docs_new/README.md create mode 100644 docs_new/cards/Autoregressive-benchmark-card.png create mode 100644 docs_new/cards/Autoregressive-card.png create mode 100644 docs_new/cards/Classification-card.png create mode 100644 docs_new/cards/Diffusion-benchmark-card.png create mode 100644 docs_new/cards/Diffusion-card.png create mode 100644 docs_new/cards/Embedding-card.png create mode 100644 docs_new/cards/LLM-card.png create mode 100644 docs_new/cards/Omni-card.png create mode 100644 docs_new/cards/Rerank-card.png create mode 100644 docs_new/cards/Reward-card.png create mode 100644 docs_new/cards/VLM-card.png create mode 100644 docs_new/cards/dLLM-card.png create mode 100644 docs_new/cards/logos/deepseek.png create mode 100644 docs_new/cards/logos/ernie.png create mode 100644 docs_new/cards/logos/fishaudio.png create mode 100644 docs_new/cards/logos/flashlabs.png create mode 100644 docs_new/cards/logos/flux.png create mode 100644 docs_new/cards/logos/glm.png create mode 100644 docs_new/cards/logos/google.png create mode 100644 docs_new/cards/logos/inclusionai.png create mode 100644 docs_new/cards/logos/internlm.png create mode 100644 docs_new/cards/logos/internvl.png create mode 100644 docs_new/cards/logos/jina.png create mode 100644 docs_new/cards/logos/llama.png create mode 100644 docs_new/cards/logos/minimax.png create mode 100644 docs_new/cards/logos/mistral.png create mode 100644 docs_new/cards/logos/moonshotai.png create mode 100644 docs_new/cards/logos/mova.png create mode 100644 docs_new/cards/logos/nvidia.png create mode 100644 docs_new/cards/logos/openai.png create mode 100644 docs_new/cards/logos/qwen.png create mode 100644 docs_new/cards/logos/stepfun.png create mode 100644 docs_new/cards/logos/wan.png create mode 100644 docs_new/cards/logos/xiaomi.png create mode 100644 docs_new/cards/logos/zimage.png create mode 100644 docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-Math-V2.mdx create mode 100644 docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-OCR-2.mdx create mode 100644 docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-OCR.mdx create mode 100644 docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-R1.mdx create mode 100644 docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3.mdx create mode 100644 docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3_1.mdx create mode 100644 docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3_2.mdx create mode 100644 docs_new/cookbook/autoregressive/Ernie/Ernie4.5-VL.mdx create mode 100644 docs_new/cookbook/autoregressive/Ernie/Ernie4.5.mdx create mode 100644 docs_new/cookbook/autoregressive/FlashLabs/Chroma1.0.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-4.5.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-4.5V.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-4.6.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-4.6V.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-4.7-Flash.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-4.7.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-5.1.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-5.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-Glyph.mdx create mode 100644 docs_new/cookbook/autoregressive/GLM/GLM-OCR.mdx create mode 100644 docs_new/cookbook/autoregressive/Google/Gemma4.mdx create mode 100644 docs_new/cookbook/autoregressive/InclusionAI/LLaDA-2.1.mdx create mode 100644 docs_new/cookbook/autoregressive/InclusionAI/Ling-2.5-1T.mdx create mode 100644 docs_new/cookbook/autoregressive/InclusionAI/Ring-2.5-1T.mdx create mode 100644 docs_new/cookbook/autoregressive/InternLM/Intern-S1.mdx create mode 100644 docs_new/cookbook/autoregressive/InternVL/InternVL3.5.mdx create mode 100644 docs_new/cookbook/autoregressive/Jina/Jina-reranker-m0.mdx create mode 100644 docs_new/cookbook/autoregressive/Llama/Llama3.1.mdx create mode 100644 docs_new/cookbook/autoregressive/Llama/Llama3.3-70B.mdx create mode 100644 docs_new/cookbook/autoregressive/Llama/Llama4.mdx create mode 100644 docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.5.mdx create mode 100644 docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.7.mdx create mode 100644 docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.mdx create mode 100644 docs_new/cookbook/autoregressive/Mistral/Devstral-2.mdx create mode 100644 docs_new/cookbook/autoregressive/Mistral/Ministral-3.mdx create mode 100644 docs_new/cookbook/autoregressive/Mistral/Mistral-Small-4.mdx create mode 100644 docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.5.mdx create mode 100644 docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.6.mdx create mode 100644 docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.mdx create mode 100644 docs_new/cookbook/autoregressive/Moonshotai/Kimi-Linear.mdx create mode 100644 docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Nano.mdx create mode 100644 docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Super.mdx create mode 100644 docs_new/cookbook/autoregressive/OpenAI/GPT-OSS.mdx create mode 100644 docs_new/cookbook/autoregressive/Qwen/Qwen2.5-VL.mdx create mode 100644 docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder-Next.mdx create mode 100644 docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder.mdx create mode 100644 docs_new/cookbook/autoregressive/Qwen/Qwen3-Next.mdx create mode 100644 docs_new/cookbook/autoregressive/Qwen/Qwen3-VL.mdx create mode 100644 docs_new/cookbook/autoregressive/Qwen/Qwen3.5.mdx create mode 100644 docs_new/cookbook/autoregressive/Qwen/Qwen3.6.mdx create mode 100644 docs_new/cookbook/autoregressive/Qwen/Qwen3.mdx create mode 100644 docs_new/cookbook/autoregressive/StepFun/Step3-VL-10B.mdx create mode 100644 docs_new/cookbook/autoregressive/StepFun/Step3.5.mdx create mode 100644 docs_new/cookbook/autoregressive/Xiaomi/MiMo-V2-Flash.mdx create mode 100644 docs_new/cookbook/autoregressive/intro.mdx create mode 100644 docs_new/cookbook/base/benchmarks/autoregressive_model_benchmark.mdx create mode 100644 docs_new/cookbook/base/benchmarks/diffusion_model_benchmark.mdx create mode 100644 docs_new/cookbook/base/reference/server_arguments.mdx create mode 100644 docs_new/cookbook/diffusion/FLUX/FLUX.mdx create mode 100644 docs_new/cookbook/diffusion/MOVA/MOVA.mdx create mode 100644 docs_new/cookbook/diffusion/Qwen-Image/Qwen-Image-Edit.mdx create mode 100644 docs_new/cookbook/diffusion/Qwen-Image/Qwen-Image.mdx create mode 100644 docs_new/cookbook/diffusion/README.mdx create mode 100644 docs_new/cookbook/diffusion/Wan/Wan2.1.mdx create mode 100644 docs_new/cookbook/diffusion/Wan/Wan2.2.mdx create mode 100644 docs_new/cookbook/diffusion/Z-Image/Z-Image-Turbo.mdx create mode 100644 docs_new/cookbook/diffusion/intro.mdx create mode 100644 docs_new/cookbook/intro copy.mdx create mode 100644 docs_new/cookbook/intro.mdx create mode 100644 docs_new/cookbook/omni/FishAudio/S2-Pro.mdx create mode 100644 docs_new/cookbook/omni/intro.mdx create mode 100644 docs_new/cookbook/specbundle/specbundle_usage.mdx create mode 100644 docs_new/cookbook/specbundle/supported_models.mdx create mode 100644 docs_new/custom.css create mode 100644 docs_new/docs.json create mode 100644 docs_new/docs/advanced_features/attention_backend.mdx create mode 100644 docs_new/docs/advanced_features/breakable_cuda_graph.mdx create mode 100644 docs_new/docs/advanced_features/checkpoint_engine.mdx create mode 100644 docs_new/docs/advanced_features/cuda_graph_for_multi_modal_encoder.mdx create mode 100644 docs_new/docs/advanced_features/deterministic_inference.mdx create mode 100644 docs_new/docs/advanced_features/dp_dpa_smg_guide.mdx create mode 100644 docs_new/docs/advanced_features/dp_for_multi_modal_encoder.mdx create mode 100644 docs_new/docs/advanced_features/epd_disaggregation.mdx create mode 100644 docs_new/docs/advanced_features/expert_parallelism.mdx create mode 100644 docs_new/docs/advanced_features/forward_hooks.mdx create mode 100644 docs_new/docs/advanced_features/hicache.mdx create mode 100644 docs_new/docs/advanced_features/hicache.rst create mode 100644 docs_new/docs/advanced_features/hicache_best_practices.mdx create mode 100644 docs_new/docs/advanced_features/hicache_design.mdx create mode 100644 docs_new/docs/advanced_features/hicache_storage_runtime_attach_detach.mdx create mode 100644 docs_new/docs/advanced_features/hyperparameter_tuning.mdx create mode 100644 docs_new/docs/advanced_features/lora.ipynb create mode 100644 docs_new/docs/advanced_features/lora.mdx create mode 100644 docs_new/docs/advanced_features/object_storage.mdx create mode 100644 docs_new/docs/advanced_features/observability.mdx create mode 100644 docs_new/docs/advanced_features/overview.mdx create mode 100644 docs_new/docs/advanced_features/pd_disaggregation.mdx create mode 100644 docs_new/docs/advanced_features/piecewise_cuda_graph.mdx create mode 100644 docs_new/docs/advanced_features/pipeline_parallelism.mdx create mode 100644 docs_new/docs/advanced_features/quantization.mdx create mode 100644 docs_new/docs/advanced_features/quantized_kv_cache.mdx create mode 100644 docs_new/docs/advanced_features/rfork.mdx create mode 100644 docs_new/docs/advanced_features/separate_reasoning.ipynb create mode 100644 docs_new/docs/advanced_features/separate_reasoning.mdx create mode 100644 docs_new/docs/advanced_features/server_arguments.mdx create mode 100644 docs_new/docs/advanced_features/sgl_model_gateway.mdx create mode 100644 docs_new/docs/advanced_features/sglang_for_rl.mdx create mode 100644 docs_new/docs/advanced_features/speculative_decoding.ipynb create mode 100644 docs_new/docs/advanced_features/speculative_decoding.mdx create mode 100644 docs_new/docs/advanced_features/structured_outputs.ipynb create mode 100644 docs_new/docs/advanced_features/structured_outputs.mdx create mode 100644 docs_new/docs/advanced_features/structured_outputs_for_reasoning_models.ipynb create mode 100644 docs_new/docs/advanced_features/structured_outputs_for_reasoning_models.mdx create mode 100644 docs_new/docs/advanced_features/tool_parser.ipynb create mode 100644 docs_new/docs/advanced_features/tool_parser.mdx create mode 100644 docs_new/docs/advanced_features/vlm_query.ipynb create mode 100644 docs_new/docs/advanced_features/vlm_query.mdx create mode 100644 docs_new/docs/basic_usage/deepseek_v3.mdx create mode 100644 docs_new/docs/basic_usage/deepseek_v32.mdx create mode 100644 docs_new/docs/basic_usage/glm45.mdx create mode 100644 docs_new/docs/basic_usage/glmv.mdx create mode 100644 docs_new/docs/basic_usage/gpt_oss.mdx create mode 100644 docs_new/docs/basic_usage/kimi_k2_5.mdx create mode 100644 docs_new/docs/basic_usage/llama4.mdx create mode 100644 docs_new/docs/basic_usage/minimax_m2.mdx create mode 100644 docs_new/docs/basic_usage/native_api.ipynb create mode 100644 docs_new/docs/basic_usage/native_api.mdx create mode 100644 docs_new/docs/basic_usage/offline_engine_api.ipynb create mode 100644 docs_new/docs/basic_usage/offline_engine_api.mdx create mode 100644 docs_new/docs/basic_usage/ollama_api.mdx create mode 100644 docs_new/docs/basic_usage/openai_api.mdx create mode 100644 docs_new/docs/basic_usage/openai_api.rst create mode 100644 docs_new/docs/basic_usage/openai_api_completions.ipynb create mode 100644 docs_new/docs/basic_usage/openai_api_completions.mdx create mode 100644 docs_new/docs/basic_usage/openai_api_embeddings.ipynb create mode 100644 docs_new/docs/basic_usage/openai_api_embeddings.mdx create mode 100644 docs_new/docs/basic_usage/openai_api_vision.ipynb create mode 100644 docs_new/docs/basic_usage/openai_api_vision.mdx create mode 100644 docs_new/docs/basic_usage/overview.mdx create mode 100644 docs_new/docs/basic_usage/popular_model_usage.mdx create mode 100644 docs_new/docs/basic_usage/popular_model_usage.rst create mode 100644 docs_new/docs/basic_usage/qwen3.mdx create mode 100644 docs_new/docs/basic_usage/qwen3_vl.mdx create mode 100644 docs_new/docs/basic_usage/sampling_params.mdx create mode 100644 docs_new/docs/basic_usage/send_request.ipynb create mode 100644 docs_new/docs/basic_usage/send_request.mdx create mode 100644 docs_new/docs/developer_guide/JIT_kernels.mdx create mode 100644 docs_new/docs/developer_guide/bench_serving.mdx create mode 100644 docs_new/docs/developer_guide/benchmark_and_profiling.mdx create mode 100644 docs_new/docs/developer_guide/contribution_guide.mdx create mode 100644 docs_new/docs/developer_guide/development_guide_using_docker.mdx create mode 100644 docs_new/docs/developer_guide/evaluating_new_models.mdx create mode 100644 docs_new/docs/developer_guide/overview.mdx create mode 100644 docs_new/docs/developer_guide/release_process.mdx create mode 100644 docs_new/docs/developer_guide/setup_github_runner.mdx create mode 100644 docs_new/docs/get-started/installation.mdx create mode 100644 docs_new/docs/get-started/quickstart.mdx create mode 100644 docs_new/docs/hardware-platforms/amd-gpus.mdx create mode 100644 docs_new/docs/hardware-platforms/ascend-npus/Best-Practice-on-Ascend-NPU.mdx create mode 100644 docs_new/docs/hardware-platforms/ascend-npus/DeepSeek-Examples.mdx create mode 100644 docs_new/docs/hardware-platforms/ascend-npus/GLM-5.mdx create mode 100644 docs_new/docs/hardware-platforms/ascend-npus/MindSpore-Models.mdx create mode 100644 docs_new/docs/hardware-platforms/ascend-npus/Qwen3-Examples.mdx create mode 100644 docs_new/docs/hardware-platforms/ascend-npus/Qwen3.5.mdx create mode 100644 docs_new/docs/hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support.mdx create mode 100644 docs_new/docs/hardware-platforms/ascend-npus/Support-Features-on-Ascend-NPU.mdx create mode 100644 docs_new/docs/hardware-platforms/ascend-npus/Support-Models-on-Ascend-NPU.mdx create mode 100644 docs_new/docs/hardware-platforms/cpu-server.mdx create mode 100644 docs_new/docs/hardware-platforms/nvidia-gpus.mdx create mode 100644 docs_new/docs/hardware-platforms/nvidia.mdx create mode 100644 docs_new/docs/hardware-platforms/overview.mdx create mode 100644 docs_new/docs/hardware-platforms/tpu.mdx create mode 100644 docs_new/docs/hardware-platforms/xpu.mdx create mode 100644 docs_new/docs/references/custom_chat_template.mdx create mode 100644 docs_new/docs/references/environment_variables.mdx create mode 100644 docs_new/docs/references/faq.mdx create mode 100644 docs_new/docs/references/frontend/choices_methods.mdx create mode 100644 docs_new/docs/references/frontend/frontend_index.mdx create mode 100644 docs_new/docs/references/frontend/frontend_index.rst create mode 100644 docs_new/docs/references/frontend/frontend_tutorial.ipynb create mode 100644 docs_new/docs/references/frontend/frontend_tutorial.mdx create mode 100644 docs_new/docs/references/multi_node_deployment/deploy_on_k8s.mdx create mode 100644 docs_new/docs/references/multi_node_deployment/lws_pd/lws_pd_deploy.mdx create mode 100644 docs_new/docs/references/multi_node_deployment/multi_node.mdx create mode 100644 docs_new/docs/references/multi_node_deployment/multi_node_index.mdx create mode 100644 docs_new/docs/references/multi_node_deployment/multi_node_index.rst create mode 100644 docs_new/docs/references/multi_node_deployment/rbg_pd/deepseekv32_pd.mdx create mode 100644 docs_new/docs/references/overview.mdx create mode 100644 docs_new/docs/references/post_training_integration.mdx create mode 100644 docs_new/docs/references/production_metrics.mdx create mode 100644 docs_new/docs/references/production_request_trace.mdx create mode 100644 docs_new/docs/references/torch_compile_cache.mdx create mode 100644 docs_new/docs/sglang-diffusion/api/cli.mdx create mode 100644 docs_new/docs/sglang-diffusion/api/openai-api.mdx create mode 100644 docs_new/docs/sglang-diffusion/attention-backends.mdx create mode 100644 docs_new/docs/sglang-diffusion/cache-dit.mdx create mode 100644 docs_new/docs/sglang-diffusion/caching-acceleration.mdx create mode 100644 docs_new/docs/sglang-diffusion/ci-performance.mdx create mode 100644 docs_new/docs/sglang-diffusion/environment-variables.mdx create mode 100644 docs_new/docs/sglang-diffusion/index.mdx create mode 100644 docs_new/docs/sglang-diffusion/installation.mdx create mode 100644 docs_new/docs/sglang-diffusion/performance-optimization.mdx create mode 100644 docs_new/docs/sglang-diffusion/profiling.mdx create mode 100644 docs_new/docs/sglang-diffusion/supported-models.mdx create mode 100644 docs_new/docs/sglang-diffusion/tea-cache.mdx create mode 100644 docs_new/docs/supported-models.mdx create mode 100644 docs_new/docs/supported-models/classification-models.mdx create mode 100644 docs_new/docs/supported-models/diffusion-language-models.mdx create mode 100644 docs_new/docs/supported-models/embedding-models.mdx create mode 100644 docs_new/docs/supported-models/large-language-models.mdx create mode 100644 docs_new/docs/supported-models/mindspore-models.mdx create mode 100644 docs_new/docs/supported-models/modelscope.mdx create mode 100644 docs_new/docs/supported-models/new-model-support.mdx create mode 100644 docs_new/docs/supported-models/rerank-models.mdx create mode 100644 docs_new/docs/supported-models/reward-models.mdx create mode 100644 docs_new/docs/supported-models/transformers-fallback.mdx create mode 100644 docs_new/docs/supported-models/vision-language-models.mdx create mode 100644 docs_new/docs_migration_plan.md create mode 100644 docs_new/favicon.png create mode 100644 docs_new/fonts/Approach-Medium.woff2 create mode 100644 docs_new/fonts/Approach-Regular.woff2 create mode 100644 docs_new/images/dpa.png create mode 100644 docs_new/index.mdx create mode 100644 docs_new/logo/logo.png create mode 100755 docs_new/scripts/update_lmsys_sglang_blogs.py create mode 100644 docs_new/sglang-diffusion/intro.mdx create mode 100644 docs_new/src/generated/lmsys_sglang_blogs.json create mode 100644 docs_new/src/snippets/autoregressive/deepseek-math-v2-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/deepseek-ocr-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/deepseek-ocr-v2-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/deepseek-r1-advanced-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/deepseek-r1-basic-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/deepseek-v3-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/deepseek-v31-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/deepseek-v32-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/devstral-2-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/ernie-45-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/gemma4-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-45-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-45v-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-46-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-46v-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-47-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-47-flash-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-5-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-51-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-glyph-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/glm-ocr-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/gpt-oss-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/kimi-k2-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/kimi-k25-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/kimi-k26-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/kimi-linear-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/ling-25-1t-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/llada-21-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/llama31-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/llama33-70b-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/llama4-maverick-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/llama4-scout-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/mimo-v2-flash-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/minimax-m2-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/minimax-m25-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/minimax-m27-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/ministral-3-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/mistral-small-4-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/nemotron3-nano-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/nemotron3-super-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/qwen25-vl-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/qwen3-coder-480b-a35b-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/qwen3-coder-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/qwen3-coder-next-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/qwen3-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/qwen3-next-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/qwen3-vl-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/qwen35-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/qwen36-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/ring-25-1t-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/step-35-deployment.jsx create mode 100644 docs_new/src/snippets/autoregressive/step-3vl-10b-deployment.jsx create mode 100644 docs_new/src/snippets/diffusion/flux-deployment.jsx create mode 100644 docs_new/src/snippets/diffusion/mova-deployment.jsx create mode 100644 docs_new/src/snippets/diffusion/qwen-image-deployment.jsx create mode 100644 docs_new/src/snippets/diffusion/qwen-image-edit-deployment.jsx create mode 100644 docs_new/src/snippets/diffusion/wan21-deployment.jsx create mode 100644 docs_new/src/snippets/diffusion/wan22-deployment.jsx create mode 100644 docs_new/src/snippets/diffusion/zimage-turbo-deployment.jsx create mode 100644 docs_new/src/snippets/specbundle/specbundle-deployment.jsx diff --git a/.gitignore b/.gitignore index a8aa903e2..8ac442295 100644 --- a/.gitignore +++ b/.gitignore @@ -192,6 +192,7 @@ work_dirs/ *.csv !logo.png +!docs_new/images/*.png # Prerequisites *.d diff --git a/docs_new/.github/workflows/sync-lmsys-sglang-blogs.yml b/docs_new/.github/workflows/sync-lmsys-sglang-blogs.yml new file mode 100644 index 000000000..f555baf10 --- /dev/null +++ b/docs_new/.github/workflows/sync-lmsys-sglang-blogs.yml @@ -0,0 +1,39 @@ +name: Sync LMSYS SGLang blogs + +on: + workflow_dispatch: + schedule: + - cron: "0 */12 * * *" + +permissions: + contents: write + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Sync blog cards + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: python scripts/update_lmsys_sglang_blogs.py + + - name: Commit and push changes + run: | + if git diff --quiet; then + echo "No changes to commit." + exit 0 + fi + + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add index.mdx src/generated/lmsys_sglang_blogs.json + git commit -m "docs: sync LMSYS SGLang blog cards" + git push diff --git a/docs_new/.gitignore b/docs_new/.gitignore new file mode 100644 index 000000000..126ca6550 --- /dev/null +++ b/docs_new/.gitignore @@ -0,0 +1,30 @@ +# Node +node_modules/ +.env +.DS_Store +.cache/ +dist/ +.next/ +*.log + +# OS +Thumbs.db +Desktop.ini + +# VSCode +.vscode/ + +# Mintlify +.mintlify/ + +# Python (if any) +__pycache__/ +*.pyc + +# Misc +*.swp +*.swo + +.agents +.claude +skills-lock.json diff --git a/docs_new/.mintignore b/docs_new/.mintignore new file mode 100644 index 000000000..9922f06dc --- /dev/null +++ b/docs_new/.mintignore @@ -0,0 +1,7 @@ +# Mintlify automatically ignores these files and directories: +# .git, .github, .claude, .agents, .idea, node_modules, +# README.md, LICENSE.md, CHANGELOG.md, CONTRIBUTING.md + +# Draft content +drafts/ +*.draft.mdx diff --git a/docs_new/AGENTS.md b/docs_new/AGENTS.md new file mode 100644 index 000000000..dd60e68fb --- /dev/null +++ b/docs_new/AGENTS.md @@ -0,0 +1,381 @@ +--- +name: sglang-docs-mintlify +description: Build and maintain the SGLang documentation site and integrated cookbook using Mintlify. Use when + creating docs pages, configuring navigation, adding components, or setting up + API references. +license: Apache-2.0 +compatibility: Requires Node.js for CLI. Works with any Git-based workflow. +metadata: + author: SGLang Team + version: "1.0" + mintlify-proj: mintlify +--- + +# SGLang Mintlify documentation guide for agents + +## Non-negotiables + +- **Do not guess flags, defaults, or behavior.** + If you’re documenting CLI args, env vars, APIs, or performance behavior, verify against: + - the upstream codebase (`sgl-project/sglang`) + - the current public docs (`docs.sglang.io`) until the migration is complete + - or an authoritative vendor doc when platform-specific (ROCm, CANN/Ascend, Intel XPU). +- **Prefer fixing the docs-site version of an internal link** instead of copying links from older docs. +- **Keep examples copy/pasteable.** Use placeholders consistently (e.g., `MODEL_PATH`, `HF_TOKEN`, `HOST`, `PORT`). + +## Source of truth hierarchy + +1. **This repo** + - `docs.json` for site structure + navigation + - existing MDX pages for voice + conventions +2. **Canonical current docs** + - `docs.sglang.io` (Sphinx site) is currently the reference structure and content baseline. +3. **Implementation** + - `sgl-project/sglang` for anything that can change with releases (flags, env vars, defaults, supported models). +4. **Cookbook** + - `cookbook.sglang.io` / `sgl-project/sgl-cookbook` for recipe patterns and model-specific operational guidance. + +## Writing standards (SGLang-specific) + +### Voice and structure + +* Second person (“you”), active voice. +* Prefer **short, scannable sections** with clear outcomes. +* Headings in **sentence case**. +* Put prerequisites before commands. + +### Technical accuracy patterns + +For pages that include commands/configs, always specify: + +* **Platform** (NVIDIA CUDA / AMD ROCm / Intel XPU / Ascend NPU / CPU) +* **OS** (if relevant) and **version constraints** +* **Model identifier** format (e.g., Hugging Face repo id) and where it goes (`--model-path`, `--model`, etc.) +* **Parallelism knobs** used in the example (`--tp`, `--dp`, node count, etc.) +* Any required secrets/tokens (`HF_TOKEN`) and where they are used. + +# Mintlify best practices + +**Always consult [mintlify.com/docs](https://mintlify.com/docs) for components, configuration, and latest features.** + +If you are not already connected to the Mintlify MCP server, [https://mintlify.com/docs/mcp](https://mintlify.com/docs/mcp), add it so that you can search more efficiently. + +**Always** favor searching the current Mintlify documentation over whatever is in your training data about Mintlify. + +Mintlify is a documentation platform that transforms MDX files into documentation sites. Configure site-wide settings in the `docs.json` file, write content in MDX with YAML frontmatter, and favor built-in components over custom components. + +Full schema at [mintlify.com/docs.json](https://mintlify.com/docs.json). + +## Before you write + +### Understand the project + +Read `docs.json` in the project root. This file defines the entire site: navigation structure, theme, colors, links, API and specs. + +Understanding the project tells you: + +* What pages exist and how they're organized +* What navigation groups are used (and their naming conventions) +* How the site navigation is structured +* What theme and configuration the site uses + +### Check for existing content + +Search the docs before creating new pages. You may need to: + +* Update an existing page instead of creating a new one +* Add a section to an existing page +* Link to existing content rather than duplicating + +### Read surrounding content + +Before writing, read 2-3 similar pages to understand the site's voice, structure, formatting conventions, and level of detail. + +### Understand Mintlify components + +Review the Mintlify [components](https://www.mintlify.com/docs/components) to select and use any relevant components for the documentation request that you are working on. + +## Quick reference + +### CLI commands + +* `npm i -g mint` - Install the Mintlify CLI +* `mint dev` - Local preview at localhost:3000 +* `mint broken-links` - Check internal links +* `mint a11y` - Check for accessibility issues in content +* `mint rename` - Rename/move files and update references +* `mint validate` - Validate documentation builds + +### Required files + +* `docs.json` - Site configuration (navigation, theme, integrations, etc.). See [global settings](https://www.mintlify.com/docs/organize/settings) for all options. +* `*.mdx` files - Documentation pages with YAML frontmatter + +### Example file structure + +``` +project/ +├── docs.json # Site configuration +├── introduction.mdx +├── quickstart.mdx +├── guides/ +│ └── example.mdx +├── openapi.yml # API specification +├── images/ # Static assets +│ └── example.png +└── snippets/ # Reusable components + └── component.jsx +``` + +## Page frontmatter + +Every page requires `title` in its frontmatter. Include `description` for SEO and navigation. + +```yaml theme={null} +--- +title: "Clear, descriptive title" +description: "Concise summary for SEO and navigation." +--- +``` + +Optional frontmatter fields: + +* `sidebarTitle`: Short title for sidebar navigation. +* `icon`: Lucide or Font Awesome icon name, URL, or file path. +* `tag`: Label next to the page title in the sidebar (for example, "NEW"). +* `mode`: Page layout mode (`default`, `wide`, `custom`). +* `keywords`: Array of terms related to the page content for local search and SEO. +* Any custom YAML fields for use with personalization or conditional content. + +## File conventions + +* Match existing naming patterns in the directory +* If there are no existing files or inconsistent file naming patterns, use kebab-case: `getting-started.mdx`, `api-reference.mdx` +* Use root-relative paths without file extensions for internal links: `/getting-started/quickstart` +* Do not use relative paths (`../`) or absolute URLs for internal pages +* When you create a new page, add it to `docs.json` navigation or it won't appear in the sidebar + +## Organize content + +When a user asks about anything related to site-wide configurations, start by understanding the [global settings](https://www.mintlify.com/docs/organize/settings). See if a setting in the `docs.json` file can be updated to achieve what the user wants. + +### Navigation + +The `navigation` property in `docs.json` controls site structure. Choose one primary pattern at the root level, then nest others within it. + +**Choose your primary pattern:** + +| Pattern | When to use | +| ------------- | ---------------------------------------------------------------------------------------------- | +| **Groups** | Default. Single audience, straightforward hierarchy | +| **Tabs** | Distinct sections with different audiences (Guides vs API Reference) or content types | +| **Anchors** | Want persistent section links at sidebar top. Good for separating docs from external resources | +| **Dropdowns** | Multiple doc sections users switch between, but not distinct enough for tabs | +| **Products** | Multi-product company with separate documentation per product | +| **Versions** | Maintaining docs for multiple API/product versions simultaneously | +| **Languages** | Localized content | + +**Within your primary pattern:** + +* **Groups** - Organize related pages. Can nest groups within groups, but keep hierarchy shallow +* **Menus** - Add dropdown navigation within tabs for quick jumps to specific pages +* **`expanded: false`** - Collapse nested groups by default. Use for reference sections users browse selectively +* **`openapi`** - Auto-generate pages from OpenAPI spec. Add at group/tab level to inherit + +**Common combinations:** + +* Tabs containing groups (most common for docs with API reference) +* Products containing tabs (multi-product SaaS) +* Versions containing tabs (versioned API docs) +* Anchors containing groups (simple docs with external resource links) + +### Links and paths + +* **Internal links:** Root-relative, no extension: `/getting-started/quickstart` +* **Images:** Store in `/images`, reference as `/images/example.png` +* **External links:** Use full URLs, they open in new tabs automatically + +## Customize docs sites + +**What to customize where:** + +* **Brand colors, fonts, logo** → `docs.json`. See [global settings](https://www.mintlify.com/docs/organize/settings) +* **Component styling, layout tweaks** → `custom.css` at project root +* **Dark mode** → Enabled by default. Only disable with `"appearance": "light"` in `docs.json` if brand requires it + +Start with `docs.json`. Only add `custom.css` when you need styling that config doesn't support. + +## Write content + +### Components + +The [components overview](https://mintlify.com/docs/components) organizes all components by purpose: structure content, draw attention, show/hide content, document APIs, link to pages, and add visual context. Start there to find the right component. + +**Common decision points:** + +| Need | Use | +| -------------------------- | ----------------------- | +| Hide optional details | `` | +| Long code examples | `` | +| User chooses one option | `` | +| Linked navigation cards | `` in `` | +| Sequential instructions | `` | +| Code in multiple languages | `` | +| API parameters | `` | +| API response fields | `` | + +**Callouts by severity:** + +* `` - Supplementary info, safe to skip +* `` - Helpful context such as permissions +* `` - Recommendations or best practices +* `` - Potentially destructive actions +* `` - Success confirmation + +### Reusable content + +**When to use snippets:** + +* Exact content appears on more than one page +* Complex components you want to maintain in one place +* Shared content across teams/repos + +**When NOT to use snippets:** + +* Slight variations needed per page (leads to complex props) + +Import snippets with `import { Component } from "/path/to/snippet-name.jsx"`. + +## Writing standards + +### Voice and structure + +* Second-person voice ("you") +* Active voice, direct language +* Sentence case for headings ("Getting started", not "Getting Started") +* Sentence case for code block titles ("Expandable example", not "Expandable Example") +* Lead with context: explain what something is before how to use it +* Prerequisites at the start of procedural content + +### What to avoid + +**Never use:** + +* Marketing language ("powerful", "seamless", "robust", "cutting-edge") +* Filler phrases ("it's important to note", "in order to") +* Excessive conjunctions ("moreover", "furthermore", "additionally") +* Editorializing ("obviously", "simply", "just", "easily") + +**Watch for AI-typical patterns:** + +* Overly formal or stilted phrasing +* Unnecessary repetition of concepts +* Generic introductions that don't add value +* Concluding summaries that restate what was just said + +### Formatting + +* All code blocks must have language tags +* All images and media must have descriptive alt text +* Use bold and italics only when they serve the reader's understanding--never use text styling just for decoration +* No decorative formatting or emoji + +### Code examples + +* Keep examples simple and practical +* Use realistic values (not "foo" or "bar") +* One clear example is better than multiple variations +* Test that code works before including it + +## Deploy + +Mintlify deploys automatically when changes are pushed to the connected Git repository. + +**What agents can configure:** + +* **Redirects** → Add to `docs.json` with `"redirects": [{"source": "/old", "destination": "/new"}]` +* **SEO indexing** → Control with `"seo": {"indexing": "all"}` to include hidden pages in search + +**Requires dashboard setup (human task):** + +* Custom domains and subdomains +* Preview deployment settings +* DNS configuration + +For `/docs` subpath hosting with Vercel or Cloudflare, agents can help configure rewrite rules. See [/docs subpath](https://mintlify.com/docs/deploy/vercel). + +## Workflow + +### 1. Understand the task + +Identify what needs to be documented, which pages are affected, and what the reader should accomplish afterward. If any of these are unclear, ask. + +### 2. Research + +* Read `docs.json` to understand the site structure +* Search existing docs for related content +* Read similar pages to match the site's style + +### 3. Plan + +* Synthesize what the reader should accomplish after reading the docs and the current content +* Propose any updates or new content +* Verify that your proposed changes will help readers be successful + +### 4. Write + +* Start with the most important information +* Keep sections focused and scannable +* Use components appropriately (don't overuse them) +* Mark anything uncertain with a TODO comment: + +```mdx theme={null} +{/* TODO: Verify the default timeout value */} +``` + +### 5. Update navigation + +If you created a new page, add it to the appropriate group in `docs.json`. + +### 6. Verify + +Before submitting: + +* [ ] Frontmatter includes title and description +* [ ] All code blocks have language tags +* [ ] Internal links use root-relative paths without file extensions +* [ ] New pages are added to `docs.json` navigation +* [ ] Content matches the style of surrounding pages +* [ ] No marketing language or filler phrases +* [ ] TODOs are clearly marked for anything uncertain +* [ ] Run `mint broken-links` to check links +* [ ] Run `mint validate` to find any errors + +## Edge cases + +### Migrations + +If a user asks about migrating to Mintlify, ask if they are using ReadMe or Docusaurus. If they are, use the [@mintlify/scraping](https://www.npmjs.com/package/@mintlify/scraping) CLI to migrate content. If they are using a different platform to host their documentation, help them manually convert their content to MDX pages using Mintlify components. + +### Hidden pages + +Any page that is not included in the `docs.json` navigation is hidden. Use hidden pages for content that should be accessible by URL or indexed for the assistant or search, but not discoverable through the sidebar navigation. + +### Exclude pages + +The `.mintignore` file is used to exclude files from a documentation repository from being processed. + +## Common gotchas + +1. **Component imports** - JSX components need explicit import, MDX components don't +2. **Frontmatter required** - Every MDX file needs `title` at minimum +3. **Code block language** - Always specify language identifier +4. **Never use `mint.json`** - `mint.json` is deprecated. Only ever use `docs.json` + +## Resources + +* [Documentation](https://mintlify.com/docs) +* [https://github.com/sgl-project/sglang](https://github.com/sgl-project/sglang) +* [Configuration schema](https://mintlify.com/docs.json) +* [Feature requests](https://github.com/orgs/mintlify/discussions/categories/feature-requests) +* [Bugs and feedback](https://github.com/orgs/mintlify/discussions/categories/bugs-feedback) diff --git a/docs_new/CONTRIBUTING.md b/docs_new/CONTRIBUTING.md new file mode 100644 index 000000000..fc42a9b2d --- /dev/null +++ b/docs_new/CONTRIBUTING.md @@ -0,0 +1,34 @@ +> **Customize this file**: Tailor this template to your project by noting specific contribution types you're looking for, adding a Code of Conduct, or adjusting the writing guidelines to match your style. + +# Contribute to the documentation + +Thank you for your interest in contributing to our documentation! This guide will help you get started. + +## How to contribute + +### Option 1: Edit directly on GitHub + +1. Navigate to the page you want to edit +2. Click the "Edit this file" button (the pencil icon) +3. Make your changes and submit a pull request + +### Option 2: Local development + +1. Fork and clone this repository +2. Install the Mintlify CLI: `npm i -g mint` +3. Create a branch for your changes +4. Make changes +5. Run `mint dev` +6. Preview your changes at `http://localhost:3000` +7. Commit your changes and submit a pull request + +For more details on local development, see our [development guide](development.mdx). + +## Writing guidelines + +- **Use active voice**: "Run the command" not "The command should be run" +- **Address the reader directly**: Use "you" instead of "the user" +- **Keep sentences concise**: Aim for one idea per sentence +- **Lead with the goal**: Start instructions with what the user wants to accomplish +- **Use consistent terminology**: Don't alternate between synonyms for the same concept +- **Include examples**: Show, don't just tell diff --git a/docs_new/LICENSE b/docs_new/LICENSE new file mode 100644 index 000000000..261eeb9e9 --- /dev/null +++ b/docs_new/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/docs_new/README.md b/docs_new/README.md new file mode 100644 index 000000000..a71cdaea0 --- /dev/null +++ b/docs_new/README.md @@ -0,0 +1,126 @@ +# SGLang Documentation + +The official documentation and cookbook for [SGLang](https://github.com/sgl-project/sglang) — a high-performance serving framework for large language models and vision-language models. + +- **Docs**: Getting started guides, installation, and reference +- **Cookbook**: Battle-tested recipes for deploying specific models (Qwen, DeepSeek, Llama, GLM, etc.) on various hardware + + +## Project structure + +``` +. +├── docs.json # Site configuration (navigation, theme, metadata) +├── index.mdx # Homepage +├── docs/ # Documentation pages +│ └── get-started/ +│ └── install.mdx # Installation guide +└── cookbook/ # Model deployment recipes + ├── intro.mdx # Cookbook overview and recipe index + └── autoregressive/ # Autoregressive model recipes + └── Qwen/ + └── Qwen3.5.mdx +``` + +Pages are `.mdx` files with YAML frontmatter. Navigation is defined in `docs.json`. + +## Local development + +### Prerequisites + +- Node.js >= 20 + +### Setup + +```bash +# Install the CLI +npm i -g mint + +# Start the dev server (with hot reload) +mint dev +``` + +Preview at `http://localhost:3000`. + +### Useful commands + +```bash +mint dev # Start local preview server +mint broken-links # Check for broken links +mint update # Update the CLI +``` + +## Contributing + +We welcome contributions! Whether you want to add a recipe for a new model, improve existing docs, or fix a typo — PRs are appreciated. + +### Quick edit (GitHub) + +1. Navigate to the file you want to edit on GitHub +2. Click the pencil icon to edit +3. Submit a pull request + +### Local development workflow + +```bash +# 1. Fork and clone the repo +git clone https://github.com//sgl-docs.git +cd sgl-docs + +# 2. Create a branch +git checkout -b my-changes + +# 3. Start the dev server and make your changes +mint dev + +# 4. Verify links aren't broken +mint broken-links + +# 5. Commit and push +git add +git commit -m "docs: describe your change" +git push origin my-changes + +# 6. Open a pull request on GitHub +``` + +### Adding a new cookbook recipe + +1. Create a new `.mdx` file under `cookbook/` following the existing directory structure (e.g., `cookbook/llm//.mdx` or `cookbook/vlm//.mdx`) +2. Use an existing recipe like `cookbook/llm/Qwen/Qwen3.5.mdx` as a template +3. Add your page to the navigation in `docs.json` +4. Each recipe should include: + - Model introduction and key specs + - Installation / environment setup + - Deployment configuration (with hardware recommendations) + - Usage examples (basic + advanced) + - Benchmarks (if available) + +### Writing guidelines + +- Use active voice: "Run the command" not "The command should be run" +- Address the reader as "you" +- Keep sentences concise — one idea per sentence +- Lead with the goal, then the steps +- Use consistent terminology +- Include concrete examples and code snippets + +## Acknowledgements + +Thank you to all the authors who contributed to the original documentation in [`sglang/docs/`](https://github.com/sgl-project/sglang/tree/main/docs) and the original cookbook in [`sgl-cookbook`](https://github.com/sgl-project/sgl-cookbook). The migration to the new Mintlify-based documentation was led by the following [ACM_VIT](https://github.com/ACM-VIT) students: + +[@Adhyan Jain](https://github.com/Adhyan-Jain), [@Maitri-shah29](https://github.com/Maitri-shah29), [@architnigam](https://github.com/architnigam), [@Nakul-Sinha](https://github.com/Nakul-Sinha), [@divyamagrawal06](https://github.com/divyamagrawal06), [@A-Taman](https://github.com/A-Taman), [@nimeshas](https://github.com/nimeshas), [@IshhanKheria](https://github.com/IshhanKheria), [@Krishang-Zinzuwadia](https://github.com/Krishang-Zinzuwadia), [@pokymono](https://github.com/pokymono), [@Ishitajoshii](https://github.com/Ishitajoshii), [@AdityaVKochar](https://github.com/AdityaVKochar) + +Advised by [@adarshxs](https://github.com/adarshxs) (ACM_VIT) and [@wisclmy0611](https://github.com/wisclmy0611), [@Richardczl98](https://github.com/Richardczl98) (LMSYS). + +## Community + +- [GitHub](https://github.com/sgl-project/sglang) +- [Slack](https://slack.sglang.io/) +- [Discord](https://discord.gg/4ugb2t6YY2) +- [X / Twitter](https://x.com/lmsysorg) +- [LinkedIn](https://www.linkedin.com/company/sgl-project/) + +## License + +Apache License 2.0 — see the [LICENSE](LICENSE) for details. diff --git a/docs_new/cards/Autoregressive-benchmark-card.png b/docs_new/cards/Autoregressive-benchmark-card.png new file mode 100644 index 0000000000000000000000000000000000000000..fee0558b515ae0945a474c40b4c8364721db562a GIT binary patch literal 699119 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 v-f*UCsa#Aiy zOU*7_$|(iEw#Hjjtos%$5?pPS>MVdD0p3Y~YNx2(prSeUgJX_D#0TI&(b!1Ei0iue zk4NRIKL7~uIQX3U(%ag5=6QNq6qZbpP~M%wa>%vyywU5$RGtibpM!4*T-?IZhp)}G z0&d|zY?1GeQX+E50w}{+z!(6?e)#T#@5g8pKBwBMD0B1f!#k&q;*FJxw*js}h5hpDZ=OpGKpB8B#H#=rfBW?pzc#Mx2AxVL4V1F^80Bh? zzW(wN4&bOij&`B_?>x2U7P<-mvA3Z5V&8mAAuZSssFREPDm4nZv!7Yl_R$5UzNMI( z=RW`TyGI+*zPlW`Ef`H-Sx@z0y?TE0H3cWvsIUGy%G|&qalJ%ccFaG_BLM5(dukRe zjDTWq5t#J6S~-|nIFOZ^gf@DPXrqcKjO>T7MRh&~%a2iRMyqu;U$2*w-505B!DhKQ zMUmidDHfISoR9!xBQc@l{@Qc89G~yRXO%EeF3 zOVya4J2&qaU+a_e7EY@W!&7bhz%ls!!Nt`g^#kk6_r_x{z}~a27wVFPQ|pzOD`aw@ zCbrT~LohGWMna?E(f1$RugM0xjNN8i^S#9HK9WqG$+`Y*{llO1BsdlcKMR z>aK{5=wI?Y4qC*bY>H;u%w9y+Mt)A5*65QlE&{`PN+K?yN{^+H2R}9yuoI~@P=`Yr;t~qj@)tak&j{?Gd zVpfp)q_PM4u++MP9&0%U%9GUfeXTYD7E+(HGtar3qFiZ?wN}?nP(21yA+~%jK6E~7 z=9Ok|alEIfZ?>b)RAU}6qX6W5kJ(Yvxz|`L<3J3MYAGsOZeIil!x<*Jvm&6x7lF zmIfakeSVg3%(6>5>B6AwvVNtgvW@$U*d?8e0Vyeu5&7q@Sa;POh)XH)dkGTvw9^4W zXG+x94sbt`9fG>o_l%@_X_)Pv=^Ck0PSA1pTDEH{EQgvj>86aZ`56SqE6+%eut8)I ztRFa_JdZS-fbM98p#$)WXF)lfOHhYHn_)QP27m@_zA&d!5wAPBVJC5C^xkE`RHYB z_S%C)1NM?KG%)>qvk=$Yp2Jc4YN9tcf;f+Sj)+3b!QWYi>&ck|p|%bnoT}`DbZn1k zMwuHJr0#^J0;n8J8b8(T#@9*#LPdOiX7WshsEaBjyaHIYaO7@`>NV~&7qKPefNBxp z-FaTRQ}Z6*DaL#YfmFq5@<2YD6Ocs`QBl9O)f1Dw4{avg_qpc$pcSX z7(KzEJ2Nh8-fN+KCHUe}3D`SEfK9a7?dcKs1=Pv9tBtv>Y?G>Y3Pvs3Urd12c%CYc zmUcC5n>v%(eA*2z0LPEUkrhBuj&HqJeLA>Lb^`peb6V`GLu@aHn9&~J=4jK8%~WwA zjs<~E*`0Ih&^{f-%|+~F$u!fmO!oZ?Xwb4DoGq=Qshk1vA=in)Snw=pQtVeQYD++B z2~ces0ew?FIAh>?|H#`26mO!RGY=HeN7)Rq?+sJxNU90IuWLlNb+bC*w$#fA4v!Z4+MU{kAA_&(RT)NZY9CcWqSe|BGFT@2F&qD06k)hT+ zA9l~Q(Rgn2z+o^&A{VyNPT1nSU<2>06UPz++6*Ngu`$}XE(=Sg>;#}Q&93Jm?ndD< z=TC(PKzR|KTfsxAlNL9$sCu`#41quNWDw23L(z=>5@gw&{9Oh~DrSw5-dj!Jj9~2b zJnI_eHv**8Vs6t)5IuA@76ml5352IHe(7qnBA%^imF3|okhVx9C+`?PD>^in5VF?n zr1*)0X5aomfrzp&kw85d9ayiIq&q9O^O*;A3VzVIapf=;t(UPAQP?$#lS?#)o3m6; zT|Kz9q+PnPBBN}jC<^P&t)%bDL%%@m;`v*6Fq@SqR10d6&&NAGv7qTaeaon(4*u{I zGa9~CiJ!==QC-s5b%NTm<^03Uy0B*J3|I@eg(osffvkC-D3w!D8TF^4@u5sO(3lCGia;v9t8GnT4T|MpwJh{n;ks*S-%VH1RZN6*pnkdG}Z#K%44i{ zz63+lD< zGcVlEz%3&r%}h0H^;tJEm^-cVQ(ww?&?U6D*opq$3do+PdOQ6) zOb%7d%wlSx&w-Odp znt&X`7YVQFyc#y;m@b)nDhGiBQPoku1{Bk zq>s3QEJfp_8z5lxjmqazb`>38ESbi?do=j@mgT1q@#_@xaj=QAg$mA~0!M^1o*(P* zN>x|%9opn7{X8Qbr~|x$=7vZk_Yb8ip)AaPyatdihEU{oHh&E_a=|D@e;1}Y<#};j z9|BCxMVrDYYNP1jh$i~8P>9e$(h}z@(y5?YY-IPWD)V#G zqY^$+8g|f$eq-bhk=B*zKmy`<7VgIA_g>GwE7};zd+kLV=imQqXSC^@*Uxp9duVI| zs{*qv&yI3>2AEW8&nc+F{Z6mNvjq)#(B`ma(-~2Dva(6+MSJV}e73T)t>EDNHQN|t z>WRq)nm!iikU*!Mz@PwZ{A?U;IdWTq)f4fWPFH(zM%B|4n6+u-&aYQH_ANaG7L;SQ zqb(Lhr=D$%_#b{2fVBj(0DSlkl2m8?RF$iV_af4|5IBZy5w-#7#2e34wC|ZL2G2_+ zy%>8t9Esl`rixtC^&0ye<||*j@4*IjhrOo`ZrGefU{)&nB5~PE%HXhA z?YK6))Bv6lxhyCHfXFLW+?Qj1y?Ou6C#M$~Uqg8j zbL-RZzk7L{)`D*6c}1wz3X0e5xr`7}zWn|zyzL&TIIe{??)hJbVRK>q&4?;Qp07&L z;GSy_I%w||S#lL*rw>uioyK>7yEw$c0WAYiPLOhR#5@ks6`IuHz3v4ZJgQ52iVQci zIxyzk!F{jNC-Z^w612k67>tK|KG$sgi;m%jbqf!lJCU}?>%1(=uL)zY&Vh=Oq7S_P znCq-{Eu%9fW2F}@N%fQYV7@%-~+E+n5%^OiD;$Q?Nm8|2-K=X{!GH?93 zKmGEHefPunVJtldpm`vB3n29SAOGUU4Ri-^#=yyl_Tvng%f^6K3&RM?wm1jhfB&7A z;eqk;+DjkYUBC$A^yBfl-~RS@Z>yKXIiAC*qQ`wfnf>M8{>@&!eQQ_LjQ#W}&Uxl~ z{{FYW*}LO>>qj5__VM@3XT^wuTKwUM?|h#@X`5Ha85yZGH;;_|_?MsT+wu3OuV3u# zhxc**Y{BUH{<|N%-mB-V{_rE|b73>Q2Yn7@d5*FFaJ2pBzx}(<4>*f4o*)1IcaNmL zImYj2lqEu5G5YFg*KbFAk%n`9^*YAy;mY!U%|0JzDssFqZYcW$YOgyo?wiwi{rBU! zen0vOeT^>(M_y{pBxVQ`{o2RC%gSr#{+;^LV2`C+6)F)ra37eU0)< zqTgcNk;9Cy565fhdk4(N^B|`c^At{q$A?#$2aEIQHB?8x9p`+H^eX^)oguh3@@WB# zFUy5dR&#nX*8AN{E=F#yoI?(Bw>`@`g#vOXaBW%pd(qjJC?Y^zT!-v83x~}vo1izU z0ymyJA+8om${~`4_qqeX9aYb~9@$BQ`X()$q?d(fBXd|ivW*Xb@{Ya4?4%ML=Z~FY zc0m)K0!4Hj&o$iJDCcb06=9RlL7}jjo+C=U1UTKdV&C~3aCTkXD}otup2R)M!5i!s z%WvP4{W@{p9<$8`DZ;^e<2i4;72SAp=r%ba_i6v10dRZ4_z9;9Pm=(CTSWN^h{upG zi-IpaFMH&)4r@%`iX7F!$g8_1gm1@4fEQ;=)MJgv>I6Pd;!y=mcM1*#OY0huMc}FR z!K0)1P1xm{R9^}8!48G<@UlMmL99I0*AI^bh8t~%2Y>DJC*+ns^306@B=S@dbwzGz zTcYkN&cKhKq8>A%%V@{fCzRfL8`S@APfqKV=-?;htiFld(>V7>Mst5Y_AJnTm*aPL zPC^`Qy?XoZTi8I@-#wr8IA?Gj)pPyr<0pIf_8lm}|M_1fmG1@y)%#??M{ZwC`i&8( zq;2hcZVd7itL9`*D2`7?5GQ*E~g%bF)UuCBexl;Yr zBfr~jrMOw()Y^+klG<#OM@HT=0!q>A7SdGqO$w%#6AbjQtZx5ckmjM`is*8yR?6urj&#<}N|23#xFql~E{?3CNMnO=KBMOVWmk?_>#{C+( zrm6u20DY%nk1sdizCC%5TDG(XHT> zW*)XERWVQRSq`A)-N+nQ@9U*X#`wlNs-CRGel)idNVO{Cv~#{G`i%DmqhYfW;wiuy z4c{||vza!|Vi5>u3`U1US*>djM3E|MT-!FSt&9wwjQyfLzNCZBug^-PA%ImBS4E1> zpQ-&q;8Q|J0;KyyOVa1iXR39X&&KO&{qK7jA!e0dJI2{_>(P^SJzak%sF)oJ0&oJu zr7liNoYnJWZ%&SfIf|GJ3$w}TL4l)DX&ISzG4-9O!qL|9YR~Kvd8_AfnW?K8$sbdO z4Uu3)T58|-c|!1?b0OZIQPaHt7+FVAb5zCVhZ;S#t^QPh&;DRPNR?7w>cf|j+?Qj^ zCi?Y4E5S}fgdjrI$_Iqd%xUi8~I+2`B24@wX3lZ0^ zUm~@MkyJ!W(We0X0N{Q`dd=R&uZO-yt=Mk|IP+(rV>s)b9>1fGt&2R-=)Z44NA^79 z^*r03@DQJWOT@+%5=Va(oT`JT72qv!~K7@01 zP%MYe(ku5$pTpFW2I_&HKBx9Im4A!}FIsR=K+Ep+*GS0~0IfY)j`(oCw=zuf6xVkIZuo zPJs0cGB6;o~QQx*;|d@clE6U5tE(RQpfo&yWdw`+k}%HuH4JnA|Ps{1@_`e z{!!TdllrH^6u3RzMuxQoQsL$l2ooYxrpS;IPG5p?n>|@EQq|apJ}bQhV-2ne=(CIJ z<)Ol@i!RrW28!(NqB4=NUr0cAb1MXlN=m3NVo&neHU#Sr$0T{e_c%8u1Y#70itU;a z<>r2uQrxQ@OF{2!JUNnXHs3t9*1@PPVqff-={h*NcDyW2GO8^Hx(vowGL#l)Ydl^> zQIs)QpRjW544T0(iqm%(ZZ~EH2`Pg?JB)iY0Mm$C_bnz?)$clMx-KRGXt`RmXX`2_ zIPbw@D;x({=Ek{+uQwS@OB(HAY=o0JyGBdbtK+eg*_=)1UzHKLaN$fcrjTi2hEWh) z8l;M(Ey@s5X#`yYnE-3`)TIRYA=kpo^k-HGY#U;Hfio#toK zpJmH6*MCn(V0fkAZu=UQSm$z(exGxx8_l56?wq~;^r>L&L7ct^o;sV3;?}3*tUV~S zb7Fk0)?xUqdt1s}#$II&ljH-3Hx5qoVEFLPL1|$;@RGHdev&--@u8k*i?ri3;3{x(KY(@w`lBlR`c%sSK&x)*ZR$G5KQl9Xz9y?{&y8BXXd_jQfE zJ?+*}LWJk2MZBo@ozEZ6V6^?P0~LnPnh1ubsJ+ocmZMccWXoU^Xdnv~h>oZ!Jg8;L zuXVp_LgfrwuXwK9tIr$@*#ZdrkAcoJYoqYGo+C?jknxXf?Lk@5i?XhKK0+<9?i0?< z<=UNeJzqGKhIX5vXH`II9%?=5q`OUyWCIDE<~g|%V$Vl_08ZW{0>E(CTL$5^1c5QeO4?Ztjk3*(}v@#WnGE- zTDR6Ivc-0NPN&Y0?lloQO%9&rX(@w^?DG$DwU(V+E5GO0L=>eQD}x*#kMHtQA}DoZ zN27FS(Z{BoQl_t9BZ#rGV6}7S9kQOl=qZSqCI;gtq;j%wjKk7C?UAUHR$N_{8Lb}6W8nw zGX)6(ZV1uJ$OJ|sbHGAI10@`T-bc()T0}Z6xR!x%r^wJF#7j@ii<|w@mTMX(F3?39 zdt_#`@Vv672a(rW#@aBmS*@ypZNhcCRm#&0g?~nNV@J$gEIh&zuOi7fC=wC#5C#As zGm#xEx!9U4>`JI=k0fU;l8m)E;fLx$YnWi^MvR^A7@Hl*a2BI6`c%F?Y?0+tz`gJ} zU|6Rui+Os6jO0qi4r+BM5Jb5RoyGYc+4`WehV5bdj4)hfn*ag3xw~Z~9RZH>0Y7ds-;Xr+LNESSmoybjT%-Yp0Mayx6T zFB}WtSLaJGrybOMoJPhJefFSu15Y1>A6I?mKukI`p=lywRjefTQNAGjSc}Ah!ycRf5Q&ur8WL>T%{X1=+_*khh4qSv{H+a3Z-w?2UB?oe5#ro%p@` z(+!cftQlxAnbheRFsOhTEi_2Lq=>A-9a=FQ0$q^^j;5a?R$Cb5;fbheJdRr#X+A1* z?Tis4(fWH;bloKj<9U+gP?1|laaY0H-6u1Mog({9#>YCqwn}P*{M|+ypNsCR4bWyj zL!(7J_jWjK46SW&=3|VQ`>Sfy0xG_CM{{t@uBxvK2W3)i?xEMaCTgSZYDo#dmBRoC zA_H1#vtaobOoI-Vb%)bGxNk&4p$ihm-r6vZK88s$H^|fuS^rHruf1#K@Ae;F`?2mr zM$uVYLt#=*>X_eGk8FZJ1ot4r)^sM9tjVcz263*7jQ2I`rdvX+{lc|C-m_dUs%Z~{ z@}g{e22W2_d0ciJvWARJ?hrA<0 zdFUCycY{A*VZHuKw1(L}yPUVo(<}#1dh!`rA0sM`NIOVx$`X6z#odc7^Y@kY|2M~* z%qT(6~X{oXvTpOe--zfDaR5JPho6pc@03iMK8E{4U_mk+nOJjTg13m@`0# z(b^|SeI~+x2gaA>-c<~+(_;u-hjO}2Oo!D+fD{^j&oP-wjqts88KMs1A)*W$^lm>ja z&B5qhOn=#73!AF{y*sZVTWxbil1;j~l|B!psLZ7X6c<@dGKWG>IKwD} zoB{w(9o3ROR#mQ7>>ui0N+})SoMC_xJyN4a72k)$*R-ba@1wW?nDrEY5acH0&*SBq zJOQ{Dz<{Aw4ro=j?X{(K2OMx+uJGghK3U|69!*A%*V%v%yuwBD=1|c zY5{FII=^HYQ=zg)?_${i^Az@wYddGJa578`cqlmGSW# zBf5v%psZeWFBrq40v;srI0kGP=ekp$zz{saQU)Xcs+vmFUHF=)j|pn-Fj&Zp$te1g zwPt=^W$jVDv2HpdqhhWsEulS&f)>ZaJY=eZx}LvlADAh-LrfY!yDEBb$W$n-rZrVE z0Y+RZ-$`kH*{!E?hfI-=9T*A+kG*dV1FCK5s=Z#-rLH4Xr~IbV5H! z5``(S;JrU)I^!N&LgYDrl0|k}+=9W+a9J&HB1qxB%+AQKI+m=IrPl?8L2yuXKF|e= z#zJVZ#^P+^JUE>Zi0j$1@#U;%DBuAKUCJ(iQsn3wTFN@fY->}Jsn+Nc)&pn6-;UkF zc|+jI0gqfKn$RFB8+ZXurwjr%U1vntj8XCFN%no3J0#mZTYHqhn=bRtoSe=gjxvX+bGr-we)|B%5dd`!wi6&Pv(=_S}TV^Umyi|LZ z*2WOY;z&@Z47DMYnomdFs~mU8X50hL9}wHQJI1Z|hfcPf&M$&q&$r_~ zZcdeh5FqONw!LT2bvq}VU7&P=C@kQ^_&a_+eb^jE^}NNsVt(A`7EU1o0E@D(hC8=S zcA{_ibJTL;nU#>o=*fE7j59!x@8C>+2^cU4mQZi{?ek}@?N^%v{dsdnt*>s_%l@9% zhyDa7NMtMze7tTNFqyR#V`cK>^xFk@g z8j$1Y62Q9X?YO(`I9%7y3^ENcWat|hqo20$;Ej$w*5H-gct#^3D82I9-=+hXtXjz9;8;n>r{a9(CwEj{+1VcI{fzI3rTmGjug0TD-0d*rvbJ@vaW| zR5c4;_RfLsfs3$=P_4N;JIcObv7mVVMof>|Tl`s8_i8*uU(6-grH^75jtE?2ePgp# z_CNF7GmAwS)tN*rbd=yQvo2Q9rqbcr2QeUezOw#S*&!%oLxv|ev~E#<>n7Im9Hw0s z(`ypvIdMFl^ajuBe7PjMEH}UE?INSz;kDr;UyA~drAxY+LnA5s{_cM?*l2ScXh(jlZAtBx@w$q=U?`4Z$V>)(pn2B`igVOAw;f9%{Rthe+r zaA(vhqqSAeljnJK{zoTibaW!f63@4L$~B$Ln9@4Ph?dW`mjwu_)mmm1ORl9-+#)Ay zF?E$m#!<=z?;AtZCTEgs2HT7Z*^O`bOi1REkSX2YG{}vfH7#Xig06BX%cy7vqiqb( zb%(E&eULycwRR4!11B*y!tz@j@1E6`i*fz_J@<06qh|DSJ=sO48OzE0h-_n70Z`n-D_Hv01=qoA!l>rk}U+~$c; z#LTb`Yf*b#5yxNc?Q}vH^FmB|E^5&u^ir&uu-)7?2cy1>n0WOV*Tvg17Oe>%cFX1N(Z}y1P;mdF^F%X z{Y#M0Fyq7;(8tJ>)A*|DR~pXu736x#W-baiA51{CIfe*$x)*Q+R)a7P=Y+FLn5gE) zEp^DWi?%W6;C6s+E>lgCLk3^fPrItWE*;WC5KLaoC=C6C{j;uOhd=T&J7Wx5sHGo~ zQ0QaI4hiCPXsUy)QTK^C3_s#hvVGASP-0}s3-leb!bjEZ>RxWtQV79N&%Fb&AQy~Q zJ`q4=P~sXo;Ff{ocxFZlEJDZxiPvMvE)HuGF<77o5NtlN{AbRVG)BT8lUl3WvbBIQ zOD8Xvg^nbHwUV(#NEyrtNR-UlANod#hV5@hAqO&eI!zhqH3WGTG@ryiYJeRO&opB) z`C`3Pm4$Rb7VF3z4t8zOAaCZ*$HIVrCO+0;BBKx#A`+BtjdPXMZ~R-0ay-t0il3)08eFd~G_6%>gqx@9UDax1k6|E{TzJ(V5A~R(EmW zEe_rpKbpIe&#COjWB9fngmaE{O=olvzCx3gw3}*w!}~3@KgWdfmXRM~3K`hKIjzz& zp$qLJw85UQ@`069()rzcJ!LvZlg_HLq{TNSM|2n~-j4~TCRrY*3v`Wxp0gZ9k2$j9 zF*6RRukx7P_u5(bCS8s1h8!#@%ey=>lm9GK>naCSHRYw!aa;_0r%pR?jFeaYtVO*o zbjjtqBu7P;v1+lkHrX1X8`&#*4O<%LxTq~EV84bb*E%QC_d@=NQ!($4vOrpD5^99j zNx9BL6ge^(6NS%F!kYr{vZ!Hg-8q7ORYfxvWmRl|M=v$?ayUx5Q4zgh zwf0Mg_Ij;5n`(lWbuhMKeN2Op>BhsjKt?RSH(ss#dm8W2h8m59vafsc#_`5-kJKq4 zZHH`6kacadvm=9%uFY?Q-AB zh^66NC$Z1DYDE& zN6Y)HBxz3_?xE;hi^;bnd(7Z$r+eJHo~PY4oHcD@P;FGIP50XC6enf3W+}OGPU7=k zwqOUPRuez%ofy}&hJyV^*Q$=PsQXAUM;!{=jfRdaSdw7K0grI-o?KIMnjgy`yK4V< z(x$n$%&Dry4aQ+-VOu)ePitU3n?{SQxet43MjB7G4D(%g8Rfnf96StXwWXoc)UU6V z#MKRRcO2Rt@w~0G!g~$)SofSvcKgzeU1v0NjSo(0w4Djmh9UdmlujvQ^F|G^BN59a zqa@@+=-g`ro#uneR3_=g$RKjh3;vG?y$w0slQV8~0uJ2?2-$v0XyA={oEq|s?5Yje zqfr%*KWjKRfbC+4Zk0o$rbewNvW}CSQnL@wn!__3Pm(MhnRy-82<{EpQ%naOsH0f2 zky!$}Eu1w-XgIk+#25FB3>FIL~G8RGYk#$^z@UgAt-nq!8(wS`WypX5>(hWKS&L>;m zXr1D3fMlC5;>^0;DVcZKrU*KHJJt-;w%y3?E8`zf@qqZoI_CON3!g>VR3aR}RIKac z?+7AS!CqZPaZ-Dx#_Y^ZmZ(@)6KXAI9N*)doG%$*EG7Zd@sK*(pN-C4eezR= z&j!)howy?Vu$4rJ^xobBa!aiJ-RV>!%0W}x1;s(Yy>7Dp=sjDztR3ZU@jaE=?@{+_ z`^3lQ`29YW!ti@oE}@GQ1dL$fP{XQVknW5K2ea}TRcU$J%eZoKpUmxFqmRoFu&rIs zdA^A-TOEAw4k~+mFKZ$vL$5~=WHuU0HYIFeB1YDzFEz51giNPn4$V5~B19yUL|%() zkmaJ31Ww^$K5_J`YE4h4+Y(~F5f<$7M>@9D0TBRO7Nd|_&Z%oo4mxK)P!Fzg$bNh=icoknRRv$H}`dlsCjQKs)`= z93>eu6<+-F4kp^Ne#)6h8-#H9Ix$6zge`GOQ3PXE`;~wf*no@d*P59^+zC?cRSOsk z2FktE?%2k81Dk%j36@7hb{^TD=2+ZssbtnD7$K3S$9PCj4{CL^)2T6bELNNg-Ue!4 zQ0GEN2hV)_78D-N1DMnEm#=v5aP+=C+>2Q;u7M3jhQn>KeYyWa_!1oL3+qtN<>mGs z>*o_{Z4QStVgl;)ayQ>(nB30$WmE7NyIU5a4)qmU4@?1J#Kz{mZU3SL4q7bCVsk~U z4B(2G2mJ2ZPuA*U?3-~A%&nEsC}e(d4`1)^Y0ym)4CnJDqx5FB95eR#d(??W4?eTW z1~hb~A!VUrVkmxg4VVmm&t8nv6XsP3*W=*OlmJaYvcFPynYqYH9CjHVLksa8x9$l? zVj7y1$9}N`9x%aK%53F23bLWO_bi=zYbOUdxIWkJcgF0ojn+0e4cy<8AZf+oCo&M6YiF30b;bcxv7&9e>nsxP9*2Lf>igH>WAR{i z8BED2I|gGNWy+?(!09zX@fjhv5t4fH3r6kkIC&lp+Qaz$MlC=(lX5R>=+W&Scu2=<-n00+^uxzHg3Wt_ zLpS%w&#a=;A<)<(h*kqXAaC-HIHZ1I=?8OB=q2FUPspZM(OzxpeV?Ih-4IJJ;ftnK{i$8xj% zdt{LGO1p+_W43F2`tir|94*~y6^8-XfnUVE{QNV|4SolVF&KbvqW*T%ZQuXtpO*Vg zzrc~jvqVb>WL+P>d@b+(_>aq%&tK?Ru?}{7Zm59;)AGCD{HA=^&W&rK6%SsxPaO01 z&D-+hb}y)}C4({A0|BnRogdHT{WjicN%xFFgY)A#>&h{AtW{H~$jTr^1pPn!^1i&= z<{nu}II@^X*Po)b#P{#Mi?xHm@b*2lq=Bu7YriFg`pTM8eD8+r!%>@ir~b0|J8Nf= z2~yoUo;w`*2&9C=hTseK18QCE-(Ju zVK5SQ;uNgFSUbx(n5Loo=MueJsWTy82rCX~@iYPU>uhYmfSGNjE!^dq+vWtaXw0k{ zg*NX3u7Lu(@>rICtxMV0w=VkKj%bI=s<>lGKJp&cJS>UKCxWmkmR?Y zK7HYF$dIDGHQ0-feE%8T1;-nn7x(aS(*wx5LT2HbWcofqZrzoie*UEd-^Gy&6`unJ zd^hmZ)Ia-g|GNzv8%8z;N*Kr%Rhu2zV4C=v(d=DaT@?Y5Hpo>}`puCiZ2nR*O7i8) z=ZsR7(&@tSzZ4h}1i@n0appcJmq;^Iw<$W)G8%J9%Kj-MmyULmSU`}XCU}qGyhpV& z$X>Ctpr2Z7*pwGX17t{LwxjlJ=p<%9l9_1XT-Qj^(~xe8mIzi`ORwEqwP7NV6V7MU z_^2-C{HR{AD@iUEeJ3I@$I{d@5zgp!U6Tx<&XdkLCG%p_y%C;EqdlO#=!3+%R2lKu zWauwvLkswGW`hNBM#LA!;snR_=BS4AS4MzQPfF_R?YnR?S4D|D*O3JZrxJ>p&IN0e zriiZAmUPy36rBa;^F;Qu^tw(uLapWdXCiS5D3{ynghRv@2G>g(q;riZ^lGAl(jCx) zpvM-3N5SB-dAZ54q%^CXu4QnVaI4-^J#*!(OgJS_+TpN<97i^&YW*eCrAW)N&DMxl)G^GNt@YXu#ocGLl8Jy^P9hJRu{7loPR9JCJcoD{7z zq|DRe{(0IS-4Ut1N16$ec#XB!$woF^L(qQayb8vW2nji2!GgC2JaHg*bMPt0EoEk= zXA|(a4s&$G2%nR4ScdU?-n_RnL#UVAr`SOc2VM&FFsD)tsQ8rit{s+I^1a8>>pY#s z?dvw{j+aoO++!dDn$<^EHPSZPNc=MQ`fDQ>VxCIQD`mBVf2~CA*f2hhLnIfgNK3qe z!nm38@E#CqJ%Zm_KV6M%-6Z6UpMw!QcG_b+p-GGeaVg5K2DlCxlhW7g__xgVmX0*? zv!bD^^$len>vi41-Z=(mY-%q9xvD=n$>Hwr6FI`V&o%Z@1nrz*j`7BElVoVH_($gN zNW&%q8nfCv1$qSYf3JWY&f!h~4*HM@_Aupoj{WIuYy>6Q#sCoHlX}Q1i~IcL^QdpW z2CQ}#dIqu;?O%xIX;H5TAp|3;DJY7pC2or_RRv)&2XI=xZUIopceYhqmgxI^3gVjk zPagvYEC=kY%qsNWgPiSH!;c*AtUxK89oI!IR|OH|a9lQL0i;TcSdJ-cYVd5}{mVD6 z%eT$ZWS!M*Fjij3?NA~(uo-4_+K{Pr25nNi2n0kC?BTP1;6h-qV0-`NmtW|B0`i6+ ztJf>mF9@PAhtS(_YL6mF!FcZ3?=Wi6&d55e1rP${(4{Z8z`>Q|muHequ?-9i<4g2x z$K2zY-MZ}$f(V;zK#eTck%R6xYIB1deZJ}N&!0YL@XBy?CM1w`{uc9%=lLK5I5;Sd zyl?k7h6CEjIdLNVm(NAXjmR`dpdRnd;B0wdXt9I9r;}ig>LZST3lSjVyf9iY>Srxa zT9Oq;G9=o9(5_LCcs_L0Va?+wp|dO-!!|w=!4)#JwI$)gbmk77(Hixd5%9xDfJGl7 zFpaBR9yg~G<3$~7mBSh?Sw-Lq=g%6}&3-9St2*aTK!vHVnjG86gp{%Gr%^{ClGc=? zdGE!^#WAm2)UR`N5~ zzP1rcT%6A8_Z9axWRQoWpfgs;wgC*(wnk596WEXxDEO4k?9Uq z%Nh>rvUZ(fCpi3xBX9S*gpKda&YDXa*?jIrm z7{QOW$&UNr1z>$^wAnn$&w?BQ;Zv*8H3R2;{`>{c6G=DC-x`5qIJRcMCu=$g*}TB2 zoKg2pt5W!8qU_Mbi$fsAX=&;DGPaSi;bEAUqY+~(2kq(Z_?7PHKK&UpOn!NBhAmZh zQF_xGGD_dZaqbN?ZWb9c zyL&IuSJs&fQ_S08HdAmo_fyuoBAeY5MRV54P+G(D5|%Az#5G6QZ^1mfDT5`V{=CLi z1hovOosMB!b?%7@d{v)M5O)y*TMHMvAq_MVnJw+kq6v&9WqX2I9z!t4eW8s~oNc5b+xj!K(Y~f(z9u|*x%PlVUt7ILV}~o&bR=EBy{?_8 zD4g$-^{~D-%*~?4)Q;x%{n|zsF7B^63s;7{(RPkbk+bOM>*rLww_8e-lo{A65n#bs7JQzAj{iMZuPlbvz#G&aSrRJ_<1tYTm-+>jMezR zUdL1VXHVwTieVAaQ^JwUuXVtf0Uh6azj+O|@wt2E)^-24*7c9qn`?7Bgt=e8={vFC zuBDTZ)m_$m&c1r1?&;&T-ih@-z^K_+4m@#Nr->k#pP10mHBMEHz>HwB4Yy5Rcs zKtrkIM!MhYW}fDR#D^2H_L}x-PP9|9iUvVK)MzSu%Jv3e^}Q+xH>tO%17}zF8$V>N z5?S{JZ=Px|NxF#S1BUpbOhi+#0D9yg2bFzd$=?ulQ5PVKkgXm9dE8@51dIubQx91? zf{WHP+v&&_qAoc{xeIy}mMO|#X4R>ZJQB|Zjc)b`r)Y39R>=fU|)yBi%G-WEz*(f z{YfYEp%|`-vaeNTEuaCtqV}~#AlCA1k^*t2vFqKI@{a9$<~ij%Gp2%5H<2+Fb)INi z^L#ChjvO+*D-2xRyKBc~Bbx9F_j3?L*`K-1)M1dfIIcG7;icP*ki$e83T>0RV_B0B zsh~~ zyCm_E4(^|oyceIdbwZae8wVW}GIcL=%OGp}!2_!2shqbIZDl8SOZOJ??dXKI@w5F5 zq>UXaa_Zlc4BE2^cRO9PT1J*%%X{k`2hjf}uN-ZyiT1Qyi%jcM#?l|l`+(7gEno&< zJd#;~zoKUvd@ENve2}@TbVjL>Ee#zNcY*W5mc9}$tWwS;>^wT4qpd1idmVz&!Jutt zHPE6_UU?wdQlM_(R30KR2bqFi&S-OU6;m)|%q8xVLHQPTH^zeZhDuLUB=atptK?|} z9VbW99F=wduk8J{b^*J#-jaZ@CsE(iU~N5u?S}Mt5cvK@wU5l;Cfx9l#()RXI9ktdm+qOvqF4-ZI z77}LA#Yh7J*88Ov-GOUY1FF*NZD~Bn;WVS4VOy)~GiR}IwK$eFs+Y5%ipqSc2s?<1 zBBN!)+Kjt~G$Il|)gW$~57FQriV{%U>(UunaUIl~G&r_ogWNU>YIz`dQM&^Q{w4~3 zWjYN(^BP)IBZ#Ot41^hwXJmeu-8nF#LRi=$$jxME!XYzM&Sqc^?4ZV++;DuXRmxhI zC1LN6f)Y&wB;5jvPI-y!gvq2PeTHkWHBnKosOu$(ukihA8f=r;Ut2z>qV?c)XQL3; zJIgpsw#EV&=jDOr16 zac1=f*sSN?5lNGmOeR8*pwE3QgJBndcmhvdW%$_1uY-d<4FQUD;#+q@U0Z19$K$i& zD1%(dRy&i4nz~csae9tCzIpC)%z-^S9$ufl7P)4|*U!`~WJ>KN60Wy*J^xsDYopuG zWLfs|Hfq*d2BQ`kkZqVl8k8~$(n+e*&bjwIW>%w=;u@s5=90&C8ClBj4;Z$Dk@-8b zf@W@&b;$NKa`H=ege?zg#43XXgZ!#Goa?YQytl54BmJQ(Mq}OMbWPzTLX_@w?t?y0 zo#70=DqxdABRN$e)7D(Oas3X-i?&5!2%EFO^2_o8a>;98U4LE6e^NW4Wyq%E*+bSL zJBF80MwA8DfVu)s8T)$4{=x`OL%t)^2c5BKEHrwq9hHO(FlOQ?!lkQZ9&`fQmtovE zM?}ISON!|D{pZi&+-OW^A&=mY+;5pWjQ1ea1nX2qIK<52^XJrm5BJ|VZ{#-EjzM76R`3NGNJ#3~*0Z%JRlcCfIwq_N}9~ z&)6nr8z(ZM%pj}RY!Fu+39&=V8@4GrMau^}m&`P>tmY;4+k*&~$hxfie1Xf{&&j8)#nqcdoDRt_rEgK9d-XiADE9WDS7RauC z-7>{6BmvFEa|SsToL97$VLLjt2*b0xXSqzxb~q;zL`}@LGy6FO>o3Md=sB(h0xe`U zk);8ocYA-sHikmsZQlnh9gZThvM2YHm5ej-*&@VVphm+1JZMd?bZn2=$JLxFsFPkq zn279lv^i^;xwUgVyFRgmye_Tf8ijH-)Y;B8-7U#u2N^6UyZo14zpmM8jb&kyEo|Ea zxuVSPLO6e9^uw{9vJRLv>jN@ybSCLewbEPj3@pTi;nr?j2H_l~YK)gbtv2XU1-Ll& z9uQnL*I{3WvpSaNguD`=&)TxZS)#Vm&S;s5b>OC}*TI=ir?5NM5lHQ&M5WZ^4T#M5 zlCOFI_Ux3Ye92}J3$XV0VU&2}%}zJ-ng6uSQDzxr>rX#O371d9|fkhAJk zqt>BAES!~z2%T$o!lAgOlkhc-MyyR2z=PhqEiQOhR&Oz1bS=|JN~xDgU!K;>p{-3W zh)I2>6wnzri+f7$A|$2dgt8V#ggf}#jTA{lw+5n{?SH5xGJ(me1#h?*qrZnei=MLy zjC{rrla*RC)R|OSN2UMp}@{ix{%iBNt4HpeI5MVDiYM+3gJHnNU zu=;Jg&I>B#hsQ_O8R2!2GxqY;%Ot$OHKBk(T!9Ggv)8YKDRNVSSU>2&XPSK+3#EI; z!Up8w?c0n_UD(I&B{wC;$R_N^aLDm}^o6^e!&m|2i|u@109*q8Kq86lJ&Xn5=pCnv z`in`??1jb`*V82oq1&5NW)$nH`VM6)&_|9=tH^~;?wv*Wa2MhcIdudv6e{+Qi8H2R z<39{^JV&(Xi24xqf73oA%&qmzE5BdeuH!04rR>^rv^HkTFEk!?KYTaz;lAxYt0o0kT>KC#vLoJKwSIr(LFe86xp^XvfSS zUS>%}-3RYqte*bP=zxtcXDTK!Q+rUY^bGoHW9v4I&Q%827(DZJ`dH$%%FzmW6>y+* z+$TBMwbxYHNpqmfWM`$;4jFDGgBLam&euz3|4m@#xviyVKWCQ=NJw!E*B(gg^{%~c z_F~4=V&QIM-L=)1Hyzs#>Z&mb@S{t zomCtUXN<&mZPoARM0j*ElYpoNdv{+435i6e>~ikG7C4NXL*zCiK~{7sMkzdg`CMLZ za(1C3^_foEQBYt67g4i{YeL38e{q*<68A)>5cRmw0h^2m(H( zkvzqF^kn_~`tjoj z1v?KURr>hTPvzC-+`)PM@cuo=Zs_*c5AVyHAAX?hMLV2lo3ncm^X}K}Ja2#VM|6M) zvE9x={V6B^hu{2AKK=AF*WK&i{DzQaI=S0Dz1xocyj=^~Ih-GDZM+Zh*)MF@sPcYGdj=m0JL@gMwyZHzCdTYvfGm*{hT3@7)efB0AB?f2giuJ;q#;cW9{7Fx6f zdbZvF1YQLMC{8yb2rS$6Kb7y^zT2G1wS4*bsl3|GZ#fO8_tmCQFY7~FQAT}^-mG#Q z`FywQIY3R6m-tmkFmt|SLO_c@iLfYRvP>p2#;)xH?D*N;ZKerAF3qW$vXm_C#8viW zK!IC}l&N~H|VncZ-#RRCiRid7TA zfU@x1Bf=d=tCW&aujjCNw<_m~*BtKm9Ydg3UOIGxSkw*Bf1xn3;sa!?fk zNM&aKQIOz3RYW#2iSCFVXzYo)s`qvz7lPLSJyCHi?XB(S!-r3_S0V3^O$`X~k)NYi z>9c2dQTJKEN%KH^8NS9h>Wz-(`>@Ffw6wx}oXHok$?xYcdCkwCzA)g1G2pu&wm@6h z$j6Y==tk<-2Ij#eUE=xOuQ&e%@r{^UaBM($n?yxaK$3>dqM) z|M=-6d#-vfLsy^;8NQ3Uf85{v=Fk77zo0;vI-C`TdDZG$>F8YggD>6i!(v}Dvr^Lt zuplvO6u#w66H%a2M);MT+Y$2RY)POIJ9H}`ZXH(XXmM3U#4MH^@6@vgxL6v0tz`7O zY0-7)SiC31^>VSbn)P!{_wNN7=Z!iTMtR7hH)rolMi?Beudz8+ozoe;HP0Ija}BFw z{mvRKT(CeMRWC~89E!En?lerjoz5i3*eqR8)|Vx+st5gU*e@10797b|PN$sXD)!;C zYEU_b(=mxVU_2CU$dL({ss9?-dPLi)pl(iS99p^Iv!#U-g!{ZIqVL{MHjJ|`VXf)B zN6*M2hy7B_xJP2I^Cj2l;n0Z!4zp`mW9{6i_Z(jC6XkW|npFz3Iik&dP0gVUhIt=h zh2fAdyUb%4pGEbsox~`<(BXE~YYN7^VA2l4WVW*U82MpxYA=^-?kVp_!*b^VM*cYV z6_qpM=&t`B!x~8_M&c$#QETnJmz$%yPg!$EcJB^H4ud|Nt=?{^WHz)`LwMqQ+Gc%? z4{~EP?nj3v<%pDS490Bh~%_qTehkse77B0Is}&g;88Y5_P9sl zGdLg_H$I2)S&XkbJkxYy*Ul(hYbUy^Y38(?* z`Fnm=a_%j^J#Md6&hQXa@%b)tNUQEP$3E56Vg0#wd9pU6eukDYt!HhEf=nie^Yg@o z?0ioOpar|AGNwW};hK?Em8=(x(Sci>0|=f)fwijrL1cg+t2XxHIk$A;sV~mwz9w)! zvBM)9`}h#-zXzeRpaYB$0vj#sP1WBM4wMbJ^Wy{C(-<0em2pRyF|wB1xyv-AZX&VB zHlD{V_!%UDCHr1OZ!xRL`rB~MuId?yS}YRkY~w~&lw?TQZ_sr(zu1dmL_HvTTq5gS zIL0&Qku{*(XVgD8Q9lM}?>J^-VNh!SL0>%+`O^L7SYo`;y=OV{CauC)?l!{@FEjZw z+d^aVF*3_~enx)upziC)rpT_lMO`ZEj2C9!foL*hl@MW&93cy;p2R#SxG~7?e5Txo zgB_$^Qzv!1ibQCt;x=*itk8Kc(jV@#8i}`H6g~_NXHzT1B8S3k!+3wx-r%-FW@hSv z-KLt_S@vKp4y1~Bu8NpQ3dXXfC}TM!{;~xP4_%|@Hyl*TKh^zH-=T)}FpDQ*z|HXz z>es3O36X0$Z&}w&RBh(qE-hY<0qr3Lmg{>??GBJR(;=6wCj=T zX&zLIM06ZCd{DFNhh+3r2OFi65nA`!o=Dx3^{rEK7TB&RdFOp(V-ZxZlB{WCwkBJ@ zbY#{cgRjw6#>lOx)4mxJS4(ujSRno~HZd}8zv@Z5-LqbacIN=fSy)h`w5J$Y-=fQYttcvWw&r`fSs}U8W^LO<*Jq6@7vJ5s3mF;6B+BKod;G7>*kgeGpYUrgZL4X@b zmRu2GS^5N##$_;+B`jg2s*OV2OE^0w>~W;oV#L`*Pu3&|ZaBV&TwBiEl_x@Im6L8F zr(Ab(NX#-?+P?O~Jqh`I*4~4(v@WdrO4$EC)~$AizK$ATgKO85N~zGf6%=gTi{o1I z8?WhfW~aSF(jC($luxi>vne*7Pf9;+}DaAcx({y+;$2+GppZVZKw!S85q^*1BFlAdQ zJIA$+&$rfJ$>XPEwOq}b`3xe&uAK%)_38C%9UgdGSbKR+xUCHt8sN3}Sk1oT!?PHB z@;wc3_`1CmWzb1_t}dCe!-!Xul+1f0vUNidFUzFye#UdB^R0hPCT3XMxTdU^a5)-F zwWeG>oKCquK?W4EsTH@U@%{+7b+qtsAHZxuHcj2JRe&H!84vk;j9X-EtXmD(o-^+@ zh>^7m80M5^NDO$jXk7!x(6yt-V?d^x$}OhjQK+M+Q*~>TS&sA72BT3bLe3!g!5-wb z_FC7qL$t~2i2#YpT|&>z>8wFl;d_9*76k;`5@aa0T?mIg-H2dFghHnn$5~D;$?z_b zxrMWR7Hrl1TJ31gY`+%Imhjtk&HB$Ua6>Mg4ndB`n%p(&F@xo|koag38@02Y%%HCE z4A}>GG5KE&?g<(CX1O;HkIy~A*SP}m8D#Jp2$VAkokHKO*GnhyTzfsKov>yUgT+Ma zGPf)u?O8i|$n!(OJ~))Rej6XkSDwzT1U zRnGTQN7ollXK;{z{@z|N4!^YWtCwY-&lWPa+w(hzHT9QQo$qnV^Egl*a!+S*LWtAc zbx7WO>3XnVqswGX@ssguQT?8mzq?Ot)U<0m$!qjlU6^@2_2a=J@77nX^>x^y+Tuj0 zeUWX`hLW(TY0cnHDJfgratYbni-LC%M4V)g#IXzx(wXf}=jC$kWs#EahhrpsF4rKS zbbH71`I?`(Tn6tKkxd1erCOb?jVMPFO)U}3<*`7MK3-VE$^_i)Kl^w80-pjxVp!Di z&}pCXg}dAEd_&2EqKAMXruuZs2Wthhu5KdRi;Iy7I9hND_dd;C5Y*DMFnF4Tpvi^c zjiqr@Qt3@1v!KFks}^b0B!)9l6Km~SMHgPz+B2|D-J6^!HfAger>xD$NT*~C$fG}V z2GBV9%e5<|MWitkd##3Z7A(7mRL;KdC9_lEh+Y*H568A;4eBJuV%B2FPy-z6q-ZZ- zK7g?v1^N24MSPtRWprJse_ZR+r}t!BB$MzqhmVMC0M5Hj1t0~8#6MGXn>5(ZqZSIz zDf-lbB@#~Y$1T-gO2E`GPC%({xAV+wDtsaRJfgV}(qFeIGd>FgZ6Pf94$!h1?P$Q> z2&WR6bwIOTyn0C%OGNIX&)hR!i*0NWO_$?%|Md$M`QaE@cSNb9R;)&i*LF>eH4KhN z!gNdqLiR^Qrnm2bHTx)t57taHu{Q%~v`?`>0o2Gn)GUzPUlG^9JsTp*wYv6tLe?D5 zo!OL5fNR%wPKEl+4y~QC9fim#Vm%K5r(yq+D6K}FPmwWVgPfV!wF}jLt|_6$xH$)7 zM#H#BVMi@ru#1vRLogoiSB`1D?xMX`o@9|;I>a%WNz2hllBy!-+I6BOGYHOLkIuI5 z+hab+KyK2iJ|^Vdg+{OEkA~#qw?WY;^Ct!9EZ3lsqGs+I@Tqm_q*LypRtF=-j>Fg#QfF zj(W{C*Or~db*Ob-2gtYAEo4u&ju@0U=YLtGQzosOc-0|D==$m%sh^dq;br(Cd9Ya9)R-LJ-1#@^P$5J&0%1Nd#pL0)mt%89^ptCEnwrw?Lxrz zn)8RfeTuptI47CWEKMa3N9nvv8Yk8nkToVfdbwo}A6dVo{+rL@Gdxeo%txbE#8!*e zHH4;azeC>9h&s%IHGW}+6S@GO;aaTk2Q%@O8Kqo51{9U;zQm3Xxyo{iZM>+Pe8v)z z%DO4kXucKf_yM}%nMz35GUc(ndH0skWMnk~)kWm~@f@Un@7}(net}K#{PpXs|Hu8H z3kdT>t~_vrR|9VgI=4C}!+W!PtAx zR&1|0muUBPrw0f0YUzbf5*KbbNu$Z??_Peu+71nAAZAUf=ngG z|3}+<=tJDk>+O4h!JXC1_U)TD60Oswe9t|=F*+?YBQiCEfpe3hdYg*8u0LS={6J@yV3Ww^uE{T z*$DJsl=)Ep)UZLZPLa+03Z`+|XSb9EsPl(vL^%@V3cuSbYgoUCV}RG#?&a~@ncqQ~ zAnM$)dIIYHf~{;O){ov%Kd=^dJ1=Ai&chBGhbYTHW)*XUGCKtQ7~I>giSwWxO)&Kb zg7coo&V&YoU7cku+cQB;E1<``XSPM0>APV5QKo?JJw8Tfk2jkve0bP`XMg(N`isV< zu}t-ffMyYXTmpk6G%9+B@VcY`iG{hSHi6K}>!rADMv^bpsCUiGLq_UKH(*^29?c$oaZ)GiIfbhY{5Q4%jX;Age zV?)ZYG-qDPKVpNJg0cKUh2(yI zy#H+sP-?f^_tFuNd@%uyMLReNDqqgGU_vvvqB zexGOz2H8^>?lqg2yLK~WTT`8gVCNKM8NMr>d2*Vx2W6Ow(a=oQHp~sFvcc|aM6J%0 z(b!gcBoq;FJZtasS#YpuI3K|n*V}doP$;H=VfM&lDQ%a9wdi)FGPZBi-drt)w)kU`w**?p0$f||)+!xBrqhQC;qDRm% z^+mSqV~x=;Zm*5dZz3YpvtW?ya7bfiEnfR2BkHoObB;Y1knJ$M&5?ir;|Ph4etxmG z@LAM0Ma>oK92vPUbd~_CwF3Yd3OR=7jo=My9OW$Hbz-D`iJHePn25k3%;q>*&o%$BYTcgKOWfY6#Yo+ z9KFxKJ$$9XgMIK>jwN&#+Oc6R;4{n@TF<$6(4!GhuV@Z}4Sd$T#D>;+p|!1uP#@fpVc^3|K@LyiE3_9+}etRpyv zKmYDW>MgHh%ols!ZnERkc1}Q(n*z;vE+k)qlm8LqQ*T*E7qzt)k|seu!|8p2ptEEx z)<2xmwtfHG*N5`mn{fDzq{H>F9`N(#&1=?+O>(ec_hIfa(a))uALIx{yBIi}`1kp< zJC#sHf*{%(1xy;xjZDOn$8bt*LkcCF0b`KAJZc^2Blf5*3Z9W?<9G_~A}7niV2q1% zV0nY=yY|CjDm(cRgl|*n4ARkcfa?SS%Qe`RvEHK0s@Jok7L#oNDI=n^i~(*1)q?@K zNhg+Qd7~h(1MzHY!vJ|Wns7qv7SuhWF7{B#h)stZ=YT<9qm9k6Mo-pbvE#a`ezg%s z9C{y_=Frb9L1=6GQ*;E^p4D4e?$`BqAm~b#>h#QO;jsy5L@jJHN}_}_7fOxSD1zCu z_i8jBlpEK|Sc@7ptPAT`$C}k}n$@06LGfaTx5f3wz-xIz_C&Vd)XQ=6e(ywDcjCK! z#Utl=usvk+6eCD^=kYnsfGM5VC=*m4))sfXG?NuNqZnCXJOb-jmR|_@*(g7kaXR(AaLSdljwhd4_l7^us zbZYHHN;VRTj<;d%+M=+~hp2iwmt{!lD_SueBi}WmNTtJu`T5j)C5_kDn&w0I&DCk{ zeH~?N_19pCPMx(hqbjX?*k*XNp=!g&=a~#k(0F!ZD-o^1!b0Si5C<8xk$*=fw)y-=^;X4b59;a2ck3z#vN9|e^;%OmSW(Ah16Gi!i;SSiG;GRoy%v)} zK_RTA*8(`Z;@Vr+%$;tIJBDFHn5#%^T+EId5iDHRkJj1^$mN>-N3W`1HI$rWD>WQz z*MQ-37SfBz#LK5=BWfCiUJF@Ark{)umdIlHcV`qWqIxgkPz0-(RK0%fVA%;+MaJZM zmxMjlzK421rw;I)Qg*FkhW%l|o3eZDFwzlP1pVLGLr#tVkeM8@;g#UHL%aGBK zjf>O%3Wn@Jni!ZpH+I?_7v9yn==t_@)Ld5{SHLv2e``$#vDC8rT~nQoY+Pp#L#_G! znnqb)&b1gmo}~qCfESl8D@OU;Q6f`jlATo@qt5Od=kcUtru$vJUUWZ2^4<~VjMk?^ zwuiHFe8YL4e&)6OtIu;+mb{<&$+JzPW=$otgK)b{1FzX=0ik$Y^5V#Ue_p@VHL)i9 z*er*d_k17JE+{jO-8JI}F~u8tIvQ$YkKl~{597&TQr6v-9voQ3W(q@n_xxuCoho(G zD94Bra%;2skj`D`nq%}P)w6R~ftXA8C!ezx)ukRm>UHh)x9*E6qAD`A9uLaWM^Lu$ z{DJz441U-!(=qytGbn%{ChDn{V2D4s?Tk<^{7gY<=ntCCGUmyy3%O4|hgn8t1P#cQ zumwW1tNK{f=NUc_4J3X0>M)S57CK-$^pl zkl<`rgG?~EBc`a+bQ>g=XfmL?CgUxc|BE2QN@y4kYjUu|WWJLnp}a=yH3gCnhmJ(S zPXxmj1=kh^xV0e^JlvD>I6Le1jH@!Nvt%-ZenPddzpD0bGU&E-&@D~-^Ps@BgVZ5f z7`VSV=2&A7Y9NB86Cx}(XR58&*;+ibsAoMCJGQE4Ev{*;suvX$nCI@W<9=&~{nPySTKoCr7>~wHI=bl> z*w5$*qy$Z;ZXUU6x(!|>BU=c~IL|baHR`*i%hPbC*9e<3IfXm14yxcaIPEHqE-ghSz>aGas@cENFw=I zp7&Xh&OSP$JfJc#hSo~*fnd%iMrfyA@6y?`irx#tTY9~cm6|8pSp&b1cuL8dpfHkK zUqq9gJUMo)WcH&BwKlD_onn7#w7I4=duM5}WG^*2JYGN^pUlUd<2cqT#>DSixJ3Qv z%7qaIU~IE+v<@0x&3YjBKMcdB6XmRfBVfVDYtItjr+vv}6RZX2pCX>h{u zIJ5D)VI`p;*wp@XN`n%$BQSc{B!24kqZ}(B)u$j}!ZaNu&;b#iMEc}b43ob5?OU{1 zh{z$Z`j2#UPtR`B@MpAi`vL4M$b;fpnH+=}xAmIOFATC!T8E?P+Ev4d@i3U9RpWk( zZdJp3nx>3o#+(#IVkL?vKgW{K-VmeixC|M}vUgy+bJ*c9b~x-XyB^Z}*G8lrvoVO{ zV=qbU)E$~GtGfX`LTF1VI|nYa#pEPrwMpNk5j+NU3m13FM1AT_h zQ|?*$l|g~(GGlfzow%tJS@rYU0qo9_3S zd$)7v=dx(7ZHA0ljjBE3_3Qqs-m`9P(;cU}yZ6$y!LJ)Q~qB=(Z>bdTF{Z8|eyM8vozN(MN3?XvgR2n8#(2R-ZHj2mj7bFFz8+iO_f z`&o}LdHl^;ct4MuY*7>JkLzMGkU;bB{-#2sAqd?>RH!l*8ucSer35+2Rit+ava(H# zGX8cpjog5tLjy!Xv1ogC%xF6FR#p8K_EC&!B~{}v4xF-_C4G8*fs;t0-YXUX8|F!&C%U9ugG==r$oqQIN10XS#{Rjww}1)eV5R2 z7ZFPliH9+tqooXW-?HrLMtSYX5Nyu!re}bvft`V4V0_}PvG>$Vl}>M+vbJ_nsYXfJ zA3xDnN3zkL)f)Ay>|cwuNy4)wNu8*-)($(3eyvv`y!>PPg?%x(KThhQ8sqG~Rj+NV zI{zg5YPt3<8gZ_D&-YmCtpu4;XFzXl-y=M(;abZv8(I2w>)!dRI|&!gY%K#K(Q~15 zhwSML^2OJZUgI4O%P2Q&yDkLXH)+4;?#4$k1T|`hASZ!S3uimp z97bT2GE2xN{18rD+@CuF<8&-ZR(2?(9>W}xbyxvFlkVXMBu1gDg4pRuw)$)N_IOU_ z-m4r|z=DHFX~|$DV7%x6!rD?foRH%;MB@a~BkZc^!y2&P=f$JK#B7} zE(hW#j)h~4>)<{f)#j4=>DhnkU;K+3)}2f#r11WzK7yC?B_k}XuQ>+2J!;Y}tmiv= zX{4ggXnt$C2&~kszny_;HfXEZ(@GOFv6@ZS!GM@!fjPTmL;q?>mv)FLl<^w-)s<3r zegC}Cc68>FfB4L-TG4mxx--VjU>XK@&vMwHIS8tS2jf~@Mp)TL^puNkBGfS8b)Ua{ zWj~@OqZJuX5FbV6Ga_`k2eu>dfbl&{g^KH5kAk>7(V$bDk6P_H|RJ zFJHgnqP#F#eT)UUDZHsdgj)MfgYeGDx z%+j&(}dw_q?VVntQ>{|CI1C z$%@vq;SPw7t>N%JIF8PuoOdCfZW(;+x^E;eiW;R}1{1AvqW0c(u-Bo# zG~^?r{_~tcO0!d=UWpDaoX1U;U#{^v#*N;p$D125jz3b*xaAL=GstHcGYH(>Y|a=R zvh6IJN?XDnd}7%&_m_7znvs#}Z&+_bVEDe6?&`}M_h zwPSf8>=fU7|KpEza4{C>N$4ER2XxcN-~BG2#ccEQz#;_sL*IB@vvkAC}GUJJU6x^@nRVK|yU{OO;vo-yAg%)sVRkWQCy9Lkl?W@;ekFhp-B~%$%+w0?n zt#p)iSBdmN&zKfEf6s2**3PoCs89MeGphI=YiieM!-8|X*q%pQ4Wpg2 zJs-ZqI&$v8S@vM%XHWxhh*zT3DsAt>q0(_a5MCUe2&U$8x)?WWVQXYsA(4Bgwa9S` zedG3dmihZYWldcX4q11S!)6xh%65BObgxr7*AZNw`I(TQB#Pzyk(#M=0>$2_~bN7{{&9+{5rC3us z<@%*see4ibhEe#o0{EO=1qP)-{i$ZlpW2{1Dd6Ps6pT42kS@GN;B$7 z?+fa2gT*^aa8Tz8=MX+b$p0gQe)oj>9vG}c4d|mdFHoZQ>BHxM@&(wKz}j5H*emSpWlDv zm{~`Qy4hde^LJds!AfL!P-6=&nbHEC1Ka-Nr_ZJS?SJjxX@H3=syCn#Jcn??V!363 z?R`cpSqm}1Ei&ps%IE0V~@x+4ih&4JJ4*^ficV z3}wh(k%|mOM$8eReWqkjS`kIr>EKQgF>bmf36hpY5W$(zVUr}WpOWST3|DXtZ8$B; zIs_IzBo3lHk?;vNLSoNXwWOJ&E)#bM=MaPxboE7Ry{IORk&9B3zB<~BBsq~WIXX$x2J)E{c1XY)MX&+su~j1$$t6#F%$$GJZxfQ6t`nh{{wUA zs!a5==g*ia#h8yWelA=Og*f#`jkU<=vjGBf4}9j@J=U7Sm_XK4#`xp;QO4fw(EcUH z^!WIY5G)u)Fg6%LM=!W-ZBnpHz+SjHw&y7&T&?IZN9S;UrjXj%%aQeOB)kIQgn~SB zJ|_iJ9Fb!HV_mbKYwUw51h)2s#W4l%+Kp-$H%05+4pkE!jCWHJ;{ml;?KBg~afSPhu!MUinjQZhVz9@l95Ix!DV z7;WVY1=QC>a0nE&ye~UpmRn;DZq)j(#f{A&LyigzcBgHKqu0{Q6vXhYKL>-KRzh5_ zX7G>>uN3^ED8I*^ZB{JPi~7!$!MV0WJ9RT87+2Nr)d-W)qtskyhv;2P=2|Ho6?lYBs_G7lO2@wQ2Yv}9Piltw_?pRDItB#%YtG6&HGUyJuR%ztS z1A?b?9p&fUiN8t@PBgWe(B9?#r6D5*^3tK^cmreqbbAWYyrTMCoewo-%mQVWpye}V z@IpZnoRgVJWbbMKaX^m0lvs=NW1^qS;YXe3>;{um@YbRcj~ z2SeUst`T|XJh#X&oaOZRS+ecHq`rvEIv7DEj}Y&rPENPP)X zpPNme5bC=KBK+)z8P|(4wbv#3nnO;)7=%7!tCHxcE))0`a-C}wxrF0-jk;^- zIJWj%&H*77BCPVTUa`` z^v|yP?xhX) zT~kJfOza3SmoNAp{Jx26#{NeWESe<+R7#};N_2`OQw_Hq*~K_D@rQKKzMU`9$+P5J zFyDrqR3uA6cYXn3=_WVu9`^v}(F98%YQhtqq?5mX`9}ExT^I7TX6u;yuMd$N;BzkJ zD+tau$FRt*VG`iRNv{V&f@i^&5sZT$aXg&p=vp^IPJP&tRU|i6JHXGI1I^Z42>dZv zHp>Yz9^%?48%D;-%sfo0z*k_9WoR$tPOHV7)a~sdOHX)pEBG_T-%O` zvsR{eZaNoX$r*LGqhFIuC>&6;oyB))L||1$@u0s#jIuPxw!=-+LnLxbdOZAaw$<_a^4jsk>{-qJ*|?u9w<%B8-il=mLU=l!&ev`} zx(iwM&#eug?e}6CWV!Ek+-pAX*x%UaWN=77<6QdwM%gg#4ZK(zJIq&ahto+~7~Cjw z1WU{H69!b(GhMSrbcxI`jXM zHLEi-j$y#Y{F>y4x-ElCQHvUNguw;DEYut%9bOkiZ^3~UWUk+LOJ;Eg#!$x@&P>U` znH~6&2&u3y%;HZ1KNFWB}rHlLSd-_oq{?=j}2Kmm=VM zW}K(qL!b&}I&v7@{~HHy(=UP|eKu1RC; z*NPV=yj^(vX+9-&vnwJZl>>gbH$%A~Izi zJgVDHX)A}_nzEve`h6WvE;-tsYR2C)p4#n#{vtVe ze4&<4&0ku_ai`&x<;WG&m=n5Z!bUjx0!8rvEzXKZuh&LYrc zR{TN-+VVKs*Q^Sz)?`7h4D=SFO_8Au@e#HkxdXNnJ*pl)?EfyyODUO=jR2+~L59#q zCRMFhkfKHOREoyXCDu0{X5IXf3!4V6vPu!1@goca5z)^OxYvkku7>1Jnav4U#ZeH# za2)Hf!FEyd){+Rr%42M4U?pbdJwkuyp(Y5gNm1%a5kMPSLH2VLB)BhDL$7ABO!^v~ zgkkTP1R(>(dl-yW#6U|#+Ycsv@LYqU9krawR$~&mm^nQ)~fI66jq3@B+6Mm#!m2>8(U-OrysDWZAgSP(VEXNZb?{`_gnxZWmF5+b?B zEedmb`LcZ4BEG&CTo;hxFt{RPj4a^c7_9{`Ry&}0o!LI;hSxOvr&~CHaTihL=>J!; z*B({`GQo#|;q?I&{qrFmc%KXJX(&t`3eM+;O(}LyL+k?9^w?qLazJh1xSq<&wi|zI z8i!Z*%8Pz^dq{do!Yr>p!(p!?J#$vPLsnL`ObLPQtmrI7z3SM2VD)|HTCqunL0o%E zW82Utk9%~UaGcpteV^Wc-dhRNS3qL?yo`o}_C#rJv7mCQ&MuB*(q3) zw9Z+!HDQ{ylr-#0MweS2*Vj*z@pH{qGO47;tfQWHpgVd7*O1ZDOvVt|rA5e*FpRpv z;yJ8C`Gn=7WvDZ%e*PE1?`;%2P~q<%#R&V9g)$t)DGftA!*d2kwKnp;$7ek4o?|{U zt;2DjPIby)pX*i~mKP`>WsSIOLV%#^b1+by42Qd zxdG>8o#gFZBCVM1gM3Dvs(39fkC8!TZ6|cpebhf<%z;$sx*OR~Ac)A2e7Sac2dEsI z(ZAqz@I4wvw#7tF-0xn&mNK2RFqXTW>t9b_1`84nAaC?-<8XDF6c70n>z#~5Z4C_Fft8UB$-qeeo=L5!+kIpn?rC|C=b@!8GS+bci>8K zjte*-A3EVALeEhJKm?Tv4WXrQAZ0>>|B*qt<3X z#U4&U&IG-I^S*ldIyneJCy<8yYLAB?L{RD>RWN2OmuDE`*Qz{8B?snt9rOX zR>QG{uLv1QX8k3~^6V7bNd{5{ZHDeqHYmp%_rZ+r?K2(+M;Fr)HMfo9!!@Wk|MuVi zw;PlT;0F-4z&yWDPc$#SskHJmi^DTYaf5v>K3A=eoviJ%`zdH_o zTt_(B8Vq_~1gdSF%F`@>Biu_GDQ7n0K4rb9TU3Oy3`5DaTyO}vQ0tz+gSCuHKn@K* z^Mdwq?x}he^fE{-rmUwu96E_o<-?8IG_&e@v!Wj<1;UDcbZ6qnX=EzPNH7I9iRS05 z8lYR!_y=6~%a_mPyYIi}g1)ZN6y8oH&Vz*u;fIzqsHu4S-S+`$S|T`s1qQ_g$LQ|W z%Ut{*S$g-~cje2bkn!2!`Lk>$4x`}h4?ht8MBxU(eRoSmi*cZj-aUKe1(Wa(+p(X1 z{E^?iefxHE6u0r9<;?audehMeKsIRm``xzwK<|(7Wq&?oZ?|#1{o#8l;|Lf4Ui@uS zvVaZWy?PzBu)NPl!kfMs`k?4^z;oB=H6=#NXmDOr_+y=&r5qt>VIaYniRe<>ll-27R^mab&mFjDknjdQO-xegMyC zT9;90-s?9V6{c`JUsy|1lpV1m;JDW|ASmLqP}aRxoi&Rk)+Oq3#{J>wviD^wkYVjp zP^+Mg~*Bx0-a45r$% zmLny6Gt5}R()Fx-J5Sk{bCgHee`FcIT$41<@XawZJ59ZYb{!0swUnXGIIfXS_f*pW z@^=jb&N@zABc9)$y}I^r|1JROHQ?(Qs^qbqE{$`%7^&;Vbg#3J6frso|UY@oV$to35FT2^X2{fa`WF9+~@b3&iwTA zFLcb_K<{n(^Qw$5daHi?=@;(H7p%>VUa)kUH^=suO-BL_h%uuVY}C9R`K-`u^~I}K zoG&=5EQ>*_i8_}L+r2?g!GXl@FE<14q=4gJ{e!|j6KO{bn!OMIFIZH4V{K@ICm-gBY~TFKIqyX_vXk7s4#DcGgEA~O$t?=^o? z-FV1>=z|@B=+Mj2M_hp@=|$Qb+gQJR{hW?eudkeT=myFJp>0egcM_YbgT-*j!-1Q` zWEv?o_r71&fCZn(w7Mp`?Afzhw$4K>Du^jrdcs6PK#)NaiN5h@j}rmvKx-XQt6ETJ zjG#wl4ePpWfhE-Hf`?;seoqJnV9sE}VgG}e65l0jupz-Ke;9;x>zLN{4iIh33fB(p zZG!A$%ufS-X>-t7UK8;*&t}lpHKq>J4LjU659YrmvZtygS1X+ys+Guat4N}BNN_m8 zt@Pjm-?v`UV)1MT)K+cNM?N`eASFhfbpMQDpOe81k%jbJ0n^4b+{;jb2AZt!A%^u%X?2j7S{=hNrdcP}=X_4(_)o=vnQ!!;wgAH8RNFDN%e>zde` zp$pO440<72YdvgxG0-ls-GBc1XUcLWPtZL{R|EvFYWAW}qnNK($&AppoXdQ@M zH_=f9`djG<{a9pWa9Bgg~>!NA~T7Bc4EL=<0H6Bq;6A@g;RL&ntpO%!!w z!NM@b`3VD7C@9WdB&5{q)kfwVSabFkWTr9<yOZ6OvSIyrxo*$vzf<-XM|r}Kl!E3bYyWOhM9dByzTzxg zz`RE2tsTEHOSPn9>FiL`UXDiJB^^Eog=}apL7l(#CQx9$6|ZTUw6T^7s&l>F5_l-Lssb*6cRdr(KJ4s@YrD8EHF} zjzR|nH5}-uFC3i3c}ke&syfri$PTd3G7wRe9-;U1!afZG5Cs_|!t6k}#>|8vm-9u+ zea{NXrK6f-yioUdNQBC-*GXoc^(<=LL$`b^(J~ja4)!t%uOmY|yTe-2kZ?;Pzv#fO zrTo5ZdTm`#1R2mN*CyA|)FIJ!*yvcImd!+bPaIZ{(>jamS_YKc({O**lIzKEUuKuH z)tC@F3M^(jxE3gY*^YCII_#2qa*{!+?1(Ztk&WzZj%6LP1c%O~+*yt_2U@EbA6vSp z#<0|y20zK2Hph~+_xNz`kWZsmE(-FM>MY2Tt!yHbC;3O6oS9W*olnRl82xa*lI0k)#TIgUMi>tqLpWt*-DNHFZK4&R zkD~9rGnS|L>>8OrFa?tZI$^u97NFbU$essI2Fhc}O^gMs!Qpsr0pZP{g_DbO-7xzb zeHJ6*6`54Lf(3d>^beB})|qjE&~+ssi6--;Ua!3b3{F(9ofKJ_)?U)hn)7u%b8SWdQjXT#S?`n3X$ohJ zM3#q1EtsN5D{G-Eh!*G2r)3N1-1NSz6(|6}%CQ(wQ;p!(6NlAK>$G!NTR5z;9l~K< z2Zyx`^{rjrmg>?SJ+rx%WY@1jq!h%F=9d`IF~d3IxkYyS4|7=Qt_o?kaPIPN>)1lb zI;2SFteKRuFEQ^(N&SiCc-jBn;wr6(u{r)wi~<=62yNcG7p(09{;f`>Q%Time5*x@6B(hG&8(t@fnnax0sz_bg^oZvV zxf!hKa3lf2twQwNZ~Gc`=&ORW&>19W-Oht7=8;LZ1IGuVq@$8>)ESp0Tk|}!yl+Zf zO9=6-GL6`63KmRTK-(Su=YPR<*4uy_Ppy{9tUWGeve9ngs4(z{(KI zam!)1VL-=d^+q2yn}oHEEd1*TKIhG>X{}{+&_=hJE-yo!Q7G%!{D|&5%VN?2IEz(T zmh6p&^T1%cUh*24%!`xU0MbvoBYnIZ#zZ=^6#9=A> z{oh+&btlxbF`mogsrv^uIJ^6(wVgN5Zh7+A2;)sTS)bN!_UFkJ)WYa-Afk=;>^a*# z@9wZ$?)94)*FfFPSq1@gqTSe3zitDu)S<4Z^}xaJy`Pjx-63>PDq+69pVk8qJ&Ha$ zo*gRY&xReT{qbZk`k6i1n`7EGpxwUP6XSs>)vfvL`h9kA46Jd3pzw}EI0u^VbTk$G)RhJF7#b&@i|Hso{e ztBB0jPL4>J-nExNL}0nY%%k7noNM0YKCT^|6flkY(4ePt-|IkMwInkdja6nvOE~et zTCdv9Do09iZ8(E9q5~0l3kyATDC{1{smsFeQcqq2{W7bD)jEO9w+`boP3|r{Rxefu??HD+ri;@G#))xhKaNXlU*+R-1!(by=OA;qM>osa+*K6-R zPFSi+%LoHzTOQeDDiN?mYy+x-PEJ$%khO`KHy3);Qah8^A^^;ma=K1!|7PIl&5n^CP$rF|p)w0X{#v1Qv zj7hqDRRAvJ$Xd!?jiprk_51EXrd;7(9d%xpRpYnzGS%{EZ(sjv1nucB-Gr&-AN8tF zey{znwf_EN+g|_g?155t^0JhEueKq&&XbL9ed-mHD*vgz)fL*hA6o4o=bCfgp8Vi2 zt;<1Aj)n^)O@XNnn60I8NF`IcXIIF+0+DJa04W)s<6Lq}}KeIug6J<7op?_RL8>}nxXTg{%Wr3R5xv@(k_H3vFz z%_2wKgjB5*wZKt7*UJ)htndkNLcl^W!MIsCtY%mxEGU`Sg!fhtO7~rDS);Wk#BGuB zr+hv$c%Q$1iAbUpjajzrxLKhsZB2N9iHvqQch@WqS%z@bLJ+vULNIwnB(JoVMt8uM z){GW(1Fb{LVnP*l#hg5QCdVvV{jjzZz07nTzK2n zpFh4Y$L)LdIIE`XLIz13^XbET_DQXZ#-Lpez6V8sRt6C6gr;sUKn(yLh#KiwJ77x0 zc@PbsWi;VA-*5N%^4&W|#u4@TraD=yJ3_%;zoL`OwW&HFtQFJ*A)|0m4`M@_X$+{I zq=?2H&)PkzY_KA`ZOEyKIpSF;;{Zqp`dbMu?OFu9-2TOoSj-dVBv@mSJyZMpw8?XpW)c7*|jk;brO^vCqwJ^7Oj4Q-yn&oJk}xL zW#im|vt=M=8;O^WasvC$lKbbNXJTXpBIIZ3TtMO(q`O3&I3C8=Oevr!`pZs?;oOON^=r*fj7+bUALdtoBaR$M!ehZ)57~;+lkdJG zv=?)VYvH?O?A_M*+wZ?GAAfnzYci6*-6wPiA!jdNvK0)T)r}Y~ao;DjwR!fuy#M(< zYf@+3C+ba~k$t$Z_001vJ4<^4B`4dMU%z}+;9kD}tH0XD^gZ{&S#^x4YlK7h_0y;F z`iCF3XSQ%0ZIg|-xAUgQ9?(MW?b~R}BbY7V%8zJivEBE}?YK`LKW+DX<+^&ljq~d- zADCf#{pw|)*W`3Q-^TxWI~LEHttGDN9lS=M0_TD3zayOW8%w&F`PrV+hxZ?7#FLu? zu34Dp?kj)=2}$SNtpz>htKZg`Jh}2yQU=Y80YLp|y1*KZljJgZcJvPSi+a0UTY zr~Qe~Q1)?+Ry%MGA#dR0faRBbHweCM=YfoW{rXLiImw2*yL&+&2u|_MZS<9f-1z!% zU*5g@p7#hn1U(E!W5~a=j>Vi{Oc*nu$5E~lfk(oazdn=?A3h0rvOW9X{&)V}77@jO zhD6a_QEkE+#qETiT(W?hEk0T-1_%raL>XmO4{_3BaZ_;o+}_+~n++Oa^C2I6qoLag zJU{{7nGj1x-ML8GKKm2}|DimX8Vpd&}jYvGeaFRkyhnzueY#3~k?Yj_~(bgt1#D|+`fkWaS zDE}JdN-$cmP%k3HfRsji7%wQaqd}4LRR$9r(lAO^&fC@SG}a3}3(}|>QACUl&K@4Z z>pM@#;t_HqwJys@$UX>T*?En=5N`QLlu>eslLsk>P0Hfcm9J6MKNFeG}Fo!=Uki znxb{ld}|KSXSUWP+Hui144_B#VPmhh?Oq;K;{^xUtqh=xVE{#)Y_J>>+NSTiQFB{* z8xPdQ8m7(whDedzybKUkC2S(ncH1XeZb|1@V(oSQt z#rLB(Y-g@M3NmgdBlevP+4EV1OCw8n$xL%NtR?rAYmcr2Q>Ybq26RL)!)$@rtuvbi z#yPbrh#=3P*gy`Wpg~jge35d*i?r&cBNC#1bINF)Wk_bu2NEUA1JA)pK@S=pDmQQs zRl`C{vBOkTW|3udh*(=unnWuikv((m`(6gej7S+~mfHo+2ZJL}BMvA`yY=9J zi)$f0A4ce0uALOhnM$Lz+O`y>d{g7k}L z-mNtUCr#*4RmZ+G>78lHwYG}Wz{eToVlIH-6gcJD3#ekRu?=W*hv<&%%aKt$6le4o zWe4?t5rj}imd>NdzYusclj5#NVG(pvaJnVexvtT|7+W%s5G6Y%OZ2n$3;G{5uylCL z_^#3ztkZ9HmTr$px)nMq_zrN7a8S<6WtT$ z3@u%ry?D+i9F6Q944znviU23(<6(26CXvTsd}vGa^4*&t8WKF2^n%^415Smz+vl__Rykm&W3(JZ0O0m?n@$MiI~+}{ zoe$eNVYr&?h5cH$YvEonCvP_+m(LHuu+6Z9qZ(vO0e6N`opxCf+_XeMZ4os2pqf&m zp;TLVW}rL}N>~?UkQRLRMp@<1M^UPf7!_FVZ!oXHfaZ>FB05bQ)um2B}8Z=zF?U*aBS8 z0|Z!hd?xJ#n{UCkd$|O3matl|UQ>6@lnbaYefI1HgRW=xHEvpqx8>*e@3-SZ=AUk! zF{zWSHJ8YMqLmF~&F|QA`5CW6Xz#Z{nIGoT!QPX;28yUz( z9y=YkYkuN5AuE`KQ0XGB`}xxs_7A7N+~)J^!#AG8K9TG9F^&&t@pX(O9pu~x_I?d` zKOO}fVqEifyH6yuZq)OebB4_C+yCs}`-_tdcGnq>1Q=FcV~Yz5g=4aaw%i7-_1|q3 zd(k9gY3;_fquEVPP#6S?f()4<*X7V*Yuz!fsyi^`36rsiX5Yq;AxwviC>J^0!GKw0 zgqW1VMpkUxDkH!fI0#-=FW3^90M}$`_oq?p1zaQ?3F}eD0#SPx^1S{UVzLo89s`@u3 z5kZg(1PM${C&Klu9NY0A(w0Z{GCN?vVp%*SNfLz%o%PE15mB2mvq9MT9F6APw~6l; zwZxfc)q1rw4kJ@o${62sjf>Z|NrvnMyD_vCEn5$*15t|uEUl%0o=O?kxUw^rgSGDk z_YTd-t_)cRR_s{DViOat){_G~W^6qQ`Z3j>!Lj2@r(_so5+c-Ib6NE>q70@~a{9OQ z=;5S5&y>NS9t4VYr=ZMK)6lmX^evRy8T`DC@mbHddd~MSYDYNdH1cDA%>#qDYvq&& z=kd<;a<7+~d)dyyR69&3VQF;_Q>FZopYlTA^VIKbRm>ZD*e zpOo!Y$;dP%=R*VlI}2&m^H|+`Sn|tz)Ik~ckY!EgqxPSA)`}#`!JJNp72{>A2Fx3> zy_TSF-;`Yag|d*?!=x zcH2&nJUOzra8}tnv5@=-4r+leLe0DweGg{IZM}sP>r)-vOdGBxdp)yMYu7Wigfki$ zySO$SJ~Ae&4u7hHEaLuHB!f!H3}SOFWRnBBl(9Wk)@Mq#=XWG`BG4uz-Oxs+twtqH zTFcTiP2-+@U$JNA)Z16-V(s&__di}`A01|+|IXRQDE!|bK7w;Mv6fQge7r84(n>ur z*O(htOX54Q*IMtrn%UOYoyS4Erv8+8E|&BmYX+3fP$!D<1L0-8SJDS?)VK8O`MH&D z5A`CF(fS&pyzN*2I(TMORhZ2V*2cJM`WepZrU=sWmZ?+vFiXydZH&$Z!0}GO+0(>_ zVO^LdWMzkDZ)(X^%F&03Hh(@u)=jP2WGA>E<(QG*u~iwPZAWwbu8qhtTr-HAO3nrAN2p{X;yLNqzHkR8 zv_!0GlG2I|CPQR;0>75CIJTBB9Aeex>wQ>VhcStODIC2=^+cudBgpQ2jOMnjLlxJIEVp$ezX_6w%7|mD zaj%wQgS}p&Sc^(*VDMMwb0UG>hcIHX7s4)J}*L?eV`200V ze5@D9&b)nwE(x$Z@DPbwgJTYxfy5>cgd^9fmjwjLQX~5?vK=IA6#N!hQ`{$8_T1iu ztpVAvv}lL3%^O+x;k*KhsGz`&?SpL$fF~2VutpFMnGT@R@cVN(wm|vdGdf1wxIhjw zO@!jcx(G;ZQ)@6fQZ;1nVIUM-8AR0{0{R7Z0p#gC4d1H)?^QWR)Vp4yx2kGXqpi$X zyB_jsZEKQ*8k*dl)l!n|M>>}ArTWzIt!e`k2tn%_+Zc9K5{6#`I-5-TKv-R_=@_pA zQ6Xia=0DnBUDD}_5|%ZCsgbQVKS7LplC0@YrtN_>$6p-SYc@}Yz+tI7nLE0T>6B4N zIV&ieS@LcS_|>$hounDg)=IZO%HC0Ya@8lt)L;EI?tidnR9{+44{G{-NgJj9o->uS z1EdDJyelPbwfvW&;)dRU!%11`Q7ty7T2g-WlvPdo=Xt2;vD$igWAfJVg}=2l*d@I zv`%`MZMAN0(#9^bWAUEZ-J6?Yv{v+Gz0ozJ+|Ad8yrWE>Bl&@{MwE9?#NYz38@*vEz6^x8|*V2S>Qj)Ec8HMRd1l$X#7D6N( z#W1_!s&*iTWzcwnvQ+eVs&%*6Y^d3}pdw#d!gTHhADsoupg@t6ikGu+^y05$T~bMi z6z&6)i8QyBCHe$`(iu?*^qaFojo0ORO+mG&&4K5Li{|DgnI8f1y-_XCSHO^7y~>An zzbPAB!@`b{Wz}6GauIC;B6a_5GxG5nAN<2T85*4p{|va$^XHu3M>S!8{^}*i2RH$K z$2p0EU!r#%vYLp107nid4w=la@86dgdl)D~ zj2rC=K+)gkXafK3>pk1ipzer}Hc(sxm%n`v&?eCPyUr8m`C&U2H9mkTMg8!$pwTX8 zJ05jO+2d>qvWbiE{V%usGNIO0kxysuyuPk-1lVF>I}fAWwbEdLQ39q$M32tj)G}rJ z54A)WIS=j+xp0FmRQQI{VqLTCk7|k?@ijd4cyJab)^aK=e5R~;W;rAXo8V49mz`%f ziiQz;QcIU46{}q5<#)78Tsqb&p9`TMSU&yDO`_Ov!__!OW`nwu~5=+ zvg0;M`PUN8?C2=hlmTmIb)3B^TC=3EuN^`gjBXFcn1fFrP~^-{_XZhUrKxg4aYbL7CQ*G%pmp%2DA zkjG8a5R7n!xunCt2xjlk7S*NFF$EEY`+LuGuf^8$KIdLhn+?^wdtJN7>+B$!?5J^^ z2)we+OiYy7<5$5A_gZhYq~7zKVNV?7(E9!Zl3rP2L71!T1GYuDiLw?zWFv4Wopk?| zYwyAqDfe_9JzsXl9@!%``UjFvLWl(zR*!0R0zCpghgHr2bm^D(AE-B;Z8H8$xg8}s z?4SDa1LY@l-p5~lCQ=9IgDeKD_QmU0)FVIt?sw(5=~`wnw{`U8=bty-^M=nBP}yhX zPKe%^57K?OH|QvQc2L$8pZ(E4^-qD0Y``;LYg_2;(s-n@CsmNa-SXgk4v-f$SVHGZ$H!f{4DCF@zY@jlqZlTc{%LR>m=(w(xra2B75-Pl2x!yNaCwQxgdbOe~(cQT0&OVk6RUK4O% zjAd0#K1)dEaD2@Tz*yv}?>3=)91E5=Hz#$HC=uX`>{rcw z=O82;I@&`^=o0V}yx5+15Imwa)Uia{rhqZS?g?47GEjhP;4_@-`HN>!<16lgBeS;A zBbN2QYm^P)-r(S)#(64obdZ77v49Vg7q<4F2*Nt^>pN*Fhi!yg#v1Y)cCnt{q4xsk z_)f>vX%5zP={$O=lC90z$6fAm_xg2))j{1>vR8GjXr_7__gn)uV(k?v14t>>9GB zfAYYVkQdg7;&+yTZF~0li&vXp6Oet>tU{mA21eVgO=iIMB}vidD1xU2tzrQG{cf|* zAMPLNRAOZ4!wRPsHqFhms5J$PFTVTc-FIwhdOk<@jCbS)_(tayOv6}Q$k^g?*EiL%$$4E!n;mPeJfpC8Ze{qc9X#^jUGL;^_m77 z6>RC5x|6bNZFL`{*0Wo!WJH4I((0wqGTK97QaTH(7f(}>Iabj(LUnpSCN927EWfp+ zgT1H@u??9YV70wj@nW&PzQfuwL8qJ|_dU;QbJJEc1*=_05#2p%__V1^nZ7FWjfD&W zM?5>m$?wHI!_j?seBgCZfJ{S31~h6^SqCau+1-n~?86Gj(uOuN(XTco|Mkmf_I?6O z?^T8ljQXfUy^s5!gQ9j{(jvYQ%26`XuQsv9xQi| zasV@rzDe6{-`quSJ}5BE3&;k(p_m&4Qk$~EVm4%gMdRD|SaT<60i9elX~*>kI()(v z9?yefi(+poJ44q>kCJ9BnV1}HpacH90J1D+B%;=FEcSv)EARx5BJglf7N6+Rz5b|QNw&@Td1}Rz|k4AA}qmL?x?l( zQ;{Ow!-fQJZe5AvJI<(4g!!H%3rj7#d&wTNsZ4u$!{yprrqD^LgQ~BcF_&vaV@OEr z==3Qv%kk)1Jl8yBAOQoTQ8YlMP$p0mI0?i?ILeX1obrAhg*Ov=Wb4*s+@!2sJJaQS z=v)LQ{|d67c?cwU&&GP9!&6#5d$Xyd{%6c0`2H}CWLRB$|K3sW$8j)E|)Jxkt`Q!R@=GQ@4-y6PvmI388;Zgw`-WjBjW9s>_0T%(z zXk%tMxCoZ)bz&q5Gvo@U6*<>@PPJ!ZvTc=C$5_uC&+RH!`RL!hYE8jFzg#Yf^l{*I zQn?NETn4`7^uT~Y5CcvjkU7p0gG}xyR2G7zH#fI30GE{KltD14oyii~I?R-t=p5x!XgX}8C$v%oI z8-ZcpNsmrZAG?O5gYP|j4WcImNl}+I3A&DFiTg%ioTV|&iV8Jxzd4T>6O#ky;4nBH zgU15d3bd|aFz1`vzG)5+c!guhee5hN`i?Stvds^kn@C$A0g)wM#6K|?bqLu0{TKeZ zf4cnd{>T4%`9og++Q0MfmH+$y^Z%U=5+2VZTmMu#&LjIZ;ii|X_Dwj4smEORFT>v! zp)*{Eg9DpkE*_G|CicxqYsk{la(9s&^1gzjkVz52u8qKgj${yrB%~+G9wt$RfWW#v z9;3W#I#?%3HXfsl!C6_Xy+Dgi=@^+n?+6F8z}|+#3TJg;>zX6VAmAwD{t#S*ELGhq z{yl;nIa}HYDy+G(quM0D4=F!lKGXSct5}X(23ccYN*2mN4Rq5g2exP|RrM&Kah!TOrd2)~RNHoMvtf^x%@g;{hQHq|2 z68tp>WdN5v>cnN8FR zhmdy$s@J9V00N+LP?!PR4r4d(eGWQ(M7&LK6ny~2VyrAVzd3xyo~+1D3U)K8_Js9A zQy9C8lz>^AuWl?qb+Q*4BR2sLuyGO);E0Yx+Aa!!998Q|;}Q3-h^Gx6LjzVhz0N$; ze1;{nu5K6PMPvA-BWxjD)^uLed8j3e>}S=8mfAD%j^r9b8xBZ^0pa!A?_T|lomIU4 zjlcI_OgOU@a<2Z`cKf5~`lC_o$f*@U!eytaD+ehdidQS7{4d^DLlAd6tpDsYW~&H& z!rXWLX$-M9Zy#$yy>1icGfjgLKkXdS=}Csp-z~LAiq|1CwHsI4-C1$Q_@FG6U46sM z{9X29UR%nVP~t5k{7qim=y*zq^=H<~4z8LKuysd#l&Lnp(}^$L_{it0Cz6@uJYkAA zpF#KIx+TxM>$;|4ZMEHVYJ=lj>kuQ?J&r+#kewyvw=R)RY*PyluZwD3u=Z?w9dyCS z8qLwQmgnjaa?A0ef4!#rSgQ=u9Cs}#Bf^*%vXVl*Sbvq;v-4@pPF=TnQ}p#2bK(|Q zV<5wh`N%wMozeG1*{y>y`|h7*`E?edX&ptYmpyTo=P<4@@1CReJnME>tuu{A`1p=vTlfwXL=whN{TFZXm+~+_Tl#=s}%mf@+?=7s{vql8J%-wLO1DO4+*SvT3c3lVFhCk$`edYSgXh9=h1dT%~GyC8g-nuGt zT3Tm)WgrP?3D_LTS)x+4ItGKTYEjq{kR5co;^bCt6_ z3$k8XXW`APpPZ$2>3zgq`o!bX0V-_`n$~R}o^gs@oOXkc zD@EloK8FIDrLW)7Q7mhyZ6mn7=+X;;ytrd0Mvi7K?M*v9lQR z&k6{duLNwn)6~�ZESg>mqnCse~X$pW{)ION3Wk3v> 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


Yg4|rUwy^DDP13Wq^Ie5004l{KzMj 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

=s*5?ZO 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

<9vrTK=k2Pi{s!aBW82tw?2Ntzu&!6u4V{u zffa)KsLW|*G^?chxHbalOXkFHSVOujk>FPZbq}>jJy5{k-*CK*4I7{uE2%0wmX;$r8J|j8RwJ)NGRLRb5jpZEdbyOvunra5F(_wc=4mT2QR+}d_>RJmsb z_BMH>kOdQ{1`$f6khJ^KuE*m5jxn6aPFgx8i`Yzg1(Zt6>oFkwZz^?zi2)Hqouyv`j&5l&*N8YV2ai4U z0Irt+Pbkg+tU#a`bfwN9k9~8NKVUIa>QRqiCqo%dFAX^Xwuo4Qy;j!g1| zK9^FdMv)g<+msR`G|KTARtsp9*5n^#~&t_QrD2b2N+#yG5`f z7Z&?nvn0ep=NJX@&_3oLvzmld#g(d2Zo7W@(!k7a?WuGBPmG z4z8EVk{_e$L*nz+^-}{7A;LVDs0BB;9;1%CqZ0FMI?_bSVlp6QiJ2VK*35Dt%;hV} z6+NRs#ettU*}0++O>#M!!NNvE{9crAx*c2x7130b%*g_$)UD3Rd8o;yYNTKs$rNKy z>XYgF!&slQp>q5UMrnkU_WU(eX#;Jjf)CPLa{7kBnrarK&kszOiJG%2%s%oBFjcze zvdpD>9(7zAfMopW1&TYzLdFE}oM=Hn$Q zj^Tue9#!1Wng|qrV`Ouh>v=F|U%tIkx(MdsN?p$jGDD42O_g!*E(Y9Pgm(X?q^&I)GH+x3KF*V&R=ghO5 zxtJ3`F$V2-Fs&8qTBzekUDFUMB0xP8NS>yaT7zc}{Tb^r<_Gi>*-VZgHig(+86T|# zNv^q{B_e5~=es$mutTbO_(RjF=W(JsUEo-@1I|1idpjUy4%xn1{@ZxkXpgk?qrtt>cYeTbj*mFzeEwJs5=ZnPtv~26zM1_hnrg zJ$dN*X{gcexW7XzBHf%gMEg?MhP zwM8?s(Q{dSE@joX%@C`A%ygmL8@acEgVyKpG?eaGjiA|Wos1y5?@u51(_Wvx|Hs3r z=#O&ZjBAM046uA_|JC27`j+92?Rx7!?(Y#4%iX_b{I7mbHDCAm9PL;+${mvkHS<&IW-D(`oF{`b?Vlh1+I+)=2h`kUGaQoX}cRfD5^O_Yu}q-2V4 zD}|$D4|Shjak%C-=h2Z*8I}9PQ~@H4scr@;BB7oW658f@0gDz48cg!h_NZ@2W8x4L z%v_apLyA3$YL8X~d~0eR{zg7q)DEO@5|t9w>$oP#?4Q?iJFHLYbD}<7)Y(-1#ka0c zmzfjFMRqHiF#3j~FP?l~FUA+uBuVSpuRO~zP)SwWIcm$Oq<+7A`_R64bK%!DguI8UCk*-!%NuMvspRMPoP*R90tVE!<`ZAo{uC z{4~wsA}ke%hT$}Ka}a@NnyWL4^H0g${FJTe+Z>j2Wa?+-w;tvI-I!mBXuyt~!eFKm znY4>t0X63wVob!@Hn3wJ5c?pa5uOKZ7_Jm6V-5HG5`7l;V(NS?YOy{`@(COO(aHGm1F_&)$ze{^Vy;&j8B700`pw zVc8qAP7ta4?%Qt(tneG!@_c#ja2!NTUoFoS+ptwlM;P_Af^v?v8F&BV#3py*5aew~lXI=xY4dC$4-+ssI0PwUqwneTaD8?9T zpMUWsf5UzdO~Unlx3nMUMxHG0H|Bbb7({r{pV3}`;vawfc>#k5)^A1LE`TD|z;Ax@ z8{R{VZP3CI6~||crOy_?%=-^0o$UC6V@>1tXkpywd>)Ev80;d=oEn0ptKV(Z-Qy$h+0yV9&71?>up@*?$Odr#uj2K2V~Y{z_xY8RR{o82S( zq^I15bFSF_spapss<+PT&aFaAtQAqMfHphr)5&6Qd4Bb3D6nZ|c0mC434xWrI(-F2FK&eW4X$uRnW?-2$w~pf92d zgXvNw9fj^|vr2_J?KsgjCvsX(p6~RrKmPS;fb~ zx3qiJgUq`CYyVvjSW9c6jw2UV9cATczdm9RbmLVHYj~1!yX*gT0ahE02ADNxm4G!@ zQK&m3`$J4;Sn4v1yGafJk2%lqF28QPhFqqa5zjASk^p_GF1<6D@YyE=9@Yp z_C>};&k4$q1)(anXsWcP*%S4}`B}a88<%sy#_v$G&N*7Rd_-KDctL53%5$+$#jZ}9 zjMQdbYvdKL=r60eaH_{eU!gtWIi6Xxz2(VLaWf@@a(UNhM|jX4081Q4HCyj_TVY8!M&1YF^d7!us=JXnDV!L}6ji$*6 zs-0pizmpZE9qr&8I`GLSUL1N;jP0b#rPgDOnMS14QWR_AU`^4HZ%!)=lBf|3<^%cx(MKBp%kLOlaPE+1i+i=~`x+5C z8MK9Y+{+g)U%nuS!Ed3Mi>M`D_#1tCaej|i{d@sMa6W}I5JEkyJq)LnYgL}R zd<{S)fa=C2u>kNu^~GFqdHII-1YiLD`om8@66j)%L(~-lN6c|toNB7$|yO5dHI*;zYttT4eMWidBG?q zfG>oZa9@!>jPv~HTBV^#3=t^YLx?QB1RyQ~4rgZ<>4zVG<{&CK`W-Z4)Ii0Qz4UA7XM3m<%$~ISUP}BD}$`!P- zFzTKLkmVe5Xwk-6%E`|mDD9zMzrSf>iE#eF5fJtt*EBoS$6>5dUd^{EtwX0JBl~-o zXmLK|p*gMq$~kv<&K$>0rMxoV*5{9Ca;2b_v{IRsqp|@f%vGv&of@D`x!M)gUMWsT z8O$)t?QgDUut5wqm5aMyMGl*8L24-jKIxf(dn%<`&=n--CbSuVwbZ3d^Jzp^m9JW= zEfbMsUxemL|E}EKsRQMvE!X~Q`LI#SFF@)I0|{cdtOIA6j>r}bwFApqvG(|2E#JC4z}^1uA68Q8ri&zWE87QC+hfoyf*=#j2x{7m%T zvt#dJcrIJ6NnUM7V>xKS$)YcjQ<~P)jkb@#TVECiFD1(7)YEBFw=l%33OjXl5_#KF zYV;CcDQlaJm7W4lXn1+6$dbs zHKvtzo1JnQQDgLMXMqGokX80Zr7$GcAR#A!eNcHrEtP#L*Q~EUMvLwV#F3QCp|(Sv zR8c@tdC^7Fr1nHj+rhc6F?e{haRDvdq7%gHF;a~}x&5$A|bR1G$jA1cuNBtJADAI<9HnwHp_yQ)6y%d`2 z>$xL$pH&*cW7FW5xjjQYbe+!HG!kBKgV%Uko%<7pOj-f1sIk|B&KQUN{47JKbPqP2 zttHzL(w-yS`$IK41jl8Q1cO9viVK+Q#IDQQKC}x;ILT6R+ufFun$t1Q)e%MmD)L`bTd$edH(O*aj6*v^ zM9q_dgLDUV=S^x<|Z}B=96g@;6mhAw%Bl>|hy?raNO{XJ`O3{fi zE2wywEH~-T>u6*OfS7CXgG4RuW2))os0}DqS=BJO{7wO~epN z^>N%ty~#1wJud~dH(q@1bFAw<_-gnX*YTf%TSVLO)&IQ6gi+*59=y}-81iL89sw6cSu9Ra8# zSl}s+Z3)MB@Ds}lxUBI{_TRGw`kD>Y`mJ}6GXiY8pav6jS_cq3SBHZ?M4+PmaZlQD zbIqGQ^@{Z&dy(yJ$y8dOXiXhz)Iao1RtHL{<{!s#c`y1-KGlpG(mwjVQj^MYH0Suc zbmF^mgwo?&HZDqQ`0@G6iFTG%otn}e3pXQsy*h5w(L3e;yzf4ebZU6q3T`wX8Ve|peMGZRwwauo| zpD4_7?;=HXPQY^GoVY})ApwP>o6N~_4amqk}Jl2wwGYT=Jh=Ag| zUDQO)5{OdnsQ@V=LO1(&97`%8q`W(puVG!m!rWNwd+yvizLU!6OiMIbRH<2%<03iw zGxn`={{Wr=N|Pg}$V-*zQmc)poK{5=V6a1236x&s;IUMTpP|tuWB_bO=BX%>iX2%) z4+e@XD93ff-&8}Ds=i$a?QtZt_xnxNiFHh9TF;YIc9ee8c$y@EuRS-@}k@K(S!SD zIP97C`t0c=o^6HGK1prvjo_&^r zodIxzeepaZEdg^FqQwA%pumFKi)R_NKM@`NY}psA3DAi7>;w2NpOFRtrC}Tw=KxT` zXN)t@Q4#5*kP_5`U%%#YF-CDrZ2QIMpL3o>c^E`x5xKFJ7f*OZzZ50BkWfnMb=^8%p6oMVX4b%%i=eIy26LzcG(XKx!u4 z8}wqS5^GyTmGN97(u(sj+IWy^GS0a<+tFbG2M6bRfbBO>3qGTR;=q3Rg;ee)P&jkm z#q$w#bgUT|zqqF;T?R__-p&Dx56q$HGj2<50SG-^F?vg(CxA?>hi3xY@2*{XXQP~V zIw5w-<;LGJAL805-sJkJ6<`4rk6z49MgKUV%lMTV5SW7t%(kUzItTY?Mrovn^Pjg+X!&wvH822zJ$r5jy zR?hz@qr!c?|7O#af|KW=5KTH*fuDBS*lN*F?&qjwyXkD2x(0ZDQ{HELRgj&t(`@Eu z#|@obSDFPKQQew1Iy8a0h?389i$Vu*og+6j#)av?ZOxR{Kc-w!O(x38RP8e=*_!5y7pO}ID_ zH@4T4VKOkJvax|N=yVdn(cFW4v=DQk0qcnp#xZEX%x~RFnG(5HTQ4wZ&%;L#?Lpsj zUfg!x_wan99rWs_WZIMjU3A@rh9?aUgCx{01>hYRfq297o!QuV^Y(SkQ;D2W=GraC zV!m7|jJ^OI;yTZqvszVsX;>siS01vwf$lxddBKu6Dr>{iJ_h~o7Go;}SP((lqfEiZ zb$Cmvc~{C$QVt%=!z|~+n4)SafEy^(gQBaLBwu z?c^9OI8s7UJC(Za)&`@FYcM+NSR1P@&$CJ#f$A7_2FpCKCh%fp-;UaAuuH z24t(FT)K6g^F%fDl5>(u6>hn9-nehEqbRz6p?(?bG9qnJ4uneIehzW0t1hC5f02s~ zDm=zHqFBnm(>MqH6*Sr~uAeX9>Ap*cAQFjV&`Gvj*H1tG$Q;S7jct@Y392lfU**j0 zSoY;lfBI9c?FnNXxsmr+BIRECY59A0?l{i<=WoAdd6y_b^W%@A?;<}IB~bt<@Eani z|MD-tC)mWifk+>Y3zb|r*^ti~qBQ`A|N4jDlY$FnVVv)WA4QM->Z`BP?|%0?Qe#1t z#eDF`rM<|R1>gj&7IQA>u1}Za{OM1BRmUfD~Zw#mkpGE^g#XPzx@6WoI?m~@1f8BOkjof0WiKY{rFek{F*te zSgX!V*Tr??nfdBhU$e{&fEOG#%3=MUG+A65jNs?bUvT_<`PG-{HR;7yyno-|xZi%q zagH|NxyQDc3sA=A#miR&{P-P;#=k7TVLX5WeeKdf%3*z)E?>Q&(ksTzJ?1&9P!3^si1d=lC{ z)}jeXW2|jARN7fyonr+^>kYm8x^I6stRQW_twzdF!Knai?m%i@fmZ@hOoEvEJ_uM# zXOJqw5kUMfmu9FY<;g{arRJaJmZ+{07c;$>n>tBJdOx1=ag?zs?`Nr#;M55oRQ1tm zu8R|1@*uj-=|M`kj1u`isn*t9sd}6Y4Q!{5GSol*L9K~i*Tj9O(O5;IQ(dUS_*Im5 zB8^qz2eZAAQiMSyLW@k~ZpqH z@%?}p#$m5$%4E@^0IU*n(j19}@66{YY4){*va-u)3|dGDbU}M7iolba3?m?E5ghHY zk8a)8oRd-w{D=@U8d|-fMWq^?d%1(>-H(O9=BQ{{nH}}gV$MZq%sdb8JR@6j3gEiW zLOnW3>6fajxqIpeSUnyqk2Xr&2n^<8b>Gy;^y{_5+j&wAW!=cBIfOc<$4^ALht4>` zOVssL`yg^wwPt0`Sy8fv&yEpkao;k()!Qnn5XZGBiLI+)NR>Ea`i=*W+O7|6J#*hy;`)#rmO6+F9K5x}B(ieg0e+VC>T&)$g@T0N*N_{FsGe$-o~56D61aBgiq1Ra)#6?Q#EaRYXxcB&Us_eT z@H*l6gJ2Y{f%RR_R2l|g_ea!ly|`zs0IBbuF~3#$t~&!vd*Ef5vsbps` z$MzSMr$PQE&eLssg)%L}Xvf-yk=|XX&H@}FS_((s;^2F`fXL)LPJnhe5=K*o0njPd z<&tXvoa07L5U2qEyquHtVm}|#jY`m9&V)eTV5cc_S{L9wjuPtP*mgt@b2{#sjPy~! z65}c&WAGr&vP95^w-)>3Jd=uP!Ola4@XnAcn1Q1*YMam2S_sFG%8}WA!n1H_5xKrr zDE?D)w582dDlW%vF%?<@dy!8b4!wB_dt@-6^32U^JJ<$Ewn03vW8ONf>BM91DkGF& z5zcLn_w$a<4FSnm*EKcxib}5ekZnF!PxKV)*uDbdD)?r5pk7lEt-DTP+1K2Tk^O&~ zS7evS$E!7XyV+JVH$b!Kxp`&L4k@>ED&J!*4~-=mnh5BhT5f1^*&TjpHdFvl?iWhS zX-yZd>s3nC&Q7J_x*oR$$dAAK-y#>b|E&kY$AC57#n%@#Wy2vnL<9YMHEzlZ@EyhY zN=l!Aw(fi#M*-X4M*t%Ck5OK25rZ;oWUPP5C*E4oSKIX+b?Up1dVk`7pK^}$(d|fo z#WB+9&#Qi4gV7JZ3|8*`@vcuNzUYo~JNjMTv)f-kPLGd$>raCA!DLcai*9!|27$R8+OEd4I=FxK@yhOTKN~{Xm+DY+kmc%_YOt_>AQ!tTeiV_gLA;EyL3NF)NFjLEyfn^Wl?@1 zO4vx6O%!NGKDjvR^WZ*>b}(w2;_c6-fT|{4cFCQ7eew3We?GMi@KHj1B)k6Zd`Ka( z)SQ@6gRj_`mfACv+9DqGa#6hcd9pnh%K4tF2Yax=rbkE)n|P+UsHbGwZ>gee{cICV zj}j9{GN8R(Y}XX>0%93BClv-(x-%&CdurP`uqIK})`YQ7Wuo|BZu zTNtRx+vG4JQ@iK-J2~C@DmP1t5o@Krm>*s^OWd>a(IubJ}0OqmyV8tc&Yw zD+wpkk?}sa5E?{vcBXQQK6#@WsdoC|r5c}!$2n)jRQZutK^bLE?mL3+h~YqJJGBN1Gt@#5KgVOat(3$TpC}7Y+%u3;ieRznpPm4{bzS zMzj?3y=$n3Qtme9`dLxUP?+x{S5(K(xrz+NeNo9XgPL)$b87Osu&JOjXq`#{3J@R= z8DpXJj^LCUSjrv!)zsLS=jyf<{N&EY$<-cj(Z#s|(xJ_h(can5ap^$h(1FKrV3F$E zIp=kLr&$c`oUw1sfA@42&dSxRq`I!Aqw~gG#C?yy7g|gK^i|V7)qY`5404k7eH`X+ zw6&+c3T*ZY#W4e)u#I!7{n+~e!wJwXFXrA{?VUa<9sso2`)&Um4#d(Nuzh{=UXuj- z4DN^MtGM@34kyL>n_KI$?@8_q-8L5O?CogbYzK@j7Negv!E2l~&>E#>ij85~!ATve z{Lsh|OYo2l)*fOfyN-%CBelWX*6Yf(C#7ut5KZ*VdB?!K$mMoOz((e&58 zKk-$f&yL>d_B+l|?%HSdZufxHuoOk&``pu(gWB&Kf*tE^x^3TkIi;SzK4M|$qyW41 zmwL>2-R{A*&#hl_JLmB}C)-xu*Yb~hmG1u)r7v}&TwSAw10Ul0QDryQPM~P=ZSdKy zyHrpZp1olR8muP|h?ux7G2^Hd196Vm>hXQmMHW zq$(m0^>jC*nQ<+%5kJ~~4V>=MsAhtaF{qPrP_>V$fi051}`!RMNDGfNq<(V`}c?O@z1XO|x8q6L-rz^a9a z#N&D5P$y6b^+N!Rk!%DhRm#95pc+IoRw<;YOK8y`mt0b%ufb* zq(Ik3&$>j-GVd$W1_T-h(q>uK!Nxv5?w*fXVlH{| zy`?fI@Yt#K4X3-w#C^0`pd5<7KHslRmQUpzzLScmtTBAK&cdpIeosI z2lZSL(Nn6yNJ{Bz=cQtNVqX9ul#T(w1nm~rsd8PH%qRW&>#rE0Mf4A2@AG9}fIBGc zB2N}{+jsAl-t)+vnLpny;1slM&}>1c zeEa4dBe)Qvy1KeaFJCR!y<7_bGAO*bK9r!rxCPJ!bsIEbwC~$*zfWH*eGOVMBEM8S ze)x!HBcigHa|ix*#fUCw%hW5_FLTNAaNS?dyLWq`2%WKJAfI??!)Kp=K~RbIqmOVs zV9-2&{tKh$Xb*C3FP)Zx=j3MTU#SNxXBD6wX(`AvzeavDm@7-4;JHRW?Ruxe(nhwy za|ggUm8Da$V_<7Fd(no6Em&XDbC4*N)^#f98)ydzQ3V6pc~OonB8^dkPSpWYRj9^{ zLnn84R*t)J2KJBF6$iSI3@Ro96e<@4swnQzgjQMv;0Mq6t6vY-_Qz#HUbDcRS?@=3C* zbgt$^V80&rRZOx9KqWZ{r@5&$ZzC7jOpmbZ`yhevoKj+>crV;X6?NqM&$eecPVCf% z6M57z$TT1`Y^wWWyA2(Dsykb3A8WoJ`EPT?&fIVAoWgQ+9;y?U>(e~d6ern~c6|Kf zzyF`q^T+T!Oy;ihk{8FC*VuJP+dhzbPIB1jH~jPdvNp${qO6XWQaWw$`_)oc%X@x| zisIOYOG81+-xId;N2SSxYD2AXVo|oM2p)ipnkGg&s zJN0`|gh3f5y=in#LyM5GCaP;uM!i@4?fR`HRS?a*S$ppg^AKgny*a3GI@%aHE#U>l zCRp&$o>o4ljrBg4qOad35v4}+4BA}Kv9NGoI069x3PW(~$fc-)n-nE;aK_y(3b9M> z9t&9HrQ+}K?1K6g3ne}N6nGe&+j--2=2b2S{)S=na4}}7uuBTxYZ@q+%vqi$JI^;O zvJnwjE$EZVEugRV*NptsITosjaV5B9==j<17dd725;3y9sPUEZM*(?_q-wx@XTmE?oZS)mcpW<3s}1%f02vqTukYnn197c zNN!PuP|wyWO$94joUyG+%ZOS}N62BSZ63CpN=;SJwRy)6rXl z-Y`F`Mla$%$}ot$;&|?A39Dp9RYw8K+|k}J#vKidSLEh}V(vB!?d3Osy9ZX4#rOvp zIA6dA&H_qkM8g!BeCG(JsL(H8y-@BW^IcWa19J)h$xlE3v^d2c&~U~*dt(J%?Em8B zYm3s2>3ji}pw0qlksgTrOqODi5Yp>QmB_*T3;>1PScnxV@+!(OqovEZ1kj^1VEGN- zegET+JO=2qxOXpJzTodqo_w|dv~QV@jrkDU|6m$0t_Snf8%8yE%%g=M5x^w2!?}?w z%ThJV^-!Q_0e|=nVDR_<`Ug^vLAgaF7CE@ME{GJpTIRd!E8QF9%AyV{)=<>*#6I8u z@B_!plLhpmKi^$TYXSMM-!0n?h>kDYB9HaQrGGIVo-JSyf=&lVA0f_!@-%SJq74*H zy1eAQ0d*PRlOkrzwvQe^WE(I>@3V9ewpGOT!2%>9Ru#2M;Xp)fRor*v`eMwzdwb0> z_xRD{bh$VMBH{<|_{#$P(RS3Ag`)uZns|6nmlaL|JPBt^Eg2UuddYo3?*`~ScpXKg z9i?nAvL*aC81!a|Z!Ke)c2UZl|KBX*3Uki6m6`Xhr;2t&iMhxTpPa+Wnyfbx|HHE= zuz!`J^ax%oU*}xzNS}z*pLsV4`%py4hSYuqy}k5&ecAPn#`K6b*>W5 zMNOqz6FhH}hy)K7Y8wQSr9&VF2Asgt{?M&S09YZQ*0|4EW>U^Qm3xAGiDX_T9?2jui&O-RF^q zX?=ao5ps04oLBqk-bMs7uYr3>@9mgV=lGb{sZny*mf0gu`<%GW)aY()pSv9#VOT~h z)+4K=C`}Rl9G5uHYYIvLO-&4kn!CuzPtG>VUB43Z$du|u2Tg`&@$HObw(opDVtY5T z1Sc~-JF*xH8`XuA^6m(DOp%-Bxh|@B#b+AW#l34<5hmN+nIog7kH8qEzyTsC0H8w* z57nnruCBo7)@r}>G7m$gT1#AKXMlGwl}6V>ptK2RU0V!8lmPpUE?)yf1;&klynv8^ z?(FC&a#rUw$HF``A%aFbR?qIJ4mlgti<+xJHk)1;@iHm##(z;IE&7cQ!PC+6ampXGnDn%Ue7H39G}{Pp89`t z{Vk~Qp)#u>*nm*V*^W^|xLll}A(8H`EA3iX7zHJ8L!!M?vYo^PMcIu6rfy zrnu<3E(VxX6nV&_b24Wua}NyK3h??mN11*H=Y5Yu>jU+XAHaBk@c;AVT(C$j(DS=J z+t#{-cx@c%L9XmzV_SLK3jnR9rYvGLxO~$jM@FsjjGDzTnC7XDpLp&8Y=fFv{25N7 zAw`s9CP2b@5W(GURK5xQiRdYTL26}W2qIIVLvU;1GK#;wmGcSLKm*m0-ofH!0Jx)7 z!>=wc?Zi^8WV8$Ut{7mi7Ql)9m@WXYdijPx3NHYnCJ-f%MiI2F=0j`?K+5tiF0}%7 z2Id?9PP7jWJM=t$R~t5@*fJ`3rqVHpXl|Utira*8H2~Ypi)GzXv3QUR`jTQy=e4FN zaz=IBEu)_Rt8l{Mc!wAeBi1H4A~&WbpRo<7mkLolQqQw!zR3=V z!Fj#_;e#XnP%j2(AGaC{k#~wU`0dp@QEqb^+Y;f)q!Tlml@+~X9ah(1jmiN$7OB#E zrTf511RA)?4u^wgTeTD-_`{gS5l->bGLYnASnhVKGm| z+A^1wU0LbRxzV0!$JD?_v6e;5YwP_>7cC8&tW|S}b;mZE*QGkIMhe6nft;38TWtS@ zom?4y-M_iBpR-HJr7m^rq+OdEO}X|<^7@)v54W||byCYZU=r<*_Jn;JrAKS2v~Hh@ z3#)^Ej$x4^b)-^{wO?CgPDk-_T7!_a3H|9|+Q$u2ye z2+Hxfayw^Gv8#7V8`ViQWaTxXJ9=bKV1Tli6e0ycGUchYEiMB8II^02?!o-$$m@_| zsK4{)(R39W*YjKjm7*L@fDZgVMTE(dl}c(1)k8NqvT`70=D_Xf%}WBT@UT~UGXU$Z z0aU8|jzJre7ZCfvzzq-~>W_q+*f+kmP?p7cB0{0MY%}YpM(zspOLyB9KrN-IEJisR zs_Kr)mz{02oS*IL9UtwL=5c6%Z)%Po#s&=7$R*iOXhns>vHamU%vDV)`*B9Vx+lGt zbtiE>RPjBe9VoXbTay#1zxX`DC;~0BwDK~e!ETh80UqA6Bu!SynI5d>R2M6~`_FA0 z_s>d7$BSyI?|yx%`Cc_|ITm{v{}FA)aY9Wqz+&>V!m(cFmIFl=fnnuf5u#ZGeluEB zsg!y>@|*`iEe(uWU3m2@8`FC!#!HlUxwAc8d9QHYip(J1Pxi@DowzM@OTLRjPi#^d(~YzvE!*Y#_Kt#M1Jz% zScm5tHX-Qj7LgeT(SS$iRB_Djoa0?eqrUr|?kosI;|3o2LG?!&d3CNKOF2ND`RuHo zQ#Da{JpOD&Pda;w0IL9AW@q3z1R!M87OajiYRk;D1b|tBX3x9v>|b5Ie*l_E=KLIAj7yDin{uQWdxSiV{Ssz9jN4Odo?-|@OHE2zXkdizefy8zLAHV+ca zfwK}03IJ=?OdTvHwL4>uE2EW5A3=->%$&EZN4p_VX1dK@xx0wUA_7Q0htnBUDrU>$ zf(pDpNZ)}hk5F6nyOxzf$)}W<7p!$GGo>dc+gh5ci+s@@05D(PH%{3ZhE@_KY?G;K zG-%G8V{)~wCpxLUo3Yvv5uH^DoXu(t7=o7D zMH>6{J+3*#n<{&YK()J;lvWP^pwia7SUadg4PA5dT<7a!{1lPJrledGvbXvhDE)P>Q{b)pt`9f75AWac`XKm< zx~;3@ooG`z)y97N9N4R?eG2i_x1MLNZym7ewVxLWkmJH?EBiVZuc5A z=3AfB$Ze&b|S{jj1Uz zM0h=uCf%*eQw$Bk2*}Q&Ga*u`XpJUZ)xu1qr13bOw-Bj-p%IG{^QRVLLS;lYH3tOO z3rf{HQ=fLOU#I;NL1)kbA-FU$;-v`6lObYw)MQ)-`U^E3(K{PQj|y`*2StJ%HAe*K z!M$@DzM$*EAVy9Jl~I%OK(ji20hp>m37|^hBeW5VaM8ABq$Eu>pA@a#3<9YFsEWQu zJyk_tqy43c=ya2EfM~5vjbSj{daC;;aSc|3hIMecAUR_!))f>{QXIYiA{Ink6qETau$ z``Wpt8|T{Nya1}mJ;ig5zabok-%;`d$45l+VCo^B?fVZdSR0kJdE{bm27*M~Ur>XY zOUgE(9`ikxs{v3x522xV@A%u}<=MVwP17qrC&*WSx6C~_52%~~ahGpibM8WIRR9;z zJuz5OhZVpNKyqi*SAa->jxWFbg1~C;_JaA0kpFa7FrD0w!$NJT;zUFg?W8u4h_wW8Y z0#igx0U(jT3H4oV`zwxj0L;rbZ`0o`*9JQD>(`f5GX~H_+pzyPzxp+E`Vd7%RQI>P z{Vk)T*#6#w`-=nMKHG})bBc35T>1!eI(~zSGD_{-FwggG zx?Y}brp41sWt&(v%kv@4?hL2U;}C*XiX$EDrECJ4%YDyiBJ zp^O{pJD4=4Iyd_~^IYkooYx0Ah%qnkO_`|)MWoK<_pn#4Dtf@J5B1Eay zt`!4pTUWhcoum#t2RMxF5sT{|(J^=1=4$s7Wjw~6X0B=}wT#Un zM+uzb@-|^q3XrmNO=>x3a|vT~`K@&QoQE!lHKm}7%4cBkn|zyVU%T}~_5xw)d4si9 z)}cK+iZ-=ADzOlRmo2pkDkfn~h{Fo(Ps}+K^$80N>*l3w3ZaDvQmVOPA)0_=Vd0G; z-dLarScec1XkJPQKOE|0_?CH~=cMq4pa3I4V}R2J;-fy8=%Omef`x&=ao-d+(ffNB zTOTbNRdT5lw-$02Oy3_|6nu1F9x8261=OuBI%JFR3^ck21E;FG$K&oRAcIi_17DQG z_E|JYCPgaZlvR3%WdVFM5E(l2!kR3mG~}4OryAALJ)YHHIj4X}dMY&rhDuEJ@402G zpPF{sQ=z#$_URw8V@}9wj`rdiq8Esaq!Qjgivis*8a&(KRF9id zs&lyjDMgjsEBx&FP(o)pwPFOlvn@)<)(mhNuaS3%cy+)B;dDqed~>0f49ZLv&M! zukE&qR03!z)j*NKUw--}oh`rspa<kk)6yR>dyv}n2aZ3CwrQpJd zAAlOx8ay}1-Gl=Q;{kn$YrVPI*Es;SRS`kP3nF+J$5*6FXNorgAWxGVOBYN3!vTTE z|G~WnjGV&Rg7ZKO=`|c1Oj+42bMcO%T39z8K6pUq%6>0F8qmG3u5Y*oljgq6Apl62 z6t)pzbmR{A@=)t>X4gCwpxF!?&x-~SUgP;Y>GG;k8jjvrw?f2evTg(;`v!o?&s*d` zQdrJ96v|x`6C`Yf07aN1Rrmaz=9QFcdPV@&?YM2A+3RwR=Gkdi^WgV~dYu5%s%7fZ zFS%)61c+vz`Li?}%(!rlX|)?n+Mn6y?KjwpoMboTvrS<4#e=QyuI0Z*x0Bx_;H)kHL%= zqK^Vmf5q!K;>*|SoPE2xL3zjZr1hpB^X1?CRfo#iaZV>- zf15bFzRo#U;9hE*dSgGiU!yi{7|f+cSu35yUd@;=ViAxRuuW{?VauJ-DNUz*YmD{x zzvW7_&vk<9YOpf*Z_cahtBQTjy^R{ErSl*LU=B}WEC^#)^RpU|Sw=dyb(^A`0FI}K zZLa$QcZ&ii$3nCxB5XSwi|US|9J!QM*A)i+S$L!^ya0N!ig>%+P)OpVeZCGZCYzx~ z6K9_@?&X-JyyqpoMp844i%EHT^K9XxY$_#t(0!#Rn)k#-%c%!TafJiCI#?-QCExJm}P%A*Q#iH>HJqjqVk<1Re)HIiz; znsdu-8p5|$3}2o98g%8!}=-;8%N^z zWpd7<(<36!yhxB_uwx3}!#F31$T|*6MeP<)Bd~B|YQCIN6V%0>)0*gPIf&+qF@Vx9 z%XViwMTP+sw^lx%T*nx|5HCiN0R}C|0^l1A7HrFsIQK;DRU}o$BKjQlQ2|Z?`lMz& z6QmJLU#g5uM3oSQ3&0r>7cfL{Eo7dgRLh(I01`wlpQFr8D79kS!G=5m=>p;iw1=TG zXwJ?y{2kFz);!%PdZh9>7rX|vkATVaQGnT?%97czfI74nZCCE8%WN(0OEP7w77ix^ zXx3*tf-%;r&58E{?LvPdq8zM3(sf5k-G4_lXRNl%2yot9=&fqoF=({GyLk z!bO@0(SIz7LtrV#Bl=T|dnUvCs0?Pbc&n6`|0mN}=Yxb=<#S=8=WFoFYr@b7>jtCaBa6Fmx zQM#UvOTZF#3~ZF#M4po88kWF2qN^r@+%Ph^w&hN>Jc-2-{g6*qDoHD0DNcc&SHwo~ z+FhbXth#{dRdcC*74}ISo4w=cXHaXS9{cK5T6nGptqspv9E$FDxNi1li}6#bMshvCuvwNPHL&Z8R5XkCpSI9JCd%mLZ%0MutDa!dQZL7he3)xkChmrod1fX&h^wM}SUv_^?1L z*J>xQi;^l2rP3KWB$0>3vNxs{1z?rx=1{L0G~A%bFfXj5dZJWDUj{59s}Ys0s;11r z8A$ED*nVgrp>GD@tqtIX*{mya+&XEh_mV!;wEYX%&m4g9se=8W2M@J8P2|1K zEL%gPKbJ}=m55WS6yjSCSNBvl$EwaZIqx%q`P1ACk-3U=h_)?&8nmTmxKM4k8W!2k zjHv>zQjL||8Srv?jKjvyOcR+1=fq&Da)8L}atP7h5LlvNH*RWPcj5D{9I(0A`D7>4 zi9Pe#Pxa>1%lS=NW6p4-ROCJ`)j^uv0u zIcn;%&S<3wOGu3A0357vya;fn*#c#_AG69DLD`xmQ4tA($j;f;;MMhlaX&eqO)AGQ zSb#xZ z%gA$FzJ8USK7Pp3HlXg~x)D87zUW&jd|zDb_zZwH{Os9Nwi&tX*URq@QIceNC@wEw z^VvRg9z0Zuk!BFlETli&zkiSO06-lht!K(h1&#ReBdG}^x(DzG$}{fIk3as%`R&Xq z*L5E_I*Rf(Y%^yKCj8Ic)|8M5M8u6uJ*JpA^T62yR4zqJIH) z!DtB`1bjyATIQhwr~^=6zVVu|AcA(;N$NUxOwcYq9LK((GMppzyl>;s5v_SCru15ROHR)Tj>S)_73s zr*s@u)92iMPOI%TIQq}Jkls+~+Y}vk{JMQkyE;w+r#mRWd41mS5PbOa`@q+KD&QRs zglJ3qw!JKZxhB|Tw9Cm zdB1#DUmUmD?-RGp_NR>6Zd)45sr6NZs=1c02?#so{&TKnCt|}bwZn}JbjytC1w#+osIJ}Si@~p>5G_r zLu)iyY%%n($j1Vfic7a-0f+$L%=KK1H{=^pWW)3v zom*$yW)IA7%?7R^ zzMx#C!_8GZJ*-=b(l($np6x`Toty&KB?bHU#*Jobm{PL{{zY;t&{J=#m@ zo`MECd+_S9`wA_~=5$*zUFt;SLqZ3J=R*`}Zc%ki=0g);gu z*vp$z6+VeM0hF_FuGAW>cIqIvj1lYHm;|xdi?TS>+Nx9l-Rij0Y;QM8-Q>)AgEEA) zanMIGC!m!z6mO(TC-zYHNE_@=VnTIyl;^+z(JwDvRO1mPXI?Ga;&03m ztQU#s*)R~$AwQJ;x10y_6zX+qu6ab7@++w3F4ywe=g$Zr(PbzlgHkcye)}EgRh$!f zjV~9Vg*o}j@*8THqW{qLM~^|t{h1L*l#Pj!E{Kw$Zs?1bFO|=|Jom^o1^C1`{OsB1 z{2q$GpuztAZ~smD_Pg&W)`RQDwkQ>9A7OU{=fTo|KIfUa&3q>s=ZH_et4z4)W7?UO4;DO+=IXW?QdCn2Q@~& z`0`8k1^NtY!PnpX9k<23!g>Gx-~2ZHw6p=A(YK&7Gk15{2G@#=0lS5~&bH@EyWjEm zCr_SA2oPi7M)v~clWwehjB$nE&?ldN@g>JD-dD@UHKkRkRU~0vtb{ zFWegda%>OhLCI}0 zTg5qMgJRbAEJ?P^p#eSSyM~&%Bhy3JhDCKt!!cP)pxIFnfr*IXj>ba)vIaZ%;2hH5 z`b=jC`lN1`+gv#pJH2HKi&YVJoK@m|ouSDRXM>H?7($SZf{SEF0Q8=V~{nq53Q6E zw+q19zxvOyab4Kr_wr%DIv>?x{ZzmzW9<0%^{X8t*Y%SaeZD2LPXGyucKiWrtHO|3rI>4$nz8A1|?Uiz-&zZaHa81(F zeUXp;?IN-t1z1yU>)e^@0a)h_uzfK#rBuktFn306ct&%he)b;CFmP{fZtUS)jM!ySJv-l3MO}Kct)hv) zqbMjTfsW1vxSgFBCkj>6b!^})CRG5*N^i+p7(zauxvE}p<5;BYT4V>mgK{SE85!U7 zuA{Vr3ue8HEYC$M|U=I$9ho~e$Ws@yv${axzk{P@n>mSiV@SqKJL z`Id9E&GmC>_5L)5`-#W>ntcyb0v}%@S>zr>-v}?V#RM3$rCZ%Qnn3Z_SmO7!msvcdc9hWhDE#i`$e+{T$a5 z_d9j{j^|@PP1SQB_bTosj3ZLJQ=zf1evttRBWpCx6Mc30?kyd7G&H9+)*^qNN|}xd zymihV)nBKWBV=qM2UGV);%h8lV%6Eh6uF10#R@RjuUDXgZnmPhGJ=TtcC#gD22jKK z74b}raxy1$0d){I;wCaNIPEjuh%M=1Lp~z>6YV%WnW!s9np*;WF-aOQcnG zZw2a^OHCk>8LecV?`Gq=p>j5&4UA$g$2?f<51#?N(Gha6NUxw&V78ZGzg*in9Uqae zDaRfF7w!a=n6DzoTFSxzsuUk2D`T!T$j^6YHII)eBMXp2`)21#GkSH<+5m8iH7uSU z=8W1gQ`sI~w@5F(x^VmCat(UC5%2I1uzsZG|Tm97i{!qaP+I2(WrX*E+ zAD8XjY-*0E95!q(bSXHjb2U%Z z^K7b7%(2pC!zPM83*n@}wqmfN*gvBM5e=AYe$}_X?bqhzsVUBX!%X-hYc%44n0`Z~d3= z+&g{zE8qG%-}>%WXQuaE?|KY<{C>AvmRDo5ep|Y~bAHeD_WS;&_b5!m^^s1W&Hvf% zZu@BR2%Aio)QzIt#%$fue>OwV%5VA9_%GGV$am+f$X;aQUHV#GoueuC4Z}D40aA*< zZJKxOb3Z=H{YZ{@t4)Jx9$_rZm>IbM zx=F{V^xf3IW6YZ3p32ehDfMGI^(AfUm`V*ubYr!>k4IEqgOjWQrNZXJYTSp=Rih%s zw%xu-fOqJGJnGz3BB#}NB%%yM6S!#4MEoWd%+fPIN^xDo82@5HWEyv3PpBPZbxK9Y z$f&hbDIF;QJBk~ulD@}E^m*KcZa%y)7%*?&p9oAqI~#_1A2tkH1U0 zFa4Os8;k&qJ&nKQ=O)?N5-sbW+rsBYpgCyUHj3>G!}zNdV(!u?#b70H3=d}5ajfV$ z&!)F)>}$@zbfh-sD!>$u90GyOKpH*8-G;&9XCre+mA4v(UsrbutXr4e+jMPXo0N~gXTjEUOZ)TG)x^ty^pI~d?6>}9;X>YDQ*DErI zXdsRW>TgwK2UXQzkaSoJMnS9z00jF*lxjm->p8b2g?!W;3;?Kz^f`^;C|P!IiQ)kS z3zTnZ7+={*2~dovaE$fydl!syQj`i&vN`d0bij_Pxf7oOI6l#)w*>rAzgX(8xYker zj%O9y5_IOo>yGj&xUa|)*0o4H4c8WB(@58zrV5N0t-MjxK8*0tK?tFp3Jx8S4Ax5I zxfkbB$8jS~CLFzVj1-r4i`178HRQ86DBsmgg__n=F{!GX=iJeTb2#o=zGMzmnDkquZrG*Sj#uaWY&Kh)^W)r&=GvlJB$66Lt;nV@aNRJt7`|~Y3vHjipA+LdJN^Op=YiwJ1Zs@z@wvEdPPtW$uh zbOuH~an{p-b=BEv9p%0I)voK~KZj=^bpt#5b4sbFx8}bTq~DGJ_t#VJZMpq>-=D`1 zeLHvdLv#H7(K);Cd%(xI$T`SG}QU3XUYc3!t3M+Bs_ldr4y z4DUO`dw$F7b{uUU$>m`v#=H~88^sE|T?49RMc<3o;j1YfU3k&c#V4nIR`tsRGUj9Unj?5G@w z_B?p_fZ+2$&v>B+n_zT#QQAKTJ+w$P3)C3>%2JIQXvvFUQ3#t_SroW<+i^7w20!w@r6FL7x=QbmbU~ zX?2hK8ipIR&#KF4$F?gE!Bd#B#{LXtWP%T;JJdm=YZ}}(vLxoY=D6-gHzMZQB%>5> zlx#|KRoo!3#q&ucJaWtYdAC)G56(5LiF%K;WsHe?uDdEKw4QA=gLB%|TjqV@Z$!k- zcgkVKzBf1T(&x`U<6MYn8dw;gJ$XVPg}Lt`^3hSIXZZ|;*hh~asbmJJp(wrbg!zo` zmWboyhmScoBI=4LC@8o9Xje-#4d4gS$2ZG%uiv~*Uwr60TuZEGB<9WyZOTp-=}}`Z~rZO5%f|}h@XA_C9fNFUmQ2KeevQs>AQFa zkVA{>N2wV6_WgI?r!QRg2KWEvtJkCj0;`h{VSW6R_X`o**UR=O@dFU`(=R_S_jE^Kh-UzFK#RZcr=NZ%jT*nb zV!54nR2@c?89B93pdGey79m%b^=FrH2mlW-4(ckNf#*vfoj-VJs{zVS!L;j|1(ckx${>9(8?!-C!jOTv6+`|j3Jw@Z_ zdx(-kO3OK@<}KH)r9WT3k6E$gUyp;HP5 zRvYZc=%{`k+V7<^maCT|cZN;&Vt0JFQb9}uto`dQaI-dM-Va#k)8M@G0<`w5KOY0f zwUKuGdq**@UmhC}r(X3goVl#n4HCoi&TgARD=-_!q(<@V?W) zbu1oxR5#?^YO{?XiQX5zY}5=8Yr9A-n^lL=&n!&4@bin4mu%Bp8q_ zAQZLJBm^;3$}-yn@u#fgFi&rG6bHueUb&?*7_tk{502D`imc-Fu1i~-8-(25z4P#L zZpTfY#OF}$O;ivr^IqOeJ00Swt^XF?#qBWG1tXhctoo@--zL>r)h?Q|<@hNaTh+d? zBO_Fs^<);iC_{m<8&rK;N*jkM_6-4|GF#oT3Hd3ato_!FbX0vKhF}|>5Yi+Ot(B9&7q3GL@#KeRCyYW$vTZ><*KV6 z;$12YIC4VkIg9CY$tA9eq87;|p=xwBH5yi9I;6UW>e(IJZOJVM{?xyz9w}~IYQVQs zi>zo@m+Y~T+Fa~@QB6Wo9jkE{UE(&ibyf=8j9`1<)HDO!N0%rHr^6Hs3SVY1%~mM` zj%sHqtP+4G+cHB$$30%Eu~j_gCOadv*35S1al5IsaX4y@QVyK!Lr+p$9UWG0q}4h)LMP><}Htl zw&F8#Wsz$NU)?h~Zp zdhi>r4Qjh+(?ho54UKw<5MA&ysLBAO=o0{Qd%6XI)ZkPF z;Kw89BI*pM1u( zW$)b7r%N9phZb#MN(xHQEN#P@hqlWxH?a)>&={`(paR8Kvfm#p4kc{~<&2)I?f4Cm z(==Bm$j0e8H%94PSfERdwD+2yYZ6l+z6bH?yrO=Q@tMAes&_ned>Rw{TARd9f7y5wdn-PS-<+#=kx~Y zG+;Qj-GA;^KKl0qTZbi9KUZt5`#s;jlsmiNHneO;$NOIaR{!(9*8R1rV%#8^LMu>07!gab4zUK#^hP^HM-v-@=?r3XMxvn1V9Rhtzy<#oKOtjiTvE@TGaI z!(fgm6rqY~h1DTvYF$tl2@oR+Iv=E{YYJ^L1(8cll#y{?;xm1ZG^}OlLtT`;%KEMC z-m8>HZi5G(Q_wd1D#$YM$K;&UR2+S+!!0$y+j3?CUDW$uI)|bcB`tDu-8POFsl5#hWQe9Mw4KXM1RLWS|9XDYFe)nwu5!q63;`P}(wfSv-1Z&o zu7+U;qg1tEx2EH&z9(+QZix17@D8YM^dhuI4}hqFSW@ zPjV1$*ee7*dYg&B7ot_l%M%6n^>W>l=V9z$sj|BU)F^z1{72R`6_{cK3N+!A z2tY$u0Kfu{($_babVQw5NJmloR7?8soS}Y?JWQ}^02Y0I49L;>qX77W*P{?B3MVBU zu!!b?{_NwVa7f$m2lYEBnOu7S3AlI$!MMH*l4NMVd(XyGQ^VR6xNh=&C^)d zl^dJu_My#z{@iAX+*NvOo%(HAbr(D2ral~FK1G)u&8gv-3x`V3;?{*Ue0_GzwQGWxXw-qcFZ@V+Fok!%7_ z-Dz_y$=zF)y(hHxmKi*pXh*dF_%)=zt}p*H?yibmY|3?MaQ@3q@ zpyOkwW=vFDse2+ zq#>v=52P+oSuhXYZWcz&t!xa0aj2||?MvipBa#Nsdg1*+PBY6ZF{jz0W5u8SAL}E! zoX%uAoV@snZ60kzMy^?uKB6IuoG;w-;E83S@a!D@gVf%yUFLTzFg zW5^f9voh*=LHo8W`7yBFxDMuV2e`%OET;}~Px*`iXv}Ko4*8`Rb|{6lRp|!S)P(}M zLFYV+YKZX~rEg%oA_d?A5k8bX0Z>G3Q;0y_TyYLT^y(e!oGSkkbyA^>yNNO=%Xy)a z3-I^g{)6=5O;K_0=I6vA70DZ9>>-lq) z!D0UB^8LHFR|IV+u>%_Q9^(yj`!fIII9NLnO-%>Y&)qKb4yf0t1-r)_hwDau?&UiI zAP6PlxX2lXRrTn>BOZ5hE-!%R^OrB_C_&qqE`s0Ch6@N>UGn+FJsQmz!b6B_gL8u7 zUIfuwwjE#>{YhPhSuhZvuiq&jcf;IiMO!f!<2RMJN_5o4Zzd%$DvURs8IG8;j`X0i zF`@mibxm_G1}jk|Mz%ONYR#np6v{hIT02K8bw}OyaTsfkFqtAw{~@)R06x@dH4znq z)e!5+28n%noE|VnsX9{m8O@tp4doO7tJJ7vsJ^oTL6=({PVk`6BK?BGPlN1l_5-yp zHWD|Ir^(lIsGuxL%k+`#upfe9RsEcH5Jcb3uB;Hw)2PxA%#WIX>@r|+eF5|soj>gP z*1e2c^kTR{JgnYFgJ`Cy8F(8S(g7C^3Iat7M1`I~GdaupTHL;9SB*f&eLozW*Dqil z5#iXU*W!q>adF(OuQ|#c@tUC$+z*C|cuPa^k*}t0)=0j-?ER>e!hD+&+;V*Kok)H4 zx$~fu4_W+G5b5aaBLJ@GOR}fCtVC$ikzhusw=TdsF@dui_x}rM}&2jYX z==#=qqxs}H*1zQweK~Z;i2Y8TQwHw(&WjS)yl=TXNA`jIUG6|)(SuXlSwshpC`7yK z{(OrP>~`m#ma1dabMW+c&|6pE-33@rzc`M&&8rivL?3lZ!FUMyyXquPIaMWK{5_Sn ze>tKA!{g^lpW1)!T|fG63NLHqgZcB^UEds@);i1dH6n|igQW2*@TQB5dm1@$l@RAP zQ*zuB5Ppc-YP&u_MH`NpqJWo9C)u|EX2YQIfxqr>X^W>U(j=-GzO?x{OxQj zQ4Y|Fm&N44V$9r-TCDRRZ#AgKh(L&HwI`T;yck$8GE1nW5`b!SU)+;w<-`Tyke;Bt z0Ls;HLfsMk#Nu*(zSG?+lZ9DiFyQjewwvl0MBkkQoI^|m>cES!GNh)OcSai5p{n)* z=+5+#t8Fn~WareD5WOj?i>YlzEn@!jB!IK4)NFftNr8;$sX?d5%1VSNnI@fwn%52p>!a&cWz%Z>}?EaNF#iM7h#6ZG$$r`u>poE5SRKSscFfW66r zS7TMk6kT)65)RS~k+|0WaK-&bi=a@Mld9C)nqQOrJ4y)QH4c%FC1Y#D5>IoT;$Z9m zxbWkc4LWrw8LFn2CPhRJE>A#!noJ`uQf`fBov~kx{~`xKvKP9|JxA+7>G>Ev1-OqG z#Mb>BH>X?Sf^@X`(JO#5OFwn_Nn=MT8`bGmc&V1T$-!FaD0Gf0Yy2e|hhdmSK3?oE zmDEtu_T1t1cO2V%&RUEH33Q;?(Ggus-aK*| zq1wB5X&xH?P|aNo#0L)^D!7*z`P=`{PL@> z(#`Vu#{~>NefEsc#(qCBXY^NJ|C*FsL|SKp$j=!0`}voj7x4L1fMnShl-_4we6IE^ z?E_eYpc1YN`J>2hjY#TGKmN?JGU!Pv7L#6lk7N4h1=xPJTz9fj4FLG~$z!g86iot{ zqTo_t`<{LNIqxCMwk+p*yntLhdpIrtG8~q;H`o@Xftd5Q^#7a18H!Rjm{VRZ!1m#C zAI`UDq@e!r{rAjw#e{ja+|ReT|IV>RZt;WNImajN;TzC*A3owa&_3oo?j+dviutV% zT_!1|%U74wY@lAl(oegkZ5x-cf};R{eQ?zCdI6}&n+A{ol^P&BdrktKn>oK2_lP({ z`+@sz2!bg#==Blz_yP*gNx89z9BW-DyjR?>i)uzn1i*|av71&7DmR-5eH`f&_>IC_ zUboYnQeO`=6nF)kZ9B}x&*)H7)@J9Zl7t&k&qFx*RPH9q&Ir6F=XYxj+d6L+{fqKH ztNOAy-qaL-liM;nqR#c-4uj3uazYQWUL@N&bC>irYu>=I!ahkQ*2$rpA4{!kOM57y zhjAFr_ql@cxVE?!)xmXcC)R1J3r}VQM4$lMsQ$UqjB1p%g!=MOso_DRt|FFTCgfBB z?X~-_)n|1TfkA?j$sl)QXGR=TIsmN_MDN_FWo@Qb@+Uxgh>Zo_Y-P_F?RdX_)4RalUBBJ^S{?Q; zc>T5e|E*pt^X}B`Eho17&@oGTufyZxj#Xo3-F`<0jc2=*YUIYmw{AeG=Zr}%9v@CR zp0t=NIJ^8zbrzJBlPA2Wp@tZf+lEs5`_;L#J#Lt=n1AF22Cpb76Op~mc6204h1i)B zy0HiNpe*6hQB@hr*?X|wqyVu!wQH~e z$B2HdIj(&r_3xZj-=CE1R2kbm8QVtQW2sAMt~EHbpNpy-T;#wCZ+^1VDGj;aqf$)g z%Plv)dp!L-x3Ai>zIOJ;G+u7)9Q&1%-=BI7aZVd$0UG&Lv76A*l2E8-q&}s3ohhhu zIP;KNhh@)mh$eOC;InRai0Hbdwq^EjRv@eP1I8MoQa&#G1P-F09Zpic#j)<4ElxB> z(LA?V@MG|U3nvi37qIiiGG}lea7qHGpP;7VT2KOoqE53?8(4SqM%yx4upIB&in$Mw zvv{N2P23^WfWCb5S~;P}$xkz*t~mc=*66%i&Z|1hkC$j3enUT@Jx~q?aKTu6wg9n- z(UlwKWq!T@K7dg;MB(%Uv*hyfiqFbtPd~F*)D1tQ*6P*u6`v~r9n9C4R?vOS+|8Rh zUnA1{`pqSOL%mtNU<3pFBYza&b+TgyQP)e?E=4pMcMtsn`n2*=_tnvRe>pGO3m}0g zFq{*JtO9&NOb=yb$W&OK)$?WB!?fppytnjcfK>o))Yyh|0o&s~A*Y`ub5OH&>FXOf zGnZ?>Ubca75*!Dp9lLcsY?O*Yt}5E2xkJ$`lm=pdnZmqt-rkL`Ex-lFHGu84`;5-n zqP$3eP()ej$YD7p(WsF(OXdy?`;w|N=z?v~9F@m0_4O(v*EMqTquwUoQIER#Ibja% z)N&f>7-0FDeRUeii8s~b$T8J&R6{X1=A`2pr3QF%YD&Sq$2~b;yfh}3oQccz&l+2E zI90QpcJy)PjRQ`apo1bF>&YDRTaLQoI$`P7FoNU`C~2N(6%xwa0(3f7Z^y)Msa9!d zw$WfVl^v@krBnlbc#qWq94xm`r;j$a+*pZ4l_M%{fYex^;0%vz&}OTJ!2Nn;EBpA> zNJz>_Wxj8hdz-6`m?}_>F;jzcsnx3Q-?g6hpo$Kd`?w|y;|io6gVoqKzQ1uD;lXS_ z9wI#7F`DYyd1~RxdHvf-fPaHbmdESp}*N6A{ zh&| zs|o0ileCGp)$G#u{ki6oDnL;&hc9qz^caxx(`7ZqIHhgDf*UaT+;ANDu=P77xWO!AniAchPq{F zbK;dMmraWma@wMtO_bOe-S0T&b~~7%S!xbkJ;tCC8!-4u#f;q84EbOLboxZHMb0KD5ajI}u`pmsD} zAHmxuwKqKNwQIWPBDXsdhFLQv@Nbv<+s`QM{sikIzdBC*ol|n2^wBC1-yN49 zN_VdqqyXbtEfHDGHHs5l7mjIf8{5^qZUbA5Rp(sS@BF(RSEL;C8EE^CDfUxNHs19( ziRK}JDofY+9DF9aXNz-&#m%;)oKM^)w&!ugj^j8gE*k|3?>y~2Cu~H0c6)ZDraC$? z3^kR2`vCyh5M|!y0+RQpgi3tPHKNn(^n`uQDTHI~`ud&bAIvv!%F&spoJ+I~`{G|j z?U*ZR!5~J)92udK`Jrvg&(5O+Z8f5004)$>k|@y)pIO%Xyx!BfhDb4bXfpj2(Lo&Z z#wAq{tqhSOfTHYr+c!+3P&pm^hHY84WiFLwi*pm?E!zM9-cS%~@3~&g2Ao&rexyQ+ zM*!t&ZXDSTha;kmV1S%$c6?6uH)6^l{}n8U8?%Z?@yB%=u-19UwQOgL*$k2A>qz67 zRdmCkXSB(YvC%YII7t(F-pS&Pz823XVGh=Lu>!7O!UU7DGakHcY*$$`so4;b@2K{+ zk}Pq&X>Jr%?AMp+39z)GM#WIu6#dcCnsT*wBHGvI$OaRnwl%eRGEh^!e@ah?#XtUX@O zQ|i4ca})Loh|u??Z`G==*8SE5v|3(luDg*b6?Evl7W|5~)A>lJt|Jz!=w>b{|5fOs z@2$W5I6;T{&=KzXy{AL6lRt2z8bPj~)15b>?omrX#Kt8Z9pThj()*#;`2M5h_x#p< znOE)f4L`AA?U#^WO!@Qy(_JS!qSEqQx%>V2n7Os7e-$4qANS)OXRg*@`fuvhGrmd5 ztlbc1U!9t|OUreS;~uTXYu}xvQF)tTYMXcV`gXHabc>WY=G8HCstd-bnf%)TXm>R{`7M>c;g`b+14PC50&!7X!}~ zAk57DQVE?foVJ6AnQG>S)Drz-GlZ;5x z|0{+c1Z0Y-v5p8x_0p7E&!zl1ud>!xbicTv^JRL^44OeewKf zD*Q4Mhw?8!{6MNK&I?e62qhwTh?1g|&2|Ax7x&L8=JSU?f6Fuoh#w&;i*3;cL@0m% z`#&-d7C;t2^LPL9uj#XA&z9p#0T|_15D`U$@=t&I^K#7lRPsgnlYjcx-;t&aDl3kQ zs3^cGXwHB9)1TM|(4+CZKL6=wg4_qo^{D)dgqt2L$HO^6HNL;h-x#G(KgKa1J-W{_ zJ}S4eTju+v4c~spC@j)JaDQLFdd+Lb-2Z&(KirbD?b#AReU!fY?mKE8kZQere`VU? z(}$1K%a^a|#JGUq)zYV+QRDg@(r?Dxe_`s_Sci!BXuVn)O~1hQgw)47_OZrBvk%20Zc>aCAr&&-j(PEtobHUc- zb%Nep=4QLGyvro!Q7ED-T0EQ8Bf4-3+bU8svhq`N^}SkTYMQGPfNd_}RBwvI1luLM z%vr;Q{TQm_!D&9D>C-_SueRwhtQ?mx`4Ht3uzH!lU?a<9&>OQB2t+H?OU9TK%eeWyRg}c3mfcO4k z@TDBLwad*qYU|yqI_2o!+rPBO{Nr9LEON*9$G_+IZWZ6>qprEV?VKV%wQZAYf8g^_ z_pETL<^>NO#ATSXbB0~h(y$)+PZ5OrB4Yd=>R{`>bY z=!p-NU*_$2Q6sSPZB(7uGa7Q}Ipna0SOONdi?f|SJLe3>&&>h+E9Szglz`fRQUuov z$ij=DGMn-VgLWJ}vFi?DQHRJBdJfTm7*#Oi8D;gtG*ZgAi+)W3G{b<`NC;6I)|JZw zFQn3Dm2sh3aDcPqXlqF;52)(0g_pHx1C5kapI!A}$s?YwwI=NA1NTp?_ zdM)zgj@2-e+okFeVB4TD78_BK(^`ck3}~tFImd!*)!Bo)YsmF^)V|6AWK)aOu;bC= zIvK`^jn`F)8n1bE-pgqqwDM}%AeN)!u-Kbz2 zs=u+u+lVi7M-fEM6or&P$+UxI%+=w5eKsyD5{4M4sHi6y&V-Fq9RSn-!h)8HeeT`6 zXV7!Q<0Otj<$1QLFUvv(MB=0FJNUEbUe4 zn3u~r5pl)5kLyIfD}XKC01!%IUg}f!E6xEx4giO?An)^wFTPM4_7ltYpnW{Y;#>q^ z#yG%v0lZP0Hp;|co_=)i5$`_$-`N5vC8UopG0TfXb$=V9<-o9Ia_5I3@z&(au0^fN&vyJIE*TKFS#(Jy<%2iT_Iq`FppxL<8SBofzSkun= z$Z@|9QFS3}y{^}0I`X)&PROANKLwx-=Q@Ay?26gboteSXiYsRRe$e1$L;*3+pM&GN=~N~UqAkJ8k)8#WBvW@-%s_;slNSiA6A}y-=>n% z?fwaH+xNlU=fC^hxdTa$e-yPfI^8`*Br&YBjTh=FvuI9Mjudp)Zcs z-<~>JaySUmQOnv(i-OL;sKqRC1xE8Uze~~A+t#G~&AMJ&6@^0HXATdrDLH% z?yM3xyFvLPn~lha^e9H2VZ9zNu-lCn(J*e+>jYI}cn)UKw6>y#@prnBG0AFCMFbT< zX>j|qjoCq)x!qc@)SiQAirM*>v#4O%_hGD&P`AerKw!dj%UpaeeNI7(N%B@O-!-YY zdGi|<I9>FqXMG#-=$0 zsI;wAd)@xj(V&vO*2x{70x+lMDDrbwx-lN>%G7y@rx>$R9?r?06@Mp6Z8FunvGTg-F9qmzX{9XsdVhSp z#+=){Q$zzUIoD^mU)kb$@7=CrZhuz{KC6^XiT1`b74wHUCAa708`C2Xeq zrkak5{=;#GXef_qMuo!uM569i?c@z#f zM9zXni^wd?t3YsW0b4L`8Np@!R0+@lEV33TBWo%L^YGyVQdU`BWoZ*wD%Vu6ofx%b z$sClRS?0t?3+R>7ssIOp`HiT%q-RnX<%Zx^HAR)zi5G;C0MPLrev>}IzUH(dQYG=5 zOb{GSO4fc&*>z&~q$vm0m@J9qTB7bM+AHv?8mJHMKa}%lQkfe>ftk~40U>}9^a*Ig zP;myx#eKtl0a(TTN1G6}j_4liqi&@BEK2ZB!d?`ca=laoL$nPbYk#e43E`M2oD=5~ zN}>bO6lOSDacyM$*fEItgV$zt+_;ArLx)MnE!}D#<>B!6#u3VJw1i@AvhyySei3-e z22xQ9E_vS8zIq;+Kb+P9DX|^`^rSld1od>X=ukDOZRhmtx`^Bn=#AQTtZa!^tGlZE zTKPEE7&2E5QCn4P3C=avKA_NDY0qr7;A90xIam86dCob0&Cb28V9|ZwtL29CahhB0 z=@k_@B?CNLZ)T+w2Mi_y`Pvt$QFj4WX?vwoLF8Pg&Q|L+`gO=b>n&AqF8Zv}n!SJI zu@*Z%G>s3d@J)=9Xng?H#$sys^EeNd)8*KXRz<9`wv90#=LlPYZ3_`68kj*x%=Jv& zJFVU=$0vEvd(q6@=V)wh3wrw)9hFuFasR3m&!eXNO<#ZM0Z;6gPe$a9I_}QsulwiD z|I*Q?)`zM4tu-&-`n{Pn`Dpug^y6(>>)zMyc8qlLnCol2-3R$S$35Ej*5B_t#(yI( zS$;>C;0e`Gc3rAsZE%+U-;$1iZToWti49&>#;krwB{dIg8$(*y`e!$2H?dvFj?HV>ajW&zf*E4 zrPOkxi)vM>yiL)wl$FC>Dd{%wBDZ?XZ7yT3=`hs!E^=LCe2&iHPVw1v{Fpyd*FQD7 z>g&~W68W^Pf0!?tEe6Htu*!wRSm-JDEPtaU_&QHe${fR7B84XL+?fMHtz(mnHC1JJskB_sLaxDh6MdX;v(scRq4ISg&BPEF;vq!vw$cbscB8z_|5i?3e}-mcyAdjI}fqAyw=a$4b% zo+3?Wd|X?%e}69`dcCP3^-d0X-6==FBd^TlX5)m%H&%<3Q+21*ZA3fE9{?G}3sNb^ z=Z_8U+P|dtzj`25+CyI2pld%jaHOLS^%Q*(cX~f^si5J#*LK|Q_jiNa)XbYUX~e(n z0LQ@KpVZ$mMrD=t+nvY`hx`8pEF)E-MAR&uhnH_N@2dEX^M=K+*M&+kQ<}UKL60-G*NHaIq z#@yhNGT~_+Y;@i1-=%Ooz$jrE3jm%Gl(vz%zIg3+7mU`(V3Q#TW0Y#a5Jf42%h4oz zW?klFP|kGFt;X@Jdax5g@V4fxR?7G!19za{i=wmvph*)i>c=SMR9rW)>rp;U5;Zdo8RL`jiu3Qn{cjyj;WnP&^nAxTyiG?}uSYI1tCjUK z9RQtA-dvBlo;i8YG;}m~<}?QjAr(8Q{KUZ6AKGW-9!qcsU!5_(RR%t2x@TZ!r0gLEoiD%&kwX~%KYaTgDZ}UI_efg> zz(Z8?>_Yjj0D1t8*!G`)_pj;mFTNxo1+^Do4-ry;!$1D%&*{L%wp{=7(pKkyF}4~DtMmHu`8V?U z<7caFchUC7bJT5F|9!rUM{9vTO!wZ`#g(}eH>^SBmLETTvVJZB()HNkzUsmpD;_+~ zti8y{KTWQ+3 z#`BR)-}+Z2#O$=iN)HV_msP=Fe6~%9L3MieaG2uVHYkP%ln65!a-x?|W{`G1)1VOP z0aC{jgSt{uP+o*bO$FlhaJo5LIU@lWHJ)152fZr%nMarJ3STg9f&cnn{_kEbnvQr+ z0oJzq=_D{qD1G$3ht}fDfOUQE-vd~`++Ssy4p@g3({^Upj`7Xr`zr9e^_7<9{LxoH zj>6=Zj{-4Q<3E2c+knZRJjZ9Un#SncQG%#*a$eSJ*z{JHBOT$S(tk{H&hQ_tmXI{Id8Du4IiTKSIq z2;ECaqKXFW%zNyOB}kn323nPLEs@ZINovhn%k|22BW_jl7>6n2@LF2UX1JJe(v;yU zW2IYED95@KV&|GuEm?Cw97+Stp@pT>r4=CSV&@jO$liFdhqj}Gp*45CTaG;3rKs>1vEV6=UcHY&IvR?x5xpiokjMip6E5K8%60v*lXereMH6mdR z61eX~hQXFV)8FhY#VJQ5z>EOc<_d_F(KF;D+>+qOTHXAalxpst+0?h`;4ZKBoTwKE zudT&Q*^+7;cA0Oj?efySLhMJBD;$bj2v> zp)kEzb>E9qpzVmsR~oTrwpY&=ZOWj|+KAm1A#g8MtE9F&n3Z#}q+P*EsijU1vsu>e zH2!h{s22-x98~dPK*zJ|Y7Dd{#`$cqlF!Y}_Twi_-1Lo&OZ&XJ{bUJ=9uBkhW3Il7 zwNw=-3WA?5pljHI)Y`94 zuAX^}_~bFUUgE`Tj5dpXbXQR%)^XI>T?OjeMghEMalSCY{N~*UtCy;DN3EZ; zDj9Yc_Qtgas`jbi(dx2({A6HHCzuJ1EOcbK=f}k&-e}2F`ll|$7HcYI<+g-_02W${ zSCcWBYp{a0Md>v{4)U^VLjXLTe^q3d#Zc!ONz52;XfcndL3%hGqE@EyTUaXfS_3$6 zP1o@$U~aOGTcuYC!*&Mb0=UDoI=wwa4OBg*Dd~l=Qpkh0KTL3Fv483KFeAIO$2RUQ z`P_T8FBAKHBu!t>X z7I+DMscXjEnNefbt~bjdthALJ6B9^_u$U^>IDY^g?#vNFm*tGb^(1SEj~6k|vu$lv zA4fGN_~*;rKHmKS2^!~~^OX4`vUHq%r{bbK&s>CC0@f}_RyAjC2aDgH(j}PIT7S>< zu$w~(OxkOnbHzBy^@xtbV$SC_nXujj?KX6s5-o*E3C41C@HZ~r(!+6o|EnJVoUwiF zHS2l&`dd|yS_Oyx$T^WJ_W*N9Dke_%|5am&!8cihzfHUN_uRQh&To=^#hJ2J|F=3? zd6%0#cq|&8Up(viY329r2L~J>V`949G0*SOdjeK6iByvCKJc0VVrpPo;R=IH<7zRb z@JZ{WyY@5^72#T#0;D#NZ39rSIGKo*a4X~tgyzMn-KwN+Mnk1h15_VwzH-8+&rYG7 zv3-ca&4?frBNqul*uY$4`3;tfnOU_o+$tRmbXZXV?j)^4`nT)prt7Z2oPjmiY#V6P zHvbB)S*?Tk)MH&#+|cs1J7no)X>&SgwfSudeK8$I$Y8D;G;! z?>YOqt(Yb)&uRp=#4u_Z=!lzzkV`j93X^(R*%Qsoia0w9Wtcp+Zilc3?Lt4R;_RaV z&K{XZ6<{h@P~bHomQ=0#D%9RCU{8fW1v(0%)w=7hy)R8^b8m_oFC+7D0g0A{6)vvo z@~Ug}>9Z$@^Q5PP*LQt@Yp+hm14_rJ>#Qe?a=};6d;Qcy#9Ufk(dF;O({DUBvU^e+ z9seB?Q)!H-&W|RjQ?PmktD!3zcPLZlZot~sfl0^sE;7Cina4G3L(i(E*xumeSyI(1 zs)=|sGwu#9rj{s6E!)q%)+$~7udD=(f}MK<5KK~|@4{k__5Dsx+pP{NT$~lu9RN10 zPOG{eAH43j-g5+>()FU&=9!7T0D?`K!R)GCR{iQ>iHh_sz|+SQi#Z_nEWWcPIGPKf z*dYvOp4M@O^c<0%)Ckm+eTp%y1(?$(JG8M;0U9UYK4IOio5(O$l4h;lq8cTll8XT8=`IJTHm9^qEo91xE&CzQL^36hRv>7ta3 z-&>)3%@yjF5VR=qjD~^7ZIgH9JyJ={$!2^l=l+~rpYFvLx&a1NVu@Pu^gIiK+UAFR z(&Q{Xr^{Xb@Q7{30NT-|9N?+0%Oh-mz^zWQrK4**##K0Z`H%ujwIZ&QCN+t&0IfXi zQ9R;_yC2CUvwZDwBrudQwG%f!KOGxwc`)lLa6EGV2GM&3T)Tv&ww>u^l^E-5-qr6t zP6>LazW*CMTF&pubx?(=qebTX*#Dgaw-8XemCa*0rKJ@|UDgP`qNi8_RWO|+dz~~d z%>(*AJ)=TpmX=GFj`u6>n{wCtB!JuP#uS=O9JYx$R-e)+3eY&DKj*Ymx_`-^4O{q5a*qk$^8 ztJU$RpMNnSQ$L%9)M8~te)!>yynFuv`*>#-)gOQS*}Q+$)z&iME|yGP3g7?mgSqeO zOz3^prTFc;AMIH*oA3cHi|UH_hyUryEoq5+xb_o zmoY3>*9Wse@7=BS`r7Ek4?p}t-Y(;_Y^=+^dHL#@m8;Q1Ev*8ptnPcABem9g&F#Uy zs~fX|an1Iw%CXz~Tlu`S|MuH&E#t3R5fxNFQ^0@o(fZLuRJ!)4 zdDS&=`AnO=mZ5t)i-@L5C&KX8feB9!yr?y-8I@v|)^FiDaaw z0c$&E%>CG9^J@XC2_G85?)+-AXYXnhM{T_-k>07s1boB?=j+yE+cQ;}6reFLz$UpDs;hqmP&-TD|dByaUFMH zdMIO)$T~Qp9$i|6MkH!Lw$rhN_0j9^j;sCSF{~}h5FI9W1NImyzs@!P7ZxYgkhDtU zPaiC+=xhR-GI6>h?{^oGG1{_H%K=F`e0*+Q5C|H(h=mzB@2LIhmSc;D-R+{@p|)ivXVO6n zp%8a1uGlZA^G2Ym%$rm;uHm|F>vNOJ!b z`>M^UBio!(4kw=oWe&jmTx1gIIfmG6Nc^Rsr|rCik0nbnDbH!10vY%89&H_4)?8*e z6+dq^p_h49u+;{S{nonIzrKBEZnfRqGauyL+xPZe<6*Td%f$j}jCL;9{`9lQglep} zT45F3ss&W*r~dgL|H#_ zXZdykzzT}gJ=c;OJ$-6QAl7VEH)eHv{->XQve;8S_u=}+>!mK|wBG7J{NtZ34))Tl zw1a_Abtl%oep>*jxic;xU1M1PqA|D2xb<0djuimv*!4H9mnuU;4C|Hr(~mzH2-mh& zddF(EdfVIE8>3~Ot@lDcEc3_s*4xhxa&=EDsQmS>Z!Hm%T2D2p*7XATH5;&w-;z8n zwmQ|qb$WC-~C zOOIjIc4~b#i}HhK09Kx-)@bL89%E@V7I^^Z^TJbheQYe$r6a(hif-P1Y2972nnp1`XBr;KI`c~G;pOa8CC z&|Ia3&vM~)NX0!BRN)XVsBrUT(kkmC=%&E(?e$#=ELrNNmSUL^w@UZe11$Y?^VLLW zJFCa+@~6)UEW?MK%N?wxkt5zzpMidnbBBbpt1`+%qe*UWRwjVTBHA z;JFGyD6cEICLh%WRUj+hhi^*6aPzuR&w1%*dUx&5^lBuCM zw(y?H%6kg1`h!vd!6y#;CS)xfK@htb!lg5Zd#7PAHi?D6(tQu zfkVta0c%*ux&D=wGl>rX?8MlKjt1!4Q^03Df)ZqEV-5Ti;_Yenq17{nHpa+Cp{pfo zqJefaVS*W-VEYdskFLb6yg>p<61+X)#;CnBum~c%8)%)JJ(hIzq)&otcX$R{L4&`H zxKHLe!pwS2RRf+P0IY~9Eh}&UP2uif23GssKs>7)JKZEr&4tIe+R;z>-nQ>z75;Fj9{Dcy-ZruAMJ@9v33Ja$)aY%#2egEl7vFu2a~+7yR< zPq<@;!OIWe?P6bcVacB;WkZ12$x7Y*SbCw6*?DY7(m25$K&XOQ-4fdN zezBB2MRwrZj~@-_4WrXit@rtIu@YLMoVy2$qkZzkOXz4U=eYN_Iv+O+7<=;UX($YJ zyxN!U3$@s45+z-!jOEp__c@hC4M|xZrrCg?W!F^;^X$qj-NScKU@6dTgDV3XGmUnq zE&IXUdDQ}`F{273waxAQXBjU%E>-WTWqkBL+V*Y%LYMm75ZqN+aJ7J3f&iQQrL83x zdN`C!;$nct<8K{|i1DJm?WYN)ZG73erx68qB_$r$>K;Spg+w`1`O+|gzKQ`*i;Zm= zyJ-n&z_S(PSxwL2>)?X`4q zQrC6mMz+pnD7+clPoGoS#el4_;()a(8%?Pv4vf_MAnIeovxZ3*?f0S_-`N^Qo(#G z5dB5sD$J4bw8I>H&S^Dd>XM6qpfX&z*#-xd715>u)_5Pi2R0+DYdw=}jirXIN%>If zp2{Ar|Cwuh?^4~8>1uDG6$J=y0k+RgWjsCLhpZS99>xVJ{NA%oU$sBQ7&@OvD%o#s zb06t)&X1YH_}U|V+MA>+YWu=ft^C{0d_VX1we9|;eVrQfW6##kv_IDesYm(!r1Q-GJCH7#ywv0=NxEtzW7REsDrq3W5r zi<+tG5|y>X27GTA*KYKZ6@qdWrn!Y1s994R69$P{{Or59zH^>ye6uD zMk$&GS7EgG@*oLR-HO|V$&2E%)IX%y>g(S{ihFUF^1Yv@2u)VBd8^rsMtB8GsO5|Y z%DCo?HxW*k-q+H6RUY_#+~u6gM!Io%oT~Rt>%9wBBee6G5K7mGgJ6kumi>10Ne645 zXIp=+)ErlZ8s?#`XRCSz;0H-Bnq=m^o{KHg#8dwEvQMF`v2rSe`jY!VO52`$SliZi zYlVn};-g_54*XqGfig%cP@=R=mndD+dS2Hm%@C>)voy?5_9Vx9{MR?1x%cZ@|H9wN zeiN|A{GGh#sqyqLkF{|g{c|XwNIy6K`8#(do2gfO2kl7pt6BVqF|OGS%svjKpKD(% zj@1(9w1%3K4%AEmq^_LJGq;)tz{D~rp5#ZbS1TR?i&|>D49aAn?&)GlWiq4(d{+Tq zt$k)q+q-4z(_-OOE2x7W)JWAh%RVDJsSBqLZ0`X&U3gWY`x2RO6&&t4zU8}SIDT@) z%*ZZCtJTOX(3VW|EF^#!He!|Ry_P@9V)xH;by{5v4|7dKUS zS@GGC1Zc(_I4$!Kj)}^HmL;`F6Kl+9dV=KlT1%6FF@OukJR{_SWH-Q3cxCyfWOAr_ zZ`L5Kvdp-#)WyvLuJrtu*A+T0TluJ^kz{qBA(OQ7*|?U5P}t{u)7_eevc8h9ypM5A zJ{yUo>V35>=8WP|o$m}aN!p$KuE)HsrlzmGL76;hI}iEZh~bLt*P5&=%D@souVZWD z^ZK9Fd+jCemB+TMj~f%9C5W1c_8?h~VFnQ6)fe4+Uwto<%bD+j-`dgr@|>Lbe0q#u-}YPBh%ddhLY!LZm~&Zf(jgwLUQ}DPrx4L=+}>jgBP14JLg>?2Oz4Dik6QLVbdzg2;|r6BwV1oyizO*T699rb zMzKTC^!#MunivUN;i)ATCt_BMG?e$GKaa;|Kt%HVw_< z>qbz-GA`HdkU5dHOGl(fSI-sC<|}?bK@HhHN2!?x;BDX*+3yHoEo2c1e{B5C%K*5Q zm9-?@PVS&B_s77vLVFh-j`a|hi`CYYcq3eUwh0|#o4^ft6~lgh$8V2x>y}7eUqKsd zmr{Y4iIgTJ!^n5;Za;fTZK9WznP<9N?c@FFa?`ltgC%(J5+f|7Fq`G%0tqJEwN{15 zD0n~m`(q4@we9YSpqocCN>4N0!N>?_vs9R%+9ibL-TpEetIWZGCnok12v)i-LNJ_y zWEfwhTUpSfoGsTbvacNj=oxb{QE8&I<{mLx+Rw$_-P47tcI zxw&;W)@6-qUv~$$yeN?TsAW(rUVF5*fBp40b3NBsO&#$4VsTQ+^1}~5$d5n%Wb0W$ z&^Ir?@wUr7zW?rfv)|XW)UiJxCXunQ zx7W9pa7x{yHIKsG0?O|m?&QVmSMp(*18u8-U3tc*+mH5sGX`beVU3d3sMKyfU8JhsZ2XUJv|QvbJ7CUmDXn4u{y_8D|I= zTdf5w1t`v?qzUEz0;>Bw#a=Kz(7Xhh&X-xkXJ7ZSunT=B9f|_AZd+eakkaBtIN_kR zVa$i9*Ltz^tx6Sb_TdFqdK98QYdA55V z%*}on62Mo`X_=Ut=gttwJ`qDI0P-btstwEx3=6O-WeD0x=c1HO#uqoZBeN_|mtK^m zuKcec+`Z#i!K)CJyh<=l>yTxTKK4p7+kJ^Ildw_i3 zWNT$T!Xc;1+O)!Wr2P&cvSm%1d+=em_pHT1d+q1Mu|2;U>(`9$s~_ff9K)G=HSVx8 z=l$ORMPGC`K6kX!5U#w!IJ!JKz3Vw@XJ+fs4!+`iY11EnA0fm@ef8UippeD>zUKbx zk(gGk=RGn@XkWE-q6H#0%qKge4yFw!1X-!iP_F4dc6HCB#^0_}CJMzy2PN2zhzVJk ztXnZhVF{8eXyy%MhAW6CoYCYunJB=m3CzAX8k6vQs)b^Ydw5+?jaz~3$+FQlTzfEz zWi=NS{4BzYSxZ%OFCAKO#Hff^CSar=vg`Ll7Py|LhsDY|pxx|1*yhGrNv7T5+pR)% zrH}-&<^8p?s#h{Q`{?U+curZfSz4_uVRg?PhGZsW5E1tYYosa#rf~W4L>I2}D+UWvOQTYRy`8@E=h7(PC4d+&V? z&VLRECic1jQ1!7XfY!{P)QX#fGprW&+hnjDb2Zp{!OV&4E4pWiMEy$%%YfGaO=SRT z!74yCc_}r?qt{~+S>30v?n5DD0IzV4x(1Tlqf)+B{%xDzVga1`eRa)g-k87kI^q*; zzwB>we4OfMeYz%b^5xyn-h}k0AN9F@LOa{bK3(5Zs3au0=K9tC?;mE5>lRmRDAlpj zUA;q~hF8h*_v!xNB~e;4Yn^uXOf8NX zkt#rI3y3=``%4oM>37`#dhTG^b~V=YN`C(NXZyFIuIw+r{30)3y)v--+uPre@%Oov zxB2O(AFZFkN~Y}OAO72aGXSiB^X=QW227q^cDQ%NmjWb>f4ly0V;e~8unt#yi>uY#2G6cu$fui+i|{)d4|%eH zxL=p?Drnf7Tk{z4q?Z=Edt>WB-E}XPdAVHx^d;g7EnZWVU|I%e^aN0vOF@+k$`dtf zvL>1vF5Q(|IoEixlP8)b`SZQg2VFPIGpdWLhS})z9cB-uP>_DLTyO5L0jLh{X4??| zK4RlASM&BhZ9Wc}q{`^U zJcesE$4*dZrFU?h0Z#*g{`?nMYYuu3p4WlI3km|Wicg0XnD%$C(#sBbuJV|{d1G^V zDq@mB-z)(kGWt_?ba9W$jWIGx)50H=wI)#NYfCQsG42FoS?M@HTn>`wzXuQVTEX$d-1ncf5hape4tjq zZa>3pYkQHfJoVypPtA$ojszgpt-&9)<*n+RJaTYOwy@%Bj`sUFznl|m9zTEPW*xtU zCZiR}Wh)l7FW#?hes4t_`|@+*9)0^;h=6CV*&O`~=TH9LPIS`FUY<*%w#!&XHiE9~ zbSKfSuX=59_xkKbc&mVhM1EfND0Gdy}I z2hZuVWz*o*At+5nI)t{Y-K@!1X3Vv_eKP!@+uCCZ61UKDUCm~FRM%5o*;ZRxEg~0} z9*3u~nR^G67Q?y#Uj>;8Omx3JSZwJN8>l5U)3L+rMcsfkv5_VI!kl?o8L_&h29id1 zOI7ftNtN_aWs&x!iIQ|LshjT}bxIY)+$>f^t);5ho3(Kfo^=e`R%2GZt;f1+DI86H zB-W3Y*SSQN-0Pcb2OS2o1}oL$ZLyD$Xh_GdnS?C~Uvto+^R`Fk^TTJ4W7K3=I;VP{ z9h9op50s(0T+_jzp9;Q5D!-UH7cQ-;tk~f>n$61r zUKyU;NaH|_HzMvn-CCUnTgfl+BzBFi?zbU9 zAkTv>-!Xxl?b3$tv;ZbCTJar@eLzyV-kErbn+bb;aD_GJaEEOEg0bQ@?F#td=2l;Q4|Pxten01$>bQrMpQ4L% zFK*084oPt(-Y>@E&)8$EVc`v+TS&I`Edh+x&7PTo`EFA_O_@|u0IC8=GVLJj1G!ZTpOkTn(=$;ZY%hr5z}!bui2UDdl;M7e8+z zh}F#4Q~$gJP#oI;5b89X3b2@cCzEQcesfGiQD|h%)*f-F z4Z@%UUuJHfAy~Ovn3rDQPxh|rQ}y6c97ADCnB1K-ha#G8_7o26xlxXfHXj4!29gniAMHAQ;UBhGZ~ zlne@v0-^y(o2JQo=?XSWO~ZM2M`;(!gr;$8?I zH+zA)qU!pqz)=tNlKA-XR^BXab=+EuRoA=6(RQ==shh3tKeYyGGAGT}tDr^!s*cs- zLalb}=f!gBF{~DQx`6B})Lzw+KNfSVmOfFd@~xfo?54i&uk2ZxC1+AAti_Bjzu#Qn zqFyS1Msww;TBme;W?M0^S3W$1^$4av*CVBh309v|1!xQ-dI^_+lvZ z%RH?CI(QZ|Rs*~sKt+$Qo!m{qA4TJSZPY)c>He6P;5PYKLc4g+_0W>~b^tMC4rd+9grHDH6Q_fmzsCPy_FM4LyLGTNCJZL5uO`dk6!M-n^VH7Ur)$`tNA_Sifh8n6#5ur8hL^ z7#j9ccXidGrNw&H4_ma&MZE-v#oF>sA{!+D)hJMsQTetVM)ucFo+%fcI(Od9xu5Q& zeC{!x&`X@`1?#2EJ^u|2mQeF2IV~caSTyli@k(GY$9;28pN^bU0!g}*Bz8)`VfKI^ zK0Svoa|o>J63p1s#uyYZOUq(7yT#L8dIl6$@0R$;#?c(Wsqp4yWkzIdorR@iG-gWO zKJ{J$w9<$9!DC083y2y!sse}#BOO8>1<>hmXD-5)xT(8Ojf2b86v;Tx0ZPZ2@xgFw zHo-H?&)D=u94-iZPhq+qUebp2vllvGdRza)xe*Jy;ffO~ff% z>7o80u3dK5zO1c!;VzB(eGvpNF4cwj;7o9##p*7o77K5?7YD&JfWQtKY*%iKJGhmh zreBm}npuAqjCuC57cNZryMpY3^*#s_Jh^2p=Pl!xKof>s8=)j(%qZNwY`r2e5nY0l zhCvf88Ryj6R`r*Ha-M9P|J{UlJu~Lu;UZUaY{AmMPJi ztLpJfMkaZ(*z*~^sG=ddDa}swfH;Toh@;g&gb&Y2cHTc2 zuk8Vr1@-9NyUDyA7{849H~zysAEjoi6ng0jW+@7b?yw&#!`k~GD|XOb_*#?oWJ>gBHXU-C$`d%VO+kE?Y9;I2-{I!5J_?vw-CZD{ zug`Hj^?IiBuYA0=4a-2U%&;=qz6K%jy-S&({Cw_cCm!!#aBSGUv@fFHqqSQrBwf%b+pnF=YOxN38+wQt6pR0?7kyu9G?iqbK=2qs?GxYjA zS;D3=Z_EHpz!H`@DXVgmh$aevqmvGQ)2bvQE$tSw*E*HU6-M7RwHw5|Pg^s@_%wT^E@S)y=3YLWtaK?Za$K0x5`cC%SP1#7~d zjRMtx@kXChxI9{V{K=DexB_SJnt;-g7zALoqnrVft#FJg*o&ZMEc&!-X@v+hQ|4t5 z@WFIlGnX>7h5QqW0x}5~nEYf26Tv^d^uQ3{z9cd1*jLt&3KooofI^W{iz_ty#yX#Su|^792LlA=OF73R=tX^C`HMd*^Gw8rR% zcea+bW~d6ozbs(&5;a(_uRksT@YB-o69a13AFf?dxhRhm)V*H--+mdJD;_5+#iM;b zTY$GFRdP$DTZuFl)~tNX^Ql|%WUjsopkL_yySMLbJXG42sM74VU8g zS`&3?Yf0A@(5;r$i>057Cl{7*NdcG6m(I(FWj>YeDY(|>*7-K;&Y~>Pwg!6C5{M*E zDrjr0Dodm2ITgm$0z0B~PP3TSj|SYl2DO(eQP)S!6A-i-4AScP0;uUhH&>%~lPg)R zPVX)g;?Pny*Zmrb&5~UgAkSz!K9jz1=V_89>Fb!vkn)C16h}+33;@YmBi51^`o6GS z6u8!uegkEH&zP;mP=TJ;N7t;*4!Vuus=S~8sY}V2?f3QMdnzk9Fq||793Bmpy|)<1 ze12$La(ZY0yZ0=$23e_FV8Uy zAqRNeZ}Ai>bodbE-C#6;TYCkYMyml72lP`d<*pE2uLF+*_Hj)BwIH0y|3Qxl%IR*; zgjLlmkF{tO=XJ~-`6j>f{*05h^)r{4*)~Xh0jc;KR$!LTwWA=q25?nF-;Z!trR~S0 zoUpM+TamWq=;WNu$X?0s4nlhY)!-hnWeNdZa{Rb&?!#O|IV}m+V~=7DGhWsCG6CcyWvBU^^rFJ+QiQAQuT`azJ{uJx zl6!F_450sprNOomJfH8F3f&?U#GGvjSSxFx4tUdq@0<55?R@9<6|)WDNLtW<6>;lb z)^o;XRrWwDYxir9LJv1XD*Y6m*N!<&a;YBlvB3*QEo)O}U2D*|02DoHf6kL<@pNF{ zt(1+q#<5=!JFfz=)>qw|+Z?Sv2b6aa^H|YiZ*hWRU`qj!Coc0^rdrRH79mSowD$cx5%lh>>gQi^)tO<^e~HPxUf#J!tU*<%mO)% zLPd=AgE-Z$-XNMt2C<#@=tmz+lLIlku0FWc;#9t*^E_)=nR{1^!u3>DUmE_Q1pk0! zHRhs-d-DA&u+r~V>$Nq{f^2by4hpQS&A7umE}6v#x6JuFb-Fk7<-P~EEjYuvy zBrTlb?mHvr18K;#aYeSC0OCy10C(9rEOkT57vxpsNtBU$p$Wwb$D`&g=$&zv>AA<) z(@F^fv&MnBfJL_z*VGmuaZXCwVG)EJFyprbek}+@jC*boD@1GNz}O)t5t$?k100Y8 zq`tNU)I+WT=I98T($^)4z!N!_=0;q+?Bc#Few~(l>$@mH!V9SpT4%ppYeQ=xkMMbF zsUNQKUh2m(XOi_3{8k9eUC?r2az^GRXk)D}B)({5RyDr0OV!M?W1l}49HS0gbJs0* zX{u!z>TB@H8l=>ILrl)#U53|fdDivOX5q%6=DV7hPh8*_f4M>Mn+e;) z-%f|`ibup<@2w_v#tN+%kk#V~_wQ`Fpuo|1m92 zJL6uc>aCOHKIX&XDN0->ie}&$V@9 zJj-nRUTdaW0wlGViYF`?hi;bEi~XYgw$BPi=S6d_@u*%GbyRmv&DN>^F4yivU1h{; zu;Mv9CJ4_nHpIqe860=hGtWHx*T-1iylrvP!pUf-F>cT*fqSW2eFsaqJR&81H)7nq z2Ia3}2?Es6LmvqqqPG;G30Rwc}4U%A3bCeZI z#_57$xN{@M#1b+X!|iy^j2R8awc-ISYVi7;Xum4hHUPmvSkA`gcJR6M@17ac4ZH)^ zt;SD1h-VA#Hs3BJd2Gux)$t;xb(qn1HXy9iHw=sqD|C{c*ul%l^d-QjuZzL?Wa~Mn zV7fMs;32j*27>0~r88XhTo96o1$F+bR_4jH@J<_s{BK6xU#$r|%y3bk?3vOtVR8=y zxCYYwYowqv&!B8hi(IG{@ZaR;zNUR`FxeH`=)1QvQ}deNXH8sLgWN)_7-v2XwH{-J z9@W?;dtb=vO=Xj1-i1IM8Bqr+E~WrOZv9D%Nwh6uhFc!w=#K(h=aTOHn1gZ5^-^u&;@8sF@XBgin1AvyG zY5C!Hv8Eb$MUtP}+mDv9c)*_5-|Sg6?sFN#69v%Cv(4Wvfcp6|1_htDOTV+`K)CdH zTy@iZrhr*zT3sfWYcDUK*zQs{VYRHPB~+hN$NNmJv{pB30kd}x%e&bdUD5e8u(ca) zZE1-bol6SS_D(O{;;TvH%u;PNWoN5ZYZ;4eUk+9a7E8n}fCx6%wx8}kMNFsj^vp(Y z02;Bcrl8Qw(~zYsiSFcK6OQj%gkR8&(lYzbuF+vx7>}`p;$#>iM%6*2m!mltAZHIcoYq!4t^>SY>^?fS+531n_?qUJ2YB+R#o9b)bgbYlGnA3svp&8#_zqJx z_5!?_h>GDrs_0-f0o~)~MvXXGT0R+nD=lMG%|blU`X>RP^*u6HIpkcr?gA8h5-=wO z40kc>@Zj&CR%W|T1DtHmPj*O5HN%3;TFu^Mh%u5DknWOXSws~qwIoY(QB2c4++wE% zO5xoYbW#r+FKR2>yv|rz9S~jtQJzfUw3UE zLn)N8&Jx$Rc<=tKwtigbq7@9>yQM#M!wY6l0s8O(&PcxCHtxd-N(=RF8~Y`H#-zsY z^&jg%^ZSI1eJ(INb0Gn@ zq&Ok~ep=e$A&8mAf0`DZjNU#sXE1}iypGL@pMhk=5-KrO*EY@G=+*@!TS6ip70j8y z$gq~)Qv_glGIt-dq%v-%yG2U__2S=K`oVj3+!*dhYD4p3~a59*o3l zfgVa0Ly<_9VAha%1{iQ=rZKpd{dj~W1wdmDw=I_P+3!bZA}9yo^rmdTBXLw)m7_amu^6VM6wW;Fc3_Qk7QU}l#S`BQ>p`aL^BG;e`8o_EnL5?a>%^^e&1tBVplpzLJX72{C zEq$-RL_7{%&zTFU3G!~q{I~!uRm`c|t7f*<48STlYi-cKzI`X!vkBsh*6!xRjg_K# z{`?zrvo)*i($}kRUdb=N{${I5V^W_!eIY;p`m4Dz{-^)+w{pFJu1_C7nIia4fBKXB z{XhK0TxY-i_B*3R@7}$)wtxKN9}M7XMqquHufP9Z{_;;hnJe$N%V!L&*Zkdo z{yPJ>pEX8wnSeL1-^d`FQ6ga`e5te)-a#P2=7bfa<*rlv{l3Gn@Mkx6NnE94e^Q_xO5I40vLxPexx< zsbHCo;o`V!7uHt!-ZxsKb?NhPcW?b`A}q#h%HV52E!ES^cu%)hD^1=TxEKpaNo$^g zApwuTeMgk~QgHE9%On99=<`~Ft9cGUXBJ_AhaFsbD{a?4)spOVRX|(kP&7LI>mdW1 z!|yyrZVFGVv^Px(jP+$%2mCz@&eK@3CukT}Wi@VK@Dd0f3nz);{ zFa!kIiUFAQe4SU5sc6BT)APw?g0<16DuNHC+|CZJ`=;o?wR4cWqC9R15a~@s1&H2e zhiuyHx6}P0Ejd{(JCEhX1 zgOC|{A05IN>$IAS+%UrPVlMV^pQ{~oXJ*wBk0WFGnGpnEB>fUNKM5uz96*L7V2MHc zcHX;G0a*`%RXsO%#(*T?@%t^rzmFxeVRyjU-7BRvLH*IJYdV*h(1S74WDqLs`8#tk z*4rc-CGxY0o|nP25uI zai|WM8~RPg&4j2e6(o3xrs$Yi2wueFUEO_%*)f@i!4w5kuI;%eZ}abT!L^noR{n>5 z=Iy&2#U=OTBIGvG^P9w(!ein)wBe0Ax355$_nlTjcH6KJnW55zk>(a^cL{T=dVVL5 z${5kPZ#d;!tib9P?24>pfc_=s+1Au}Qwh-DgDr3eX?n_Hy~V97UYGSg z6dSs~?n_2m72Zslwf6{owIEtnTPWu~TUOk?ZS3m>;5n%E+NJN_y)`Q(Em~?dRG_O9 zuORdC>e7-T>Em0e7`13Nca7CpQ;qA?w(sA4@Ql8D&pNEYmgQ*_;AmTQJ=QU4wqMWi z>4|svec0{7Dr2t6nv7`yc&acPM)#QbytMUFB7;4rHm0|SW$?YajN~{9Y*_|Jv;8vB zkB(2{M=j=dr*%zdn_o>prGQ&4xu#rGaJA6N+vT35sh(+eHj9+fLcIs;j_RTPTrfG& zHKz#8?Aqu*c?dP0=XOhXJJ4+gj~++f(cp zyiiB0^3rZx0lTfJ>`GP0H;m)zK7Lv;X$7zJ$h}YT(DNMD(I!bt^^5KgTDMmq#EDn3 z&mfV-rFc%)_ATXPX*!ODas_WgkApg1s4nRWRb72)IoN!bbORFUg?Z$8!S|fGzHYy{ z$8kF;zvTl~jcNtj>wi~QpZV+gx!2zbrrYW32pm_};+nqxe*Q17|C)o!i{8(j>qqU5 z+qTtn7SUYJGT?ryU6Zv%w{6<3?|JmO*WcTjwr9HkQrmx1$5+06NUWK+5A^5K zTzwnvo5_ycHP{m$IArR1PCS{C$EWrHuxeQyF<$Lczq8h>m(I!iFlII9I-TkT-;dsf z2!v<}ZEVbbp;bP8Yu8IVXAF20W{c(9^0rg7WlH>Tp$z6#`YkTHeh%=xWbmcM&0LXN z#{CQ}v*y}69}vrleg*H;-NQE4E&>Q!d}}x1u)fV$#~eeMi*VZ{jlzbfAmZzgG~dV6 z;MzOSq~s28I0lZ_zP7gFGt_9)B1kX@F|E7{^4TtZ!x#M{+hUDN<)fYYkdl~-4>u7+Ec9=oRr>5i9XafL%9 z)oGqo#$1L=83>O9_2fMF3sCIEiepyWaUX!fYK5A+;@&>%ld6?N1#Pty8sKBL(Ff1C zJ6e|F2Tv}fuC>c=28wqMOjL=c7BCG*&}*$esknE`&^*?2v_wQZVWw{dr|KfhGA;Df zFv}RqSLkQ+URc`c^FF9cF7~5(nW!~&XP|j+nS<4eYGEasL~gm~9w1DgMS;|4KzMYw zMsZIeo#Xq@_dfs9;MzDvsEAo%MG(p`_p);g-iiC>s!XdE=T{S5#ohtPY;Z+pZCMZvsd1TULX4vr^)k2ruC+xjGZ>yTA{GCFQx9vyg#V2#+K}_yG#0z2Z_LeJI zj+lkiK1I&Ew|Z-8FEW`^Tb<{e4w5zeZ1b$TNx%BMtS<1)kXDx-FZ^R2@Tq4M=`tVp zSNdHs=gmBvX4a4V7VY~Q0AudtNOZ5)*9qXc;lyv-&%8$~Kc@hhL#vx|kjLbZ|K*M- zLDNK5UIc<^Yw=Mc>u(c}&2EwDh{3f2>Qy%Hi-lZ;&FoGj)3^!0`Sh?1qGr*1@&A{=#xGd%aY5Gxw~i!Q=%cXm&nFv&FXxl5u2q%>mZO!+a>$;^C1D zfr63?Nkh;&0}zq`&;?2fo}t3*TmUD9j|5=g3C(FSU5fP>v9FU;=3;6qP+5+i3Jd8S z!Z+6l%Uz5Zf0tUfkTJ>Zi0*x1^v~X$iDB{?2v5 z?>Nsj&m#86Z4RX1O{)@j)%4W~FT&d)M^J7|0U{DmbJIvC*V7GL`D)14(*y1IH|R?pAN z_s@3^^7{36W;MLiBt;8t)cf3i{IsxZ$i*SELU{@d@qU;4Z^S6cnkGB|qf9<^T;=qkwl z^{>CmfBc)jaf|K4gMsAlfB4?4r8j0>^;)nBa@CFahwr{KT3|J1m*2j5^~~DpJpo!8 zrRB6-&EDGHFVFHpzW@GvvyR>ynBG}ztd3jnq3*hRCyr)4@u z&FXBioEkg2?3W9xb4&Nt(Vj&YnI?s@%-Fho0h~SVG<;modVYeEffi229BQ9dI~bP9 zCK>u-+0!ipJ-jWBf0sFXIFt(pAW9rGcpqo2%m9w;{=k*qZw}5nxO2yB&{;n--GjA zb!U!v@SGC)&S zB*;3c^NOz8Ith8IU=3KfITokm&0W2@e!#CibSHVgE44;=lO^wI|L_0ve*hS_f_R%e ziUKNkWBYXjNsvqNuKvZc6G%PM7&jZ_evq_R46AdgVdAl#x{Jh$8Jm=Sj zl?fT-_;$$nYzCHpRhz750!VNWI{pWb74kS(G6}fdh%*Q$WP=r+AJKN26Yvl)1T~mF z*^_np z+SS-+K~Z%SL8sePmonZtqn|W!65V^9xiN;-$K-O%Y&5_Dna47XqrVfT%Xi_W#dsae z^(cp8V{0kQRItgt@4I4P5@WPYL5BjDcUChOV+C~1fd5Ou#@Fo}YiQtV?F6+g);^yoNLg?B&qp+ zrKJUIUagTehn~sz1Ren*NXGMEeP{xj13;2}U-s@NwFK&1sD*R#EWWx=wPekQn;WO` zOP}gO_C(^b0!FO{>aw4n zz4%6cef!q>QDIy&`zp9oIP83MqEwtqD z;O@S!7U28#*LN;>E`90wdnzXF9ydOB%Q*$#*B@>S1U^~7v(np7NZh1#S>I`_sXn$U zG?#ncT;JOIuvpE9c>(S2HvD{f&g%tynl)Lil4?O-fUNEb0|ASmtfg)AJwJWoaj6Ep z_MR-~7Ii5vEV0uVKw@X5Y(Clg)qeEwnzyJGstSh5*P_P5S_vX-EOlRgusGEjnR2P5 zJlN;3H0fOIhOn|4os48;&MQLEvQaph6&AomlW~y3!^=8 zB#SAGw6!x=^Z-C1OrX7wx94*N2oco8>*YzoTq(Qs&Hc^~_wj?4%horembkZ%lLE&h zT}g^g{X|1r3jF+iUQ>GI}1G$N_5@w8aU6SvD~9N~j_wH?3A2pU1(rVtN_k zRXad3cUwM55NZNMAH2I+rN-2r2g}Rjy=J(=h!JoSJktO!KN)zA_7cyc_t@FLuJmBW z*P*B7wos`uZ$0dodCs3X{_X4cbn;zx7xE*kq0tz|eWr^JOU`(xPG-~#mmLVrWO|tF z5FU(b&glW+8p*7u-Acdy*q~Y6>9K256R~uZm8s=i^dDoq!Bl!?GL_1JxQK^f!nA14 z@Zw=P8qyn2<}t;Zwzf8gY2{+&V{+y-mwE8<;yGEoyo+R7eSpBh*JzZ&Y3_r7N0jgq zGT^lFV(Hw8`Of_JX}tz|Dp5Cuxa89g{ix;Alrr$9P{oraPE)Jva?WEJJtkD^nws0}&db#(u)VZ6 z&>fNo3F1Ka3y{?Mqvk+Q`bGuq*ZirVqXke*#m%#EeT!^dex0zyzOm<;oWlZSS9(X~rdfwOtf!nIEY5g#^M*patA{n@+*d_EX{5bd(8UITSUo-nCdtnt z=LSI~K_vEe&6Lh};+geZ)M;e~W9LtqJ=#5fs^T$SX{Bdh@vehH`4O4P@or46Y8gXM zH(a}Rt~3?ArsrA?-qX@0xM6*CToXy3#s;?7VW7a8Kz4n;%T!<%qYBving8a^-(%rK zFypSpoAQnK9_4SuEQZdQJYfNV5B{ulO%r7Qb!#ij+<1&v0$ZIIi$leEO?=@ot&Cv> zDDBQDJYK1VMbV?+#WBMQ5rPuG-w(_#zl|6Z(|CVvB-1B_bq!oOA z?z<*AwpefVxq1gh$Rk61a;$Wt9a>w>9TgW`y4IdIY@qRa-&mFBaI>}-CInLW~4*Q=2Mp7LwCo!xnMg#Ww2<6HFN-6>y z1&%|M)aV8PSub@$DG@8hfml&cIHo~3;O zZtB^f?@vE7)3<}!8!O?WKvUgY)#X+DxPXi9jKnQ^9|x>%5w&>J0{R{-$;{3Gs0zrI zIBB^?t!5hLp#V|O>vdWS*7m<;$aS|#wHWIBnX9RW5imKD0^gm3bXphHnyA(+ddxA4 zti|IL_Tr+z#Ra;$gF4%y-^hwg+U_IGruD4{CRa^n1GJNeY4futT|7m$qRG)kQd+ zhIqk{FzjfI)GmvpOK{b_lnI^lIZewjCo{DdIM)sAH+0L<7dYX{m3TY69Ldpvfwyzl z^nRu<%uYSO>7*5l^ZHyX|L^1KWi3=d+_&Y6zT{$yc`!HH);D)UUols;-!IJX{}0EJ zu)9@&lyf19_7nj{QV@*Q--S*!B8)? zMw-UBfN7YEW^s!e3iBJPn|^b^sE29yhMk1q+dT2lI7))Ta1ZKM0>>D>VBeJqv~kZF zA8C}Kafxs=;ZW!8%A&vuG$3&v0 zpLBN{-;qvxypFEV*622z2^XfreX$65OmKB=^Z4He!2BRlTwY|QEw(2Q;b15{jyy1h z#kAhd!ECu_-7PzykZ1V>K(kt{(qdh>_I?ODFtqjlTv-W+4Sj3=t{_if&H3CgW>-(z z`WiCMGu)($fKA#OYY}Ugrzm_zxU0+&`($_NUW0c;R!_zmbA9nWI8E_A(=p%VU9>?? zB~E)rVR~i@wZt|d)VOP$Tdii9H*9J~U@^oU2%i$`oFNYs%C_G*#jUl73lr{>!t;AO z$G6Y$qe8RvZJ8S*GsWs@2$56wUuGxeU-_mDN~U6-w1z zH{($MXn;~bYb>aiuTkqREx2kC{iHFX%k}Catnsu8_Vj(eUcPHBSF`?_%kYH><{#c( z%gb+GyTx{CtMRiMd#bLyT3+YHlV|2qsrR{A`hNB88>|1Q&-Qtt5l^n3*mK<8-FRJC zQ7i17++1JV`1G8WmKoeN+2UP4ezw?LO~%ykwG7Qib0N0aQnkG9M{^lgfb@A8!^@X1 zt=|rydv$ST^hn36&#eiCG&c0^^C!E9fkLgj+EIc-lTe}Dmc?DFi|t{uIN8`uhuK_% zn59=po0oguJ=_bGgSs}fKeLkRX_O+IXyl;XDz~G|wjpXa%w!Lv3SDPS}e; z?9v>CZ4&fE=n#OCHrxOA6F7@!tJ@C$O?FZH73mvb#!CqcI3?eTv{zn;Fd_v6$2{Y+nN^Q?7jt^EILp8Dn-XVo6K zN5;NKk8@KXUvcffAHoGj7|_dNiJjNi&0D>+<$gJ}WJK1WxP`!nHX!QN#n9YuP$-+g zbr68Lp8F^TQ}&bDwfyS}fDJvvL|beOw6zI-ybT3z39FK<1Ze4G^qwiygmY6Yz=B9+qM$7_ z<4oqjNl|MltzH>h>_EgVESV^WF{5r7*@*<0=*S>RYi`!{bf&$F88Pd_c!~HNA4gh1 zr_h}GTucVG(~CwznJ~jzD;R57QUz8!E*_DH>*2Pb8(#8;9zd=qJHS%Nci;P*3riBP z)wUwX-|Ny^?VJ+Ikdf@XR@O(j(iVOg3WdBwDvOEK%5#*s&sKgnKphE~PV9vhFJBD` zYa`F6vV-weBY?QX`s;8H_j_?oO-SD8az*cw{HO?lylxfS+^8(@7FF@w>)tN!J}e-u z^63R%_8R36EBz zT5oOuYUfFm^cn?pn&`-^vKk|}2&w9>>#^v2+gDac)Z$W~8wgXNqT_%5@`aVMQB8va zF>U+d=Chr9_2xD9vDkTy-@LuOQEDJhpFJ}wYV|rbHul+b1E3QW92Y1ZW3i@7zxIgA zKf2aseQLE;bso*SyU-H_uKHqie3oztnR>OY0y3Q{EzP5}QNfX3`{Kn56ZRP&dUbUH z*WTt}wPl@Y1&-#PYqdB>b7eNy-sL|l409dp7EasBEjL+(OT2^5P85;8$ z$$PNACMd`*_U>A3c>-v8T-qIw0p3ayDfp435AS-taNX3y5PgBtH>%om}R2knGqxG zb;IHF()-FfsmcjcV2rzP?VXW`s!Nt>F`!Lei%0glte`z}4Wnp53r!gSnm!Zg2aU-x zG%S}B;9FWK=Brh5ghz(0;?@GJMr`qx4)M9|=gh@1BL3Fpq9J5M$|Q#=d`q$#66!o zuBy)!ZE~>vcnXh3n$6k29_N^Jv9g?OQx~-S`*HT@RfInAnbtlzG21DOH`#!)PMIG< z-3nDoFbQJ>|DI9NKz z+?U&JV{Z4mO0#!2rS|q<2_QipF@y$_#ZrsrERp|!Q)ngiErB? z_LAqQcS<=gxgUx+J(ya?m6N&(?#m0w>@z?dUea>Fa zryFqRcf2$1D=HvjZ;|)398tUj@V)E@--moBL7RGALp`RYttejQ!N=}=vHmviF0JbI zX(fcKDr8k!BEqfS*5Bp)K>)p-;uh!Di_cu&YE49erAPtRFnES;6Zj8CBX=mPX%bRsKL7^Dn#H}nDj{7Txe1|Wa%Xhox&q&7Yp44^AaD( zwdJ&6jt~X|SyLtlvgI+S;)-jS8QXnse2p0Y0664+vV?OxsB&@N7>7t$7wJ(M7B*Pr z=!)qIv0+6ZhT_H<7E&s*iif7-f!sR|j=Id%V`0v+FWf*5s>axVGeJ*Jelo9kpSzqk z#Enh>z+*hayz-`ry*#*^cY5&*K?@u_7LU>bv@8yq<)-K&D+v&t1`c7d?u7@YM~lne zLjjh2_XL#nx1>eu@znLg@vZtoNK_#rF%Bv^eLhn$6LeFglpPYEJ9Jb*am7uE4)UGn ryDQ@!wsdt}#lXO6Q9#Cg;T`>dP(g;)dH(?c00000NkvXXu0mjfw#eF( literal 0 HcmV?d00001 diff --git a/docs_new/cards/Autoregressive-card.png b/docs_new/cards/Autoregressive-card.png new file mode 100644 index 0000000000000000000000000000000000000000..da4c367c36c03b2f4b4c7e618996ae1b5af9a4ea GIT binary patch literal 661305 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ý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%0DnEtgOHy(%pGYz=_a>BZ0K90xlVer7=v0!Ok& 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


Q5FHWR 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

PJ&6O!!&90nKWQUT4% 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�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 z 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%0DNcKlA(V7JFLrz%2{E@@>D8 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

    r-Y7Yz*1~yRJ{1&g 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

    CQR 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

    ?8Dc1|9S%XpXA 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�o;`YZWE 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 -mEhb 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 s~JSc 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 z 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 z zwk=rJfu^>guCW&<274WpGdQJn5`Wx8*_8t;1a(p{LY2CbhdS#EiCS48opLwAupU-s z#sH4oB1yd{6gU z8*be>%EX<*p$p1GQPu<3FOgjxPE%7YRb*BC|JSTn64$JadG2Zjm4m6z36r7GehlcY)xW0;t$i!3^NNvkg!a&|}J)P7)y^XwZ?t2QV;&_?Km^V^Evv zP*Kq@GF)`vTcV9K1UH0EmhuR#%QMz zJ69$}1&AWL9sp{KI_D&^lWf5=Wl4tDuR5F>hI(A<&}s4>J+Ot2eS`JW zq`}Zlz!@oWd;91AL71oL9LAjSK0FgSY~7l5sKLVE`97$EVRw-kn5N9gt_ld{$6At3 zBLm{MTBOVy_NTK4YmF_Uc~4?lk4uP+(U~Q%a7s(r0VNJx|hTjY0ne`u9o!n5eCtXcLA&pMiD5 zd2LeYW_GX0E@PZ^e)6899$Q)DBHLg!GdR{~%Vrsc?^p#+v>n5&!6y{8y=Vp0lItPX zPn;bs_f$*!5s4NPi(%?BTdpZ^V5YFq`L?dQS&pd~lrezA-#|pslfv3Hr=T7q##vFv z3H9(pl|I7?zX&dRkN(w0fCqNo66lLM`UpW0Di#7oYYQb;zJDrQ)9D8)sPS`sQP5hV zQd~6&K9&>H-=LkdB@E}|IMdE|t*JFKdpX7Y?C7cMFXskEXp^t7=EJ;oG2!hpml0VK(YnM-Z#bynF}r@2yl_MgZ5yj9}kgttI(FrKfw6 z=TFgkGzDg%MjsoBzF@(8gwK^FgJxL+4K``|fxGwH-Y-{8YbhC<(VZ;pNgdB*adr-y z6?TNZd5c=?C^=EbK9O-4#0UWl(ZHkQo=$Z>%?gp%zqb0XY`IYH2yN zF*iYjm%E!3>Bw5kXv6=4vv4n3(!n3b`;7W8OcW_N`=Nj7_F{t@q3l?tuBO&7K=}|z zHDwRf2EqFvO2N(z+H0@BPCDsk;5?%N3UNJ*UaP31-3gNTq1tLZnbqAS_@iO5ISmi@ z;sxjh2PiUI`W;G>KW<+WP8uE0{&4^lL$2YF)GaMmV8oHC{$9s%0;A zKMS!QDuE$)O#@*W=t3mq!bZl6)b&`e#b)E6KnV$FhGxcM3BG+CZme6Ivo>s18-wVN z<-hDgSaE=QruQI~$VH+teiP@QbN2oy2=>@K(v~W^4*48cNE_g?O~LGxsRF* zQ;>=*k*@FaFV=wejpVDz{_+R#rg66^$o%Q=|IZ17wh}_r%=)&b-J2rkbGVn`+(L> z%7Z-xDx#;Q86EunSnY#!Q1u?z-_tXJPDzh7dRF-W_wj-BsBX$OGXVE~s6h03S52ET zyj~}!pa~i9t*KeuX4OR1LXJ41ts85Am-IPCtyINwrJgTWiB~a zU7{xY>|4~VvLplip~~Lw>>@GaX9Q#jq%(_H zsdgR0QEh08C}(Q{{Cl|wOHKqPX@2@Lv5)p<_aC-lSRYpS$A{Bq`vtkzI&h#>Ob?(GTLUF zCQXO>6!)T%k)EYAk=UbC*U}!9rgJkMM8N0lgX67jo<4m_2U#=@BFob_ptkSdxQgV& zgBXsF(_WOO_F5m%Z%@UpPi&L392a~3;#o$~vqXOU0DRk9-^MdZj>kdGi(fo{Cean4 zXuBZdp+7KNI?p&&P?Jul zV`ddKb)e^>{?(m|XV2u^(iqRa8H5fy z&wBgfY|o!PPe*`rb=2W2wMlF`Il?~PUehrjM4PJ$NO%Y(HQbGZSt4DDS+=3T3p$)y z7lE3*jkDMB`R{m5x7UF?H5U|B-@Lxgw?pV~bIA4WYdUHyy)QvMo^W6H+ZrjNCOOqK zLUVvT?ohdzh$8+%Fz13^X>bW=QCR0pzY1}KDMyoY`Gl@MgrHTA39v8pyRr{{(RUq`o847 z_vYtq65Pvk+K!3xldj)z;GX8vn~GbL+6^$tXO0|ah7q6 zu;;gHqpelpe7N63^>FU>3lzi!?y7#!9s3Y}s=IRw0VMz_Ii=fp!q#nT+5tY=otof7 zs1y5`kcRF++tm>8xv<3;sD7?KTNng;FjbVzXgaT;;2kA9s(XZ5vY-3D7CgxGGKlj- zI=CK~pe0Ztu;R985e0izU}FgUW^ibyu8e&pumhnvFTL45-|H6-vZJ2SDZVEK9=Y%3 z>(*^GS}r1>x)N)sCCD<$qC{V9L8~=^o(@1ubHYerT(^V?{HK*|sv0_K90YnR+r*1O z_zFIHC0oR6!&muO{vo~x{9N%wgU`X;t#?oGlCy=`%Mv(GnG@o}C?`8Tp;4meyp zcqEE&tE9T)868OM>+oR|R8<5X9tdo<;^B@#jqN7u!trvz}HzA z-rlgOKKuFe*B`Os4iW&v`8jof3wPUj?(KYheVneg!1sRhaW~)S{&`a(i0}8g3O~%t z5LsSPRi@GCr<~c|uoeb~Udn>N@i6C^ins-xAWYY$=UxRy0Q64~d&={uiZ1Q@`UUhV zD&~0h=k2V&v^r`>FH&OnIrpF_m_ii6wQ*~ zxhi%+kN2ZRX9(EYXm=UGZNxEF9*MAG=8J%!N;*7Nm4Ht7m$@aXl9w#S!`@a|+!QqY z&g2PdmEESE7X+X4ahoRx`}}#;HVWl39(?;=E=QF0czwJhjZw>rvrJjyDzLCC6mRl( z{BBMPs=E?{(EsT|0f1|kU3yry-HmD>_z=>dd%r^vIbaa_nI{`{G(siANCe+q=yMT* z2K05YMC92vhQIG9cG(sBhRpuHtxePxbve?r>N7*VEhs>arp(hx>bX1wSJ9JuAoY_d zu0mtjeunpt460Np88lBhR#A7xOvs=QN3e_Ri~_NwzE+~BtqdwGKZ8aGLAAyn9KMa)Cl)MWeo~# z-g_T3j7QY*9EqOBBAn}dZ_zb%umf3J1Dh|pJ=NB#27?*9ITi3A63_;PKE^%(9}N;w z-{MYt%jZbPCY)VS(*jwJB7PwDGE6}wvJwY5fdw4!l}K98>yv^?s=j3~VzKsi#r;Jr ziPD>>S{#M0Ikq0}@eIcS*L9~o)O(q6Ku1O6c|k|8_i^~ZVeA(HAu1)%+KHO-c*ZbD z*h_Le_L;@8&h$K@q64V%d#R$@R{gA(ov4)UsKd&nYzDfOE`yH?a&PXYF@ASnDzKo{ z&N1KT%#B*!Q0wXTBo5Lx>eVRXwxV{{_vIphj4H6BKd)z-R-vhE#lyLB$7nuqec)gZ zbRM5Q;m|$wW^I=-^||1Cczd^DAbH89O z!0#}qKd%A_f@)jytmtXWz}TqFt?kbQcRm5+*swA5aTqYPU4|%nBL^52y~E*;Ox}lH z8K9}|hPLLJWU}=>Y%3*8NI5NK(B8Mta6kv1Gz7$qk-yRD4B8~6VM#gp1W>>Z~OpJ?af zHLDW`9TKuYYTSUeF>d=Zo-T@Yoh>AU{H$@Wj^j$exhhj19TKP_e-_w3At(>q$@)!> zvuABf?B_nt&blk_px7yRloqYU(wZsI4dvR%Hk#O1@FBt2DhdQyV>&7E<@TNd*8>ti z{IyZOGZiW{XUi(B5%|N};}ML)$`ngG-02u`PiQ8lGVrq~eZbxYqnq@1nEu%5jZR9<;Y8|WC*lMKQRK{Dj%_~?2}w&^9qtfJXZh=_YuIt_g3;^)xJY%A9Mhu zNGzK?UK;OiX`fKmRoL!rE)zfsPOsRkJ?5?he8Jsm4^-JjG=P>ubgc0?&NeBs{)~k;!Q_w;kC5yTZ z&^U!s`y{;b$}6nJF;iVyOPa)_g5xU}3G)7cCn97NNnmqi^jW>Tmmow4^stGqqcDDb z1W1j2qnaKJ2nkeh`F>&QB#fgdey_I>QC5LusRW)hEC{}&k;(!|cJ?NuNfh4fL|5tQh4 zN7s`HOe$;@a_ld6oE_cG4ClH6RWAw{Qej%P*;)6yI}Dy|S;kd0q+Boha)4zPShKA^ zN9qaA9PoUlSOz6Y0oUj8e&<{lM~RP30(}Uu1cPBxfM5z9hyZ`9<)Q7(Iq1WjMY`=bmEDCAXm*`bpMD^@kzhEge_K0R*Q8_`| z`>r?Jg3RdlyzUf`eyY|$g=@Fu0oK^RP5~r);nLQYx$f5fJ+g@rV0m_G)xL26lUdmX zER@(cfk>~aYYPWqRqZ!yv9eIUzCZAx4;rbN6X~lfkz6tb=&tD`J{TT196#+Tu^S+)-&ANCOKxs?t?KJ~F zu8D4gK5I!)jCB<27rGC!(fhVlE@VP+zJ|Tyluw8eiVhzl7Qu`N1#V}9cvgxn2|{_9 zpX+1pW9-yD2<~Xjf)#W+;eJDhB5lW1

    rFwhtdd8SX0Plh7IjI@*z=$KaIpoHQ9F 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%0DWHdkY-!<&b)yu1T{W&K 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 z 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 literal 0 HcmV?d00001 diff --git a/docs_new/cards/LLM-card.png b/docs_new/cards/LLM-card.png new file mode 100644 index 0000000000000000000000000000000000000000..36fa41267ceb340756d41538783047af4490c0ed GIT binary patch literal 633361 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%0A|EuX z_X<~h_V)1kcm17Wfi5)K@sX_V#<&HMOY4>6#Sr+&?xnGF2Hbc4@&-y&1Unn>i)2Bb zrgn#9v^H)VZj%A6ze73|(Kl|Hh2o&TwO}s2%~nR%c~JRM=!Mqhks>Lfo+~k|4)?FJ zuQLNpXX-s5hCpevZEJ^E4><-UD=&kc^TYj#S?s71GR^8SU>4n(S!~X$=V;90UkxsJV!39+(nx~%|2N??sDx3spx;3O!Spi9dGWZs)SfIJZv5N=hWhQFb9AVZp|95 zLn9Hu=6pSuNQ%&LaYl(w6~0#mhsA=vGFfq^jYA7X1FR2dnK$pZ;N(lLW5R7wRWmsU zdOQ&flk^FsK(wE$ByccR>`8|1<{h77z3LsYlI#i$`VZcg6iz!(=i}PISaQEv*iwS(b|tj5a4s`Aj(frV;(fk;V9<@Ao^l`7oSrSq#=RCi z3*LLNC*Ey)`18*{v#(XMCRfhUXFzJHPkQDvkU?}iH^y)3!-RJ-JzlmV+)%IC9nx7zLR4ap9azdO%HWUoQ*HH-} zBnt36_#6UP^n?;VThy~jW>#_o9Qo{*%l3|4S^9_n=|6K_ecASF?3sf9s!9x>;A)9E z?TcU%e&Y4tzI$K(`q#f?@~kzHE8+fr`Q?}L!w)~C?ri8Mk0GNqO&qu9=h?};#-2h1 zW`KB#^h-A4=j~jO)j>e=_RU)cc36XeM~`L;UkqX7)bSpS`+ywHU}B;#+uET&0H=Se z)c^F$&%ED*`*|^DXH+%uyhwmelQo7(n41r@is-Khn;8-u4O_|Np5PJiXDX<|CkUv{5H|~wH ziQ7ClyTVRF(rw*8ZFc3JGC}uD44_KRDkWRjT1pe~o|Y^BdpL+(45V4o7OjS%4~Z(6 zL*sZ=ASgLBNw<;jA&?NIrd$@~zhK*EX(RLhq3@S%c!%jB zC6C-8z zA%7hI%Ex&8-~V6#XmWvV2Blei3PiDAaDSR1GjlICP#~$W0QXS{_SSy57x>P zOergvhT}j+N0|FlW;_>bZPBTnm(q3jGA}lmB39rt&Vofp1qEaQ7n7&pi4IeT zdCco_1F;hHNtMM|H{lF7OB9S|m5e09K4=3lIu}o-74=gh{vOyenx}d8A z?T~p07|Gzz#l7yc?{VxataOl_72V51?AeuFAI=JDj*BZWeJsL|R5#w&ZyJoaZUo5z zTYU*R&d=|vjJ5P?aYBHb@7a~tp>|EXnr5}_o_BXsyG&tJ9&71AZ>{Av@U1o9N8DYE zS+gzf@TIzYkA`vvnbPhVq6c=d>`K7l_pt9iz7Ajw1H~cYv6g{o^z$}5?dna{eO}$S zRN{}Y&uIV)e4 z7%GDA4wj3Fd4)hi&sS3lClDUYro&;JMfQ^h!aZFQn#vV=q=e~A2X0D-`bmE%&A z!M0Z+^>3Vo6)!sch0Y?X;|NUWy=;Y(Ct+W(MpUu9v%F1Xu!D*rkOsvF994mioS)P& zU4;ao-D)BN8=XW61XFdD5y6$-nQVCWfI3OSy=oe>5*9462pUK4Uzt3$-C_Waz{RlS z!%mQ{@1VRG;= zY(e|Sl#;<*L^YP@9fEaOe^^~>-Ht`j80%YGR=|=4S!Q24WNVzf3UVphZ4=qyXM?M- z^DOq=OIFQ2_l!D<`4mBGv5z60?0|}EZz3@oVExgOQHthD5jtVDf5F5Z$fCw6$?Wtl zRBtLEY4$w^J3kMZZ!#raO{)R z#Pt}2BvSZE7+O?rvDVqQy?8H1B5;{IJHHdCWZ7o|=aPG@=1U~?H3t{ZS^DE`7nu2a za*f+fOAG8%$i$3;Bylbz0X@=A;4D{j!NA|W1JPPhfr5#ngGlqJhrI>(Ay+rCT}3jG zgDM_Uv4{jP>{#o`;_9Nn7{1Zk+i2vEn9+V#A})NMWsPdLgNrcCy&Fr#DUO7~pIX&p+h=oJMhbxQIGWp6^mb*6(;htcrJ z?V167BD7cz-C+GS`cDx&nb8k$x6w}PvOM()lPjSz8V<-JFj)J-P$sctP(i4!7trcp zl1@;Q1CND1luY$xAXIjN1|6J$@IG1gfvsN_5ou-qzJD z!+of^-ADSp zR{y@1{w~_?!S+>N&a1J;tG`JY#GJ|N)_(25=NanP35NZl4cEbGEg95CwLH|1a&8wn zf}x*UZ6_pgqd$2M(`fPV#!Z}38dbB2ZsXv7EMCb83|1ExZ^o+-x?}HUi=I*vhU|=S zCKz~rL5DP6(F4}gH+~!Z|Ej7ES!oTpE*X&*wI(dy$c2WGmaA-n`b*UZMkPAUBV~`W zZ8Qyc(Me-(x*fu z9;BL86W$+-QPZ_jnuY;2VB+zPqjw)cuc48AKZ~lmoPXBbgDoeq(IT=ACJPy_UB$qx zmr^9(QPO_Z8Zr>7TpjY7S{Lk_y3QsEjBLEv-ErTn^dcAs%QXVTNs>4%GzV9a+!QeE zE~}F>RY^)aUK}TLBOLB)A})r}8m4HufFlWLx$O&{aRT21hLK4R-Lis@mFoc&R9Vr& zq-Q`8IXAXv8VH{&d=^6Q97yu_l<8=+CFirzKat=$Ob+xF3=#U??86O8zEme$P<4Sk z9iY7R{!Ymw!U)fFWN}GC@k>d)PXtj!;&^=n9iWQhu73{uv=e6PgB3~7b-fTdKvKi# z)muA3O}s<;3d)Rb@1kXJjw&0uL92Typ<}zKudj47$AE)kYRWpl3=(D%I9KcW{kiJ!KQK5bRw zkP@Vw_p~6n)#aLfx8Xt+}jN2 zK5ULOo*OHliNqR9iMAlD7kr;BNmX_m92(T+bkGvX@koAP-qEM4>P^SH+G>TY7AlEz zEnQA$`6w(kqy*~R+WE$4i!Gui%K0>5aj25PMi+H>rEWl|YGn+%h0PX2Zj zoRLyauu=wW+hfmLWt6POND`Ntd=15J3z02baIQXD>=P!y8&nt|TBocz7S-(^M9i$( zvxo*0$wjg~bA3lK#4v6VRy51i1R<7fZ?SJb?2vH7(2-nTPT_xapUB)f{9W69w&i!U zT5tVJJL$QOc7H9mKl%DM`t7%W{=K97gY9>H?~mi#$N2XD{9pbF*(qd~g0(OLqF+9I zQlBcIyE}G0O2%xT`1s)iAy)Y8Yxf7RCkBv;E&DT?X^`~R4nXnBXk3utdp@%&z+M_x z7*0nE-!EcwWA-!xR>OK(`9-DoPSugc)!|3LFX`PEE9g(h1hKVAmQ&0`)LEGyN+Z30G6DfJyQVT9hmQ4m8oM(CxX!-C8; zBvCfIuowcgS}rT(UbJ_#> zaCEw_*P+Y!`!tM6?!s!q{i(EMRNS0nvYblt;LV%2(hV(==Yqq=DvPVlidz>~RR+Q8 zI1YLz45k*@Qo@gGO_+aMcVro(n9*?$uw#H|^L;YNT$0R+>(K}gj@>~ltAusqyC=O1 z*$wMbzIs(&|L_ClY7n>q*2@0+NE9sk!(@P=a^M4?O#~Xo|KoK41BQ+I@|02s2)2NF z0pt7g&mYR+?%u&|Bg}Y$lo{R=_5em3qoMnH|Ff%etRhCm5A$s>do*kzsuDALhYL|U zPoE#f6pisju)m6xol+}ckOjOIaOG_*-@bXn;1Jg)hr)LM=!Ip4(qms-y?)p}yN6j8 zI@uGU!b@;4%)wxL%0LS94eywJu-o1SxZujYXicb~oK($mGVOzZVGEj=kR5~yfFplT zc%nW7LZ+jo;7XCUC73~D?B2e6$3649jq?-xYe!b0oBJ)PkBH#ReW$^I|7_le(a5TR z0%KmH$_F;w*lVJfmO-F{6IPndR?GW#fQ+9b;8_joXLY6uB8tS-{oP5`{3_Pn%T)mj z>`3?tnCC!nK;j4Rf#SKB_O>)$l#c_|@wN`vXG>-P7x3 zCaZF235QPb(f1%Y`>bkh>;2j>4mc=<=D?ZndmOXkPt@e9djTsq`@d)Drrtfg66_w= z#`WM!TK;V~iG@AL41lTu43lKe5k?tW7KA5#Vq`H=av-Xaw zTIY!P!F9(W{j4ZL1@T_wEW<}yeBQRKJHOF>%+h_PQeXO*Izc28>n?|1_kS`$6uxV@ zNgCB}2A=KqWTpJgBFVQ7$rY8~^yl{-zZNY2hWq^8*ZkKx#`pi1|K~sPZ><~t;+KQ$ z3peZN#rX0lQlV0_>cD{OPI3dq6C?E24$dMzGqV>uU~WuF61JHrcG$I@sb9ao;`Z(!fTqE8UWfJG22ql) zsb2*;J=^P`#lbKuBRf`1{jOw|FyR_QO&E0b_xJsq5fB9ogVQ2|rrX8dya~jyhnt3x z_?F@50hfa+GeJhBwHu>-pl6s~LW$$rJ@|?Q!#*(1|Grq8y((94`a$;R2wlJoPHX8I zyXMh%klF*#)}gGW2ZvuBy~Lz|XBXtNel+Z!zx3cT3C>!(32f_bF5!dMsJNJXX>UW@ z?j5+8s_Ne~W-uPRMNc@?%ywp0b1lyDHbW?N?tQ|hIFlT`WC3+&RVCgH0ZpT=7mo&t(uU+S2wFtas1^m`J(FKom+)2hNnig4*?0zgL|GW7XngA%x}B{{FnRmvSyVydNW}s zUW0|#33CMHL0p69fz3cdNd#|N`^*nbg7$)Bi{rMvg9j!lG&jb5@{~4N$wAGPtJ|2w zh<)dPmT+OqLmj+77yE&Aho7We5_O~1M;*_G`#bCcH~b8Y(Pu)7=OnU>s&jQRZgApc zb!*wl{o;ghPqL9rRE$CivXH^PcqOIAVDlY^WO0vbD`b^|kvsHh@BCdR|0l`Fkl<{U z4(uuW)N8hD;b79n37^^aKA_E%5GqR49!%QVlhuuhgV0n}v17`6jPqffF^|rVk8W`j z9|`T{QTH_%`GcP$VZk2w$0tcp;$0$$MNofLdkgG*-TwYS&26EBVE0akiTfE;HK2VS zJ=8+KTzNeajM{Y=jPzmvybx7W?d*iswF2_)Q6yJJ79H#$)j%lr)*Q+IbpJT~4ThCB zE?4-%-QTqnP`)}G=)UyWyc~XW!1}w7`uhUh-+uhZ30S9C^vf=wi0TG0=7w}A=yFzn z?5uRrLm~QbIcryDRl9Rtm15ieuAT~B!+jB0MyhHlz+nqYNd&XK3HCjiMRa@eq$6iGh<#F_=XRmvQ-5Yt(Jb>KU&jB)bbLhnvjjs@_c=z)LnL| zl?=n%?Y$()QXT9Jt-Eu7|H$BW{kqz_w*FkYY|SJ^50q`pYOj(;a^+i#y?qrq`^kL? zC5`w*C5Bu9OS4=_5B}>eqnF8poMScbq4qagqSBm|+8%$VGhJR7{Y*HN*h?y3BsIw~}Vp$w+95NE4IFRMfoS;d&V>Vc# zC=SZh^Ia06DZ7C{EcD*u0aio*G*AbgFNlhgJSq;hMWE+a4&fM8!`hi8(FcU0Wpf~d z9#A=cvk@0VXB~$=w~NtWE2~2{ER_9CChYkHEhLht~L$2oU)@B*ZCe-W%{F< z0EcLBrJ7?78GZdEi*kjWRkkXb5%%r65*$^zw)Vh+&#_~) z#8g?aWcv_7C{Vxf~e3<4!Cq(RiTA?8YK171O-2iWBMta&+v~{jqhx9 zN+eQQWjh=>j{%8RNYn= z4#fDYp3Z0Y$g9WNeW|_|BGk4@X7id;U$m3*i;_RHtHnxEdcWWPjh@*bwgd;0*G2D* z^T^2}{5&KI^F2>mhurs;J}<>|EEzZ^wTcm1gAfEk9L5BZxdK#eRdPp=^|Pw-tr&%% zb(VpwZF{XlmkSy?x(ZczJl>_M@~j@){tlN}Nkt?9L7Yb!N{<$<`?;^>}Iax{u zp~2r$1F7fFhYXM4_=V~?&B^o#5Q&S~sZZ>Ww)=l|=c{_^=e^}#eiMv#C+3@_gO}I( zhOd~hbNRc8-Twdbn8IOA(xqxh>24te%ysZYp<}cx&Yo41lr(MFHV8p0AAJOZBftS@ zcA~Vvnh7UD8!_Nuboh4Fno@+BU(rVffoe+KNDw`Ycx$~XK++8dZftOm;GW^X!jG*@SJLA{SY+u2pz(Ep0*%l?!qhUDhJeld(URAvL3SB4G?9!={W)v;SL zBSRuw=~{My*4vN_;LKAZ5g(fv_`I%CXC!gi$; z*P8vz(D5UhruF0}gGL7IMK=l)Adcd>uS?q8#d}*o%TWzLwHbZ8B#oM^V{4l??D|PVA9A1I3r8Mg ze$|joB?82%4Ankkz+zA{ve1VSXU$A2_ioRn@E_#S;iPb ztM#G^kmPf=cQGnlSWHxgAbMhDRn@N`kBN0i;-Aq_#K}ZD-cc^TpEwWzdIh+h#X)`x zB#!#`6inQutsuN}JlcL$CO5#$ifbU?#5Dm&#=jrlJg^$MT-Fj*o2YswaojL?OhuM- zcGXhtFqR0hq>tW_?s0MOi}(3FpSdVS>?O&aTcRTMAqHv9)qWA+zhrndnH20Ct6yQb z*I1uoBo-u8|HHeYOxU1G^J3`{1+4cx*9lNs1XiftV*L*yZ6wld6)J+kPOVvqq<*O@ zQ)88_KLosV7)wi5_mYKzK<`Xr|96+-Qa~uEw2}rxB2~i979lZ|vFPMsgZ-W+oomh) zC(!xaWJn$f?`0K#o7d6nX-Cm5OCbSN6E541jg?#Wh!PS$8C}w=jO@K`LU*`1h;st$ z)=JO`iaf1jCSry*nSs}SqTeMGN!xwCdwAo0LkS&0id#w@T}dz%Xo)QdZ%4I^xImx; zNN@GP5t3Ep0;mhu>+uk60hg4)!TCdeDm8G?L*AsFO_YQYOq53=!UlV-xh`zmBN$AH zwki_A)y>kdkpX2c)>a(>^R}(LE^{V(@$zR&(q*zE>}XR`5K?Ja?~{FnYC@<;@K^gY z15$^(08~gfd!ViRc6oT8kKfd^NTu9JAI9gscmAH^t0F@D{MTIFKaPL1BO$?Sz#7bm zN5i>g5$CxR4hWK@P2qSrT0D9*?4;#HF3v>Gv$E;0p+VwQ`;fM?dIQczBFTXXU>LO zsK}l~Nfix;sbf5Y)+V<-tw^#}s`+XOV*N{@^H?iIsZIh6#^$ zKv(zQgmX&`Tr(IWk@mP%>tbHu*gL9gE+gH8Dr|D(0Z|KR_v(9GJ)fy}8WLj8?2|*b!Yb*?<;{yLp1kVnsb21tARRAA0?8?r_Ek!9{;5VT zOsz-v{$oyIoDuW}i$4DS>Cr5glM-~%9+3xpf%|*sX8W!n&+&p zDcJ2cPQ9O}vZJXtfaxF zAc2jwb1`GMn06;6i^jppDoOH8P8^4<7Um&!t|>oq&Wdm7cH*6ZwRZG8z|%yad2xjv zwhnM+&a2kjs~#=Of_q*Z97?ut3jAXyP7Q-er&XDkr&3}2g`wZD~(~Tf5=J(^L(}e6ulq#!h(M*ad~oU1kQKd z&NH|@k4cSHvR9NBgR~ITKX7e8!O2l^rvQEsiQZyAvF;$ggZ~TO0ajHp=hh}qlH{s`azj~-}y7u`(q2A^yZfg!V#|s~|d^=eE0}}l2cZ`4jzyH7f zN$}b3SR>Fx4*}kKIKYH8Oq0oX8W{)mLgmCZJ2S<-XN!qdqUsl-!R+t6ShN@u{m$e} zrvo=xK;~N956DxR;b23+LQJP$0%oYb3%Yiz1&z;Y{BDMWVPRZA&%G#+1snysXQXd8 zz5H5t&b%u&(w#je`!SBF0BQ4Dv$BIy$7&}u7wRx1EQ8rLM-P$7i3%LE-$8v|N|My* zx6wnnq#@1kg`-J`2M}>TM;hLu(^QUcXws?Ix&-r@nQJ zzCP+ra2p0GGHt_fYhdDeUtTloKY5+{;xjz}^Hoc);=Sy}RCcXb3|gLU@96D=>j?11 zUBDUV3}|jLH4a@yD4snNE6x%}f+96^cfol+VFaeTpu5yPgr?<4gcBC5pMwJHy`IlAYUGR&9NX%<7KWdYb3_;H*^F9a3 z3>-|9B$DMWbu=%%VjBT0Nik3fi)Xj>2#~-oOb2(KT{RsTR0f$1No%5VZ5S(b zOqt9B+<8{;39El3Jk+foMS(Mdz!C@nWcPt?0i*BsXS_S5vntZ1nn{z(^QAm*juxP| zM9EC*Cv3H^dGv`QI6k>rSiDwH9mBH~RMPHFuKEnp37rJRK15{%`nm4^y&}jBTkN@w z>JH`ypgDYeV2AI4VGs*Dy`3nQ{V8TV!aB#5tc?+oJi?k%K zilB;X#t8`|$`O!C)=O(3NQGo;=i~>#z5MdwmrNvteMiy=zS`t5qE9d>DIZckAvG4k zG-X;a_C-j!IeMs_Nvn}e9h}gzotoWBwc7s)<%NLI6LucF6-dB&KfoG7@YQTdB$)w`owUIJkdbBwI+^D4W(1?OrrkljG-^ZL`zM8$~gO$npbL`hRs2paw*S^w?F zTrX-*h{S9#2S>}tgdi0yF3lC$HTVkT%a>j8VUMtDQPK4}jlcB3b6*H4e>1rHUclOR z|6hM=U&V3Zi+$U*{Uc!gw>YM&Ar0ZIGbnV1ema;LcU!nuXH)5*u5(tR6x`L6c__6* zh?^(g)tMhw8PJEiZFmfX;n2X^8a}5UCUDLzFdU!CmB@L22*xb(K68`^x<9PMN7*>*X<$4 zx$PIa-@&gP3d~CB*X=*w2eh}r>HZA2fvUdOKcft6`NsGBdEe*Dielc9OtC+&@k0=n zV=t1;ncz&*-PEK^hy9_dmctIgiQ{$Z!wI47$emoc{QFB~jD4GMf*i08Yp^<4- z4_6<*HJmjEW#t>2;hq8c;$V{3HGxZ3QgI&k?sr=!nINz8m^ZC-$gQyOa%xA(zA%`M z7P8uN!Kw&K<5u^jwI4D>k+j<w|MriVJ|@7jGt1%MF|K_$5q;WN(xo?msT@t z_kMbykLOkU2_R#Hjo}=**oxupqmvZ~y0)MWRZe-}g!#_(q9iKj%Ao2u5ImHziJf9l z;)1Yq_mEO^wLfNxQ*rNDHMS9~2j>A{jmIh5VCqT91kUp&$GVu@h82i=x4C$Y)?G3} z`;XVI6T3LKg7CqJ8#(oadKz}l_sojbn2vn}m6Q8a_mVFsYc4A3QA)u1n}e^y;Q7j6 z;qLBqb1o!uhS}t0JA?%*VnM!BN+N^M+bvetlI=yS6S@dMvjWHY<@1hXRtxJgkmRK} zsFQ7Jxs<}T1u@x2XtF14RtsOrxmiSqnQ-lG9%Z){ykq7b8m&m9Wko0>CL@)>8m0TL zssIN$P#F{yPh@7DlaNut?35%&HF*e{0?B57#GDfXn_qW^&=0LA>+n6?`{+PzHlhV%dswFu+!P`eLMzr(LbDfOU?um~w0nnx z@2`n}0P{Vxb~D-9H0PMKLO?%=r0cx-srDc;7>;V|jnC}fd+h~l30bVL*ZV?1*nxow zhb`&5OosojOag&OD~3Ak6YaKx(aDKVPo`Y2F&~H=*?jdolJ^BcQ^@mZUj&ig>b8NJ z37aZkw6%n3SNpeD1l0l2_p4pe8@$d5lctRwYC1bXBA1>htK-Q@h@>q&s!!Gub;#R5JpaNf~AD42Nv?; z%p@JTQZie~lZ-v16-GWXWSE?v9wBdVr_E_I1Ye$>(=onYS2;OFhP+VJT@_BSmZ85U zX};GhS5XLOU%ff5mRQi@MI}~(>sYkdoCCTPQ4b*&-hi*|y4{NF(d?z3S=9d)j|) zANbvVzY{rqE9l&ZhXLQh&qfDBy;9j;d^eo5HG>MDWwXoc*VZh8;IWf+>Bno{i)hz} z8(3JRx6>K){Y7;rpg}j|6G5lnL;NCOOAKh*-bm^O)bDAhHX!&-)yKAbFTHY&O$@)Q z$-LXvcGFY34<4gj71g~6z`lCl^w>NX3TdIth&yBjw7Or56|T!AZAqMKwUdYw#5_HQ z>{68@jNYz*0^?7J+q0K#82x=!y?Bir*Y1o)AW3p0*enpTtg7lB4tL-!aWALYXs>d% z=@g+-7&?f45y6-pPOje~v(W)d6C`fefA3)yamqrwR;EK%-BA&|1e6LVgnsE*((%47 zYeKJi8{sf*|Gl^(0CE=Uyui=1V?c+%!54$NMZp}egI3MzeoY_2d>+BX=qlGR9+==; z!;?Z472`WqYGW>TlsIW{@5eFwsj*oE@fIq2ctZ8wZtpjUrVt2>W43m{p(1N22&mvN zE!RvA+Sy0~7ZM_|5;=-N7~hRb+Z|<*PUZS#W_20g2_|IN%4Ed#yFK~6 zG(*F)PZ6-wlOW6p$i}OJkfQ_sp>~8%@w=}(hVytwgxvb)7tXmWA=V@WDm#7ErmFJY z{he*M`ga9OZs`|R2cNWQ)zW6Rv`1Iy*)kCJ%gM?q$J#cq3b}D{A28-?@%^IGE&`>R zNhsO=iR~8EbB-0@Wn$|{wS9^N!0N#K96jOFlu|CNSYxhlK_PlgPebjkKi-p0^cSJi zTnP6jv+_JxV|B^oUQA?6(*9#pE(>v!l&A{=|aZrk2d$up1KGBiIJ;Fu3K3^h%NTbjWV+N)a5GN_bJ)ND<>>{-~ zHk?^B^A}{**C0#ULtDE%Kx}F-0DGO-aYvZIcSUHVpcSgn$pVaK5X|0^wL@y{-rgJK&>>9vk|{k1K(8T_b(@?O4S=y1M#-8COd{WALT zU>4W*^;h$m<9TAt0)kG6-Z11-YFJezV)@M#xM}Q=(Xy8A1ha~A;m?PibApZVYE95W zDE`Pk_A`=2>%b}joiry12p3yQJ_m_QcI<{nGkr3+awSYs2SpCsV968rQwFgQ@3E+t zvN$<|r==7KzV9_B$7wVK?4VeSJv7#Y1>uh2e*qagy^_p8RKa>O<;9z*f>g&`!|@4i z6jfDQKu-~?w9&FV;QMRpQUGIe4?E ziURp?Co(1krseTjK`39+T((eY8>1`7^VOez(A+So-+2)6Q{BEdY!wW#b8hbfkYCI} z>>G1uX}=9L{sz=I)#A{14my{Na}mvOlBd2F@k&r&@m6_U^1W zI+%@i3;aP4&!8SpI~>Wj3VD}zL&_b%I?kgT~lFqUq!l7o|jH}nnTvj|8Z(YI*Z#~^f+e)=mylkduByo>9z3I}(0 zt_ZK&+cOd7lNNMUtVa)r-2TcTTPkH5CeA2hL0?t^Ttl z6Eg`faqrKMSz(9GVsEF55LcoLRAn74%Y}J_apKyJgxL0f2-=8@x=C0nabK-5jUQmI z3Y~1gvSDuz=7B&U^pTpl3h?+m2=*osy`k^74YH%JrdLc@43R*0y9vfRh|C7}BI8=0 zpC6NSG&IT)a4*~YfW5-G@jLj8pSSyxucM+-6p?UGKmYQxT5-ImolV4bwYD$t@YmErmBAU1VNw*ziE#esP+YJ6YMSw>^MF` zo3-tHqjp<~`MNR^b7mhM=gY$Pmua9B+|o352)o|B5VZh)rXY z%B;w0vZcin1Ah)S0PY1knwW!7+Etm^5HY5%75j6pre!bEHbce`up9TJVL|X`?lYKI zHK8jo+ZN|^q#uNdj==M>ZH&~V!h%1bzg2+-$U@M+MRJWQNE52HFjhD(3;_+*ad6gk zED<^eEHX%puxunGFXs)L7W;4=h)D}CHfF)B*Qx+xUZSU?dNU|_ZbCQAAjpMC=f3QM zmT;=&T&Th$QWcC}2!6v^s#7OYAgpHBGg)>)&>nW8L$JSn#Vsq(tz^|n#wYVPidK5rYyoEKvB0f)tA zNecL~)8A}{S4HowZhRLA>s`z#Y+b%SV(eaoq?8~qDMj@&o zjN|H{Qwe~m*bTG?NcOa`nw&-_9n}|xKj+O+KbR;B{0FQs*pWnH;s^<|Q9%f0 zb=(G1z%&ZIR(yB6{=5aH+^cprhI84DaA?IwVhfF4Oc%|NfgEB4@_g(u zM}T_fn3M3$NHiwShH6;7?B<=53!k?j{L21pt+NQ6#-+=YOm6ETsT;<9n+FH{4As{q zB#>nHQTYniT^1CEYx)=A*9CbR)fbAZWDar`Cpwgz#hP=~Do6@##ZjD){%A)ognxnG zhh2*#bRb_4^gkk5v5I$upPzyWUeY?N*^7xlapj%t*4y|CGQINs%kIfmG5KQcV~khG z7;!(d-m3EWEzv*pgI4W#!SMV6I=>M<@Xeq*k5aQQQzP`2bsKf~Ex{CxYLhsp8tEHO0D%p?!qEaMRm8 zSsk3^Ro@b_`*haa^C2J93#BMXWZ?k4U6TMYGFFSKG!CR%#6MNuWe0b*vTu@K%~r@v zEDSj-71awE$B=BS!ODwioe;h(F)G?prflHYI6NqRgx#X9c`juQE1lLBpW~S9NU$6* z@-jizgO#(a`@J{WdYT*(X=lU1Fr> zd>Cs_C@|?0b7IdxTuYA6;9e@~qB@%!qY|5s=G|bZ;WobBRKgJ%c9ruWHsj_=N2e;l zG2}=Swzzn0$h28(#O@f9G)rD%aKK0CQeE=i)wh~2IOnd$Nd2AaSs&=cmL0KH^_Z-! zU%N`nr|f&#!_nerh>*bimsounS33!vd`YusO%z67u!35O7-$sn-6H$aqNfk{Jg9mW zS!>F^tWGjn6MG2=Zgpb8_s2N~7%CEUOUeFM6+=d`k-Ac!OvR;S#jZrP*Uo)0`!Z#J zU~j3*xspp@zDy*iqOC_Dc`$)i(LTYz%S3uOS1>~oX|swTCG>F_0FJ7B3I2+pe@LBP zI_I&_4>=jNb5;l5wl-B3=Y=JsLAjkPLs5@AJ%i#S= z$q6vjV|+>GQVN6q!GQ*)CFWg{$fRXV28}iOAjoD4A}h+iNy?*o4PXqfuKuou7mwKg z@$+S2fGDECh5uzGX;H99-D1Mj6%ev#mi_LSO9NrFs*nWp`JBm6&Fzx*Jz0-I;&@Q2 z#j-l6#@;!qH3&{KnU?3pNu85?lo{7Z; zDzEzzEcKQqvt5OqAsq86J22Ls*bTWGeDVp2a{oSTrI1_IiB#FhK#&wa*EDt5E59?1 zH~Sj{G`A|~9bCmkY#Sblfnn&r2>A`hAqnt;gi!Km-XpTbr)0u5P!Cg(7A>=TIpre( z<#C?RPJ|X!WSszILW8}cW9~9aB z-I~F;qz98h7|AW~tq2y!!@-IV);e}&6G^Rudtf8k%QXsHfmRnJ(Mrqj*6;=FM=C}8OgvIQnbfT?*?toqOTu(jiRkC7WYhQpcgsrSX8`M$y!ejux%9kzkoW26) zV|CB&JR9YQ`&^Y28p98WqC+j_O<0|D@E*AHmG-Q_+574Q`r;&F`YKLv#N4^{yY|Po zgFpJ+`_I?!edXKd{MMyzumA1qe*4%t-Zy{mKkC;gfAhY+{rCU%ALHBq(|`FV7;8}2 zqo4Iap>g%sfC65|MA_+pA3;+Nk~7FMJwHB{&s#PYeFpgc)y#!QS4;8Thb?e zpDjs1NFf8|BkA84v%%r-=f`IWqa$l|RmB8qFvZ>MS#hXW;Y4-+kIa|sexgjmfYg9%$z zf|)U@zT3SY?@!F|wy2&>4xk40zoYtwjQEB6kU>`Bq}C|tpnB;-|G7(55$a~B`18{j zW~*0UU(A^SwO3mJTN#cM&l!n@;#0-+7SYP&^jlrTKp%eYm`Mpqysw&K2ecdtI!?LGk)1muwkl~Fyh z2sYL%JifYrP*NWKyO@UvZpd(4vN}ZA{@Nu;ga%mY=lJGX zIX;s$SZg1B*C3>JnVI5MNt7c{1Lp*kblBhzT5n+*vBxYhePz6i}e?O zkW~2i`I8b>oOeQuV4c9$ecax?_IxMf1|??(CnL^hY1IZCnrpQvz{OeugDxt0uv_#W zR{fELjx=rw<0aXek|(2i22fE3Vos7SPy8J2>u5qBJ%?MY9N@#=Mo%@4hx>aoW?#zV zW{Xf|zB6=ovCIoT3;6fz*AIz+lPr}H6NBs_*8`Y!H@gH|rCrR7>+U(m3n$|)pLZn# zHl7zYALGCt)~4hQ<_`$WwD;Mbbx2sKOJanC=)bQd)7E zvOVs4mc7Crd~}ca=xX%yvw~Zk=)7Eeo5uF%4t5MMZ}_-?J|DER64eCRNbFTWfiMBJ zW)Jas8()$T0@4mxj&Xzc$p4>7M_S%m|cdDh~2yZNX<$aWw?O>7Zt9AG5R(e&p`@rSKTk=*>dr{$U z2aK)!YQR`;$~dLp-2U%%_n_q)L2~<@fB#$G|ISg%-^DS$`9J=be`3Qu*#(s!3`%%t z2`Ug72^ouCnZ>MS+G87O?y0Tl%;P;FxM%5yAqX9{pzz;Un*r%CTIm%sSlJ8{pb?}u zw=>DteLj0~svm7_9dR=<}pT*1N` z_t)>eLy3G+RoOhAogs0^z$Iw$>BO|21rPmL7G2i z{N(tEf-GQwnEnCrMMg6?2)wE^`0spJ@8c_$N{ ztdhMzPuQ{rjTaTcAgZE{`$1$il)=F@kE+yVue_5|2sESW8{~-i z90Efo#7;_3iEg2(bX7z{O+pZPwW6=-G z-o^QviA*~6s5H9@&kCV^n1hoENa6xw3j6Syy1_$MW;q_)yZ?EcKa_BBRWABa54N$? zoW7h>#}#WR61ic|Vy{HW5%&li669N>&$~p$o~jE%1B7-cpT*=tu`Y)|c-S{O*nTs4 z$Y87`4E*UyZCKGuIyqQm#oeSvfD#w;J&Z=BTuj!aB(r>&qb09!Z?Hj>D!P+i>b(my zL?*D(eBylLoW&Zs2!@RSHuj0&7eTTCBi$5Ho4|LpI&Zo3J{fBW~ob?x$ZaZGer zCS?!!=KxjlFc-zrmsSe&mYm-Ak&YyjalA?1$r7{CzuN9${ZkGCq3OEjR9X z@)`!C1Yws_(adnWV%H54L2C&W@l^z0+y!gBN@2C*(E0fC$?btmK zH)DlXGKdVL*sG_JY>3Zx=&Y)~W6n!DJ3*7!{5)&C?LI$fULA17JBV{9l)3Hh({oM1 z{Vf4d^v{gp{I)f9-AJNTyS}PEbNd{Tam>Eqx@T){d4C-)92sLoswQ))Jt+`6!VD^0 zQHXaE)#wNc)>W*vb+^fcBZL2ru2{30&;(20!=)GZv@vKcCVPTYvX%@=B9SpVP?03Z zTtX+0Z>PChUKdrD9MpsLZBC-HKx&}sJ|$fmO(Jus@9N%5f4hJkXi%l@p*G*4vp8RLpIjF zFSIrH@8)x8UUZG)u;Y6uBgcZwz(+b-t08L5I*o$gYE39%W{Nt@MYg^Ovbnm7%Xd=D zv>N*rIGmO<$1liMC`p5JIoT9RC0vV@jMfANwX@t@sleVjfK8T-UJjHEr)zc`nSc$3 z@>Q)HtjdDG2y^8i*|f#1#f!<2R-=dz{G;l$B)oGw+o)#`Eni)#G3a01QbTmhR-L=z zJs#9od$1O&Wa_q`BZ+((GTDZEmomC}8VtJ(38%e{E3OVkaByX%UMP!Z2Oia~#gIwd zpBRmo3_!@VJz6_=J*rxB-6i>2O@cE7YtTnNk6O1w-9ZP7o(bp-RtZ_n8k0yeSio^l zsA!F2--iR*88#0C8?3DHhZX5%E}fvS2bVDi5x@hjhVek~!HRF~TEvqT2Zr%BNjX}% zf#<^o$SyKq$Ra8C6u?cPD)5L zO(fWDzv4LXnrCZWOJ-^H`^U5M8l$S)3y>IP$Bgd2=epad37htQ7!2_-ACOq#dz(ep zm$o*23?Z;0AP%`O{>Ja5?_shPqt^-6bMUkr?5|!YRpJA^#a?YE_5l~39GrFD6LXt1 zv8LBUke7D85A1J8>#vqfQuk*NtXmLZJjW~dw#OVTySYJ?iq$?aY(taZOWW3#Og5@z zV;kF7cR9b+KA^z*^yamL`$lBO*$F2k#MoOu6pnw)0s6blRDxe(xbX+%J1m*xjxADV zJSw8a@t9N#`Bk{k?Cg_)AocJzcK zOxBonY=A4Wb=$yx-m;~s!#c_t4jn*}->imXn&`q|gtFu{{w1TuMeP38)d3uww)N6% z1Unot9NRGZ3}0ac&lgoFtNLAA^n)mMUFdWUV(P^+;9ds=x-?{S33&o8M!-4fytvA= zx(6%^b#~yhV(Gvr0=Xt)gkak(zL)5+3Oe>>wV?Aj-SoWR5KAh4cgQM11{!uAqUTd^ zBROU2p=!B7?vp_>3f5L!dvFqgWFGBh7_LLaBI?~tQlMJWnM^2!4K5ub_bkRA8AN=) z-(!3&_0sAtP~F`NVbc8JS^_2<%(%^)Oa`pu&|$-E7pm3>@ck~^{z>aiP!ONbVJWv} zB?ILmL%e!(i6AeGc!Z}B)W0-KE$7pE%gh`Oda=_T!TiqQlGEUESxQQ>a5ESp5Oq+n zga68xZk~^QEP49ckqR*v+KU}R@2X@E`CxL6=ns$HaJ{ZB!_vl0&sM;NT!xJKerluU)#_ewGNHxw&$T ziwN7M2uhVLXVMN=Cw$dJVBwsOhMSxGO=DsCkin!Ji(r<`F!6dAljtOpJ_;7JP-EQL z=NI$DK@qqDnAoY33|OPLaQh!1S!CwL^EEMCu9nXk?0Cg};{q5<1gBB0i*;%^`8a1QpM2%j>eL`-v3=b+u zRZxEM`cnVtcNHN>lOxe?MPXS+2A8o&%x1+8+^MY@wAZH=Z}F>^q6G zu*GLm@C(O%=yOM?BE7@7FI3iu3S#>~6Pn2glEiR%k(lzaDPXZ23bk^1rlGO>^;smFByJlqG%7B%` zOs=kuu{U{dm@KD-Ydmv)EJ6;&{KntMiOjR8WaFT+1Ooe$+IT7<=<1~pR2Y*m!AiS! z;+=Q~GAfaNMaf0LdkFOuLih~TqtM~8A=MNv5 zO~pCEoEQ}k^op^{0aybly|;~_T0s4Pzn`z_(^+OYTQCI_5WzVh%g~;4pBBF}%D57WbUG$^35^H(*}@UGqn#RQmA|vbn=gbY*mou?8W95#$_Bj zyRe$_mt8=G4M_oW*p;Y*W;7YMzrOf)8lKv-;_d5a)k_#k^t$B7dLlg&5$XdfnQ6w~ z_i)aHQAS0XL)9`sQy|@PjO6s(ZdigVE;j)xUGE*M-M4IL%#|Q!y0A~GJ5XalO>rLy zZZX-Vo0Sz!wLOqoo^4K&}u7p(j216}QiRdHli+RY|q&{WuGZ?+>2e0RbnYX20DM zK&~)Wm*v6o#k9c;Z zgfU_;0XE-3^MS$Fi-4QX-B#ti?5-KtRsUmQuRrxox1T*D5cfTU!4|S1kzI%61FIB^ z?ulBJAgvojd~t+i%j2UMb~jsk|L}_U!M?HW=hNm?(Oyx$LBuDpr3g^j=e2!ifxSmX zw5XDBdA?}QIZ#tZW&0jrV^W*1GYWKS*&gh_r-G<1AvR3MUWnJlg;fO09O{>D3A92&i{eKjCE9Af5{W4T9k(23%A5@rU;e z7~#O<`iEEdy+y)$viyVo<#s01ej&$0ukN7Fb#ZV7^h5jM#}bU%I1iFY7xcga61~0q zYDRzbndaM+b2JPtAk+eC2ZXg>acyU+&>IhGoZx( z_z(Xe80_^zd-C7^^52soHJp5m_roheU00)*P#J??!`}8JAd-z?e=`1yK%pMkvkbI@ zloBq|w1gwReeN|YlR_JG8I2%sTT`D_Tk}{xZB=R<6W8BBe*|P|laq@?y$n&ElR-ex zfWSD$011arfVkLB%~H-wnamQoo8Y4Jwz7ZOVN!4L1=>pV{4 zM$dnBo7ROr{t8|Jvu(D6m(AznxOt3MLy{9QR76q)UrqhCCEv~JWaZeLxc51Q5>aau z5)mQ_ok}n=hffgbjH?qW=XS|Gih&*+Q76g27{aVJi9;rrkB7$`_-4LtErq5TpH@-kd3$!3@=<`WPVrBL=sh?13S_Lt9J zWD^`X66LUchMKC|eZSe>>C+Z?A`v-1er7^!SS7WNdp{jcoV#s%->``!ZbHvE`u#Jx zFBH#V5J4NB;lQe|T8${5Rh7IRo#dXa-+P`#`iF!?B%GohOUad<1gU9xyHoaU>A<~T z^xLA$eSlhbf$NJ8{c-#|9+Ozt4(g#eOsaC)aY06KG|32Y@`gRZIKSV5(9k>kv~4K& zC&AI40i|(e_-DY9Sa!zgLU1UWkb++g|k_dc_}6@frE0`oC`W` zs7xXoR$mK3M5op8-dX)aqbb*kN@&V>3!12m&xxCAR8!{+N_D>ItJ<8_fVCF03!B)a zxSEvJqP0ui6lWt@Wf}WeoC#r$z|1|tHDHt`@Tp<28_7CY6=~`bvn583E}?T#fr%cH zeWehG)$=<&EM;;N|>k4;LCw$1RB*45eF|M1?1RTG6G{wNKnb(w%k-S zTmF~T!M5I1Wn28uJr3*A+2w{h+yu>e>fLikz?)JwGNRJV{Ot5tR1q|8!85OYlu40klc_U3)yM(HnHc z*n8g@z2#f#e{%Y_>fM%B0%==we`&~w(1Ed&Tr$J0_aBv-s6Hd;81kN`WCP}Vuu`4a z71jS3YbGiJTx;9)A>T!GiJd|^!-_jaGy`se%^?T*6~-UuWY5)>MIR38p=Muyal*yb zvZLXC>^a<=8jSCFf1q7``uI@1`s?2Y;K|~+gW|n zq48)&%GHii1YE-w&>R^MjwB?kB--j^L#6KKKj(th5dt?t^w1how>ibia!v9k{&40a>5G0$CI-eM_dxcTf(XdL^qt9PqGEwyj7-qD)FSeh z>qW3}?5)L6a;@1#;|Yi;WNj{*a|m1>=ST0AGacS#yZO`hefSdyLgX)8lXaRTHHLNy zVtGjanPuN3m`LAjf!5^U2bI{6=fHER8Y+7e!7A1z=7L_*HTTKI z0h89jRpdDA$$P~<%Ft{@0FCP^d0%)g%z>)|)eK(k58#Mri(YNmmM>fIfbWWQORwX9 z`CtAjcyCi>bYAAPFX(e5i?#RukO^As3sKKD);aINd>-C2tM>`aaoWv0pWpLfG1L_E z^SGT4J{ic=SoJQFlwmdPcu0N+esd6+C4(6!YFVv!6`nf4pFS#qV6Zi3=R?KpVY@3uwgPPZ~vC`(P+l&MaiqC zNE1~=@`^YD+kCi>CxLDU--1r^G?Z+b!ZD0Lte}s>?M^1eElYbol9>+B7vhh(pqEm`y z`SB#U?KXQs{(#LO;cjhBivQRw2x%}31kLT}4ZV^D5W#0B?YNpeLy$@t+Q9~~?5c7@ zOdLCzavT(LL3#pEG-iQ|jO08&#p+PyA~MazS+;dB4Sh>uomezc^04XbLC6iG>{|BF zv>}|~4ALy)Po*Az)BOmN z7?9!~pzTlGZy~FW`wO>S;Oh4g|0^E%=B#3zE;K}Mp5Pmqvzmr0(-av1cDQfJ=gxq> z#5Arq{lGnW@b$%F{PQ!lm<4vtWXOIF@FT-;8;G{H3v6pvOmXjHR8jNZcEP%*PuBFgi6w60A^kE8 z*%MWE-=jT4kh0WVQ`BW#+f5>g!*9r?prfOlzuh`$9uCbyUi5ZDZhgKodDV~<|2Q3NAFcDGsrhW%>MQ&qG^ zP>~axa<8_q@7GlfJoDYXs)6yH$@>zXX?8W2TnuoO$6>dw3oEB;7Z|c%m{k`9hGvCl zu)JLxOv}`#bpPDS3N5N7TkwP`+tmA;sjnEY@kKh2gsNjrWRE?b`;hYtN!iuU7%d{? zrLawiYSd)nmyegv>5x}fmsoweiu>W%a zEd8E4SySgzh~PacH0tlu{fPI&Jt^*Q;noSH&tH%sB z9SqWu=wbrU0dHuXw?wxrDcu5_fI#f-bV^&he>Obbv7Ab<$Sc@t=^q68Xk=gS;y2;> z?!7R`nqH#8_Mr*&YG?VmEadE%`oks!iD7(|bLw&_K|n~`aMhSG8Hn?SlwfP+h8C!r zZ=#JE?BalLt7MDz-O%N|?kcRY$3@~E?Pl!5ZEmHC^|mbbFC_z313|e9uF2l+Jqn{I zvPF@SlI_=aipdzl=Dq)vlKTp6*&5!oeG5BoVr>z}P(dtW=??;pqC`7s4k9SjedF9`!%Nuz!sMqQistG7Rt506hYc9_)2 zIFR4Ti5xWVb9)N!c=J zXKx%}v1EU25I_|5;LRj{Dwcj|S)JrUj{Ye3Ow6JA7(bgA>E5lL4oz2)3hJ^F*`d9U+qPlr8n_L9C?B{S#F|x=9Q?-X-PokpM z($EBZDmIn~5KE~$V`W2;)fmBp8Nja!#$z+&HzNaDN>=Jx>#k=!St+H2)*}CI$fi%C zKxuZiw>cqEJK%!ZQce03*+7#4jpLN>spNEMJWt1T?(Wa`^0Gf_-37dIp0v3i zthv{AfqbyKmZ9tE;r+o`DWy9(5tNqQd)wa#s~Hys34?W#>$pn*@i}qIg_+`m9Z@=$ z;h0n>!U%C)EtOG=aQv&~WVZP+uGu>|9UWw3+^)b&y+2|KUbwL@yM&Wrezj%woYj)y z$iCC-?1Yb<>N((jV3w>)as1#!M)6$Lyq;HSLbJ-SRfpDLrtP>gnYHA69&M-AbZn(z zSgjXa0@g-{aJQMpS}`n@LDivnbKmJO@}Gvh(bkE5aostb6Oszn-`HBy*=E36hI~&rg2{RGbI8sqU_!QkVo&2i^T?7DOd|MugDa~H6c)WJ zl8-G)kZ`?DjmcRc8?M-2PNyV`g4_tJx(F(^pZ%vF|IFkqKF|JCYuV-!u3}$aD2<~4 zsha3#4mp)k?DRmHfNhid=WENpWxTVet=i4rRlt-Fl5FBV!ij%)!)L>|v63^(At(O? zoX5GOQDY$PwaC2Ws-ytlb+)}oD^>yLc5jm^JwQ0nQQi{IA3l5_GocNjdCcLzPICOgn?8|=bPiXicEu$0-VUP5RH<9d%|M~0N2f{`y@9{HRpf7Zee z=!lRjgK_`d!2t=xvSK9$&JCI*?(*H@rvyWO`SI%lKPd270p1x#5i%BE$xF!d90}VkmwciA2gv6^-PN^$XD+FhiKCqYxXjB!+qy_IK@5f1UO(H}C2996bTF z|5>^5huiNw=O4$v{4rgq5jK|B)>gyBg7f)tdpSS8e=oZ1ZIS%);o~+z@6xgTuua?` zTN!u6NLLEJ3ziT;&rg5(E1jPpby_UPg4uY#8AM81Z2yKaoQ5tFQw(7u1k;8eFkbfL zxknWQ5m#u|ax|tZI0XfiZD=kj?xEt`h79U8l4-s9waDw#+29hzi%dt|k&%$t+B# zby;1>URc%0z^j%W`H%uQ=??a+l&VWDvtNqW_SM<=;jW~!JECez8JX%H!d?Pbm+w3hw;+ zLA__!^{n^qic-_dRM6|n1d|BkkUhCaBp2wsnVsCpJZcmoQ3pFwv|bgkR#iorXq!sU z_?s#Cpf(7+57=Wu#t7Nn0zAxH^bN66VrcVriwMpD2W5N3=}?p)7jzBw=^io|gQQI! zKYiK)rw0bJOf)TGcPDyd6$CU|B>*o4doReOFi+V_4TlBuWpkQ>ogL3}|5jR@?A-@M z%)PS+px(mu524%28cp=bF{p(MJ<>DSG6STe4)3z^zSr>Z_nUe9G z+xk-|0XAR51?7Uk&vc)Z_N>aWK2pxHXPe|=PjH0Nqm1u2(gyN=#I z%GGT51MN)&V;EVJIy?i~vtL56f6L7^+H?2p_&59VVgtAMyL zoE8LVeCKsZewC2;iM9_CB$+We?0JN%gIxp6d&*zEzo&LGlLA=tPmcLKR^Ce(pP4g2QLhUD9meJnsaN&6^TFdbdw+m5me4eTx0BeR2`!FbW#5rHmJ{^pEK~GK=IX8Q?q4Kmv61v zn;H{0Ds>4#jb1_jnQkgl$}sb(y;umL!o5w>-D2Qwf(~S=RwwUi5a66He)igu{WA%9 z9OT7kO3~(}nBM_j4dzs>I`tE(>Yxm!9N4JxF2483<{=ZtKDwbZ1JcPJIzy~pttB%2 z`wVW@VmMyBhrwE$s*FZ37JYa74B}V8ta}6_ThB4xW$5;m)%RTZ_?s3v=!yojCyD${@Jc@+Vg1If4s&*DH3|HHdZIQ5Hj z@2lKx_YU_*2CKz=GIdI*f80-XawUh;L1l~@$3GYoOHV39^%Kb;eZEq5W{e)mfUM36 z4(WWZm6>*26crxoG8Pet1netjFDil5cV)#^BvE{x(h?FKe-Lm>zcQe1*0QbYA8byH z1uRe%IP{8oj%%^IEuo(`suIY;V;y1uSU{)0QdShb(RnY7dHz&$ieS))Q2qxz;GUTuwsDQcJ3VXc7c)IdN8{>70Y&v>U zWA2O|=e9OGyt2g&EvIA6%y_d+0lRJ_uOL!Son8c(&@d#^{3Lsbb6iCR6V(;jkAW3E zm@<+qomKG-CfcZ~%@OR*t0jJfu0dsEF_UZqR|0wl-7^}Me2g=orE9c(tYV6Vd&o8n zeDKiK&2RWsvVg$h&#t0hXZTvJtq} z3ijmns&x{5b(?cMoDR~yJ#FjblX^y@Qi@SW*up9@<{yGZ%nv+282u5rSwbj@w4iZm z4bx`BNJnvdS4iLtAizPd^Yu)`lh6j6V}5@uZ$MIo_qv){d35Uyp^Vyx2itY@)}D@& z?OMyZ$DVZTiGhN&q}9XzaSN7EZA74hWcVDc(nLa> z)Kh&p7y`by(z$7ak9B?DDS zdo}rN0xp?j5x5=w9h~P5I+#`DMF>1j492yt@f=a<#XRKt+9hoFstz^nKA4dY>aXQ@ z7s0p}wL_sFJ!Fu`W?KpqF|?J3L(2I`BXzVUu7dl3!fKCFB`&W`n|x#fBlJN(k0z0G zrF*t=!-A8HRiR5Uu7;oDo!!5B$jaO!*wJk>_Lb0p zy*K+kFgCE?;UnU?@m>$^$1O+sGVu%pr5%ybQ=c_SsjQz0R7a3aVGJ;yBoRFbQS|xo zOC~{=Bm90*asMoz>Zj-c1aB83`h#cAO0j%!Scg4F} zV)qtuh?Q!k>S%{%{LIkd$q5{$#y#)Dr=F}uPd}*??$;Ni^@7w&+dAg8Y&Y9Xs`q|Z z&I|qG?!!vHrzW{spn|%e(}P()NBd3`nU#S*j{hjf6wW0!MpiN}Vt~VZm`$lpLtto* z{E)^>5vp0pj*=;GKBu#uICchrQ|YCKLKqeH%o7D+8iM8umxAhHI;4aGjxcCZQRBSkW^_#_9tRDnt5@sX*>^KYQPjZ` zvRg~LyBSdXf?-cX1YCA>ne81ylq33f!Z51miO#pjG6I&UbjGDSflDiUEz&r0k?#W; z|C<{GEy0=rVJki0OE@co8wDQA+WQgXO4VYo%oI8~A-Lb}Myi9y7S+z`qHaqYw1@YW zR=x__)Q8k4+i{!i;tRa_R|HwD^?-EWf8t3{_Ar!}$G(4}6vIXLI*>OHw`O1*S-QHf zq7E;TcD3JN9fn=PP#aQg-tEP`GzSCRC_+jgf9|Zm$5J|Z>XWYCCEoWKUlP!B{a-2#)b^D0`WmVm8a-B!X;_Bwj{3*rS5yyw6Tn z6=;HRgw?Oqa($E*aMv~AwS*J}1F|I)KoHS95959D9-OerS5&NvjI3}g>1c6Hg%0kr z=C~8~=j0DG@Q8Y79o80WS@Ut}DU=*S_qPL)(xe->R8S2}2GCT*+IJLLD_Sopni-7{#gtz*UGtWy?{ z9rZ*HpMcr+HEm!7e+&u7@8kiQ zus5e21d2#lqiXcDRY=(~1b8r7em1B7GZ>ucBHxW~%H($kctDIQ|GY0I_BNEZCke zW`(X@<23DZkv+(6*HLp>M1R^p;wj;GC3KYi)(XtW(t8>sahUQ*k%(&wAaehWgqVrb z0wHy0UDZ~4J~OybqLL}ntfBzZNiXb@QGCcYmq=s}HKh&-XCJyu(2~Ao&A>9+zl!(D z!TQk3!znq*_Jvh?*MUaTb;YX8B-N;QOtg-*KS#?~h0WwSo#efOpXDO9VFY=jQ36bY zoQ`I?mHzR;70B>+E+GSD6pHp3y_0BN2qVcJ>$;{5;{M(G{uYVH!Kee0mThb4#Drr> z6x4VU%QAh2>N!xwK@rtmev<7PvdgszMHW6I;zzaMiC=+X?4llN#t5x2*@xhtL|)u8 z>TZpc-1~>R^JBcfaXm%fYmH>T?o5(orLW;kU4Q?GbNH3#GuHh^n?G&eImZj1?Kl4J zU-S6>b$@+K{?~p?QKh`NpJPUEDuSuEZ?i{^5H0kCZB>uv#ryg57s7|`$o#uiDYuL# zKFpqo`}+*eW@nPHjUvnV=KT-l!!N&x1&%!?)tgCUPbJ_@m}r-FR`dGtt_O!EFksgD zIEp0Ws2(Ob7cj;v`eczMrnG=JmF@HQs0d$`5hv4IQE>hly;=utEXYQE`uUe~|K?3u z37K5WV)KPnhjHQapC&^2zI^=PDxoOpBcqB8TxFK=wH;OU zWM##pY0TmH41zp*9xxZsaCXZ^$5qW*t2{BV_V692sl%V27KT*`<>-VSPvc@LD?L z(s!7ZCe)7Tgb@BT$`PBU+<;S7z!e=5)cAQ$Tf_n=e+Z&$!LF3XSqJrRNeEsLqGdjM zgKVr`RiD3ANkCi;>%!Xk;m02tfWUih*<)wa$1>ZgZ`_CvuZ}`!z#&EwsyECkP+Kp2 zN9-kKwpoxtK=vj>smZdsRm@IXR-0M)Rpb~ms${dW=D}17=k)Tt2%0*GnC@Fzd!<&( z^vDUjvgiMzD(0R@Za9^Uhw!d(4I~FQTZrB&eun*tRj}$oRc*q1o1PK!B|JALyn@~J za_x@tyrh&5Stc=04kNSeB>S*!MT-S{oH4Hep|0-1URyHwR<>yz=)imd#LTuI<8>Zg zaf2L+*CN-yp|txxMJ6!72Kpp4P&E@T-X&Njxz?|C_%cz^90W`v)1m(Dm9jdNQX8t} zZwf2GGXkfW53s3#S;jhEHGcs21|$wLYynLNODCA3DN}|7E~TGV>7H)y4{|xU#?i7f zhkLW$-$L=G8Pj$dtgsC<~$(0 zr|Z!qk6VRrTfdK6WemY3?hofiwRza}iARt|2<>KTkH_vSU=KkBj?h=YwZVFQmCV)P zR)#=>M70yw`uXRdB?sjF7;-rx+FCb11Ck_fEnQWlJ?!_p59n!AwsCv=_8tFyG0Ke< zZv>Uw*rU>l`?ZLhHfI9;&j!HFTcmDF1zwmrG;Nx5!j1>lMC)#QT zd`9KLS3}DND&)~t5rM^>`%3wopFSn=RrniO5FtGJq$P=dQb5zMk}-mP{`^@aVHh_+ zc~6tbmB_L^cN>QQ825trbpJ}l1I!8ZjWhUrKJ(m^jM~0?^!?$_hwZ(DMlWF9LI!G| zMYR>So9}!(_rvRl%`Tt0_g$9xCUK7I+>fusaLvzL*oKCCc=h_URfwNy{&CG?wBIqw zb10v`sLz+JW3zljK%-#`uaKI**faN4oqMrN3rdbyAq9noM+ z#=miYu^EqC=wH}l%WS+iqhJzdFxraySQiHhYmzvP4j5>Jun}IDP9EayF=1~evsew6 zTg@~YmGioDf)k?a1stRSnb0$tL30HuHow$B-DUp#h5Ws)cgvnz<97+GD{`cw`qdmv zx7+Mlv3+?7*NtZ?wPbH&kaw(h6yn0SFx`^b;@cm_e`{7B+51^q2IJCIJY>L`!S2vy zUgFTcJ7oV-Y`z*Qk9ojS4S(j4+(2;a?Y+l1@7`Hdog=Wxq(M=|H3B8V_uco*%@ql! zW+qVwrV$A9v(}W$M2MnzRi>PI?_?>elrM9ypcZG4L%TJS0Q$AEf75g*!PrVkEz8Q_ zm>qmYt&XpPC z>6o9dc7CoTe_EYry5AgYkb|HCcr{G%0Db`k6M)d6w+%_x?eEyr^hiQ^AP|V2{h0r( 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

    YVyx0M+J+1=U!7i~=0D+c3JG<(eY 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�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

    !%lNY4<0 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

    3>z)c~5o%Dde4Z6No+i$Nu6~_N!mI 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

    (gEyS3UmdAN-v7mT&*ZaR>J0m|}^eZhYd_j~-M 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%0D21OkdrGU#oKcwm>g0-v;dK+RsT$QZDBBu_bRx@ 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

    <+oj$=4@!U08})EQ#8+C-;fSh_lk8e8kSa~z8k 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�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

    Mn1&Xt1A}IM^i2_5`V_*(O9 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 B?$H1M literal 0 HcmV?d00001 diff --git a/docs_new/cards/Reward-card.png b/docs_new/cards/Reward-card.png new file mode 100644 index 0000000000000000000000000000000000000000..11fbe240ef95b335b8e5df8c6ccefe9c9a75dac0 GIT binary patch literal 651985 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

      fk+_Z%K%? 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

      uu!L00A(TJ%JDj7h= zUw4*=4$RCa^#Uqg)NBe5mx&@~5OXbPAkwaGqXgCMxz6a43@bojbe?TjPz9R?K-nVmn_{@qV>PFd(mkQU60)V24EK4!QM%W~+3C4Xgh2U)h9U1a<_ym> zNt^}b9GK5Uy-aYIhY3b*9f$RR=|1F280nCey(|yw#{o^*#bFk8FR9XuI_7yf(G62k z*q_%EB@EY#zh@~Gp($ra%RH2s1#4u z=o}_MA_F-Tw&OzN+kR%Dw=ejIqYQ+czs=t%L+YC`uQvFG5lC3Cs{nA(FS9<)t67t% z;d{2_UDjbCb4<`711kqd3j`T|w{y8gz8B9zGc|W5z8RZ}K)@&_@X(5RKfL~z*LHtM zn$x(dqioF^-GCsjbk(iM@bA<}tmoiaC5YZ%!$|uCdh8Coo9K_9Mr!t*gIcU?1Snf@ zPKKFn-rl}qyjNgJ>bUb&?fLWCTfiV5F=u`nOIf^wt@+G{Z|m>nc&bx(UWXq%&27)1 zXav+C0Mxqe-QX+7@Itu*y09N*kP8qkEBjdv64&1c93LleRfc(pWx=UsP@_sn^XFMRefOC)^@o&X2Tqy~b{X|>_Xfarb-xRVB_Y^0v0Wt-s% z$%QF1-%b;aMavzV#_Z1RUIZ|7rVZVBZF6{}KX9HIaM+5!2iNU5HcB65p*vh|D!`b5 z-Sp7|)J}o?O{Uk@_{m%15j;aaDA414%)hM~z_Pn@qLc2}-%HvahO#%f|~@boFx>4_&-}4bmzZ z7cn`Np7XvtgTn>DJ=|?tp}iNyi9sh%;54Df$d-x1)^JJn9Gd_n7~>XX&lA zo%sy59b-2E_Ah7Ew(TTMUCzv;Zcwu!TwpwuuJ#wKkJzhOGLzT2E|a?U`utH&G@APH zxw!ZP0$O(`y$lC%J)9;5(MG+*O+7z!u6=DKE{^^vsjj)lxWGZo;22M31xgw#j8P>X ziM6K~SF`tqSwUOYaS{-l9z))V&C@VJm~3P;;WZIbZopl=#-V2M%GfHcs7;Mpxew& z4$M{>1iKNnO-jW^!y5#P33$DuOI|31N;vC8`ayH3?4R4&d|gT7{URm!qJxv&4Z~T? z*IwzAe5b%n6qVS7Gx-79SvW*F*5&I;$K~@YvaW;mkPvPssCb1Ve1Fzw%s(0|s(!P6 zb)in+^$|6$zfi|{Ki_Bm{7s_^y6j*!&pA^mpNvs+TWC$6`w@<{VeU~hKspJcqh|Hv z1`vP$^~-+$`h`(9xqggd-*^7ax?N;eo4#E_F`U!~HfAb`qOfd2Bk_uBeP2D^Ae`p8 zfpbv;s-A1XIf!WMi}PtE6IYD3i3~4mIH})Eqiax`dL&TFYA{D-P7*Q}r*o#k7`aaC zjxJ`-9O0>S`j3x~{M+Z2=`0I_IiSwyG3ZNt=D7a2q@U7gE;_ME-ib`|wM-R8FdnsZ zwrLsj-TAQorAAR`eMRFGty2I<9a492ob}$f03*va>w5WjEXrgZ*RY~1mU1%HdcEm$ z$)Jw1ZRJA922`yUqvJLzTZ_guKa@>*D5GRZ(Mf#XQQ7%YSUkTet7BKyqn-27j$i4U zy)tJAOpIFUp~sk8c7+O8pcWmi5!ivvV^-wo<}TF`43Y^N*E$Hm0Az)2y|y2W46ikS zAaKVr62FE&Ow(@A8#FX-77*QDZ4bK9TAPD7>fRS=>DP6YftZ_fwu!7g44`e4P5yfx z;|CQo7d101oq5LQ{-n(IzVul*wwfMg8Fxd5M_1OXfsX!-by>`I3^uJfde}W8f!2-A zxZ*AV*R)l1%w^qLURqSWWon?eDznY(bI8!a*~llZD~1r*A#1aJ6HO?1p1~La>qr5< z)N~0RdyRU1M%qN_E@VJffiGouZIcTOTpzZpCdrLJ?w*ZGJ9V@5z!oN*fGj%+(X(UmS6Dv4cnaa*n^xa|Ng;>m^SwN zqapFDo!>D4vR5V&xX!$eqNAdn58Hre{mma;Jd5!e2cK_}wKN&L@Kp{&YSviK_>91E zJaf=v&XFvFwcdijpH{8B7T%$kCm#w9;|4|-T3cRpGV&Vh+5kL)FGHG@{EsrHQ_KuqgHDpy`fYMc*-;SD zbTc6#T@!9rT!Yl?8=1e9AzUH4Lq=|aA&U*)=m>S z&YBbvFGzOGZda`>`Yz8de`}mPA5W)MGMRqJ#JY{`IphEDv?I}gX=v#hw?I*8cdA^; z#;*5m+j|A2;t7tH8+(4mPp)eS@=q)GeNW;;LW=F9pe^1sM zaQj{#zd&0sb`6%Tb1XzuJ6>C)M7B^(AZ(CZ?U++a275ZNk@d{3vtx3t0Fq)q)nw^= zIU6}Sjoz$AND`(1I^mdo9L%P^K=X~d>%&lo1tYQ&;Kt|q0=N$+@>7Gv@2}S}sX!Z$ zC^9KdehBTa+tH0x#t0j7`G>V&iLUDC0-Q-_M}{iaDnQ}yU%!(^j@9BUxu9Y*iyrTZ zZlV#T4~O;Fy%%xu-MLM3uwWEo?OxF-`d$mg`85C6)6rF+m*}i4#y5IMTAWJAKH8Y|N0K8yfvQ{Ynz^Ph{ zE>=L3bcwDP>*#43VT6mSxzx2e|2u#~hr(IG41t?N*^T=rv46g;k!D}6*;%xM0g0sE zkB*=x^^yQS4Z`f&GOev5lX3>!&|u(bv_h33E3j0? zVQj&=t|_|M%&XRPb&YRFtXI=(oY&fv^X`Ns>&*9nnNw4-OY+v($f$tpO9p;+ZCDwb zyynpnNYeO>L4%r0S4}NO(Nt5HdK+-icKmt$yp+HdpMEvS6@X$h-*U=qTZb}MKfZSN z*~Y(qY3S0K%#oIT~ecERfD9RDCq}raIpGmgSx- zvzZt}^_9$A z?peb$>DPYX8ae5oVo4-Def7YJ4DyXWFZ;RC*$~ye8p5cl2?I(s7LIlajW3Vt%wHGt z{yqVvWOyxAbF{AGzLXOiEIr%5z@*4$lO7z*cyaW{aSV>P*zGDlJ*yfw+PvoDDnJJ; zMB0-#z|nnC`faUN2oZ>n3|@^olK!{WpU2dF&Y}dDe3WxB*qm$rTaTLX;7Cd;0{80? z3@kiG`9N@KR4@Q?1;-$9!)7yttyG31XPyfI?BEJcSe0~Ka~4$?d!gI)(jiTg_v&xc zL8TvD>^|MXsB%}&}!<^Z@J$YwaR8n5%HdDiG`k2MAR$J+L9YguDJ z>EIv7ruV!v^%$_W9`Ci3SMsOX`3R2rF|n*0*7{8GP^QMTg9wK|%W zmt)I_PlZ8t`n`1X>fn#t6Z;86>US7Hg<#p4^%vKhG>%ahg>*359Kb*77~T%xk>_tVZTG#?}0~*X>sfHGg3yYmRa8iX*n^VvR@E($;~2b9#k20J$7%c|f6d z7ejn@)b!f$YN~-zDx0$8{=@NM108=sklrwU;e%m}aF#8baK)cr`Mrn3n_v)8+>03G?R{XTs9hgn$IhIA zcU(@E6_qhGVLEBBcPm(L#L0*VS0sG{6;fn-melE_r$cK}`s;as-RbbM*2qUiz>8wf zF3NCTnf)J4-^Fm}Z?5$wZ`L5~NGE=o#?s*DU=)<|xEh>v#s>H11Z`3x=`y$i5J}8u zR9VjRVpMVN*oz>iolJc_9V#nh6EYgj!qgo&^{XQ1v=G%bQ@Ukz?Z?=_U+s%&JkCn` zwO596Yyc57&~7}#vWVIBNiay>-FBsPjgJUwfuwQi)2+qRdr2aNWQ zvDMIlA~w9GZ_kzvTJ!gu&->E#wZJ;Z31}eKHa6A;<+2`WH7Ef!TUQ#zN!TOsjmofR z<2=fJ%YO6qEnvP&M z|B8R_(+WTW-%BNAi*Rr2k?Hb!Mg`Z$Lk^u~1E--k=WTBLU_b76Y#1c{3k6hl#tk~KTp$K_Dm%P3`?Z}VIX?i!N9!v4F^#EoOVSv$=v^&dBw*q=?2Op<py#%kd^V!5-N&#}H3^lgUZL znMI($D#3!FSog5dnOQ8ULK%*Au!7vP}#%6xguF6S}v&=e%n9keND55Sq&7 zETz%jxE2@S=~qyhUIzv%yXB~t$$G}Y`C&`70CZ?@s05sTqMR03Hm8Z#_o zj|>iLJoCkx)$hy{zq8p=g4gIsmYH2pl8r5{Bf9^c-Gyh31=-JFD*zbU*z8{)r~Q3r zD}UYh`8zVK=h0n)4H>v_4r6jk(t>S0l&YDNMm*DyeupEHRD{I?LfXcF!=pn7eTc5K z(ZnZ|M>x)?U8b{$hDmeD4jEFjE!@3L0<=;9?3Ew*~*xAHU(KA$;Sr7%M=v=>OKBGE@lg;p6Ez*Brcs;r5dmfr|boc*lFO7wBwS zU9M^LONYc6IbonPQWh8F^C7#c2%x2bWEb+HQQ~*3O&ps(etuJq;GX@fi04MLJgSzX z0~|11(plOw?3U4S&3SZd6mad#z%tc<9~+PxjN+ynuEtzE3uEIOsyiTkDyz=4oNeJ7 zCDpdi1uh*0Y5;;ZaF_Q=W2DSqeT_2etn+kn&FdPVs_#EX(Rgh#mZ+RaAmbPKW zZ4Xd7k|E9w6jSCM*_Oj60}58PuKo`Zn1Z0$gKOc`U>`q4mJXWdhGpNA=`T)!iT z_?ZzO-avN9L4YF3Y-c{x)m^>E7NpQjM$vxpo_E#SDqD;0^k@F9;A7Lfa32cF{e*cs zhwT(glW1q**cBDeYy&{d>gidcj#2lnOpY9ucnyme=ic(wTc_%^pt>D~+9;m4lp!l! zEIMoj!I*{XU=)M5))9YgxtIb6yZTEfrCyF2syIjdeWcIZ80ls@h*!j?$^ z+jNLm<{Kp=5~6GZ=6g`hAG$|D#F9Hnn(m`)osJ*vqR!b+783aBWOt_S2Ny_Z(vus;n+r6Gc z_qzuHHGv|jrUwI@&J6zI88PW)B%^x2y&TVd42y5i4m*7UU+_#xrWHg={XFJli6`aN zggKt*e3X)2E6!`^p>HKxACNSh^!lgX|!;<^D|)kKU%uu-)S zDS*`O1Ko$WIzuQaYui+Ye^lnRv0DQIbk$o`qY9a@THjWNW))$c{r*Q6w(DYd)6RzF zJxF1}l9Uf4$9b|=8O_Gdlm}!`*sVLGX>L1cw+)JFM3Ias&a#3R9YGW&I0vG09mlq$ znS2?&PGhGbZO$rW)>~(|*E1z>)N4_cVm~A70SMK3R>@t+aLDLn%?KSeKIg+|(}}mS zMb!D{0AErM)6GU&-x3g8l~X8N;{+34uai>dGfQqMv$c3*12ZLiZl%~X8*;RRsJ$zP zacluYfuP4L%^K9;^E9%Al9-Lk)ZJ6hnCH#+Y&mWe&oMH<2buJTGuc%^4UamT)^}8J zuojrI=|Aj=iB9MRx(3f5MtV_>{j$gGI08=@PSu^lZXqB!o9ET9)td9((o%Wr``x+o zx@Vl*>Q2iu5Ihe#2KI3FtiYkssd6@gtKV(wR9PPHY{U)#;RtpEkhrWUW%;UU?c4|e z$u_&_>#$*OuAMS$kR7m}@MqTd72ugxQFR3wdQW$!*vb*hb=@eVW4kZOOFny^d&q5d z<@UPxzDRWz5S(s0_VVZ8d))|ReUmNfJM>^cW+C@+q6|axeq)>-rc^R;=etnv0{r7X zx36+WO=~nekTBR|#4(;DY27wkuW+rVZH$n*ZvS)FLs-|oM!r`1-M8?Bn{{TW?WAP+w}`R)Vw|1UDS@Cl1Z? z83C;C&GL<{?4wT_^w_1BSOs;g&tX1?uhLiRQkLCot1&%ebC`5Jp0)fL_arr@Y^)*M zC7vqAr-)vAYz?i56Kg-WfSV(WoUK8o_JjYKa7#LH)P0ntvdhQNr?wQrv6M+C9 zk9&}4CqxS1r|2rOQ#b?pyp^HP5 zo}br#D=Ir*aB?vgC7eA-)MU5fa4bhOLJIEmK;-h{SG*oGn?lgO-(TraI9`3sKib^rY9pU<4nqmCVLYm{tU-B3gQWl8|Mh<|!nE$sTS0HUKO-F0Upc>Y+ zj%*(vQ4>sIAIJb@;WeYpI*ez^+x@W>B~Pq$Ku`sDcY`ISmF>SUD_4p~N>?ESo- zmwi(PXLKTdVYG)?1JPW2L*pJ%5H#=dVxy~z^;-fd=yHhK-mmp-ulxN;1xfI7lp&Y# ziE%9#vxDCkIt_n$v`V^PdprHn{r5BXdt~%F*6KU%>NseaJ40?X7%7>X63zY-bgmX1 zj{rLvaaRUg^ay8Qz(}Kc9d2U;-KATRM&z5srJ33om zj=-06gzgVnWd^0@6V&K4eKx&XduHBiA=8b3>L@u7m5n!E&Y@-|Zg*$xIFc^6T2IBn zNc(ag(2MuAzH{u?yC|PI^P0K>MxFafP-JDCakn@_oF!}C&p--duJ1x!n0~)g=8g0_ z^$|b>bdjFLz@tg;LiV+Oah=z3aL76Wjj5x~Zl0q?Tmm7P`8Ya26JH5zw$~gS`GbIu z&fB}F>%wvfA{|wRQnixR#B6rml>$aQvy1hxsAHuKF$Tw(krhRIRyNwo*{DWr48FxR z4`P#D7!({U!!v%0GaN+pFKzpQAFulSbQ@UXt7k8kh>dDolix2Z`_RF!V*~NjdCEvp zhc$7!F_b?4I8QRGIBkGgt*ZYT)EB;G?7fr?v$tb&RwpZpRsqR5bszR{;&{uPWo!hj zjw~|k^`JBQc|=w6Wt;4!B%9`9s!KDTp&iA!>AT7_7D$(!Yx~ogu~jxq=BqP)awJgs z7fdtRV?Alnr-vLE+UBb%q@!f8^;?lau9m5;bM7@=)Gs>&t1uNAY7r#V%{xocYBVC( zc}O2HKx$+pYU)9N7L9%@C+*Fi5NnkqOruX7p^o9BoQ#qq;!XT3g^~`*kt~iZJ6au_ z+yhM-vnH7{+iX8ezvu-&U6?DFBz*MzZ^=G0>Jp7v{JEb6!2R z4JBE&u}p^iEyJTj9#1mokjnwv=$OLj#G35GqXQ(?T)Z!A{Tbtl5>P=$=hjb@A=cQs zxX0V~kv!{+NJq$ykL}-SH*Wd9h%=J~lC*bYy9XNiH?HdqjqH z&dQ8BjoT3pD>J|G`s{K$Av{sjm`0s?lj`)x_7Y%-^!^SD`u5WWHptcy8riaJMc-7v2r0yqbeq&HEVMQ z)h#Uo8ZPC+O3z8_89&b&;A`nkj1HSs4U)0Z)EuOO&pQZkJ6Lhpqf_(iSJtS0#{S6w z!{5w|^+DxPka|Hj(NL3MnczT_K0KRcp9dWb2a1G|UcA55`=b=84rE1u=6oDfDbR*X zTtCuB;-z53pb=6jcPXPO_ypuGgb7|#(u(}zU95NAP zt#PCV9hj}z$PlZ;tC>&?n(vy`VKRYMdqcz6qQ@1oaxmuD=vnR(w)z>Nt0~}Nq$m5_ zU$-`DUONu}3#5#O?zsdQ8<-%N&P=Pf%;ef_K=f1zhC659)glvw_j7j!%<62WKRZTK zpuG*dvck|KrzvAF>Wq-mDO)SR$KZum_LT$YeN;E>{d1IwF6PFpyDWLt-k6?az>ZFi z{Zcl+Fobo$#@5>Qk@T_kGcpfbeUb&TXVsJe9_2iBvz?;W(T+S`KgL5hZyQsXug=%% zvzGT4HgAm@cwbJrbkUd;{DMW0r5%aMDv5@T5$(L))}To#~&erSpRG+xiHPvFXdY zkG{vBPHOd|kY4oN@uU9nRSQooRY4#3E!ZJePRT$AG6v2TAxG%*-aqE5(xNn^cHK4pGCl_r?uLE|myWe`*3CSX|rF7nmK_#RVZURN`Cb>vgWfGjBAvH<=>eNC9^P-GGp4K^D{AKW;iGYYECzJ?$@?PX0x)Q z`6)5&W2i)|^+-E+%#4birEIwLX>R+KiI_{JTT83}FP&7jG2c%6U|SG`XHdP0CgnG< z%Dc)*o(vFlcUG|AsKC38(sHCY)92V2WY~4dF0VSkvdxmhaLT^#tREiy$PTdK=!ve7 zUN=END?>MtG~y>2(Pu=aJDF+G;LL@PMn~L;a%6|F1KFY!j)~f^?4@sLjU0e6I>&z9 z&f`D-{FBj#gQHHepDUxV*$O*_I>R7IQ+84xqhoB)X}|w`Wri`X6^>BQcOwdY+>Y7r zJG&g2(Qtmh-pH`VpM2f}AUS;K$U^`9fBrA~yr1*`zV9b$FvIaZe*enM=>KzPP5=D) z&gVYvXMByp#!nFPpqkA1)Og;=?gT9}D6+oTf}6v>?>GGV>y@2#bA^^_7d=7B>-Ea{ zt1)qQUEfq{I-IC`&DmuW$32~$j}r})M$nF57+g%D0mmJH;Y~oJI>DuAn=`XOLF@yt zMH3ap%VFCsKWIvU-@WK`g?xYg`AlG*^yeeGBja9Cw{hmo+KXY6j0QzEJ7o3#{%au{ z>@0Rvy=&vFdO*ejaKs~-3KY_>D1oWiKsG};tcW} zMK{aHFR9&Sr-zJ$LHQiBoYq{H3-wkNeOpa~nzk$Ml?~i-u5Hpkczsc~%3yInpS=7Fzlh09c`i;QNpaR^xtfn3Ke)HZ%ZDYVw&WIt1 zdYnh;lj>^AdvmQ(JRfZd&MOve(V?rrBo0^h0XPoKSod9_x%WNK*$LOtx>&Dwp6iPl z?t?(=;|`c73ySx1m9EA5sg%ihhDRZNoeRsrG3*R8-QLbwHj7*xq(OZ$vNYY;rUB#B z^OOMfIbS-g{6#qf+{1$8+j-lwuA3n+D-M~iCWPs9E@{+4p6``7!N7Yyq$rQSXTwdf0wB^?MLI|3}6eY@}HQF&&t5W*{8QKRGm* zp?zA7IwW28s*K&JOrz=C=l$Zs=$pd5Pu+)qPiq#IoW&f=I6rRP2y6#e`1IK!oxkULBn%Rs znvFv8lO-dxBMOdo6V84HlPrGB>TaH>H)v3B5ZO)iHoD(QrF}OzC7n@(@Qh5DnP%6i znEl$6r{lyS8l29gQr>K$Gn0v)2iwQr&hzcGMT*}23j%v!L=Dg%v%5+4y*f;7 zP{qlw&)2D=7BjO!_l*V5<~;x`{>4!=q(ehMWRO8$3@1CXxpRCo`(~A0-WNLS=gi9} z8mM$#yti~s~{hTUj7XFiw9c_PPqh;9_0jjU%hB#JC(9@>aB zk%JTW|57vv7eiE*)XY3ca;^rls7Zr%W_v_M9zm}j8=VF6aSYWpL-}+^S16Pm(<4WA zy$O8tgdm$5YkHuo^NLJ#j<}iV)*N(;+gU|z@W=*BDe`QB1Ioc+sE=sltL95m>}{-+ zrL$IYuC_`>LqWr-F(d@@xdQ`P(E>Z${wOopkydX(kXc`Cp!!}$9q!Cl$7>T1>y?Uo zZH}09!DgU$Oi>gmA8g2ixxmj+0Rqd`iefa7(I+E{+)=a6;94~$X=P~ryGEtf84g@8 z!xg;0Vf}funlQr3>}~i+l*xUcbtZ>sXlB+CRb|)W&9i`SHI8w!j{a}pi05Gk6iyNu zx*dpuw}B^nMy~a|wI%{r)(X5LkFz_PY9ouWV)j@g-5)*aemyC9dlp+@0m8K&Y=HfG z0&V%f3!?;*97*T6KsXOW-OU(9-F#&CUELpNf5_v^jQwHiUTW`tI;+yL+_PB!YirCR zeU!nGs2dlqG;f_}W@?fn{grPMt5Z@y^dx&P27w+IwU2{F> z_v-5?ht;65fxRx32@liTQ+rKv~$za+3to&VNne-orbN@J_PTjk3X0%3w z4b#f;GOO&aJ+8~oonV6G_mZ{MKuvl+ZTo?s+>|@vR{MeXQ*3UicQ3pTFdicZ3Aa~Umu`>hIPy1s|`#TVbXg97F6t63tzRHe>z7OYsE0T$V;YpHLUI1OQt^LMwvo3QB4|>CXTPpdeR29qhICLR4@sof(oO zJ*+WfnJ94UEIA)AlZRo^vTx2=7?GZAIoFj*UMd43Et*NAWLK`MX~q1UeTmTX#t_)Z zW@xK$^QvGU^~cdY70$H~U5SNFhvMLTIR~Fx<24RCnxaQ6cFB`r(>YSj8kT?`M$WX2 z&IX|qFz5l_tQ+`FhZP6y_nl?@{ny`_vHARb-;wJN`}pozeYu z{$eM+l|MJ`yV)!Xw1AWVUi=%p`71$GP@*G{7g4Q<;`r+T6+CJy@BLl35{SN0E3)tB zk#z0&_mwkOXHq0^&?bT)`DfC0QsD}aZ--+CT&n*OAV@{QZlUUej9R!>u&Q4zXJ*ME z*|JE`(zcIOFs|!PnazV-x7N;5(UkbwkcS+X#H=XQ76@eJ!xLzck@!x{`e zANJ@d18%B}r4u*#dI1u#B;wz%WI2#-yEdvWa6hT=2=W-akIN7os=e`Dfm;RzY94UK zk+~*St3oG=YmZLYvm6>l$`_jvL2W`V1npqVu5x_YX^a|2cB46P^lgxRFbrz1HZ zK)16O3})G=j93AZwMucf!NF@%B7)K>(7n2L7_X&3>-=s2;~@~-V?{BA7V7n8e5Oim z>vZtGweKi#SX|>pT{}q;ZTayE|LYl-ngiwYuc8&t9i+%$=4OoorPxoieO4v*ue(sH z++mniX07IF)9kMTnJRS=pj6bF&lOpU_rKhsP`{$7n-szuSOFXKU%^A>C zvyAH0s`;GWb2e8wdelt=>>=q3F)A+BpvqwtNG)2MK+kHO4BIpajsWhf>5fF&1*VK+ z-zMcbmXp!>T?Z~v8V`c=NyZQ)L)przI*=1XN3EOr=$slT@t5@f0@dzLUtee7CO)rN zIo=LTmC_6axtaaNRiW?37IgDEu2wb~Co``H+j^QxZE$R)yJls5^7+hI3r+bc#Av2w zDHObiBO_|(#rm|GONmoY9p7gOPT=gv-r^B(05(cCX_h+wn$DWKro_B$CS8j9FS-qn z-M8d|mAI6HQ7=$bK-ZyT7%w^W9_o2@gVlI6-dyWg+9=&#CI`}?>*)eu3NWZMIPOZ= zgd8BZ4k*sj<0{MArH>ywt=14ulHT8eG1v&zNJAb}(|NHY?O*`-aP%k{JlE3c>h!*< z5fRTQGtR|QDO@$Up0P&ED((S$W_1Vkx%R4b0%fl3aXs$<(@y7f!&|zi4#ipPfa|gf za7^NcU59yNf{S=bU~d$yzSl7I4B0BF+v4-icV)hj!8M%4$f~>O#TO?CwDhJUOgrCn zex6I}@r$0X?(0yKP}#$TyQ{H7Wwx;&Q)BQ1Nk(Uw)eB;{)f#~{iE^aCc$g~kkxb6; z+u}AZI{JBE^xZUD8rgO=o;qu+X*Pk|_R~gtt(CYKNGGPFJ>ZzsBn$-&X#4aGXC5?y z@oZ*vJ9=NFBVGi!+ROy*rKyTx$qiX`VJ(CHV^5*8nCfvN_T zj_hkHmc7H6Hjh!TCBaUh72WwR1N1%tEZOx-LZ|lmx<|B%NBtcrSOj%+*5iHu_kaGA zQIizJF*D8o{q<#^j(U)Asxyj1c$Ac@_^v?3qS3|d)#!4Z<6|~JsR%zPUq>3J6^)p( z5z8vU&XEhMhosV8&R{|Su*i^qgEE}i&r_M-QQZ?WqMbT~k;j8n1~qZGFnY!_5$|=- zjfUSC0YURD(77=u_RB=OfsxKAg~cP_5Rc3RN1hZk=zD#~kt1n7hYal5To1hEB~$L0oa$#Fqr^JAKtwMyg-n91G79(uKjO-7PPI(Y&xB$(a~jqpH`0D z{@rZvx+xkLfN?7hcgS-^Q|rv_vE)(z-5sSTUCyiFN6|ECu;rYKribPY+w*hP=4PGq z-osd}Mj=BAl?@@1BIrlS1L%|Cpj;W8==b3sv_4wz$81UNUg{$w?Y02D)%i~l=KyPX z(`F>iYzukv-@QNn!#GOmcedLLREt_OwD758KnEX{lSj7IHvN@nWLRZid^7&feXJ_l zdiK6$FDGP3(HGF`bL{muBkk7IQOSmGKGj`3`@wrQ0X77}WbG7K$o>Hgyl8}h0yqLh zC`XtNLo@_{CHD-Nv}BE<(hfROqVMayCYd&8rblat|BTvuJX>Yz<`eM7c`L9t=0hm* zx~xHi<8)YeAjR4!xFQEy4&#wy8nEu5!htDp#fKeO+~rW;D28L2AtUoy}E;L zWs|X1&W%zO9W`NFhJ*L5;H1{CnjMaw$>{`|Aww6Rzisb&_%isu&y%_==lWeuOQk7= z&QbtscEDR8(8shrh^W9?W&;~l#|rY6M?gk1%%YMFwXYDDc==uqT^b# zRO=w|=k2h{78v)Uy~|OXs%A-Asj^c%`^x+;?~F(8cV&BV$mK9C{+z1lAwPO%ZU~-O zHYy_;#A&h5v|H^QS=(1CkD%VR*F(=d*%)x`>@fm-endO5 zURa|)&$suVFDI(3<3Hud6$*BRGDrK9*y~=4h-!+%ytz#yv6c>_?S7We4wb zWKu?*=C5knM}L4pctRe=l7!lp> zbM_<)??e4?5;H2mxcM>os3%>yREjz~ZeNuE$!GS$xVklzlpJK#;hs-Yr-4_o2WQA+ zMoSHb==;wR@wz=WBpS%;uk3AG#A)zTrp-~^)s@%`r)8YaaI z&ad0K`o7T2X+h`MKYu>$KcAoWdHFGH5=%39WcZU_JM z`&R;WfrIE`cBVp^1p6xmHbBwG{kmVbbL)4e^80>v^qra+#a#;rG+y)9Z`_w(AK6*> z`uQ$2oc6j-9Kbs|{e5S2!&&`iCUnu*#ag4?1|!K6he+GC6Nr{H+kgOO zRxR4TuWpU4?rV{COG49v^Z5Q=%od-vH^dlJq(P-SK7OTQ_+(Tm3{}*n{^Q1)>6Jgb z*r>_~bkZnCQ>d(iK1&g)M&$DUrnt5A9HUb2HWW(F39aOp%kv>#w;|YAcAw0}qQdcM= z_U{a(Z{Jg)f{DU&G#@g!!7l|F>Ia(+-KBSo%_-c#X94!5*sE#u*Vq8fc4zi5DNbOY zpq`OfzE8%{Y4odBQBHnt?JQt`*>FTlz8fw&Tp9weGllHtJA;qv5S>hgIm-?X zp2bs{imzJ_+++;YrGI%=^E|jeOB{vm~q3|ETdEFsBXNu$kJh@x+j3n?qsSXa4(( zuj3_sY|y|s)qt-W{Lk)q^?RAtaOj$%Y!7yQ4SPeIP~kKmW6ZfqDfJxA`@{E|eQVWFRMb!e$Qdn2jfyA2ptB`@(4b$*8oTQcC9+WcJN z$8&CWqJkc#L<9Ao_j5yhc*S%!n*pbWTyo+QRgh{sX9tDTsGB{ronur+RIDFmVs$++ z3d;_Y38erL?A9vV6&*vj(f&Wy1a&)50t2?q+ z0CbYZn!zAbU~!b~QL{UAWJjmvOrrU!kwC(0D)B>N?|RB8>p%R4Z$-3Y{_Pv{W zpj>+o67S$-IhB)TamBi{(yfxIqiofxV3cMFue$$Xs<8)jO4LtzaNq%EjCuV&{2ikCI^Y1rmX49xM%5YVN zZ2?FxMkV4|;@+ZbaAYL|Ts!VR!P$kTQsL+%T{j|S-xr!47$Uy8CIhVwQsKt+2cmOJ zhr-4tB&T2%Vrwhk243q11owWjMTP98X43B0F&Zjt)i~tPj!!0Bqboug{`>Wd?a`ERb?^ zfbJDRfyg{$?Ig1RNFNdei~y=|8eNd6z&L+L>)->a*y|)83jXe z{y}+MWt=W{wh>DJXR-?^Gu|{Jq7Xtk zE!*?D0g}?VPy;r7hu??6iATvM8%~fKzn*Apr7XixmSPpi0LVm4THxEIuz62ipS!3W zTjtESNUk?<8-;nD&7gMb`(K5W#fDt6x zz-N4~x}a?jtv-`RnfIftVg+)zuj*c_te~Dbng+fyz;)JGD~(CP{j}^U!|QvNiT9<5 z`*lHXoK!(IeA%6SWp)I{b&4{oYg@~0W!!v=_S+!k7-#$#&8#T* zh9GE+UDo;Y;hUbtA2?`W;XJU1vDwEZU5c)qcnSBGI@&Tohtuk8N7vE~CE2|^hz4l-kpF3nI`Zh>T9n@mUI_#xyz+4i(`aWE1N!hpk zEa*RO4=1Q(WdoMfX$tBoGnd>8IUd$u>fzy!KSnHqwU%6#K3csd<~Rq^$CIGlh-WZM z+xN#Q9ig8U^}Tee@Mk+DsFPLQx?5*Au?GV1qQviKeU8=x#^+63R`)nDYdV8rtM(mT zwx!Rori1!?K7w@Z;5~M3^uGD_EU1_p`52S(KIqi%tdbPB%j-HS2QbO$qU;sc*`7B8 zatJ2ASUx4ACl=(Wpk(XDN(<`#WiK|NY5P2$y7?TNEL-VMJlJCYYU1=uOm^i zTzGgqKBr`34|4H_9?qlfj5X=RO~(gw?L=upcH&hMg1?JJjD(8mIk`TMeIH=5Ww6xy z_k&Jb%2(+MGXWB;=O|mIo+7IAd|(Sc@1R{SS=2iEs%ss|f+ba(mLzn7)+k^d;?pQ&KRSV z8fdJVMsxy3=jSsI$txqlm!p0wI$FkSvSu~1-}mpKIMDs<>%PB>onz5a_EnLS$W&*O z0oGk%?cM}-Y$kJJ&!XE^G#q)~R{GDqZ~w%7-S_hq+4d2cR>)3fq+ggVngiMoP^6Q- zO=Vw&_N$$!0+5^2*+34_Q`K+XULC0qde3aCqT3dQXK*I3(@{wO7PZ$lBU;DPe7Ckn z8s+BXFW!?PnnCLh<#AT#kJlkB6aJbaYH+qAD($502JpE!6Ki~Z-FpI~WbA|(^6-k` z;u%0fy+?}96n&V+;(cvKoRmJw_{b4ShgJ7s>x>7cN6iB5wu6f?y0&&(sHWg_6i^gH z0i_y6Qp&mk5I~J{eLF%rbYGk;mhU;v%7WDUS#u%{n&5lteyv6VJ+e$j0BXy2N{nsJ zOO`5J%*>@D=eE}=OMy2?w*sb+sg2%8IWdCp@HpFX8#w!7o0-u<2M(tM8`)J7XBizbZ4uW)1>eYHb%MzAXovf{m9!C2h zW=Yi?*BV+o1?EgB?{a4qsHp5|Mp#zK8u1v}0G(+^hUKt|YE$mk=6on?m;t1N4(nPq z_by~ByI>|;;gx?zIeNVhgZ5HM_ifD2KL!$yMO*57pP$B^yQ)jvzyL?eGVq6F$T*1JS>#>Ci$}u7kot(vL zd~Vg=n%B4-*g5p5KmdP%e!c`wFJzmJqwHX3Sg;;@u3n6`xdAWiLf18l3G*{h@pR%g zr?S`~KfWAyV5B(uAkuO=!xNa_dEZN$r_@M1wk9*X0Y+p-99o*o9 zYSw6vRq1^KcyGBY`AnwHS&c9ueq9TSeN+zxFZ+a4u+w3*vN@70<0?DUsk-S-N5?4Ac!~U@gkF&RGsw zc1B-&6E$G?ih*WFHjVcLqXG zlM4Cw)tf0s67JCXjAXJf;Bn0PbJ4lBZeD>w==sWW^LgS+WhXgd}8I6B{41L*H;p-&?d3Adbb?NiAl!Ek5h$h!>&_$dE)^ z?u(r2OVMi{w0!o7dd_5j-wx*2pFeiIX)Fm+)VKJGOzzh|_A7)UM<+xE_;(7vlj58t zKW8iZd%eyQ21YoTO-o@(D~I*T!}Gq$*!IS2Bb%8-`r?jEEY34BO~i zeV`>!$`+&(9Lmg)tBv=B)1PyD!?|$^aXkO|k+nqO0K}5~3CBNbfun{s=+x0zDW4P# zmg4UdC=9|%Lzw24)Skum=iO|>Qu(K0@U1pcN{I&tt-P90lh8$QLiLLHL^Egqzi!6Yc0y(hyMNkPILxGGM zbuc^Qv-lsE@vsIdo4;2eNNeMzTd~=Q_RY5O4tqVE0&h@XP_W~N!;0IG(?*cC zW}%Gg3_3bHRke>*Ux~A;2z{;v>%r7nZxtvsIvPeJO*1jQoQOK0bU=4XSJNNyZ?f;K zDO0Nv(kMt?#soiOcA>n$-N_vVyyQ^UZ_B{pe5e758X-x(zc0=GG<(b*#G6a*Dr4ie z8D4_A>-*tIngb+dee5PTT2GyAjnn{e^8(tGjsj8nSwr}2)SA0{fhIK#%xjO)XQqrY z_9Jv=lx-A9kZo|CG0orWXU||DGYI?I3b7WDmVVe|K+Vzg+6+pqZU81{U*}BntGS~^ zxg=r&+wz?p6(z~Ju?s(WmA>yeaGfh3TWbdGw3us zvu>u$f$n~ncQd)o1q8Q0>D#ZSO6qJMyR5iZkfQ6nT2A+MD2JS%UpmERZ|gwtPmvkP z;d-o-fIhRJqo2VDJ|DWz+MyU@J`P1YtiW`0)BjE}Yt`$$U+V{DpAFgerg(aw$|}-+ zixrhJx-slZky0vkk4z2r=MAfZ1UPY4x>_F#O0Ot}<9YVYOFstk$j;vrr806>`%EFr z2bnl}>Ea`ufvxPMPhRBML!7uT^&JuG?Q%6YqT@6-`LotPV_O+v-dZib7EPY;8qD;5 z0|)q`iudhi`g_@dp|`vuwL**P5j!*3A2y1r_wyZ#X$LniATK5^`lH`PLWjy6O>(27I>BQFiuxk;dzo;gjQQ4n!@YVNovh z)#GL2>%6m*zkdIf_YhgsBiW`Eb4&%l>W~>6R-jlI&adnc98O+jS|fWFulam` z+2?<5hxPvX`;OTB{TF7eI_n+Ku~miPS30f<38LY?0iLPVe zkTXM_GaXg4a9{7A`}d!*Ovgt?|H5G}d2?j8qxLpZhM?}f4b8LAA#w1~rec1t>S!oX z1o{>nF-~v7!O+Qx#z5}1&XA@)XeXogW-`hEbBM6AtFR+tHMcV$H5hS~^+w(Ao4=bI z_{w!%4--_zC7l@QO|1u`ZJ1q!TGN~*OJ%c2)6nnnzU0p2o*#|_4*>eYn2o`Ct8{#6 zV{nuvjftq-1WV}vOm!e!8NiVPe_eEx#;nL@IfLfenQ+cNTdv@20XVz|wBh*X+MLyg ziERbwPs5g-uYJ}&Ys`>duju|{Ms?3BNTzb1X^Xq1JnyfJTHjaxbL-X!J=nBPIWwv| zY5=D?mj_LUj)XN> zS)DmadipW?eobHlGLxW+>#k-B*X?M=c~Y=Q&nraO&MLD6-t|#V2PAdY`x&@Ov&Vtw zHf5W=o=1U{OBwik?O$Bj9BRgOu7UD=|FltOKtV07TkUPwgB+1IGe97^mpU&;ME=j` zXR=vBkJkCM&LS&fj&(!nM$I=Ch%CUd=_oo)T01!oa_$t&LLdz?{>c7~ZOxC)GV$tl z-ONxan^bjHBQv)ZBplC7Mq-Ac`Y>jt1~M!Ok(Za;!i+a%`f_h~M)F$$jE!l*^LNPU zAayP5@ui@eQRhr%hmFpm;C0=5gWILxPG!{4!{J~CK0Ebam^y%ZH;xL@XVra=Izwrb ze&GIkMjqCL;nD>@+BVRE%cq^NLxPOkfi`79jVzVAwync)mPcYd^9ncu3D*0jH{bC&<5-7}O*0c3q<|kLp zbjx4v5}9EK?O>D-cnMEu#;a!2>HZMQ>pUmzo`D$K)fRQ8Tk8+#rnMa^WRE+@)XW@V zEj0&xbmVxt=G!UVk|8>JRt{gY z8&Zd4*%7|KIL1)>mUzvevyhFQEbnXEeGTw6!xm=KKu3MOaq38(8B%K0|A#wV>#g(G ztQRX8$b{M=Ls!X&RbqT+r!Yi@G^dfub(!TW#2FS;z3Lk)3-*E3Rnv^d@SK?q2u5<03wI_-&EedS?Ju7$SE5 z8l3$^0gu0vzIwj0`)?8@?q`UpEq~pBq zTQme3=Ws3$f6(gyI%Y;l(oC=oEtw+zTEEIVj6OpdXxKz$7TC~PfT{@R-Ec&{TjC+|yjqzM#RXRc8LdY&3vL3!L8;s7vSboRRG zg+BLvu?*vyC_NxO&L_vI4QUFi;A4W^IjafCl@G3a@B3SftmpdOHsUl=S|h+opQSV0 zR`;8BeIg(n@^Px1B>uRygTOO37HxcXT(im?CAfQF$>;ghKSxVu**Np2&L*zlS=KY^ zJ<60QsL;+8>2(7m;?$LSaSgI#v=~Sx#si$fMH#6ZT;5r`yeH`$I@P7m`#GyFb`hYB zok~ufIT|kk{OSHjvkYvvM+)p*y>_DkUEV|X;s`sY8N8i|%-6X8&waAJ4mQnaCw3mATFlBp5q($K zAe{s6-={m9zw`}*w4EEYmjb|GJYKa<`b_ookRypeBD$Tw_aH3KSK*iX4BqAHHLwQV zd?4prB{63U3Ub_jf#*Im^A8E~dC;`5o}FW|d|lX>^$w;;Zdo%GP!u z+q23+??}3cg?!TvpFxv_;2|A85q8@3QTA&K;v`l$c2N zl<7WoAFa!5Tg%a+LA=~+lT0(0o)k5>amAT5mIBR`z;FaY{rR@dqm5|Q0)@j8!tPKG z{e_5j3ff6}ab)8t7=sjBI00AAG94G1BScfBtXsV||KoP%;@=U8PQZ{uw9oA7s}U!j zQ3cH7jO=wd0C7N$zoF5w(J1qabYY+nIA19ojz&xAG^f!5r7RHY`Rhc(pDbrum5u$1 zjpIpm{;`R;Y((8&Yk-T(RPFZ)0DpWnA*mi}8rFYbH1zP`|G>3{ydGppz@ zoU>N%d&r19XRsz%$xV-DP*C#qaJK*3Xn3)YNk2|U55WLr(XNWzkBZoM32O;kDvz&> zgdby8bg~Z2u%b9-%}wmBgR74y-hl%de@?*sr>k5vvI}phhm;tVc?AGm;B+yk%$|hMwW4GLAxT86Y@7Ej&2W z*QqyhYi84NQhAm!_6_NbjtsgzKo(w!i(ZmJ$!9qLY!XwNySpj2Ge0(;asWunIr0XT z1#)HZd8>ogWAeNvv!(QX_R1}+pR=bch4W{WHPu6U8kxm9RRkA( z>`h1H#LaRNYt<6NcW}TYN2w>T3cQS2>C?wo0k~mx|2?zwDhjR8SLzCDXEhDGQ>x=N z8X-fTn-~?#Re#3%B(7qdN6jc7bZo0;jbk&=O>|LiV}#c#s+{%@)Ldp7M6@M zCW(QLIV6LkArgRZf9n9}zDaTzU{qNI*l5U@R5o~aa3tLTHI_R3q5I@yJmA@A;J(Wl z^q7@uL%{X9cXiK+@e&|`0!s&6&95fcM78R>!;ZhrP|D>93=cBr^l^M|H8!jJ#u;66 zd(P6)v&#|abf!Ga(LrD_0ygt3yIT69Ry96<+P}V9wQuiX3Dn@lWecRYnCZ%QOr1R= zc4-~o4mQ!5qwmCFt7PdATZ4{EjWXKy>nbN$L{RA1WHMAYeljZ-rhuf}a&K2K1Rd-j zEb*x8Y0bJj?0Cw`#`>wCF?BiCJ_aS8Y!C=XRyrLvy)FYW8)DZSJ&G^Z`;y&Kumf^+ zjBUnzvcPs*-F8uOpx0@=ZF3Ck3)@lUXKyAsfFGi!6<8^QF=UWZ$AN!WKL|i$v)^AwI{)XrzQ3cX(|ySphckKT<2_%We{Kg> zQDLxTF#<>PR_{ZS&LkRbgd-YjkmGK`kWI`dJzp55gHExa`3jK4Jt2`f z`jzq!w199(?;mEcA_59%hfZqFq>~ft@%7EfkFqm+eL~aD3aIYU%!r7|I7HL2Z^-%O z7uU**##a&YIhipc1-RCxf$$};Cq z$4R^Y_fjT?+4I$Pw4(k#8m9;-i1Ifk+sn(*H3DuZQKy0Jm{>dUs$0d-^rKqVR}EDj znyVZ(V$sbh-JV0b0GpccQ4`;?rf~)U7|?SK zsLPIx@d%RCuLTyVm~C6LzF#==aacyJ17FK?C0is$M89_f5Y8R(ZZx8iNP5kH7mqW2 z%xzYuvN}TKW~$dlw^!^zI`D^{iEDIhRAMzNVQ{Rfj2z6EF;+Q#HQb!{mh;w3=cwld z>*8x2kR#gbrs%CYTirIN14E)1XMcp+8$gyjaOHY+d_dV&EAW|B`@CiZ zuyXl+VQx)6OCN6Nqa% zV-cMn)ixV3!MQmP0_n;uIUOt^YTN@I>bac}+O=RfCDT!3RPuMt9%(1sYVG^XS=sqT zte#F^Os!xb3_4uVph$j6NH}OmCja_^Bw|iMQzZ z!W^P0X4uH%8D}qCA(i# z^w9xk9$K*J&MaX`y+z#_&*=(03%A*ZwR-7kZyEE8GZtkL^p6^r(WXg<9V)BYWQg)2 zT~yO%CRsC|x3SG=`Nz!Js0k3Do%2Ct+~)?u%%nWfC2ajDxYbRWAz~IZ*N(m%ppE|e zl~mBA`$|C5NiEEYF*^%RP&g++yhyiYgpN_}I8@R3?fv!621jVi z>^UbioIQ(9$l)kOO<%nCJ38UMZ)frgvrAvuS~%5Ej@=1|_?v)+naAuH7S!dz`lPt0 z=n5G|J%r;6V_TwD^yBYgzdwE>;{ExRqiu$RBApE|&Y%aM*+CBa1S4zC1C)p}9pdkd zeyyCP`Hil<_j_OW=6~dDQf&XV=FZYTf5P#Id;Ikqnbi}40t|ycGDr}Dc4UR` zeXZjSx0B*6T9WPrd1^WmDs= zxdP930rdiC84qE-z-p)1#wa5wYB$b@43gJ%=9bYwc7W063e*kjnnP*Gry)A%a-&Q%91LX3V~kXf;#j7diKhRq_3lhpUi*cnU?-ieYb3xPLlb}n zio5`IDMC{q%>wGA#w%^^0qR{)+>Y}3_WntVZH&D9={`plzttr7|e;1L@*9E-9E3dXS%<>3hO zyvt~Xqfjg<(z&%qkP*x)f5-@(f_0(s|OM&@nnuSWQ7$91< zHfD@dw@<6t)KwO-;hxr{^~j6*FWGT45>Bi*n59qMan5?1@Q&*IuLmPcfk0%5r?F?t zK)r1QC4#B>&D&VkY#uP&%=YGp2qdG=hqH9*da!a<$+9nhCPuU$(zgu8iFs1Zrpz*c zmrYS;*R!UtLc6Y>3MsRf<|2oM8I|_=>FB=eMb2 zFzAkhExad{1#2D5O377Q@c4H=R4np4H#`N19e*RL9{^z9PG>r`8G*#cDP~HNqoFwy z9I0@cKE?++(niGg77}8FC5COP)&uv+JF=?)E6d3j=gm#(9DU%I^-Uq z(Ne5|##N%%z{pJLjMqog6K2O_AJXOV$Y?M7yg%zJmEe)`7Ma&8)|1NCnDO?kheds; zXXm12M)F@4m|F2(3*DSk&65R#ok6obo+Ik?W*E>293Zdu#_$7(51*8X~X&~ zHAgCc$(gZ@_u7%hVbWREtTNjMQipoU+Uoba2AyxV4N5(gDk=6fask$*#gaaLk{-eU z0ot9vsWfTC*VRFH=q0>RGE$N;~2Z|M+REf+8)gW$0p-l9nDHMjNm*s_KKR|HCH65JlCi~U%& z4(c2)kP0WF7OSsk0-?&r3NW7uPR0h3vc~me+yXwi|A_XL%tKclCJ2(0<~Q$2 z*|mWVlVHLiGx(+sDC({mDgKMp_F1y6&dKsE_1Owgr0$`!^R8Kq_mvK021aUIfngJyZH3vwk#!uxz+jdV`{@ap2hIepQDqEkSI6R5uYF$JpTf51V`by{X)V^2h2YknNIiw^J~>+s)O zed8ExiaPjN*pIgLX9o7h9!T44cfN=C|6q@R$vy`08NmoOl|wOLSF@(Ihlzdrnin&o z7+r^Zbd^{PFcT}#rCu^y&yd~zw+*9gF+&U+Yo+JnK2Eata{o`T4xlHQxh7uBPQ0m0 zWSfyRxi&{%0fA}K(UzHJZ!fU)@tV55Ba<$|J<_4C$S+(I+)ZrQTA5>4h9&emp)H>a(OlZJ?5*gproS7MEv~Hp^i<9TGLy(rUL@5F&foO z%=%Pgmu$9l|Nfsl8ye3a+0={C4$!4=2r?7uYC>gcwEnuCvcF%bOU334&{!@ww7-76 zEN8pK@6#bc&FXm&Y#K7Pk?q9@mJo;!W>9%F1+r4u(OEfKY^2jUOnpoE;8*5r$0ZH- z2F05WYARkEtl=V+iSH-jiFL13T%-3rDYapgvr8*7rf8%R&gx}lFXLyFL~woxb)7U?~2I;F0Q1|$S3ljRg! z*TnoWo%kL6;r-*e=L!ZoX2It3dK<8$1{eSWJ!3r_uFYV^8Xeh9&>Cthe?}TN&shOq zzFO4v9iZ*bH!>BLdtQKo9XC63PS(uASn@rv zodfIZ51b*5KVqm9HK%-DPys_9GqAl{S6%JJQ1_DgQoy`3Z0Pi^`=Y*3mijSF);Nn9 zzdMd*2Dm`*f{e)y)C@vb=1fU|?zCyR9aH!446IHBZjCw}*N!zg(~hP6%MpNkM$vme z%}Ry@-i=POE5lQg4o7J^&Qs#8k`HC*Q4^@myqNJ-c4yL|Kg4vHv(5>!*xq-v$wq$q z0UelYMrRzloe2$|+lQyLJ!c;i1ciN@<*CnCfJJr46I8Hzov6V8$7B0BWas;vvmhr} z1$!r6v#USLo%1uT9N3*{rLL*yDoqE>8Hiim1aeScXClJdVO2J?u!*UBWo`@^hSI$J zfYPCq!32T}v{YN%r^V}ot#I->xh_V09A}Fo75Dl__oHwC1iW=etl!7^ z0bDb94yD7_ZhuCx+lFcU;ALulY1HdouRmHKs3-9rr#!8?#~K$yYW6Xkm7%~lkpY}n zI&?0Zo|}6;RJyr(D>Qz&Zu}qp8!+RvSqBHlADxK}R@$HpJ4P+*1>vr;CunZd*iK=d zXJ;rYH%jAa6m*@(te{-tiUD6QY1ze$g@2Zvv3X9M{#-IenW#z@RIFhHPw8B<;ST)7 za4Zi5tH!q$2ls=GTx^~S+q|wLlYSX+3T&3ij{&BySyAvS5Na5mSr05FS*@pMZz7Hl z*C?aXa5xqt7K5q%$!LY+Bos|a^IZ|4M&=<~z*B~(wU~*ZvR%sdgF~NSlhK=@4yGwY zBOS}{Omjnc2c6>(p0DdouODVS51YlPo7*9b-}^u2Q4eWomXIB5V?n>)sl=lp(0jq@ z)fgKDB2eR&+-e%};Ca0Gvt0CVWT2uM!u&uD>+f)w@1K4B^N)S~`Oc2PpSJ_~@w%Vm zL<{LKgcmyrBPz!_jBqHv;RGb(;Nt`(Yk>ka5fL!aDqIJT+3lR2YFJk|rodfg0GID!G0ZQ-6InV3Voqp?!R?Ds^Ir2rD|%+7+}9>I~wzGiLu zeNcY=`fb0a=Ej~m0wwaV*=pNc!GJP5XcUxfJnYwm za9I<4m)&^*8$2tqy067aie&)JFDM8>Nf*3_@R$Z2Xo>37&-EDzP z+n!BXYsS}W-$2)&1m#J|S#nz22={0dIR{qGpPmVi?FGa#IOSWT1v;)N$D*kYIdK># zRUjv`QVpcty>%RahS4ck?Zq5TVUbhE;*xSGP}9q0@}1r~swvvu{SP3#q(F9!Mwc~- z`F#4LEfDq6>NAwRhZ+FwE$?j(>w=uNw4GhzUJc5vl<>9|c(0c;pcg<#&jWq9qDfQJ`ZJ5xG&c0M zm7Gv##aRV=;zjB+qy0SRx^L|1+;kys>8-Btqw9ps7%#8}$hueajS9ZJyLIQG?8YBO zmoqCpnx_3|3NFBXJ8B9_>3&@fj9}#xXg5WrE!m#g2_$FL34-2xkm-ZbZfjo~ z>NjCe?WeNK<44JG$#~itJVTz3t~=O*dHntGPAK%pQdb#ekk2b8g$|gxY@=iVv{~p{ z-p}Y6%A@vX`#68DS2}j-^vgE2Jf)ejf4!4|RZo>2i2(nv&F^-8Kn(CbQ z`uGZ5l`XusQlwt{x)pVr7V#}93?Zb z!@B>ORPQ87N*65pCE8b&j4((mn{g#>#a_WoF-UU%ERrRlgPAFiBpv+_M%TGeNe0-c z$ToWgDe4)w@8NfhIzX97AnqQV;)3xq42FjvQyF}(Ac%Y4k2{%2^-(OXp;)MC=59A6 zFOt8^oh+>0$-ciP%0@2jSflJw|Vq|0fT`G zmjW;Qu1w})`{Z;O<=m3$VHu5M7ux%m->i8JiOB~X2R}P9#P7=72BkM%8-M3a)@ZVH zc+y!tIy(yR#b;$k?;|aFI9ZcX>hpDG-Kg5$t}kR~!H&-#=5 z^{;^}_7|1lw?{PZbvt$Q{`*fJ>U1U}>v$@|quELTIfx7m($O4^rNWslYTat%I7H{7 zz%Kyd1WsYBZ)Z9j;aJS%-_v1zvu5}br6}st4mkEUaK*;}97i=_Hlj;;C5`p}Ve ztN}EG0{nfi!T}xT?bQTWGRLFpd&IRK}t=vXu z$}(s&o$|*K5zI)r4ydu4?go5~2em<#7Y%gB32w?rG*ve#(yJq?00EO3bJoTzb$`34 zm_iZGa&of zoLkUY*gju%7BCi_c^g#R711^`HD&N!YYf(vFhe(|vd_#k=e>+lhFWh#R=EJ)_pJ}p z>%xePOZuplcXer%EIAkzW0R%2UPHpVdl}#Sm#+pPc}sJ1R%iJa{EkU8CJmqfKf9jO3_l|bx!)>&I+1W7era`1cuHrpaMR;O$_!9VKP1x)Z7EI2@j zVZVUL%W=>cvdB@t}ca!pv{zrUHWz@_RJU9oAHe=9hjk@AFYAJ{e(j_qstl&&Y?r4E4AN;G%nprBPSu@v z{E(-(OeJ^g8UDF=cK2S$!#-+Ysr@*2}OSL(e z&%ndBS=(QjO^tDD&NZ93Fl>V4wE_-nlOZ~}n#D=VxN9YsRfa{i`gy)C1m&w^yp1j3 zU=mxaf9z}QbRd2_QhbA^F$D9>Kq^Qod6~6ka_GJ63+gpbQ&;lcp{he%XA8}V5)uvN zsYX3dv28~0g0~>HY;fN-^BpA(2sX`KAGGM2$_?_@?rf?lP|veh_wBuI_w|*5jQdSO z*mARn4rB1>=eeQL1+CG_Ap!8Dtg*}>pNa1!3whg1Nr!h?#Sr+u()p!n>6c@{>iqBr zkUFgY( z%K~3q<`2C(xV|+nR_B=vgbG;777_=*Hp8Ks#7}E0AyKzteHMaqt4ap-n#yV$1iY4Z z^f{HRbs%WgGwX0dUx^xfJ!Ggc^HE7S>BPK_Hp1Ip<{6EBKV}8Ea=qWwsfRY4tOu@n zv4LnSgd$a+jm#;^A?p79hY(37wZBCt=FgYr@(q|&!_fk_g;wP8@Fcb6H zPB3s)hJ(?CSC?6EeVO##WVD$W3TmPRU~Kw?LF!F@;##M=j*YDgWga{_g?P{bIzcR6 z4qrp`3C`yz@7)b)@pMF3Xr7t0aNPV8V>hBB?AehYMe&jXWE$$cHAZr^9x_HGBdhu{ z)XB0gb%8GYCN&^vHQ8gO_33nx7s<3G2<_;taV zHPXmV14x|VsGj)q!MfM@^NT}+kKA00r}?@wq#jMJCTdZx_m_Qt{;`*#1~PW?WF#p? zG}i8ZPyC67O0R7Cgl@i>nMi8WcXl3z;LdChE~Vi#SOE%?)@$q}d;fVmC{*Z%$J&5& zo?l7L3JPzGAd0)mETU5IgWV>N#TqGOIz;)6k9_CnU>;{=RYS>qAC~pOVVt8Ya8hV> z0G6BvoTSOmkYY)Zc7R(}W5B6RHp8S`t^%2Fds~fUF&@BDzO>^`P|gFn2s{?4ElG>A z2_8SfW7!q?{bmhz+}ANV7<$&B7bx1PIx?2Bf5$*1@y&TsS&w!>k$u=JgC98(`B+&$ zxoUO_9Ux}Q(+M%u0gSA(J*+xBC&;=s>f$UXPa3TZyW8eWQvs81uPC6Dr2+(lU{rule@8FWOd z>}Qm6%&O8IpKM|u4+{{D!zQkSN)=>PyQ zI)m%W~4TWBkNO=Js!(WHcC>w+(yT;AW?y$$?ApI>fecvS!+OR&Rh6 zObMPh0VnOqATWycj2el zfOFRG*7+`9pd5Q`!w^y!oBVKXVBir{$?x(wpb68ooziar8fk0$-i-2*V-nH~urY-V z(zdLge{YIo`&p>0_^K}8&hCw?)@E?M>BP@Tc9f#vtoy&nYLU}X(J}1p;wY`f#)R?y zbO=YwP4+<8x@5S#f&GY-bQFf!-7!vO4%j zi*{J-9!u=+X(VO^^PpF{PT4PD-Mp8yjkHH=Z+2U|Mm^EGVU$C-+whi;Lq<(9LU7n6 zMY!2I|1d(PsWB>rfxTRrP>bmveyQh#ZLylsqx8yNb!N5L4=D^tKpnp6{*`lBF_=}J zb}CAzL&^;ej&&$~aj9FbLEnI2wPM=qLU3rVq?Nu=Z<|imJn1Bg$|R?ki<6MjnJGzS zcjU;HRCI&gWesWcpq73+GqBStYdcNA(hYg~iB4Yjna*%r6SD+QUUwvzj*&B;Z^l*= zv_rr`Br~IW9&GDB5bbwv@}M9rI6D!gJ-G2HoN?{1KX%3;Oy_plua6gu`moH{jv>(Q zbkixExeQlcVjGpGY6WH$*w+TZX*NsB($ex0RjT5D4@;q9&C!;E<1lHnVjdhR6 zkkg50`*Q-Ca2#^}tpyDj4Vk{uiHv_Mz;GL%=p-B&(6~MLocB890>kk>H1OOp0R4Tj zp_D(USgB?E)$D7$b|Bqm07%pF+D; z)4_)|bW&`Ji5w^0`?*onGUNQMMi-+a`BndesAwt2Y`lWK(O4U&G4$%Di2KNl_K>l# z$_T0s5!a*2b!8N~ML(#&4Kks6W@f02&Ov986}c3k+%utcP)ddM`!^{mWm6K4XbJfE&QP%qF}z$YCX zP$E;kjoGz@|1#ok4_Gy^2gbT@G{;+DZ>&xGt8R172CNMJAj8H+BNIU<%`+6$G8>!m zf7&BBg-3xQ$e>l@ECH9Ok3nOu{V7O2jQcEya_hYPcxe64eueGG%K|HjGRjW_Om0p}1J=x723`VyOi0^>{1-3F|J0kJ-M!y_uyP}%$ zV+$Njo)rZmRq~?jwi;1^adxt7l>44G>KiQA=tJU78P|x+Q3(*q=d#CmxyeAEQLhoN zNT&zIKIgEeGCYv_MrYL%87^*m8lmL_U7wo9(=)d?&^Mykj2gcXpwD)5)ejxxfF;kuqrNbMV<- z>3l^^>hX2KNhJ+5-;=9*COtLkCnFOUU18Uq@hq-2os6s}jE4wrc_`KBdK;Y=!xuQ=tMXm&x}_(aIsczM#9-Su}=4*BF3Ep^j-x_5J@A@B*Vj| z98DwO0DB_mm`y3-u9=xKxaRBzs4OKF^w?;kqt`0sbgGJ`Z&^yV9pROMBGJ(E?;B7a z#c{z-E9;Rm&l=&%Fh&M%Z=6(F=gm1HAmmMyP6nI6*$iuuaw|iD=NrC3H_X>gcoSS)zgp7iXJ(HtjoJY-U%By=y5y|n~g;1$@Ki{?Ky3g8m@Ibwk9?4ySJ#q z>#FmXZ`nk06d>2uF zq|+`zPye`GuC@MESv~4`cskEVm6NFEJ0%xmmfi+#1zt)y&9gl?7j_v+bKd>Y{HXY5 zk_9-nsFd$F%|o(E_R0M4wUuA|*d5=u2p_trC$W}}5n;7P-7$7izU6d`?aFSCm8`FJ zF0FMo&r*$+Ql?)eQ@%F?T6 zLT~HOrh@vyc|y(hpzY3J8B0>IsNu4nOq_L-D#?zrxv7tjrc}eqj%4FGANyHz-uNzi zbrXLe3x8pRC7+?1>vA*H)f(_t_hZ|PZLDP_U);K0oysur4}+lj^8Hw@gl2ePU zS$g^h8agF)_`-Q0c@ThzwB3TR9xqFBtI7C4uR^F z!+KoP zJ0I*K3}+~Z)i7IeD!b#!C`x|xA5lLQ@nMuXFnYws=fZV+!pR|n* z`|G5$I>oCOPysDL8D}Yb=r#r~bPjB=E&s}zYv1Xe-ZY+r*Nlt2sXX@?ZTQ@2mHylu z6phM=ulIG*3G3eHwLDLJM%L9(%ENz(L?L zy0#8C{l<8xd0Er?I^#H5_mMM@&1ra{*+fQpJhKdrF<_v;!CKq%FH>!P0XH>qVIz)J z(ed553&iocCO>_%^@I9mP*%pU4ZQl}=cr3r1#E?CDkH1~vC$d4-3gH#(LqnaTAoR{+HgHmH+F&Pg%WSH6D726DwSy?rnhiR+tIsepPsYsHNFCkdq8dnzGQeusnA{~aog3a6`z%19qo2-+00%!)U3F78EH65(#-MgwlA0yMUEr(w^a zS_5FBLg`HfG?d|36_COT!)ZzZ%#8K5$%4S^EQ+%sOXkXqvxJC24fpwISXa&wnHZ^Y zB2bkzcpIBX&tTNM$^>q5WIwKowr}=dW$4j}=3npp?_Uk}t%7Wm^zYrd?O;&@-^#Z0 zGu-wypw6IgpCUlOSs9qkhMBNj>D=veiT66F@V`7y`3~*4mTZ`{eyuVL;xqSMi*K^- zwXcxXg~Y))9}chThUBs1TER?CBprj_tHfJ-~ z5^u&evQ%-RBrlrnWFF+ucnM@3(FXhEVsSJ~O%9%>#!N3dEtszeFcQ(=m>>H2`GtO9ymX=G+KoY_B7 zs~Qu#I-38y@9X@Df$Z_op}>Cqx?lI}KFlBYE&X%<{xkPqQCy9x zh-dkAXUG0}z3l(|`kh?{M>w|kC;hsA_BsLhlB!~85uL+tV-I*RFmEd!jFIB|eV*Vg z#thx}9+}>6GY!;5H)gCyOs37Obk;MveS|{bKyh`rO*Wq|WQyZn7C-a$GGC#5UYMOZ z{`#F+3jmY=kgr_RcXVLBvz@U{vCi*F2QQjP-G8!MG-=tHt-YV?I{;c3eTTCMfkZ@X zGH8HKatFcbVTZW=j9fb-U#e$w>#VIY+por8$7?Wp2{jB!7cGc%ch*!_Ll7F$!C*+v z-x`w{Ixofby4TZVZfw+5=g1Y&B9MXjUfal=A!fnK`rSN`-{`y>U(t9gv$A&}<5z(B zw;W_g-SUN|Gug2+I$BN|n>i{P250wv&(Q~c%+WOk!^)^7Exp`4Z=-C^g=UsU&YrIw zujGBH89=N{Dq?jGPvtf$>U)vyW4!-^a;mITd~SA$&N;7)xR(QWbp&o%?F(TpZ+D|3 z52Iq9rUCXYAh1PHQ@0H5<538yvlJAS!JjRGIIisOyoC&owXGMs-IlhOdtwDXs(Az> zpv(3Y9}VRL3^Pb_kS1PD#IO=;3km?wZy?#9k!b)`Izf{%F_=ZH`>_ge@PelC0tkY! zQ4K#2`s(7@z*-iKd2^K2bR%UToxp?jN2HT3)v}xqyBV3x48RR$`1cxY0pi@R47YMy z=;WFlWh+oQB*=}P>nG*ZlQpz>_CmLn9ptkF!y?y>QEx?kyPoK(z(f99PN&NuAiKo{ zl-mhU+UYI-uh&O8cZ)jx%~FI|gO7u{gL6ptCQ*B^3q}$^N6irxtcu`-MsuLMteI7) z0>?LOh5*mlu8qLzkv$>eg<%tN73Q9`hja9B5R0MFy4=d~M;Jo)T;|{XF$PDSa_#w) zb>fQd%|M3>j}e4|=V7&e@61?#bIy$CXKOYs!1aMOjN4`QS*J~auQI;Fi#aq_2MXmN zW@w4@Tp`uP^E$jvKQb}f^DWx4c-u*xpReSBnYOb_1W>i7xBz6BuP4K3P;W?v)EmJ! zYTnPUIyHkDu56tisdXB;Bh~m3f#+2*ic9&oic)OqlY6M9OFA$^Ywhh|n>7H($PkRa zgGl>+qC6!9N zp1&W&{+Iok|9%PYcMlfeb0mYX^&D(gI#*AeXZ2DjrKPzQw%6|va$6llVqh*BXJ$}9 zV+m7-TH^6zyH$0Au89p-%M*x1U@|N!seH{l5<@Gxk|vf8W@IaU>9fW*kRQlPFxter zv2s}Z?B*)W4*rW(hq4_n`Ojx#et1z2sZ=J*sSet?z|~_F{aHG|mhjf9?S>p+-G#N{ z8dr|3d~;?i7DkS$=-btFPyQOuVBv-_m;u%qoGjf?M%Ed;CzHjIU;yk{wvTqZa$jlJ zXpG~t%LW@o*)h5@nW2=OgV%XqowZFo7uUFyTw>3bd!1jg#xI z|H5GwP3YGRHvYOD+~2S0Cj6bhM@^!0qcHa76+g1~V9&kQm-J?VCJKI!4A-tX6M@Aqi*74EkqMS3-jxgk3xsNac1ZBpN zsPU}7kVVb0KleR+-f#X4@DiVw#d05rb`5lx!(6geeHH-%Z~_pG%09#CdS5hD0=6bf z+`^ntbclyS!CW{FWR|?;e)W*(%D}}=KCXpY!K!WAx%`y`TNMG!NSuvs@?-6srqciJ zLtHeAVVhHg&rD?zBWETkQkhjgp*3?_uZEip71JulvRUf`N>;N$W!~z-0?mYIz zMvdGUT!*8Ev@;{)Y9KXgk89b?x`zO>(nDZsY~XwYsEr%E?!|fE@vD>LrwRx1Y4qMf z(2c+lYn=J;)l8x=(=Z!b7NDGVI5)l4s-=)Sl)4DX~&s=hFQsA_MYH9pnPJ|@lb>w z_nMOIXe8safwJ>lr5-Y?^IBsSQZBKV(9NK(Wpj-;f^gl0j#=K#v6NGn_rQCsb7#1( zX?r$|`{8CkVgBwA;Ec`EH3z$R)|}Sy?~KR%alMVeS9_{5bYZ0A|s*)~~uo3CxBRcq7Fs$kvZI<;-UJ#P}?y;{IxHpx?3AyX4?J97TygI9@L^5D%S#n>vy*JD$#{u9WOl z)JxX;_7D1BzG}B9qr+i`tNGc`M~x0<=ny{KemKXFk+wmp zt9d3A1kWUiTi?f!^NR}v3cb{z*PqU6$_9Oc!NA9*{w8rZA!`~v@>nR}R}0H9uolJo z7`+>JGJ`J6Hqn7esqnK0r>wcbCfa|_SM%Ay84tdlcz3$Ka6*SIyJIL=(W((e#@d~Q2 z-_C4g*uv?3P0)kGfyogyjwU+icVs8w(23$34(PcKj0z#>&xp!I)GC`Qk+XlYbw7N= zJ^-1iT-c*1u{lPYMns)(AmjUR{`5#GthK$@w|BbF;OEebFIK0+p^Wp<+Md#&@Sf5`|W{1@^yabf|duVKHWdwr} zKq|8G5j`*JBD1H};J`&cJ&F;KMwlSk4;m152o<=469_8HD*@7JQU4v8hP4Pb74bR_ zMl44IKxZcP3-=aLzPzt^rZ+$!x+de9lnGv~N~O_FS=ijaji#Y2NXl(CzZrEsWd#n> z+7xY51}MIu97&Ddis@6COc1j!e%|m6%4{G`^|7F>qwX1Kij+Wt0Rd(RD{~-Qy_d3) zPLLOJo&lVTwS|kbc144ca@#sYMon=>V;vdqvDjjshP4bg?K%`=gJU!oAQQxq^~rh8 zt4CdkX#pYfGVa6m9%SsxNtAKWf8+m0NAd-P)7W!XrU3lhY0XmNzJUw_=<5b3V|!K_ z27(1-bXR3s>&umuvvT<8Ayn`VS=bH=iJnSPfI$>3J3#)`^krw3(rl+Pac=eLwdOMT zdbXm?JDWKTfX8z32UtSdx4KV94Y=0B#*PN*Ofg`TI^+$|3i;~y$o}PP7!b-C&0Ghq ztuvoDc`J5x-T|7Py`!w#;>Yr*BV2A&62r%BF8f) zbTL>{XUa_s#e5kl;&YcF-MicKTo_6%l)aa(h21-$H#UcO3Jfwp{bu)Ku_G9tr2VCQ z4Sa?In_A1XL+?eJ^I<*Pa-`m-mfTRjvuU6qIA`Z3o1M`C1o6!QT(z}za0Gd$fS@tl{ei6@VYw~dxf2Yz3UgW4iH1+%J zz;o{~^PsD7p%_M@eqWpHik9kpzJu5(D4?=ICPRuKn(G8v-5L8F+ z1=o3LpZysSn&(Lji|3XvAsz45fmb-VU_xRl#G7)BeI{Ca$c|3vzw&I1db=?fX36Xi{i-8 zTXGQSG_YRx0*DPdXDGL*v5JH73d0qP9j%!e!OmL?D(CH}ef;`JM`qmFts^=B6Kt=@ z_I`b)vpE?F$j-8n;ml0a*@iV7zexgY=&o-G&!W)esBL5#G@fQCHzGr!sN@+BbHDD5 zny7P!Z;{Fu#R5a6U z%a#mZWi)FXMMmDBY$l7^p+rC(nWD8iQU59Da23lk@mA zfXoh2*@A*-1l$ATbXY^6Xt*4^iU#I=$bq#ox&uAq+sHZiw2e}XS{Hw|@T6b?=(~Lx zITlv*7SGXIa>9rbY@es;+un5?q%-rm7NW0g;7Zih2K%Be0d&3JYQi!%kmC=>Sc-k< zkUv18n*e)Jvc`UsyQ%OBlI&e$t$-9(+-XBq)wz7f?+Q!{$5677tUyAjs4{ zGZIU|Gs)T%WQ{lHoe^Xi=DE7wIkSjkqu*bb*_K`Ju`-aQbf_-v?JDOwGQ0ueyYW)j zYwi2KcbJrLdAXlvsw3Q+m?$%{j~UVH2I+Ox3m~(h7=XSDuz+7`|2G@z9euB-dO}KVt#t zS2h{-;_P-?Z<{~fybBB+BfcsFT1&PcpRYiD2B972$YndZ7vrI$OeO&Pu@u~j_Z`$v z9On{xpV=&{^}zcsW|%;GrCra%z6Yti)|3*#F6`~}RrW~&6~FTi&}~b){bOH$%JW2K zu9^?YCjGECV%H!+1)Ty-AWg3`LtG&TmJ63e^MevLne-4rWpq#gf*QSG)|NHH=SQF_ z0vVz6L*K!{f&GxLr^bGhI%6@ZfVtVSA)TF+Xz#XB-$-}Yo*U)xS|+D!viHK&-f#C2 z_q5X2U_-jnae^9B0@QcHDJ5t4r`CPaDeM`!D@zI#q#djVh#{H>ehysA| z+T352fp#D@*7QU-N~^)ySo^)>A!=DKX6VqQL-m-qUz2sFtm|||!UsB9En`tF4gQ$S zcztA+ar&?O`>*?+zL11D(0)Cf-amIH>d&8lGWz?n-*9jjGJs%Mo;aX69%e*(5sf_J z9_2JSs0IK`+rvlg>NgrT#R6xur1Soq*DuT${l4!l3rDYX@S^+eD>KI!1#3y5o1S&@qnS5X3iC2Ba)1_t|QqbNEI_0d%;1#=DKb8slL?oBthh; zGnxO+Eb{F@#~Q|uqO)>lrUq)2vrFXJ0flUk6tBP60>$WO{_OM4HfNB6^{QF-bgxZh ztN+}K8h>JZ%~ygM&sx@BPLW*#%B2b_GIAgY~C0{9-sX0Ato~b$}>$my{GZuNyUQS7yR-{tam6cogC z3Kw*J$~qVQ{SBIR)F~s7YrqU-VHnFNE_Fm+)KRpxDyd;Ug3{P$7%F;}^IUbtaec`Z z0rRelaDiEY4;w9Gwyy1Yn8h>D#uaeYZ&RnuX2U7dmiJjYrywQI`zX+CKhMO*(wL+p z?>45MUHARtYite!W=b!kdEZS+@0feD{rpMA-a$RRgE`oQ6SQW@&ynQ_2OqafW8jq0W*iu91L`d%fattQsM1bs&e7=2$LY;F z*sB6``7A!Q8RSDKDC%`@D@P^*;}cD8*A`yz?l3N(Wwcfb&dz4v-3>y3UdPc! zabh$`#V!Uw9ujxq1m4cv3(cC0o0knDsElLtvc~V@SN{Gg{4?O3un|qo7mNR$p!p_1 zrsBZpAx2=-P2AA5DIBDr|3(1ncfQA$FE}FrpIf5r=-hKV^PadVn3jd0X?EQIX zIHs&=&4T=z4~|SDijM1K$bA0rptj zo=r6fRNlyVo0LBtH8n8FXU(w_1Hpmg!~O{h_t(WaR0A3A+n9g<`IC|UGN|z$b{|fM;5|TL za&_<>rR1Vs_&W|7DaSLiYs|Ldtg-piK=F70$v4NxXu$kbO;qmGks0;n-6<}cSTO>B za(1m6H!12@-8Ctr;jCX%RHT*js`RDWno>AC(Onk{m=u}9i0B>_b%L@{3;4CR4xlDV zvCcE1yOTyF84;W}C~#oA@?G6*KwyE1bC^;&^lOiB;(0T)Gm$yQbI4)UGcIP}lz~Df z5)SGp#XU*;gahW~6bpC@&==**mheS6n#1HPbuHJ}z+tK(-@xbC3=t#pdDaH9B&top z>^{6!0IBwq8htRZQ7z;Lfz4KrDJo|fAgZmDKO8OHl-ULn5j;$*Vvo6oz5zh<2F?cO z)(FxI^J%RIskx#7^KqQ|D%b4jj-$gw0phtD_Q2r#SJ@Cf$_8@58X${ept9XIhu(BP z3~U(zF!QU{LN`*4CmcpHL1h6M1g$1B5qPuHNYY{ZFJEQztg|BLV1qvfDk}RPuTQ|{ z1xP_saA8-1U|kzu8o(~O8YS~}6Gfda9YeW`iZv5d+h^JBLyfM3HNS<-DUvkJhi88^@nx+joo>xhg#B55mIxFH@OlA!-g?w<~XJ(1w^#{?3lWu#k zOBW3H(C+h~4cVy7(8L(hOn)D6Vl!gsq*$=#Br=|V|NTGdSVppwNR^lkuX7C?Pe%={ z$%D=t8}z*}zGcwCty;)=q(duOYhM40!-7wY#>o~?A!8G?*>nyftN5SK%*MWc|H|e` ze?_D=X5W0t@rW9i$kd`k@W~Ee=P}r5$w+VRC{Jb*QfM%?CS`!i1d-=Aqd-^D$sn6> z+}>Fu`V9d;&;>G{!{6u*?3^D3C3KcEfJ`5*mJzEvIPf}u<#?ITm~T72a5EDlh@u(O z|9d;K|HNwl_1FFS-}d_Z@4WSY{@?#_cHd~ZiMrKq3``zWGH_HuD~RS%82lVHsb@OX z>0l9rWpvx1b@ILw;J=~hF4XZHe$w%x;-hl}2iRG+vq;ZwIUGW?I#c(bukSB{GIVO5 zM@PKVARm}J7LMxI`n+ZG3w2@nnj`CP(M1}DE-23Eo=ZiZGuB6HWAemCxedf;F|NqY2`{s1p zQsx#!1R$Szp6SzWyGkWxk`O=uSIcJTjiFbIo?asdptQk2ERY<=N&vArF%iv9W!-_I zJq>;P?w?tWt%r#K6LdKNizr>9j3-A}h6d5s&~+-G;Cg9a1@dKNHqSMYqdmQix<9O= zS?`)GXKW>S$NK~1MA>tVdIB?t*K(#!pM}>Pcx5DuF1#Q0shN2ivps{EN-Pv)&|3Zj z*lz75&ZPw##qHV3;MMM+fpn~yyYk#B0CxOF&Y%K&l65d{%v6_rat5o`_Oc3kDLAtZ zHDb}dVt*r;MHxA=?h_fo3Sh3ZG$XajyHeqBB|nF+LLlMMtBo+S3WFE15c&Z_3umW{feSF4D4QJ&-y$>o9;T zgOqyjY(P?<1HES%>_~@Ia-U@cN2(V~M_1_8>X0|RJ*c$e6Bh$yvw$-6sT@qh8Ppk_ zGlMeQcJmS#xQs1P(!u!mPB5(?Yh3nF6GdO&gC$^=`o*Gr=?I-+l(pQrwx?}Z@SRE? z@>iwk1{M=%)$P-y1HeTTs7^;JgQ|7?bl3%y7oFzSU&BD%G4qUt9ywJebz3oiO0sgy z$l`tN3L@biP(Yg6oDSp#y*LoK?n8EUh>b?|c2qo)7qMGSYSh z(NCkSx5UD3NrL#ES?5@_|_JIk>H4WLA9&_)&&4Vu0|MIu;H?c$Jw zIjIyU4c{1`vwN*8qXkYA-Zz>rjbNdEyd9#~JB#@d&Y)M)-BjET=5YY15PV#Y&u29@ zj6zb+RMjE1J2t?hKWB_+35w=MhBcHOH;2^Sa}>yptqCsvJ6rnx^VfUve!cJcm$&$L zL3M!$p}^uhOmUjBKi}txg+{F-){FcgR|i3>9tf3%l3VN|hQopb>mUGv#u|{#&SV1} zgY8vKMt*z!?MCgVM|H5?kt0NMf^}Z#qzk%p(5K&P<(bmA8)nydJ70hO&--tuSsyWD z_3M3|Kkx5-n86yacuF5s>yg6qr72iG1Lm*>{5CY+{G9O9q{*hz2;{EVK@^#ld_>x{M*Z5$O$e4u-7;m zK#)RQOzb<_%Jjv{Vg?Sh?n-U8D&SLqs)B=1o5Iv~O&ZGgtDN*Lf zurlrlheEi}O;3(u2860JXSym>{z)HmMZ!h_(S^DH{(!tDoRN_`C$CkJYB`e%ZY7R! znWU3EC>H|PQdpr(vGr|Vu*cybN8Rj3kYZHaUCn-ApjIkOjklT2<5m#CcG0ME zA9ycXyWYUb-F#DtMJ$Nb4C#HBOq z)ZL<3*{)!UiN4(Ca++nWv2ncy(+#-iqH1F{UjbUJRd#bu&`cVs=;@ic-Ve$? z@OE`B){fcQ*)iSHnIkox%$IYP^B6%jGB);Bb`pV6H??T!vLfSripiq2lhbA6arPiD zJ8HZ1jFr77cwXw-sV|OvI+FODswIN0yE$jnN7kI~tP%Bln`EhEDb}6xDV?y_YS{`o z`fP?4V6fHG-?U5nPNKpZEA7BwwyP-ZBV}ka`_X5H!oe#&5P^ZvDX8fjM`c(BbxJSq z!Sj>Zgj-A-NHW7%n=GnoajmM1XfYU2IZRdO6< zkZW}@Kxx3(&-c^kne2~a)|fe1xS;Q+{gMutmfd|XCex-84yGg0G|#Zd{VQ1PYc%$A z`bFS)I6HjbNUCpStb<{68>eQ{##@&4q>Wj~>e|UN31h#PanjzgbNy~L+6H?7Y;I{M zx}%B)q4U8=nW6?arYN_Ej9%ge>ui={E1v4Cc#}#ym|+q~jv?;?=rkBuL>}yox>9xI z3P8-7l6amWPj$zE^q+l4!~_aePO*26@(!<&CH$OB`5)1+XAO*X35My{emk4rsl`0g zX;CBicD7=~jdAuT9A!`%Tu?_ia^KtQSMRseyU<|i{XE}sF0bhL`+9%=U*|8>xoq(A z(QjZ!ME%1Z)%Tyj-hZ4H?2Gt4pqOs1KBz43m%l&v)19*Or0x}UIBY2*`=i_qWm46Y zAfiu(?AF07RZz`Dec1S2Jij06_rHJpJkR(0&yN#x99cuGlOX5L_xogr$Q2pX9a+>E zYjb?q>wo@Y-Li$_`sKqtO2N?!<)= zaK+>W_9p@$oMc1ehMM0&A-@;qoyI&W9#!Vp>0dBg7*5b+z3?kC5qD7K3fPjA4I?{N z`X<{d+850&F8c>1ECJ#`glVSHV%u^mzD;N87R`8AWo4)+qV9SedGF|CyQr22Y9)tK z?lk-nH3vN`x=WJ+Wuu~vL9@GWcE?qAW5gLmNASU+*3=gMIlF2qj7lt&+CrnNoae_( z^N>7Asd5BKB5Q&Z?Il$Sf!WTt23Q%(vawi;{&hg6(J)JndPL`N9^^n!{U)f=+5m_- zLOW6k*7b{?(wjE*FYM)&h(`)s%}_MkSCk&+Sxke-%N}k1#=@8Zs0A;|YD`XLkRf%_ z4OV}Tav*S3P~A+%WbdTO=?}Vg8XQx#YMd(l;5~=V8r+*fTB&Y*TXn3+4^C&v&-gJ5 zq=%gta>VK_s>8I+(Nl&q*vB6!s5yrv{Rn8rwOgIH=*m2&5v~4yAEz^ao(>5< zvA*Yh-3;i>IUj2p`eXvkqQr*dXI42HDN)RPMwfcpwN1S<Qzgu+tjV$kJlTPRnb|>ii3$|ARnhxt26%^mVgke9X zku7Cp$lcKlM}ab9$PjaNfoiNp;KuXF{S~bnY(RXz<3LH69FN$y1-idcp4I&} zGSEkJoa9)nL2xq>u)s0r{y^5%vqN2oGZVb7q$vCB`@s?-XMIJD@Uh?!n)=dwr=yQX znF{1G8KG0L>s%U3$YLbdupASnhC5>7>|K2tq?gP%V$7MG$B!VZp^Gh=7D4_7?LpXr z4UFLIJWJ=FvdR5KqrI6ylZ1V8>Uh2|=M=Vb?Zs~Kcs~E#$HYAEBi3@pS{$k-kYS622}M{>BR0%yRpa*y(P;+}FCU*W zkd5+;Yfy;Y;qj=wyKq6{J+ax}7mdk?Ec9uESybkE$FtqJ0Qtdab{I-yo$%m@j(Ajn z%WzU})>3km#X(S<5qP362jJ+^i197!{^rl2z(0L$2IerjVz|E5%m|USu(P-7GTiCB z!%%qBqYe~ai=#_t@h9C$gJV;8q%J%geLjpA*HkQ z;nd!s=8cNzg>Jpexk<-oW?hT2VWW;iI;xK@qE`4njh7q@bq3U!lzyRps0RRJRQld! zI0h-5p7A;MEX9OGZaPsmS{)F{-m57uG#CulTzqU^)pGJq1 z)WyZR{<|n_AbHFJaile&ULOiN!TEmHKaQU_*k%nLq-tj7p#>H2JFsAO2Ii1K&HSZw zS&Y(pzwbgsT_3rdQ=-~ABN&qL#9Y$?mOFRI9*&>@PApNQe|ASAGqMCe(Hvu;>04ZH zY19!N3evl57xO{jH0nhYm^g46Y2bBz5Hi~Rna%;Owr#gS0qgm1)$MUD-2sS=#S;hM zCFs&zL}!m2!!jU*V^-i!YSjaYQEz7>GqI6b5G8EOVLe%P!urikDsDI-7uT3N*h)9% zoI$f>MMNt-?sLq&blGv8Hjx21Xb*F=%Rx{kJ+vx&y5ztGlV&|5`=&!ROGYPkjk2h` z#@_aj8!^xM#-;;j|IaUdmRom> zvD(PCo8*z1?Sl*iqUsRCdp-1>^p3_8?e+}&fm7R`JZJU0u#EnEC#FnnW|1>+;LmuH zm7%o|uwPc#g!V{4z2AeLF9Pg_^}F36by>ez_qj`sL-*d036(W<%BSoX8amB551LP{ zhuc|~KoXpa$O5fbGcXCv|A`6uS1nrWPe|Jt){p!+TkN9ITakJ#8NsCcf_1vs$* z_|%=9#Vk457-fRYRnT4crUQtB_Z?$oZYWgO7tyf|T?ak77a3W@JlJ{qJX7Ohjxg{Z z!SJrXnD=QW;OXk(`|`}|9a+_IMNib#xzag@vX~YJM#ahzReHT6Jw7{i5X=mK%;=76 zn^{3T#KW0NgM?_qA;UZny^ZyRd~!W*Ox_6zPtO#p{-i+Gc|wAEWd2{RiM| zj;NcB&v;=Tl;(6sg!$V*#q~A2)C>X#%;MP$v&$wF!ab06b_%r5T-{FD=D`U-w&l@CM=CmHd!%_zcFI0E4{9+x4Vt#-rHK4(ZuCe%frGUr*JgR}{rf3H76M*W ztlo@3MdtK4Of)-U&HNNJUpX-1fVC2N=qKwz?0D3%0_cJ^HM)k?Z?&h5db27#3dIxa zNcp8x4dZFKS6flgv2q_Vwqvjc8?_KiPLya}3~KC+poRe80L3?m)l8rP{YP=EmEW_{ewk9ccRxAuUPXa$Rx(DkT+4@BX zQrAj6I~vfP4^Xn70`&x6&6&(O!@6cDiwctXnnzuz@9P0l_?*aYBICvYn{fs#^`Sam z$|0LS5GWkHZR#L8wU2b<=>M5AZF*+a9K-h-LB9lO$G#&F^xp5IsG@Kbc@}onTutU) zBp0}kBc0!Lw9P7r)0feVU3Tww-8kvR9N=3Pog!_n>bGyw!HikZa?F?=8WnBUtnBzX z!G!BVulv90B~6ZV7j=(d?JCZKXK`+;E~YjLm}`HEEyCk;GxyAAsCx8~_tE8Ow0)|u zAOjBvY^Dip!*IbQP;PbqLFrw}9?iTG0@rdDS*6NMelm@G|8AV=lp{K&3bI617mi5SGM5x)Xg5nJsAKin zlIPKD^@*3M%<`-WODKR9Q!4gI467}WU0<4cLLD*KJ$%jfV#C>lOtY^?Jj(r8qo+gG z@RY9c{=sV;b@n$#TiVmCJtQXTCr>aIGjqJ@>u62a&%i_ll{10I3kD-EmUyz`E*X?R zghZUBIIFG9LsJNX*~JWNma&EIU1*L-tWlau!OoqZGTL*Z5f=B;q_e>w2;1bnOnfho zgSES-sVl~FRBcs-_H$b9pg_}tESBjj{p1nKi@tY=R3Lyt5K3K_TTTH|L5y>WL6{g>qgOM zt!@~u$o%Wg@wUg4NUe{x!?M{*|V818^aw0ScsDvLWv zpN*{Er+vSj)cfs-ZaRB0FBNU6Aguf52$pwdGrIJaAq_Fvmd%~~D>7H_=LlMd@577H z_Lxz7*!RXd#;}y2d>-+=kE{t$?g!LqyYIF4HS&`djjD_-#m$lqb6sD|nqIXRn-MSq z>pPWP)fwWfe8*7q#rh~2=|!hrQMRgY7!AnpG<^QvaNgDBcSym@*fN+Al+re~g^D2S zKDT8Z>e>}y@7X2&Ob1dKHqlwp>}fO5K!dVbN2D`MV;Sd+HODgEHmZ(AN|(O2{lMI* zkmJ7-%5VamLV6admwZ>;=Oo?TN_nfnQC+QHn^^!?zLzz}icS+Md72U`K;eIjE-44s z(s3+>o7v(CbtY$8T~y^b(x%4m6-gY8&X@I9{G1`$RWtUq75TZ9RaN!@&mE-MfpdaB z40pb+XI`O$M>#4T6zxH3*Q$Mzp&Uv}`24f+sj;a7ObV0t2pwC!>fb7(; zUJJ8H7mxEyN}QZk`w2cD_lD2DNQa9|7#Bm$XJ*@1We9JcHOURKm-EpSLeH5XWYyZ? zfa2eawDKVxHg@WezJ3Y7{{g1;{LCWH4%T{rhk9Z^epemV!Yyi{;)rtp688eOF zfTwv!)+5%@1Jtb31Hdu@O;Tf7?jx!^GU(5>%3#14Ny*e#e5#utr(T{j>9@-ItI3iW zt+Dg630rllU=B=Ec7x}ivJu8K>zqdosj zIYal+`02r52-oBo%Gz173Jy7}yC`&O=BJF7Y^gN4dK8q5KK^RojrK3<>8&7GUzw5n zS8K1cZ&iK}y)#-pv%&e(SML&BUAK2S@DKetM>>THdUlN0!Yj%1H)q2ks5i6SgJYbW6V=3DQ?MZQ8KX$@w*!N_*<}3a)8~ z!i)P6+yw6F^{;LtN6H7?g3)fsWG~^24cfS^R=IUM&-=~$hfEA6VN%DfmG4`tY}49Y zhskrkkwN{KNFYr*sK!1e%_`Nu#>jvenyyJN@&2b*T)+<&b=F3L2hNU|1E%#lx5;U`DfWwa-zgc zGs~s(mT*Xzn^m}jM_b)~(Y2WUQ^t>*Z?dEFiKcoZ14}({;^*mRX7-Ws)*-Qyua0kS zehWX(lP{P);|Y-QwwWhD`d365{Ev5QRf;-jeFuzYbRZp4_B%XoWHkj;kSbSHSWoA| z`o*y=5afmWodjw#UK6uCBXYG&T|~d%8N2Tbqc^~tWQg>S20sG_J@4wgE+5U=%{p<5r(6vmCjYlb+2K>4s66FUaGJx*4 zUf|LPg?HWn7VaQT0W%1=JFEdXNRL7G0Ed!~o`&5U6uqJ@095_o8x3>9k@Yn2Z8Uy& zI(sO5|1e`cRs!cOP)+Jq0{J5xR{z~abLPgy@5bR(vm=>zK;&<0O$4|C5L!f6lSY+*I(=En9<9pgP`eEE?23wD-$vI? z(jt~xYH*Pv@URNdL_GsBS9W5RQ>Z{ef*mV|pzVGBYXj)9Ibj0AaDvy&Y^gG438?rP z*`cvrz5}nUhZ@74(f^7-CIy(= zhue|2PC33~bW?pk*OW4snQfi}I57+KurOE)8GM`VvpCmoJXR*x9d*h&36}G54~{+C zDKAAM?12V*e7BP_jt{8o=AQikGG{9@@W?qb3hUu`U#ta#!*W=4NZtAKlvPs}kB*z| zB!Vcro4TPr0#pj3_fhY}230lYr10os8II2Erd$ZDWwRNf?Afs_v@XCs*EK4O0DiL^ zNREtTyvYu926fwHAdx~ACi8%NRRln?D|>h4;wAs4QaG!8u7)+>bzwnI)($ zU|urQ9R{=h{BmB)8IFA%%<|rwbyoneYcwbt`fR7}pbE8O4Afc$_J{_TD9=*U6M%Cw zQ#QEi!_;N@jLZJmJ4P*&{s|&k`QZ`70}YEFT*CKP|isPMa?qv z8>(YilYKq^)AFTG&D+{#et(KxTL*RX%`7HycRBPpJ93?oL&}_8I=F`x>E`*8it8X? zw0muL5_DoR5<)CV3m<$)HHPy49nCJq=S;p=_Zerp$_$mA(|gh(nxpDxw~>KTXH+VC zwnzw1{ZR zMEX$BcuAL;%8D_{938PP4l|GSIemUkIJgnrVC37IEM0%z+0Os`9SxJ>^9mdHC{-@E?l|t3RiYA#o#e zZDjEN{K29+{pi;_bLk8Apa1>e=#KmA?Ra|gq+fHgNzjPqOt068F*oO7VyyTWnw-rP zp|4#|7Xg`1!kLlWyTa(t@d}6f49bv?N@O%*z@Iy2! zbGX&qYVYLU@BN4J${H_4Cp{oBNP*46c%(6ob_G1hhYtF-Mj_n^Z{l|1`sMM_Lu?L-zi2BB;qbmp9E9<=Z35(r>_dj%R17F!im0)2D43+}1$GwjNFEj|T z=E6cWylQMRyHeaxnr3xB${bk->J4PbiBt`jC_dfrAdlFTYd7$_(NJtE(!x%Px z{Ly|z5XnYH`yfU;sh75P$(npcKhrT}TQxI0bCZ<9W^nbOKeP2}yDw-qlA73@taNJH z%?<5Pi_-2^Z^rEMWMo=BVigfaz21gCa^*CNju(bD<%pm#_XPUm9#|Kb$=|=qn z@L6x1_L{O%p<8~wMGDCID-?qaMgyxu{mu1*v}G-azZqp z*RPec6#X1>IJ%xQM-lPa?T4J?oW)6Vxs7&GGlj8Fi~GCz`g22e{RNsKt^L7|nJFQd zLjQrvdiMrl7{!8;8=+k7z3yL)PIBCjzp7JanU$VG+4fWewfArUXV2IylHWK2VvJGu z-GJacs)u1e2_b2XW?_2_PZ0~D< z;K7k)E|OzM%Qv%9+0Vi(v!DmZ_top~rncKSoiPe0LJ!7@aWT;KU;f&` z@t8pNhR=YD+OOHW zL>-?m$jhJzS1VrMmZN*FFU;C>C(au^?avPYzKM*hw=R#m$EbaTl0_T+9rXrVO%Oup zrKlDJCj{V*np6jF{=DIGOmuehx>2*0^df+x6`5RR5ob1CSXehkZB#4g;Q5FJKX6b& z*`PIdTtD9H_r>{3UI%o%FfZ4)-zmWEz%nRsBFuyesW4WOmkp)Md2L2P_xqEhDzLAb ztMNj;qLjZo!M?wm`E@MsuDru2<&kKHCA0aankmfzwHnZzju7GesK!u>(Y2FB^z%N_ zNTjoBXufdFs)y{xeez(5e#VNT2M9|?-=z4c)Qv~%Q43><)Fx{H;u?H-Q7aKx+6jue zAUyv?xlB+y3()px9N~ZV40|{s`kdG&fxw4jNg%;}&As0s?x(F9 za9~#h1#*OB$n<2nZ*;;0!ZaD;>8x)1=hvvuUr`U5mb=DXjs?zG`7Hg5Pn0b85pP~Q9(DE%5U3o9IM;eWNz96T zrZGxqxs14dq~pFH`gEjyy_3?giDzb&Bk?^7VtSwsLE5uy%4~X#avwPL(J9!<@npFW zf+Y2t1U~H^AODnm$h+Ds=~$f-Ogo?J-PlTFkT8bQGc4Hp@o|Il$bhRgJKd!|uZhjX zUz@!~(BL$65F{kugZ>7>AqY_HWGC%h2R!RaY-c9j+X9RF+9k==FA}3U9UI@gKaC{a=0S# zv;Pa8@XlgCfRTn{Rswj z5fcy6pVD8%=sPj}sB()I#EJ1@?BISn<@eWX1h7$N)H9#PH9Vpg^8++lD(agfP#oMu z)co!AIK4LJVtTEM8{12O)*@@RqZ=&+|Jc|x&xXG7%)j1QyuaV?|NGB3gd{R^;~lO4 z6AR?ckG>abT>W#ERrO=#LWdgGi{Ojz_f+x(UHEPX!=K^n`i{=QiZ*=y^$Q)Z927*B z4;jkHw8jI#iMo98=_nd$E1MMOsNX&5;250D?{5Gwyc|Yt^6)zVTNewO-&u|8nxGm- zqY6YXLD{-_m^h*%vY-aRbHVj~h2ZMq|j%EKOt`Uqz~9DeW6>;HCzKF_4e4%Qwo zcUUKiwWm{iV!Y9e`qGQk?8p({6)lS>%InMwdq!V*&`=b9qxRwfzKz-4#cQBdy1&nz zEg1aWoTgcTe~t$T&RUPvYJG1yN`nCgr)C|TYsbb_(I$JL8(pZpS=uOeY63(aEjzGo z1X|*7_NdxkR#;A}GZO5m9x{r`*TJkRo>5tp>*g~YFphD*)L>Yzl>va~R|6m$L5RIo zt1wDoQ%7ijV!cyE8)%yGkQ}je-GYy|^?~Qw6`fbR{|s#Dx-$B7nxerE>ASJ_ zJDIa-aHW_x_cy@%+6fdy72#rMl(g40K_1VPIR)3G+&7gaHk*H&UW)~zx`Oj(dheMvr+`ySE>M>?I!s+PvUfs}<#(jQ( znrR6JPjR#38Y>@Bt@ope#=#~SUg&t@SuVfdyPA?rI;ERH6n1jtxEDFb2{0RY-6=Ol zuzl2=JsD4yn>dZn>*}3uo6Z)FKLJgxBk;j^Y!{k{O*E#mq9e}c1U&*9l+*Zr0th3T zZD`hH+j8FXp4rSIou^S?LvsKHg4CH&*B59@M@~V5y%QXtWI1J>RG#~t>nS~qNxC;PrXwlQ za^%*kT2YrNmq@Jdk!MS5r4FU{xF`eE@vY9Xvw;)>P-42B+V*d*>C$}@AaXA(?29Gf zP2EdSAG)7sEbS(@ZJP{6`0GnBjCSle%{aMh9yD`v%0HXy@%P2Ug6s&r|* zNCC~JKhj|w8C;U1VRBaJS?4GhX7}R`)}p@0>+ic9R+t|Kw;8A(?LO65N>0er5v5cO z1$mxM^q_r{&RQH*miks_!}ruU_kF2pT+Pm|jHl%}Rqz&G&=HO|*a(Gz0tFqG@`@~$ zJ>_iFK8YO?x{A6Y^bWhVYh;&dd94K}!nAs=G56E6#-4T8objJRo=%Uhz_kroeq(m) zPAa8MqgVXLYtdQXXaqJn#!QS=jOwvuED1MNJ?;LU1G9`!t^Z4f;c#bui98OFahzu)cUJf)<8H03BIwPJ* zeE;6Zn|OV~q_D=%))|LS;KHf8gOPDjf>fUx(WNn&_Jr|KLNIDyCa>l9!46!WMO~cl z`FK&ro=`+t7@6`hK&-+xC2F96<+F)*0xC_ruxU=y+C7_@sqrMe;gc%@REqE#)b zTpFwGHK6Wz$93<#`2= z*&ptx&jfKv*)cd4aco3=u$}Y_IcPZ=A&kyqa6xq76BKGThC=fb7^dvBDQ7hS)qdRT z=D`%;(Okbxim&auH{7~tRg4&g&VuudIkBKfs>`lXJ`P5x(Jk383o3QcFxJY0oWPz` z!8OJYKxZhI@m4E&;D z;ASZB6toqRG1jBN%X*qTfs_XSFDYIz|fW6riBY9iUIfwMjpc zeC7@DFT%hCC`XIl0*p^&9w}?(WI*p|2Ay%uy*W(Hye#l2@DPnLmgW5{?LQZJq3{>y zLFbLHQQYq&sk*+HRn2=oKXNb!T3W?wEsq$EP)#x zeO=?>bTgAp7HF|UkXDyC->sZNfq3qC~#Bd zG_wH;0;0j$i)>;w6J){h-1CsH!_S5j;-wnMzLT-kGxKe){$F3|oHJ0NjGB#6nQenS z-mHg~9o|!oiWd4ma1WMh52fp44UU{G5B;qaLKzF`jnZOKFJ?+;L0`9wR4~BzX`}lCZ+a8_q_J{FR$lX zrh_%o$q5!i$oqp0ynRG`9axC+~PCnkR!bfeJX=3cBB|>G3{fHJWJ@s z(wr+BElYl+-i?yD)H$J`Ng>`3y_Bn_b8RaBI!x0)A~2Io${*{$>rBp{)cFiZ@LX=m z%t)qRKE*(AS=oEp2<&BH9PRH2o4etd6Tdx@Buxhz_27`N=j#HVbbOZhD!MnFLHrOH zS?jnX@G7L!*3v9X9Aa|rGSY8Ibqys#!{h(<_kDd`(YY5<^CPmDe|dc)h2r83>%)R7 z64_URXfw8-UeTb*&&Tg~gy#E3R_ERjBzLmB)-@XXgrkbgs&@+h`bMVDKgY+n%y6>q zm?^iu|BfzQ#i;#!|{%cuo_xz)&~(J1wEMS1Ou_tc=T?ZTVgawFD6L2 zxi4FrO5^pwln;P1k}WXOIm2sIm$DhL#q$nR0CF(;mY>m_1mk)H9rWgykY?0%Lvqwq zODB*t1sKynFH9M^MXAT{tF}%LRzM>`C_&X=tq(G;2qGLE-eCdLXo*T>lAH0Q(UqK7 zexJdLyr-_*wf;Cik~^Z^+!!O}26!D;A8H9c30_`S&}xfA@u1S{Z(wdwOv3rv(88Xq%*3)I)>XU8Bd zo$7<8_x|Lo`EO6ZZ(-m?}&~Km;ui^YQ6Z` zb&~+Lgf^YUy)6SiS!A8d#UL54HF)DY4DyqV`B1B+`lQGz}ad+ebP40h*r zC~G%TkEZM;F@@~9F|uATm|8aiQ@7QaHXGw%*JjJy;d!N}xMvT^*ePCd_jF7&5(xLT zGB^aL{2ayAG!b4*S_g6cx(^|Gsr&3TWac z@}X8&r2G;dj`KV$XWZYbY^FX>!8?=|b3b0Myk3spvi&$$kGaEIU?%G(nHp94)&pwR z?z31h2a`A9I|YODJ3qVh5iogDr)}h!m0wVEZ3|~fMijgl4BVrfpzW9K+}+i5=e=8E zE^{Mf(#5*Xw0G*x@2r*U9?3X}$riI5RQ1r&oY?rN#S$4~xs31)f1fgDmTavvvl^r5 z77=9P>0WS}!U#dJw08H2vWsUt1R6%iK6C+Nm-}`it3!!mh)Fie2-Ce zpG%$aDg(8XVL(H)Vd|yeHDkCcLwi9|H7ImCQ%7{Z0Q$Vo#THB<6ly;ek-acf^A_X!lG z(Ud=wiVRZxP2DpXJsmV`V>J3Xm1n2GQ7FyQIqi4ApUtPkI$)V-_l8x@r9g=cV}~^l z`%3v(yNue-1ntgi_pEr&cnNsbN?8MtI}_)j<|o!Zom*1X`by*L_<5&RfdosiurqL= z2)S8zsFkT3e3JWC9Tgl6)wIjNiK1kg%NP$MzZ&gsGAb|G$r`PUN{iW2>y^6KV*4iMIftCzwI8EssI@O-;DnuGP5-pii=x28q2T&1 z)_B>`WQY{%S)~tMZcrjqBhu8h0LN~id`WhqqWbo8*{2o2*0ZSFwH_4nNwFSlH=rT> zHcE#9T(2hAJNHt0NVVLNpa`}AU$e?yDgYeJG45mDJ{>GIn@j5Ue(HAVh0tVUlSNi% zP7d@=_7C1Qb1f**0j9AQ-7(0fMVy(c^-MOxOrcFCkZLw7tGk zJt1_`X|<7Kukx9xL%?8q<9XH`t7nXY2VK==c2oc>mHSWoHxlNT(%I76bI zd*267wkaSS^G0VeKOTBmpRtG!eX2%eG!L5%f9!_oCJolqz6O-1%}x2=?cSKw6AO(x zKK!A9@pz*aC!OXn?z~47& zD4lldna#C}QX9(IKaH)izuyA-`}Y@WuTBgDk48mNoaQr2Z;Y&A?b#JSg9985kVswi z=e*+2!k@42$h>;3(zV&liNANpaRrTdM5gudF1rqtLQ#w;@TOMb%3J_j6X14R87Qw= z_3QZi-SPbNnXK=B|M|~z~~eVE;?vZ*V_U5 z{rf4_BNd>BQ>-F>Um_xz_|Ba zG*=BS_v`gef0CmzcmNc7PSB()LOXavau~35RItV@#K!9c?q^U9NlO|tjmGBp$KF4n zIFx$_9&)~KHjdG~#*tWByJvQ+20`msr1o0s1dQ7PYvm4Ob255N;6IM4WgS8v ztw!sy{_VL|u_VqGjgAm2*W4xFdk&}`_c-Kas782Z)+~cxEeoF@&#b^cftT*cKlhF< z?N>yYkA-nM&yh9l{iEb6vlAUuYi~x;3{UC>)Y#%|5sHG=rQo6K3STp3b1G_pp@W`1EPzr}7LEp@Mo9&rKLdTIHM?ge@Jal26Ilc_-^xOkGZVDf$q#QEmtE{B zr;Dd#w{|y14QJHVeE7m&dtk_USt_8ZZ0s}G;wQ&BbrM=!YTBF

      D+N44Ukl$@;RV=KOIvUc$@ffssZk+6 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

      @JD)p!~#DeUdOC^ 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 z BR!N7M!1ioA-j}Z1Z@0zhJybUO4i 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

    1. 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 diLwQfr{EESs|KHaP;~~Kr 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

      q4+63eCggKz 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 )$< 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 #0*=ap-M>{&SKE3Gm9RWE}hjMvtq?z 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

      -+Ii@>!|H)dzvsMoU6}Sy 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�yPY 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
      I!sL8=qOmMYzITe*0_tDnznquqA1d-Fzz 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%0DjgD5c5IX4T&yvqMGeBzjF+*gc@rMy$2jWbca zoBJ719;2-VEvpLRKd=+T;@PB7-P4EB#GmQLPLIhX z;2m2<85h zt|(N7IKwtlj`PzOSkg&h#x||NkQ0kC%2=3 zxSp^aH2lN4xm+aV9VP?K)gHvyLTzt92b-NVP2B()(3xLQke?QJ^w2dzNH|U{a^azX zpMNsV&)yO744Ld zkoC%W{vHGo$y>x@i|`sDgAk5|EAuIb^?C_XqfE1hen$?Fyyy~8y}dG|zXL3X^!DQ* z^^t@Xc(4WMR|b=~#ygfL-ScYUSU2@i-}>;PF^T_`+!IV^m#wWzNSCrn3{i_M<;KgN zasdtoQ0j>q1R~3leW$N}O?BP#*+dAi_%M)F2*M`QyG%aay#}QcErdE=qYGjQ6QGD^ zpY!ql@=4eo`#p`MXUlqum++vRead=>C`8(uF8Xu%?jNQ+hy$nQd0o6BC?{<4zAF?0 z&t{e9w`HVXD#2d3G^Q=~w=AM)MnMv~4~Esnnc!HMI!A?B9 zWn;)^8JI*ut8jpyQhmpPnnU)2Qk4Y8VJO$2o0oDZ$B&2p^t_1D>o{mw5~j}y^X;A` z8C-FrIPGF>BJzBTlV=*2MR&A{#urvw(#dg!Qdbi4)0|O&G5w+RNY0J4!2|O5vv3^U`4jaIpI~si~?QS$=$TMmc}2 z-lzTAI$h7WGfOYhs791=57A;ocw&8!YB;Hzo`=({?BU1O5Rx<-*Km$kMysrXl>Vwf zH#D0aka??Z8sqp)Q5MBPSYM|mAE)yD8I_2E8Xru=BffnvmAwF7s*=n`wkTT z-EM#2yAIUZ$~Z67-1?4kAbdPbQH{>qzyz5tB-L2KN!yH%8pZ;<{2BTtVv#TB^XyBAd~1N5|7IEWJuP?VSM|$756`3;Pip7!P%eK{P~Lsm~ttj zVuhou19{?T##aLattW5v+R6NQ{o_Ids;I1iO;>MWNrtfR=wa9xqDTUIlyKVffjB_F zDlERe&G9zsUh;0|buQ5udk2Z1Di}a5)p4;C@%;XSN z+)j0K#9M}kqb~B$q_jqn5uux~45OP#M0Rg=^E!*~t0L8KeKmWs+7SGbRtQ6@H29u_ zdzWU}P9glu)RgN}SPZ9~S5}@x6KUEMnZNo&CVOPR7E(#vDJLwSGRI^Z^4=p1g1X)^>0@}p!e|HUuFj&@ ?tDS0>@ zBtH^GwH+5ihl@l4jPG6{xF5-shJZ>#ioM|uJ+DdG8aXiZMeVfx+Q4Ko4|lo1@6?)- z>lVZlI{ITKL;1UMO!r-%^TmAW7|@%j1U-vPf>^*mE40)e#ElX4p*DT4bG=L##%`{2 zyMVavxq&5A5j~QHRCzrdOvd|sIG1hBHn+ZVF4!iPnG%f7SbpA0x`V@ze-zAs7Z_Bo z^O_;)c=D}lXcw^F&jiy9d&D8i=8M#y6!OPteBjr<=t9V#&@@7E(LjX<1LPW7rF%cQ zJoGP3Qb|J=1v!mWx2S3^o63wOw!KP95bwVAnu}z*7b`4h5B~lFger-x_R%@n%g*pW zy5M1#<)m4-w?LXE#yRaS{8$L`;8!xV8&S&?oSwTY8Kmebks#Xz`C#qk@Pi)1l*MOa z#RFY4)3SDMTcM(bKQzSOF>DwB*;EnE^eR`dJ(BHic>lI1NbzfB8684FbleHyGVU#&2WCjoYwH7HA;^g8r+3c&?V2Jr{7M z%OJ6GnC3sEoG25f%ASAQ@@D!)J}2{>2;i>W3LCV`IYs{;R6br<9$#+*B2exO>km@D zBGNFj=z)k?1OW!29yN|RfureWz6|4hr>aCtmv*jFG@Ih>sABDqmkH~ytB`unVNrq5 zMEWP-z-Y(;cQzVTIm=P1@ba;}r{wklL?e`f2n%vXjNwub&WRQ3$g9QcF}dBu)?gGA z<>kWZzt)Zg#p&s=h30mD2T4Xe5x}wOKYBrdwTufZ+gid^*IfJb_aF0dr{4U_EYyx-cIG>-c4hf`RU(|5;tFlWDHl5 zVqDD!%swP8N^Q24?whtzs_MgrWmR{zVWsN*&yXM3a7g+jPTu>>0Y5{Nrr45<9Rv!P z9Sw2pAb=C&13$5!mlm+I1v1w+&7B?q>?QUh&43zbsqH7^&{SWxhw0ux{>KD206-HD zR5Rd(mqKKY$f!FAH*$N2z_b>CUs1xoaGHLnC=xk2zm;s(iBP;+LE+%xTn;9Vm<(=?*F!Q#qAn`HCuNW#k-UHN-^1d?{xZKftvA^D%ZQS`VuJYk-C;nP$<;3;+qjY$Q<`6x zYZp|j+A?9@LI84+W4HH`XW&QfLS_-Nue6czZ4(EXOQ0S5DY6vXH)KC{xI516>==di z@aHUO?ym)(-s-Dv9O$f#*D{uNCFK>R(z|FYGn&2`Ua_`-f zR2gQxh}YtVS7buZx+4UKjRC1S-J<8(-!W&6`NKbHs?2n9+mS#G?6jw~w0Zr3l9-_q zCajos-Wcw*r41y0fvNdaic2=F4-^%Hj7-taYg7xG!E8_P#K?{3-Sn*o?UI2}?Bxm( zRa+zA$v6Dgr)HIX%Y(J!e60}3SCCNcv@LAoKi`hVE%u%!o6jC?EVeYu?*>p>;v+vTQHNwk7vLWAW_Q}Fj;@dX8aj;7HbY@BIq8z=2iO(~ioB3MT9wDZ0QW>E2j!OuA{>I^~K`a~t z-H+F;q_7qaNTEcP>r!&x;{=~gZ>^j;jy^vn&L4E&O6Ubo8MQEEQ)nFg3(EueWYl#5 zi7$lE>?vcRE%4Ohvo`_Qz8QRkfQc8r&c1JSU)f?Tpt>542tB`gp?Fc5nLHYcJF>oF z+9n61HQZ>FL#pTjC~zO64o^a{TGa^VcDLwf6jdx8h{RA#!liJZZMl=NEEn_%qd%1# zOu!^P4tmU|oFuGfv*x?jFS<{Q28}x{EoqZH&&<27vlUGftkC04bF?gM9I_(1dQ74) zu>7H#I}tuQS#-`fI2^kjElYEOc6>v=X8qRI)kU}HXbBu)sN_=elANKX?GBnnRq$>M zQn%g!kXaOPSN1+Sk>Y_6g9mlqyM{0*fi-cYw`pD9@b+~U80bSawdJ5cVX{G4fCF-{ ztjX|$?)Gon#_kpdB3PSrNr9hx4D0O!Y!#zM_h>IlIAOHlMu1#kI5Hc)3ydv>&z01|pgF+l?_9 z4XXecTR~psTIH-SIg`z`L}8=1|4KD1q}A-?epi6>%D;OuVa+V6tgLU4 zU6Uf#wm6W`@(b+Xpy8{Se*CD<&jH=vJDk2~M+ZMcJ%0gI`eX!wn&A@mg=!)R^a~gn ziypsITrO0$iD~4l5dR~mFk<{Y6(5C{E2gD8NwnHfwy&qyz@{6|ekhIcEII9HI=VcG zSWgG_-`ER*Oz7ftGW`6EEn$>Fy<$B#+H=qUMHTxq6Ca5}pH0LGkhQatKGfw3(ssR&c31j6P z8tQ8k#$%3U7!a-i6YM!DW;Uh#H&|*mAXUz^De~_z;zdp_N!AUK7>!t&z*Pj(Et?7o z8d0j|ZuY-nJcD!JHsO#}O(Ccd`@{AsSj_y+x|K&f0;OZEQ9iViZ6ft=ce4|{hCGo^*aQeHd2o~ zZT6cKK^d=EWK*V9!Pk7l=%CO6Z@pWTc1z1Y-4J4IiIh6FcwJ?fk|h}WHA>S(e_GYK z{$(goZWz3tATpsHr7B|;Q+B&i{@oCPOvf?Uy4hv;d6|NeyzQzn2L>yxT0)mA4#QUz z@5RW-)<$YLJ?c{fYS8-1MSU~AJ9{vWTbK55MXnnP3+bIMwRAllw~ZFj=& zJh9~bg05Lnq~Afb&M9Z1QAe}`dYC$70iASI`eI4x>(sakjY6|}`zXq?Y?{x(81Wi6 z=+wPl3_G_&)%5K#0G{ z94&*Y6|d=X7FJ%KkkrBxEHqk>C#~>$7e!YUmA+rl?)u6ozEQqg_mH@@M4B^gZgFH3 z`E{&bam6ikAJzT1?aUDHmI6Up(Me*1ucVA0w?breMJfuLP(aV(ooQtrJd9CjMhnt3 zSqLM;G6HPdbn`54NMGjbYp3!Q93Y;nyTZzOiY{Zvp};&^T{qratgSCV7_$osRg^g` z0%2WG73c+(1cT_!pAzOGg37%jI<5~_DPHE5uqeQnKV3YuLF`(!R_16FR%ro^wbbbp zs}gZ)nHSet=0!M1VVnIBl6d?95AqdkRzvxj_!5Oeo=6MHgI@jSoZ>=Aqknl5VwN#;G9M*#*y|^0=>^;csW;Q=&*y zC=S`zl?Lds@6j@MxzG^fyU6`DT(BeC*1J@<{g=ui%Ua=qGY_k`opG=ID(DQ|!VFuB z%ABkwztHj$Q_iZU?zzeylB7?~C$O#^zwF+-QDlpaMPTcQQ<#e7vG|&35*}$cOnJg?9rYqZ2>i9oMoS zBG>0uIqlmi)erK_r{cfjYo3Wr39I{D_gG^{j-m1r&=*05_wTT5l|kn3T6s*Nw>*0y z#oL_o++{90_kzCSyL;=jQFW=<0$rZF5F42x!3;$S3?{LbxG_97Jv|ck8py&g=b`R? zVuCT7DaqU_rzxu^8j)uk8~<)tyD3PqVfne(b%aWqvXD!oMS7i58OjKcJqz<(`UMif zi-%W*c`!`+))+Xw9lAV(`LVJPs`Lt3X>=5!IIz*ZwQX(i2p&tbO!ojx;r#w3RQC6( z#Kw!z^gY(5Y3+Kj-NFlUPLfU>X~k0Ol$nQn+jrrkR$?1rBo7y;M-}c#y!Pa7ww~ES zX$W~LVQERmn=(R~3gHES>aVK5z2eva0)W}dVQ zH*ZjiJDRpzuxaV*<b8L8xUYp>AM8QT1w7spZaeh7sUNk+*r?kGeR zJrV;`{rjx^`gkz3*}aJq{f|yBg14Yyj_mylIe`Ui;Alno(9GYo{8MLyhxA2=CGoxC ztoF#c?TaGH*MJQS30%tj+r5Z>Hs-i*Zy@Xs&|T(lHpePcPP;2by`C*8w5+epiRXyI zE@`3{CUSwl_f)`1b^G+W&wbKV*apI5&#=1dvUev1#9G!qC7pnSJ?nX{W>{(ztpSX= zN8?taA_#ZQyhuhcm?!W6?j9vjf1r1#WUe@KTG#%Oj)RDxhmv~7v&NPA!&=X^N8|O# zwL2Gis2vX5171%pLiEvEFzRWcXGQO^(Rgn&)66S6;r}(;^*moK4Bgs0HKTFv9Z<9* zLTv+jIW{FL^7wFunFq`2y3HcT286yf{3}{Q>FOPiaKfX9;?>1*#_ahBqg234!DmAO zd;T}uS`DY6>LaAPXalzqamL;;QG znrFCPtyCf(d5#hvMi#q);ue1tjvRUCTXCpS!naeo6VNG-90<>8YkoE+&d;Bj4l&Qg zufL>vSZ`6>4nu)+5f(0ot>(@!vdDTxh`4M9%!b@Mh!O`vRO3EGE;yc2&T_g;C6W_7 z2k0$fa>7^#x?s=HaD%RQ*b>C$jGr>e#|e*?!^sddvwUp zLT0#*p>>RxgUjoO>Sdm5iyT>t@JZ3H%37(DNn3fh9Kl4EG4s$uR^9G5S|-(T(=Ir~ zA()1ikrt~Vs~UF}*+zW7$qVee(6b(47p5${MdX>>DggsGlD0T+HXfoSZ>wgvF5qHl zkbif%%458N+Qoi<&7}yUMB-PzyFa|)094^?t8k|4m*rLBu1`UiJFFlJwKNKSRne5I zJ$)zASKxqfipH8*0AjHc$Baw(+U20`aO4=9wL>I`5R>@Z_PzW**Pe>j(iXP7U$iWr z<2J^(mM}h(_o!Uv`yU|HaAe z2>d22P!tKqD?O^9g|TIYU*bu7Idn2M|2w>5duWzi@iRWF-miK-+V#<#>n;TBXE|Yn ze8N^0t?SyVhgG)pf(!jDa8+rSy-a0(y9Z&c(AymMHhNI8M7Muc^6VO#mfV@4D|NK@ z@z9FZP?BHP69EIDb*( zDy?avF@J`iGsHGv(VCxsJj0X)77kLv6NU@W_6SV|Uzt+1hvX#;3?o>iPhOvYk(FMp zYt`_Inpd!%Elp*6p)wqz(8QYmIY^UKf{t}{Wjgxu+B3It>+jnyAt*I3L^biL8~rae zEZRyB5^LM?cRaJ6|B44lZ;HsEIp0>QeJ=3Ka7Y?c;jX@1JYOD|G=D$7-LLhc+*O5C zf4de=nMw()fGU9sXcVN^7l&HzpuJ`H-Su<#2(!dxKhOEjPgD%!b$C@`f zwP}=B^GV*P+uwe#E_ABSTbCSc9H{z^u4ijaQ(7-A_slCD1+w8vTW~hM7xNWZaocO2 zSZDy(++^L?*4hH6D&v25G%9Tj;vynxAeW$jguot=Gd8-rq88_n^sCi#jX$y!)OHZ1 z2!k=d4N1Zq85Rnk{NWsE-{15wT9b1Wm^pmW$J<%}gN@fY#>};`VPQO|?GMVtofsc} zaE=fF*MqZHZtKb%vSeyCETIb5d2IJzJVRZTOdfs^4)ge_ME-O;wj3ti9$u`XzT7hz7Z_&`?dluC9!eVj z_Pb`zYV9@3_7XO4_6U3^)|z>o_V-qC@F-PfvyFobMM5hx!Wh%5?dzlT zsaGlR+B@*7k#f)X4!1xv?D-4xywQmdZ&^IzcDN_d3Imd+JI;Aib|Wsn9)#`lIwBug za^B!`OA$hz(J?|$=XrQ=OyJfR{vIfT#y+g`)jX_I$$P%esEXT@uCpKztVNEmTUadN zc)U4$Zv(goKEMd4^OQ=|a!t!7fwn}$cz?;pGfL zWN|PSH?u--^ZVFC?=PPQb@ByjF)K;dn4B?(~l5M{KXne(?E+*+cr<~VQf zw%|0Rt#maNZ9g|GtT#RFHb)BO!_QGGeD#nuUv@84nJG+Y%kh}q4AN*9QWowdOSiF0 z4!*yDFEDb&1j!N1+G{Tlmsy6(p5cYx3w-{YD@$+;9An=T3t+i5jIAz`P;RY?hA$xZ zptYqIi$~Y2a|wRy%+QC#v%}lGU4+#_IirRGVeB;;c+Obx?|^rid~1ndXcE=t6=Pb2 zVC2I>mVjI;rI25}YFozDs63Y9P>OX*E72UfMngvZfuLuUK`Db2-d*Wb;RCZyhZ{%; zw-B%~l~ut?#fnoM5$(Y56UB`;^I%GzvxsbZtVL(p*2>PDc*KA(f|6%)Tk|dxDYZGs z?bg%0rTpqL2+nG|E%VMcjcZNk7NYU0oLdS~%TRRH%56735iO~<@V666YtcmDMbEq9}c{QUG=)=eUG<` zhjGuB5gx*z+LtlDwWtARvF}u#q^y0P&v)~a#5zaI7jxL=DR>4@>_58-ZiGcVyk+GK zT-Ge#&YIs}VSvwc9ji&Z43!>@*Na{ggr#^=;c(wK#Hn(qcD@>`k)dS@COM_6`;CY=l=~HU~(wJj~O|I_sSr`Q` zc5lUn5$4UjCE#4geDT%SSD9AQ+x3}Rp2b_p=w8vJRv!HA{P#J^I`>+Tl9i{Gbd_|L zpKCsEnJ+&WxKCC_>iAWe=XI^uMalB{<@{A4MGCA0cuj6y?u{aBy#>wodkXEgdr|Og z=MkKDp^>l7$U5gVu2OhX&TYe`1n&+bEj(|1hHSW00EE{K2)HP?DvI_gyiv0#+On2X zZ=jyHdggTFEuy-vrKQqj9z4Ud;l_+_;268RE2&(|E@A)#3ycEJy2{6`z^=}HgI$x{ zcfT*`Ywp8$c>F?!pmBVRc%DZe=dIOfi) z@}7S)HVCP1yl~yr7yMw1E56Aqv}kfAA{!NXVfa{NW7+vz@|f>DQdMr{=P%_FoDb(^ zAw8{Q=z7S5e+}Z^bsv?FF89n|Lv_5IGx;~yGT24CSdGKqT)aKSgnxU_<>URF5m$gm zb>D&#ZiB4y!E5@O=c(R#y(e*1WDjlruv|7d@KCt3ym;fW1e4+3gMe>yBzQd|t51(u#BY zcz5d|@;J@%JC!oaRk@|GCB=)hg?ygK3F2Zi9=je24dieS0kO;P>sVXOC#ygX>kM*h z@9?ZnZ;mTJ@L*0a@B!~wf9>ebVk?}m|9V4F1?FVc;zE{-_WZejJZ#zdTDQAG1~+cE%TrEKF;D{RWqcJ;q45F{Pdt}f;l#r2lL1V zavSNbG0Wr2Q`n+!q?G(*ezyD#Q|h#SnHTVJ!V}fP2y$zy@+09)q&KuOxF!rA8+X8u z(`%g?u>VX8*6DU(KR;;=V{XkCD?EDO-&`4#evBE;(P3WVIrlrfFqYcY(()fY2q844 zr`6}e7CVpU{nKk$P{LO~Enb7?jl`Jn1T1*Qt@>^^FInWfJT3jRnAG$l&9m{aJiO<* zzQc=rxaa@ldh?3Q-WEn!0}ct*MWh$t!CNp#y!edwB-8c^;ePpJX$_U%@FS zeKH>x>92Y7otA}ywh4@+Ipgs{5Nv`y$(A-ONHjpNk{p!QGciPP$XKI_TnsC5P1<|A zVShn$877Ud-QK+VZkIKrtD`zAj?t4YIFJUTa1>rf`y3u&>{Ya5x{Vxz>uBy}Y%L`c z%R`GCd_UWJWy#=)xV(?|q&0U*<4u!V0ayc8^bT#&QJfig&ACNLa7;q7|)Gl(cG6x%;Vdm!%R+M|l6C*l?Fz9U8A}^HHGSEVJHNRvFSbP0O z)KrZEg8Vyq&ROz!1+;gR_G{)j58e$rO&2i3l27-Vww_*9M_U-gAxAl)aWOvO2k1dF znRL=Cjj=-0DTX)hp@MFK$oRZ?mdPW9cuRU(fa)6-zxDzf=e}IC|Fg^Xvh0UMjf~hD z@u&rlJOp3Ss`p6Yo1hF!<>};?k)O;7kw@cR z@2e6*1xiFO8h!{bx{g&QR_0eMzwy1zV-)}JfXctW3ccdIh$KP%uxi!xHr6#t2&gsG znsns~R}SkRwRp9|zO6AE7jKiUiz6}7nom%XobbUO?REEYc|T0WzU6CJ&9#LBAR8`S zEvbcQNb$}#XIhPiMCvklNM931-Fgnz&&Z|fn02fSJsI15Ib9`3(1uX>5$Ht5(Go%A zTMJrS|L}0BE@9zU5}~?`gl9Pt*Jrd`OWWW;91g+NgtqzKI=}BMstvtJV{Fa-sj`HZ z6$YX;+_uSgR$A4Z+Z0Yc^v)S}(z_*mDzxl!j*4K$RsuyR ziI8o}h14oLbCzuo=>7Arb?sTvm2?wD%>ZrRi*}vo z&L>n_%x@H9+*DSrVt1E#PGcbsS;vSLKie~c00#Xe-Vz=q?1>@beH9|l@+{6+3Z6+Q zuL-xS1znbBXmpf2WZzf~;w^EnE@Q2@zf?@Od8Lw8jem-JbmuKE#;(uivz#wE4%GQb zE546{BVo|kaVlQz--VW|)CVSBi zT-GmXlHPoSu#one*0fy)kl+)Gpe6;k+BGkFhwqXPS4ng9I_fLFR+_bq8AV~DZb7ck z=OZfs)9Mq-{Kg*YAeXml^iY*O8Fn`jVDj!|vjeARblU%2SoL0UWKwRik&@T-m;&*g{YiC*u ze@I&iD(*o{LG{WH$};@D5n}~jYSP?5wzfzx@ytJ68QCI{f36!Ix&kkWS3y79@~nLY zivhFXo0h{Dbbv)U%f0cp{oegf?g?o`;BwYLk$Pqdy}!(*pr?wk|3sOWlsSI~$oBo3 zx2y7=_^uSFZS&ME>gY0q^8IRfnSf5+KQ{ zyUmTC^7-X!_e!K{y%Uex_iZFsIxt@rh&rH1r$S9mMoS9X0nFU0nZtPVbxhCKVEzES zu&ia-S&bLhzyA3@T($lC>j~F6znNP#5Bw^E#hvcy42xo>t~*U|!)Jzp9+}nt9m;q!b0 z&ABaOb_k@?Gdp4MxIe&aaNiTYZ*M-&zn&fyrvr&&e%`+@7REe0@5?Og^XI)`-fvMo z)6iz(@|SzAzc|m^n;)CaGC6KZKj-!P6SU^*Zs*<<)aQ3+e&6&i&->|#rgx_8d=syp z6WE^k^cl)aW&91ESEsj7l98AFHR)^1d4AxWvD=1wSevcARY$E#r~0 z?|c?K6(O)9NB>?t7jv{Z)>({klQzEndbdi%Zyz@>XrK29Ptbg39ouReG><}hyWr}U#l&%0`+6hH$y(}mqkDfI|n|0ME15Y_Sv?gD z=3#}@H+tSA6$Xn4imJT8E6Og(5WFO2%kBrQ^!_%yzTFl$8+{#`o>vHF=DnSK_C(*$ zg?6JC@!=KAPvCX*^7IGKu!*Ov^8tAU5g>?6if9O+1^+(5XBo*N(H~TD++M^{i*EC% zh6B8$VNV`HudOU_<}y3-tV7mZ*ew()aXIs(2bles5p{IDLtc0v8M&g&mTqAby(l;) zL;6}zRN)UMGkX)8Qs8)?C!-2{Z>H?(bVoxem|JAD``14JPhTvfA|9Y$0}({Z+AYXC z{z4UIUOWTK#9@?-`J#ui^PnfL%RTR#-+T$HxwIdIqt{tlH0LNrAj#k!Db6yw-`9+8ab7j7hRq zTM^lOU5=fys`Ed{%8-ryd_V~TF3}iz5-$keDP1=YMg;>PooT_&3K2OQ3e zpY7-Rxqhyn>*xBpey*SE=lZ#RuAl4Y`nmqMT(>t?vqR2Ah8tx_Rfmf|@-fCEtO|B* z6%zZ?LOpZz8oXDYcRF0thc&2$l@1=V&%6E3F-K{NZS$k$#7qrp)!5t`?fn%!&iQmN znXM@u^nG`4qoBYWdb~Ay;$h`*myB05UdqweF~W?sy%846Y|r2!dl7mhE9|2G;(G3X`z(4p^e2(wy+VZaKm646``jSNNj; z<`-V+m$(T$t3%*Xk*I|G2Cp?eza2TBirD=a9WZ!cY+5cKfbZ-@`)0i?J=bzt)ZWY! zF#9IH!^{LL`#8gsI%Ud_Qrn;8pTPh*vC>=uyjjShqaimazjZ z;bK$iIoBrP!I>8AnH%fg@Hb(OT@ADPg4Of=-E&#x>nq^xbZyd>4hy}&tK7w#uOEP2 zuSYdt!QQid3v~&a8on?@z^X@rn8y<5dTjYFw9@8S{;cUKoMX;)PW)u0RI4sXuUZ4G z#$@`fhsAVW^xE8if58&%p5y7SjDC5~*Xbqwe8P2l+vyx7{zqI&#W`*4_$egVD@)H$S!Fx05g5k&0E61E!4_Weg9o#v3)+TK`JTJ=ng<@^<`hWkw z|JQNs!#!M<;(jp=?`(K1S8$-v=mOV@xW4BkE#50#Elwo$eb8fk=%g{;UvIR(hQU;YVB#0z73D^lq8u=lKl72!XN~AQBPNF0& z5=CjGlSoK30!T7->#VijHQzbM9CQ5tXn5T73K;Mei3fu%s}$b81tGLNs|>m~W@SHV z{G_4ZarA<9zyxfaHXaz76>`aIlHLIbT!4+;A-{57ee`9{6E|P)kQu>mTS-~5*MhGy za-DX6!FASu;rXBQeu7t#x%APa8qc_4&$0%C!>t`oOZ&_RKahenkO~6%@di4ODS|h= zhbOQlKVbx(i{j3=gBFh>*WS+!K84w8$ukSCSev-*Yk{84Eb>v)DN_d+2K zm8g#+`18YX;~^%KO;7!&@#(9F_3QQZ`g(o6zFuFiuh-Y>>-F{edVRgVUVr&sH*dIJ ztq1eUq6?2Mdbvim;>IDndg12R(MgkX@r~Ob>y<4 zDfsM#q_BjW#ji7eOV=OMO2~XTHkp5FlJW8qG3!kl3=t!|qQz!{Az`Jf-c3A9C9Qbb zXOcs-;-mVuUKGBdQYW>R~1Fy&(4kUJzC)Y;0oBgzQ>% zZ)C2gy?ynZ2zvga?uk63d%C0;E>8ad{D)iiwx4)Tl z_oNL*Qyxqc-zrPNyek1)h1nE&CaE`qVk!Xzi&9e}R)*9N)WUkLK(}HiUf&{e2cUqeq3s zH%RklPRM+$d4IIKHT-Rj&!_?z=S!GtTPow0{B8gRd*Xdv9gj&Hvo9|_3B()GtjO2e zwRbM_CC!pKbFX0KopYbLf}R(8Mj0W;SI?=R>#0J;BPQ*_ey}~G8$z_ zRQA0y${?)t$b%&bM;?99V+FP-A|KSNZkjh2)zpbEU20*k>~A_f*7Mn)UO#!B@sS=y zdYb2W=6PwTIN9C%P8=dC(Hq99zz6QJ3bj@T;9Me21m3!N;%^5n)((RkEdH;I-T+Nu z1i_P4(9gb(;Y}l78Hi-)ULiN}w&rnS{>TY#ppEqXm`6sz8oO6uCO*8<%8m-ouk?Zf z7UBKinVudkWr+yqt@Jj?D_Y-((~+Bb86-U_XMq{LWfgzBR~mNbw|b=4k-f(A&lc;y zm6a!!^y=_l4j!U0iid)pmlipTWAiFW(1olHYkUE1Yy1J}eQ_BCJVi9lgpIjX@|Bi3 zh5mZ*7{uODrW=7b;7fd9$S;Lwi|3b0f++UL>B$J(nsf2WvKlo^B6@@Qaqx}}cz4pP zggr0hmwZjZEAjO32#35vIE%|UgC4sX86ci7=MjS^_(6*?waRSfd2h>}G1qRynXVJ` z=k$@VGQWBw9^%$0^wpQKq}DvaxsO9u-dC9>yz|7g5-r6yg^`Y|QjN$UL=Gx5heF53!HS2#cFY5{dGgFS|l<;o8fl z3Wg)44fJwze#YL>IzK;<{Do9lkm>o)M&g0&3`f6nN)f8kQxNoXf8{|7wya^K`67W0>S);B!pU+)iWRQK{`e0Ip9%X7o8mW>F za60?5{oPo`Tj3y=NABl;eSPOg^7*e<+|vDby7gXMddzf+pg(bHNBD0qZPI>_k#f5 zi11-Ki|%bYaUkcMo3;z{*s-Jv6ET;rN!!g*aEA4RJGPMQzIoK}IfZn+?ybLV?p^ad zix%{|PLuP$v2q{t3{X{V0I}1uKga22b#fSJc#qS&iTS}w803qFKkP|oKWURFZ5JXcrxKyOwdV5ke|C3 z_vOy2u;?|3xuED?@#6S14&-{Y+2eCoY@OD$vqvvCuTl;Ce`x9_J z$}=>)Hj!69y-13@42QVzVvkuz7oUfJ4!VXZq=y)u6Tr=dU(Yq1)fA&oo;ci9i&0T> z49mf6E5mbd-H1wqPo5y?J#$f=w!fgyDe;nCC01QU1w^*ViN3cJG>70!HO!M9_{{yY zeU7|y;sY$P-94$}?#%qwpO9nXxsh|;vzH^U`B_KK`nTVFW1rDuc}7)2knpW{o_oYj z^F~aMs_~$k_v5sjnK>rB^z=4Ic1$^U=9!-!6~MHivLN#^-D~T3$oF%f_}+5VWRHR& zZOq)S$m!M0-I@DFPou9LRUzSRw*KLuYZD*54=)v}5qY6O`$o2OGJ>ue6;Vf`x{rNB zPB|+4)5}QjCna*X(tCc}bNfI50%z9B|4k8*1A6?*Ues`DFuvj(@V0kU>VEql;mI7) zktE;nXQH~T7xF;LH~9D5|07#X*dE@P4~HDlh;;JbG{TD>ixbsiEnASr+vfb{&d4$5 zZy^FlN@oD9k}qkXc$>@HUXJIimN_(yBiY_efMZwT*XSEO*ot}2Jil`j09Hk16bn{g z=ZD{9Kl!W-9?@Iav#4B znQ)J?XDT}>WXl}MJrdLsfP7^hxAPu`-K04!c;X-g3ZLp}S*b6O`TQ4g$kd|^28{)b z+6x}YsG|q{#g*sY&yw+X$nw#m4Ur8twpAFG+)mOM;1+2O#8??4^VV@AqM|aArX$iW zIyzvUPn4N(&HF8gWn`2_Rrr->wjYm`Y9nSbc_(%s5 z54Z>G;7-GML@V8Bhc5FA(h^=!yk~y$mgvcz%Doj$?(89Z`;s1NEr) z)Z;9nf4E*UYTLLGRz3Tquoz6tpgZq^uHE{2&= z;JX`INaWIpvnc{9i$Jr?cgL|+J}HX0MjI$HaeBLUYv|$~9C>)g*kSbuY7&N#tLJU~ z)jH9nMq2Q?u8)Ef_xbEi9$QlPi6(C9*h#G7doOx7b=`*4i5$1=_qGRI<4I#9!*^$m zmD!-n+H@Vkq)gz$8OwrseHm+?`+AmWQTA3ghoxbRP`)@O3l4F<3?o8dCWP=7e?hmP z7>4&W1ksUUkR#9k5P5)>D=pk%Rm=Nlk5`;sC=bbEst1s?Eot9y%ZX0{Lc4BlSc31i zf=5uEhOBU}##^I9n)8}hv?OcwylDukvYj7B4CLB-D$2dfql;}BD2VC8zY@k0YfqTO zdD)^mc}wuXIKn}xaL2Wm5IJf2-d41n;{2J6 zb5+_^(;KUhBk7UZ&l>OdbM<%w#=D=C`zwDMQp8%Uv9F3?E+~1rYAVjX>%!YqHW^GD z=Uv?E>umJVYswKZ(S5mvckj$_l?w~3n}+M6yqff zy@o-nN|cTy9*>ph@T_+@h=|2_$`yYX81S`Svu8Rg;j@I}#XYj6M}j6ZwFr$Zg|V2gNQZ z6Sf5uBJeUGm@BKq3g)C<@p3T7LCwozmBH?w*V_UC=&?*MgY9TMV-@R*mE|eN79FonJ~OaBymX}$visXo%T80ty19$OC)|Xrq}3> zzHXlDSyg*m`{s3Is2p<|lzrl;T-q5tf{GfvBDtn75ZWTuAl#SUbr3R5iMXH9gVL3W zvFMTJ;!B4 zT36e>V%%$b0h{x}`I~!ZpFLlXfxc(|J?0&A&!XR9D|-<G-};Jv zs|Rxe*+3i@d#6)S3Bv*AY3B_1o(eR0cPOf?URuwY2G912n3+Gu6bUzA9*!35F}fMS z_~OA!Ab3zNEazV6Q78f?a~g*Wqk;37=Ybx@hogSvLt2hjry{j_{%AZ5O`nJTjIapI zw;Bi`~ry)NuWE}tAc{At1X9d6{R-_scB3z%-oYR!iu_qD+jsdrVhNm*)>vi~f zDul$|kKrW2wyTSz!6IRD9A$ozIHbk!T9vSlZV%8DtS*T{S@P}&>G|c-JLrF$Y4C94 zui7Gt&*7`?)jvyAj3Xuo6CeQKoW?X(^!6ww!{V5PKQcL1nO@2q8=eTFdTvyTsnwO= zc?;;_IiW?48Evf@;V_rXy;Xs&!g+TCU6bC^L)p(%UdoI|F){^6hQ>3r9m#~pi0H!; z(I|q-_dX$iRd`^jum(PlGiz$ZRE7|T#xk=FK9M^P8jcFdq{n0AeXgfy$jn()-uJ`m zO-x)=u9>_B^RD!GNaPYrti!$aR`pp{k0s}xMv>HWEW+}J+;-r4LzJZ6)#Pd0G0nO9 zn$|sw-qe&+3Y^05r&)!(AqpwxUOeuXv#{iGbG%{wj@PISkx+g?8`mz@m_%AaDEtN- zm&K)$(bkEaRjBZh77c$=lC3Vico#|b}Y}h{I+~PppU!Iq}mGt@(7)QNBi)OCJE_=sg_ zyhw6ST4}H`lR$O1nol7pBy1b)mIvjibz56b6ffI6dB7-0br-tRA`@J{ykGx$ zAyQ!-0?TV&jD{ugbJ%?Vy)NW(6&NW)sy4zjoRFCZ?CtY*Ho$u2G+Ky4o*#H)hOF%k z{0BlFyW{J-S3$+`=+YjlN37bSX> z?|sRIW(S|jHCvmU;|O7M;^<_YGZgm~p~{^?#pYq50mFre^ix^uf+59_lUDGI9w@X* zN@`27Ohab&tEKVHJ>?@>x|}^5ywA1WD6F#p3Shy4PNFO2uDG?(S>?Pm#v1fcY`Vv? z4>2a5Lcx#13>8A&p9muluflW2gL(7!)}{-RRTzSgZD`KrfED+CUY{5Eq${loy1t%0 z;(xu*adU%9(DCi;lCSt+lK=P;`c`HEBCchB=S8D_7;TrwkC11|YQ(waW9i6m)BW+m zyy#IgO090R7#Z78_9DYaml=iZu|GhPPc8dWUm^3v{MM+Wvp=SrizjGoazV0Cf4}Y3 z=*4(q1iC$x$pS8#2t9}o`?Lx#3}sby`)il`cbq9%<>gj}HY-H6ERN_#m&yZO1~li# zXXvrR=K-$r^H}@*u$OZ%Hk^Mn&L%%SfUWVbNvrN>B@pgeDPyQ!7ztkEgY9`MEVc(< z=HcV7`apx>BIE>-kgGYW%WCBz54_F}$|8%<@KorBJ)@^nW|??0N4!|P@xr?t*N{F0 z1I0AjoSOTzU|6B6_Of~E@+@ggfN+{}^C+KD){sl!P2m$-#^iZ>bRTf}b{PmlN!&R! z4xlqo31)Rg=R#P)#OFR)40aW^7h*`S5s6v>zP-TCA(ez<+GF^}gD z@O1j@%>y}@N1sJ?` za=Xz;Mu>P0oP^LoWtBY4{(m?#j)XiIFsxJ zuWMQimm%9ho}*&VTvmFjO6?G%C5M8KR6Z=3J6x_y==!fJ$$1VdgjL4x$X|jyR7vl2-i#vplnl&RFE@WVby?b@+EkW`+Baz%NXZJmS=~N z4y$GUzKwJGyc?n*Mp3%vMVamp$}2pZ)jK{wyPDOpG2^J!W2n<8=ZG>V@W**l$*;uz zn;am?YxyI9Dem+6=KSn`kTc^sN6L~Rav(a=nOXAJ7I|or*GRcb%ilm4bjXe)jq&6& zK243e+ij@ME;n!)V>-Ra+3)l@l?UevSEP)E6W0v~4gBq92ErqB4%@Hh^FOPXw95Ef zb!$aW_~==$TY6ia9E`cQ2TPEI{08MwZOB93y~cirF3dxgM^WhBzAF|oGPeDDZd{Ql zWwlNOsV)!PpOF^H+GKj5HHH%ok5h3OWrN9fg|)0**Q6cu3@wyAFQUD<^!zoAkQ9yM4=&68n6xUe)~ceG5n zSH7QXnjtG9ix5y>{r)U&(YAUA55QXh?j9)yvY`w|9UNd|%CZQmBV@TU zi$Yo=h}Qp?TuvTc5pBwlMb4AInsDizs)U3$bEG$cMy1x)M&X~kf`JYxG$4h6tk}E) zi>G5MunI+U-Z8zBXPIZcXbIP@m(T0#PU8u``7Xjq#RXXt*hQe+yctlQeC6?UJ9ILN}NAwP=7RrW_4AEuX|$@d#KBI8X>*6h>B?mXGu>m z74*JU>&B0kGu}}VPcfg{HfH(RDrdBYvwmTo85v;0&-~%4T<*UKc!D2Tno1i>KJ5Yg z9R+ruyTTAQ#=E$}vymRw)sx9E$fnU?YNPTiReCt10Jc87$&4#k0YpLx;`?%CjRhg; z#G_VPzW!9@LRboHzKh}o95vs+E1bXc+k6)JSYKtQMS{fMq(D-hU2l)g@{bCg^_zhU zFlp_$K%9!UW!rb#v^XR_FL(fVK#0G1WonSIQeLaq&ewDs+l*E?7i(2@@ZgCbY`?ap z@?I*0NAKZQmz*dW=P{_z_Gr@A+sDX z5g9d*Md2mQToQv2t=_S}fNKd!Ai=4Zk~ZmXoyorp;mY~>Phc%R8VCsB%xZV2g1O|f zN_vQ@fEc~e`t=$93W4o*grMU+Nz<^<&+1u89Bfh57J13&zb92g8xCR8)>T;0_>>iA z8_O0zK_wjBqCP8ndY*98BZ+OG_POjsR%+bxxv3O~zvpYN6b^!i{v73MvI| zd|_cInEa^cMG`dhHf06zmAfdO>$VeJ=|%+~exjPVoR3=Zl2(C5SUpjo;d9RGf9{r?o)M zSo4()v=B;I#Di6N&Ex;%9$#8*nID@4$r8?1+5OeMs?HDKbrp$lVVl>n#+5G0dr>4U z@UaJCu5gh&)7o^&-vLzeK73LYQtj^BbZ@6C)OUonhZ2j|EM`dl+KY^&rRWg^O3aDt zv9l4m)K1)4#3VR)-&|Ri{?RM(XLK?h}LN5&>B6-ef{Ayc$ zk6M_^aY0fpDEm!ePzyb*!mF+M+-h@hU3)arb`|m}LD+Q1?NOGSuu1@zK`JfLwIGYr zV@98?p6tsta;%^+@US{;^6MCBJf^pwyDF~FnVekbWi0X|GDR)vSGugR!!f~ z?}VG-RH>~XMF|KGaL6$mO$WZunikW@G~acEvo2{`J);cr@U3_dN^&T^5k_a*68 zrL(%rmG!yHcPj$qo~*x48j}+oG2>P4qakLnwoRc+TAo;jDvK`XSjRG-bxs;`c%4|^ z3VWGsM@J6vUCVkT<&U#()qZuuC5~CW(gHl#Xjjk{ThmOBse;5PN-OAD66$dwNQ@_s z&+#Bun9L%|L#lwyg~h^01tOTVk%HU`q5T;QM@l63 zwRc0}v2ZLOpjtVWz1S3LS6omW2XtxbC@i3qvRf5X-U+ALVx3r|?#2h9>Yw zL5L0rhaG?^!p&o4RhBt}BjKZ!An`!hkSzu9K{zoCuB@|<;<=EZ#UW&-5>fF&^3c>1 zEF|_h2fLyEA%hVl+c4!S9=AwH!IXLYFYW1G#p#=F{7P zc=)?m_$Cjp1A*S969g@7g1%QH_O4zzy%94xBTp|CX)Ihtuc6yd;&$qotDWp=f=fP^lbC z20>`?)@<`yU{RI&rV)Z=1`I2@hG!|1!*U)&P{yH+kXp)nY#$@#HV^?UAl@7#g1 z5Ge{PtmX4rR_u>LlL(YQr@d|Dk8AXWy#mf`$J6V5##g-!PA#fc#~OfjJsam{z>Z>E zV=Q9}cwSI?_0?J+GD7W>-(oCA3iTpm)N2&JVL<4M3?ub?Gn$052yv`$M%_Z+h$9RS zPa`d!xe=M(&kM|IR9E#AJ=Fy?Y0Mgnj8=X-MxAb)e~!Dr z8RLbJj&zN{)4JaR+NZ_qyE6<9UH&yjU7swxY@L(hplhVGCH&&BNf_a(+iMdLIp2O^ z6kJ@wdlb3Cl+aohTq;~;c~6Cv9!#mSbRDzc>wZP#l~Sg1UX`t1Ks`d4OZ*VD_TxE| zEv&RYUw8fvW%a%JrNUakCWUSVIEykWnCmD8;hm6b95?XmE!?}k`fuOa- z!2-o1^Nxh4l+&~A9r?Yt$pb7P(?wNnrbUcxtY!T|H+T;5Xuo-uH~iesef;LkXd^!6 zQvF^8sW^RmmOgw9g|+Yx)il^HvJ;+q8z90akj&?^A1TjJ2y6WF&s5d}An`3LxUTod z;r1N}q8410@ZOXkzG;q{e)Mn-tXqm?%>@8S*eTZB7 z!PO;^ts!@>k#p1oSb580t!^W1X`t@2i??&gzgjqi0_}r`I5vaWc^`T8W}RV_8zgKfat05CV>b zRfqR@Tm+^Sk4wH@l#K=swUrT&{JD3;#cuoW&;_m!uiO&A(G_*>8zUg5kbDkMIn0}9 z;k*csW$b09Wv-)I`!zyr+rgf#8p^=DC_o)xKHjrcBMi9XHAd7d_7%@9&tEPtNtw(? zlBRQ>%lR3rlJXuu-oFaYGLTdChM$K%g@Vu4GRMvL&=sng4Sg?ZB?$BQ;V~&&5Z*~K4t}I>}|#0tf-uVO-8NwOenY% z0e@rcfrI=SaQ58WjK(2{mnyi)V_uRl+3tV=NwnkzLkPB<)v@v?({aLxM{np}K~)0& ztiDQRn}fujZS*W_UZl~{UYAsp>y@z`8S>pWh4s?wG2}2=`sxOOTNDj^uQ~sH2AC-B zyUIKcqkO;P)Sh$6RGmj#8a#EGU)kNjkA0d@Qb50?F^4tJ3Ozmo>2aAke&s2E#Uq-xJma13lTMFiANh|o_&)fxu6q^y$^Q}e&{+_DZF@D)mUVpQ;ygW1 zevpx^IKRK{a#;O-(&p(L(1dFbFXQ8r@sQU5cEoY#S2+7YQ_8c;`JgNv=ZQ3Y9b7_Q z9|anNgKczldwu@`(%70SE#&`jSIDUEE`CK=%^#8OYx%uN%zc!Dw_Vjq6^|)5>L$%= z$`5>h>mx%3T9BfilN&tJS?M)er9}GzT0gNEB*-dvp*Ja}>ZP(IMM?L9jL?OGEFMrQ z8U-q!7mGkx8Ebp?Ava;@5th9xI}iY~pbO@SXH5Zi7U((2EMf5$y&^Q*=NvsKr@hR= z9#!b#;hpPi2;Dh2r@mPt8pBdoZ{0xHZiZlk2*N|PGhp*36mOCVzY(%J;vRz!lBs9N zm=~I2p^uxF=C+&hNVNQ6Q*0?MJAC?z*DR4fp&MQg&3u6rn*9hd@0AwwcC1PelfFqT zLbxo4NHK#TV?Iw-U3Ottmz_u>;vrQ@bD?66 ze|vgC2F`@L=X5ZtqsoG`%j-WGDrbkbsA+#&)YMm z!Nfu%Utp-fpO5C+zhCslI4 zqgw%rL$dwSQ5^z8SUC*HVw2x8wE9RvepG=PdleBvY@yWhl}dlemr{ge{AWlhX0*z1 zeAd&`2NeHWzYp*CIhL*!CTqwxVM2$6k)oKSK(RyJ3A}dj0Rc>=m^VP~E^9Yv>)$ZbIfJcg{TkaiFe!Wms6n!sBd7_+s>;#rTmjo>lF z!-+R9-+r^sJ#76kxK!fJ!kK2s3uBxl9E*%hmsH#GdQV0GL9cjvqxqAL_R|YPq8^kz zr&sCCgi_Ffea!O=1C<_Z6(bQ+Jw#XfscF<8-m<-wf**{CWPscqsb&e4fRgH>AH0hS zC2g)=14P%9)*>hRttFaBJtA{{d+v%V6*8ouQ5Ev83>&U;zCH2HL4*0-nA+A0jAWe? z9D4^0?3UIuhS1Z0Bhzt!n0gU{Gc61w!U$K$h4rxJzbJlK5!(`pdwvI`jKd=p$VvQt z$ntHaXJ8^CJ&2|P`4+3(kVVkoI{kHdvJ*&~yU!}}Q8dH<##J)i<~_=DAtFF1U#zh6 z@H8iOR%1u}Fjbu5hgf zEos64Ea}nIg>Z2i%iPI)Me>#2a3;)KBtVV%PvIl_{8nc82nNV2(xYc1_aX7>iiTI1 z-P?ccBgZ_0ph5s6v!2So^&Xvsu1k37fU`Pu#VOUq&+xSQnl1czdgTtzVuTPKmb5?) z?u9P%iEv2E_fuIaAhr?3p|mK`cMx!%+U%*ho(0`JtARh9-|&jb+_k1!a=?3;p9*^v zw_*sGV_1QlLOm4lQm&Qfj!aOb^b%ZYj6}s>Skk2uI^>!TS}W->lyzNYealr~Ukx-q zKmRT~U_E=vRtvT6N(Fv9@ao~Dv`$OHKtbz38z)OTpiG_{O{CJpbPfvnqrj7tlS)=? zYdK=A4^Es08OZacWqt$US5qnIEoj;TR}NL_LS+pj;cDY*hAzih)p9Qhx`mg_{A?$2=;oQ5m+mc941On~a(A$BL_4 z1IPF#3@Ln{a2_%KxDH94p#@fb4bNTXucUBdXX6jFnv`7ZzzC4xBu&lH;Sjnjh4PP z`pO(_4%t}OJdQZ`ZlMMW6a^{-{pRfpq%`LBj}H^9XT?Fww`nCOFk0cPzz+dS%4XPS zNW!1O;%j#u!W#e1&oj@^x4^@XSyX|9slU>5#ZAmGDSBpDeKSJN?8g2E3-o@C65a5u zps%6Bcfb;>UT)haxe?pS;L2e$i!}=*A*`%_a*q^4fvimR+<%07f_G;A#rkNj&wYwEC_rgQ$O1llL;6Jq}is^WRN^|qy zWS9rwJskGW&)z2F^^=eJ=?$*t5qSRS@O*wYJbOBx%)2?geCA?i z_7W9Jq1>IIQRWFTZ*mWV8uvSm4m2*X!mEdsHROgW2=jTyE*BWNo^5j`eYW#6 z$2~NKoC)8jNynOePd?gbuO-UF@L-0PF$bP>Aw%mlAg-Hqvx zMw)JlJXwdRwVrvSb@N#>^HP!HJtRp5Y4;P(8R7eKcNol8N|Tltm2N)Y6RlCQ&|KLI zO~LP`EN$)xfgT+XMwFIGE5%l zYOeiF`8t>4H)=H1|K7azH&<$(Fkg3Wyukob9Hh&iaHc8nL^b9&T#c}8Rd_<&3wjpu zocX*J7G4x?cpJJ96tneK7=_Hb0)7j6Vf}dLd_Y$PQ5-Drl|mhB8Ne7(c$kOS1Ew$_ zRFBl?x0rjq#vO9RGy369np4`m*m>w-dNHGfqBtJ`^88FW417$AK@+3Uu&9Lwm?!W+ zzJKI0ukCGU(7Km&sSqx!qA<|bYV!CyaD?*T4Q);6&`>_ZUuZ0&YHguAP%0>`TPw6N zP(1E!2KO}&{`l}jh+_I~sEH|})r!?3X~#o(ko$8xR$1J5BXaBy$gRNFVz}`2IiAkw8O3iy)yJIMliyPfaz4KzGf63K=0{U9HBW** z6jpteV0le_%r%zn4KLf4bn4XfJOaJ~v zMBBh#YS{}{3a4DQ%1Vo(DjqRpkt;o&X=AK;{9ZgGpTQb2p+HA85@nB-HWHRLhjVND z1>SdK9!>W6qt!46i2qjWOga3a5UgtI`fqAML*kG+VJC3AJW#h~sa8g&H&k}SAVP7G z%N@nyQ2(JJUp4A@xtR)>*jO%Xx=vVNuulN5K8}`ess~Hg-vXA)e8bXGUyHR*ub$~; z-|83ZW-iYrviif*0#%=@epBul5pc+21$uaq;!$7=5(443RGSS3+n6Wh_&91F-vgWr zYKJvcIOeXuw^#meT@WHY&Dm_3&sXo+DS42pP-U;xf?6-&y*XAG$~|(kJa6sDd&?L} z+}i>xM|#=TtPc=fJbbXC-uCKf;skS0$1Ro%mM>=?+JJ$iRqiSd?90d5BqJbR-Ei%&`L$P!Z9KRDnlH!yeF>JF;}w2Rdj?dR&Qq=bAR2=j$~M))U^-) z&Uh3Y+M*0NGd{FScvWLv*e|DF8uW!0)@#0@#C#W8LG;Bq8n~`WyGf6W z0Oa%Q>pTlh9A!`9QYgj;LV{Elys)vtOTO-5hD~7}W@&HXfsMYu<_Tcv?BhL4PY_9p z#@vPHD)5lX0(%i=m}?zsY_zd(38&+&#eR2L`3A2nwv^RjEBq{Ma}4w5dd`+YIFpTy zU$}WzLH}lz10nu7$Q6hulf9iF^ThKJ`%J>FXug& zMk3?#{c>g>tO%ql=&rx|T;jKV4|~J&VpGc8gD<|f#_gkBg z>_67b-z@kW=L9&VNe_a$Z=PZDc`s@gPr)gM_Z9pxJerVK_iIJlarr!^Wi%1=a3qZC zd=rN@_=4v-U+_xF9u<+Y5FJLB=i_Q6s&D0!8c@bI+8sLJm9+jrXuAd+M-Zu`*xlxb;5ZHo>}Cuw)318wD}QyRrFoDdwYUM zWqQuof3!!Qqfa8L)`iL35n*i(z(|f!gd2Q5hBX1MxrFX@e0x?2YxHN*Lsf`KC03&c z;;MNok|_6nCSFKEyzLOu3zBI*RKi?o4w{6`oK@P|!5oAAfWXQ`D;EX0m|nXcm2O?J?}%onU|9A)@?udbkKv_w^*!%qX|vqK z0iq9hPVd);4-i}TCwe}H{8D4x%CjkS9ljq2%lD4 zRvL}`a}>SNu?Rlq&7LiIW;pYa%-89R}vx$u|Ms8RXsuoxMTL>D{@_!bc%k;4k5eDZFFEKkq9;lQLrSPLT$?D>1D1j*_c3%BoPWo2Ml^6jf&7gU*UvVNt%$vMLiCb&k2lCjV zsB$ZL&ixs6tyEb3diwBT8SDOf=Gnox4V?oRMK z^r}#5xz))n9*bhBkQlEJ^3PrI+xVaWiC}RmceNfo7;hBUaCw9;3zCIyKQ9W*qVPVP zt}gRl<}zgAPC*Q)WQu%#%;crl{Owcv;L;;<5=b; z57xX+qmCIc5Lw_F-h41sf~$_XdO>u12H=O>r6KF@-`oAfd0D4Eh%?1&G72pLF6hX; ztBRW}&*zXMl^o)_YT`Bab~zjSJaP3>cx;Td_*D>Tm3Ri1c$w7lj4RIwyd3=A0Y#%y z9^vuuby@#1ummhZpz5yN(dw9nmsOZpgs}qCQBVy3iq}yT%vH&L2Qw6zNELqkH*jT{ zPteTb$tqr@QKrK^>XIG{Gl)&LUf>;jS@1zOm~c+v0jRHh&Sdsv@)ay~{_=Rw>a*(F z@B^v5vcmPf%an&4E#Onn-{LKJz;~19XbKE=sS6)(oru#oe87^m&G>`miquueZ zahc|bH)ZF?DkD^Ascbau0Sxp#(ujL^VH)greb_s=vhP*FxaI6hfr(TZVi{Yvp;!1+ zJmh$KdG5z@FbO+#%`g)%6%qxwkv`?-NQ;BoBuRUetvK9&^?_EV;i_^cH-A$(TaWeJ(YF|$4xH0;Me2g(%gEnQu zhsw}&e^L}gVcye@Zw(eHUH5Bg`DMp)u(iRfRR(%*H?&u1X;&&beB? zz%r4jvd7qTAV8zC&_$|uh?@?^M+Je((=v92#lU+7uxyAPa}*ZnK#l~0t;|a|hmA_P z(Pkr&!_QhGn_?aG-qPJ3^W4bN5o2!Tst^s91D`o{qTJA2?=$lV@zIG?pzL!BLd&^VL{R zD+MlgrcSi9uW!uXWVJXDS@n=YR%NEZ=IfWJKz#PJUQ>X*!7@oN7@sv5CS>^Dy~xtE z`T^V>`NkG@M8eoSJoJWna?L05;aJTUJHLchdUaxY#^3Nw9$!Q?de-_vv`eMkxAC6P zmPk-BnHEyE=pepj2w?SWh=-|)TWv@8Gd{fnr{xGU|IPD6=xwC8{ti#dEAZkKR_Ez8 z?Z_K(T$rLTxhH(4*L0o(<^s;#!I_6C=&3vJVQwmOYM5X6@#DvJ^Tc6)+PS)ihuHDQ zy%uvV^WPIco%wsT4D*V(>o*QdK8B)U(__!@B?^^yR#Tp9Law91b7S=8?Jl`e4b^t_ zWW-2w`ZM{gjF`95^ENU+j@J{-Aja$Yu}w)YL!Wo!vAo_{c- zXOf2wYXMh1UM44z76E1^Ji#>mz_*q?j%nce6mg`aUW z@*M0Ly`@I)`8OuRD3L;?g`wpL^EYd6=dE@W=KD7Hn-}&YUDXPcA@N?TEFD^HLfW3B za=EmAF{499h6k(YWm;dauh-Y>>-F{edVRgVUSF@T*VpUo_4WFC{bh08^mOgo9hh$6 zu3lra(r?yd4a**{bk9-4Ufl2aLJA+|kF5)qJ14?;-l08fxaV&$CvbW`;90fi^CDsOn_drw_Dw*u+Hy7s$NULzm<4OU zF6M9q_rmIQuvBx6 zcYznYqgq|`PQ{E~;Q5;QFwt@d7P{sQzGtDcFW0XuI5fw=85<*VMvZ5@?Sah?^vrH4IhU-mT;X{3GYU10;#H&9IzELc_tv z{+HM*L`QM$j1(GW9Fs5xJd<8&#?Q#~B6LK}jBCjK9gzXDRf}yOKM3MD2)h}!~cW!bRb3);2TlyN}EG<1>f%tQM_rB9DR7$QjBqq3SP8W>TO!|PT@jlDp z)nO07laFR-OCG(r zf-s*tWSrgTcaP|(X1qy7YSFtfl8(>Uk$Yg06Z6aw0YKik@0r&`&9mO^?4J^{OYxRx z)B$^sLJoXQ&z=-nnDAuXfnIV~-J97nVj*M>S>WoCH6z8TTlK1vM|vc{iFkmM2Mjcu z5dp8Sqz9zR1zYD5K$@U&YL54v1fuJGGE-@bTHT6(UJ#wzYTp*!5G&!~er zUhS>UP?3nbE&7?^!LjBxzp7+W)1D#A*zr6gO(1i=y=O3LW8@vqTU2LO$VC48gFUI^ z8d3kKkLp34ICfvg^2ng%XCYN9^+d?+ALP`g(o6 zzFuFizYMS29Tl&7ce};W}!Us^_Kq%y}Yv*>GJtI7UsdC1-^E()JSBODj=~83lX_ZYYc=dt}6ns1lhE~~`-k347$-IYGN8EcZPnVZ4-{vGF zOg3iy9oXkgaG%TYy{5&F)e6^VF!$d3biUp9=E;~A&yH%4(>gOPP={56Tl=Z?t@7Ci zRNEZDgV&e4?H_X%!rM>0C>~0}pl^`@eX*dcS@vn|p4Xi@mysLVtQTuqsx?eK=TePM zggtZ#o0*H_RxP*kv0pF}N$l^0*O9%arbp7g#e@!e?Ut%_QY>xEtCp}xo*XM0Z+ni# zGy23uUda|AFspRaTdzGW^6^~cYSfFKPUaimkJYG6^}nXOFrg2 z%iVg6`kwi1v%eZW6h})Kwg!uzwxt}t^^Byoo%?yvdWedi(~~u_@}OHuiQ|f%t|NL- zGKUYKx2yI7uAkGI$vvm{nYeI1oskDinh{rcnMgZWanR3XLod^rUu(sMus_z)d7POK zGkq{O_AedFeiJ|V+*h<0Vl;{%^5hPha<}|t&_2$yxfkNszxhpvAA1r%`7Tn`L^VeRx zMy&&?$=SQd-U8d(pX;s$>f;X?gN_*JG=j9C_+S#&7 zcS}#e%ztKtkN<|WT9?h0)^!gAQvd0K7f&!)?SCnI+CvlNLR7=P`Q8blIr^4w&WiPfNi8N7B?AX?FnjSI zY2xA@1QAgalsSj5-SM>HW3Fq2ry1DlgQABz^CDRz;M;F0BM0;GA2spFw9;ygIIr-q znlrB@O=>q?_AJidvLHn6p%TBg?0{kOMI;BIIOtUtdZ!7qoAdl91zbS?j+Qy|tO*cN z8tT2EZ)+uIMl`Yiu19QA1{4nwoqMKd78vXvZ7@K?h|hQQyVvL&ERqESV?(?m^w8o( zH-LKt8oi#_nMvPcev(0x9_gSdOHmJK{H6034ZeVVSM-X|a;_MCgh-}nv80gcCFv+} zEGoU9POr#o$YTbg4aSq}6#)xUA$n4&NXEI$+6FhlgR85U4C4|mR1aHG3^w@{9&BBH zlS5=BRDa!m%rW9nI-nolC54#aPYTg409{{y*h`askjCiBGK0{)|ZEKAr94>EpA0bFB`cL6H#_Ht87cfS z6kXmws@t)pgEh;h!vmZhO&gbU!Xm5x^#G_?i{Lc_s z!!8qYwfMliJbFgshe@Z#W&TSTr_?k1_$;r7G4Y@wG&0a_0mAw=1y8IUhQwUE|K+}q zq@N+w#$di?>9SutZ66B^Q`jEMRI3vInF9(zvFREDz0e66m*W#gv)HRD;3r;2>H>^V z73dLSIJPHT&Q}#Ea;*=Kw66H48>2{L-&k>Htk0_-a9vS=EQB&L^ecQS9|$3Orx2B2 z>}T}y?{!adZnDytdN#^x9z7#@xi0V@%db>e5web!c)PBtK69ZNL#}%w-+`O5K10E0 zwc>*i#{8EQUQqe%<8c*xu)tI*92IBo!8{*)mH~9&P0Iu}<05HH!M}|htg=VNZP{=H z^kw2`yU1A^ecfrej18y81G<_&sONl9&P7)0rMXuLf4P&BgVwjf9Eu!^*S5ab^0%&dT!+VRZnShxOM~9Bm*_FAXO=hW zR--_O&s-U6ydg?Z^8!o|Z?6(OvZok5Z0uhYsjWUnLuD$r8g;Xlbj;H|tZ(DKIs!$E z^lk0C$jX?JU%={xu|$P1n47sdIsLXVLYQFgnt7;{ESYU8R>bgm4Ph0pC;T`YcNpVRe`}6q&Co}5YPwq2?g`PQt zv9AQ5jFkw9?-?yW=ltvtd!>-Ydo&2HM73yI@oq==++$c{RlQ1{c`jjzqJm_HZg>wz z|Gg}DKxW_CEjE_CJbR%Ul)^g@UIeT&dlYkx=K^TA{I(E$m~U(qS7E_3&*c0kdW_Oa zd!UzZd!khl`OzKoqL;+C4tWd1HLsqyMKWgKpl1zx_X9^CN&&_-pb7^ zvLBwGLtw4v>jfU+PMmsO^UOM`*+&00fug2qWlTCpymWke#aKM6(;_(UW2HwTc`LNW ztea;yuiSj*T;sg=2CFiy$(&~9kCFCBSgYs#(`$2{qj*BE-UND1qrWjdmvKbO85t54 zXblY5PkK`Llkhf2Wl7}kV9>c|-S+Isddr<5^dYDNG&uI&Ufsh&uNeEUj@j!|XKv_A z}e@Ehj8GLnUrho7E3A98w|V!g-%jl6bU z>B9gD(1uNq^?|(ePcNVBcb~p}F}&nnT9w#?-U!bJJ5euydqUbbijr=)hiV7Rv7UNjhDU?69z2wl zwEeJ>_97<~-tLI)+9GdMfs61!nM4BxC#r%*zFG22{CJt)Y8=x=C>{Y*|6No_CgDc3 zObCr_iVCMOH`~8fJQ08(L7_hQ4bA!2r^NnAesxdF)dp0+2 zjxJSw>pU4T5q)GkGZL|8)&MvhI&C<=5Y3!s3e(&pR^1+*a-qMEin)Lxz0hF<0d3`2 zuC($@v;_~eCqcFbFqHpJ1ft%?D*>ML&1F@ACjJoM2EF^?#O)Z%xy(3>EV55 zN52b=;l(8(VScndfM@r13mM8Ur1#sfL2Ji6>n9Z{(fA_5#h z#8uEa{q@#q21J+gBrWI|YaOgv;#+ml&Ec-9J{zBIq?sT-M01RfGS-*NT(gWd|N z(LeZ2DnfJvXm&^ba?3vTfqdMf5Qc7>Jf2?aKB_|l(LnEOqX_?3NJrTZ4 zv>wXv!g0O}@6ixiClPSPu7>4mz&mM;3z?%He2vj@kHf-3DFsc&=Kv8xMF5xgg>msD z4SFVYv(CgdmX|W|D_Rty6~7s2N$sWR$SCVr$0+lKAUpRn3;~ibU954MmVA0tG?YpV zJ=VREO5Edp&Nn>{zPNRH1*evIw*`(QO0(&=f{ywP@wTdseRv>1U-EpT8Eb+(>#MW%~ji zA~MQealXc{h?hdal#HQ1tUgonS-4`W5Gr(b51Z{}u8p7Jxje56+LdQS5eP72_FJ!v zS4l%P&!B~wnotR)>;Wu$DJW8LltqAyZy}u}1XP||{4diE{BsukJ8o$N8N8q8QpRO2 zWBatqgh?wHPJTK*;*MJh=WWd?w)9m2)G}^-E`Gj-gVm37IaBm7QBjHcxr`O>Ly_8W zOv?SLS%A*Z5!O+Z*UGT<=s|-;t`G~{DG?X^Ei7Z==c0ZEoYFPKwgIP7!#abORys&w zEatUuSbZ%m?Q}cW3m>Y#AHbBI$866y!B>xs_KgR4^<9^~D}RkgHy6J4nfv%n7-G^$ zV&}F)ZW^F?qn-`?w(O}vqbT)07X^PC5^aT+zcS~`I!IsJ@)|U+u2)wN5{2kh78yaa zNS9XIqK53&;FV$)l|GP-k`}DMPAATFn&AYkG+G};YqU@bhKxebmPg^YA{1-J=TNK4 z3gx0fp!Wxx09Z17*IT5h;mQTRUvhon{iEC)TugWPrZL>kx>m%0a0ECeX(iyhO)&8( z_|&#(k}X~0Sz`dzN1693BNMl32(`Wg4_EN_NX+ZnK(ZFSX2Hp^kD`SK6{Yw)F5{si zMM*8PZ`~{2{hcJP@VBb$GHqr^(uiB+t9kRy*dS;AAP!*}Wz0M#+SXi4_J5-LSc?EE zSV$;a{NryZn=38Qw02<*s0Q32)Q_m(I||rP8P$3VX;vk~431mrUsvWY)r!xY5&>bd z?+cR|Ydws(mtkR&b+78abK?=)Z#@tNy}`siyES|!D~35!W4=Q@ z4DRz%%UhU2$bh#GK}< zF7V}i*w3stv*eMlxfj2O!fF=QoA=5KA?;2NWu8esy91x*H#e&Wc#~>)3E~OMqmI51 za0;ySu!O~vXoj2-_l9QvhQZ+NSrc}&CZ>1v1*o!hCC0wn@Hj`aKeP!gqbdXm`ydZv z^@hbhAc}*ZQ8;l_8%u^{o^QdP(Zh;Ye(%e-&n-u?vL{V}%btO;cNvmPzLT!G_#y1^ zspum*k$512gG_{?A|pgTd_KVw!iK6`pYLvdA{lP*D5I)syHfbxI% zZ>C3eUf;gGS}q-we&*QGYVUkC4I%SfJ$=BrfbjT&Pyl)pZpbg?209$+7489hP~kX7 z^WPSAFzG8`@q~Qipkwr4-JU$hy1&?x&RD}p0Sz9AwDhlgM$>UBKQtL|W`Z*TzH4XV zFtKCibhSmf11;GqVtW4k+?&Im$ow*aF>B8AgjZOthom8_1k%-uVR6lA6MLKUjQXsd z|73WZ(-_XP7cO0|jx%DswdRe-@=SVNg+1U~Bfll>J2s`QlMjd=Y(ytexo|*rmoOLO z_*Gtso}`g~rdAQws%8)5==BP(fgYW2uzeywg}_N(Lmq@`s}?av!$O7AoNII18uKbf z8hZ^s3tAf8C49|RGDKayJQ`^K+c$UBkR4@Pl=VL@Hmw@ATD)uY;AjLljg z!3Y4ybNReQ4lW3Di9F)Pm?-iLMg$reHRiZ^Z)JlcIdDm%O65iJxvGes)QGftLL`&r zW18I3gC6^%pP3$0kd-D9kI&(cAuPINq*X`;b8ni<#irIE_nQVi;{5BKItcZK z7JC(YHmD~ks)f5@=q8Sv_n?WW#lTquKTy6M{bLa=5w_u&v4mbG=9_)rUUyY2B?l1^ z-I&S6Vl(oqhhvX|P!GP2SH9%bVezRTB-` zSf2Ih3N+Nj2jbNzlMTZ`U-vgWEv@2T^-PX1;Pm3nonN*sS90GY)f{gF#^w3dI~og; z`qN4yR$8;3licM;JN;-H7jh6nQ7^)PhEe3b>k(O@$P|jRrea<#{}d+nc^lJ;&{SPM zmlzLtFp8%ZilyyWzw(%|9*PVRMNuRwlT_9gHYSX2!lqUIVwCVve8jl@xQE5+8XIF3KP%MOW#6W+ZD%snh0$cx#R$qKx)4m2mdN~ zz8h6?zhc7jh>sLg=H>H&efaFPfO0)w>2a07)11oA*E8%k)<)j+a9{I$CXbQ#<$}-1 zFAtZr&*jmWk7lKhY2k%jz4u$pb8OF2+38vttI8k~XWGd2Eir~j${PLp@O`bMDNk2h1#d8RtsB0N?BNUc^Ow@6|kQ z9@^Jg^0)1>?=krDxoR~i7g|;KddK;Y^H#bgy2%Wx3-4QGqx}lSl{fU5$EeJSsRYsH z>H!X}EKuH~H)F%8I@k5a`VU=(dtdhe{|3HDIYw3XU2wIxLL=Y1M)Kuz$U~i{oUt3x zbHIaQ8uxkDQ!2F1up+KNs6CJa6ipH(1qct@(BLEeOI})>t>d z)^T@p!g=QW=CdPj4+7N54rEXE2md)8O%~CzNe?jnRxs-rmU1$iX zh7&_p<;OoK6AWfoy`#C1sP<*vQ1f!USz(6f9lIq52h}QkJ_VF)ZODs!xqI)=XX}kt zER1B5w4P59T+NXzyl5tY;BK+Ddve@jEm4! zfd~pa!|gcjc}J}z>wBf;RqY&_1?%+;h1h;e#VppAd*WWM%!7O)zTTcf$n`zA-P?4k2^C=xJZ8gZHB^0=?zzkth_RX+tS;@0b%FLN5S~_a04v*K-6; zxhL3_Y3miHp0jFIg(F{&R>W7#`zDJLISQ*A$PH={Kj8S$*_)U+$azV;1`Py5a>Ymk z4hH__UI`mh)0#~s%$~SaiM@fgM84eHy|bD!t0B6@RwW5g3M5h08q;V|ZPTaZxc6oy zy*+ys-^2S`&U`eBdN`3o3n8_#7kU8ui=WwJ++wNoZ(5}3X*|*AH$utgdfxcSNB!v4 zbo*-Q4W5BLWS-=C9>NeMQPeVcd&YrzPp|2-HQ4FxZ=|EupWLs?w}F(({nEwb#g;xM;k*t zLc@FRg08mgYv_u-Kg&Gv7=wATw}E`)sMfo=J;=3F}uZSNSFme_!Q%3)1#M_-Z2*L>A0Qrch=yL8uXwp)6Dt+-vG~Utk4^D zx9|&*k|&1{;-YkP2-VJnByj<>Q==Y63cJ3P!Xs6KcWZ&Sd2d=T5jOsxF*X_lns_@_ z`H5Z|r{IRM_AIZxp$@!;+_UBeQkU5@ytSDV3i#e>02Je4Q~2zt<=|(wxvbH>UO*M@ zBNs1p3G|{pyr=7@yYrD0Lei6HX$0c+DC}FDkACX9|DdzSljBkv>;eKF5dn|j{Mn=h zgT}p}U+GM}+i2sQ|6m6NjjHj6@w&#+byWN`%eGyjsDVYIkR7LN z=C~t)JNC**$Wc9nd6sG(q@9a$2K<@gQC=cZ2ZXW%@!}4hVB*gG-VGT;SR>*BX5G zfG3vG8pYUm(yMNRB9f?SbQ8JJ;4^fsQe@*h9zxq8B#5K_27dW$$rtIIatm<=Fmd$ z6&WROYsAbVw*mxkQ2LT_o!mOp<)6E<`tbe-N^Q*3u3pAX0cW*p$TCh^H8O;0UbXl` zT6z2#VJ+{e3>f)n4YizHh})x{WShn^J<7PM?|`jZP>Q83UN(Ff94{3q7Mdba+mW4c z;UFguP;=$OEWK2mMI;pqE@Tx#1Tb-Ba7EyRDMGPIXswW@a!z)RhU_?#IiV|{M^Sj~ z{UH~$i1m^v2-l@Czx4;YjLpzW5fWlBucAm-uimI<7@tQ~IL@~!h@Gum&d6VzXUxK5 zTTl+!t@PEa=Fe!dd&&sDqOamy>#`L)TqP7%7iy(*pFnVbdOnQV-Cx(x zYAV`C2-u*B&6#|=-96M2p{3efS)DC^sIX2YcrtW-DfE;umn@Vq6~7wJrlKoOd({ap zJV{T1D}`WYtsV&dV#D=2Ls=o1Sg4`8P%!b;l>0Z@XJLCqAn`}0qBmbpq=HOkbpG3% zNuovA9Wl=n=VQ+^&nl5Ea7@;l)- z8~;pQ6BJ7igiKQ8NL=iYMbhh7yOtsIwCw-7=2;Q6tbH2dAR%9fXH4ZDnbe4I>xf)j*8AZkr z`k4H%rI7{30@B1#W6tq#rHq^z3^!Lvagh+PXL@>o8@AFwEF%qr7x--%Zn&S6wxA@|>uEb#r1tvJy780HuX$gs|(U$#Z!)cY2ee zKo`SHA6avRhzO6B(%J+f(0vobQZhV&nogW z+#;=#c@oL+B2UboMQFd>-;uY69&(jo27H$T$1TLcE5b1mk$WD!?xg(2fwI6=Lq6BQ zji5h^fL@3d#$rAha}?SpU@GpVa!qfpy}*0xu$Pi%#Olk%8atnhYN7+VWKO76YJLx^ z(%KjXI-g5aw|-f`>t5wiD$9aLHS{^14AlOr;toMHs~!7bFYpB3koU=b_dbCPe=Wi< z)~yg)jexM&Q$vp3C-;I$O99m_XguS5ag~9LOKN!2vkR@ z2{1oNSEJCe`9Br`dA@n>Z9|{u`R_Y=Bu+1M#Yl$jhKB`nnfPsr7=Gt` zteiPLbKkf|M)Pc5abXqwn7iY;83G1+@iv@Uc<_AOt6`M?bpC-}f0`lCmT#;sEY0)D z!epM0dqSQ8%-PemXSH3M_u=>WIdt!apX=h8>Yg@&G_8z2pbp3C#*7R>uKUo;D_s;u zG6s`Gg^M)2KJToEx*9BGQ>?=1xA89$UN;DU22!S=)*JbekWmiQz5pKI=rL@0)}nVd zCVr`9uqyzZD3uk^Y`saGE6QCK&4Y-HFbs?leXiR^6XRmeBGx=$a18!p`0?a&4CM#S z5PMrIQbMg7w}-I!Sf(hUm-wOKWVYRDcR#zR#_mG1NUdJ&^A$Yf=2eIXC<1sQqvg`D zCr}#R?!vqx-*BAEnA1CE(MHIJ3Fgy%N^Q%r4Lq&*N}gZ&HfU4SVljYeWi2JIc&vLCMo~XM zgLM+_#rP0pbX(W9JS&P;7C1?*jl5k!JqQVwhR1D6w z>N)fD1?S`S4&|J<)*r}&^Z)Z1b22xLh{h@t27J{NR#%=5J)~;TS-@w6a>T+y)DTBs zn+%7=u&tF*hwMUzgaF9Kwk|}D3@0QpiNh%pLR!>o!)Ro9b0d3h+__l^LYU}%ofk$r zM-SnaIhSF!1ueS9)wV^jqsBJjcjee64OVvTk$dP%h)57kru>B z!;6_APm3kViaU&0`-n#HtT@^ixJPlNdEYtWurQn@&Z+%~O4jOOi;%X$2b>6?^@zHX zLxnYn!Wh{WhOKCBYf1dq5Na@XbH>-Hu(s}D(NLtQu+r0GW8lCu&w+oYgqlzXul`7d zn_eIVtf)YrP*}hDa-li*w>etaO%WK|rdWMCKVk1EWRkYj zP*vcBw z!)U||n|*p}F?YiQ7!@+i7@@vUB=1IVDLf|ZsQB=F46a%;6fg`Jgm(#lGKMsnB#PpA zxD9C_3V%({C5skW2-3(|t+HHQ(T)0jZdlJDJtqGk;Rvrgbx58*3ifpbx~#rB^#9rh~2zdJtbA*j$>L}SPe z_{vbV$VW4}Hj?FpfGsJE>h?kClEoV)N%x`q=2ZmPT2VMXf=&I#$pp zah_)B9-0b^%d)Ak)<_l((E9`e{-r4T_+XQ*=914jiLc_;qa2pk{n~+Cbxj_z@ zA>FK4ZT@ZW#N)`8hIV~&_>tdwN|9RXi;ab^T~K%7e5Pd>%-gC2SC1B-Wil%02a7C` zSAjr)Br4=nDD+(0Yf)HL(8}!eNTw+hJZ*I`1`5fEM+b#`Xos!Ge#f9iK5DHP4?t6x zLKm>+@A_EB;+Y8XszpQ@h4ML%`%6`H>mHUUlY3vjK9+)061=b)_qld1$z+{glnBUA zyEBUEf9L&NU_rXd;(PwwqChoG`cJQ7-#pmdmsUc-;TV}TYsyp|ttt7lkm)yNEmHA9 ztnB7roAYJ_*5WOM;$C@H6mW~&v79#z;4ZSzTYp$uPL)6G8FR01Fupt?wFYSL`YmLl zo70De(BVFq1|*?pB|SKj2bNdqt5HNZ2M2ivv9!D zj?w4U+Cn(BEG_|7$4R0a`sv2p^!w2@Y;d5GG%e2<__27zL zgz0)uSfe6ddn`ip!dpiE)`|8Wma{#?Fh^ZE9e z0zf(S>sTE790&{SCir$(ZQ0^PTM{eTLZ-rFt-8F9GQPuiKmf=?z3xH9#ZCFaShTpq zNg^Ryu;L`gmpTsLllaPZLD_(Ukez}&hXe?EUf`wArbee4?@cs zGtN&Ds2OqL(<#4|a&|XDKo0_2+RSyITzhlaC2l7@T8cD^s{L-g7L*Hxl`5|x2v%u$3OC~XcaMg(;W!+KNM+=jWGvs_Xd z-qB-G!DVsyst=Sxut{1r@MJ?WuNAw&|C>(Ku_J0gI(t;@>tZA#1GwMpzAK{5N z2u8>-$L6eyv1NHiJVNqpy75Pa3H$k-Y-jty*^=woqT|VugrcD6kYxfQ!Nb?jSH9rT z%4f6hvKF4=hKT}u4nsWN;7oc@yHAV_MwIg;6;>o64-K)56ELJe!{`7S?^yuDutMBB z89}wGy;*aPcMe5NzF!I1{hA|r%{mz(ld1ajYA1ZB@!}X>uqjhl$Fc|WI=0qMx)IVDM(a+@ zL)hLUth3lRg*Wafuk$M!y~7ILU~yLsMUn^oJ|sg%e8WYA1x@O_A^Z|1xG1zc{-)4m zR(VB;*C7#lDRtF^1tv_z<@N4kg%D3my8RtozTw^txsvV)%&=V={Mg##y!-jG&}4Xx zrQ`>@*FdEj1x}m+h80q14bLU^_l#m@tKlQy*4=vRd*`iD=xL9FdoF~@cq+gfZEW~?OAo9GHvoZqf0dNpJqV|tku#ciqtFD;07ji*PA%qF1hasT z1Bv@(cp7xd=W}~T(|H~wIxdQlBj!aKppNerhHG@ozqj@@BR$u$g|1pr2!)|Vyd{o@ zfQ<;*WX@v1?q~}fNel15&->|$idmK6ne;~wqc`*tyQkf0^)re;&9i95qG(N~gJpP8 zC}oO4bDm1?XLzX#tVhsmk0i>1bU0_Udc)H$C6vt1yuW&+UI%L>T_W$}fuXk<$~(Na zyg08(2#-x5rhpvh8}JJcC&S8=9smb^7BzR6jPk5gcaKi-k`);AvC0cM#`JtU+)~i@ z@afmF8bOcewWZHq#eKznLAbO>-W*L*0q{Y5UY(0vKc}!vqhs$cvF|c6LS&Sx_7VO_ z1KJ{-mupk%c>cKt;(@X~&XAG^i)Sr3MES;BPz@R@!l=C58eT+3&9G=-3jVr0tInG^ z#NuN+&9$fw8O3Ouh7yA#;niFQB#r4v-->Z3?JnNJY9tt&d{~0OmaDe>iK2T)%QIs0 zIF{Ec^Ks3h8J!TKg&my3QW>VA>g}zbZ4%^1_xt?)2&}k2cE!R*+>RjS7?!_|qPIY{VEGe_z)TRp86C%lWx6N`}P*O}3O!QtxPU z2a8*rJw{&9(6l~qTNu|F^tz=2r9y6ZLUeEDzBdYq)_xSx1!6%eAe+BfP)meW!S8h%xdg5x1gjc4oYP#NLFK(8Z))zn z!(uGNJ(N2fhL8~Ys${M6FR;KgxHVPyOM_IhgevyL%UCdbnO6`gO)G8|Zqjl#@)0}! zre!)|$R5EF4$5aqvKJqB-yK-VilJqUvOi$_PFUO4n>{@Z^U7YNtDt-a< zwFW4Zy!6Z2B`gwkMM@P*0GxZKWq#b3fFhp}p^MJ;(!z>OD0|8Ou*!9Y6=I%QB?J&4 zY)4q;%NOOGC(ZK$R2p*(+}|Qm>b}f7jxj8EQ4vO$D4$AYh>jtk_T_bHl@tID1id_e zes`w6DpBRo-edJG@z3V~dLq@6F3UY59};_MuqlNb3|*;o99b;rWJG`z{N-6*ychwD zbq+Ac-usF1yu6XMLmI=3ELL?j2wcegam_xA#CdpS2M$s8H?8AL_%x8pGJ#fTt~{VHJ8Zaz23B40 zo2+OoA%9n%xIZJwYmK(RtZGvEQgek-weOBX>RoCQlO3xT4_jiEFcY zqVfpoYJIpbF8Rd+rkL_UmmNRsDG^pVmhjE#ZExcdd@CM|m;?EqW4ET*gb0|FPl>1F z5xNGgX`6iKY^+efDj#%=srmalR?gdhYrcsg!J7q9GS@w;IQD3=QgFk}mgSK{R^rXE zAScIHT4Xm_p8p<(^PcIwv$`0QmX$(s+no<5JaQl~!TBcKY=CQz^A?n=(uE7Z1+5iBVjkB;|NNWQC$n;$aeCbmh2#!_DKb+$-9+=edy7%8OX4Q2m>{_?wxh8M^{ zz9PU>s#kivgFi9${Q8V(YvkEVtGLYkyrT>{{cw3i4U|Aw~b%OwqBY~S_V2#t?Y4Hk4fpUU3 z2fUucOJ8rZDY-4Me(f87_-AaUJR*EG2``!40ii*+67z570x%_d@0}9knYEM|Etkbgn4JGCZ)to& zAFkcHOrStR5`V67waN;U>mwh=j~T0(-g`%31)rY@*jTG>n~_XdmS<$?_f`ln;4}O@ zQjyY8sv>qtxM1uXJlDkS>A^HC>K-=7hU;$iz1eS%fjzf~j8eFWU({s}>^Er;)BdM@P%Ng8Nacl0w z*>A3Z)~dCVTVUsYoCvi!mpuv3CC>!lIZ*z;a}CI+%L3Z@y%f1X%RIB`xX*W1>QyLS z_Ka6Bb;;k`m{XA+Qi=rSx+3os%cC;+g8bO1+=$Jxc~W?cv$*E^L>nH~B4zKCbBj(0 zg_Z(~=kd+aK7Q|eDNc61)J>3#+flT4rJima2d9b796ub$$#CJcA;T=(Q{5&qRcm&sS#<`KM9(sfu; zAe;XAeJ{vYpJcVW5;Z=}?l}7})H^ke;;2fPRG#Gspbnl?DM*7^!yw)qs8jw=6U$8$U z>Qb2e;HR2rXbSFqfrXE=dOtObZiT{)^Fu9-A}HqEPkKSm$oaRuV_358t4R79trq7% z45h7bM&YSdA%pu%Ry?iIbN;H!{Kv_v{E(5=JwSb2>2K6e*zlQkX#|yNO%CWqem$7q z>g|0NWhyFpYk{|9l$>Z9MwHP>kg2#{Whw&C$_mF@)J-iCt)-b{Dhb1Z#pM-kN1S_( zEgiFR^ReSfXC+5lUNkD8>H ztDD&^6_%rnSN|rXv#_;eqoG%#f4y}1mxZki90aaRRaWaC*Ctn3l-r2pj_0M21%DGQ zNwA+hggiLK!XCtHn|a+%)nv}W^v1R`gn5&wvTTZ36h%3N-bGqa10UiHtV}IJ!NC+~ z5iw#RY00STtn&%MSe7-%yy5w8>dIIY!RjLf%P@<_+S{VMIO;8(^A4K zLYs=Pu+4J?Gxixwt|0;<&*q3iOd2`l8it7|a@H%|P#l2~`abDkN=Jzm+!iM>Yx0l?KGVnK5byJ-UFLZBOz;`ftHJe@&+AV! zubZ?Rub~7bTzx$MU25qr4xL!3Hem+|S||iu**CJlGg*9cx`ifx%W!qMl8^b(2uEUG_Uh zFLJ>8v$0HLr>`+y(*ok04-KZ(SZpt4lfv1w(f^<^T6j{NS53Sb`J-C^@NO(HJyorQ zL_|O~lnT0jnHL%PgeRVPcLb^N*afK2S|seh1qjTssc8{*6)#R$z41rogrPKMQ5iEV zjQI`_L}a@NIOQ8%82E^a2mCdQA`Q9Jpo;lALA3JcP%tc@hD@LH$M|#T!}6JCz9y>e zovSsO*Aa}22WvneK|^nN*gT*2h!wfFe5=?uc4)M?H(c?k2B(}ekSZz)(u&Kj5FrG& zKtgBKUL=H;k_dki2@hIU5_3R4Ke<=oerFY4$2}rHmCB_2Nyl33rxTxZc=f`lst2Th zy7@DnHcP5XDy;KwpiFuYxFID$1Jj3*HM$R*<@2-VAjO<%;_(Rx+puw8lvTM84s~xMy-TKrC=~`B~GdiF{R%s4r z7=-^X{Fz^pKmW)6l>9aS&A(Z`{<6S(jyqyuS2q$<^21be*fPtUwZwDu0kS86X0>|&} zy(4eV&;L<+|9&>??7?M~jo;4m4K#2U0w^fl(POmt6!z85mH4>>pBg?98zE^ofeQoM zE(AkJzr*V_tFJcZn<7k9qzEAp1_gA}=aMvjQAl`p+F1Aj6^!K`kx-iJeC2_m&4jzb zvz3BR(!#R7xv%u7f}aN8g=Zy0(ryrRWfgGCo=7OBSI?@w9&DK<`20y&C3WJcSM;3U z7teRdU4_Zbi*1B;WD`uS^BAbdk`-aJykE4?2`6)F|UF$VX>hvHb??ktr} zpL0hfjuc~#Y)WhNMIKcy@$Y(c&0*ZkqSZZZ-BjKRgZEE# zd&VfZI?^JAHB;zXSW?B8@>-TIQf5m_CmBM_cSta|eg7&fmhrE0%{q_R8m*|Tu)dNIfeZ&|`Td7Tmkc&{Ues1BW zy$}ioK4=;t#y-()GuDv52WySbH0Z=AXTguqy5E&{EVxr?$rvj$sx#EOyLx$DP&J;j zEUT2F6;ybaJhxK3IE4-nU%z}+-+d*S+W7;m<;iD*gz$`NTBzv<`5ef1x^vI1Of7LVZvRYA`Hw<6sZ3S4NYlT~0sNnL%P2?c# z;@?_n<8}teSk4Ih&Oe01XFx*%o3!T9-qgDv4p-?!rQLvIU|2n)b)EZ|qvD}nAGUq8 z@CSK>bK6B)Q_cn-y2us<9p9tnvfsZ=E@;q#ClA)N{bv7H$Qigl6-nN@pF{GK>%3{O zOb$5;KFfo7Zt}`!C>Z%!5`93qMx540)wjQq~pQL7XmngYKvP z!Mu_@)t8(LCo;#Hdh~%@TiKjxysyqT=-WP^BrVu@&?EZraNf)GGwgSWTxI9YxiGE( zUPikF#deoorHx)K61|4&Z}arA8trl^Zs)a^QwVcXkn@tM2S0|s7I zpUBcYcZ0||96m9|DEYIC%MHDqB6`v-rE?Y?9!n{VgN1}>f$b$<(|*rl5e%uL^??FX z9FVb{uC#U^@FH-Q?61`scWwlYLKg%a^A@XBy7kY8NG)O%VMXWip4O-v`=G`_Y+KQe zk%`*T$Cgv~e?%3y&U{ZF`+$Ydp9jYp#_W|~%yAAU5JyC9z`F>7z+R++fSi=EIs7%<_zzhncIc{cH^Z3ImYU@^7D=KKBzRF+2ZZT49PYR(AUL{6`-0!Qm_M%~hayG|55ICgo2#h{P+w#k*;#!qf zr^6fF8LN?C;+W4Dy!r*6)#!W9S0^A*f!zvDYRsR+p91Ds2p5JVO=MJB>&vqgRjtEg zJxMpa8dL#ue#|HcS+7NAFPcNpQz`Npw!Rjgs$;~Sg=f>xJ{eR;-m1$As19rLNJlTy zmU1h>I8p|2S_xi5*#p(RnXWR7z7C@|&7vXnk`LQMCR$+-pWJR27&+QUtaRBc$SE;T zM)hcje}i(IR0B7jH$Wc+a^V;<#(DrO}UAXVMY{!N9loRh!8=Wufv}LA1)DX zib7YWj~1Ek%j2@XUSF@T*VpUo^`8Jm%sS_zxnU}@5_JQ*AJtt{`>## zFUz0(xu2J>*VpUo_4WFCeZ9V3U$4K^>o)V>>>6puFq=ka7*T4~Zi<>#CgkU^r%+#e z&spWH$W`^RX_Kr~-$wNe3V*xj(on-k@r%({GpY!kx9*;&ImEsQ7bgc>-nLO~u+u1V zw;VdlDLr6aRmQBZ9+e(>d;W5$=Nk=J+9Pc2p!FBl2eaNF?wgfEyL&m|a~8c+1?DTP zWAJtos&1fQ{>#m*`VAJG=(n{SRL84SZyxjKrl)h}eat6W#l`?NU_Vm^w|=XGar*RJ zpB+}bHB`v0ZyMH^@BmKl#k4fi`p_C=F?>h&R3E5k|!jg_#fcwmvWZqw)RGb{wRI-7TiGuV~~}vDna@%k(tf&*%?l z)-Ls`yNZ2kH;4NP3+nyTJ@(&?SqD7rzV?sk+d8eIM=Q@wQ(SloZin~8`h+pflQLld ztETtdQ}3xbX#H;J5BCI1*R;S7dBXgjSg!#Vf8qmkYnW?Ii+OsEyZ1{QDD!XCSA8Bo z^6{g?26@IbhQGWZALC$i0-qnP@`-MW0#71Qv2#7{#gOWBExoDC&j39H4Cw7QuXw;B z*K&OwarTcR@x+}TZuMm~$foXrt|4##`akzC$Y1@p{T}&}>*H_zQTc2B*556E?oa+{ z7>&^z?(m{t^cFll`@CsKWj^PNpi1=pz7)ll^+1-G9fIE3CitFa9a(Q3~gd zTj#Cx{mf-vo2!4R)?KdZu!C`&v{v%8obi1=zMN%S-gL< zd#tBrdd_>&fYa^L-Zm==GtukP)B0ZKnc;J|<})pM_+|~E$-g`H(C7_{e2gOxmV1Z& z9ori9ql=#ywG zr5b(Iwbi06*LCb6Z1h}w0xXO-Yt32B`C!rs9>$=YR}jw^7yKrapL+Yyc~e>q4bC|X!AvH zN2`=Qy+6nmzZ-w(UWM6m*jscZkbz$BmW!DkAEGGC78+dlhTeWv$^P_48&8wi&YQ0% zssmFVkTs{7H9P8F&+lv>`IZ)--fajiCA){fw_ z+_e~Rx4q0mhz}2`NZz9-E<2QXG~fZb%j5%#HfbJ3#5~J_lk}QKrxXkyH97d`ki1>) zZh(bHr52CmeC~}Ajo>Ai|5fvY9r;(_AvWE&s%>`B<=bG>L zkdaMhit~{2VbHqhcDNp1uS3v7j+lMh75hMW+ozs$cfCx7sMSyM7@oJy3+-RRLws^( zlA-8dJ*;1^uh-Y>>-CrA^{@QnfB1*G|8M!9{paUp{gLngsQgVogopKy{?s3muh-Y> z>-F{edVRgVUSF^OEUp{9ch*y=)fnZB9cJ10XkfnO=`c>;db~}|ANg|<7S%H~d{{qY z40kuAw!L4wRa$imKd+XCEx>&*r;IE6vC@R%znPYxt^=uy8Wu_n;!`Q>vPaO8zV#pt zcUfnityfs%Kpv{^H|wdfPXAb!`7tLqjTf-+M%?)bixfSO0f%r2^A(o8!`%jL+w zJ$hJ8Yl?X^do|l)Ez{~ot5yP9c5p6Gr?tGmjh2`lr)W`03uMA&Naky~%SsKdVM)gS zvM`Ro>k<#e{9w_shSy?weoD{4$T^$G^3Ae)zF9V>x6nL|hgY+u*DkMhY%bM38N+%M zEB5T{rMj9y51t5EV`=ewZcoct+(24Y%}YW{x}-Nq3f3!W zCM$!s1y?L52(6Mx3l6}ORd2ufm0z>4;4k&E{;ogp`{d(~{r}|CZ~UgyuU7MfNpt+K z9brE9mvQ*nnS7x40NU&?H}UcJ{Qlo3UwZxff5F3n>8VXmhG#^*T4mq<#p89$Cq-Ty zaP4;7!fPn>dPwf4d+D4XsG|QKc@99r`Q7Plgk}16c*RlSnYv}}eJ^}*dOl_q>&Tmz zQWf@=y}qN~!;mk!oIM^m%j070j%W@HsoybHcpgz5*1Wb@Ge;&JX3YbcIqehw>Al1G za@<9ZS%Ha-MRv42++S6a$7K#v@uEN`sQpyUGd)Jx-{PGq^vx&>YBG!jpcjxsbj$Pz zT4l@L(*+#oo*sd$BAWBee9-QTC6mUwBs>=mgTxP?;1+$<-sXxtV^-les?k$6I>H;b z=5G<6x96uEbN;_2U~RY)Cxd5V_*$F{IWQGXes}LzsLYM_RSgPG^azmA@+LJzeALiuV!XJ6L8ds^?rC3?*f>tFmsoNyWgekWv&d-OR?`fJfI&=YKG9rQpefvU6uc*+P&Mr2`3t0B|V zLupln4Zlw8h2xdC1aw&5+FmE)79cU)H$I{Agoqta2_@f(A^rIV*YN;1l1>;bqHBn* zye4QnqWvgCV01BC962FRZ4=w@{|9vX z&wR1M`n})!qw?E-;;)rI|MUOqW4HkYjGXJbcf3LC&4DWV=3V{UcSR$a6aVWFuKhz495C}^QlBHJ}b{0rT3=pw_O-)2utq+OOp0H{Qd!7 z;0FtHdk-7RY&M*d?Ug(*db$=m^N2=0o^BzuO3t!RB9zJDx zNmz);4|zQFGjk(ZTh>zNI8aEEpKWs;bzZU#!IcG$#bh*iR6egxYo)LH&RMFjmwPt( zFP_!kr*W47G}t-dl*wekJUko9;{#ZX9cKGdD1YxbrI(?uGrZ6mq~6JT9(LI5=S+7# zAnP%Xe>|Wmh0!g~+Mc+c<@(2`4LFXpDA+^aU1vRmOmHI3UFWB=oTnm(jdhmSYg2UB zuO6SQzjXdJXR;b1E^s9s7~46Lq?5axc$+z5cJGY+J~TF9gcXf(;uEN@$+s=f^ac5b z&+75`joLqi;33`@D-d73#;S%uI>LjJ`8gOIUOo*6rpABgf0!#eZB~}EGzJ8|Br;>G zII6IM6Gm*et04ZZ3N(y4504-6M|sQUxnvF_205LfR5Yo5P$NeK2cPlzBQ_YD zNSx)q!15zSV9Ke(n}yt!fjncTUefcZsOU9&Lw3N=_eo2vyu;I<)r(gd@Y@eM4-ycL zd&Vl%)4JE0UxuoNQ7IS9F~$t|ax5trpdzfSJCI*p4=1c#{ep8K1R_z^DRrmaKM?ON&{0kghdM>R( zpXB@-kpJwjg+L-lQ52rl8_u446J*>2Zxb)zi3s@Rb(TFot49+UqA+WlJ&>1xkl=UvkaD`#bNns?l$7`}D~^ztP)({Mg7-W{wl_ zfcPHZNv{s^k=`Zd@3H?TDm|7hWGCEm~*~keouvt<@sXnoad<}oCybH zR@!|XzmJ?-(1!V}U;LRrDu37i{r~W$jDBCfi z&aKzo=dS5peLdH_qT7KSPjR})UUgv%!f#ondqyG9TYt=|iF4dndJ&v|c@@SX-+uEO zMysAaJX@r}Gb&DoSFd~S^`yTur#5K2s_{UZ-wn|bs0DGJ=Vt}CdQo8Ws>P`YlO?u@ z?kGH_!y$Sk99XrH0{7Y3KQDQrZ2dx?09Ws^i0a4Twi1&Oyq9p|>xdQ!C?dfzfm@bS z#kKK2RWQR@Rnl+ue6%@s52<&hTa3t>^vu@!3fee58R`)PR@Hk($s9MQx&6NI@(_;b zVGEv)X&uQ^CXcc{*vN|<@aXB$%BBtUm`r$G-Oj!*vmYnL%|-9fY)Leuy(S)7A88{* zjI`Q>$x=brXcPL-2V9H59!3SqRrroHJm_kpoaXek^IT2-@duAO z0H0b6l;pe0`*hh~C6A?!fH4@|#j`te^1~B3|7Hz@bIKYu=TVbq^fNq^96zG_B4WU0 zBkSKT1;<^zaD2yf{D9xzDJ{q3liGV;=K|tcP)+7RM>f z;|FZ+C-_H^BSqwq0xczq&YsW6B`T~@-=n@dpCVnT{e$hd;*48d8OdZXop^w;KcUtMt71pQok6YP8RkMC$pqiCH0SjBh=Nhy19?_31fE1>=N(0RT3xcq?bHi(0*1Lr#JaTHTL7FczUJik-!h) z{;)_GjC*?SESigZK5T?gRse($Ibf6kp{X$9fhiO>{;Ald1*Yj$;_oBuFpyeg`N#Hg zHR6Wys#Pc)63Xf}zl)W=OfDN^eC`_M{>N7+Yw?pJ9P*1X9ukw?3vqeaPKQRdm0hPg zigZxJadIf`&pXe*f=QM^HtUgI_U^rTRqI*Lkc~3P)xY<-Ydg5Q;e{ix>>kVd)B3!1 ze#OG`1<&S1*jvQ1j)Dj2#TgY3hNLh-MBJEO?rFIR`==qC=oRisv&y>k0Ea+$zjDux zOG((u{73%wiWb{B+g|JGd*q=UWm)@J%h?S$)`v?uSGs<#Ds^2K@5MI1*rW1{5uX?Q z)$86@Yq-|Om-!TGu>F{Or!lQ>e)ZSo7k>JW$bapB^*@p?xqjF0|Go0l|L?y~UcdQf z8}sq?(2^SLz|YYSTOIh%{n=l#e@`Pr(itC1#NqcRfA){czxNk@8Qa!TxM-werxb>^ z^H^x1LJ7X$p*&tAy>>K;<=P7l4lwENhPBq*Sknp(@D>R@3)M*~lY2Bz#rePY@BM$s z_rL#R_Wt&SkYB8CD!~?x_co_r{^ehmH0F$V1kk$P5r-#fm7kNHABE9)!-?t@p@9n~ zpK|UoX88^0Ipl!=RnK;P-uvjd(CFB!JTwnZ4c1cs3J(cIhR+?3Ca}{jd3Ro6gnj4y z%R98Mjm>(IMgAlLbV z;P0YC@a~;WZE_4K)p8>p0NWvvfY>|qU$*VfC|J*ry=^JT!HXNj!C6`9iM{y zh=pIHHY(q#J5`Opk7)Ykw-3%sKKq@sP-G3lAh!tbwa47|G2>3+cid23bmy-tJ&k*J z*)U)b6Po2k@1!N*8KU$Mo8`cqKLZq3h(k%GMaoF7+2o`qg0F zP*HDM<_~xi4evUvv_rzR!Rm}ByS&oCv??A;tqb5Zg|CCj~lQvV#nH91alWz&6a5dp->EZUlf-85xvkz zIA)Jl!)toQfq$&7$9zNhiHqPX=*g*OH9oDv+-Weqzq+vAV7J^&p$ok?EQKoH}%^Ww;uwmVU4}NdN1nNSFbcVz08LH@X{HLb`zhUS@Ynq z{~O`Tp1C-az)9wfoV3K7)&3q{FE^OIE`k8PUjNb`{OK=NSZ7%9U;p3vZ^)ngsXuIU zc?r*?pNE?%MPlAVnEPj6m_U!UGhNvk}gOlVzZBmnV%v}V!~R_mQO_Wa?4 zotxX+x;}pIM{GaMJ2TJji$@)N{1LC{`(ZdDFxSnL$I}_}>)mnTesA8B7<7DkR_7FL z?^@#R3-Lp0N0tfA(h~lxp_#MNSdTrM~uVbcZ>NPpF7GfVTtmg1qC^A_CmA zF@Hb%cTR6|cq(??%B`Pl3l;2v1O9~Chpk_S#IqwVTvbXJ%(kMIrq zT@^AP+}|vo%cNuGm6>?jP>Fl?d`6$@)8IJQ2A=&)?-J*S{Qq0+)9h4j{`SuGIyJ-u z@X9>yZ$ITc=hqV^t)-Vw-M~osWqRDsNdxCR6vA56_2|np*1p&D@<|G3ytlyYM5WgO z&#DF({TZ*Q5*rFD`iLKxvy*b1w+_aTb z`?G3#Zd}=5HB*T_v1x+zna6!j!n`rVJcm~O*XF1899G00W$g|d@Yjv5y;v?e0ju8Y z`9pJ>k7};YO9ptOgsjQx(7jZAwIhOP1BGG9BJ<#3v|RtWm*zdf`7oa8kvH_#cgS#O zi8its-cWfPwJbd93;f| zu5rxBwG$N#8H@U&_mH7spyBp9*K&8IP2o{v&LZX5P7m9R?wojg^UfB=|5Yt_ znEc0<5qrly(x?`GgDkfwjVJ2G^zK!zS>3w3NBMkln&NrKZ}7PBtg`;VQ{sW~c2>c4 z`aHX&SY9`}G)!J@balRcIW3Ls^?*DBJ{!@gC#HI&5I@hrgr!w>A9qybRj;bsT<s{DQU%hwcqby9M}FqdY?4+DNkY#t@HVXw*eyvyUp4mSRi!Kv zF6n;Cs2?7!+%)nTF~$m$<%;h#U_scL;D2@~Mi5v~YFamMV?15uY8~00$8ZfnF@hP^ z8b2^_7AEOZJ-+sJdN_@Sm8(g@N<#_M6$TMQ6@CW10ug}{rREeAn1K*bPRR)#g?1lm zb^jn}f-y%S}Jrx)Jn7B&>;NK#>Kt)-Bs=~3mK6&t8zF3RS1Pkq0_8%ish zH*3AOlSXu5h2}Ik+YF3}l5Rf_?Qc>Mkdwq>*%*w6@n!`gP4V7L??aih;=dLx|WkT)OlC zS|%B8s^@ARg+VMU3EC&P}v?ypU9}aEL7y>7*xWPiAUC3Y>M+HjY9_G)rc9Hcq;DJ4IKv_Lp5oisDhdRq4yNns(=D^=@ z6qIn&xKDM%J)WBiUzIEl_9(4_?H9|rZ`F$obiyS>%@O3p!FVk2?)-O0@l>>o>y>|iri82`B8%rS zibnOs{|e%!A!`ccgbGV5+)9~rt4Fd7Hh-dwP|5$%fiVKE8qX#Ch9oasaBiX9MD?-m zmlR%7b&N4Ce73?Qy!7~drSEXMH8+e*C13h#ynF95?lI-<(LfT)IiTYZZ7**r$kH+g z&rAao(NTzRWp25+g5vAtu#azvfQrMqGD61fvtOC6V}t0%CW==pbRxEHMu>_Fm6eMi zrL^LK(VKUwX{n+Gq^v)~;o;C{R4;Wa2Zf8sm$XBE1cK?v!$Q#Ru;`mmk#KJd0#ev_ z9ewzGS-Fk53bbkkOnSZ=+^c06#NYsN8i}N~*A&v22T8$j>piB02wTq2fl9pv*-4y^ zh-b&4=9a;t78R-`rbp5%g6e60Ra~UPFRn-^1Z9kM!VB7N?$H`hP)N}2@SvCQz`V2i zqd4A0-j>$KC$k=eKdiXcM~;1TS0ci5L{A_s|EiniS9!SI5*0ZBRI)G+W6)I2?zB`p zM z=D_0{hy4lJti^baxA}ZlFYRzHj=PVlO3S1su3!(9dpFVosj*j5>_AO^{vZ2k`Mv+^ z|D}A%_2WPB*U5(;{VnqAzxu0zJML{)SK?JOPY2KX=F_(Zgx7H*y26#O|LWiRWd)z+ z^$UOE=jE6G?SCie0H0wVcaS%XALm9Jt0y=l0Vw_-Ov5N9yq*l zI*8n1s3flS7@Ks?;pBp+E2ABPE!JwhJgY1-OZOi9m=R5dVM@|}MWsy31FMlq=3VFz z+-T`%Z3v0^*04oo|7i-I=J*J)#&64YrjqA0{U+U3}9O5QyRYnR3HS8L3u0rfRs5HEo`o&v1%^GBKOF-9B2Ft zhSNKYjiWFnHWD76I948t~P`#79;+qu7a zuX8u>&HGOGAko=CWik|1o&k&*#xy!^n(=$e9WE#OfBN046w|RGo8c;Yz9Vm&axmpd zR>UUeMG69<7>sD5muvK@=hEyMn6+lAfD?z()m=ch>8F?=(SQc z&UdV*Yiyp$h<6w*u)g=Ig!eiI;achvStQ261$Cp(G!iwF@gxnfVRSCCu`DbB3=sT| z{cXdj)Z*E<1rilO`BvpZAmepww7g%-g!V5Mt$XC;HpE+Irb$>UJF^kUSprPmizPf%#EbO5fMdF(@7(R8lmbHA@%gfQ{| zFTMRsGehHiKLyysl@BAI|W54ak@!u}L_JbeDufF~L zNB{AEEWh$=zb606FZ`1H%CG)F62pg#2OKNUh6p|AVWf_L8yH8+T>Y#;U=?~%MxKQM z{y}g?)I|}3-|qRVe#ei?PyP)*A%DeR`P<~T{n(G$eLwiYugkyr@B9V%i@)-#wvJ_A z%0(m7`3$<%QlM6N=Y}L7&$J|2A*Iq!7!APc#YHecL#5+335Z&I=}W=eszT*mNu z!vIWqqbTy!fCiM-jyZK|ev|-r{!G%0ebc&T2%^&7xmLmg=S*F(G(IsE0`({uUpt>luj1CCZufc~zHWMtOo^W7*c3PkFO^Uh zE9-yg1(PBIBV3-I#tu2y{&zaR5%QY0dY6f>>HRw64EZ`n%5A5lk$`-6?l}#9Fy5Xh zn7Hq3aOxp2g7GnlC?Ta_P3h>1Lu@ZhxeDX-Nau?g+x`>w{siu}tf~)1$6RZF=M=p! zH@U&85`Xvo0#sq_1+l@zC?>{W1Th*Z1x;*FjCzw8F(!Fw>=NI-i4+1?6h$DKL{QME z*wLs!Q8ae6<|Q-*M3bvfK-Kxaz1Dntj`9DGG3MO+tFsRZG52?7)js>%d#^RuoMVnT z`Y|RVSV$u{$J|^#Tle=h$8XANmJP_a8R}Qk-aXJa-!z9Wtuve%Towf2@?gWIA=;OpQJ*~eY1EUt%Q(!8nB4~O5`y2%dmW_SbxAhvcqCy&fF&y`*UcVN087+pxWHn9c<{{x$3 zv?6I$*xi!qknr7xyaLyJ{vGR=6^kD1^$-;CyD|W)sIorjE z>=xcHdH`mO)6dzXH@cW{U@a`D!eyBPg!pp78G5Wd%)ZsCOhsPOc2cI2JS+r}6VYUu zbivfts=!;*a#l^Sp+GiM9aUUbOReH9@v(*ng#wfGEkakrD8g@47TO667YgVjDj8BR zaqr!3UjM&WyjJdb&wEuFJ*GYM(Vr(Tf9}uN+1L`6=n<#R0M|=rmyn|t8|+VCf34j3 z$)704w%6bKTB~$D_s`rid=lKft;ffF@`L4LANolWf;%E`fP}QdHeM`?iWz8F9-p7B>qMLH(hFj{d!P7qUuAtz;>$uxqC@}u|G3$C zg+614wx99P2g_p~`T6qK{>o?X=5p6z@_)E9K)m3Eza&5X!WYR;|Kf|nYgfXvG7a!m z{#GM}z-5k_jZ- z`&oO1m0QTqbgey{D((xkOi?{+@GI3dSOI&svC_l3o~7uy8n~IqDmCN+-v_1afp1Ty z&wN>e2hq^(DTK&<%pvjfU{r`R>_>P{zRGHdE+$Xqs6?L&5Got|^Z536b&Q8{vdWA* zPpjov?(lS4MY8hc@^#3V`kr-=ZoT=WL}!!G+x}wp^{KcdVLwBU@^kNjOLgYHNaKP* zfZo=L*C%hSUgvhgigSjmk0l9kt{-x59BMU1d+GS6nC&RS_b?B*Z@5V7Y&k__`a&gw zJH8GN&dBJS4xrHU4utrfbF!|m7`SD1Mj|das30s6dSygL490pc!9uL*KrjjK4@+c8h+eTo zR$m-q%qpJ0AreSZgPLHG!W>Q~s10E4vrFoA&wo6gTd z;2VgEK$%<2YN&!WLQ#~ksS!Y2=~AWG4^}p1jRZaN5R=DJf+4gb3Yz4;Q|_84(u)|S zJxXil1so8aL%mdyY~E7eyeUVeO1Hl~=b}cg=XM!9KOoLLrpJ%HfW_JlrG~K0{hiiG z=ME)uyB&@*DKU0_PtWgIvYkuM?}=kn;usPr@J4SoEi7l!V}wZX1#7j^3yUMFC}6BZ zK4Fj;;F>c*?!VIE<3^8MnOtGzoI39~;Q6aR^yBjIZ~9wuOuPQZ`^!B(?B4SJosvt# zm_6TqXSf!zn1-JLT1lnv(dKBwWD;oZiMqrhKH{EEDVUC%zEB8*~*@vY!+ zi^RIe5mm+czFiEsx-wx#{MpBer*sP0zATu%_=GhJ@KDGvt_Val$CP27qL;Y- zaqLRZ%d;%uFsHK0OC~E$NX3~k%M2@Z93#KQ+)p;}NP#ys!>sX=wNpOzVN)c#`N{1(m$a19S$6uQ|^EvnO4 zRkHC4N~;zL+C(sD4h^p*48a+`HO)7?cS&LOah0TC`%EMzIkw_^nEFBslWyy*tG7(QBhX`rQsvM+CA}9YteC*8mVzLHF36jd<_P3Z zk{}}Spel(L%ATt|3Bo1-QaP(fQ2N}bDHqIV)jo9*asF8QT`dhkylixd=;$BjE^oxe zs@Cf29S*Gh3ZNW!a1zR znn%cU;!?FjBR&!nNQ9l1C2mAt1>$Wd_zigJ!bA0?T5;5d=~$7^Q-zyszSNFM(b&Me85VTXsDRp7IGv){zy!7pRJ0at>Yv;Pc06^ z*>k>Zek~uD$_)n6!H<2kxi@R<3@;w-jusPkES`rvJ77cD%5dN;ufDnml#-u;=f_lNJ z($fQ}mSq!eu;TDN}UBGqiy|r{)Y*NL1 z8juT~rQX=x`?l?gVin~Z&MmBbzN6>Os5Vof9*vG0h6-;mKO48@hHo`@k;S}L&%I1I zo_LKLMSYP%meRjgGgLNbz%~_i3_&9d5v+_K2WrsJl9Y^^yy7S}XCtfLPf2xJCO8aS zj1eE6^929G-v$eny$4*m!C#!>V-F&{u0fw3{ZrItRqI?pvW<(5C@4N85 zDeJp+TGfjv0eVR-$&n#@P(~*09b}P8`7qK;+;IdrIB#>~M?X%-4@N~$S)A5fE6M(0 z1$w|kh+8b=458v87JdlmPm6&~wEZ)%?wz&)!5 zeiXbjBMy~vyw9PCt0Xs#DR?vzCjAAn|Ati=n>Dw<^x?{?E3BAc@~qY#o8!AulVT`6 zP-13|v;~ygH`zIYOvyx%h%v=+0DfMb_J=SLVKvaPGYYQN-^;X0=xQ~TKq$n;iBVP# zoQL^CAcrO~qjpMDR#q#C92EBz)0Ij9t#ViOo<8hZgqznl{+dpCPbBh zjqRgQ(kMKjy9qdj=vgr1RV}COh?IGv5?DMxqaga+z4%^Oz~0+zbq){Pa!B1c5%gC$IGJ;kh8erdhcH?e6}GdaM<@nkKNFH zwKuMWOO?OR?u}j+?$y&B6NciU`;^7w#D$31Pl4k~3*3HCx-l6ziVG0Dr`^w-%ZUZ( zRvY(QU-et^&Nuw7eE1E2PL63G^YDksuRQbLNv6|vV4#tH;G@(3{>&AI1HbHrzw8QY z^>E(B1*n>scvfPMX$@Ch8P0+$=%H;x90jub@VKx08u^OHe~o-F+I81mC(roNXUJ2Y z{8V}B_dnH+j7W;I3s$(^y$F(U4n*$@Bh`Znq+`ADa6<%1be~u>5mQrr? zSz8n+T6&Ks!ld*eWhVVX7keSBQLsr|39eo=&E&^e6XMI7<%G3gi;5zQ^v*R8mfl1D zx-8-v_SEm|-g-ybM%?v7MMm?ud4O^WnX@DzzxYu)EUsniKzi#Qw-Rz>!$U11xT1Jd zi)?BJ%Qntsb%k|By2%FVQHvV}!4pw2z2GR9m6F_Ikqc!-0W0q7HF*XliZ`~#WBS+@ zhP!gLvG!KoJ{{FVS+f*WJ}w>#>d`u`%p090_m5mcqeqGl!U97mD#@_;A$7rNGzD4y zka0e@Vuq=ySfq>c$H|Pz#jCK}rIa}$a%>41QyB$xj(PU5eR|_v*7_uHd4g z{~1Dyr4tfd-sE1c5_{L3POcpHkqV>2O0}qyL);P2_rZ&}TQ^u!$E|5iW2o@9noQRW z=p+#?=Zoy|1vP9iF{cmM)M;z0H zG2}kUyQf0>HU*s|yl07s13s_iuohO&O9OUAGOvU$*uX69M~pn)6u6AvuNl$Pd)^S~ zF*Y|Y@ajY@o>3(WRTmzcEbmKUS>=hU&YbWsem?ZUInFTUx@~{ksnjE_BN*X!` zUj-b}O(i^1hEBlKv}U!WP`=cfHT;dg^s=KB*84x?~q$7VqP}gf9#C*lq zeeDNLSlT1mMZH>~kaMUxLJv!DQa4$oRdJv5leDs5E zl;=I`M?RqN-z#m8f81l_^B(@0@_9G?Z4DQ;f#JtGY&35N82)A2x9vQuf1JuH+n;~n z{pCl#_n*mM|Eh0F!z7;0zFO_4&YMpIL=s>Rx6;3pUQh>>wLe;K zrF=>5S7NNr%W60^?y8jmd~QIXu|e7~DbvAz4x%ULA|c;K+)^J}nyFYW3P#VRb=B{M ziehrExI&<}yv;SqmBGWNp)k;BY~=ft$`C4DFzH#Wc&32&7_1#V z30k~yMa26tVp8kcd+ZK8m^pXtuv;54h*&CgBHjgZD|`}==%z&2lOV%zhY5mloi-vN z-p9oJxouV9_JUBY72Im|3ZvZEtSd58KvhCJi63L&N4`+Qk5E+iB5fER#Hyz5YPB&e zO9#8^)`r!woIXc;wL&>|s)(~`S6Bo+-;~4-&)A$;S$Q4fG{HJ%R@>Ss)l+g+ z8y-xXp@6l}h{Bm*{K%tRXwgY?U6q6v&slUlA8D}@>3Etk3gDLF&>0vAyo(GMJ>}6Z z*aMZb=oN0;pUsQP5D#&y(nMi`Ob$Y>BPzO50aj&&bcBNx&ogF-mXxWhwwuS%j``3} z?hUo#4oalE3)%Una-4 z2Yj0Vc6yZ1%lqt>IcPy zykQ<+6==;M2)?y}{6!gbfxL2h>D1(*EfrM=>9e@^QwuXm^88Lv2E3RRJhGH)wK_6S zzc;5%yJyk!$X7+#rY=vEv#a<~e+-A;)?|RKNuff~L08l%=Tv)M+vA&J)t}4B1zcC6 zFOl%LRuo2>ipwm-QLhqTd&7l$B2gsLR}*;P+ypYgnk4HOEdEJ*QX`q7oOy>^9#ybr zq^VxWY^epuWmV@xlOCBRDO%3@JUzP;aK=bCG=UgBm{CJUGZXcwx2nfS8E%o(KyKlB zdy0a!>BKIqC3GnjBX=-uvP0ckF0@50EUv3{os7o$1TQQmzMlHra46xC=2(;WJkdxQ zsXq(}2rOZL4VUR)jOXi-LcMaC9~PmjYj0VUG`Z3XTYHl(2!$-k<5zkiF58|%J4c=b zl*l@~_FDdDAD52>v7O?3;YGSMRGXr zbYPCdxJy)u)SMFLNgVLr_Apvwe=IA)lNR;zw0C{soG{LT&p#wpaGyDhYs}koDAK$* z&K%wrXPypwV~zZwag7OsJtCXuELkYRD}^QJ{0qMOHfcR41-4A36R>oh38T6{@0FqE z>E*B|Y#cvi50Bee{_nTHQ~vWSe?yLKpYS=K349hgR!{iT*M0cW9@h80=XQDVPyMVa z`y(s}Lpj7ZuAot9=};~6oZai%>#mcp{QAeshr0cffBH}49{0MZj230HvKP-6o33!q z2iw4Ji6b9z?X~j5Px-zNsj|w}l-B1wo0Aiws^{y1xAA7B4VUx@Y(h2j$NCpt6a#QAQxn zcJvt6={xfvr*zL0$2Ltoi*ZVOVDjs`y+6pDPCG!0i|3XWVNn;q-f?W{^GUNJQznEl z=JCZV%cq>eL;p6glN!KohW)BQ0e*S*=;% z3(QN;$h=PPU+uLbwPoamBOR-Qtl=`T|DI&y8nSZ6$6nqFLuKI33|VX1$A<*7gSrQ1 zongP`f}Ogz65YhQ(@2~>*^UPz85nh&5)q@lxSjh6@3`fjV?74i7&LNCYbxEEI;^RO zt(0TUsl>ITg`v#0{~AwLqsQDErvk`%?eH3Sj7-!1cdoysIgdIV#&Sru4_zVaW|Zkt z2yli0+Gd{T9#N14t`{y#uYS-nLCqf4qdDhTN}4nezOC5s>O%(t7F!7QTj)kYs02@e z=E2*#SOxhp=AGKp?Mm@6s-R!`HCTomm1%={R4UQ}KoUp*XCf@|1nFQA6>@#@c!$fK z78T^~#s^z9j3rX3Ecx0f-&z*8Pd?bh!TZaf<+4|ShTX0@2na@2-GWsT>Yo+A8_-a6vg z3`L#9OY1UV6=p#Zpc0`<8n%O@JLYMFcUY{khG(Z+fCERYq`4}SQ>Hvi7;LH=n(WL} ziNZd}D_Rj=64h+C+GndWY|8qq&)4y)^;5hU5mActgS^PkPDQTJI>C~@`){ssxO6Kj zwAmQ3qQb+Fsu=|@c=XKKsafey&ya_-#(uXv>F@^lxr9^l+PBM~eDdDy89l8yvvv+V znCD;)Mn9rZMO&A43_w%tPfsra4`88Qn0t*pjcM+Pyz_eOe1(NmmLB)X+)2NdGrR6} zzxb>2zdiV4<(T%sPx(Z-`+e>$@A-p2^tGC%ET94ZT7L9u30vf;RdR*!x~@G zaZHzM2Bvf^{`RWup37#q^pnr|5&4KC$NRx(AG7oBKJgnKFMt1^eK)=VKfqqt%ooHX zX`J5w$!Pc485^GP*e{mvxcTW`-J1K{Jm!^k4E4y5b(_LlJ0TF&?k7(;wRg%MVWtD_ zS`7o`;hwSpy5;bJSC&QK@b!g@*GLRPA~#dLcWe4BXcj%07QtfP8Kt*#FWWI!d`@R% z>hCSYuzBmCWGIb-d`C~O-wRJ0`NEk5?Zd+Y52g}^I(o0EY=KW?4>7CopDs8`jX8}t z5)c|a#)tg(*}SkJ{EM$M*F=9hwF+ac<=~4@)?2h*Z%P^VxCFvqESR@nM`T(Tv7R7ji@!?+Pu!|T;fdonoeaP z6L&?X_}onNsKLZscD1M(k0!z1@LW|yA(>Zk_r{1DL^6a-Yw+Ic+1Vz$tbQJ=;mizo zV|T1k8gGl%(!blJ0k9MEj(^l&>$Om`V&Ec$j$1|KoDF$l2BqVsEm%A z?|eU&+wioBGZq32Z!;B9j?+YFs5T}eEl8X4s@&uYn}`Hy-!$)j!M>bO=ZCe5_8R0w zue}0XTD?!!G3mf8UE!`N3cQ-$Bv3<0w^%!*fBu%yX*^;FN7U7%X-!ErN8dhEEVRyy*hdPvni#n`I8J^!^ z4Z|93jw6ma)8bqmR)@x!@c{_X>8~YVPlnW?Oqj9pzuizi~f1{ z+Pk=7n?0LhIgN>$a3qo~n5Bb}_9fBX3PU;;Pc{kZOB zus-@xM2X;+lAc|ndw<9wJZ+U&&lUK@$2Q-_UT{r`SPw%4ycdT3?F!tNKZ-1}6;1^#kzwx>^$-Ce8Uj6P*-RC~?um^v< zeBNJrm|SUl!ee&^hadTIxgB^=fpFm|s67(y(e!u^QK#R#xz+Jn_SN;9c)Fyz8v5Np zxAyuX%`dJ9WSOY7I6u0c`|h4J?Z5YQ6+CCpYbyIRJAU7XMVfFY$Lw8N`o3kLi4}4T z_eM$2?&X?kk7Lwer5dO4gA5}59LKLSEuh@NzWJYxPw?A- zYeV1pSvIDMt$_bZ%<#P3y+82;=PCziWXQC19P*0IA%dETQ5L2n2lX7GoSRc{P3ajo zJ%Gm80b0@#48u#|3#*of3*WSGG38{o?}!%YI?!Loxpr9TXJbuaVNrZsQ=Tg880l^& zF^WU!=gTH=caYXVq8_T7wWqE!(qx zb5SwdCU0}C$*)<+=P+$pQZpy5zDW8N$2GGMUS&?jAdJ^4Atx900?tmPxEa@&lcXHx zl8Bs0$AsHU`)TuC;#uaL4f*+RbzqI+_LDh`X==gntf+*=BI0%mD<|vcfL>F z{IXZc{XgY6CG8Xb%4f|e8lnL!2j(X?~*sa_P4aEdCQAB zsYVFy&b(bc+G#~tQNw4mqRw@aV~UJ-(N8PyXR&%I)tnZ+MHSDLC~0H{bAP z`OP=~Cwajy{fd0&%}NkLEQ=d)Si}c3NBMSy4~921_T=hvll6VVYTOh)7sx-2U!ZWB zhFG>*0VyZ2(cd$A_$Xs=_*3aV^89PB(wmj##&?T_8=7o}nhaC#^>TX4@s8d*(9tRD z9Ig@e6`Sou2=OCwmP^Qsb-BT0Jq?E}#a|@0)%h5z?WVQ!d~=En3!_mbk(p&@{F^q#A)iL5G6hPZotq(1^2S?QHJhNKKE?+*rpY@BHII^zZZCMK zyBM7hCq|5G9tx!)q|{`+YTjgnm4#|s^qKJw)(+X8V$V_*Co5s)WO_yM!%~We<+p2= zo!p?g_qE3MvO!v&XbJVj<*PX&nJjwG=#s&vrbw*~* zZ(UQKf0Gx1$Zo)pDjyiN-+bYVkG}SSpZp1O_apNgZ+yt{;lOXW z^|kURq22e$P~cl${_>sD`gS?CHKp~ITW&e(+J}GkXUT`UJ@K3V&J|t%wcqkY`OfdV zS&yQ*Tx*qoKli4ulqdhlv*g(Jk=I`eiv{9=C&v8`)%UY7*nf?meW#_XJ~_Y z%m(MvQ>!SpNx8z2161N+>Ujyz5iM!W!*#Y;Ra>6vx|vw54wlmvKVGd`p!Pk_z4eh} zTdmrjo^95wg#~f#?Pqu>PH4$mi3c{KZL@eb@1c}*WQbX9Cg#w1aRak7tt}_CrmBTB zsW86Z@c`D{VigtOj|ExG8_u)twnLtwRzg(k(MH!M(lb!-YqoVRJDl5GbE5r4 zVImt3y^JRp&Fi>qU;*Bu${yBihBb~Aa#`qyFFo@aXWo@K$QI84&Y^POb}=ht^D?Y8 zs?9aadp$YvO1G`wmXFh5dFj$6^E$%IOb1uXwP?@0xUoF5R!w%T=8@eZPuEJZ8$4GX zXLzBtufqJI-WwW~F(>yLv@4p|_tLKalO0?yoLtb~H}i>BD6Fe_5ijlNlHPLx-Y?|w zUO2gE=&;rlJQ3bkdMqt3iWWb3_+VAuobbF*TDiqTW26{N+Sr*J#(h-~e$e`E)qxeK z;ITMkl|}b1^&X3b`EVE?%(Ad{M)gJW_@`qlBrK6j4Ik{U|GS@-&;91FlDi*ygvmp{ z@N?xCfB45NcUUd_sKQKCJG-P---kW&^W@m};^+TI-BT0j#Wl#SyXGEu*Z28-c3Alx zXP2whKlQ)<>7)92*G}m#hL_qZ@W zn)|8IkdM6ndik4=e$>%@e#<}qPI=}}JTLO&ytVvs`SxKwOV6-q3bmZqRj#!C)vx}$s*LKH%F?2G$j^*#Xi>YmctMhX z_I*#6Py57=+l~9-d4$>el2HI`6)b>4X@8g^Co&hxxwsR zqhh8S=dZ#u*zR3&fs>luK|>#0GhDOML!_>m3LZ0S)K9C_@A+>$s*ZgX<9mlrmQZ+>i; z7ThW7b#B#)HJ=rQu;?9U{^1I|Wd&+KDhHlbx^0z)YkJWlIigR`?_G_)FIYQ9uuPk~ zVVuMZlh0LhDIqg-7>_;BdH37*mELhgwqc*O(=c>TvZSuJitSXrzh&*|&*XcP(UCU( zle^u`WHrhz@E}&Kn=U1eYO|32)pL~Bt^K}%ZsZYH;JcJP&+fd_bO}_pUYlI3%7R56 za6cG8jXtz!H0=wr=i)pOw6KkTCx2|%?SHCv$IeT3 z+w0yW_dl{g(kFb*Ur>ehuG*j3dB`60(Bl-7-`^<@ufO#*@;_6%;l>-~O4}{3xJ7Qi z{dNueZK1;NeeZkajc4es_CBJK4XVJ&C~jpx4%RFxZ1N{@N=rHUTOP|C;yQA z+(Vvp)U~Z})YW#iU2Rv})%GX1Z8T2}Ih0MGwX;8=jZaf($m{Cb`GP8H9=HE~vrt{Q z+eP=L2tBIphdmFgSy!fs)j%DYT@lYDLuf zppO|U{fT?)7*mfzG^o_JY)|#xcAw_4*pPIb>XoHaslh<=AZt_}hNbd!v9kxgIvcT!3_0VZ;uM$-Y*TE}3 zu^5cNN4t$2425HZU9yz89~agidWdX|`Wy>Z7`$}nnOc+$3X@uVoA;vdrCw$2K$c6$ zojg7DCt9DjXeaOlYUQ|gOS4QNuHU?*vsn$>SDRv02b+g%X`WSB{NP!;8`g^Xo*Q^p zXbEcP?Wsq3wS0`0mpH5E(=21{{H-Onx?Y7%HwBH8LHntO3PEY*M`Th*A z$XN={@ySU#@3okB*dj4zy^fWUnQwkV@5eR3xrG+%EGZYSSZDAx>vyxQ~iz9uQ z$KAZZtg5LM7h5janR%k!!wOi?b4f4F`|mJ3Z60Iwq|ZDOr|pQ@j}FpjZCD)=gvz5& zSaB5l6~OqJfAfR#O-CxM5B%g$l>7d_KT`hiU6#Mey?WtpMr-cAgU!c%#;3}$?bcs< z@osK+h&zni+TH7(*5}5&iPzlYZZ`LKpXr*nvqc-sE?m4QSC-Q`EBsn}|NE>k4!v|O zhxqpQy!WVXKJ&BxlKi;`JV1W?cYfQ}47p)v#4)d!507B07QI`Ohky28QKi*#>CA(% z;AjG#;k%m4D0#uHT_Wv4)W$K5hVRH-?Y;Faljlpm@c5!g-}R)M{qGenf-)W-K%~;z z4Q4@CYyOUAzH6tHKjlY%T)y?|{`OJNd*tUnT%P*OACr2)aI1N+l^^Up+v*LtlC|Hp zr~UZz+*@<9fp-CC{4QGITM}^SIjHiIUw`FJaen7cfxdix^M~F0o<6Sac5#}-V=43; z)^!_aUh9=DPxPeoBDDS8ep}pe6mm*5p}bl%XUiF!03AGjBZTqK$*H=4>*X<_T^lbZMS2%0|A> z%-=+A<_vG}T9MDqqjB7eiQHf@kEotr%zSO{Gd$!D108o9)E>trg@?G&-;-U^_9RqzDkB16yCmb|34LkVH4wWclWr9lRB{0biA0mIb*>zpd{3xu}S35DIN&H4nuja5`ZCBgXcD4Oa+1~!TH_IKjUp^m^ z?Nh(tbMNx^PrJ0f#A(bxXfKgN8}mb>~}Z~jm6fwq^v;?+l8cb|KI=+Cgd z+OD>%?P|N)j&GaIW|n+tGIQ>c$m4Xa{ZctEgb-WtzNWgqS(Tc_?I@@BDGQm#t#uC;tf%?~<(g^C_{R!l}t z&@8N!N2@0G4X3MB-{P?H_8resZC={8F4tUR`6OpNKlaql-EHp%Z{i-R!xcN*m0n@5 z7~F=qp(hF}TqEki@PXd(6ZcqXo=NklYu-zspTmQAAf@YrRrjn?E;bkU6fCo5whUTU zYdSNp#@yD`_WjApHI6QZw`Lh^c_%elJ85nADu8(2tlnZ&lV%=_R}{2yEy(ZUJ?$A@ zU9d%N>^vLorFcd38~O^vKK2*9O_%PxQ(p1hpOwG(*uNpivS`d6X?5oFJ|-7*ql=Y5F-LgqJ27+Svq$!PgqDa zxCs;}<>I@jP{uFP_1Ir`d1ibqM(I%8BNbfJU$U$98 zi-u|**A;?H>Er=}3*|nWD{?|vHU(?7CNH;Mr}=v)>XqVtt&A!}WRvbm3C}fo)LA*T zivE_utTh@GZxJP-m4FNRB_{_U4r|B0Cl|v>zlyJ2WrggD`ozWZQ;jzVFLVzpc`50^ zO1%KTFQ!9iCFj-FX`V=@xZlB(d870B(!qj-NGc-RS_B%`W-7676c->1uPgG+6CT>Q z5N%pECi8$MY6K>EgGLvuK>!SSg(qpa5<+jHM@i6|JNNQxjl6M2l~(ozFTUQx&w0GM z->b>H@Rq8leJxg_z}G=SghJHem}kywr^#}&sqZwt)VR>P&^wK@sY_q8q$XkzdI9xH z95u!9fQDDpp3zF@84lD7isrBeF^ky@10TK{6%kn+0JUaf{!=Wdstj;udGuN*9E_b|k>*avpV3?7;4Ei>+txTKB>f(fwHL_xBs*w%cx#-`Rb) zHz;DI>#vpn^0wR1OX=otB?{|rzVScx;=*`AQpAeW!bHo<@eez+*Sq~(qR@zk z_u`pl9FLR(ea8Mzl+CZtbb+)x(^)CKfI8v@m1UQK(ldj$1s^{&&)~DEuflFhW(*y_ zIIuE%E$@vo%%!6VWsqAA(MlPv<(i~%*WnJrQ%c#FBlL}i_6iw`Vgc4{P4ex5{Zj8@ z&U@qU*<9e21a1-VjxSz>5k}mV=`uw+k(1A(l6qHLAjvp-Uw6jPp$p65EtO=&ai#XU z*!#YwODy#Y+CqO#53mFMoHwTUnKF%aG4k*pCqq`H>{A@BW#rMonSHu*4)9$b=&y+7 zsE27?e)cegcz#c(O1@`c1u^xJ9`Jj+p$ub_%+qU}6K(y}et(P)8z-Btsp;W|V6b7; z(k%3HL(;lYN+J%W2y24QuHm!ts7r17`{abzEPa!ZU<7euo+&G#?s-@%{gP&TW93(k zW-cpoPA#|7%KE_*+QFjtR4|CXRnuawNY#p3wi$zX8o-Kr2A8g1&Uq9^Hn48^<|VS% z%Gn38$~X=BV!zoB^bE3UC2wBN7~2lZo>bpV>V2Ew*=>K%wzegE0`jwge1f%VmM-<1 zl!}9=!^%;S11O8V&qK8}KWhw|;=+YZ=S3^Pg{;UZUKBfvQ*(du9f!yK*y=clb4E92 zZFG8})-G-&2_mDFuW6mPYgbw@C+ncFBj3FCH!ZSyk6OEQc7AC|a~{dl1m>eo5kq-Z z4$Ny~IIEQ+o435pd$RL^+dW$Ccekz={k&7)fyCKZ?MV$iR(OET8yjb^DGVpG%C=Xl zj#>^7yOzVG9-Zx(6NqM&Y*hst?zBB_`yAG3&Fx(hYbst??hM|VOE@Es)@7|k449}T z4`-ORep=O6%?UlV>e{p}`?;o``$1YW(ip?t)#0Ak279CS-Y}j$dcx|3o??UfPgD2V zsvuVPv;|=vX|eY`*?-&tqQ*@8WKm3!g@dMm7`igPPgX46*n%?!}`%zP(13bJFlpf zo0LTB!w?vUV3M}*gzN&jV|7daZ|oHKn~qReTf1)OvH#t-yw&>L+F^|gqjZji!>+X> zcy#Xx>p9r>XQ*;tAwRTp8r{1|?5Km_beYD=$zH{jyadl~Rotyo?v&1;Mou%UwG*D{ ztatojeZVkou?Y|c$$RmS{(@@sn4E&l<*Okl&=sw$xVEu_E;>C-g6CTE9}&f~o?uod z9LM0(5PLO$6KV^l~Tq|%|nK0MTWX84B3|6g=VerMN z4TJ>|rZUPc#!ei|)uMBs@dx(j6vlk}nY`Wls0Mk-PKx5^-Jf)LH6>nX+XphxV3aT! zR)A9`f6QDH;L;hRcg~pCnQHiSihsd(5<(!!S^!2rpCHF}As%4Awd%(0n~Ab6WJE^w zsCRc=f>ux510|{h6Rt$pWE?3T4QGEh{fheykCW`RpK)S=p8!)AUn}-WK!ZX>RAjF) z2N<{jQ%?z2k06!qJ`zFaIjLv%F%^`#4oy7uoClK#zXM@-^@HF?PPku7j&R@FUWZqI zy)z*va+xvJu8)G(d3}fFf0f>fFa3KJ={;iS3tJ>CHrE8x<9W0=dnw7HgQIau+K8r_ z_f`l#&x<}`tuhlR<6>|#mPG7@pZRIuyD$m_d77r6OgLaTLU|7{F^-9c5l@`&G@T2d zlCEJHdlBM%k5h47vXI`zdc=lHLV(mX)ys>YZa|PU_fihP(7VK(N`hO!BbY?8^hp^$ z50l{BQ-9+otPF8)M1l+l8hK}-ob&4*a@XUn9Twj(2uAye62gP-K^k2eL}`tOlby zuC05#CukYJd(Ew{k{^H8bL4~3uDkA9dDJ7nK%V`hKO!%A(J#uQABBQP1Ec8H%EP{= z4wsH?8CQZw+g|>NYmYm3wzZ~Y?zMV=yLMyDlHTh3=B>9KU-|bVuKRGuv1JYAuMXWG z*D}pS@hX4EzC2fEIKC0SzQJ7d3A|Yt|S+=G%$)Wd3w$q|R1lkG)D~a6Eq! z{rmm}{rYD|ZkN4~J&rUXwM|xLNH9uJ>TXCSKcJgZ2%niFm2_iC z8={2-t_WmbHCIQ%O2B8<7(-3Z> zwZ+U;>E#ZSP(CN0^Xh%&@l82SI}v8*L{NYNl))ggAg1qwqEWVpRo{KztcPT=uISkZ z@upgabxsS)85Z9yVQGSdcD-2DU9}3gd7%PZsjP&{{31nmIhg^I zk_DAegmS)w=4LfUQ{eH(nw_DF;TG1pav_MJD;I0^ylv0FEmnDWhDXJSoOxI`J}!7a zyh`lkZB`V zU}Ttf?k+rKsH(0WmIBnM;vSc}a?b+(n&T?YXh?4xT6@b1P>KCaSmYg%lnCOW6IaOxNmqaxJ1 zNPbX2$8?X2T#3S}mSEBW;O!PhjS1HBcFhkx?FZx&9{fpi{|7!mK3MJg>#mdU{g>Y@ z-}HCBLB9B=$I4sY_EyCUo`+12-wdxuqno-PuVB6n|C%RZl79VNIl2O+Y~Eb(ilDL0 z)4t*v+O%MEf8o5`N&>z6``x!6SB+WkN3Ng!eX3owT&${(I{q|0H*R6Pp8Kp->}%w# zZA^%BECg*h9#Rq^*z}gxL2y^v!t*~1o`G@k%=v1+xubP6#r4_`a`zLTp+v&7Su3i= z)<#dEKs7j=;Lv2RkHAIDXMJ|UD;49?%WkzsrC0tiv&!+N>w8_}>`6cGQx$V6PzipF z1n}~ukQeC1?Rb91ZNLJ#fQlz5zS|;hOyKWxEuF^T#EKAO0w#*{lU0UoXVk6~-r?cX z3eUB=H)$P&egcPd+Vj~_G1kL*403?0Sm}$UMmG|C!SS_B-E$V4?XLT#3aThGch%0O zj5JN=VCCj&ur81_PH>(z`^*)n&CqTT(9yA1idqC~lG)p;wTkFdNsBP>96w9hz7+mv@|c}Z zy$;c)q5Svj?-~QtAeZ zdzTC+JTCDr?gqbn4~0{34|5<=|4LR@SG?nRih~x&a-JQo_HT9gKHarvH7p_Y=DA9` zPS>-u687tRuJyvN?Y*%+j_Hu~?XEqpQb=g9CUQQO(3%(?J^PO#t-0WjjzJZM!DCp( ziG~lO?8AfOwIfPa6A)Gwkf$rm~=*20ij!bE8Gx4`d?r&QB=7 zG2yradj)JniuA<8EqCKM6MpK!;U3BfdG9hpox*8Zy*N}WZ*IrFSST@zvK)GmISW2( z+43d4Yc+wS$ES68A3V}Mi5LbPc)&jQenwwhGkSLS_Cy+&d4LxPocsIc5Z%ao)h)p# z38)RWgfHN7$l|`Y@1R6)w|2bF8(#h@`R^_C^T^he*4+1}Kk~00eeWA?eXYaB_vv|b zVYM|JVbzBb9oI+)T3Bp*8E$8~C|WS-@n88>@~T(<(W~NKu3dlqb@H>%f3EzEM}MKh zAmf#$HspN>3%eZ2W|bDq)4BZhij=TUY*n{SE#D;Ig|;qQ9QMd7TFwE@DUa4msR$?Wxd?sLp{V6YV2*L zHGH8@_A+`Gqmu)l>oD#vI_3Z!Q!m||JXpXTDSM-k0VW4U6wGqQ^s^J zqJ$Bd{2~`u6rnRE^9d;0m0{OBVy}km;4;RHl%yVGeIn}$8EJ98?4xJFu-V{=0Em5_ z?V!st)ttQMQ-sj3YbQT=vB%Bay+*#uwKPW-@Nf#FW*ClT4_SPezIcTm3#?uB^dR^6 z&PWkxsg=#Zz+;4fV-8o>7tWzA8Lg)9zLo<~aWU9Byzm?M&tf#`JTHD%Oz^<(n6%N4 zy>U(w5df6Wv%V7WC9ZXmD&6yVpNyMVI^-#47LcBb4uh*HZ*v41b6hF% zU7R(o99qfEOcoKd?A0TCp*Ch><1Kp@B228{T78aLO6MwFpA1H4k5f;}b_ixfF!wnc zHA{kzNINBSfh|;WchL~-U~N>Z)1zJ|T_`3&n{ z+>^qbklFg%q&y-BVkTr(tBl$zI;u4e=LI%QS#2K7=i&NqkZ;r~W|vr4^$4ov95i6T z+VPxYt$vO1vjX-Rs;x@lnUwS{o1n3#kRkFIO)H#=@Jv}(l37>{gYq-zB$yp`qqj_C z1@N3G7&!hJ0dI}o1^z747TY|SPWwEydDrR!gpPZluMr_)@60#V>btwSoi1l4Fz*P! zOaA@y<&od?HF8Y*l+XVw^1LVgfd2ibKK#B%R|kH>t6nR=->R;vhhoy)DveCR?=!r0 zJb!Je>t5b3g{mCJb-7l+^tDf4(?tcbc{Thk@G|`2AN-+w|dHZeeke9yfWj3xgEa>)b*tHx`7SC0-lR7t|>9W<{71;G?n9@ z#WSCyu6@C=w4j+AdX(Y}($xj|y@A`zIak2W_KfHml)CfRs6)ZeMpKI4!>PHvB`L2^ z$Iw5zjLMYCAvPoCS~4of&-C>3#O+4s!&zZ8N@g_LRlAU-vVj|a;PH@=JblC@tHvi( z`NoVa0?TB!7CBXSa@e+<0SEgzwv!=rd^kH>E8`0B8v+{{0!H5GMFEf3y)ehQx7sJ> zJbSGG@Xjr&-zGfXw3-kS^66Y{{Oi*1O{d{W=+-yvg^BeX^sLt(Rqu|m=Kvr zyc_7#fDdKfNH{?zH=4TwQ|DMatdo0l!DCj3Yko%i9e6q6wIT${FhB%5O=`#oL;-sI zR_=wtnMZcd=c%IrXR}U#)8x@oCd*JR^k|ba+xKf$E=5ptMw~`hpPLzxboG7P^ACl za#vy9XO3iaAB1!ClpcI#3kWUFdg$_;V$d)1DzHY%F#q9|t%4nlNYBzM_StZ4iFxmN zb=Zrp#bU%|UAtU>&ci|B8xO7Ny_Wp@bk4J4oV`faaZLS}xsPh4Tb3vZ&X`PBZj+GP zh+BKn`tQoJ97I7^Fly}yjO-29O(LF~grZ2DatVV&>F_D6+?+Eln6!S{LFmc4m96lw zq6T=w0%b>MY~hty{Ky{*?Fj`YEYDRsyeTCygJ5)?qe`KUIHdR;c@&}ah8MEIp(#tt zHjW?&e2%r_7+9!@4ABc$p?Dc#>qXtf6ulk8bnqrq^-^r|W2SAFYS| zICGwDwi=)N-r-H(C|5AwaH2EHh(xi^l~Ass4-KS{Z=`LqM4r1dvjiCthp!%Do%;vRT3Gxzfu6J|Z`YFCHbtNfa6QvC3yjMib-dR!k}67>TDF z%}Iva%b{IN_Z*K&t;4IEU4I=60nCZdMGBpdF2+wPk4Q8`Ke!&1N)frfX&K$i6+&1D zDE~A;oHUnd8&1n}q+L138+Hg#Q{<-~QplZF=HR|G8}a#cBC+c%Ci@W1So0;EDC}k8 z3;QdtjSbb(?W7CaJRoO@91vU&%)9g+`Of2*UwLgP&%i+=WgjS=lWdCd_I$SIxa6rZ zJd6c#X#&r*X*vc{>5N zf9b>ohP043^-35CB+Gg3iLWw76#65xmmYhdzZS49kfqlB=(zKS&1cOi-&f{2);j5L zo7KGzLq~VfoUpoAG+F%G_pI!h0ZdAJK=D$gVHx@w$ACU6wQiv>WR!(~FQ{%?(7*LH z4}F#BwB3h=V__S{OH0Wfx;hX-m%{N8mXrkod?j({3A7Vq^kB$SB@V3>hfh=qw9ke> zAS!mZk0q>ARhie)JbfiR!&v~)cM=K;5$a(@My!TlR448@gT$Z5Z9m1+Mbc62CymT2`e@y{n z73tc~(ep`rAwihi{xbt<#%fZSXRr|VYN*X zJ+Tag zzwc(psqNaYU0u%+;tn)D7a8X@w-!fH+3)YZ{dPIF-S5x-S@|#TXyM`%u0V6hE<7g` zxaHoZh^8^TpX4L20B&#FdE)7{qgRB5Las=W1ka2!lv6HP%{(yQV>y=5!Ew#uojk+j z|HNSv((OE6qiIXmEJw97CfeT)GCzBZ68%eMOEp!*!?yH*JDja zOM?%tq0Gd5-XYhz?~_7(rqL4=&w|(FG}?_^fOQzz;$G!RE6$Uo3^OAK8^X1DpX-2u zl&>c5t9zfxZ|6?fuLygspy^&oUW&i72EcR@mD2USq-&tuG0KQ?lfx7FkUZOW#j#tg zzF)D==m63a0-Ah{+*KNPgVw_+3>jxd-Y{3wU{MaP-J0IX(^P4iLs_bXCFE4*tZuzd z0_hf^PvvrT*`QKTs)$A-FQTqth!FCapU-MW{wU7m=W$?7vm8)kyh+LBsRx~Y!!fms zf!}RBtLrP!Lk1dFhfs>*GDXRk#om`5CM_zB(Q%X;OfHl?*~shAOeT-1427B$b}q%n zaFL2H<(PF%=h0%ki)tD?XHaj0bw-9oRL;D^6P5!?`2~6 z1Yb3FS5ia@H2N%$5k~)NFJ}a5II^URhyP!nzo&76>9< zz)2XkGecoT0(~Xiiz}Og5j@vOLu>tHml<9)fAosg7^Kr z(8-UWVKdyOvRXuBPb{LaJ^VsA^NuOwL$Q#%!bCD{Pv(6%21D6Vf z<*3Sdd?O54xS=Vo7NTTfX>BB05Cl;Kw0yU}-~ayi%kzKg`TA;Oy4&6FAvfOmKzZN| z50vY!yH0L=(2eq--RoZWI{tjqv3=F!9xFfa!_SmIeD{0w^OB5`4x4&hU+voMvV?Nx zM8*ENl4`y8xyLET-G<6-5#-*q1@$F|$=xWff&3g>Q2xRQfd z!9T`5;WCJ;IzdMz?~@~8-dcvYD`rwU9z}eX5)m;$dkQ=Q#gE8wg%t($IR4XeYS*vT zi@eygi-%I1VyJ?Rz7zLn@PkT)m227PZ===gFyn_RSE=#`nkUT7r(Dp>FP^$aMbH&i!!t#(m61@8wUV-`EPgg4 zE)E<@X>@Bm%i>^@6EeZx<@Op1tI!-pVGeKxzS8-`be*jmFaoAlI1rpbWf1T{S6F*l ziCcv$Kr~|kNDaB4HqH|n1=-pH8I46F7vRN|@VNbFA=dD2O3(zVoGOdDvmw^R*5AIr zw4-5qKk``JVI<;fZeUGB28NS12a{jyh`+jI{icQ?2+;x5Kh*f3`oJJ*)WO*!fwvyQ z?#{Ed<2AOg!i!0HuqA0Ny?WK*r@{3Ma$$|=KtZ9+jTJtfONx+P*HFee9Bze^x&KUE zOC~P@CXlmKHbQhEb+Xp~2Cxu6OGtXYN};b;jHF*EPvEG2&)71s%lOxU>&I){j^&a# zaxH7NeA?Ah<+#~HJ$Eby*S5758RXtUXeMmVWaoj4fie@R7vt@Rc0YvaG>kRCWiInSb$_WOv{z@f=Bq={aMn@!$Rq% zu1^Xg>l$;TB1ck0Vx<+@k|&YE<5Z;|ed#U!T3J@DMrNHg!Q9@7DI?C0UPV_}lG@|@ zM~pbG_s9B6=hl0n6nHQfi^Z zXXU-4{i{_(@a2Nwz;He5!@hp+&O`aiTW*z?zx)=xlxIBN=fm!^Q)F-0DXgRi5p<0A z-lHmmF;B2(+tr``kWY|f+i$(;KZQkeD#5npO5i~DLBaE`;7IyFxQ~Wxcx)~0<0FGpymJIsnlR|h8rU4(4@?%}4K1#wDDTxmNaBeIY|3zWXrJ|rk zSVG|v=Wl}%QDo06ci!Gh~qVUwXdU8GwgAh4-FvzE08h%>s~q6gCH`O^^te~#4*Pzpb+`qQmDO@eT?Q#7DRSt$_6i`cqoPe? z!^-&%6{^G7E&;pB(Ufk!?u3}K%p`$JHDtSW4MmcXjdj!s4z-ftD#61k^F>cLNL4lG4Xa(Mzum5h43{c#Jz-tRznMCaLY73nkzv;sz${00`OlTDOvA3foU)6G&@4ZnGh;&%(r00y!$qF+C}5MmbG-ylFD$4sc|OqG z!F81gJ~FT{>R>sG@F#n=L|TAk#yW1|V64uB$xvybE*65lpjg3z5cARs3{=An#aH!I z49r3LZOp&J7_u>nRS}-16$)p$^L_7^*S+jkdC;dE=QaHckN*6lu6y53!F$p3eg<$0 z0p65V^9HstE^aKTK3)ye70d1SP`g7pTX)gcHIAN$P_R%`wbEU!UTjBkdP>T}#*Q4A zuy2+ryh5$Df-SAxap#@#>ev2;yyiE5OP=#%|4zR2OTJkC!QcPi<=FPA4|$0E`YTKc zCe6vlk$Pl56?@9PU;~x^jn}d)>(pkxZv_!~og*RqL zFaG=u_dn*5J7x8EZU2r%m+Im?``E@P3&*XsPw$`-L7786FiGC1%X0LyxIkVn0ew@L z-mX?KCFhE|aaIe-Ov<+u2RDh1iP2m2GH*o~L8P8a&6neY6Q96%?AdEK=XFW2sI~X3 z&}&pFiVb9U_=2I~t>3Fn=9@XTc?#uHQ**3!L?QD2B-#!EWclgBiM=a=$euf%1=HN>kT%wHybP+o{VIZ@Cb($Qvgz$``8 zTCiCazfvucHZFCxte6jVwb}SEag4_NGZY~6T;(akZD%-LLRn37=2#`AMWmbp)8!_6 zZsThz!xe{X0e=l78TL;yNQs0zwL+I$pxA36CnW<#X~webE5wHnM5}=!)YquA=2fiy z<>?m^n9_YOL6`GSfd!I&a0M#}R875k2u7{`PF;)CD_dpGooDTzTvLBR0&Aj(b?73y z`lVZZpGHl@wDgZZMsO=JC7WmJQ{VeXrVUk+*Qnpf++?)C;OdASe^4!IE3U+&`G}xF6}U zwexK4)$)?Kk39St7V~~H-$jGvS(V@tmF6^j#-7~o)taeH89*`8jN*oiY@Lpr<0Q=Z z?^G`PVRjK1z9#v%$am(=Bdy{2%L|MTn!DSS%*AG;^M(Or@nqy0Ij;x7*W)X_^(#^;Xzw}};oUe%@reh}-3u#_PFIb5%YZ0E^<{ba%=l8}^bdCN;dP=(A zl-CB|Yp=gnuK$RS&>wHP<&}=xBKx>S!G+`h(PuwL73C*>%iot{T080{j~Nfq{x3&6 z$L2>MNJ(VN{&>sI!`i&8_e;+^uYK$dH^_(WJjd^O@B6#HNMBt!a!COAy!KH8U;5WS zPwsPM$aGU!rDpj60@Rwr_m6Cu?(6Vk59o5wL5oTmI);Wnicy6T!4E;;&0UAT{a5EX^h{bu{$maw`S-A_| zlH{*a(sm{9v%S~8_B4|LPxtr&1eelr_i9Q~p$AsXs9Qn~EC*=CA?gv4YsKXiFLIag z+UdsH-&cm(3?T+i0E6L!=?-hq62*z)%1gN%Z7V&|Vjm`_NQdKjd^z$r57czfz*GK0 z8BWS19lMm?=+AlT)4KO~CauQ15C=eCx;O7 z>NG%ldX`{1pn*H?H2MQM(Fo^D{Af-1-OHca2h+D)@sCJCs}GbQOWvmI1R1PkIlS+C zq%^EtZc%oEGwTn#@=RgR3TubZfk+0UGQbL8EPcm{RNBuB0&e*nnfXagcko&X#>3+_ z3Ue=!+ZJ}F(gD&7`V>pE;1xPQw<3)>jK#-N1Xd+I24mY*)bfyr;JlK-p1oidW!6gx zBrchQtZToCdT`)6A~9p@`714x=o@Ro@pt>HSx=kI<$~qT(4y`KZR6ncx@By*beq}7 zUd+m|!V9K_oW`-zy*MDb;JA>}J1;3?-)N5FgfjsrA2B^oHdh;ndsc~=LoP5uqF!w5 z2^IbuuF~3-j2v3vXS<@}Ur+8zV#@8>jSF$J<2{*B&E@K=!IQsRUsDHf_ps9XTx;Zp zuI9;X$>_wA72nfqRBMdW8$*(c9T&wY{)#cJ4D-RbCRD9!_ssK&!Fy)T2l5}L4Hz*A ztM$`7sZB6y-l%p@`+l>zpx0i!<|3-xp%NT$YVs=APs8-1CI;a0Ocwj**#ZW`K8SWhEI#gE-#Q7b=F3`CZpO)IKG(nCyG(~4=H zl#Lj*v|N?3P}-%_Q@#HTp4R56ZaC8Lym|JT$NTi`)TTA}OpDDuZTNbVB7|Ds7cXAa z1J&Dl-SUE;m&g3$zbk*7?M2V~X&H?yUafdH-%F==>R7g*Q_SC+-NQC`+KOCJQ>C0e zF*4x9th%54sSn*Lir34B@07P|cdvWj`(C^E>$Pg{wMn6SnmE#+|?l408j&1+;`9IeQt}F75 z-7}f0(O#}qR2HXK$z>qo0X&)$C}}H1v}VEiN&uho&#mI;B$0btmA16s7+uoVV~b*T zGmgBuplcQg?nPIycH|55jz2ep%G$htkPTdcM2_JKK1$hWgE?>CbBVyQcPLmfaYL+r)MlG2HHMNsDOX6Eh76nU(b&D&0D(nw zRm}^hF`t+Fuo<+P!dlbm8qF}KmBjn?Pf*s+XQxJ6wo8h@Q&E4TuWhXn<>CV~J;Drn zQ#dqyZESp7S7*o@@cjX>YD8-C(k4G;Ygi~h)i+9R z(FM8{)0_4mnTVh+io;6Wve=KeCnoVd3KP}*Dd)}R{(C`l&#E%QJFQiIel3SBo$-W> zEj@tqxN3r-Kw06F%&1g5*yQmRT4;S7t%D-0be*kWc|2oZK8vY`Z9-S+k*+v6MmW~N z>{)uNkN2Iwqk`sVV|DXO^Bk>iysmw}_WRKbHB{^~-%kNogLUbjML{n=z*`C2lz{J2 zqP#g3`#jFQcA(#^tY*0S8OeEbbY0Ft*D7>T5)gY-GmE8NrmzT@`y%bRX_jXdBX$DOTux%PYSc&Gf% zt*?~?0w3hL$B4L3Yc?zvMs z-}9dL_!xZoYobS37vq7(Y~OSH?Z+vsWq%Dx-_B>Amv4t?_fNm@IEA&f$3Nza<=H>^ zGxAog7M!A!w9nwBtt~0smAHA+qaLyI<{noe_$|9W^cEoWyz#0}rVKj~wN$ZkaMLN)HpsazP1xQSvxP{)P2%wK~ykUbiP}pwm6N0a?L$ zKc7Owcnw8*t;4hGFg|=A``=y>hKx0L9Fr~!r+@YQU~Dx>O*O+j;hIj*?;k|yH=s$_J-*TY)k zU;al(1x*myXWru@@rTRf&TjE}i02A zgoU!VXESD&bMQ1_=K*-7b!9yc{^NWjjc<@SD~sU_dp@REME2%rW84s3v@hM`$Q5K+ zeIQ~J5H3utcn41wwRL#KPIi|5T!LE9lSC+7#r!;R-TN@l*v{mr?|eVTMQ>ft^i~f;3NMrkvqS*kO7lS2 zXS2F&7qgr&RKbo&nV5JI<+TYWz}&pgvmNd|^BDsMvx3_k;Uw*)7S%Z@L|wKZN|NAd z44X{KE3v^dv7V;<(?SnyQ7c@-owKt$QPHrtVzEKKCNuYGmF3~h^oq{#s7O*i0|K$h z6vi8~P_37?mT#IW-zx5GF6g`GrDAV*7_H7}lGF9fEVRfsXgG4=!bKbR1v^x}Ab)ey zN0qp0(5`E9Fb^kl7wDymihY0a|oA0GdR^f7{_x9q&4zAUYpy=_WfY=g+yb^Ow#g__mF6dRXch9lPxy(v0Y(3g* zVj+lRrEAlfFKp1aerS1t!W?h{8m;p)3cKgu|;@jcUDjxLrFAY zhf|H7v|QF#{>(4_u_>&tyX95bvi4uYdxiP#nWtN1536+a_LyNp`Yx2qoXySa*SLtuKWyYlm`wG(08az|$Ana~y zQ4@-Xr*_Z#ARmwpoSYcnpd#DOb5sM_neo|q2a8RUt0t=np}&dI6O2`Q#cCmk?JBKKzN2L)_q@BfhqcKXmoAxt=*A`R169DwQg3nW8uC~# zu);KRT9E|4J*B(_uc*@e9b7M6@-S^%LmT&*da6-JfC?+bVyoONJFmE{J3W|}?!+EI zKH@xGV`(fK9HF%}*|;mh4&Vt!WD{xs#IWiTilIke)KHX6FR~BwP&bFioXv2S zUD&OI=2k;)DF`!Fz5$RLzagUw_%PedOjt8(0teGx>Cz6ol^dAHd4`e zxY^*^!lQgpD+2s0a$4aL*0Jz7x#GH6+hfb=S*%%;K`*dg0^}G(^IW=Q@{1@vh5o15 z-riX!BO+=%%(+fHMyG_5g2|OaD~$9?V0FOWg?Xpw)k6We|T=K`}cOecb|(Z{{XgsJ+|yA>Mdh_ zffEoXz~gnb_Sf#c@-;m;I{2n}+Ov*qjuyRl%GXR%=rlJ2mD!qcE#p*`4q)ip6xEnd zj~DU05w4?US28Y_l88PD+eq%DpI3fK8hrk4VDLjbI8GC;ex|>Ai>mX9D@_< zCIj~#=vNw7&@m1R@a}MM-GdPcl%GkK@bKKZ=Vzw5{pPRy+RoGZUisr_FZ#(B?5(NK zE%Ax&^PzE#P$_bBJJbiC_2xIc>F9pG{L8;guG=Yi=iyeK9rw}Sc=Q))nDH^~x8LxF zeY$lXOT3Fl&p<~@q^DDDe9wOFPaWOo$J}s#`L&<;QMuo>A3m^xVSo8}i#+V1pCmu` zoF9}AyZ71V`bjy&!jYa z*EDfYu1GxGpEdGuAKn38>h$%noRI05bk_}i)Wf{6Og-;8DDRCQNB%)NmN1#P7W})v zzJp2TpB*hO9o!_p`}O-U+K1WYTc#N?-bf{>31+fK@8h+473=i;1cOW~M&7cwkM?j) z4#?LcA&iMHR2lXK!P?3GrNq6{{<=FmNc1FNRrlnVz~2Gq&__9N?KsYH&N9AI3#qXe zJ~}kIT&u%}j6>u8a`IV3&fPN{TmL;pU&rG-)n zo>CR4Y;UZ#x9Y2^*9KlIz@i9=fQ@70VS3g_fn`Fo3o|ldO_*ECqdv-1_L(UQByp}@ zz8ufsh<($FBaDexug){)<;k}1M?DIJCPot%QPhMGe?Cn>#$^5o(|@- zu6qoz!Qh027KpeU!)bqrdr9}{y&J>RdEHr&TBR{qJN0m5f?|!35E~fghRLp5%R`(t zafo+3DGHPbk7vOdRFVrYtpOi>_war`x%D@pO6(F=U|k{}Zo^_PytmIynKld~G3yf% zdYbHLC$-2CFZ8`y;vjnyCICYZha#MLFA9;!3c6)qGq+OPLcvErXw_@|3squQ zcm$UL76s$W>Fk9AD~40e(mc79SrP#jEY+-4IWJtiAUw;hjih;2n|q>p@0w>}mXjSV zInn;TvM8PzRd@Laj1LhR1y%Gw5!Jfe#__)QyhncHMZYEweZ*guKT7-kcf3=6`_@-m zlt6>&viQDjn0vB86>f}>`EZxEmd~r6>jr1$)=^*@>E3197CC)3cjm|1p8d67{Z;wq ze{fvRZc{v;`OIg?V;=KZx$U;w0#8`k^90`g+47QG5v9NTzkj0~+kX4?ZwS<9&K<^S zd2mP08_fR_@`=1tRw6$+(Y}80Isaa6`ob?zCG?o~F*iIw{^JinRlf7dKOjHz%P*C8 z-+sG$!{gl8Nj~O550EE(#Z7Y4qmHX0&GsETW%a+j{T(91p3wX!vFf*mug95vr|YVISBn_L;$1ERF0}Oj(QqI@D=paoTAK&gD^O8j))ZUy#RjO zyv?Y3+-R9c$+a{Vbh&CX8p5194wiVHc5Rf6aY+UZn;-beI zvNAUJtNggCw1COX3=4z!$o{b|B*Z5r$xVNi%7ngLjAG_2uNq2iD71H>*(~ zZRwLfwxlZU+>*ji00$Du@|hKN=0NABOR@}|Kz$xJL`GbqDuT0dY4>nSKHNgwOwuhk7}=Y{tN%e z3hS-E{1W+--rl)Ws$cV}SIftL;&Eq$HV^BIUi1s{+~+<|p7D%l%IkMZ=AmmI^#z|V zkNxtSj>}!$wRW7%+iq*;qh6Vk^haq;;rxbw_)q1hp7GS9@A=5e(5V; zEpNT;ox9gNY&KJv(X)!g2)>*qUee!5(3SKHNgwOwsj+XtgQ+8h-4#3EM~jZr!&jq1m1^v)t~gkYtUt5A6k2;k+**(=feWl2v>DBV=W0Q2<*F9T zs>f@n<&p94sAM?TX7OJ;kDB|++;S>?Tg)nERpC;uL$l~ETex*-nF+WUqma^iWT!T5>>8MWX$Hs65dTER^nMq*;#1|cjJJONE3^-R$Bfy0lv+zx@7T2>@ zjdE4%DIL@^%8yUXwT5Rk@*$B20~~F+PtA(N>UGV+qi4!-Yzj~DFbeC0V1(C}xujEH zdDO!irh;4!oBM?G%n}Hs(wQ)LKN&Ky!1`K{V{AAV*4g&VRvD4KST$GMKc}bW{o2AR z*XFENJLW}bwcS<)va090F6LQoeVm?d0Vh=9rIpSPs-F6HTI(HGa`@L!C3r|`TvJ6< zuDq=&_Ss_AT%G||0UyoNVzoSUInlxh@63Ynu4k}v`}&Hnv#qIlB)CqbEsN$iF34*I zZed)@HY~1fNiLw0;^`LEg3r$M{sqSbG;hVU8*j5gb+N-_8VeCiahOyen76IJ?c@9)K@FQ^tQL(rtcqd{YS{X z?{hD$Fnp!$$Dj9;pc%|*hbI{OYi9J(k*(R<*QKu#%RJZ|X7=l^dW}5oSwALUbJLf| zm9~dHc&Fq)SpLZE-8(${{IB{(i-yttxAYfa?%S>+{Bf=EAgxvoOaH{GwwuUt)X!7o zty@^nD#JNmmu>UOh3HGH;&8R3PxI`Q*`L82RCBE~DG5;CK#~)4YosltYisfj z7K`fGf~Kf+0`FFgD?F`>dly%~-(EPSp+v+`gc)+S#*fa1oF?Z$zbaUHq*1!F}nnG53#0MX&<(Jo{-2wuZ&drfz4_o@@}86f#Ba zyqNaK3G%p?3Vt_7)#e=LJEbGQm`bDLZgR$@Gpl=1hzF>rfrqgIv7EtMik$6&lO#%= zBhs!$xO4kw3)m38f*jWE24kD-oO5-tPK?45->VTGytXi>Zk;L9-|fOR`hExGh{82Y z@b)8QxZw-rv5i&cy~w&5tP;FlaCq6$+TJ|5VBW`VJ52yJ6WXiorA_N2uMfSgQ_u(f z#WxgkT^ns|u-tiKC+Z#WxNGir4LRIuvz4g2KKD8Ibxn0&)XTp?Bn$BqGIsN}Ufjrb zDuEA8Mk+~`L!AV#(J=>|P};)o5K*Oa5{|}Xt(}l^uePi0YP;I5w*SYpUwhuq$Oqbf zZ|8OU&#!-@{Lj!{b?dG2oM$~-K9F|rd*53=>OnWkr#$qN<@%jx@dHs-fA$xDNfp-r zQSFJ}^MA^3z2VLBKdOD(zk1TnOZzUl+OD>%?P|N)uC@#yf$(3^%M9V{OV_m+~w$KC2hrc-WEAGal<*qSVl!nAVH6|m4pYtzWvn?D^VTih z+_b+M9!>XbdYy8>Ml82*3-2i{?$d-kA@$b6;y76A<|*}EU}Ax{jGitQ7TAc0<qIr)M2}*TtT>IhkScHmlx>A}3nWO=6vGk4-w4_r3SM0D(Q@nu~W& z-r!<;U$94u_!PXhCHFI=fT$wzHU}zz9B7?ZEf1;?U~`G=8PH*-kG=M6+idO^6)SJV);PY zfB1oC$ot;+ez|bBi*hns_2K3bVZPR)?~F_!{`Tw7ngXO>TJ0A3(90E6ip`!C<{P(4 zgRN~*!Sx^g!+$Iv_wgSu5BjJF$%nGF%E14h@A{V@J`u^{IpouT*hjQRx0lu6XEh^O z>2XS3SpgT)@kc!FYvlz${1o}<8y+AZ%J%qw^d0hJKm9_B9HBSifR$eV!oHd=T##d% zvL^kDxYc{_45ZbgI21%HJpxt60VPsiw*$0qLr*&@dY=&7{4!>ASw0n~UG;6&MO$}}XylWXSqYSA1O zafk}T&>j?r;~VJj?}XM9;ur55}E@>Q$4tbJtfeY=&O zI?8aB`LE#BB^IeJ+-DRJ7@+`IY^^f(7GBok=h=dXE3d^fhyfvNK)ehOBl#ME6PPF%z^H=wv*v*w)5ov+=XCH~M_7#=Ps~cHsJB}7=bj7Kj$&$(U=X8JXFXw5Zm^puWV-y<|QXNG(c z*oE&U37Sq^DCwO;c+!G-UoOfPAA*P2lwO$aiwPw4wj)4Q#)@p?>#kZIo{}}_sDc%W zp2H!1&aZI}`Pv@dDdge2>t*OK3Fvu#tZrI;Eo5)rU=^}I|J-?6_cYf7GaCAq4p029 z^I(*pUt{bv8jKID2k`2y24Z6<{d@P^0d6%yqWjN;<6Ys`WrmgTf`*PB7Uz$1?^%-Z zc^|eitc6Gzg}e_ax6xPh8R1H~-^t6EQwc8z*0g(x?9GYe*#}RNLyLYse9!4Kk)#er zBEvpDfBaHP2*3x|NX}oIf!27%<}|lM^r#-_Yi#@9_j9iUe!lJ%uafuOe!F}i?bmrBeZ2h4FTF@U6zvahf3H0L+rLAe{Zl{d z-<`Maj@xns?LN>tj2~%B;>qbEImke+s0GcC)c<+>tG{m_27WBW*vByTpz*}-{Syi9 z^7#koZ8tx_#-35pG5^;I4$X(!m zl1XZfKF{NgT_4@Jf}Yv%)7bX5^I@H1Z~xQ)*5xR|-kzN%SLpKkiwtxD{4oY9{=Lt6 z+%+RF-^1q-&-1PQy%}#~oKuWb(%25{nXZq#HwL<8k1XjZ&9W!A3s2nJNPhOkS z3@qmTRN!g4ik{fo(M77De5c!X&S#f;-_}=q?nE!H{#v^|O)HZZ8m2eF9d6ZOqn8$o z9XCXZoY>}F-7Z#zurfXymZxcS1*a;!?fDZdQ>{wu3a=nH*gVmjxdiwmEG9gkv&>;h z)xJeKrL{+3evR|0a8v=$T|9*R{_qKZ)I1uo1x_1%L|@_#A5D}%{qHjA190+#9qi-zWE!P7mrcITb;#K-bU zT76|IR=O;emS3~HP4M38`>wBM9WGdte(icXVS5lTQYKPtUdxKA$#L@_&zKidBJY7# z+i8qoNXn_@e=J^|R_8mB@Rq%MdHx$2Np&J$16{F3p0fkOw!u7FCD+zJogt1F%w^x; z`ejy6f6Gfz8Ube5D(h}8Tu@jLo{Tmqn?84Oo2mx4*9;5g)aZ7@KK+;Rt{7v%p-|+SF!ECJ}@K-+m z8{}>8dZ#{r>(M@a&f0=#q+D_Oa!vQ}&YI3jv?E=0e(RA9M(6%uH~%kr!rzl8e%)8e zw|&Evt@)L-U%mCUJJ0HOYDHkB1FO;U%?Wa@Hk>;nMS$7$_%&y9ZwtM4xstC$6awk6 zJqN;@^MK>pDf9X#(sF~j@}Rb#S>?9Df3bP7T5g4xW=7P{CgqOVxC{X%$S79*zBn&x zIgmUy%+Ew;1ym>jo~!0w(%#Qqovyg-aSO*Y!M-3o}sE<()RnZ!fV8cy(N?$^2ZHwX(vQ$cs?Af zFguKj^BcVm>(uI3&COniLf$8uEEH-^bTBi>#``2CvY5${AcH93tH|{Uby#_E4 z;lPwj!^=1|K>GsUloM8mHa@l)&dQ#cD_)K7tdq$xWd{7~1U`n-ly#3<-wQm$E994% zm2$EE?%CGp)zx#xb&l0=!g8_;@UEuA7i`tMG|No=fHD#l7OTjF}KFl`&Zwbq!tlQ!WWe>jnd*S( zN$1yI8|D?@4gvCaUVf`wY5SF*{25o$x!#;7*K0vhHhNuve%lPSvuZpM%w&}H9WkBDPP6>_I^$4FzxdLpKE{3bRY`r+&$EN zUHh@@i=Y1YIL>`9mmC&~#)fN@eIjK3JUpBdtfy{oCHZ;e5#=0tdn#ROn2XC8OO-5d z6L0bRG=bOedr$?x=k@ZnCHZ znhLZAEVDdY?wUN0bRy$o!ZDF7fr|8taekkfcXzKeXU=DHs`159No(c;B>1e|8L07a z7n1yt#C}XpM6iftPvb;vyM8QIYpdB6S~V=srIH}7`WTFx z=WkA>w}M-K!cKQ@UgoCht2M`B{xhzc;KtfqgVIM2+iHZ3;g)6{F`>^qO|a4~i{}a} z4AdHeoFva98LR)s6cOvpV!wEQyvfX~`mE-QuGAn>t4Hyc)?gH;w@#fzxeHZeJgifV&jDNx{+@F2!i zVp=n+nqiJ5a+I`hufmCZ7YIicIjfpO)AB>+Ht#Jg;fX=Ddu8hSE^%_0;X$Pp9t5j- zD|JtV0_ZEz*1uM_@DWd`$Q7RdMvt53tuAJJsys9J%sW))>tdGSyI*rR{qBx(>U~-z z&P7Lkp;byo-cRIwQVGe*NbGO7{9@d(k8GVU%q+Q%;V1m#Gb&o&#*7Ih%hVk`YuQ^gA^}D`) zNM2GUT!;ec%0eCn}Df;;c5Z z4W4tX)?6^w=?XkwciwrY(7sF$whN+Dfkk?DV^H(XzvZoOlgHfjIJx152g+j~`(^Ub zhdxBEzwSEuK-;gs{N?hJUwxT;{}242yr<=X&yyLlW{VW?ykb@fbx$zf+ds7)_b{-D z6=A{TTQfYDo5`%>lqVM&oz^fAwE2JaxBMgdj_-S_{KLQVweqlsev*9Tk>|CJ?IpLo zT7Kq5zbZfe(=Xi3{eAFusM!ElP*97HI%m(lq<75t%9RxFRRyBu6iz(jbME>cL=tUP zlF?1B;9>9tR`pJ{zfO!?x4tH$x69e$LY|+~E-{8t;AGYCv-QjsUFCQ5q?O|L+8>G6 zpCq1A!UNp_by+*$KxjJXU<)Y@pn2$ZsM1Vq68!i8=+n zqHBDVCq5u@iS-Cj&Gz)tY2a=(oYbnQC&pLQNasTL>d(oI1`zkWmW`f?N~1MyLX;nI z9qI}VxCJ#1a6R)5-TS<(;%iQO2gih{IIp?i@#cX2X_EPKCx~>fgWpoK`Za(S}~0miH(&N zdc~t6?fr}qZNOixYRqT~&}3J3i-a;P;(XU7gNbqry|*^AWf5lgS!%Vy#rV zGhA8Iz?Hqp}AhKYg@-c;9ZANW)dQ^?}Aj zMsa1;#ua@P9eZanZ-QWw)L3;!UC_@x$ z7nYacJS^o}lhGyNN38&;dwiX(C&L@{mW-5*c< zqQ_ZrBC#+{W!7LK7p{Rp=mH9WIrA}iFUhFJB0pj9nK2j2o#n^{KKjppl-%e4^aWRve#=|5 zSdF+^mGvI zEpLB^e9aU8sVaRBd&nos$35tQ@@b#+@p7Mg-Ba#&?S17VKK#CM?QQSW_uqW|8+RVm zcgb(Q@y+srUwDc9!OpAP3@wZTK*^Mj7uJKa0C1ebq!4$D-0R~%1G}=Qkur{5v-wfL zqaZ9J-<2wI?h|=sk?(o>zmu6sR)w{66(j zrDs$%2!33b0HB=1C`QsD`p6PPgu=X`E$eNySyLd>GS)-tjDUZ@WL&y=+c%+1) znZ`AsaS}a)$JIK>mBXr0CUA0#|7xNsHXno=17%9S&j>8uLyqtxG$E!gHP+kysQ#G> zI)zNfk;(A0tRv6vC+#VX12NC?TuJwYJX0e&A@9i!MuU8S6pik8KB$c2>gmzGp@ld= z<4)3BWY`NOQsAVQ*Iwp9r=%&2gc$>jYkfko++jRs%%rdQ5l4LfUmI1R*?_`7MS0tzbIt{Tw{O<4#K4 zzoO=y{#(PvPtys{TXk=!!^EzfYA@*9xv24MKi9C*D#Z76Dm9Rt~eq~ zQaDUIUSi|a9tIUv>R359ub6s!kq;QwYjV<*%cOb(WNP{g_uB8OD{ywTJI^0n0r<}sPL%3B&+0bWdlhNc$*X8 zHz;is7Rs8pGxkUcVp&qr03RpvpSEuCx4qdsSh}`4cia11HwxN{ekIVbgcZW(%KV(! z#-ZoNNx(_bWHPI#hSe6W3mEV;O0Qju@!&en)F}%On3`8wo zn)y1|o0aEaEABwq^^nX&>lEHpWGrf;B*tdOD{&aa9yBHK4Lb$w^>26+Jk)VU9`_f$ zr1KnfpuwzFB;Ky8d)6szwxM~B7q&AMEqcLgFY)Cmi6lHS#G52nZKZK9p1`|U-3%$)mvX9H$U^oLg)ehGEd%>X5=n0Wp62VKD7$6j6|4v zW5RYxgiLbqPDyJfQ2}z@=PCTOs4_Kq)J}M=i62WZ+>|KMVUe7ZG8c8}|>X zY+ZV}<5S{(eUA~347L0ChoS8AuT2q{17S6pKesU?jCphK|xKY0@0)@BFck#LMUTjM5 zF$-c|QXb$Udjpf6A~=L5^%J$L_pzLnbB<6KFR5}=S^WaD!R zlEWv@Q?X+U3@+nCV<+jJr=r3mbAk%XT})k!+?Ykx@FU9Da}F9VB(kUQZDu3DE$p-r zTzbE>c-I=CH0Dh(!qOO_GL(&U>pOYqa>6BoD_v&{Z%tQJXXaybL(5XT@rQ8Ih+hgt zInYmU((n-;ALHm47Y&!8ROp?nc_rI?<~sY@On^&C78|#+FVZ)L!38r) z&?I!i+gv?*xkLf1VhUWT=hI_6$Ej(rpby{;*ls27If-i~yCk1)(fuS8N_TU>&6C@+XI!f9nQlu03 z4)wqRtiup6K#dG2eN<K4G}x7O>nfXDl{8d&UA5kkKSlXp^k z%YPZh>q2@X^!VFyT(N;_Hr`0<1yU4u!VzHvkR8Uz1|2r(vnURMKXt2pfzwvH8qp$m7lPl33Gbr(B^#wO=&1 zWMpE5=0K3h03!baxsL1N#fmEPbv2~2bd1mjFm+3{4!hHtkyNCSLv3;xICcti4z< zScGT%ngCpD6&Xa699Bd~7(S&U2Kb@Y5I&=lcEHJVnwMO`llx@?;a?&A**N>NT8oD_ z#W`xWHXe2ePsa?a`ONdnnt;Bp?rE*WA(bKr+}~So!<7ZkWS-#yg{rMj^KQ1iJT>8U zXURU<7~Zxse-$Q6ueH(3sMQH~zn?*24X3Gj!8HG@S;lwQw>h@CFP;b6M{m%xMvr{M z53Tf=JP1+@2U$pm^F2K~)qY#03jT&xDcya}byD|V;8Vh^OM z;T1XW?pZ~y?HUERCJ2~jwAt7;n?M6SA2x-83U#P3Dg@suD9~YrvZ?_c_lnaJ!ZS}j zXsZF#mCO!}$lyT?wu8lg?dew*D!lxu5y4Ej0ekR)W$Eamvs+idVy(IfD1aB8r&{o# zRAd>%JrtbHoYD?zdWQBD9u*(!D8Nb>i8;J<39E=dM>@n{S-&VnBvgj7fQsG z6jpj2Ynmt5!r;CpS`WH=PUHSl1753tg78dw9htkx&s&8NY89xwW?pYbU@%meQAkt{ zbv!41?jmb)5Wk7`rc;C*KxH`_beF;N$GOf!sO7vd1IUTip(u`D>h)~l@C*%-yaxcU z!O+ezG(2PqntneOHzro3xwU7_potolQ%<{Q_=yj|hne_N+@*!Ik|9(qw>{;om)+w! zz_X=qoNYs%oPr;2z~5J_*A~%+gfr!?FjA&x>QN;+hCoG8P_2CQ}~c^+7?UrI@9E7mV;c^f%8D zK9u`h2SE^484aVN#mj}AYD$zAcW6H#-1g)IW!5KCD!pKqm`7_uc<&{-j$J_4SJ%Ny*C?QO71-VT$ zbh$>pP7@~D_pY$AI7qQ|I61ih!N(LfRY|dytn3(tec&yXK7^(faI&8l5cWy(Q9cz% z11)9k#wsE*@Q^geP}22TOGUV@t?>fkbgK&MR#Pup;hv_eo|FrQ&rm$a-1`l~F4p_)qpe zHW+TzU>)~H+J;?}!y{b)EvVGc=CX66Es#^zbpvCK^mAtTqbrl3L5+V+#;4T)q{q8d zuO6$sZ=RiQnK8Pi`9#4)8o_E7=E^9K2;gXj%L;fJkBL-<)PerHrBcr{u-({BTIw8% z5>i>UqafjhYwJjbTY|@IU8a+srl7TBdZ@5YLr&mYdu7s%cPujMr-)e^L&F211O3)OtsD{t(?8ndJ*tq*m zDKxs^!;&ztB!H#ghw=Lb71LQ&fto;j+cO*QnAI?hf@9zpTz}H9&CKI&va^Y@H~2sa zr-%`V{yI;8z=*v-CiWpi!kO-o6;{b}E5$>X_tFe9eU=CX=Q9@+E}Gm}oB7Qs%NOU% z8IJxA+$lIZtKpz|)Z>(gl{EsKe%c=1Lgw^6O4c+DG`S9QAK=i&vhiF66{w~piPgRP zBr}nOM7$&yR}jzHto;~JS!+bJUV&?GbXoP+=`+^EO|!!2eI~|U>z?48o*L6ipG)pn zDrJ~pdnF++TbFa$TT*+ax%A`XGsgbXxTxri{5CJuUD>L3MsJe(s*}&lnp=-~wiVzE0##BL_ zQ2a(if`i$ZWpoNb&QZ1(RLK}efu;SsVjP^GSprGO@%g~sssnyk;Ai#kidTX2->ON; zOY$ln+O`bOBr)We$-HS$&}$uj0dqxz5eCTDoZyM}ar(YW0^iyj!0Nz4nRiNS;!>Ia zYhFJ!B-DsrF9 zTpzo~j5y+!R8~2*E+SvWBT}?8`(xgu+&YOOF@&pfoVo^_i>*PU2Ajgd4iNB4zu)&2 z0jtkFtrj9Z<2VK4ypDg9Eb2AFv&Z~ncQ)XGORD5p{j%a~M!YC~ZwcYog*BUBL3 z%NVzfd!~`+a2SzhlqT9e-+!8>FmBeG!eR4+B;f3Smu@U12MxREQFG79Iz%wBT6}ku zi78VKlu7|K&O8QD5%<6ke7pmXM!+N^tnAAtS{zEuoT1rYUN7)v#e^+Y9j#r~^+TXQ3yTZm7pkWF6XlGXiN9~Nc~Wf;aiTY< zjRa|Qp;#`qIcspup0Tk~cmXo`Qs_UVIg~5hP|K4E+9SsTX->BiUF6_FM+g(!AF_w1 zLf+#%oV*a4An>4&XH%vuCf(Fd2N55a$x&et*56rSIlNdt3+Md>^m>k{tctbj#_b>| z_U-|rQlp#h{z1c6-8QV@U>SS<$=5<5r9ODm6*@T8=4p? zLzOrQHyg2m5l@(m7nv}r%Es6Tx>lUoTDQvru!0%WY3qcr_VW?}qe9Uc35L=s4Gm&* zpH%HN_ z!9@my7IB47gll687A>TnPlAC`ke+wXno#7U{niLtV>D-{XIfCftVSpHK1WCsJ!N@3 zCnr`aeXAa9es4HBm*U^4hixa2EbaxJVHnX^bQXB}`pd`%YFt2=|das^D^H9sxm{CQcELL2s1I4x@ zbCL&wYnmEE*-QYPbUqtB(rTl)>}M%9t1{Mrax6nosNC}LCkz2Z4)dCe1&M_~w|h(} zln~q`ymK)=vnDQe0p+n?wy?lAg?2%hac1@nAC{e`Qpdq#qWst;gjV7i48>&8pi8Hx zmd6ZQZOnMJXb;eGdMuo*g2tS%P}0SVx?UWoR*j$RNRfskCXCyWK5A%LYZQ5cwRoO- zoLU(Y1aD58^8)@+C4~GoKs(;Y{$3acXh_k)w+;%oDx*y})1x#5UKxotHOQ( zY-$Hz?zsg@G-^JHvLyNsfT5V z0215NUa$@PoQf55v6n8ayYxJfj0%NXy!axNKH~?$j~3^ZD84lL4}deD#VDbI^B|EX zQ4zTS!;sQ59=8G^jmKPgI6NEhVTFQ0BV+b{%@7Xf&2SXi=pEBFn7rT4(_TP(TI2+j zRtop+bpgEPY#VdUvO$F$bGD5=%mQaxBM?TN6=9IA&ucDPpUcXEX=fb_C>QWP@*X>9 zGo{ifzrd2Ly(h?(%9Gx6ZAatG;iYNRve35%p_+N;Lv?%iGE$*|kwN!ttsWWG6!jJY z+U{$ivX(Aj`)fs=hXpAj3yfsNQHw?#?8&B}uJF=U!y_%Y)aaYauag#VG$S}p?y&iRzWLeOZghfkq+!8@Fail=V;YEc zoPYr%1asAMt~rRF?f#lz0>ZP&OkrFj)5S}tcu|3i_fS+yXGN$(cVN(z9*4)4!75w_ zX}0)m;#ov$XV|OdGf8FwoN#*I>su(8V_{1Sk!7N&5K2Fc9;odN;nEALE!sjWTYt%bHL*muUZB{fCUPR&3&?b z2Mqx-kEOmyu=Ob{h0eb4dBH#njTM+5lvehoynaps5(J~Xc5@;QR2)nIn_Uod?|8M5 zO{KW7T4CVn*D`_HL1STOZFLs6BF7nCu|Huj8P|WXdRh^yG(HKuR?h%E7u~+^-=&P- z*FkAsEVQc>&l{^XuB%n{LRH7&C06*SBA8?F#MQ7!=I}t@y`?8)!8C0B$zs}Cx9}ed zw%o!DDb?o|k&+`&O5dkfqy=%xiUi*)*9K#B7$D4D1=146D1uoPRINvjVkDq7A!v<# zE|!lAFN5|qc-D9yac7bcMDlv;GuIW*!x^<0UF=cj0QHdoE*t@_Tzd=Gq@`;19*K|s zAp>DpLo?7-tZ}MBoA!a@L9IP`aqH;hKqPdQpXQ3xZrZOscN6CCldZs}~C@kz#W>g~7xo#j}i3*T)W6$E5uADOug7&;) z{evy)=aJU?QU48G-s<(ks1Dfcrcf0#kf||ts=fB zctj4p_%5i>yLbYc0xNhm;7bmPV+b{c2(=!U5)lm;H$R(k!#o;cAek~r(Y~5BeTxt< zEhy6FxM4vgfR_yPgiP5bJbkScDAAV{MxruC;S0I8Jj#O+At>-+aJBrLX1HkmG%vA5 zbwD}fV?obq^F5(zSo$X&HHjxZ;4xNv^uhs?i$8IZv@6Q`=Kq zDHp&XXb~#lF%6%}7C~DTJS+CB6y|=}$CH!ZNV61#+^_4v%@Hw?LP5Rwi$_OIUEiU& z^t9Yy!o2>qQ&x$~Ebx|%NBNyaRy=pqQ;2#4J8{~)?vt-~YiC>V7V-tGwMG?`RCi#p zA~F`?2IVs;jje44d5aNP6;VA~|7|RMg`7p^abxI&uU@%!(DTRvFRD}~7wCBoGehT# zP)EvLPP@rArE*ph##QZ2N#H4)Pk(csH7F zwY9kBZ+!?v7Vl9S_jW%CS&cNc3q2Rs&=GRyL!f$1qOeQje}9F3`MvuUbv`m zBQCPmNtvSxb8%WQh2aAEygJ@fFPSWd+639R9djkg@a2YU{M`)vOttY4aHb!vfon$h z@klye0HLQm&i%Us{3ykGND}4$bB9!GON_lBoEcjWaBWdoz<`H_buALs}`QO2C zI-VnGJ{xfai4H3NbtK3HD~&N(1iE)gpPk9qbY`A}=WMOL4wxk)kv&U_YZeM zq^wdpMLAnFhdxIZ2f`42V?b2=C|oBwqaGS(V!R~gF4)&1dsZRoJ(=a8T0eldgH!Dn zT&jyzJ+qOtW>Z|xaZ2^I3hS|mbnwjM>BpH36XF6-o~yGk5s5>~%Q?z+_wLWMOTx>* z!aw3Ls30U`>&C~))ntJp&hu5WMOZw4q?`9Sco2q`DS_D_?2N7$945Nkd;%drew*KaPSChO4Yj$;B=AA3iE|Q8@tOs$`b1RSs$x4GIhh(?#nF6Jk zI9d+ujdP~zaN@cHzEkoH_V{(6i-XTXb!hB{4p%yhAB4f$rnQwJx>Y<}+Mkp97>ytk zt3f8uuqpAty&5~x$Zp+RlW|}95k!i%H3UT6O2%*t3kzjhl1NM$VCR=fk*w_7wIwZE z2o%l_hHL1Jj0Z^vgctHSw+sFZLv0WxX0Qwj?1GCdVw|d z1|=FCa0>6AlQ15G$gy*ucTom_NunpDRa|cKu14kW%$LdlXK{Wj9>LL}PU%snqoYr^bDm}-Q)iqm{EM3bCm7{l3BzyVUN9~>~zIJggyM&>29_BUDV6GDY zVb7a-m_Y8@%opMyOdBxbj@RmlM{s)x8aDD=1};*{zF>gdo>KGR7@h)zZMSXu^Qr=y z*1)-v7-dCy{)L-kRg01d!FayZZiDt4T7sD2-OgIH4bxksxImax{r|J~Z?V=c-FXl= zs@^%*`o6vY-*&g@P8^ds-7;>+4KZ=smPKMWNvCtRJDpBnC0sP!s5|PzMI$5-;sOZ? zxI~=c4nhENNDK)eq6iVrC;WTod?EXM!1Fi#c)0f?bnS?B%eNl3sT_BRDmV`a97+nU9!kg~D$nk_-FvxFRP6QLy9dnW3rep? zpGNRcw;RlJSrEaJ=>-HB4ob`92Uym%sr&V_voP1RpeRN#ZQVoUwT^W?jfjuydr!|# zx}To_2IoiSGGg8Xf0;Wk=G}#P!eG--kjxp30^H{F?h*6Dn8*$G3aZZ3aUu81qB#ei zRu_Cgy(4dPN2Ni+`&|W7W4j&D87mqb1(P}=P)ds8sk123d}jpD?M|;KWJjo#B*6>= zWCn~qJNvU3O0|jQJr##Vb3$%EooO-PG3pagAjEU@5o90mQh3NcLeWIX*X-;nE}(a= zEP}JQJ97h;oktovOlAndTyyTK(KV%C5_wwTs&v5O6>pquZLG3N0^Q_d_c9VEj|1yW zU4+QuASfXL%gm*?K32qchteX?tgxV0-xGKW&RB`+rmHlYP+@vy9$E29@5r%46jCd5 zYL0r=JVnIn6xvP{Gxo;h8F*QJpHb}>&!DIE;bfnGIH7KW!zMh( z^o&{+_3&JGoC#s1P@U_0Y#tSnTjv$s7t#_^ely{AxboZx}={&%cU zd(p8+Ug}U9_v?R^`vl`F^Eac_+bmc|^oLtCXW9rAaxh!8scD zX@m{3iLmLq+tE|DbR?lgjKDIR~dq!XJ);w>Rx7X7t^a=^@BJ-o$RGX!^QZ}N5 zq;_FzpMtezTE@157Hl|h4e|@4Q8o|fLJb2fqnMnh9$6}@USwfzuH$wE}UOljl zTt0`TczuUS^(&T-s#SrGyyr(vun++1!&vNJ9k9x97 z+)Fu3#T;ks-L{{2APdJ&i>D3&X)>k&0u(|+SivZ8fLbq0<-94ZnRVZn%eF20NLt!q zd;!7h{UdPgVToE9$8uY|c1gG}pEDXJn8WJhavoIXlK{s&fHjm#60G>zr#1Cup5=B+ zx=eKcHS4D@!i9wpgi8`C^7Gv4Nsg33!F9^I&Ja#|K5NBr^P_vUTp1rr#=X3vg0M?T z$7XpZf0v}>=x>8=m39a2`71rmB_2YLfbhUHh}*18=EtMu6; zZr+v<<|knIAf%TenEG6kP$J8-^H?kY;9QEYIq*Q4HPV(c&9u92z4&+WA_>-xqnrik ziOW5%VBXFIkbppUKDJu2;^0U+LK;7|+diujeKB*)m+o z5iTO!x6Jm|D#JHpbMaz|UE$eEG}yiDz~8LY>VDptU%A=;m7B-sMaoCd?2JR1&&njr zWtz8sb}KK=*UD>De5_pp0qldDVv>ok(Q8+hF=;rKn|1lLCCi+7eK+%5=X-OJzQlM# zabw=G=R!g*$j@_uztg~$(<#z(d*FrRhs61r@p5Hy%l;*rL(gLHuQrWwg9j5}W}al> zt9R(qx(9q+WX{Y-W#X5`X?Zct4RFfG;{Mt*ju{Q?E*Iwg@|)6pIhPxF@*d^?A*(0q zB1w{+zb5z3**r>i=!C40e>&*`zj9~Ix4efi5T~UsW6YBje7L|u5=&g3&FGl2>{XfP zHU2zlejEfUTYA@!s%S5f1y>ue(pt!*^{dr>o=5?(u!0e@tn+UPNh3C1=ZunFwD{4& z$105O$<*AiG!8|eu}Cer(^mt!EMRg=%ItTuf+SjAo0uM#Q zG&WRQ;}tj+#9eno^JI|+A!a=)IByQ3%p1oUV9qM5>H)q_AD$FuHmy1BxHx!s)4D+!IzaMD^W$r#CX98OSs(A7-LOzIq)i7U6iI{X3D@5g&K$ zKdNXp=3H%_Y?Y#8wK&%q7N^t0^z3{#%`&@r{zy|Vz;(=*V2byy0`5&Y=U`=6uUy)h zI%!@FoH3mtd7@kE8SZLlLEUfM@}{s~rkIguX3 z7)rHU^D)NjfQ8NV(8{Ko8wSSYdAgV%Q-N4HyQ0_N$O*H&e(|$&E{~dPr4^ZbbFTrb zK6|YS&shT=c!WUYLI>V5uQRg2X?XArlQ>sihhUatQixs?mzrF$2(NPHjb6G7gP&>` z3Wyi>pjUN=!crnM`@!(9a7<)TfnHfC?gXdluG%L$XVR`^~qZcQ^T30ECJY+Zi zrIk>VCz$mKOnOEI*=m)r>4~6RaHQ~fokK;1YSf6>u-08GSszv@bt$sua4BrT-dcg~NnuTC`vbHkQ$`JNL&N4a_P-Nv>=I@>BJA3{fIhRG2 z>bs-eRg2;`%oEcJ>ihM*D?J+PW^U!Xckib8dMm1_Du1#4(XqiRe8TXcUSCfSCtq_0 z`>{krwH8&D*Kl>uL0xG!h4iB>W2VA@#oC-@c!V@8} z9h7M4%|oPrJV_mF0`*_qR`Vlyy&)91LjtF_=06v>c;!`?`_|8ue!G+x}civ z0iL~`HqWKDM|X(d5e{Dq_U05G_LAi8x<~G4hW7^E)N1r+SJ6#nuZz-)qgsuMhpRl* zDc9+sq*Dy3FvFMD$+(U)>MD3tlZboq!!wQ=G9^6LC)TULGcIhCw}U1R8a~Eg5Alby zM*irSCySEWTSRY;_s{SqQs?;W>z@Y>j{ATIHhwWrZVs*0&@lk-WN#9;8e35zhn-cq zH@5f@(x2|Hu@OCf70Mvj>j5&bLozR?a>+O2G-mbUn z?RvZ3uD9#$db{4Px9jctIe49VyT}xR;@$=}?(Shh^Td2wj}S8t3-;D6hr+{JYS^MR znXA#Onc~&q1-zgySV6V56D)pyU7{hd+Z^0899llz_tJCdn!RpQgI!t^x>-upYgXKX za}yrm|3cHx9#z7P6A=`-A*>SIwkxbQG@G{RclU&P-b0yl0hzNz%Q>sS?X1|A49G}( zu&|%;0DQN>O24(J)D`nJi*Uii%DT_A^wUkxT&okkN$`R#o(e%u66<@m51I`w!r z@$ffuw%ISknyA(*gJk?(TI^VPGl zqZjKKb69;J9+0a<&oIwhqm>h0kO%b4MPJm8ywwV8YJ7bjGlG;g;xK0lqUlDFm}b!$T369s3lS$eEkQ=o#r5ib>f z#d;=p#jC?TIpKvBiLkgBD?(UNaT;xyn)3-G)+3kD@}7$4>*yIkTLz!BO%Siu_r=E= z_<*YCM~b>(w1iCbC_6vs$?gFIk?us> zH6E>%dkhzccW!(>@*QSZckq^x zlW#p?8=UIkiQ)O zf!M}9kG(He>6t$xYGAw4rn=32jd_k3$oBm7G|iWlefb^ZsZm44u4447i=PR7mwmbc ziwE=%E=$@OEB%jGl@)SC1YTFnvVzWsd-0 z(LKOoc=!h{j`}I;?YrcNPEonh&TVm7jTb$tTsvF6oho?eqd<;|0+H&mz2dX>D^+=K zQ@x{kPgmdur;s97oPLVsI%hBbey|aobvv*KkAX85<)>rNyT~X5K++=^`XPvy0nQj~ z2=E*lPn@TB{QW176AZNSbdP9_0lTq=(W`ju&G0Ob8MYzYP{emxv`w-cYo2HnlFlol zeB2XU?CcT`M&!?^c+t*-b{oB!y!VJ4^u6pe9iwNMV>Zxth6j&7-#n~u*W2}Wy)2oZ`aSs>!dkBokoM=R>^U#$**peM;vxbJsb6XT1PkJ&e2TEJS)p2 zS5x4rM=!ilagdg4_iK9Y0xha$*>msX$m2?_85*sZCB74$$1=Zqj-9FPOqbiP762a; zvGZ^v!K!K2WwX-I^26k|WDOr*IS#it>u{(Fsu!$(=V9GwO)Y%GlJasftLM9iIiG}O zp$jbz!kF%`jB(1<9YtMoA(WExFY+tDSda@8F4`WsN3bYc;&bHmx`l*QKxr{dxd`D^ z6L(n_cxly;w85GLt2c828~U4WZL!KA2g6%yRD;N{j&AjAIgAyx#F$%)v8sDmW7=xb zyqNX#LJQU2;knw}LPn3P=1_ODkZB&o3!8Y)o)zYy7VYCYDq^0*Dt21wanFsoesomy zz&%(Hf!;4$<9-S2XTfKkVfYW_tm;blw~xCR)(}<^!h*Hh$xf>*V&FScX+$@9#&?x*dv0$ zS|p(_EpmE@7i~FD=Q8Jj(96Kc7J3x4(qChLQ=3~^JQMq{&ejsu3v;!=T0Ey_R1dbk zp@xscE8;!)+zSp56)e?WbvgCh8*_6?h`nPG9LwVsr$2&9y2AZR-=Rg_YX^`Q>0GMW ze~VSld>;9_CGH_^utI2sm)!I9NXL*TqhHm>86u9#mdzEk)N2Egbb}3!tnz=XNXLdHD z@RdiS(Yv@?Z`2VjGw}Z5bVk3%Eod^&M1l)FO=Ilsf#)9l72n&uYA}5tJ?dn@qidgU zm}mE@u;Gn+nf`u6zTbv?S=+M%B7t=wC<%HUQ6#nuJkKK-ut$(Jy%#OdcFJL^i(9;T zMc!?KYeQ9Ii?r#Q-&qi0WZ$!hkV7Na#K&iDpTPpvcd=Dx@a%S2McNH#)cf3ShZjN` zpRv|~(eO6oMWBc6KYM928j1BlO2~!dclC-bJep_VX{o`%oXhv`-*JKdTCiUA%60KG zJN-x$RU<9u{20kdZ)5ZR;+CH{X55Qav>rLjTdDAdcK7o6{M(#wY|)3vwd}|XmrZh% znR#rZ6A5Jv?*Z#FsJ$v)kI1n4pkUaK3-kd~Zl+>!s26eUR^^xdO!vY_v8Zb6d)gU^ zC9cy{iD*7s@2Iv*o`^`C_m4i7fs-u(0VnipCtrXF6QooUpJMfL;u={FacrC`=qomf zZghUsi@Cn8m6$QQKWCcg!V_7+oy~ZR4pxl^TooM29)FI>+*QlPrXVY> zylAA^iLd}Jh{5>8D!U0j62%9K>l^vX;VbdCOh~H0DrEw^NsmCX5{xe+>CKhLHbH_6%IORh=J&VsMJ`>D`dy`h> z)9UHHd95K!+<{bH`{J&TCEbJY{mbX+V^es-nx)^uTW?DTYQ+f7!dhT(Vzo=u#*%*U z-2cwJCdm?oazdgXzOQL4Mg3ZDpSe6GpZj5uGXr>ENY%m<A)b)1H+KT7S#}Zzq=S$)j_fK}BG3nzB&%DmGtFF*Z^SQZCFbA1&=9LBe z5u4863SEpq^Sq^CTd<(U&^%|9Z`AVxXy$w(#PA4EEU5Od7 z3jquZO7T8;7=w+l^?PlCNg&1SvFz|lcI3y>GBp^i^$VPHMAZ^pEyv_22bjbBtU^NO zxi;1ZQ>)-Q1Ary9v$?dzp0lS^@g~#Ep@A{ zjeBqm3HX+z#BK9DujW~Oc{sxojGxGZFl*=5Ee4;J5ed^FT#kIVk+0NugX<%5L-|Zv z6)#UOy4)RkeAZ*GTJDO>L}>$lknz|0O<4J_$m z7GJY;!!q1Zov{|rv9c|Ud?-BXE-TTff)eXcFSGa8Dn8EeBW*|3{J@P>U=Q2R&GVkl z)4cgG^WInMzXn{>mJG;48UkV)CG4osTRe}u+`xpDrtR!*u8bK;C|Fl@!Ik;3 zUVWFeWrtwI$dGD2;8U@2cI}ymHYVy72W==g|2@22?3qX}&R&|+wDF9QGo&7c6122I zfX%OlH1nDx&j`dET$CQm@wetVodmR|XueZco_Cy0<^;31>#&aN7+X|Frw~MijK3>R zNO+A2$0<5x-1`c{DmYgodSR33<;aT3T&uxnrbF(1*rGD6Weu5OX4mS#htfTbj!N(#-`^GLs0c~{zzhe(Ddf`E6%W!1uo^C3Ir8L~^m zwq>Q$qFJH~7&<-(5EZA^NzbySmg*zix5GKKAuMWp9P^@SImfd6B;LkTu=&y3RLy;s;(7DpS^%lnPcTw~}Pt?)z-e zmq}6fO4P*X;}BNg?y-CNx}(+!-JgsQs$SQ{R5A0|K5Hl;BH5y z_n5E0Q0Xnav!ywIV=%g%Ogx?A=`DTsXx;rA5-fz!r@iXSv^mCvx38f2z31lrEf8|GCRvN(8~48FN{TG-Dk860D%bP8UPecY z3$EH2s_-k>;yZiXX55*Dw;-`T$_?D?a|uS&XUn@Rq~#WNuk8Pw>vp~}jpd(X9#UqZ zlm%RTVw_^X9c%J-Np~S$60Ix%nHr~hm&r5HvsdJm`A+W}hT6PmJh*{Lff4ZztSBHB zkuOIRdY{jVEF|*_u6xhmvscToe<%xGC<(QFPx|yzCis?h67!f5#|!?|7g+aY?diQ~ z6>^_9mU4T4|H%1F=YE=}tV7HK*X<1=?k4b|?~mE<5i-(h`8Y4X|KKls1+VKL8KZ>Y zkZxJdp2&ogq+7C*)|q_WSw<&o^~bDVcR7dey|!1x8K(vP=DhnOyJIZAI@A1o2232t z^ggd+k(ngqoLU(v8_ISUhc}{eGK5zaE_T7{|(WY9+&u(EitwS;_D;E}?#-4a(NsIUAr}d>B?sxE> z0|xm?a)BgcQQ8wXaNQYef&}F&2|0i~N7A%=&vTV!9n07&zk-6=*SV$ntul@;WWAi; zt~m5@oVvMupB8+c=4QCm)7+GWsy>C66}Ey zO>m;aLxC!AJ~vcB<6R|wymy~lV*u2at5b=%s~-wRLoYwShXBsRb@c=?e*mcEL}a|r znC(QodJ3)TK8v}B-{|40V|L3&tRQ3)(J%8n3P&uKgZY5ZnG?(@oRH%&yauWicy1`* zeOTTTt#IR(6DqBBe3#Ub))+cbspN64JwCub!;Lq>f&A3rg@|}JFILQht(KcA*$}~s ziG_+%rq5VYgy+mwPo^mq?3K5Z^>vu1bl~uZ&ptQUB3IC>!eUIGFIu&k?W2~sX4T`k z&jO*RA_sBgsE+X-@$r7lmQ{L5i&oBV>Ny%=X#-#Pt2cn&cD2%?s$NHrv-Y7SSctrP zG|w=r30sfExIrzPg?;B>wU+}&r1_Z{?>?iUB`Xl0&z7IV9MRD$S1obUZ<9KQG92R(l6yR6uT$>cf zD4T3!1e)64?jh6{A(IF?TKU&-7#h&}*DP4L9t+sUzUPX*PWH3FvVtMUTogJxbzn#jK4%;yE2 zHg8x-jF}7>hUcw%o=)+~@8n>0dI)j5fsS%G7bYvdQ-juh{1nZZbkJ2@p>c`^q;t=a#b^L{sj?JH2n7v`G8XaS(PkVjki>ssbVph z1E0swpgTvK_M%W`t*kB5e2+Smoy=E?2?~DR7{#NN^-mV%b>Mhauf<_eee9V^qd%RD zWTsdJNIdlhJA;(7FO;_)u~yOtcwUER(#Yizq7C$}Ubym^E_tpvEBcBPBBN7v6DpeK z5Hz@YmyaT-!W}d_jQ6uFM-S^6J$?`92O24cyjYHPJxM_`0e|Dm5Ry4>-%Q?H#TCU8 za-PzKLnej#RI#|BtQz7cOHzX}6+9|ECxylMCmrwSzvM=v25X`V4)XrIPT37E$N$9hnAaWB5lAj+BxwFQe7+#HbC;p*`Dk!d`Pw>KA zN(`n4)}I%1=wA}N%L2sV(M7`2a=V7R({(|3xO!&ioS zpk(+~Qj_BQ)6b$b6)7qYTzQFqOeyF+g%vJi_DrR7v-$3MvPQUyw;U-rbIYPV^sBem z)^O|njFs8i3Yc0;2B2vKH>?Cc-aN%|j%UChKaKGkp2xWloXyrkZ^$k($%^-`l^F(Y z!ER=SRhD`6`(rt}mNKo?Jgm)y5}#lqq%n)_M5?#lKGlrFEXd>c`p5A2kXz(6~ZR ziGHKkJ1{9=#dkJ>FXGml=Q6kn8&%_qx%GMBQJCuGapQY3#hqSdnD- zk-n5^o_&@Z9ADRU%8k55L#>8DBMdq`e^izw&s6e7QG?#vVN6wnYQn8p$sIbJ$4a5~ zx>cb4H107>TU&b6fW;tMb?eJm_s?uc%&X_xm!OksbkJuWA>a2HD~d(Uj5qe$=z!&M zr;uVSzh`9aAE76H&HFZ;Jt*tC{0#~;K40_YGj5nshTOCCI&2`(4-c}mX6 zA|6i9f{PV}%Sdt8i)T-!$2k!0d|}4B_+p>rtdnQY>Ss-u`=EJ0n|+}{aXo-sv>MUM zU5@DOY0o%Z=%F|lTD%>q(&+)531vm~IwyjodfoUMClItqA)F~i|iRN-wi$|}6bYIMHLZ7I%_P!i&rZ*ww z4BIb&+X%I7m~m zJ($1;5-2;7{W-r@@bup)O zr;?34_hwC{o&N8z(!U_m;^3JjUKGP_t6qwHDy`T%s-0Wzu7Rd2ty2gPPucI7G{ztz z+QaP-^mrZg;DBe>&ayJXk-xoF%NMdmD@;7cvPbTc!RDC5lt~RoUJ>xh1aE_b_1*(N zz+OVzf@g z^6p9hcL=^)vGYUk2j_R-jB6$8wi^y8Kim?p6gcx}iJl{bJR*emf);IFB@$^9Q_<<6J!H z%%o7{wKE6Lyi7d_!(Kj?mAq?s8(rXHenc@pta^dKYh6?w-b@z~>GcF1ARile3J;>f zXsb>OYO#D$H|j7){IHxwI$J-(Ts1dhD z-m%GyteiafB6-T$bFH^&zU)6h@1A-Yhc|P0lrQEf71UJd&o96aJ6{{BSCh$5p7F}l zfZeH|ujiyXt+C$e&Db{_TqpEBSA9WAG4KJe7gSq6r~GsUA`Jr7BF-9gCO${S1oA|e zU+nXz4^N<*nCJN<(u$-G)*NjTvIS)%MjcG4<&;UmA zYCRg12`(1(aUeS8DiiKLuJ|b#aacJks)&0b?v|*b{?V7i?RZWw^bNL5DnN%4+|?x z^+(u^O!II{>alqII_@sw*qAMRYHY|jCxN$>g&I&mf}TK@fe!`Fh$`32M;b0u@q_T| zC>CCic&1sbwa}4>hwALzyg&^K;cFp^-M0pNgEi^C^knVAnrjQsL;=ouTPVznuwg+x z!hq0feuUy&QrKj8X?Lq^_h%W{ia&^!ZD;-^JU}XMK$xHqK{L<`+HSBt#JP905V7#* z0tKQtKMRQ4*eD=|ebxQ;&SXIgjejMBYfofUl_+>Y$-Q8}V4I_$JHaS2do6$)Vk{)W zKbx@8I#WJK;o3Zsh2ZN#_vw>THqexV55k$IXHnuj<8=;#%(x{`^a_;mP{`@Q=@_#w zh6y)z26Blr{drq5Y9#rf_y-J4I~MljdGZrOUU)_+zNricG=p@L8L%xaS`z;(iK#hA zU6$cfhtYZiF7xuxTHNRDSg_}eD6oLmlE_!U&c50mrtbal<=Ns`B+ornSOz`I9%|jY z8$CUglFCt^H^y65)sVMLK@P=*;~XezSYbHbNaGjJWu*XGj=-&wl|-IZ3Gqf`qE}nb zYlrev#Ea!o>`{YuF~#-~DK`Y{!B9`U=bq{X$q1u;xu3jZ^7V~lHMDvoO4FE7;>4vgS_^c; zd-oW3$@3{C2y&VzZ*%>CVK>opL>QuJo54H`yGxa7S)Mh+;N~hf_oM^BpL{Syywaf) zEf@IuI=bBti$4jS=PZuip6Kso!cVna+D4Ti@yH$?VG3H~s%R2fTwt&bRWL)K-j|+T zu2eeFAaiyOkWaHvn4~~npk$arXhsBD{6c>vQD#nk+ z63{k1>rn5wjn0S#TJUu|^m)uz4$HFn7Tbf2uatDK9wWXoDFL>f-1p?kmfMQNo$xGW z8sGZXfq?MdMuvmEqZg#bys2EWM{-B;7wu2kn_JGSh-86}M7bspoQ@4em7dVPz@X$G z?D?=B_nL$pC-B*eTg-Y`LaB8jAoFrp9zlC35HJ1rq-SM1DU4~2Uip$ldaFhT$|5wH zuI5(n%4*o4Bg68!jY^{%6%=;>HFP1_XjJHQ{h~m7mO8s z4tE`(m8?g7ZfY=yc|5rL*z;r90J~DQj|opN7#6b^|j?- zVE*2axleO-As3_4yO8Ib`H4QKliv75#8|;F^r5!GcnfslC^KVcPe1dxLNE)dz?dpL z*(INhG3V24xO4%AkuGVT`ySONd!m6if`N$BW}kzwqIZNja%AJ(NiN_3h2H0&PeD$r z?~(omFG)9qz;uka5=Si8Qrx3*fY(KT;Gmy`K?xxv=l~2#oO?lzGM_xYz9)GVUT`YP* zl>wYjmn>*#1W#Ix_~f&U2+_SSf})oq(qkFAckaous0ntG7}pEd&S;Yzm6YkRB;PIA z&kejc^IA@?)>~eeVM1kCM_VE{#ynZ!p3w}`nlXnHjVPeAk^9{yMOdKs4jG`K8nYmG zxh%A60k1}|jhY@6j)4N0a*v!wlp=HLNAQESLb4>~E7px~A@WL~Al8k2tB;Vy^F@BU zgfhQ9XMX+&HPK3kHE0PZOu4lzH{mZh@3U!>c`o?Cg| zT)wK#lTR~47AKG~7MaX^cx}gK;k&I1l--VVv)11GzOO6v5&=~(`sc)4Z;qNRe;Ax&P_`*g z7!XTML^vm_#eW#~qlMhU)=Dd*xx`0~*U$~%2a}S{7nd|o*Gi3il^Bb%lw*w36DCag zK(V=tUf;|WW9KK)wChGT>Ewwx?wQL8(V!>$vbc*SfR-3tB*>LWcxT3|DGnw_-ZUJH zen5!w7W?t8jFUj60wFD@%70qjoiAKtFZKK{6-DrABM~HsE8SyGrx9aq;1^Fk4zBH( zE^xNc-!%@ii!o@LXYVe&DHK+OKaFG_i?^2;^3b}h6{UGm7jB^X&op5xPIw39-ZU^CkB>zq+2m1P^gq)(&E+CW4$bWh{^TYRG3?#DaU^KyA9+}L_u5_Z0zl%t}^ zU+SfZ_tLQ4t}^fMg|s>!Y#L))R+-t08GJMya(E#{LVoM#GOvFh&U=I+g%p01u2et)po~62 zE5pUmkk&s=A+aDIv+Dk#rj`%iC+6PhKh6C2W)lPHv4rCbyt?2RpG7O{P6@qe13u?XF2}B0O)i_@6-y;Wl`~N(K(>r?a2)}S z#kDx}yR#jXGc7WvC3bud`2*xCAJ@o1R%%u<=9i_6+pfjSg9i_)tEhRq{lVN0l5({R z`B9C=IXx^J6h%6`BJ_;OV1p6s(LwPED>s(M>ABnxHU51=v-%A9p^B;1`|Ma)zZcQV zS3N^UOA-%SteNUsK@o4Vg1do7q@_Hl8MCqZOLq#cw5OO%Hs!J&E9(&c^Sd=0PgnkF zIsW#QiiCxdfTG7&U1*;_=6)@s+%he?x$}W}yPQUFf%XY!CDMgmAfpWR_t~Ya_ZE`! z@81_m@{6$rQN;w&*;V8Ta&B7a=^;pQ zfs89LL$9|JxM8E0_Q!Z|Ek4bOG?8ID_%PQzeR>lW9zpTNt2MUyqnnQbMeEA!c$ks^ z&2%lE&mknVFWVRCho+D56c16O=ye90gfD~ zZS_}GM1{Btp0|iMEzg9a!km8^QxH3_zDSW3XKEz}7=FLB+on3KT;R|#HwRbVBO`SQ zcVc|@%wfr>+$*YWee4ISha;SJ7Dh!i48sjfCce}L^oB+EU`7sEC)o(|RD!B4cZZN^ zIVO)|!M4P4Ie!o!1AQ}KIGa5e@zqx^f9awr%)_<5eJ@x%>wpouud#Hwmv+**(Qd#PFRj=^5YgM2EB_K@=bq91 z@)+H7E0r|Ba@_2~z^uZx1~l0X>YCW7nM@va+$qNhN=*6tD>AfAhOzN*?e|TuS!LsK zccd?d@qLoECBk3k5EYwM8uK)1u|mp=;-&IdsQk9&aY~xRe!<~_R$-#*<8Id~>aX;X zUOjh193Jf2&TOc?1$L-N2sgT=bW_b9VE(X8*wcxDgA`jc*6iApENefWSK+w+@Kbq;EE$_0i&kUX^1Bu3MDL$EIEO$ zI3(?iS26wEs&m&LX|L1h$JeSK(&5FB4SPLKX+d!UvFP)cC`86XO6RW))373MIW~~& zGi?8Ul8~$(6oPoVD0fd0PKkpkDE)MPVTF52`_-6!_``grSEuqKLHYBF{Ibb-5S!Q> zUauM_s2l3%oSuTyhZHf2Ca9Mxf8Dmm^4Z~;FX5dmeqEx%d{W%BLXVeAMxukwR}vua z%$Mzu%M3zyfND;pReSk0i;&l%gGRFVesw#J>lMMwu$p7*$P{MRe~%&wopQD?4AbhW z`<-zQTqK{YzBBTs&I71!|4n750@eFtWPyCI4e2mo`L*=Cn(>_WT;6r&LCQ^5AK}C1 z$zbIZh@Pig4e|>pDX)CO?|vQm>ZwY$5cM4gx~zq{?! z&`qR7Vbz-h;6-2U)jJkr9=f7u`;ozwKF1EB zze(tHRqH6p6(khxhDj&nYIhqQz7C1Ij#ry!rOLeZ9%s>=dI3^F76Y_epy6nHoheahFC z8o?K)+NUcGaujsw{UBjNfiPtiG90#v#rs1M!{A}}dL^Eg1ortZW!};Ldhl%d6E|_f z@AL6vEV8l&L$CYc6d}rdG6Hc6 zWpjn)0}5Bvj4tAbt`6q#ah6kCo?W`bktI6+xag4=<;+yn*RMZRo(m_sT3DOgJT>+@ zVpwZkCOwP+80=Q5n2^X1`NyAc*EOWe^!%jbA!|@>&u@3FwI5MR48I@2)qX9kIFYgH zN3!z5jjIeJa%hzQd|#*C^$HX;Ru-_L-;jJco3w#x}41>Sv>GolFvKa&BTN zyG7Uct{p?tuJ5bSdw%G92!5|V5|v%)KR8SJ--*BAN4Y&TM_4s}oV_X&PuTi{TzMyE zl_FpJkVk1(zvWNs(q|>*KR_ITrD>pb(Pd$Pug6`n->g92MLbLqXXVIxVxM}zN+=eD z;&eSt$D27flglk8g;?J^W^$IFmvF9`)!B57v6o8RT{JZ7@yD$XR@(EuVdOM2BT&-~R_X=wR6rz4}Y-)45w5dfl1JC)r(M;G2wKD1- zYIA!IdIC@J9=*TTX|_a?)~Llk=pwRMs;5KE8l;-sVhw6M=*~+KwBO}C2htB`1Zw&s z$Be70b<1k7)ABL)D)kU6Kk@OW?rZ-r$qUG)tob?l-VxkFoy4ifamZU6 z>u$SWBU^YmooOv)0rQR*zW%u5=rZix2WkakE!+=&r0li)yAQ0oN-RqGP=_fV78J7B zYNnuQ6M`~jB@x*>b{qNsF3h9Fw{lu~RL%}SWnE8{nKX8mW-h4NH|JDzn-*p zr;}zF|7!mPhV5H1V^wtHLHQnWJYIXPQ(bSBPuYBN-n zTQrJC`ZE?ip8Ni#Tl7Z-GBv0P=__T>OTH+Sis`BF z?CIrAW*0>T(5S3tYqa$rHb?hescp@eNJ!i@w|u{N-16&vJ!XS>{Ijj%-SjSDytwtT zn3>Pc14%pvVu-SAuX%OR265~kZjECsffij`w9t(x>AzsS%0l+>6XN6_$i(GVeWW~^ z3Pm&mJ(ER=@qS{{w&yz7q3~6^F!5yk5K>YT7jCGMai5?jt!o3&6IRvO_ckM#N70Jod_M50AIGJCI^tEjPo%SlzJ`K7!(Z$^*7b3@J|&go zdM5wO9~2aI`eKGFCT^tCi^MhuV98N>veN-ZGOHd-DLdv{@(%cZJUo0BONhYVTouP! z*^cR4%4b0z;5=WVWN8srU)20#YAzTt-W1hz~h3H zYah_4k#^wAp5D+J0e&dk4tr0*46yKi*RFVdZa!fIh&4%ROWgUhxq|r(^m#PKziiMm zym^%&m?d6sa5cc&vhv@Vz5RVE&3KYtBNaujV^_M1GhfBQirdL znZtdje{1Pf;`$mw;y7|sAdkM=;f;7zFlmav$iw9(B+zekGR!Wg@*DCOE^ZNypN7Q*E{gqOfr1z~B~bux=9~fp`R@|4Lu|W`vfH<% zu6}v_tnEcw^mJB*=bb^#VmXMi3*bWF-y)!=I*YpKFcsg-i;_;V|fPGLCs{2uS@;iIS3rw zQD`<9cb&^djE-K277%ogv>3{weRWImJ{TqlqQ|x1+9UlFC-`nWq6uBl*&Eg;p6;{> z!}o@)L>=Fiy-+1cA1s?NWbmjszuFw^m_(A@4VwBIXgLcc9Sp7fnJOhnXv}eU^0SOt zQeqdSFPQYySz(G4shi}!nek!E|I*A`eA7KwZCB!3k7(3rmk&J;1DGbEGd+&ZDcKBT zY`=45`{7NJXeH#-yD6MP8Y8ci+RpNYR@lpM5$KEU*!{iw5?v%I8p>$=qe>B3t)rm| zC(Z#Ia_4OU=AsF7J&S53-b5P6zL>B4AP%1a8j$fTkL*}M-?%sJaEF$pmnhy%Y-SqK zu8?q79RO*Pwlta=Er=KpT=MDOhlk62rY#$xxaxFx*q28#fgL|O#YTxVWX8Wk8DS-o zp(xnULd6Ub8G2YHi5waiCSmjbDbioYN$<5_j8Ir`;j9`E_i<@6vHckMyYFs^B1Re4z8Cn=aKrg|_f+f)*i5ILb}VZG0#?O2{rhfS zv}kaRcyy;@iI4abA?(1ntYgZcPe~Y-eHeuz;`$BI;`82WpT{t^$7FZDo48G8#nU4o zrhW=L+5>yQ?x4gXlTgy>g@?N{x z&Y{Ce+i?ua=M7)|;~jcR1LWz~xk%{&z^Wn!I8Hp)MBn;h5#cuv%oO<=ly z4MKLOz8PF|e<266qZf_XvB8CuCkx_d^kTju!7jJesmLqA5m+s5DPH|;nsumD=V&?EzwN+5sP((ohtd4^Z+%tRbVx5G{Cu)2 zhwVft>9S!#hVuFlFKN-d%eDarTTSTnK%z;${$`_nv`Le?mU}UAa|4N_U)+OoW4m&f}Vy!d*B#ya59PfTxI^BjG zQb6j;%|&Wy)}^-iZG-o^oZn%e$w!rXZKLmtv$@Z`nF zINI*+VRx4km$8|vE&|7)IuQs>Hf@%QU#q8czu~6Zj^(`zpD^jeNPx*wLGfPb@4XXc zZ3Q8==ETPP@?{hcv!ysc87r8V3_wkJ9DrXW(x;`nPGJ#d8bqgo?p)#TsLNW%$58{} zEX~ePK^}_D63@rz05cGw;g6)g|BqcwtN-r{50vL_l~Ct9)J#vo(3^p^mOMKT^l%k8 zNX$-1!X{4bJTA0DdqUWxn?W|XryCgJ{TyYErw^_xi+LM00pNsnrAQOH9A6%bCc^u^ zV(5;x#>jEOj%if`ctjnVnetKCfXbRtz$4H>L7S_o>1{Qoju<$6GfcW6u_OuzL03xJn zlycLOK~$TlREX%WOD3Yy?d6Z}tOyE*%b{t%6NPWcGI%H(v9DDYpr z3@)Zt>NEv^E#R?XV6Mgii;IVn8eT=dWt^0Wv7fR3JAIcpVxcFC<3x7bsY6c&wrm$A zuWYxwxiDo}PG^sQ^D^`nD)|qi;=!)Ys2Ol2lkEPxFicLuboS1K;Jh+NqZIx}_H@Ay zD5p!sjimAN0j}2^xVPlJOM1mk@?XUYAyb*r4ThRaq1D1cU`mFP#lIULplEGgbD_qX9hVJl>wc;4bBt>m`O ziuhSTGrjG8IAmKaJ$InF8B$^`4wO`HuyiDyzPIgRDWVeaG@<*{$t8oX>C@dAiYs0_ z*Q?lI_w4Roa7(qg*%`X+H$8wZ4C#*zy&tyEYm|_3d+}u`t?vhPEGi(c`uxLTJjmu% z*4Wz$G9>}$W^N1d5o20pPFZgiN(om~H!?p)u$20PbA>EQU82|&?1=@4wWGvMKAdG} z2=95GppyjJUsDOk;q4hk*O>=$CuGb9ytuV>sKLG4u1?Bzjrfnb71ld^h=1z`ogcHjL)NB)v$`&#dE} zhIF=QSVj!Y4)>=vq(K$+I+zy(XoDu_D7in&wEUXgj9w&^CzxjKlw{umCFIB0*j~RR zbt%0vmhp_~|F;V{ z<%+6vJCJ4<>R+SMC!FsIN?t4jq?va@8f~SMFKX3~Y_kM>9n|$tS(wDT3|z`2Pl!Vq zM@%I0-OATTkY*He-;;yEVhsf7CEEJyCqbf2VM!aAt;^|#MGRs5chh!+;RPA!xL-~) zr9${8e9c`ZeT|bKrF%uf_~=E-I3Pdpev(w?y~{7Sd-7A-R_N=_tAG9CH8sihE)Ub9 zd%dbv(u-QN%XEL<+L`b8e(wFf$qX`~{(0L!+k7BblVz17M;aFPkj#c^o8%n!&%W^q zn8rAUTS-P6*>LqwjyRQV=C>hV%#mHAx`SyEWBZalZ&e_IbO$3=EaUm@zS%Z3O*SRV z?!n&EMm_t{lsMLt_~p!}=k*@!%eI|&{Gn^YzwXpKqQ!T5%!^0tksKoR)H&sLAg+qx zzqb;{IqKG~=(zuu`A1O3NA=02=$-zYuiQn^%JCrs>1gwd2{_d?+tw^eXKo++>pl?{dMBDKDm6{#B^$&;rsy<&n z8>TFx`zvWZcFSJy0cfDy(^7D0<&h>LiNWA;Y-;?rRBL83t3!4x*t}{2<9FC2O0OH> zT4L%tAk?OKLK)@i{FSO+cFF89!>y*BBf-c*W8kaoXX`;O&9ryhD4Di+ouH#tW!OF2 z7mmLh$&@x<@jm|7KOaE!!w`bGG2PHlt?1`~9dP6L0c_(e0?o`wtT#7B8=m^3P{W_}}>4 zI_3<5#a-j+$H)SAha~wZ()eno1&~Pc@e?RvD;^y( zo>iWbF&k#&SYQl);C3nwJJ3epZgTt7f~ORoqHxsqy?0`ipcInro~%Gr zURSh`(mwlZIPMxOCdT(oVu!lBa93aJ_t&K=5=yO~Ro_VawQrBE5d(9ssptYR+de8r z8suI#`F-PqT#YtTZ`FHGFInk%HXZ7XaB?qt5A9%E4Mhgs^vn72{=I1Wb(qj;H?2Qv z{@;M;YIOn)sM>J~F-6#U2h4YW`>xhUcjr!JaHxMJdd9SC?UQ@))ZKPqQ)4djPnEW)8RQ5G=vpc0qxJ6ZiPLmuviwm1xMB<_xi>PI@1 zoL$h`1K{QhSJF_R#(>TOzZ${x(G? zUD>~0q#x%HWV(S1x?UZ$4ned>=1C>G^6uK~;jhOwaqySJ+Y9}};Kpk5yQ)|^;C@4Y z$UI|`ouIeOS+Hk*FTl??0dQu2*|$i%+n@eniEny8qm*s8EetGV6cN*emNZYwhDg@; z%$~JUItCy~A4Ed$-p+jOF*P+bbRSuna}l zDhWyP2FNEWKrRUmY_?1F+N%D(E99^FjtXuKZT3PGPcU)w=yUe3&6p*p21mOC-}?p> zbp!AORljl9lB+y+tX_zvVJGPNX@GbHd{&^F-WX##YzjL3fXm%A3lA5dS}RrD|K*Z` zZ4gns6Lq;6hIG;x9L$S*ml;!~_&n?3Y_wF|_+@ZD2A#&Ha=eRsyTy9jGg0^55G{Preo5((_mt^Fu+}@H|B?&Q zQM!MRdF&AWkxWL>^ygc}L+xnwOdNLioy|C^P3e!u>9$rn8(km(~<9wA0E=-lqx`ukhDgigLg zupbMe!Gr~mw7!YBb3@ue7FSUCr?(*Sh^&8wz;Uo@iwAh>q}3s6<+J1+>2)#S1wduz64vyQ^(P&ENxC@WXZHt?5N8*B^H<+(8)7$e&9dOtt(Ro8 z&;hN8Y00w>U `9b<#sjx>&*r^jRIt|%IbK&{ies$p?+;;qgS2Y0`uM=IjQefrLg zuR|0;_hqf+i2zk@^Hj@Xl2fZX(b`mnR*)alkL(#=;!YCF$;S!0dyFFQp8Y`8Dh z?TDBf4&*`Qq{{@8>DWI_uCC^;>)NyhpBs6sEIFZdn=b&pgvw4CeB72FIXc5%f2ZD6 zTU8x0etcntxBCC?-*|Po6FMe|6ZnDpb98QP{tckNec7ac=+ZFVQV5ppXf6TaZ&^?M zo#o8~IgLQ|?(GdP2UH|~Vs87Hw*G~q^$$FjEJ){Hr0bK>oN|(!G?(fPCb9J(!LUZ^ zL|JQOB*e+y%)vez_4YtS7#YwpQXaY+?t@mlvwp8yjq#(VBBl^P%H6Qg^*f9~m=dsN zkc89v>x)$4*L(nN>HSJD02yG0y@sU8HU!-77CDI;SlReA9b_!#e&LokZcB8(+Ew>lwnlC$|KKRWGGHcgO(|drjoHI#;0uKw65M z|E=~c{sk|vGbg4aAT{w2cG{*OKWRF&{3i`)0fmc$u-0=l+u5XkzIS{Ln1mMYu+vK& z4gC$hEo@1L5*iOpB~ksrb|xA;h)T>n>e_sFS2na6=^FzeuF>j(k=}X?74#bUvF`CZmRys z(eNBa=LFwnK1Sdlv=MjxWaT%eqN_*ZQ^DCK)5UNQt#SMw<35dC;E{7wD^s@}sGC=4 z5sj?OUiSHu!Z`L5|8#G8=TWyatE-6xq*e~wy!)WxZ#ej@svUbXh8s;*ee?f9V0rbX ze+f#7^OtYgzoh`rly3bMtffH(*|6VzI=yzDy@36b=Tx4@qQ1oLOFHC=d(s@$PcOguf^2Gu?!V~`lmf_V+nG;k>T_qC*HoK zBUkSO%C?d1^x7rLh`Ct~O3rBd6iM(clNr?E=p8#BNA+M+foJTvp`kGV$-;-c9#6(#mL9X+g zrdqT2!wSNcsj|9>HwyeRXVE+s{?q6-*$y37+gVTf2RO-aZ80gh?4b)@3%fhgal*GX= zl;%V%evxIzAJ~2?zwujWUw#!;w<(e|HtR3x_VME6r^jQ1o^dmNzX8IrPCa9P&KRgx zGW5t!%8ph-@8x#_Q*R zJIlw0D=-x3U&eSK@Y#7FpXX|EIeQs<;mQ5-@!NY>2CPvFh_D3>xTp@b{tnmqPs_i@ zw-a;%1#B)OU=~BK;En!(>rUYK@Nuhu-ZB2R{Ucq_fq$Gh_jW{D`r#(`o`pKlaP=B* zQ_PJ1lEl%D_z+rYmpnQO-U-{nHQD#%?Md;Ukzqj0{Q@$a91EbS-?ev0iQ3vwT* zXX|dkPUYMGcvI%amYjT6?0iL1ij9K(qi($8bOqpd^Y+So^_H$#8}~4u?$0J|fLXm_ zo2n ztB5usTwDXtj9`7_bALNI_swG80I;+DH(C97fWBk1oa_w>JGx!YwI_AD{~8__SVG(( z62UWain7!Hz@~27_}(AaB!BUu?R#zMtjxs%+a%NWR{^ri3~#)L>mAYLzBP%zXP%Tu zb~b*sBd^(~M$~pU$K&bETU;KnfR-bw!liQMX_E@noY$X{fp2XCoc4eGs0m-YM##6x zqGqvW?|Qq+5>cl!>)U?SpV9jj4((#KIlW-5ioi2o!*e}N@Q923LSJc8WuFoT_BSw$ zXQVBFe5$7mWZg+h9aOPx^8@3aD4?f6ApbhdeVBs%5UknjE~YqO-Elkh49sp8N<|V6 zs4hG_V+EmJT^%7x87aUdb4R?I!qm8rHx4*)JKN@v3%9DezR#je(IE~hHG!LGxv7C{ z;?E&;^OpZPez@lU6&j!zY=Im+c2w)n|jLFn9F%U4M z*uIU6t8%VpI5KY}c*I*smp7WNS6{5q?(VobG?y;4lSfuC#pYuY?lF8Lxv!cQnTYg_h^qE?t*_!@zp?qwyxDk2 z48m1mVlGIT=XI%Q$!}BnL%E9doAg#c_G4OnQC77AQZZ=UNKdoFpsS|ar}&;%&p`(Q z@Nn#uB=aQzj9Wc^gxNN|Z*_6;uN!{8uvz3f#|7nN{x-r1_s<4Y_y?amT8wPny;vRS zL*}70L`)D!hw;KN754BD@N{sGuoNpvFfoyKkE%CfD3IaQb+s{h;a(kxAPg;%*)hr-F2C^PZ2VXFw;V=w4h&co3;Mc& zcd}{NJ@Uw_Xs@dzz-?2lCR{td)T3FtbUjp!oxB;GN5i7+ymoEn)_p|IQT0n{ou+Nb z7~9+WZ4qapwy^24D;{(y53GKoo;*eJaLJ{t5?-ydfVKW5`z;U?bLkOgC%sNkqs`MR zG;u3Lh6iq*%gQU!`ft+pv2$@muQRO?G`c|VrVnX5*tO<3%$$vg1yT_MM_lQlNnHja zi#baUhA_yHEXMj)r^=1fs{{^+V+Wx%I2+8Z-zaWKY4bm69 z+G3)U<#R%Qgz?+U^8v)gzqH@s`k>@2X;RU@{UHHNUxEO_dQj5?%<3f{zXHQCu`5x# zO?!>6|B-J~L^7n#Y6|-LnBjrBL7_Wc_u~uZr~OxYsG6eEf=WqpJ;T@B2ISUf1I$G^ z_ir03CHBkl8GZJsN9a(o;o$p=EDL(wOohE_0;8)+@YOi6e%n$-z!$9V`>Eruiu+Smfcw1zf_s&MO3lrl5drLx7*Ye? zo}~5FK3SS|q_XK36{BW0O($SA(sRyPc_K@BC3DU8v&RPt{8==5nAdiG>OmUY4P^l~ zF1emyfa_Qc=TlVx*gLC|RdS8y+xt0Vo<9H|Kg+Vvc{jO8@!r!3^ZWs%rxLv;--Fpa zO3Szok zQR1I!7fij7CA9C(-(zuk}5DqQ^moo~J4{+mR9NbN<)_kTP4 zqo0?c+3}V9IfE;~i__MeiD~|T&_9NMkC!!fFVPorygPElz$KW@9B_q5>cr42ZG(M# zl16q6?v3uJZ-oNf)tVg8{HbmJ#V=YSAc1xpfu4ruzCg_#ktAODvSFKw?RyiC2;+bX&vfhDE3ivX z<B5~;84b--6`s-SGMQ#IW2~V7MA;&92Kt~? zyPdnxOU9}(M}uC^T;?bMA1kZ&d!^c;xPi?IH+u1h)koi8O&50$?3MB1l+e9e!;VHd z;_Emd`@e8wH|*fhzk7et6X;%p~nFXkA`{FSZZdSiO)-dB0KtJ436 z#Vt;FDgwElg44dB=-h7R@S9fJ$vBKZi&1`@XvV!f>2)VN@V_>HBW)ReCI2Wc=TSn) zCyBWS1$s-HebyWSowN&0bl)4iF>&UkK&RUXSUgSb!1b45xnMV1#vO&2IJQ`t_v}V~ zQ=+(|RKA+}*$kc;$e|uc%bkiX2B~W1N;^%>KQsOox_pdZpH#-qWhB~fZ+=M& ztjLqwQeWr4Xc4V*X9>r-Kft;d-$-$10t<)KGd`~PSz`m~unz@3jZ${-cZdUy%j?}& ztfLS{YGdnD25-|Ce;;H0+_R(VV75D6SFzZ~|3o=6z;}vDD7w)H(^F`A)o7mpN=(=# zJg?Pt%ZSv7&8MNeEPJ^pMLdEH8*#N#9gs2MOGCHb5p^7;DUJUCBw0W75nEUkkwq@n zFsL-myqRfgehw8Mt~bw-rM}_t)@$c!TdcNgAS!x(oLt>r{K|_g*egt5VuEVPNWO3e z$`k&VcSoLH+=){OYf0Uk7Xy_rH>g{?epByx(um9=f%&sY3;(wl3J&D5DbSFhiIGnp zxA#|XMAf#P*Nc39?M2H7IiT*@dz^VIe-AHAy;d_Cf9}$0Wr_A$C2&2{4`lt9*+>e24 z^Lju`D*F+MPLZ!S=68axbkAecsi82Fe=@!ju?~sRT4K=Jj&WQJ3HY(P>i!uC-cXZYjCq~57E8|K0oK(<(!p@h# z=%;~y*fs@_x&u%Fl}AKlMwU9~^b2)7Bc+?rO+cvu8x@bDUFAchN4@58H^F)s*2=SGg#7$hMhmytfhduT@aOC8{LIA> z1Q}+Enpw&2sPC$DUa1LdKCHj|Sk>l2C%N0~{PKyC+o}N$2>zI%$|5@6`#B64Cp=p9 zpP7p8?>hLqvnq0_rw@71B@W|?yh`I|zs1qLb9gte;uJmaXgZpvLL5&^qv3m;0GF1z z-_<|C2bX!FCm5NE%Qpweh&x|ybRIdP`qQ39a3HJQrK{{;$$FdK_SgP?@aG5iA5*m* zbo*?t&*HT4ie~Ks^se&aSc(>Ms1Sdkc^>+^P}n3R;alD?&33>9Jk~1goT|Q=#QT~x zQzR01pKeDGKEs$-eW%p zM>HNVxmxMr#}Plv2YXG5hmP04K;B@yW^@WvRalpE$kJ&vKItcTX^g_$Lxom zY3ngmB$jHcC*u8IZ#J*JnQ@Z5FE)yx&5U*4bt$lC^{1h?_0c_BhD~^yAgE3C()rpuNkt6ZXw=%YFSM7?4Nu4_#agN;tL1A!+Ify6Tqb2CD?3zTaDE^en;VQ{L>L<3mcHb5trD z@guw!;*wdRXLVaS%r%zXF&8v=Y0iX9^f?Lh&tqQH3U}}q5)gA#4^bO=fzalo%jDT1 zI+-y3>XJ*>HI_N53;_m4;_?@dM4}88B~KtQ6~lT8FJYqpb9Ikcrb4pbH#Firxpftz zip_a?7(0cK1ySn|OLV3~pnog6Sm zoLQQ6$CU*>MqxBae%|V#{Z0AUH)0_JYN=r&umIOXA+mdR0*jX{9A)2Vei7 zMCI=0H5k*xShX#goz~4-y*TQ>MX0<_T1n>8W&n{hxunzO_P+^NH8OLd;U8_p0sQEl zyM0smL37N5v*|Nm2n|G3%PDSXouRnmlx^XX8v;qxM0O4bsg|FtT}^&x6yFk*>~G|% zzxMyd4}S`q)#5ZjdBRrX!wUQxTPiWccirR#o4Un_r3I43Wx#w1Sjuh_5Pg+H_mZK>x^OL`G|V=pTd$J8jt9RvG*TgzQpo?%D~YsnLu>YmIlp$}_Jh_Dea zs?|8)>1Hn2|G7Vib>wRZ-Y6PU-ghVM=S6%0m`;vP)b#hg!buUE1&BRJV3$xgcCV<8`zK6fYLH-_UNnFVZV@7H%AfL~_1 zxrG#F&%W^nm8}C~{QWnp2drM7-k@7O_L`EzLc3VkzMeP_psy^fr%ilYUB0%aD!6Sz z17#ik-#+$RKL=_!ahNWnUXgnD-|%i+275oOX!H2f(k+!p9gAyDlF<0Q@1>9^T*_fy zc%~+o4XvT}I1YMLC^j#ZSB>_xFb+S2xr5XDS7mQXFK&jGIt|i=%-lKuugT zeoTv)rTGdIhG;rE1)S|xAB>rIQTp>I4R0qP1ZGk$QJiA?i)iB>%MG~UEy1_SK>fOB z_2)kd!No%vk_DQVg_oV(yYn~zs;UAs?t>C6 zeO7*oAN%B#@j7!?<3EWeTn*K^1v84D5X7wZx2(`(=NMs(n#4bPHT`6#EjEyhg5}Ma z$hg@fRM+)?T1Xu*)k4VMG-JI`|GYdw-hdV!cCD3=`p;z+9!GrU$5Sp0o_kWzIs?MJ zCM%h8`Ob6x+O0V{miX>TUBIJ)uy7B93!Kld(?awzvJI-Dn%42!e(v_$mc%uRHE?Q46n*g12qC1-uO4-$Q-2@f!2|e zSHb7MS2?)b@xzQ3NHQVxkRq_!Km@a&;Z|vN;~iRb<$&jG^XH1$cK2Yh&S_?Sv%^2U zsQK^%kYI#f7@o$?$bG3{k>WYcM4)-U&E@nNj_XXsxIn5LG?dcRI*hn2SMIa{K5_XQ zA$D6jD>4A!QOe9SJ5d0oQG0yp4IbhC{!b+1*N(dQyQJ-qT15Mky)L{HrOkH(ZF0VF z1DRw!q0trA{Fq|y#G4bWh5bV{a}usDoSdQu;zJNdpl^B}LtR#KyTSM=Eq3hg8tdyh zX~=H=56(Wi`}m`(ji>fy7;+w@j{#^7xnTqN-*y;wp(L#w=_#z5zI9vv@ykgKHSSWZ zxqpc?;5zZQ%)1HRU3mJeI$pHcK)=WP<1W0%6gL0J(q+?qiAV`m6f~Jr&>vig+pk40 z&J>I>n6-pv21@s8F#AIHsJze4to(gH->jp5ZZvI+dl5z=Jjhs)HEg^8t{wqNgwiY| z*kn;!e0JU*NrQ(4LB@Owhov|yi?r%`c#c-Qap+0)JUMasCDM8*g0q#(aw1O|#JnS7 zDC5P5Z0VFK_>B_d~fo)Tspd(xmnSrhd>p4}WN zxG6hz7PmarW$I?Yp5O^ws@XMWLPA?6Z1Qn&%7dfBP@~*XZl+Zbdw!o~a7&1c1B@Y{PsdHmRz*#cNfd4(;1i7N}I zPMA`=hJ142me5*D#MMhQ4!K!&3DJG9P#Q3?z6 zsDZ&g_u>Okra@2PFP4dJ*0*l)RL)VxFk%LS+p9L zTGzm#dS8UeS1y}}xbWNo1B(89>SUSjH-i9e?3Ix@EaA=l=qY5UBskKFZ-2r7Kqhlk zpQBF(ii1UE^ogkjvq~O7{}6k;8FOu53S~K$L8$FBg=h;!F%!87CMAC9V8}glrry*0 z4ThXlV8X*)w)=3_`C21*D)AIpU!xP>^`rks`K$ldzh1t~_22#UpO(M>fB#$8C)#tA zxg-yJ5(;|o&*^HwiALdHRs|uvfHx?GSGIuJDdZJ9x4MT{Tsi2;B;HG65*%z1dYpa{ z%dr3|)?2tE zhcT-IZs{(*x?vzOY`^b@*kS)@z&vJJw9SM#o{Pp2>Dcj0rBIfL1Da$drRY zBN%>N>l#^M;^k|;tqk7^0e(idg+8bEiE17eP5KH}QlSV_aZzRGNc2&kzsX0hSB}j} z1~8+U$6$Rc?Y@bQNc?x@A~Q~hL3?%D+?+dHs*I@3B|LtscPo!=^O1Q>e@4Y=UDp%q z>MldI=}h@r7ekEiZ!@}}?OS^F{QX9m^UhejqGgheb-=(9x`q8%$rnZ`h#D9&{u!OI zXL##GZ$(zb|D!-vWTMghm2EZ^-fFP1)-9eghS|D|k94J2f&Dg96uYOUhy^>xNK>O8 zlf3vUwM6XiAb_kk+ks%riwtY>OpZ6N)Q5R+tu^u~>|s4=MhH>y{K6f~m1}9! z`~@-d+&rEgkN4h6ls}+GyR*AF?PhqZ<*by=_oz?a!U`$#?lXRYbLLoQ-0oviVU;7+Zxvk`9Wabrl-7Z*pL;&+3XW_Cj zzt9!Tm=9s&o&bE01_AG9irfUXju!EGsh3Pcwl-KI1)7|b0pPL!<<$V`VRNEJIjk{6 z8fO+io^Q%Y%PkZCqKmkph7Y&cbxAKm;}bnU%roBhLj^}x^wqOGJa?lV=TM|J^Ny+l zyIU_adIGu22T=W>5(%a6fMQ#jH`PqI88B8wvv+u9d7g_sPoipRrX^g5Stg?@CoA?U zy&25qv>|*CGc086$WeBjGFUvnSk+MNH#n-q536b^UIlqn*0fx3orqd%&k!Kb$PxB@ z(;nWi&UtqW?vf--GuKRWtgh#0Jo`fL1K|qHWlk$SYa1-=o@XjX-`xmM=E8TJkNrOj zWzG;_l&R;l3m@YirHphZBqd599N6E+Cyq9sS%y{<7E!uE8IL$0;PXewDeT=V|D5@2 z%)d5@H(gkCeHOYq{YSsuYAL&9N|P(g>%AwL<|oYG zq`(87cOdlK&#Egg7`vzR2l6qT0nNoO;>wB9Hk^x8)qF?)%pvlSM>C}PScG$j7Nd7s zOMBSOb2Xw0TA#z^A#|&^W}ka}bHizquxh#y$-+wJJ>f}Bg?frB=5kZl;m8$fJL`oQ zUTWmhQMJ$N;B)(NzypL{ncGRidlnu*&tXmlsdA_^O5#ZLNwhrI>dI8$YxAg>{8>o2 zTGjmeGdx>6dPMTvGat7n{KI1Hb5~WSZ^kQN%+L2=96kE^K zGRXnD|JYl44E0q38WdX3!|3(i`xLUy6UsBp+7aBlhKMF=kW(LK%J4&$8F{9U?44{q zzZ>Klmv;eQ(w5VPZU!D@1M0^;DJFW2GZ0aGMjt#!n6_IwK?svOhK(G;K4dSe5*?op z`b#}+nlE$gMQ)UQ%NGqLy~2=vI!;&F#Uj3xhT!<;u=RUCHW#ZlJk~Zzo)EJN6g{n3 zAeOT}uF;7?qqf**8db)N1fQd$OcsYr_BF@TK6Yi9xxD@rS|&o*%^S0P0R-1>S(r%A zLVcfxc+J8jLZ$V!&tsPQ@7Np-fja!T?nUW+QV>P%j~R{E?eCTll7wv*Ag~^o?dZAE z@3KNB*W1g)R6}ryp9)67P*9b!O7@!ab(_BI#v4Zt3-_c)jZe%3vw7&;yhoCRN1uPO z)2xp}afZRP*dnL+7r3fJvQkPzf`!9?AvE#N9U~H+&}d=f7ggl-GYXSbT${5;KU@@) zC@j&cDt$d7(}qq&Lq~Kb<2UI2v@Q(=jaD*a4n@|=ov}0${Q3Rn#POIE)=b=}IJ00B z+cMBF#Afd~Oi2>6P=Z;v38o1M08Cn<%u2-gO>+UEJj6Lh#p?#kaqBZ#_yRKY+66sg zp&QO)=l3X3sR5>o)E@(KqbVo1QS_z&jm@LK3C&euerN_tI?hwJOJr4};L& zxc6q7Fm-!Xs8<;I;Gtlbw8n-oc3$drT#TPC8*oeyZLf;}WsA+{YFrlHKKS~ktx2XR zrdQ+x(vSvYA4BT|XKOWxa;;hLuVogrd07S3pxsAOR%skxD}E5i-H=^Fk*2b0`JSLg zS_mp4wlswSipmMX<7h>3Pd*CTxIClG`%IkdpzBIgXh5myvlU1QF;zL~;!4F09ZU0z zbgy-up~U4-|DgmAW&Lth5a|feaN!a~!%RpLS<|67P0lHl9)Yq^6Y4(6@ zO4$Pi=x$Q57KLC^)|PV?(+pmtP=zBTLVl~CG1xI^x43u=Y@LG ze&p+vqfd%>9SUzzhw~6c!Me-OT-)YpJ;$r_rZSrGLtA^nxS@PY4Kn)#&sZP!Vq>vW z(4qTeBhlZWS!I=x?}Pc3`C|uPp;NqkzSX?EZji&7Z*a_DQNS<5;|ktg;4lhVuG~DM z6#p&wa+W`Ua)EjFA006a7Yd$Z~pwCBVZ|0Z(dyAi!REv;;E@W{ssUC3#lLA~6wEtxp8gQHq{SUa%@_gc2D7 z6q264UvQ#4bjDG#`0;8t-VeKNt3jwZj-z9lLmy&l9osj8>Cn~Z$;2Dt zSeIxA(EF{mHqblr5p6=%7Bj|0IlCkW3d1VMTt#AAV91`rHO8~8T3?+66ZU&GMp}SF zA)I9;IKzTPG_+_-FMh5pq#cT!;|ZSkWhuK5Cf!B-=ENSaFig<%wk-mHdfdleR0}|xtb5>V(xeQYeg@{f2}>#PVR(DGc~>=W-)VU< z{*b`SwYws~@GIb=-P_e1m#fUGU-uvlFRsw*SPKnbaWDkP$YJiKPwNf7g*9UBFX)xo z)H~A=(PDx^E7hx|EB$a~&>mtr`C|Fqa?4*u=0Aya*+x@$UHNF<%E{Dgsq-BSo9&=EP#knAj39l3PW?Y7I&FKs$*pRrQtd3@LV_WHp8<}G>y#6 ziVNxNagbID__E0pMqeWIQN3%28G`FE)0S0+oA_9g1=TCLnW2a&I9xB!X3&}im-wRj zX~WBJuRG6?8rI2Uxjl)orrxDaP+8c|=PP5`5LPFl(LK@Ba#-89`N1p30kN%I&#AMzHzZa_5O8#>c9#7KF;e8xnvJLivUn`*)|9 zZ?O=(L2w2G2yld;B}qVC*6wD{)f#r}LGWn|Xk~(L0peF2bQknNG`2O@A~6vy?Oh@# zhKxjosMg$)w}v@P;cp4xi7e^38b+j+$!w7f!Cghc9*0dqki570ylt`K#tC!9-rona zEoj~1^I}*G52+ULX%^1aX9=o0Aqz`jH;(H2X<($nI!hT!kR^;Q9SY7&67m%c-5FC- z5L76Iht`xO0k0^2MkEn9feJuE;|i;X!+}*I%iR^$j?d^J9Dg4@DKjAmRxkgK*AiYT z14S^@QrU!Eg!$5DIUT9**S{BrD>-5-Ls33`|(3w}sy zU|&KAxTmmo7q!sd5Y67 z2w03@$W^&Jia}`J(xz?7M##_!G?3xLWM+wEOmMCzwjwe?DdtsB9>4oD;rJC+rS;04 zRHTRp#i{)ylrePK0wMa1U=|Wa&=@ML+V5h#hn%veR&Wa)*ISjQhp?_(u#t|zbG=ZX z8;=WVi(>`gXVQg_t#rseeAsX2;ke6T#eXw>Dt_lOqx7%1MZGLVI4VNyVlR>VS7swk zki_IEuMFp9D#OW@F};%&vReZmH6tAjFaxBcV(esqUc9+kF|aW$V3_>v-_MzrjnlRLCV? zZh$?a5Y8BB+`qvqGJbb@*c#et^=QMjdYNm;35*0#Ja7ezKS5_~9Pq)Tc{&eKaX+&S z2l$%g3eH{k@Ic`khITrw!ys!eds!6P(VoRZxDnookoE#$oGo)oQu=S?twlcIcQe|o zhB4>IU3@)sKJ+wJ5^#-uVIOD+9Yd&M(Q+hC@jWRwbS%*YiTM&lRIqB9bHmM3+1%;l z>$*``?b_gheL(8PWwcNm;mTtS%B`U1CQCwrD)81N9Lco}I%#(aexxDnwI^lu>}`xZ z^~yzgwmoD~E<3AM&<*uHYQQ_sv-dLV864Apfn2aL%y^T@2&@s25f)1#sOPKizLz0? z$CY^`rPZEfQ|@=x6BPlgwT~PT8)q-{d4kWZA4CEDmpt0egrX`9>9QnMuf zN<7a5vrocJ;y>4ylLNWW3%q;1_Ic)Kl92q~JpxAE`4cg1@OyN*1`HmU_k;!*K z5?vXq<#v7&0+uIUQ}_iTqOit$v#=h5$*i=?WTXfo$A4Wn=?=QcO7Q&vqx$NB@E6=0 z`4nY27~S(wT~47PfNd1=Gt$J&OI1St>%lCB;+!pg{MJN3K@B_BVFJl4?vt4mnT2dJ z@CiQMNJ2@9j^&#c2x^vNWP8N^gY=eJIJT$D9TY0SyphvF0%GzatLvefpEBn$&H;gj zI5g+IxcuIOlm={jLW%B2!*8v9Uh|i{dQXg^`|xpP+{3l@GrUKW;U3 z0dNm`iEvdF7&$Q?v+#e%i`BsP3Z-%3-x`l2hYk3}f-48B2WO&Ef*#P4ngs-3y93hJ z%qrDZ5s}Ii1^a}inWv0j++$?|mluMGg}@*Qx;Ws=Q0zsZ%6!beYlk!18}$i(dE4TA zaf}f3^-6;O_>EqW3^&gA3$J)c`c4VMrj+p3I{oB5L2swmW#|brGV)8}Z<#lw-(MSZ zl)%Wm+Q)_BQgU9UOyqMq@A|Et`9NI!bL0%RTILXJ8gJC#R&SK^tcc|mN8JQ#l2a&9 zrF&aaCdLm1S3euaybc>9a!JE0DcGhGLMQpa(Gr~F*;JxU@U< z+}6YBNyC2gJK>Rzd}&)Nl{e0{&gVPR6qonHC@|jJUHpIJr*@6MuP4nf^uAY}-)pCgwSX9GrGp26rBt7cm~bku^<$|MsW?S42n ztMGOxtw9lE&p0nLoWhus_BjfAbriZo}?4DKk?p`9Uj2f9y&Yq9WxEWA6#Dvv8Oh7UyyE)xBcW5dgX9~l1hbj9 z-<*VbY7~B|`A?aMh3}DDxe{UOD1qIYTN8(3HWjHT@!b*BX-WJju2X11!@+0ITx^f; zlbDijrSYT1fmOzZB3S0IBA%h6Cr?!iJ0<_tmLxS8o4s$}uQ;(yx=eC18Km0=oh7{ zTJG`X)avbCPFN|D`*vEJmF|Mk1yL~^qqq@lR}v47G7Ix@v?g{o2-DcP}1`UqXT^A8NECQ-ZM{|3*j2P5K^I+A2hK< zDuC@34MQe?I*m-UHHU4w7e=CZ4F!F#>m)BOqZQ17&t`EY%?(#&3h6zidfI@lmEO=b zN~Y7R2#?Se1_K^LnHazGTx--#eE~mSa_X0JM|&mNN9-=9_4M8fYcu}$F zlL3>{Qf1epjShPj<#33XQ1rw?%_Yf-V?2d(1s!bia^s!2H!Tc{mQ>VoF^a4PPNlrmaY{ji3!(^m@A)bTsayu=eR+rXI+&LGmhbf21bdnFsrwfdvqTuOH;qr{zx^ZQq!(wtvI-t{ zQr#lqp$2jb1NTt&2&tHqRo+X2P6gSO?*$%`1Xi!UX$K~{ANI8NJ}HJ_bP%_yOjnON z##(!V;%prunB3-P_If z9Zwdf6~0W1S>?G>X-OX;O%>tP8TN7q*&s+T4-^WT7MyBP8IxP4iig~3FC@WC#6d|| z5jFzGYGJrkj@jQ(E%t2|tZ#_hfKz2wf`s5f{Po}Q9VnWnFeO1>LKt&65ZBWM8*=P7 z_u(E9`Vv=>2<5iFiE70Doacw{B&EZ@BzcVz!U)GgyN4Bi9-3H)(*;6o8m~wws);6y zuey~H`&QD}veE;84GO?H8A?P;9Wr#%cpEElJ~KD_cQB3a+YtTOY6K)ynOZV&ZEl{K z_F&*Wm>=*l;29uizsEL{@f(j?K&@wn1cusYRO>frH?27$0@hc4S$s0g-|9(O!6$(I z@(_<`0lX7TBrV>J6-i;`N+)lVNW$Oc?1E2`$hlQLDZ)GlL9RIFO6-=!)G{eU{@e_z zz2Ob1H)p08Op)aA~>|?mi5kt&% zJ8hQh<$aDjpAm-f((lujIA@%G(EbdsRnc=VNZS7Zc27{0B-GlosH9oJJSg_9-L%Ir zQS9S1aq=i)j?Gg!vhkWcatNMnp6*H)e4aIOCNP8@GV?FH z1@9B*m!dtppFwuNQ>8aG5>C&Rox~w$v4qVepD35iV!#Q-@?)J7a zrQFCVlWc)k@Bpu5mvzF zm(j++02brt92xh{_HIqtdruZ=Y{nKAZhHitfl7$|KwA{7*_d34%XdcI9R|*_dI~G! zn)}S4{ihq_l3dT*!C%~RHZ@)zgy>)a5B6Lo0kiyAou4u$l(;U4$1lkeoDeZHpDhbE zfaNCn5Id-E3N|<#nY(sJu(mT(rruU2p#rJZ!;_N!@xW2#PyhB}0JI33^k{ueqa3^* zL{>%X7Ov27D9ahPyVM-phy_K0!5W(tC~u^7Z;v*&p}Y>xt7 zD$tBpCapLutTHBu4fBgJ@7C=zR$H!265P0V1aF)-Gl1ARCoNEqSnAcOP7^fq{zfj7 z&8ss!{=StG1e)6`VeO_T{w$~IEYMqfKq=R+AqQkNTJeX9q325?=jJ#lJf|W;g-X5& zl6%KKqB^e}Wn%d5!Je1lp?4!6eB^@;1$Bgg(|S6rwa<*SK;F=32cUFR=3b5kIghO5 z=lcRwAGo=l5yb2(T6q#f(0SQmujcL%9@VJJj(w4J1-BMb^VsJub0sNpk!@_A|! zE{hBKUQ40Svufe@7BVGw1V5gcvwd&;UYVb6&(X72Bb=0+Y7s-?a)w+c7;39DhH;R6 z`H{svtRjwZe)k^j;ni12b)L@i%hInU67Y$-gKa5S$%b=W9Ou!ojcnJN|A zWaGc_r-~t|cPh@^CUu%06%?lWR!BVO^P?);8p3;hRoX;a*iG6~nL=(uD(PL?mTJho zTTXf#Eok-zPu3jvNqS0en77>_JkcJFxy-|}c^-wV@EG+hjoj12LTnXdH=`ljk{3<* zp5O(y;!NElY{ZNY^!n)>%A9jqZ1E;TV2$+JF_P`XD32rqP6}%=Z~a^}Dn83sh7(^+ zMs7|+fVK{^o(m>TWAGW(|1QAOeuc~aWCga4wyPX7_JswbJa@U~y#Kf;BR}AbobWoL z5C(jQS8UALBQ8ooKDp5xrhVvla5lVBGRD?+CPE|a1hnh?9&~TVk47T3*|Sa>>G{(5 z>Zm(W(peRR*Za_zYr&W*8(pl})60;3#@(lxX4B)UXI7%3_X%wxTQX0m0ZT8&EJ_#3Df$PiO`GJQO*R8aRk))@wZpzh9Bi;qb z3l-)s2!ja(%JV$PdT{IcKYS!i4gk6kQX{G)^i@%KXF zdY=Rl{SC0p0;?G@fNPFpADMR#AtQD(G0V=DOqL5%YqI7idLwz>(w%PFcvU8(CcVut zkQq2D{qo-vLiL`M6{q8Mg3--$?qk43YM&O!Fj-FFdD-KN9|)CBMMTM@nZi)A{1w5|KVB%qt9e z=I-E@Z&t_uJ)V(x1?QFN!O9Eg>mIHYAvR~4?FLQ1=MIk586S!S9hnpg((ZB_4Ra$S zIRf+~Lrg?MNN9ow#@K{uS-x@iD)YRfy@_!5XMQUm=L^|uA_WDlR0*VkD)HNC8s#os zui*P@kH`GI^}IV@N5x#JGJT#em!}dv0t(2gXy*IxRi@?XSRWHcF`49!90^iNHuTR% zT#-;R^SlLn6Gvi&MW6Qa-r9ritu$kq+wwii4)LsIZTY>l=lYZIlLmoW=VF`A>ltq9 zH4Q>OGclve3h>y|`&U`k#&_iv-17dpz2D+mdgi!pz4JY9WP+!i+ldb(x|5%={_Zja z_Q2p!oU4|4+kVP%Yk{kepQ_-Kocr|oJbH7Hn`$zCaie2TeAemG{1kun`F2TaLwB6? zB5ZXjBAehbpS@Kt2pV(BB-)L@RCE$UkseuCMcRD;ZJRSny+*P{x10f5TgNr5cf+za zh+tTJ=wZc8DP?JlMoW9yPE*Azb0x{dgV_9hYs>LnpV6#x-m$;HqQ|Ls6rY9g_$#N#ZL>U4~;ka1wB(;J95#0j_%RgUf^%{AogCVLnbj2s2_k305&=PdD{2UVp!QxX9)CSw9;)v%!K{YYy>41dDqaZ7eT# zgp&O)$3;C%1GdAeJ-m)DFT1Yq{ipBsn0Sse&ey(sr*MOXdMsFdwVU;p0)GupK<(Y{ zsijWbY=h_Ogu)_So?zL<=clu`8K@}aq!`uB(rlHQ8EpWsEzGogN4pq5Z^54o6)N}; zyo{Vznx7UXOKL!?3$6`%G2o%Rh7}ISKcjdJJT+TxVIH^=7&hnJ%91x*P*6llYSU1d z#()+FY_s7HnujFqsO9YY++C=#obobl9YIXzX3>ZlL;o#ELmtc-d6-pk9g;oI;w zFpLbiN{?mTEUILO_r4)FtWkhGl2^~kcR_?mOiIUs=WKhhv$^(LJe@2zm!4IP2^izN z439`b`0nn4>xe9Pc=t{pyXDHs5?+OOkMA62x>tws-QkTGo)FFDZ{mgMG{Om<%9<;r z53z~8zwso7`;DA(t&lw_lc4F1!X$SVMZcSEIDA({kTBE`Phrkw4f>_|fbj5DtMTx7rB8!SK0m+cTAoqSJ3PX6 zogYx+0DJeMGD@>zPS>>#*uHyrR(WUieC@rb+&`P&hYz4v@CbU3QmmczA@Wr{1?dD> zh>uwkES%LG%n7zL`}73dW4@)#GMM5t^7Nax%IO%x*8F%qE1Cz4sDvl*GR*__zO)uD zud-$lct*D?Oy233&(BW=gXa$uj_u%yLtY&B5f&qo>;dOq`9dmsl_M!kMr9bkt?%LV z=<nG!N>}k0Yi{Sxno_n9d(9QUR}$11zRunY6ZZ4RRf{sE6Kr}s_Y{N9!Uq|{ms z0`)D)^v16Y9$QxChb&L4!L0Q6`S-rQKMM)#D>Z9}v)o#$X`Q!wCFOuhjA0O?-WSjA z^IY@2F-8v|W|^<&8+e$qc{XSsD80|?7P+-@$o*@w6m)vdT4KnsqGStHPtPa`%=wXO zJSg%01W(LcOkgh5-m^}-=4%lu)4G=L0ET@sT7X%=O2s?%+si(vE~(?>>pQB8if~VTGzZl)8=c2 z6r&a0zt>)&^DFJ1yf0~;Vbo;qS?~j1JOgdn&l!Ki5-kf1rnMoNsVsP#zmul#^P@L{ zblLHLRV33`H`fZ^$;cD)nv_@oBP-T5^(7TRm;knIF?_hJyg%-UxDGK*44W&(K z3&gXY_AZtY@-57< zrI1>u3zVJ8Y%s{b++qyBWB3&`8u0A&swNskysep1y+WTP^N%7S0u>KuCyaT|G(V?b zT^zYdukhT4%E1Rh=5tFqon~3+0rzRepXG<^py$rXLxRD|XNf!0<9hczPK7BA`spi~ zNV>d5nDl(6yB{)xWkEZooYM~Yav!DK(hA^F$kS=vJ)N<()Z~$m?GcA=;IDUJy8NBb zmCIDU-=4GH)4UVC@8Z8x@l$1SD4sOZV~r6Jkj_T;2cvRwn@?*%E114){5DyXuj2XTl@$Y~=`?1>H;Oo)p*=4Y`%yDqxB8GJ)N1*^zO;rg4f zw_ss^Gq^wd4(q|itT6Pf*)xhigWsYDC?BMoyx5n|^ks*2k=5!vp&9FK?J~@?p3twA z1h*+a(@HWSnpJ3tjev7oEo$zcRQFY6tpHhrp zC4|A0XF8aTdp`k^6D?6Bun3DD_frWpwxav2hw?D1(I{3lUcA2&mT?yLv3tSV(NbgN z0$u0)P^`zLl^GqcyIJfLb9|t8nZ(Y+MtT}M7%Cfv^V07j7uj-9#$(`-WGfe#<&MJ+ z)UX7N&mZ5PVLd&o5~vl>kiRhU0~B}Fgj*fAcQE+JlX;cCT5w}Q?n1@-9gXRpJ*ZCqcWOyTo5LscpXKtnKkSVL|OFAs)WBljO zY|UN}=fQC6gvbD5hdUAQ{kmBt(|z>z8<8J6QL7589-wYHRLU6Xz5T>+f8Sy8zv8h+ z3)O0chsHVCA}_kZY;8h7aZjw*bEB|-c@bC06k#3^Qe0iJWcvyhO7l=Tz?F1%-#^5n z6^zI)yUf+&$2mN|GcT9IYE(#lLSI;{>-^~>@G^M@iJZW-LASJxNi~nHdM3;D{BJA} zc372YG5l2zkBC>qZ1gfJ?di6j!2^`O7UaVnRzre&bu!PoMl@XM^YifxUbFdH6pvFL zs2OIgZ}j#aIb{dhyB(Gn<{tMk9~dHb)_GIJN)AgBSKAv}e*#3{)?bB)GT_f+b!0Ube@A3Q~`J%UG zMBI(1vmbLwf;-252T#v{?E(7ZoE3_dM<>k)f;N}Vf0;k%yc@!gL#7Aovp5ed*Xo!%Evlo2vo`M-4)ic@2tYF zGEKD{+A+U}da^M=qdxh{r?!Q_wHLsSwIK#xoM2oT_l)&F;CYRe&{K8eG3p6k+jroN z&rcR5cYse1TS>W&ae)0W0%ySg;nT0!y^!gio<8U^E?+a*O>n;6U2$F`!puh{mn(et zQX+4=TZGlnk3M;CYc!RE-2>ucG?&wDdXS-0vEOZl^4rl-g~kUpqRQL#cD-G1*W2}W zy+OnyiT+Z3@_6`Z=KM08Sdk3<>W>0*G9|vun?&ibXSukD^byX zJ;!C6TlwX%%BM8&p5XC2*n0}O0oo3HSY^6-fE)58-3yK%DJ)lC-1*7IWeq*1Dm|-= z0JYn-0^aa$Hq8k&&sov);pRHX`O`yIP%dvp2MM9ncNJgu3I^1 zL1BZJSmi@xJK>pQpNXQsY~xp?hdpJ*^xJ>D1@jHoi1}&*CIvq@-k#gJ)*-EdY13_1>Y{; z`#rxzzU7<0S-#~uzyH}ceY5$Ao{MdYe%KLxz^e9WSmpUf zoJY}!mXk*`sCQJWLtBXT7=>OBx{)3~{X}2sS@R08*rVvNiKr+N&T6%34K@bHU-<3+ zOZh9l^E<9y5aVCJ_~-vT`SVxH{nxMF{h$6be@?#s`3L!BEQcPk(Z3$i1|`Bk3H$7k()qMGAHKVnoHY%q)`=OgBkpia_k^bE+a{ZrSo_#3c|WHbiQ1o)^?FVP9r?*cA?_KTn9J`rK~5e`8(GFHh=O=6T|wCarlmJvjape%?*K)%@Sy9Htr(0&o4edt*%l=n3RG z#7W!7GUX@dl&GHe%=DgeTP67Idb{4Px9jcti+6qUO<$E?{5}60`QhL4o8)_b@cZO1 z`Sx%7Qs4WjKmI4>r~cTVlz-*Nf3N(}KlJa*U##ml{-1wLe%>$m`T9E*Y$~*-uo%Pm z7ytR+CqMO*KQ(>#2Y&DeaH@mKvy`3=AFN3II%$Km|vuk-uY|D8W1zwZzHYx28(&+onY{I~ts zZP~REqMH_KTmTH z&iJ}ngNs$%8e-A~)&LUtHs=-a5pKnWh12qUa$y1Ub`)CKeJ)WMF)F)?&)2O60_$jF zy{_h9Q0t4ggF@cZ3JZ7u+;ZS99$0fw+10!U{IFUB-m67Qt&y9p$-m2PzXqXkz@}p!+GmQnoZ)G~ z3viA2%6!iA$?hNPU=+ca)9@%B$X#K6R&mdzd4|ThvkI3uS4VgNE$;|9S?G($YJz-* zt)(fvM}DB!ND;G8+Sc0ZY3WgkyBr59+n7jH&+W)FV+6*w-7kTD_kxu=s*M&t(LH!+ z+eO^EN$)4D%b1tuWESf|sX2npyflaQ^)-urGq+tdsBjb7jJUEircKk}o$PX6nk{nPS0|DJzP{=o14=fiu9P3Z9a=0Z+JaO+KO z;+W-c`mMiN{>rOj_eIwq{&)Yd{O5o2KT}WCw|)CBkiYHk{M+RRe&`3~%U(mF{lOpn ze*O9X{l9;Q{9S+FKOq0~P+ZNuYG=;1KdbEOxyxlP?6Fot4FX|n{S`m({qi^dj{oQN z^^4cV>szk#`%S<4SL)B-^#A$m1awVOj9#XZ13{DZ$#{^sBD*T|22iRZ1? zH+|((`4!*ym+OzN`Nx01{2l+$KPf-^Xa5`Z&^Pf7M_4-CuT^*Li*-zy3$QPk;V~zxFrF-|-LpQ}U1hzCY;a z>DT`7FO&c4um9y=IL^QJhyJK4tSr#Ny#2aFMKKC(@LH>kANjK5=ePWtACkZJ|MGv3 z@BUwZyL_Y94}I@nraynn|LeEP@BRaSNdDg6^)JhxfT4i2ksj9f?=0Ul_xe`67#?s` z64$_>-lNjEjg$_l?HQwvKEP{N!ILzPa_zIrNEY&gJg$h>wqWl4J9;YdOwIf6;yJJt zUfb-kWHek93B#+T%EKjj@qkZWIEU4eQSN2%yNBVCCjUwWjlKpCt4GT`jso*|Q!n$p|WEKuF zA_OS?NQ4pG3w^qG_4Ld7ohfV+L^}V(bJIA>*#A9y{{bk;QQVK?)ie9v1x2#5FhPJo zBoRc;n4Gap4kil|Of)ve2Ad#)!6cD$Hei#30b3xFz=$9~AcBMFKWSt{leWi3BYI3hR(ZbJ}r>Oozk3pX1rk@Ull!{dqiY zW6;1&8^ad9kMmFjQNa!U$NMp_49CmSJgu+UjbdXQ!%4>lR2N-G=UqPo-$a$^KioLG z09rt$zqn(7&KWOO!*59yT=8rtIR5PT{OU8{IU=%QuzpWCWT{#k+a&>ZRPE()AO0d^ z0OQimhcDS4jAt{R)$#ai7z8M;c_zl=OJUE&`Sl|hh`9OO8S3g7df6C)7kgz&#mm92wPkrG((p&!P<8=8! zc(gH$@tM({wC1bcW!r1AqaO6|htR)&{6E$utd85h!-a-~MLWXTN>ceqzoP z|JCb~{HW?5dk#v0_q^)m^oh5=ab3ddxE(N9y0wTImE4s`q{-%QVb%mcQ&cjv-F zY3W+@y|{zF>m^U4e}C1p*Cniu+X4Grj$ZftC(tL}_z$%IK9{9Gt+na za}a&}sOQj;&v@ts5?06U-nY8}{nuNbL(hA{{RfNq<~jIY6rR<&8(k9x>Fw>jG5xaS zdvn&R!sBy5WWPsxAAXNGdtS!%`8??yHo$&!KBOAM9G;_G!U~ASpFM^FWtuzh8NNHX z-Wu#^ja@TZgS0*TAK;Pnxh#C@zwvlI18(Fo>Vc%0G1NHQ*8s0EA25f$D&JJ?o5+J3 zF!X-=zb{fnpGWZbjMoyH826;leLRkE&uIO9O>6#;*1*dSuUWc0BP)#OFzTaPiP0Gz zFBYy(Gc;*-9qN6PX6S*BIaT9x+Fg%(-kcZ4^ZM)wTig=L#Al12%aKtZ0n{cv&Rz!V znQpS;{zM5{uGxaZ<*5^>N=7NpTUZ8FH4!!JzR}^Ep0y^D)Nn$^MoKaZ=({|vJ|L-f z#9m@rk_I#KSWUH;$>eGx)%=lZF|0H6jX2*`>5F5t)EdlPr4qBKS}3H`?nM)Vx^=#( z5X`6uqZdITp*Er&Sb;;*f%5p;re>5>ZaNNQ2m!@-An1n1nON=AnDvF~cjT3uF% z%qR(Dm=poZ9D24&Lt`o>aRSmD)diDSRcL2@KeDwkO|^f?(zeVR#_~-o+QezD=H6P3 zLc}3^%|y}k^=v^!Z9GA^*yb#q%G|SC@B6-fh6mdUIK(n4DcdJ$qT}$a_Y|75x(^U$oBE2xb)MO`>#6)R9mfl!e&nQCU$g?(!(~PxSZ#?^ zW2^D->g|EJW3L-npJCD%ri2W!SxWqrtecHu6X1dIS>0v#-RNP@dnVoL{`a7ZqFrGS zre5-nqv!>H{dD@}Pfk>PE7qk>HIYW=%5Q2V#$0h87ip!7$N%*a^q40;o-V9**kB3$ z;M?CqfAO$KavUjQy-TEGA2Pohv!iA@gHzd-EV{?n4(=yX)<4Mc2C8 zRq0L-c;v$OG-;NYV=px$`mj*L0xF>fht@GQJa7!Ho{}{N#fOwKhSK! zph5c%g5`g{?zwcp-j}BftKIC-gXuqydM@4P@h>!&-yOB$^|PT^E3|Y6liVIP>ZhuN zk(1eI=6iM@A3p!}L+(OPe%RgUqG*r2?``OgH@h|+{x|TA;YYcW#02KUC#slv<(lS_n9pGB}ELWi} zFUr3-Pv9`%Ot-DXWBbf~-2nq+;qC1_3%+VK6EJ&qV2(*XkMri}k4A67b94mWNcfy0 zPvr3IC}3I~Za<1E&3!e_LVMT?qLDdICauA-e8HKLHM@C%Otfg1n$G3<9-%h8x>U0z2NXNc*{`p_UE0eX)w`~HBTnMvWtfPLwbK)D=_mj zSy~j1ZF`3KaIG;?;WSCVCF~xc6#|v3z97VT%J6tz8@t}MlX6Y<+|j$ad0}g7UBRS` z$$*Mvy-YLb@B|^FW{tBux22%Opo-vUC|!c~ugT45+zpwAhE%bY6j^Jc31+17m?25k z+)Hfg5wCs`UGbV%ql>bM(E0}Y+ebcuesRK2$<&Pj>GzsuKee?>7&)rnVf)JmKY(s^ z+uP8E-S!*C|G{^>mF{@&zo4_uK8H-%7SUBo)wsv+`wy`GkGH<*LKRlg4je4NpLyR~ z>5peG80VL2%K*N!-)LcwlXl`LJ%zbfE{r4m!yFDR-mu@nN0Z|P-~+>P`kW&kcrSX% z(-w1U{!`kc?tdqagZ-PAywQ|hHtcxDX&w%8m$d!&x-5OB8P2h*@c&82Yt(T zpsU_;U<8D;j;*01{yDru;9-8iRRJNn6}g4YA1L>YN7wi>WbbfsxEb6TTm4n0s2i*1 zmTI*o*21SgvYK(Zs!1it8t-NTtFM7iPWL+t$Ul5Gg+Q44wRoi_^qXw1<8_Onnr0Z%^VOqt78D0+%)uE#GOVn; zcEgDiJ1Jn=#LznD*~UC_nlr9!=hyKR_%``T&lk=mu5W@YhrJZ|*xHgGT-URgYn(`& zp~u5yf+u|7xQ*Az)nwcZ38uEgY2(*Y$-1a@{p9!Fvb&<+2JxB5Vu^ICL1S8eZcL&V zC`GLsF9@ubsR=`p=fDDFiE?2X(rky*UWAiG*bEJ0DI6pU8?);rv#V$g5_#lhL?_PB zdWN!OOhQskh+_{h3phM_2-GszX-(QZm71O$3(T+~6)Ih$%-;S*%iO|U7JZF0!MZsb z)kY_5H2A11LQO(dO+e)}wCu07P-$Ivfzc_9^TgrE!%=^Iv0y5sboW|qT!Ub!CyVzK zHEiXON>;KWoxrjzkJoWSaO&%>!if1Lu>-?_?vvF;ZErz({0FQakEA zH<9^NZ53-1C#E4~!Ll8m+li&$vZk4JNweBcr_~rFR6D8VvhfVLy=DVu2B4EVSxsw5 zL>H}EJFWqltn@FLwwsa*xoiO|8Tdx=##HxZTEx@_M24(_8cQ3p8e>M~Gina5uVp=6 zlABvTLn&0wxgu1{Bq{G3py@+mYDMr<)Qg6|ngn@v(M?Mg5KN?pf4dJ1_Ossg+JzG; z{i&_E8UOvOj-;nO=&$GxfA|Au11|fcWHRj3OQ7J^r9{RQmd47P5fNXjT@=D9S`k|R z={e7&r~Umu5s1`M9@b+6sDZ4Z;a$}t7iGf!!@U=ku!>fM)&ps={v%O_*1lqpXa;B!8XTs%ojlItl6hRffpL?1>M)_r)Tt zqTT;ax1jI+_~-Q6cmF33(cQ@yjf5Iy(@8r13hez)Jw;j zf&frr1etN(fb6iF^k$(0g*M5#7KLbuWh@!;OP&Sf4={d7m4e9rx}-6-DR@b7_UlaQ z)~Wke>5K@)5;utq_p4K}V5LstWS5pS{{Z6WTUUUlThC2Bf@E&)#PO_rh-$KBF7>C$l=v5!Pcf3%Dw>MLuvoUlbT^ zHLhswE)6+DU>%2GH%X)!ty>eM?U@Q2>Z4#t85%Mj17eB##$?ufVV{EXc@Op{JE-NY1_ue1B)d**g)Gi?XnA>6U=eT)-9an zd8K3v9{2+0V|s~2&KqRz5|8c{Q^3;<6;$uTa<&USYLpLOW~;KqxkA9i-XF^ch>tBf z3LsFIw!*c_B`$nby&rfCyq2<_ou1hS8eC&g8*xQ3ji70~sL}>RjX=P@M1gomH((Su zuCyNv>{^01lB<6>;;1zdKE5;}*mX-pGg^YN7Gp*mlW6WUv4U=qUBn$I&A_kvtZcRm z{rV74F~GF%EroQgo$|h@T8}6U*L_9q$>7_>zUEBB?p1j8qX6(ZaHSm9pc+b6_vUPU zLGiGrc5DtWmTWJCIn;wD2s3l}xS8)&^VY|GtO&knr|_EMAkCJvz=~FVC#rv+w};c( zuQ~?AJNC6x_c85?Hz9TAQ3~_JpZ%nZO;|;{{62frBcJ{xJFvYf1bL5Q z+~ZiNe*QfEFWUX@bq~79jc!ombhz?0&6+s+ov(T2MJlYWyUhXT`24I3=DH`L!JlWf zspu~7{aSc#jmEGp3`dCjg0^I|x#lOT^ErI?+#~Kk2&*@ti?bD>^+T_G8tuAyqtQCJ`$j=w-hL!7 z*DA>Lz~Na0hxjr#NW#$p&A_>DW^i`JpQ`mVCgzhdk?-3oCNci*WjIjgXolyA*N@nz z*_L$9y_S9Jl+o@jaTF^l%DjW;5rkiRK7NqN*7P|tWnsVcImTitKONxF>pAY#Q>-7I zBdXXdz*}Cmr8}&I!NU2$YKW6Epey;QBMtbdFh7q#M z?Xwphc(tnz*3(@V?&mgly%T-%Lm#E@eB+xsf6|)ALMSX=2z9MhtA0soPkq8;=xdMs zw(QxGZFAVu412A|x~lQUtBQM$c+?~4kgH#`F4yaAIVgoZ&TJIBwvIN@Y>8ZpJT<2E zURnwaEy>x=y3Uplffjon*A6X$s=6J)irYh>VKkHIGjDwWZ$|GVCtZgRbA&?TuAOH8*a zv8t`%jh|4?^qH9&vYi z{%b$1dsoDusDJ_Og4YA+65Jro%^99TmdUj-Wh&Q>CaJ!_jCQXspbZ#ZwK{5CJ1l*&`DUA@E${& zbl?U<(n`vdh+MJTRF+5FBXiUmnkc1?_;ao2K2h&7SQ#ZBMHhGyudC}-I9wqw@b&Xm zZd=g|x$vq(i-KDDtsBN#ta+uM^6q=boAEngJV^yrnRm7|8w+jVr_hI4@eJ?!vl=Kr zObKUig>cDVEQU>&9kN29fdvWzQ7;ryqF)L3LvL zqnGe9_}~^{yv(u4Zhdm0Rro@wFwwRhMYa)V7Pxy^OXo$e)sjY?_)v%_S_1%hNEqu<+9$c%y_pf`jJ zIHhV1yz{xYgakqmzD@WImxpf*Hu@u%=_u?j+{A4RbF^kNa7AANF*$5$7IB0jq|xW` zcp)N0wmov5|_(Iypw4T-H!V1-uSwAD!f1p>hF%r?auo>6g8_FEAUrd?I{&=$#7(D((M&|Qy2oAUevf@5 z3$Tl{!)|j+`u5kpPP0}IonB!O_3y6lX?t4l9ksL1KAS%Gna|M=kN+Y4@vO7>IeYGT zDLVMzYtUggJ&dyfucsY$gF|V*efFV~PdQcaMImZ^=Lx%XtR(@%f&1@EkAL_>XuYk} zTm8i6zeLA;>woFwQ%^TWW!GIc)7@@=Yr6ShqpPhSvRwL#Q=-H6vxd= zo>UrKfzcYpi%lY0OIau`>|}1{=yy78W?;a-rDS|J#)oqo*A=i}-bGzoVaR}Bt&!o9 zV}ylAoPk-oTq}YK|Jd6&D_S2ELoGa$l$JJZL7p)0>Ru91I?daQRDD;K1|kXy4|NBR zux}&*(=-Wp%v~f`ya1jMsvBjV+ik6c&Osu|1^`oNATP7F9ubZ8Z>nnv)?MvG4^jq5UD~#nF|DZ{uOWV_nPvGJi!4kN z62$nL)fyC+1ffZ%`k6`AEK2ElBw0GLN~3YsNkQDTFIZQD+Xe`?DLiua?3D1+R|aLW zj5rOG6od#--2}e92rK074f0zaO?AAM5uU-~nv!L*b7_clO{f|#9@ePltX2q6I7hvP zP^fs%nRB~Jk>ku*uHb9b8;D2aK|6&>CJHVd;x0edq)~`nmGK80AQwv3?4X=V0U1&s zwX}ef^a0J^=m-&FR5Fl%R>4~d5<|te?)n-8RLZt5vSeJ+edGHTNw~&{8Yr_@W(;Sw zk>C&UJjrTlVp1}2GjkEn-~W8#GxWpn z97q4~hJT~W?Y-l^?{x2b(5wIDC2Vmoc+>GjvOX=*NgHG5*VkV2Z?B=ZzxD0(+u#09 zcuA7|)T%IFw8>9;(i7;(PdZ{<{od~$ccquT<|rX-i6~lgtPSJ8`yKBv2$t)!7`^r# z@1Ym|+fj7Zx#yZ@z2trr!arp}cE7#$q9Y#hAbR2>A50gd^?^3Jrdrw<*DTyp(lZ)k z$j65QG(`SRF^S&}nlT^KS}}n8krDJkcfTDi+Kzndhv>y`{s7~lq8OXz8gCU1`>DVF zJst6a*9^kdZ|K>NK765mAAHX{&>Pbf5=XrqefHoH3qTmV(Hm+Ym z)>yORDt+!d+2JSaS~(7NINZCWRGjIYeNq?SXk#p-je6Niv0`4MIVwEC7Kn2>|Py5!I@BIpfB(;*uzb(=NJXj(omsds@^^f1MG`NRs1SQ z!DFR($1v({TiX}0nGDtEN_OB7Go7ngnH%G~JCfWb;GI`dgL-6LUYV{2!;bJ_@W{j& zbqg-pIPgrsDz@^BlwI*r@K>2y6Uy9lYK_OaE&?g&i-4%^lXIc;GUsv~+<&vuuy#&J zYJp?nk0;m=8S17K7L`2i8>hCh>?9-~63qej) z_&$vX&`m`#M%4tn)`R_JOyVl!Rys{A02d6wb?jordp5yk!l93YpQts)J<~iU5>H;6 z$pdm^%cOP^*Djgv142-|SC~#%yTFvlc@tucD|7EjeM}JS9J!SyhKgj&8OFnjz;X_* z&FdjozYAtuwqpOfx`XW3DdkM7+%U&@JY@BBUw5BS-&dlQrv+TX}><@GPgO%vd?rWP>EdH?O{XVOvs^dfrhQLoxz-@ER<8(sNo2hoWq{G?>DQ|>)k z46dzAB4s#e-R%(%c{qJ-u;Q{+MEjEL%8nDu9(v`gUPHh5+6xveFm+!#l317G4UOkd|D^ah3l#M z&tqI}UFvQ}_|1Zi@#H9hUJ61-v8>+W&_fpL>!ok`5WV7^AK@e%)4sNXTInJ!J6Cql zk;C;jKlEC3^Xp%8hkf7ThKJCb-v252U`#I*)V`(#E>C~d{b)Vy$hUliUiq$1*!a){ z2WV(Zn$YRLJ&RuX&QGu<_IXDvCTPb7CcNQfd%hbm?$Y+%>oRozJKc1l{(f-c$#nQr zUcv6aW7^K{vrXJ9X%Jku(lcN7p2329X}a-XE#6VP$#t(vH@)7~=-bEt(uLI^sDOco z0D-j-JxenyDCxWK1r2B6$M~924u;YY-of1#x&T)u@N_}=aY0J>gPfue;2uraRAdFY`92b5iah{ z2tUKR6$OL|tPnDz3}qH38fj&0ferfh8A7N4xzkAo_A&HJag&Ds#|GwDFP;&c5f7nK zaW(#NGvt8mS~>XCGkhCD%mlP_)v&n#;F>y*IZ&>-H|b6UHDUT)I24%>NP!&blW%f+ ze52!1YfSan40$y>5zq5j@#Ht?yAx$H-+CI|ug3kraOD{WYAguOwyfiHVHHSf?t%ru z$;QEIotEHgAPR;~<1`4;AW0Uto>1N(&DjW;i_{<{MYLgTZ1KuI*R0yMOa^cLHCP$l z=b!slfuF;;1M)RD)e1D8BuOkkwS^KERTso$MGBHjn$MZ_*P2Kot{%F9wsY+G2c%~j zZJT2@q+^1;y3#-!>9Mt={T4SwB8^im3`1}Ii-s{dECaIUajw0Y<}{40Cs_9})|kL! zY+3bvti7-WRR#0hSZ!*H6%T{L**W;I8_*){y{~v3oqp1OH`8m>w7T2lnEO+h-}0t6p#%3{+`9V0SHGVAMTJ!v-HzL9-~Jxj zbC2EVIZt{VU62+nXO_VcztQ3_w{r!7b&Z%~py~`-lWF0`ZsOh4ZW+7rm$qoU>B*=6 znqKnO51K_HGKd%_lS?p+#SM8lU+??GmlhIOuYL6^IU@x)TAyUky6K_UT$gqAikw2?Gm}5<)HB9as&SE=ZPp-HA`xjYQ`iCd3PiQTS*Th`*$jViKcb-})WKt(Ur`W10Z{shLNXKz)a&)F z%zJ4`GUiS+o)casx$-&-JamS@+6R71c_Xc-#B6G+`NouL%R4&H+27gYiX1-_VK6s! z$W>MxWb1A2=RuKK)<=1`35TAgFm`gcVH-bSGvc=_G)!W}i;{%13a@OFoIvVH0VNIA zDz*t?LP|Pn7j{D6FOgXVZ9(-@Z%J3+#tDr|5QNG@O0c*Vuy3^%mod{I&aImI)dGYd zdr}v+)QM0kfb<2Pvd?@+QU@v`?x5wsaw;JLL26VBX_>cBXOZ_%J!4LFUXX24Eo^X| ztUl{z?z99+N!TOWyq2|!jb_AX_0d@lXE|6UsS1}( z(c;jJGLxpE#Jr}m*4UV3Yo`W34dqVu;t+P*{xjgzvm6# zJHw8>Wy0ms263~{ad%VMLyc+U^y=h+>s-hhoNxBE@?zMcLF*bRR$P)ui15fLQehx# zwsGUK^wEv9_ zhwONA-hlW8rbXKan3VY-dCi!p!JQYH*FLOEDHbFILJ~G5OSUA!u@H%5)vdYa{EoMlIqs8Vkiag{AfqM{uQTAZQySg}KUkYSoR0HQ6bV zu{=e9MUn(Pv%D3C_iudq3v~Gd_MzSO*pm*p=0RL;W?uX5F<%$gC>8SBi7*Pi5*KqV zBWKzQ@hd{>%@+_@_u6+KLGnl_QobxWv+rDKFg$m|hK+&w-*G$b)KlplZ+{1mUCsxY z01s z`lijB`8(j<)ot4tzcIr~lHqlE!!o;17q6E$fA9-*he4RT$@Q+j@bd~SVqpMycVOBe zIF$2W7_-B!d(c9Cz4zls)6Y*no!X_z4C5+Ho(pL1ZYi%*&-^{R2tWMZx8C7%?t8}@ z(UETz>vPb4F)!11s}lRk^hgCHf}m7;-1MV8HYpY#Qmfo>ZAk>U#N}TggmxyZcI+*d zxQ3)WU76phTk*?vEGQIT>xUc%P_HWEmHD?pV7D!Sk5BzBFHeTf_hXjLm-??>YABmY2$IpIzU7PGL>#sx?{CH3MJk?!PkglCW-!H+k)$glL)>RB6dWl|S4toOy() zU_V*LVwMwBs3b|4S#U{FewAxBEN|pBJbw#Ztu^VP$uSTd)yk;jhrm}@{+38fJxy%C z#(j(Z09cqOq*_f2&SZW{Jp(c)wbJ^qsW-SnnaF+V-h$1fB$c#hDsNOg!$hvp(3%pP zpFM$Vd1jGC#tIhj#$3i`Xy8ANO+6uR zesD-!Xfg$XjRFIZUHuv#9{$KxoRPv&CMd4ZjhEmdb(1xOuJ<&-LM(l{yQWKcZs~zG z6@9?vvQce^3&cSiV#GtWHEBFAg^A4%&r$@V8Qr4AU~H)}8=oS_0=umBAEBuXH|ypy zQG;SjaeNRYtNj_=DMuT$Q#XS&?#pi_5lVHQp%1Rht2Kbf?BTed_+1^FLuoErh~vw&dDmTNk+v%fhR6YsOt_XL6pb)#6cULn*k1eU*BZ_SlpOVCKYyVW zc$|ICIrOQ|evba~{);8R*?sq22Z8k*s&XpuGh`ueag)Vj?@D{&zrCKuS;@I%k}@+{ z$8Lqpn;PaX{I@sKr{A-<@B>c)ecaslMFmNW!DuA8A^;dA;#(tG)LW7I1s@_btE&~S zG2ZCtZ+)Ns=bPUZ#$4B>)EnM^9}!%yxZmD%;68iN*NWhoX7`q7N{5xB9{(N-?(Nb_ z$(3IXmPMmSjU>)Vt)HiZuX^CZ{k{Bc|6v05cwA_Wm02OR{G((=PcM7Zf6#|t_iS3U zK~RX6Li=v`e3R>3o#(hnd+*2p$NI#3v}Q+z>g<{%`ux{^u#mu7vJCHYxl6H-i(_eC zcTJ;ldPL@bWr<~Sr66*T567?kx$(GO9i6^4s$?u5rlugPuL++ac=gUdMr#x@=GJ)} z(v0E`RwuWhh2JwMgd1_JObROsG`@5uhBeGR3>!EIYh)f?cuLao^x|>FmOhNXsbK-b zf-B@T1jcAB8NY|Qw~|zQ5a-dS!)mr~Qct#I@sN0D53fv>Am5^MfXc=zPb ziu*X(K2T0SMV@o^9rA$povJgCbgwi)ff>i$jdO=!778;nYBi37C>Y<8CXO_k6ZT*p zB{&M~Nx%sb5>+uj8FL6cni_$|`#172ti}DC`?L}5o-}bSXAYGc^UQG zI@UfQpto3iIJ0Pv8gIP`R!G%cB=*uKp;i@7(vm{-)ufH_R)2a5h;)KN!7#V0WREfy zcwb#vwZl-{6Osxq=IWZWYn61KEfQ;C znm(*Eqfd$ri5%eKyJhP(hWnAPrw`#xKJEX(9NN)Cm1n5o4ENy>B72J6)A zb7h#<%F3!~9a%G}?s@C60^LOI)0&cLXa#z{k)H}1k$t#+nk^SuoP=uIcH1a z{?;Y6tgXr!`0_Wt&97VB_|S!($?Mf;W!~|f&#V01<(?L9O6-xTee7x{2`YR?!^Ns= z^PI#?Yd%8ClIU3_bp=G0$*zk6Pc|+1AAWxp{o#-2u*bpIzIOtz6I+WY84ZM0Xrh8h zv#E~j!WO#oEpJGRwqgk`v~4nxaTZSj?h6+T`~8|%Jz$}}iskq}zIZHc+C?m@u!?Wl zx~00V;6E_T-GD1rrYi%_u)_Q5%ilVlj`{YF=w^p5Rz3&k8@RaO(kR5<{-%q?3YTXV z>##77!mEri}#HSX^P8xWJNfthI!*K4I)=j_euPYKr#^r?y?Hlm-lUg)_ro6}+NY5LTD4Z#jiQotuMI;JogWVc)cqOk?E}##H$8UNwlF3a%67Yqy$9Fz%6$TpN|= z2i(w_wHdDQrMdzOf;y^YSeK#bX=?AuPWRI4s+7OkI9Pj^mOLqzz}A%>qU-lWggh=g zbXY4{o2}cnx@Upn73OV}PE5Hx%_>C;JJt(q{i<4R*?7kM3ivNo{3uQV8e_L%^`xCZ zx;B|Fm=T!yw;w~xvsyb$9t&Me&PAGMH%4-eSEfWWzW$1+=00OYe^rPNe`J&NagZ?f zwP<&=I*KNs(UKrCLTCwm0Ir!p8(Wb~$c08Lts&%_u%ud^SPXfj>CJ1w*(^x2z_D$n zu?fh8oX6u$u%szc&N+O}V}Kc>3d9=6V_Kw2Go=4Bgc2|dG*-&tF`-gzB9sKR2FUxU zK%(nRrn%7=xa`7-Y!eq0_&WOxjhYV)L|J4MxEzNAV%Efd25H6dMr)(3rzVN2cZL$c zK0DK!b);)-Axzm$T@qNb7S@PS3NZ6=wxeVKlw9~g$Iz*c zCa)oQxqbGgt6%33I`E(?)13~#-@-LnWnO)i&_rOMzjZp6EEb|g+G(erMyH;3niFJ& zWm0CVry5_`>=dqNpL;GX+OW6ull4*d#32VSUU&7FW52EYGk9|-&Z+ULfA)kJou0jh zzW1XO78Y17d}a>LpNFOwYT0S#IKy{ec?OUoIeXgrTH_ue=nD9c{};o1L_1;E^PUJ@ zL2;e7GmL9q`2afj$_LV&ZhrmYwV*recN_M zIp%vYTEL`w0y2(v^wsbDcwvDRxFXVnm{Inc2VHTYem?cz-||t$^TLA#?#@Oam>*QP zItW{54FdZqXZ)V7apiq?_`GXeX>U)WNwOEv7u>O-_>N^*nmOkoau#DA2bLoqeSk~S zwa7D*_CtkpGH#$bnPz`SB1={l_Vf8Ij2SfBLZCsBCi}_)b;JmvohsS7c*GlQthpSwJW-Nlp&$O!x?># z{60C(j}}&YcJK2T^Ez{30{%3>G)MV>$oi}27~}xEPk#59V)y#OyyI9wXZv830dAq~ z>@A0ZD{c}9Ms|-kJ{Q;@CXb{L@5k&D4xs5D>F!{2N?r zl(BC)-?wjSMi|r$*S1^K8pt_xbx(w0>7zpPo}Ivr;zO3v#s z^=yWoy_!T(&}GvqaeRixH=4z2#$`%{XN^|jjD4-dB{UivN~%dSS2pc?d6QZ&$p!03 z5)fa`aVP9b+OU;b+<_*HkYvp~!3@S{b+y`2RyeJRCjzi&A%R>|0-k9{;Q$we%O@ks zthv;9>8Zw%BN4}ns_r&S#FCv;VAMlbD8rDE9k^UqaK!M(vbqURHo!`!Ql4lVTVyVDh~aS$DN^{de3_T8KQ>>5|2D-Ex;VqkaF%3KRhDq7=WJ)e-c)O9Kh zBZj%Byl{=%Q%*TW&RHqJqqKnczT({6^%Wy&mJPMkkZO8oYkJt-jn_8F0 zZk*sNz7RB92?|_M!lmt^~8(o4mlO&tCp27w0(hjrqE{+4=Vy&N5V6euUajYW3(*H-GodX z?`l8QeInQ9AUqeCO3bl%dM3>)f|y{-^8xSEsaVBxm|w5nm2lOLN{^l`qT(%wy@QOx zh_Qu*RYI<^J+m_EWaopi9|VUW<}!GIu>5!Yl|j|$P` zJoi1Vp?RwIAf6A7IM?G^i)k1?KS!;MX@Fo|nm@j3y4mMV)iC6XwAQ^jXmjTL4((CW zfx%tbL=J^3?lp~Iw!7y*Aln=Fkwdo9oT`b~xM-xYOsRe!5kssqVLZu&;d-voVmZ=G zhPs%pi6RqP(TA)ZnLzI&ps28^ArRmk|7Kw?^%gJXduo<3bcIx!={r{&Vg!@$X>9q4 z@YXK~0ytYfo6v6pqtI9It+b*eP1d+YE5D6B!Rk%3EY1kLp(7g>#_d|pY+$VBzb0;3 zyv4Jd4W9LR%0zSF%ZQWw`+lV1#rg2p{58q}=im%p@#+WB6$dNfpA`XhcojkQf(oYF znZ3_Fk6@7J?4^Z!1szS*lkB(TYlof_{Ru72e%@pE#bI^wU=hx-ubk%KCu#FfrF=eF zUAouXW^s33lPoUKnJfNi-jVo|Ak96xmrOv888j~kkoo6`M@mfV%~TjYc(9(9QZ+?b zz3?0Mbr=rK`Fnv@ER5sxUiVXX=$5tcdHC-KKRJmOZPAia^D>Do!@KXcn05Fuhu@Jd z&bG&{o19Ox@ylH=aestrhbu#m1A+HYv%Km=jvG6uI7zwx#pv_=<&Y6cg= zr?t@rwMFcKJCVnfaH3SxUvBMmiPVy+i)5~glxGmMtX0+oGm_GukP)xzG~1gG%Cw&f zU}&&960LVAGpa-_iKeTS_yL|zCmNNNZ7X`I98|!#)2Eg+ z$&}nkmQ8)8taoi`hZPh{(5s>Y^{Q4$H0w))R-MTU4;v%2<8c|C?N zTh*=)=k(Hh?oJQB=k4ikw>gY0rx!;n=UQSwm3FIjkK?t6&-?AOxRCt2Kb}q7R#zm; zEsgR7lFz84wXIDW`2%KP}iGz|_V{k3p;XzW1S6rdB ztupu}p42lV3(arT0>~CewTe=53oB^$bWT=T?t_xW*fUE7Z!?Xp>=?gJ4M#HnqIoFV zCABVU-&?nCvHet9iKlEegL@O`G|vqsQq)Qc%Rh2NoPXYV)i{fHSG8XO%_v9!fk1x0 z=s&3nK_17ed%4q*bs)q^%9$)}*dS$F2Kbh7@VpBQN@#n@5x_)S)@F-YtQCHWuMl^R zh8m>YPd~L-TL`R$U-r4zaqwenD3~*o3RJnpF|w`nQ_djA94oKWDZVaVaKaaKI!;+T zShP8A7uIUd!O;nS$7R8$GN!Im*IP+OIo+mKXLz#dC@1j5K_=>Q4tmrs?LDlKWG^*M zs=PZRV6BpZdJLj0B56JvSg$#khdx6x2W!pZ;hN%L8--R#ZJr-Sc>WZW7JQY;apJ)@ z)tFP%>XkW8P;~*;agAy3vwHPt{-PC*GnN>Cj=e5cS{`pBC8oG9dEShLb!XezcD9{u zXS-nS8aKK=-S>%)rh|v~oo#3P|EE?2t0NwIKYHRr?#*RxcD4(r?Z4OJ?#w&e&bG7d zZ2wqNI)QLG|koON`oxM*}!b4_3^gT@uM(5zdr$zWp)8Vt?`*Gkda zrU|Yj3WJnOT{g|Ir?*X(R72IR2Fn)A<(ONxTBNYnl4^qZU9BKUngVNWkNBY^8dJ0e=iop zZfZ540BL^bc+*u*1XHv!MU#ctj#g`Od#u+AKUcCWYCJ)oRNE=z-nLcVH*7?V3bdsYv3iH< zXgMddG8XG($y&&9)EWCzbcL%q6mKSM!DM>|b>WIeyCpxCqCNDCoopr6ac_eqJH(%g z77wvDvR;06JH`nxt0pUMf1*a7+T-7oB__poh5FE z<72m}#(#J{{JBr3yFT(k^ncM{1?^Sq4+}BDg-7QKjrBr(l3EkWyfv9wglo~x7hJzl zvu>_z)ohTu_h4aPq?Oui#j?Eth2S-&z3ji~baAsG=I=2ujm2l0cLC_uczjw`tXL8E z+;b0Fw24(;6QE$I$hN5NCAnXG4&p4+SdIWMw}1=O3ZE94RT|>FQAcu9 zDi)!ZGpiOnxvkqK-Xg_&XIPudUiwn&dL~=*)T3n6rp*H$?buShw7g80)K=iTdGlt8 zSt}OzlC5*t@7p*Ac$=0`Ay{Pz5{ksw_xJc?j|_EX!e`XJJ*( z7iZ;94p(^bna3FS=hmSd?zOo79-cs2Gj$bSKk_a~r<@KWYbm3-RWdKSXblC=hYaO2 zc>{9b2@6eXm#ta>C3js#oFR{^l`0J@+XT<{#uw-rXr$Coul)mF^IUVYn$^&Uc_YF~ zt}w*!h&P4BwnbtsU0=zNyuu~#&O7gX8E*rRt4Z}4c}i9}i+^8dGag>3C{Xgd6mPOv zr3CX?)v6bWxkYT~M6)ort@tZ*Zj2;xl*?=#mKvXovo*hn)yh?TuxaBaT^r4Ay|m=@ zTb0HlMz+ABz+p02W#QGybVYeN@LTAs)#@S06~eB-O%5@3FULZ%%`4!*><*_?N4mae8Vf~hIhOT?Q9o*E2U}{Z3phR4_z2- z&x^s0`~Q`8$U%QbA3N#=muRbMDfO~wJ7mF(ygO>U@4Dl%Fgx4MwzKVQJKKfRCK+W< zC`S{GNV=w(3NZ%!dq*)w6ip=kQok~JabQu&utotjSXqOnefmnG(^>P=VF6Gr zN2^)P8aHpLg*BTWI<$ZY3P3UbHBr6PpJIz1 zv_$%TzLvyWLZ(b)S>u?B#?+c9S;DcQ>hIpDkABg^(y3^c&ePHzQ|)WlUdoVc)QpxJH7;s(rE}|7FWP+s)-P{d zX1Es(D_g3zVclyDCD-R7x6UFJwP@cYZgbj+MNBLR&@hr|zgw$!D}720!lcIMLDRO{ z1r1`a_29(XRg{9oYQ2QmU|sKW4=-I03%sXF$JoqkLoP54G6k()!82Xw2^bb_WnXcI zL=p>YiHYF7)lWr>ujME(_nag~Wl+b;Tb7!C%h0B4*2T8$hkyrICtBi6IDMbi(i`UX z;O9K`LK9Zc8-%knPCcD|{-Yn$@yC6Su7A@T(=Gq}4m-S$JwhfCe@zs3%Nnd&93Gmx+98D5=EY0(DyFomZ_hDS=KU;gTph5I?= zYFDMcSXdQ@rxY^KYn$e2rLi{T**gBZ#bJxr2t`a!)%x1)U{R}fXFz`mEeP=(b~&iF0;@Mk9v@4uttPdtfU z{;WqWbl=j(4Z~}r)X*iZot=_pmp|n0;sPJkMMRPr z#D|s!D+%J}k&&Kb+Hnqw_e5E{F54P5$Zyd!eq9sFzUjMlK<;$}KA_vWRak>yVa-b3 zn1AU}lhpg18egat3MSy|G_OhTrPz9nYebo%MtLIA7*vjj&F+o1VmMHFjg1=&MwmeP zw{i2Pfmhg2S*-frGxhSj#t(xR-n@&P$tC4mS65aw>%a1rjd)if782`8_^h5YVzJcB z`O2>>Y0X#9ek=8G;ayYW4-3E5tEIeHR?D@LIoa#lmj?J^KM22&72ad(Z)>rZ63^LE zOvr;u6|h{Q*6U=V-X@6AE%oG^m`o`tKcoCx?|2y&Y&3&aS~h;S%z4@a7E_LYN3I{S zicUm6Dm+iqak}90T*UK&_n4INm$*_+oSDqCk${VnmX8U0$h=7{$5yJ|o8<2@Q{`Wj zuiD6a&hG(VS6bJFJr*qL-DvND-qbfKvdCTgK}`z_D?GxlG*J9=A-z*p=R1SArIovP2I4w&`xq()qMbl?KLhJk#swxYGS_Elqv3= zn3FqMdEeRHZks0C?{#0vMwmux>4}-*I$=wM%%RC^*~J0RK4S*VwtwJelhT~+zK(|V z&7qdB2+6scSEhJo{XJnwIJ4FG^zWRjGf@7z<$dl(cYgQ-Xua*%gHZa5AD=+KKJ9cm z^VHMmXFvW4{p^IFu)tbc*-vMkbr$Wm`)&&ftR$nNaVW>koaMrGx17f~L>Y+Dp7Y;n z0s1g{2H~vc3Ll(w%Bc(YamyRuaIk#sM(3RG2}$DI%Rv$O%M4>E|@CbK<1@iUe zHX?kUbN*JtArThi?5guzPYn;Gzyko$CmPX~HQ=qu2=nY|)h=a@W4GN(VAW?s;XrFV zYfXG5ldlL=#IF?oh5=xl6v($N6kDE=()!YB1S#@N6z~-02LZ(tSI)E6bExS6MIJeM z0=;VPf!9cB7I$hXc}^zRIOAo%=NxO4;vH_Jv%FJ;&zNpSIL9$8vSw@X9`o)QU+XT` z{C|o#vEr}De@cNDN|mB_OcTlYU2H4)fktP-VL8S>Gjp}~S-wlZF?VPD9{WwS9XVmU zPXtVS3iEEu@dBbCkjBZc-2k&Ptw{=+DiQjcYEhC}#ZtICk1T-`)gEBtMUy64TIs!k zbuURwWFkdas!b}-Zd=rUi?y$OGBv}UXl9ZakM?K&+I)5PnUf#%<)ujlxLBizv?eOa zzOxuP2o#ph5?RYM^Jt??1cZtN%|$O-JqVHzWJGgPtP7pT@2%Fgx+ZNvXh8^`Ig)x1 z(qKKClq_}XV_w=Swr*equ~`LH8rwQi%W7&uHc>^&K#b6UTGr@X4G7i-XyA&5wb26| ziA5`FAR^s&c!u<;$gX$7C3BO#r5_>oS(@;saSfj!jNY_^w$A#DWzFQbae1SRU9Eea z#z0C2w9M8A!MOuG(^O+N`U*L3M7GVwwaiY$lf*oB5~Eq}mDo`ki`NO(_}C7$a=}DM z-_zCJ5oP(GYM*c%vQuX*-maRz;3eFk9>^IJ^LKq z!z*kNo=TR;C9w*YY>H+4yYAL=cE&|o*+)G7axA%4-ULX-=1}^aYTe33nxHblSR4zg z=TqP;7Rqj#>D-d7GT?(;u|kWrrqnwg&OxWv3@f-kbo+-vh(CD{><`#y?;ZA2O5oh; zW;do!|M!>K;)Cpt+?UcdX7q=CyH*(~a*u%04%la(L0~mIvqrib6>_Vo6Tevv;TD`*q;Z`muTQOGo*lQTL=5?^<~zL%#PU;8SwXe)7trLH4q z?95_`DE$-|{Py>MT)3ZCz5CPjlatPnan4~fohE6F;fUddLbXxvqit#df`Gc`o_q3p z@epFGU8#pT%zL^bmQ{WgOIhP_jfjtfkk+b)l?f<~^M4eCszNW2ZMLjoYEUb7Vz`6( z5teId*^5YEkk~ zl%6GhNydK3lK>?Gtc%7YH=0^Kn@K@w=vJ*x&{Hg_X7D6G+YXArBPCd1ds8MvA<)W* z7!IjDu5#8qFKQ*n-skaW;wlaX*Wq*VM&f%DRaWtGvOUy(gs;rYOXUQ$9D-%myEM*p z$v$KK!Bh3{%%f-l6#6W+e&q~UhTJSx^zth6>)?IXie~`M|5Po&$V;+m^JeL16d!Mj z3Ei*d92eTlo^8F<5N%c@HZ{VtwDK&;e!MJ#e~-PIjg_lC+cMXKPeJJPHIt3t*3u9! zogI7|H*B)!M>t0KrP23@lSW_6Lp55@xyoX!S-g9{*RkqU}J=VHVeJ&IN7_+y3)u z^!zb=XJ2ct|NOzGxic6eNHpx%NYG6q+IS&ng)l{Hr67!vMs|(9=8Zd#1hH{HG=lr~ z_dYru{gK1VKor-C!hH3Wk}))CJNq}s$6yY9t^(xOdI9!%jxag{Bg#g=FG$0hEOfgb zhVdGf9l$UNiPpw@AuC}lzu)X$ccIJfyJI1$w9mfxL-e$}9X<%GAE5Kj_LxlGUs^_M zW={=!bGO}hr}eaX=PV!)GKI&wIwjvr&N;0X~a0C8c)o7J?DtUl@Q#|oW2Y<2Dq)Szcs!mV5wC9tvKX>b(D9BXK)^_dDP)| zTBx65MZNVyo8&#$Lr21_cYK8q8|)!FD^sXw}StN97-$==KBtH+(NaBqKg@7uAJ zb(RNk+(>~R06xPtPkg}o>Y?^);K)K-&N}COc9CAB9ekDj)}%ccpR^hekN151Eq*_b zHpc6nH>vl}_OMDk%aIR>IJ@q@r!k!!w=oY#<35S3uj(G!@%e95+3Rp!o4!>zCh|rY z&m4R<4;P5SHqZemyVrQ`EG&sz6m;kD8)I1R5Eg(hgP~rlst=Po*XBoO_p9T|w1XF# zaR~vZjJHP~&21hm`q93KYiH+c1fS8QX6Dh1&f$EXuBOrBYv+!4o%|M!?gd1uYbr=> zXV3JrIDCu?ef_Po5v-`XQx^6`d#7qRrl?)Z zT@-`>nVXI|CCeIDK999T5SWv`*NJqKW?Rl=w)I3B+m}3p-{>HCcnRV>lGe#fVLv1i z1GZ?_%!sQDiNsbW2_ywPhqiUgN=4jc1Jaz9E#{>L0Z4gOyUx@Y5 z?kIUMvlEvrYt$sXw@PbdUrak>)q^EiI)L`8?_J9V;#~p<w0iPsV+!AFiFa;(4a8fc&7mc7=L)nU79-G2Bred)cSP3Z> z4tsOhv&#~9UNSab`QWQB^o&;P@uC)7*RL2t69TPxC#8jjCqaY3s!xJbxbAOO+>nAs z9rc(s78G^Y7HQ=i@c0qVKg!_ys9KfLVKJiabkEV8=y z8?q;(59RkG9`XQs(1OoF1Dq(lqXwLe)@~RfXSRUYTd;Yy{3|Qn-oUqYFE4x zE#8zT0hzT-ud5`;wV`9a`x83+&u_L+Z~I;0GW6t!-i`kG4IlR03r$TQkmrH(0u-x3 zBi8bJ-R_2T@7vvg*3&qqUh_7TeYVPR_MPm(;lE#<@msEWx}$dWEA3S}iReE;m{qK5>?KsTctM&|$!PPV1i+ zTE*T_S?Z7{t#V*FDsXR26!lH#qh53c=ZhClu^e{<`z7Kb#R?`diK%IV5SeL%j?+(B zV>}+{qfqw7XsN&^b3A6T0<*QbT&k{L@K{??7i)}H@}~4=Jwr{*5`Vg?mOa6G`omjWZPBC?OJ@?0WhD?i;!-SF`ma&}wY>!_uTaH;7i#t}8hlSaI8ZE}s7FJqi^ z6Ui`~3xA+-n>uc@GJ@|KWyOwOU2s|NN4!uI<|Ob;Ro{(eF?O78RYHPyOQYFn%Vqs) zpud!j7r`0m;F-nyA*(2$IH>V8;&a$YmKIVRw?VT8V?4;CP&}sMn3B2CBzsH1>3mi? z-eV~RKD)0&0m%4U=dpPk=HBKPy;;`E9KF4F)W|Jx>igtbql>3V$>-7Z>dlwTn-4sq z%U#h;o)LgPqjp!eu?4CIMr6)I z<4<@-->XY;&w?+(y+GlVAh^P^hPe`L7xK`g*!Y65w!;<>{j6rn1)=C-(3lHrVTc$l z8Yh2V_Cp>=GrE+Q9P1q5N^5EEM(esgjTb5z2?COo?tSj(YX1CuMGY#|F=(vJ$>stj zNVQ)R2HR^UjF9j5R?AXVTEGaWRKvAiWBJago&h}MI(N;~8r5#;9K zkL})f)jy+kw-KGg8Xml$uv)CE@B8GJ!gvF242iFzCLTEFS_d6S7qqdG0D^-uM4vh4 zI68YBv8<1{=WXc8559|i#u!^IjbdXC`~R@(T$P^txO>xj+juQI!=1v!9skqC5{upc zjyIWmChKSPGv`0@TjjppHgBZeciA*Uzr3%$qW@&~%UNv_tdQ#B8d|hGkv@-Vc1Ze6 zHH}GQZg9?h_6%~Xl+zgh&OReKlF{AP7+?u;3hu&~Pm(7Xp2+^xIM;|%Xms5SE;N|< zo{i<+SjnggTv6usGjkp{+e;xaVuX-`Q52RI#sNB(jk~w;;WMsxjw9DRxGc174|&o8B48(x7G8j z_I^dvQ}v9QxsPZD{+=+C*!NOTEA@e>^ufQGRAR^EMB9N40N-y6rX>(8&vGb-LI35z zV5;WCv>O32a$gymv`IZrHuk8{Hr!jD*;X)33Ja_Sh0Ay#)bWCFoy8F& ztjw@3clCzvOxnHwzXP)NZd*iMTkwj*e$izbUT zQH*GoI6LBm<21<;9O7Knng~r~AL1cPgXXei)s-xI3VuGoV2HHVStp7Ls|yEZnBvS; zjn~+?ybDDQ6f9gsjtJmD&UKKLn2GgX&nRNnP}_|J-k$MMx?{~{7K?qS1XKpp>HcaJ zHrbOv>ABmWnGmhcWlowwQ089#=K8xFSJEkA)R>l5R&~8XD`4NU=Yrsor1fKQCL600 z7;%qe)#gR+xDz4Pl%42ii2+T$?5U*8#eP>?EQakDKl(|fwdMH_d$6o)c}~$x7t1Tx zqZ^*RwZxAML%#F^M%K#ZO<`t4C!KQoqTSK8 zu68B%%<0W#1vEuI!E*t01POH>aJSph!cDl+kbPZgPcOL{4!+9%3w3kSX}=lhs_yM9 zJi%n6;1*a|5eFxN!oX+r+jvhs_Al>3i?*V~Ecj+g=@{4e?EQ?E;s5chbLjn_Iffo{ zzr~W2mG-0u-i58L|Mu=r(JxQ?HGc=1C}H4Rcf5Y3l+Iz-K8U{l-Jk0I$fl5z4D_`nt!d!aS=OkWErHkb zp8A(`_+4&FKm6IL^rPYR&F}x5zWKcq2TQNGCUf4BM* zy?M^b#VcCd6SxRjY$bDTa{8g(LBbOTVWVk6oF?K8YcIZTx@xkA@SKfV9w8|6{}m2k zk>q;B<-&VIZv$Ud_{rXt@Ca{l0l8xfFZaocSJ^Wde}uF1SkBuOJjYIc`aD;3lPRj0 zLjW(2q+nfdbHbWnFJX@vTzkQ#@P5iRwwfRCY6p$M#1s{z$}E*@CQWOxkodmLv($1e z^P8G?Sshcqx-wPkDfq`ug?>3hOsiVq-21k3!96w38!hR6gl|j1T6!*(WD6@m#I6!K^ zq>9l-f7pyUFcCD;qHqv(nge7%#RStq+l&(Tw7S@q2(LGQ@Ov)@+XCquPhX!YY9w4c zlh$JP@I4Nfow3=&mconj=)2_1!x;F;glECcx{2g|U3A5uEi??7jLGB%S5R8jJ|PTu z;ZbSi3h4cEo8*z^5%AS7z-aaAwygqdL@2h06h66vPU9tWCQ$UPPg*$v}Wl55h zYm1+8c;rfvg1q^#1ftlhV9iKlV91NhFDF@=icnb!8s{FV_@jmtnHp6fw6Z~s3FqZn zcExGjokFycaKCZ_fT>`d+~=m&U0O)g9~7VffkOTjQM73Cr$z*1@5sGKX;6}&M4~|> zjhCqf*gcxqt(KV|om=KUaI4%4H>g&VZItng)mOCJNG<{4EvtZ7;3}?Ed1i0zu%%$d zZ6({HC?c|L$Fu`M&5EdJcOk7bllm&c>+ZWQo;kH7SOPNzO=ThC>>8=o@Px!pg^-p+ zC&RT5eB5Ieentv0pk=K~@)3r`ME1-w+;l+L7is;e%bhq2zhCg4>mb1HDQ|IpV@|#?9(y5CJtPi^99qEOyc{}~#>~pPu?lX|QY6*ug ziYxE~*CViou~+Zj+ODydVPdt^5{lU-a^ItojPCfGv)w6*^z^pX=EG~&u$>vJr z$$^yK6+BVsA=C2Ek6HV`WW>Fg!$Z(#cn0o|{lKypd9fTMK|C2Wd?nYkLg;vF0tqK& zM^ zAWmn(Tg`~~x#rN&W^fVtTDTyJ&z?xBvO>152*_HBvFqy?)22yt=WedfB%|DuwOxWDV(MzTv*%w=a|8{_j+H9qh^(HLfe zFSTM5%F?$b=fpU=RQ1_dXp>sHbFS8HUIQF0S*VU-DcA1N?zJI|bhOrDEu$g=!Y$8D z$JqoK31W%Ow_0A8xy(|VB)QXM!kJu0?sFuTmmZzX?KB`?!yeGmNI3~G(AbdiK=y%9 zMsWp`N~1W`WNI7*Qty_*l*Mw{tKeY3&7FJj& ztRSq87f&s)G-(v)MrDBF)soHD1enIGILwfi3;JBa57&xdt=Tv=4nT-Tt6D#g2jy$B zYj9hPJCFKiZLVaKr9RXtlPQ~PDMU4XSD5G28c`|D_9HS)cEO#z5#rRS;DdOD5|hRP zrS9!U;gpkS9F#x&aEc(PE?P>YxNq4|cD;Zr*}aB1m5hM#6D3NFCo0Tt3g=Jakp_FtfDRg|>Di0rorPgA zYzwyiuW}_i{p4Tq!#P%|WSb;m;0wwrtIgR8H*Pd-;zOSJIJ&}u37twS84X#Joy60G zE9HvzD==(ib(t4wx%axkA|l9{g3usmoFrbB936oB>DN(*6^U*@3s6%oaFcZO*S=tc%?6xcY?GX>7XTIdM+@CRYh!tN^ z=C@cd)tdC$=RJki)j+5E+Ow(peSua=#28Iek0B`7R#u@D)tmzSeMkH5by<4mqwi1a zX?tI05BkNgPIsk}3TG3Ilj5U0{Pe5AO8SQPe`c`WE|xGVwwqk%AbwpWO?d`bk;_st*AKA%4Ng=6WV_qfFlyE^#F`_WS$c2|1kJ3p;miyT!WhgZ#J^btWlYc_e8LkWD5hr z7>x$!VA)lRpm3!eLhKoTx19}w4$yt!ITLPudDPkyLxt98p zY>74=Bry1We2y!M0Rt&3)UX$q#PPc4p$IT!N)%=*5PjCg#;yGCO3bu+i znk%BytnLEG)VMXU^a8k|rn+S{POb>eHX)`2Jf5Tj#k#W4$XR!@3BRB{6Xj!4D|EW2 zxaMj(?A5!8Y7`We&P*c_8w^2KJ@a6+Dq3__fES6c5hZI;-cE`TxV+3((limzum1dO zf+)o?Y1h1;ONE4Dk?pg^u4XMm$R2E~tH!^|z7)TRN#hwVFxetPC;mdpV zw`|;!4MnsMELkk@bQN`O)pM||!;ZjLA=Xy*s`fd|iJvkR*iKZzl7gj`EvcHf0$!}v zaZ*Jkxxqx$IP85GEx|@(QgWqVg|B#KB=%>q8bKq5n*w38;Qt;R%QJRrD= zhIg}E!kr5nENVuR3VoSOFpQJ%YARu+iB$oJy%s>0%6ua~hkwfg`T zcxDznuBO%;K+TmfR+av-p5Wbj98T>qV>7GF%nE_leEn6$r|z=S&qS?>=(B~(E#fSv zvMy|%mr+>Bm^KMP$?9qVYiy%sV=Qq8_L{oh<&Z20>&|b}EH1rzxWsj3$qv6Rw8Bk? zi34JB0i9@~)FsDU6BH3=b*%v*^@EVTa|CQNahEa4CCWqtjKzhUHD}IPFD-456@#0O zx$CG4BM1Pj$%YJD)mDkX3L#=p6|n#VcZJfH;3hP!Jp@{4{M7Xe1-d6~cDTu=k~#Fg zI7VAxsZhk^$g5Z37jZahdCjYuUR<<@=!TUqBLZZazA>X}Hz9FVAB5K4=2nDO2&&K` z_gPY*ud2Xmi6(UJoM@zTO`T}#fRYk{sq*z*tZm$VSGv`c9;!?g1pBPzGit;wkP| zStk@!hwC+|Mir$87HJ}|QgEHuvu*fa`g+Dczl837$J-7<-37OZUg)jBR2f0ivtUW? zAh4cy9)0=P9`TU-(pkeEd*M;4h@*<-%Hkic5n zQyzL}UZYpN>oY@tB1|zT8uH{t$wQnFFZtAm-I;E3-Nl6R&wcg#mJ313UZCV58J=X? z$h49KACL-}IncRaFo3nPG{lmcz)E$DoO=c-E{8xuZrDI9W~^O0wmhk~0gzPb`m8x#XO-UZ?gVTmN?Ky@T-%JSxMsZ^?{Hs%UQ1+o*)H6nGat zui&T^E_;|w!B+7^N#unxwryLtG5sthca{oouHlLhSS9JD&_pXyIZ|X!v|LbY^noaP zaUm=UG1omS0!YKCR(L)WRSay{AbcV4ttpB~LnC!9;MG-Dy-^{X$34J+g>Y3ylzU3) zF&?KX1Ui)?+D6OrY}_EFfi(O;$~0<{vuG43!mt^ZOg*Gag@m7V2qCq8KFS=khW{0Q z4Rf2g^)Z4~n+md!eq(d_*BMg?oury_H|eT7M#7uKRKRSVKqTWpYzWFsx;UlN&T0sR}LfWX6o>B!5(aMnt z21zg?MS%s`(|XnTO|@1VGP-4~ZywEE$7QY_im-?lW59&K>8z4k6^nqTd({ZFUO%oS z=*!u-P>3<<_zPhvv7vqA^<49uUL4Fo=yF!rJ($vp<`_FC~jz%@%Kr zqzGXXWU>s@y~b-IwL0d;_rTRBjWm;^mh33TwaUg&;j!`=M0jy`(ju_l{D=q9McICL z>KXK<_x!uYZHbWk+tbciDDl$4H@rUm#Sj-#l$r-i$T52g6{s<=h4r9bw=a~`v9VYReJ-~Wzur(0Z~esJQ+oLK3r|NA5Q zz^A@K?4poVfXN~Roqf(0dh+w%NFROu-_a$dRlHEjL9sZ6tV3Tt?x*zi@1979U1zb_ z_$NQ)PVCC_4zXNvS&PSVPUnn0+*Q9V#$IMu+ktYBWf|k ztR${$YL0nEc)�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

      *+KS-((27j;h|kWE^RsbWns$2~~4 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 literal 0 HcmV?d00001 diff --git a/docs_new/cards/dLLM-card.png b/docs_new/cards/dLLM-card.png new file mode 100644 index 0000000000000000000000000000000000000000..1bd217f090c111d07f45d66e890d869b88beb8c5 GIT binary patch literal 357376 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≫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�Q?jUX&*1fcev3q@ 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 _?fPCRIaAc`~yr7Tm+bck&tH_IKt+W>XHUp z(apM^Y*%=1lty_rwQ2@9fGI1m%-;+ii{C>kOFN)7bIzpJQ@NS1nWZ#>XP`L5Fn^Mz#LmyT(w;=wXZH5UsAvH zvYYQy?Q#}=4jtR)KlUG~2DqnA)f9FYW7^bq5COW5PyFBtd?eM^n#R zxAm+r7&K(O2gXr=S#)fWX@peTL)o?6x}NJaS=c&Ed86g9MLfL>7!&inU$WgxZg?bU z=;GP#iP(LN)1P1eHu!JXT@SzU3$KEcCvTT#i-y#uSmva2yk-e?ey5SVVK1B^7Bgui z6h?wMDrlAz%@v-tp_KP-)qQC)e|_-0;cHwY+t-;1Xu!<2Ho%yoQ7{f2|GuwqR0P)I z!don@cPF6I^@An-1<(5dxMc^|)yiLYjF&Tp^HlkKrL#l7Ui8B+gxA0B8u<3_{!X}b z%jm(|rV^y-XJ7hq_|;dv8thE&g|<~FoJF-nqxXaz(3bPp4|!L}G)Nhf&KNr33FMm@ zJII3t{^y^530!;i)$nD{x(Xip_}zms&81>hebWp7H@M-NUzc^5X$W6?ZWpmPPMME& zuk@PB*~!8xmN%x4lcypQI>9on*O=NF43>|ZC z8(AB=cTwjtw6pIsEp-7GH{P>nfF2=Nx|RAl0dRdB8{qx4=1C;4t<}OU^GZUrE8imf zcGm|hX`f6z%Ij)@?0ig|e)zoUK2MKM0iWAT1_w5zYB7~Syy!+j zx1QR#k%>P1K32;=f0K2n>seh2!QsIBAnOl8`;-ULIiaxEQ#?SRm)Qt%l#Q6ISvE8x z?*#`4*4^HhzpQbOHXOWxkn2X-6R+)|85h3DYoIT8>lYcn0Dcp~x}-zSVVy;W6c?)& z+Gc6)&`kLPoyy$C5bkH1BAy$ihB@R5=7(VrnK)2dAn~f-Bf)}Ab{S3KXr=%F z7YNift0Lw+LJCPI9nBTJ+!W%SE0ESAj%_4|Fvemc|U5n;rOy$M0Xf=?? zc9x@tcuZ|ZhajlHW>}fa)5im#4{6t-YcI|>Z7yz3@FAIx&D!ReUnOI3-6tt=E7N6X6u@7`MI^utxnd{$$4<j$Cr8F1<4m+d6D-gLuF@Jqk= zYIxn%uLIf{5M4moMbNo%sPkK&@f^5p5Lh4c_$%Pj%Py_wu%2mp+n{85(;MChzw_E_ z;En;Vxjp<$`L!<5pPD0`8M|#Nudf5%!+`iPK)0_B3`{Y@+TRaKfnWRHe-D4~(wD%O zKI_@=nGgGX`1lJif-_0)zwXWO7gzr}y!&;(8Ra0Ovu)#r*W;fer&N~mOps6_fC|XX zm^N#NXt(jUV&d2~1=x{r%AFgJ$Kzk$@8W_65k_UO)-c_uQh?~IsvSU&I;et+a1zS+ zt9BwxzA0&2OPRKVChDzapb1cX%zTC~n_rQNNZ(6s59ReR^H9f>d0``G1kf5rQk$EU zELqUtQi4=h%SRoSrYvLkY|3NN*2(Kdx59BYH8|8hsFGqWf|DvXA{~jJsj3sxj+0rE z*V_nY&=-dJgj2jgl69mHQ4Wk(6UgOeTyvIHcx+zKl%7FoGe$s{^^=An(v6yB8~`u# z976Z3>p5s<bC=|(xTvtYBf-O&-$XMRQX1Ov#D`o)Qw69ts3fzJnLyXus#IZ4 zH3P>&q&y0%w>-A<`6!eFEUlwO3C@VK_*ch16vDNV{a6YB<&0Ao#<Wjx)pUZUtv%SYX*xIJE1 zWcuq^$k;m|p*-Ww9;GjR?N2`lmdqf3!Z9ANPg<-7!Lo<_eg%u6?6daHf^*M0ulDWE zJ9uyAogcZY3NUAtyo(;rIje(D{kX0!p!@FeIGrjM*5RGo4?4JWh42q|F6-xDATlSr zvumDPWsX*5FPZF5Q*>+A^SEb3$5<`(a$U(er@9$P7kioOHA!SVxvDiHyBN#Z$<@wq z!=TAh<%(gi-tt&bJ4Gm}Jr$U-NR}N+zfc1wrs!)R{WhzC0WPJBR@CVlL$oNFgqdNe zk0D1mw*J~4QV;|m^2qBNQLd~RTK59;U2VdmiRA1<|; z38c)Z2WuULcc_t!y9SpiJSE;h$GKZHZRjh0DetUhua!l>1ZNz|{1kt=itb*(D2VPtSK^0(&1@iVmSy6=48{YM9xbCgj!8_jmcB#4_ zF*k^LF;Ixms@iMCQ?@@m48P(_RY)!c?z`pEU{w3{&_QUu`1r-}srNg7X!r3N0r`T9 z&QFn$H5gPmi?)2f@x~kAkKXX6Dx@N~{88sh@ZbKPoB*KsHcDyIE(=_#Vghl#67lvd znd45^TF1OZCpfb520C6c23@sevgZ;<6DITG+Ecm@8t0N#x1Vv@<#7Hbmkh$|7r;m$Cb{Pqe-yXrzOl9738ndwAIVH6!?WS&%tE<9K%{|1!C=r%Zs4-=I@I}7;W0>N zif0tRbjp*-+An)oWv?HDFqzb@=bnO`LQwXvR>8G=7JLsSUdG~>oKau%Ff*P(YCIQ`vefUCfgpaV=V9X3qCRBnT~)lvkNCZMy?q`K+in zrKI9ibq($d@D(?u(|nY~nwT{p0l?b!#a?A@ODP8fkglqgRXi>;RYyylqzo0AG1l{pl`-c21p0+i;-f~lz@D!4-FoVQ7Zv-(}< zGcZ(ME>;13B*b*;@+9pd!66fMSv_GaY^`G^%oO3k+M)|b*BqnU+P_!h6-0%t341c*X$$X66oYdIEaRHxNVu?w*|!R?qpg*k0o-@M-n ztBn89etTA>Vd&Q(z3Gi_svmP16T#Ajce1Svl{p)pvjCh0QavU_>t3zM)~)3ce4_%Z zwvgTZ)C)!Mg5+43vK4JD{n^|99NzJ^KZ85(JSAmoX2MDZm*bjBY#o|+gF>BvYIq&1N<+>Xn$ z01y_WE`5Jrq$^cEGW`)+rFr^wYM<>#O}NMk41GZT&wUnQP3x-e(Y??Fu@;dCn5K(U z_oO0}DAQE+?r3n(slXfhhay$hVb z$M^77H$7^o3rF&RDob?mWZX4i*Q(+@5ZwTth z47V-z>#{G)L)8xWz+okv@64Pyn>Zt8;9X0ED#CV6gRFT%!sRFwS zO)qI7#^=RcKGnBRcJE zpH1UTN_nUFI2cc9ZWK1(DXeSlXN@-O{4v)YXoI|4$3X>zkY@x}HW(24KGDLqKmNdO z7#*7^MulH$;*tPFSZct(p(ly{Pz%q^oKP+&x1<@92qVo}jWlbi!c?~q&_FO|O#xap z$-QZX+DL~ga|Ma2+Y5-|`0=3}648N7(97NTfmkwda`n_bJOcmSnfje@RYaf~?60kNBo z=I4UCcwr4@_Y=?kI2i*DCB8a+ zQ2T#s)x+%{IjHSE_r7P z@IXHIA}}d@6gdd+Uu zOWlmV?AT?OMDs4ht(GU+d2`3?-5R@E_ql!1HPw(x7I=q-0iW*+PRPa6h9PlER+hfDlm1#&YTIZJLMrJ~7&6g_AK@_kEyCS+J$x zu3et);i9&&TKL2j&)mpyj&PE#pH;s~V-b<3?b+78h^sQYM6zXfPjSfF5j|_=d7rou z8l{*Iq2M|-&xphRDwF3<{60EsAp3zls${EUW3YgTW7TV2p-W5OVU_jA4qM`y7ZU6b4R13Md zx|!mrbBVy{xDal&W*971q|832B>EoA*bwUt4!R3{7TCGSc_57pCDphMy7u~_YkLD>TtI&m2;hBU7 zRydW(AzK?`)w(*I)NLXbSSHVj&gWXZiEKTiTZa|l>A2xiaY?}a($BJP*dr#moMZO( zP#n9c9x!4#w!M^@E>0;=G>_uSYM~Pxd9YduWfWc!<909b{mQ*;0jhYmwfKrv5b9x% zd?b!qFa?HsvFx*_30Bxp4}gP}c$zHO1E$J2;_;$x+I{4oNd#WmQ)_EX$%n`~#jUZ@ z#Nyh$;svyVX03M8*}Akl&MWI?smJZenq@ahO7um?-Gpxm1VtjVaGqrv(_XeJv1VC$ zR~dJ4#as<=QMZ>=`Dp>F0ONKkP7m9Bi0QSief9k6``-B^qDX$siy(N=NA^9i^jml#bF-I!Z_BC>^DLI%#Pt0cx};K||+~ zvsy~!cC{dIW|gK*vu2uHa4V2mZK5`!eDA=m^;rv4HmX-?U-l&wt-o4Zll6u;hyxeY zxrL(%dZAiAcYO~13@$2K?!Neb>k$;aX{XSY*5cE!mOVD=XK(vd*S%S6PZ!M>^1jlN z_VFQrchx+iJD`)_cC zbxMlz<*uId9Y~{>9S32m3aMgc8YXrhS&y_Y^SH0ULQE^ybKk4dMztak=2~Dz_1Jn4 zcGv^QSF*nLklo63-$fq^cUN(}x~5J+hcH_Pv|WVJ8CaeKD+8y_wbRm0cf)M1C2P-{ z*}=lvw|POm{lXe+^|Df*YNW$lTLgBsq*?pJ`o*?b>36l#iH1B_P1WsFOR~C5a~Red zK#DA|8b;K~U%~1OO9^GF! z;ojS{4`uM8wQGb+AoM}uL+3mmX;i!?r0uTH3|F&=@?5Xiz15|AC~dqAn9+|rKulNj z%%iYR39{zg05J9jG2|q{(Qe1pJ00Irjc`5ItEthCO=37N?dwu~(Q?AD*{AIbI+jkW6khl~`aU>n$2ibE zS!T)I-ty%IjLrR#OI%QKFJY0!3k>SU&_{$Yo)FI0?t6C3o$+U_t1W|+LZVqPSB5(p zCV|MdbFYLZEUC9OSA#QkXdY0s4tTV*u5;^XXDyZTq^f0TH;N@ik7Zl>xjo{Q;A7;$ zafI%O^$T&2JsS`_IE=3SzCl6NGe_DhS#?YfRyCHtSjjk3OIwH(R(kMxv%*6~5mpFt z#HaST-eR28>oc{MsYM4Al*xi-DLj;5GL?Hnh08js{7gIx>R6OXDI`Mo^l7^!UIx@{ z?Gz`7z3@tY4OFvGgwNwrgZGFRQn#nLQmjAHugX6tZ?edcQGXNV;Zszpb#^|C+K*+& zjaJXBYB>Y4Ks*#+M)5;$j#W5?b|pmwCV--}%D`RPZUIV#Hwe6g;)iPWqz0$R`$~)B zRo&a$tufxZ$wu>71gl#n;WT=W6b%80@vistoCS&O?JwCfzUr-nYT3quLl~}T>0?p8 zEs7;^xsV`WI@i8supXU50%!GMYAEQ*8HIsGDVH=1i@=4-KOl2m_A2))>CAyHZ0V@F zRQCM6T85P;maLrwORDUD$M<^+_7<$o>h*<;yZjVLfk8Q62L*OmHc(kBj5{dqIz^PPGUK6n+#~)7@R6zEq~x=<(blkGA0|3wP{-rT}zml zG{_I;8m_4UUWhwPGSijHK}?KRo5z@i*e;wv&M|L$Z>s%)foqvUcYTsQMu8c{$#Rvk zVnjrve)5~@&d1P_h4)Pe`we89K<)atPL3dl@R7}3liAUJ&D^f)^L^!BJ=GxQV(4yRBezgB@qB_SRp(qiC$QU$TQzSKjZCj*N>Zm!*w_Kj` z5Vlrn3ptfRU|kz{_P57-tIn@gO(59O#!u(^_gSx&Hd-{bfMn$Zlw=tsZ-X-~8P zg5Y1RQ-ky&LA#Y}h9r!?r#?4%0-w_^*-hmb-kAtEfG~%X;Bb7i0q#r*Jwf-Ua>sQ_ z6a1+;6qTDC0k7Cos*a#u$n18ee7pu%Vd{@C$}w z40f8uVaqCE#!%VZ{EQK^g0#Ioq9qdxv&CEO1f*Z%I>&kD)96{?E0>rG1(@Osb&+<_ zYKC!>tiL}Nh9;VptQKI}xq8$EWi4K(kpSy4GICEfX)8Tw*sVQkeOX8t=XQgnNBaw% zoC*FDtvilCXnZAT1}+0;(G2g&jb5O%2i-@tw0g?h3vwL-i79PiT2EcX-AGJP3&823 z^(4_sJu$X-6Jb9I^zZ?6{CgF$;SynCnYPp!ujm1cDeB;~Z5y%GYxd>1%4 zCi|*R_Y{N+>8J(D(qm}IG(gH2j9{dl8gk$_=FkwB5PDf-O&?XvMVP2o{(D z+qEin#E8xqa~)+2?*nj{LQ%2y>9h-YsFcscm!OVsop_dKamZRVp3@Eu);qfcvbGLRAZ1_veu8Y3{QI zRB>9*XD=8IG_(Y9{JVSurkIz2gGu+qvK8Jfzd@OXy2q2-4t@44usQ26;cD(*SnMIi zR+%*y03u6Me)UcCX`P!cuGyxK6ehn7?$Rnf%7oYabO2`WbUOUcRm~Ylh$s zwaP{dq%m<#``VPqSwHzO@+G>bY0T{d=pl(CQXaoG&FGtUa2L_mTwHq^t)WK#RGcjB z(Ks1eK|Ly_jhrcqOLt%`2xZSKSWrOC(}ni^U+n#Duy@;09|m^s{XgfqSGrO@@gg)I z;;9j`3x616JMotRfv091Bmpz!3?N7aBMC`l#$jwSsW^@RLAj<7VgCv|-B* zYk|kkS;*p~nGNkwG{hQuJe~Va1YaCe6{mznnJ49E%AP>nn$(y#jpDj&2K zzz;8&i=G#>=kqzi)}aNI5`JanP&}5K^ZX)EZs0dAgQuarI*=TT0#45x&^(i-Cg)n-fG5#6uFzq#M(*gcea9K+tdI5foNK9--{!i`T;YiAxY+Zp zyG7?cLx#a#^PCLiJYjKp7yL(Yx%2qd=0I3;iw`!7dv`n$rCW+meb?I12VP9j0jaFh zf13t*L}H!RVO$>BEM|^iqA|7Bl<V%vSAUN_abIXFizu;ZAD1HQB%y`HuN45pLU!$jyz2Q- z5j0J6Uk(VvbCsm^-Mg_2-9NOSqk|mn-{0RHAAdY}@VKoIfLts6oCPkFB>Vk5RJ?Oy zz@5N)xzJzgmp-qdQ?^*4EvEsAk;WKv&D;>(*@r#>AO-e3%h(HpKk8ieu#tLVJ$x=k zW5SpmY1;M51{9r!c^$cEKLXabg-@$OB!5pH;u0;w>Emv@V>FM@b)=dM!61;lQtpa zUO5NXhz6p3<;cVqf)nj%U9on|x*zBKg2`2>6t^7U@R-FeHp`u#qf#O%9}ickOW6gK zcsTF3^$0#2R@sib?I$EzyG%rfnQ3 zr~U{USTQ<@kO3KhS~{wDK6=UcZz8ml`OqvZ{rS7$)qm^wim}>{6H{34ZB$vqmf9sw zVT?S`cbkqU{&c{}ZtlY)q!2}W`b{})2o1EmKqCH?V_Z`Z#^xKXuXtjz{wF&CXM<>L zuVy^s-7YYJV&5nY8<5h;m*e45Tep)^WuJ68?Mu=4pg>zWTgq6?t|@w_@Eo7DJ&ad8 z9?uVXJ7kSHi4(|LDcs*uY$b?wBHChYgs@BXHSwF(4ul?uV+g77f63iRBK8j!!gfDd%sYX1f_a9yjVHM_W9TK62&>{DFV!``xs_s)8{u8G&7@!EIU zzf3Nm_m_3-BUOw6To}*6ywEoz&IV4B|S> z^LV$k;Xx-|j7Jsr5sS>_`VZxyHYTrQm@u)+KE2H1v5#>{C*)0w`Ry@+ux7z}4V(v^ z<(+G!3-Bh7sil>SCW=3&;)*VAxFb_o|1z{d+Jfvjn96IaGUBrMsaZor+}n&IgRnm` z1&ti9yr~3>f@ktTuhO^}ct4`pFy>1o%l>0fO9|DGSfhUbs!0^iGt*pppC)%Txf7}_ zJ||wzN#12nnP;sGikfV(j!*_Eb^2i7r7_SkJR5T(ifd-G2h-jgN*}0e#MmE`#2y{u zaobSVb!==1FR=D-*4DEV=qY5y7>G(!$rFjHtO!f((W1vyWSnS7<%cdOgGdV5N^_j+ zDQLhcFHCB$99mV>^l3#tA;xP5q|@+Z`g;WPYY$%(hKJ0Lc&1agl&g zn4ZUn(5@V`7qBocnFyTygauo~H{jgU*vHuWwK)nL(igSDs^UfAj;j$)PiDgPH=LMa ze-3Ve<_fTE{ir~&!Njb(i@5~1A@t2_2iIm*yXO-r#beXp%WCvgCPc6Hu@k|mp^J~^jqrK^Z zmf0Dt#80CuT;PMa651`2ukMp#Fp!j59OIGW zjUXi1g3tdB>6(nUClnx;vpq!LL`OPJg zg1NS`9>L8{1)fL=bFgk!iJ4q>oxY>@jDu)rs8R$3!n*6X3+-vA3l;+-Kkids$93dX zH-xLoCw7B8IJ6$9fQ(kkZd{k}HJ26lv^bq7zwYX&AarHKck7Vu?~w{#;anJ@3+wR% zs7z^RFdx^Hz&%d;XtZqmusM&5Oqes5|KZ?U@t^m7Q>GUb!Yx90#P6g~4mRN$G)p)} z?HUd)Z8jb_JCD<~g23jvY$ROEAk4c$thla|TH`!3q`tsAdch&mAsw zC@J@y_88n^QEw`Ba=rl0NNliR=e>k>Rz*l&;I3#CUZ|jB&j;sOZ0!4XIJJ`{BX-sn znUP;>rDRP8mBZZkxHH*0POeEA#8X_BRd}E6s*{c?lOD9;HXgK6UsqFkI((!5#3#ne0?wdT3(KyhuJ+XOR@xH29yQE&<|vo8qh_;*kb!Z3LD_$W6OdGM#Ul$7_m{H$0eM6!d2o9!8FzFMGE`AkvVxtxdE7eIb zCQ=X%a7p-2!`d8E_Vg*kpUSwz8p@cnTk~9}?nXN5*@?y-xG}=1w9EQ1_Qsufdar;k zc8}r+ZBln|C&HqNpG;I!ZNy&r!BF;n`@T*^JN@f2L#}l*AsyPwd;g(_2K3c; zWl+%mk~5&keB@$FV;SA%;yWgHbCFE+gC`kD%0KNu;Hs)#`B-t`hx@_?=;ByusO2II zm?#+e0sV^4KER`%%3G#~tW#O^+DcL?=u2qK=^&f$<+df(#`as#g+d^b!X&pYhwXB$ zG`!i82Rl=&64^&x*YW+uyQwT+C zf`5B*HPc-axTayRx(6sj8xNr-5%EsImjN@ zE&@Lxc>ApUAW{47)6{UwjrZ0D#{}967kl-1$&AyeHLPFpwiqq7R%M_mG4w2K=J|N9 z{nf4LW4psU#}6{tO7M*?yBJT3WT`eEJ3Ql{)xFo2YEh$;HEd^)-XLJQ#%ouU+aaJ> z(x}b>hZhB##1v$!4Yoyye!BZ z7vGmY{IYh;Oy(rU9``inA~c1RINwJ_~^gjRpHhFXFpXuk!i_}r)6 zhLMmi6X7^0Q!ofh2+9=(Ksw-I9_`3b`z6?fp=bu+Sum>PIw<-(1dFN9kFr>$@DkHz z2waxL6+9SogK0~6aNDo@&~L9NUC~>5#m1+>>Fpxrb}6-LUDQ$GbEZyuWi#qtwSE3X zuM=o%e0|bQ{Mu{n>qTP_PtFur*DpWkbo~rwk<?3g^6QE_^B$U2W z5Lbc=R~{nSY4bAty;CE(P{8}OME1m-@WBO*1MV~`IAR0yP*ZkocwM6tE0P5Cc~)1_ z*lZaV;qsJA-(zd_K;R?^aZ*U!(>BTGg~~CAY;|jO&$!}eJdn5fwY}N# z-UO^EU|}Q@*y`8C%tOq3x0Jh9b{@tP@DiEpfn%Ikc_+In?LG1~=vr4Z%er1TEN}nK z^S}#a1Yn|V)zi{i7;w<}sExBtd$PWOd$ud`RZY9GVU3;t=-eeSYPf91bwaa`j|bia z9+#~bu6ZBl&b!eNtRqkW?hfWhWx!Jiw=PQI3!-#gSQ4O6JW-dAl!`F41`cyDB5N+3 z`TVDmUO=HbwZo)ZY!??Klh@Uh_IiWAF<6AJv_yfeO4|q5CtSZUBza@?Mbf+tppn+u z6zkW2=?5Xjnt7^Y2TW#Dj3Z99)3`w)(!G@=!JRT4oSjFhoNPRy9B#o}6m!>P8!}BcK3vyl?!$bgQ|{2SQ-tC-i?Ijur>M?!AYdu3bgO#houdb~kkB0tP>m|r|9IsvOYo>|@fc749r}|{1Ib`A_Bs;he0I%YTy-KIiC?u_eszt& zi9%ypG{J^yDBN1(T0+Z?Yu1+HGD}gXxciADg@Vm91ybkaFsf{j3=-22MEpiqhA{M` zs!y7yQ`ZpRY+8hyr?ECHv}b#J`QrD;5tu3cQ+>e|YSFTU7cn{uf=$J_iH4CYOP z5pKC!_x8-@uC%q&G&?Qkw12bq=UTbBeVLZ7krI0H!d1UGxL?V;J@d+~CU|=JX-lrO z_L$q*VvU|$wQEhbmJIH%eX8j5@_FrAmf5V6ZRlrMF^bDZ^4F)(s)wN{5@oT&+BC?X z=G(Mp92%<89}&0{TIX1A1iX*h8^tlzP_09@gxNIQ4Yyj`UE}UeRxOokGKpa5&&543 zyiX3)A2rg3qivmGZJ1rH4lQwX5SmncPJOi3X0^9?zcDdGxjJPq56^a~G+=srbEA8* z!9rBKi9}*^ju#V+rwN67)uNV+()N9gsiovXC}BYzENAVCrZ%<(*5fv})h--gE8WWd z4@*-#LZU7g7)Np(@_Dj-?iYUYq3!Hv+>GcQJk$9;xzpF^n|hpPj1uUl&#FB{jTt&ouxr!@4pciE8pPhYn!iM z*Fpsr$%f?PS>j%Z7?Y8u=|Vv7Aqx3$rt(|xTXw#`!a~|D3gml8f2$3yX1eQF*Z_^P zMWM}MQoNc(ErXOSO*5{3usN}87Te8C(fOH;=gKTPoO++|ja#K)eOSyA5|)<9=)lSF zo_+M{?a_H}8dI+$T32Il)xDVfYN$Ft!Id6t8EOR%6D;BAeK zt<9V8(Z{_lI-j)7)w~#%v+?PxS!s6bYBG5Ovd{CN?@{VV5>OtTD&DV(=6@Nr~9O+mjmMMi7$ zv*TB@+}wI_u_!V=0)fEve!0RAOhgTy}WEH49 zZ%X_Y)^rHY-e;kA=)&X(u6#_09xbeo<*_`L$MRSn%VT*gkL9sEmdEl~zBtQiI25b) zdD3@LB!07>Jkf>VbZ)T^u#(J^DL$fuHO2g(S=CUY(YT%f?Ldo-c*LgBxHYS*TVeg8 zdWzSv_Q z=j*FJhR;1!wbU!OYw!2T)ng4dZY~Z;|e~o$J2k{CPA2?SS92efrDfc9j>Uh=g1lSimAKooKV%tm+2b%WqFvg&{ zW|?75^BZQcR_%Hoa@hmc9VJtV6QVUGO@P%r8*Ke>D4(Upr!p*9Y5%2w@6x_=^X1+Sifk+o)-0_98Q{xlvg|ere*<%R(r;&w)ufgP0gFLS}pc9 z*LG%QPTCj7ys8CvwjpM#c+PnMY_2(B*rzqa(y&emf|HSYj3amptmA(5$^f@ug^@Xb z%3V`kGp{e8Th^z9{H5*9LFRo)VvSS|gM7rk50|CNaeF>YvFCY)lwj?LC2OtDPWDa+ zSA2kv^k3lBMVh07n-!;7lwgtVKiYb(T1WJLKYezpUM+(B5wmCl%l02!0&rJrmM5h0 zN_d(~Zm%b|bg9h9>8csf5*xrO6oTL$hM-BS^ExUe%P^NLt2qzHXl=c#>=Fw)y(gk# z*`?U)h#BSTfq`2ua=*)YQCXnnPGN)7ocMBo&c=Y4X2=1n_-z=oGg0enHVb##S!U6u zlkG#0-X1Vdo<+2Kbb3-G!v~vZhpT&W4fu{^TusvE)pGBgtggZRY`imD86DqYp10pD zg#==%^|x3*3|-|;b`K7?FShyi7+_YsY9l*sV_LH%-)Vub4r$WQkOkH?@oButyscLn z`1YjMTv)6n)rCwqnWtPqLMY*TyeN8ICfG{At-}F@*ThoEH2ysMJ(6z(Y2t#jo zRoa|AP*B?4uf46)l?iJaz^{jCBN}=#wgZ6lO{@o=$kyn}iMB0Su*WIOZX6TU^>B1e z;~fDg`0`H3e}T%g^;xl%66(kf_wq-k5zFo>PNnJL#dlx&2Fc6NUfsjS8c6Pd0cQ!} zuHISQiwE*{Z#k@)2>QPMuqRMg9^PkeNB7jTz`3qtR>tLK{4hQ~NNK1NO!!`*fj-~z zaO_iEnmEHGs@TPRKe%7L-8_uhH{czu-?4Ale)kNzhO;YQM7V>mq#g$D0Y*ko=L?@t z8HmtMA(E>(DEP1myvO0E{wB3TX(#x;e&XVa*vd4Vd^8(573ARy%iEQ;2g)x$bTJ3t zJfIhFI1Sg_$eKUi538vGl`rC0$g&^LbYalD)s#At@fF((yM%X#yl{tgDk7DJ=Wck{ z*E8T(lFd3FC%L#LUXj3C68-ag*au2xYgHZ|8%ytHP?nTY_`1bc+P8iPSwrH+JRI6q zpCwuLCURlU+mVnVef<@G1*)!?7p0TQK zG9$MNspD%#NV4QnNyca|Q#>0X76YJW8^0a!F|3{>dxWXa zBWSp<%}5I#fKqWD0G~bB`Al@lC0)|CJdLq7173`edgFnBRJ1oaj*W*$SJ#GzX~z-P zCL-ewHHPjQ7V8gjF{zUIm@9?ZAyq~?uJfT}$?@XxwK~gTfB2=inF;&TPJC2j(EPQV zcCNwZ$(3po*;1L^+MP)&HmTjisy^SnT#EpsiqFc81v=;(iH@8dIGQV)8 z3=n;07&NPJoBp|3Ygg_X*xA4g#(uIOffgg%#($>cPOjjGhy_ zam3->;gt6CxD;|>PG!ua26=_0Rd$Rdw4Mom10En&Z31&)P6E4Ejy{QYG$DWTd-@1i z%7bz$y(z<0+#VV9D2-G1zzlT0Z+SeVxF>VPtw=}x3%pwu{4kNAH1X@ zt_rjz_#Ws>WM@vW5QRcmFk>~92T!(V$#IdKUO~{pL1neOJBbh`=6l3$J(#VB8CHSR zPTGJ*GgaVgugkFZ`F>W!>;(iA?q_BGYVoyp=TT9R=tLWHc>5=Lcb3cb7*bJPHtVtw~`lA5X_Ya;vb*#F!UV6!Gzs;i=)?YWu(C66oFs z!;KjXdTMLar#mPC{A?siR!Q=aw?np9A=mgm#@<(%4R>GX6)8N)Uc)H>!=XLG^-rNoZN^jjg>Iw(e z=8m~N*Jd(SQCR%+KZUoY;$|o!ueoH!N86V ztL~Z=KF>;P3>~WGFtnfUO4@zhQs4I4_UaMa^*+Wi6X0o!e_^S!0D$?e2aR!3h~-K+ zB&$~ild`1RLO$pkD$^)1&~QL;n#)0xcu;VSbE!jSuX{-_;)DA5)`gPQa1;tXtCIJc z;~?faVI3v$fW50M7o~>uzA$FI?vgiw&Tn+kneK%|MP3puz=3t-XHnG@a~V$uKzp4B z7FEc^`b~U%V8wr>&rHXNC`LuQE5$IfMw5G@z$Ob!K_gpP+|7UWL~yvCh^D!a%5p)y z?^%58W(VVSROo#iSZx>jx`rI;_meN`?yIiF?cgZE+mF_MnrxRD7s3FS)j3p?5M88` zu*iYlbV1w{%rg{|gQ8l}HDM;)gd75JiSVz|<&mJ(3e$k) zcwhxgXS))nT@~{z2iCB<4KT1|hglRsXc8y9%KV2?;;(>{((8f`7E-njnw8nyhGXw% z&%Z$_Zt_<^HqXiU8#`$22XO_4vreN6tp&i@LxFfIdq!-{`(t)s^@FPs4v2+)9r2Uj zuV&A$nsBY}iJ42?NV-I6Z`$J=^seLH3iN8Ua5%7X&}Z;Zwri7ot0P2jstX#t3K z@+E*)d9|j2TUf)0#8;a z_+hwQb}i8$51m=NF`VN~DuxZ%eEIRTau{AZh*J`S43ZXe|IPVA9nWvLt?sl^6iOM=c>0JE|MNzA1yO(Vd2m^Wm z$AR$5C}?|KO#3mLrV_+@Nv`+}?M~1RcE)V<*#RF+X?12+2{5_VCJqh2k6ZWeNC%YC zw9qJwL)ajS%d;0ro5_A_Kg~9W%p?OX4Cy$#MorGd`oCNT6GBj;@I0E)nLR7-DA;fY#erQ*Ghg!5k8 z@7<7}c-WV@Zy}u2+RJG0b9$MGe-XaY*JRcBfX-Y#nDH@@mHNd#lVhw=QMO&`(+Fy; zUZ%z3uvAbmmEJQGCGi+k4vtdYu8J~{_tWDel058z1dEHX%d|T+mhqzSOjZSG$3et~ zm99Cl1)VVN7MC6F!S2m;v7|$En#^Gp;>x&N2}?PLTR7*sIOmQ;UiFZL0Qi<#C%{Kv%w<>Qj)i7b-&eq<-v1S@kb81o`}cPcq9bD0SmQ&4i} zA`C=!ZX4?&o1 ztWYeaE=Gqhu^%OfHKmIdN?o5PCtg5<@n?_+h!XkgfG2S-k1@+N zl5ocRaKHc$(jwb=V7R;@_9}El8aI*h9t53$A9_=oAUsK}NBUhJj;9CiJGI_q;GSbs z%)9lG;XX&qV6+Q9APd17u2s})k$wNk0h|=3t>RO+9@ipeE z^ztixeV*PnBxzSST+_7ub(f^|w%7S*_!aB>hOQeNrtRoDT~o`&^wjX->B~C4+eK01 zg;}-e+}BoLuWX)6pF>L$#RijY9QX~c7Hu8auFx?M!IFP|*@Eq#AhkQiL2uO1(XdHv z)t2t2#^pPVx1k5nEL=cFy+1kLxHibvGZZZPkIGJ}k#j35+&xy?8$F4D+RJeL&k4AQ z^!t_wBx_Lx7r@*2&bLeNzX$ExemPkZ0KWz!6Wh_Z1WJI3O>38)v9gTwBoIFGwC__| z$FAM&@zi}1Zedg4r9?xn>0?;Is|B)ypsh=TIj@E0jS9GY zc%M9pN+{9tS*3fNWE`fDOA(Wwg|p>sE>O-ljWQ->P%!D3a~@#(8X+2sTWJ=57EH$T zS#YhpTDU@IPSc!Llln#9=qrJt*BFJ>uu|cm91MFpRl0g^$syL2GVpv|vDUn%eFq{5 zOQEg9VhK3J)-Vk|w9k6A#cH%!HTmZ<9`G!-tG!CG{dk7U>y#4tm{hd5yRfajSv9~m z`qfW{2xnV!_poV+Iy&4FA}Q(Bc|nj-;HGPO%)Qo?LR`n*`n9AZ=a7C(Kn_cjUmHgN zzx7Gvhy8IKmVBj@@x4M9DV~{TRhqVHxDv)gQ$R~((S0(7+p8-vf$q!NJ$UjSgL2l5 zQWoen^J$~8ilGKdSNb;E%f@%Qcaem+cZ+0@*7r%wyNb+BO?rHlw!;ADWHOr&EKRd7 zfwglwbyPXqbzBWGaNQLS$Fp5)(-XJA%c-{{E>Pm`j()foqkl*Q1DH;OY$qX4fsW3n z?A2x0_t+dfF_W)R5!})&8*fkh!1lk#i6g0-uW_YYUZc}NlgU=dlQsr1p3>%E2a20p z-9HuuphKd>&NFOc4|I5=G{T>)Ezsd+nf?+?Mc z=})(d(K-%Gb|~=%eum^uskpb(Tnz-Hf-C)G#rTRT#r-ap1$nL&DSkp3h8q)FM%J`wRBh#WCHTuzTtJg7Jjy1kr zLQY}h3A1{d+~68J#E6}+R}Hk8=b>Fo%!FJr(8aX5p5P#Rtqt_P7gEA#YYVvzVQ1XJ z_9hc@mPz*!j8uNTjml(wJ%(jRV!)GW2^xP>MbQ-38(N(eVGrjxyDiT8^|$M5$d#mf zNo<0)I=${H4$r|X`dA*zV|gr(<*_`L$MRSn%VT*gkL9s^ag@_}Q9a`XQ#dn?u{7?j zJmIoya*dg5&6XM$ghVkp#wowIhO<>%<2NTgolk=WXT0RS^u=u62+-I@q6cUfry>3i z7HpkUcO_c4MdMU#vtrv;#i-bJc5K^5#ZJYxc5K_WcWj+okKe=n1?z3L)#jL^cidH& zGKd;Ny+6qVQG3bWT)h|ca_r4n(DEwFZVNG%GfEC>ll9ifY2!A16J(LS#WuY&D+HG= zd1DyGRs8A%eJxMs58KuG+qoW#D{VYW*>?8%g1XhM)(wWmRrdWtZ5k^Ua9bP^F+!uI zP77yKZi@rk3-koh0v$q6Q1W&R%v}Ze)d43u%y_~Me*V`Q#@`(^-y0vj4J{pwGV1WJ;y-u1J(V2mRehiD7)98YSQ>zNmD z7S2;%+7e2S^~}wYy_56P_^#M-OkqVziCsT> zd)x6)DwD&+%^WTHu?jvbh(-dkrT{V~1It1NEcX`cFI3tAz}2I`(>#ePU}UAaeZLzQ zB1#ed)D1FV*gL!y~uTts#h4Z99 z3SIq~V>$ut6VxeyR>)t5o7WJ00#U6Q+ow9PvW9W?yRG%97H8W9VM>JC;wxu0ewGpD z!?$F19;0S~!PuswiI*Q7pc&a$gv~Lrx_*F4J1^+R$=6$%+A@oyVKD}i286Kp=RHS< zuePuwQJ4yY>6`fXsX+VGBebOmIaOwwv8NgJQ{e z^Xu3=3QS`TKUzc&L>yx$OW_pP#o8LUTaF`4B&bL)69w#-MAZbi8dE^bGditTbG^|2 z6WN-+6)}_%adl}E~v@mb@Gv78RxAqWO z<8~;kqF95u@k2ACT)U6?{>eZaDgc*;*uVFB@~{GBX9^wt>6#x*}y%qr@O^AHYw?OD*a&;51w2s z1ckags$Y#~-LFLq63b{Lvr3vRWmL${`e&(PH5<9aj+Q(J2_~I1KSWC(7dRV%P{lmu$lWGQK(W}9pSy!BbkR@cUL_bAvXmaFR=hOLXH(hY~t0x zNh|XTjue&4(KK9Izv@;ixyCK>!+?_;zdS%#iqRFi%MLWST9vNSCK=!xD`XQBW1bIwx!!R&!!m^zpJ)jx*Bd8&;K}u`7iIQ_rDqayy%)x$C zLqdoMvUxg9@~WABjb9ii7f7&A=W`>lIDN~YltGp+tBT$*(JXc zlTs917w{-e2$n+BWEWGl)2onK?gKwBxL#schiH;w%M>6A+)LV<@m$fYTJ#5uA~n?? zz8>cIVxn(UwYW&`#!Mu+jG8h5NdH#%H66y@r}mjQ)-Ox`N5wDCJA-=55stRHAt1MJ zSr^}B-J#ZSbS-&FXg-1GRQ#jYl>a5QTO<=lw$~c53N5__sJ84gesIB5 z>Khb;X!?9NKF1x&nSrr9s2%|23l{_VQ-v3BGHB5#75Qgg?3P7R->KZeRcL^^1WFlVFlc?c#|MR}wKZjt%daIqvo2QZ;8E_SoXKH;|c-kM$N7z@; z*`MYm7^pD;)*gAaM({G%`Z(jpLK{aGtiB{C#M(Ag8EG1@XJEN?AG#1Xl#Mk{F3 z4rSRZDwA0m&qEHI&8XK@5x9qno;)gmTz4P0F+QjH?RQ4=&_q^D#Ob+DP zFnZE}PF)hSj07b&LD{S-75>b2vj4?lr4h<>GXRl>P;v&k{WIj(hvKzDAiXR4J5}rk zu+27y@YqArN^#2%Suz371*wK-4!owTo?D>s`APlOS$C4wD@kDD`s*J0LEfK8XOyV@ z10tB`Y+B}|NqA-`(1e&6I}xizyit&l!%50^wrB>{)wInvvkJjHY3BTkXm(2*8Pn>? zsbU$q(tv6Gw|nO4pQ%xa^cOy&yJ6Hw%}IY?DTb=>L^OV|S~jJhpJ1_b%hahh>|uLf zgkQQBQiRTa;?=gdX(ZjXm|cS6oh~SQ%()q@)&V`&2(*Yr4kZy8IGv`g<-Ta>NcAd}QqdD0{Q(1GSo$N+I z1gNcD_V)Jo-u`-A#ZKwmS)k``+bsN`73|=fSB){onq06wFXaYYNYrJX*eSAiTM@i& zG%DLXo0`@uWOJYIYuzEGL1)+UHLK1j-ed`7XInsos)xkh4Myzn#s@iYUaFcEyC?`b z*;t~c51FPD#Ye4dqlHMWgfU#c62WuPn6i5c*W6 zK4>o%PwLbNX1%eH_4w?9b+Y@GPQF;cgHRxFfvff2tUJ~jgVN;*vb^OY%BF`pDPnX8 zamT0!uIgeuO)r`2AO()wu0mQ#NAUNiQjt+sU`~ z;Q?_9eZ?Wxg}Qt^%l|KY$T=>a{++lQGPBoJN5d0xsXbRwr1(@LxbntwH@Ka{+zkD$ z@Lp6&U0_Aso6hLryjxKRv|}y=+At%yJ1jFn*BVVgm3uaOSBmzb#8)OZIqdmuyxzjAA0^Tn=1XuZrb4*|)fK70Fk&%P_6z-|J4S5H( zd}}R0>4cv^?ySCvRePC9$`y(#&cTlDZ;4L$um<~$>g)_~=1AMvhlm5JX>Q!U*QjL; zoih2np%?#BYHxffcL`q0(K*-zP9RU(b;RWDC{$*u3+ zx15O%Gj1Mv>L*NRGh3tHxGe}!)nesm6)i1Qv6IlMvU8Lj6)GA*f~lU~vP^9YINb?9cn^lXPOmmj>RLA$Cm8>QAqh z=oW;3#SEoOqc{i0?aT@im1NR7ha>Gg|57#^V-l6NRJj!_8Hhd4v%Vm#aZUkcNPVVE z^ZSxcLRjP*m%SS%2GN2vL49|;=mDKE-f`GSPcEm)9sK z=)PHs-6Np4QXu2@4%4IS3XunwMAqUmHc}7)M$a`4l0zMrH%>o%Jd~40J6HoGHgKJ! zx_41rC|pge^r6iPx%XI|;6+UTKiGZGLQm@g3I4)Pfdg}jp7D$6L212I%Jxu7Mr~_ioHKC%0D`A?%ZYHww9qt{G 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%0D}AP049vlvLkKNT;bP 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 literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/ernie.png b/docs_new/cards/logos/ernie.png new file mode 100644 index 0000000000000000000000000000000000000000..ac1a0bd555254bbe90cb6dac63e4e4d9c6fe5a3d GIT binary patch literal 11037 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 Kw@OtJ;r|6`v|Bm= literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/fishaudio.png b/docs_new/cards/logos/fishaudio.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c951c953daf3a8ed1a4cbef981c136b5bc4dcc GIT binary patch literal 1441 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 d|5y1tkb3a;_}TB*-+;

      woZYE^rJw@*lh|Kd=A* literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/google.png b/docs_new/cards/logos/google.png new file mode 100644 index 0000000000000000000000000000000000000000..8675ae2c44195f5c0abc38b81550bb5712f9034e GIT binary patch literal 11750 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 literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/inclusionai.png b/docs_new/cards/logos/inclusionai.png new file mode 100644 index 0000000000000000000000000000000000000000..0128c8371677b3615859ce4ec97165fe683ca897 GIT binary patch literal 40134 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 NJ(GVG-+A!ze*megq4@v+ literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/internlm.png b/docs_new/cards/logos/internlm.png new file mode 100644 index 0000000000000000000000000000000000000000..655f7d4676472dca48c4a24dcf56d1013ffb51a6 GIT binary patch literal 100672 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ˣch6#NA*SPv&jpBHw*($&{K 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�XEP95YCA{~=aJYwi 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 literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/internvl.png b/docs_new/cards/logos/internvl.png new file mode 100644 index 0000000000000000000000000000000000000000..e6f9722891774a9951249feea9aa36abd34403c4 GIT binary patch literal 93854 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�QLha{N)7U2=LO5RF}9A_3`nQ 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


      3bo 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 literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/jina.png b/docs_new/cards/logos/jina.png new file mode 100644 index 0000000000000000000000000000000000000000..2a660ab6867ebbf2b8acf27863d54c2d098263ec GIT binary patch literal 6466 zcmeHL{Xf(D`+sd35h|TUDymcZeDKjiIFm$CP8-5zICx8ux$DHN2y@eoN|aOXsT5{6 zCXI4Cs&h^%5}S}wN$yuMYK+fI=WqD_^8NI~UVFT*UGM99UC-;<^Sa)z6lcc+YAV_) z001?IgZo_oP+$XqR$HzJC3w{@weU;%#6gb;09LG7`k+8go)#3MB3usG0&eSu5x7|v zXhXCCpdxL>ydMVc)g$dFk*?tZk#xV4$AEoMV5na~#SMP|wCWx9+qj)VP4rpuu77y= z*IT7TZ0*sMY~46wEdKe4XGxf_BYi(N+_x z?NtX<)Gdc*ziYp?D%)UC2~*-r^+;uRKRa#FbF3ynY`EX#%6Q-WOl)IYB{TG8z9s!i zq^=X)DYli?#{H%Q0Hd4sFvjS)bzxN7_FS`2*@I9)v2^~C_Z@P2L%UVE`R@=6LCKsg1d*0TEI?wDI|LkggJ~~ZmJtwI&`c0Y33jRlyh6i8wFYbt5Blw+~^>vc4DIY@MJZSQzq#+A>n`wyzJDs=}jyi{u9{ zJ#^RHuW#uno1Wz%FxE}&Tp}H>1_jL_VQ^h_kcWn=!;kd`0{>?S1RYWUN4y*2>gBQ> z@j<$a?{z0S+V%u5PJR2B`gFQ}qh-%RzGZLw_QH?@D>n?wwHen#YdV6!-al5jbMN~% z&Uw!b7A}SmO8k{pR;@X&uI$dhE+>QKQ>_mpCN$$0BEoB0rY%1w>E6$KWdb7P@5THt^0qhKM?p|K%nOp$U05u z`h-^323Cac{=8oSXlXX7;6CWvhkMs_hWXUJ4x>4p9qF1Xqz@GeLwXwOHOu8~(N*KU zbjcckXe~1k{K3?!|9xS;zOC1ry{F7_>Z(_mkt_yVf#swLr#f9{ZP$Wjpl1! z^rLEfwF!+7b9#s9qUf)}SaKa2jBTNy^bT^ql9!S1T#3F`bC`c^o}}3&b*qaT8*cY` z;JIEAkbkD2n(sQfb``yoPR)wPbEavAAzVb3nu4S68`R^Doxta}Zs1vhOt|f{mu`lj0PssZV<{Q_;A-0nm$x)7f+qN78TthHgNi~P~>e{lJOJuV9;dthXE-#a> zVLK{=7hChy5D_%Hy393xN8?=B+`CR@wgu``I<==K_aMDuC3vnV;h`@dBq}WmiKM{K z%LZ(if0w^*?2E;xrvz08kBPqXpkR3?Z5K_2#~ejEFMdj$Y@4<$uOHg0SA63-0t}kK zK6eB5V%)5E1s;(ugcI5IT`l)}_@Q13S+qnfa$z*G*VFHqMOa(8$0c%c>WIF;8;TFU zDaUKeA7$k|cy0<2qr-DkhFZgVzu7Ze&q*Tg1CV?bwvqp0 z#kXkMv+DhOHhjC1i46gIUc(0Koj<=%zx(vCL9f^( zz{TQ(^1z-Z6&^||*3bAb^lfTlbfiP=RW@|Goq`fE$qDt<`0R%9hA489L)1};SWyrQ zaoNa5JDIVX?nDe|2$J9#@DxnJ8NT+JK0l9SV?WHPbOb{wf;A7t8nlg9Ya<*6;c1m1 ze7i~?e0!z;sk2mfw*@1`bdEkbZUw&k8hBWE8)>@4#an}VqYeZfBHQ@$R}dCx_=*_ahq~>kGa>nMOmysft;gB^zU6WL=@I$}@xyFZ*m96Bf0G z?EVI)4(E~Mz>vs88#YA`hn)O-ZP5~XVoUZvLYInB-rer4ly!Xfl{z875RMFnTRa2Y zIm=?`*@y2zgT~O{1=>J&lzhBfvB3 zYUMn8uNgPd|F8p(6KF3dGcbg%e>JSss`@!*#uSiYHrL|(?ta~ayms7x?*x>51d|n5 zW?v}5oMTS+X32URyM& zyi8WcouV0kYFALw2J2yb;M{=xV_`Vhtqtd|XFUB@dtnS~(i?Ls5)NB8-cBDkYk4XF zNt@vywyyuwyA;JS+PzDp4ickjX{J(exg{$L4grcwzA{V^oMRRjt@;OoVH{iPCrzF& zCd7S~A0OAWyZm?1p^BbDV$OI7=4 zNAc*n5j&^N9xBT8p#s(O5VOSVcRjFyyT}QsbBCZyzvf2-caKyO!gvc4L(KbxbET90 zv0BJih)wPK?Zs@v!Sh<|$ND(IacKWE`s~>=*1Wu*V`e=uidw5-H*~tmOTUiXaB&sR z7REQAaN4k<#QurbPxEyqm9z{$$TfX>;Z>XJMU# zZ~kOmhg86+IyxMSsKWH4ZObZrM67UNiu!%ScCBU2yMSq z<~(V3pmybpKl0D+IrZ7@ydmoHRanHx)XYTUu|Gqn_N^GIkNA2bx3|6)g@cuZtZp*y zWuJ8&-9OOvaY!4yhh(_+^n7>V`buUTNhByix7~qcO$Ho0?XAHcrFd(D!l3|c%Z)W=xvnop_J>-TMfB|$kYxyAP$PJhw9$QHI6LK3>1#i=}**7D3(;ee06(%XI2O01Uoqd>-9=7;7ZG8qOZWwtI zBa?DDBS&aqvy+N~LD-zeoNu|lZ5jNsD=#km`3rtTdEKjA9vasT0mV;P#MSN0COj?a zw>-bHy1G`0F#>y-h^daqiifi;_$qZ{oNDb3W-;?)oUCIe+T0t1L_^@!UVm;eP@l-g zkrPU~uGYuIRE)-w7$Yz^vr?|z@6=C6OI;H=W{xPfHuwHD zPJ^T6nfzi$NlQ+qZxvb<_o2!Zn2qQ54Ni_-((L7Tl&n83lW=m9oibq=&Zv`(Nti6i zD+8;A)7;xq*vV22AuzMz(Vv)mIoJXBS_FfbQIr+67}13!tz*o6H>#|r2>$r#m1GST zsI=puRRu%egs$y5w~p|2^nByXJe3R}Ie_PD;s0h6mUWvpKWd6p;5W)#NlFH&=kN^< zw^x3g_IKNwwaFLs8%??GKXAcQT{k0QzSUYafSNHd-Kj8aY1D6m|O& zNl72YgM5eEV(D}GF5P!5Q#bDQYYUbrgC%z5IP+yI1fI~v>N2U2)93c7rB+hqm1(p~ zR1*JJS#XlxC1(s$1S{c!RaLlexGg0^RNk5w#O9*;w*18FPdB@vPPxJQRHf$g#Z7Ny zov!sKc7=NT$k$B_FR8Q854&tOlBANHSWr}oG;xeA}Ulq@u~+l{i6 zR^kcDj0DJ<{-VMvQA)LM9{yNQPaO;I0K0hD(#t*3&A=0dq(h>+pdyN(_~@13^BG7dw~{iwtT1q(T!43k;T`Knl^^+++3mR1&|4~k&T+DiNT>*8j{I~{*J zOKn)FWwy~Os5vTvQW!iURS%4R=h-2O4ufr8&qHn=TRA6TN&|1@Fx81=4%GY^0~eIm zb{N5C*;~&HQO*PLcr)!mld*RrhwZLq?dt2&h zP9vteU(I1z+fAG=qr0FEZiVAMh0{6HMQwyrM77bG_v77Bm2=X3mV0k0iO^LhfvJuz z+_G!mljB5U;bg-eG?w82>8W_X-4QFAvn!L~{Z$oz#K18)QI3334s+k=VrFw#@?x|3Ja~(iLZ+-U(qi1ZF6!y`)|+zyB@sp3yM&HcZPdm lzXXhfKh_@z{Qp2;aphpVXBj#mLjZ5hfPWWBpv6j_Qv*5a1z5@Q)_vdv=OvZg{M6j`#SEHR69?7I*` zVP+V6vW`K<7>qIBSNHq-`2GdoA3r}Z^Lou|&UMXoo%1};bFOnKfqAa@X4v;hJBS;l{!OrWyWw$104KJQI=i z$TLc6pSJrt{s)ICkE`*-r7`&HBF&L_@4d+rCMwzIJF`)&-hSeKAp*)fa;mqxdLxv) z?zSCOnZXTvCruy1hvpq3FW~RBT~ZSn`f4Y(GvONls9-7MdrhzHrMpnWd!mL)QFXKB z>ei*@X4ZL4!3E`qksroqtV_+PyVy1cy|rESl$+7mt_8U#mUy|%p~4ZIBMeMFgWy4~ z{?U?)b{xKB7@+?8!uh3n`+G^TyBOlq@ZY&?EG!nocgX=wA&sR%PO1a5WmYZ-PTXSQ zSu0i+78eI;-TrxXN2VN*XwnBf-y&phep=nj#RVOQqdzT|0q)oMJImF! zRm>&D#bPJfj$FKWtpMpy>|Q>5f12==|L~`qn3Q7zv8uMP{9(G^~EOm2qXgZ!=t!f{O6#^5W3X)}xct9`B0X`wh+R_@_8~cL>3-NeyB!g zww@V2Uf^-1G!my`0;-~4=A&9AQp$`|-xOUaGCYa2K|RL}ie*M&2^Ee1oPsH|qe3PH zPqze^Gxn%DSn0|J6@?;KH>Kw_&ZgayeNbmB4V_-w7ViduD5`BlL;j(IsF^Q3ZfqryeNFkx_oisalU%fl=Xx+ht?z7= z4ky4*E}un~mTEKLi~xDCMGbUKE!D&C-juILyGg18oP5lY#@|SAXgqhi?eOx#S6IbK zF5hV}JO;P>z@6&Xbf2eeWz28+Xjn7&h4qApgKx9W6B)B8G3P~khV{svVNqw`C z-LrnX3Qp&fQO@_B*$4Mt;l>v|>q1be>gA}N@QrzSL^li1T^A19Gj<^AG12{F$lT2U zz07bQ?t{Jg;|tj6h=M@n@`^(3FW2gLr6Q)ZtqBN4-#gf^o%VjMq~LN4OQNm|M^>Q! zD_`Dn=@=TRhQIv1M;ul$SIEj1GU|Z^5x8^P<>s`fB|_Y=)L~UeiPJOtsU1N*AHw_e zGS}0hg!NHPy{||=f;$CW@=u{y0%ZVq$M1`Owq7@gJ+ZXvMA^=R+cN~Hpk#Nihv+P=%9!eEH24oEforaD>KMZk2rNX_#T%bzA0W#&Z7mSc z6Qd;_x07CCKc!|@d<-f0AiEL2>Gt!MO;b6#khZ^nNcL^GDc&4x?I(B5jM2LCt+?_a z($>g;Uu5`%qB)>RxBT|_olk}`elFJJ9BPyoF&?#h-Sb;198weu;QI9x-o6e^cuGYV z`V$XHFoijZ&B!t1?mXWXb&Km@>lE#GSf)I!;uzO@VfvuSabf=sqKm~^x{}Sx7Jn>; zEKfgIdLm&s*0>OchPI#T)bFgLPlWf*aOYjXVtrH)GdeuYc2{Sec`zw0Om!SyKB;^i zY-5e9U`|{)`buuLhOo+*xNv;_Y-=4wA30j7{Eba43{Rbny?3EL85D%p;VTT2fYBIw zD^ZEMzNyVOhh}{w-&;GRv?4&jk9M{Vp_Z?AUrvyb`#lyr@ehi~ZDGnLdz+)De4QTs z`?rOiq30nSVLf(~elv)PvzWe{`->Qv7|&792F-Rh$njuqh1EYyrwSN5AhcTF#@91< zUcjs~_pfypVlQd>A+cx{>x;l|y$5I2-r+wE491u5y^ZV1rt;dlQG!b^;Rqn z{G|MhEvw8&qFje#lPt;+hr3GV{@hc##@k}Jd159VA8D<^GdOfHhbvejuLw<%dQ28v zm<@Fh*i#6@22*rJH^aPSa}STQ+KHKm*Y400sS}-oa$PKf7k~-hUV=Pn26aCiMJ0zM z^xq5}VeT2G?um})y9HJhd1JcNANdk|sz7R|AK8z87bPGikG~dI{(dAfH>!PkmGSVE zH9lgl<)glcO9G(N8rOYn0%PPVhtu(2W@oqG&p8KAC}e${Czg+g%FF7Bde(wv8uAI*lT;PCQ8enRSN&+TwDmyX@;_Cxz+kD>Ng| zIP3?qDmn7oJ`8r*o9pK$?IN;huLUU~keli^pQFIjei+*BiYYyrqUGTIra0W*Li>4s zL-6J4HXldXjt~J`);c?0WCC;6jdH`GtfFX9e==eh`7xwrR{|^#Fd5ZIVMz% zwscS)G@^`>Px=9g+$xKjUhI>6LjKgnU1_=uoyvCIf!TI@b*FO^ic2^U-TFA(@_ccm zhF?^}DA=3t}+4U73D%Oe0LrT)&}4&5pwDv|49 zKfI48HbG_H$NSS!sdynZ1T|}lxA@sy`=x0HK5AjJ-rD!+c3nNI!UiC&8+zA^BTGxi zoz>$iq^8Nj6_n;|Cc54;B57zt@-yhzFe|X@2d!oAh@~b6f0p2wxD;e%KZShIJezWu zH=3Ma8Zp~lrKO+c<1#d{!|4(N!18(9iAsCI=dhAS$(c*4YpP`Kl9`HN>Uy2|o0Jak ztKWpkA#;1by}w>LmwqBgBKMR)$Xz&U+5|7 zyWCc0%O_*e*s37|ub@K@>v2rwcd7iaRn#O!t$h0Uwz zWwDgp0qDe2wMT2#Oj2g|=)Kfr3!8SCAZshV&G<9+{WV&QdVjY%PiQn6+BrkCE1xtH z&(_PRHuc?ES>vlLBuN-S$Q?<4=Z0YFP1BB^E%}~oXFMasJySK&sRE$A$KF=%e0j;+ z*3ku<&3`S(LP$*Ch(orn-wfs)R?D8XL?0Ob`$O{+@);;pQ0+_zhGXb59bJa+}?tzfgD@KI`Xq zsNV4G4=gMcCyS<6%t(|hU}A!=O*4HHbtgg+@_O5qPV!skDc})8S6PC2^NH)b-wMX7-T~M#ns@zE|6F1bZoyzM@)D3j>3MqX98zZkanPyKa z4{^*peC8z&kUnr3ucHSXw{F+$}@l?*Lb$Jo%n*9v;*VGh*5xVil_XTFtE z3u~R|CLyp67W6?YG=hl{CpbqR(nD>UZi;Y;MXj|qcmK{Yh!U-7l^RrIZFD0lv0QxM z${{jVX09VPdkjz++kau$frY}Hy?FK*s5yfQ1S!%er?zw8idEi|{v(sp1ykkqdVPeE zl3)6wI2-|8H7kQtQ7`#Uz;_$;z??vrNQQY^cVlx`46=q9G znVWISjmUM#qjktCAZ_fMb>!Xi4mXOo_ne#l;uhZ8%R)SP4YN*>GFgXNuNcAww2$5< zUbKSLw?iceEPZ$=%UytDzIHuJKub3H`!WLP&MoDVmeRq0xNIp5w~{cTEoK(eR%Kuu z>VkI8G(DNzS=pEgwJG(x>cEu~(l@(@kO)lG)%Xxndl>%{TdrSCYoo-?-9OTthZ@~ z@>y5|cp~!99R#)&?)+hYyOqIbgX>;LeQ}9d4jduSK5H@edzSy5FADr%sr0pOPX3jU z<3dmewY9TW<4av=v?=#pG3iDck|8q0O$J9m{aUuT=BgE@8Ff*Gs3D%D%BHGG|Mg+j zE5j;FW@n~gZno$Fmtw=|z(Y&5~oBr zvRa1O&u=RV&ow0X?F0Sp%bP6kVf%^C^j4kyO;c;#qM$0|`oIRutDir{e-}&3S>YwK zS{xX5A5dx+Ve~4UWA-_~ zmHd?DDnMIAI+4ej3M1qu95!?7H2?JPo%eOe$&0_XqP6}wd%O;Y>_?O=ABPJ1lynbk zS!w8bMSrmD69P>#0?*boKNVG%)T$MIr@KE_K_7YYF&8uFyC)E@2I2s#LG?V2AqAHEWbd%v!7cGuD9}Y3(PeKZR5%qF^AT zF5g~jZZ8XP1-&A9GH1A)&u&J#!AnhbY0*e@*pHTS$0fLx4P|QL7vZx9q^p+rvZj)# zIbsBB&YMP{-%K~e$j*8^%dOj4fwg>_oeO)J_I7UffwLT{!&mcdyoOn;$lc6%#h!LK z1wGrOpV`xZcW!p!AGc%VwM{=JL1r{-)w+o+9;R`EAD&NeAC)u7gGs8(tECr|{ zoZm{$02)2*ormZ$tjcypZ} z;*UhJ0R5pey3y{iQIiU9j4rXw zT-&4wO%AlLNci65oElMye>7iYH-rGYjU_JzO#Q5t`k3!5rA>F(f9o7kP5s)Z^ZQ|x zqr2?14{h!hET#UnD@fGATY^S;6W_n-jI7RYnwS_p`6L#YPQ2Rhm>8{T|DWbvCf`=2 zw+{=50+Nw5)y;jt{Eog>_{K*_CKpyXJ{&S+0PH}{{W2~cu?wE4UNAw^iwygcZ+gR!Im=ZSl#z{wwuS*|&nf8s zLJ2RM3X?8tLi=^NrsElK{k6*8DDdKOfpT5T%dux%gE6N)n18K}&9yfl-(vfamErP) zHJM3_g-yYCfsGo~*w2e4$Z+xAp)#&T+qx|!7s)t*+ANbfrJrnX*(#Mln7oUJz_YR1)-hAcjq10? zBO~AEqB|C}DMhxOw0~53F+%!y0W+A?(1f<33edV(n!1Aj? zo{7FMigNf~YRU@NY$SZxKG|v?6qKuM8~U_rn#9S%H5Iyd)&Qb4SiO*U1ND zO~|w!rdpg5GmrP1E48v?eRUGW!m)XPg{vd51-pIT9sJW(;;tadgRPb;e?qQ8C9gVZ zc29cE62!zErHighV-3i0BZ>IZgc0tMaSIMqOJ5$q~sqxzK zqNJz*qC#3oT%E*Iirf2Y0mA{Y?nDc{~as%cWGPF(4rg0(R8Qc^?4WLS9Fwo zpzYAn(GOTRkPegyHO+<%laJr+zBYu`?t74&()NT@T01N4tP!))&hLj#o90xkWIu!0 zsUox@7tNaUy)m8=XTT9{;qmY!3UUtH_ony;YE#aOZ+PQ&h?P6XDnK)oaY$r4%_QsI z=+?km9AU8@gD+(pJEKSH6oZystRTFwRda>-IdFT)0Rinn~02fB-#F}GLcU66@D@8>?E`D){fja`>WjZx7Qf#jM%LC)e~l25a@ja+4U zo%uS35L(YEyvyPHAk5mG!wbmv=z<-iR7_0Qu4li~RuQZIx1ynh=6sardy?)PZRcj3 z{T&sw_b9nY)wlLI`g^XTgZaB8*|F>MD$X9RH5b3)D~#2hLI!+bZRxeh>gN2%Dkz7B zHxTKmNE9kXEkZ-eDR3)-*OnGdcaQDw!OwH~B$_93KZU;CBtI`%-OU6{^Ckd8FK{?` z^V@56*2$Lt%H0o2O1CC~>4{P~Da_k$&;S+PYlyg%Jt7{T&lu%F|2N zmHn=A(`Xdaq%sw!ky%utWo$LoSQ|BkDa}9KUu=BPyyRpUcyNu}GH$lp5o%knZb~id ztdOFV{kX(hM|vPO6KJ0<`1d*6*kVF+Nbmrw%lMe!3BsqC-!dey@#h4*R14$e5s_$@n|=nmlMCNPYuQp3|0J;*=m`3HMa82joU(9%M;s1(bqJx87WIm#(A@Vo zXzEo?yH+#g$*p}B_NVpPPh=FlBJC! zdY`mZA;Z~q?1-=WiA9Wm5Z1TFAh^G5ti=pG3e{kjeR7){drU`fq10xDAkP*vRMC~h z1E+E4q;wnuj~`P;(DkK=i45XZWtTb&Q z)KP4YP(C(!I0k=c*-WXUEf&nxfcn`sz?9P$+U4thzx-BVJXDSylC{59r!=@1&4+EP zt*Z-w%=`*B$hmenj|6wk)Nh>n<|N(`HcukORG75u@se77Ww%f4JQjvn|#Qviag1nq=hJr@mC%x~Ht;a?SaaZ%lS7{`nj@ z!e>NEvf9W+8p`kn|18e*) z+P(g=rX1C=^GBtFM=EqCBbFLEgHyM&bqpw)RZZb5Vil)N|0w>Zo$PFf{P!e)Lm6 zjFI~O*!z_FyagrXuVtPl@8c(D>{BLNE$WV!@qpjjB|ug*8|q|RXnZAXThAxKc7wO* zw)S(&oG#~q6}43Vp>@8Yz+dLG0N4@0$crSK6D6`>JO0`I)Lt<|w}JaadpBZOBhCRy zOuJ0Kntje8s36(w*I{82yI7|RS>#@xV6=@>*o8}2W6izTt#R&_2j%zOO}n)`;r{H` zr2+j^_m|C4Du~g34bLgZ^kq*~DMm@PF^H9WJA!Iun&g_67X7S z$qdL;S}eu&6NNHeH4QT5;Z(qG5!6*8-YS=J#xTyKI|LQ!GBEYsx-l_`E9I$-Y-J>{ zVr$||YH8QM9=5?rIO}H_9@5cpok;p1Q6n4Q{m5s?8)gdoiZ(~w%MqOHRZ;Wa)Fz+m zoEb&c+PBb5OEG%YR19-j$(%C;zkx*Qs}mFr>Ka%x-U6DQr{o+KT~0DBJ?~^~hVGJ3_Ox-=^f7v5ag8E!xCtVKECS@6`p zu^?raW!pNC&A9xDA)Iv0h~6?QRNugAs{-t|Rd~Fd>BZXR5fJprkVHjOQ`9=i&i4gL zw+8A>ygvzdAV}Pz5SA_(_MO#ICHQ(xSC2A+-&Xt#iJQ4Zd!e%@W*$dzZWfuiRW;Cr zpUKur`%Yx$`X`EYXFhQUPN9sKzHDhtMYxB47Y{n$^MYpWIOC)f0c0|$uP!|j8?L22 zj@cMLaCs2ngmPfG-O zOB*oC{*!=Fe&&Z9c8PRn?0Ed;k`hfyFGo(H+VZK6gpfx``R3ly%{kKuiBB1$wMwJQ zW)r?Wu3%fl(4+ORZz1lW_9N;K1&5RE79mX_CI6tP%cxBYY#shj}(g1W3yP=J~W9Iz{ zv`>#&fW_to{whf|&+`zmmpaVlmaWwMW5l_~M-{}mRj@pm8jkLtL27Jw+fpJ^lURi^gAh&*Y!IXz%C zz7@N^j_DZwFAQU^$EfJ^c=r)UQDjwQP{|O>ls$~di82?~5SpUp$f!7g^drdx)sDhZbeXiEE>KP{nOuQ9hjdK;v< z9XHsG&(|XVXuYpuaZUK1m@D?y>ubN*5StDMI>x`Y@J({3Bm`n1eQIfr+bkXC ze)0BVd*k_u^ZtoBZQYri?;rYU)hzG}bp)KTjg1RkpAG~HG&TbWf8jA^)yp7nlQOLU z7hjhZ37x2GaLw~wJvdyi;E8wujqdm<@W0XGerzf}L%?2%N04x_dBO#| za{xDL4Ip4DgQ++Pm;nUQQdl`L$y;gYY7Kfm3x%cTDI02B0SR7z%y)pSrd?zvN6z)@ z+yI3oypwEG){`DSm}XBjci|A4)ni6Kl^IvQ!b$UAjn6z0GW#PzJ;C3xX=mU~FMi&E z$M@L19xj%h45}!UZCSQ|Qj`3%=+>{YPj@ro^T(TUnl6_KWx3>q@MBmNXurQ>FA>p6 zx9K~YRJ=@l8vCa}gNHosnN99Ut79>*4#Cd1C86QG5TZ9wfFYZEYmQ#T1lH;eCMXKC z7>;i%IIi8!#$S#J+!RO4!PKQn7AH1l?lq?&D1+*CoH5IT3McC3ei#y;O4}LFJ+fD< zhFe`YuV%-S{YxQmh$(s;kXd^l`=w5on$z@s!zE#g}4 z^&6EXKSVVLDh8&Hk%k1Y%8-ryEoEo4DWy<_ydiA{#9a7}<>9y1_Awi(`P?h*AvY>p zPh-d%56Ws%y#L>MqXY`VF^s!y53TXaobrOtZE?6f>jLh`Wy{8AZm?}*N{q`@Vcs3c zT+s#c$&xrvqaF6_!+K$wX85S~X8+3QHluwz%q4=nTRT6*bEB5?N!(>%FG=5oxjBEB zoO6I=o;lofz4=Qs!Dj+CF?w1I&pnL>fz+flDU0EOM7efvw%Yrebm9|fyFhZPT zzq^(#*ojY+3{Ia!X%x?LM>aK|v)+6eO@#ApI;9cs|Nb^3R80zmS!f{3hHQWWBg~l@ z32?Ks!n9Fo2=1VdJk&IkJY9>NPiu(!NeF3Sx&F_8;I&$ z2OMbP21D!4)qG3V38S>p1Rnp$A@z&O%58sK0#`@}5zlim~|8KDMxfS~h31F)}FIKa| zyn1G=fzv06u+mycY$@gUNIhq$XVPJ&xsMbc<*sJfTylJc?DBp_AtoZVV1B%qt~~_P zzzjO|w%YNz5G4(c;hhi4t6gg~I+D*mTHI5?SFt7D1E6qtQb)#%Yg6oIBClylUP6Z2 z5Tc@rwr+M6$YXtuv>WX~23q4c(ys?yadfRd2$PWO_TCzwPtKSpiXGgZQm+khx14yG z8`L_Z##|1BEc|itE_**k@o($v-`^zJ#_9uU2cFB?cXTK{iLNeowLyMEq|mkv+*2dO zaG}lCDR_G~zcMrI{=1zkUxn7(Bf5$+op9O)^0rsJJ^hsj`zGZvhR27?gUaMc;hK&~ zhEM5%5#sp9jv(=<9~QlkHX_ndYnnW*d?!7a8|B6!^oJ$BtBDD!`qy8X2P06+CY+8x z)Equkbr!-q)yY=2a+k8LAdv#v_3dFj=@(|O8lkh_tCCFH(eU+z(Av!_aU@Gf>Gd$3 z8X5Qxs{Slfwj4E8=qUm7$k8ROQ2>e<_6K}}P|ic|FrW8KiDsi{(ZKn#Re94mn z@{W)77Y-=;*buBT!p26=tHMyui%J$BuoCyGk%0+4=VAo%x@5P;l5Fdd15IaHgkJqw z8YSlMp1tf*SJwa(c%GFecSf3B>M&!FZEB@$u6f+ke*J3<`s&h8YX!bFqtWQ+muS^? zc5*TwONI<9XD(pnd`JwnwwC&@yyJ;c; zOyf-F*@+xbsI8EFv$@jsioa&GkF>oT*`EROz)%SiuO4Z#uQrN3@sGIPHHF^bL_OVK zmmb7I);>iZIx?4MV#)qL$1=P6Yuq&L%;TrC6x>gr#3*b+&~y3x<#9>`E>dhMX%2})I)zv_3pPwj<^pFg?4GpS#nHZ=B8ENKDQCg;<_r1A?n^ViK~X+~zv3|Shriov6pq$l zp|lgYk3Zq`yFfGarZ*=||g)Ra_+4^gQR z=DLoxj~z6MKdN$ltq^N_Un9iNhC$8ooe-O)#v?f;=d>=C?cQF*Ge$cX>K^56r!eAW zNY}sUIBXOF9{v=kPy(R9&&Ql|A8Po$x6t@i9p3XQV;0XZ1la`FDnx-~g zLXlzZ41pMT&_=W7TCdP`k}ZF=ORtYrvkE== zBbs9Fz}>xk86oW&y!SJ0hpuxANLs$R!=A-yHSea@NKptnR!@ql-0y&Z#n`g~8Vf_W zEs5#~noCLag%BbjF^Ni&-v4E~AP|F(Ms+;>!_H3#H zz}0`jSjOPuS(hr!Vi^Fi0;&;Mal`N0FWtTu@$p2(qtTv2+@yN+;X|PGndi}E`r{T;UOw`{{v&Djr_h%Vbo{2~jl#t{b~hmy z`LKziNzUAi@On-O2=UE4lw~X^Y37_}@oku;V&zo;F*oxVMxE-tXUhv8q<^6%8rnAZ zrV#9IMgHtjto+Bmu1Vch@da>T$|Xmobk9Wx+qSk)NQJEg=*?|MBhUMnNCFOgF4-6? ztgbYbm}1!3@p1b#cUA%hozj;@V@u+4s z(eD|$v-Pkn*FGQ*dfwlDI|asODck%|->><*DT86X{Ua z(r6ThJ%Wk3oCU1cArXfgTKNgPsCmQ0BkYt0^HT8H{|L2aJ&x|ZNl$pG-S5XOm$~>H z_gVYN+O~1Tp8Zh5_+FjLB%(&5c3izAk=11EN2sOW+w&&;vn?OGxWDPd3TDCb*fRsl z{6F7MmKbWvm@ixR;=qs&dG6RfIC%odwe5ly3#2jbNqUVtTb9~I%a<=m94Uxj{+28f zDaGiD+g3^eCR&EYRelOp$V=RCxz`x@P^H z>N-bzbwTD0?c>W^JM+$Y8-Y`RXD8m@f1UP}>$DR$hjaR(m6HKfF4-E)o^=HaRt_qg zTXE&=`7T|+!x9KYb<4!bhUnn&NV}#U)$<3{A?WpWWuRUKtoB%5J52$)#kXX-;Cs@5 z|B@@Cso#7zAL1nH6HPT%zrsTE@k}euto3w+rj{%+?cAS#5bG{yHAy@F7?yJ_0bk?H z_rC$`KXs|wSqEjCoXp42qBbnECf>DOAMkN|(91PTy!Egl&=IDMiZ8sf#p9(FFanYa z|H4vY_=UQ$M5r}y{{rQctvm@>0tPFClA98DXqH70_N&z8sNne_Mg2vc$2vgK>nFII zl1UWH1N3ONVN>&XMA0*a8NrGB#25aCVemdhsg~$BA(OsM7|wsAR2oY z#!YTj_XcoCYA`pu&x%uK=3gR;ls?_;_f;sWX+mpPCak=N~tKNGAgKEMLjP~c|s_mtk z#v8uCxU6&_3$_2+qowc-XvK!p-xT$yrh)y&RMj`8DzUC>*03!Ttq5MGg~akM^~N$R z8x4V$^BqON<6p989XI<`CLSue;3VHB1)#f z{FRJ9g1~d@>+gsW27*%>eV7sp;VI!Qrd9h0ENkf866;DcZOVgraMS_W15u2L+(`06 zm=DXC8n>=@BYz>F*p?!;pKcb6UONGi>+EO&G7F8?{3xZ9`4^S^yrBTRQ*=)X_$F$^ zDLiXP8hR_{!K7MAbp-7fGrFPLzPm$`pAu3J6N0}m9NM=oI`f$PPw-fuVdl0&P9s;?5`OTWD%K;^FVAWN zwME-*?cOY7S6|7ZriA|?#jvntxdA|1&w1KG)G9saKBSVHv@iM~R>4#nWmeXto_NQY zf%*@&rfhPy!rLpeA7q8b^Sg*1)UoMMUY2$P?JB(QYC?vdJHHW_jd~!gs<@)r%(jg0 z74Y^ad67=d?&_`mP3OQ@;ke|iAC;J+ULZV!L6m$|CkZFYPy~?8sXdV}n^St>`~oWg zIa_q;6t0p-B|Z2{ng_WVE-r14LpZ)QUg9-GD}{ai`8RxiH0)2`OIpF?rZkQr&j=-Z)~U7 z8IH&btRFqg1EK!g%Y*dS0q0|~EbRm;tRcEe-W-zdrXGaS>tLHuqIt_A@h}_z_Ek{%ETE$+GWf~9JAS6?H4u?Ls5TvXkJ z2ZIE<*XLT7)-MyR&r)x_<5%>MXi(TJK1dn+@i(Zi9|(A`CD+j9UP{(As* zHm6gm1$1rk;GT(cf(Ud~qoi?JRMUff@?xR0w9=?##w@S*YK=RrfekWO&u;J$OEMg1hA~RgvJ+cHy*(XjM@`?Xi+|ciXxY z<0sF;pT#0xBS&eR_sgy1z7CZ4+A4n9V^5h-&8_Gt@7lBO0nayJ?}^vdo{SE0NypmQ z)4RwAaFarbhSw9Kk;gD$c9z$`e3$X-vmeX7v&{5AIwQ9`@*jQ#eyst2TVQlu)p-vl zHZx8tngntr04JKgEZNJ)m8qv2U+=i*o~A!DrR+7Rl4!?cLmeVVwyXd{KfwBKJz0C- zee==HUpEK(f8kDB!#R@Eaa58JDQ$OCbrZ=!n2GW=H#ltCp!H=P;qp4`X@4=K;FFMN zrR|SC97z*ytGUbqRu?Ho{0*^)%3C#zyvkdTuT-(B5>!(U@$)Z7zE^v)COzwqSU`B+ z`MUAlKjOXb3rwZ@U5%p@2C{-s-&|-sm*Q^ukdRXtgMfv6Wcj85m>-1TpuO?p4!PMK zUzZ$GKg2UAVUHwoN45a{(%^30reMavGD}IXu*WBkhK<%VR$rllN2wLt6QW1Q&QUVg zKdl|ZMcf^ufuzEJ{0QIH$}S^NjJ)e;7_FfA8-v8hM(rW(Yu1S_wsKi1W z$AhPtw<;xplYrb?&cHtQFhMp_9lLd>jK8`+-Fz20r!#}HhGZhe7W&JqZLN*}v(P{o zb!Yz~{I#W*M{aWn7j9Z~vL*!)=WgZ85nUV3+`FhMHw^gG7J9}etI4x+MtEPv4ac!pD@fkMG}S#@Icc)+A)FlS^PD1j*gLs#ZkBWp_^5Yx9Z8K z2md+kau^XqC3bRMcIQ;2W;dwVp78?G!g|KzqMCqDS+usH*#Xc8C}tJ}hP-%mQmpI+&KV(U1( zWdCQmuKuue+y!#yL7NlPBPg7&Zbh*x1Sz^3mI}Q3?I$R?q*zo|NrlPFBP7I6Hm<=T(i^5YyxStq=KgPpvdu)#TJY#ZlGQBdU5U?ScJt7p)y1 z;hJqCf}WJ66wPJh{G}26ZO-jmuca6hN()DexTD2BWjK6~q$@&Q)SMm3z-69z(g+j) z1|ol~gR5VO>WV~2z!nT&<;|YtQNTd7sEtrg3LsYb>&Wc!POt36I<`{x6gf&leqlt7 ziqjYT{MNyWd7M7Te?`A90kIp1cGmg9ulYpc4}n0$yrP-{6e-+n7;BCeRB36cQz@JxwDVlGw+Mdsce{;;&=GJo!WTpaCO5OHxW z@ch)O^evjLtu4@WHWgEr4Vm}?jc{l-g24GC-B}*k*QKi84aSC=!nYiwckA;{tsH;O zc6MHTCGga<#^l5FEo+-t{rP$gMFJjU_ui5N7#8(xXwL+1f0d0bfc(tY8`uMJEOIIe|*|EIPlQ; zS@h{|>nnOIo{tdDELjl%|0RHFSICB)8X}ey6@^PYKZL{!;8NO;tEx$0w_s~ozgvH* zEfzo(Ehy^VJy&dsCHjk7G?291K2tKbGKM)-NGTrB%lIb(le`J4m=>6I zMAq(s22RX-Tib9+radn>&f}qi(3Isbr3&#$(oJlzxtR4gTQxV@`S=|GB~AqTdX{IC ztC9Ic~tTT$@OxdZD5%VyX6ly+$ za^(<;`;%0A273@4pi=y@8z{~_49Axzx?}9uiBe&&jRPCQh^QQhk?Ogjm)9wE! zH@Y3~ayvwFy9+g;lS5>?rSfCwPH)xz6OB?hDg204!;k(XT#4qNh*6$&=wOQT`m$NfhYe|b`_2YMJ zoizY-Ke)~UFH!aqx7$71^JuW~l7*Z5Y76!Y-)k#t)zM4U?b?Q#nRD~ygpUVork0}B zZYIfYg7wqQI{h12Id8>pCT;`t$68*n^5G1b9AJ7t#UfRVkjAO(`mhFmQrDLM$jT6p z2<%wA;ibgKHfXaP>9t$#^c|M+_PNW{IM$61&H{AA3Px1e?xsmzt*IM^eEy{I(s$q> z%*3!B(5L)gbVElxoT`z$EJ%$0t7Sdgj_D8tRlE#aOTw=EJ}HWNUU1nuQN>&S7Y={* z!ud{o<9>ML1U%<5&JvqJhMrLV335wWK^CnOh*TDc16xM{S(b;6?tZ8;Us} zT*<5Mb%zM_yp$xIgvh~yqV>4@KD-=2HT1orW;j>`steq3mC-oKoV@&PjDV`aYutW3 zR1~NR=8Y1T#;{Qb3-gjId$V9uoK>8?I{>VyJWK=o5Ix=x8Bl^F|4@-(-S?R6aacHo z!Nw>16>i5kP5)OZ+~Xm9W0sT6;RU`#WYQXk9pBLHK*yL{;9AZO)BtXmu1#lhy=S+V2DsR7>_bn@zZ(=CQ&7wl%;<#q|$zF|5NFMCdnZn6Wc&Gv9 zTjLzl)phm$F8J@NOn}uo+zGT3+rTT~#S0xiO!LZw`}@!<2S2Z8AZ~q_u@sM)8?(6* zOt{q#FOG_^b_e8jFJz-|;|38T*dS?k=b52+38axj60RMFpC??F+`3aD}-YELPVxlB&-uiR8(i$TiVsQ7|>Z(To=Q`%F@@%(n zW2#g1&RZT6=zbboqzXo&$yS8+(eruz1B4rfTdT;= z8m#r;ry~(F^GitUid(H=Gz|;d%A~z}s)yuKm*xAdb`2kg%l8GjhAW0?vGo;`d0X!V zmhB3D*4NxLwS7K>C9U!JiahyvM#x`_=pwzy)slJ^-iYb;gDnXnf^Ay^QXB&3;1*#9 zM4_qA^H6OEl39S$wN%>H7a1%_qzFWQwxXs2hu`SH&X;! z%wm^ucf5+{`)E{`OIaj;m&vgO|5MIoCt}VggDL|Mx6*fRuc~^;9anOR#_f|*G=W{r z)Lkj9305H(r0pNdD@F@x?3wV<4>6@X{;|OqmBL^T8`QG1Z&nRL-L=i%IT?!|hbXJ~ z-QoP8V`K)&jk4bC30@o0M`Z1G3x7-fseBl*YV4R`Nzz&iP6>KGNAgo~na7~Wc4hB! z|D3#%k(}M<=6f_GtKGAO!wFY&qakklkSr~0S6IrhHlXm(!%F2OT?q$-e2_PX6NCDh{23&B7z1t4?CJ_1 zRl}^jcI;QIdecOblan7`5q7DdulW=Dbpx<;pWP2aS_quRMNr+PjUJhtlK_}TMx{Oa z{+n8oCN*Bwa~l`4`nbdL?#|Of`FH-`B9oOfGv2`Y`8fT#rm2gNXO6maX$N@KMAVzdoaOL3km+`w2A7Q#W}&mpi5=m2(dg zE8}R?EZ2XANN;=xq#PW>aBG1i7;)Yp!_XK!(!hD2l3VYs*5V87@}o)xF@bs+L80=Df0NjpS>1SaqYZG^7et_3n&Ti0Wqfx zaG#!K+htH@d;ILIjkfed@V&+7qz2y(8zknJ0x2{`RFrJrl_5|pYxNFPQ`J}d0J_qu zT0{9Ps3Jv0i{dIsIISROdM^Ua;`_Z$$mr3Sf=W2HJYJR5;Mt4PB{Tn;1WsVcnLUxc zgqtaDD;RFOr#4sIYz(v_&l{`*tv>AS&wY!X7MnwMz~uLyGXmt9SvDzdiLV4j-SFFRiGfzhpzRB@)alG%)m?@# zELYh4I6~O=fa#CNwl{ z)A_6g&{>%S-#RT96>cDA2U9SD8>T6GF>84)I}NWnxVo1H$-8GfX5jlu@c4mh8lzdfFncw`Lr7H6 z{B1};li9M+it4qep5y*Rdm}xN=iFqq04>ddG&ssO_WHr`6u+v^^~uKUZ_-fwsON0w z)qNY}Zfe?L$(-+W26(~Q2G^J=2U1s?nt6nIS`wxhkVJMA6R&c%Bl&bCR%$gC@-J+k)>nbnlPd5hBvE;yoaLjCGS?*Og*n) z)-aN`-yGH2WBmyu2lENRZp6}R5T`r#??lrwN`O=dz&@^2Bw)geDj6gke!uj8t6a*?ASK-j(j_r!zzC_qsL^czN=i3K!v>5RU4nqLFh-3= zx+F#qzQgzX{U3aP{QSU!?cDe7b6@qmp4WBG`T9;nk(`u)6aWB_D=WR#1^{lA001}1 ziSH0b#P97l68@1mD;dH705YoUzZ-zm^hboj8!&A}SwPt!(>mb`kjg2xc@W9omJG&8Jim?M<3?codTZv0$>bHJC%*eUhkO}5* z*ssR{M(ecJJ|}E-0nL79hGzJ0_qeY9&GCCmg7yP$VYv(CDrbA^S;@b_g8g!NT7T2} zVO;|{O|P-VzHp-JX9TU||KyCEU3hWa9+Nj{-dya%(p~LvUS9&JA=A2jT+)Z&ppT8J z0RH^ z#xyf_di%!pM>FfO|9N+Mw(@@yT7PZ3c2Gbv`%SKYHzX1hoRlD(;s3kg|LK9?F#pdV z{(p~)sTTl1$rmc{DLlPyqoH$r^Czol(~0LV$rg`LY~NJN%;M2@j7ie0;q;{Mdzw-( zEb;__Ou!+K55&CQT`Yn}nHeV=HOF{F!DBlf6?M(Nw*f(Vgs=@l$F}Z$V><1l?Ag-{ zRF3jr({c5Cpw}3*VeI9%C$s0_iA2vFOFMzFftgzk=OR7yl+CSM4ZBkByO{^$(8GJt zerg(iZYQ;ulS5%Lf<&ioUT2K6ewu+L4VHDD(IqB+B9o`{cYC6I=Nc(1000Nt)yAu# zdw@2(?_|Y_GAA#@4!fP=ELktkAKSWLISnqa)~TF?eRvsMzQBmF>{zmy-eqxJv1H}6 zk=n`X@fZiHN4FeBx?bP{V{bxuSy*MJS)x9(3L}>4PKaW5C^VU)4yJC?{VFSzDWya@ zx-bHQK%WR`HF4DN-RCb&;Nwu!Jz+x`=W=5GjjMtB`z6({+8Wr(L!j%$jzvv7-eXj> zKX8vLXWXDIir_O9v7^;pVvwu5*a2sWM|7kNryEwbV4&M5gUO)r@6E}*FQI+(n!XK$ zJf!--;06FYHSB51BO-Yfz5Ejh9=L(fW{y+~MvXj7R|$VyP40;~M(l2W+?r@^F|o)@|vS|O=nl0Rz{yK8J;+$#BEm(2nnKDGHXpA`+QEk;yk?jZwmkaaf! z&ai*;XzK%;7fzA!9Znb6=`*fAY+&er&vLyH#Xb#QZRfb0k>{$ir870FlbXi5##zr{ z?u!ChadNGPTzFX(j~z#jtIO~+#64x0Ey-Z^XlS?p8H+EN^S~II;4zNQR6x-HoU8uL zqftAxi<8-xIYSn+J?B(Qtw+?P8l}Y*BO`P@4Exa--R^#}c7poVoGW;bu5>I9% zF}bZci#;BS#*$15>_&H)mzorqwK3jNCs-)dur^U-+wXU6Z<#zQAtCq%pfK#(IC^dd z+;qAO+z;P>9Ce=4y|ZMY>QCh|Nh^8jZ8vDW2RlzQ`LFSC&~@-2z*;yP_e<6Eg(BV6 z+fdBl2)x3`&d#m>sqS}Z@=z!kScyI+*Id&#rO@=C1HZJvj|4uez6sFiNhRcbb+^Yj z#1Mf9aJ7oN0Yd*3<1)wIa#li436Df|Xx`-!r)1Brx|<60-Cn+6XzlPlKpjmVGCz(# zeU~fcamw*$9@(l}qkRui(Lk?|DhuJEIsc~K_sU&M1h=6v%p#dC@`c8rxh{dM8yl&? z!gLj0+f$+6qy_+p(i1YW8K`crcJ6t1qZlH4V_lnG=uTyJE!l7bN% zb>4zo)g4t?(g=8ruz2G@%LT2M-yMQ21J7F?mxNT@(~Yc3CJ{6enoM!3hIya`F-#u^ zYLi0M4`$PqMKAZ0`p&wg3ADxGGeN@S<|n&##uP0VQ0*+3*z;BGg3eDr_3$H!)Zd%V zG@M$Z0&8aH!*^Xd|9)jUS-xVwYz$NlVBw z9M;cJw;Id*Z!KVF7>v)l320NehN{U%g3nh%;c(ZraA<)&W|=6Z5G*cGI3g)jLq``~ ztORfE@WW+GiBc4iAwt18+LV!O@aceb^+uu%9db2pO{`(h6Op7~;@&6#Gk`^5IPP%H zt!xLJW%+Mos_)za2){ME4d|cBmN~@+#NW7R&T5QZgffQV z^4N2W)-#)M@&=B}Kje#)ECdD%xt7at^CrTMJ#xGFaq-a&f#6>dJ6=C<)9Uun2u=4? zgNoyY|6uj#**gPVuG3EYM$A`u34YmrpBSd&%mjvPy33DOOGz(feM1zB&!496&$;;EdjU^f8YtqTDFJ{=P)+{9hvH{9;Iy*m@=|c61CDgqE&1lv%9{?F_G~Y<}wq;TsFC z=?LfC+_8~THrjwAX6n=vbRu0QN@x)(3sSoA%_5JRTI)rnC3ZaY4IBUZ88*&;q~62} zjsNmF-rbdcmK$Q>{^Uw6X_ZRi;3@sb?M3&1p+>7!nZS<#z`JWEX}$TIaSl4Aqf73g{~bm18m`02E&Z%sJfrx{&*U|= zw7tcO&LQ!DQx2eHA{&oqbGoox+bMNrrSb>W^Y&Ydj%Ys) zoC1TfU(!(5jEmlMU8)-^W+FV%Si>nEL3|1cb__bZ_V{{-AKj-vs*>&Q_h_^|jC zP#?|I-((g|r4M@i%h4$ByZ?~)MJWYhc&AX>$YW+VQ*3jcIXn;eaof^`Jx3n*7Y%l( zG;-EAl-i5Y{4DR=A*(3V!lWZ@(8zM}9Ymvt9y0tqh6?8umXYyLTeT`4d8n4dcImte z%OX@cDugnn?Pcklmsj0FxL8UovMkmMe~-gHJZvp<*Z;FaLCc8vRBDni15!G@!@&j* z-+W)ieD$}xgS1I}G`fDcbiuy%`-tJyag|lomd_OWZJ5i?nzcO-6ordt`@(#701JV_ z{nM-}hcrIl4NEz$7^AXNA!|MD-s=0y8jBft!^}PL=P7u$Gylj;qSm9%|3U!#ZNQ_c zbqBI?fb(~&=7qo~Q-)4hT<9{-(lK$9d)&vgwVs;r!vZdH8aiwBO>G*Q1>BI1)op;m zKXD>&Ciaa#bUzDl@gL=x-f23|$O{%=^=UPCus$mhfZ1$+GlAFC*pf(B5dY8^FmjhO zV(EI+J@1gO-=1qvXZjm?rzvH6wz<+{Z)W79>S=xt_sm|aTusdzy|Q{E0O0pE*wE{Y zS8Mh1={e4ollpRPO$3@wI8A_Bf0nK*3R?<6+aqrx=uET{AY>?XM%%(*%8(bly4<5S zyhGXq=l&boHnu22V3hy&u!98d*%Dz;TJ~gWW^O7HzVy_MCv8|)94rERiZh)Py{SJ~ zIuM=F>#pZSQfq@u)^EpVtTuYEFRhzO0opuduj9#}v`23g-sV$Q1PRBDyfxnHsn>cT z3Qklg)!GR3$`X6j3gI&R3 zSp|J@tU_kB!8_cIVrtqYQLHYdrTxB_$?QcPBQP(2-F#$Wy55foa^BB9WBLUF2x7R- zn2Cop8j9Xd55k(tX7hJlbl#2)Z)eYLgsztiN^f**baBH=AX@X~^V+RKl11>}4ci_) z(<1{9dG(e$?Bf%IT+fD^{sUGm3IOJ-Utfz9t4X8N_~o6cvvPl)n!ce>-H#%8t^e|{ zYq+J^fusZ+;(6uW_t}nj_<`1s_mnS=~ zo6vB^_D0%i54CG2C`yOCg_z3eqe<{D18(lxb>{ySYtoaZfOg2eP9X%N;y;ZVDZh|! zFMFlWou^^?U57?iO31C(B`?9#f3}un&$>SULMm=qj`ea}pCTOOO5n&5*IB&cn_6hT z$M%#$LQ~w7BjYNoQ>AsXcL|vjFxvH0m!s-oiY(-R1mOGU4ap+l-gj}dMy?ig2X-FJdNLGQmrsxL%@y40Q#ZBU zxbLoM$M}T36(t&Wv#HhqGHsunRYNs}0Du~fYfCa3K7?4957ULef}YLxk$YD>(I*Rw zES`ifhcwNs-dTRZnOr}@CH#EVe){E3*)bR=1j$IV_5%cM2mg~nLQx>NY|-_F_s+&o zA#tQrx@<8Dv$Nzc({k_KrIR<3TxZ#RgPosy<}9qfBG>=`c=VW%saA$MJE6_ZZV|jT zsG3ZYb=`99h2P|lOKA(z_I;jaHyCS}lZU@t9nbfoK}q{uP=K=+!T z3s@&E(Ign>k9|a}YH0B1y@GIWD(!TDKJjg{|)dZS^{8Dwm z9xXGdtvq}~r2juwn_x*dyz6yQ4tv~o8q(8E_e0>$dsbRTxa70Pio%a{dJD^vB~n@R zw_Ev}YcgMMbd$ZV-v|iBd_Hi=zBbvvgsA5|8JC|RS_sqb6VEtX_u)YZtd}$mf72JT z0n6}d6Jd%Im$<`c93@}vx<}==kOCe(xz6rf$jh|Wwe&}|;^@OESFOi1q`2On5Q^<; zt9EK&zA>5TfgOwe9yBr}Uh`!#g;nbhw2045fLZ=O$@Q}0Ao@$Vf`{0B@e+4Au1YG# zvQlC5{)EQEdd_W58g-k#Zr=mN9<3lJyH zk7Csu9wVY)*NwVd+7GUbs9T{l5&0kPOY0c$Mtz`^S1Sxl(Xj&RZ|c)Z2?vgxmI46x z35GuKi2V=p$-cvN#Wv7fkw=fXuWza-_`6Z?y6zk1qg75ao=(!OwSD1IuPVn1dKIx2 z$)~9wZUEe`p(FyhA}Y?<)~h;K-CUw>GFR}Dv9nFVQX8l;L%wyWr(dm#weJz+OBel{ zU~0?Tk{m91sQ~~8UI$Z6?`e@K_evby{&1WE#~L^DfO+J&tUKoi?+RR}9)d{XoU1Ux zR(tUzR+yWt#N;`1De+b~#97qTl$QeIbHooYllaHuUU;5~7ke}m1pAGKDVE{i4!9Kc zTCO3&?2I?)BaKX(Q#%+uB_J{$XXT=H8Kk%bm~5%LE^e%%B|ZHANLOreM!~lPgj?A| z3wMwM7oOprc)Yln9b@Hjrx?ZyTWDXeQuET7`F=JLB6Gf+1R)=RM$#9DfnxGIyP*Y&Mc#uc1v&)MLYmM zYaW)=Gx~S~aNX!M8-obE@wW=Ib&!JAFP1oZ0!276^K3psy}t)1AA1S(j|n?4FmX(x z@JtICyFX!>FEMDzo%O00znv>cfU|%4E1Bg@Ep(jfMnjsn6)kJmfgvLvg~HVl7R9SI zCAbwngU=fUn|tCwDWPzwN&T0?#EsQc0zw4aKf3l>OY!^_TjBlzCK(o9el*W%ol)&B zpQfO+Ba7C9ik@CY>Cc+LAKWW{H^iEkAKU-%&02jJ4!?l+P35&Cxm9odFD}P^+@zV~`*1DMxO9KcGw}?j?MR<|n1I3(&Or-R z^^r@T*U_LqqWeddTXx}8rz4@u@DI_sc*GxQushn|&zh+J;th-S z1H+Sq!+GlKXkC&;jFdw$@Xe=_d>muu`SY%Y-j6v+O94Sv|DJMS?ayBON334TV8{vj zlV$-X>Ef=t>;N>!$bI3inTmFg^cL zM$dzFi)^D0@=KF9JMc zUl0_qeUjArOvHa*#jtguyku?yFY!vU{N%9J<0vIOkWi;FJJGddVgqL=EV?*JJsu*; zgcHd%8ER^yrFd#)yUM3f98S~?Mm!BqrA@}V$eTyJ3uhydCYy}4YDt#iOAlktaC%Ez z&G@pe4P>LrpZOaxyvC0&f8THkrBv~$INqWX3kEA7|+~dVcWT+q!Dv!1pqXn z2pj_2HY_hH^|yht_rrKoD>5gMMp6H8;3&JaHRG14-{2ls>obm)eIc>^qt?ycT?3+t zW=*f}TcC?g&I(vwYS8wgLhd}KMqxFa>Xw{%4;Nh$Qk8yGIPf*+{m7^Rz82Ab>ib+D ze5%OLnLJj)#9DYFby(AkBQtVwt$yJrJ98Y;>9jQ?rGxB^fblcumkrM6J$>@h?)4{0 z_%pU9Q?~uJ!Z6=oOGJQjCIUEEZ%q)aJdWSuTK<&-Pc0%%p>XAAN|yKR&)3_(Wr_;+ zSiptQwYcx?a#tSjQO08>kNE{i%ldBFnR<&L71H48kvCIR&m)h2K7Eta{=L+r2IOSt z^#kovq^oI(8UKt)?D?&KME}vBA$rsmwnXhuR?@mIRC$?7M`^B;@l7e=in>Xl@Y24P z?(SuH)`QcGE4E8_UIy7ssw{3m5I+HS``?LB;_O?`R`(-iPBzK0$}qis{>Gxay3hFz zXhWaIB)0C=v$_2x-vwRxIy5q(nl@RE7<@;*FcZ7I#y zL|(r&t@I(&)Q6-NO|>=__>b+}Y}M_Sj*01!UdI6PRVoAgD)Jju;7J-=)`jzILHLj2 zg6;RG>1N<&5uXix>C)(o!7khFo3~rfb1M&WN)a`Q^o1`UHjH{~q?!sV z?9TP~xt)owPA#PV>5Q_Fuj%3Zk^7gWFG${CgL3Tty_wkgy2&M#*4jUt%TwN^F&bwe zBm$o4g$wUw7B7M?qss1BI~`hP7P z`{}h@d?emK44M6^~ABSJ^VM31~m(8Gf^e8$_ypnYsnZSKFwwnL~ z?(xxyw5;6PPq4WhbT&-A{8Unw*=e&3flNzBImCka*e{u6Nb`7PB>bWyK1Rqm8vsqUq{WtS~oJ@K5zviRK|7CQMPc&o_EL@ii%M|4@M+b-65itY0t{H~oc*uD;EnsYtLL zcB=h)r}_gdP%%o!w0f+3WEI`<$>=$O>#^D7JSJ#upQ+s1IEU}cbz@mWU(J8%2KJFx8 zyf5B(IY4XlA!x>xP5o20>Dw1jQcJQugx_~|C-C`j7|O+QSCkjU6#w(sT--1ROp6>N z5eDwRp#8)kF&vB;Z+c3h?rJ-V%-4CNIYnn3%D>FdhH|Fx+wXG9d$}->k+46 zAdYqAXwFOf`Lt&OCR2W3fcaxxXaFlzF@#+^vTSc5joqk;gcm`=oUNSL9KiJ-A?rx*3qu;uO6(?%1 zetJ_9QU%Qdni!8O36r9i^h+_nbf367{NOf<=|JoLg80SjVn);7(Yrr8AMT0yIwgH#T-wnWLPe5w2=}BU>mL2 zQ9iOq#PmXhQ7;j~x`A_NwbW7qLpsIWl@r)yfNw`{zS8DK7xc|h&v|x`&Aq(r>Ub4Q z-N=RMAO6-nU81tYy@bgrM}?&nhhy)i8ZeY@CB71?k$T%f2PXQ>_NP{ytq_9GaH6R{ z+K`Ox4cbpPQyv=Lt+?kpsfgh&pr(B#ZG^uHBZNN(i-ExCB*J@(}pQCDf z_T+81CoaBAw~LEp#uiJ1qp=j~nFI(@kac;ei!y8!LjptS0s&u{ihk3q*t@8SA~ zGHV{=ZrgfCQhUpr%LSSyDVePL(WRXW3yRo{cUO|EGDW;MH_wr4fjfiYjvUbZR69}% zyZ*9RqQx5yv;m1gEq{s^)(6EB)J8^yf^| zgr}h)9ou86ER6qoScRdoqBfcOnBjEqCwr!|Z|r*AAcqjskSi#I?XlwXh$*%Caa zMp1>;mo1(+n7*a+OK{S{?!e~bXJXajhM>>7$H^Sw=SSUPTa%4$f%xdtO_A`x?eL%6 zvJNfJkVqN*pZ$@{gu$X;gNaJ!hcnjT}mtacwDLBv)`7T363Ht8}0Ng^#!he~w(= z*PM0uw&$XEC4U)DxG=kVtPA2BzyL#DU5mnc{%cD!`_}__SB}>U!0lJ zU1{W_l_?wvI$oQy%zA0B888;|1_-0{cDT}!fau)akbWHi!CAeH6&tZF^A)SA(! ztiN(M0f->6YXKa0AoLar7<3F1wWp~Y7DTOwDubSUoI8Io>C*js1XO%7s<(iVlRUfB zRQ1(3G=78LHX@@+@K{%0?PJt^q_yaDFO5i_eq+m3*|hR3k^m+YP-X6e}6e) z@oTd3pg_}=6O6G%L|G_;^8(TQgEq}W^7O9N_Ico8dbU|woz*wC*fjIF%m)h zNY5Fge?1Koi*fuEmQRMj39CyF&i;jXKm(244ATGmxNNZ0o1Fsu*jdZkm+XHvb-TsS z-_b*Ell98EY_QSiIdj2i$X+~|d`2yJIxg!)ZAjxme&x|q5c2>si(-heTE&y=PT>AO zy%9)0mBjv6t^s`AirU7mZZGZ73}sW=miHg4O2a|FdG>5ebm!3DSCE0j(_1K(xw8*; zWt~Q=VP-|A%A{#_bJ-aJU6E5|AS-@e@v)QMfF;8R9IBN1Pbz#E3j9K9qoH#=D3;W~ zxj7|C3-5e8-<4m*@M?PO;-fPEW6ItF16`vTsa^ZPmOpWGd_I)t!7e7Jt8&6RSG zkSH0TR%Nj6Hyj z7u0V5qS6;YlLTwMkAl|D4vwdrysX4GeXLX<`e(jK4OO5YoxQx+(= zH5^V(<^6dtJnL!v^55?Wb5p5}(WirMtqZmzNajyw^bh5xzyZVG2bjK*e@BsZyJhANUbd`={#NM^%HKE*~(FD*q+w75jC#l9)0RKsk^#OS3f6*0Zr@q zX!-~?klK$k+yfMf5lRS$2e4)hnEl?cyU73@aD6MnclOQHuLHh;F;`OrOaIfuiGvBd&t$Rxlq5#1Oq&ZDLodd)2hj%UPg_WM3ih^U|^4GHz{a+|}3kt4KysOh`w= z5o9lvf&v!Vy&9%V6WG+uiWQkt6gH_PM)Nf^4TQtLWc~T#=Mok?1TeF|PDETql>I#N zj80q<58+{b(l{s1X5vWAbB~(F(a#lK6&yvn_tZ&{UXnG$BK_rJTPM>h8wYi+j}0oUt-y*e4cUcCPf8cJ&(>w2Wo7g1)1jU|vC*xbt#Y7ZHPH-0lmTQr_Ys_(1n zeP=b_BaQe)?{((~T*NWO1rp*(6#wr%KF`lGKk~^dDOu6A^eCRvJok=y zb=!t>n5UmE;UvF_TE&>X&ir{eaO`p1S@oQk6gHbrk10csT@R@V^J@I^ZR&W<-GQ?e zjJC2j-llgPrNFwqzY9Hg!11k7QO*R)CZK1Qwe1S*2|l-g>G>9^p+x9rmH@78LW5jA zxeeK)lj&vN);8FFQb9(CP+NLb78Bbw;wqU+vB58}*%{T#=8S#5JsNvZ-;CCF5-VSZo&?5Zn$nK(0*n8lChII%H8(L?=!TyPOI$c`VaExi7557 zytHwHr1-WGHdQNrEtG+X72I@?+K=5SL#bqNRT%W*iJ#K(O5QJ`TZaMOn9;A9g()p^ zsib7oldZ*Ge-6!E#5h9cCrkoSDVH{@^h4HjLT9^#-5_SS2?{U^|EZ$F=~F!0Q*8Yu zleF>IJ4c{{v;u}FL-=bS%pce(BAJ{u=SqR7U(Pogot|$LPUGD~v?%St)hCJvpxsMo zUx}z}P+$Ktd**d`tP$+Y)?*uI^ z0Y3+vJg)Mz&`Snx-6aNRTuyz#V{bX-$gck#^5KbeE6#YXnni<2*WkYkFfjwt$eQnvC|mOtql&^(fXMEQlZsD0Xr5R42z(R6xCPXgvHaDs3$!g9ttB{kC>tX-Q!d|y|^)( z4-kd}?#A_he(6!Mg>r%CO0a7eM91Mu1Wa7O&&sY^z!=sO-J4vDQq0Z4e_dl&6ZG|LL(s;`bN zRUc6 z1N)VIs;4!2DiX^~z~)8>9m?LPWa|QRm{skxTS#v5qHeQq>SXF*Q3<2WV5c5z_W*me zGdlj)Gnuzpz$GCeofJSqn4@4N9Q%x{p;uCyW8fg9_CvNFcYkxw=Bt2m{xs!KxRZg! zShcIlIeevZob8U4e%`o?JN|g2_$(kc1hcbp=O!<{@{& z)TeHzvWY$EdzwIVP*itQBHPkw51>5tnyLu_dxl{K_I~jFUr#R-7>zTXi;%1m?1dqV zvf-7p!hS!Un13yDn~)yo&sx^`{dK!Q+wk#(bYY}{ z&_Jy_$ZqQwvpzjGESxqHoSftHeB{!dOsaI{t*X1>{NC#VFIDmzMj40CWi94*99zt% zJm%AII~kJiZnYg=7tqVv&B})xvK29~)SlY$BI0ae<75HpEp8in*4@CPx`Q5?!paM7vlu67Kor#Vn!Hc!i*M;aciIg zmP6@OTqFzP?#ZP(3gCM{h+ef)C4&mfs*CSTGF3h@Z!+B7l+#WO4YntJbvn~max2## zs~?Js*4(POycl2_S_6`XAAaV&O$VN~Ug9rgSWL@LzMCNt+^q7J`}6`V6s;G@88Og; zdnR>PJEEtU)c%qR7YS~yKHifi&ISCwhU3xcJI8YMFZHwha3EomQku#9^%O`&rl4Wv zL)j^3h^aN{k#))Gj~88k2Dnjb8YQoj@H4rVjb9yxJWve|dYd$O2H}U;Y0ED|6157v z80s4Xg<>dG(vl;lo;>c_4&N6vZg$7FgINCgI2Cs2MKOHQeh8|7W7}|BfZgtoT#?l< zu*AS@`tY>l!-s4GtK}O7e?;}GS_jwHP&z{nxcvlPlPTfZT5oU0+85o-o1Fgjs*OIC zSzAP3cvr_c-k3X9u!ZQ+Gx64)eC>u}ftVx1NW;dvl>KK5__SUNe)N*sU$0 zGnLYbC=jzfbsrfoVix|%3n!B5Jk2S8QuQSnYu4QlyG`EhX~N&+q}tn4gt6_nW9E^P|T5Zq&FrYgpNui*v4}b(XZ@Ivt?q9~vqd zee3dTqw~3TmS6>~z zv=^FbS}4k(1LyB2pLG@QZ=MKtB+H!Y2xnAX74Ld+8Swzj$o@eTH5bu&{O7G4zBBPW z^+;)Ax*M`UlThy#`dsCQdtgzOgvbwi}p-_oe03-at1V*28EGe45d2PVU zS7%1O@cl)d!NetVewlm24_K_*GqcoVAIa5kblq@WPf(UKASi{fA)+m@$4-d5Jn#IO zJc_gCvdNf)KbOnyXZ+)5jT%qIjK*b`H7% zlHUNnyVrVrB_^9!oczpo?bKn!AtqOMl3O~i(N$x!NJUu70{Fp(IN!TOS~qRKBBk8* z(JsP-SAuPTwrIc8_?`ZcKGj>EMwywNOrwMjd(@Wivq#w!+bt7tIsZ~jV{uN{#PUVjW{oEy zcWR_h=M^VTCq2@^6gC?|?D{Up2uFo%N$!+CjKX(}FCRqXOSKFJnx_B4qkko}9C!LJ zqqs#HY$S~22C8h29Yp$g{Un7uWs|U~=$ebU!}Jy1_PwQnTQojKbd>0pgNybB$9r~r zFRXsqjSl*g!qWXqvl^GR_I+A6h-CM)DYC&?@h*{3+G3L6^uKGu;zH6%*ulbv&uZd& z=JzzT8zlfG;y1a1(57^HSJ{*~b48L2JR~DC#(u(E?GQSnMu>yN@?En+>7)(HG7Z$7 zTCy)Z7$SGM{a8+`llwE`2fBex6p}9#sXsZiypGa=mbic+_vD2~=f)l1a{AGh?!~~$!@Ew=h%}{NJ z+~-UQ@F#|Lw_Lc_uh7lCL>Jc*QF<1_%SAyF?hTb`wcXquz12_|wex+A;oS5>#>5Xr zRw<|w(zEm{g&zeakQ#=VvftS8r-KJVptRP)kXsLskC_DAw(*O2qK+2|v|u@*uANFom93#qjPdOP>b1Lfil71%I|py?<fB5c_{Kb-yJmD;dh_fbYK z#TBCAb%px6Jek{DX@P8xlf}^&Efj%NFL0Wj8GmlX{VkMs1n@}_oH8LE@fvlv@k(v< z)^qr)XXdStGV7*6+rGA?{%@{IW2_r}Gv__hKQ>3V(7naWC78oe=NAdeAv9c}i`vPi zM>Tfi4@!)T`WQ^S$d~-yBU=lXu@X%-OPl2{qo?Gn3hYS6B)~@^%a({*7TAHQm6KCJ zWgUK#CP;U;XHdlCc-(wr~JsP+mNRPeZr9JQh-V zDtsqG_Y^9si{xzC>kP~8=V24s9`7iF)J33b+7y}_2#s@#=TsL1#a9%e zz51C{8a`_>?PGFe<7kY$37{?L+V_N0fpu?+M>@k6-v&qcxQ{!I9#EzEhmd2^aT}yn zeWb2B{yBQkVQsx29QrW#l`;V#BhRNSjm|IsSS9>DtF7yqU8>-&GY(RgDWjuJbD*$q zJ+OdT`LtDs30uttusZ@KC7Q^DW*F2MD%run5xy}f?Q?G%{(#p}72CwtUWQF48y zO8t_A&`PuZRoxroU%C}1#|1%;4@DL}6bHt5;CAiCN2GMS^{x`%tI9ZQ-fj${^Iv0bW zUWHKzPB1v#QAIUghAhjmgpLgbkGezyqA&(ot98>o8J?)V-BBw!I-Y`0pZK>gACSDO-`` zfGWaP8E2zLL)PO9-Gd9=x4IbgQPS&TRhOKHHT`#OUqH;_?!l&8>W8`FG=v3xPu)<} z#9QOfe^;^jXCBm=v)dk=Kp0CArk{Xdqbm13Pik{NX_i5n zbA6ii6-9)afH_5Zc(;S$LfP#qPS?^xAn+asO?#8{-2ApuSFUTEt^vBPmt?5StJ@p1 zA!PzC|6_M!`O5re5a!x#W3zI;=YT$13JH`DwmY8F3_&}%BL#C+;$D&|rVSyky52os zIQf!fk+3{5B!vq-FKvjjy{}irOcAY9nx}#15*7JjJ9A=fKq8{D`xJ~X3mGM0!+Yv6 z#e1pAc^enZFDAQj?JJn4@R9v%(hyFDIYitt%EhOu#97OvYg|Ls8(QukOTj)(XPKpE z-yJL*<`ZAGk6Q1FH?DeMBav5AJ68R`ACFg0B3IACB24={($|fid(tER>`-HyMHG2T zk7n*Q$TD{&FJ7)aRhKv#)y;P|OHt-(1(XZ@(<#Tf=xRqEeJodfF140u83mh*9R|#7rJZ*)k-Ktp|n~{m;joWpLYh8_Qrz93|xOGAnZ3x}_ zrr$9`3oi-#9S3AnQll9_aiz`~W8CnGd>CnhcTS<(_S~JOfY!W7oJ{pF>FCw?ZEf_7m=z<=ALEgPEz-K(z?3Bsr*$OL0e=Fo8NO zg-Olqt~vls^;w}~Th74;FU_~}o8<8Eu42nCR;3af86pRyEATxj7enJL@qdq5Mbsx$ z=53(88p8r#$%vaZJEv4Hj>Si5U=A$EdOzTf`8EDg8?7}sO| zB8o7KS=VMo>vsEDg;Qecb4<|VSh$GJ%ghF=b-oBWnHBlw7VP;{ZENAc(Z>MZ1@4i9~)GY$N3j`hcG;@v?(&GP~#A9q@ zj17c1{sWky2qj1Q*hR5);mdQizvjbY=fGWTT0+Pa#V?JN@HZ{V59nWgDa%xM>B(rS zGQaAG`MoTTVQ^>_WLEX_cf*Vps~|DXI4m2}lz(*eXVp3MJF&o8SNk538hjP3GaxaY ztOwSEiz^T#iJeLq_~Y_F%t8r6TS)q5yCa$RR^lK_E@hvoUkByDx<1dXZvnD?&&mD5 zDEGww>&`8gOwo9l4dkj7#a5c^K6Mg>f3x2}zGX>kE+}(KZS60P(rR>_m8|x_?m_|y z$LHz{D&%R5!Ucr4e~Q&_bMfBMJ!hy@yzRVgjc3|JSsY79G~wEqcTW|Us2)`nuC5ZvNG4#V*Tp!(Gsl}z(DBQro24m@zU0sXX}&sLkFJ> z?0QS9vAjq zVfjT>IW!bnOnca0;o7N>Guf_ZKOoP@u-|lbcCb4{ciaTZvA~x9OG7X8>Gvf_2g~XQ z$f5axvCUHt5v?BfAUh}2afNqUF#PcC_HJ(6y|PQ`TmN{8vylWQI%P1vpy14Gtt)~3 zKpCT6S*`_7q$ML>-_!~tq4P!y_UdVyd{7xm?q8$X+g$ivr$XuOQ0gcuTk9gkH@-fl zueapbt8v5M*5P>nC(X|ZbJMM{$f@b2I*zl}+tSrasyq9SOl~E5m;ty52T#rNb!Gl* zobbUm2p4)h&*2fWSS?%s20@-q`YCz0E}}!d1RhCQxxpz9)ppcG)g9E{$qUF zy+cS4QJTjl)?dS<(HqSF-)bcP(a+6s4V^O2Bm9!RVjJCVb{B%EZ$F6X>hkUixrlV} z=tndePw{u&-1ppo^6O)Nzg;{aU~I2udKLsE>Tgg|C~aTGu1_>vzRJEJ4Pn`}MAp9c+TC^P}D6aW+LfDpZ>yO#HrK ztZJcA*ozO75LTZ4=7~%L3F3hDT4;lxLoe}e(qKN$M|M9RURoe$BA{mgih$V8MAd$B zW_!PudXzI~<4s||N%bnb9dcRj)_3}M&e1Q<8kyspElE*fwB7$iX8?CBZArE zKB{=zQ;fi0B?-T5jM}n}RE9sWAwIFs4d1zUh1({zsDO({AdY++NB3LacV^$wkanu| zG5VqI3D2JDoIm*bB#jCi+A&cH70#QX(zsC~d|en$MZpFogKZ|+lS0%rq5>{9a@c$} zXHHTnX?=M@7df+{Lv2bksz9kO!rW^PaWZw9#`Ps7+Uc~P_FY^UeBp2MpiR!I!UbaA z`ozWZOBe8)`^@+tYL2(hC|)0=9GqDF*BsH)m~?=BR#(W<>SNyLsFMMLcxv0~2>I|w0s zFZbv9KCkDG`1r{$$$8~GkMn(u>p0$T-#KMjP~uhJG+eUU- zR&XB;j4b^0Q%=~BPe3JxprSX;N%|G9Dx@cU#p%l|Spe6D`+1o)okPM)E#E@SnF4{kY~c)R;@ZcSjcddf|=2 zts&IAA?%*#C}Q#PjSd0?Ts0{6>Hug$+K|SVzlQgeH)^l<21f2JNmW=S3|`qcbwGID z2>;ajDi*P46}n5xiG?TT#_J-M(_;C)GBN4{~iH1>FvwqHFkE7XE@ zV+npHO$84^&jC5gtBY%X-HPN}d$ohn@zA(cGLEV|eW!XD(idQiac5;M^S;&B;GmEx zjyq&3Cr2%7=xYx9cUYwmVgW|zi0h! z<1}rtp=)gH`SJ<^pRXFhKpF|$oOIO;ps5A@B^@v)B*tJ?bg|l+_z!9xsWB;?-S?ba!ImF2dtsE8 zB9P|EEWbVY`?~gkA>cA_0KyTI!+RPIr<~Gk(z#4>8J#}7x*uG`*2hukrTp7*Km)$U zKS7^h?&2H3PkTe?df0Qg{i1btQS{s}D`9qcHoK<8MBTw$GDx$F4PJem_xW$%)Ot>w zcM)MS#phR*MNHpcMFLoZfLptM=)@-E^d`&mXLr^qch`Tu0qX2$2gtt`u&cPre8Bgt z?Rz27ot;bDfBv)o;Yt&@-RY_I`ciS=VlB9*UX0h@4Whr<9%#+GbZ*0MfR=(iPs%gx z_EdZ*T%s)=siaUpWJ@$755+THGKElJOJ)7s!{!!y%c4ty!o+kr9e{hsBz>5@G1{=F|5+ofJ->|KKd;cTOpof)4k}qNs`B z2zS$f=LWpEdInNL`Uzj{>3u0H37GP~^aBJ{py=InTJ9wYGy9^6pb416kUP~ce`fwP%2a^Xtb{WS;Iaj72zL54 zuk4JDZkYZ6w{?Z?ixiSfiAGl@i_lD*o2V+m!v!;;nLa32nW^J9v3md?6P+Q5+WDiy zb=A>@ZKT`8(1cqCAelx0KhXaG5B=(Jd=qDN?O}8jPeo+S>iHmQOd9c`{GqF~k|J*Q z_`61Y*c}0c?UOdv7Pp{=0FSD+xY^Pg{SNySFc1ZduXRVhBn%SpPc!Dpc6aqOW%g^n z%{x9SFJ+7< zQl?ktOnQM&(te+6+S5TNP)i*@jv)vxnsfgrqchZiTCN*j8IFgh`ZGD;>K^J+Plo1< zdOJ|}!W2TmN`r5?M=lYF$1}>Y>b3BT22Gw)av+v_uqxCIhJfwIHFk!IQ|_2is$l5@&#`L9SW&g2b*ZY8rL8p~)SuFdhSUpRD4M)|C57W_FrL!cWo7}4 zf9GBoMP_#T7N{EpJYMG*S!dH0_R;O+zEW-o7tXLlGcJ2VLjm)7f$)^vU~N+#Zs}4oPjw>~Ypv z>Le{~{YZmcdK4%e+Qo|B+>U)xCc&;qLnLepm?<h6QqrFp5Sl-A6(YdYSi8i7sX7TjnSKbcuX*3p)NHmZy;= zc0sgW_@XOswl@hGdrKGjHlJ;El~G{tC?!`RufIeCZn(hD&0C_QEx~XzE8AXhchQH% z#>}AVXouQoHBY`h)%9&NJIbcHm2Gl!E!}rU;7fm-leHWNOM7-)C;cc0K1hwI}%7X5^OL0phW#x&wLRd_zzkj$= z5nqpvL~cB>+}Xyk84@i+lO9e7V+y&J)KDuS%iP)!$aK*-8grN{qJolZ1%O~ z_>eixV!<5Z!H$Z^A~#{@DBLe1MSin}t~aQLU{1*Jk9hE;RvpG>cdd=b@*2ylqnS~e z@~FPYmqYIv%*XdC*gH3L8ZH>!;Z;Z747I}guNbVlX*)e^Lq^3zBcN4rz4o8(h55$p zuTB{Z>?O|ofPt~a%(H{rq5h(_E002DHf(AMUrSNxFsyx;KH!*9!_*vqe^J|zQfSx-$aH?Ejy z@P^J6r}F3oQR=jno4FK^r>{e!EXPPs5-*mj0In``BzRcz-xn)uY3OC%oYX*y#7=hQEm1Qs_2h4Wdjg`i`&$LF`i= z_JY&6E#h+d;^5JX_<5M!l99~bNqB3#Mudk&&RZKro|XsiSOLp=7mgYCJqn^dlC`>K z%G`KF-ic&yG>P&*7NS|KaHjNPF54OQM)Hoc6Frp=UXRg=*}EL9*bLfLZWAu1m46)# zN)kjP0|Xs!ycDvqVUyT_zg+g`j4nb__*dXgyy?@cpVQE9R<&5go0N&TK&s+5V$6EY z?vl5HNfSzs;(2hiTNl}6h}VhM`3B!3)%J_nL7*TREg&FxbspioE{K_IvM{68aRbTa z!fyf0*Bss^TbENiSAX4r99alU>MysfHsi&?M6lJvlXbr#%LoTIlb1zpDN)lW z7WJ_W;kFu!+6~FPV|p0ZD<3r+a)?Zr2~zyC>~M?2GUc?5jthX{l1!a++ow^2xi2PJHHPrST1ej z4;&ce{0D7IOn zadfAu(3U#Nm$tF6F1SW?mWkxf&5LgjA>LEhx!Qf)#^tg3m}z_0#3@I~~bpGj1>Uvp@pLFgM>N?4Wy9 zOo$$@6<9|q{gaxjDSTr!t|`=~LtmHGrxOK=0j@S^_Iw?b(%|!^iXW`b)CJX~e8iXmI3TI0ov`Amt9tqdT&0M&P9z(X*n7tg z+g3ujB8v%=(-BUc_zE)%IKAlL|EOt0hUdum9 z*|bl(x0NH~T#<)_w8hl)Y_6t%vjLEoi|Mdjz!S~xuMph2RNOMB{k?GYp#QWH6?XHx z$H}^D?;tB#{6CKf)llKaS~>JZ5U7FvVpacEum5ivp%44a!RWHa+7opTw`G2>FIoj9 z=eXw07d^Zs_%gfPR&Yl zXcRVkUQxF9DqLQzS&7*anTXtVR06Kvw+^+CnRs;?sBzWn~QX=hF>Op{T5KLcDJw52}q zgncy4S2A4nIutyd)~R2tL~86y(z!S|p>zv;C~jQgI@(my<7-NtSQ_D9O$A0ISke^@ zRt9@@uA66+(xIxS!T;%~206Bc?r_Ly4_DV5zCb(cHHIwRxKoGvHnkLV@`A3|=W**Q z2J1Q!OmIu5Q~-pvO5M`&izQFt9Ww2t;gCdI%;~rjOl;e0UaMyTm?VGj8Z(IGaoh;& z<2kvAa}`=?S!F52{9$zE>{os+Zq6fimF#C_OebqHGVc9-znk?|u?Wdw)cQfla0SoN z)iB9=nNW#8v&4Cieqqh4I-^Y`^uMGpY}GV0y}r9Y)kZP-{9fWk5YJ75gvE066Nn9v zsq`IsMRcy*S`~QHTmSK=+lit%kim=r1M#fv$h;zJPNiQcw%&=I-!2y5V zK0#O$=omm;oupJKPgK+KHqAvu1eyK5RD~^UNI#6Zv`a>$bQvoSc~AbX`H^Qe$k65( z4%JTkbzdk+(=;^_`6C67I*liZl#^!e>sm-D(%d{%R*@W8%;AUDZPz>wiG>4ObFK(mqtUx{iq%yuwZi;Q1#IAB=X@v{D68tB@} zJ}rY6S`MFj=W?-W|NClV0qB(ofYGHpuY$MnL`nla<{mNYB46rBB1rn z@Qe`X$)3xSaL&UUEf(G4L&5_a9~gI3UMiWg zwuNpj+jG1S;tXvEsJf1`J`Oz5U6;H$M1myjy1}WYpzp(H(@^1L&6efD4@kDhuCe$` zZjQBvpBkF38xe>!20MRsxRE`w{KLyrD)O+sxMC#AskYk3A%u=&3Or?+|I<{{tHx~( zd;*7Ug)%KnPm%(Nlz(6^#*~;qqu2l4-hf07$X9qGGtyf(;bqc}>T#*Hj{QZp4pd)T zdn_yZ^PcW6CuaoQNk^&DanaL{B7#J-hXkl^XOA%whf=*a>+>!KIY=uH7qCb;!vA3^ z8(WsMdw#I-f%XSzloMFtaq;Phf0$RpVf+KVEJVL#@tcQbs$(LF6|UiNDR!ibS9BtT z?nl@LIaswfZl;CC-n*qK`kd_eRVJY_rG5O32uTvk8lf~6I&Uu8tUNVQp#uW_OYRyo z9wX1P%_%xTezz|bjW*+ z6&%~Mz|3>?6yKMBZRd4J!TXN zB&R&Eo4b|EjbK=ARrW4?CEL-wy*dyzmZtb+raS-mF(%&0Gma2+{MW42^7$Bw@`lKk zubY?urfV3$Q1$1TxlKLN)d7pKe9Rj3X`f2kkVBh)_7Tjj@bP(G)H--v&Y!DoA^0i3 ztD`VdsoQ+dCGU<$L-G}y%_*GlXv6iK!@em~F2jsCBbk%-6sRQvm=a5jeYpMTVGcNQ zVZ-%-a5Jbh_}_b{67g0L$yS_f3F)o10c+m;!!SxhjbxYZe}52R@2=FX85c!xzW#cY zZL{87Hj5q@9rIM$`GU-ZO`D?`5(u*!Q`G4IgQ(Lfr>^3~l1A9@^r02k-J#=?5<_I4 zRWmx=Q9{Rvh@HB*W4PAZ@o$9b_l1vvP?Y5f_GKwmTEPDSJLdtE8E{C#zrc8VdlZDLjB24Rl?_cDu;5 zWJiwrUD^0P`o~~kf2wN|wBN@1x&Wq5JE~!)*cISXtf>ibFv}zQbfj6f=Xu3X_W5Q5 ztaiA{<$*jSU#iS=g|e63M`@X9^>&O?dk5`ZWeKPKkCfQKoGhWnSTM7RzMY%*NtxLx zZ-n3qq@3)Ren)yFOd97|h|xHRgPc>UzUU|3?kN*Lo9MB59(g_?!3Ji^4F0e>f}<2HY@wzF1#qs2WD~!&aBydT^>LLyZ6%^T z@YG`fwz@F&z3``;ZsznMVp?)x`RZ5N?}m@4NJoRl%_YEl?Jb8jEpf_15JrmIm%s+f z;{I{`PSICQ(`t5kT$eZhJ%QH-K(>P?{PC*kc{C;8NZKHG&c8p54Y4|?#$g7FZD(gK zhg~#GmfOu9>9}+2Y1)Wdox5z3DmYL}84GOGSBYy(A08l);kJ^w5W$sVcgS#BwD%|A zWX%3S&WTjg%e(R21z*k6j@(^-s@*W(xA;RIpq+&83zzSgKI<6Ad$Gu#wgmFh$V@yp zR+dnKYpvxcCrwv`&M!~HrFq%w4VW)mSz$%ThJP0HCZ`^ZKBETJwV3_sW`#V} zemV)#jxV`^o?5btK5{$pVrCds2rT<0871J3zV{ zQi?qAzU;>6;gibLIFmQZ~rt-Gh?GpT}Q5lQRKJD$2@C7RPzuiY+yToA*Cv- zjkGT364$=YpF9v4FmCL^^J9?^&JW!h!Oe^EEhFxO-W8v*8eM*2`jh=>nXGfm06Y%- zNBAvslGLIFFEtl!=8-l5pPYNq4nEDbmxH37%k_^SJ?bn+*~A4Z$n`wnjTS~N>Wes6 z+J`p1Qd8a0h8gXhJvb}NL_|+n4>XPVQd)~&ZUo8B8-qJa0+81ixTW7eV`P$QzXTqq z#)n+Y`tga)#Di-uG2AJ!Ey`>g-!E0LG~8x5$el|*hzeR_EMIwjU-(ap;kmu3PvT+i z?kbZCgW^HQ0&T3rVjfh5XD}y`4E>UZ;qi7gB%^yU#lSvD+TuDA1$ra^to7~+ot)6` zKI%RGgC#=uH+`*Zge34h>!-Z&yLD$=v;!#iJwLMPMIP|$oWOL|)%s0`+nfAT_m`ZK z`?XUI;;Q_nO*|EsLwm5>D1jmi*~Yb^IoL3j@XxIK)et;pr&SCgu@SZ=-IsJHS@P~sdZkgI9*&swKCSwGmpg8dpt zV+1RZR=?GA8AKu(YX)50dP@TFik`c>0Xo>L4Rx2?{ zHErEIX%5^o2iO_U+=JK!FyaBX0B1%gA`2$1{##xBhvNg+=jd-$_LrjkC{=+5P1_UW zhVrVZMD&9n+)zXId1Sx2n!QQkm%y*XU8L8B~Bm`p9y$o3iPR-39T<;4H0Bb)HT1LPwaMz;;# z!48Dd@6zeSC=?hCWt-Pp)xlqNOfayEaw<1%b$C^pBq%s};ru=M)|*|GgFF zc3s}4KQm7iQgMxI>Bp!mEIyO`$KTW>oXeX%8}mtLFF1Wk@&OyEVE>exgm)K5u??@3Q4)-`sG)1#nt@BdejBR%> z1EB@(%sH<-XGrwY}-BkZfI=wOie;JEI05nHSl+NeLW5$}zn|DFc(u-gC~`Ex2# z8l)lTJ+k+Hc{f2Dq+5u8@vuYFf6yf~ ztYFIO$hFG+8|6U{LGOHW_&Gp^X(dk2d8va7fE&Hnqu^NM`8G8!5t<-Od>S!4%BFg) zan8|^zBlw|(P1%u?%BZ0{tyMrany_i_NAb zAC(~juXNjdk}2@$Gc`Wi*i1k)9jAPPfJW~X0&tJiRJ(7Yy-qaQ%kNb9KKweOm^aTt z*|ryfomsmVZEfJ7-O}tDCtAsH5VxkVdUC6{S)zBKVy>6>1L|~YGj^}($lA9ojh+L6E&FfI3DVb#hQr-Hnb2;iSVae9xwXf>RH5 zMB>MHmrPl{H1KKnt7NTcaic!cngEQ>_G;jW{2n1+nYZ9?Rs@x<nP= zo_B>kU$>3bd;Y+mflx&%#nPdGY19e%&K#mp>K~xYv$`oh4cM}x7wwgd5BJQ}gqsCx zKU1pAyo>CyTtP>X=Debx)z|9dxH&yS_OA1;x7E%wEvs`O52cDLZ-i#HRQcjKr3{1!rf%JQu+ms1snUJ(pFI)=%S?SXju z5&-z-Fy#qx^t*nH9#!eHN&R_f9h6w zngyYBAD#YXg9lzH0y%@$Cl;fZq-LQGqj?N2R`VLS{XX?&m#>RS6CqRCV$$;igV+#wkVz#iY`9Lpv~jsST3VjL6VaO8w%mj0X8i zT2$olH8GQ&zb03|TLl~i`aJ?Zy9+T&*? z80;3mC-D*a{+Zf+FBD>jlq(8()rfOCe!%y2IV3-GaZp94F1v7k4Y%x{P`Ri!6qDMO z;}R$5Y_}q*r>ZZlQjcXCxW)=ZKKtLffh@%dV7K4TA^=6=1TiGk9CEi!T)NY0YKRxI zX%9bWPuL!UX2+&~EYc{(FS>UIfAkDmR(9~F5xSR)8qAGWr5`o@gUCgyfAi1|rg(RE z71VSJHUqIYhCXZ?S5hp80 zPJr@6T^;AsmzO8}ASM|2M}m@HY!TsG=m^PR|4gRIp7$)F8t9R2oCGUsL9X`X5}aEh zf_lRxqolKa)q zOZV4+K%*DVqOpEN!d`07VWP86aGE=P(x?DDaM}4m>QGIJ@7uiO$&e4lI;fFV-XxKZ zuNgPfNl%Gh6SEC!uV~9+iUb%}TYkYmOz#z;<^sB7Uj}JEweN9X27#*2CTJhIrYtKx z-B&vKyY-f2q=b;F&SfW@;ky@H{>5y@=r{6}*NK~&j8f{oO_S9g5CW0b*7W58WIo+( zMNewmi@VN)_H?@Hf%~&6`U4j~xUQ^H7{eKV^I7!-=}6JkNtk3lWs6g5v|+@C+&6|( z^#{svc*=rJrlY|&>0<`hrrNWnKqr9bo_I2{tUbcO{nS805>+P0!ZBG+Iwv`g5@MCF zGKwn(0Su-=z)pPETUI;`U0B;ZjcWMY>yRx@jvbj<^by+d?XV*bMb}=sx-RlGr4fl1 zIk75cM4iqim6JBSzIL#Vi3``=7*9c6><;mf%uxAE4w}4gcq9=jKu0H3)fvC_0gP8UFW1`K0J821c_|4 zrQ@kulIjYjUaFVKuEei!eKG)U#u+hd>eqi^1;G7vRZ_EbLpz(AMV0Q*(vA2w3gNSxq^SjaO%L+iIXc06bq;fyxmp!oDoL?*78nUDpbuY4Z14AJoZB&gn1Mi2 z%z$+`cY4CzEC)@iqxPYD`V;Hm#mUlpHfbIq`NUaP>cMoYM*^`oe@ zhY4`!J|1P(?TJ%0Hj>7XOrnOZ;2k!@|_o( zXcn$>ouoy8qEa0|Vg}j3MQG?HeWM+GK*CZFV}oMOYg2|b_A zEYKD4&2}uO1LlmNJF4Y34zF!~t08303M%b6i|nh7pe~9O_Kf~%CF+UL!cTc6K4}^) zfxWuE(+($9RA?9LxywDgF+48o_hv-7&Y~%1z?iuyI@RU0zDq$^-9NCfP_EklOAZUv zUl;ak)_YXW~Ft&9T(;I>KX$(w$ z#B+LJ{DeHD=qH?BDd<{L;*qs88mfFJW#xyJQbyY>K_;AWcK>J}H;VNt0a#~mojtf# zY8hR2>1Dzo3%6k=K!*2phO9B4xhj&mXmOle<*iF?(&<9KJd6`Kn@Un#8ZDf z9}u@U3~O2)ziKon>5fc5uL#voVMV+=;jYmC{k-^@y3~L}0rc_IZ@~iX0ZU7!lQzwx z{TY+_{A!%|#159f##bw4Td?^|SmghH%nV&h%|ddjWb*d#3S;ECcoepiz@5$P4Nn}4 zFm=8Q{3T4vy<-_>Ny_pUET#VuR|tp%(wotHXP$oIGD6e2=|FEGyd*e=oxEqoZsz3M zW!4d?eCjV-MwcP|jNOp=cnG|BWtJ0#NraMm;N!C>&Gql>UE{&sfXbph^O+<6-s9e; zx+&0pL_$)((eLfOtanaU$?X%`YdaX7RNBWd|BQtC|Lv(vR;P6~%kP7kzaSX5`$vvf z=B87A@D8m1P=aWCNS8W7MB2+qy3ByYBbIS_9X|#L@~OL@+o5jKR`4Sq?}TAOeUR7n zY?|zyVYj^L&{HBj=y=Myqi0rCeJ|-HjT>8H7T^$cm^^!3N(udB?b(Ql$4VfsTbskC z*10s5b_BlqEEq6%t(U-)&%9kVWSpXXJ5^<(osjOv%Y=4ww60vertdMxZZ0OgL84m5 z))h}Ov{>3X!D%CTPCNUYrL+X^TSfwM)#04aF4xMRZd(Eo|95N);A=sS?h za@O(s#*HI7FC*?IY4$#}@!VO=$;rSB-_vgFcsmUc?OFw%QUIAG;u#^xJCj$1|-R7&&-|F8c>`-}_-g6Ac|i{tHkP@;pPo z8N*SExN<7&UToHn(r)9jWu`G!%2-k|mD zy#gupI#I|k@T9={BA_T?cebijN4i>^2c;r|V*_tj*0zsus#t472`v@``(Of%Y>f~M zR)=17jec+Xz^4ssH4B)tHJ2JFrhw_?%Tkw`zJ3IIC;fb{TBJKt>)KLeddsH99Eo-@ zF`}2j(xUW`^~xKFnPfS#4x2$&)( zB)F$<%qPPszJd-32;QBMqQ9f}h#Q_y2vUi{k!V1cN56fENj<$uP_NfKlDZc}SvUSP z)WvpgFWt4xg6Am-3I)f+C2aW2GKHQ4#M}_czwr^l*8o|0J>k`Ftg=5hcO-X(i=}MX3yKnd!NS^EOUP z21>|#x;TbZFuuKOSTrS+;lRi3K35Jo?O+hLw%*ZLz?`c&L*&~D&I7_HcwM-n_b^s4 zZQX2q*kh$Imvl+QeWynm$BuaL{LKIK`|O@KDdm@I?$5sa^L_R2RKvK-MLYMH<*z%l zao1j}<45l@GB6zYxz+giw|77C`trrPk3Rk=CHDX6N#me!$6qgHwzpXTo%tYR+w%&W z_FO$-%fU}%_JnD6%bZL{2;;|X`~GW{vovulA6(2O}#uC~rxcfR26&Ho1+ z5B_>vQTj9-zvXZ8n8j9utkb-n)?K&n|GE8ZH=I+?IXhb)6#RQC zw?FrKy?1Z?Kb~unt7m_Hc2Q- z_~Xfy4PUoK_%SzZ{d)Vjxckj${&KgOkIQZPA^pnz^A_ciLr!2M+%C;&{%jJAM9ke)F^YH^b)FGb}$l zEddxf!?!ZtV#r`|Ww-fuwmD+J0`qgu#yOzo(~%oOJirFZXk|0n78^|jL!&`{Nq+OZ WH6|ag)lCEDUj|QCKbLh*2~7Y)O>-;& literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/moonshotai.png b/docs_new/cards/logos/moonshotai.png new file mode 100644 index 0000000000000000000000000000000000000000..0789af8d62bda805118ca2c197d90f9b5c73778a GIT binary patch literal 9771 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 PjFy#Dk|-B53i$s3qO=<> literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/nvidia.png b/docs_new/cards/logos/nvidia.png new file mode 100644 index 0000000000000000000000000000000000000000..fa35ada3c83c6b5bc4713963083f532d4304e32f GIT binary patch literal 27187 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 UBnR06t%t5$u=tB^g1hs70KBi9-2eap literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/qwen.png b/docs_new/cards/logos/qwen.png new file mode 100644 index 0000000000000000000000000000000000000000..2958e815e0d9411896886ade6f288ea0ff99c536 GIT binary patch literal 43458 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 literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/stepfun.png b/docs_new/cards/logos/stepfun.png new file mode 100644 index 0000000000000000000000000000000000000000..18403cd1886f9ee20905ffccf2a18daed6b28211 GIT binary patch literal 18467 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 literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/wan.png b/docs_new/cards/logos/wan.png new file mode 100644 index 0000000000000000000000000000000000000000..2958e815e0d9411896886ade6f288ea0ff99c536 GIT binary patch literal 43458 zcmX_H2RzjO|34I^lD;y^Y)JMB*`ZR|5+xz|6OShdy^If0$q9j?6EEgL{$X>Q8Hej23CIj z#^?b5U3~S-7zP4eVmSSw0HtNH0E-kbT~%dJX&>7P@XI-SB@HDIs3Pvt;mh;D?{uC| zj6C(+>^!|*df0-VI@&{DW>zFwgFuDy&mSx4ds7gnF9zF!1LjUq2s6Y;ZI zv7zB%U4Dsc+#`Z82tO5wxDsXi!7N6ZeSmYgjP(%E%bu?HuFj zu5#!a8e3X|?JEnxH!i&NHKKsBe#_+1;JS4BY3mnwj$BXcb`Et_DXpCfyN&7XuBYF)r?>1oTR&ElUcATERDD=|ZJpC&bit0|^y8?z`ZR7cO?yaJekv#C%MShWJ5v>$C%ZU% zaXY57?~kL6{*b{T66y>Do7by9-{wwNzzL)5SyE%Jyn#XdJnP7@uv@tXfv0VfS29_S&{}z`3>@ZHLmy{cbfqclv2C zl9*)bYK-`m6CPOBoSOfKSG?+0E4yEpUgl=_-#-E(*3Jf&l?fp(if=fS)^SiyL4r2p zv!=u(C2O)y&j6LjgI^P`7O}wBS64%GI|kD(le!Z5ao8>7`k`E#!08st`x!7TqgvPL z?}_wZ^1l|-IZUI$MIGCd&ShDEI0OHvZ8|@4t4;^(OgH|rg+DUQbDM8cXe8F)T~#lf zZJ^q$!^y8LyEc+)fFlH;>;ncX_=kZA=B}7CqN?a|TV&M(1bUxS&5c{m^mA?Epfp*^ zJmdZ47c8ocFTaG*55$5+UHS%UR)?XB8-E`d{3f`jp@3>~t6#CjcyxxD=~$mEvDQ4x zb@pd3t1}L3f|=7bWl2?>kifk~#Rv*g>EO94wW44|$=MbW5%8nNriPRv>{=N%Fn9U) zjlWL{>4IhXJszH3xhhwHFy?8Nqi50$qLPr6P5(JcKd=ujGWhR{hW7R-6biY6%`D~F zWME+U`!4#JxVVF9ui5DmW6VAEAJ({m!Rx2?1tg-swY3GXZ^^LKY(*ukMo7BU^)HQ8 z3~U{2?d&?;NJONsKAlip&qUQe-WKwAp z;nf$BSz{mZU}$^l&gn^@%j(isOZo=(BO)&TcXkfO+Tjaj1KXKyK7I78BhAt8Ti@SP z%19nl>UfOD;)^pWvi$b5O5S<2c%!g;1CY=j52X;QcoXcgpY=cR>jB1 z|E0^oTNcS46;|B9nr?vLwf~XE$;!%Vc5iPlW@O}`sElTw#iSNc4DE2@+1-LE&><7A zekh04U~hX$pE?*&G-!D$9v$^Q=L#g2Q(Yq`gfBoX>@PE)&CkylRz8f*VIT79>+Su% za_V(JBF}ObP9NM}0#CO7`;c?dF)?{8lC}=0{QSSHyp^7sdXX8PgeW#Tldo1TKqSMX z=zB(uP2|IpHZZ3r1-H>!J0uI5*7*4PPWr49R(x-3B?B%Buy5LLFO$Nquy&w@<8w-u zKjn3co-SLq>h_>fqz!-uQ8UaqGB9T|T-v1|NsaHi^<|fM^ zz^xEjsj0>$PwIF6vnb-Cq800Fjq3`A+%{5RDNgkplYA-MvVUc^cwo`n#YMo@!RyTF zfSx}3lL|4FIb`=Hy1%R7HkU|KxZeGj|CxybWxWDE6~HE3AJEj$7>OS~lME4kXjl!M zlSUZA$|~gJUwU%Az3cL<;{}@x>-q&pe0{z2|E|mUu>#OIUKLY|?^Mobmt{e7t0nz= zxg;)r@b7W2Tu0F0-o))w`F&1qm;0-=N*;akg$?6I0n-)%^4X1S2LqHhPH!3fI#R{9 z$gH?uBZo4dbavupGxlMF2@_f9)zb~2PoHfZc>fCDW$-)WFA12O3itccqZ&DgGHlZS zEY)Mc&g4O9!R@72*U;<#c?uUNrx)9^K_|YKp%)w=jRWGbeO0XQ!Hzw(aeg88`(UBEDYnab27*?`& z9!ygO&_$?c@juIABzqN#j22wZLH?eZ5_dgSxtrqK*oWHPZe)dgE%X|0kZL@Q7)(&k~vFCn9 z{xvQ1Z}YX&rQ9?{UB2~gWgB z**!HVH8aMQ-cym4l2ZL|-N@-OlwrW&`+uI7)}X|Md*(nU8~)>I9UCX-f2_OzwHPo@ zfIVq<^pmXJ0W6`<-`4==`un~MDH$1_YDofx>B{whSQi!+P8SW62Kl<0RnK0@ z!m>Pt9cecsR~PR4ir6}+{Ab4RaP_K~qMYD_Go=DiqhnvrvrImKUj2{5DkB}mrI9a5 zER&~}K1%dIO-V~h8TSed477%m1HW540RHUkN>urPe$S7;PbHHmPlYhLm|#$ncxk4^ z#I;$qP9=kYX=6<^qmj>+NaYl}ZF#%--OJgA)y>lN_sCDrk-x65tMsce5# zp_^9g+grS2n-!1*c=~Zf&WWCjQ%{vVDENa{+pL)d4d#R1iL0^Hv)75C-$zn!{2liD-EO5o#j1o< zv*Gt7RI^33dkImUYxy`7ZnfCWud$h<<#VNIa-8st-?}_(Grept#HDE+2hh8wl>J`1 zrgU68zdD`@#3HdX(^x@gSN)#ke-w0Z@|Y$;+5ygMS(2PzS93)|qjl0ten`n>$D{b6 zu6<>*Z#rSLulqb_of04_qlsT^2rYF*1|_sNCc|Y5E&xI7&(I)-u4w3-PhS}uFY0LQ z%c3!VGD_XKt32PmM6`8yVpQ;Z8#?}&%V2iB*H?6R1XsujYgctks@`$E4g|1p(HpGG zIT}boKoOb%e?qB@*oI}*s~FOCUpm=R^7tG@hjt4KQu9c z53feyS<%ZPmpl(8i#F}W9RpE!>uB{CTga~LP0GpZUjd)_ArIi|o3WPdO9-OVx4uy& zmw98wX0uo{HkZvvl7JVpV&9#7swG;du~Q^y6!M z;9`37WagdQsk>yviL%w&()58_oG0;si7r`{eEZKtzS3h5h^U`)=hgIx(fJSj+r}m| zReAJtncE+~Fu8n72r*!IFQX?W&@S)8>SIcls9jY2gkXctNyDaBBle}Wzs+S zk&&5MDhz+ry=x3=or4@#q!U_&-zlxQVSgwJ)E!H=9I8*uZ^Y@P4t@@KT|j7#zA@uD zF@r*pzq7~BZ$6A2U5V`)bZIRF9elnz_4NT@XastMO>26}j4>TqerxryfDdc^W@M^0 z1p9PRQ_K7N>&>ZUMV~gD!1TPk$K*$(?S97?%y+tllMw6XqB)$?JN2|Hwkq$PRrmnm`u>YPEk zi7wP1Um8#8>Os3Vjx6GY8@X+BC_s46;Ix65iB`aIT*>!UwqZX5r-BL6;{@d*n(qw$VXM< z14ea4;0Yv;bR=9CA%j@u6yJePqMSn}_6OB8uPj50v98T#LF_}jAke@UApH38qGzC? zv-7!>qM|SmS@(_rN-D(OgEJ@zY!6$=aVJ357#u5;BB7B3q~6~EcS+3?%?(YvTc7`2 zkCDKBl1sG+ShIxi)q<><#(fi^`U?-^;zuf6h|e;TQX-tetv6d5;=7kzioF&;TCrMH z*2!F;>pzO@cD)AN8h*UDe84iWpPG7u0%Yk>>VR5t3{kM?mu3|!xjMFf+@JL!&yScC z`eLlNROlh9nBP7Zdcxi<$SY%Q4-wK>n?)053}SMH_FKnn=R0Tshj~{+HgfgNW{Syx zKTwvj8x9sNFk-q>&lC~%?lxCgnp*FVE8+I^#Gt3ODoCOi);;x}59Ib*=m z$o435+{J}f6Kq_`!ECCUg*K}g~&n%N{?Wk;~PcALK=G-tIQ6;_-k8F>2P1KxJRn~%!<^@2wMcwj8b31D|BXBbr3Znu`&CTG6xw|p2ydbCK*}UL z!k8R@5v+hxHVs_hv(c}u9pK`lNhWz4Lc)qWYPZi9-Y(tBim`%eqiaicES2XPY$l3C zAN8GUb~}m>0)j=Zz}_?oGNXK$!P3$akbIXjynU)|7)UhG^Ya_!&l2J{aA_gBcn)Kd zfC^L;ok03YH_=(h&voe|qeQHM2X|#kc#7JzNS9sc{Je+3c;QC9f>6=1X$u0&p#@Mo zP4NS7HZmhaJxGcIG;S<(2#5@6QtsT+sV|GNIuvG?>)t)M#qJoeI2yx=Fe z)IchJaNZH$R>q5)6zXm(>K$5rBq-U5N-nA)Fq+zOL`#J;s;0;)F6WUb?B_U=`J;)|D4#Mt{1LT?2~ zgL#cBpRMnlue^P4-Xu1?_Xql-Y5JwvfMRAau{gw}*}{-RmAsAlQpD~@j$3V_L^|mB6z^RYlTLQh{%AI)({`QP1w)pDE|~X zsEMcW^yL+mw}yE{?r89T|&A+Yk*Eh7`iKhTgFgt>|Qk=BjKe08W!g9~oqMFl%tn^ZY6 z1}(taodZgXxf>6QVNytC#6Gy>N0#wDbjiq) z7{+Wpky{ zzrBtqAgbofs!;Fxy!;`nPlJ_Cq%%$(AyKy6gFsH8>PLcV>g8jjgzHir{Xw9(Cq5jL z1Di(orKmvymG6;9pO>+MqFtsH{ckb~m)}lbjFoeG5$iq5(Ej+N(`3d{KAjUOpwQo_ z7fhI+s(u11G;?aoyW@d8`o;EpYAO`2eF?Z<496yT7pa#H{Wdc-Opxuw5mJjNnHo|MeJQ_=tGO9WOL!95IxZ*@J0Z-WAK+NKIAk>4g8y}XNuT~k^*QL7T z7bQ}0A@WI6?|xGF2*WN^`p=){4coxtah%U=qpN+o!AVM8zYoFyCAJe3i4=bMwO4CLqxT~vwIcv+b!Nd3q|O!LrzbItNd;8qOw!)NG_ z04k~o!uK6PBCHG(n7Zq?2!lsPLoS&5^^l#iq;7?Vr$Cl2c&>_EwvF(ZEE%Jq0R6rI z7|Hd;9dCaLWV@s8tfZemW;?Udk-~emUd+xvTEOyd9N8|=03fc z3?|yB$~+U=vBq&1LGxSdCYJn;i6@=SrvZDbLn@HEsd5H*I?*oT^R{w_zteZ-0lhX*_X;vo?8KuY~ zv$<4}-6Eguj>&tU7eFp6l6G&#yiR$>_nOh33eBcbf8DI`0zdTDc{5T=h0SO>N%mlz zWp4H3R8_2uB)kfH#kZUH&HlX$9{amUK;xs{fej3vbGNP31PG>CHp)G1W>3!CNn!2o z*ZG&BM>g?_YsbKnp`pD^^ExNY4@e?9;YFjgAj^eelydiJR!S79o!zIB(1`oy&O;Pd zRd9Y0M$8W76z26;Ys($_Uhr$qz@B>^;#h3oql^aiQ|FKZJM{0PrNE`j`qU3QoM(y! zWcZ049UfbS37djD)>NZ)oUC&~zdy7k+`~1?ni{ip=OCZCJ+BN@z@C)WEp9&af5Eh~ z#eT;G?JM{I13YdMUss|^n{tiipdjf9n8aF>hoBued~@%OgI zUmZG5Y{l1g5TZf`Ey^?L+J=9qAh4O443T%WYCF?A!A&bM7K}iyw>Pl(&`f$~3Z{p8 zI}UUhf=O$a41-JotFKi%d%U*XH30GbQBoO5I{K(0YZyai~q@ccB-dtad_&qRWj^}NXD){ z)MZJ#_#GJ#_3ma%QK+%-VwP7tFTB3VP;o|@b!wX}?3c*HWC2+Q&q$fU zK0=-4qY0IMRYDKHz@qq&EW!zIRf>~^{w|(B(Dpc-@j6Zifx_$q0~He3#>Vu*B+af` zJDdmTao5J~%L94QVef;+EI}2o-jUfvR=3^20C}54*spPFpN5wooSxe3i%K&-&J(j; zk<{>b!Zr1LG06hbU?!dTc!#>Seg10%zc_{$kN&JJ-(e7UppiNvRxsQzoqQQ3m^K2D ziLLxpskf6C;BzqUnTm~E&J+6vR3WCz@r7J7ohL^JZbMwOpfKJ9wu6SRXZK!|t{u=%(|Mq()vXAAVIoOe-dWMC~K5P-dE)DSufQ$jaoM(2E$h`U z=bEt>l^YYMSL>p5NeZR*oO>4;aXBF-0k`Kg+zwSKK$q1VY}nG2fu>{rv9mT!6~AHW zp9(V2FNr&I&}sSh?F#cAgM~C*1MN?>b$E)#BC_-?@y54k8f4x@IRj0kLNJ&hJk&-}8LLRJhyPNBLVb)zBH}ImwhUV@e92>&sAN$AWF$ z$pO7J%?a*q3Qx0gkJyN{ar|8$o3HolwHWM+{QFR{v+Shdn&*QN$H! z?1;s1Nyh3qkR|IIB2mIHNY#pKBNCHkU~8ZJ?L83iSnMA*_r_@6&FhAB&y5tq@0Ku> z`IV)!FGAZ_d^{pt8eQ9%e@vVD6F~bf>uvl0| z2F7thIPz>L(9JxpOR3(K456iHgJssnvH2b9+5A%Q{7$MAQXl#hTA0Qjf0L>;g?%`$ z&8jl&$!-xQOvqlE^hf-*?VNM%pcYN7=xbx5e94%XV`-yDi_f9Ux@d!y;yp{V-Q9Gk z@AnA{9o&eaD^dR)n?*~XKi1Jra<1A>C^Ot}wrumwqw1IgwB@$^`k^7fWR?5Ut|Kkw zdU^%F`=_QdfMlB^UsykNB4~fLVc+)~wt0UnOGpK1OqbOg>ayLJ1__FPI8w@>or=_* zUUCxXh41;AXq52qsZ6@wSua!+8SWCTwB=fEzDN_be8)%lk_~?V+pTo-`xZ2z_vD6S z5|NX3{aE#P#NnV+i{tSE1?mya5^-Zp}+(fje2 zD%we5wI!=AXAahBC$GEhB&!AETLd?M%I=kodo)-t#J6-TkqCzyOTr9u{5 zbnErz2X=@jG(q>Ctx|s+#FR8OU=~|R6<>of>H3~O_qXR|(*oD`k4OLLHo zs$tj-nDiXD5ML#QS~CncDt6sAhNMLgtFK;U`sYYX=FJix(-SuVP#CznGoJS6n z@SY8=q?}7_#4xxbx(wxE@ZH#;^K~ZQY;|7eZKQso&<)8{tapp&m{vEp?S&zoIyM(F zO|9LRdv(wdC;PQ^xh|Ukq-P^7-o3@$wDfWl{3$-UEM5;b7G~YW`UfpwEn}Y=wf>=7se&+_sGxZy^MEsXNm7A}xhV@s$t|CGc2=BfO)i}LK;BDADuXpb zcb?uqNK}0&eyHpUl`V-U7C|FR!r`eJUU@?MK=SXhGNCk41DCMa$!S43) z$@;bYsaYH`mj9AOji*-C+^;OytHIP-FDyLvoG8Ky<_A8sm$s%i>SM-FCkJR^myO@~ z&`r03|2=ft!|MLnlyJz(G8}snlRwfg!TD$sY;0~OnIk5w!AeXjYc80Rh4$h`ARM)< z=33POM*$_v{|JcUQiwy7kz3x<6cnebTuybSR^1b)31n;M8A>Euv=Z`3UqsXPbna=;j@)vmjd%{vIJXDPRVdSKDj)30U zY}~$>ZJo7rlg2y*(j^y3yEGW6zHB=NGux}-sC5catZrc&mfrI3VKKhr#bO|=-2C<2 zAHMPjxWtxQs};9C`j;V))UO z8oL0mB`?Hemo{vc%Fr7(c-DTnFF~i^(Fx%*a4C&0RCm&VjHPNFsSXz9PI$ZNVOR0> z>TuV=B}3@PVLOfkDrKE3AHGtL@@@V43a|Z?l|JEF!HH5UfoZ!?swYDGHg=K}WWM5< zkV)WHmSo>`Fi3Evnh?Q9x){FejpPv$uf%RW<5l}8n@T{imi8c+`*$MaX4Fq9_*@b? zseht7I<$R?HF1eo6K(@}7ahiez3Ee&zlpbmWq5 zxecfN?Yq2)Pq94-SG{738n2*S(;kgHwz)0M&u`nrr)dud(-*5u)zPez0tXfRy&w_& zxHqvvNSgr)H);AV#?%$h?mh{d+G}H^QFa0gnA5yLW{HTAL6TmzyW&n*zhcUANFIJX@hHJyGY1VJ4FjrzMN-HrkA}*!B z=I*NA_jO`MLSjTM>2^FG*>A<{*AUL>YP#4gM_S7Ci8{;jE+0H0&PSS|JaPS#j~+-^ zu0{wDmJ9izBLUI`bf}?U3*CNmm(`@5zAgPq11>ky*mol;U?q6C$=oVb3x$YZX8=o1 z2WV=RBs&+ib6^&vom4~)luq-e+(NOc4fL$UA?u6SB7qVHP^%_p150Bw-yvx0Gxeoz z`6bj<3CJu>k6K0Swi)f&1wPGbEKd)cU3?AJY)l2+-{8#|OVvfKFM71=*0wW`K)=j4 zr4dHc1zt9-!JoT&E1OHaatc-Csn_`!xiE>#6MP;|27k9Yy193+z#t~gzxH^{g$L5% zsxyO-+}40pPPpFeA_lnoZ;Wp`&uauutlZTV7h{|CnR`W4|WoB8R=C$uz zv|*}K;xIt-?MpqGp7U@$-y51Z{g1by1z#L&g;ndONy`J{TDgcG-Hy!3eq3e zWmXzqGrdRH{G>kdukcuJH~dp(3L{~S$0DeGB0T!>odV&2mnBm^xQstZ+iA%Ii@W(( z{&*e^mwqfOu+*h_l^bGV!4YlFL+vlx>MTt1YGj{XC0|=wccHVw&y~e|hBFxx)1(iG zFbCAmFZ{cibS{kiHTpHLdv~u_>oQ!gp~=9t?X%f*RFk&@e9k#>%7DOa-gLk5VX(AWO8j9>bQVZDP$@( z5*5O+?cBX_p0j?zbg4SZ-##Kx1E>EjCDhMtDH3}8TsQ}YB;mDHAFB?CcCR+m{??}- z@1Gzs$3@|OMncEwCs6Yes)Vfu(E`E3DR%|7EGo;{QdUMz(cGV~et%GN!yIiB<%e!w6xhX+V0vaMeM7_vVh2 zZSbWf`P+OLmfGp~53cL<_OS+CmZ2yT&o@83 z=)@(>)jKPMe+q9#PWTl33b=SKopU6%xz%YX)Z!PW27u z)L(gnorPidMikY>EpLF@19A$=~?`A)RGC&8Z8x$ADj6;v#1;4&{!Aq68dN~z*FEZ zqtD*E2O+fcb|>?gtduP4)Ww3-)5FgfyyszulFYJGJQ5V*mOu*4sdrv9njf&pMFZ^u0)U&0I zH<|NERWUGJgEZ=to=ooV`)(zDD>J*?mx`qUA&U7_2zVen7JkV-AOj$ATYv6uc?D@K zNgf-~1x}iKtgdJ=xLBNQD9TqHQ`VqPArl3rq{7Vo&k?TJ^Pq8e>ulKvT{Y^7t$|5XUiiu%%oVKz__41RfF(Xx}c)D^-zz7!jJ zbwUr&c73Av+$rpTD&Gx(kes;)8dnnXKhdakg{Iu@&8tW-G)F|41x@=>h^QL|ZEM!g z*95t_exwy`bJLW7j`VFR{#DwKWmmzU zYxpq(GbgJ9w=%kAcSUcfr>Cb*TwWT;k2Hue_drnsO7P ziUb6&v})u!QaT;7CElb3lurRb$_0?+#@k@Y^A!LX{#+GM zMwE!jUb3P|^)*hb(A7v=D#G7l^~9Gb(t~6T3kr5|Cw^M6FM`^wqsNDtPed+(qWGe7 zuE-2+1K4~W;M#Z{r*qu(a^I^@s-<*s!}$T|ZwE7ep`dXe$r)xeH}=-HKufprWYxFM z4S=SxK|d%?Jr_x?N<#h&6=*4YDX*iH6m}Cg)!rc{BpLS6==*q;0`^D4jlIKVEH?-d z%P-sl9<7PV*1bT`o32pc2HV_=g< zBhtRFs~vIjC6$5{EdCzQ$T#wTX_qNN1FdsSQ(k#p4GInyP7pBnnUEUt#N?v(-%U(< z(tdwhqbYya`yjpL9*7Co&K!s#^)CHXmydu+oBB;%JTSD-0=f>G9|Gl3m!TQq29E&* zQR|)SHtl()vT#iHNBINxjYm#mv>Bci8R&snl)uj&{-)nM zYKa%e++MOE6~pL~Bk~$Af-IMLiy{dh=Yd&~6$H?D4!{2(q~WJ^Z9CnwzkV^8H2;w= z1!AF9me>Wi(KS~Fq5Jl_Y14F_`_Y=}rU12t&^_hXld z4FDn{(Cv8cJSdcYU!htfXVn64H_378B~*68#sccGJ?^Mg%VLFFjTLMK9r;@15|+g< zTf2PvA!I(&&Bp;hX@Q6us97`5+}?sIR$PLWxHmLdWnGkBtO^A>z3TbA*Ke4Byd6&Q zRp5Mk&5Sfz$xV2JL^3C8N!#u|RMwzINHpot8^vKU+Xu5Yhc80lh>NXXw&E;|`7P@9 z*YqbjA0B9#1TIO3e?XoOrnmzP%UspFFM<6Pk}h+_Hm%70CWl*6o{!R93mG0OJxuP4 zIN9{1n4Ke|nT=7_bHGW4LD+jS>4JgE^COc=;Y40sW;uYZqb_o#eIkAzGx704lUC+@! zLG!OUxusGNkWX+NEu48Bz+48YN`6IZ+sGXSAb{7dlpW{>tXPXQCURA+kpBHNC7A}c zwoi}k(6qJ3OCV`OMg@+E=G=-D4!VLZkg(HaKw1>}a}Sc$_)QW03duh|eKuJunsoda8=dnXYow3yAcvvQh?tjsTEy zWOtfq5khmqtgHYv_k6MK9v#?m{GnpWuKr1iTI?3dD9{WcQ@ZY0yD=6Nhyneg<=(4_ zY%|bsxFz1`-~JC!$e;c5$MZ-H=o%*r7!O9@+yFw6?6K3>w!xKBP5v6xcv<&B=7*FC z603cYYkO~gxYw#Zv5bIsYtd40Z?8QU%osB9KtpS9tH3o(cV4_NFb%lrm(vo2mMXbQ z9)M}1<0(&l*IP)?bi@9jKbtG7l*DvI-j?x1FE~t_@tFndIEJuUhU%q#&{+37-#VGqrK`L=IctJ+NSbxn-Rj0n_TQuP1MPRS+vv!HX;SvW$^MItS$ z;eD$7?>TwE;-swxBY@EmpcYygdeu>Zo~Klp8GkNo@v^KaSMQgXdjC49aUtn6k&_7Q zYyt5t`j1V8us3f99UO0!t3j+`Y0%l*2#WX3hsB}kIaI6m8w`elYNI8#Ni-l9Mkl*W zxvNkSSy_G<40hT&p-|fa5KAG6J9+2)qdVs?!it3KrKf(ej(4WpC@l5!d>rBd=TB(@8V>pfFTB_3CH`;Fdoy|FQe>8+8?UKM5#ajECf@aq^V;9qCAyp>bXLD}Mhrk9eT_ z-7~yKC)~^B3uh9ddojCp4;01(z4yP*xLZ$it;$kzIp=R&^uR~}tv`{QlOL^x`Vh>K2b~V{fbHmHg|_-hRVx17YfdAj@&99i((t=Lc@pvayg;1HE*KML>o zmL~QR|MbOv{=d+5&DW)!)Hs^@ruBzmUI51k*-VeNO3TAW1LZp52%Dx9CnoXW190`6kEqOddJ9G#~x^MxpW8E zN#NggOD+!1r`HabsD<~U1Dh^zTIWxvx{fc(1imJzmHu;on_#^jt$%%PYo>Xv2LP72 zlQusEx$BxA>>n+BUt%zv;XYXwb}h9C-{lJvtqI!i%L0Pz-}*s!c1nblf&2{J0=_z& zRSZmI@q$H8#~f0zRJZ=4sN6vq}qOmXYi|>zvSCeY0%a6aQT+82( zp3BZ7cYbgnlQHV^RG=@(jcnoj^IUZ0KxIB1!1a3U-zxO+r!Ag*maUk6?~>i-6qBJl z(nH(Sq*yGF@6q>(+4>m84_Xij6Qr5euCSh%LWP%w-N8#!rL(MD$g~G(|Y1z|{Hmys2u-kM)1A zH>O&#Pi2~)$J{CisPZKf^4pgPUmhsb0%*MP&$E@lF!yN(K~C;gc8u|){%-1ErL=&E zu_(Nyz*feno4e!Q;WhSrZ-xi8dlNF2-yIcUw>aznn4Uta#Q5$3P5EL&($I{@6BdFx zg&VA$k;2g|1Cy~)W8R6KIa0EtyNus-WxPxX=%5=8cs^MdU}*D%{KDOI!&`k0%`rR1 z)$=^nUZY<`wTYCnhDE>jRL-CN`bRvuYYUJNj$Y-6jcck)j{cu7MzEpX+vkFtl1jgK_F6DkUw*2+mof^=C_AAhZkC+l^%3k-vuKYr74KdB+ zj>t)`DYqHh9yTn2eKtX7^Uz{kFY`D$B2!V{{JgE`K+l-<9JAKFlwzBsS7oD7aoxi! z7oN|G7*ZFPZsmpkyq>TM#R(MFH8uZy{ABs)?qDaI>=DOD*BVJhizAnRS(4Ik+w*4n zAN4z1oLu)2xG=OUFl}AC@9WR4oRoChcJ;Qiw;!?)n?`;W2Z~@EnejyeBqbWf986O* zYb3wMTyBU#GRLA`d0KAPpWxe3qe4SJp<{Wk__Io`&VEOF#aU+%oUhlTsa+v0ESD= zL7=PMgutx}qFcBZ*B+B?PgbAQzm8vL8hD{qmCJ;)>|~t3jSuP~7Jqfg`F3!!s+pS3 ziX;wsCg#ZhXps}0uCeBba#>-bd@^?NA9!$DGH#*dicPnGgOu!Am!+0>?af*qH5@GJ83q_W?c_ay8&7j}r4p_CtHiP2)MZ(#CO1lNo37gteKB?Q zH&O!C4+Ete15p3R)LB0?^~YTt3q%PO5NQlVT3T8JMd|KP5Re#1j1C2*L#fdv9ivBY zD8lH50V9M-4w%FkY{YZ z>U_<>-rCi$I>qB^yk~b9Xor*o&#=LWf{uXb`4AePYJ2r z6l7ssT(;n_DM}My$W(q2cGyIBSYCzQtrE2TX)0|gjQN0m`M85;Dj6Qz6QXxjJfpF2 zzzvZ4_HgbHUMWCx$=#pFQFLf$fd4fH zZ1eGl;ET|bf8wf|ktVYuA3W#DV8PPtJa7s@1-N(oeC{&=H|vlE&%Iw#bhBmNpQfKr z?{qW1t4UQ^!Nd@?f=WJ_TUkBvFK6cnnX&c9J&w1%ujCJSI#e4wDf7TsiO~yR+)vPS z_5H4DTj1W2{kcu~a|_r6OnAf-!C3YBW&`-PwX;Ow<&p)o^hX^<&&6lsgp--dhm)L} z|9F*19t!7QuI&g|X|o-bQ#nhfh*{)YNUx#kes@=V5$DMO=m;NHFIpRO=zK~wPJx8Y^$*N zZ}W5wHrTb^yJP@sOp-+wRAqP!x2p9~xgANyXwhgijsOqHOwYbc8(u!m5(|V}bN8hW zgG*Fo@e+AF`qhq;Wkg+y`pKDNDQ>_H!vEf3IAG-+&yN)ACk|@5SgNxA{jSG{sE_Q7 zPRNcZ7f$+z53JtPzLd7D;u&$2SV$6SlsrGABgE;4mh4KCWt3GB#648qicMFyuhtBT z1aiHEtmG&q-v(91HY}p75?I>;UUwhI>8Q?5XYve!Ow5#Zg%bDl>@%QMw z&4}&`gOK%rtWZ*ect7Um+L!7Ftn_^=Z%FAeB(JG?G@N*uFEf?cfMT1P(>6Ikoa|TKBzt>r^V8w_k9f`C zK0rwtK0j*z@n}sw(A(UJ`${qQdL&i~oWqBO3`+B?N7^V)LN(G#d$m^w7BnPJNIl{a z#0INH5gPs;G{eKGQQ~bXr>#lGjQv zt9B!fguw*_tm@k4f{)$Jp$NS29~vVqHsjJ=#L0LC)gaS5W{%`MYNN%&6fCxk9QaXT zF7%VfN@%YLcehW#AVZSEWGZ=FWwGfOHqt*ov>!^}vu5!W-_>RLQbyK;q_mpl*NwBW zxKXqTwl;dSm=i#S`Jmvn;r%|TZ8=%5R8jvSIZ>h`Rx-dUG+6XdOyLPqm^T6>;iCGj z{pdl@0Ac2>(X~RTk8*MSG{bQ3isWZ0!Hu-==@iaZ&FgamQvN5ORAW2+aqYM!3wTgx zb$1E7PF9li#>AC@TD+5FuK{EckXo|VPWFch7n7FE^mi4F-Wnv%$SR&XUpW>8`WsUb z*{(lcQY$tIb_eSWjFo1{yFT>Rc4;iV(==MF(Ck&ftgIn`)`&Y7@^5H#zdQ9iXV;Ru z_D>ta@@|mE;GawhEEB2!=uVN( zF0zo@Stkjb${oKy&N>8aDS7wLooE44bel%lV@=GDV5+K?JsM!@tnTSc^WF6QVAFrW zHhGJDhRG}z=Ljo|6|h(|g|n2DB#hco3(pw#s&x%imeu)yMhY15jCHFFzsxfjPw{`t09FOF@AP!&3PJ+8$Lb3*gpA1nS>xMhY^pzI242#a@}H9{^}5L zP|g&jdA2$1dIwOPdF)o*isYSwg0lGq$hOG(jbbhmgHOOCrVy5Le(N!BIf}~1X~l&V zRnF~GMOz{0qDRnF;#cs~ktQ^>fn&eBY(_=<6^S zLcJy=MNWD#B)*9!saCnlHl3VG;yxd2AM$jz7B)v@J@ZfMB0U_`O@fWHP5>Z;$Hi@b zBSjwFmtm<}Sc?3@`?%{lsD@XFx&teo`MGVCS#jhZ6$W%44E8{RJ?SCjS`U@|mvMy2IS+FOC1J9hU-qv=&AZ2AZa4Bp|!CEo@Cfb{7LF5?X*RZ;&| z`_t_n4qZ`^#YP@0>ET<#90K4U@gKx>uYA&B5Us!9ZYeDM{sbHl-iF`giq1RniJnM( zLr0!0j?{=k$xk(Zl_(8))?h0dt_|&+G;7}KTueUxoE+rx25^sWMQ4vJ)Y`U4(Kv@b zPXq~w)DA&~R%^D2UA<)7fob!H!e)-kNq%2S)j>Br4LatsKdn1_aE|MOQ*UjbAGVVE zzI|zq&)9PQW<^?W50+>n*QpAcU)pS)3$S{T;`LwVyc#n&G*pE6BAgqW1HSHj=`BUM z+FkU(yP=6vhRh-8%-Acs-V(CLHU-=FgI=I+3Hfd;I6(64jh|Z-XGFA!YFyQ2Q_)7p zQ&xkxmTh)W?G(=o2k38d^P#qGXdtLd^HlHTnm9v0?}vt}HhN?+LZM6Y<(ACPt7xwV zIJKlVX=L&!(x3xTPSu-(*dO{j)Hx9zJif_csEDJreN7{MMCon~cIR!UEjve5W?dwK zjjsYj3O?tTxYN``@Ud?1?!*NBN;i-Q-Aw3unDfMMLD%BW?CT{vQkB-F6rF-i&*P8G z99SC>)WHb@+og@Lm+#v5jG>hxAFL3&@=OeQe~)bKON&%C!PU0&yrk0KTOgM5*EHPQ zr&3M&OpDLL#L24!A+p7Rd{7r#E$oK#B{G?zqaz^XF;(%q7!O^odbQO}F1{H;6COjS%WTd$egeA(R7`b68N}tDxb4%qAF)zV;2OobJx{4^Z3`dt#}&5jXb%X7Qg4-}?{C z{(aey-L50|?=mhoZJKf4@0TKf=XjJvNbd>*=$GSif(YPnW&6l~W?WttbJ7#`gc>>N36S2Vi?WCet z-*V27ji8<8Q1cbBE3#srf* zpMwTAFHH9cR)FI-Um^sq2O``xL(j0c(u_@G?D<=FqTrRCRtC_DXzTthN3F0LoQs@- zlh&AU^OjPc;)K?F{Vnef%-?B7akfD4vPh(20nX0NAY1<~`(GX&B}maqWMQYUQn~7< zK`-@(CCek`_HXFa{ar(xc-YP2+G!*^Q)lv$nJFNF>)D4Z5xB*Zg;8K*l~Kp9Z%r*R?&pG2Qjn5Jo@TviW<>?sz&p+<@3D&YcCb2TOQY1aDPDosT)q z`KEzX-s`nghL|Ld8d&5>lcJouR`ndo8s_1if8Fg*2i@&5tE6@uN8c3V#G77eLkw_v z)GR^H{XZI(+tlg%;=(0khm%;{^zT(=A%2!uWqcnFcByABz0?7`cdJ*09N9*orVYI2 z&j34R8J$+3QU$%S650Ol88o2y^FZdyfbF*Ol zP*<%bcqg+jF}*Y(a|rNG7WZ?L%^98rq%fJ)q?wA^&8%Q_Xj66w+!Q0k`f#bkO@Dmb z4?+nd?9tT%z_M=X{L55>W0Jsj<3$P(3Tb*7w%QnsGrhBlJ77Fdo_a42w z01WaPS@qFow+LW3ZYx)b7{9gyk2EgrX+%bfEa4^BhrRx8bKKdK*!X6euN=exzf@ z48y3wfbHA174&^2Qrc~&Ti|5}ttTQVVfEObfdsI)J+ri*rcBZr^ThNlYsrRs#kB1< zp=qv=z+1JW{#sBM;Dey?@qwdsJ}!MhWpE&891b)vGBKG;k*8cTmg&* zVVzM*B9u81F7@H1pVDGmp-+B3?&?>gnRg7^r5=oU40@by;~!+Z-AvBQ=Y#H3C(lKz z&CKY7b^@@R=tosR?mGZmSao+sCo2dmVtddE*a{vpmdAj@471LF1a#5Exb&olaa36! zGH8DZ@23>|Iv9DvI^Du=c=4-o@{A;wO_k;R6S6hMsJ0K?4KQh_PI~^V);un=8XXj-hj4i!MTzyFQRy3}o8C}miYQHyY`RbJ!Adt5AcD2?doEjyI8MQXAJ-+ECtRO;C*_Dayy|-<+hb zg>j2L(HIziv@*Xk_P*Wk>=l+wT5$cUA3n2AZKZhVe7kP~w>G~R0#;w4jRmgOFKtxOqHK+$ zcB}C7aN{?&?%>>&yXyUiZAC75lg>r5-p>w?sh9Tdp-bDn%ULX`M{PMQGeV>@2EDvY z;`jbOmv#GQwX=Hlw+gvb?66{O{tajR$mjTr?SV5RaAD;R{(!a7B#KXR z&8(R5!mp4tX~YOKp!s?t#h%c)ScT@VrM06051K^TKQohy7=^%n#Klsu^!%#2mR9S( zMpP23mbyA1iLc#ci-+Lq3gDKK?wg(ix9QfCerm`3==*CVBdeDz0)&Q}7uZ%vg-`4S zX}1D#%$7yYYL={5eoE{~u1t=>p**!o`YxHS^)`x=_q14gW)mqa1yoVvZzxHoX!TY} z0@tL{Velq~+{BU9oV~X0LFvS-P_<>E=iw?W;sD}Gcr?+8C!DXai8Q(yj~}u6{|W*p zmT*eEzo~ZwFu4F%0edzeQ*)@sp@7I>@MGbuhXB$DkeR6vc=Yfs9!%=t75IiGYZb$# z&w5urwzq6=mA$+L@lKsW5lHY`Qf3~Qz`d&T6D20DD!;+(<|HGCO`~U;Gi#&6&OhD1 zH$j|e{!wnOgWk~WiGl?~NyQnHbICJg64hvfReEJz9d)s_4%=U3YsT#!Q$HS0U1_k~ zPTUo%#+{(!32r!_k_TX7LP3afds7N|A~a;|P=L6|#KN+F5&jic!eTBEgiFA(QMQhF zL-%=EtMZ%TRB;QTx-eVv0X5;rb>ZI2QnXK^z)-6kw+YdtY9p-om*6cgY1Kpn3-I z(^jR0OU&iTyaXiOr4@U&RM#Y~w62eRL->Vzx%{pTnbV)7toS-j7wZOBZz&n>h~_X? zCiEG#+f}tF>Z`E4N&l#3|6W5GrvT;PD1t+0*@wa^lQu{LI6Juyz@w0u`1L)#otuAlrk#k@-56nN(WK1XGP;NjOTbN4V{@L9*>tg z+U8q>A@i;*^Ii|$E}$AEf)!E_=VQ)M9j%yFkC~Gfk=tJv3N2$LVGI<<-*Z|vU79h6 zvA~`nmD(bH|3D2&0~cy}8w-4KMT+6?E7mm0IzFAuVrd4)kJk4lQ*b;ev9<`x+yhYS z*yVVOKZ1*~H5j&c%sGU1k_<4wO1*oL-9!-F@Y)wyi778Y4`v;go!KQZ&4vgyTAVCR z{;VCIadSoU^m}A0=s;9yM;SOw%xvxPy)l`-5=6kts5KcteEb_Jyz^vy#mCW66`(&}m`OYMt>DU88PZSgdc1l-%>~{J4ZMpu7tbdkuP)zzTzoUg!kTN@PQLz!2C+=>~xdq*|J`a zHsm#}PHOZs5!`hYT}M&kqhoONR+;dpK^)RYH80ZE0_Q~9X`JU*^7vbqGO3a8IC-DL z`K#2cnr z-I1?lFKo!xCWNnIQ3_8JsPm=uOKao{N2X*7$+e|#V)b4b$yo;L?REQmH8!&h7)oZ7 zPIie-5x-J55a)Y@$vfiLbdQy1)%I&ugRo8a1~QHdGk;Gv;I>*(EF~3Y{=stDULSy= zb*Z)Wa6!s<8ylZ+kqa0Dlp~nVx;rcIUO)jk@2YbEy#=TVsQzJDZTQi#|9e2EL~oVR zB}!=U@Y!FUmTq!icwgJbdw++TCLmLC5+4Wlgd%deOl3SwW!Sit+iLf{kEWuv%Q~_GztN|S?(R5)yB6)ejV<*xu~HRW)&kfW{Nr6 z{g)pIO6`@{f(;L0=%6RA0sD0;hv*<}Z#j8vvKC^7HZ#1OFfSOn~A z<12(S5^p5tw#?^3J!+q*TFmO%Dn~JjM+$9SZ01-2>3S~ZT9z5aHE@&2h$F^j5{g3K z>wh8Fu{sX-JzgN@{9R+fIg3s&boFqp^-o4}F&z0~!6_@~ABd87jRTXJH+vAy?$TeNH!?7x&Ff@0z;cXU42ysoJ} zY+c(CPy%m5>{iUYT}+=4OwC^rH88D&4As!=j;GmqyPM#cs$k#cpQThT!)a_l(!8fI zcgBU6Ey1JtN*%7*N{(-TpiK_Oz_;hK&cOG0vq%SJ)d(07&;@4<x^OU)+_FE&yK z1IUaRQ^Cn0PuS#DN1nVAq#zo!e(Z<|yuV*u2gLQNJ*x}5e==}bFjCwqwq4mzvYrD6 zk(%yt9Nvg8#aTURqG$Nl4c-sk{}~ans5(<850!rH^}x2Yo{#*BcShy0#HT~v$ed6w zqm#F+gkQz!ryTfkf4z$^2lQ-3+7M`^pql15$4zcG$gac<3Tz zS)-Hw0O4yFejk910wfWDF|Z@&wj5mz8!~Ln^h-SGu5}D3mv03_;)X5zvt#oqwxc(|>g-}^5&hUt5;P^T-j~V3)|43M z1&N^^iI;c{_g)rhJBV07kCJvsq80h+Z}7&?$iAPHgrh7U;7%L2KAd9C;b^Fq_Na~ z4JiFfy-rcWIsLcWqK4X_57anMX;w%T#pSa2`H#7H|YT@10T9D|4=mP9PUJ z{94(*QV4roH(g{}I=@k3>kuEfq$}ktEf%rI`>aM$gIx_fiFK}^Di1w(Bm2ea#$Tu{FLpYN0waW7jm@-Dc;%!+|~eXb~!f%=o0 zyf~pN6CypvoR-tNtV@r$ZWOZQuA(jHt;l->HW0_1xbitIXHVcHnWoqtz^m7NkO4dCdr~kVBu3D5`mE!Bg(${!|pQJn@+&McTZI zugM3i1PoA7bjQGCNupy$ET|M(5)9}~;!y;A*Jg^Xmim!vCkcKns|!8C8Pc&-gn_Ow-v z?D_=laEtKLWSsFx74=P|*WJ*xU4O*I)kVm>x*nHkU^185Tq&4ie61FUN`zAxBxYG~ zzm#*S6os{Lw@sR8?f+R8S93aAW-~Rq^_$NPY5luo2fiH>;|Bp}tyyoy?XH7&RD!1k zJ~uKGBrM3a10ZqWC)DsP+?t7cZS1Ct50bCpVSjVKhxy2iQU-Yh`;HZG z`^4G|j%!9I3T>b{ebwvbY4zdu8mTN-X5b!j(r<-!6tI~a*H{!Uk-^fAw}IuNh?-QG$^^}Z%S#AYx z&P$8I8x*yxMN)udqo^+z8)r1kWpPL$ynVwf(CBI#XoRJEFl@I@iJ@ryI9%wQvvAJ9 zIc+>Y(vRW@9s?%HPr1stE@H<>L49iOui99Qv8c&t`H_ICk{D3h%OSm+4gC|a@elyR z){<8}5u2+ib^7+=Rs&j7Sp<@#{~x^~Yz4?Y@p;b$8M_Ew^`Z$W zI$W?F0d6xS*fYyFxQq8vP8qrK7!PfZR?zfY?Q20RBD-0s!f(od%SFqPgZEx3{AS?( za*%?bP=J|A!{f82A8wJDcBS4P`f((Ltp6*i8`1r=U8hxnLYKuMg9~%g z+ovz=ZNBea38so@)38rFe(E2T)yPqShxIvXA)b2;I(MV-ZH+lgHXa2#P=i;^(YoT_-_;zelD{jv5Y(CD<~S$Z})pLB!bl$TzV(q#UsP3O$%Cg zpvC6x&SQ_dq~fz#?R8XLS50;*whb6U3lim|tHDJT3u)x`hwCI{1=_XN$l&_!?PGgF zEcE%_bfz5_nX-($6c^CH`y=Lew?MLWEOKRB7iWz zExy=YvMGnzf0H1%*xK{n9#2xqX*1!hVq$ z;)UA?HLl0eN@s*C6)2V@m*sK8JeX)?spSGU>FPAU!+KQ}7 z*c1UX!|d##?`mX(vTQ^# zc3A~($vi$-Qne85(?MNMI#VgR&iz|*hc5>Yq}@(R#<{OY)ztaL)Jf-Xa%V|wz0y_$ zwz_PYm8)`V>K;$<3o(oP@Bs%VXd|XsU3{Gcl44aPP^(a_4qe?=Hto#yoa^c8I z=;7gWj_=#}+_Kr;o`2)Lmee-qB{F9P;3v8C>nj!LTlx#Ye)sP4{u&Toy;ECvfy%HP z3F<%CI}0aOwO1!bi&?opr-Uso6a~q4Uv+1h3%DoypH2mUigEg7{9V{q>RegmjP7Hn-l@={$? zkdUv30Az_!fh{QJZ(Fdrq1{htHd<`dlw3L3xAQUv$`H0FNx+kY#LU5=h4?srZ}x+W zOB_%PwDst|C`-`>rSmPGE{Zd|3g@^xXxf>VuOw{2(KMZJWaR3wlpDe#f4dW! zQvBvIUhkcXH~Kq0#}x42^dK9*W3;N?5NjN=3xF}=lt-NW6Wa%%7V4B-i)psB^xbeU z1zEh^{ZtEtOQOlD^@R5RYG~lu2o%>~EisrenRSC*gPlKEGd`YRJ7a4lRVw-OrPP;3 zG{4Gh?tS}?zShoHfFIU%-WL%Q_02(UM?nF;#-7y|{d33e_;mm9`~R`Z?(pzlTc%79 z$l6v`HK)3bK+`c$6O;mfp`m zQtwGyV+FP^Z1#3V?AiL~uh{wSUM9P1BBwFT;GItPvwQ&iD?swQX%ZXBCA`Qd++xck zS9j6;t$FS^+FP1(RR%ruE?&|^fF}eXA^*m{?d|`HL#Vv!brT8*Q8!34dZTD6nOlzX zAN|+L>}q^&b4(H%EOLg+9qU{z&+3^X*h@9$>(vS_Ty2x;tYROBW-lmh#+}d=Eab_P zulUM|a!tKpG8MSiKi{Qz-L7}&a!1^_COUEG-KKCoEoPXO?9cZbGc(Q26w;p+1(yV_ z^y%LIK#z{Z*lN6STl?;yaU1^`G42a{)=_Ej7#U+Ul+aKEy74yS>qeQQHUl6b3TOVX z4zN}aT4~TrK#Hz4Nsxa6KPJ5F1V;Ljy1MP@8DrDdZ|(u!r><#}48n!e#Da)<<6(M( z(m52k8;nIpTK!vZiT2lo77!eX%}zr8$iUX2Ve2NQqK!NtR=;KZj%vHswqHUE&=Y{T z?A}Gxv8w^rHxzUqAi0%2(0eqq0ClZ*V)THoCM6ccl=G=RO8&ZfOXFpyaL=5sS(bpa z_veWGaFlS}tP6`qiTZpON0aw&W@Uj=1Tm!XBdK7V!2Es7`Pp~v0(m@I(|)1xK`hS8 z_l=)1L6zX8<-D;)Gf}odQA)?>t-0=uUh<~fE>r!<$l{Ci&*lUE+X0t}r1SJsnB5>V z(4sc{c?`&=-$nVJW3BLO0Sv9P&wB`ylG44jAHArYV!&A~R`H?(B<)jkY;I>-;0*7G z2&ds^S1WC7G_o-FaXe~JFL!-!lT`{dca$4&IQ~QY(W+5!U|LJERpr|03Hu)45%`wZ z+9t|a4H<-IS)shg&uzcWczO=SYp`Xb(Kl@a_GRQlC!x237vW%evr>q++18AHn6$tX7n1A}pG;%%82`RP0jc&lT+rK^@zsbKXwVvxA+sbWF+0XZ-fpp(dwx;= z$$*sF!zX0Mtia3h*wdO{3NU~dUdWCJ0M^Qe8@q`xvGPK;!}bHavC=(wsps2C=XY%` z$>b2*Ul0FL`hE>kKVF<_*b6u2-qGVwqH^y0Q^X&B$oug-y=R8H8Ou5xH^2B@$NePw zFll$U<^TlvzeWJ2C7*nYrh7A#`gPzg`z?q(?c79A?O07i&#SWoBDd@!ms?E>VR>Igw-$P9p* zmXsv6)DZ;~;Bf!XVH!hHX5AGS(_%G2P=}eOPJYJmgm7hFTx7gn{xtqTxJ%s}=jIQl zw*+-%bZVXlVTz=V8-tI%FXn{_K1-%EDA8|d24g99B4v+jvC*5KF%GX_gSTzUcprJO z!XOXmu>BqN0qWigtH#o{WcjMu(G}GPZMe-uWle!o6y>1aM0Q?{5dF*)bA3yHI%ix_!imIwTRW6QHUwK8n7jyU2&Q(-@TUEL) zBjl6*rui4)my~wQ6eh}O-)Yy|70+1s3v7fhX)Z+F0F8~dEZa5%OTZYw&c4QWdeovg zaUOt4w59*zkT5_{%xZedgf?_d^JN)OE&hUOBI&a%LC+ACE7?3rwfXE4pLK?ioJoiC>=xuM|-)O2LB z>0hWo$uZOh-M+Kgu)ouQEhYShZ8rd=Xq-%tRd6=BJU5q7l~z-~8`|EFInr&Jz&1$d zy?U6;RsPms%ZAZWHyK(^=C^c*1Mw#T-XZx_sLLY)$#{8I$MF_J_h?)QpS8V>>mn_2 z@ktoCWnvBs0PHw^z-AWgXT^?1^fq7ifl3J0ae?hL-stCM(m%b{KKdOWWLlUIT>B39 zNuo*2IY5a5z+^GMuT)-$sJ}oO#Ch*hxB`V$Mh5ew$ANKEGbNVuV*0ajb=Yb3Dy`2Y zlw4VGAhkpZ8Ve5+CK3EdzHYNsS$-e#*7N7RiXVwX)P@Jo-~VM+rncxA3fuDTiz%uZ zkw>uYnMABwf5yF&B-=3?PIlE1##L!P-Q;3qT-QC!7HHJSunuc#j zzB?Afl0@&>(vs9P&{X<*)*Cm8EgUfCekT6T)#X56;;TqJ;Qy^>WE=Oiydvb}GG`q8 zj&yy0sECk7V;)Fia}+&a$ZWc`&rXN;S!?-OgrjuF67&Y9iEw06#*UYkSB>&KBa&V% z0fC1iF;OoI^h@hfC9S)w){&@7t68&}At;VuY#_^Q{9yMW@7hZs`b`1G@| z3ojrZWZ)O_b?E4qMBhKTOA!mU3(EdE{rA1-sLI3fSIcP&51t9er`2j!my3AViB8rc zN^0wWOmI4u0GfU$kt34nA>XQ}(r$aNwTPs`154?;0YYY8j|VMwWnoJuE_wc!CYOZ$ zm;%qB-!{ntf#{NWihUo>br$efJWDD+U~g>_u}cNOMP&c4V3Sz&0vNkfknaFU3zBj^ zHu2fiq}q-3mP^HY)XsN@?#&FJKt-n{D$9%Zg-uL!E-AByXTWfU1LsA@ws=2Fwv1VX z2P{(4oLeEhlAb*Ir&?>()3`&?oLNqvqhC%wT`E%&lCyOWZSQ)0J}8XvjE-yXO(<)y zIG#?xw&i3d6+2AqK4S>DI}-?gYG-2gd|?YU=eTfY8}1V5Uee+VKy7+GvRi=$6|cBw zVO|%VMM8vIBN9g4-O}8Ew-2p%8^{rCPdLg4wAQLmqec2$j7J~W%+ivi3pc^%Q`ygT zU*2BLE2`HQU*I`3bA51?W%I~c(xg3mlhaI|B6+a?r@_#Am+g-!PR9>tJJEyFGr1qe zlS0SqVSXzzT+496>D$H7+79lR>IFNG2agcct+>1)uNPi0z4EQ-=Pl=XyX_S&T^w{9 zCl#tRLl;W{nZ*mn!OO~w7nJ`Ir%YN7+^l~|x+=jQ*_BT`du5+L=vOE)9W$9Mk!T{( zx!VN<@Wk$NA@UWb*R+UsELl&x88u4u|6wx&_X4^479jK4cn_DHk0ie@2{z2ia%p`aB=|k(w51Cr0i$x#d|lt@dF)17-I551 z`dMnaOuB4tWN$tBa7;SujxCFL#%V+eCyKQE=#Bg>SDK>cGEs!>U6`@rmSMV#p+4?h zbm)Scq%>j&Y>oc$9Z6XeD6FURJePbS;`wxtXjAU0x~mzh#yD)}0rl8mT1 zb6KNyT@R+!%)kp6J}@f_#pHn!Yw$uF`tGb_Fo4wnlqJgy00W3+L0x+MY^i5$v5XTd zU8-n`UwUE_ly6^SOhzvLwY{?q>7RLa#ZENg{8vpsr5y*C;CWBGwTfQry?$QMMx)*g z+FB;ifWq0H6HQ7^;31u@zsbMm<4Qr!2*71#R{Q?VX|&AMdU>F*xo8J? zJozB@Dfm`UL&voPgL2dSAL{A_Q<(h?+$*~2x_i|#MPDYXw#K2b>j}$t<4}hxXLj3t z#4-HV+jA6e>b(E47Ue6e#4PH&ytIZ)YA8L;Il6&vZ}rn1&!B#uvHSsJ>j1RiqJP)U zo*K8@8=ye)1|tU5^0%p7v00dmKja%8Fv*7kwHLL<6tsdGSd7h-Ve&O^c5^{~(GM^A zW{VW#alYpJ)A#1imTUORs#Zcq33wJQFV%_Q^>^z2HT#xJK;)82xj=As>a>BSU-wyvN;tv?)woBEcz)ldIH`$Bvz@6G zlrB?Bu(CwdnBay>k>!D5iQEdLEgqomj&F=2_g|x(`XZh5t4m~FZ6mu!jlsc%o}s#C zw;X+Mqv(cUpIzBWWjo$dE_mC2rkYuXQ0-|J0+G$~8HouQ&(@7^`3Nrsz zZ>-6fbhbfW=j+Rqy9%~2dz{lhHJCk6nKV~<=D(3f^0@f0YM>eZKR#&C8f{R^&=k4c z%byz6w~%9ZomR}?+ibQ<5n^&$flhT%GEtzv*IVvF;m6yEn6*r!%t*x_7{P zQ3m!%%6*>9C>|9zd1>%N5q-zzjZ1-h%F7e-mO#OtSmu3y=j#_ouwbi>Oe!g}L*e%G|qqN;+0b7|glj#L_ zY>19onaxcG2E}pS}>mtaX37#70tf*D05KQ6p{)Qc$N(GZdLCC zHV}ZymCCfptNUIrP{(gB&VHg_eI(yW_R2WrOrbwOZ?ef&iGS(^+j88BZdA-}eKyx@ z^8TkVtodNRe1%v^uQpZq?0Z5v^+3@|q5a798-Nu*hM}r=?Zv8xO)9f~7%2Zr3u1o_dr z*qQNLs^U8ib&Ygt-pLRh$CDEGnQ*w-s_8g_D0e$Uu1mP)fwXq4b7E~kg7P)wX8TO< zK$PH}4=HyBfPcNzi+z?z+YepJ0pd`9^@zZGaZ_p-t#VPaXK1A`e)n1{tm4@oxUPhz zs%UMurlP*RoaWVRTbj2+JDt`HqAyk8wyg9-RxI$OjZ}1G#yYl`tHBk7w#Dv6pG&v@ zMp8Mmtiu>H%GEy-O^Wa!3wh5EpODQvIz4&_m`(ZV z=vr^E%gLMC+Or6UZcZE-;9q?tMzMRdaoh+0%g_o-I=1NDXGbR3h!UJz<-qBg4t{_o zXZ++O;51xNLIQea7Iu~jq+Y2;fKyir6w7b22Jzy>$4ItOzbZqrdz>V$qypgqpMxX! zeeHPE*=om?1;$dB&0QwI>U4f%Lr?5TxoJ#3&OS@n_Tq(C&|?3%xU9 z9FK!OF#bRu{-8v3q~<^Z8;_MCF4tRaSv(n-hSi2zU^&_O|s&cwQeepHqM zdFYAY#0bO;4zi&q?+Vk}@_9=OjyT7?>I)N{WTXCYBtS)&{ecgiNE=PiKL*Sav!0pw z>RaS`%-A0^Pe;&BHMq^?>G{nqUaBWFDr#J8#r4{QLn&M4G2I*muZfJuqaov2PcGi6 z2aYv+4Q0GjzNElX8(s>RHJC@t&xpOt zGybOVJ-@km#`tF3T||P(*jSn?W5#aY`&(jK%dh$)Nl*>_TPO=zN87=!#K$)Xjjm8w zJac%toc6Ia&n8!Zk+ZeVq!(p4jm-0Filog39Uqh%R zLLzRH2X!S@XFY3cuH+>&&&Rbl-|G#i!py79{g0zTR%QJrXzR)CipK{?0Dt*TS-ot1V`P1x-&4%Jz%=3HRFBTig~AAB zx8iMgn=mZQ8LY6)j_cVh6)mj*1Y>*lGl8M)%r0*U+gtELf7V`Ss_86NJ>EW5KZRKy zMpJ^c0=0v_A)zAE2d&lO*3j3o6AjnMZX;cp zf!$*W@rX&4b0&u9aKfZS^WDbLJw33eo34L%Q^R-5*;$$$ z%?|(_55a7hkxs^AlMSMAHR|T$HzW#2K39M5=&fl-$WY zSRh>*%_@i*8YZdg{)8>n&v|Fsxr$7xK`SV!xeG0Mh-Em3?Q+PZp}bs0@#|NY0~8Kr ztBINu+#)EXSR*aX2ExM~%JN16B0ZCW}Ue|UK7 zBE*?iAsNkh7ZvN}W?|IsA8ez=XAU+4TXd&}s*fptA@74|XyMiXXx&C7X{Okw-qf?8 zvI-#9_M3OMQ%e+&X*yZhy-&2ukBJLdpt^ZosG!ISc~Y`y@LIuO9CJ<6!KdCdv?(aj z!QaPS2t~Jr)t(B$Z3ibgT@c~Bs;j4m0U^FakvRaRGsIQ~ z5Xl8x_`ubZ!{&gISEPS9{vFX$UW>iN`W7F^cMYl#=$klt;=!6l{W!*K5=k=_3OpW= z=k=rF=*Qy4=WUC)KIMBUgKR&O7o5e6*g0!-d1L!ufS4_au+*iLB}w)|Umm@BYkNQU z;)uidN7NELZ0-GOvBQeQF?%zdjzHk{te5riK3)0B}3SsTU| zi~0B%TGP3aSy!m$=EEfMPUfJ7kLk?la@U_#iB*-&?=1?m@?+UXM9js`#I(IU__#-b zI`_p+a83zP9Z_BXrbf|O#9-R!&~wk82o~N^YR{9b8?t+REQH$zu8=Wn=Tq-DO6O?R zgrsZzsKxEAyt#V>?CGQ~zs@ivm39G*tWK^wXWi&6q<2>pVOlP03zKa(q?bFSOvMxQjhf4P*W`1xcYPeaSaKLJ2g|6CFPWc z&rD1=@;DC?l+Ju_aK1ZY5@%zmKUf72xJSnv9UUJQ8oC~3AAUu3Rss_BE8GRqpIf$Z zmJ9P?d;}X7xzv^FEP=u*UCP*?Zd_xum+ZJYF(~4+B^Eod{x|RWe9JK}Z z!O1PQD_`9c%;pehFlx@Mb&GD62;2$ZN>s6z3twHQV;ME+KB*|)cj2^5N8RfU=SO@! zs>hE+!3-#X5@`3=E$lQ1kK|0Q1@$&PF*|~7Rg*Pm z2DEgnY#@n~SsPd3g$Sl?IST0Mz$<6wgM9ia3sH)myF8Oy(xCbG#-}Qw;ADUA@7|uC zectrhU94O7B@%DLH?HCq+3cMyw8LGdfsj%$w5|D|9r6=Y{SX`%jyqyp1 zNYzB`o@=eIPI4-6!4Cj>L;_gqLhNZ*Z-_06O?f#SR=}gj28AxzKgFXOS_FH?SBh>K zVKNcqO1rM73(xGFHT{Mx5&X<0rEx|;@*=Szgo|x!&lY&X#0@#_fxaBcG~=k|HBM3R zQ`u9G43487rWD=WPV1W-{BiGK6m}Ig0p))?(c2j!FmUCCf=r*C=OUkfxs`)cf*9DR zJ^P7)A_73=a5i6X-ye|vqk~&J3l#3+gDsH^ECaI>6k1%>LQzQ7>rkdx#Anj-b71-b z*HR?;-{dm(+G3e@DYco23Tn_lD}k$f0`ywc4hSyT0dUGY^>bMiaWH6Y56CJ7h+GFQ z^Z)*Qz8pr;CHQ-e14{RY$(e6pq+i}8nA3HI zTFLEP{41p!1n3{z0fwA86#BH&musJv;916Wq0k@i*yj{yIiP^a!SwNq5w;ltNr?v_kdZaA_DtJ5I_hAH zKv{P9oxIMeRXhmQrTME(48O>ac#7JzUXHs<{#kQQfMEL2YU#6MECmqEse>Hnvj=D* za)YN`-Q8b$u;cG-u@m;e3nYC`2=?zFSzu&(){;-8fuh7j`l-`OEg zTIUlTnQxh*5Xj9=xlXnF@k&0Gy`Lhcu_~0cso0Oby&)>xBlLiap3830X3MzNVSY_) zIKBz<3&)t{a57-4$4TIGItsp7@)6`?2a80>1Z|shB7d&*O@w?^P+v+bUQS_qd>2iO z|4pqbonkmv9B_{0Q(%4WCAq+YtdfL~QA)@F*iAwCDnJ|o$^FPkpUuzDU!XXSXO%w* z3j?BV{SvR_`fzX1mtIEta^iz^$oEphMxA!gsJYj((UR`!6o)p+AXrq+TVa0T>cS0K*Y1+E-DQKoDeX@}r!7_E(mMf)!S}OPHi7+#6Y9*+6c|zMx`R zHmE38g4lBjYJ8DPh99qITZjAd7ASX-p1@x}YKUxZ znpv9`aPW)GxrGcyflFt!wk$&e;J(<*_N(-J^MnZCBc0*^(Dj8v#7`Om=f+ zSzwcF8?~gWDHf)p^)`!IxZ$U+C#8)^&R_Y*ZIiPr1#!msGIKLfy@A^m%z1|MD7&q3 ze;*&8E-IB8M2lUq21-r%UlMQZhil#1%-X=+5*=ycH6s5X0Fjju_)*~2aAZJcGx611 z7nRy!a!tA|I^w-22f4w{URPAYiSI?E#$Tb-Bl?BfZ^TlTE@H-#IAtY8hq(i1rhQ+twPH%m^ff}0VV2fxy#@s(=OedBGly<0nfmOBD?m& zL*1MRqi{9AfuX0XJ4`>uu7w;#YR5Y`I=-;wWB`YKvZF{=AKT#w;5F3MisX@p0>wd;W)dG&ME*FqJ$*wr$=HoLU6u$Aj zP$J1I{r3KIE}M}^qzmVy@YbOo@JAVGx8-=ipa-qF^L%s|0S-RdKhA#okGmd8!Hphv z#V@$g7u*Wzd;hPOGJKgP`~t-&W-*GBa$M%We~Gpl@gdn70m|_V9(erMWZynDe2mnE z0-}Sft1BI(AA(&k_T^|`kt>$L1`piFs=bUSKi|OkGUfI$;ID#m2wQW`!c=a(pHXXf zdcQ_v<||;-sQjC(`rp&7yZcA*9PDdR2hy{%c`kO+Xh}I-_^)Rze)m=#@Yu6~`jhZU zId2T1zn^mY{JGeC1GkZq)u{jgGh8SnG^Ay1FKd2L5MKQ5S1$YdKNP>!d$I#U5N z%!zKsZ=PcI%WfUL*eP@6MJ>1e-0UpKt7YGK2#{9yb$5Sb+enpU!7Kmu=jjr_7Tv6K zz~iOQ?>;U1{}^W*Qb2kTD3|Z#%+xV_1Qgs0yx5x+!1Vzo_a;Jc@C5Jzzzt>|#@?^s zfV&iwsFMaJX8hrkLx)fHFj`TG`Z#Be3ZsZBnJU~k%0e} zwZ;&ET(@{a698<3VrxHiV6n)!_)Cn4hzK}O0OduAE;dBXBLR?i{T>&htzc(s|I#5T zlQU@JjzZijbQpgsM`B+cY(Hf9>ZhfpVNi=cJGRo-^Dq3a?k_rCih4Hoq$d86|4oYX zf9)&krx${?P;qnO9~P4l`=YpPB%xt>|3Ik@u%D9S7Yp_~;?u}hY4_mbu%)MGp+Wgq2of}Ef3Y4Om(837!>lly{TMTXK71<-E~LF&Y{ zYljw(pZILuR`t!=65h)BO<``813+c{D=jVFdNa``QOWpp9IOOds~UYS>Pwi&O~q{5 z-zdpS2v}j(=FsFc!%GH1dS`xc+ zP29qGJVt{(`g(faSh6K$R=TQI9bKrQviCv(TyH&}cf;-c>mFQed+pLDAYK2jYRoG$ z3ml8-w(cVE;7VJm)rS{|cp zy82(`n)&c*)bxfjH(~E2c#N&XbOE(t%UcN9=Z)z@3(}EDWQ01hKsEUgL6nhvCQA!QcNHah9WbSYdD8Hz?~2`Jbkwjtc*dk=v&yVvSVbh zUC6%BcW2i?JoER{9zEY2MCyN~gw_%~z@?~bDk>@hha6+M7XeS`WqAU<$#e_Um%FyG z_5fX9ct3jiRyG*w`>9 z@9ewIJS0EC-)iy@j&F(+!FxXttqvS?3*E0=$v7@F9v2q}{swWY9dmcYZ7Wt!t*s64 zvK1gmfqT6h&?amFXHo>*VH-1`k)!oBiaM0jgu$el0Of0a#T8w_Nlxo=%w@N@Rq{&$g#s7b877Ar^Gx$dS;B;t&Rp-2K#?p(){``HZnl-TZjQS9w z)neY`=fO%JV*AEIwAy@GasS(_0>QR%9#Rnbc1+cZK%AJ^1WkaLh;w}r77^iDho73| ziFtq)WSs-GwhkSZ@m|v#5_)=vzFDQOOdK8qBG$vCJHe z(1?hLAa8H)Q*-F>Ny`2lpj;YzJ9ytZ6{CrsPP-;(!GjRUinNhvH67?|1A${v_ zlGYwo*qr5|a`W(fB@&5A&erkS;XBl|xw_Jf?0BhoiNS?VGIY*(HvO0|{oDw`p{4 zye(a;NEx-5RK6sQ&-F?wlo~I0kFy9C`qUR)!L4Ea#)q!CZGj(cmhbIly^lEe9B$W4 zKm-`}h7bmtuTQq`zVfd>9zNO>-`28~oh&CJw%6XWH7OCh#m}0y*+FBk5TJW4Dtm)I z;}UPaO|;F6kmlx^mzUQ#cK+7uB>bA4z2xsaDC+@>-TbhVc=%1+bwxeW^VtU}xB8DJ znrH?*Yf`F*C*P%fN^&^zXbP84<2W z3}4|&sSJaq7X3`iQ_K3=FX?1$&G;fU(D!-hf!%zVPG`yi)%-!@1HxZ+RJ*ZO5hr6J zcRNok$QCfv>lksDj97)IDV9&KCwom{+!lGi@Oo5jWV?@X`>Sbq3!P!cNRCi^bUOcG znU7DiY#a{X+KK(>3ECMKxvE~A0NQ+OhlN~aJ)sBvM3|ziiEU)cs8bWrXx0uOQ&Kaz z3KfJ~Sqa8;#!~}!!p;b@e1?UDgt(4GGB;)V^rta^*KFEpEAW%wnj9%CdtGuMP4XLG&HPwwkXaxw12bMe2D-=Kxrv0OsO4%KtFJ5>qVVS-!QTV0dIL|~ubXd5W3 zSjJ)=(Rr27?1^02{VZ~R@oIPMD&{E8Lm*}CTwgHyNko2l+@=ibX@pMbT$&jc?JYx{ zvFx}j+Jw<%tTKLe>{{AvmAa{3t?lde)oU=^GjDjkS)21)tZ}T&T_EOt5u3VX&EEN_(#opYujB8(x~+LQKQ%&5t`#w-LT#Bb136{ ziGQV0#iDJsBxH_x zWvfT(ow+A878|B>V@v`uRIj$P+9{H-$Dp8cy@N4lJLtQ|kK`l9X30u6e4iA;T|Vs& zdK;%nlwx8@bB8a!i#g11VOp|WR9i-A_MI4D1nsJ|sk;jrdGsUvB`Il$IQiI0&o`C2v?J~H zMOY(G%Bvlmf6fh-#AHP&E*!UmC~KIvaLr)es6L32T9fW;FL5VtcQ5x!4#=XOmc2w7 zd>Xs9!1t;$iBSm+cJMD9^2ngi7gK_jWpC~Dt?{uQnJjIv)!*Uzv#q}E*uVC0?012V zF%AAFa#bXSq%MObfIJGuJQ5YTx9zmBoo`5pood}e{A2WVLuLGGUhiTY+G{dEL_I=P zNli_6c{|l1YviI!c!=^EaGw6{t@8@^=Hhroz*NgDiA?V~L?NQo#44csI0QLan&~e-F0QS@bD=6Y2Y$HFR@->~k%0!&J zJ(60yS>cs7GMO-_LH&B;6V2h#!#^~f6jbATh4UsyI{FYU%@$et-bBNiKEEGhW9Ad+ z9||QR=$=j4SsR5Bu58V;!K6W~gAUH6d7NG#?km-jJN-U4W}eJT9vf3cntozd8qO(~ zj%_ZCj(PhNDIq3vr8RxM7@u$`Yz#^clgf^%wZS$7hxJw^_YN?$(uIvZFuuL(H3QDL zcHart*#2gd1tsUa8o%C!_i3}ZwGm3n0%nL?8}HS`9`3hxWHS+YZkj;($DB^ERPaHR zt-tmt?@zI&Bj;6jZQ5B(`Z7=CE)A~=A;ggN0)7p=^uS~Tmehz5m^fnn#(bS*bbFy5 zxoD>XVPk@$lf*loytO}#s1w{4&OAIdko?*IS* literal 0 HcmV?d00001 diff --git a/docs_new/cards/logos/xiaomi.png b/docs_new/cards/logos/xiaomi.png new file mode 100644 index 0000000000000000000000000000000000000000..22623d5e8182e1bd9244b1f3844d96aa76846bcf GIT binary patch literal 30624 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 literal 0 HcmV?d00001 diff --git a/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-Math-V2.mdx b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-Math-V2.mdx new file mode 100644 index 000000000..04b92b4de --- /dev/null +++ b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-Math-V2.mdx @@ -0,0 +1,522 @@ +--- +title: DeepSeek-Math-V2 +metatags: + description: "Deploy DeepSeek-Math-V2 with SGLang - advanced mathematical reasoning model with gold-level IMO/CMO performance and theorem-proving capabilities." +--- + +import { DeepSeekMathV2Deployment } from '/src/snippets/autoregressive/deepseek-math-v2-deployment.jsx'; + +## 1. Model Introduction + +[DeepSeek-Math-V2](https://huggingface.co/deepseek-ai/DeepSeek-Math-V2) is DeepSeek's advanced mathematical reasoning model with strong theorem-proving capabilities. The model demonstrates exceptional performance on mathematical competitions, achieving gold-level scores on IMO 2025 and CMO 2024, and a near-perfect 118/120 on Putnam 2024 with scaled test-time compute. + +**Key Features:** + +- **Strong Theorem-Proving**: Gold-level performance on IMO 2025 and CMO 2024 +- **Self-Verifiable Reasoning**: Implements self-verifiable mathematical reasoning for improved accuracy +- **Competition-Level Math**: Near-perfect score (118/120) on Putnam 2024 +- **Large MoE Model**: ~671B total parameters, requires high-memory GPUs (B200 183GB or B300 275GB) + +**Available Models:** + +- **BF16 (Full Weights)**: [deepseek-ai/DeepSeek-Math-V2](https://huggingface.co/deepseek-ai/DeepSeek-Math-V2) - Full precision weights + +**License:** +To use DeepSeek-Math-V2, you must agree to DeepSeek's Community License. See [LICENSE](https://huggingface.co/deepseek-ai/DeepSeek-Math-V2/blob/main/LICENSE) for details. + +## 2. SGLang Installation + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, and deployment strategy. + + + +### 3.2 Configuration Tips + +**Hardware Requirements:** + +- **B200 (183GB)**: BF16 tp=8 +- **B300 (275GB)**: BF16 tp=8 + +**DP Attention:** + +- Enable DP attention for high-throughput scenarios +- The `--dp` value commonly matches the `--tp` value +- Trade-off: Higher throughput at the cost of slightly increased latency + +## 4. Model Invocation + +### 4.1 Deployment Command + +Deploy the model using the command generated above. Example for B200: + +```shell Command +sglang serve --model-path deepseek-ai/DeepSeek-Math-V2 \ + --tp 8 \ + --ep 8 \ + --reasoning-parser deepseek-r1 \ + --host 0.0.0.0 \ + --port 30000 +``` + +### 4.2 Mathematical Reasoning + +DeepSeek-Math-V2 excels at mathematical problem-solving with step-by-step reasoning. + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Mathematical reasoning problem +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-Math-V2", + messages=[ + {"role": "user", "content": "Prove that for any positive integer n, the sum 1 + 2 + 3 + ... + n = n(n+1)/2"} + ], + max_tokens=4096, + stream=True +) + +# Process the stream +thinking_started = False +has_thinking = False +has_answer = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +We need to prove that for any positive integer n, the sum 1 + 2 + 3 + ... + n = n(n+1)/2. + +This is a classic formula for the sum of the first n natural numbers. We can prove by induction. + +Base case: n=1, LHS = 1, RHS = 1*(1+1)/2 = 1*2/2 = 1. Holds. + +Inductive step: Assume true for n = k, i.e., 1 + 2 + ... + k = k(k+1)/2. Then for n = k+1, sum = 1 + 2 + ... + k + (k+1) = [k(k+1)/2] + (k+1) = (k(k+1) + 2(k+1))/2 = (k+1)(k+2)/2 = (k+1 +)((k+1)+1)/2. So holds for k+1. By induction, holds for all positive integers n. + +... +=============== Content ================= +We can prove the well-known formula for the sum of the first \(n\) positive integers in several ways. Two of the most elementary are presented below. + +--- + +### 1. Proof by mathematical induction + +**Base case (\(n=1\))**: +\[ +1 = \frac{1\cdot(1+1)}{2}= \frac{1\cdot2}{2}=1, +\] +so the formula holds for \(n=1\). + +**Inductive hypothesis:** +Assume that for some positive integer \(k\) the formula is true, i.e. +\[ +1+2+\dots+k = \frac{k(k+1)}{2}. +\] + +**Inductive step (\(k \to k+1\))**: +Consider the sum up to \(k+1\): +\[ +\begin{aligned} +1+2+\dots+k+(k+1) &= \bigl(1+2+\dots+k\bigr) + (k+1) \\[4pt] +&= \frac{k(k+1)}{2} + (k+1) \qquad\text{(by the induction hypothesis)}\\[4pt] +&= (k+1)\left(\frac{k}{2}+1\right)\\[4pt] +&= (k+1)\frac{k+2}{2}\\[4pt] +&= \frac{(k+1)(k+2)}{2}\\[4pt] +&= \frac{(k+1)\bigl((k+1)+1\bigr)}{2}. +\end{aligned} +\] +Thus the formula also holds for \(n=k+1\). + +By the principle of mathematical induction, +\[ +1+2+3+\dots+n = \frac{n(n+1)}{2} +\] +for every positive integer \(n\). + +--- + +### 2. Proof by pairing (Gauss’s trick) + +Let +\[ +S = 1 + 2 + 3 + \dots + n. +\] + +Write the same sum in reverse order: +\[ +S = n + (n-1) + (n-2) + \dots + 1. +\] + +Add the two equalities term‑by‑term: +\[ +\begin{aligned} +2S &= (1+n) + \bigl(2+(n-1)\bigr) + \bigl(3+(n-2)\bigr) + \dots + (n+1)\\ + &= \underbrace{(n+1)+(n+1)+\dots+(n+1)}_{n\ \text{times}}\\ + &= n\,(n+1). +\end{aligned} +\] + +Therefore +\[ +S = \frac{n(n+1)}{2}. +\] + +Both proofs are rigorous and show that the formula holds for all positive integers \(n\). +``` + +### 4.3 Competition-Level Problems + +**Example: IMO-style Problem:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# IMO-style problem +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-Math-V2", + messages=[ + {"role": "user", "content": "Let a, b, c be positive real numbers such that abc = 1. Prove that (a-1+1/b)(b-1+1/c)(c-1+1/a) <= 1."} + ], + max_tokens=8192, + stream=True +) + +# Process the stream +thinking_started = False +has_thinking = False +has_answer = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + if delta.content: + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +We need to prove that for positive real numbers a,b,c with abc = 1, we have: + +\[ +(a - 1 + \frac{1}{b})(b - 1 + \frac{1}{c})(c - 1 + \frac{1}{a}) \le 1. +\] + +We can rewrite the expressions: Since abc=1, we have 1/b = ac, 1/c = ab, 1/a = bc. Wait careful: abc=1 => 1/b = ac? Actually 1/b = ac? Let's check: abc=1 => ac = 1/b? Multiply both sides by something: abc=1 => (ac) b = 1 => ac = 1/b. Yes, because (ac) * b = 1 => ac = 1/b. Similarly, ab = 1/c, bc = 1/a. So we can rewrite: + +... +=============== Content ================= + +We are given positive real numbers \(a,b,c\) with \(abc=1\). We must prove + +\[ +\Bigl(a-1+\frac1b\Bigr)\Bigl(b-1+\frac1c\Bigr)\Bigl(c-1+\frac1a\Bigr)\le 1 . +\] + +--- + +### 1. A convenient substitution + +Because \(abc=1\), we can write + +\[ +a=\frac{x}{y},\qquad b=\frac{y}{z},\qquad c=\frac{z}{x} +\] + +with positive numbers \(x,y,z\). +(For instance, take \(x=1,\;y=\frac1a,\;z=\frac1{ab}\); then indeed \(a=\frac{x}{y},\;b=\frac{y}{z}\) and, using \(abc=1\), we obtain \(c=\frac{z}{x}=\frac1{ab}=c\).) + +--- + +### 2. Rewriting the factors + +\[ +\begin{aligned} +a-1+\frac1b &=\frac{x}{y}-1+\frac{z}{y}= \frac{x+z-y}{y},\\[2mm] +b-1+\frac1c &=\frac{y}{z}-1+\frac{x}{z}= \frac{x+y-z}{z},\\[2mm] +c-1+\frac1a &=\frac{z}{x}-1+\frac{y}{x}= \frac{y+z-x}{x}. +\end{aligned} +\] + +Hence the product becomes + +\[ +P=\Bigl(a-1+\frac1b\Bigr)\Bigl(b-1+\frac1c\Bigr)\Bigl(c-1+\frac1a\Bigr) + =\frac{(x+z-y)(x+y-z)(y+z-x)}{xyz}. +\] + +--- + +### 3. Reducing to a known inequality + +We have to show \(P\le1\), i.e. + +\[ +(x+z-y)(x+y-z)(y+z-x)\le xyz . +\tag{1} +\] + +Set + +\[ +p=x+y+z,\qquad q=xy+yz+zx,\qquad r=xyz . +\] + +Notice that + +\[ +x+z-y=p-2y,\quad x+y-z=p-2z,\quad y+z-x=p-2x . +\] + +Therefore + +\[ +\begin{aligned} +(x+z-y)(x+y-z)(y+z-x) +&=(p-2x)(p-2y)(p-2z)\\ +&=p^{3}-2p^{2}(x+y+z)+4p(xy+yz+zx)-8xyz\\ +&=-p^{3}+4pq-8r . +\end{aligned} +\] + +Inequality (1) is thus equivalent to + +\[ +-p^{3}+4pq-8r\le r\quad\Longleftrightarrow\quad 4pq-p^{3}\le 9r . +\tag{2} +\] + +--- + +### 4. Applying Schur’s inequality + +Schur’s inequality of third degree states that for any non‑negative \(x,y,z\) + +\[ +p^{3}+9r\ge 4pq . +\] + +Rearranged, this is exactly \(4pq-p^{3}\le 9r\), which is (2). +Since our \(x,y,z\) are positive, Schur’s inequality applies and (2) holds. + +Consequently (1) is true, and we obtain \(P\le1\). + +--- + +### 5. Equality case + +Equality in Schur’s inequality for positive numbers occurs only when \(x=y=z\). +Then \(a=b=c=1\), and indeed the product equals \(1\). + +--- + +Thus for all positive \(a,b,c\) with \(abc=1\), + +\[ +\Bigl(a-1+\frac1b\Bigr)\Bigl(b-1+\frac1c\Bigr)\Bigl(c-1+\frac1a\Bigr)\le 1 . +\] + +∎ +``` + +## 5. Benchmark + +### 5.1 Accuracy Benchmark + +#### 5.1.1 GSM8K Benchmark + +**Benchmark Command:** + +```shell Command +python3 benchmark/gsm8k/bench_sglang.py --num-questions 200 --port 30000 +``` + +**Test Results:** + +```text Output +Accuracy: 0.975 +Invalid: 0.000 +Latency: 34.358 s +Output throughput: 540.162 token/s +``` + +### 5.2 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU (8x, 183GB each) +- Model: DeepSeek-Math-V2 +- Tensor Parallelism: 8 +- SGLang Version: 0.5.8 + +#### 5.2.1 Latency Benchmark + +**Benchmark Command:** + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model deepseek-ai/DeepSeek-Math-V2 \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +**Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 53.34 +Total input tokens: 1972 +Total input text tokens: 1972 +Total generated tokens: 2784 +Total generated tokens (retokenized): 2778 +Request throughput (req/s): 0.19 +Input token throughput (tok/s): 36.97 +Output token throughput (tok/s): 52.19 +Peak output token throughput (tok/s): 56.00 +Peak concurrent requests: 3 +Total token throughput (tok/s): 89.16 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 5330.72 +Median E2E Latency (ms): 5879.28 +P90 E2E Latency (ms): 8320.33 +P99 E2E Latency (ms): 9921.29 +---------------Time to First Token---------------- +Mean TTFT (ms): 183.38 +Median TTFT (ms): 177.92 +P99 TTFT (ms): 217.64 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 17.96 +Median TPOT (ms): 18.39 +P99 TPOT (ms): 19.03 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 18.57 +Median ITL (ms): 18.63 +P95 ITL (ms): 19.26 +P99 ITL (ms): 19.48 +Max ITL (ms): 24.93 +================================================== +``` + +#### 5.2.2 Throughput Benchmark + +**Benchmark Command:** + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model deepseek-ai/DeepSeek-Math-V2 \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 1000 \ + --max-concurrency 100 +``` + +**Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 217.36 +Total input tokens: 301701 +Total input text tokens: 301701 +Total generated tokens: 188375 +Total generated tokens (retokenized): 187456 +Request throughput (req/s): 4.60 +Input token throughput (tok/s): 1388.05 +Output token throughput (tok/s): 866.67 +Peak output token throughput (tok/s): 2589.00 +Peak concurrent requests: 109 +Total token throughput (tok/s): 2254.72 +Concurrency: 89.81 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 19521.73 +Median E2E Latency (ms): 12076.76 +P90 E2E Latency (ms): 47248.87 +P99 E2E Latency (ms): 86862.79 +---------------Time to First Token---------------- +Mean TTFT (ms): 790.40 +Median TTFT (ms): 456.81 +P99 TTFT (ms): 4223.33 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 106.52 +Median TPOT (ms): 107.24 +P99 TPOT (ms): 238.33 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 100.29 +Median ITL (ms): 38.34 +P95 ITL (ms): 237.00 +P99 ITL (ms): 347.49 +Max ITL (ms): 3642.56 +================================================== +``` diff --git a/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-OCR-2.mdx b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-OCR-2.mdx new file mode 100644 index 000000000..53207e200 --- /dev/null +++ b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-OCR-2.mdx @@ -0,0 +1,250 @@ +--- +title: DeepSeek-OCR-2 +metatags: + description: "Deploy DeepSeek-OCR-2 with SGLang - high-accuracy text extraction from images and documents for OCR tasks." +--- + +import { DeepSeekOCR2Deployment } from '/src/snippets/autoregressive/deepseek-ocr-v2-deployment.jsx'; + +## 1. Model Introduction + +[DeepSeek-OCR-2](https://github.com/deepseek-ai/DeepSeek-OCR-2) is DeepSeek's next-generation OCR (Optical Character Recognition) model, building on DeepSeek-OCR with improved accuracy and broader document understanding capabilities. The model is optimized for high-accuracy text extraction from images across a wide variety of document types and formats. + +**Key Features:** + +- **Semantic-Aware Visual Encoding (DeepEncoder V2)**: DeepSeek-OCR-2 introduces DeepEncoder V2, which models document reading order in a more human-like, semantic-driven manner rather than relying on fixed raster scanning. This significantly improves logical reading flow in complex layouts (e.g., multi-column documents). +- **Stronger Layout and Structural Understanding**: DeepSeek-OCR-2 demonstrates improved performance on structured documents such as tables, forms, and dense multi-column pages. It reduces reading-order errors and improves overall document parsing robustness compared to the original version. +- **Improved Accuracy While Maintaining Token Efficiency**: The original DeepSeek-OCR emphasized aggressive visual token compression. OCR-2 maintains high token efficiency while delivering higher benchmark performance, particularly on document-level understanding tasks. +- **Better Generalization Across Complex Document Tasks**: DeepSeek-OCR-2 performs more consistently across multilingual documents, structured data extraction, and visually complex content, making it more suitable for real-world document intelligence scenarios beyond plain text OCR. + +**Available Models:** + +- **Base Model**: [deepseek-ai/DeepSeek-OCR-2](https://huggingface.co/deepseek-ai/DeepSeek-OCR-2) - Recommended for OCR tasks + +**License:** +To use DeepSeek-OCR-2, you must agree to DeepSeek's Community License. See [LICENSE](https://huggingface.co/deepseek-ai/DeepSeek-OCR-2/blob/main/LICENSE.txt) for details. + +For more details, please refer to the [official DeepSeek-OCR-2 repository](https://github.com/deepseek-ai/DeepSeek-OCR-2). + +## 2. SGLang Installation + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, and deployment strategy. SGLang supports serving DeepSeek-OCR-2 on NVIDIA H200 and B200, and AMD MI300X, MI355X, and MI325X GPUs. + + + +**Note**: DeepSeek-OCR-2 has ~3.58B parameters and easily fits on a single modern GPU. For low-latency serving, no model parallelism is needed. For high-throughput requirements, consider using data parallelism with the SGLang Model Gateway — see [DP, DPA and SGLang DP Router](../../../docs/advanced_features/sgl_model_gateway) for more details. + +### 3.2 Configuration Tips + +For more detailed configuration tips, please refer to [DeepSeek V3/V3.1/R1 Usage](../../../docs/basic_usage/deepseek_v3). + +## 4. Model Invocation + +### 4.1 Basic Usage + +**OpenAI-compatible request example** + +```python Example +import requests + +url = "http://localhost:30000/v1/chat/completions" + +data = { + "model": "deepseek-ai/DeepSeek-OCR-2", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": "\n<|grounding|>Convert the document to markdown."}, + {"type": "image_url", "image_url": {"url": "https://example.com/your_image.jpg"}}, + ], + } + ], + "max_tokens": 512, +} + +response = requests.post(url, json=data) +print(response.text) +``` + +**Reference** +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Recommended Prompts + +The following prompts are recommended by the [official model card](https://huggingface.co/deepseek-ai/DeepSeek-OCR-2#main-prompts). + +**Structured document conversion** — extracts text while preserving layout: + +```text Example + +<|grounding|>Convert the document to markdown. +``` + +**Free-form OCR** — extracts without layouts: + +```text Example + +Free OCR. +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA H200 GPU (1x) +- Model: DeepSeek-OCR-2 +- Tensor Parallelism: 1 +- sglang version: 0.0.0.dev1+g93fca0bbc + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. To simulate real-world usage patterns, we configure each request with 1024 input tokens and 1024 output tokens, representing typical medium-length conversations with detailed responses. For more details on how to perform evaluation, see [Evaluating New Models with SGLang](../../../docs/developer_guide/evaluating_new_models). + +#### 5.1.1 Latency-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +sglang serve \ + --model-path deepseek-ai/DeepSeek-OCR-2 \ + --enable-multimodal \ + --host 0.0.0.0 \ + --port 30000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 0.0.0.0 \ + --port 30000 \ + --model deepseek-ai/DeepSeek-OCR-2 \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 3.54 +Total input tokens: 1972 +Total input text tokens: 1972 +Total generated tokens: 2784 +Total generated tokens (retokenized): 2710 +Request throughput (req/s): 2.83 +Input token throughput (tok/s): 557.53 +Output token throughput (tok/s): 787.10 +Peak output token throughput (tok/s): 818.00 +Peak concurrent requests: 5 +Total token throughput (tok/s): 1344.63 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 352.69 +Median E2E Latency (ms): 392.34 +P90 E2E Latency (ms): 540.64 +P99 E2E Latency (ms): 639.01 +---------------Time to First Token---------------- +Mean TTFT (ms): 18.08 +Median TTFT (ms): 16.57 +P99 TTFT (ms): 25.67 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 1.18 +Median TPOT (ms): 1.21 +P99 TPOT (ms): 1.22 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 1.21 +Median ITL (ms): 1.21 +P95 ITL (ms): 1.28 +P99 ITL (ms): 1.44 +Max ITL (ms): 4.32 +================================================== +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +sglang serve \ + --model-path deepseek-ai/DeepSeek-OCR-2 \ + --enable-multimodal \ + --tp 1 \ + --ep 1 \ + --dp 1 \ + --enable-dp-attention \ + --host 0.0.0.0 \ + --port 30000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 0.0.0.0 \ + --port 30000 \ + --model deepseek-ai/DeepSeek-OCR-2 \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 1000 \ + --max-concurrency 100 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 14.79 +Total input tokens: 301698 +Total input text tokens: 301698 +Total generated tokens: 188375 +Total generated tokens (retokenized): 185236 +Request throughput (req/s): 67.63 +Input token throughput (tok/s): 20402.54 +Output token throughput (tok/s): 12738.99 +Peak output token throughput (tok/s): 17508.00 +Peak concurrent requests: 187 +Total token throughput (tok/s): 33141.53 +Concurrency: 86.87 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 1284.50 +Median E2E Latency (ms): 866.07 +P90 E2E Latency (ms): 3027.32 +P99 E2E Latency (ms): 5490.63 +---------------Time to First Token---------------- +Mean TTFT (ms): 86.08 +Median TTFT (ms): 50.09 +P99 TTFT (ms): 613.92 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 7.79 +Median TPOT (ms): 6.54 +P99 TPOT (ms): 50.10 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 6.42 +Median ITL (ms): 4.64 +P95 ITL (ms): 23.65 +P99 ITL (ms): 39.62 +Max ITL (ms): 452.65 +================================================== +``` diff --git a/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-OCR.mdx b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-OCR.mdx new file mode 100644 index 000000000..0964f86ba --- /dev/null +++ b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-OCR.mdx @@ -0,0 +1,204 @@ +--- +title: DeepSeek-OCR +metatags: + description: "Deploy DeepSeek-OCR with SGLang - high-accuracy text extraction from images and documents for OCR tasks." +--- + +## 1. Model Introduction + +[DeepSeek-OCR](https://github.com/deepseek-ai/DeepSeek-OCR) is DeepSeek's advanced OCR (Optical Character Recognition) model designed for high-accuracy text extraction from images. The model is optimized for various document processing and image-to-text conversion tasks. + +**Key Features:** + +- **Advanced OCR**: High-accuracy text recognition from images and documents +- **Multi-Modality**: Supports various image formats and document types + +**Available Models:** + +- **Base Model**: [deepseek-ai/DeepSeek-OCR](https://huggingface.co/deepseek-ai/DeepSeek-OCR) - Recommended for OCR tasks + +**License:** +To use DeepSeek-OCR, you must agree to DeepSeek's Community License. See [LICENSE](https://huggingface.co/deepseek-ai/DeepSeek-OCR/blob/main/LICENSE) for details. + +For more details, please refer to the [official DeepSeek-OCR repository](https://github.com/deepseek-ai/DeepSeek-OCR). + +## 2. SGLang Installation + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, and deployment strategy. + +import { DeepSeekOCRDeployment } from "/src/snippets/autoregressive/deepseek-ocr-deployment.jsx"; + + + +### 3.2 Configuration Tips + +For more detailed configuration tips, please refer to [DeepSeek V3/V3.1/R1 Usage](../../../docs/basic_usage/deepseek_v3). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: AMD MI300X GPU (1x) +- Model: DeepSeek-OCR +- Tensor Parallelism: 1 +- sglang version: 0.5.7 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. To simulate real-world usage patterns, we configure each request with 1024 input tokens and 1024 output tokens, representing typical medium-length conversations with detailed responses. + +#### 5.1.1 Latency-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-OCR \ + --tp 1 \ + --dtype float16 \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 8000 \ + --model deepseek-ai/DeepSeek-OCR \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 4.45 +Total input tokens: 1972 +Total input text tokens: 1972 +Total input vision tokens: 0 +Total generated tokens: 2784 +Total generated tokens (retokenized): 2770 +Request throughput (req/s): 2.25 +Input token throughput (tok/s): 442.89 +Output token throughput (tok/s): 625.26 +Peak output token throughput (tok/s): 635.00 +Peak concurrent requests: 4 +Total token throughput (tok/s): 1068.16 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 443.32 +Median E2E Latency (ms): 493.29 +---------------Time to First Token---------------- +Mean TTFT (ms): 21.59 +Median TTFT (ms): 20.89 +P99 TTFT (ms): 24.81 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 1.47 +Median TPOT (ms): 1.52 +P99 TPOT (ms): 1.53 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 1.52 +Median ITL (ms): 1.51 +P95 ITL (ms): 1.76 +P99 ITL (ms): 1.93 +Max ITL (ms): 8.28 +================================================== +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-OCR \ + --tp 1 \ + --ep 1 \ + --dp 1 \ + --enable-dp-attention \ + --dtype float16 \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 8000 \ + --model deepseek-ai/DeepSeek-OCR \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 1000 \ + --max-concurrency 100 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 16.24 +Total input tokens: 301698 +Total input text tokens: 301698 +Total input vision tokens: 0 +Total generated tokens: 188375 +Total generated tokens (retokenized): 186927 +Request throughput (req/s): 61.59 +Input token throughput (tok/s): 18582.90 +Output token throughput (tok/s): 11602.84 +Peak output token throughput (tok/s): 15479.00 +Peak concurrent requests: 179 +Total token throughput (tok/s): 30185.75 +Concurrency: 85.53 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 1388.60 +Median E2E Latency (ms): 901.43 +---------------Time to First Token---------------- +Mean TTFT (ms): 73.36 +Median TTFT (ms): 50.21 +P99 TTFT (ms): 349.53 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 7.42 +Median TPOT (ms): 7.31 +P99 TPOT (ms): 27.99 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 7.04 +Median ITL (ms): 4.62 +P95 ITL (ms): 21.11 +P99 ITL (ms): 36.92 +Max ITL (ms): 172.15 +================================================== +``` diff --git a/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-R1.mdx b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-R1.mdx new file mode 100644 index 000000000..6ced51128 --- /dev/null +++ b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-R1.mdx @@ -0,0 +1,910 @@ +--- +title: DeepSeek-R1 +metatags: + description: "Deploy DeepSeek-R1 reasoning model with SGLang - advanced step-by-step reasoning with FP8/FP4 quantization for NVIDIA and AMD GPUs." +--- + +import { DeepSeekR1BasicDeployment } from '/src/snippets/autoregressive/deepseek-r1-basic-deployment.jsx'; +import { DeepSeekR1AdvancedDeployment } from '/src/snippets/autoregressive/deepseek-r1-advanced-deployment.jsx'; + +## 1. Model Introduction + +[DeepSeek-R1](https://github.com/deepseek-ai/DeepSeek-R1) is DeepSeek's advanced reasoning model that combines powerful language understanding with step-by-step reasoning capabilities. The model is available in multiple quantization formats optimized for different hardware platforms. + +**Key Features:** + +- **Advanced Reasoning**: Built-in reasoning capabilities for complex problem-solving +- **Multiple Quantizations**: FP8 and FP4 variants for different performance/memory trade-offs +- **Hardware Optimization**: Specifically tuned for NVIDIA B200 (Blackwell) and H200 (Hopper) GPUs, and AMD MI300X, MI325X and MI355X GPUs +- **High Performance**: Optimized for both throughput and latency scenarios + +**Available Models:** + +- **FP8 (8-bit quantized)**: [deepseek-ai/DeepSeek-R1-0528](https://huggingface.co/deepseek-ai/DeepSeek-R1-0528) - Recommended for H200 and MI300X +- **FP4 (4-bit quantized)**: [nvidia/DeepSeek-R1-0528-FP4-v2](https://huggingface.co/nvidia/DeepSeek-R1-0528-FP4-v2) - Recommended for B200 and MI355X + +**License:** +To use DeepSeek-R1, you must agree to DeepSeek's Community License. See [LICENSE](https://huggingface.co/deepseek-ai/DeepSeek-R1-0528/blob/main/LICENSE) for details. + +For more details, please refer to the [official DeepSeek-R1 repository](https://github.com/deepseek-ai/DeepSeek-R1). + +## 2. SGLang Installation + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate a basic deployment command for your hardware platform, quantization method, and deployment strategy. + + + +### 3.2 Optimal Configurations + +Pareto-optimal configurations for B200, H200, MI300X, MI325X, and MI355X hardware. + + + +### 3.3 Configuration Tips + +For more detailed configuration tips and advanced tuning, please refer to [DeepSeek V3/V3.1/R1 Usage](../../../docs/basic_usage/deepseek_v3). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +DeepSeek-R1 supports advanced reasoning capabilities with built-in thinking process. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-R1-0528 \ + --reasoning-parser deepseek-r1 \ + --tp 8 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-R1-0528", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +To solve this problem, I need to calculate 15% of 240. +Step 1: Convert 15% to decimal: 15% = 0.15 +Step 2: Multiply 240 by 0.15 +Step 3: 240 × 0.15 = 36 +=============== Content ================= + +The answer is 36. To find 15% of 240, we multiply 240 by 0.15, which equals 36. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.2 Tool Calling + +DeepSeek-R1 supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-R1-0528 \ + --reasoning-parser deepseek-r1 \ + --tool-call-parser deepseekv3 \ + --chat-template examples/chat_template/tool_chat_template_deepseekr1.jinja \ + --tp 8 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-R1-0528", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"🔧 Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I need to use the get_weather function to retrieve this information. +I should call the function with location="Beijing". +=============== Content ================= + +🔧 Tool Call: get_weather + Arguments: +🔧 Tool Call: None + Arguments: {"location": "Beijing"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-R1-0528", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: B200 GPU (8x) +- Model: DeepSeek-R1-0528 +- Tensor Parallelism: 8 +- SGLang Version: 0.5.6.post1 + +**Benchmark Methodology:** + +We use industry-standard benchmark configurations to ensure results are comparable across frameworks and hardware platforms. + +#### 5.1.1 Standard Test Scenarios + +Three core scenarios reflect real-world usage patterns: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ScenarioInput LengthOutput LengthUse Case
      **Chat**1K1KMost common conversational AI workload
      **Reasoning**1K8KLong-form generation, complex reasoning tasks
      **Summarization**8K1KDocument summarization, RAG retrieval
      + +#### 5.1.2 Concurrency Levels + +Test each scenario at different concurrency levels to capture the throughput vs. latency trade-off: + +- **Low Concurrency**: `--max-concurrency 1` (Latency-optimized) +- **Medium Concurrency**: `--max-concurrency 16` (Balanced) +- **High Concurrency**: `--max-concurrency 100` (Throughput-optimized) + +#### 5.1.3 Number of Prompts + +For each concurrency level, configure `num_prompts` to simulate realistic user loads: + +- **Quick Test**: `num_prompts = concurrency × 1` (minimal test) +- **Recommended**: `num_prompts = concurrency × 5` (standard benchmark) +- **Stable Measurements**: `num_prompts = concurrency × 10` (production-grade) + +--- + +#### 5.1.4 Benchmark Commands + +**Scenario 1: Chat (1K/1K) - Most Important** + +- **Model Deployment** + +```bash Command +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-R1-0528 \ + --tp 8 +``` + +- Low Concurrency (Latency-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-R1-0528 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 40.00 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4210 +Total generated tokens (retokenized): 4205 +Request throughput (req/s): 0.25 +Input token throughput (tok/s): 152.52 +Output token throughput (tok/s): 105.24 +Peak output token throughput (tok/s): 110.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 257.76 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3998.40 +Median E2E Latency (ms): 3207.53 +---------------Time to First Token---------------- +Mean TTFT (ms): 153.00 +Median TTFT (ms): 140.76 +P99 TTFT (ms): 214.66 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 9.16 +Median TPOT (ms): 9.15 +P99 TPOT (ms): 9.21 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.16 +Median ITL (ms): 9.15 +P95 ITL (ms): 9.47 +P99 ITL (ms): 9.63 +Max ITL (ms): 15.45 +================================================== +``` + +- Medium Concurrency (Balanced) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-R1-0528 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 51.21 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40725 +Total generated tokens (retokenized): 40458 +Request throughput (req/s): 1.56 +Input token throughput (tok/s): 774.66 +Output token throughput (tok/s): 795.30 +Peak output token throughput (tok/s): 1088.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 1569.96 +Concurrency: 13.93 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 8918.33 +Median E2E Latency (ms): 9466.16 +---------------Time to First Token---------------- +Mean TTFT (ms): 273.51 +Median TTFT (ms): 131.71 +P99 TTFT (ms): 839.57 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 17.56 +Median TPOT (ms): 17.46 +P99 TPOT (ms): 28.68 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 17.02 +Median ITL (ms): 14.70 +P95 ITL (ms): 16.41 +P99 ITL (ms): 112.38 +Max ITL (ms): 461.90 +================================================== +``` + +- High Concurrency (Throughput-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-R1-0528 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 110.46 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252162 +Total generated tokens (retokenized): 251441 +Request throughput (req/s): 4.53 +Input token throughput (tok/s): 2261.80 +Output token throughput (tok/s): 2282.90 +Peak output token throughput (tok/s): 3900.00 +Peak concurrent requests: 109 +Total token throughput (tok/s): 4544.71 +Concurrency: 92.26 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 20380.71 +Median E2E Latency (ms): 19391.65 +---------------Time to First Token---------------- +Mean TTFT (ms): 563.14 +Median TTFT (ms): 147.62 +P99 TTFT (ms): 2632.11 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 40.11 +Median TPOT (ms): 41.98 +P99 TPOT (ms): 50.10 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 39.37 +Median ITL (ms): 26.36 +P95 ITL (ms): 98.16 +P99 ITL (ms): 150.08 +Max ITL (ms): 2052.85 +================================================== +``` + +**Scenario 2: Reasoning (1K/8K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-R1-0528 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 411.34 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 44452 +Total generated tokens (retokenized): 44390 +Request throughput (req/s): 0.02 +Input token throughput (tok/s): 14.83 +Output token throughput (tok/s): 108.07 +Peak output token throughput (tok/s): 110.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 122.90 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 41132.04 +Median E2E Latency (ms): 44288.71 +---------------Time to First Token---------------- +Mean TTFT (ms): 125.76 +Median TTFT (ms): 126.19 +P99 TTFT (ms): 137.69 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 9.21 +Median TPOT (ms): 9.20 +P99 TPOT (ms): 9.27 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.23 +Median ITL (ms): 9.22 +P95 ITL (ms): 9.64 +P99 ITL (ms): 9.86 +Max ITL (ms): 15.18 +================================================== +``` + +- Medium Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-R1-0528 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 348.93 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 318226 +Total generated tokens (retokenized): 317630 +Request throughput (req/s): 0.23 +Input token throughput (tok/s): 113.69 +Output token throughput (tok/s): 912.02 +Peak output token throughput (tok/s): 1088.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 1025.70 +Concurrency: 14.07 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 61360.70 +Median E2E Latency (ms): 62071.20 +---------------Time to First Token---------------- +Mean TTFT (ms): 176.02 +Median TTFT (ms): 153.75 +P99 TTFT (ms): 268.44 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 15.42 +Median TPOT (ms): 15.59 +P99 TPOT (ms): 16.07 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 15.39 +Median ITL (ms): 15.17 +P95 ITL (ms): 16.62 +P99 ITL (ms): 18.13 +Max ITL (ms): 226.59 +================================================== +``` + +- High Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-R1-0528 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 589.31 +Total input tokens: 158939 +Total input text tokens: 158939 +Total input vision tokens: 0 +Total generated tokens: 1300705 +Total generated tokens (retokenized): 1297658 +Request throughput (req/s): 0.54 +Input token throughput (tok/s): 269.70 +Output token throughput (tok/s): 2207.16 +Peak output token throughput (tok/s): 2944.00 +Peak concurrent requests: 68 +Total token throughput (tok/s): 2476.86 +Concurrency: 57.03 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 105032.36 +Median E2E Latency (ms): 108229.09 +---------------Time to First Token---------------- +Mean TTFT (ms): 223.91 +Median TTFT (ms): 158.15 +P99 TTFT (ms): 474.86 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 25.94 +Median TPOT (ms): 26.72 +P99 TPOT (ms): 27.99 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 25.79 +Median ITL (ms): 25.37 +P95 ITL (ms): 26.70 +P99 ITL (ms): 105.49 +Max ITL (ms): 237.91 +================================================== +``` + +**Scenario 3: Summarization (8K/1K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-R1-0528 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 40.65 +Total input tokens: 41941 +Total input text tokens: 41941 +Total input vision tokens: 0 +Total generated tokens: 4210 +Total generated tokens (retokenized): 4195 +Request throughput (req/s): 0.25 +Input token throughput (tok/s): 1031.65 +Output token throughput (tok/s): 103.56 +Peak output token throughput (tok/s): 110.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 1135.20 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 4063.62 +Median E2E Latency (ms): 3296.13 +---------------Time to First Token---------------- +Mean TTFT (ms): 165.91 +Median TTFT (ms): 154.96 +P99 TTFT (ms): 240.92 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 9.26 +Median TPOT (ms): 9.27 +P99 TPOT (ms): 9.42 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.28 +Median ITL (ms): 9.28 +P95 ITL (ms): 9.66 +P99 ITL (ms): 9.83 +Max ITL (ms): 14.06 +================================================== +``` + +- Medium Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-R1-0528 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 56.71 +Total input tokens: 300020 +Total input text tokens: 300020 +Total input vision tokens: 0 +Total generated tokens: 41589 +Total generated tokens (retokenized): 41490 +Request throughput (req/s): 1.41 +Input token throughput (tok/s): 5290.75 +Output token throughput (tok/s): 733.41 +Peak output token throughput (tok/s): 1024.00 +Peak concurrent requests: 20 +Total token throughput (tok/s): 6024.16 +Concurrency: 14.25 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 10098.99 +Median E2E Latency (ms): 10623.46 +---------------Time to First Token---------------- +Mean TTFT (ms): 486.80 +Median TTFT (ms): 189.59 +P99 TTFT (ms): 2138.73 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 19.06 +Median TPOT (ms): 19.23 +P99 TPOT (ms): 30.69 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 18.53 +Median ITL (ms): 15.63 +P95 ITL (ms): 16.64 +P99 ITL (ms): 109.71 +Max ITL (ms): 1471.36 +================================================== +``` + +- High Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-R1-0528 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 115.55 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total input vision tokens: 0 +Total generated tokens: 169680 +Total generated tokens (retokenized): 169275 +Request throughput (req/s): 2.77 +Input token throughput (tok/s): 11024.93 +Output token throughput (tok/s): 1468.50 +Peak output token throughput (tok/s): 2254.00 +Peak concurrent requests: 70 +Total token throughput (tok/s): 12493.43 +Concurrency: 59.45 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 21465.98 +Median E2E Latency (ms): 20686.26 +---------------Time to First Token---------------- +Mean TTFT (ms): 913.93 +Median TTFT (ms): 224.92 +P99 TTFT (ms): 6257.83 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 39.93 +Median TPOT (ms): 40.99 +P99 TPOT (ms): 60.91 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 38.83 +Median ITL (ms): 26.29 +P95 ITL (ms): 113.81 +P99 ITL (ms): 176.94 +Max ITL (ms): 5521.53 +================================================== +``` + +#### 5.1.5 Understanding the Results + +**Key Metrics:** + +- **Request Throughput (req/s)**: Number of requests processed per second +- **Output Token Throughput (tok/s)**: Total tokens generated per second +- **Mean TTFT (ms)**: Time to First Token - measures responsiveness +- **Mean TPOT (ms)**: Time Per Output Token - measures generation speed +- **Mean ITL (ms)**: Inter-Token Latency - measures streaming consistency + +**Why These Configurations Matter:** + +- **1K/1K (Chat)**: Represents the most common conversational AI workload. This is the highest priority scenario for most deployments. +- **1K/8K (Reasoning)**: Tests long-form generation capabilities crucial for complex reasoning, code generation, and detailed explanations. +- **8K/1K (Summarization)**: Evaluates performance with large context inputs, essential for RAG systems, document Q&A, and summarization tasks. +- **Variable Concurrency**: Captures the Pareto frontier - the optimal trade-off between throughput and latency at different load levels. Low concurrency shows best-case latency, high concurrency shows maximum throughput. + +**Interpreting Results:** + +- Compare your results against baseline numbers for your hardware +- Higher throughput at same latency = better performance +- Lower TTFT = more responsive user experience +- Lower TPOT = faster generation speed + +### 5.2 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command + +```bash Command +python3 benchmark/gsm8k/bench_sglang.py \ + --num-shots 8 \ + --num-questions 1316 \ + --parallel 1316 +``` + +**Test Results:** + +```text Output +Accuracy: 0.959 +Invalid: 0.000 +Latency: 29.185 s +Output throughput: 4854.672 token/s +``` diff --git a/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3.mdx b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3.mdx new file mode 100644 index 000000000..56e8b3260 --- /dev/null +++ b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3.mdx @@ -0,0 +1,520 @@ +--- +title: "DeepSeek-V3" +metatags: + description: "Deploy DeepSeek-V3 MoE model with SGLang - efficient architecture with strong reasoning, coding, and tool-augmented capabilities." +--- + + +## 1. Model Introduction + +[DeepSeek V3](https://huggingface.co/deepseek-ai/DeepSeek-V3) is a large-scale Mixture-of-Experts (MoE) language model developed by DeepSeek, designed to deliver strong general-purpose reasoning, coding, and tool-augmented capabilities with high training and inference efficiency. As the latest generation in the DeepSeek model family, DeepSeek V3 introduces systematic architectural and training innovations that significantly improve performance across reasoning, mathematics, coding, and long-context understanding, while maintaining a competitive compute cost. + +Key highlights include: + +- **Efficient MoE architecture**: DeepSeek V3 adopts a fine-grained Mixture-of-Experts design with a large number of experts and sparse activation, enabling high model capacity while keeping inference and training costs manageable. +- **Advanced reasoning and coding**: The model demonstrates strong performance on mathematical reasoning, logical inference, and real-world coding benchmarks, benefiting from improved data curation and training strategies. +- **Long-context capability**: DeepSeek V3 supports extended context lengths, allowing it to handle long documents, complex multi-step reasoning, and agent-style workflows more effectively. +- **Tool use and function calling**: The model is trained to support structured outputs and tool invocation, enabling seamless integration with external tools and agent frameworks during inference. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance optimization, suitable for users at different levels. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model variant, deployment strategy, and thinking capabilities. + +import { DeepSeekV3Deployment } from "/src/snippets/autoregressive/deepseek-v3-deployment.jsx"; + + + +### 3.2 Configuration Tips +For more detailed configuration tips, please refer to [DeepSeek-V3 Usage](../../../docs/basic_usage/deepseek_v3). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [Basic API Usage](../../../docs/get-started/quickstart) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +DeepSeek-V3 supports reasoning mode. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +python -m sglang.launch_server \ + --model deepseek-ai/DeepSeek-V3 \ + --reasoning-parser deepseek-v3 \ + --tp 8 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-V3", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + extra_body = {"chat_template_kwargs": {"thinking": True}}, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +To determine 15% of a number, follow these steps: + +**Step 1: Understand the Problem** +You need to find 15% of a given number. Let's assume the number is 240 for this example. + +**Step 2: Convert the Percentage to a Decimal** +To work with percentages in calculations, convert the percentage to its decimal form. To do this, divide the percentage by 100. + +\[ 15\% = \frac{15}{100} = 0.15 \] + +**Step 3: Multiply the Decimal by the Number** +Now, multiply the decimal form of the percentage by the number you want to find the percentage of. + +\[ 0.15 \times 240 \] + +**Step 4: Perform the Multiplication** +Calculate the product: + +\[ 0.15 \times 240 = 36 \] + +**Step 5: Conclusion** +Therefore, 15% of 240 is: + +\boxed{36} + +The answer is 36. To find 15% of 240, we multiply 240 by 0.15, which equals 36. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.2 Tool Calling + +DeepSeek-V3 supports tool calling capabilities. Enable the tool call parser: + +**Deployment Command:** + +```shell Command +python -m sglang.launch_server \ + --model deepseek-ai/DeepSeek-V3 \ + --tool-call-parser deepseekv3 \ + --reasoning-parser deepseek-v3 \ + --chat-template ./examples/chat_template/tool_chat_template_deepseekv3.jinja \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-V3", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + extra_body = {"chat_template_kwargs": {"thinking": True}}, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"🔧 Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +<|tool▁calls▁begin|><|tool▁call▁begin|>function<|tool▁sep|>get_weather +```json +{"location": "Beijing", "unit": "celsius"} +```<|tool▁call▁end|><|tool▁calls▁end|> +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +Please attach the code blocks below to the previous Python script. + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-V3", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: AMD MI300X GPU (8x) +- Model: DeepSeek-V3 +- Tensor Parallelism: 8 +- sglang version: 0.5.7 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. To simulate real-world usage patterns, we configure each request with 1024 input tokens and 1024 output tokens, representing typical medium-length conversations with detailed responses. + +#### 5.1.1 Latency-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3 \ + --tp 8 \ + --dp 8 \ + --enable-dp-attention \ + --speculative-algorithm EAGLE \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 8000 \ + --model deepseek-ai/DeepSeek-V3 \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 81.27 +Total input tokens: 1972 +Total input text tokens: 1972 +Total input vision tokens: 0 +Total generated tokens: 2784 +Total generated tokens (retokenized): 2774 +Request throughput (req/s): 0.12 +Input token throughput (tok/s): 24.27 +Output token throughput (tok/s): 34.26 +Peak output token throughput (tok/s): 65.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 58.52 +Concurrency: 1.00 +Accept length: 2.61 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 8123.17 +Median E2E Latency (ms): 7982.65 +---------------Time to First Token---------------- +Mean TTFT (ms): 1080.76 +Median TTFT (ms): 1248.82 +P99 TTFT (ms): 1896.37 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 25.04 +Median TPOT (ms): 24.76 +P99 TPOT (ms): 32.09 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 25.41 +Median ITL (ms): 20.14 +P95 ITL (ms): 60.28 +P99 ITL (ms): 60.99 +Max ITL (ms): 61.49 +================================================== +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3 \ + --tp 8 \ + --ep 8 \ + --dp 8 \ + --enable-dp-attention \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 8000 \ + --model deepseek-ai/DeepSeek-V3 \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 1000 \ + --max-concurrency 100 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 406.16 +Total input tokens: 301701 +Total input text tokens: 301701 +Total input vision tokens: 0 +Total generated tokens: 188375 +Total generated tokens (retokenized): 187542 +Request throughput (req/s): 2.46 +Input token throughput (tok/s): 742.81 +Output token throughput (tok/s): 463.80 +Peak output token throughput (tok/s): 1299.00 +Peak concurrent requests: 109 +Total token throughput (tok/s): 1206.61 +Concurrency: 87.53 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 35552.98 +Median E2E Latency (ms): 21466.07 +---------------Time to First Token---------------- +Mean TTFT (ms): 1521.51 +Median TTFT (ms): 476.80 +P99 TTFT (ms): 8329.50 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 214.73 +Median TPOT (ms): 152.00 +P99 TPOT (ms): 1155.85 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 182.10 +Median ITL (ms): 79.18 +P95 ITL (ms): 398.60 +P99 ITL (ms): 1488.96 +Max ITL (ms): 43465.60 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 --port 8000 +``` + +- **Test Results**: + - DeepSeek-V3 + ```text Output + Accuracy: 0.960 + Invalid: 0.000 + Latency: 32.450 s + Output throughput: 614.211 token/s + ``` + +#### 5.2.2 MMLU Benchmark + +- **Benchmark Command:** + +```shell Command +cd sglang +bash benchmark/mmlu/download_data.sh +python3 benchmark/mmlu/bench_sglang.py --nsub 10 --port 8000 +``` + +- **Test Results**: + - DeepSeek-V3 + ```text Output + subject: abstract_algebra, #q:100, acc: 0.800 + subject: anatomy, #q:135, acc: 0.874 + subject: astronomy, #q:152, acc: 0.928 + subject: business_ethics, #q:100, acc: 0.880 + subject: clinical_knowledge, #q:265, acc: 0.928 + subject: college_biology, #q:144, acc: 0.965 + subject: college_chemistry, #q:100, acc: 0.670 + subject: college_computer_science, #q:100, acc: 0.840 + subject: college_mathematics, #q:100, acc: 0.800 + subject: college_medicine, #q:173, acc: 0.861 + Total latency: 58.339 + Average accuracy: 0.871 + ``` diff --git a/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3_1.mdx b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3_1.mdx new file mode 100644 index 000000000..945e0e815 --- /dev/null +++ b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3_1.mdx @@ -0,0 +1,941 @@ +--- +title: DeepSeek-V3.1 +metatags: + description: "Deploy DeepSeek-V3.1 MoE model with SGLang - hybrid reasoning, improved tool calling, and agentic behavior for complex multi-step tasks." +--- + +## 1. Model Introduction + +[DeepSeek V3.1](https://huggingface.co/deepseek-ai/DeepSeek-V3.1) is an advanced Mixture-of-Experts (MoE) large language model developed by DeepSeek, representing a major capability and usability upgrade over DeepSeek V3. As a refined iteration in the DeepSeek V3 family, DeepSeek V3.1 introduces a hybrid reasoning paradigm that supports both fast non-thinking responses and explicit multi-step reasoning, alongside significantly improved tool calling and agentic behavior. The model demonstrates strong performance across reasoning, mathematics, coding, long-context understanding, and real-world agent workflows, benefiting from continued training, alignment optimization, and inference-time refinements. DeepSeek V3.1 is designed to serve as a robust general-purpose foundation model, well suited for conversational AI, structured tool invocation, search-augmented generation, and complex multi-step tasks, while maintaining high efficiency through its sparse MoE architecture. + +**[DeepSeek-V3.1-Terminus](https://huggingface.co/deepseek-ai/DeepSeek-V3.1-Terminus)** is an experimental version designed for general conversations and long-context processing. It features hybrid thinking capabilities, allowing you to toggle between "Think" mode for deliberate reasoning and "Non-Think" mode for faster responses. Recommended for general conversations, long-context processing, and experimental use cases. + + + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance optimization, suitable for users at different levels. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model variant, deployment strategy, and thinking capabilities. + +import { DeepSeekV31Deployment } from "/src/snippets/autoregressive/deepseek-v31-deployment.jsx"; + + + +### 3.2 Configuration Tips +For more detailed configuration tips, please refer to [DeepSeek V3/V3.1/R1 Usage](../../../docs/basic_usage/deepseek_v3). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [Basic API Usage](../../../docs/get-started/quickstart) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +DeepSeek-V3.1 supports reasoning mode. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +python -m sglang.launch_server \ + --model deepseek-ai/DeepSeek-V3.1-Terminus \ + --reasoning-parser deepseek-v3 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-V3.1-Terminus", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + extra_body = {"chat_template_kwargs": {"thinking": True}}, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +First, the problem is asking for 15% of 240. Percent means per hundred, so 15% is the same as 15 out of 100, or 15/100. + +To find a percentage of a number, I can multiply the number by the percentage expressed as a decimal. So, I need to convert 15% to a decimal. To do that, I divide 15 by 100, which gives me 0.15. + +Now, I multiply 0.15 by 240. So, the calculation is 0.15 × 240. + +I can compute this step by step. First, I know that 15% of 100 is 15, but since 240 is larger, I need to adjust. Alternatively, I can think of 10% of 240, which is easy because 10% is just 240 divided by 10, which is 24. Then, 5% is half of 10%, so half of 24 is 12. Therefore, 15% is 10% plus 5%, so 24 plus 12, which equals 36. + +I should also do the multiplication to confirm. 0.15 × 240. I can break it down: 0.15 × 200 = 30, and 0.15 × 40 = 6, so 30 + 6 = 36. Same answer. + +So, 15% of 240 is 36. + +The problem says "step by step," so I should present it clearly. +=============== Content ================= +To find 15% of 240, follow these steps: + +1. Understand that "percent" means "per hundred," so 15% is equivalent to \( \frac{15}{100} \). +2. Convert 15% to a decimal by dividing by 100: \( 15\% = \frac{15}{100} = 0.15 \). +3. Multiply the decimal by 240: \( 0.15 \times 240 \). +4. Perform the multiplication: + - \( 0.15 \times 200 = 30 \) + - \( 0.15 \times 40 = 6 \) + - Add the results: \( 30 + 6 = 36 \). + +Alternatively, you can find 15% by breaking it into parts: +- 10% of 240 is \( \frac{10}{100} \times 240 = 0.10 \times 240 = 24 \). +- 5% of 240 is half of 10%, so \( \frac{24}{2} = 12 \). +- Add 10% and 5%: \( 24 + 12 = 36 \). + +Thus, 15% of 240 is 36. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.2 Tool Calling + +DeepSeek-V3.1 and DeepSeek-V3.1-Terminus support tool calling capabilities. Enable the tool call parser: + +**Note:** DeepSeek-V3.1-Speciale does **NOT** support tool calling. It is designed exclusively for deep reasoning tasks. + +**Deployment Command:** + +```shell Command +python -m sglang.launch_server \ + --model deepseek-ai/DeepSeek-V3.1-Terminus \ + --tool-call-parser deepseekv31 \ + --reasoning-parser deepseek-v3 \ + --chat-template ./examples/chat_template/tool_chat_template_deepseekv31.jinja \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +For DeepSeek-V3.1, use `--tool-call-parser deepseekv31` as well. + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-V3.1-Terminus", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + extra_body = {"chat_template_kwargs": {"thinking": True}}, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"🔧 Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +Hmm, the user is asking for the weather in Beijing. This is a straightforward request that matches exactly what the weather tool can provide. + +I need to call the get_weather function with Beijing as the location parameter. The user didn't specify a temperature unit, so I'll default to Celsius since that's commonly used in most parts of the world. + +The tool call format needs to be precise - just the city name and unit selection. Once I get the weather data back, I'll present it clearly to the user.I'll check the weather in Beijing for you. +=============== Content ================= + +🔧 Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +Please attach the code blocks below to the previous Python script. + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-V3.1-Terminus", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "Currently, it is **22°C and sunny** in Beijing." +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: AMD MI300X GPU (8x) +- Model: DeepSeek-V3.1-Terminus +- Tensor Parallelism: 8 +- sglang version: 0.5.7 + +**Benchmark Methodology:** + +We use industry-standard benchmark configurations to ensure results are comparable across frameworks and hardware platforms. + +#### 5.1.1 Standard Test Scenarios + +Three core scenarios reflect real-world usage patterns: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ScenarioInput LengthOutput LengthUse Case
      **Chat**1K1KMost common conversational AI workload
      **Reasoning**1K8KLong-form generation, complex reasoning tasks
      **Summarization**8K1KDocument summarization, RAG retrieval
      + +#### 5.1.2 Concurrency Levels + +Test each scenario at different concurrency levels to capture the throughput vs. latency trade-off: + +- **Low Concurrency**: `--max-concurrency 1` (Latency-optimized) +- **Medium Concurrency**: `--max-concurrency 16` (Balanced) +- **High Concurrency**: `--max-concurrency 100` (Throughput-optimized) + +#### 5.1.3 Number of Prompts + +For each concurrency level, configure `num_prompts` to simulate realistic user loads: + +- **Quick Test**: `num_prompts = concurrency × 1` (minimal test) +- **Recommended**: `num_prompts = concurrency × 5` (standard benchmark) +- **Stable Measurements**: `num_prompts = concurrency × 10` (production-grade) + +--- + +#### 5.1.4 Benchmark Commands + +**Scenario 1: Chat (1K/1K) - Most Important** + +- **Model Deployment** + +```bash Command +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.1 \ + --tp 8 +``` + +- Low Concurrency (Latency-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-V3.1 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 106.24 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4201 +Request throughput (req/s): 0.09 +Input token throughput (tok/s): 57.43 +Output token throughput (tok/s): 39.72 +Peak output token throughput (tok/s): 43.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 97.15 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 10620.29 +Median E2E Latency (ms): 8868.09 +---------------Time to First Token---------------- +Mean TTFT (ms): 557.85 +Median TTFT (ms): 213.58 +P99 TTFT (ms): 1625.28 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 23.84 +Median TPOT (ms): 23.90 +P99 TPOT (ms): 24.03 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 23.90 +Median ITL (ms): 23.92 +P95 ITL (ms): 24.15 +P99 ITL (ms): 24.25 +Max ITL (ms): 25.44 +================================================== +``` + +- Medium Concurrency (Balanced) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-V3.1 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 107.71 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40625 +Request throughput (req/s): 0.74 +Input token throughput (tok/s): 368.28 +Output token throughput (tok/s): 378.84 +Peak output token throughput (tok/s): 508.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 747.12 +Concurrency: 13.72 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 18473.65 +Median E2E Latency (ms): 19558.42 +---------------Time to First Token---------------- +Mean TTFT (ms): 607.91 +Median TTFT (ms): 191.32 +P99 TTFT (ms): 2135.13 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 35.50 +Median TPOT (ms): 35.99 +P99 TPOT (ms): 43.62 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 35.10 +Median ITL (ms): 32.18 +P95 ITL (ms): 33.03 +P99 ITL (ms): 159.99 +Max ITL (ms): 453.99 +================================================== +``` + +- High Concurrency (Throughput-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-V3.1 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 207.65 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 251238 +Request throughput (req/s): 2.41 +Input token throughput (tok/s): 1203.15 +Output token throughput (tok/s): 1216.79 +Peak output token throughput (tok/s): 2100.00 +Peak concurrent requests: 106 +Total token throughput (tok/s): 2419.94 +Concurrency: 91.02 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 37800.20 +Median E2E Latency (ms): 35921.56 +---------------Time to First Token---------------- +Mean TTFT (ms): 835.15 +Median TTFT (ms): 236.88 +P99 TTFT (ms): 2868.52 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 73.33 +Median TPOT (ms): 76.35 +P99 TPOT (ms): 97.63 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 73.30 +Median ITL (ms): 50.82 +P95 ITL (ms): 180.67 +P99 ITL (ms): 186.83 +Max ITL (ms): 1661.39 +================================================== +``` + +**Scenario 2: Reasoning (1K/8K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-V3.1 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 1097.29 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 44462 +Total generated tokens (retokenized): 44313 +Request throughput (req/s): 0.01 +Input token throughput (tok/s): 5.56 +Output token throughput (tok/s): 40.52 +Peak output token throughput (tok/s): 43.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 46.08 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 109725.52 +Median E2E Latency (ms): 117748.67 +---------------Time to First Token---------------- +Mean TTFT (ms): 156.67 +Median TTFT (ms): 156.19 +P99 TTFT (ms): 159.87 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 24.41 +Median TPOT (ms): 24.51 +P99 TPOT (ms): 24.96 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 24.65 +Median ITL (ms): 24.58 +P95 ITL (ms): 25.68 +P99 ITL (ms): 25.93 +Max ITL (ms): 29.80 +================================================== +``` + +- Medium Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-V3.1 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 775.02 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 318306 +Total generated tokens (retokenized): 317426 +Request throughput (req/s): 0.10 +Input token throughput (tok/s): 51.18 +Output token throughput (tok/s): 410.70 +Peak output token throughput (tok/s): 512.00 +Peak concurrent requests: 18 +Total token throughput (tok/s): 461.89 +Concurrency: 13.86 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 134236.65 +Median E2E Latency (ms): 135181.28 +---------------Time to First Token---------------- +Mean TTFT (ms): 214.35 +Median TTFT (ms): 194.12 +P99 TTFT (ms): 300.27 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 33.72 +Median TPOT (ms): 34.00 +P99 TPOT (ms): 34.75 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 33.69 +Median ITL (ms): 33.71 +P95 ITL (ms): 34.50 +P99 ITL (ms): 34.92 +Max ITL (ms): 164.76 +================================================== +``` + +- High Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-V3.1 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 1231.97 +Total input tokens: 158939 +Total input text tokens: 158939 +Total input vision tokens: 0 +Total generated tokens: 1301025 +Total generated tokens (retokenized): 1296845 +Request throughput (req/s): 0.26 +Input token throughput (tok/s): 129.01 +Output token throughput (tok/s): 1056.05 +Peak output token throughput (tok/s): 1472.00 +Peak concurrent requests: 67 +Total token throughput (tok/s): 1185.07 +Concurrency: 56.17 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 216256.25 +Median E2E Latency (ms): 224192.84 +---------------Time to First Token---------------- +Mean TTFT (ms): 317.68 +Median TTFT (ms): 235.28 +P99 TTFT (ms): 649.39 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 53.30 +Median TPOT (ms): 55.10 +P99 TPOT (ms): 56.58 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 53.13 +Median ITL (ms): 52.95 +P95 ITL (ms): 56.23 +P99 ITL (ms): 181.04 +Max ITL (ms): 208.61 +================================================== +``` + +**Scenario 3: Summarization (8K/1K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-V3.1 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 114.47 +Total input tokens: 41941 +Total input text tokens: 41941 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4194 +Request throughput (req/s): 0.09 +Input token throughput (tok/s): 366.39 +Output token throughput (tok/s): 36.87 +Peak output token throughput (tok/s): 42.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 403.26 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 11442.86 +Median E2E Latency (ms): 9508.87 +---------------Time to First Token---------------- +Mean TTFT (ms): 883.78 +Median TTFT (ms): 481.38 +P99 TTFT (ms): 2217.45 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 24.93 +Median TPOT (ms): 25.05 +P99 TPOT (ms): 26.11 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 25.08 +Median ITL (ms): 25.08 +P95 ITL (ms): 26.18 +P99 ITL (ms): 26.28 +Max ITL (ms): 27.41 +================================================== +``` + +- Medium Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-V3.1 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 162.33 +Total input tokens: 300020 +Total input text tokens: 300020 +Total input vision tokens: 0 +Total generated tokens: 41669 +Total generated tokens (retokenized): 41443 +Request throughput (req/s): 0.49 +Input token throughput (tok/s): 1848.27 +Output token throughput (tok/s): 256.70 +Peak output token throughput (tok/s): 467.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 2104.97 +Concurrency: 14.52 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 29456.89 +Median E2E Latency (ms): 27628.16 +---------------Time to First Token---------------- +Mean TTFT (ms): 1784.30 +Median TTFT (ms): 1347.21 +P99 TTFT (ms): 5384.54 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 53.65 +Median TPOT (ms): 52.09 +P99 TPOT (ms): 74.39 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 53.23 +Median ITL (ms): 34.52 +P95 ITL (ms): 35.81 +P99 ITL (ms): 513.25 +Max ITL (ms): 2865.73 +================================================== +``` + +- High Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model deepseek-ai/DeepSeek-V3.1 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 282.55 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total input vision tokens: 0 +Total generated tokens: 170000 +Total generated tokens (retokenized): 169081 +Request throughput (req/s): 1.13 +Input token throughput (tok/s): 4508.6 +Output token throughput (tok/s): 601.67 +Peak output token throughput (tok/s): 1216 +Peak concurrent requests: 68 +Total token throughput (tok/s): 5110.27 +Concurrency: 59.81 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 52810.32 +Median E2E Latency (ms): 50981.81 +---------------Time to First Token---------------- +Mean TTFT (ms): 786.69 +Median TTFT (ms): 499.38 +P99 TTFT (ms): 2925.98 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 97.93 +Median TPOT (ms): 103.45 +P99 TPOT (ms): 157.84 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 98.11 +Median ITL (ms): 55.7 +P95 ITL (ms): 240.71 +P99 ITL (ms): 1114.36 +================================================== +``` + +#### 5.1.5 Understanding the Results + +**Key Metrics:** + +- **Request Throughput (req/s)**: Number of requests processed per second +- **Output Token Throughput (tok/s)**: Total tokens generated per second +- **Mean TTFT (ms)**: Time to First Token - measures responsiveness +- **Mean TPOT (ms)**: Time Per Output Token - measures generation speed +- **Mean ITL (ms)**: Inter-Token Latency - measures streaming consistency + +**Why These Configurations Matter:** + +- **1K/1K (Chat)**: Represents the most common conversational AI workload. This is the highest priority scenario for most deployments. +- **1K/8K (Reasoning)**: Tests long-form generation capabilities crucial for complex reasoning, code generation, and detailed explanations. +- **8K/1K (Summarization)**: Evaluates performance with large context inputs, essential for RAG systems, document Q&A, and summarization tasks. +- **Variable Concurrency**: Captures the Pareto frontier - the optimal trade-off between throughput and latency at different load levels. Low concurrency shows best-case latency, high concurrency shows maximum throughput. + +**Interpreting Results:** + +- Compare your results against baseline numbers for your hardware +- Higher throughput at same latency = better performance +- Lower TTFT = more responsive user experience +- Lower TPOT = faster generation speed + +### 5.2 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command + +```bash Command +python3 benchmark/gsm8k/bench_sglang.py \ + --num-shots 8 \ + --num-questions 1316 \ + --parallel 1316 +``` + +**Test Results:** + +```text Output +Accuracy: 0.959 +Invalid: 0.000 +Latency: 29.185 s +Output throughput: 4854.672 token/s +``` diff --git a/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3_2.mdx b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3_2.mdx new file mode 100644 index 000000000..594f6f214 --- /dev/null +++ b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V3_2.mdx @@ -0,0 +1,827 @@ +--- +title: DeepSeek-V3.2 +metatags: + description: "Deploy DeepSeek-V3.2 with SGLang - featuring DeepSeek Sparse Attention for efficient long-context processing and deep reasoning capabilities." +--- + +## 1. Model Introduction + +The DeepSeek-V3.2 series includes three model variants, each optimized for different use cases: + +**[DeepSeek-V3.2-Exp](https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Exp)** is an upgraded version of DeepSeek-V3.1-Terminus, introducing the DeepSeek Sparse Attention (DSA) mechanism through continued training. DSA is a fine-grained sparse attention mechanism powered by a lightning indexer, enabling DeepSeek-V3.2-Exp to achieve significant efficiency improvements in long-context scenarios. Recommended for general conversations, long-context processing, and efficient inference. + +**[DeepSeek-V3.2](https://huggingface.co/deepseek-ai/DeepSeek-V3.2)** is the standard version suitable for general tasks and conversational scenarios. For local deployment, we recommend setting the sampling parameters to temperature = 1.0, top_p = 0.95. Recommended for standard conversations and general tasks. + +**[DeepSeek-V3.2-Speciale](https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Speciale)** is a special variant designed exclusively for deep reasoning tasks. This model is specifically optimized for scenarios requiring complex logical reasoning and deep thinking. However this model does not support tool calls (see below). For local deployment, we recommend setting the sampling parameters to temperature = 1.0, top_p = 0.95. Recommended for deep reasoning tasks, complex logical problems, and mathematical reasoning. + +**[DeepSeek-V3.2-NVFP4](https://huggingface.co/nvidia/DeepSeek-V3.2-NVFP4)** is an NVIDIA-optimized NVFP4-quantized variant of DeepSeek-V3.2 for Blackwell devices. It uses ModelOpt FP4 quantization with a choice of MoE runner backends (`flashinfer_trtllm` (recommended), `flashinfer_cutlass`, or `flashinfer_cutedsl`), enabling efficient deployment with lower tensor parallelism (TP=4). It supports the same features as DeepSeek-V3.2 including tool calling, reasoning, and speculative decoding (MTP). + +**[DeepSeek-V3.2-MXFP4](https://huggingface.co/amd/DeepSeek-V3.2-mxfp4)** is an OCP-MXFP4 optimized variant for DeepSeek-V3.2 for AMD MI300X/MI355X devices. It uses OCP MXFP4 quantization with a triton mxfp4 backend (the same backend for gptoss-120B), enabling efficient deployment with lower tensor parallelism (TP=8) in a single node. It includes the same features as DeepSeek-V3.2 including tool calling, reasoning, fp8-kv, CP, TP and speculative decoding MTP. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance optimization, suitable for users at different levels. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model variant, deployment strategy, and thinking capabilities. SGLang supports serving DeepSeek V3.2 on NVIDIA H200, B200, and AMD MI300X/MI355X GPUs. + +import { DeepSeekV32Deployment } from "/src/snippets/autoregressive/deepseek-v32-deployment.jsx"; + + + +### 3.2 Configuration Tips +For more detailed configuration tips, please refer to [DeepSeek-V3.2 Usage](../../../docs/basic_usage/deepseek_v32). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [Basic API Usage](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +DeepSeek-V3.2 supports reasoning mode. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +sglang serve \ + --model deepseek-ai/DeepSeek-V3.2-Exp \ + --reasoning-parser deepseek-v3 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 30000 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-V3.2-Exp", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + extra_body = {"chat_template_kwargs": {"thinking": True}}, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +To solve this problem, I need to calculate 15% of 240. +Step 1: Convert 15% to decimal: 15% = 0.15 +Step 2: Multiply 240 by 0.15 +Step 3: 240 × 0.15 = 36 +=============== Content ================= + +The answer is 36. To find 15% of 240, we multiply 240 by 0.15, which equals 36. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.2 Tool Calling + +DeepSeek-V3.2 and DeepSeek-V3.2-Exp support tool calling capabilities. But they use different parameters. Enable the tool call parser: + +**Note:** DeepSeek-V3.2-Speciale does **NOT** support tool calling. It is designed exclusively for deep reasoning tasks. + +**Deployment Command:** + +For DeepSeek-V3.2-Exp: + +```shell Command +sglang serve \ + --model deepseek-ai/DeepSeek-V3.2-Exp \ + --tool-call-parser deepseekv31 \ + --reasoning-parser deepseek-v3 \ + --chat-template ./examples/chat_template/tool_chat_template_deepseekv32.jinja \ + --tp 8 \ + --host 0.0.0.0 \ + --port 30000 +``` + +For DeepSeek-V3.2, use `--tool-call-parser deepseekv32` and remove `--chat-template`. + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-V3.2-Exp", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + extra_body = {"chat_template_kwargs": {"thinking": True}}, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I need to use the get_weather function to retrieve this information. +I should call the function with location="Beijing". +=============== Content ================= + +Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-V3.2-Exp", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +#### 4.2.3 Enabling PP, CP and TP with FP8 KV cache + +We suggested `DP2` + `MTP` for local deployment of agentic workflow with DeepSeek V3.2 on Hopper platform: + +```shell Command +export SGLANG_DEEPEP_LL_COMBINE_SEND_NUM_SMS=32 +export SGLANG_SET_CPU_AFFINITY=1 + +# Test workload ISL/OSL=1k/1k, raw tap : 4948.16 toks/sec, MAX ITL 5970 +# dp 2 : 5019.54 toks/sec, MAX ITL 7233 +# dp 4 : 4942.82 toks/sec, MAX ITL 35654 +# dp 2 + mtp : 6842.51 toks/sec, MAX ITL 3081 +sglang_args=$(echo serve \ + --model-path $MAPPED_MODEL_PATH \ + --nccl-init $MASTER_ADDR:$MASTER_PORT --nnodes 2 --node-rank $RANK --tp 16 \ + --dp 2 --enable-dp-attention --page-size 64 \ + --trust-remote-code --host "0.0.0.0" --port 30000 \ + --log-requests \ + --context-length 65536 --max-running-requests 128 \ + --speculative-algorithm EAGLE \ + --speculative-num-steps 2 --speculative-eagle-topk 1 --speculative-num-draft-tokens 3 \ + --allow-auto-truncate --enable-metrics \ + --tool-call-parser deepseekv32 --reasoning-parser deepseek-v3 \ + --served-model-name DeepSeek-V3.2-Opt-dp2-mtp +) + +sglang_args=($sglang_args) + +sglang "${sglang_args[@]}" 2>&1 | tee $LOG_DIR/$RANK.log +``` + +**CP + PP + EP + DP** + +`CP` is currently enabled with `PP=2` on Hopper platform and we can reduce TP=16 to TP=8 from standalone deployment: + +```shell Command +# verified on Hopper platform +sglang_args=$(echo serve \ + --model-path $MAPPED_MODEL_PATH \ + --nccl-init $MASTER_ADDR:$MASTER_PORT --nnodes 2 --node-rank $RANK --tp 8 --pp-size 2 --dp 1 --enable-dp-attention \ + --moe-a2a-backend deepep --ep-size 16 \ + --page-size 128 \ + --chunked-prefill-size 16384 \ + --attention-backend nsa \ + --nsa-prefill-backend flashmla_sparse \ + --nsa-decode-backend flashmla_sparse \ + --enable-nsa-prefill-context-parallel \ + --nsa-prefill-cp-mode round-robin-split \ + --cuda-graph-max-bs 128 \ + --max-running-requests 128 \ + --trust-remote-code --host "0.0.0.0" --port 30000 \ + --log-requests \ + --context-length 65536 \ + --allow-auto-truncate --enable-metrics \ + --tool-call-parser deepseekv32 --reasoning-parser deepseek-v3 \ + --served-model-name DeepSeek-V3.2-nsa-pp-cp-ep-dp +) + +sglang_args=($sglang_args) + +sglang "${sglang_args[@]}" 2>&1 | tee $LOG_DIR/$RANK.log +``` + +**fp8 KV + CP + PP** + +With FP8 KV, we can have less memory footprint. This can be combined with various parallel schemes: + +```shell Command +# verified in Hopper platform +dp=1 + +dp_config=" \ + --dp 1 --enable-dp-attention \ +" + +cp_config=" \ + --enable-nsa-prefill-context-parallel \ +" + +if [ "$dp" -eq 1 ]; then + +cp_config=" \ + $cp_config \ + --nsa-prefill-cp-mode round-robin-split \ +" + +else +cp_config=" \ + $cp_config \ + --nsa-prefill-cp-mode in-seq-split \ +" +fi + +# see discussion : https://github.com/sgl-project/sglang/pull/12065 +sglang_args=$(echo serve \ + --model-path $MAPPED_MODEL_PATH \ + --nccl-init $MASTER_ADDR:$MASTER_PORT --nnodes 2 --node-rank $RANK --tp 8 --pp-size 2 --pp-async-batch-depth 1 \ + $dp_config \ + --trust-remote-code --host "0.0.0.0" --port 30000 \ + --log-requests \ + --context-length 65536 --max-running-requests 128 \ + $cp_config \ + --kv-cache-dtype fp8_e4m3 \ + --allow-auto-truncate --enable-metrics \ + --tool-call-parser deepseekv32 --reasoning-parser deepseek-v3 \ + --served-model-name DeepSeek-V3.2-Opt-fp8kv-pp2-cp4 +) + +sglang_args=($sglang_args) + +sglang "${sglang_args[@]}" 2>&1 | tee $LOG_DIR/$RANK.log +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark on Blackwell + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU (8x) +- Model: DeepSeek-V3.2-Exp +- Tensor Parallelism: 8 +- sglang version: 0.5.6 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. To simulate real-world usage patterns, we configure each request with 1024 input tokens and 1024 output tokens, representing typical medium-length conversations with detailed responses. + +#### 5.1.1 Latency-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +sglang serve \ + --model-path deepseek-ai/DeepSeek-V3.2-Exp \ + --tp 8 \ + --speculative-algorithm EAGLE \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --host 0.0.0.0 \ + --port 30000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model deepseek-ai/DeepSeek-V3.2-Exp \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 29.11 +Total input tokens: 1972 +Total input text tokens: 1972 +Total input vision tokens: 0 +Total generated tokens: 2784 +Total generated tokens (retokenized): 2777 +Request throughput (req/s): 0.34 +Input token throughput (tok/s): 67.73 +Output token throughput (tok/s): 95.62 +Peak output token throughput (tok/s): 157.00 +Peak concurrent requests: 3 +Total token throughput (tok/s): 163.36 +Concurrency: 1.00 +Accept length: 2.46 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 2909.74 +Median E2E Latency (ms): 3088.27 +P90 E2E Latency (ms): 4200.62 +P99 E2E Latency (ms): 5588.52 +---------------Time to First Token---------------- +Mean TTFT (ms): 317.58 +Median TTFT (ms): 191.31 +P99 TTFT (ms): 740.79 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 9.09 +Median TPOT (ms): 9.25 +P99 TPOT (ms): 11.73 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.35 +Median ITL (ms): 7.64 +P95 ITL (ms): 22.81 +P99 ITL (ms): 23.33 +Max ITL (ms): 31.45 +================================================== +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +sglang serve \ + --model-path deepseek-ai/DeepSeek-V3.2-Exp \ + --tp 8 \ + --ep 8 \ + --dp 8 \ + --enable-dp-attention \ + --host 0.0.0.0 \ + --port 30000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model deepseek-ai/DeepSeek-V3.2-Exp \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 1000 \ + --max-concurrency 100 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 219.09 +Total input tokens: 301701 +Total input text tokens: 301701 +Total input vision tokens: 0 +Total generated tokens: 188375 +Total generated tokens (retokenized): 187443 +Request throughput (req/s): 4.56 +Input token throughput (tok/s): 1377.06 +Output token throughput (tok/s): 859.80 +Peak output token throughput (tok/s): 2465.00 +Peak concurrent requests: 109 +Total token throughput (tok/s): 2236.86 +Concurrency: 88.05 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 19291.23 +Median E2E Latency (ms): 11927.39 +---------------Time to First Token---------------- +Mean TTFT (ms): 530.36 +Median TTFT (ms): 444.00 +P99 TTFT (ms): 1504.78 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 106.16 +Median TPOT (ms): 106.69 +P99 TPOT (ms): 221.12 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 100.46 +Median ITL (ms): 41.73 +P95 ITL (ms): 225.67 +P99 ITL (ms): 392.37 +Max ITL (ms): 975.03 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 --port 30000 +``` + +- **Test Results**: + - DeepSeek-V3.2-Exp + ``` + Accuracy: 0.980 + Invalid: 0.000 + Latency: 19.128 s + Output throughput: 965.919 token/s + ``` + +#### 5.2.2 MMLU Benchmark + +- **Benchmark Command:** + +```shell Command +cd sglang +bash benchmark/mmlu/download_data.sh +python3 benchmark/mmlu/bench_sglang.py --nsub 10 --port 30000 +``` + +- **Test Results**: + - DeepSeek-V3.2-Exp + ``` + subject: abstract_algebra, #q:100, acc: 0.780 + subject: anatomy, #q:135, acc: 0.874 + subject: astronomy, #q:152, acc: 0.961 + subject: business_ethics, #q:100, acc: 0.860 + subject: clinical_knowledge, #q:265, acc: 0.925 + subject: college_biology, #q:144, acc: 0.972 + subject: college_chemistry, #q:100, acc: 0.660 + subject: college_computer_science, #q:100, acc: 0.880 + subject: college_mathematics, #q:100, acc: 0.840 + subject: college_medicine, #q:173, acc: 0.879 + Total latency: 7.961 + Average accuracy: 0.879 + ``` + +### 5.3 Speed Benchmark on Hopper + +**Test Environment:** + +- Hardware: NVIDIA H800 GPU (16x) +- Model: DeepSeek-V3.2 +- Tensor Parallelism: 16 +- sglang version: 0.5.9 + +#### 5.3.1 Latency-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +export SGLANG_DEEPEP_LL_COMBINE_SEND_NUM_SMS=32 +export SGLANG_SET_CPU_AFFINITY=1 + +# Test workload ISL/OSL=1k/1k, raw tap : 4948.16 toks/sec, MAX ITL 5970 +# dp 2 : 5019.54 toks/sec, MAX ITL 7233 +# dp 4 : 4942.82 toks/sec, MAX ITL 35654 +# dp 2 + mtp : 6842.51 toks/sec, MAX ITL 3081 +sglang_args=$(echo serve \ + --model-path $MAPPED_MODEL_PATH \ + --nccl-init $MASTER_ADDR:$MASTER_PORT --nnodes 2 --node-rank $RANK --tp 16 \ + --dp 2 --enable-dp-attention --page-size 64 \ + --trust-remote-code --host "0.0.0.0" --port 30000 \ + --log-requests \ + --context-length 65536 --max-running-requests 128 \ + --speculative-algorithm EAGLE \ + --speculative-num-steps 2 --speculative-eagle-topk 1 --speculative-num-draft-tokens 3 \ + --allow-auto-truncate --enable-metrics \ + --tool-call-parser deepseekv32 --reasoning-parser deepseek-v3 \ + --served-model-name DeepSeek-V3.2-Opt-dp2-mtp +) + +sglang_args=($sglang_args) + +sglang "${sglang_args[@]}" 2>&1 | tee $LOG_DIR/$RANK.log +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host $MASTER_ADDR \ + --port 30000 \ + --model deepseek-ai/DeepSeek-V3.2 \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: 64.0 +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 48.96 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4217 +Request throughput (req/s): 0.20 +Input token throughput (tok/s): 124.62 +Output token throughput (tok/s): 86.20 +Peak output token throughput (tok/s): 113.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 210.81 +Concurrency: 1.00 +Accept length: 3.27 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 4893.12 +Median E2E Latency (ms): 3742.47 +P90 E2E Latency (ms): 8877.37 +P99 E2E Latency (ms): 10769.85 +---------------Time to First Token---------------- +Mean TTFT (ms): 199.88 +Median TTFT (ms): 176.15 +P99 TTFT (ms): 272.49 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.99 +Median TPOT (ms): 10.88 +P99 TPOT (ms): 13.93 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 11.15 +Median ITL (ms): 8.86 +P95 ITL (ms): 17.29 +P99 ITL (ms): 33.71 +Max ITL (ms): 36.84 +================================================== +``` + +#### 5.3.2 Throughput-Sensitive Benchmark + +We simply use the same deployment method and vary the throughput by maximizing concurrencies: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host $MASTER_ADDR \ + --port 30000 \ + --model deepseek-ai/DeepSeek-V3.2 \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 2048 \ + --max-concurrency 1024 # see picture below why we use 1024 for concurrency, hence num prompts 2048 +``` + +DeepSeek 3.2 can steadily support concurrency up to `1024` and when concurrency is greater than `128`, the TTFT increase sharply: + +![DeepSeek V3.2 Concurrency ISL/OSL=1024/128](https://github.com/user-attachments/assets/d5c9c9fb-44f3-4793-a0fd-f8fa954546f5) + + +Performance record: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: 64.0 +Max request concurrency: 1024 +Successful requests: 2048 +Benchmark duration (s): 408.09 +Total input tokens: 1048992 +Total input text tokens: 1048992 +Total generated tokens: 1032734 +Total generated tokens (retokenized): 1031817 +Request throughput (req/s): 5.02 +Input token throughput (tok/s): 2570.50 +Output token throughput (tok/s): 2530.66 +Peak output token throughput (tok/s): 5092.00 +Peak concurrent requests: 1035 +Total token throughput (tok/s): 5101.16 +Concurrency: 763.41 +Accept length: 3.26 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 152117.70 +Median E2E Latency (ms): 181704.84 +P90 E2E Latency (ms): 215924.77 +P99 E2E Latency (ms): 231679.59 +---------------Time to First Token---------------- +Mean TTFT (ms): 127729.28 +Median TTFT (ms): 170098.94 +P99 TTFT (ms): 185705.73 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 49.18 +Median TPOT (ms): 48.48 +P99 TPOT (ms): 77.24 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 48.46 +Median ITL (ms): 52.11 +P95 ITL (ms): 110.26 +P99 ITL (ms): 200.63 +Max ITL (ms): 2666.37 +================================================== +``` + +By adding `--random-range-ratio 1`, we could get even higher statistical numbers: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: 64.0 +Max request concurrency: 1024 +Successful requests: 2048 +Benchmark duration (s): 612.87 +Total input tokens: 2097152 +Total input text tokens: 2097152 +Total generated tokens: 2097152 +Total generated tokens (retokenized): 2096201 +Request throughput (req/s): 3.34 +Input token throughput (tok/s): 3421.84 +Output token throughput (tok/s): 3421.84 +Peak output token throughput (tok/s): 9077.00 +Peak concurrent requests: 1039 +Total token throughput (tok/s): 6843.68 +Concurrency: 772.66 +Accept length: 3.26 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 231222.27 +Median E2E Latency (ms): 289846.24 +P90 E2E Latency (ms): 314480.41 +P99 E2E Latency (ms): 320392.27 +---------------Time to First Token---------------- +Mean TTFT (ms): 194081.02 +Median TTFT (ms): 252945.22 +P99 TTFT (ms): 279637.50 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 36.31 +Median TPOT (ms): 36.73 +P99 TPOT (ms): 46.33 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 36.31 +Median ITL (ms): 23.18 +P95 ITL (ms): 96.79 +P99 ITL (ms): 135.81 +Max ITL (ms): 3121.00 +================================================== +``` diff --git a/docs_new/cookbook/autoregressive/Ernie/Ernie4.5-VL.mdx b/docs_new/cookbook/autoregressive/Ernie/Ernie4.5-VL.mdx new file mode 100644 index 000000000..fbd280360 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Ernie/Ernie4.5-VL.mdx @@ -0,0 +1,28 @@ +--- +title: Ernie4.5-VL +metatags: + description: "Deploy Ernie4.5-VL vision-language model with SGLang - community contribution guide for Baidu's multimodal model." +--- + +## 📝 Community Contribution Welcome + +This guide is currently under development. We welcome community contributions! + +If you have experience deploying **Ernie4.5-VL** with SGLang, please help us complete this documentation. + +## 🚀 How to Contribute + +```shell Command +git clone https://github.com/YOUR_USERNAME/sglang-cookbook.git +cd sglang-cookbook +git checkout -b add-ernie4-5-vl-guide +# Edit this file and submit a PR +``` + +## 📚 Reference + +- [GLM-4.6V](../GLM/GLM-4.6V) + +--- + +**Let's build this together!** 🌟 diff --git a/docs_new/cookbook/autoregressive/Ernie/Ernie4.5.mdx b/docs_new/cookbook/autoregressive/Ernie/Ernie4.5.mdx new file mode 100644 index 000000000..83a38c1e6 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Ernie/Ernie4.5.mdx @@ -0,0 +1,696 @@ +--- +title: Ernie4.5 +metatags: + description: "Deploy Ernie4.5 with SGLang - community contribution guide for Baidu's Ernie 4.5 model deployment." +--- + +import { Ernie45Deployment } from '/src/snippets/autoregressive/ernie-45-deployment.jsx'; + +## 1. Model Introduction + +The **ERNIE-4.5** series is a family of large language models developed by Baidu. ERNIE (Enhanced Representation through Knowledge Integration) 4.5 represents an advanced version of the ERNIE series, optimized for general-purpose tasks and conversational scenarios. + +ERNIE-4.5 delivers advanced features as below: +- **Heterogeneous Modality Structure**: MoE architecture that supports parameter sharing across modalities while allowing dedicated parameters for each individual modality, enhancing multimodal understanding without compromising, and even improving, performance on text-related tasks. +- **Vision Encoder**: Dedicated adaptive-resolution ViT with 2D RoPE and image packing; for video, adaptive frame sampling and timestamp rendering, supporting both shared and modality-specific visual processing. +- **Adapter**: Shared modality-bridging module with spatial and temporal compression to align vision to text embedding space, enabling cross-modal understanding without compromising text representations. +- **Multimodal Position Embedding**: Unified 3D RoPE (temporal, height, width) for vision and 1D RoPE for text in a single embedding space, supporting parameter sharing while encoding modality-specific positions. +- **Hardware Optimization**: Specifically tuned for AMD MI300X, MI325X, and MI355X GPUs. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance optimization, suitable for users at different levels. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model variant, deployment strategy, and thinking capabilities. + + + +## 4. API Usage +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +The following example demonstrates deployment using ERNIE-4.5-21B-A3B-PT. + +```shell Command +python -m sglang.launch_server \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --tp 1 +``` + +**Basic Python Client Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="baidu/ERNIE-4.5-21B-A3B-PT", + messages=[ + {"role": "user", "content": "What is artificial intelligence?"} + ], + temperature=1.0, + top_p=0.95, + max_tokens=1024 +) + +print(response.choices[0].message.content) +``` + +**Output Example:** +```text Output +**Artificial Intelligence (AI)** is the simulation of human intelligence processes by machines, particularly computer systems. These processes include **learning** (acquiring information and rules for using the information), **reasoning** (using rules to reach approximate or definite conclusions), and **self-correction**. AI encompasses a wide range of techniques, algorithms, and methodologies designed to enable machines to perform tasks that typically require human intelligence. + +### Key Characteristics of AI: +... + +### In Summary: +AI represents a transformative force with the potential to revolutionize industries and enhance human capabilities. However, its development requires careful consideration of ethical, legal, and social implications to ensure that it benefits society as a whole. As AI continues to evolve, ongoing dialogue among stakeholders will be crucial to balancing innovation with responsibility. +``` + +**Streaming Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="baidu/ERNIE-4.5-21B-A3B-PT", + messages=[ + {"role": "user", "content": "Explain quantum computing in simple terms."} + ], + temperature=1.0, + top_p=0.95, + max_tokens=2048, + stream=True +) + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +Sure! Here’s a simple explanation of quantum computing: + +### **Quantum Computing: Making Computers Super Fast (But Weird) Using Quantum Rules** + +1. **Classic vs. Quantum Computers** + - **Normal computers** use **bits** (0s and 1s) to store and process information. + - **Quantum computers** use **qubits** (short for quantum bits). Unlike bits, qubits can be **0, 1, or both at the same time** (this is called **superposition**). + +2. **Superposition: The Magic Behind Speed** + - A single qubit can represent **0 and 1 simultaneously**, like a coin spinning in the air. + - Many qubits working together (in something called **quantum parallelism**) can **check multiple possibilities at once**, making quantum computers much faster for certain problems. + +3. **Entanglement: Making Qubits Link** + - When qubits are **entangled**, their states are linked—changing one instantly affects the other, no matter how far apart they are (this is called **spooky action at a distance** by Einstein). + - Entanglement allows quantum computers to process information in **very efficient ways**. + +4. **What Quantum Computers Are Good At** + - **Cracking encryption** (like RSA). + - **Factoring large numbers** (used in encryption and cryptography). + - **Searching unsorted databases** (way faster than classical computers). + - **Simulating quantum systems** (like molecules for drug discovery). + - **Optimizing problems** (like logistics or finance). + +5. **Challenges & Current State** + - Qubits are **fragile** and easily disturbed (called **decoherence**). + - Engineers are working to keep qubits stable long enough to do useful calculations. + - Today’s quantum computers are **small and experimental**, but the goal is to build powerful ones that outperform classical supercomputers. + +### **Final Thought** +Quantum computing isn’t just a faster calculator—it’s a **new way of thinking about problems** using the weird laws of physics. While still new, it has the potential to revolutionize fields like medicine, AI, and cybersecurity. + +Would you like an example of how a quantum computer might solve a problem? 😊 +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: AMD MI300X GPU (1x) +- Model: ERNIE-4.5-21B-A3B-PT +- Tensor Parallelism: 1 +- SGLang Version: 0.5.7 + +**Benchmark Methodology:** + +We use industry-standard benchmark configurations to ensure results are comparable across frameworks and hardware platforms. + +#### 5.1.1 Standard Scenario Benchmark + +- Model Deployment Command: + +```bash Command +python -m sglang.launch_server \ + --model-path baidu/ERNIE-4.5-21B-A3B-PT \ + --tp 1 +``` + +##### 5.1.1.1 Low Concurrency (Latency-Optimized) +- Benchmark Command: + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 58.72 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4219 +Request throughput (req/s): 0.17 +Input token throughput (tok/s): 103.90 +Output token throughput (tok/s): 71.87 +Peak output token throughput (tok/s): 245.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 175.77 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 5869.86 +Median E2E Latency (ms): 1870.80 +---------------Time to First Token---------------- +Mean TTFT (ms): 4152.58 +Median TTFT (ms): 36.81 +P99 TTFT (ms): 37498.23 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 4.07 +Median TPOT (ms): 4.09 +P99 TPOT (ms): 4.09 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 4.08 +Median ITL (ms): 4.08 +P95 ITL (ms): 4.14 +P99 ITL (ms): 4.20 +Max ITL (ms): 4.67 +================================================== +``` + +##### 5.1.1.2 Medium Concurrency (Balanced) +- Benchmark Command: + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 34.30 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40773 +Request throughput (req/s): 2.33 +Input token throughput (tok/s): 1156.62 +Output token throughput (tok/s): 1189.77 +Peak output token throughput (tok/s): 1392.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 2346.39 +Concurrency: 14.14 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 6060.62 +Median E2E Latency (ms): 6496.70 +---------------Time to First Token---------------- +Mean TTFT (ms): 78.90 +Median TTFT (ms): 45.90 +P99 TTFT (ms): 234.33 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 11.99 +Median TPOT (ms): 12.16 +P99 TPOT (ms): 14.81 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 11.75 +Median ITL (ms): 11.48 +P95 ITL (ms): 12.24 +P99 ITL (ms): 34.85 +Max ITL (ms): 105.01 +================================================== +``` + +##### 5.1.1.3 High Concurrency (Throughput-Optimized) +- Benchmark Command: + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 66.63 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 252449 +Request throughput (req/s): 7.50 +Input token throughput (tok/s): 3749.79 +Output token throughput (tok/s): 3792.28 +Peak output token throughput (tok/s): 4902.00 +Peak concurrent requests: 113 +Total token throughput (tok/s): 7542.06 +Concurrency: 90.33 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 12036.90 +Median E2E Latency (ms): 11782.16 +---------------Time to First Token---------------- +Mean TTFT (ms): 104.86 +Median TTFT (ms): 84.62 +P99 TTFT (ms): 297.85 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 23.89 +Median TPOT (ms): 24.62 +P99 TPOT (ms): 26.91 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 23.66 +Median ITL (ms): 20.48 +P95 ITL (ms): 45.57 +P99 ITL (ms): 54.31 +Max ITL (ms): 185.12 +================================================== +``` + +#### 5.1.2 Reasoning Scenario Benchmark + +##### 5.1.2.1 Low Concurrency +- Benchmark Command: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 185.11 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 44462 +Total generated tokens (retokenized): 44423 +Request throughput (req/s): 0.05 +Input token throughput (tok/s): 32.96 +Output token throughput (tok/s): 240.19 +Peak output token throughput (tok/s): 245.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 273.15 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 18508.84 +Median E2E Latency (ms): 19866.81 +---------------Time to First Token---------------- +Mean TTFT (ms): 32.59 +Median TTFT (ms): 32.14 +P99 TTFT (ms): 38.58 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 4.13 +Median TPOT (ms): 4.13 +P99 TPOT (ms): 4.20 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 4.16 +Median ITL (ms): 4.12 +P95 ITL (ms): 4.31 +P99 ITL (ms): 4.36 +Max ITL (ms): 7.28 +================================================== +``` + +##### 5.1.2.2 Medium Concurrency + +- Benchmark Command: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 263.48 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 318306 +Total generated tokens (retokenized): 317984 +Request throughput (req/s): 0.30 +Input token throughput (tok/s): 150.55 +Output token throughput (tok/s): 1208.09 +Peak output token throughput (tok/s): 1408.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 1358.64 +Concurrency: 14.35 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 47249.55 +Median E2E Latency (ms): 47828.67 +---------------Time to First Token---------------- +Mean TTFT (ms): 62.77 +Median TTFT (ms): 57.10 +P99 TTFT (ms): 93.70 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 11.92 +Median TPOT (ms): 12.09 +P99 TPOT (ms): 12.50 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 11.86 +Median ITL (ms): 12.04 +P95 ITL (ms): 12.68 +P99 ITL (ms): 13.61 +Max ITL (ms): 39.94 +================================================== +``` + +##### 5.1.2.3 High Concurrency +- Benchmark Command: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 428.30 +Total input tokens: 158939 +Total input text tokens: 158939 +Total input vision tokens: 0 +Total generated tokens: 1301025 +Total generated tokens (retokenized): 1299877 +Request throughput (req/s): 0.75 +Input token throughput (tok/s): 371.09 +Output token throughput (tok/s): 3037.63 +Peak output token throughput (tok/s): 3880.00 +Peak concurrent requests: 69 +Total token throughput (tok/s): 3408.73 +Concurrency: 57.08 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 76392.58 +Median E2E Latency (ms): 79698.73 +---------------Time to First Token---------------- +Mean TTFT (ms): 92.79 +Median TTFT (ms): 78.71 +P99 TTFT (ms): 168.89 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 18.81 +Median TPOT (ms): 19.15 +P99 TPOT (ms): 19.81 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 18.77 +Median ITL (ms): 18.77 +P95 ITL (ms): 19.86 +P99 ITL (ms): 42.08 +Max ITL (ms): 74.36 +================================================== +``` + +#### 5.1.3 Summarization Scenario Benchmark + +##### 5.1.3.1 Low Concurrency +- Benchmark Command: + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 18.59 +Total input tokens: 41941 +Total input text tokens: 41941 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4216 +Request throughput (req/s): 0.54 +Input token throughput (tok/s): 2256.43 +Output token throughput (tok/s): 227.04 +Peak output token throughput (tok/s): 245.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 2483.46 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 1856.72 +Median E2E Latency (ms): 1513.87 +---------------Time to First Token---------------- +Mean TTFT (ms): 86.66 +Median TTFT (ms): 72.30 +P99 TTFT (ms): 167.13 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 4.19 +Median TPOT (ms): 4.22 +P99 TPOT (ms): 4.30 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 4.20 +Median ITL (ms): 4.23 +P95 ITL (ms): 4.34 +P99 ITL (ms): 4.42 +Max ITL (ms): 5.68 +================================================== +``` + +##### 5.1.3.2 Medium Concurrency +- Benchmark Command: + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 40.25 +Total input tokens: 300020 +Total input text tokens: 300020 +Total input vision tokens: 0 +Total generated tokens: 41669 +Total generated tokens (retokenized): 41646 +Request throughput (req/s): 1.99 +Input token throughput (tok/s): 7454.72 +Output token throughput (tok/s): 1035.37 +Peak output token throughput (tok/s): 1310.00 +Peak concurrent requests: 20 +Total token throughput (tok/s): 8490.09 +Concurrency: 14.37 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 7229.56 +Median E2E Latency (ms): 7578.95 +---------------Time to First Token---------------- +Mean TTFT (ms): 137.38 +Median TTFT (ms): 122.59 +P99 TTFT (ms): 485.34 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 14.04 +Median TPOT (ms): 14.24 +P99 TPOT (ms): 20.77 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 13.64 +Median ITL (ms): 12.36 +P95 ITL (ms): 14.72 +P99 ITL (ms): 57.39 +Max ITL (ms): 411.31 +================================================== +``` + +##### 5.1.3.3 High Concurrency + +- Benchmark Command: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model baidu/ERNIE-4.5-21B-A3B-PT \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 78.33 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total input vision tokens: 0 +Total generated tokens: 170000 +Total generated tokens (retokenized): 169888 +Request throughput (req/s): 4.09 +Input token throughput (tok/s): 16262.33 +Output token throughput (tok/s): 2170.20 +Peak output token throughput (tok/s): 3005.00 +Peak concurrent requests: 73 +Total token throughput (tok/s): 18432.53 +Concurrency: 58.79 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 14392.52 +Median E2E Latency (ms): 14460.70 +---------------Time to First Token---------------- +Mean TTFT (ms): 184.82 +Median TTFT (ms): 155.24 +P99 TTFT (ms): 379.82 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 26.97 +Median TPOT (ms): 28.31 +P99 TPOT (ms): 33.61 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 26.79 +Median ITL (ms): 20.55 +P95 ITL (ms): 47.55 +P99 ITL (ms): 145.64 +Max ITL (ms): 287.62 +================================================== +``` + +### 5.2 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command: + +```bash Command +python3 benchmark/gsm8k/bench_sglang.py \ + --num-shots 8 \ + --num-questions 1316 \ + --parallel 1316 +``` + +- Test Results: + - ERNIE-4.5-21B-A3B-PT + ``` + Accuracy: 0.865 + Invalid: 0.000 + Latency: 21.669 s + Output throughput: 10359.790 token/s + ``` diff --git a/docs_new/cookbook/autoregressive/FlashLabs/Chroma1.0.mdx b/docs_new/cookbook/autoregressive/FlashLabs/Chroma1.0.mdx new file mode 100644 index 000000000..3632bc805 --- /dev/null +++ b/docs_new/cookbook/autoregressive/FlashLabs/Chroma1.0.mdx @@ -0,0 +1,193 @@ +--- +title: Chroma-1.0 +metatags: + description: "Deploy Chroma-1.0 end-to-end speech conversation model with SGLang - real-time speech generation, voice cloning, and speech reasoning." +tag: NEW +--- + +## 1. Model Introduction + +[Chroma-1.0](https://github.com/FlashLabs-AI-Corp/FlashLabs-Chroma) is an open-source end-to-end speech conversation model developed by FlashLabs, focusing on the following core capabilities: + +- **Real-time Speech Generation**: Supports low-latency speech synthesis, suitable for real-time conversational scenarios. +- **Customized Voice Cloning**: Capable of cloning and replicating specific speaker voice characteristics. +- **End-to-End Architecture**: Provides a complete processing workflow from speech to speech. +- **Speech Reasoning**: Equipped with reasoning capabilities to understand and process speech content. + +## 2. Architecture Overview + +**Chroma-1.0** utilizes a hybrid serving architecture rather than a direct SGLang deployment. This design choice is driven by: + +1. **Complex Model Architecture**: The end-to-end speech processing pipeline involves specialized components that go beyond standard text generation loops. +2. **KV Cache & State Management**: The model requires custom handling of KV caches that differs from standard implementations. +3. **Batching Limitations**: The current implementation supports a batch size of 1, meaning SGLang's advanced continuous batching capabilities are not yet fully applicable. + +Therefore, you will start the **FlashLabs Server**, which manages the overall workflow and selectively leverages SGLang for specific inference components where supported. + +- **Outer Layer**: FlashLabs Server (Handles Audio I/O, State, and Model Logic) +- **Inner Engine**: SGLang Instance (Utilized for specific acceleration where applicable) + +## 3. Installation & Setup + +We recommend following these steps to set up the environment and prepare the model. + +### Step 1: Get the Docker Image + +Pull the official pre-built image from Docker Hub to ensure all dependencies are correctly configured. + +```bash Command +docker pull flashlabs/chroma:latest +``` + +### Step 2: Download Model Weights + +Download the **Chroma-4B** weights from Hugging Face. You can choose one of the following methods: + +**Method 1: Using Python (Recommended)** + +```bash Command +huggingface-cli download FlashLabs/Chroma-4B --local-dir Chroma-4B +``` + +**Method 2: Using Git Clone** + +Make sure you have Git LFS installed before cloning. + +```bash Command +# Install Git LFS first +git lfs install + +# Clone the repository +git clone https://huggingface.co/FlashLabs/Chroma-4B Chroma-4B +``` + +### Step 3: Download Chroma Codes (SGLang version) + +```bash Command +git clone https://github.com/FlashLabs-AI-Corp/Chroma-SGLang.git + +cd Chroma-SGLang +``` + +### Step 4: Run the Server + +```bash Command +docker run -d \ + --gpus all \ + -p 8000:8000 \ + -w /app/Chroma-SGLang \ + -v "your_Chroma-SGLang_path":/app/Chroma-SGLang \ + -v "your_chroma_path":/model \ + -e CHROMA_MODEL_PATH=/model \ + -e DP_SIZE="1" \ + flashlabs/chroma:latest \ + /opt/conda/bin/python -m uvicorn api_server:app \ + --host 0.0.0.0 \ + --port 8000 \ + --workers 1 +``` + +or run simply the following one line command + +```bash Command +docker-compose up -d +``` + +## 5. Client Usage Example + +Once the server is running, you can interact with it using HTTP requests. + +### Python Client + +```python Example +import requests +import base64 + +url = "http://localhost:8000/v1/chat/completions" +headers = {"Content-Type": "application/json"} + +payload = { + "model": "chroma", + "messages": [ + { + "role": "system", + "content": "You are Chroma, a voice agent developed by FlashLabs." + }, + { + "role": "user", + "content": [ + {"type": "audio", "audio": "assets/question_audio.wav"} + ] + } + ], + "max_tokens": 1000, + "return_audio": True +} + +response = requests.post(url, json=payload, headers=headers) +result = response.json() + +if result.get("audio"): + audio_data = base64.b64decode(result["audio"]) + with open("output.wav", "wb") as f: + f.write(audio_data) + print("Audio saved to output.wav") +``` + +### OpenAI SDK Compatible Example + +```python Example +from openai import OpenAI + +client = OpenAI( + api_key="dummy", + base_url="http://localhost:8000/v1" +) + +response = client.chat.completions.create( + model="chroma", + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + { + "role": "user", + "content": [ + {"type": "audio", "audio": "assets/question_audio.wav"} + ] + } + ], + extra_body={ + "prompt_text": "I have not... I'm so exhausted, I haven't slept in a very long time. It could be because... Well, I used our... Uh, I'm, I just use... This is what I use every day. I use our cleanser every day, I use serum in the morning and then the moistu- daily moisturizer. That's what I use every morning.", + "prompt_audio": "assets/ref_audio.wav", + "return_audio": True + } +) + +print(response) +``` + +### CLI (cURL) + +```bash Command +curl -X POST http://localhost:8000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "chroma", + "messages": [ + { + "role": "system", + "content": "You are Chroma, a voice agent developed by FlashLabs." + }, + { + "role": "user", + "content": [ + { + "type": "audio", + "audio": "assets/question_audio.wav" + } + ] + } + ], + "max_tokens": 1000, + "return_audio": true + }' | jq -r '.audio' | base64 -d > output.wav +``` diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-4.5.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-4.5.mdx new file mode 100644 index 000000000..cf5bd5dfb --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-4.5.mdx @@ -0,0 +1,490 @@ +--- +title: GLM-4.5 +metatags: + description: "Deploy GLM-4.5 with SGLang on AMD GPUs - advanced reasoning, function calling, BF16/FP8 quantization options." +--- + +## 1. Model Introduction + +[GLM-4.5](https://huggingface.co/zai-org/GLM-4.5) is a powerful language model developed by Zhipu AI, featuring advanced capabilities in reasoning, function calling, and multi-modal understanding. + +**Key Features:** + +- **Advanced Reasoning**: Built-in reasoning capabilities for complex problem-solving +- **Multiple Quantizations**: BF16 and FP8 variants for different performance/memory trade-offs +- **Hardware Optimization**: Specifically tuned for AMD MI300X/MI325X/MI355X GPUs +- **High Performance**: Optimized for both throughput and latency scenarios + +**Available Models:** + +- **BF16 (Full precision)**: [zai-org/GLM-4.5](https://huggingface.co/zai-org/GLM-4.5) - Recommended for MI300X/MI325X/MI355X +- **FP8 (8-bit quantized)**: [zai-org/GLM-4.5-FP8](https://huggingface.co/zai-org/GLM-4.5-FP8) - Recommended for MI300X/MI325X/MI355X + +**License:** + +Please refer to the [official GLM-4.5 model card](https://huggingface.co/zai-org/GLM-4.5) for license details. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, deployment strategy, and thinking capabilities. + +import { GLM45Deployment } from "/src/snippets/autoregressive/glm-45-deployment.jsx"; + + + +### 3.2 Configuration Tips + +For more detailed configuration tips, please refer to [GLM-4.5/GLM-4.6 Usage](../../../docs/basic_usage/glm45). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +GLM-4.5 supports Thinking mode by default. Enable the reasoning parser during deployment to separate the thinking and the content sections: + +```shell Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.5 \ + --reasoning-parser glm45 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="zai-org/GLM-4.5", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +To solve this problem, I need to calculate 15% of 240. +Step 1: Convert 15% to decimal: 15% = 0.15 +Step 2: Multiply 240 by 0.15 +Step 3: 240 × 0.15 = 36 +=============== Content ================= + +The answer is 36. To find 15% of 240, we multiply 240 by 0.15, which equals 36. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.2 Tool Calling + +GLM-4.5 supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.5 \ + --reasoning-parser glm45 \ + --tool-call-parser glm45 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="zai-org/GLM-4.5", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I need to use the get_weather function to retrieve this information. +I should call the function with location="Beijing". +=============== Content ================= + +Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: AMD MI300X (8x), AMD MI325X (8x), AMD MI355X (8x) +- Model: GLM-4.5 +- Tensor Parallelism: 8 +- SGLang Version: 0.5.6.post1 + +**Benchmark Methodology:** + +We use industry-standard benchmark configurations to ensure results are comparable across frameworks and hardware platforms. + +#### 5.1.1 Standard Test Scenarios + +Three core scenarios reflect real-world usage patterns: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ScenarioInput LengthOutput LengthUse Case
      **Chat**1K1KMost common conversational AI workload
      **Reasoning**1K8KLong-form generation, complex reasoning tasks
      **Summarization**8K1KDocument summarization, RAG retrieval
      + +#### 5.1.2 Concurrency Levels + +Test each scenario at three concurrency levels to capture the throughput vs. latency tradeoff (Pareto frontier): + +- **Low Concurrency**: `--max-concurrency 1` (Latency-optimized) +- **Medium Concurrency**: `--max-concurrency 16` (Balanced) +- **High Concurrency**: `--max-concurrency 100` (Throughput-optimized) + +#### 5.1.3 Number of Prompts + +For each concurrency level, configure `num_prompts` to simulate realistic user loads: + +- **Quick Test**: `num_prompts = concurrency × 1` (minimal test) +- **Recommended**: `num_prompts = concurrency × 5` (standard benchmark) +- **Stable Measurements**: `num_prompts = concurrency × 10` (production-grade) + +--- + +#### 5.1.4 Benchmark Commands + +**Scenario 1: Chat (1K/1K) - Most Important** + +- **Model Deployment** +```bash Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.5 \ + --tp 8 +``` + + +- Low Concurrency (Latency-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Medium Concurrency (Balanced) +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- High Concurrency (Throughput-Optimized) +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +**Scenario 2: Reasoning (1K/8K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Medium Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- High Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +**Scenario 3: Summarization (8K/1K)** + +- Low Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.5 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Medium Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.5 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- High Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.5 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +#### 5.1.5 Understanding the Results + +**Key Metrics:** + +- **Request Throughput (req/s)**: Number of requests processed per second +- **Output Token Throughput (tok/s)**: Total tokens generated per second +- **Mean TTFT (ms)**: Time to First Token - measures responsiveness +- **Mean TPOT (ms)**: Time Per Output Token - measures generation speed +- **Mean ITL (ms)**: Inter-Token Latency - measures streaming consistency + +**Why These Configurations Matter:** + +- **1K/1K (Chat)**: Represents the most common conversational AI workload. This is the highest priority scenario for most deployments. +- **1K/8K (Reasoning)**: Tests long-form generation capabilities crucial for complex reasoning, code generation, and detailed explanations. +- **8K/1K (Summarization)**: Evaluates performance with large context inputs, essential for RAG systems, document Q&A, and summarization tasks. +- **Variable Concurrency**: Captures the Pareto frontier - the optimal tradeoff between throughput and latency at different load levels. Low concurrency shows best-case latency, high concurrency shows maximum throughput. + +**Interpreting Results:** + +- Compare your results against baseline numbers for your hardware +- Higher throughput at same latency = better performance +- Lower TTFT = more responsive user experience +- Lower TPOT = faster generation speed + +### 5.2 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command +```bash Command +python -m sglang.test.few_shot_gsm8k \ + --num-questions 200 \ + --port 30000 +``` diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-4.5V.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-4.5V.mdx new file mode 100644 index 000000000..8951a1242 --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-4.5V.mdx @@ -0,0 +1,533 @@ +--- +title: GLM-4.5V +metatags: + description: "Deploy GLM-4.5V vision-language model with SGLang - SOTA multimodal performance, 64K context, image reasoning and video understanding." +--- + +## 1. Model Introduction + +[GLM-4.5V](https://huggingface.co/zai-org/GLM-4.5V) is a state-of-the-art multimodal vision-language model from ZhipuAI, built on the next-generation flagship text foundation model GLM-4.5-Air (106B parameters, 12B active). It achieves SOTA performance among models of the same scale across 42 public vision-language benchmarks. Through efficient hybrid training, GLM-4.5V focuses on real-world usability and enables full-spectrum vision reasoning across diverse visual content types. + +**Hardware Support:** NVIDIA B200/H100/H200, AMD MI300X/MI325X/MI355X + +GLM-4.5V introduces several key features: + +- **Image Reasoning & Grounding** Scene understanding, complex multi-image analysis, and spatial recognition with precise visual element localization. Supports bounding box predictions with normalized coordinates (0-1000) for accurate object detection. +- **Video Understanding** Long video segmentation and event recognition, supporting comprehensive temporal analysis across extended video sequences. +- **GUI Agent Tasks** Screen reading, icon recognition, and desktop operation assistance for agent-based applications. Enables natural interaction with graphical user interfaces. +- **Complex Chart & Long Document Parsing** Research report analysis and information extraction from documents with text, charts, tables, and figures. Processes up to 64K tokens of multimodal context. +- **Thinking Mode Switch** Allows users to balance between quick responses and deep reasoning. Users can enable/disable Chain-of-Thought reasoning based on task requirements for improved accuracy and interpretability. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +The GLM-4.5V offers models in various sizes and architectures, optimized for different hardware platforms. The recommended launch configurations vary by hardware and model size. + +**Interactive Command Generator**: Use the interactive configuration generator below to customize your deployment settings. Select your hardware platform, model size, quantization method, and other options to generate the appropriate launch command. + +import { GLM45VDeployment } from "/src/snippets/autoregressive/glm-45v-deployment.jsx"; + + + +### 3.2 Configuration Tips +- **TTFT Optimization** : Set `SGLANG_USE_CUDA_IPC_TRANSPORT=1` to use CUDA IPC for transferring multimodal features, which significantly improves TTFT. This consumes additional memory and may require adjusting `--mem-fraction-static` and/or `--max-running-requests`. (additional memory is proportional to image size * number of images in current running requests.) +- **TP=8 Configuration**: When using Tensor Parallelism (TP) of 8, the vision attention's 12 heads cannot be evenly divided. You can resolve this by adding `--mm-enable-dp-encoder`. +- **Fast Model Loading**: For large models (like the 106B version), you can speed up model loading by using `--model-loader-extra-config='{"enable_multithread_load": "true","num_threads": 64}'`. +- For more detailed configuration tips, please refer to [GLM-4.5V/GLM-4.6V Usage](../../../docs/basic_usage/glmv). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) +- [SGLang OpenAI Vision API Guide](../../../docs/basic_usage/openai_api_vision) + +### 4.2 Advanced Usage + +#### 4.2.1 Multi-Modal Inputs + +GLM-4.5V supports both image and video inputs. Here's a basic example with image input: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://ofasys-multimodal-wlcb-3-toshanghai.oss-accelerate.aliyuncs.com/wpf272043/keepme/image/receipt.png" + } + }, + { + "type": "text", + "text": "Describe this image in detail." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="zai-org/GLM-4.5V", + messages=messages, + max_tokens=2048 +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Example Output:** + +```text Output +Response costs: 3.37s +Generated text: Auntie Anne's + +CINNAMON SUGAR +1 x 17,000 17,000 + +SUB TOTAL 17,000 + +GRAND TOTAL 17,000 + +CASH IDR 20,000 + +CHANGE DUE 3,000 +``` + +**Multi-Image Input Example:** + +GLM-4.5V can process multiple images in a single request for comparison or analysis: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://www.civitatis.com/f/china/hong-kong/guia/taxi.jpg" + } + }, + { + "type": "image_url", + "image_url": { + "url": "https://cdn.cheapoguides.com/wp-content/uploads/sites/7/2025/05/GettyImages-509614603-1280x600.jpg" + } + }, + { + "type": "text", + "text": "Compare these two images and describe the differences in 100 words or less. Focus on the key visual elements, colors, textures, and any notable contrasts between the two scenes. Be specific about what you see in each image." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="zai-org/GLM-4.5V", + messages=messages, + max_tokens=2048 +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Example Output:** + +```text Output +Response costs: 3.86s +Generated text: The first image shows a close - up of a few red taxis on a street with storefronts in the background. The taxis are in a line, and the scene has an urban, busy feel with visible shop displays. The second image is an aerial view of a large taxi parking area with numerous red and green taxis, some with hoods open. The scene is more open, with a parking lot layout, and includes elements like a bridge and grassy areas. Key differences: number of taxis (few vs many), perspective (close - up vs aerial), color variety (mostly red vs red and green), and setting (street with shops vs parking lot). +``` + +**Video Input Example:** + +GLM-4.5V supports video understanding by processing video URLs: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "video_url", + "video_url": { + "url": "https://videos.pexels.com/video-files/4114797/4114797-uhd_3840_2160_25fps.mp4" + } + }, + { + "type": "text", + "text": "Describe what happens in this video." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="zai-org/GLM-4.5V", + messages=messages, + max_tokens=2048 +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Note:** + +- For video processing, ensure you have sufficient context length configured (up to 64K tokens) +- Video processing may require more memory; adjust `--mem-fraction-static` accordingly +- You can also provide local file paths using `file://` protocol + +**Example Output:** + +```text Output +Response costs: 3.89s +Generated text: A person wearing blue gloves is using a microscope. They are adjusting the focus knob with one hand while holding a pipette with the other, suggesting they are preparing or examining a sample on the slide beneath the objective lens. The microscope's 40x objective lens is positioned over the slide, indicating a high-magnification observation. The person carefully manipulates the slide and the microscope controls, likely to achieve a clear view of the specimen. +``` + +#### 4.2.2 Thinking Mode + +GLM-4.5V supports thinking mode for enhanced reasoning. Enable thinking mode during deployment: + +```shell Command +python -m sglang.launch_server \ + --model-path zai-org/GLM-4.5V \ + --reasoning-parser glm45 \ + --tp 4 \ + --host 0.0.0.0 \ + --port 30000 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="zai-org/GLM-4.5V", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +**Disable Thinking Mode:** + +To disable thinking mode for a specific request: + +```python Example +response = client.chat.completions.create( + model="zai-org/GLM-4.5V", + messages=[{"role": "user", "content": "What is the capital of France?"}], + extra_body={"chat_template_kwargs": {"enable_thinking": False}} +) +``` + +#### 4.2.3 Tool Calling + +GLM-4.5V supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model-path zai-org/GLM-4.5V \ + --reasoning-parser glm45 \ + --tool-call-parser glm45 \ + --tp 4 \ + --host 0.0.0.0 \ + --port 30000 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="zai-org/GLM-4.5V", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"🔧 Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I need to use the get_weather function to retrieve this information. +I should call the function with location="Beijing". +=============== Content ================= + +🔧 Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="zai-org/GLM-4.5V", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +### 5.1 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.1.1 MMMU Benchmark + +- Benchmark Command + +```bash Command +python3 benchmark/mmmu/bench_sglang.py --response-answer-regex "<\|begin_of_box\|>(.*)<\|end_of_box\|>" --port 30000 --concurrency 64 +``` + +- Test Result + +```text Output +Benchmark time: 616.6163094160147 +answers saved to: ./answer_sglang.json +Evaluating... +answers saved to: ./answer_sglang.json +{'Accounting': {'acc': 0.867, 'num': 30}, + 'Agriculture': {'acc': 0.567, 'num': 30}, + 'Architecture_and_Engineering': {'acc': 0.667, 'num': 30}, + 'Art': {'acc': 0.667, 'num': 30}, + 'Art_Theory': {'acc': 0.9, 'num': 30}, + 'Basic_Medical_Science': {'acc': 0.8, 'num': 30}, + 'Biology': {'acc': 0.6, 'num': 30}, + 'Chemistry': {'acc': 0.533, 'num': 30}, + 'Clinical_Medicine': {'acc': 0.667, 'num': 30}, + 'Computer_Science': {'acc': 0.8, 'num': 30}, + 'Design': {'acc': 0.867, 'num': 30}, + 'Diagnostics_and_Laboratory_Medicine': {'acc': 0.667, 'num': 30}, + 'Economics': {'acc': 0.833, 'num': 30}, + 'Electronics': {'acc': 0.433, 'num': 30}, + 'Energy_and_Power': {'acc': 0.733, 'num': 30}, + 'Finance': {'acc': 0.767, 'num': 30}, + 'Geography': {'acc': 0.667, 'num': 30}, + 'History': {'acc': 0.8, 'num': 30}, + 'Literature': {'acc': 0.9, 'num': 30}, + 'Manage': {'acc': 0.733, 'num': 30}, + 'Marketing': {'acc': 0.9, 'num': 30}, + 'Materials': {'acc': 0.567, 'num': 30}, + 'Math': {'acc': 0.8, 'num': 30}, + 'Mechanical_Engineering': {'acc': 0.767, 'num': 30}, + 'Music': {'acc': 0.3, 'num': 30}, + 'Overall': {'acc': 0.732, 'num': 900}, + 'Overall-Art and Design': {'acc': 0.683, 'num': 120}, + 'Overall-Business': {'acc': 0.82, 'num': 150}, + 'Overall-Health and Medicine': {'acc': 0.787, 'num': 150}, + 'Overall-Humanities and Social Science': {'acc': 0.783, 'num': 120}, + 'Overall-Science': {'acc': 0.707, 'num': 150}, + 'Overall-Tech and Engineering': {'acc': 0.648, 'num': 210}, + 'Pharmacy': {'acc': 0.9, 'num': 30}, + 'Physics': {'acc': 0.933, 'num': 30}, + 'Psychology': {'acc': 0.767, 'num': 30}, + 'Public_Health': {'acc': 0.9, 'num': 30}, + 'Sociology': {'acc': 0.667, 'num': 30}} +eval out saved to ./val_sglang.json +Overall accuracy: 0.732 +``` diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-4.6.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-4.6.mdx new file mode 100644 index 000000000..cc21908ab --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-4.6.mdx @@ -0,0 +1,888 @@ +--- +title: GLM-4.6 +metatags: + description: "Deploy GLM-4.6 with SGLang - 200K context window, superior coding, advanced reasoning, and enhanced agentic capabilities." +--- + +## 1. Model Introduction + +[GLM-4.6](https://huggingface.co/zai-org/GLM-4.6) is a powerful language model developed by Zhipu AI, featuring advanced capabilities in reasoning, function calling, and multi-modal understanding. + +As the latest iteration in the GLM series, GLM-4.6 achieves comprehensive enhancements across multiple domains, including real-world coding, long-context processing, reasoning, searching, writing, and agentic applications. Details are as follows: + +- **Longer context window**: The context window has been expanded from 128K to 200K tokens, enabling the model to handle more complex agentic tasks. +- **Superior coding performance**: The model achieves higher scores on code benchmarks and demonstrates better real-world performance in applications such as Claude Code, Cline, Roo Code and Kilo Code, including improvements in generating visually polished front-end pages. +- **Advanced reasoning**: GLM-4.6 shows a clear improvement in reasoning performance and supports tool use during inference, leading to stronger overall capability. +- **More capable agents**: GLM-4.6 exhibits stronger performance in tool use and search-based agents, and integrates more effectively within agent frameworks. +- **Refined writing**: Better aligns with human preferences in style and readability, and performs more naturally in role-playing scenarios. + +For more details, please refer to the [official GLM-4.6 documentation](https://docs.z.ai/guides/llm/glm-4.6). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, deployment strategy, and thinking capabilities. + +import { GLM46Deployment } from "/src/snippets/autoregressive/glm-46-deployment.jsx"; + + + +### 3.2 Configuration Tips + +For more detailed configuration tips, please refer to [GLM-4.5/GLM-4.6 Usage](../../../docs/basic_usage/glm45). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +GLM-4.6 supports Thinking mode by default. Enable the reasoning parser during deployment to separate the thinking and the content sections: + +```shell Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.6 \ + --reasoning-parser glm45 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="zai-org/GLM-4.6", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +To solve this problem, I need to calculate 15% of 240. +Step 1: Convert 15% to decimal: 15% = 0.15 +Step 2: Multiply 240 by 0.15 +Step 3: 240 × 0.15 = 36 +=============== Content ================= + +The answer is 36. To find 15% of 240, we multiply 240 by 0.15, which equals 36. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.2 Tool Calling + +GLM-4.6 supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.6 \ + --reasoning-parser glm45 \ + --tool-call-parser glm45 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="zai-org/GLM-4.6", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"🔧 Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I need to use the get_weather function to retrieve this information. +I should call the function with location="Beijing". +=============== Content ================= + +🔧 Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="zai-org/GLM-4.6", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU (8x), AMD MI300X (8x), AMD MI325X (8x), AMD MI355X (8x) +- Model: GLM-4.6 +- Tensor Parallelism: 8 +- SGLang Version: 0.5.6.post1 + +**Benchmark Methodology:** + +We use industry-standard benchmark configurations to ensure results are comparable across frameworks and hardware platforms. + +#### 5.1.1 Standard Test Scenarios + +Three core scenarios reflect real-world usage patterns: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ScenarioInput LengthOutput LengthUse Case
      **Chat**1K1KMost common conversational AI workload
      **Reasoning**1K8KLong-form generation, complex reasoning tasks
      **Summarization**8K1KDocument summarization, RAG retrieval
      + +#### 5.1.2 Concurrency Levels + +Test each scenario at three concurrency levels to capture the throughput vs. latency tradeoff (Pareto frontier): + +- **Low Concurrency**: `--max-concurrency 1` (Latency-optimized) +- **Medium Concurrency**: `--max-concurrency 16` (Balanced) +- **High Concurrency**: `--max-concurrency 100` (Throughput-optimized) + +#### 5.1.3 Number of Prompts + +For each concurrency level, configure `num_prompts` to simulate realistic user loads: + +- **Quick Test**: `num_prompts = concurrency × 1` (minimal test) +- **Recommended**: `num_prompts = concurrency × 5` (standard benchmark) +- **Stable Measurements**: `num_prompts = concurrency × 10` (production-grade) + +--- + +#### 5.1.4 Benchmark Commands + +**Scenario 1: Chat (1K/1K) - Most Important** + +- **Model Deployment** +```bash Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.6 \ + --tp 8 +``` + + +- Low Concurrency (Latency-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 63.82 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4210 +Total generated tokens (retokenized): 4209 +Request throughput (req/s): 0.16 +Input token throughput (tok/s): 95.60 +Output token throughput (tok/s): 65.97 +Peak output token throughput (tok/s): 68.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 161.57 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 6379.24 +Median E2E Latency (ms): 5085.00 +---------------Time to First Token---------------- +Mean TTFT (ms): 155.57 +Median TTFT (ms): 149.79 +P99 TTFT (ms): 207.69 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 14.81 +Median TPOT (ms): 14.80 +P99 TPOT (ms): 14.84 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 14.82 +Median ITL (ms): 14.82 +P95 ITL (ms): 15.17 +P99 ITL (ms): 15.36 +Max ITL (ms): 25.05 +================================================== +``` + + +- Medium Concurrency (Balanced) +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` +```text Output + +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 72.06 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40725 +Total generated tokens (retokenized): 40672 +Request throughput (req/s): 1.11 +Input token throughput (tok/s): 550.47 +Output token throughput (tok/s): 565.14 +Peak output token throughput (tok/s): 752.00 +Peak concurrent requests: 20 +Total token throughput (tok/s): 1115.61 +Concurrency: 13.71 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 12348.93 +Median E2E Latency (ms): 13164.81 +---------------Time to First Token---------------- +Mean TTFT (ms): 196.08 +Median TTFT (ms): 155.22 +P99 TTFT (ms): 377.98 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 24.24 +Median TPOT (ms): 24.55 +P99 TPOT (ms): 30.42 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 23.92 +Median ITL (ms): 21.40 +P95 ITL (ms): 22.49 +P99 ITL (ms): 123.83 +Max ITL (ms): 486.54 +================================================== +``` + + +- High Concurrency (Throughput-Optimized) +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 138.50 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252162 +Total generated tokens (retokenized): 251841 +Request throughput (req/s): 3.61 +Input token throughput (tok/s): 1803.78 +Output token throughput (tok/s): 1820.61 +Peak output token throughput (tok/s): 2900.00 +Peak concurrent requests: 107 +Total token throughput (tok/s): 3624.40 +Concurrency: 90.91 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 25183.97 +Median E2E Latency (ms): 23968.49 +---------------Time to First Token---------------- +Mean TTFT (ms): 337.77 +Median TTFT (ms): 180.65 +P99 TTFT (ms): 906.14 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 49.97 +Median TPOT (ms): 52.20 +P99 TPOT (ms): 61.81 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 49.36 +Median ITL (ms): 35.05 +P95 ITL (ms): 124.91 +P99 ITL (ms): 187.69 +Max ITL (ms): 440.34 +================================================== +``` + +**Scenario 2: Reasoning (1K/8K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 666.64 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 44452 +Total generated tokens (retokenized): 44387 +Request throughput (req/s): 0.02 +Input token throughput (tok/s): 9.15 +Output token throughput (tok/s): 66.68 +Peak output token throughput (tok/s): 68.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 75.83 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 66661.35 +Median E2E Latency (ms): 71902.36 +---------------Time to First Token---------------- +Mean TTFT (ms): 160.21 +Median TTFT (ms): 140.32 +P99 TTFT (ms): 295.56 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 14.92 +Median TPOT (ms): 14.94 +P99 TPOT (ms): 15.02 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 14.96 +Median ITL (ms): 14.96 +P95 ITL (ms): 15.36 +P99 ITL (ms): 15.57 +Max ITL (ms): 19.06 +================================================== +``` + +- Medium Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 503.30 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 318226 +Total generated tokens (retokenized): 318025 +Request throughput (req/s): 0.16 +Input token throughput (tok/s): 78.82 +Output token throughput (tok/s): 632.28 +Peak output token throughput (tok/s): 752.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 711.09 +Concurrency: 13.88 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 87349.22 +Median E2E Latency (ms): 88248.04 +---------------Time to First Token---------------- +Mean TTFT (ms): 228.54 +Median TTFT (ms): 142.78 +P99 TTFT (ms): 569.84 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 21.97 +Median TPOT (ms): 22.14 +P99 TPOT (ms): 22.47 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 21.91 +Median ITL (ms): 21.80 +P95 ITL (ms): 22.30 +P99 ITL (ms): 22.78 +Max ITL (ms): 137.19 +================================================== +``` + +- High Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 772.28 +Total input tokens: 158939 +Total input text tokens: 158939 +Total input vision tokens: 0 +Total generated tokens: 1300705 +Total generated tokens (retokenized): 1299924 +Request throughput (req/s): 0.41 +Input token throughput (tok/s): 205.80 +Output token throughput (tok/s): 1684.24 +Peak output token throughput (tok/s): 2112.00 +Peak concurrent requests: 68 +Total token throughput (tok/s): 1890.05 +Concurrency: 56.17 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 135563.36 +Median E2E Latency (ms): 140888.88 +---------------Time to First Token---------------- +Mean TTFT (ms): 232.45 +Median TTFT (ms): 145.59 +P99 TTFT (ms): 576.49 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 33.47 +Median TPOT (ms): 34.02 +P99 TPOT (ms): 35.10 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 33.30 +Median ITL (ms): 32.63 +P95 ITL (ms): 34.27 +P99 ITL (ms): 104.39 +Max ITL (ms): 155.65 +================================================== +``` + +**Scenario 3: Summarization (8K/1K)** + +- Low +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.6 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 65.11 +Total input tokens: 41941 +Total input text tokens: 41941 +Total input vision tokens: 0 +Total generated tokens: 4210 +Total generated tokens (retokenized): 4210 +Request throughput (req/s): 0.15 +Input token throughput (tok/s): 644.17 +Output token throughput (tok/s): 64.66 +Peak output token throughput (tok/s): 68.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 708.83 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 6508.31 +Median E2E Latency (ms): 5263.36 +---------------Time to First Token---------------- +Mean TTFT (ms): 189.48 +Median TTFT (ms): 159.23 +P99 TTFT (ms): 304.09 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 15.02 +Median TPOT (ms): 15.03 +P99 TPOT (ms): 15.27 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 15.04 +Median ITL (ms): 15.03 +P95 ITL (ms): 15.46 +P99 ITL (ms): 15.65 +Max ITL (ms): 24.20 +================================================== +``` + +- Medium Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.6 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 76.43 +Total input tokens: 300020 +Total input text tokens: 300020 +Total input vision tokens: 0 +Total generated tokens: 41589 +Total generated tokens (retokenized): 41577 +Request throughput (req/s): 1.05 +Input token throughput (tok/s): 3925.47 +Output token throughput (tok/s): 544.15 +Peak output token throughput (tok/s): 752.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 4469.62 +Concurrency: 13.95 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 13329.63 +Median E2E Latency (ms): 14141.09 +---------------Time to First Token---------------- +Mean TTFT (ms): 339.88 +Median TTFT (ms): 252.75 +P99 TTFT (ms): 906.54 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 25.37 +Median TPOT (ms): 25.73 +P99 TPOT (ms): 30.94 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 25.04 +Median ITL (ms): 21.68 +P95 ITL (ms): 22.69 +P99 ITL (ms): 146.98 +Max ITL (ms): 483.14 +================================================== +``` + + +- High Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.6 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 136.24 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total input vision tokens: 0 +Total generated tokens: 169680 +Total generated tokens (retokenized): 169452 +Request throughput (req/s): 2.35 +Input token throughput (tok/s): 9350.32 +Output token throughput (tok/s): 1245.44 +Peak output token throughput (tok/s): 1984.00 +Peak concurrent requests: 69 +Total token throughput (tok/s): 10595.77 +Concurrency: 58.46 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 24889.40 +Median E2E Latency (ms): 25123.37 +---------------Time to First Token---------------- +Mean TTFT (ms): 355.82 +Median TTFT (ms): 268.84 +P99 TTFT (ms): 858.64 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 46.62 +Median TPOT (ms): 49.04 +P99 TPOT (ms): 58.88 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 46.36 +Median ITL (ms): 32.46 +P95 ITL (ms): 135.23 +P99 ITL (ms): 204.27 +Max ITL (ms): 508.14 +================================================== +``` + +#### 5.1.5 Understanding the Results + +**Key Metrics:** + +- **Request Throughput (req/s)**: Number of requests processed per second +- **Output Token Throughput (tok/s)**: Total tokens generated per second +- **Mean TTFT (ms)**: Time to First Token - measures responsiveness +- **Mean TPOT (ms)**: Time Per Output Token - measures generation speed +- **Mean ITL (ms)**: Inter-Token Latency - measures streaming consistency + +**Why These Configurations Matter:** + +- **1K/1K (Chat)**: Represents the most common conversational AI workload. This is the highest priority scenario for most deployments. +- **1K/8K (Reasoning)**: Tests long-form generation capabilities crucial for complex reasoning, code generation, and detailed explanations. +- **8K/1K (Summarization)**: Evaluates performance with large context inputs, essential for RAG systems, document Q&A, and summarization tasks. +- **Variable Concurrency**: Captures the Pareto frontier - the optimal tradeoff between throughput and latency at different load levels. Low concurrency shows best-case latency, high concurrency shows maximum throughput. + +**Interpreting Results:** + +- Compare your results against baseline numbers for your hardware +- Higher throughput at same latency = better performance +- Lower TTFT = more responsive user experience +- Lower TPOT = faster generation speed + +### 5.2 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command +```bash Command +python -m sglang.test.few_shot_gsm8k \ + --num-questions 200 \ + --port 30000 +``` + +- Test Result +```text Output +Accuracy: 0.975 +Invalid: 0.000 +Latency: 16.574 s +Output throughput: 1194.637 token/s +``` diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-4.6V.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-4.6V.mdx new file mode 100644 index 000000000..4766898d4 --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-4.6V.mdx @@ -0,0 +1,382 @@ +--- +title: GLM-4.6V +metatags: + description: "Deploy GLM-4.6V vision-language model with SGLang - native function calling, 128K context, multimodal document understanding and frontend replication." +--- + +## 1. Model Introduction + +GLM-4.6V series model includes two versions: GLM-4.6V (106B), a foundation model designed for cloud and high-performance cluster scenarios, and GLM-4.6V-Flash (9B), a lightweight model optimized for local deployment and low-latency applications. GLM-4.6V scales its context window to 128k tokens in training, and achieves SoTA performance in visual understanding among models of similar parameter scales. Crucially, GLM team integrated native Function Calling capabilities for the first time. This effectively bridges the gap between "visual perception" and "executable action" providing a unified technical foundation for multimodal agents in real-world business scenarios. + +Beyond achieves SoTA performance across major multimodal benchmarks at comparable model scales. GLM-4.6V introduces several key features: + +- **Native Multimodal Function Calling** Enables native vision-driven tool use. Images, screenshots, and document pages can be passed directly as tool inputs without text conversion, while visual outputs (charts, search images, rendered pages) are interpreted and integrated into the reasoning chain. This closes the loop from perception to understanding to execution. Please refer to this [example](#tool-call-example). +- **Interleaved Image-Text Content Generation** Supports high-quality mixed media creation from complex multimodal inputs. GLM-4.6V takes a multimodal context—spanning documents, user inputs, and tool-retrieved images—and synthesizes coherent, interleaved image-text content tailored to the task. During generation it can actively call search and retrieval tools to gather and curate additional text and visuals, producing rich, visually grounded content. +- **Multimodal Document Understanding** GLM-4.6V can process up to 128K tokens of multi-document or long-document input, directly interpreting richly formatted pages as images. It understands text, layout, charts, tables, and figures jointly, enabling accurate comprehension of complex, image-heavy documents without requiring prior conversion to plain text. +- **Frontend Replication & Visual Editing** Reconstructs pixel-accurate HTML/CSS from UI screenshots and supports natural-language-driven edits. It detects layout, components, and styles visually, generates clean code, and applies iterative visual modifications through simple user instructions. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +### 2.1 Docker Installation (Recommended) + +```shell Command +docker pull lmsysorg/sglang:latest +``` + +**Advantages:** + +- Ready to use out of the box, no manual environment configuration needed +- Avoids dependency conflict issues +- Easy to migrate between different environments + +### 2.2 Build from Source + +If you need to use the latest development version or require custom modifications, you can build from source: + +```bash Command +# Install SGLang using UV (recommended) +git clone https://github.com/sgl-project/sglang.git +cd sglang +uv venv +source .venv/bin/activate +uv pip install -e "python[all]" --index-url=https://pypi.org/simple +pip install nvidia-cudnn-cu12==9.16.0.29 +# Install ffmpeg to support video input +sudo apt update +sudo apt install ffmpeg +``` + +**Use Cases:** + +- Need to customize and modify SGLang source code +- Want to use the latest development features +- Participate in SGLang project development + +For general installation instructions, you can also refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +## 3. Model Deployment + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the interactive configuration generator below to customize your deployment settings. Select your hardware platform, model size, quantization method, and other options to generate the appropriate launch command. + +import { GLM46VDeployment } from "/src/snippets/autoregressive/glm-46v-deployment.jsx"; + + + +### 3.2 Configuration Tips +- **TTFT Optimization** : Set `SGLANG_USE_CUDA_IPC_TRANSPORT=1` to use CUDA IPC for transferring multimodal features, which significantly improves TTFT. This consumes additional memory and may require adjusting `--mem-fraction-static` and/or `--max-running-requests`. (additional memory is proportional to image size * number of images in current running requests.) +- **TP=8 Configuration**: When using Tensor Parallelism (TP) of 8, the vision attention's 12 heads cannot be evenly divided. You can resolve this by adding `--mm-enable-dp-encoder` (which the generator above handles automatically). +- **Fast Model Loading**: For large models (like the 106B version), you can speed up model loading by using `--model-loader-extra-config='{"enable_multithread_load": "true","num_threads": 64}'`. +- For more detailed configuration tips, please refer to [GLM-4.5V/GLM-4.6V Usage](../../../docs/basic_usage/glmv). + +## 4. Example APIs + +### Image Input Example + +#### API Payload +```python Example +curl_command = f""" +curl -s http://localhost:{30000}/v1/chat/completions \\ + -H "Content-Type: application/json" \\ + -d '{{ + "model": "default", + "messages": [ + {{ + "role": "user", + "content": [ + {{ + "type": "image_url", + "image_url": {{ + "url": "/home/jobuser/sgl_logo.png" + }} + }}, + {{ + "type": "text", + "text": "What is the image" + }} + ] + }} + ], + "temperature": "0", + "max_completion_tokens": "1000", + "max_tokens": "1000" + }}' +""" + +response = subprocess.check_output(curl_command, shell=True).decode() +print(response) +``` + +#### API Response +```text Output +{"id":"b61596ca71394dd699fd8abd4f650c44","object":"chat.completion","created":1765259019,"model":"default","choices":[{"index":0,"message":{"role":"assistant","content":"The image is a logo featuring the text \"SGL\" (in a bold, orange-brown font) alongside a stylized icon. The icon includes a network-like structure with circular nodes (suggesting connectivity or a tree/graph structure) and a tag with \"\" (a common symbol for coding, web development, or software). The color scheme uses warm orange-brown tones with a black background, giving it a tech-focused, modern aesthetic (likely representing a company, project, or tool related to software, web development, or digital technology).<|begin_of_box|>SGL logo (stylized text + network/coding icon)<|end_of_box|>","reasoning_content":"Okay, let's see. The image has a logo with the text \"SGL\" and a little icon on the left. The icon looks like a network or a tree structure with circles, and there's a tag with \"\" which is a common symbol for coding or web development. The colors are orange and brown tones, with a black background. So probably a logo for a company or project named SGL, maybe related to software, web development, or a tech company.","tool_calls":null},"logprobs":null,"finish_reason":"stop","matched_stop":151336}],"usage":{"prompt_tokens":2222,"total_tokens":2448,"completion_tokens":226,"prompt_tokens_details":null,"reasoning_tokens":0},"metadata":{"weight_version":"default"}} +``` + +### Video Input Example + +#### API Payload +```python Example +curl_command = f""" +curl -s http://localhost:{30000}/v1/chat/completions \\ + -H "Content-Type: application/json" \\ + -d '{{ + "model": "default", + "messages": [ + {{ + "role": "user", + "content": [ + {{ + "type": "video_url", + "video_url": {{ + "url": "/home/jobuser/jobs_presenting_ipod.mp4" + }} + }}, + {{ + "type": "text", + "text": "What is the image" + }} + ] + }} + ], + "temperature": "0", + "max_completion_tokens": "1000", + "max_tokens": "1000" + }}' +""" + +response = subprocess.check_output(curl_command, shell=True).decode() +print(response) +``` + +#### API Response +```text Output +{"id":"520e0a079e5d4b17b82a6af619315a97","object":"chat.completion","created":1765259029,"model":"default","choices":[{"index":0,"message":{"role":"assistant","content":"The image is a still from a presentation by a man on a stage. He is pointing to a small pocket on his jeans and asking the audience what the pocket is for. The video is being shared by Evan Carmichael. The man then reveals that the pocket is for an iPod Nano.","reasoning_content":"Based on the visual evidence in the video, here is a breakdown of what is being shown:\n\n* **Subject:** The video features a man on a stage, giving a presentation. He is wearing a black t-shirt and dark jeans.\n* **Action:** The man is pointing to a pocket on his jeans. He is asking the audience a question about the purpose of this pocket.\n* **Context:** The presentation is being filmed, and the video is being shared by \"Evan Carmichael,\" a well-known motivational speaker and content creator. The source of the clip is credited to \"JoshuaG.\"\n* **Reveal:** The man then reveals the answer to his question. He pulls a small, white, rectangular device out of the pocket. He identifies this device as an \"iPod Nano.\"\n\nIn summary, the image is a still from a presentation where a speaker is explaining the purpose of the small pocket found on many pairs of jeans.","tool_calls":null},"logprobs":null,"finish_reason":"stop","matched_stop":151336}],"usage":{"prompt_tokens":30276,"total_tokens":30532,"completion_tokens":256,"prompt_tokens_details":null,"reasoning_tokens":0},"metadata":{"weight_version":"default"}} +``` + +### Tool Call Example + +#### API Payload +```python Example +from openai import OpenAI +import argparse +import sys +import base64 + +def image_to_base64(image_path): + """Convert image file to base64 data URL format for OpenAI API""" + with open(image_path, 'rb') as image_file: + image_data = image_file.read() + base64_string = base64.b64encode(image_data).decode('utf-8') + return f"data:image/png;base64,{base64_string}" + +openai_api_key = "EMPTY" +openai_api_base = "http://127.0.0.1:30000/v1" +client = OpenAI(api_key=openai_api_key, base_url=openai_api_base) + + + +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get current temperature for a given location.", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "City and country e.g. Beijing, China", + } + }, + "required": ["location"], + "additionalProperties": False, + }, + }, + } +] + + +messages = [ + { + "role": "user", + "content": "Please help me check today’s weather in Beijing, and tell me whether the tool returned an image." + }, + { + "role": "assistant", + "tool_calls": [ + { + "id": "call_bk32t88BGpSdbtDgzT044Rh4", + "type": "function", + "function": { + "name": 'get_weather', + "arguments": '{"location":"Beijing, China"}' + } + } + ] + }, + { + "role": "tool", + "tool_call_id": "call_bk32t88BGpSdbtDgzT044Rh4", + "content": [ + { + "type": "text", + "text": "Weather report generated: Beijing, November 7, 2025, sunny, temperature 2°C." + }, + { + "type": "image_url", + "image_url": { + "url": "/home/jobuser/sgl_logo.png" + } + } + ] + }, +] + +response = client.chat.completions.create( + model="zai-org/GLM-4.6V", + messages=messages, + timeout=900, + tools=tools +) +print(response.choices[0].message.content.strip()) +``` + +#### Output + +```text Output +The weather in Beijing today (November 7, 2025) is sunny with a temperature of 2°C. + +Yes, the tool returned an image (the SGL logo). +``` + +## 5. Benchmark + +### 5.1. Text Benchmark: Latency, Throughput and Accuracy + +#### Command +```shell Command +python3 ./benchmark/gsm8k/bench_sglang.py +``` +#### Result Output +```text Output +Accuracy: 0.925 +Invalid: 0.000 +Latency: 15.327 s +Output throughput: 1788.375 token/s +``` + +### 5.2. Multimodal Benchmark - Latency and Throughput + +#### Command +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --port 30000 \ + --model zai-org/GLM-4.6V \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 128 \ + --max-concurrency 8 +``` + +#### Result Output +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 8 +Successful requests: 128 +Benchmark duration (s): 89.27 +Total input tokens: 315390 +Total input text tokens: 8702 +Total input vision tokens: 306688 +Total generated tokens: 66020 +Total generated tokens (retokenized): 31037 +Request throughput (req/s): 1.43 +Input token throughput (tok/s): 3533.17 +Output token throughput (tok/s): 739.59 +Peak output token throughput (tok/s): 823.00 +Peak concurrent requests: 12 +Total token throughput (tok/s): 4272.76 +Concurrency: 7.67 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 5349.20 +Median E2E Latency (ms): 5380.98 +---------------Time to First Token---------------- +Mean TTFT (ms): 1724.04 +Median TTFT (ms): 1688.16 +P99 TTFT (ms): 6152.34 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 8.15 +Median TPOT (ms): 7.77 +P99 TPOT (ms): 23.97 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 10.00 +Median ITL (ms): 8.44 +P95 ITL (ms): 9.23 +P99 ITL (ms): 116.02 +Max ITL (ms): 173.48 +================================================== +``` + + +### 5.3. Multimodal Accuracy Benchmark - MMMU + +#### Command +```shell Command +python3 benchmark/mmmu/bench_sglang.py --response-answer-regex "<\|begin_of_box\|>(.*)<\|end_of_box\|>" --port 30000 --concurrency 64 --extra-request-body '{"max_tokens": 4096}' +``` + +#### Result Output +```text Output +Benchmark time: 487.2229107860476 +answers saved to: ./answer_sglang.json +Evaluating... +answers saved to: ./answer_sglang.json +{'Accounting': {'acc': 0.962, 'num': 26}, + 'Agriculture': {'acc': 0.5, 'num': 30}, + 'Architecture_and_Engineering': {'acc': 0.733, 'num': 15}, + 'Art': {'acc': 0.833, 'num': 30}, + 'Art_Theory': {'acc': 0.9, 'num': 30}, + 'Basic_Medical_Science': {'acc': 0.733, 'num': 30}, + 'Biology': {'acc': 0.586, 'num': 29}, + 'Chemistry': {'acc': 0.654, 'num': 26}, + 'Clinical_Medicine': {'acc': 0.633, 'num': 30}, + 'Computer_Science': {'acc': 0.76, 'num': 25}, + 'Design': {'acc': 0.867, 'num': 30}, + 'Diagnostics_and_Laboratory_Medicine': {'acc': 0.633, 'num': 30}, + 'Economics': {'acc': 0.862, 'num': 29}, + 'Electronics': {'acc': 0.5, 'num': 18}, + 'Energy_and_Power': {'acc': 0.875, 'num': 16}, + 'Finance': {'acc': 0.857, 'num': 28}, + 'Geography': {'acc': 0.714, 'num': 28}, + 'History': {'acc': 0.767, 'num': 30}, + 'Literature': {'acc': 0.897, 'num': 29}, + 'Manage': {'acc': 0.759, 'num': 29}, + 'Marketing': {'acc': 1.0, 'num': 26}, + 'Materials': {'acc': 0.833, 'num': 18}, + 'Math': {'acc': 0.76, 'num': 25}, + 'Mechanical_Engineering': {'acc': 0.619, 'num': 21}, + 'Music': {'acc': 0.286, 'num': 28}, + 'Overall': {'acc': 0.761, 'num': 803}, + 'Overall-Art and Design': {'acc': 0.729, 'num': 118}, + 'Overall-Business': {'acc': 0.884, 'num': 138}, + 'Overall-Health and Medicine': {'acc': 0.773, 'num': 150}, + 'Overall-Humanities and Social Science': {'acc': 0.78, 'num': 118}, + 'Overall-Science': {'acc': 0.728, 'num': 136}, + 'Overall-Tech and Engineering': {'acc': 0.671, 'num': 143}, + 'Pharmacy': {'acc': 0.933, 'num': 30}, + 'Physics': {'acc': 0.929, 'num': 28}, + 'Psychology': {'acc': 0.733, 'num': 30}, + 'Public_Health': {'acc': 0.933, 'num': 30}, + 'Sociology': {'acc': 0.724, 'num': 29}} +eval out saved to ./val_sglang.json +Overall accuracy: 0.761 +``` diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-4.7-Flash.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-4.7-Flash.mdx new file mode 100644 index 000000000..6acd54c89 --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-4.7-Flash.mdx @@ -0,0 +1,931 @@ +--- +title: GLM-4.7-Flash +metatags: + description: "Deploy GLM-4.7-Flash 30B-A3B MoE model with SGLang - lightweight, efficient inference optimized for single-GPU deployment." +--- + +## 1. Model Introduction + +[GLM-4.7-Flash](https://huggingface.co/zai-org/GLM-4.7-Flash) is a lightweight and high-speed model in the GLM-4.7 series developed by Zhipu AI, featuring state-of-the-art capabilities in reasoning, function calling, and efficient local deployment. + +As a compact variant in the GLM-4.7 family, GLM-4.7-Flash is a **30B-A3B MoE** model designed to balance performance and efficiency: + +- **Lightweight Architecture**: 30B total parameters with only 3B active parameters, enabling efficient inference +- **Enhanced Reasoning**: Inherits the reasoning capabilities from GLM-4.7 with optimized performance +- **Superior Coding**: Strong code generation and understanding capabilities +- **Advanced Tool Use**: Robust tool calling and agent capabilities for complex workflows +- **Optimized for Local Deployment**: Designed for single-GPU deployment scenarios + +For more details, please refer to the [official GLM-4.7 documentation](https://docs.z.ai/guides/llm/glm-4.7). + +**Key Features:** + +- **Efficient MoE Architecture**: 30B-A3B sparse activation for optimal performance/efficiency trade-off +- **Multiple Quantizations**: BF16 and FP8 variants for different performance/memory trade-offs +- **Hardware Optimization**: Specifically tuned for NVIDIA H100/H200/B200 GPUs +- **High Performance**: Optimized for both throughput and latency scenarios + +**Available Models:** + +- **BF16 (Full precision)**: [zai-org/GLM-4.7-Flash](https://huggingface.co/zai-org/GLM-4.7-Flash) + +**License:** + +Please refer to the [official GLM-4.7-Flash model card](https://huggingface.co/zai-org/GLM-4.7-Flash) for license details. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, deployment strategy, and thinking capabilities. + +import { GLM47FlashDeployment } from "/src/snippets/autoregressive/glm-47-flash-deployment.jsx"; + + + +### 3.2 Configuration Tips + +For more detailed configuration tips, please refer to [GLM-4.7 Usage](../../../docs/basic_usage/glm45). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +GLM-4.7-Flash supports Thinking mode by default. Enable the reasoning parser during deployment to separate the thinking and the content sections: + +```shell Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.7-Flash \ + --reasoning-parser glm45 \ + --attention-backend triton \ + --tp 1 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="zai-org/GLM-4.7-Flash", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +To solve this problem, I need to calculate 15% of 240. +Step 1: Convert 15% to decimal: 15% = 0.15 +Step 2: Multiply 240 by 0.15 +Step 3: 240 × 0.15 = 36 +=============== Content ================= + +The answer is 36. To find 15% of 240, we multiply 240 by 0.15, which equals 36. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.2 Tool Calling + +GLM-4.7-Flash supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.7-Flash \ + --reasoning-parser glm45 \ + --tool-call-parser glm47 \ + --attention-backend triton \ + --tp 1 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="zai-org/GLM-4.7-Flash", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls (tool call deltas may stream in multiple chunks) + if hasattr(delta, 'tool_calls') and delta.tool_calls: + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +if tool_calls_accumulator: + print("\n=============== Tool Calls =================", flush=True) + for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking for the weather in Beijing. I have the get_weather function available which can provide weather information for a location. The required parameter is "location" and the + user has provided "Beijing". There's an optional parameter "unit" for temperature unit, but the user hasn't specified which unit they prefer, and since it's optional, I should not ask about it or make up a value for it. I'll call the function with just the location parameter.I'll check the current weather in Beijing for you. +=============== Tool Calls ================= +Tool Call: get_weather + Arguments: {"location": "Beijing"} + +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="zai-org/GLM-4.7-Flash", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 (1x) +- Model: GLM-4.7-Flash +- Tensor Parallelism: 1 +- SGLang Version: 0.5.7 + +**Benchmark Methodology:** + +We use industry-standard benchmark configurations to ensure results are comparable across frameworks and hardware platforms. + +#### 5.1.1 Standard Test Scenarios + +Three core scenarios reflect real-world usage patterns: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ScenarioInput LengthOutput LengthUse Case
      **Chat**1K1KMost common conversational AI workload
      **Reasoning**1K8KLong-form generation, complex reasoning tasks
      **Summarization**8K1KDocument summarization, RAG retrieval
      + +#### 5.1.2 Concurrency Levels + +Test each scenario at three concurrency levels to capture the throughput vs. latency tradeoff (Pareto frontier): + +- **Low Concurrency**: `--max-concurrency 1` (Latency-optimized) +- **Medium Concurrency**: `--max-concurrency 16` (Balanced) +- **High Concurrency**: `--max-concurrency 100` (Throughput-optimized) + +#### 5.1.3 Number of Prompts + +For each concurrency level, configure `num_prompts` to simulate realistic user loads: + +- **Quick Test**: `num_prompts = concurrency × 1` (minimal test) +- **Recommended**: `num_prompts = concurrency × 5` (standard benchmark) +- **Stable Measurements**: `num_prompts = concurrency × 10` (production-grade) + +--- + +#### 5.1.4 Benchmark Commands + +**Scenario 1: Chat (1K/1K) - Most Important** + +- **Model Deployment** + +```bash Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.7-Flash \ + --attention-backend triton \ + --tp 1 +``` + +- Low Concurrency (Latency-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7-Flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 38.94 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.26 +Input token throughput (tok/s): 156.67 +Output token throughput (tok/s): 108.37 +Peak output token throughput (tok/s): 125.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 265.03 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3891.12 +Median E2E Latency (ms): 3061.48 +P90 E2E Latency (ms): 7172.25 +P99 E2E Latency (ms): 9042.62 +---------------Time to First Token---------------- +Mean TTFT (ms): 131.36 +Median TTFT (ms): 94.55 +P99 TTFT (ms): 435.93 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 8.75 +Median TPOT (ms): 8.82 +P99 TPOT (ms): 9.39 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 8.93 +Median ITL (ms): 8.98 +P95 ITL (ms): 9.83 +P99 ITL (ms): 10.20 +Max ITL (ms): 18.50 +================================================== +``` + +- Medium Concurrency (Balanced) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7-Flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 52.73 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40775 +Request throughput (req/s): 1.52 +Input token throughput (tok/s): 752.27 +Output token throughput (tok/s): 773.83 +Peak output token throughput (tok/s): 1040.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 1526.10 +Concurrency: 13.98 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 9217.90 +Median E2E Latency (ms): 9642.50 +P90 E2E Latency (ms): 15147.02 +P99 E2E Latency (ms): 18237.06 +---------------Time to First Token---------------- +Mean TTFT (ms): 299.02 +Median TTFT (ms): 105.98 +P99 TTFT (ms): 1109.29 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 18.03 +Median TPOT (ms): 18.00 +P99 TPOT (ms): 26.51 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 17.52 +Median ITL (ms): 16.07 +P95 ITL (ms): 18.14 +P99 ITL (ms): 89.43 +Max ITL (ms): 763.13 +================================================== +``` + +- High Concurrency (Throughput-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7-Flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 91.48 +Total input tokens: 249831 +Total input text tokens: 249831 +Total generated tokens: 252662 +Total generated tokens (retokenized): 250941 +Request throughput (req/s): 5.47 +Input token throughput (tok/s): 2730.87 +Output token throughput (tok/s): 2761.82 +Peak output token throughput (tok/s): 4199.00 +Peak concurrent requests: 109 +Total token throughput (tok/s): 5492.69 +Concurrency: 90.54 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 16566.04 +Median E2E Latency (ms): 16134.36 +P90 E2E Latency (ms): 30167.60 +P99 E2E Latency (ms): 34034.04 +---------------Time to First Token---------------- +Mean TTFT (ms): 433.94 +Median TTFT (ms): 123.26 +P99 TTFT (ms): 1760.09 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 32.26 +Median TPOT (ms): 33.56 +P99 TPOT (ms): 38.78 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 31.99 +Median ITL (ms): 24.06 +P95 ITL (ms): 79.62 +P99 ITL (ms): 103.03 +Max ITL (ms): 1369.20 +================================================== +``` + + +**Scenario 2: Reasoning (1K/8K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7-Flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 525.43 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 44462 +Total generated tokens (retokenized): 44451 +Request throughput (req/s): 0.02 +Input token throughput (tok/s): 11.61 +Output token throughput (tok/s): 84.62 +Peak output token throughput (tok/s): 125.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 96.23 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 52540.19 +Median E2E Latency (ms): 53694.45 +P90 E2E Latency (ms): 94742.08 +P99 E2E Latency (ms): 101224.18 +---------------Time to First Token---------------- +Mean TTFT (ms): 97.45 +Median TTFT (ms): 95.28 +P99 TTFT (ms): 105.64 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.94 +Median TPOT (ms): 11.25 +P99 TPOT (ms): 13.09 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 11.80 +Median ITL (ms): 11.51 +P95 ITL (ms): 15.83 +P99 ITL (ms): 16.86 +Max ITL (ms): 19.96 +================================================== +``` + +- Medium Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7-Flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 473.92 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 318306 +Total generated tokens (retokenized): 317860 +Request throughput (req/s): 0.17 +Input token throughput (tok/s): 83.70 +Output token throughput (tok/s): 671.65 +Peak output token throughput (tok/s): 1040.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 755.35 +Concurrency: 13.80 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 81746.73 +Median E2E Latency (ms): 78508.54 +P90 E2E Latency (ms): 155292.49 +P99 E2E Latency (ms): 166769.99 +---------------Time to First Token---------------- +Mean TTFT (ms): 117.50 +Median TTFT (ms): 101.97 +P99 TTFT (ms): 182.88 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 20.36 +Median TPOT (ms): 20.48 +P99 TPOT (ms): 22.63 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 20.52 +Median ITL (ms): 20.42 +P95 ITL (ms): 23.41 +P99 ITL (ms): 26.29 +Max ITL (ms): 90.48 +================================================== +``` + +- High Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7-Flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 714.72 +Total input tokens: 158939 +Total input text tokens: 158939 +Total generated tokens: 1301025 +Total generated tokens (retokenized): 1289431 +Request throughput (req/s): 0.45 +Input token throughput (tok/s): 222.38 +Output token throughput (tok/s): 1820.33 +Peak output token throughput (tok/s): 3200.00 +Peak concurrent requests: 68 +Total token throughput (tok/s): 2042.71 +Concurrency: 55.68 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 124364.58 +Median E2E Latency (ms): 129250.98 +P90 E2E Latency (ms): 219175.80 +P99 E2E Latency (ms): 247741.77 +---------------Time to First Token---------------- +Mean TTFT (ms): 149.40 +Median TTFT (ms): 114.78 +P99 TTFT (ms): 288.60 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 30.51 +Median TPOT (ms): 31.75 +P99 TPOT (ms): 33.32 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 30.56 +Median ITL (ms): 30.82 +P95 ITL (ms): 33.20 +P99 ITL (ms): 80.54 +Max ITL (ms): 117.72 +================================================== +``` + +**Scenario 3: Summarization (8K/1K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7-Flash \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 58.27 +Total input tokens: 41941 +Total input text tokens: 41941 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.17 +Input token throughput (tok/s): 719.73 +Output token throughput (tok/s): 72.42 +Peak output token throughput (tok/s): 112.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 792.15 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 5825.08 +Median E2E Latency (ms): 4624.26 +P90 E2E Latency (ms): 12690.22 +P99 E2E Latency (ms): 13177.96 +---------------Time to First Token---------------- +Mean TTFT (ms): 296.01 +Median TTFT (ms): 195.59 +P99 TTFT (ms): 717.88 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 12.63 +Median TPOT (ms): 13.07 +P99 TPOT (ms): 16.68 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 13.13 +Median ITL (ms): 13.17 +P95 ITL (ms): 17.02 +P99 ITL (ms): 17.47 +Max ITL (ms): 19.84 +================================================== +``` + +- Medium Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7-Flash \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 89.59 +Total input tokens: 300020 +Total input text tokens: 300020 +Total generated tokens: 41669 +Total generated tokens (retokenized): 41656 +Request throughput (req/s): 0.89 +Input token throughput (tok/s): 3348.77 +Output token throughput (tok/s): 465.10 +Peak output token throughput (tok/s): 752.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 3813.87 +Concurrency: 14.39 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 16120.74 +Median E2E Latency (ms): 16246.55 +P90 E2E Latency (ms): 27279.72 +P99 E2E Latency (ms): 34577.93 +---------------Time to First Token---------------- +Mean TTFT (ms): 1943.94 +Median TTFT (ms): 382.19 +P99 TTFT (ms): 8980.41 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 27.87 +Median TPOT (ms): 28.26 +P99 TPOT (ms): 40.55 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 27.27 +Median ITL (ms): 21.74 +P95 ITL (ms): 23.32 +P99 ITL (ms): 232.65 +Max ITL (ms): 4282.01 +================================================== +``` + +- High Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7-Flash \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 167.01 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total generated tokens: 170000 +Total generated tokens (retokenized): 169226 +Request throughput (req/s): 1.92 +Input token throughput (tok/s): 7627.82 +Output token throughput (tok/s): 1017.93 +Peak output token throughput (tok/s): 1984.00 +Peak concurrent requests: 69 +Total token throughput (tok/s): 8645.75 +Concurrency: 59.68 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 31147.52 +Median E2E Latency (ms): 30603.34 +P90 E2E Latency (ms): 54889.44 +P99 E2E Latency (ms): 67665.30 +---------------Time to First Token---------------- +Mean TTFT (ms): 428.87 +Median TTFT (ms): 441.69 +P99 TTFT (ms): 1232.68 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 58.06 +Median TPOT (ms): 62.79 +P99 TPOT (ms): 82.23 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 57.93 +Median ITL (ms): 33.30 +P95 ITL (ms): 247.98 +P99 ITL (ms): 409.63 +Max ITL (ms): 1421.21 +================================================== +``` + +#### 5.1.5 Understanding the Results + +**Key Metrics:** + +- **Request Throughput (req/s)**: Number of requests processed per second +- **Output Token Throughput (tok/s)**: Total tokens generated per second +- **Mean TTFT (ms)**: Time to First Token - measures responsiveness +- **Mean TPOT (ms)**: Time Per Output Token - measures generation speed +- **Mean ITL (ms)**: Inter-Token Latency - measures streaming consistency + +**Why These Configurations Matter:** + +- **1K/1K (Chat)**: Represents the most common conversational AI workload. This is the highest priority scenario for most deployments. +- **1K/8K (Reasoning)**: Tests long-form generation capabilities crucial for complex reasoning, code generation, and detailed explanations. +- **8K/1K (Summarization)**: Evaluates performance with large context inputs, essential for RAG systems, document Q&A, and summarization tasks. +- **Variable Concurrency**: Captures the Pareto frontier - the optimal tradeoff between throughput and latency at different load levels. Low concurrency shows best-case latency, high concurrency shows maximum throughput. + +**Interpreting Results:** + +- Compare your results against baseline numbers for your hardware +- Higher throughput at same latency = better performance +- Lower TTFT = more responsive user experience +- Lower TPOT = faster generation speed + +### 5.2 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command + +```bash Command +python -m sglang.test.few_shot_gsm8k \ + --num-questions 200 \ + --port 30000 +``` + +- Result + +```text Output +Accuracy: 0.845 +Invalid: 0.000 +Latency: 8.431 s +Output throughput: 2195.387 token/s +``` diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-4.7.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-4.7.mdx new file mode 100644 index 000000000..172dcce64 --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-4.7.mdx @@ -0,0 +1,546 @@ +--- +title: GLM-4.7 +metatags: + description: "Deploy GLM-4.7 with SGLang on AMD GPUs - state-of-the-art reasoning, enhanced coding, and robust tool calling capabilities." +--- + +## 1. Model Introduction + +[GLM-4.7](https://huggingface.co/zai-org/GLM-4.7) is the latest and most powerful language model in the GLM series developed by Zhipu AI, featuring state-of-the-art capabilities in reasoning, function calling, and multi-modal understanding. + +As the newest iteration in the GLM series, GLM-4.7 achieves significant improvements across all domains: + +- **Extended Context Window**: Expanded context window supporting even longer documents and complex multi-turn conversations +- **Enhanced Reasoning**: Improved reasoning capabilities with better chain-of-thought processing +- **Superior Coding**: Significantly improved code generation and understanding, with better real-world application performance +- **Advanced Tool Use**: More robust tool calling and agent capabilities for complex workflows +- **Optimized Performance**: Better throughput and latency characteristics across all hardware platforms + +For more details, please refer to the [official GLM-4.7 documentation](https://docs.z.ai/guides/llm/glm-4.7). + +**Key Features:** + +- **State-of-the-Art Reasoning**: Enhanced reasoning capabilities for the most complex problem-solving tasks +- **Multiple Quantizations**: BF16 and FP8 variants for different performance/memory trade-offs +- **Hardware Optimization**: Specifically tuned for AMD MI300X/MI325X/MI355X GPUs +- **High Performance**: Optimized for both throughput and latency scenarios + +**Available Models:** + +- **BF16 (Full precision)**: [zai-org/GLM-4.7](https://huggingface.co/zai-org/GLM-4.7) - Recommended for MI300X/MI325X/MI355X +- **FP8 (8-bit quantized)**: [zai-org/GLM-4.7-FP8](https://huggingface.co/zai-org/GLM-4.7-FP8) - Recommended for MI300X/MI325X/MI355X + +**License:** + +Please refer to the [official GLM-4.7 model card](https://huggingface.co/zai-org/GLM-4.7) for license details. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, deployment strategy, and thinking capabilities. + +import { GLM47Deployment } from "/src/snippets/autoregressive/glm-47-deployment.jsx"; + + + +### 3.2 Configuration Tips + +For more detailed configuration tips, please refer to [GLM-4.7 Usage](../../../docs/basic_usage/glm45). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +GLM-4.7 supports Thinking mode by default. Enable the reasoning parser during deployment to separate the thinking and the content sections: + +```shell Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.7 \ + --reasoning-parser glm47 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="zai-org/GLM-4.7", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +To solve this problem, I need to calculate 15% of 240. +Step 1: Convert 15% to decimal: 15% = 0.15 +Step 2: Multiply 240 by 0.15 +Step 3: 240 × 0.15 = 36 +=============== Content ================= + +The answer is 36. To find 15% of 240, we multiply 240 by 0.15, which equals 36. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.2 Tool Calling + +GLM-4.7 supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.7 \ + --reasoning-parser glm47 \ + --tool-call-parser glm47 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="zai-org/GLM-4.7", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I need to use the get_weather function to retrieve this information. +I should call the function with location="Beijing". +=============== Content ================= + +Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="zai-org/GLM-4.7", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: AMD MI300X (8x), AMD MI325X (8x), AMD MI355X (8x) +- Model: GLM-4.7 +- Tensor Parallelism: 8 +- SGLang Version: 0.5.6.post1 + +**Benchmark Methodology:** + +We use industry-standard benchmark configurations to ensure results are comparable across frameworks and hardware platforms. + +#### 5.1.1 Standard Test Scenarios + +Three core scenarios reflect real-world usage patterns: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ScenarioInput LengthOutput LengthUse Case
      **Chat**1K1KMost common conversational AI workload
      **Reasoning**1K8KLong-form generation, complex reasoning tasks
      **Summarization**8K1KDocument summarization, RAG retrieval
      + +#### 5.1.2 Concurrency Levels + +Test each scenario at three concurrency levels to capture the throughput vs. latency tradeoff (Pareto frontier): + +- **Low Concurrency**: `--max-concurrency 1` (Latency-optimized) +- **Medium Concurrency**: `--max-concurrency 16` (Balanced) +- **High Concurrency**: `--max-concurrency 100` (Throughput-optimized) + +#### 5.1.3 Number of Prompts + +For each concurrency level, configure `num_prompts` to simulate realistic user loads: + +- **Quick Test**: `num_prompts = concurrency × 1` (minimal test) +- **Recommended**: `num_prompts = concurrency × 5` (standard benchmark) +- **Stable Measurements**: `num_prompts = concurrency × 10` (production-grade) + +--- + +#### 5.1.4 Benchmark Commands + +**Scenario 1: Chat (1K/1K) - Most Important** + +- **Model Deployment** +```bash Command +python -m sglang.launch_server \ + --model zai-org/GLM-4.7 \ + --tp 8 +``` + + +- Low Concurrency (Latency-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Medium Concurrency (Balanced) +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- High Concurrency (Throughput-Optimized) +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +**Scenario 2: Reasoning (1K/8K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Medium Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- High Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +**Scenario 3: Summarization (8K/1K)** + +- Low Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Medium Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- High Concurrency +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-4.7 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +#### 5.1.5 Understanding the Results + +**Key Metrics:** + +- **Request Throughput (req/s)**: Number of requests processed per second +- **Output Token Throughput (tok/s)**: Total tokens generated per second +- **Mean TTFT (ms)**: Time to First Token - measures responsiveness +- **Mean TPOT (ms)**: Time Per Output Token - measures generation speed +- **Mean ITL (ms)**: Inter-Token Latency - measures streaming consistency + +**Why These Configurations Matter:** + +- **1K/1K (Chat)**: Represents the most common conversational AI workload. This is the highest priority scenario for most deployments. +- **1K/8K (Reasoning)**: Tests long-form generation capabilities crucial for complex reasoning, code generation, and detailed explanations. +- **8K/1K (Summarization)**: Evaluates performance with large context inputs, essential for RAG systems, document Q&A, and summarization tasks. +- **Variable Concurrency**: Captures the Pareto frontier - the optimal tradeoff between throughput and latency at different load levels. Low concurrency shows best-case latency, high concurrency shows maximum throughput. + +**Interpreting Results:** + +- Compare your results against baseline numbers for your hardware +- Higher throughput at same latency = better performance +- Lower TTFT = more responsive user experience +- Lower TPOT = faster generation speed + +### 5.2 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command +```bash Command +python -m sglang.test.few_shot_gsm8k \ + --num-questions 200 \ + --port 30000 +``` diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-5.1.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-5.1.mdx new file mode 100644 index 000000000..97afecca0 --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-5.1.mdx @@ -0,0 +1,641 @@ +--- +title: GLM-5.1 +metatags: + description: "Deploy GLM-5.1 with SGLang on NVIDIA H100/H200/B200/GB300 and AMD MI300X/MI325X/MI355X." +tag: NEW +--- + +## 1. Model Introduction + +**Available Models:** + +- **BF16 (Full precision)**: [zai-org/GLM-5.1](https://huggingface.co/zai-org/GLM-5.1) +- **FP8 (8-bit quantized)**: [zai-org/GLM-5.1-FP8](https://huggingface.co/zai-org/GLM-5.1-FP8) + +**License:** MIT + +## 2. SGLang Installation + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, and capabilities. SGLang supports serving GLM-5.1 on NVIDIA H100, H200, B200, GB300, and AMD MI300X/MI325X/MI355X GPUs. + +import { GLM51Deployment } from '/src/snippets/autoregressive/glm-51-deployment.jsx' + + + +### 3.2 Configuration Tips + +- Speculative decoding (MTP) can significantly reduce latency for interactive use cases. +- **DP Attention**: Enables data parallel attention for higher throughput under high concurrency. Note that DP attention trades off low-concurrency latency for high-concurrency throughput — disable it if your workload is latency-sensitive with few concurrent requests. +- The `--mem-fraction-static` flag is recommended for optimal memory utilization, adjust it based on your hardware and workload. +- BF16 model always requires **2x GPUs** compared to FP8 on NVIDIA hardware. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      HardwareFP8BF16
      H100tp=16tp=32
      H200tp=8tp=16
      B200tp=8tp=16
      GB300tp=4
      MI300X/MI325Xtp=8tp=8
      MI355Xtp=8tp=8
      + +- **AMD GPUs**: Both BF16 and FP8 checkpoints are supported on MI300X/MI325X/MI355X at tp=8. Use `--nsa-prefill-backend tilelang --nsa-decode-backend tilelang` for the NSA attention backend. Add `--chunked-prefill-size 131072` and `--watchdog-timeout 1200` (20 minutes for weight loading). FP8 uses approximately half the memory of BF16 (~89 GB/GPU vs ~175 GB/GPU). EAGLE speculative decoding is not currently supported on AMD for GLM-5.1. +- **GB300**: Only the FP8 checkpoint is recommended on GB300, with `tp=4`. For high-throughput DP attention on GB300, use `--dp 4`. +- For other configuration tips, please refer to [DeepSeek V3.2 documentation](../../../docs/basic_usage/deepseek_v32). GLM-5.1 and DeepSeek V3.2 share the same model structure, so the optimization techniques between these two models are also common (MTP, DSA kernel, Context Parallel...). +- Use `--json-model-override-args '{"index_topk_pattern": "FFSFSSSFSSFFFSSSFFFSFSSSSSSFFSFFSFFSSFFFFFFSFFFFFSFFSSSSSSFSFFFSFSSSFSFFSFFSSS"}'` for GLM-5.1-FP8 if you want to enable the [IndexCache](https://github.com/THUDM/IndexCache) method. This feature is supported through [this PR](https://github.com/sgl-project/sglang/pull/21405) and introduces only a small accuracy loss. However, if you are running rigorous accuracy evaluations, it is not recommended to enable this feature. + +## 4. Model Invocation + +Deploy GLM-5.1 with the following command (FP8 on H200, all features enabled): + +```shell Command +SGLANG_ENABLE_SPEC_V2=1 sglang serve \ + --model-path zai-org/GLM-5.1-FP8 \ + --tp 8 \ + --tool-call-parser glm47 \ + --reasoning-parser glm45 \ + --speculative-algorithm EAGLE \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --mem-fraction-static 0.85 \ + --host 0.0.0.0 \ + --port 30000 +``` + +### 4.1 MI300X/MI325X/MI355X (ROCm) Server Command + +The following ROCm commands are additional options for AMD GPUs and do not replace the NVIDIA instructions above. + +#### FP8 (Recommended) + +```shell Command +sglang serve \ + --model-path zai-org/GLM-5.1-FP8 \ + --tp 8 \ + --trust-remote-code \ + --tool-call-parser glm47 \ + --reasoning-parser glm45 \ + --nsa-prefill-backend tilelang \ + --nsa-decode-backend tilelang \ + --chunked-prefill-size 131072 \ + --mem-fraction-static 0.80 \ + --watchdog-timeout 1200 \ + --host 0.0.0.0 \ + --port 30000 +``` + +#### BF16 + +```shell Command +sglang serve \ + --model-path zai-org/GLM-5.1 \ + --tp 8 \ + --trust-remote-code \ + --nsa-prefill-backend tilelang \ + --nsa-decode-backend tilelang \ + --chunked-prefill-size 131072 \ + --mem-fraction-static 0.80 \ + --watchdog-timeout 1200 \ + --host 0.0.0.0 \ + --port 30000 +``` + +### 4.2 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.3 Advanced Usage + +#### 4.3.1 Reasoning Parser + +GLM-5.1 supports Thinking mode **by default**. Enable the reasoning parser during deployment to separate the thinking and content sections. The thinking process is returned via `reasoning_content` in the streaming response. + +To disable thinking and use Instruct mode, pass `chat_template_kwargs` at request time: + +- **Thinking mode** (default): The model performs step-by-step reasoning before answering. No extra parameters needed. +- **Instruct mode** (`{"enable_thinking": false}`): The model responds directly without a thinking process. + +**Example 1: Thinking Mode (Default)** + +Thinking mode is enabled by default. The model will reason step-by-step before answering, and the thinking process is returned via `reasoning_content`: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Thinking mode is enabled by default, no extra parameters needed +response = client.chat.completions.create( + model="zai-org/GLM-5.1-FP8", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +1. **Understand the Goal:** The user wants to find 15% of 240, and they want the solution explained step-by-step. + +2. **Identify the Core Mathematical Concept:** "Percent" means "per hundred" or "out of 100". Finding "X% of Y" translates to the mathematical operation: $(X / 100) \times Y$. + +3. **Step-by-Step Breakdown:** + * *Step 1: Convert the percentage to a decimal (or fraction).* 15% means 15 out of 100, which is $15/100$ or $0.15$. + * *Step 2: Multiply the decimal by the given number.* Multiply $0.15$ by $240$. + * *Step 3: Perform the calculation.* + * $0.15 \times 240$ + * I can break this down further to make it easy to follow: + * $0.10 \times 240 = 24$ (which is 10%) + * $0.05 \times 240 = 12$ (which is 5%, half of 10%) + * $24 + 12 = 36$ + * Alternatively, standard multiplication: + * $240 \times 15 = 3600$ + * Move decimal two places left -> $36$ + * *Step 4: State the final answer clearly.* + +4. **Draft the Response (incorporating the steps clearly):** + * *Introduction:* State the problem clearly. + * *Step 1:* Explain how to convert 15% to a decimal. + * *Step 2:* Explain the multiplication step. + * *Step 3:* Show the actual math (I'll provide the standard multiplication and the "mental math" trick as it adds value). + * *Conclusion:* Give the final answer. + +5. **Refine the Output (Self-Correction/Polishing during drafting):** + * *Drafting Step 1:* To find 15% of 240, first convert 15% into a decimal. Since percent means "per hundred," you divide 15 by 100. 15 ÷ 100 = 0.15. + * *Drafting Step 2:* Next, multiply this decimal by the number you are finding the percentage of (which is 240). So, calculate 0.15 × 240. + * *Drafting Step 3 (Standard way):* 0.15 × 240 = 36. + * *Adding the alternative mental math way:* It's often helpful to break it down into 10% and 5%. + * 10% of 240 = 24 (move the decimal point one place to the left) + * 5% is half of 10%, so half of 24 = 12 + * Add them together: 24 + 12 = 36. + * *Final Answer:* 15% of 240 is 36. + +6. **Final Review against User Prompt:** Does it solve the problem? Yes. Is it step-by-step? Yes. Is it clear? Yes. (Proceed to generate output). +=============== Content ================= +Here is the step-by-step solution to find 15% of 240: + +**Step 1: Convert the percentage to a decimal.** +To convert a percentage to a decimal, divide it by 100 (or simply move the decimal point two places to the left). +* 15% = 15 ÷ 100 = **0.15** + +**Step 2: Multiply the decimal by the number.** +Now, multiply the decimal (0.15) by the number you are finding the percentage of (240). +* 0.15 × 240 = **36** + +*(Alternative mental math method for Step 2)*: +If you don't want to multiply by 0.15 directly, you can break 15% down into 10% and 5%: +* **10% of 240** = 24 (just move the decimal point one place to the left) +* **5% of 240** = 12 (5% is half of 10%, so just divide 24 by 2) +* **Add them together**: 24 + 12 = **36** + +**Answer:** +15% of 240 is **36**. +``` + +**Example 2: Instruct Mode (Thinking Off)** + +To disable thinking and get a direct response, pass `{"enable_thinking": false}` via `chat_template_kwargs`: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Disable thinking mode via chat_template_kwargs +response = client.chat.completions.create( + model="zai-org/GLM-5.1-FP8", + messages=[ + {"role": "user", "content": "What is 15% of 240?"} + ], + extra_body={"chat_template_kwargs": {"enable_thinking": False}}, + max_tokens=2048, + stream=True +) + +# In Instruct mode, the model responds directly without reasoning_content +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +15% of 240 is 36. + +Here is how to calculate it: +1. Convert the percentage to a decimal: 15% = 0.15 +2. Multiply the decimal by the number: 0.15 × 240 = 36 +``` + +#### 4.3.2 Tool Calling + +GLM-5.1 supports tool calling capabilities. Enable the tool call parser during deployment. Thinking mode is on by default; to disable it for tool calling requests, pass `extra_body={"chat_template_kwargs": {"enable_thinking": False}}`. + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="zai-org/GLM-5.1-FP8", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user wants to know the weather in Beijing. I'll call the get_weather function with "Beijing" as the location. +=============== Content ================= +Tool Call: get_weather + Arguments: +Tool Call: None + Arguments: { +Tool Call: None + Arguments: "location": "Be +Tool Call: None + Arguments: ijing" +Tool Call: None + Arguments: } +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: H200 (8x) +- Model: GLM-5.1-FP8 +- Tensor Parallelism: 8 +- SGLang Version: commit 947927bdb + +#### 5.1.1 Latency Benchmark + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-5.1-FP8 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 35.78 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4213 +Request throughput (req/s): 0.28 +Input token throughput (tok/s): 170.54 +Output token throughput (tok/s): 117.96 +Peak output token throughput (tok/s): 148.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 288.50 +Concurrency: 1.00 +Accept length: 3.48 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3576.31 +Median E2E Latency (ms): 2935.97 +P90 E2E Latency (ms): 5908.97 +P99 E2E Latency (ms): 8588.08 +---------------Time to First Token---------------- +Mean TTFT (ms): 290.88 +Median TTFT (ms): 282.34 +P99 TTFT (ms): 332.27 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 7.54 +Median TPOT (ms): 6.97 +P99 TPOT (ms): 9.04 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 7.80 +Median ITL (ms): 6.81 +P95 ITL (ms): 13.51 +P99 ITL (ms): 26.99 +Max ITL (ms): 29.50 +================================================== +``` + +#### 5.1.2 Throughput Benchmark + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-5.1-FP8 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 1000 \ + --max-concurrency 100 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 411.74 +Total input tokens: 502493 +Total input text tokens: 502493 +Total generated tokens: 500251 +Total generated tokens (retokenized): 499614 +Request throughput (req/s): 2.43 +Input token throughput (tok/s): 1220.41 +Output token throughput (tok/s): 1214.97 +Peak output token throughput (tok/s): 2648.00 +Peak concurrent requests: 105 +Total token throughput (tok/s): 2435.38 +Concurrency: 96.30 +Accept length: 3.50 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 39648.76 +Median E2E Latency (ms): 39058.12 +P90 E2E Latency (ms): 57009.82 +P99 E2E Latency (ms): 68880.33 +---------------Time to First Token---------------- +Mean TTFT (ms): 20613.80 +Median TTFT (ms): 21429.21 +P99 TTFT (ms): 29543.17 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 38.73 +Median TPOT (ms): 36.52 +P99 TPOT (ms): 67.09 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 38.13 +Median ITL (ms): 16.57 +P95 ITL (ms): 86.01 +P99 ITL (ms): 164.88 +Max ITL (ms): 1307.02 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command +```bash Command +python3 benchmark/gsm8k/bench_sglang.py --port 30000 +``` + +- Test Result +```text Output +Accuracy: 0.955 +Invalid: 0.000 +Latency: 32.470 s +Output throughput: 642.044 token/s +``` + +#### 5.2.2 MMLU Benchmark + +- Benchmark Command +```bash Command +python3 benchmark/mmlu/bench_sglang.py --port 30000 +``` + +- Test Result +```text Output +subject: abstract_algebra, #q:100, acc: 0.860 +subject: anatomy, #q:135, acc: 0.874 +subject: astronomy, #q:152, acc: 0.941 +subject: business_ethics, #q:100, acc: 0.880 +subject: clinical_knowledge, #q:265, acc: 0.932 +subject: college_biology, #q:144, acc: 0.972 +subject: college_chemistry, #q:100, acc: 0.640 +subject: college_computer_science, #q:100, acc: 0.900 +subject: college_mathematics, #q:100, acc: 0.810 +subject: college_medicine, #q:173, acc: 0.873 +subject: college_physics, #q:102, acc: 0.912 +subject: computer_security, #q:100, acc: 0.880 +subject: conceptual_physics, #q:235, acc: 0.928 +subject: econometrics, #q:114, acc: 0.807 +subject: electrical_engineering, #q:145, acc: 0.897 +subject: elementary_mathematics, #q:378, acc: 0.937 +subject: formal_logic, #q:126, acc: 0.778 +subject: global_facts, #q:100, acc: 0.710 +subject: high_school_biology, #q:310, acc: 0.961 +subject: high_school_chemistry, #q:203, acc: 0.847 +subject: high_school_computer_science, #q:100, acc: 0.960 +subject: high_school_european_history, #q:165, acc: 0.891 +subject: high_school_geography, #q:198, acc: 0.960 +subject: high_school_government_and_politics, #q:193, acc: 0.984 +subject: high_school_macroeconomics, #q:390, acc: 0.923 +subject: high_school_mathematics, #q:270, acc: 0.696 +subject: high_school_microeconomics, #q:238, acc: 0.962 +subject: high_school_physics, #q:151, acc: 0.821 +subject: high_school_psychology, #q:545, acc: 0.956 +subject: high_school_statistics, #q:216, acc: 0.889 +subject: high_school_us_history, #q:204, acc: 0.941 +subject: high_school_world_history, #q:237, acc: 0.945 +subject: human_aging, #q:223, acc: 0.857 +subject: human_sexuality, #q:131, acc: 0.908 +subject: international_law, #q:121, acc: 0.934 +subject: jurisprudence, #q:108, acc: 0.907 +subject: logical_fallacies, #q:163, acc: 0.933 +subject: machine_learning, #q:112, acc: 0.830 +subject: management, #q:103, acc: 0.942 +subject: marketing, #q:234, acc: 0.940 +subject: medical_genetics, #q:100, acc: 0.990 +subject: miscellaneous, #q:783, acc: 0.959 +subject: moral_disputes, #q:346, acc: 0.873 +subject: moral_scenarios, #q:895, acc: 0.837 +subject: nutrition, #q:306, acc: 0.922 +subject: philosophy, #q:311, acc: 0.897 +subject: prehistory, #q:324, acc: 0.929 +subject: professional_accounting, #q:282, acc: 0.844 +subject: professional_law, #q:1534, acc: 0.714 +subject: professional_medicine, #q:272, acc: 0.941 +subject: professional_psychology, #q:612, acc: 0.913 +subject: public_relations, #q:110, acc: 0.791 +subject: security_studies, #q:245, acc: 0.878 +subject: sociology, #q:201, acc: 0.940 +subject: us_foreign_policy, #q:100, acc: 0.920 +subject: virology, #q:166, acc: 0.596 +subject: world_religions, #q:171, acc: 0.936 +Total latency: 165.275 +Average accuracy: 0.877 +``` + +### 5.3 AMD GPU Benchmarks + +#### 5.3.1 GSM8K Benchmark (MI325/MI35x) + +- MI325/MI35x Test (GLM-5.1 BF16, `tp=8`, TileLang NSA backends) + +```bash Command +python3 benchmark/gsm8k/bench_sglang.py --num-questions 200 +``` + +```text Output +Accuracy: 0.970 +Invalid: 0.000 +``` + +Results from [AMD nightly CI](https://github.com/sgl-project/sglang/actions/runs/22556197510/attempts/2#summary-65346783629). See also [sglang#18911](https://github.com/sgl-project/sglang/pull/18911). diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-5.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-5.mdx new file mode 100644 index 000000000..4a51a8078 --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-5.mdx @@ -0,0 +1,667 @@ +--- +title: GLM-5 +metatags: + description: "Deploy GLM-5 with SGLang on NVIDIA H100/H200/B200 and AMD MI300X/MI325X/MI355X — state-of-the-art reasoning, enhanced coding, and robust tool calling capabilities." +tag: NEW +--- + +## 1. Model Introduction + +[GLM-5](https://huggingface.co/zai-org/GLM-5) is the most powerful language model in the GLM series developed by Zhipu AI, targeting complex systems engineering and long-horizon agentic tasks. Scaling from GLM-4.5's 355B parameters (32B active) to 744B parameters (40B active), GLM-5 integrates DeepSeek Sparse Attention (DSA) to largely reduce deployment cost while preserving long-context capacity. + +With advances in both pre-training (28.5T tokens) and post-training via [slime](https://github.com/THUDM/slime) (a novel asynchronous RL infrastructure), GLM-5 delivers significant improvements over GLM-4.7 and achieves best-in-class performance among open-source models on reasoning, coding, and agentic tasks. + +**Key Features:** + +- **Systems Engineering & Agentic Tasks**: Purpose-built for complex systems engineering and long-horizon agentic tasks +- **State-of-the-Art Performance**: Best-in-class among open-source models on reasoning (HLE, AIME, GPQA), coding (SWE-bench, Terminal-Bench), and agentic tasks (BrowseComp, Vending Bench 2) +- **DeepSeek Sparse Attention (DSA)**: Reduces deployment cost while preserving long-context capacity +- **Multiple Quantizations**: BF16 and FP8 variants for different performance/memory trade-offs +- **Speculative Decoding**: EAGLE-based speculative decoding support for lower latency + +**Available Models:** + +- **BF16 (Full precision)**: [zai-org/GLM-5](https://huggingface.co/zai-org/GLM-5) +- **FP8 (8-bit quantized)**: [zai-org/GLM-5-FP8](https://huggingface.co/zai-org/GLM-5-FP8) + +**License:** MIT + +## 2. SGLang Installation + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, and capabilities. SGLang supports serving GLM-5 on NVIDIA H100, H200, B200, and AMD MI300X/MI325X/MI355X GPUs. + +import { GLM5Deployment } from '/src/snippets/autoregressive/glm-5-deployment.jsx' + + + +### 3.2 Configuration Tips + +- Speculative decoding (MTP) can significantly reduce latency for interactive use cases. +- **DP Attention**: Enables data parallel attention for higher throughput under high concurrency. Note that DP attention trades off low-concurrency latency for high-concurrency throughput — disable it if your workload is latency-sensitive with few concurrent requests. +- The `--mem-fraction-static` flag is recommended for optimal memory utilization, adjust it based on your hardware and workload. +- BF16 model always requires **2x GPUs** compared to FP8 on NVIDIA hardware. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      HardwareFP8BF16
      H100tp=16tp=32
      H200tp=8tp=16
      B200tp=8tp=16
      MI300X/MI325Xtp=8
      MI355Xtp=8
      + +- **B200 (FP8)**: Use `--ep 1 --attention-backend nsa --nsa-decode-backend trtllm --nsa-prefill-backend trtllm --moe-runner-backend flashinfer_trtllm --enable-flashinfer-allreduce-fusion` for optimized NSA and MoE backends on Blackwell. Also add `--quantization fp8` for FP8 weight quantization. + +- **AMD GPUs**: Use `--nsa-prefill-backend tilelang --nsa-decode-backend tilelang` for the NSA attention backend. Add `--chunked-prefill-size 131072` and `--watchdog-timeout 1200` (20 minutes for weight loading). EAGLE speculative decoding is not currently supported on AMD for GLM-5. +- For other configuration tips, please refer to [DeepSeek V3.2 documentation](../../../docs/basic_usage/deepseek_v32). GLM-5 and DeepSeek V3.2 share the same model structure, so the optimization techniques between these two models are also common (MTP, DSA kernel, Context Parallel...). +- Use `--json-model-override-args '{"index_topk_pattern": "FFSFSSSFSSFFFSSSFFFSFSSSSSSFFSFFSFFSSFFFFFFSFFFFFSFFSSSSSSFSFFFSFSSSFSFFSFFSSS"}'` for GLM-5-FP8 if you want to enable the [IndexCache](https://github.com/THUDM/IndexCache) method. This feature is supported through [this PR](https://github.com/sgl-project/sglang/pull/21405) and introduces only a small accuracy loss. However, if you are running rigorous accuracy evaluations, it is not recommended to enable this feature. + + +**FP8 KV Cache**: `--kv-cache-dtype fp8_e4m3` quantizes the KV cache to FP8 at runtime. Since these FP8 model checkpoints do not include pre-calibrated KV cache scaling factors, SGLang defaults to a scale of 1.0, which may cause noticeable accuracy degradation on reasoning-heavy tasks. It is not included in the generated commands above; add it manually only if memory constraints require the trade-off. + + +## 4. Model Invocation + +Deploy GLM-5 with the following command (FP8 on H200, all features enabled): + +```shell Command +sglang serve \ + --model zai-org/GLM-5-FP8 \ + --tp 8 \ + --tool-call-parser glm47 \ + --reasoning-parser glm45 \ + --speculative-algorithm EAGLE \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --mem-fraction-static 0.85 \ + --host 0.0.0.0 \ + --port 30000 +``` + +### 4.1 MI300X/MI325X/MI355X (ROCm) Server Command + +The following ROCm command is an additional option for AMD GPUs and does not replace the NVIDIA instructions above. + +```shell Command +sglang serve \ + --model zai-org/GLM-5 \ + --tp 8 \ + --trust-remote-code \ + --nsa-prefill-backend tilelang \ + --nsa-decode-backend tilelang \ + --chunked-prefill-size 131072 \ + --mem-fraction-static 0.80 \ + --watchdog-timeout 1200 \ + --host 0.0.0.0 \ + --port 30000 +``` + +### 4.2 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.3 Advanced Usage + +#### 4.3.1 Reasoning Parser + +GLM-5 supports Thinking mode **by default**. Enable the reasoning parser during deployment to separate the thinking and content sections. The thinking process is returned via `reasoning_content` in the streaming response. + +To disable thinking and use Instruct mode, pass `chat_template_kwargs` at request time: + +- **Thinking mode** (default): The model performs step-by-step reasoning before answering. No extra parameters needed. +- **Instruct mode** (`{"enable_thinking": false}`): The model responds directly without a thinking process. + +**Example 1: Thinking Mode (Default)** + +Thinking mode is enabled by default. The model will reason step-by-step before answering, and the thinking process is returned via `reasoning_content`: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Thinking mode is enabled by default, no extra parameters needed +response = client.chat.completions.create( + model="zai-org/GLM-5-FP8", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user wants me to solve a math problem: "What is 15% of 240?". + +Step 1: Understand the problem. I need to calculate a percentage of a number. +Formula: Percentage × Number = Result. + +Step 2: Convert the percentage to a decimal or fraction. +15% = 15/100 or 0.15. + +Step 3: Perform the multiplication. +Method A: Decimal multiplication. +0.15 × 240. +Break it down: +10% of 240 = 24. +5% is half of 10%, so 12. +15% = 10% + 5% = 24 + 12 = 36. + +Method B: Fraction multiplication. +15/100 × 240. +Simplify 240/100 = 2.4. +15 × 2.4. +10 × 2.4 = 24. +5 × 2.4 = 12. +24 + 12 = 36. + +Method C: Direct multiplication. +240 × 0.15. +240 × 0.10 = 24. +240 × 0.05 = 12. +24 + 12 = 36. + +Step 4: Final Verification. +Is 36 reasonable? +10% is 24. 20% is 48. +15% is halfway between 10% and 20%. +Halfway between 24 and 48 is 36. +The result is correct. + +Step 5: Structure the final response. I will present the calculation clearly, perhaps showing the fractional or decimal method, or the mental math shortcut (10% + 5%). +=============== Content ================= +Here is the step-by-step solution: + +**Step 1: Convert the percentage to a decimal.** +To convert 15% to a decimal, divide by 100. +$$15\% = \frac{15}{100} = 0.15$$ + +**Step 2: Multiply the decimal by the number.** +Now, multiply 0.15 by 240. +$$0.15 \times 240$$ + +**Step 3: Perform the calculation.** +You can break this down to make it easier: +$$0.15 = 0.10 + 0.05$$ + +* First, find 10% of 240: + $$0.10 \times 240 = 24$$ +* Next, find 5% (which is half of 10%): + $$\frac{24}{2} = 12$$ +* Add the two results together: + $$24 + 12 = 36$$ + +**Answer:** +15% of 240 is **36**. +``` + +**Example 2: Instruct Mode (Thinking Off)** + +To disable thinking and get a direct response, pass `{"enable_thinking": false}` via `chat_template_kwargs`: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Disable thinking mode via chat_template_kwargs +response = client.chat.completions.create( + model="zai-org/GLM-5-FP8", + messages=[ + {"role": "user", "content": "What is 15% of 240?"} + ], + extra_body={"chat_template_kwargs": {"enable_thinking": False}}, + max_tokens=2048, + stream=True +) + +# In Instruct mode, the model responds directly without reasoning_content +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +To find **15% of 240**, follow these steps: + +### Step 1: Convert the Percentage to a Decimal +First, convert the percentage to a decimal by dividing by 100. + +\[ +15\% = \frac{15}{100} = 0.15 +\] + +### Step 2: Multiply by the Number +Next, multiply the decimal by the number you want to find the percentage of. + +\[ +0.15 \times 240 +\] + +### Step 3: Perform the Multiplication +Calculate the multiplication: + +\[ +0.15 \times 240 = 36 +\] + +### Final Answer +\[ +\boxed{36} +\] +``` + +#### 4.3.2 Tool Calling + +GLM-5 supports tool calling capabilities. Enable the tool call parser during deployment. Thinking mode is on by default; to disable it for tool calling requests, pass `extra_body={"chat_template_kwargs": {"enable_thinking": False}}`. + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="zai-org/GLM-5-FP8", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking for the weather in Beijing. I have access to a get_weather function that can provide current weather information. Let me check what parameters are required: + +- location: required, should be "Beijing" +- unit: optional (not in required array), can be "celsius" or "fahrenheit" + +Since the user didn't specify a unit preference and it's optional, I should not ask about it or make up a value. I'll just call the function with the required location parameter.I'll get the current weather in Beijing for you. +=============== Content ================= +Tool Call: get_weather + Arguments: +Tool Call: None + Arguments: { +Tool Call: None + Arguments: "location": "Be +Tool Call: None + Arguments: ijing" +Tool Call: None + Arguments: } +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: H200 (8x) +- Model: GLM-5-FP8 +- Tensor Parallelism: 8 +- SGLang Version: commit 947927bdb + +#### 5.1.1 Latency Benchmark + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-5-FP8 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 35.78 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4213 +Request throughput (req/s): 0.28 +Input token throughput (tok/s): 170.54 +Output token throughput (tok/s): 117.96 +Peak output token throughput (tok/s): 148.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 288.50 +Concurrency: 1.00 +Accept length: 3.48 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3576.31 +Median E2E Latency (ms): 2935.97 +P90 E2E Latency (ms): 5908.97 +P99 E2E Latency (ms): 8588.08 +---------------Time to First Token---------------- +Mean TTFT (ms): 290.88 +Median TTFT (ms): 282.34 +P99 TTFT (ms): 332.27 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 7.54 +Median TPOT (ms): 6.97 +P99 TPOT (ms): 9.04 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 7.80 +Median ITL (ms): 6.81 +P95 ITL (ms): 13.51 +P99 ITL (ms): 26.99 +Max ITL (ms): 29.50 +================================================== +``` + +#### 5.1.2 Throughput Benchmark + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/GLM-5-FP8 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 1000 \ + --max-concurrency 100 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 411.74 +Total input tokens: 502493 +Total input text tokens: 502493 +Total generated tokens: 500251 +Total generated tokens (retokenized): 499614 +Request throughput (req/s): 2.43 +Input token throughput (tok/s): 1220.41 +Output token throughput (tok/s): 1214.97 +Peak output token throughput (tok/s): 2648.00 +Peak concurrent requests: 105 +Total token throughput (tok/s): 2435.38 +Concurrency: 96.30 +Accept length: 3.50 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 39648.76 +Median E2E Latency (ms): 39058.12 +P90 E2E Latency (ms): 57009.82 +P99 E2E Latency (ms): 68880.33 +---------------Time to First Token---------------- +Mean TTFT (ms): 20613.80 +Median TTFT (ms): 21429.21 +P99 TTFT (ms): 29543.17 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 38.73 +Median TPOT (ms): 36.52 +P99 TPOT (ms): 67.09 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 38.13 +Median ITL (ms): 16.57 +P95 ITL (ms): 86.01 +P99 ITL (ms): 164.88 +Max ITL (ms): 1307.02 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command +```bash Command +python3 benchmark/gsm8k/bench_sglang.py --port 30000 +``` + +- Test Result +```text Output +Accuracy: 0.955 +Invalid: 0.000 +Latency: 32.470 s +Output throughput: 642.044 token/s +``` + +#### 5.2.2 MMLU Benchmark + +- Benchmark Command +```bash Command +python3 benchmark/mmlu/bench_sglang.py --port 30000 +``` + +- Test Result +```text Output +subject: abstract_algebra, #q:100, acc: 0.860 +subject: anatomy, #q:135, acc: 0.874 +subject: astronomy, #q:152, acc: 0.941 +subject: business_ethics, #q:100, acc: 0.880 +subject: clinical_knowledge, #q:265, acc: 0.932 +subject: college_biology, #q:144, acc: 0.972 +subject: college_chemistry, #q:100, acc: 0.640 +subject: college_computer_science, #q:100, acc: 0.900 +subject: college_mathematics, #q:100, acc: 0.810 +subject: college_medicine, #q:173, acc: 0.873 +subject: college_physics, #q:102, acc: 0.912 +subject: computer_security, #q:100, acc: 0.880 +subject: conceptual_physics, #q:235, acc: 0.928 +subject: econometrics, #q:114, acc: 0.807 +subject: electrical_engineering, #q:145, acc: 0.897 +subject: elementary_mathematics, #q:378, acc: 0.937 +subject: formal_logic, #q:126, acc: 0.778 +subject: global_facts, #q:100, acc: 0.710 +subject: high_school_biology, #q:310, acc: 0.961 +subject: high_school_chemistry, #q:203, acc: 0.847 +subject: high_school_computer_science, #q:100, acc: 0.960 +subject: high_school_european_history, #q:165, acc: 0.891 +subject: high_school_geography, #q:198, acc: 0.960 +subject: high_school_government_and_politics, #q:193, acc: 0.984 +subject: high_school_macroeconomics, #q:390, acc: 0.923 +subject: high_school_mathematics, #q:270, acc: 0.696 +subject: high_school_microeconomics, #q:238, acc: 0.962 +subject: high_school_physics, #q:151, acc: 0.821 +subject: high_school_psychology, #q:545, acc: 0.956 +subject: high_school_statistics, #q:216, acc: 0.889 +subject: high_school_us_history, #q:204, acc: 0.941 +subject: high_school_world_history, #q:237, acc: 0.945 +subject: human_aging, #q:223, acc: 0.857 +subject: human_sexuality, #q:131, acc: 0.908 +subject: international_law, #q:121, acc: 0.934 +subject: jurisprudence, #q:108, acc: 0.907 +subject: logical_fallacies, #q:163, acc: 0.933 +subject: machine_learning, #q:112, acc: 0.830 +subject: management, #q:103, acc: 0.942 +subject: marketing, #q:234, acc: 0.940 +subject: medical_genetics, #q:100, acc: 0.990 +subject: miscellaneous, #q:783, acc: 0.959 +subject: moral_disputes, #q:346, acc: 0.873 +subject: moral_scenarios, #q:895, acc: 0.837 +subject: nutrition, #q:306, acc: 0.922 +subject: philosophy, #q:311, acc: 0.897 +subject: prehistory, #q:324, acc: 0.929 +subject: professional_accounting, #q:282, acc: 0.844 +subject: professional_law, #q:1534, acc: 0.714 +subject: professional_medicine, #q:272, acc: 0.941 +subject: professional_psychology, #q:612, acc: 0.913 +subject: public_relations, #q:110, acc: 0.791 +subject: security_studies, #q:245, acc: 0.878 +subject: sociology, #q:201, acc: 0.940 +subject: us_foreign_policy, #q:100, acc: 0.920 +subject: virology, #q:166, acc: 0.596 +subject: world_religions, #q:171, acc: 0.936 +Total latency: 165.275 +Average accuracy: 0.877 +``` + +### 5.3 AMD GPU Benchmarks + +#### 5.3.1 GSM8K Benchmark (MI325/MI35x) + +- MI325/MI35x Test (GLM-5 BF16, `tp=8`, TileLang NSA backends) + +```bash Command +python3 benchmark/gsm8k/bench_sglang.py --num-questions 200 +``` + +```text Output +Accuracy: 0.970 +Invalid: 0.000 +``` + +Results from [AMD nightly CI](https://github.com/sgl-project/sglang/actions/runs/22556197510/attempts/2#summary-65346783629). See also [sglang#18911](https://github.com/sgl-project/sglang/pull/18911). diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-Glyph.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-Glyph.mdx new file mode 100644 index 000000000..51971f4d5 --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-Glyph.mdx @@ -0,0 +1,829 @@ +--- +title: GLM Glyph +metatags: + description: "Deploy GLM-Glyph with SGLang - community contribution guide for Zhipu AI's GLM Glyph model deployment." +--- + +import { GLMGlyphDeployment } from '/src/snippets/autoregressive/glm-glyph-deployment.jsx'; + +## 1. Model Introduction + +[Glyph](https://huggingface.co/zai-org/Glyph) is a powerful language model developed by Zhipu AI, featuring advanced capabilities in reasoning, function calling, and multi-modal understanding. + +**Hardware Support:** NVIDIA B200/H100/H200, AMD MI300X/MI325X/MI355X + +**Key Features:** + +- **Advanced Reasoning**: Built-in reasoning capabilities for complex problem-solving +- **Multiple Quantizations**: BF16 and FP8 variants for different performance/memory trade-offs +- **High Performance**: Optimized for both throughput and latency scenarios + +**Available Models:** + +- **BF16 (Full precision)**: [zai-org/Glyph](https://huggingface.co/zai-org/Glyph) +- **FP8 (8-bit quantized)**: [zai-org/Glyph-FP8](https://huggingface.co/zai-org/Glyph-FP8) + +**License:** + +Please refer to the [official Glyph model card](https://huggingface.co/zai-org/Glyph) for license details. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, quantization method, and other options. + + + +### 3.2 Configuration Tips + +For more detailed configuration tips, please refer to [GLM-4.5/GLM-4.6 Usage](../../../docs/basic_usage/glm45). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Thinking Mode + +Glyph supports thinking mode for enhanced reasoning. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +python -m sglang.launch_server \ + --model-path zai-org/Glyph \ + --reasoning-parser glm45 \ + --tp 4 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="zai-org/Glyph", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +**Disable Thinking Mode:** + +To disable thinking mode for a specific request: + +```python Example +response = client.chat.completions.create( + model="zai-org/Glyph", + messages=[{"role": "user", "content": "What is the capital of France?"}], + extra_body={"chat_template_kwargs": {"enable_thinking": False}} +) +``` + +#### 4.2.2 Tool Calling + +Glyph supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model-path zai-org/Glyph \ + --reasoning-parser glm45 \ + --tool-call-parser glm45 \ + --tp 4 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="zai-org/Glyph", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I need to use the get_weather function to retrieve this information. +I should call the function with location="Beijing". +=============== Content ================= + +Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="zai-org/Glyph", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Model: Glyph +- SGLang Version: 0.5.6.post1 + +**Benchmark Methodology:** + +We use industry-standard benchmark configurations to ensure results are comparable across frameworks and hardware platforms. + +#### 5.1.1 Standard Scenario Benchmark + +- **Model Deployment** +```bash Command +python -m sglang.launch_server \ + --model zai-org/Glyph \ + --tp 2 +``` + +##### 5.1.1.1 Low Concurrency +- **Benchmark Command**: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/Glyph \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- **Test Results**: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 17.03 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.59 +Input token throughput (tok/s): 358.17 +Output token throughput (tok/s): 247.74 +Peak output token throughput (tok/s): 251.00 +Peak concurrent requests: 3 +Total token throughput (tok/s): 605.91 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 1702.14 +Median E2E Latency (ms): 1361.72 +---------------Time to First Token---------------- +Mean TTFT (ms): 22.35 +Median TTFT (ms): 22.61 +P99 TTFT (ms): 23.76 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 3.99 +Median TPOT (ms): 3.99 +P99 TPOT (ms): 4.01 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 3.99 +Median ITL (ms): 3.99 +P95 ITL (ms): 4.03 +P99 ITL (ms): 4.12 +Max ITL (ms): 7.46 +================================================== +``` + +##### 5.1.1.2 Medium Concurrency +- **Benchmark Command**: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/Glyph \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- **Test Results**: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 16.27 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40804 +Request throughput (req/s): 4.92 +Input token throughput (tok/s): 2438.06 +Output token throughput (tok/s): 2507.94 +Peak output token throughput (tok/s): 3069.00 +Peak concurrent requests: 26 +Total token throughput (tok/s): 4946.00 +Concurrency: 13.44 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 2733.43 +Median E2E Latency (ms): 2892.98 +---------------Time to First Token---------------- +Mean TTFT (ms): 33.10 +Median TTFT (ms): 27.73 +P99 TTFT (ms): 49.34 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 5.33 +Median TPOT (ms): 5.39 +P99 TPOT (ms): 5.86 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 5.30 +Median ITL (ms): 4.89 +P95 ITL (ms): 5.54 +P99 ITL (ms): 21.17 +Max ITL (ms): 25.14 +================================================== +``` + +##### 5.1.1.3 High Concurrency +- **Benchmark Command**: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/Glyph \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` +- **Test Results**: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 25.67 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 252657 +Request throughput (req/s): 19.48 +Input token throughput (tok/s): 9733.69 +Output token throughput (tok/s): 9843.99 +Peak output token throughput (tok/s): 13398.00 +Peak concurrent requests: 127 +Total token throughput (tok/s): 19577.68 +Concurrency: 89.49 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 4593.75 +Median E2E Latency (ms): 4431.03 +---------------Time to First Token---------------- +Mean TTFT (ms): 48.66 +Median TTFT (ms): 35.88 +P99 TTFT (ms): 120.61 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 9.10 +Median TPOT (ms): 9.55 +P99 TPOT (ms): 11.00 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.01 +Median ITL (ms): 6.51 +P95 ITL (ms): 23.19 +P99 ITL (ms): 25.54 +Max ITL (ms): 52.93 +================================================== +``` + +#### 5.1.2 Reasoning Scenario Benchmark + +##### 5.1.2.1 Low Concurrency +- **Benchmark Command**: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/Glyph \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` +- **Test Results**: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 201.53 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 44462 +Total generated tokens (retokenized): 44455 +Request throughput (req/s): 0.05 +Input token throughput (tok/s): 30.27 +Output token throughput (tok/s): 220.63 +Peak output token throughput (tok/s): 251.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 250.90 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 20151.45 +Median E2E Latency (ms): 21576.31 +---------------Time to First Token---------------- +Mean TTFT (ms): 2362.23 +Median TTFT (ms): 23.03 +P99 TTFT (ms): 21310.14 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 4.00 +Median TPOT (ms): 4.00 +P99 TPOT (ms): 4.01 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 4.00 +Median ITL (ms): 4.00 +P95 ITL (ms): 4.05 +P99 ITL (ms): 4.08 +Max ITL (ms): 5.67 +================================================== +``` + +##### 5.1.2.2 Medium Concurrency +- **Benchmark Command**: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/Glyph \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` +- **Test Results**: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 118.67 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 318306 +Total generated tokens (retokenized): 318270 +Request throughput (req/s): 0.67 +Input token throughput (tok/s): 334.27 +Output token throughput (tok/s): 2682.26 +Peak output token throughput (tok/s): 3264.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 3016.53 +Concurrency: 13.74 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 20387.23 +Median E2E Latency (ms): 20466.09 +---------------Time to First Token---------------- +Mean TTFT (ms): 132.47 +Median TTFT (ms): 27.19 +P99 TTFT (ms): 583.15 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 5.09 +Median TPOT (ms): 5.13 +P99 TPOT (ms): 5.19 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 5.09 +Median ITL (ms): 5.08 +P95 ITL (ms): 5.18 +P99 ITL (ms): 5.57 +Max ITL (ms): 522.26 +================================================== +``` + +##### 5.1.2.3 High Concurrency +- **Benchmark Command**: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/Glyph \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` +- **Test Results**: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 150.00 +Total input tokens: 158939 +Total input text tokens: 158939 +Total input vision tokens: 0 +Total generated tokens: 1301025 +Total generated tokens (retokenized): 1300901 +Request throughput (req/s): 2.13 +Input token throughput (tok/s): 1059.59 +Output token throughput (tok/s): 8673.49 +Peak output token throughput (tok/s): 11899.00 +Peak concurrent requests: 71 +Total token throughput (tok/s): 9733.09 +Concurrency: 54.71 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 25645.42 +Median E2E Latency (ms): 26913.26 +---------------Time to First Token---------------- +Mean TTFT (ms): 163.75 +Median TTFT (ms): 93.67 +P99 TTFT (ms): 426.19 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 6.27 +Median TPOT (ms): 6.39 +P99 TPOT (ms): 6.59 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 6.27 +Median ITL (ms): 0.17 +P95 ITL (ms): 32.94 +P99 ITL (ms): 67.89 +Max ITL (ms): 136.00 +================================================== +``` + +#### 5.1.3 Summarization Scenario Benchmark + +#### 5.1.3.1 Low Concurrency +- **Benchmark Command**: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/Glyph \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` +- **Test Results**: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 17.44 +Total input tokens: 41941 +Total input text tokens: 41941 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.57 +Input token throughput (tok/s): 2405.19 +Output token throughput (tok/s): 242.00 +Peak output token throughput (tok/s): 250.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 2647.19 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 1742.54 +Median E2E Latency (ms): 1412.47 +---------------Time to First Token---------------- +Mean TTFT (ms): 53.48 +Median TTFT (ms): 45.05 +P99 TTFT (ms): 98.57 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 4.01 +Median TPOT (ms): 4.01 +P99 TPOT (ms): 4.03 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 4.01 +Median ITL (ms): 4.01 +P95 ITL (ms): 4.06 +P99 ITL (ms): 4.09 +Max ITL (ms): 4.95 +================================================== +``` + +##### 5.1.3.2 Medium Concurrency +- **Benchmark Command**: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/Glyph \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` +- **Test Results**: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 16.90 +Total input tokens: 300020 +Total input text tokens: 300020 +Total input vision tokens: 0 +Total generated tokens: 41669 +Total generated tokens (retokenized): 41668 +Request throughput (req/s): 4.73 +Input token throughput (tok/s): 17753.58 +Output token throughput (tok/s): 2465.75 +Peak output token throughput (tok/s): 3005.00 +Peak concurrent requests: 25 +Total token throughput (tok/s): 20219.33 +Concurrency: 13.68 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 2890.33 +Median E2E Latency (ms): 3069.55 +---------------Time to First Token---------------- +Mean TTFT (ms): 41.46 +Median TTFT (ms): 31.75 +P99 TTFT (ms): 93.18 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 5.52 +Median TPOT (ms): 5.58 +P99 TPOT (ms): 6.14 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 5.48 +Median ITL (ms): 5.13 +P95 ITL (ms): 5.93 +P99 ITL (ms): 20.76 +Max ITL (ms): 36.01 +================================================== +``` + +##### 5.1.3.3 High Concurrency + +- **Benchmark Command**: +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model zai-org/Glyph \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` +- **Test Results**: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 35.54 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total input vision tokens: 0 +Total generated tokens: 170000 +Total generated tokens (retokenized): 169994 +Request throughput (req/s): 9.01 +Input token throughput (tok/s): 35848.57 +Output token throughput (tok/s): 4783.96 +Peak output token throughput (tok/s): 8396.00 +Peak concurrent requests: 80 +Total token throughput (tok/s): 40632.53 +Concurrency: 59.26 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 6580.96 +Median E2E Latency (ms): 6248.74 +---------------Time to First Token---------------- +Mean TTFT (ms): 345.27 +Median TTFT (ms): 96.06 +P99 TTFT (ms): 2823.92 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 12.26 +Median TPOT (ms): 12.53 +P99 TPOT (ms): 23.58 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 11.76 +Median ITL (ms): 6.57 +P95 ITL (ms): 27.66 +P99 ITL (ms): 91.24 +Max ITL (ms): 2609.64 +================================================== +``` + +### 5.2 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command + +```bash Command +python -m sglang.test.few_shot_gsm8k \ + --num-questions 200 +``` + +- Test Result + +```text Output +Accuracy: 0.890 +Invalid: 0.000 +Latency: 3.718 s +Output throughput: 5245.606 token/s +``` diff --git a/docs_new/cookbook/autoregressive/GLM/GLM-OCR.mdx b/docs_new/cookbook/autoregressive/GLM/GLM-OCR.mdx new file mode 100644 index 000000000..774258ea6 --- /dev/null +++ b/docs_new/cookbook/autoregressive/GLM/GLM-OCR.mdx @@ -0,0 +1,227 @@ +--- +title: GLM-OCR +metatags: + description: "Deploy GLM-OCR with SGLang - state-of-the-art OCR performance for complex document understanding." +--- + +## 1. Model Introduction + +[GLM-OCR](https://huggingface.co/zai-org/GLM-OCR) is a multimodal OCR model for complex document understanding, built on the GLM-V encoder–decoder architecture. It introduces Multi-Token Prediction (MTP) loss and stable full-task reinforcement learning to improve training efficiency, recognition accuracy, and generalization. + +The model integrates the CogViT visual encoder pre-trained on large-scale image–text data, a lightweight cross-modal connector with efficient token downsampling, and a GLM-0.5B language decoder. Combined with a two-stage pipeline of layout analysis and parallel recognition based on PP-DocLayout-V3, GLM-OCR delivers robust and high-quality OCR performance across diverse document layouts. + +**Hardware Support:** NVIDIA B200/H100/H200 + +**Key Features:** + +- **State-of-the-Art Performance**: Achieves 94.62 on OmniDocBench V1.5, ranking #1, and delivers SOTA results across major document understanding benchmarks, including formula recognition, table recognition, and information extraction. +- **Optimized for Real-World Scenarios**: Specifically optimized for practical business cases, maintaining stable and accurate performance on complex tables, code documents, seals, and other challenging layouts. +- **Efficient Inference**: With only 0.9B parameters, GLM-OCR supports deployment via vLLM and SGLang, significantly reducing inference latency and compute cost—well suited for high-concurrency and edge deployments. +- **Easy to Use**: Fully open-sourced with a complete SDK and inference toolchain, enabling one-line invocation and seamless integration into existing systems. + +For more details, please refer to the [official GLM-OCR model card](https://huggingface.co/zai-org/GLM-OCR). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform and deployment options. You can optionally enable MTP (Multi-Token Prediction) for faster inference using EAGLE speculative decoding. + +import { GLMOCRDeployment } from '/src/snippets/autoregressive/glm-ocr-deployment.jsx' + + + +### 3.2 Configuration Tips + +- **CUDA IPC Transport**: The `SGLANG_USE_CUDA_IPC_TRANSPORT=1` environment variable enables CUDA IPC for transferring multimodal features, which significantly improves TTFT. +- **MTP (Multi-Token Prediction)**: Enable MTP to use EAGLE speculative decoding for faster inference. This feature predicts multiple tokens at once to reduce latency. +- **Memory Management**: For memory-constrained environments, you may need to adjust `--mem-fraction-static` and/or `--max-running-requests`. + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) +- [SGLang OpenAI Vision API Guide](../../../docs/basic_usage/openai_api_vision) + +### 4.2 Advanced Usage + +#### 4.2.1 OCR Image Processing + +GLM-OCR supports OCR tasks on various document types. Here's a basic example: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://ofasys-multimodal-wlcb-3-toshanghai.oss-accelerate.aliyuncs.com/wpf272043/keepme/image/receipt.png" + } + }, + { + "type": "text", + "text": "Please extract all text from this image." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="zai-org/GLM-OCR", + messages=messages, + max_tokens=2048 +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Example Output:** + +```text Output +Response costs: 2.29s +Generated text: CINNAMON SUGAR +1 x 17,000 17,000 + +SUB TOTAL 17,000 + +GRAND TOTAL 17,000 + +CASH IDR 20,000 + +CHANGE DUE 3,000 + +``` + +#### 4.2.2 Complex Document Processing + +GLM-OCR excels at processing complex documents including: + +- **Tables**: Accurate extraction of tabular data with structure preservation +- **Formulas**: Mathematical formula recognition +- **Code Documents**: Source code extraction from screenshots +- **Seals and Stamps**: Recognition of seals and stamps in documents +- **Multi-layout Documents**: Mixed content with text, images, and tables + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +# Example: Processing a document with tables +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "YOUR_DOCUMENT_IMAGE_URL" + } + }, + { + "type": "text", + "text": "Please extract the table content from this document and format it as markdown." + } + ] + } +] + +response = client.chat.completions.create( + model="zai-org/GLM-OCR", + messages=messages, + max_tokens=4096 +) +print(response.choices[0].message.content) +``` + +## 5. Benchmark + +### 5.1 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.1.1 OCRBench Benchmark + +- Benchmark Command + +```bash Command +python3 -m lmms_eval \ + --model openai_compatible \ + --model_args "model_version=zai-org/GLM-OCR" \ + --tasks ocrbench \ + --batch_size 128 \ + --log_samples \ + --log_samples_suffix "openai_compatible" \ + --output_path ./logs +``` + +- Test Result + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TasksVersionFiltern-shotMetricValueStderr
      ocrbenchYamlnone0ocrbench_accuracy0.806N/A
      + +#### 5.1.2 OmniDocBench V1.5 + +GLM-OCR achieves **94.62** on OmniDocBench V1.5, ranking #1 among all models, demonstrating state-of-the-art performance across major document understanding benchmarks. diff --git a/docs_new/cookbook/autoregressive/Google/Gemma4.mdx b/docs_new/cookbook/autoregressive/Google/Gemma4.mdx new file mode 100644 index 000000000..75bd0804b --- /dev/null +++ b/docs_new/cookbook/autoregressive/Google/Gemma4.mdx @@ -0,0 +1,1290 @@ +--- +title: Gemma 4 +metatags: + description: "Deploy Gemma 4 with SGLang - Google's next-generation open models with MoE variants and multimodal support for text, vision, and audio." +--- + +import { Gemma4Deployment } from '/src/snippets/autoregressive/gemma4-deployment.jsx'; + +## 1. Model Introduction + +Gemma 4 is Google's next-generation family of open models, building on the Gemma 3 architecture with improved performance, MoE variants, and multimodal support for text, vision, and audio. + +**Key Features:** + +- **Hybrid Attention**: Combines sliding window and full attention layers for efficient long-context processing +- **Multimodal**: Supports text, image, and audio inputs via dedicated vision and audio encoders +- **MoE Variant**: The 26B-A4B model uses a Mixture-of-Experts architecture for efficient inference +- **Per-Layer Embeddings (PLE)**: Layer-specific token embeddings for enhanced representations +- **Reasoning**: Built-in thinking mode with `gemma4` reasoning parser +- **Tool Calling**: Function call support with streaming via `gemma4` tool call parser +- **Fused Operations**: Triton-optimized RMSNorm + residual + scalar kernels + +**Available Models:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelArchitectureParameters
      [google/gemma-4-E2B-it](https://huggingface.co/google/gemma-4-E2B-it)Dense~2B
      [google/gemma-4-E4B-it](https://huggingface.co/google/gemma-4-E4B-it)Dense~4B
      [google/gemma-4-31B-it](https://huggingface.co/google/gemma-4-31B-it)Dense31B
      [google/gemma-4-26B-A4B-it](https://huggingface.co/google/gemma-4-26B-A4B-it)MoE26B total / 4B active
      + +## 2. SGLang Installation + +Gemma 4 support requires [sgl-project/sglang#21952](https://github.com/sgl-project/sglang/pull/21952) and a specific transformers commit: + +```bash Command +# Install SGLang from main branch (after sglang#21952 is merged) +pip install 'git+https://github.com/sgl-project/sglang.git#subdirectory=python' + +# Install transformers with Gemma 4 support +pip install 'git+https://github.com/huggingface/transformers.git@91b1ab1fdfa81a552644a92fbe3e8d88de40e167' + +# Or use Docker AMD64 +docker pull lmsysorg/sglang:gemma4 # CUDA 12.9 +docker pull lmsysorg/sglang:cu13-gemma4 # CUDA 13 + +# For ARM64 (GB200 / GB300) +docker pull lmsysorg/sglang:dev-gemma4 # CUDA 12.9 +docker pull lmsysorg/sglang:dev-cu13-gemma4 # CUDA 13 +``` + +For the full Docker setup and other installation methods, please refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +## 3. Model Deployment + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform and model variant. + + + +### 3.2 Configuration Tips + +- SGLang automatically selects the Triton attention backend for Gemma 4 models (required for bidirectional image-token attention during prefill). +- For the 26B-A4B MoE model, consider `--tp 2` for high-throughput workloads. +- Hardware requirements: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelHardwareTP
      gemma-4-E2B-it1x H200 / 1x MI300X / 1x MI325X / 1x MI355X1
      gemma-4-E4B-it1x H200 / 1x MI300X / 1x MI325X / 1x MI355X1
      gemma-4-31B-it2x H200 / 1x MI300X / 1x MI325X / 1x MI355X2 (H200) / 1 (AMD)
      gemma-4-26B-A4B-it1x H200 / 1x MI300X / 1x MI325X / 1x MI355X1
      + +### 3.3 AMD GPU Deployment (MI300X / MI325X / MI355X) + +SGLang automatically selects the correct attention backend on AMD GPUs. For the small E-models (`gemma-4-E2B-it`, `gemma-4-E4B-it`), disable AITER on AMD GPUs and use the same command line otherwise: + +```bash Command +SGLANG_USE_AITER=0 sglang serve --model-path google/gemma-4-E4B-it \ + --reasoning-parser gemma4 \ + --tool-call-parser gemma4 \ + --host 0.0.0.0 --port 30000 +``` + +For `gemma-4-31B-it` and `gemma-4-26B-A4B-it`, the same commands above work on MI300X, MI325X, and MI355X without additional command-line changes. + +> **Status**: AMD benchmarks are available in [Section 5.1](#51-speed-benchmark). + +## 4. Model Invocation + +Deploy gemma-4-26B-A4B-it (MoE) with all features enabled: + +```bash Command +sglang serve --model-path google/gemma-4-26B-A4B-it \ + --reasoning-parser gemma4 \ + --tool-call-parser gemma4 \ + --host 0.0.0.0 --port 30000 +``` + +### 4.1 Basic Usage + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="google/gemma-4-26B-A4B-it", + messages=[ + {"role": "user", "content": "What are the key differences between TCP and UDP?"} + ], + max_tokens=1024 +) + +print(response.choices[0].message.content) +``` + +

      +Example Output + +```text Output +The fundamental difference between **TCP (Transmission Control Protocol)** and **UDP (User Datagram +Protocol)** lies in how they prioritize data integrity versus speed. + +### 1. Connection Type +* **TCP (Connection-Oriented):** Before any data is sent, TCP performs a "three-way handshake." + The sender and receiver exchange signals to establish a formal connection. +* **UDP (Connectionless):** UDP does not establish a connection. It simply starts blasting packets + to the destination IP address without checking if the receiver is ready. + +### 2. Reliability and Error Checking +* **TCP (Reliable):** If a packet is lost or arrives corrupted, TCP detects the error and + retransmits the missing data. +* **UDP (Unreliable):** If a packet is lost or corrupted, it is simply discarded. There is no + mechanism to ask for a retransmission. + +### 3. Ordering of Data +* **TCP (Ordered):** Segments are assigned sequence numbers and reassembled in the correct order. +* **UDP (Unordered):** Packets may arrive in a different order than sent. + +### 4. Speed and Overhead +* **TCP (Slower):** Managing connections, tracking, and retransmissions adds significant overhead. +* **UDP (Faster):** No handshake, no tracking — extremely fast and ideal for real-time needs. + +| Feature | TCP | UDP | +| :--- | :--- | :--- | +| **Connection** | Connection-oriented | Connectionless | +| **Reliability** | Guaranteed delivery | Best-effort | +| **Ordering** | Maintains strict order | No guaranteed order | +| **Speed** | Slower (High overhead) | Faster (Low overhead) | +``` + +
      + +### 4.2 Vision Input + +Gemma 4 multimodal variants accept images alongside text: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="google/gemma-4-26B-A4B-it", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://farm4.staticflickr.com/3175/2653711032_804ff86d81_z.jpg" + } + }, + { + "type": "text", + "text": "Describe this image in detail." + } + ] + } + ], + max_tokens=1024 +) + +print(response.choices[0].message.content) +``` + +
      +Example Output + +```text Output +A vertical, full shot shows a girl and a boy standing in front of a giant teddy bear. The boy, who +is on the left, is of South Asian descent, has short dark hair, and is smiling at the camera. He is +wearing a navy blue sweatshirt with a white collar, blue jeans, and white, black, and red sneakers. +The girl, on the right, is also of South Asian descent and has long, dark hair. She is smiling at +the camera and is wearing a pink t-shirt, a white long-sleeve shirt underneath, blue jeans, and pink +sneakers. The giant teddy bear is light brown and is standing behind the two children. The bear has +large, dark eyes and a black nose. In the background, on the left, there is a large wooden basket +filled with small teddy bears. To the left of the basket, an American flag is hanging on the wall. +On the right side of the image, there is a green leafy plant. The floor is a dark purple carpet. The +lighting is bright and even. +``` + +
      + +### 4.3 Reasoning (Thinking Mode) + +Gemma 4 supports hybrid reasoning. Thinking is **not enabled by default** — pass `chat_template_kwargs: {"enable_thinking": true}` via `extra_body` to activate it. The reasoning parser separates thinking and content, returning the thinking process via `reasoning_content` in the streaming response. + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="google/gemma-4-26B-A4B-it", + messages=[ + {"role": "user", "content": "Solve step by step: If a train travels at 60 km/h for 2.5 hours, how far does it go?"} + ], + max_tokens=4096, + stream=True, + extra_body={"chat_template_kwargs": {"enable_thinking": True}} +) + +thinking_started = False +has_thinking = False +has_answer = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +
      +Example Output + +```text Output +=============== Thinking ================= +* Input: Speed = 60 km/h, Time = 2.5 hours. + * Goal: Find the distance traveled. + * Distance = Speed × Time. + * Step 1: Identify given values. Speed = 60 km/h, Time = 2.5 hours + * Step 2: Formula. Distance = Speed × Time + * Step 3: Calculation. 60 × 2.5 + Mental math: 60 × 2 = 120; 60 × 0.5 = 30; 120 + 30 = 150. + * Step 4: Final Result. 150 km. + +=============== Content ================= +To find the distance traveled, you can follow these steps: + +### 1. Identify the given information: +* **Speed:** 60 km/h +* **Time:** 2.5 hours + +### 2. Use the distance formula: +Distance = Speed × Time + +### 3. Substitute the values: +Distance = 60 km/h × 2.5 hours + +### 4. Perform the calculation: +* 60 × 2 = 120 +* 60 × 0.5 = 30 +* 120 + 30 = 150 + +**Final Answer: The train travels 150 km.** +``` + +
      + +### 4.4 Tool Calling + +Gemma 4 supports function calling with the `gemma4` tool call parser. Enable it during deployment with `--tool-call-parser gemma4`. + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +response = client.chat.completions.create( + model="google/gemma-4-26B-A4B-it", + messages=[ + {"role": "user", "content": "What's the weather in Tokyo?"} + ], + tools=tools, + stream=True +) + +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + if hasattr(delta, 'tool_calls') and delta.tool_calls: + if has_thinking and thinking_started: + print("\n=============== Tool Calls ================", flush=True) + thinking_started = False + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +
      +Example Output + +```text Output +=============== Tool Calls ================ +Tool Call: get_weather + Arguments: {"location": "Tokyo"} +``` + +
      + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: H200 +- SGLang Version: gemma4 branch + +#### gemma-4-E2B-it (1x H200, TP=1) + +Server Launch Command: +```bash Command +sglang serve --model-path google/gemma-4-E2B-it +``` + +**Latency Benchmark (Text)** + +```bash Command +python3 -m sglang.bench_serving --backend sglang \ + --host 0.0.0.0 --port 30000 \ + --dataset-name random --num-prompts 10 --max-concurrency 1 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 17.44 +Total input tokens: 6101 +Total generated tokens: 4220 +Request throughput (req/s): 0.57 +Output token throughput (tok/s): 242.03 +Total token throughput (tok/s): 591.94 +Mean TTFT (ms): 50.19 +Median TTFT (ms): 54.22 +Mean TPOT (ms): 3.99 +Median ITL (ms): 4.05 +================================================== +``` + +**Latency Benchmark (Image)** + +```bash Command +python3 -m sglang.bench_serving --backend sglang-oai-chat \ + --host 0.0.0.0 --port 30000 \ + --dataset-name image --image-count 2 --image-resolution 720p \ + --random-input-len 128 --random-output-len 1024 \ + --num-prompts 10 --max-concurrency 1 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 18.05 +Total input tokens: 6097 +Total input vision tokens: 5340 +Total generated tokens: 4220 +Request throughput (req/s): 0.55 +Output token throughput (tok/s): 233.84 +Total token throughput (tok/s): 571.69 +Mean TTFT (ms): 109.59 +Median TTFT (ms): 112.62 +Mean TPOT (ms): 4.01 +Median ITL (ms): 4.04 +================================================== +``` + +**Throughput Benchmark (Text)** + +```bash Command +python3 -m sglang.bench_serving --backend sglang \ + --host 0.0.0.0 --port 30000 \ + --dataset-name random --num-prompts 1000 --max-concurrency 100 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 51.73 +Total input tokens: 512842 +Total generated tokens: 510855 +Request throughput (req/s): 19.33 +Output token throughput (tok/s): 9876.36 +Peak output token throughput (tok/s): 13863.00 +Total token throughput (tok/s): 19791.14 +Mean TTFT (ms): 86.57 +Mean TPOT (ms): 9.56 +Median ITL (ms): 5.99 +================================================== +``` + +**Throughput Benchmark (Image)** + +```bash Command +python3 -m sglang.bench_serving --backend sglang-oai-chat \ + --host 0.0.0.0 --port 30000 \ + --dataset-name image --image-count 2 --image-resolution 720p \ + --random-input-len 128 --random-output-len 1024 \ + --num-prompts 1000 --max-concurrency 100 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 89.07 +Total input tokens: 617799 +Total input vision tokens: 534000 +Total generated tokens: 510855 +Request throughput (req/s): 11.23 +Output token throughput (tok/s): 5735.75 +Peak output token throughput (tok/s): 12823.00 +Total token throughput (tok/s): 12672.23 +Mean TTFT (ms): 636.46 +Mean TPOT (ms): 16.34 +Median ITL (ms): 5.68 +================================================== +``` + +#### gemma-4-E4B-it (1x H200, TP=1) + +Server Launch Command: +```bash Command +sglang serve --model-path google/gemma-4-E4B-it +``` + +**Latency Benchmark (Text)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 24.49 +Total input tokens: 6101 +Total generated tokens: 4220 +Request throughput (req/s): 0.41 +Output token throughput (tok/s): 172.32 +Total token throughput (tok/s): 421.45 +Mean TTFT (ms): 52.76 +Median TTFT (ms): 53.66 +Mean TPOT (ms): 5.64 +Median ITL (ms): 5.74 +================================================== +``` + +**Latency Benchmark (Image)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 25.04 +Total input tokens: 6124 +Total input vision tokens: 5340 +Total generated tokens: 4220 +Request throughput (req/s): 0.40 +Output token throughput (tok/s): 168.54 +Total token throughput (tok/s): 413.13 +Mean TTFT (ms): 110.15 +Median TTFT (ms): 108.24 +Mean TPOT (ms): 5.66 +Median ITL (ms): 5.73 +================================================== +``` + +**Throughput Benchmark (Text)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 72.95 +Total input tokens: 512842 +Total generated tokens: 510855 +Request throughput (req/s): 13.71 +Output token throughput (tok/s): 7002.68 +Peak output token throughput (tok/s): 9878.00 +Total token throughput (tok/s): 14032.60 +Mean TTFT (ms): 166.33 +Mean TPOT (ms): 13.36 +Median ITL (ms): 8.88 +================================================== +``` + +**Throughput Benchmark (Image)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 108.99 +Total input tokens: 616952 +Total input vision tokens: 534000 +Total generated tokens: 510855 +Request throughput (req/s): 9.18 +Output token throughput (tok/s): 4687.38 +Peak output token throughput (tok/s): 9277.00 +Total token throughput (tok/s): 10348.25 +Mean TTFT (ms): 626.17 +Mean TPOT (ms): 20.00 +Median ITL (ms): 8.64 +================================================== +``` + +#### gemma-4-31B-it (2x H200, TP=2) + +Server Launch Command: +```bash Command +sglang serve --model-path google/gemma-4-31B-it --tp 2 +``` + +**Latency Benchmark (Text)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 53.05 +Total input tokens: 6101 +Total generated tokens: 4220 +Request throughput (req/s): 0.19 +Output token throughput (tok/s): 79.55 +Total token throughput (tok/s): 194.55 +Mean TTFT (ms): 72.77 +Median TTFT (ms): 75.05 +Mean TPOT (ms): 12.32 +Median ITL (ms): 12.53 +================================================== +``` + +**Latency Benchmark (Image)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 53.78 +Total input tokens: 6162 +Total input vision tokens: 5340 +Total generated tokens: 4220 +Request throughput (req/s): 0.19 +Output token throughput (tok/s): 78.46 +Total token throughput (tok/s): 193.03 +Mean TTFT (ms): 143.35 +Median TTFT (ms): 146.85 +Mean TPOT (ms): 12.37 +Median ITL (ms): 12.48 +================================================== +``` + +**Throughput Benchmark (Text)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 182.00 +Total input tokens: 512842 +Total generated tokens: 510855 +Request throughput (req/s): 5.49 +Output token throughput (tok/s): 2806.82 +Peak output token throughput (tok/s): 3798.00 +Total token throughput (tok/s): 5624.56 +Mean TTFT (ms): 324.67 +Mean TPOT (ms): 33.95 +Median ITL (ms): 25.44 +================================================== +``` + +**Throughput Benchmark (Image)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 236.46 +Total input tokens: 621630 +Total input vision tokens: 534000 +Total generated tokens: 510855 +Request throughput (req/s): 4.23 +Output token throughput (tok/s): 2160.42 +Peak output token throughput (tok/s): 3745.00 +Total token throughput (tok/s): 4789.30 +Mean TTFT (ms): 952.02 +Mean TPOT (ms): 44.17 +Median ITL (ms): 26.81 +================================================== +``` + +#### gemma-4-26B-A4B-it (MoE, 1x H200, TP=1) + +Server Launch Command: +```bash Command +sglang serve --model-path google/gemma-4-26B-A4B-it +``` + +> **Tip**: Consider `--tp 2` for high-throughput workloads. + +**Latency Benchmark (Text)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 25.00 +Total input tokens: 6101 +Total generated tokens: 4220 +Request throughput (req/s): 0.40 +Output token throughput (tok/s): 168.81 +Total token throughput (tok/s): 412.85 +Mean TTFT (ms): 103.74 +Median TTFT (ms): 46.57 +Mean TPOT (ms): 5.60 +Median ITL (ms): 5.78 +================================================== +``` + +**Latency Benchmark (Image)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 25.31 +Total input tokens: 6164 +Total input vision tokens: 5340 +Total generated tokens: 4220 +Request throughput (req/s): 0.40 +Output token throughput (tok/s): 166.70 +Total token throughput (tok/s): 410.20 +Mean TTFT (ms): 129.22 +Median TTFT (ms): 132.54 +Mean TPOT (ms): 5.68 +Median ITL (ms): 5.75 +================================================== +``` + +**Throughput Benchmark (Text)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 138.98 +Total input tokens: 512842 +Total generated tokens: 510855 +Request throughput (req/s): 7.20 +Output token throughput (tok/s): 3675.81 +Peak output token throughput (tok/s): 4799.00 +Total token throughput (tok/s): 7365.91 +Mean TTFT (ms): 153.77 +Mean TPOT (ms): 25.95 +Median ITL (ms): 20.23 +================================================== +``` + +**Throughput Benchmark (Image)** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 186.38 +Total input tokens: 621146 +Total input vision tokens: 534000 +Total generated tokens: 510855 +Request throughput (req/s): 5.37 +Output token throughput (tok/s): 2740.86 +Peak output token throughput (tok/s): 4962.00 +Total token throughput (tok/s): 6073.47 +Mean TTFT (ms): 854.71 +Mean TPOT (ms): 34.64 +Median ITL (ms): 19.08 +================================================== +``` + +#### gemma-4-31B-it (1x MI300X, TP=1) + +Server Launch Command: +```bash Command +sglang serve --model-path google/gemma-4-31B-it +``` + +> **Note**: The 31B dense model fits on a single MI300X (192 GB VRAM) at TP=1, unlike H200 (141 GB) which requires TP=2. + +**Latency Benchmark (Text)** + +```bash Command +python3 -m sglang.bench_serving --backend sglang \ + --host 0.0.0.0 --port 30000 \ + --dataset-name random --num-prompts 10 --max-concurrency 1 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 103.55 +Total input tokens: 6101 +Total generated tokens: 4220 +Request throughput (req/s): 0.10 +Output token throughput (tok/s): 40.75 +Total token throughput (tok/s): 99.67 +Mean TTFT (ms): 152.35 +Median TTFT (ms): 169.66 +Mean TPOT (ms): 24.13 +Median ITL (ms): 24.23 +================================================== +``` + +**Throughput Benchmark (Text)** + +```bash Command +python3 -m sglang.bench_serving --backend sglang \ + --host 0.0.0.0 --port 30000 \ + --dataset-name random --num-prompts 1000 --max-concurrency 100 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 441.59 +Total input tokens: 512842 +Total generated tokens: 510855 +Request throughput (req/s): 2.26 +Output token throughput (tok/s): 1156.85 +Peak output token throughput (tok/s): 1759.00 +Total token throughput (tok/s): 2318.19 +Mean TTFT (ms): 819.22 +Mean TPOT (ms): 82.51 +Median ITL (ms): 63.45 +================================================== +``` + +#### gemma-4-26B-A4B-it (MoE, 1x MI300X, TP=1) + +Server Launch Command: +```bash Command +sglang serve --model-path google/gemma-4-26B-A4B-it +``` + +**Latency Benchmark (Text)** + +```bash Command +python3 -m sglang.bench_serving --backend sglang \ + --host 0.0.0.0 --port 30000 \ + --dataset-name random --num-prompts 10 --max-concurrency 1 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 43.73 +Total input tokens: 6101 +Total generated tokens: 4220 +Request throughput (req/s): 0.23 +Output token throughput (tok/s): 96.49 +Total token throughput (tok/s): 236.00 +Mean TTFT (ms): 185.58 +Median TTFT (ms): 90.18 +Mean TPOT (ms): 9.78 +Median ITL (ms): 9.57 +================================================== +``` + +**Throughput Benchmark (Text)** + +```bash Command +python3 -m sglang.bench_serving --backend sglang \ + --host 0.0.0.0 --port 30000 \ + --dataset-name random --num-prompts 1000 --max-concurrency 100 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 219.43 +Total input tokens: 512842 +Total generated tokens: 510855 +Request throughput (req/s): 4.56 +Output token throughput (tok/s): 2328.05 +Peak output token throughput (tok/s): 3500.00 +Total token throughput (tok/s): 4665.16 +Mean TTFT (ms): 168.44 +Mean TPOT (ms): 41.23 +Median ITL (ms): 29.31 +================================================== +``` + +### 5.2 Accuracy Benchmark + +**Test Environment:** + +- Hardware: H200 +- SGLang Version: gemma4 branch + +#### MMLU + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelHumanitiesSocial SciencesSTEMOtherOverall
      gemma-4-E2B-it0.6210.7390.8300.736**0.720**
      gemma-4-E4B-it0.7030.8620.9020.825**0.810**
      gemma-4-31B-it0.8780.9210.8840.911**0.896**
      gemma-4-26B-A4B-it0.8530.9060.9380.886**0.891**
      + +#### GSM8K + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelAccuracyInvalidLatency (s)Output Throughput (tok/s)
      gemma-4-E2B-it0.1700.0003.9908041.739
      gemma-4-E4B-it0.7450.0004.1744672.030
      gemma-4-31B-it0.8050.00516.1481559.914
      gemma-4-26B-A4B-it0.4500.01013.0014089.457
      + +#### MMMU + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelOverall
      gemma-4-E2B-it**0.307**
      gemma-4-E4B-it**0.396**
      gemma-4-31B-it**0.589**
      gemma-4-26B-A4B-it**0.549**
      + +
      +MMMU detailed scores (per domain) + +**gemma-4-E2B-it** + +```json Config +{"Overall-Art and Design": {"num": 120, "acc": 0.45}, "Art": {"num": 30, "acc": 0.5}, "Art_Theory": {"num": 30, "acc": 0.467}, "Design": {"num": 30, "acc": 0.5}, "Music": {"num": 30, "acc": 0.333}, "Overall-Business": {"num": 150, "acc": 0.26}, "Accounting": {"num": 30, "acc": 0.367}, "Economics": {"num": 30, "acc": 0.233}, "Finance": {"num": 30, "acc": 0.2}, "Manage": {"num": 30, "acc": 0.233}, "Marketing": {"num": 30, "acc": 0.267}, "Overall-Science": {"num": 150, "acc": 0.273}, "Biology": {"num": 30, "acc": 0.233}, "Chemistry": {"num": 30, "acc": 0.267}, "Geography": {"num": 30, "acc": 0.367}, "Math": {"num": 30, "acc": 0.233}, "Physics": {"num": 30, "acc": 0.267}, "Overall-Health and Medicine": {"num": 150, "acc": 0.273}, "Basic_Medical_Science": {"num": 30, "acc": 0.5}, "Clinical_Medicine": {"num": 30, "acc": 0.233}, "Diagnostics_and_Laboratory_Medicine": {"num": 30, "acc": 0.233}, "Pharmacy": {"num": 30, "acc": 0.3}, "Public_Health": {"num": 30, "acc": 0.1}, "Overall-Humanities and Social Science": {"num": 120, "acc": 0.4}, "History": {"num": 30, "acc": 0.4}, "Literature": {"num": 30, "acc": 0.567}, "Sociology": {"num": 30, "acc": 0.333}, "Psychology": {"num": 30, "acc": 0.3}, "Overall-Tech and Engineering": {"num": 210, "acc": 0.252}, "Agriculture": {"num": 30, "acc": 0.333}, "Architecture_and_Engineering": {"num": 30, "acc": 0.267}, "Computer_Science": {"num": 30, "acc": 0.233}, "Electronics": {"num": 30, "acc": 0.1}, "Energy_and_Power": {"num": 30, "acc": 0.3}, "Materials": {"num": 30, "acc": 0.2}, "Mechanical_Engineering": {"num": 30, "acc": 0.333}, "Overall": {"num": 900, "acc": 0.307}} +``` + +**gemma-4-E4B-it** + +```json Config +{"Overall-Art and Design": {"num": 120, "acc": 0.458}, "Art": {"num": 30, "acc": 0.433}, "Art_Theory": {"num": 30, "acc": 0.567}, "Design": {"num": 30, "acc": 0.667}, "Music": {"num": 30, "acc": 0.167}, "Overall-Business": {"num": 150, "acc": 0.287}, "Accounting": {"num": 30, "acc": 0.233}, "Economics": {"num": 30, "acc": 0.467}, "Finance": {"num": 30, "acc": 0.133}, "Manage": {"num": 30, "acc": 0.3}, "Marketing": {"num": 30, "acc": 0.3}, "Overall-Science": {"num": 150, "acc": 0.28}, "Biology": {"num": 30, "acc": 0.333}, "Chemistry": {"num": 30, "acc": 0.133}, "Geography": {"num": 30, "acc": 0.4}, "Math": {"num": 30, "acc": 0.2}, "Physics": {"num": 30, "acc": 0.333}, "Overall-Health and Medicine": {"num": 150, "acc": 0.427}, "Basic_Medical_Science": {"num": 30, "acc": 0.4}, "Clinical_Medicine": {"num": 30, "acc": 0.533}, "Diagnostics_and_Laboratory_Medicine": {"num": 30, "acc": 0.4}, "Pharmacy": {"num": 30, "acc": 0.4}, "Public_Health": {"num": 30, "acc": 0.4}, "Overall-Humanities and Social Science": {"num": 120, "acc": 0.7}, "History": {"num": 30, "acc": 0.633}, "Literature": {"num": 30, "acc": 0.867}, "Sociology": {"num": 30, "acc": 0.733}, "Psychology": {"num": 30, "acc": 0.567}, "Overall-Tech and Engineering": {"num": 210, "acc": 0.324}, "Agriculture": {"num": 30, "acc": 0.533}, "Architecture_and_Engineering": {"num": 30, "acc": 0.3}, "Computer_Science": {"num": 30, "acc": 0.367}, "Electronics": {"num": 30, "acc": 0.133}, "Energy_and_Power": {"num": 30, "acc": 0.4}, "Materials": {"num": 30, "acc": 0.2}, "Mechanical_Engineering": {"num": 30, "acc": 0.333}, "Overall": {"num": 900, "acc": 0.396}} +``` + +**gemma-4-31B-it** + +```json Config +{"Overall-Art and Design": {"num": 120, "acc": 0.667}, "Art": {"num": 30, "acc": 0.667}, "Art_Theory": {"num": 30, "acc": 0.867}, "Design": {"num": 30, "acc": 0.8}, "Music": {"num": 30, "acc": 0.333}, "Overall-Business": {"num": 150, "acc": 0.573}, "Accounting": {"num": 30, "acc": 0.633}, "Economics": {"num": 30, "acc": 0.733}, "Finance": {"num": 30, "acc": 0.433}, "Manage": {"num": 30, "acc": 0.533}, "Marketing": {"num": 30, "acc": 0.533}, "Overall-Science": {"num": 150, "acc": 0.527}, "Biology": {"num": 30, "acc": 0.667}, "Chemistry": {"num": 30, "acc": 0.567}, "Geography": {"num": 30, "acc": 0.5}, "Math": {"num": 30, "acc": 0.267}, "Physics": {"num": 30, "acc": 0.633}, "Overall-Health and Medicine": {"num": 150, "acc": 0.673}, "Basic_Medical_Science": {"num": 30, "acc": 0.733}, "Clinical_Medicine": {"num": 30, "acc": 0.533}, "Diagnostics_and_Laboratory_Medicine": {"num": 30, "acc": 0.467}, "Pharmacy": {"num": 30, "acc": 0.8}, "Public_Health": {"num": 30, "acc": 0.833}, "Overall-Humanities and Social Science": {"num": 120, "acc": 0.825}, "History": {"num": 30, "acc": 0.833}, "Literature": {"num": 30, "acc": 0.867}, "Sociology": {"num": 30, "acc": 0.767}, "Psychology": {"num": 30, "acc": 0.833}, "Overall-Tech and Engineering": {"num": 210, "acc": 0.405}, "Agriculture": {"num": 30, "acc": 0.667}, "Architecture_and_Engineering": {"num": 30, "acc": 0.2}, "Computer_Science": {"num": 30, "acc": 0.567}, "Electronics": {"num": 30, "acc": 0.333}, "Energy_and_Power": {"num": 30, "acc": 0.533}, "Materials": {"num": 30, "acc": 0.3}, "Mechanical_Engineering": {"num": 30, "acc": 0.233}, "Overall": {"num": 900, "acc": 0.589}} +``` + +**gemma-4-26B-A4B-it** + +```json Config +{"Overall-Art and Design": {"num": 120, "acc": 0.717}, "Art": {"num": 30, "acc": 0.733}, "Art_Theory": {"num": 30, "acc": 0.833}, "Design": {"num": 30, "acc": 0.867}, "Music": {"num": 30, "acc": 0.433}, "Overall-Business": {"num": 150, "acc": 0.493}, "Accounting": {"num": 30, "acc": 0.533}, "Economics": {"num": 30, "acc": 0.533}, "Finance": {"num": 30, "acc": 0.333}, "Manage": {"num": 30, "acc": 0.5}, "Marketing": {"num": 30, "acc": 0.567}, "Overall-Science": {"num": 150, "acc": 0.473}, "Biology": {"num": 30, "acc": 0.633}, "Chemistry": {"num": 30, "acc": 0.367}, "Geography": {"num": 30, "acc": 0.533}, "Math": {"num": 30, "acc": 0.267}, "Physics": {"num": 30, "acc": 0.567}, "Overall-Health and Medicine": {"num": 150, "acc": 0.62}, "Basic_Medical_Science": {"num": 30, "acc": 0.767}, "Clinical_Medicine": {"num": 30, "acc": 0.533}, "Diagnostics_and_Laboratory_Medicine": {"num": 30, "acc": 0.433}, "Pharmacy": {"num": 30, "acc": 0.7}, "Public_Health": {"num": 30, "acc": 0.667}, "Overall-Humanities and Social Science": {"num": 120, "acc": 0.758}, "History": {"num": 30, "acc": 0.8}, "Literature": {"num": 30, "acc": 0.833}, "Sociology": {"num": 30, "acc": 0.733}, "Psychology": {"num": 30, "acc": 0.667}, "Overall-Tech and Engineering": {"num": 210, "acc": 0.376}, "Agriculture": {"num": 30, "acc": 0.633}, "Architecture_and_Engineering": {"num": 30, "acc": 0.367}, "Computer_Science": {"num": 30, "acc": 0.533}, "Electronics": {"num": 30, "acc": 0.167}, "Energy_and_Power": {"num": 30, "acc": 0.367}, "Materials": {"num": 30, "acc": 0.367}, "Mechanical_Engineering": {"num": 30, "acc": 0.2}, "Overall": {"num": 900, "acc": 0.549}} +``` + +#### ASR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelWERAvg Latency (s)Throughput (req/s)
      gemma-4-E2B-it23.86%0.2122.99
      gemma-4-E4B-it29.55%0.3662.46
      gemma-4-31B-itNot Supported
      gemma-4-26B-A4B-itNot Supported
      + +#### FLEUR (EN_US) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelWERAvg Latency (s)Throughput (req/s)
      gemma-4-E2B-it7.37%0.8963s16.25
      gemma-4-E4B-it6.08%0.8707s16.20
      gemma-4-31B-itNot Supported
      gemma-4-26B-A4B-itNot Supported
      + +### 5.3 Logits correctness validation + +**gemma-4-E2B-it** +```shell Command +$ python -m sglang.bench_one_batch --correct --model gg-hf-gg/gemma-4-E2B-it .... +prefill logits (final): tensor([[-25.3063, -2.5718, -10.3674, ..., -25.3779, -25.5181, -25.2337]], + device='cuda:0') +.... + +$ python scripts/playground/reference_hf.py --model-path gg-hf-gg/gemma-4-E2B-it +.... +prefill logits (final) tensor([-25.3281, -2.1367, -10.2266, ..., -25.4375, -25.5000, -25.2500], + device='cuda:0', dtype=torch.float16) +.... +``` + +**gemma-4-E4B-it** + +```shell Command +$ python -m sglang.bench_one_batch --correct --model gg-hf-gg/gemma-4-E4B-it .... +prefill logits (final): tensor([[-17.6478, 7.9901, -5.6505, ..., -17.5658, -17.6478, -17.7293]], + device='cuda:0') +.... + +$ python scripts/playground/reference_hf.py --model-path gg-hf-gg/gemma-4-E4B-it +.... +prefill logits (final) tensor([-17.5625, 8.0469, -5.5742, ..., -17.4688, -17.5625, -17.6719], + device='cuda:0', dtype=torch.float16) +.... +``` + +**gemma-4-31B-it** +```shell Command +$ python -m sglang.bench_one_batch --correct --model gg-hf-gg/gemma-4-31B-it .... +prefill logits (final): tensor([[-2.0748, 1.1245, -7.4356, ..., -2.1059, -2.1525, -2.2303]], + device='cuda:0') +.... + +$ python scripts/playground/reference_hf.py --model-path gg-hf-gg/gemma-4-31B-it +.... +prefill logits (final) tensor([-2.1133, 1.2656, -7.4766, ..., -2.1523, -2.2012, -2.2695], + device='cuda:0', dtype=torch.float16) +.... +``` + +
      diff --git a/docs_new/cookbook/autoregressive/InclusionAI/LLaDA-2.1.mdx b/docs_new/cookbook/autoregressive/InclusionAI/LLaDA-2.1.mdx new file mode 100644 index 000000000..162bfa761 --- /dev/null +++ b/docs_new/cookbook/autoregressive/InclusionAI/LLaDA-2.1.mdx @@ -0,0 +1,701 @@ +--- +title: LLaDA 2.1 +metatags: + description: "Deploy LLaDA 2.1 with SGLang - large-scale discrete diffusion language model with parallel token generation, iterative denoising, MoE architecture, and reinforcement learning for reasoning." +tag: NEW +--- + +import { LLaDA21Deployment } from '/src/snippets/autoregressive/llada-21-deployment.jsx'; + +## 1. Model Introduction + +[LLaDA 2.1](https://github.com/inclusionAI/LLaDA2.X) is a series of large-scale discrete diffusion language models (dLLMs) developed by the InclusionAI team at Ant Group. Unlike traditional autoregressive models that generate text left-to-right one token at a time, LLaDA 2.1 uses a diffusion-based approach — drafting tokens in parallel and refining them through iterative denoising, enabling self-correction during generation. + +**Key Features:** + +- **Token Editing (T2T + M2T)**: Combines Mask-to-Token (M2T) and Token-to-Token (T2T) editing, allowing the model to not only unmask tokens but also revise already-generated tokens mid-flight +- **Dual Decoding Modes**: Speed Mode (S) for maximum throughput with T2T refinement, and Quality Mode (Q) for conservative thresholds and higher benchmark scores +- **MoE Architecture**: Both variants use Mixture-of-Experts architecture for efficient scaling +- **First Large-Scale RL for dLLMs**: Implements the first reinforcement learning framework specifically designed for diffusion language models, improving reasoning and instruction-following +- **Lightning-Fast Decoding**: Up to 892 tokens/s on HumanEval+ for the 100B model + +**Available Models:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelParametersArchitectureContext LengthHuggingFace
      **LLaDA2.1-mini**16BMoE (20 layers, 16 attention heads)32,768 tokens[inclusionAI/LLaDA2.1-mini](https://huggingface.co/inclusionAI/LLaDA2.1-mini)
      **LLaDA2.1-flash**100BMoE32,768 tokens[inclusionAI/LLaDA2.1-flash](https://huggingface.co/inclusionAI/LLaDA2.1-flash)
      + +**License:** + +Apache 2.0. Please refer to the [official LLaDA2.X repository](https://github.com/inclusionAI/LLaDA2.X) for details. + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model size, and decoding mode. SGLang supports serving LLaDA-2.1 on NVIDIA H100, H200, B200, and AMD MI300X, MI325X, MI355X GPUs. + + + +### 3.2 Configuration Tips + +**dLLM-Specific Parameters:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDescriptionRecommended Value
      `--dllm-algorithm`Diffusion decoding algorithm`JointThreshold`
      `--trust-remote-code`Required for LLaDA model loadingAlways enabled
      `--mem-fraction-static`Static memory fraction for KV cache`0.8`
      `--max-running-requests`Maximum concurrent requests`1` (for best quality)
      `--attention-backend`Attention computation backend`flashinfer`
      + +**Decoding Mode Comparison:** + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModeThresholdSpeedQualityBest For
      **Quality Mode (Q)**ConservativeModerateHigher benchmark scoresAccuracy-critical tasks
      **Speed Mode (S)**AggressiveVery fast, relies on T2T editingSlightly lowerThroughput-critical tasks
      + +**Hardware Requirements:** + +- **LLaDA2.1-mini (16B)**: ~47 GB VRAM, runs on a single GPU (TP=1) +- **LLaDA2.1-flash (100B)**: Requires multi-GPU setup (TP=4 on H100/H200, TP=2 on B200) + +## 4. Model Invocation + +### 4.1 Deployment + +Start the server using the command generated above, for example: + +```shell Command +python -m sglang.launch_server \ + --model-path inclusionAI/LLaDA2.1-mini \ + --dllm-algorithm JointThreshold \ + --tp 1 \ + --trust-remote-code \ + --mem-fraction-static 0.8 \ + --max-running-requests 1 \ + --attention-backend flashinfer \ + --host 0.0.0.0 \ + --port 8000 +``` + +### 4.2 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +**Simple Completion Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="inclusionAI/LLaDA2.1-mini", + messages=[ + {"role": "user", "content": "Explain what a diffusion language model is in simple terms."} + ], + max_tokens=1024 +) + +print(response.choices[0].message.content) +``` + +**Output Example:** + +```text Output +Sure! Let's break it down in simple terms. + +A **diffusion language model** is a type of artificial intelligence that learns to generate text—like sentences, stories, or emails—by studying a lot of written text. + +Here’s how it works, using a simple real-life analogy: + +Imagine you have a big book full of stories. A diffusion language model is trying to learn how to write a new story. Instead of being told the rules, it starts by looking at all the words in the book and trying to understand how words usually go together. + +Now, think of the process like this: + +1. **Start with random noise**: The model begins with a completely random set of words (like a scribble on paper). +2. ** ** "clean up" the noise**: It gradually "denoises" the noise by turning it into meaningful text, word by word, based on what it learned learned from the book. +3. **Learn from patterns**: As it does this, it learns patterns—like how words often follow each other, or how sentences start. +4. **Generate new text**: Once it’s learned the patterns, it can create new, coherent sentences or stories by starting from a and and building it up word by word. + +So, the "diffusion" part comes from the idea of going from random noise to clear, meaningful text—like turning a scribble into a full story. + +In short: +A diffusion language model is an AI that learns to write text by reading lots of books and gradually turning random noise into coherent, meaningful sentences based on what it learned. +``` + +### 4.3 Advanced Usage + +#### 4.3.1 Streaming + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="inclusionAI/LLaDA2.1-mini", + messages=[ + {"role": "user", "content": "Write a Python function to compute the Fibonacci sequence."} + ], + max_tokens=2048, + stream=True +) + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +````text Output +Here are several ways to implement the Fibonacci sequence in Python: + +## 1. Recursive Approach (Simple but Inefficient) + +```python +def fibonacci_recursive(n): + """ + Compute the nth Fibonacci number using recursion. + + Args: + n (int): The position in the Fibonacci sequence (0-indexed) + + Returns: + int: The nth Fibonacci number + + Raises: + ValueError: If n is negative + """ + if n < 0: + raise ValueError("n must be non-negative") + + if n <= 1: + return n + + return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2) + +# Example usage +print(fibonacci_recursive(10)) # Output: 55 +``` + +## 2. Iterative Approach (Efficient) +... +```` + +#### 4.3.2 Code Generation + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="inclusionAI/LLaDA2.1-mini", + messages=[ + {"role": "user", "content": "Write a Python function that checks if a string is a palindrome. Include docstring and test cases."} + ], + max_tokens=2048 +) + +print(response.choices[0].message.content) +``` + +**Output Example:** + +````text Output +```python +def is_palindrome(s): + """ + Check if a string is a palindrome. + + A palindrome is a word, phrase, or sequence that reads the same backward as forward. + This function ignores case, spaces, punctuation, and non characters characters. + + Args: + s (str): The string to check + + Returns: + bool: True if the string is a palindrome, False otherwise + + Examples: + >>> is_palindrome("racecar") + True + >>> is_palindrome("A man a plan a canal Panama") + True + >>> is_palindrome("race a car") + False + >>> is_palindrome("") + True + >>> is_palindrome("a") + True + """ + # Remove non-alphanumeric characters and convert to lowercase + cleaned = ''.join(char.lower() for char in s if char.isalnum()) + + # Check if the cleaned string reads the same forwards and backwards + return cleaned == cleaned[::-1] + +# Test cases +def test_is_palindrome(): + """Test the is_palindrome function with various inputs.""" + + # Test basic palindromes + assert is_palindrome("racecar") == True + assert is_palindrome("level") == True + assert is_palindrome("madam") == True + assert is_palindrome("radar") == True + + # Test palindromes with spaces and punctuation + assert is_palindrome("A man a plan a canal Panama") == True + assert is_palindrome("race a car") == False + assert is_palindrome("Was it a car or a cat I saw?") == True + assert is_palindrome("Madam, I'm Adam") == True + + # Test edge cases + assert is_palindrome("") == True + assert is_palindrome("a") == True + assert is_palindrome("A") == True + assert is_palindrome("Aa") == True + + # Test non-palindromes + assert is_palindrome("hello") == False + assert is_palindrome("world") == False + assert is_palindrome("python") == False + + # Test single characters + assert is_palindrome("1") == True + assert is_palindrome("1") == True + + print("All tests passed!") + +# Run the tests +if __name__ == "__main__": + # Example usage + print("Testing isalindrome function:") + print(f"'racecar' {is_palindrome('racecar')}") + print(f"'A man a plan a canal Panama': {is_palindrome('A man a plan a canal Panama')}") + print(f"'race a car': {is_palindrome('race a car')}") + print(f"'hello': {is_palindrome('hello')}") + + # Run tests + test_is_palindrome() +``` + +This implementation includes: + +1. **Comprehensive function** `is_palindrome()` that: + - Ignores case by converting to lowercase + - Removes all non-alphanumeric characters (spaces, punctuation, etc.) + - Uses string slicing (`[::-1]`) to reverse the string + +2. **Detailed docstring** explaining: + - What the function does + - How it works + - Return value + - Examples of usage + +3. **Extensive test cases** covering: + - Basic palindromes + - Palindromes with spaces and punctuation + - Edge cases (empty string, single character) + - Non-palindromes + - Mixed case scenarios + +4. **Test function** that uses assertions to verify the function works correctly + +The function efficiently handles real-world palindrome checking by ignoring case, spaces, and punctuation, making it suitable for phrases like "A man a plan a canal Panama". +```` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 (4x) +- SGLang Version: 0.5.8+ + +#### 5.1.1 LLaDA2.1-mini + +**Model Deployment:** + +```bash Command +python -m sglang.launch_server \ + --model-path inclusionAI/LLaDA2.1-mini \ + --dllm-algorithm JointThreshold \ + --tp 1 \ + --trust-remote-code \ + --mem-fraction-static 0.8 \ + --max-running-requests 1 \ + --attention-backend flashinfer +``` + +- Latency Benchmark + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model inclusionAI/LLaDA2.1-mini \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- **Latency Result**: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 9.90 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 3433 +Request throughput (req/s): 1.01 +Input token throughput (tok/s): 616.26 +Output token throughput (tok/s): 426.26 +Peak output token throughput (tok/s): 1010.00 +Peak concurrent requests: 3 +Total token throughput (tok/s): 1042.53 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 988.87 +Median E2E Latency (ms): 655.27 +P90 E2E Latency (ms): 1952.50 +P99 E2E Latency (ms): 2932.19 +---------------Time to First Token---------------- +Mean TTFT (ms): 152.74 +Median TTFT (ms): 150.37 +P99 TTFT (ms): 229.78 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 2.16 +Median TPOT (ms): 2.08 +P99 TPOT (ms): 3.72 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 2.10 +Median ITL (ms): 1.99 +P95 ITL (ms): 4.03 +P99 ITL (ms): 6.34 +Max ITL (ms): 26.59 +================================================== +``` + +- Throughput Benchmark + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model inclusionAI/LLaDA2.1-mini \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +- **Throughput Result**: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 467.74 +Total input tokens: 249831 +Total input text tokens: 249831 +Total generated tokens: 252662 +Total generated tokens (retokenized): 189717 +Request throughput (req/s): 1.07 +Input token throughput (tok/s): 534.12 +Output token throughput (tok/s): 540.17 +Peak output token throughput (tok/s): 1753.00 +Peak concurrent requests: 105 +Total token throughput (tok/s): 1074.30 +Concurrency: 90.77 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 84912.27 +Median E2E Latency (ms): 86564.26 +P90 E2E Latency (ms): 110567.26 +P99 E2E Latency (ms): 114303.38 +---------------Time to First Token---------------- +Mean TTFT (ms): 83920.39 +Median TTFT (ms): 85669.54 +P99 TTFT (ms): 112969.91 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 2.67 +Median TPOT (ms): 1.65 +P99 TPOT (ms): 4.43 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 1.69 +Median ITL (ms): 1.46 +P95 ITL (ms): 3.96 +P99 ITL (ms): 4.84 +Max ITL (ms): 92.08 +================================================== +``` + +#### 5.1.2 LLaDA2.1-flash + +**Model Deployment:** + +```bash Command +python -m sglang.launch_server \ + --model-path inclusionAI/LLaDA2.1-flash \ + --dllm-algorithm JointThreshold \ + --tp 4 \ + --trust-remote-code \ + --mem-fraction-static 0.8 \ + --max-running-requests 1 \ + --attention-backend flashinfer +``` + +- Latency Benchmark + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model inclusionAI/LLaDA2.1-flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- **Latency Result**: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 14.46 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 3276 +Request throughput (req/s): 0.69 +Input token throughput (tok/s): 421.79 +Output token throughput (tok/s): 291.75 +Peak output token throughput (tok/s): 676.00 +Peak concurrent requests: 3 +Total token throughput (tok/s): 713.53 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 1445.16 +Median E2E Latency (ms): 968.06 +P90 E2E Latency (ms): 3101.86 +P99 E2E Latency (ms): 4208.49 +---------------Time to First Token---------------- +Mean TTFT (ms): 231.63 +Median TTFT (ms): 242.67 +P99 TTFT (ms): 341.33 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 3.04 +Median TPOT (ms): 2.79 +P99 TPOT (ms): 5.33 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 3.05 +Median ITL (ms): 2.41 +P95 ITL (ms): 7.25 +P99 ITL (ms): 8.27 +Max ITL (ms): 29.27 +================================================== +``` + +- Throughput Benchmark + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model inclusionAI/LLaDA2.1-flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +- **Throughput Result**: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 671.85 +Total input tokens: 249831 +Total input text tokens: 249831 +Total generated tokens: 252662 +Total generated tokens (retokenized): 177961 +Request throughput (req/s): 0.74 +Input token throughput (tok/s): 371.85 +Output token throughput (tok/s): 376.07 +Peak output token throughput (tok/s): 1521.00 +Peak concurrent requests: 103 +Total token throughput (tok/s): 747.92 +Concurrency: 91.28 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 122658.36 +Median E2E Latency (ms): 125265.55 +P90 E2E Latency (ms): 159554.07 +P99 E2E Latency (ms): 165174.88 +---------------Time to First Token---------------- +Mean TTFT (ms): 121009.17 +Median TTFT (ms): 124437.80 +P99 TTFT (ms): 163579.29 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 4.73 +Median TPOT (ms): 2.16 +P99 TPOT (ms): 7.13 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 2.38 +Median ITL (ms): 1.40 +P95 ITL (ms): 6.89 +P99 ITL (ms): 8.60 +Max ITL (ms): 176.78 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +```bash Command +python -m sglang.test.few_shot_gsm8k \ + --num-questions 200 \ + --port 8000 +``` + +**Results:** + +```text Output +Accuracy: 0.895 +Invalid: 0.000 +Latency: 100.552 s +Output throughput: 262.094 token/s +``` diff --git a/docs_new/cookbook/autoregressive/InclusionAI/Ling-2.5-1T.mdx b/docs_new/cookbook/autoregressive/InclusionAI/Ling-2.5-1T.mdx new file mode 100644 index 000000000..d9bbceb39 --- /dev/null +++ b/docs_new/cookbook/autoregressive/InclusionAI/Ling-2.5-1T.mdx @@ -0,0 +1,221 @@ +--- +title: Ling-2.5-1T +metatags: + description: "Deploy Ling-2.5-1T with SGLang - 1T parameter MoE model with 63B active parameters, trillion-scale context length up to 1M tokens, and agentic tool calling capabilities." +tag: NEW +--- + +## 1. Model Introduction + +[Ling-2.5-1T](https://huggingface.co/inclusionAI/Ling-2.5-1T) is the latest flagship instant model in the Ling family. Thinking models raise the ceiling of intelligence, while instant models expand its reach by balancing efficiency and performance—making AGI not only more powerful, but also more accessible. Ling-2.5-1T delivers comprehensive upgrades across model architecture, token efficiency, and preference alignment, designed to bring universally accessible AI to a new level of quality. + +**Key Features:** + +- **Trillion-Scale Model**: 1T total parameters with 63B active parameters (up from 51B in the previous generation). Pre-training corpus expanded from 20T to 29T tokens. Leveraging an efficient hybrid linear attention architecture (1:7 MLA + Lightning Linear Attention), the model delivers exceptionally high throughput while processing context lengths of up to 1M tokens. +- **Token Efficiency**: By introducing a composite reward mechanism combining "Correctness" and "Process Redundancy", Ling-2.5-1T further pushes the frontier of efficiency-performance balance in instant models. At comparable token efficiency levels, Ling-2.5-1T's reasoning capabilities significantly outperform its predecessor, approaching the level of frontier "thinking models" that typically consume ~4x the output tokens. +- **Preference Alignment**: Through refined alignment strategies—such as bidirectional RL feedback and Agent-based instruction constraint verification—Ling-2.5-1T achieves substantial improvements over the previous generation in preference alignment tasks, including creative writing and instruction following. +- **Agentic Capabilities**: Trained with Agentic RL in large-scale high-fidelity interactive environments, Ling-2.5-1T is compatible with mainstream agent platforms such as Claude Code, OpenCode, and OpenClaw. It achieves leading open-source performance on the general tool-calling benchmark, BFCL-V4. +- **Context Length**: 256K -> 1M (YaRN) + +**Available Models:** + +- **BF16**: [inclusionAI/Ling-2.5-1T](https://huggingface.co/inclusionAI/Ling-2.5-1T) + +**License:** MIT + +## 2. SGLang Installation + +Ling-2.5-1T requires a specific SGLang Docker image: + +```bash Command +# For H200/B200 +docker pull lmsysorg/sglang:nightly-dev-20260213-a0ebaa64 + +# For GB200/GB300 +docker pull lmsysorg/sglang:nightly-dev-cu13-20260213-a0ebaa64 +``` + +For other installation methods, please refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +Ling-2.5-1T is also supported via the **nightly PyPI builds**. See the [SGLang Installation (PyPI)](../../../docs/get-started/installation) guide for setup instructions. + +## 3. Model Deployment + +Ling-2.5-1T is a trillion-parameter BF16 model that requires multi-node deployment (at least 2 nodes). Use the configuration selector below to generate the deployment command for your hardware platform. + +import { Ling251TDeployment } from '/src/snippets/autoregressive/ling-25-1t-deployment.jsx' + + + +### Configuration Tips + +- The `--trust-remote-code` flag is required for this model due to custom modeling code. +- `--tp-size` can be set to a maximum of 8 for this model. If you have more GPUs available, increase `--pp-size` to scale across additional nodes. +- Adding `--model-loader-extra-config '{"enable_multithread_load": "true","num_threads": 64}'` enables faster model loading. +- On H200/GB200/GB300 with 2-node deployment, `--mem-frac 0.95` is required to avoid OOM since the model occupies most of the GPU memory. For better throughput, consider 4-node deployment (ref [model card](https://huggingface.co/inclusionAI/Ling-2.5-1T#run-inference) for more details). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For example, launch the server on 2 H200 nodes: + +```bash Command +export MASTER_IP=10.10.0.1 # The IP of Node 0 +export PORT=30000 +export DIST_PORT=50000 + +# Node 0: +python3 -m sglang.launch_server \ +--model-path inclusionAI/Ling-2.5-1T \ +--trust-remote-code \ +--tp-size 8 \ +--pp-size 2 \ +--nnodes 2 \ +--node-rank 0 \ +--host 0.0.0.0 \ +--port ${PORT} \ +--dist-init-addr ${MASTER_IP}:${DIST_PORT} \ +--tool-call-parser qwen \ +--model-loader-extra-config '{"enable_multithread_load": "true","num_threads": 64}' \ +--mem-frac 0.95 + + +# Node 1: +python3 -m sglang.launch_server \ +--model-path inclusionAI/Ling-2.5-1T \ +--trust-remote-code \ +--tp-size 8 \ +--pp-size 2 \ +--nnodes 2 \ +--node-rank 1 \ +--dist-init-addr ${MASTER_IP}:${DIST_PORT} \ +--tool-call-parser qwen \ +--model-loader-extra-config '{"enable_multithread_load": "true","num_threads": 64}' \ +--mem-frac 0.95 +``` + +Once the server is running, send requests to the master node: + +```bash Command +curl -s http://${MASTER_IP}:${PORT}/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{"model": "auto", "messages": [{"role": "user", "content": "What is the capital of France?"}]}' +``` +Output: +```json Config +{ + "id": "e82af153da844ee6aed7a27a3187f2f4", + "object": "chat.completion", + "created": 1771216764, + "model": "auto", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "The capital of France is **Paris**.\n\n**Additional details:**\n* It is the largest city in France.\n* It is located in the north-central part of the country along the Seine River.\n* Paris is often referred to as \"The City of Light\" (*La Ville Lumière*).", + "reasoning_content": null, + "tool_calls": null + }, + "logprobs": null, + "finish_reason": "stop", + "matched_stop": 156895 + } + ], + "usage": { + "prompt_tokens": 25, + "total_tokens": 93, + "completion_tokens": 68, + "prompt_tokens_details": null, + "reasoning_tokens": 0 + } +} +``` + +For more API usage examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Tool Calling Example + +```bash Command +curl -s http://${MASTER_IP}:${PORT}/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "inclusionAI/Ling-2.5-1T", + "messages": [{"role": "user", "content": "Search for the latest news about AI"}], + "tools": [{ + "type": "function", + "function": { + "name": "search", + "description": "Search for information on the internet", + "parameters": { + "type": "object", + "properties": { + "query": {"type": "string", "description": "The search query"} + }, + "required": ["query"] + } + } + }], + "tool_choice": "auto" + }' +``` +Output: +```json Config +{ + "id": "b968e45c7d414f7482c8ffc0f9c6b688", + "object": "chat.completion", + "created": 1771216520, + "model": "inclusionAI/Ling-2.5-1T", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": null, + "reasoning_content": null, + "tool_calls": [ + { + "id": "call_e75f711d8ad840ed9d382c9e", + "index": 0, + "type": "function", + "function": { + "name": "search", + "arguments": "{\"query\": \"latest news about AI\"}" + } + } + ] + }, + "logprobs": null, + "finish_reason": "tool_calls", + "matched_stop": null + } + ], + "usage": { + "prompt_tokens": 173, + "total_tokens": 196, + "completion_tokens": 23, + "prompt_tokens_details": null, + "reasoning_tokens": 0 + } +} +``` + +## 5. Benchmark + +### GSM8K + +- Benchmark Command +```bash Command +python3 benchmark/gsm8k/bench_sglang.py +``` + +- Test Result +```text Output +Accuracy: 0.960 +Invalid: 0.000 +Latency: 45.410 s +Output throughput: 560.642 token/s +``` diff --git a/docs_new/cookbook/autoregressive/InclusionAI/Ring-2.5-1T.mdx b/docs_new/cookbook/autoregressive/InclusionAI/Ring-2.5-1T.mdx new file mode 100644 index 000000000..0cd4d7f6b --- /dev/null +++ b/docs_new/cookbook/autoregressive/InclusionAI/Ring-2.5-1T.mdx @@ -0,0 +1,266 @@ +--- +title: Ring-2.5-1T +metatags: + description: "Deploy Ring-2.5-1T with SGLang - world's first open-source 1T parameter reasoning model with hybrid linear attention, deep reasoning, and agentic tool calling capabilities." +tag: NEW +--- + +## 1. Model Introduction + +[Ring-2.5-1T](https://huggingface.co/inclusionAI/Ring-2.5-1T) is the world's first open-source trillion-parameter reasoning model based on hybrid linear attention architecture, developed by InclusionAI. Building on Ring-1T, Ring-2.5-1T demonstrates substantial improvements in generation efficiency, reasoning depth, and long-horizon task execution capabilities. + +**Key Features:** + +- **Trillion-Scale Model**: ~1T total parameters with 63B activation parameters using a hybrid linear attention architecture (1:7 MLA + Lightning Linear Attention) +- **Generation Efficiency**: Reduces memory access overhead by over 10x and increases generation throughput by more than 3x for sequences exceeding 32K tokens +- **Deep Reasoning**: Achieves gold medal level for both IMO 2025 and CMO 2025, with dense rewards for rigorous reasoning process feedback +- **Long-horizon Task Execution**: Enhanced autonomous execution capability through large-scale fully-async agentic RL training +- **Tool Calling**: Supports function calling with XML-style tool call format +- **Context Length**: 128K -> 256K (YaRN) + +**Available Models:** + +- **FP8 (8-bit quantized)**: [inclusionAI/Ring-2.5-1T](https://huggingface.co/inclusionAI/Ring-2.5-1T) + +**License:** MIT + +## 2. SGLang Installation + +Ring-2.5-1T requires a specific SGLang Docker image: + +```bash Command +# For H200/B200 +docker pull lmsysorg/sglang:nightly-dev-20260213-a0ebaa64 + +# For GB200/GB300 +docker pull lmsysorg/sglang:nightly-dev-cu13-20260213-a0ebaa64 + +# For MI300X/325X +docker pull lmsysorg/sglang:v0.5.9-rocm700-mi30x + +# For MI355X +docker pull lmsysorg/sglang:v0.5.9-rocm700-mi35x +``` + +For other installation methods, please refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform. + +import { Ring251TDeployment } from '/src/snippets/autoregressive/ring-25-1t-deployment.jsx' + + + +### 3.2 Configuration Tips + +- The `--trust-remote-code` flag is required for this model due to custom modeling code. +- The model uses FP8 quantization (compressed-tensors format). + +## 4. Model Invocation + +Deploy Ring-2.5-1T with the following command (on H200, all features enabled): + +```shell Command +sglang serve \ + --model-path inclusionAI/Ring-2.5-1T \ + --tp 8 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 30000 +``` + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +To enable reasoning output separation, add `--reasoning-parser deepseek-r1` when launching the server. The thinking process is returned via `reasoning_content` in the streaming response. + +```shell Command +sglang serve \ + --model-path inclusionAI/Ring-2.5-1T \ + --tp 8 \ + --trust-remote-code \ + --reasoning-parser deepseek-r1 \ + --host 0.0.0.0 \ + --port 30000 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="inclusionAI/Ring-2.5-1T", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + max_tokens=2048, + stream=True +) + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + print(delta.reasoning_content, end="", flush=True) + + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +
      +Output Example + +````text Output +We are asked: "Solve this problem step by step: What is 15% of 240?" This is a straightforward percentage calculation. We need to show step-by-step solution. + +We can compute 15% of 240 as (15/100)*240 = 0.15 * 240 = 36. + +But we need to present step by step. Also ensure it's clear. + +We could also break down: 10% of 240 = 24, then 5% = 12, so 15% = 36. + +But any method is fine. + +We'll produce a solution with explanation: "To find 15% of 240, multiply 240 by 0.15 (or 15/100)." + +We'll show: + +15% = 15/100 = 0.15 + +Then 0.15 × 240 = 36. + +Alternatively: (15/100) × 240 = (15 × 240) / 100 = 3600/100 = 36. + +Finally, answer: 36. + +We can also illustrate stepwise: "First, convert the percentage to a decimal: 15% = 0.15. Then multiply by the number: 0.15 × 240 = 36." + +We'll present as a final answer: \boxed{36}. + +However, we need to provide step-by-step solution as per instructions. We'll write a full explanation. + +We can also use the fraction method: 15% of 240 = (15/100)*240 = (15*240)/100 = 3600/100 = 36. + +Alr. + +I think that's it. + + +**Step 1:** Write 15% as a fraction or decimal. +\[ 15\% = \frac{15}{100} = 0.15\] + +**Step 2:** Multiply the number (240) by this fraction/decimal. +\[ 240 \times 0.15 = 36\] + +Alternatively, using the fraction: +\[ \frac{15}{100} \times 240 = \frac{15 \times 240}{100} = \frac{3600}{100} = 36\] + +**Conclusion:** 15% of 240 is 36. + +\[ \boxed{36} \] +```` + +
      + +#### 4.2.2 Tool Calling + +To enable tool calling, add `--tool-call-parser qwen` when launching the server. + +```shell Command +sglang serve \ + --model-path inclusionAI/Ring-2.5-1T \ + --tp 8 \ + --trust-remote-code \ + --tool-call-parser qwen \ + --host 0.0.0.0 \ + --port 30000 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + } + }, + "required": ["location"] + } + } + } +] + +response = client.chat.completions.create( + model="inclusionAI/Ring-2.5-1T", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools +) + +print(response.choices[0].message.tool_calls) +``` + +**Output Example:** + +```text Output +[ChatCompletionMessageFunctionToolCall(id='call_770360e31d194ed79d32cd8c', function=Function(arguments='{"location": "Beijing"}', name='get_weather'), type='function', index=0)] +``` + +## 5. Benchmark + +### GSM8K + +- Deployment Command +```bash Command +sglang serve \ + --model-path inclusionAI/Ring-2.5-1T \ + --tp-size 8 \ + --trust-remote-code +``` + +- Benchmark Command +```bash Command +python3 benchmark/gsm8k/bench_sglang.py --temperature 1.2 --top-p 0.8 --max-new-tokens 32768 --num-questions 200 --tokenizer-path inclusionAI/Ring-2.5-1T --enable-thinking +``` + +- Test Result +```text Output +Accuracy: 0.955 +Invalid: 0.010 +Latency: 615.833 s +Output throughput: 412.360 token/s +``` diff --git a/docs_new/cookbook/autoregressive/InternLM/Intern-S1.mdx b/docs_new/cookbook/autoregressive/InternLM/Intern-S1.mdx new file mode 100644 index 000000000..ae68d7be0 --- /dev/null +++ b/docs_new/cookbook/autoregressive/InternLM/Intern-S1.mdx @@ -0,0 +1,28 @@ +--- +title: Intern-S1 +metatags: + description: "Deploy Intern-S1 with SGLang - community contribution guide for InternLM's Intern-S1 model deployment." +--- + +## 📝 Community Contribution Welcome + +This guide is currently under development. We welcome community contributions! + +If you have experience deploying **Intern-S1** with SGLang, please help us complete this documentation. + +## 🚀 How to Contribute + +```shell Command +git clone https://github.com/YOUR_USERNAME/sglang-cookbook.git +cd sglang-cookbook +git checkout -b add-intern-s1-guide +# Edit this file and submit a PR +``` + +## 📚 Reference + +- [GLM-4.6V](../GLM/GLM-4.6V) + +--- + +**Let's build this together!** 🌟 diff --git a/docs_new/cookbook/autoregressive/InternVL/InternVL3.5.mdx b/docs_new/cookbook/autoregressive/InternVL/InternVL3.5.mdx new file mode 100644 index 000000000..a235290d7 --- /dev/null +++ b/docs_new/cookbook/autoregressive/InternVL/InternVL3.5.mdx @@ -0,0 +1,29 @@ +--- +title: InternVL3.5 +metatags: + description: "Deploy InternVL3.5 vision-language model with SGLang - community contribution guide for OpenGVLab's multimodal model." +--- + + +## 📝 Community Contribution Welcome + +This guide is currently under development. We welcome community contributions! + +If you have experience deploying **InternVL3.5** with SGLang, please help us complete this documentation. + +## 🚀 How to Contribute + +```shell Command +git clone https://github.com/YOUR_USERNAME/sglang-cookbook.git +cd sglang-cookbook +git checkout -b add-internvl3-5-guide +# Edit this file and submit a PR +``` + +## 📚 Reference + +- [GLM-4.6V](../GLM/GLM-4.6V) + +--- + +**Let's build this together!** 🌟 diff --git a/docs_new/cookbook/autoregressive/Jina/Jina-reranker-m0.mdx b/docs_new/cookbook/autoregressive/Jina/Jina-reranker-m0.mdx new file mode 100644 index 000000000..25acd214b --- /dev/null +++ b/docs_new/cookbook/autoregressive/Jina/Jina-reranker-m0.mdx @@ -0,0 +1,28 @@ +--- +title: Jina-reranker-m0 +metatags: + description: "Deploy Jina-reranker-m0 with SGLang - community contribution guide for Jina AI's reranker model deployment." +--- + +## 📝 Community Contribution Welcome + +This guide is currently under development. We welcome community contributions! + +If you have experience deploying **Jina-reranker-m0** with SGLang, please help us complete this documentation. + +## 🚀 How to Contribute + +```shell Command +git clone https://github.com/YOUR_USERNAME/sglang-cookbook.git +cd sglang-cookbook +git checkout -b add-jina-reranker-m0-guide +# Edit this file and submit a PR +``` + +## 📚 Reference + +- [DeepSeek-V3.2](../DeepSeek/DeepSeek-V3_2.md) + +--- + +**Let's build this together!** 🌟 diff --git a/docs_new/cookbook/autoregressive/Llama/Llama3.1.mdx b/docs_new/cookbook/autoregressive/Llama/Llama3.1.mdx new file mode 100644 index 000000000..95bdbd2d6 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Llama/Llama3.1.mdx @@ -0,0 +1,644 @@ +--- +title: Llama-3.1 +metatags: + description: "Deploy Llama 3.1 (8B/70B/405B) with SGLang - 128K context, tool use, multilingual support, and speculative decoding optimization." +--- +## 1. Model Introduction + +Llama 3.1 is a collection of pretrained and instruction tuned generative models, released in July 2024 by Meta. These models are available in 8B, 70B and 405B sizes, with the 405B variant being the most capable fully-open source model at the time. + +These models bring open intelligence to all, with several new features and improvements: + +- **Stronger General Intelligence**: These models showcase significant improvements in coding, state-of-the-art tool use, and overall stronger reasoning capabilities. +- **Extended Context Length**: Llama 3.1 extends the context length to 128K tokens to improve performance over long context tasks such as summarization and code reasoning. +- **Tool Use**: Llama 3.1 is trained to interact with a search engine, python interpreter and mathematical engine, and also improves zero-shot tool use capabilities to interact with potentially unseen tools. +- **Multilinguality**: Llama 3.1 supports 7 languages in addition to English: French, German, Hindi, Italian, Portuguese, Spanish, and Thai. + +For further details, please refer to the [Llama 3.1 blog](https://ai.meta.com/blog/meta-llama-3-1/) and the [Llama 3.1 model card](https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/MODEL_CARD.md).note + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to generate a launch command for Llama 3.1 collection of models. + +import { Llama31Deployment } from "/src/snippets/autoregressive/llama31-deployment.jsx"; + + +### 3.2 Configuration Tips + +**Speculative Decoding (NVIDIA GPUs):** + +- Using Speculative Decoding for latency-sensitive scenarios: + - `--speculative-algorithm EAGLE3`: Speculative decoding algorithm + - `--speculative-num-steps 3`: Number of speculative verification rounds + - `--speculative-eagle-topk 1`: Top-k sampling for draft tokens + - `--speculative-num-draft-tokens 4`: Number of draft tokens per step + - `--speculative-draft-model-path`: The path of the draft model weights. This can be a local folder or a Hugging Face repo ID such as [`yuhuili/EAGLE3-LLaMA3.1-Instruct-8B`](https://huggingface.co/yuhuili/EAGLE3-LLaMA3.1-Instruct-8B). + +**AMD GPU Deployment:** + +- **Hardware-Aware TP**: MI355X (256GB memory) supports lower TP values compared to MI300X/MI325X (192GB) +- **Verified TP Configurations**: + - MI300X/MI325X: 405B BF16 (TP=8), 405B FP8 (TP=4), 70B/8B (TP=1) + - MI355X: 405B BF16 (TP=4), 405B FP8 (TP=2), 70B/8B (TP=1) +- **FP8 Model Variants**: + - 405B: Use Meta's official `meta-llama/Llama-3.1-405B-Instruct-FP8` + - 70B/8B: Use AMD's optimized `amd/Llama-3.1-{size}-Instruct-FP8-KV` +- **Tool Calling**: Enable with `--tool-call-parser llama3` for Instruct models + +## 4. Model Invocation + +### 4.1 Basic Usage + +SGLang exposes an OpenAI-compatible endpoint. First, start the server + +```shell Command +sglang serve \ + --model-path Meta-Llama/Llama-3.1-405B-Instruct \ + --tp 8 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY", +) + +resp = client.chat.completions.create( + model="Meta-Llama/Llama-3.1-405B-Instruct", + messages=[ + {"role": "system", "content": "You are a helpful coding assistant."}, + {"role": "user", "content": "Write a Python function that retries a request with exponential backoff."}, + ], + temperature=0.2, + max_tokens=512, +) + +print(resp.choices[0].message.content) +``` + +**Output Example:** + +````text Output +**Exponential Backoff Retry Function in Python** +===================================================== + +Below is a Python function that uses the `requests` library to retry a request with exponential backoff. + +```python +import requests +import time +import random + +def exponential_backoff_retry(url, method, retries=3, backoff_factor=1, max_delay=60): + """ + Retry a request with exponential backoff. + + Args: + url (str): The URL to make the request to. + method (str): The HTTP method to use (e.g. 'GET', 'POST', etc.). + retries (int): The number of retries to attempt. Defaults to 3. + backoff_factor (int): The factor to multiply the delay by for each retry. Defaults to 1. + max_delay (int): The maximum delay to wait between retries in seconds. Defaults to 60. + + Returns: + The response object from the successful request. + """ + + delay = 1 + for attempt in range(retries + 1): + try: + response = requests.request(method, url) + response.raise_for_status() # Raise an exception for HTTP errors + return response + except requests.RequestException as e: + if attempt < retries: + # Calculate the delay for this retry + delay = min(delay * backoff_factor, max_delay) + # Add a random jitter to the delay to prevent thundering herd problem + delay += random.uniform(0, delay * 0.1) + # Wait for the calculated delay before retrying + time.sleep(delay) + else: + # If all retries have failed, raise the exception + raise e +... +```` + +### 4.2 Advanced Usage + +#### 4.2.1 Tool Calling + +Llama3 supports tool calling capabilities. First, start the server with tool call parser enabled: + +```shell Command +sglang serve \ + --model-path Meta-Llama/Llama-3.1-405B-Instruct \ + --tool-call-parser llama3 \ + --tp 8 +``` + +**Python Example** + +```python Example +from openai import OpenAI + +client = OpenAI(api_key="None", base_url=f"http://0.0.0.0:8000/v1") + +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the weather in a given location", + "parameters": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "The city to find the weather for, e.g. 'San Francisco'", + }, + "unit": { + "type": "string", + "description": "The unit to fetch the temperature in", + "enum": ["celsius", "fahrenheit"], + }, + }, + "required": ["city", "unit"], + }, + }, + } +] + +response = client.chat.completions.create( + model="meta-llama/Llama-3.1-405B-Instruct", + messages=[ + { + "role": "user", + "content": "What's the weather like in Boston today?", + } + ], + temperature=0.7, + stream=True, + tools=tools, +) + + +arguments = [] + +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'tool_calls') and delta.tool_calls: + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"🔧 Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +Reference: [SGLang Tool Parser Documentation](../../../docs/advanced_features/tool_parser#OpenAI-Compatible-API) + +**Output Example** + +```text Output +🔧 Tool Call: get_weather + Arguments: {"city": "Boston", "unit": "fahrenheit"} +``` + +**Handling Tool Call Results** +After getting the tool call, you can execute the function: + +```python Example +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather like in Boston today?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Boston", "unit": "fahrenheit"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Boston", "fahrenheit") + } +] + +final_response = client.chat.completions.create( + model="Meta-Llama/Llama-3.1-405B-Instruct", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The current weather in Boston is **22°C** and **sunny**. A perfect day to spend outside" +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA A100 GPU (8x) +- Model: Meta-Llama/Llama-3.1-70B +- Tensor Parallelism: 8 +- sglang version: 0.5.6 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. + +#### 5.1.1 Standard Scenario Benchmark + +- Model Deployment Command: + +```shell Command +sglang serve \ + --model-path Meta-Llama/Llama-3.1-70B \ + --tp 8 +``` + +##### 5.1.1.1 Low Concurrency + +- Benchmark Command: + +```shell Command +sglang serve \ + --backend sglang \ + --model Meta-Llama/Llama-3.1-70B \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 79.81 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4208 +Request throughput (req/s): 0.13 +Input token throughput (tok/s): 76.44 +Output token throughput (tok/s): 52.88 +Peak output token throughput (tok/s): 54.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 129.32 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 7977.81 +Median E2E Latency (ms): 6373.48 +---------------Time to First Token---------------- +Mean TTFT (ms): 131.61 +Median TTFT (ms): 131.77 +P99 TTFT (ms): 163.88 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 18.63 +Median TPOT (ms): 18.63 +P99 TPOT (ms): 18.65 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 18.64 +Median ITL (ms): 18.64 +P95 ITL (ms): 18.69 +P99 ITL (ms): 18.74 +Max ITL (ms): 21.95 +================================================== +``` + +##### 5.1.1.2 Medium Concurrency + +```shell Command +sglang serve \ + --backend sglang \ + --model-path Meta-Llama/Llama-3.1-70B \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 79.47 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 38450 +Request throughput (req/s): 1.01 +Input token throughput (tok/s): 499.17 +Output token throughput (tok/s): 513.48 +Peak output token throughput (tok/s): 674.00 +Peak concurrent requests: 20 +Total token throughput (tok/s): 1012.65 +Concurrency: 13.47 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 13376.67 +Median E2E Latency (ms): 14130.48 +---------------Time to First Token---------------- +Mean TTFT (ms): 264.84 +Median TTFT (ms): 147.02 +P99 TTFT (ms): 791.93 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 26.09 +Median TPOT (ms): 26.08 +P99 TPOT (ms): 34.65 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 25.76 +Median ITL (ms): 23.95 +P95 ITL (ms): 24.72 +P99 ITL (ms): 98.32 +Max ITL (ms): 478.92 +================================================== +``` + +##### 5.1.1.3 High Concurrency + +```shell Command +sglang serve \ + --backend sglang \ + --model-path Meta-Llama/Llama-3.1-70B \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 131.64 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 243641 +Request throughput (req/s): 3.80 +Input token throughput (tok/s): 1897.87 +Output token throughput (tok/s): 1919.38 +Peak output token throughput (tok/s): 3100.00 +Peak concurrent requests: 107 +Total token throughput (tok/s): 3817.25 +Concurrency: 89.70 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 23616.71 +Median E2E Latency (ms): 22770.44 +---------------Time to First Token---------------- +Mean TTFT (ms): 245.98 +Median TTFT (ms): 184.22 +P99 TTFT (ms): 1251.67 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 47.19 +Median TPOT (ms): 48.67 +P99 TPOT (ms): 56.37 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 46.34 +Median ITL (ms): 33.46 +P95 ITL (ms): 108.61 +P99 ITL (ms): 166.11 +Max ITL (ms): 1107.09 +================================================== +``` + +#### 5.1.2 Summarization Scenario Benchmark + +##### 5.1.2.1 Low Concurrency + +```shell Command +sglang serve \ + --backend sglang \ + --model-path Meta-Llama/Llama-3.1-70B\ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 83.25 +Total input tokens: 41941 +Total input text tokens: 41941 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.12 +Input token throughput (tok/s): 503.77 +Output token throughput (tok/s): 50.69 +Peak output token throughput (tok/s): 54.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 554.46 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 8322.45 +Median E2E Latency (ms): 6873.36 +---------------Time to First Token---------------- +Mean TTFT (ms): 395.25 +Median TTFT (ms): 318.02 +P99 TTFT (ms): 850.80 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 18.80 +Median TPOT (ms): 18.81 +P99 TPOT (ms): 19.03 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 18.83 +Median ITL (ms): 18.81 +P95 ITL (ms): 19.06 +P99 ITL (ms): 19.08 +Max ITL (ms): 23.08 +================================================== +``` + +##### 5.1.2.2 Medium Concurrency + +```shell Command +sglang serve \ + --backend sglang \ + --model-path Meta-Llama/Llama-3.1-70B \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 107.12 +Total input tokens: 300020 +Total input text tokens: 300020 +Total input vision tokens: 0 +Total generated tokens: 41669 +Total generated tokens (retokenized): 41603 +Request throughput (req/s): 0.75 +Input token throughput (tok/s): 2800.81 +Output token throughput (tok/s): 389.00 +Peak output token throughput (tok/s): 624.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 3189.81 +Concurrency: 14.18 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 18988.30 +Median E2E Latency (ms): 20290.66 +---------------Time to First Token---------------- +Mean TTFT (ms): 603.42 +Median TTFT (ms): 531.82 +P99 TTFT (ms): 2607.95 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 36.94 +Median TPOT (ms): 36.73 +P99 TPOT (ms): 79.19 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 35.36 +Median ITL (ms): 25.72 +P95 ITL (ms): 27.07 +P99 ITL (ms): 439.74 +Max ITL (ms): 2529.51 +================================================== +``` + +##### 5.1.2.3 High Concurrency + +```shell Command +sglang serve \ + --backend sglang \ + --model-path Meta-Llama/Llama-3.1-70B \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 215.66 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total input vision tokens: 0 +Total generated tokens: 170000 +Total generated tokens (retokenized): 169035 +Request throughput (req/s): 1.48 +Input token throughput (tok/s): 5906.92 +Output token throughput (tok/s): 788.27 +Peak output token throughput (tok/s): 1920.00 +Peak concurrent requests: 69 +Total token throughput (tok/s): 6695.19 +Concurrency: 60.01 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 40443.85 +Median E2E Latency (ms): 39813.12 +---------------Time to First Token---------------- +Mean TTFT (ms): 633.32 +Median TTFT (ms): 616.38 +P99 TTFT (ms): 1912.97 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 74.95 +Median TPOT (ms): 82.85 +P99 TPOT (ms): 118.46 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 75.08 +Median ITL (ms): 34.12 +P95 ITL (ms): 261.18 +P99 ITL (ms): 828.12 +Max ITL (ms): 1970.03 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 +``` + +- **Results**: + +```text Output +Accuracy: 0.830 +Invalid: 0.000 +Latency: 11.794 s +Output throughput: 1406.961 token/s +``` diff --git a/docs_new/cookbook/autoregressive/Llama/Llama3.3-70B.mdx b/docs_new/cookbook/autoregressive/Llama/Llama3.3-70B.mdx new file mode 100644 index 000000000..b74da9e0e --- /dev/null +++ b/docs_new/cookbook/autoregressive/Llama/Llama3.3-70B.mdx @@ -0,0 +1,229 @@ +--- +title: Llama-3.3-70B +metatags: + description: "Deploy Llama-3.3-70B-Instruct with SGLang on AMD GPUs - 128K context, enhanced reasoning, tool calling, and multilingual support." +--- +## 1. Model Introduction + +[Llama-3.3-70B-Instruct](https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct) is Meta's latest 70 billion parameter instruction-tuned language model, featuring improved performance and efficiency over Llama 3.1. With a 128K token context window and enhanced capabilities across reasoning, coding, and multilingual tasks, Llama 3.3 delivers state-of-the-art results while maintaining accessibility for production deployment. + +**Key Features:** + +- **Enhanced Performance**: Improved instruction following, reasoning, and task completion over Llama 3.1 +- **Tool Calling**: Native support for function calling and tool use scenarios +- **Multilingual Support**: Optimized for 8 languages (English, German, French, Italian, Portuguese, Hindi, Spanish, and Thai) +- **Extended Context**: 128K token context window for processing long documents and complex tasks +- **Efficient Deployment**: 70B parameters enable deployment on single GPU with AMD MI300X + +**License:** +Llama 3.3 is licensed under the Llama 3.3 Community License. See [LICENSE](https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct/blob/main/LICENSE) for details. + +For more details, please refer to the [official Llama models repository](https://github.com/meta-llama/llama-models). + +## 2. SGLang Installation + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for AMD GPUs (MI300X, MI325X, MI355X). + +### 3.1 Interactive Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your AMD GPU setup. + +import { Llama33Deployment } from "/src/snippets/autoregressive/llama33-70b-deployment.jsx"; + + + +### 3.2 Configuration Tips + +**AMD GPU Deployment:** + +- All AMD GPUs (MI300X, MI325X, MI355X) support TP=1 for both BF16 and FP8 variants +- **FP8 Model Variant**: Use AMD's optimized `amd/Llama-3.3-70B-Instruct-FP8-KV` +- **Tool Calling**: Enable with `--tool-call-parser llama3` for function calling support +- **Higher Throughput**: Optional TP=2 or TP=4 can be used for increased throughput + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Tool Calling + +Llama 3.3 70B Instruct supports native tool calling. Enable the tool parser during deployment: + +```shell Command +python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.3-70B-Instruct \ + --tool-call-parser llama3 \ + --tp 1 \ + --host 0.0.0.0 \ + --port 30000 +``` + +**Python Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request +response = client.chat.completions.create( + model="meta-llama/Llama-3.3-70B-Instruct", + messages=[ + {"role": "user", "content": "What's the weather in Tokyo?"} + ], + tools=tools, + temperature=0.7 +) + +# Check for tool calls +message = response.choices[0].message +if message.tool_calls: + tool_call = message.tool_calls[0] + print(f"Function: {tool_call.function.name}") + print(f"Arguments: {tool_call.function.arguments}") +``` + +**Handling Tool Call Results:** + +```python Example +# After executing the function, send the result back +def get_weather(location, unit="celsius"): + # Your weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Build conversation with tool result +messages = [ + {"role": "user", "content": "What's the weather in Tokyo?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Tokyo", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Tokyo", "celsius") + } +] + +final_response = client.chat.completions.create( + model="meta-llama/Llama-3.3-70B-Instruct", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The current weather in Tokyo is 22°C and sunny. A perfect day!" +``` + +#### 4.2.2 Long Context Processing + +Leverage the 128K context window for processing long documents: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Example with long document +long_document = "..." * 10000 # Your long document here + +response = client.chat.completions.create( + model="meta-llama/Llama-3.3-70B-Instruct", + messages=[ + {"role": "user", "content": f"Summarize this document:\n\n{long_document}"} + ], + temperature=0.7, + max_tokens=1000 +) + +print(response.choices[0].message.content) +``` + +## 5. Benchmarking + +Use the SGLang benchmarking suite to test model performance with different workload patterns: + +### 5.1 Basic Benchmark Command + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --dataset-name random \ + --num-prompts 1000 \ + --random-input 1024 \ + --random-output 1024 \ + --max-concurrency 16 +``` + +### 5.2 Adjusting Benchmark Parameters + +**Input/Output Length**: Adjust `--random-input` and `--random-output` to test different workload patterns: + +- Short conversations: `--random-input 1024 --random-output 1024` +- Long outputs: `--random-input 1024 --random-output 8192` +- Long inputs: `--random-input 8192 --random-output 1024` + +**Concurrency Levels**: Adjust `--max-concurrency` to test different load scenarios: + +- Low concurrency (latency-focused): `--max-concurrency 1 --num-prompts 100` +- Medium concurrency (balanced): `--max-concurrency 16 --num-prompts 1000` +- High concurrency (throughput-focused): `--max-concurrency 100 --num-prompts 2000` + +--- + +## 📚 Additional Resources + +- [Meta Llama Models Repository](https://github.com/meta-llama/llama-models) +- [Llama 3.3 Model Card](https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct) +- [SGLang Documentation](/) +- [AMD ROCm Documentation](https://rocm.docs.amd.com/) diff --git a/docs_new/cookbook/autoregressive/Llama/Llama4.mdx b/docs_new/cookbook/autoregressive/Llama/Llama4.mdx new file mode 100644 index 000000000..bd624433c --- /dev/null +++ b/docs_new/cookbook/autoregressive/Llama/Llama4.mdx @@ -0,0 +1,474 @@ +--- +title: Llama 4 +metatags: + description: "Deploy Llama 4 Scout and Maverick with SGLang - Meta's latest generation open-source LLMs with industry-leading performance." +--- + +import { Llama4ScoutDeployment } from '/src/snippets/autoregressive/llama4-scout-deployment.jsx'; +import { Llama4MaverickDeployment } from '/src/snippets/autoregressive/llama4-maverick-deployment.jsx'; + +## 1. Model Introduction + +[Llama 4](https://github.com/meta-llama/llama-models/blob/main/models/llama4/MODEL_CARD.md) is Meta's latest generation of open-source LLM model with industry-leading performance. + +SGLang has supported Llama 4 Scout (109B) and Llama 4 Maverick (400B) since [v0.4.5](https://github.com/sgl-project/sglang/releases/tag/v0.4.5). + +Ongoing optimizations are tracked in the [Roadmap](https://github.com/sgl-project/sglang/issues/5118). + +This generation delivers comprehensive upgrades across the board: + +The highly capable Llama 4 Maverick with 17B active parameters out of ~400B total, with 128 experts. +The efficient Llama 4 Scout also has 17B active parameters out of ~109B total, using just 16 experts. +Both models leverage early fusion for native multimodality, enabling them to process text and image inputs. Maverick and Scout are both trained on up to 40 trillion tokens on data encompassing 200 languages (with specific fine-tuning support for 12 languages including Arabic, Spanish, German, and Hindi). + +For more details, please refer to the official llama4 Repository:https://www.llama.com/models/llama-4/ + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance optimization, suitable for users at different levels. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model variant, deployment strategy, and thinking capabilities. + + + + + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) +- [SGLang OpenAI Vision API Guide](../../../docs/basic_usage/openai_api_vision) + +### 4.2 Advanced Usage + +#### 4.2.1 Launch the docker +```shell Command +docker pull lmsysorg/sglang:v0.5.9-rocm720-mi30x +``` + +```shell Command +docker run -d -it --ipc=host --network=host --privileged \ + --cap-add=CAP_SYS_ADMIN \ + --device=/dev/kfd --device=/dev/dri --device=/dev/mem \ + --group-add video --cap-add=SYS_PTRACE \ + --security-opt seccomp=unconfined \ + -v /:/work \ + -e SHELL=/bin/bash \ + --name Llama4 \ + lmsysorg/sglang:v0.5.9-rocm720-mi30x \ + /bin/bash +``` + +#### 4.2.2 Launch the server + +### Llama-4-Scout +8-GPU deployment command: + +```bash Command +sglang serve \ + --model-path meta-llama/Llama-4-Scout-17B-16E-Instruct \ + --tp 8 \ + --context-length 1000000 \ + --trust-remote-code +``` + +### Llama-4-Maverick +8-GPU deployment command: + +```bash Command +sglang serve \ + --model-path meta-llama/Llama-4-Maverick-17B-128E-Instruct \ + --tp 8 \ + --context-length 1000000 \ + --trust-remote-code +``` + +## 5. Benchmark +### 5.1 Speed Benchmark +Test Environment: + +Hardware: AMD MI300x GPU + +Model: Llama-4-Scout + +Tensor Parallelism: 8 + +sglang version: 0.5.9 + +- **Model Deployment** +```bash Command +sglang serve \ + --model-path meta-llama/Llama-4-Scout-17B-16E-Instruct \ + --tp 8 \ + --context-length 1000000 \ + --trust-remote-code +``` + +### 5.1.1 Low Concurrency (Latency-Optimized) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model meta-llama/Llama-4-Scout-17B-16E-Instruct \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 74.62 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4211 +Request throughput (req/s): 0.14 +Input token throughput (tok/s): 82.88 +Output token throughput (tok/s): 57.42 +Peak output token throughput (tok/s): 146.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 140.20 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 7459.48 +Median E2E Latency (ms): 4489.77 +---------------Time to First Token---------------- +Mean TTFT (ms): 4246.98 +Median TTFT (ms): 68.57 +P99 TTFT (ms): 48091.05 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 7.49 +Median TPOT (ms): 7.40 +P99 TPOT (ms): 7.40 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 7.49 +Median ITL (ms): 7.49 +P95 ITL (ms): 7.47 +P99 ITL (ms): 7.52 +Max ITL (ms): 10.44 +================================================== +``` +### 5.1.2 Medium Concurrency (Balanced) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model meta-llama/Llama-4-Scout-17B-16E-Instruct \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 45.41 +Total input tokens: 49668 +Total input text tokens: 49668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40516 +Request throughput (req/s): 2.26 +Input token throughput (tok/s): 1120.46 +Output token throughput (tok/s): 1152.47 +Peak output token throughput (tok/s): 1520.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 2272.84 +Concurrency: 14.76 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 6089.22 +Median E2E Latency (ms): 6568.80 +---------------Time to First Token---------------- +Mean TTFT (ms): 124.44 +Median TTFT (ms): 87.42 +P99 TTFT (ms): 268.72 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 11.88 +Median TPOT (ms): 12.00 +P99 TPOT (ms): 15.49 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 11.72 +Median ITL (ms): 10.54 +P95 ITL (ms): 11.22 +P99 ITL (ms): 67.88 +Max ITL (ms): 74.05 +================================================== +``` +### 5.1.3 High Concurrency (Throughput-Optimized) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model meta-llama/Llama-4-Scout-17B-16E-Instruct \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 85.84 +Total input tokens: 249841 +Total input text tokens: 249841 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 250498 +Request throughput (req/s): 5.84 +Input token throughput (tok/s): 2910.84 +Output token throughput (tok/s): 2944.82 +Peak output token throughput (tok/s): 4100.00 +Peak concurrent requests: 110 +Total token throughput (tok/s): 5854.65 +Concurrency: 92.24 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 15844.00 +Median E2E Latency (ms): 15262.56 +---------------Time to First Token---------------- +Mean TTFT (ms): 204.46 +Median TTFT (ms): 129.96 +P99 TTFT (ms): 528.54 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 41.56 +Median TPOT (ms): 42.90 +P99 TPOT (ms): 47.48 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 40.99 +Median ITL (ms): 24.46 +P95 ITL (ms): 84.46 +P99 ITL (ms): 87.64 +Max ITL (ms): 226.06 +================================================== +``` + +### 5.2 Speed Benchmark +Test Environment: + +Hardware: AMD MI300x GPU + +Model: Llama-4-Maverick + +Tensor Parallelism: 8 + +sglang version: 0.5.9 + +- **Model Deployment** +```bash Command +sglang serve \ + --model-path meta-llama/Llama-4-Maverick-17B-128E-Instruct \ + --tp 8 \ + --context-length 1000000 \ + --trust-remote-code +``` + +### 5.2.1 Low Concurrency (Latency-Optimized) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model meta-llama/Llama-4-Maverick-17B-128E-Instruct \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 68.08 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4202 +Request throughput (req/s): 0.15 +Input token throughput (tok/s): 89.62 +Output token throughput (tok/s): 61.99 +Peak output token throughput (tok/s): 168.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 151.61 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 6805.62 +Median E2E Latency (ms): 2733.91 +---------------Time to First Token---------------- +Mean TTFT (ms): 4296.56 +Median TTFT (ms): 57.45 +P99 TTFT (ms): 38633.95 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 5.95 +Median TPOT (ms): 5.96 +P99 TPOT (ms): 5.97 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 5.96 +Median ITL (ms): 5.96 +P95 ITL (ms): 6.02 +P99 ITL (ms): 6.08 +Max ITL (ms): 7.02 +================================================== +``` +### 5.2.2 Medium Concurrency (Balanced) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model meta-llama/Llama-4-Maverick-17B-128E-Instruct \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 30.72 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40923 +Request throughput (req/s): 2.60 +Input token throughput (tok/s): 1291.39 +Output token throughput (tok/s): 1328.41 +Peak output token throughput (tok/s): 1760.00 +Peak concurrent requests: 22 +Total token throughput (tok/s): 2619.80 +Concurrency: 13.92 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 5345.15 +Median E2E Latency (ms): 5679.73 +---------------Time to First Token---------------- +Mean TTFT (ms): 259.30 +Median TTFT (ms): 72.60 +P99 TTFT (ms): 1063.45 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.53 +Median TPOT (ms): 10.22 +P99 TPOT (ms): 20.27 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.99 +Median ITL (ms): 9.10 +P95 ITL (ms): 9.87 +P99 ITL (ms): 55.62 +Max ITL (ms): 868.54 +================================================== +``` +### 5.2.3 High Concurrency (Throughput-Optimized) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model meta-llama/Llama-4-Maverick-17B-128E-Instruct \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 90.95 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 251625 +Request throughput (req/s): 5.50 +Input token throughput (tok/s): 2746.77 +Output token throughput (tok/s): 2777.90 +Peak output token throughput (tok/s): 3700.00 +Peak concurrent requests: 109 +Total token throughput (tok/s): 5524.67 +Concurrency: 93.04 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 16924.17 +Median E2E Latency (ms): 16294.85 +---------------Time to First Token---------------- +Mean TTFT (ms): 188.19 +Median TTFT (ms): 128.96 +P99 TTFT (ms): 534.81 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 33.63 +Median TPOT (ms): 35.37 +P99 TPOT (ms): 38.26 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 33.19 +Median ITL (ms): 27.66 +P95 ITL (ms): 76.91 +P99 ITL (ms): 78.82 +Max ITL (ms): 268.17 +================================================== +``` +### 5.3 Accuracy Benchmark + +#### 5.3.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 +``` + - Llama-4-Scout-17B-16E-Instruct +```text Output +Accuracy: 0.945 +Invalid: 0.000 +Latency: 12.731 s +Output throughput: 1595.418 token/s +``` + - Llama-4-Maverick-17B-128E-Instruct +```text Output +Accuracy: 0.895 +Invalid: 0.000 +Latency: 9.739 s +Output throughput: 2405.505 token/s +``` diff --git a/docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.5.mdx b/docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.5.mdx new file mode 100644 index 000000000..c24ff680d --- /dev/null +++ b/docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.5.mdx @@ -0,0 +1,1041 @@ +--- +title: MiniMax-M2.5 +metatags: + description: "Deploy MiniMax-M2.5 with SGLang - community contribution guide for MiniMax M2.5 model deployment." +tag: NEW +--- + +import { MiniMaxM25Deployment } from '/src/snippets/autoregressive/minimax-m25-deployment.jsx'; + +## 1. Model Introduction + +[MiniMax-M2.5](https://huggingface.co/MiniMaxAI/MiniMax-M2.5) is a powerful language model developed by MiniMax, built for real-world productivity with state-of-the-art performance across coding, reasoning, agentic tasks, and tool use. + +As the latest iteration in the MiniMax model series, MiniMax-M2.5 achieves comprehensive enhancements across multiple domains. Details are as follows: + +- **Superior coding performance**: Achieves 79.7 on Droid and 76.1 on OpenCode, surpassing Opus 4.6 (78.9 and 75.9 respectively). Strong results on SWE-bench Verified, SWE-bench Multilingual, SWE-bench-pro, and Multi-SWE-bench. +- **Advanced reasoning**: Demonstrates strong performance on AIME25 and other reasoning benchmarks, with robust tool use during inference. +- **More capable agents**: Excels in agentic tasks including web browsing (BrowseComp, Wide Search), information retrieval (RISE), and complex tool use scenarios (Terminal Bench 2, MEWC, Finance Modeling). +- **Real-world productivity**: Designed for production-grade workloads with strong performance on practical coding, data analysis, and multi-step reasoning tasks. + +For more details, please refer to the [official MiniMax-M2.5 announcement](https://www.minimax.io/news/minimax-m25). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +**For AMD MI300X/MI325X/MI355X GPUs:** + +```bash Command +# Docker (AMD MI300X/MI325X) +docker pull lmsysorg/sglang:v0.5.9-rocm720-mi30x + +# Docker (AMD MI355X) +docker pull lmsysorg/sglang:v0.5.9-rocm720-mi35x +``` + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, deployment strategy, and feature capabilities. + + + +### 3.2 Configuration Tips + +**Key Parameters:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDescriptionRecommended Value
      `--tool-call-parser`Tool call parser for function calling support`minimax-m2`
      `--reasoning-parser`Reasoning parser for thinking mode`minimax-append-think`
      `--trust-remote-code`Required for MiniMax model loadingAlways enabled
      `--mem-fraction-static`Static memory fraction for KV cache`0.85`
      `--tp`Tensor parallelism size`2` (2-GPU) or `4` (4-GPU) or `8` (8-GPU)
      `--ep`Expert parallelism size`8` (NVIDIA 8-GPU) or EP=TP (AMD)
      `--kv-cache-dtype`KV cache data type (AMD only)`fp8_e4m3`
      `--attention-backend`Attention backend (AMD only)`triton`
      + +**Hardware Requirements: NVIDIA** + +- **4-GPU deployment**: Requires 4× high-memory GPUs (e.g., H200, B200, A100, H100) with TP=4 +- **8-GPU deployment**: Requires 8× GPUs (e.g., H200, B200, A100, H100) with TP=8 and EP=8 + +**Hardware Requirements: AMD** + +- **2-GPU deployment**: Requires 2× high-memory GPUs (e.g., MI300X, MI325X, MI355X) with TP=2, EP=2 +- **4-GPU deployment**: Requires 4× GPUs (e.g., MI300X, MI325X, MI355X) with TP=4, EP=4 +- **8-GPU deployment**: Requires 8× GPUs (e.g., MI300X, MI325X, MI355X) with TP=8, EP=8 + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +**Testing Deployment:** + +After startup, you can test the SGLang OpenAI-compatible API with the following command: + +```bash Command +curl http://localhost:8000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "MiniMaxAI/MiniMax-M2.5", + "messages": [ + {"role": "system", "content": [{"type": "text", "text": "You are a helpful assistant."}]}, + {"role": "user", "content": [{"type": "text", "text": "Who won the world series in 2020?"}]} + ] + }' +``` + +**Simple Completion Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2.5", + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Who won the world series in 2020?"} + ], + max_tokens=1024 +) + +print(response.choices[0].message.content) +``` +**Example Output**: +```text Output +The user asks: "Who won the world series in 2020?" That is a straightforward factual question. The answer: the Los Angeles Dodgers. They won the 2020 World Series, beating the Tampa Bay Rays. The user is presumably expecting that answer. + +We must follow the policies. The question is safe: no disallowed content. It's just a factual question. Provide answer. + +We must ensure compliance: Use no disallowed content. Should we provide context? Just answer straightforwardly. + +The user simply asks "Who won the world series in 2020?" We'll answer: The Los Angeles Dodgers. + +No additional relevant info needed, but could elaborate briefly: They beat the Tampa Bay Rays in six games, the series was played in a bubble at Globe Life Field in Arlington, Texas due to COVID-19. + +No need for any extra. That's it. + + +The Los Angeles Dodgers won the 2020 World Series, defeating the Tampa Bay Rays in six games. +``` +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +MiniMax-M2.5 supports Thinking mode. Enable the reasoning parser during deployment to separate the thinking and the content sections: + +```shell Command +python -m sglang.launch_server \ + --model-path MiniMaxAI/MiniMax-M2.5 \ + --tp 4 \ + --reasoning-parser minimax-append-think \ + --trust-remote-code \ + --mem-fraction-static 0.85 +``` + +**Streaming with Thinking Process** + +With `minimax-append-think`, the thinking content is wrapped in `...` tags within the `content` field. You can parse these tags on the client side to separate the thinking and content sections: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2.5", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream, separating ... from content +in_think = False +think_printed_header = False +content_printed_header = False +buffer = "" + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + if delta.content: + buffer += delta.content + + while buffer: + if in_think: + # Look for closing tag + end_idx = buffer.find("") + if end_idx != -1: + print(buffer[:end_idx], end="", flush=True) + buffer = buffer[end_idx + len(""):] + in_think = False + else: + # Still in thinking, print what we have + print(buffer, end="", flush=True) + buffer = "" + else: + # Look for opening tag + start_idx = buffer.find("") + if start_idx != -1: + # Print any content before + before = buffer[:start_idx] + if before: + if not content_printed_header: + print("=============== Content =================", flush=True) + content_printed_header = True + print(before, end="", flush=True) + buffer = buffer[start_idx + len(""):] + in_think = True + if not think_printed_header: + print("=============== Thinking =================", flush=True) + think_printed_header = True + else: + # No tag, print as content + if not content_printed_header and think_printed_header: + print("\n=============== Content =================", flush=True) + content_printed_header = True + print(buffer, end="", flush=True) + buffer = "" + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user asks: "Solve this problem step by step: What is 15% of 240?" This is straightforward: 15% = 0.15; 0.15*240 = 36. So answer: 36. Provide step-by-step: convert percent to decimal, multiply. + +We need to obey policies. There's no policy violation. Just answer. Provide step by step. Should respond with solution. + +We can also mention alternative method: 15% = 15/100 = 3/20. Multiply 240 * 3/20 = (240/20)*3 = 12*3 = 36. + +Thus answer 36. + +We can add step-by-step. That's it. + +=============== Content ================= + +**Step‑by‑step solution** + +1. **Convert the percent to a decimal** + \[ + 15\% = \frac{15}{100}=0.15 + \] + +2. **Multiply the decimal by the number** + \[ + 0.15 \times 240 = 36 + \] + +(You can also think of it as \(15\% = \frac{3}{20}\) and then \(240 \times \frac{3}{20}=12 \times 3 = 36\).) + +\[ +\boxed{36} +\] +``` + +**Note:** The `minimax-append-think` reasoning parser embeds the thinking process in `...` tags within the `content` field. The code above parses these tags in real-time to display thinking and content separately. + +#### 4.2.2 Tool Calling + +MiniMax-M2.5 supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model-path MiniMaxAI/MiniMax-M2.5 \ + --tp 4 \ + --tool-call-parser minimax-m2 \ + --reasoning-parser minimax-append-think \ + --trust-remote-code \ + --mem-fraction-static 0.85 +``` + +**Python Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Non-streaming request +response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2.5", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7 +) + +message = response.choices[0].message + +# Check for tool calls +if message.tool_calls: + for tool_call in message.tool_calls: + print(f"Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") +else: + print(message.content) +``` + +**Output Example**: +```text Output +Tool Call: get_weather + Arguments: {"location": "Beijing"} +``` + +**Note:** + +- Tool calls are returned in `message.tool_calls` with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2.5", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment**: + +- Hardware: NVIDIA B200 GPU (8x) +- Model: MiniMax-M2.5 +- Tensor Parallelism: 8 +- Expert Parallelism: 8 +- sglang version: 0.5.8 + +#### 5.1.1 Standard Scenario Benchmark +- Model Deployment Command: +```shell Command +sglang serve \ + --model-path MiniMaxAI/MiniMax-M2.5 \ + --tp 8 \ + --ep 8 \ + --reasoning-parser minimax-append-think \ + --trust-remote-code \ + --mem-fraction-static 0.85 \ + --tool-call-parser minimax-m2 +``` +##### 5.1.1.1 Low Concurrency +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 42.99 +Total input tokens: 6091 +Total input text tokens: 6091 +Total generated tokens: 4220 +Total generated tokens (retokenized): 3804 +Request throughput (req/s): 0.23 +Input token throughput (tok/s): 141.70 +Output token throughput (tok/s): 98.17 +Peak output token throughput (tok/s): 102.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 239.87 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 4295.92 +Median E2E Latency (ms): 3419.28 +P90 E2E Latency (ms): 7832.04 +P99 E2E Latency (ms): 9601.40 +---------------Time to First Token---------------- +Mean TTFT (ms): 130.57 +Median TTFT (ms): 116.10 +P99 TTFT (ms): 190.90 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 9.89 +Median TPOT (ms): 9.89 +P99 TPOT (ms): 9.91 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.89 +Median ITL (ms): 9.89 +P95 ITL (ms): 10.15 +P99 ITL (ms): 10.32 +Max ITL (ms): 14.46 +================================================== +``` +##### 5.1.1.2 Medium Concurrency +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 48.43 +Total input tokens: 39588 +Total input text tokens: 39588 +Total generated tokens: 40805 +Total generated tokens (retokenized): 37142 +Request throughput (req/s): 1.65 +Input token throughput (tok/s): 817.37 +Output token throughput (tok/s): 842.49 +Peak output token throughput (tok/s): 1184.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 1659.86 +Concurrency: 13.67 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 8274.32 +Median E2E Latency (ms): 8692.90 +P90 E2E Latency (ms): 13690.70 +P99 E2E Latency (ms): 16104.18 +---------------Time to First Token---------------- +Mean TTFT (ms): 305.44 +Median TTFT (ms): 106.75 +P99 TTFT (ms): 1053.26 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 16.20 +Median TPOT (ms): 16.06 +P99 TPOT (ms): 26.75 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 15.65 +Median ITL (ms): 13.63 +P95 ITL (ms): 14.90 +P99 ITL (ms): 87.99 +Max ITL (ms): 483.53 +================================================== +``` +##### 5.1.1.3 High Concurrency +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 92.31 +Total input tokens: 249331 +Total input text tokens: 249331 +Total generated tokens: 252662 +Total generated tokens (retokenized): 218975 +Request throughput (req/s): 5.42 +Input token throughput (tok/s): 2700.94 +Output token throughput (tok/s): 2737.02 +Peak output token throughput (tok/s): 4479.00 +Peak concurrent requests: 109 +Total token throughput (tok/s): 5437.97 +Concurrency: 91.19 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 16835.82 +Median E2E Latency (ms): 16042.08 +P90 E2E Latency (ms): 31027.63 +P99 E2E Latency (ms): 34787.91 +---------------Time to First Token---------------- +Mean TTFT (ms): 391.06 +Median TTFT (ms): 133.12 +P99 TTFT (ms): 1712.92 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 33.04 +Median TPOT (ms): 34.29 +P99 TPOT (ms): 41.98 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 32.61 +Median ITL (ms): 21.67 +P95 ITL (ms): 87.76 +P99 ITL (ms): 118.81 +Max ITL (ms): 1145.62 +================================================== +``` +#### 5.1.2 Summarization Scenario Benchmark +- Model Deployment Command: +```shell Command +sglang serve \ + --model-path MiniMaxAI/MiniMax-M2.5 \ + --tp 8 \ + --ep 8 \ + --reasoning-parser minimax-append-think \ + --trust-remote-code \ + --mem-fraction-static 0.85 \ + --tool-call-parser minimax-m2 +``` +##### 5.1.2.1 Low Concurrency +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.5 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 43.49 +Total input tokens: 41941 +Total input text tokens: 41941 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.23 +Input token throughput (tok/s): 964.42 +Output token throughput (tok/s): 97.04 +Peak output token throughput (tok/s): 102.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 1061.46 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 4346.83 +Median E2E Latency (ms): 3508.84 +P90 E2E Latency (ms): 7972.23 +P99 E2E Latency (ms): 9659.71 +---------------Time to First Token---------------- +Mean TTFT (ms): 131.50 +Median TTFT (ms): 126.76 +P99 TTFT (ms): 182.52 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.00 +Median TPOT (ms): 10.01 +P99 TPOT (ms): 10.12 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 10.01 +Median ITL (ms): 10.02 +P95 ITL (ms): 10.29 +P99 ITL (ms): 10.44 +Max ITL (ms): 14.11 +================================================== +``` +##### 5.1.2.2 Medium Concurrency +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.5 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 50.12 +Total input tokens: 300020 +Total input text tokens: 300020 +Total generated tokens: 41669 +Total generated tokens (retokenized): 41662 +Request throughput (req/s): 1.60 +Input token throughput (tok/s): 5986.00 +Output token throughput (tok/s): 831.38 +Peak output token throughput (tok/s): 1152.00 +Peak concurrent requests: 20 +Total token throughput (tok/s): 6817.38 +Concurrency: 13.93 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 8727.66 +Median E2E Latency (ms): 9170.52 +P90 E2E Latency (ms): 14220.00 +P99 E2E Latency (ms): 16896.54 +---------------Time to First Token---------------- +Mean TTFT (ms): 282.56 +Median TTFT (ms): 149.37 +P99 TTFT (ms): 1278.62 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 16.60 +Median TPOT (ms): 16.61 +P99 TPOT (ms): 25.17 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 16.24 +Median ITL (ms): 13.89 +P95 ITL (ms): 15.96 +P99 ITL (ms): 105.79 +Max ITL (ms): 1065.02 +================================================== +``` +##### 5.1.2.3 High Concurrency +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.5 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 93.92 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total generated tokens: 170000 +Total generated tokens (retokenized): 169999 +Request throughput (req/s): 3.41 +Input token throughput (tok/s): 13563.30 +Output token throughput (tok/s): 1810.01 +Peak output token throughput (tok/s): 2881.00 +Peak concurrent requests: 71 +Total token throughput (tok/s): 15373.31 +Concurrency: 58.87 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 17277.69 +Median E2E Latency (ms): 16827.33 +P90 E2E Latency (ms): 29045.40 +P99 E2E Latency (ms): 33496.77 +---------------Time to First Token---------------- +Mean TTFT (ms): 692.26 +Median TTFT (ms): 188.46 +P99 TTFT (ms): 4932.70 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 32.19 +Median TPOT (ms): 32.69 +P99 TPOT (ms): 50.46 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 31.28 +Median ITL (ms): 21.59 +P95 ITL (ms): 101.35 +P99 ITL (ms): 136.74 +Max ITL (ms): 4649.23 +================================================== +``` + +#### 5.1.3 H100 Benchmark + +**Test Environment**: + +- Hardware: NVIDIA H100 80GB HBM3 GPU (8x) +- Model: MiniMax-M2.5 +- Tensor Parallelism: 8 +- Expert Parallelism: 8 +- sglang version: 0.5.9 + +- Model Deployment Command: +```shell Command +sglang serve \ + --model-path MiniMaxAI/MiniMax-M2.5 \ + --tp 8 \ + --ep 8 \ + --reasoning-parser minimax-append-think \ + --trust-remote-code \ + --mem-fraction-static 0.85 \ + --tool-call-parser minimax-m2 +``` +##### 5.1.3.1 Low Concurrency +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 35.44 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.28 +Input token throughput (tok/s): 172.16 +Output token throughput (tok/s): 119.08 +Peak output token throughput (tok/s): 127.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 291.24 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3542.38 +Median E2E Latency (ms): 2791.92 +P90 E2E Latency (ms): 6317.77 +P99 E2E Latency (ms): 7780.15 +---------------Time to First Token---------------- +Mean TTFT (ms): 145.20 +Median TTFT (ms): 80.38 +P99 TTFT (ms): 633.08 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 8.05 +Median TPOT (ms): 8.08 +P99 TPOT (ms): 8.09 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 8.07 +Median ITL (ms): 8.08 +P95 ITL (ms): 8.12 +P99 ITL (ms): 8.16 +Max ITL (ms): 10.10 +================================================== +``` +##### 5.1.3.2 Medium Concurrency +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 43.68 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40805 +Request throughput (req/s): 1.83 +Input token throughput (tok/s): 908.19 +Output token throughput (tok/s): 934.22 +Peak output token throughput (tok/s): 1184.00 +Peak concurrent requests: 20 +Total token throughput (tok/s): 1842.42 +Concurrency: 13.83 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 7551.91 +Median E2E Latency (ms): 8094.28 +P90 E2E Latency (ms): 12606.99 +P99 E2E Latency (ms): 14977.84 +---------------Time to First Token---------------- +Mean TTFT (ms): 116.86 +Median TTFT (ms): 82.33 +P99 TTFT (ms): 240.59 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 14.81 +Median TPOT (ms): 14.98 +P99 TPOT (ms): 17.98 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 14.61 +Median ITL (ms): 13.50 +P95 ITL (ms): 14.15 +P99 ITL (ms): 66.52 +Max ITL (ms): 107.39 +================================================== +``` +##### 5.1.3.3 High Concurrency +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 80.63 +Total input tokens: 249831 +Total input text tokens: 249831 +Total generated tokens: 252662 +Total generated tokens (retokenized): 252331 +Request throughput (req/s): 6.20 +Input token throughput (tok/s): 3098.45 +Output token throughput (tok/s): 3133.56 +Peak output token throughput (tok/s): 4800.00 +Peak concurrent requests: 113 +Total token throughput (tok/s): 6232.01 +Concurrency: 90.56 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 14604.59 +Median E2E Latency (ms): 14044.04 +P90 E2E Latency (ms): 26456.53 +P99 E2E Latency (ms): 30136.68 +---------------Time to First Token---------------- +Mean TTFT (ms): 149.32 +Median TTFT (ms): 95.16 +P99 TTFT (ms): 374.62 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 28.92 +Median TPOT (ms): 30.09 +P99 TPOT (ms): 34.31 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 28.66 +Median ITL (ms): 21.52 +P95 ITL (ms): 66.90 +P99 ITL (ms): 96.76 +Max ITL (ms): 376.34 +================================================== +``` + +### 5.2 Accuracy Benchmark +#### 5.2.1 GSM8K Benchmark +- Benchmark Command: +```shell Command +python benchmark/gsm8k/bench_sglang.py --port 30000 +``` +- Test Results: +```text Output +Accuracy: 0.950 +Invalid: 0.000 +Latency: 18.033 s +Output throughput: 1130.161 token/s +``` +#### 5.2.2 MMLU Benchmark +- Benchmark Command: +```shell Command +cd benchmark/mmlu +bash download_data.sh +python3 bench_sglang.py --port 30000 +``` +- Test Results: +```text Output +subject: abstract_algebra, #q:100, acc: 0.620 +subject: anatomy, #q:135, acc: 0.830 +subject: astronomy, #q:152, acc: 0.928 +subject: business_ethics, #q:100, acc: 0.810 +subject: clinical_knowledge, #q:265, acc: 0.891 +subject: college_biology, #q:144, acc: 0.951 +subject: college_chemistry, #q:100, acc: 0.670 +subject: college_computer_science, #q:100, acc: 0.820 +subject: college_mathematics, #q:100, acc: 0.660 +subject: college_medicine, #q:173, acc: 0.832 +subject: college_physics, #q:102, acc: 0.814 +subject: computer_security, #q:100, acc: 0.880 +subject: conceptual_physics, #q:235, acc: 0.915 +subject: econometrics, #q:114, acc: 0.719 +subject: electrical_engineering, #q:145, acc: 0.834 +subject: elementary_mathematics, #q:378, acc: 0.902 +subject: formal_logic, #q:126, acc: 0.698 +subject: global_facts, #q:100, acc: 0.710 +subject: high_school_biology, #q:310, acc: 0.926 +subject: high_school_chemistry, #q:203, acc: 0.793 +subject: high_school_computer_science, #q:100, acc: 0.910 +subject: high_school_european_history, #q:165, acc: 0.879 +subject: high_school_geography, #q:198, acc: 0.955 +subject: high_school_government_and_politics, #q:193, acc: 0.964 +subject: high_school_macroeconomics, #q:390, acc: 0.908 +subject: high_school_mathematics, #q:270, acc: 0.600 +subject: high_school_microeconomics, #q:238, acc: 0.954 +subject: high_school_physics, #q:151, acc: 0.781 +subject: high_school_psychology, #q:545, acc: 0.956 +subject: high_school_statistics, #q:216, acc: 0.847 +subject: high_school_us_history, #q:204, acc: 0.922 +subject: high_school_world_history, #q:237, acc: 0.916 +subject: human_aging, #q:223, acc: 0.839 +subject: human_sexuality, #q:131, acc: 0.893 +subject: international_law, #q:121, acc: 0.934 +subject: jurisprudence, #q:108, acc: 0.861 +subject: logical_fallacies, #q:163, acc: 0.890 +subject: machine_learning, #q:112, acc: 0.750 +subject: management, #q:103, acc: 0.883 +subject: marketing, #q:234, acc: 0.944 +subject: medical_genetics, #q:100, acc: 0.920 +subject: miscellaneous, #q:783, acc: 0.936 +subject: moral_disputes, #q:346, acc: 0.829 +subject: moral_scenarios, #q:895, acc: 0.632 +subject: nutrition, #q:306, acc: 0.863 +subject: philosophy, #q:311, acc: 0.833 +subject: prehistory, #q:324, acc: 0.907 +subject: professional_accounting, #q:282, acc: 0.720 +subject: professional_law, #q:1534, acc: 0.640 +subject: professional_medicine, #q:272, acc: 0.923 +subject: professional_psychology, #q:612, acc: 0.871 +subject: public_relations, #q:110, acc: 0.773 +subject: security_studies, #q:245, acc: 0.845 +subject: sociology, #q:201, acc: 0.930 +subject: us_foreign_policy, #q:100, acc: 0.940 +subject: virology, #q:166, acc: 0.614 +subject: world_religions, #q:171, acc: 0.895 +Total latency: 81.468 +Average accuracy: 0.825 +``` diff --git a/docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.7.mdx b/docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.7.mdx new file mode 100644 index 000000000..46dc5d044 --- /dev/null +++ b/docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.7.mdx @@ -0,0 +1,723 @@ +--- +title: MiniMax-M2.7 +metatags: + description: "Deploy MiniMax-M2.7 with SGLang on NVIDIA and AMD GPUs — model self-evolution, professional software engineering, and native agent teams." +tag: NEW +--- + +## 1. Model Introduction + +[MiniMax-M2.7](https://huggingface.co/MiniMaxAI/MiniMax-M2.7) is MiniMax's first model deeply participating in its own evolution. Built for real-world productivity, M2.7 excels at building complex agent harnesses and completing highly elaborate productivity tasks, leveraging Agent Teams, complex Skills, and dynamic tool search. + +Key highlights: + +- **Model Self-Evolution**: During development, M2.7 updates its own memory, builds complex skills for RL experiments, and improves its own learning process. An internal version autonomously optimized a programming scaffold over 100+ rounds, achieving a **30% performance improvement**. On MLE Bench Lite, M2.7 achieved a **66.6% medal rate**. +- **Professional Software Engineering**: Delivers outstanding real-world programming capabilities. On SWE-Pro, M2.7 achieved **56.22%**, with strong results on SWE Multilingual (76.5) and Multi SWE Bench (52.7). On Terminal Bench 2 (57.0%) and NL2Repo (39.8%), M2.7 demonstrates deep understanding of complex engineering systems. +- **Professional Work**: Achieved an ELO score of **1495** on GDPval-AA (highest among open-source models). On Toolathon, M2.7 reached **46.3%** accuracy (global top tier). +- **Native Agent Teams**: Supports multi-agent collaboration with stable role identity and autonomous decision-making. + +For more details, see the [official MiniMax-M2.7 blog post](https://www.minimax.io/news/minimax-m27-en). + +**License**: [Modified-MIT (MiniMax Model License)](https://github.com/MiniMax-AI/MiniMax-M2.7/blob/main/LICENSE) + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +**Docker Images by Hardware Platform:** + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Hardware PlatformDocker Image
      NVIDIA A100 / H100 / H200 / B200`lmsysorg/sglang:v0.5.10.post1`
      NVIDIA B300 / GB300`lmsysorg/sglang:v0.5.10.post1-cu130`
      AMD MI300X / MI325X`lmsysorg/sglang:v0.5.10.post1-rocm720-mi30x`
      AMD MI355X`lmsysorg/sglang:v0.5.10.post1-rocm720-mi35x`
      + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, deployment strategy, and feature capabilities. + +import { MiniMaxM27Deployment } from '/src/snippets/autoregressive/minimax-m27-deployment.jsx' + + + +### 3.2 Configuration Tips + +**Key Parameters:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDescriptionRecommended Value
      `--tool-call-parser`Tool call parser for function calling support`minimax-m2`
      `--reasoning-parser`Reasoning parser for thinking mode`minimax-append-think`
      `--trust-remote-code`Required for MiniMax model loadingAlways enabled
      `--mem-fraction-static`Static memory fraction for KV cache`0.85`
      `--tp`Tensor parallelism size`2` / `4` / `8` depending on hardware
      `--ep`Expert parallelism size`8` (NVIDIA 8-GPU) or EP=TP (AMD)
      `--kv-cache-dtype`KV cache data type (AMD only)`fp8_e4m3`
      `--attention-backend`Attention backend (AMD only)`triton`
      + +**Hardware Requirements: NVIDIA** + +- **4-GPU deployment**: Requires 4× high-memory GPUs (e.g., H200, B200, A100, H100) with TP=4 +- **8-GPU deployment**: Requires 8× GPUs (e.g., H200, B200, A100, H100) with TP=8 and EP=8 + +**Hardware Requirements: NVIDIA GB300** + +- **2-GPU deployment**: GB300 (275GB per die) can host the model with TP=2 +- **4-GPU deployment**: Maximum single-node TP for GB300, recommended for higher throughput + +**Hardware Requirements: AMD** + +- **2-GPU deployment**: Requires 2× high-memory GPUs (e.g., MI300X, MI325X, MI355X) with TP=2, EP=2 +- **4-GPU deployment**: Requires 4× GPUs (e.g., MI300X, MI325X, MI355X) with TP=4, EP=4 +- **8-GPU deployment**: Requires 8× GPUs (e.g., MI300X, MI325X, MI355X) with TP=8, EP=8 + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +**Deployment Command:** + +```bash Command +sglang serve \ + --model-path MiniMaxAI/MiniMax-M2.7 \ + --tp 4 \ + --tool-call-parser minimax-m2 \ + --reasoning-parser minimax-append-think \ + --trust-remote-code \ + --mem-fraction-static 0.85 +``` + +**Testing Deployment:** + +After startup, you can test the SGLang OpenAI-compatible API with the following command: + +```bash Command +curl http://localhost:30000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "MiniMaxAI/MiniMax-M2.7", + "messages": [ + {"role": "system", "content": [{"type": "text", "text": "You are a helpful assistant."}]}, + {"role": "user", "content": [{"type": "text", "text": "Who won the world series in 2020?"}]} + ] + }' +``` + +**Simple Completion Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2.7", + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Who won the world series in 2020?"} + ], + max_tokens=1024 +) + +print(response.choices[0].message.content) +``` + +**Example Output**: +```text Output +The user asks: "Who won the World Series in 2020?" That's a simple factual question. The answer: the Los Angeles Dodgers won the 2020 MLB World Series, defeating the Tampa Bay Rays. So answer accordingly. + +We must be mindful of policy: it's a factual question about sports. It's allowed. Provide answer with brief context. + +We should answer concisely. + +Hence final answer: The Los Angeles Dodgers won the 2020 World Series, defeating the Tampa Bay Rays in six games (best-of-seven series). Possibly mention it was played at a neutral site due to COVID-19, at Globe Life Field in Arlington, Texas. + +We must avoid disallowed content, no issue. + +Thus final. + + +The **Los Angeles Dodgers** won the 2020 World Series. They defeated the **Tampa Bay Rays** in six games (4‑2) in a best‑of‑seven series that was played at Globe Life Field in Arlington, Texas, under the MLB bubble‑like arrangements for the COVID‑19 pandemic. +``` + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +MiniMax-M2.7 supports Thinking mode. Enable the reasoning parser during deployment to separate the thinking and the content sections: + +```bash Command +sglang serve \ + --model-path MiniMaxAI/MiniMax-M2.7 \ + --tp 4 \ + --reasoning-parser minimax-append-think \ + --trust-remote-code \ + --mem-fraction-static 0.85 +``` + +**Streaming with Thinking Process** + +With `minimax-append-think`, the thinking content is wrapped in `...` tags within the `content` field. You can parse these tags on the client side to separate the thinking and content sections: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2.7", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + max_tokens=2048, + stream=True +) + +# Process the stream, separating ... from content +in_think = False +think_printed_header = False +content_printed_header = False +buffer = "" + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + if delta.content: + buffer += delta.content + + while buffer: + if in_think: + # Look for closing
      tag + end_idx = buffer.find("
      ") + if end_idx != -1: + print(buffer[:end_idx], end="", flush=True) + buffer = buffer[end_idx + len("
      "):] + in_think = False + else: + # Still in thinking, print what we have + print(buffer, end="", flush=True) + buffer = "" + else: + # Look for opening tag + start_idx = buffer.find("") + if start_idx != -1: + # Print any content before + before = buffer[:start_idx] + if before: + if not content_printed_header: + print("=============== Content =================", flush=True) + content_printed_header = True + print(before, end="", flush=True) + buffer = buffer[start_idx + len(""):] + in_think = True + if not think_printed_header: + print("=============== Thinking =================", flush=True) + think_printed_header = True + else: + # No tag, print as content + if not content_printed_header and think_printed_header: + print("\n=============== Content =================", flush=True) + content_printed_header = True + print(buffer, end="", flush=True) + buffer = "" + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user asks: "Solve this problem step by step: What is 15% of 240?" Straightforward. Provide solution: 15% = 15/100 = 0.15. Multiply 240 * 0.15 = 36. Show steps. So answer: 36. Provide explanation. + +But also ensure we follow any policy? No issues. Just straightforward. + +I'll provide a step-by-step solution. + +Also could show fraction: 15% = 15/100 = 3/20, multiply 240 * 3/20 = (240/20)*3 = 12*3 = 36. + +Yes. Provide final answer. Also show verification: 10% of 240 is 24, 5% is 12, total 36. + +All good. + +=============== Content ================= + +**Step‑by‑step solution** + +1. **Convert the percent to a decimal (or a fraction).** + + 15% = 15/100 = 0.15 = 3/20 + +2. **Multiply the original number (240) by this decimal/fraction.** + + Using the decimal: + 240 × 0.15 = 36 + + Or using the fraction: + 240 × 3/20 = (240/20) × 3 = 12 × 3 = 36 + +3. **Result:** + + 15% of 240 = **36** + +*Check:* +- 10% of 240 = 24 +- 5% of 240 = 12 +- Adding them: 24 + 12 = 36, which matches the calculation. +``` + +**Note:** The `minimax-append-think` reasoning parser embeds the thinking process in `...` tags within the `content` field. The code above parses these tags in real-time to display thinking and content separately. + +#### 4.2.2 Tool Calling + +MiniMax-M2.7 supports tool calling capabilities. Enable the tool call parser: + +```bash Command +sglang serve \ + --model-path MiniMaxAI/MiniMax-M2.7 \ + --tp 4 \ + --tool-call-parser minimax-m2 \ + --reasoning-parser minimax-append-think \ + --trust-remote-code \ + --mem-fraction-static 0.85 +``` + +**Python Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Non-streaming request +response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2.7", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools +) + +message = response.choices[0].message + +# Check for tool calls +if message.tool_calls: + for tool_call in message.tool_calls: + print(f"Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") +else: + print(message.content) +``` + +**Output Example**: +```text Output +Tool Call: get_weather + Arguments: {"location": "Beijing"} +``` + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2.7", + messages=messages +) + +print(final_response.choices[0].message.content) +``` + +**Output Example:** +```text Output +The weather in Beijing is currently 22°C and sunny. +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +**Test Environment**: + +- Hardware: 2× NVIDIA GB300 (275GB per die) +- Docker Image: `lmsysorg/sglang:v0.5.10.post1-cu130` +- Model: MiniMax-M2.7 (FP8) +- Tensor Parallelism: 2 +- SGLang version: 0.5.10.post1 + +### 5.1 Accuracy Benchmark + +**Evaluation Tool**: [NVIDIA NeMo-Skills](https://github.com/NVIDIA-NeMo/Skills) + +**Evaluation Settings**: temperature=0.6, top_p=0.95, 8 seeds, max_tokens=120,000, `parse_reasoning=True` + +#### 5.1.1 GPQA Diamond + +- Dataset: [GPQA Diamond](https://huggingface.co/datasets/Idavidrein/gpqa) (198 questions) +- Prompt: `eval/aai/mcq-4choices` (4-choice multiple choice, matching [Artificial Analysis methodology](https://artificialanalysis.ai/methodology/intelligence-benchmarking)) +- Evaluation command: +```bash Command +ns prepare_data gpqa + +ns eval \ + --cluster=local \ + --server_type=openai \ + --model=MiniMaxAI/MiniMax-M2.7 \ + --server_address=http://localhost:30000/v1 \ + --output_dir=./m2.7-eval/ \ + --benchmarks=gpqa:8 \ + ++prompt_config=eval/aai/mcq-4choices \ + ++inference.tokens_to_generate=120000 \ + ++inference.temperature=0.6 \ + ++inference.top_p=0.95 \ + ++parse_reasoning=True +``` +- Test Results: + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Evaluation ModeAccuracyNo Answer
      pass@1 (avg-of-8)84.91%3.54%
      **majority@8****88.89%**0.00%
      pass@896.46%0.00%
      + +#### 5.1.2 AIME 2025 + +- Dataset: AIME 2025 (30 problems) +- Prompt: `generic/math` (boxed answer format) +- Evaluation command: +```bash Command +ns prepare_data aime25 + +ns eval \ + --cluster=local \ + --server_type=openai \ + --model=MiniMaxAI/MiniMax-M2.7 \ + --server_address=http://localhost:30000/v1 \ + --output_dir=./m2.7-eval/ \ + --benchmarks=aime25:8 \ + ++inference.tokens_to_generate=120000 \ + ++inference.temperature=0.6 \ + ++inference.top_p=0.95 \ + ++parse_reasoning=True +``` +- Test Results: + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Evaluation ModeAccuracyNo Answer
      pass@1 (avg-of-8)92.50% ± 5.56%2.92%
      **majority@8****97.08%**0.00%
      pass@8100.00%0.00%
      + +#### 5.1.3 MMLU-Pro + +- Dataset: [MMLU-Pro](https://huggingface.co/datasets/TIGER-Lab/MMLU-Pro) (12,032 questions, 10-choice) +- Prompt: `eval/aai/mcq-10choices` (10-choice multiple choice) +- Evaluation command: +```bash Command +ns prepare_data mmlu-pro + +ns eval \ + --cluster=local \ + --server_type=openai \ + --model=MiniMaxAI/MiniMax-M2.7 \ + --server_address=http://localhost:30000/v1 \ + --output_dir=./m2.7-eval/ \ + --benchmarks=mmlu-pro \ + ++prompt_config=eval/aai/mcq-10choices \ + ++inference.tokens_to_generate=32768 \ + ++inference.temperature=0.0 \ + ++parse_reasoning=True +``` +- Test Results: + + + + + + + + + + + + + + + + +
      Evaluation ModeAccuracyNo Answer
      pass@1 (greedy)69.41%18.75%
      + +> **Note**: The high no-answer rate is due to the 32K token limit being insufficient for M2.7's extended thinking on some questions. A rerun with 120K tokens is expected to improve accuracy significantly. + +#### 5.1.4 GSM8K Benchmark +- Benchmark Method: 8-shot Chain-of-Thought, evaluated via OpenAI-compatible API +- Test Results: +```text Output +GSM8K Results (8-shot CoT) +Model: MiniMaxAI/MiniMax-M2.7 +Total: 1319 +Correct: 1218 +Accuracy: 92.34% +``` + +### 5.2 Speed Benchmark + +#### 5.2.1 Low Concurrency + +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.7 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 34.33 +Total input tokens: 6101 +Total generated tokens: 4220 +Request throughput (req/s): 0.29 +Input token throughput (tok/s): 177.71 +Output token throughput (tok/s): 122.92 +Total token throughput (tok/s): 300.63 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3431.21 +Median E2E Latency (ms): 2742.57 +---------------Time to First Token---------------- +Mean TTFT (ms): 50.28 +Median TTFT (ms): 53.85 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 8.02 +Median TPOT (ms): 8.01 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 8.03 +Median ITL (ms): 8.02 +================================================== +``` + +#### 5.2.2 High Concurrency + +- Benchmark Command: +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2.7 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 100.20 +Total input tokens: 249831 +Total generated tokens: 252662 +Request throughput (req/s): 4.99 +Input token throughput (tok/s): 2493.41 +Output token throughput (tok/s): 2521.66 +Total token throughput (tok/s): 5015.07 +Concurrency: 90.19 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 18072.69 +Median E2E Latency (ms): 17761.84 +---------------Time to First Token---------------- +Mean TTFT (ms): 247.94 +Median TTFT (ms): 92.05 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 35.75 +Median TPOT (ms): 36.67 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 35.34 +Median ITL (ms): 30.55 +================================================== +``` diff --git a/docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.mdx b/docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.mdx new file mode 100644 index 000000000..4d5e8d00c --- /dev/null +++ b/docs_new/cookbook/autoregressive/MiniMax/MiniMax-M2.mdx @@ -0,0 +1,541 @@ +--- +title: MiniMax-M2 +metatags: + description: "Deploy MiniMax-M2 with SGLang - community contribution guide for MiniMax M2 model deployment." +--- + +import { MiniMaxM2Deployment } from '/src/snippets/autoregressive/minimax-m2-deployment.jsx'; + +## 1. Model Introduction + +[MiniMax-M2](https://huggingface.co/MiniMaxAI/MiniMax-M2) is a compact, fast, and cost-effective MoE model (230 billion total parameters with 10 billion active parameters) built for elite performance in coding and agentic tasks, all while maintaining powerful general intelligence. + +This generation delivers comprehensive upgrades across the board: + +- **Superior Intelligence**: MiniMax-M2 demonstrates highly competitive general intelligence across mathematics, science, instruction following, coding, and agentic tool use in [Artificial Analysis](https://artificialanalysis.ai/). Its composite score ranks #1 among open-source models globally. + +- **Advanced Coding**: Engineered for end-to-end developer workflows, MiniMax-M2 excels at multi-file edits, coding-run-fix loops, and test-validated repairs. Strong performance on Terminal-Bench and (Multi-)SWE-Bench–style tasks demonstrates practical effectiveness in terminals, IDEs, and CI across languages. + +- **Agent Performance**: MiniMax-M2 plans and executes complex, long-horizon toolchains across shell, browser, retrieval, and code runners. In BrowseComp-style evaluations, it consistently locates hard-to-surface sources, maintains evidence traceable, and gracefully recovers from flaky steps. + +- **Efficient Design**: With 10 billion activated parameters (230 billion in total), MiniMax-M2 delivers lower latency, lower cost, and higher throughput for interactive agents and batched sampling—perfectly aligned with the shift toward highly deployable models that still shine on coding and agentic tasks. + +For more details, please refer to the [official Minimax GitHub Repository](https://github.com/MiniMax-AI). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. The AMD environment is currently available in SGLang via Docker image install. + +### 2.1 AMD Docker +#### 2.1.1 Launch docker +```shell Command +docker pull lmsysorg/sglang:v0.5.9-rocm720-mi30x +``` +```shell Command +docker run -d -it --ipc=host --network=host --privileged \ + --cap-add=CAP_SYS_ADMIN \ + --device=/dev/kfd --device=/dev/dri --device=/dev/mem \ + --group-add video --cap-add=SYS_PTRACE \ + --security-opt seccomp=unconfined \ + -v /:/work \ + -e SHELL=/bin/bash \ + --name Minimax \ + lmsysorg/sglang:v0.5.9-rocm720-mi30x \ + /bin/bash +``` + +#### 2.1.2 Make modifications inside the docker + +```shell Command +mv /sgl-workspace/sglang/python/sglang/srt/models/transformers.py \ + /sgl-workspace/sglang/python/sglang/srt/models/hf_transformers_model.py +``` + +#### 2.1.3 Fix torch compile +Comment out the following line: @torch.compile(dynamic=True, backend=get_compiler_backend()) in /sgl-workspace/sglang/python/sglang/srt/models/minimax_m2.py +```shell Command +#@torch.compile(dynamic=True, backend=get_compiler_backend()) +``` + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance optimization, suitable for users at different levels. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model variant, deployment strategy, and thinking capabilities. + + + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser +Server Command: +```shell Command + sglang serve \ + --model-path MiniMaxAI/MiniMax-M2 \ + --tp-size 4 \ + --reasoning-parser minimax-append-think \ + --trust-remote-code \ + --mem-fraction-static 0.85 +``` +Test Code: +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.6, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` +Output Example: +```text Output +First, the user asks: "What is 15% of 240?" This is a straightforward percentage calculation. I need to solve it step by step as per the instruction. + +The problem is: What is 15% of 240? + +To find a percentage of a number, I multiply the number by the percentage divided by 100. So, 15% is 15/100, which simplifies to 0.15. + +Therefore, 15% of 240 is 240 times 0.15. + +Let me calculate that: 240 × 0.15. + +I can break it down: 240 × 0.15 = 240 × (15/100) = (240 × 15) / 100. + +Now, 240 × 15. 200 × 15 = 3000, and 40 × 15 = 600, so total 3000 + 600 = 3600. + +Then, divide by 100: 3600 / 100 = 36. + +So, 15% of 240 is 36. + +I should confirm this with another method. For example, 10% of 240 is 24, and 5% is half of that, which is 12. Then 15% is 10% + 5% = 24 + 12 = 36. Same answer. + +Or, using fractions: 15% = 3/20, so 240 × 3/20 = (240 / 20) × 3 = 12 × 3 = 36. + +All methods confirm it's 36. + +The user said "solve this problem step by step," so I should present the steps clearly. + +Step 1: Understand that "15% of 240" means 15 per hundred of 240. + +Step 2: Convert percentage to decimal: 15% = 15/100 = 0.15. + +Step 3: Multiply the number by the decimal: 240 × 0.15. + +Step 4: Calculate the multiplication: 240 × 0.15 = 36. + +Step 5: Therefore, 15% of 240 is 36. + +I should also mention that percentage means per hundred, so it's straightforward. + +Finally, I need to box the answer as per the instruction. + +So, the final answer is 36. + + +To find 15% of 240, follow these steps: + +1. **Understand the percentage**: "15%" means 15 per hundred, or 15/100. +2. **Convert to a decimal**: 15/100 = 0.15. +3. **Multiply by the number**: 240 × 0.15. +4. **Calculate the result**: + - 240 × 0.15 = 36. + +Alternatively, you can break it down: +- 10% of 240 is 24 (since 240 ÷ 10 = 24). +- 5% of 240 is half of 10%, which is 12. +- Therefore, 15% is 10% + 5% = 24 + 12 = 36. + +Both methods confirm the result. + +**Answer**: 36 +``` + +### 4.2.2 Tool Calling + +Server Command: +```shell Command +sglang serve \ + --model-path MiniMaxAI/MiniMax-M2 \ + --tp-size 4 \ + --tool-call-parser minimax-m2 \ + --trust-remote-code \ + --mem-fraction-static 0.85 +``` +Test Code: +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="MiniMaxAI/MiniMax-M2", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"🔧 Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` +Output Example: +```text Output +Alright, the user is asking about the weather in Beijing. This is a straightforward request that I can help with using the get_weather tool that's available to me. + +Let me think about what I need to do here. The user wants to know the current weather conditions in Beijing, which is the capital city of China. To provide this information, I need to use the get_weather tool that's been provided to me. + +Looking at the tool's parameters, I can see it requires: +1. location - which is required and should be a string representing the city name +2. unit - which is optional and can be either "celsius" or "fahrenheit" + +For the location parameter, I'll use "Beijing" since that's what the user asked about. + +For the unit parameter, the user didn't specify their preference between celsius and fahrenheit. Since Beijing is in China, which primarily uses celsius, and celsius is the more standard unit internationally, I'll default to celsius. If the user wants the temperature in fahrenheit instead, they can ask in a follow-up message and I can provide that information. + +So I need to make a tool call to get_weather with the following parameters: +- location: "Beijing" +- unit: "celsius" + +This should return the current weather information for Beijing, which I can then share with the user. I'll format my response using the required XML tags for tool calls as specified in my instructions. +
      + +🔧 Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +## 5. Benchmark +### 5.1 Speed Benchmark +**Test Environment**: + +- Hardware: AMD MI300X GPU(4x) + +- Model: MiniMax-M2 + +- Tensor Parallelism: 4 + +- sglang version: 0.5.7 + +**Model Deployment**: + +```bash Command +sglang serve \ + --model-path MiniMaxAI/MiniMax-M2 \ + --tp-size 4 \ + --trust-remote-code \ + --mem-fraction-static 0.85 +``` + +### 5.1.1 Low Concurrency (Latency-Optimized) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf + +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 138.91 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.07 +Input token throughput (tok/s): 43.92 +Output token throughput (tok/s): 30.38 +Peak output token throughput (tok/s): 46.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 74.30 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 13887.62 +Median E2E Latency (ms): 10377.26 +---------------Time to First Token---------------- +Mean TTFT (ms): 4528.94 +Median TTFT (ms): 385.23 +P99 TTFT (ms): 38338.51 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 22.21 +Median TPOT (ms): 22.24 +P99 TPOT (ms): 22.25 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 22.23 +Median ITL (ms): 22.24 +P95 ITL (ms): 22.35 +P99 ITL (ms): 22.41 +Max ITL (ms): 23.64 +================================================== +``` + +### 5.1.2 Medium Concurrency (Balanced) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf + +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 81.07 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40803 +Request throughput (req/s): 0.99 +Input token throughput (tok/s): 489.29 +Output token throughput (tok/s): 503.32 +Peak output token throughput (tok/s): 704.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 992.61 +Concurrency: 13.74 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 13925.95 +Median E2E Latency (ms): 14348.75 +---------------Time to First Token---------------- +Mean TTFT (ms): 532.32 +Median TTFT (ms): 147.69 +P99 TTFT (ms): 1978.48 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 27.49 +Median TPOT (ms): 26.56 +P99 TPOT (ms): 46.52 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 26.31 +Median ITL (ms): 23.47 +P95 ITL (ms): 24.37 +P99 ITL (ms): 125.10 +Max ITL (ms): 1192.51 +================================================== +``` + +### 5.1.3 High Concurrency (Throughput-Optimized) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model MiniMaxAI/MiniMax-M2 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 153.71 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 250982 +Request throughput (req/s): 3.25 +Input token throughput (tok/s): 1625.33 +Output token throughput (tok/s): 1643.75 +Peak output token throughput (tok/s): 2597.00 +Peak concurrent requests: 107 +Total token throughput (tok/s): 3269.09 +Concurrency: 91.14 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 28017.24 +Median E2E Latency (ms): 26865.28 +---------------Time to First Token---------------- +Mean TTFT (ms): 387.41 +Median TTFT (ms): 183.90 +P99 TTFT (ms): 1192.44 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 55.23 +Median TPOT (ms): 57.84 +P99 TPOT (ms): 70.23 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 54.79 +Median ITL (ms): 39.01 +P95 ITL (ms): 143.10 +P99 ITL (ms): 150.46 +Max ITL (ms): 986.14 +================================================== +``` + +### 5.2 Accuracy Benchmark +#### 5.2.1 GSM8K Benchmark + +- **Server Command**: +```shell Command +sglang serve \ + --model-path MiniMaxAI/MiniMax-M2 \ + --tp-size 4 \ + --trust-remote-code \ + --mem-fraction-static 0.85 +``` + +- **Benchmark Command**: +```shell Command + python3 -m sglang.test.few_shot_gsm8k --num-questions 200 +``` +- **Result**: + - MiniMax-M2 +```text Output + Accuracy: 0.950 + Invalid: 0.000 + Latency: 15.120 s + Output throughput: 1306.711 token/s +``` diff --git a/docs_new/cookbook/autoregressive/Mistral/Devstral-2.mdx b/docs_new/cookbook/autoregressive/Mistral/Devstral-2.mdx new file mode 100644 index 000000000..c8c525fb0 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Mistral/Devstral-2.mdx @@ -0,0 +1,518 @@ +--- +title: Devstral 2 (Mistral) +metatags: + description: "Deploy Devstral 2 agentic coding models with SGLang - optimized for tool use, codebase exploration, and multi-file edits with 256K context." +--- + +## 1. Model Introduction + +**Devstral 2** is an agentic LLM family for software engineering tasks. It is designed for agentic workflows such as tool use, codebase exploration, and multi-file edits, and achieves strong performance on **SWE-bench**. + +The **Devstral 2 Instruct** checkpoints are instruction-tuned **FP8** models, making them a good fit for chat, tool-using agents, and instruction-following SWE workloads. + +**Key Features:** + +- **Agentic coding**: Optimized for tool-driven coding and software engineering agents +- **Improved performance**: A step up compared to earlier Devstral models +- **Better generalization**: More robust across diverse prompts and coding environments +- **Long context**: Up to a **256K** context window + +**Use Cases:** +AI code assistants, agentic coding, and software engineering tasks that require deep codebase understanding and tool integration. + +For enterprises requiring specialized capabilities (increased context, domain-specific knowledge, etc.), please reach out to Mistral. + +**Models:** + +- **Collection**: [mistralai/devstral-2 (Hugging Face)](https://huggingface.co/collections/mistralai/devstral-2) +- **FP8 Instruct**: + - **[mistralai/Devstral-2-123B-Instruct-2512](https://huggingface.co/mistralai/Devstral-2-123B-Instruct-2512)** + - **[mistralai/Devstral-Small-2-24B-Instruct-2512](https://huggingface.co/mistralai/Devstral-Small-2-24B-Instruct-2512)** + +--- + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + + +Devstral 2 requires a recent `transformers`. Please verify `transformers >= 5.0.0.rc`: + +```shell Command +python -c "import transformers; print(transformers.__version__)" +``` + +If your version is lower, upgrade: + +```shell Command +pip install -U --pre "transformers>=5.0.0rc0" +``` + + +--- + +## 3. Model Deployment + +### 3.1 Basic configuration + +**Interactive Command Generator**: Use the configuration selector below to generate a launch command for Devstral Small 2 (24B) or Devstral 2 (123B). + + +The TP size is set to the minimum required for the selected model size. + + + +import { Devstral2Deployment } from "/src/snippets/autoregressive/devstral-2-deployment.jsx"; + + + +### 3.2 Configuration tips + +- **Context length vs memory**: Devstral 2 advertises a long context window; if you are memory-constrained, start by lowering `--context-length` (for example `32768`) and increase once things are stable. +- **FP8 checkpoints**: Both Devstral Small 2 and Devstral 2 are published as **FP8** weights. If you hit kernel / dtype issues, try a newer SGLang build and recent CUDA drivers. + +--- + +## 4. Model Invocation + +### 4.1 Basic Usage (OpenAI-Compatible API) + +SGLang exposes an OpenAI-compatible endpoint. Example: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +resp = client.chat.completions.create( + model="mistralai/Devstral-Small-2-24B-Instruct-2512", + messages=[ + {"role": "system", "content": "You are a helpful coding assistant."}, + {"role": "user", "content": "Write a Python function that retries a request with exponential backoff."}, + ], + temperature=0.2, + max_tokens=512, +) + +print(resp.choices[0].message.content) +``` + +**Output Example:** + +```text Output + Here's a Python function that implements exponential backoff for retrying a request. This function uses the `requests` library to make HTTP requests and includes error handling for common HTTP and connection errors. + + ```python + import time + import requests + from requests.exceptions import RequestException + + def retry_with_exponential_backoff( + url, + max_retries=3, + initial_delay=1, + backoff_factor=2, + method="GET", + **kwargs + ): + """ + Retry a request with exponential backoff. + + Parameters: + - url: The URL to request. + - max_retries: Maximum number of retry attempts (default: 3). + - initial_delay: Initial delay in seconds (default: 1). + - backoff_factor: Multiplier for the delay between retries (default: 2). + - method: HTTP method to use (default: "GET"). + - **kwargs: Additional arguments to pass to the request function (e.g., headers, data, etc.). + + Returns: + - Response object if the request succeeds. + - Raises an exception if all retries fail. + """ + retry_count = 0 + delay = initial_delay + + while retry_count < max_retries: + try: + response = requests.request(method, url, **kwargs) + # Check if the response status code indicates success + if response.status_code < 400: + return response + else: + raise RequestException(f"HTTP {response.status_code}: {response.text}") + + except RequestException as e: + if retry_count == max_retries - 1: + raise Exception(f"All retries failed. Last error: {e}") + + print(f"Attempt {retry_count + 1} failed. Retrying in {delay} seconds...") + time.sleep(delay) +... +``` + +### 4.2 Tool calling (optional) + +Devstral 2 supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model mistralai/Devstral-2-123B-Instruct-2512 \ + --tp 2 \ + --tool-call-parser mistral +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="mistralai/Devstral-2-123B-Instruct-2512", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"🔧 Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +🔧 Tool Call: get_weather + Arguments: {"location": "Beijing"} +``` + + +## AMD GPU Support + +## 1. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + + +### 1.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 1.2 Advanced Usage + + +```shell Command +python3 -m sglang.launch_server \ + --model-path mistralai/Devstral-2-123B-Instruct-2512 \ + --tp 8 \ + --trust-remote-code \ + --port 8888 +``` + +## 2.Benchmark + +### 5.1 Benchmark Commands + +**Scenario 1: Chat (1K/1K) - Most Important** + +- **Model Deployment** + +```bash Command +python3 -m sglang.launch_server \ + --model-path mistralai/Devstral-2-123B-Instruct-2512 \ + --tp 8 \ + --trust-remote-code \ + --port 8888 +``` + +- Low Concurrency (Latency-Optimized) + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model mistralai/Devstral-2-123B-Instruct-2512 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf \ + --port 8888 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 94.30 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4206 +Request throughput (req/s): 0.11 +Input token throughput (tok/s): 64.70 +Output token throughput (tok/s): 44.75 +Peak output token throughput (tok/s): 82.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 109.44 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 9427.59 +Median E2E Latency (ms): 5637.23 +---------------Time to First Token---------------- +Mean TTFT (ms): 4253.85 +Median TTFT (ms): 116.95 +P99 TTFT (ms): 37764.48 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 12.28 +Median TPOT (ms): 12.29 +P99 TPOT (ms): 12.30 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 12.29 +Median ITL (ms): 12.29 +P95 ITL (ms): 12.38 +P99 ITL (ms): 12.42 +Max ITL (ms): 12.90 +================================================== +``` + +- Medium Concurrency (Balanced) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model mistralai/Devstral-2-123B-Instruct-2512 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf \ + --port 8888 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 52.11 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40761 +Request throughput (req/s): 1.54 +Input token throughput (tok/s): 761.31 +Output token throughput (tok/s): 783.13 +Peak output token throughput (tok/s): 1120.00 +Peak concurrent requests: 20 +Total token throughput (tok/s): 1544.44 +Concurrency: 13.60 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 8856.19 +Median E2E Latency (ms): 9314.71 +---------------Time to First Token---------------- +Mean TTFT (ms): 398.80 +Median TTFT (ms): 127.81 +P99 TTFT (ms): 1500.32 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 17.32 +Median TPOT (ms): 16.90 +P99 TPOT (ms): 32.78 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 16.61 +Median ITL (ms): 14.26 +P95 ITL (ms): 15.07 +P99 ITL (ms): 114.46 +Max ITL (ms): 1224.45 +================================================== +``` + +- High Concurrency (Throughput-Optimized) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model mistralai/Devstral-2-123B-Instruct-2512 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf \ + --port 8888 +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 116.08 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 252523 +Request throughput (req/s): 4.31 +Input token throughput (tok/s): 2152.21 +Output token throughput (tok/s): 2176.60 +Peak output token throughput (tok/s): 3600.00 +Peak concurrent requests: 107 +Total token throughput (tok/s): 4328.81 +Concurrency: 92.42 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 21456.71 +Median E2E Latency (ms): 20126.82 +---------------Time to First Token---------------- +Mean TTFT (ms): 291.60 +Median TTFT (ms): 199.24 +P99 TTFT (ms): 866.02 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 42.42 +Median TPOT (ms): 45.18 +P99 TPOT (ms): 53.32 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 41.97 +Median ITL (ms): 27.59 +P95 ITL (ms): 130.43 +P99 ITL (ms): 137.87 +Max ITL (ms): 616.73 +================================================== +``` + + + +#### 5.2 Understanding the Results + +**Key Metrics:** + +- **Request Throughput (req/s)**: Number of requests processed per second +- **Output Token Throughput (tok/s)**: Total tokens generated per second +- **Mean TTFT (ms)**: Time to First Token - measures responsiveness +- **Mean TPOT (ms)**: Time Per Output Token - measures generation speed +- **Mean ITL (ms)**: Inter-Token Latency - measures streaming consistency + +**Why These Configurations Matter:** + +- **1K/1K (Chat)**: Represents the most common conversational AI workload. This is the highest priority scenario for most deployments. +- **1K/8K (Reasoning)**: Tests long-form generation capabilities crucial for complex reasoning, code generation, and detailed explanations. +- **8K/1K (Summarization)**: Evaluates performance with large context inputs, essential for RAG systems, document Q&A, and summarization tasks. +- **Variable Concurrency**: Captures the Pareto frontier - the optimal trade-off between throughput and latency at different load levels. Low concurrency shows best-case latency, high concurrency shows maximum throughput. + +**Interpreting Results:** + +- Compare your results against baseline numbers for your hardware +- Higher throughput at same latency = better performance +- Lower TTFT = more responsive user experience +- Lower TPOT = faster generation speed + +### 5.3 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.3.1 GSM8K Benchmark + +- Benchmark Command + +```bash Command +python3 benchmark/gsm8k/bench_sglang.py \ + --num-shots 8 \ + --num-questions 1316 \ + --parallel 1316 \ + --port 8888 +``` + +**Test Results:** + +```text Output +Accuracy: 0.922 +Invalid: 0.000 +Latency: 35.800 s +Output throughput: 4507.697 token/s +``` diff --git a/docs_new/cookbook/autoregressive/Mistral/Ministral-3.mdx b/docs_new/cookbook/autoregressive/Mistral/Ministral-3.mdx new file mode 100644 index 000000000..8c858e947 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Mistral/Ministral-3.mdx @@ -0,0 +1,288 @@ +--- +title: Ministral-3 +metatags: + description: "Deploy Mistral 3 with SGLang - deployment configurations and usage patterns for Mistral's latest model." +--- + +import { Ministral3Deployment } from '/src/snippets/autoregressive/ministral-3-deployment.jsx'; + +## 1. Model Introduction +The largest model in the Ministral 3 family, Ministral 3 14B offers frontier capabilities and performance comparable to its larger Mistral Small 3.2 24B counterpart. A powerful and efficient language model with vision capabilities. + +The Ministral 3 14B Instruct model offers the following capabilities: + +Vision: Enables the model to analyze images and provide insights based on visual content, in addition to text. +Multilingual: Supports dozens of languages, including English, French, Spanish, German, Italian, Portuguese, Dutch, Chinese, Japanese, Korean, Arabic. +System Prompt: Maintains strong adherence and support for system prompts. +Agentic: Offers best-in-class agentic capabilities with native function calling and JSON outputting. +Edge-Optimized: Delivers best-in-class performance at a small scale, deployable anywhere. +Apache 2.0 License: Open-source license allowing usage and modification for both commercial and non-commercial purposes. +Large Context Window: Supports a 256k context window. + +For further details, please refer to the [official documentation](https://github.com/mistralai) + +## 2. SGLang Installation + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model variant, deployment strategy, and thinking capabilities. + + + +### 3.2 Configuration Tips +**Context length vs memory**: Ministral-3 advertises a long context window; if you are memory-constrained, start by lowering --context-length (for example 32768) and increase once things are stable. + +**Pre-installation steps**: Adding the following steps after launching the docker +```shell Command +pip install mistral-common --upgrade +pip install transformers==5.0.0.rc0 +``` +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) +- [SGLang OpenAI Vision API Guide](../../../docs/basic_usage/openai_api_vision) + +### 4.2 Advanced Usage + +#### 4.2.1 Launch the docker +```shell Command +docker pull lmsysorg/sglang:v0.5.9-rocm720-mi30x +``` + +```shell Command +docker run -d -it --ipc=host --network=host --privileged \ + --cap-add=CAP_SYS_ADMIN \ + --device=/dev/kfd --device=/dev/dri --device=/dev/mem \ + --group-add video --cap-add=SYS_PTRACE \ + --security-opt seccomp=unconfined \ + -v /:/work \ + -e SHELL=/bin/bash \ + --name Ministral \ + lmsysorg/sglang:v0.5.9-rocm720-mi30x \ + /bin/bash +``` + +#### 4.2.2 Launch the server +```shell Command +sglang serve \ + --model-path mistralai/Ministral-3-14B-Instruct-2512 \ + --tp 1 \ + --trust-remote-code +``` + +## 5. Benchmark + +This section uses **industry-standard configurations** for comparable benchmark results. + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: MI300X GPU (8x) +- Model: mistralai/Ministral-3-14B-Instruct-2512 +- Tensor Parallelism: 1 +- SGLang Version: 0.5.7 + +- Model Deployment Command: + +```bash Command +sglang serve \ + --model-path mistralai/Ministral-3-14B-Instruct-2512 \ + --tp 1 \ + --trust-remote-code +``` + +##### Low Concurrency +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model mistralai/Ministral-3-14B-Instruct-2512 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 65.08 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4218 +Request throughput (req/s): 0.15 +Input token throughput (tok/s): 93.75 +Output token throughput (tok/s): 64.84 +Peak output token throughput (tok/s): 151.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 158.59 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 6505.51 +Median E2E Latency (ms): 3037.37 +---------------Time to First Token---------------- +Mean TTFT (ms): 3709.33 +Median TTFT (ms): 53.72 +P99 TTFT (ms): 33320.77 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 6.63 +Median TPOT (ms): 6.64 +P99 TPOT (ms): 6.66 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 6.64 +Median ITL (ms): 6.65 +P95 ITL (ms): 6.75 +P99 ITL (ms): 6.82 +Max ITL (ms): 8.45 +================================================== +``` + +##### Medium Concurrency +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model mistralai/Ministral-3-14B-Instruct-2512 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 31.20 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40783 +Request throughput (req/s): 2.56 +Input token throughput (tok/s): 1271.38 +Output token throughput (tok/s): 1307.82 +Peak output token throughput (tok/s): 1760.00 +Peak concurrent requests: 22 +Total token throughput (tok/s): 2579.20 +Concurrency: 13.72 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 5351.07 +Median E2E Latency (ms): 5626.45 +---------------Time to First Token---------------- +Mean TTFT (ms): 280.87 +Median TTFT (ms): 68.16 +P99 TTFT (ms): 1194.79 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.47 +Median TPOT (ms): 10.10 +P99 TPOT (ms): 20.00 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.96 +Median ITL (ms): 9.10 +P95 ITL (ms): 9.87 +P99 ITL (ms): 51.39 +Max ITL (ms): 888.63 +================================================== +``` + +##### High Concurrency +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model mistralai/Ministral-3-14B-Instruct-2512 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 88.75 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 252547 +Request throughput (req/s): 5.63 +Input token throughput (tok/s): 2815.01 +Output token throughput (tok/s): 2846.91 +Peak output token throughput (tok/s): 4271.00 +Peak concurrent requests: 110 +Total token throughput (tok/s): 5661.93 +Concurrency: 93.04 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 16514.45 +Median E2E Latency (ms): 15834.45 +---------------Time to First Token---------------- +Mean TTFT (ms): 148.57 +Median TTFT (ms): 99.15 +P99 TTFT (ms): 455.86 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 32.93 +Median TPOT (ms): 34.73 +P99 TPOT (ms): 38.05 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 32.45 +Median ITL (ms): 27.30 +P95 ITL (ms): 71.73 +P99 ITL (ms): 73.45 +Max ITL (ms): 328.10 +================================================== +``` + +### 5.2 Accuracy Benchmark + +Document model accuracy on standard benchmarks: + +#### 5.2.1 GSM8K Benchmark + +- Benchmark Command + +```bash Command +python3 benchmark/gsm8k/bench_sglang.py \ + --num-shots 8 \ + --num-questions 1316 \ + --parallel 1316 +``` + +**Test Results:** + +```text Output +Accuracy: 0.959 +Invalid: 0.000 +Latency: 29.185 s +Output throughput: 4854.672 token/s +``` diff --git a/docs_new/cookbook/autoregressive/Mistral/Mistral-Small-4.mdx b/docs_new/cookbook/autoregressive/Mistral/Mistral-Small-4.mdx new file mode 100644 index 000000000..7dc4d179e --- /dev/null +++ b/docs_new/cookbook/autoregressive/Mistral/Mistral-Small-4.mdx @@ -0,0 +1,393 @@ +--- +title: Mistral Small 4 +metatags: + description: "Deploy Mistral Small 4 with SGLang - unified hybrid model combining instruct, reasoning, and agentic capabilities with multimodal support." +--- + +import { MistralSmall4Deployment } from '/src/snippets/autoregressive/mistral-small-4-deployment.jsx'; + +## 1. Model Introduction + +**Mistral Small 4** is a powerful hybrid model from Mistral AI that unifies the capabilities of three different model families — **Instruct**, **Reasoning** (formerly called Magistral), and **Agentic (formerly called Devstral)** — into a single, unified model. + +With its multimodal capabilities, efficient MoE architecture, and flexible mode switching, Mistral Small 4 is a versatile general-purpose model for virtually any task. In a latency-optimized setup, it achieves a 40% reduction in end-to-end completion time; in a throughput-optimized setup, it delivers 3× more requests per second compared to Mistral Small 3. + +**Key Features:** + +- **Hybrid Reasoning**: Switch between instant reply mode and deep reasoning/thinking mode — reasoning effort is configurable per request +- **Vision**: Accepts both text and image inputs, providing insights based on visual content +- **Function Calling**: Native tool calling and JSON output support with best-in-class agentic capabilities +- **Multilingual**: Supports dozens of languages including English, French, Spanish, German, Chinese, Japanese, Korean, Arabic, and more +- **Context Window**: 256K context window +- **Efficient MoE**: 119B total parameters, 128 experts, 4 active per token (6.5B activated parameters) +- **Apache 2.0 License**: Open-source, usable and modifiable for commercial and non-commercial purposes +- Reasoning effort supported are only **"none" and "high"** + +**Architecture:** + +- Same general architecture as Mistral 3 +- MoE: 128 experts, 4 active per token +- 119B total parameters, 6.5B activated per token +- Multimodal input: text + image + +**Models:** + +- **[mistralai/Mistral-Small-4-119B-2603](https://huggingface.co/mistralai/Mistral-Small-4-119B-2603)** (FP8) +- **[mistralai/Mistral-Small-4-119B-2603-NVFP4](https://huggingface.co/mistralai/Mistral-Small-4-119B-2603-NVFP4)** +- **[mistralai/Leanstral-2603](https://huggingface.co/mistralai/Leanstral-2603)** — same architecture, use the same launch commands as Mistral-Small-4-119B-2603 +- **[mistralai/Mistral-Small-4-119B-2603-eagle](https://huggingface.co/mistralai/Mistral-Small-4-119B-2603-eagle)** — EAGLE speculative decoding weights for faster inference + +--- + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + + +Mistral Small 4 support landed in [sgl-project/sglang#20708](https://github.com/sgl-project/sglang/pull/20708) and has been merged into `main`. A model-specific Docker image is no longer required. Use the standard SGLang installation methods from the [official installation guide](../../../docs/get-started/installation). + + +--- + +## 3. Model Deployment + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to generate a launch command for Mistral Small 4. + + + +### 3.2 Configuration Tips + +- **Tensor Parallelism**: Mistral Small 4 FP8 (~119 GB) requires tp=2 on Hopper (H100/H200), tp=1 on Blackwell (B200/B300). NVFP4 (~60 GB, Blackwell only) runs with tp=1. +- **Reasoning effort**: Reasoning depth is configurable per request via `reasoning_effort` (`"none"`, `"high"`). No restart required — toggle per call. +- **Context length vs memory**: The model has a 256K context window. If you are memory-constrained, lower `--context-length` (e.g. `32768`) and increase once things are stable. +- **Tool calling**: Enable `--tool-call-parser mistral` to activate native function calling support. +- **Reasoning parser**: Enable `--reasoning-parser mistral` to separate `reasoning_content` from the main response content. +- **Speculative decoding (EAGLE)**: Enable with `--speculative-algorithm EAGLE --speculative-draft-model-path mistralai/Mistral-Small-4-119B-2603-eagle` using the [EAGLE weights](https://huggingface.co/mistralai/Mistral-Small-4-119B-2603-eagle) for lower latency. + +--- + +## 4. Model Invocation + +### 4.1 Thinking Mode + +Mistral Small 4 is a hybrid reasoning model. By default, it does not produce a default reasoning response. Use `--reasoning_effort high` to toggle reasoning on. + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +response = client.chat.completions.create( + model="mistralai/Mistral-Small-4-119B-2603", + messages=[ + {"role": "user", "content": "Solve step by step: what is 17 × 23 + 144 / 12?"}, + ], + extra_body={"reasoning_effort": "high"}, +) + +print("Reasoning:", response.choices[0].message.reasoning_content) +print("Answer:", response.choices[0].message.content) +``` + +**Output:** + +```text Output +Reasoning: First, I'll break down the problem into two parts: the multiplication and +the division. According to the order of operations (PEMDAS/BODMAS), multiplication and +division are performed from left to right before addition. + +17 × 23 = 17 × (20 + 3) = (17 × 20) + (17 × 3) = 340 + 51 = 391 +144 / 12 = 12 + +Finally, add the results: 391 + 12 = 403 + +Answer: The solution to the problem is as follows: + +1. First, perform the multiplication: 17 × 23. + - 17 × 20 = 340 + - 17 × 3 = 51 + - 340 + 51 = 391 + +2. Then, perform the division: 144 / 12 = 12. + +3. Finally, add the results: + - 391 + 12 = 403 + +**Answer:** \boxed{403} +``` + +### 4.2 Instruct Mode (Reasoning Off) + +To skip the reasoning trace and get a fast direct response, set `reasoning_effort` to `"none"`: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +response = client.chat.completions.create( + model="mistralai/Mistral-Small-4-119B-2603", + messages=[ + {"role": "user", "content": "Write a Python function to reverse a string."}, + ], + extra_body={"reasoning_effort": "none"}, +) + +print(response.choices[0].message.content) +``` + +**Output:** + +````text Output +# Python Function to Reverse a String + +Here are several ways to write a Python function to reverse a string: + +## Method 1: Using String Slicing (Most Pythonic) +```python +def reverse_string(s): + """Reverse a string using slicing.""" + return s[::-1] +``` + +## Method 2: Using a Loop +```python Example +def reverse_string(s): + """Reverse a string using a loop.""" + reversed_str = "" + for char in s: + reversed_str = char + reversed_str + return reversed_str +``` + +## Method 3: Using reversed() function +```python Example +def reverse_string(s): + """Reverse a string using reversed() function.""" + return ''.join(reversed(s)) +``` + +The first method using string slicing (`s[::-1]`) is generally the most efficient and +recommended approach in Python. + +Example usage: +```python Example +original = "Hello, World!" +reversed_str = reverse_string(original) +print(reversed_str) # Output: "!dlroW ,olleH" +``` +```` + +### 4.3 Streaming with Reasoning + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +stream = client.chat.completions.create( + model="mistralai/Mistral-Small-4-119B-2603", + messages=[ + {"role": "user", "content": "Explain the difference between async and threading in Python."}, + ], + extra_body={"reasoning_effort": "high"}, + stream=True, +) + +print("=== Reasoning ===") +for chunk in stream: + delta = chunk.choices[0].delta + if hasattr(delta, "reasoning_content") and delta.reasoning_content: + print(delta.reasoning_content, end="", flush=True) + elif delta.content: + print("\n=== Response ===") + print(delta.content, end="", flush=True) +print() +``` + +**Output:** + +```text Output +=== Reasoning === +Okay, the user is asking about the difference between async and threading in Python. +I need to break this down clearly, covering the key aspects of both, like their +purposes, performance characteristics, and use cases... +=== Response === +In Python, **`async`/`asyncio`** and **`threading`** are two different concurrency +models, each suited for specific use cases. Here's a breakdown of their key differences: + +### 1. Model of Concurrency +- **Threading**: Based on preemptive multitasking using OS threads. +- **Async** (`asyncio`): Based on cooperative multitasking. Tasks voluntarily yield... +``` + +### 4.4 Tool Calling + +Mistral Small 4 supports native function calling. Enable with `--tool-call-parser mistral`: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a city", + "parameters": { + "type": "object", + "properties": { + "location": {"type": "string", "description": "City name"}, + "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}, + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="mistralai/Mistral-Small-4-119B-2603", + messages=[{"role": "user", "content": "What's the weather in Paris?"}], + tools=tools, + tool_choice="auto", +) + +tool_calls = response.choices[0].message.tool_calls +for tc in tool_calls: + print(f"Tool: {tc.function.name}") + print(f"Args: {tc.function.arguments}") +``` + +**Output:** + +```text Output +Tool: get_weather +Args: {"location": "Paris"} +``` + +### 4.5 Vision (Image Input) + +Mistral Small 4 accepts image inputs alongside text: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +response = client.chat.completions.create( + model="mistralai/Mistral-Small-4-119B-2603", + messages=[ + { + "role": "user", + "content": [ + {"type": "text", "text": "Describe what you see in this image."}, + { + "type": "image_url", + "image_url": {"url": "https://raw.githubusercontent.com/sgl-project/sglang/main/assets/logo.png"}, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +**Output:** + +```text Output +The image is a copyright symbol, represented by a stylized version of the lowercase +letter "c" inside a circle. The "c" is depicted in a white or light-colored font, and +the circle is orange. The design is simple yet striking, using oval and elliptical +shapes to create a distinct symbol which signifies copyright protection. +``` + +--- + +## 5. Benchmarks + +### 5.1 Accuracy Benchmarks + +#### GSM8K + +```bash Command +python3 benchmark/gsm8k/bench_sglang.py --port 30000 +``` + +**Results:** + +```text Output +TODO +``` + +#### MMLU + +```bash Command +python3 benchmark/mmlu/bench_sglang.py --port 30000 +``` + +**Results:** + +```text Output +TODO +``` + +### 5.2 Speed Benchmarks + +#### Latency (Low Concurrency) + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --num-prompts 10 \ + --max-concurrency 1 \ + --random-input-len 1024 \ + --random-output-len 512 \ + --port 30000 +``` + +**Results:** + +```text Output +TODO +``` + +#### Throughput (High Concurrency) + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --num-prompts 1000 \ + --max-concurrency 100 \ + --random-input-len 1024 \ + --random-output-len 512 \ + --port 30000 +``` + +**Results:** + +```text Output +TODO +``` diff --git a/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.5.mdx b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.5.mdx new file mode 100644 index 000000000..162efb738 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.5.mdx @@ -0,0 +1,1244 @@ +--- +title: Kimi-K2.5 +metatags: + description: "Deploy Kimi-K2.5 MoE model with SGLang - 1T total parameters, 32B active, step-by-step reasoning and tool calling capabilities." +--- + +## 1. Model Introduction + +[Kimi-K2.5](https://huggingface.co/moonshotai/Kimi-K2.5) is an open-source, native multimodal agentic model by Moonshot AI, built through continual pretraining on approximately 15 trillion mixed visual and text tokens atop Kimi-K2-Base. It seamlessly integrates vision and language understanding with advanced agentic capabilities, instant and thinking modes. + +**Key Features:** + +- **Native Multimodality**: Pre-trained on vision-language tokens, K2.5 excels in visual knowledge, cross-modal reasoning, and agentic tool use grounded in visual inputs. +- **Coding with Vision**: K2.5 generates code from visual specifications (UI designs, video workflows) and autonomously orchestrates tools for visual data processing. +- **Agent Swarm**: K2.5 transitions from single-agent scaling to a self-directed, coordinated swarm-like execution scheme. It decomposes complex tasks into parallel sub-tasks executed by dynamically instantiated, domain-specific agents. +- **Speculative Decoding**: EAGLE-based speculative decoding support for lower latency. + +**Available Models**: +- INT4 (Initial Released): [moonshotai/Kimi-K2.5](https://huggingface.co/moonshotai/Kimi-K2.5) +- NVFP4 (4-bit quantized): [nvidia/Kimi-K2.5-NVFP4](https://huggingface.co/nvidia/Kimi-K2.5-NVFP4) + +For details, see [official documentation](https://huggingface.co/moonshotai/Kimi-K2.5) and [deployment guidance](https://huggingface.co/moonshotai/Kimi-K2.5/blob/main/docs/deploy_guidance.md). + +## 2. SGLang Installation + +Refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +## 3. Model Deployment + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, deployment strategy, and capabilities. + +import { KimiK25Deployment } from '/src/snippets/autoregressive/kimi-k25-deployment.jsx' + + + +### 3.2 Configuration Tips + +- **Memory**: Requires GPUs with >=140GB each. Supported platforms: H200 (8x, TP=8), B300 (8x, TP=8), MI300X/MI325X (4x, TP=4), MI350X/MI355X (4x, TP=4). Use `--context-length 128000` to conserve memory. +- **AMD GPU TP Constraint**: On AMD GPUs, TP must be <= 4 (not 8). Kimi-K2.5 has 64 attention heads; the AITER MLA kernel requires `heads_per_gpu % 16 == 0`. With TP=4, each GPU gets 16 heads (valid). With TP=8, each GPU gets 8 heads (invalid). +- **AMD Docker Image**: Use `lmsysorg/sglang:v0.5.9-rocm700-mi35x` for MI350X/MI355X and `lmsysorg/sglang:v0.5.9-rocm700-mi30x` for MI300X/MI325X. The ROCm 7.2 images (`rocm720`) have an AITER compatibility issue. +- **DP Attention**: Enable with `--dp --enable-dp-attention` for production throughput. A common choice is to set `--dp` equal to `--tp`, but this is not required. +- **Reasoning Parser**: Add `--reasoning-parser kimi_k2` to separate thinking and content in model outputs. +- **Tool Call Parser**: Add `--tool-call-parser kimi_k2` for structured tool calls. + +## 4. Model Invocation + +### 4.1 Basic Usage + +See [Basic API Usage](../../../docs/basic_usage/send_request). + +### 4.2 Advanced Usage + +#### 4.2.1 Multimodal (Vision + Text) Input + +Kimi-K2.5 supports native multimodal input with images: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.5", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://ofasys-multimodal-wlcb-3-toshanghai.oss-accelerate.aliyuncs.com/wpf272043/keepme/image/receipt.png" + } + }, + { + "type": "text", + "text": "What is in this image? Describe it in detail." + } + ] + } + ] +) + +print(response.choices[0].message.content) +``` + +**Output Example:** + +```text Output +This image shows a **receipt from Auntie Anne's** (a pretzel franchise restaurant). + +## Key Details: + +**Item Purchased:** +- **CINNAMON SUGAR** - 1 unit x 17,000 = **17,000** + +**Payment Summary:** +- **SUB TOTAL:** 17,000 +- **GRAND TOTAL:** 17,000 +- **CASH IDR:** 20,000 (Indonesian Rupiah) +- **CHANGE DUE:** 3,000 + +## Context: +The receipt indicates a transaction in **Indonesian Rupiah (IDR)**. A customer purchased one Cinnamon Sugar pretzel for 17,000 IDR, paid with a 20,000 IDR note, and received 3,000 IDR in change. + +The top of the receipt shows the Auntie Anne's logo (a heart-shaped pretzel with a halo), and some text appears blurred for privacy, likely obscuring the store location, date, and transaction number. The receipt is printed on white thermal paper. +``` + +#### 4.2.2 Reasoning Output + +Kimi-K2.5 supports both thinking mode (default) and instant mode. + +**Thinking Mode (default)** -- reasoning content is automatically separated: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.5", + messages=[ + {"role": "user", "content": "Which one is bigger, 9.11 or 9.9? Think carefully."} + ] +) + +print("====== Reasoning Content (Thinking Mode) ======") +print(response.choices[0].message.reasoning_content) +print("====== Response (Thinking Mode) ======") +print(response.choices[0].message.content) +``` + +**Instant Mode (thinking off)** -- disable thinking for faster responses: + +```python Example +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.5", + messages=[ + {"role": "user", "content": "Which one is bigger, 9.11 or 9.9? Think carefully."} + ], + extra_body={"chat_template_kwargs": {"thinking": False}} +) + +print("====== Response (Instant Mode) ======") +print(response.choices[0].message.content) +``` + +**Output Example:** + +```text Output +====== Reasoning Content (Thinking Mode) ====== +The user is asking which number is bigger: 9.11 or 9.9. + +At first glance, someone might think 9.11 is bigger because 11 > 9, but that's incorrect because we're dealing with decimal numbers, not whole numbers. + +Let me compare them properly: +- 9.9 = 9.90 +- 9.11 + +When comparing decimals, we look at each place value from left to right: +- Units place: 9 = 9 (tie) +- Tenths place: 9 vs 1 + +Since 9 > 1, we have 9.9 > 9.11. + +Alternatively, we can think of it as: +- 9.9 = 9 + 9/10 = 9 + 0.9 = 9.90 +- 9.11 = 9 + 11/100 = 9 + 0.11 + +Since 0.90 > 0.11, then 9.9 > 9.11. + +So the answer is clearly 9.9 is bigger. + +The "think carefully" hint suggests the user is trying to catch the common error where people compare 11 and 9 as whole numbers rather than understanding decimal place value (tenths vs hundredths). + +I should explain this clearly to avoid confusion. +====== Response (Thinking Mode) ====== +**9.9 is bigger.** + +Here's why this can be tricky: Many people instinctively compare 11 and 9 and think "11 is bigger than 9," but that's comparing the wrong place values. + +When comparing decimals, align them by place value: +- 9.9 = 9.**90** +- 9.11 = 9.**11** + +After the decimal point: +- The first digit (tenths place): **9** vs **1** +- Since 9 > 1, we stop there. **9.9 is larger.** + +Think of it as money: +- $9.90 (nine dollars and ninety cents) +- $9.11 (nine dollars and eleven cents) + +$9.90 is clearly more than $9.11. +====== Response (Instant Mode) ====== + Let me think through this carefully. + +**9.9 is bigger than 9.11** + +Here's why: When comparing decimals, we need to align them by their decimal places: + +- 9.9 = 9.90 +- 9.11 = 9.11 + +Now comparing: +- The whole number parts are equal (9 = 9) +- Comparing tenths: **9 > 1** + +So 9.90 > 9.11 + +A common mistake is thinking 11 hundredths is larger than 9 tenths, but 9 tenths = 90 hundredths, which is clearly larger than 11 hundredths. +``` + +#### 4.2.3 Tool Calling + +Kimi-K2.5 supports tool calling capabilities for agentic tasks: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.5", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + stream=True +) + +# Process streaming response +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'tool_calls') and delta.tool_calls: + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = {'name': None, 'arguments': ''} + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + if delta.content: + print(delta.content, end="", flush=True) + +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") +``` + +**Output Example:** + +```text Output +Tool Call: get_weather + Arguments: {"location": "Beijing"} +``` + +**Handling Tool Call Results:** + +```python Example +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": "The weather in Beijing is 22°C and sunny." + } +] + +final_response = client.chat.completions.create( + model="moonshotai/Kimi-K2.5", + messages=messages +) + +print(final_response.choices[0].message.content) +``` + +**Output Example:** + +```text Output +The weather in Beijing is **22°C and sunny**. ☀️ + +It's a nice day there with comfortable temperatures and clear skies! +``` + +#### 4.2.4 Multimodal + Tool Calling (Agentic Vision) + +Combine vision understanding with tool calling for advanced agentic tasks: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +tools = [ + { + "type": "function", + "function": { + "name": "search_product", + "description": "Search for a product by name or description", + "parameters": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The product name or description to search for" + } + }, + "required": ["query"] + } + } + } +] + +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.5", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://ofasys-multimodal-wlcb-3-toshanghai.oss-accelerate.aliyuncs.com/wpf272043/keepme/image/receipt.png" + } + }, + { + "type": "text", + "text": "Can you identify this product and search for similar items?" + } + ] + } + ], + tools=tools +) + +msg = response.choices[0].message + +# Print reasoning process +if msg.reasoning_content: + print("=== Reasoning ===") + print(msg.reasoning_content) + +# Print response content +if msg.content: + print("=== Content ===") + print(msg.content) + +# Print tool calls +if msg.tool_calls: + print("=== Tool Calls ===") + for tc in msg.tool_calls: + print(f" Function: {tc.function.name}") + print(f" Arguments: {tc.function.arguments}") +``` + +**Output Example:** + +```text Output +=== Reasoning === +The user is asking me to identify a product from a receipt and search for similar items. +Looking at the receipt, I can see: + + 1. The store is "Auntie Anne's" - which is a popular pretzel chain + 2. The product purchased is "CINNAMON SUGAR" + 3. Price is 17,000 (likely Indonesian Rupiah based on "CASH IDR") + 4. Quantity is 1 + +So the product is a Cinnamon Sugar pretzel from Auntie Anne's. +Now I need to search for this product or similar items using the search_product function. +=== Content === +I can see from the receipt that the product is a **Cinnamon Sugar** item from **Auntie Anne's** (the famous pretzel chain). This appears to be a Cinnamon Sugar Pretzel purchased for 17,000 IDR (Indonesian Rupiah). + +Let me search for this product and similar items: +=== Tool Calls === + Function: search_product + Arguments: {"query": "Auntie Anne's Cinnamon Sugar Pretzel"} +``` + +#### 4.2.5 Speculative Decoding + +**Nvidia** + +Deploy Kimi-K2.5 with the following command (H200/B200, all features enabled): + +```shell Command +SGLANG_ENABLE_SPEC_V2=1 sglang serve \ + --model-path moonshotai/Kimi-K2.5 \ + --tp 8 \ + --reasoning-parser kimi_k2 \ + --tool-call-parser kimi_k2 \ + --speculative-algorithm=EAGLE3 \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --speculative-draft-model-path lightseekorg/kimi-k2.5-eagle3 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 30000 +``` + +Deploy Kimi-K2.5-NVFP4 with the following command (B200, all features enabled): + +```shell Command +SGLANG_ENABLE_SPEC_V2=1 sglang serve \ + --model-path nvidia/Kimi-K2.5-NVFP4 \ + --tp 8 \ + --reasoning-parser kimi_k2 \ + --tool-call-parser kimi_k2 \ + --kv-cache-dtype fp8_e4m3 \ + --speculative-algorithm=EAGLE3 \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --speculative-draft-model-path lightseekorg/kimi-k2.5-eagle3 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 30000 +``` + +## 5. Benchmark + +### 5.1 Accuracy Benchmark + +#### 5.1.1 MMMU Benchmark + +You can evaluate the model's accuracy using the MMMU benchmark, which tests multimodal understanding and reasoning across various subjects: + +- **Benchmark Command:** + +```shell Command +python3 benchmark/mmmu/bench_sglang.py \ + --response-answer-regex "(?i)(?:answer|ans)[:\s]*(?:\*\*)?[\(\[]?([A-Za-z])[\)\]]?(?:\*\*)?" \ + --port 30000 \ + --concurrency 64 +``` + +- **Result:** + +```text Output +Benchmark time: 2785.4322692090645 +answers saved to: ./answer_sglang.json +Evaluating... +answers saved to: ./answer_sglang.json +{'Accounting': {'acc': 0.667, 'num': 30}, + 'Agriculture': {'acc': 0.567, 'num': 30}, + 'Architecture_and_Engineering': {'acc': 0.733, 'num': 30}, + 'Art': {'acc': 0.833, 'num': 30}, + 'Art_Theory': {'acc': 0.8, 'num': 30}, + 'Basic_Medical_Science': {'acc': 0.833, 'num': 30}, + 'Biology': {'acc': 0.6, 'num': 30}, + 'Chemistry': {'acc': 0.633, 'num': 30}, + 'Clinical_Medicine': {'acc': 0.733, 'num': 30}, + 'Computer_Science': {'acc': 0.667, 'num': 30}, + 'Design': {'acc': 0.7, 'num': 30}, + 'Diagnostics_and_Laboratory_Medicine': {'acc': 0.5, 'num': 30}, + 'Economics': {'acc': 0.867, 'num': 30}, + 'Electronics': {'acc': 0.3, 'num': 30}, + 'Energy_and_Power': {'acc': 0.767, 'num': 30}, + 'Finance': {'acc': 0.833, 'num': 30}, + 'Geography': {'acc': 0.667, 'num': 30}, + 'History': {'acc': 0.767, 'num': 30}, + 'Literature': {'acc': 0.767, 'num': 30}, + 'Manage': {'acc': 0.733, 'num': 30}, + 'Marketing': {'acc': 0.833, 'num': 30}, + 'Materials': {'acc': 0.567, 'num': 30}, + 'Math': {'acc': 0.633, 'num': 30}, + 'Mechanical_Engineering': {'acc': 0.567, 'num': 30}, + 'Music': {'acc': 0.5, 'num': 30}, + 'Overall': {'acc': 0.698, 'num': 900}, + 'Overall-Art and Design': {'acc': 0.708, 'num': 120}, + 'Overall-Business': {'acc': 0.787, 'num': 150}, + 'Overall-Health and Medicine': {'acc': 0.74, 'num': 150}, + 'Overall-Humanities and Social Science': {'acc': 0.75, 'num': 120}, + 'Overall-Science': {'acc': 0.66, 'num': 150}, + 'Overall-Tech and Engineering': {'acc': 0.595, 'num': 210}, + 'Pharmacy': {'acc': 0.767, 'num': 30}, + 'Physics': {'acc': 0.767, 'num': 30}, + 'Psychology': {'acc': 0.667, 'num': 30}, + 'Public_Health': {'acc': 0.867, 'num': 30}, + 'Sociology': {'acc': 0.8, 'num': 30}} +eval out saved to ./val_sglang.json +Overall accuracy: 0.698 +``` + +### 5.2 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA H200 GPU (8x) +- Model: Kimi-K2.5 +- Tensor Parallelism: 8 +- SGLang Version: 0.5.6.post2 + +We use SGLang's built-in benchmarking tool with the `random` dataset for standardized performance evaluation. + +#### 5.2.1 Latency Benchmark + +- **Model Deployment:** + +```bash Command +sglang serve \ + --model-path moonshotai/Kimi-K2.5 \ + --tp 8 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 30000 +``` + +- **Benchmark Command:** + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- **Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 39.77 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4221 +Request throughput (req/s): 0.25 +Input token throughput (tok/s): 153.40 +Output token throughput (tok/s): 106.10 +Peak output token throughput (tok/s): 156.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 259.50 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3972.87 +Median E2E Latency (ms): 4044.55 +P90 E2E Latency (ms): 7046.30 +P99 E2E Latency (ms): 7441.13 +---------------Time to First Token---------------- +Mean TTFT (ms): 176.89 +Median TTFT (ms): 154.24 +P99 TTFT (ms): 285.75 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 9.22 +Median TPOT (ms): 9.32 +P99 TPOT (ms): 12.72 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.02 +Median ITL (ms): 8.80 +P95 ITL (ms): 13.23 +P99 ITL (ms): 14.17 +Max ITL (ms): 29.38 +================================================== +``` + +- Medium Concurrency (Balanced) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 158.05 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40775 +Request throughput (req/s): 0.51 +Input token throughput (tok/s): 250.99 +Output token throughput (tok/s): 258.18 +Peak output token throughput (tok/s): 1103.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 509.17 +Concurrency: 14.09 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 27837.05 +Median E2E Latency (ms): 23508.00 +P90 E2E Latency (ms): 57126.31 +P99 E2E Latency (ms): 66044.35 +---------------Time to First Token---------------- +Mean TTFT (ms): 374.30 +Median TTFT (ms): 375.51 +P99 TTFT (ms): 695.58 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 53.25 +Median TPOT (ms): 57.93 +P99 TPOT (ms): 85.45 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 53.95 +Median ITL (ms): 53.97 +P95 ITL (ms): 84.74 +P99 ITL (ms): 244.84 +Max ITL (ms): 655.61 +================================================== +``` + +- High Concurrency (Throughput-Optimized) + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +- **Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 996.64 +Total input tokens: 249831 +Total input text tokens: 249831 +Total generated tokens: 252662 +Total generated tokens (retokenized): 252588 +Request throughput (req/s): 0.50 +Input token throughput (tok/s): 250.67 +Output token throughput (tok/s): 253.51 +Peak output token throughput (tok/s): 1199.00 +Peak concurrent requests: 104 +Total token throughput (tok/s): 504.18 +Concurrency: 92.70 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 184773.75 +Median E2E Latency (ms): 174183.65 +P90 E2E Latency (ms): 343625.28 +P99 E2E Latency (ms): 404284.53 +---------------Time to First Token---------------- +Mean TTFT (ms): 1289.59 +Median TTFT (ms): 1313.35 +P99 TTFT (ms): 2346.78 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 364.70 +Median TPOT (ms): 403.32 +P99 TPOT (ms): 452.34 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 363.82 +Median ITL (ms): 316.21 +P95 ITL (ms): 745.91 +P99 ITL (ms): 1345.88 +Max ITL (ms): 3118.59 +================================================== +``` + +**Scenario 2: Reasoning (1K/8K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 680.26 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 44462 +Total generated tokens (retokenized): 44455 +Request throughput (req/s): 0.01 +Input token throughput (tok/s): 8.97 +Output token throughput (tok/s): 65.36 +Peak output token throughput (tok/s): 151.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 74.33 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 68019.29 +Median E2E Latency (ms): 70568.85 +P90 E2E Latency (ms): 113237.40 +P99 E2E Latency (ms): 121682.34 +---------------Time to First Token---------------- +Mean TTFT (ms): 206.17 +Median TTFT (ms): 177.28 +P99 TTFT (ms): 445.37 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 14.36 +Median TPOT (ms): 15.89 +P99 TPOT (ms): 16.43 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 15.26 +Median ITL (ms): 15.85 +P95 ITL (ms): 17.50 +P99 ITL (ms): 23.21 +Max ITL (ms): 45.22 +================================================== +``` + +- Medium Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 2475.98 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 318306 +Total generated tokens (retokenized): 318166 +Request throughput (req/s): 0.03 +Input token throughput (tok/s): 16.02 +Output token throughput (tok/s): 128.56 +Peak output token throughput (tok/s): 847.00 +Peak concurrent requests: 18 +Total token throughput (tok/s): 144.58 +Concurrency: 14.62 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 452592.46 +Median E2E Latency (ms): 486002.05 +P90 E2E Latency (ms): 833197.57 +P99 E2E Latency (ms): 957399.48 +---------------Time to First Token---------------- +Mean TTFT (ms): 359.38 +Median TTFT (ms): 350.78 +P99 TTFT (ms): 500.36 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 111.18 +Median TPOT (ms): 122.76 +P99 TPOT (ms): 145.90 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 113.69 +Median ITL (ms): 122.81 +P95 ITL (ms): 147.87 +P99 ITL (ms): 151.03 +Max ITL (ms): 272.05 +================================================== +``` + +- High Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +```text Output +Waiting for completion... +``` + +**Scenario 3: Summarization (8K/1K)** + +- Low Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 120.73 +Total input tokens: 41941 +Total input text tokens: 41941 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.08 +Input token throughput (tok/s): 347.41 +Output token throughput (tok/s): 34.96 +Peak output token throughput (tok/s): 73.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 382.36 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 12068.56 +Median E2E Latency (ms): 10211.36 +P90 E2E Latency (ms): 23203.32 +P99 E2E Latency (ms): 30677.66 +---------------Time to First Token---------------- +Mean TTFT (ms): 1625.64 +Median TTFT (ms): 1526.63 +P99 TTFT (ms): 3743.51 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 24.95 +Median TPOT (ms): 23.95 +P99 TPOT (ms): 35.40 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 24.80 +Median ITL (ms): 21.73 +P95 ITL (ms): 59.56 +P99 ITL (ms): 61.10 +Max ITL (ms): 62.70 +================================================== +``` + +- Medium Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 389.96 +Total input tokens: 300020 +Total input text tokens: 300020 +Total generated tokens: 41669 +Total generated tokens (retokenized): 41670 +Request throughput (req/s): 0.21 +Input token throughput (tok/s): 769.36 +Output token throughput (tok/s): 106.86 +Peak output token throughput (tok/s): 304.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 876.22 +Concurrency: 14.95 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 72870.97 +Median E2E Latency (ms): 70495.88 +P90 E2E Latency (ms): 121820.46 +P99 E2E Latency (ms): 148933.09 +---------------Time to First Token---------------- +Mean TTFT (ms): 2460.45 +Median TTFT (ms): 1976.29 +P99 TTFT (ms): 7305.53 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 140.57 +Median TPOT (ms): 142.31 +P99 TPOT (ms): 273.40 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 135.44 +Median ITL (ms): 95.96 +P95 ITL (ms): 152.93 +P99 ITL (ms): 1488.37 +Max ITL (ms): 6540.24 +================================================== +``` + +- High Concurrency + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 1279.50 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total generated tokens: 170000 +Total generated tokens (retokenized): 169981 +Request throughput (req/s): 0.25 +Input token throughput (tok/s): 995.62 +Output token throughput (tok/s): 132.86 +Peak output token throughput (tok/s): 703.00 +Peak concurrent requests: 67 +Total token throughput (tok/s): 1128.49 +Concurrency: 60.12 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 240385.63 +Median E2E Latency (ms): 236266.30 +P90 E2E Latency (ms): 429882.12 +P99 E2E Latency (ms): 515158.36 +---------------Time to First Token---------------- +Mean TTFT (ms): 2710.44 +Median TTFT (ms): 2345.63 +P99 TTFT (ms): 7144.20 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 443.84 +Median TPOT (ms): 493.29 +P99 TPOT (ms): 606.19 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 448.23 +Median ITL (ms): 296.17 +P95 ITL (ms): 1869.15 +P99 ITL (ms): 2708.95 +Max ITL (ms): 7778.47 +================================================== +``` + +#### 5.2.2 Speculative Decoding Benchmark + +- **Model Deployment:** + +```bash Command +SGLANG_ENABLE_SPEC_V2=1 sglang serve \ + --model-path moonshotai/Kimi-K2.5 \ + --tp 8 \ + --reasoning-parser kimi_k2 \ + --tool-call-parser kimi_k2 \ + --speculative-algorithm=EAGLE3 \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --speculative-draft-model-path lightseekorg/kimi-k2.5-eagle3 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 30000 +``` + +- **Benchmark Command:** + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- **Results:** + +```text Output +Pending update... +``` + +- Medium Concurrency (Balanced) + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +Pending update... +``` + +- High Concurrency (Throughput-Optimized) + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +```text Output +Pending update... +``` + +### 5.3 Speed Benchmark (AMD MI350X) + +**Test Environment:** + +- Hardware: AMD Instinct MI350X GPU (4x) +- Model: Kimi-K2.5 (BF16) +- Tensor Parallelism: 4 +- SGLang Version: 0.5.9 +- Docker Image: `lmsysorg/sglang:v0.5.9-rocm700-mi35x` +- ROCm: 7.0 + +We use SGLang's built-in benchmarking tool with the `random` dataset for standardized performance evaluation. + +:::info AMD GPU TP Constraint +Kimi-K2.5 requires TP <= 4 on AMD GPUs. The model has 64 attention heads, and the AITER MLA kernel requires `heads_per_gpu % 16 == 0`. With TP=4, each GPU gets 16 heads (valid). With TP=8, each GPU gets 8 heads (invalid). +::: + +#### 5.3.1 Latency Benchmark + +- **Model Deployment:** + +```bash Command +SGLANG_USE_AITER=1 SGLANG_ROCM_FUSED_DECODE_MLA=0 \ +sglang serve \ + --model-path moonshotai/Kimi-K2.5 \ + --tp 4 \ + --mem-fraction-static 0.8 \ + --trust-remote-code \ + --reasoning-parser kimi_k2 \ + --host 0.0.0.0 \ + --port 30000 +``` + +- **Benchmark Command:** + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- **Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 155.81 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4222 +Request throughput (req/s): 0.06 +Input token throughput (tok/s): 39.16 +Output token throughput (tok/s): 27.09 +Peak output token throughput (tok/s): 29.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 66.24 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 15576.22 +Median E2E Latency (ms): 12539.80 +P90 E2E Latency (ms): 28150.56 +P99 E2E Latency (ms): 34873.51 +---------------Time to First Token---------------- +Mean TTFT (ms): 563.50 +Median TTFT (ms): 594.92 +P99 TTFT (ms): 830.31 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 35.61 +Median TPOT (ms): 35.66 +P99 TPOT (ms): 35.77 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 35.66 +Median ITL (ms): 35.69 +P95 ITL (ms): 35.96 +P99 ITL (ms): 36.13 +Max ITL (ms): 36.92 +================================================== +``` + +- Medium Concurrency (Balanced) + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.5 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 526.66 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40798 +Request throughput (req/s): 0.15 +Input token throughput (tok/s): 75.32 +Output token throughput (tok/s): 77.48 +Peak output token throughput (tok/s): 96.00 +Peak concurrent requests: 18 +Total token throughput (tok/s): 152.80 +Concurrency: 14.59 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 96023.27 +Median E2E Latency (ms): 93940.20 +P90 E2E Latency (ms): 159449.54 +P99 E2E Latency (ms): 194706.61 +---------------Time to First Token---------------- +Mean TTFT (ms): 989.08 +Median TTFT (ms): 886.42 +P99 TTFT (ms): 1543.60 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 191.04 +Median TPOT (ms): 195.20 +P99 TPOT (ms): 238.84 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 186.68 +Median ITL (ms): 183.82 +P95 ITL (ms): 189.90 +P99 ITL (ms): 673.64 +Max ITL (ms): 1633.20 +================================================== +``` diff --git a/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.6.mdx b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.6.mdx new file mode 100644 index 000000000..38f04897a --- /dev/null +++ b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.6.mdx @@ -0,0 +1,1309 @@ +--- +title: Kimi-K2.6 +metatags: + description: "Deploy Kimi-K2.6 native multimodal agentic model with SGLang - reasoning, tool calling, and multimodal capabilities." +tag: NEW +--- + +## 1. Model Introduction + +[Kimi-K2.6](https://huggingface.co/moonshotai/Kimi-K2.6) is an open-source, native multimodal agentic model by Moonshot AI, delivering industry-leading coding, long-horizon execution, and agent swarm capabilities. It matches or surpasses GPT-5.4, Claude Opus 4.6, and Gemini 3.1 Pro across key benchmarks. + +**Key Features:** + +- **Long-Horizon Coding**: Excels at complex, end-to-end coding tasks with 13+ hours of continuous execution and 4,000+ lines of code modification, generalizing across languages (Rust, Go, Python) and tasks (frontend, devops, performance optimization). +- **Coding-Driven Design**: Transforms prompts and visual inputs into production-ready interfaces with motion-rich elements including WebGL shaders, GSAP + Framer Motion, and Three.js 3D. +- **Agent Swarms Elevated**: Scales to 300 parallel sub-agents executing 4,000 coordinated steps per run. One prompt, 100+ files. +- **Proactive Agents**: Powers OpenClaw, Hermes Agent, and other autonomous frameworks for 5-day continuous operation. +- **Native Multimodality**: Pre-trained on vision–language tokens with MoonViT (400M parameters) for visual understanding, cross-modal reasoning, and agentic tool use grounded in visual inputs. + +**Benchmarks (Open-Source SOTA):** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      BenchmarkScore
      HLE w/ tools54.0
      SWE-Bench Pro58.6
      SWE-bench Multilingual76.7
      BrowseComp83.2
      Toolathlon50.0
      AIME 202696.4
      GPQA-Diamond90.5
      LiveCodeBench89.6
      + +**Recommended Generation Parameters:** +- Thinking Mode: `temperature=1.0`, `top_p=0.95` +- Instant Mode: `temperature=0.6`, `top_p=0.95` + +**License:** Modified MIT + +For details, see [official documentation](https://huggingface.co/moonshotai/Kimi-K2.6) and [tech blog](https://kimi.com/blog/kimi-k2-6). + +## 2. SGLang Installation + +Refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +## 3. Model Deployment + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, deployment strategy, and capabilities. + +import { KimiK26Deployment } from '/src/snippets/autoregressive/kimi-k26-deployment.jsx' + + + +### 3.2 Configuration Tips + +- **Memory**: Requires GPUs with ≥140GB each. Supported platforms: H200 (8×, TP=8), B300 (8×, TP=8), MI300X/MI325X (4×, TP=4), MI350X/MI355X (4×, TP=4). Use `--context-length 128000` to conserve memory. +- **AMD GPU TP Constraint**: On AMD GPUs, TP must be ≤ 4 (not 8). Kimi-K2.6 has 64 attention heads; the AITER MLA kernel requires `heads_per_gpu % 16 == 0`. With TP=4, each GPU gets 16 heads (valid). With TP=8, each GPU gets 8 heads (invalid). +- **AMD Docker Image**: Use `lmsysorg/sglang:v0.5.9-rocm700-mi35x` for MI350X/MI355X and `lmsysorg/sglang:v0.5.9-rocm700-mi30x` for MI300X/MI325X. +- **DP Attention**: Enable with `--dp --enable-dp-attention` for production throughput. A common choice is to set `--dp` equal to `--tp`, but this is not required. +- **Reasoning Parser**: Add `--reasoning-parser kimi_k2` to separate thinking and content in model outputs. +- **Tool Call Parser**: Add `--tool-call-parser kimi_k2` for structured tool calls. +- **AMD FP8 KV Cache**: On AMD platforms the generator adds `--kv-cache-dtype fp8_e4m3` by default and sets `--mem-fraction-static 0.8` to fit the INT4 weights plus KV cache. FP8 KV cache trades a small amount of accuracy for memory; omit the flag if you observe accuracy regressions on your workload. + +## 4. Model Invocation + +### 4.1 Basic Usage + +See [Basic API Usage](../../../docs/basic_usage/send_request). + +### 4.2 Advanced Usage + +#### 4.2.1 Multimodal (Vision + Text) Input + +Kimi-K2.6 supports native multimodal input with images: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.6", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://ofasys-multimodal-wlcb-3-toshanghai.oss-accelerate.aliyuncs.com/wpf272043/keepme/image/receipt.png" + } + }, + { + "type": "text", + "text": "What is in this image? Describe it in detail." + } + ] + } + ] +) + +print(response.choices[0].message.content) +``` + +**Output Example:** + +```text Output +This image shows a **paper receipt from Auntie Anne's**, the pretzel chain restaurant. Here's a detailed breakdown: + +## Header +- At the top left is the Auntie Anne's logo (a pretzel with a halo) +- The store name "**Auntie Anne's**" is printed prominently at the top +- Some text below the store name appears blurred/redacted (likely store location, address, or transaction details) + +## Purchase Details +- **Item**: CINNAMON SUGAR +- **Quantity & Price**: 1 × 17,000 +- **Item Total**: 17,000 + +## Financial Summary +- **SUB TOTAL**: 17,000 +- **GRAND TOTAL**: 17,000 +- **CASH IDR**: 20,000 (customer paid 20,000 Indonesian Rupiah) +- **CHANGE DUE**: 3,000 + +## Physical Description +- The receipt is printed on white thermal paper +- Some information in the middle section and toward the bottom is intentionally blurred/obscured +- The paper appears slightly curved/wrinkled and is placed on a dark brown surface (likely a table or counter) + +The transaction is in **Indonesian Rupiah (IDR)**, indicating this purchase was made at an Auntie Anne's location in Indonesia. The customer bought one Cinnamon Sugar pretzel for 17,000 IDR and received 3,000 IDR in change after paying with 20,000 IDR cash. +``` + +#### 4.2.2 Reasoning Output + +Kimi-K2.6 supports both thinking mode (default) and instant mode. + +**Thinking Mode (default)** — reasoning content is automatically separated: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.6", + messages=[ + {"role": "user", "content": "Which one is bigger, 9.11 or 9.9? Think carefully."} + ] +) + +print("====== Reasoning Content (Thinking Mode) ======") +print(response.choices[0].message.reasoning_content) +print("====== Response (Thinking Mode) ======") +print(response.choices[0].message.content) +``` + +**Instant Mode (thinking off)** — disable thinking for faster responses: + +```python Example +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.6", + messages=[ + {"role": "user", "content": "Which one is bigger, 9.11 or 9.9? Think carefully."} + ], + extra_body={"chat_template_kwargs": {"thinking": False}} +) + +print("====== Response (Instant Mode) ======") +print(response.choices[0].message.content) +``` + +**Output Example:** + +```text Output +====== Reasoning Content (Thinking Mode) ====== +The user is asking which number is bigger: 9.11 or 9.9. This seems straightforward, but there's a viral internet debate about this due to decimal confusion. + +Let me think carefully: +- 9.11 means 9 + 11/100 = 9.11 +- 9.9 means 9 + 9/10 = 9.90 + +So 9.9 = 9.90, and 9.90 > 9.11 because 0.90 > 0.11. + +The confusion often comes from people thinking of software versioning (where 9.11 comes after 9.9) or comparing the numbers after the decimal as whole numbers (11 vs 9, thinking 11 > 9). + +So mathematically, 9.9 is clearly bigger. 9.9 - 9.11 = 0.79. + +I should explain this clearly and address the common misconception. +====== Response (Thinking Mode) ====== +Mathematically, **9.9 is bigger**. + +Here's why: + +**9.9 = 9.90** + +When comparing decimals, you need to look at the same place values: +- 9.11 = 9 ones, 1 tenth, and 1 hundredth +- 9.9 = 9 ones, 9 tenths, and 0 hundredths (9.90) + +Since **0.90 > 0.11**, it follows that **9.9 > 9.11**. + +The difference is: +9.9 - 9.11 = 0.79 + +**Why people get confused:** Many mistakenly treat the decimals like whole numbers (thinking "11 is bigger than 9") or confuse this with software version numbering (where version 9.11 comes after version 9.9). But in standard mathematics, 9.9 is definitively larger. +====== Response (Instant Mode) ====== +I need to compare 9.11 and 9.9. + +Let me think carefully by aligning the decimal places: + +- 9.11 = 9 and 11/100 = 9.11 +- 9.9 = 9 and 9/10 = 9.90 + +Since 0.90 > 0.11 + +**9.9 is bigger.** + +This is a common trick question because people sometimes mistakenly compare 11 and 9 as whole numbers after the decimal point, forgetting that 9.9 = 9.90, which is greater than 9.11. +``` + +#### 4.2.3 Tool Calling + +Kimi-K2.6 supports tool calling capabilities for agentic tasks: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.6", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + stream=True +) + +# Process streaming response +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'tool_calls') and delta.tool_calls: + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = {'name': None, 'arguments': ''} + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + if delta.content: + print(delta.content, end="", flush=True) + +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") +``` + +**Output Example:** + +```text Output +Tool Call: get_weather + Arguments: {"location": "Beijing"} +``` + +**Handling Tool Call Results:** + +```python Example +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": "The weather in Beijing is 22°C and sunny." + } +] + +final_response = client.chat.completions.create( + model="moonshotai/Kimi-K2.6", + messages=messages +) + +print(final_response.choices[0].message.content) +``` + +**Output Example:** + +```text Output +The weather in Beijing is currently **22°C and sunny**. ☀️ + +It's a nice, warm day there—great for being outdoors! +``` + +#### 4.2.4 Multimodal + Tool Calling (Agentic Vision) + +Combine vision understanding with tool calling for advanced agentic tasks: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +tools = [ + { + "type": "function", + "function": { + "name": "search_product", + "description": "Search for a product by name or description", + "parameters": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The product name or description to search for" + } + }, + "required": ["query"] + } + } + } +] + +response = client.chat.completions.create( + model="moonshotai/Kimi-K2.6", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://ofasys-multimodal-wlcb-3-toshanghai.oss-accelerate.aliyuncs.com/wpf272043/keepme/image/receipt.png" + } + }, + { + "type": "text", + "text": "Can you identify this product and search for similar items?" + } + ] + } + ], + tools=tools +) + +msg = response.choices[0].message + +# Print reasoning process +if msg.reasoning_content: + print("=== Reasoning ===") + print(msg.reasoning_content) + +# Print response content +if msg.content: + print("=== Content ===") + print(msg.content) + +# Print tool calls +if msg.tool_calls: + print("=== Tool Calls ===") + for tc in msg.tool_calls: + print(f" Function: {tc.function.name}") + print(f" Arguments: {tc.function.arguments}") +``` + +**Output Example:** + +```text Output +=== Reasoning === +The user wants me to identify the product from the receipt and search for similar items. Looking at the receipt, it's from Auntie Anne's and the item purchased is "CINNAMON SUGAR" for 17,000 IDR. This is likely a Cinnamon Sugar Pretzel from Auntie Anne's, which is a popular pretzel chain. + +I should search for this product using the search_product function. The query should be something like "Auntie Anne's Cinnamon Sugar Pretzel" or just "Cinnamon Sugar Pretzel" to find similar items. +=== Content === +Based on the receipt, the product is a **Cinnamon Sugar Pretzel** from **Auntie Anne's** (a popular pretzel bakery chain). The receipt shows it was purchased for 17,000 Indonesian Rupiah (IDR). + +Let me search for this product and similar items for you. +=== Tool Calls === + Function: search_product + Arguments: {"query":"Auntie Anne's Cinnamon Sugar Pretzel"} +``` + + +## 5. Benchmark + +### 5.1 Accuracy Benchmark + +**Test Environment:** + +- Hardware: 8× NVIDIA H200 +- Model: moonshotai/Kimi-K2.6 (INT4) +- Tensor Parallelism: 8 +- SGLang version: 0.5.9 +- Reasoning Parser: `kimi_k2` +- Tool Call Parser: `kimi_k2` + +#### 5.1.1 K2-Vendor-Verifier (Tool Calling) + +- Dataset: [K2-Vendor-Verifier](https://github.com/MoonshotAI/K2-Vendor-Verifier) tool-calls dataset (2,000 requests) +- Evaluation Tool: K2-Vendor-Verifier `tool_calls_eval.py` +- Settings: temperature=1.0, max_tokens=64,000, concurrency=256 + +**Evaluation Command:** + +```shell Command +cd K2-Vendor-Verifier + +python tool_calls_eval.py tool-calls/samples.jsonl \ + --model "moonshotai/Kimi-K2.6" \ + --base-url "http://localhost:30000/v1" \ + --api-key "placeholder" \ + --concurrency 256 \ + --temperature 1.0 \ + --max-tokens 64000 \ + --output kimi-k26-results.jsonl +``` + +**Results:** + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MetricValue
      Success Rate99.95% (1999/2000)
      Tool Call Triggered970
      Tool Call Valid89.6% (869/970)
      Tool Call Invalid (schema error)10.4% (101/970)
      + +#### 5.1.2 AIME 2025 + +- Dataset: [AIME 2025](https://huggingface.co/datasets/nvidia/aime25) (30 problems) +- Evaluation Tool: [NVIDIA NeMo-Skills](https://github.com/NVIDIA/NeMo-Skills) +- Prompt: `eval/matharena/aime` (MathArena format with `\boxed{}` answers) +- Settings: temperature=1.0, top_p=0.95, max_tokens=131,072, 32 seeds + +**Evaluation Command:** + +```shell Command +# Prepare dataset +python3 nemo_skills/dataset/aime25/prepare.py + +# Run 32 seeds in parallel +for RS in $(seq 0 31); do + python3 nemo_skills/inference/generate.py \ + input_file=nemo_skills/dataset/aime25/test.jsonl \ + output_file=results/kimi-k26/aime25/output-rs${RS}.jsonl \ + prompt_config=eval/matharena/aime \ + prompt_format=openai \ + +server.server_type=openai \ + +server.model=moonshotai/Kimi-K2.6 \ + +server.base_url=http://localhost:30000/v1 \ + ++inference.temperature=1.0 \ + ++inference.top_p=0.95 \ + ++inference.tokens_to_generate=131072 \ + ++inference.random_seed=${RS} \ + max_concurrent_requests=512 & +done +``` + +**Results:** + + + + + + + + + + + + + + + + + + + + + + +
      Evaluation ModeAccuracy
      pass@1 (avg-of-32)98.9% (29.7/30)
      majority@32100.0% (30/30)
      pass@32100.0%
      + +> 22 out of 32 seeds achieved a perfect score of 30/30. The remaining 10 seeds each missed exactly 1 problem (29/30). + +#### 5.1.3 GPQA Diamond + +- Dataset: [GPQA Diamond](https://huggingface.co/datasets/Idavidrein/gpqa) (198 questions, 4-choice multiple choice) +- Evaluation Tool: [Inspect AI](https://github.com/UKGovernmentBEIS/inspect_ai) with `inspect_evals/gpqa_diamond` +- Settings: temperature=1.0, top_p=0.95, max_tokens=131,072, 4 epochs, cot=True + +**Evaluation Command:** + +```shell Command +OPENAI_BASE_URL=http://localhost:30000/v1 OPENAI_API_KEY=placeholder \ +inspect eval inspect_evals/gpqa_diamond \ + --model openai/moonshotai/Kimi-K2.6 \ + --max-tokens 131072 \ + --temperature 1.0 \ + --top-p 0.95 \ + --max-connections 128 \ + -T cot=True +``` + +**Results (partial — 553/792 samples across 4 epochs):** + + + + + + + + + + + + + + +
      Evaluation ModeAccuracy
      pass@1 (avg across epochs)96.9%
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      EpochAccuracy
      196.4% (160/166)
      296.9% (156/161)
      396.9% (155/160)
      498.5% (65/66)
      + +#### 5.1.4 OCRBench + +- Dataset: [OCRBench](https://huggingface.co/datasets/echo840/OCRBench) (1,000 questions with images) +- Evaluation Tool: [Kimi-Vendor-Verifier](https://github.com/MoonshotAI/Kimi-Vendor-Verifier) (inspect-ai based) +- Settings: max_tokens=4,096, thinking mode enabled (opensource) + +**Evaluation Command:** + +```shell Command +cd Kimi-Vendor-Verifier + +OPENAI_BASE_URL=http://localhost:30000/v1 OPENAI_API_KEY=placeholder \ +python3 eval.py ocrbench \ + --model openai/moonshotai/Kimi-K2.6 \ + --max-tokens 4096 \ + --think-mode opensource \ + --thinking \ + --max-connections 256 +``` + +**Results:** + + + + + + + + + + + + + + +
      Evaluation ModeAccuracy
      pass@190.8%
      + +#### 5.1.5 MMMU Pro Vision + +```text Output +Pending update... +``` + +### 5.2 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA H200 GPU (8x) +- Model: Kimi-K2.6 +- Tensor Parallelism: 8 +- SGLang Version: 0.5.9 + + +Kimi-K2.6 shares the same architecture as K2.5. Speed benchmarks are expected to be equivalent. The results below are measured with K2.5 and serve as a reference. + + +We use SGLang's built-in benchmarking tool with the `random` dataset for standardized performance evaluation. + +#### 5.2.1 Latency Benchmark + +- **Model Deployment:** + +```shell Command +sglang serve \ + --model-path moonshotai/Kimi-K2.6 \ + --tp 8 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 30000 +``` + +**Scenario 1: Chat (1K/1K)** + +- Low Concurrency + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 39.77 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4221 +Request throughput (req/s): 0.25 +Input token throughput (tok/s): 153.40 +Output token throughput (tok/s): 106.10 +Peak output token throughput (tok/s): 156.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 259.50 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3972.87 +Median E2E Latency (ms): 4044.55 +P90 E2E Latency (ms): 7046.30 +P99 E2E Latency (ms): 7441.13 +---------------Time to First Token---------------- +Mean TTFT (ms): 176.89 +Median TTFT (ms): 154.24 +P99 TTFT (ms): 285.75 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 9.22 +Median TPOT (ms): 9.32 +P99 TPOT (ms): 12.72 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 9.02 +Median ITL (ms): 8.80 +P95 ITL (ms): 13.23 +P99 ITL (ms): 14.17 +Max ITL (ms): 29.38 +================================================== +``` + +- Medium Concurrency (Balanced) + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 158.05 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40775 +Request throughput (req/s): 0.51 +Input token throughput (tok/s): 250.99 +Output token throughput (tok/s): 258.18 +Peak output token throughput (tok/s): 1103.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 509.17 +Concurrency: 14.09 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 27837.05 +Median E2E Latency (ms): 23508.00 +P90 E2E Latency (ms): 57126.31 +P99 E2E Latency (ms): 66044.35 +---------------Time to First Token---------------- +Mean TTFT (ms): 374.30 +Median TTFT (ms): 375.51 +P99 TTFT (ms): 695.58 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 53.25 +Median TPOT (ms): 57.93 +P99 TPOT (ms): 85.45 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 53.95 +Median ITL (ms): 53.97 +P95 ITL (ms): 84.74 +P99 ITL (ms): 244.84 +Max ITL (ms): 655.61 +================================================== +``` + +- High Concurrency (Throughput-Optimized) + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 996.64 +Total input tokens: 249831 +Total input text tokens: 249831 +Total generated tokens: 252662 +Total generated tokens (retokenized): 252588 +Request throughput (req/s): 0.50 +Input token throughput (tok/s): 250.67 +Output token throughput (tok/s): 253.51 +Peak output token throughput (tok/s): 1199.00 +Peak concurrent requests: 104 +Total token throughput (tok/s): 504.18 +Concurrency: 92.70 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 184773.75 +Median E2E Latency (ms): 174183.65 +P90 E2E Latency (ms): 343625.28 +P99 E2E Latency (ms): 404284.53 +---------------Time to First Token---------------- +Mean TTFT (ms): 1289.59 +Median TTFT (ms): 1313.35 +P99 TTFT (ms): 2346.78 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 364.70 +Median TPOT (ms): 403.32 +P99 TPOT (ms): 452.34 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 363.82 +Median ITL (ms): 316.21 +P95 ITL (ms): 745.91 +P99 ITL (ms): 1345.88 +Max ITL (ms): 3118.59 +================================================== +``` + +**Scenario 2: Reasoning (1K/8K)** + +- Low Concurrency + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 680.26 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 44462 +Total generated tokens (retokenized): 44455 +Request throughput (req/s): 0.01 +Input token throughput (tok/s): 8.97 +Output token throughput (tok/s): 65.36 +Peak output token throughput (tok/s): 151.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 74.33 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 68019.29 +Median E2E Latency (ms): 70568.85 +P90 E2E Latency (ms): 113237.40 +P99 E2E Latency (ms): 121682.34 +---------------Time to First Token---------------- +Mean TTFT (ms): 206.17 +Median TTFT (ms): 177.28 +P99 TTFT (ms): 445.37 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 14.36 +Median TPOT (ms): 15.89 +P99 TPOT (ms): 16.43 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 15.26 +Median ITL (ms): 15.85 +P95 ITL (ms): 17.50 +P99 ITL (ms): 23.21 +Max ITL (ms): 45.22 +================================================== +``` + +- Medium Concurrency + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 2475.98 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 318306 +Total generated tokens (retokenized): 318166 +Request throughput (req/s): 0.03 +Input token throughput (tok/s): 16.02 +Output token throughput (tok/s): 128.56 +Peak output token throughput (tok/s): 847.00 +Peak concurrent requests: 18 +Total token throughput (tok/s): 144.58 +Concurrency: 14.62 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 452592.46 +Median E2E Latency (ms): 486002.05 +P90 E2E Latency (ms): 833197.57 +P99 E2E Latency (ms): 957399.48 +---------------Time to First Token---------------- +Mean TTFT (ms): 359.38 +Median TTFT (ms): 350.78 +P99 TTFT (ms): 500.36 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 111.18 +Median TPOT (ms): 122.76 +P99 TPOT (ms): 145.90 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 113.69 +Median ITL (ms): 122.81 +P95 ITL (ms): 147.87 +P99 ITL (ms): 151.03 +Max ITL (ms): 272.05 +================================================== +``` + +**Scenario 3: Summarization (8K/1K)** + +- Low Concurrency + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 120.73 +Total input tokens: 41941 +Total input text tokens: 41941 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.08 +Input token throughput (tok/s): 347.41 +Output token throughput (tok/s): 34.96 +Peak output token throughput (tok/s): 73.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 382.36 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 12068.56 +Median E2E Latency (ms): 10211.36 +P90 E2E Latency (ms): 23203.32 +P99 E2E Latency (ms): 30677.66 +---------------Time to First Token---------------- +Mean TTFT (ms): 1625.64 +Median TTFT (ms): 1526.63 +P99 TTFT (ms): 3743.51 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 24.95 +Median TPOT (ms): 23.95 +P99 TPOT (ms): 35.40 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 24.80 +Median ITL (ms): 21.73 +P95 ITL (ms): 59.56 +P99 ITL (ms): 61.10 +Max ITL (ms): 62.70 +================================================== +``` + +- Medium Concurrency + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 389.96 +Total input tokens: 300020 +Total input text tokens: 300020 +Total generated tokens: 41669 +Total generated tokens (retokenized): 41670 +Request throughput (req/s): 0.21 +Input token throughput (tok/s): 769.36 +Output token throughput (tok/s): 106.86 +Peak output token throughput (tok/s): 304.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 876.22 +Concurrency: 14.95 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 72870.97 +Median E2E Latency (ms): 70495.88 +P90 E2E Latency (ms): 121820.46 +P99 E2E Latency (ms): 148933.09 +---------------Time to First Token---------------- +Mean TTFT (ms): 2460.45 +Median TTFT (ms): 1976.29 +P99 TTFT (ms): 7305.53 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 140.57 +Median TPOT (ms): 142.31 +P99 TPOT (ms): 273.40 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 135.44 +Median ITL (ms): 95.96 +P95 ITL (ms): 152.93 +P99 ITL (ms): 1488.37 +Max ITL (ms): 6540.24 +================================================== +``` + +- High Concurrency + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 1279.50 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total generated tokens: 170000 +Total generated tokens (retokenized): 169981 +Request throughput (req/s): 0.25 +Input token throughput (tok/s): 995.62 +Output token throughput (tok/s): 132.86 +Peak output token throughput (tok/s): 703.00 +Peak concurrent requests: 67 +Total token throughput (tok/s): 1128.49 +Concurrency: 60.12 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 240385.63 +Median E2E Latency (ms): 236266.30 +P90 E2E Latency (ms): 429882.12 +P99 E2E Latency (ms): 515158.36 +---------------Time to First Token---------------- +Mean TTFT (ms): 2710.44 +Median TTFT (ms): 2345.63 +P99 TTFT (ms): 7144.20 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 443.84 +Median TPOT (ms): 493.29 +P99 TPOT (ms): 606.19 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 448.23 +Median ITL (ms): 296.17 +P95 ITL (ms): 1869.15 +P99 ITL (ms): 2708.95 +Max ITL (ms): 7778.47 +================================================== +``` + +### 5.3 Speed Benchmark (AMD MI350X) + +**Test Environment:** + +- Hardware: AMD Instinct MI350X GPU (4x) +- Model: Kimi-K2.6 (INT4) +- Tensor Parallelism: 4 +- SGLang Version: 0.5.9 +- Docker Image: `lmsysorg/sglang:v0.5.9-rocm700-mi35x` +- ROCm: 7.0 + +We use SGLang's built-in benchmarking tool with the `random` dataset for standardized performance evaluation. + + +**AMD GPU TP Constraint**: Kimi-K2.6 requires TP ≤ 4 on AMD GPUs. The model has 64 attention heads, and the AITER MLA kernel requires `heads_per_gpu % 16 == 0`. With TP=4, each GPU gets 16 heads (valid). With TP=8, each GPU gets 8 heads (invalid). + + +#### 5.3.1 Latency Benchmark + +- **Model Deployment:** + +```shell Command +SGLANG_USE_AITER=1 SGLANG_ROCM_FUSED_DECODE_MLA=0 \ +sglang serve \ + --model-path moonshotai/Kimi-K2.6 \ + --tp 4 \ + --mem-fraction-static 0.8 \ + --trust-remote-code \ + --reasoning-parser kimi_k2 \ + --tool-call-parser kimi_k2 \ + --kv-cache-dtype fp8_e4m3 \ + --host 0.0.0.0 \ + --port 30000 +``` + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- **Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 155.81 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4222 +Request throughput (req/s): 0.06 +Input token throughput (tok/s): 39.16 +Output token throughput (tok/s): 27.09 +Peak output token throughput (tok/s): 29.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 66.24 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 15576.22 +Median E2E Latency (ms): 12539.80 +P90 E2E Latency (ms): 28150.56 +P99 E2E Latency (ms): 34873.51 +---------------Time to First Token---------------- +Mean TTFT (ms): 563.50 +Median TTFT (ms): 594.92 +P99 TTFT (ms): 830.31 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 35.61 +Median TPOT (ms): 35.66 +P99 TPOT (ms): 35.77 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 35.66 +Median ITL (ms): 35.69 +P95 ITL (ms): 35.96 +P99 ITL (ms): 36.13 +Max ITL (ms): 36.92 +================================================== +``` + +- Medium Concurrency (Balanced) + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-K2.6 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 526.66 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40798 +Request throughput (req/s): 0.15 +Input token throughput (tok/s): 75.32 +Output token throughput (tok/s): 77.48 +Peak output token throughput (tok/s): 96.00 +Peak concurrent requests: 18 +Total token throughput (tok/s): 152.80 +Concurrency: 14.59 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 96023.27 +Median E2E Latency (ms): 93940.20 +P90 E2E Latency (ms): 159449.54 +P99 E2E Latency (ms): 194706.61 +---------------Time to First Token---------------- +Mean TTFT (ms): 989.08 +Median TTFT (ms): 886.42 +P99 TTFT (ms): 1543.60 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 191.04 +Median TPOT (ms): 195.20 +P99 TPOT (ms): 238.84 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 186.68 +Median ITL (ms): 183.82 +P95 ITL (ms): 189.90 +P99 ITL (ms): 673.64 +Max ITL (ms): 1633.20 +================================================== +``` diff --git a/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.mdx b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.mdx new file mode 100644 index 000000000..0d858c56b --- /dev/null +++ b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K2.mdx @@ -0,0 +1,520 @@ +--- +title: Kimi-K2 +metatags: + description: "Deploy Kimi-K2 MoE model with SGLang - 1T total parameters, 32B active, step-by-step reasoning and tool calling capabilities." +--- + +import { KimiK2Deployment } from '/src/snippets/autoregressive/kimi-k2-deployment.jsx'; + +## 1. Model Introduction + +[Kimi-K2](https://moonshotai.github.io/Kimi-K2/) is a state-of-the-art MoE language model by Moonshot AI with 32B activated parameters and 1T total parameters. + +**Model Variants:** + +- **[Kimi-K2-Instruct](https://huggingface.co/moonshotai/Kimi-K2-Instruct)**: Post-trained model optimized for general-purpose chat and agentic tasks. Compatible with vLLM, SGLang, KTransformers, and TensorRT-LLM. +- **[Kimi-K2-Thinking](https://huggingface.co/moonshotai/Kimi-K2-Thinking)**: Advanced thinking model with step-by-step reasoning and tool calling. Native INT4 quantization with 256k context window. Ideal for complex reasoning and multi-step tool use. +- **ROCm Support**: Compatible with AMD MI300X GPUs via SGLang (verified). + +For details, see [official documentation](https://github.com/MoonshotAI/Kimi-K2) and [technical report](https://www.arxiv.org/abs/2507.20534). + +## 2. SGLang Installation + +Refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance optimization, suitable for users at different levels. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model variant, deployment strategy, and capabilities. + + + +### 3.2 Configuration Tips + +- **Memory**: Requires 8 GPUs with ≥140GB each (H200/B200). Use `--context-length 128000` to conserve memory. +- **Expert Parallelism (EP)**: Use `--ep` for better MoE throughput. See [EP docs](../../../docs/advanced_features/expert_parallelism). +- **Data Parallel (DP)**: Enable with `--dp 4 --enable-dp-attention` for production throughput. +- **KV Cache**: Use `--kv-cache-dtype fp8_e4m3` to reduce memory by 50% (CUDA 11.8+). +- **Reasoning Parser**: Add `--reasoning-parser kimi_k2` for Kimi-K2-Thinking to separate thinking and content. +- **Tool Call Parser**: Add `--tool-call-parser kimi_k2` for structured tool calls. +- **AMD GPU**: Set `SGLANG_ROCM_FUSED_DECODE_MLA=0` before launching AMD GPU. + +## 4. Model Invocation + +### 4.1 Basic Usage + +See [Basic API Usage](../../../docs/get-started/quickstart). + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +Enable reasoning parser for Kimi-K2-Thinking: + +```shell Command +python -m sglang.launch_server \ + --model moonshotai/Kimi-K2-Thinking \ + --reasoning-parser kimi_k2 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="moonshotai/Kimi-K2-Thinking", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.6, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= + The user asks: "What is 15% of 240?" This is a straightforward percentage calculation problem. I need to solve it step by step. + +Step 1: Understand what "percent" means. +- "Percent" means "per hundred". So 15% means 15 per 100, or 15/100, or 0.15. + +Step 2: Convert the percentage to a decimal. +- 15% = 15 / 100 = 0.15 + +Step 3: Multiply the decimal by the number. +- 0.15 * 240 + +Step 4: Perform the multiplication. +- 0.15 * 240 = (15/100) * 240 +- = 15 * 240 / 100 +- = 3600 / 100 +- = 36 + +Alternatively, I can calculate it directly: +- 0.15 * 240 +- 15 * 240 = 3600 +- 3600 / 100 = 36 + +Or, break it down: +- 10% of 240 = 24 +- 5% of 240 = half of 10% = 12 +- 15% of 240 = 10% + 5% = 24 + 12 = 36 + +I should present the solution clearly with steps. The most standard method is converting to decimal and multiplying. + +Let me structure the answer: +1. Convert the percentage to a decimal. +2. Multiply the decimal by the number. +3. Show the calculation. +4. State the final answer. + +This is simple and easy to follow. +=============== Content ================= + Here is the step-by-step solution: + +**Step 1: Convert the percentage to a decimal** +15% means 15 per 100, which is 15 ÷ 100 = **0.15** + +**Step 2: Multiply the decimal by the number** +0.15 × 240 + +**Step 3: Calculate the result** +0.15 × 240 = **36** + +**Answer:** 15% of 240 is **36**. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.2 Tool Calling + +Kimi-K2-Instruct and Kimi-K2-Thinking support tool calling capabilities. Enable the tool call parser during deployment: + +**Deployment Command:** + +```shell Command +python -m sglang.launch_server \ + --model moonshotai/Kimi-K2-Instruct \ + --tool-call-parser kimi_k2 \ + --tp 8 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="moonshotai/Kimi-K2-Thinking", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"🔧 Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= + The user is asking about the weather in Beijing. I need to use the get_weather function to retrieve this information. Beijing is a major city in China, so I should be able to get weather data for it. The location parameter is required, but the unit parameter is optional. Since the user didn't specify a temperature unit, I can just provide the location and let the function use its default. I'll check the weather in Beijing for you. +=============== Content ================= + + 🔧 Tool Call: get_weather + Arguments: {"location":"Beijing"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="moonshotai/Kimi-K2-Thinking", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU (8x) +- Model: Kimi-K2-Instruct +- sglang version: 0.5.6.post1 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. + +#### 5.1.1 Latency-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python3 -m sglang.launch_server \ + --model-path moonshotai/Kimi-K2-Instruct \ + --tp 8 \ + --dp 4 \ + --enable-dp-attention \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 8000 \ + --model moonshotai/Kimi-K2-Instruct\ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- **Test Results**: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 44.93 +Total input tokens: 1951 +Total input text tokens: 1951 +Total input vision tokens: 0 +Total generated tokens: 2755 +Total generated tokens (retokenized): 2748 +Request throughput (req/s): 0.22 +Input token throughput (tok/s): 43.42 +Output token throughput (tok/s): 61.32 +Peak output token throughput (tok/s): 64.00 +Peak concurrent requests: 3 +Total token throughput (tok/s): 104.74 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 4489.56 +Median E2E Latency (ms): 4994.53 +---------------Time to First Token---------------- +Mean TTFT (ms): 141.22 +Median TTFT (ms): 158.28 +P99 TTFT (ms): 166.90 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 18.40 +Median TPOT (ms): 15.63 +P99 TPOT (ms): 39.88 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 15.78 +Median ITL (ms): 15.76 +P95 ITL (ms): 16.36 +P99 ITL (ms): 16.59 +Max ITL (ms): 19.94 +================================================== +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python3 -m sglang.launch_server \ + --model-path moonshotai/Kimi-K2-Instruct \ + --tp 8 \ + --dp 4 \ + --ep 4 \ + --enable-dp-attention \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 8000 \ + --model moonshotai/Kimi-K2-Instruct\ + --num-prompts 1000 \ + --max-concurrency 100 +``` + +- **Test Results**: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 174.11 +Total input tokens: 296642 +Total input text tokens: 296642 +Total input vision tokens: 0 +Total generated tokens: 193831 +Total generated tokens (retokenized): 168687 +Request throughput (req/s): 5.74 +Input token throughput (tok/s): 1703.73 +Output token throughput (tok/s): 1113.25 +Peak output token throughput (tok/s): 2383.00 +Peak concurrent requests: 112 +Total token throughput (tok/s): 2816.97 +Concurrency: 89.60 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 15601.09 +Median E2E Latency (ms): 10780.52 +---------------Time to First Token---------------- +Mean TTFT (ms): 457.42 +Median TTFT (ms): 221.62 +P99 TTFT (ms): 2475.32 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 97.23 +Median TPOT (ms): 85.61 +P99 TPOT (ms): 435.95 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 78.61 +Median ITL (ms): 43.66 +P95 ITL (ms): 169.53 +P99 ITL (ms): 260.91 +Max ITL (ms): 1703.21 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- Server Command + +```shell Command +python3 -m sglang.launch_server \ + --model-path moonshotai/Kimi-K2-Instruct \ + --tp 8 \ + --dp 4 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 --port 8000 +``` + +- **Result**: + +```text Output +Accuracy: 0.960 +Invalid: 0.000 +Latency: 15.956 s +Output throughput: 1231.699 token/s +``` diff --git a/docs_new/cookbook/autoregressive/Moonshotai/Kimi-Linear.mdx b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-Linear.mdx new file mode 100644 index 000000000..c0b4abd27 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-Linear.mdx @@ -0,0 +1,297 @@ +--- +title: Kimi-Linear +metatags: + description: "Deploy Kimi-Linear with SGLang - community contribution guide for Moonshot AI's Kimi-Linear model deployment." +--- + +import { KimiLinearDeployment } from '/src/snippets/autoregressive/kimi-linear-deployment.jsx'; + +## AMD GPU Support + +## 1. Model Introduction +Kimi Linear is a hybrid linear attention architecture that outperforms traditional full attention methods across various contexts, including short, long, and reinforcement learning (RL) scaling regimes. At its core is Kimi Delta Attention (KDA)—a refined version of Gated DeltaNet that introduces a more efficient gating mechanism to optimize the use of finite-state RNN memory. + +This generation delivers comprehensive upgrades across the board: + +Kimi Delta Attention (KDA): A linear attention mechanism that refines the gated delta rule with finegrained gating. +Hybrid Architecture: A 3:1 KDA-to-global MLA ratio reduces memory usage while maintaining or surpassing the quality of full attention. +Superior Performance: Outperforms full attention in a variety of tasks, including long-context and RL-style benchmarks on 1.4T token training runs with fair comparisons. +High Throughput: Achieves up to 6× faster decoding and significantly reduces time per output token (TPOT). + +For more details, please refer to the [official Kimi Linear GitHub Repository]: https://github.com/MoonshotAI/Kimi-Linear + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance optimization, suitable for users at different levels. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model variant, deployment strategy, and thinking capabilities. + + + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) +- [SGLang OpenAI Vision API Guide](../../../docs/basic_usage/openai_api_vision) + +### 4.2 Advanced Usage + +#### 4.2.1 Launch the docker +```shell Command +docker pull lmsysorg/sglang:v0.5.7-rocm700-mi30x +``` + +```shell Command +docker run -d -it --ipc=host --network=host --privileged \ + --cap-add=CAP_SYS_ADMIN \ + --device=/dev/kfd --device=/dev/dri --device=/dev/mem \ + --group-add video --cap-add=SYS_PTRACE \ + --security-opt seccomp=unconfined \ + -v /:/work \ + -e SHELL=/bin/bash \ + --name Kimi-linear \ + lmsysorg/sglang:v0.5.7-rocm700-mi30x \ + /bin/bash +``` + +#### 4.2.2 pre-installation steps inside the docker + +```shell Command +pip install sentencepiece tiktoken +``` + +#### 4.2.3 Launch the server +```shell Command +export SGLANG_ROCM_FUSED_DECODE_MLA=0 + +SGLANG_ROCM_FUSED_DECODE_MLA=0 python3 -m sglang.launch_server \ + --model-path moonshotai/Kimi-Linear-48B-A3B-Instruct \ + --tokenizer-path moonshotai/Kimi-Linear-48B-A3B-Instruct \ + --tp 4 \ + --trust-remote-code +``` + +## 5. Benchmark +### 5.1 Speed Benchmark +Test Environment: + +Hardware: AMD MI300X GPU + +Model: Kimi-Linear-48B-A3B-Instruct + +Tensor Parallelism: 4 + +sglang version: 0.5.7 + +- **Model Deployment** + +```bash Command +SGLANG_ROCM_FUSED_DECODE_MLA=0 python3 -m sglang.launch_server \ + --model-path moonshotai/Kimi-Linear-48B-A3B-Instruct \ + --tokenizer-path moonshotai/Kimi-Linear-48B-A3B-Instruct \ + --tp 4 \ + --trust-remote-code +``` + +### 5.1.1 Low Concurrency (Latency-Optimized) + +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-Linear-48B-A3B-Instruct \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 23.86 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4001 +Request throughput (req/s): 0.42 +Input token throughput (tok/s): 255.70 +Output token throughput (tok/s): 176.86 +Peak output token throughput (tok/s): 190.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 432.56 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 2383.93 +Median E2E Latency (ms): 1911.63 +---------------Time to First Token---------------- +Mean TTFT (ms): 141.33 +Median TTFT (ms): 126.27 +P99 TTFT (ms): 294.76 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 5.32 +Median TPOT (ms): 5.33 +P99 TPOT (ms): 5.36 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 5.33 +Median ITL (ms): 5.32 +P95 ITL (ms): 5.44 +P99 ITL (ms): 5.58 +Max ITL (ms): 11.46 +================================================== +``` + +### 5.1.2 Medium Concurrency (Balanced) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-Linear-48B-A3B-Instruct \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 31.38 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40805 +Total generated tokens (retokenized): 39667 +Request throughput (req/s): 2.55 +Input token throughput (tok/s): 1264.13 +Output token throughput (tok/s): 1300.37 +Peak output token throughput (tok/s): 1801.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 2564.50 +Concurrency: 14.13 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 5543.18 +Median E2E Latency (ms): 5755.31 +---------------Time to First Token---------------- +Mean TTFT (ms): 175.25 +Median TTFT (ms): 137.87 +P99 TTFT (ms): 292.92 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.75 +Median TPOT (ms): 10.87 +P99 TPOT (ms): 16.74 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 10.54 +Median ITL (ms): 7.95 +P95 ITL (ms): 13.68 +P99 ITL (ms): 116.80 +Max ITL (ms): 299.89 +================================================== + +``` + +### 5.1.3 High Concurrency (Throughput-Optimized) +- Benchmark Command: +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model moonshotai/Kimi-Linear-48B-A3B-Instruct \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 \ + --request-rate inf +``` + +- Test Results: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 79.71 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252662 +Total generated tokens (retokenized): 228448 +Request throughput (req/s): 6.27 +Input token throughput (tok/s): 3134.20 +Output token throughput (tok/s): 3169.72 +Peak output token throughput (tok/s): 6109.00 +Peak concurrent requests: 110 +Total token throughput (tok/s): 6303.92 +Concurrency: 94.80 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 15113.92 +Median E2E Latency (ms): 13851.52 +---------------Time to First Token---------------- +Mean TTFT (ms): 564.46 +Median TTFT (ms): 226.04 +P99 TTFT (ms): 2683.14 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 29.63 +Median TPOT (ms): 31.28 +P99 TPOT (ms): 38.84 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 28.85 +Median ITL (ms): 16.29 +P95 ITL (ms): 123.42 +P99 ITL (ms): 157.80 +Max ITL (ms): 2481.11 +================================================== +``` +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- Server Command + +```shell Command +SGLANG_ROCM_FUSED_DECODE_MLA=0 python3 -m sglang.launch_server \ + --model-path moonshotai/Kimi-Linear-48B-A3B-Instruct \ + --tokenizer-path moonshotai/Kimi-Linear-48B-A3B-Instruct \ + --tp 4 \ + --trust-remote-code +``` + +- Benchmark Command + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 +``` + +- **Result**: + +```text Output +Accuracy: 0.705 +Invalid: 0.000 +Latency: 11.855 s +Output throughput: 3224.982 token/s +``` diff --git a/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Nano.mdx b/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Nano.mdx new file mode 100644 index 000000000..4406459dd --- /dev/null +++ b/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Nano.mdx @@ -0,0 +1,375 @@ +--- +title: Nemotron3-Nano +metatags: + description: "Deploy NVIDIA Nemotron3-Nano 30B hybrid LLM with SGLang - MoE, Mamba2, and attention layers with BF16/FP8 precision options." +--- + +import { Nemotron3NanoDeployment } from '/src/snippets/autoregressive/nemotron3-nano-deployment.jsx'; + +## 1. Model Introduction + +`NVIDIA Nemotron3-Nano` is a 30B-parameter hybrid LLM that mixes Mixture-of-Experts (MoE) feed-forward layers, Mamba2 sequence-modeling layers, and standard self-attention layers in a single stack rather than classic “attention + MLP” transformer blocks. + +The BF16 variant (`nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16`) is designed as a high-fidelity reference model. For optimized inference performance on modern NVIDIA GPUs, the FP8 variant (`nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8`) and the NVFP4 variant (`nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-NVFP4`) are supported. + +At a high level: + +- **Hybrid layer stack (Mamba2 + MoE + attention):** The network is composed of interleaved layers that are *either* Mamba2, *or* MoE feed-forward, *or* attention-only. +- **Non-uniform layer ordering:** The order and mix of these specialized layers is not a simple, rigid pattern, enabling the model to trade off sequence modeling, routing capacity, and expressivity across depth. +- **Deployment-friendly precision:** Use BF16 for accuracy-sensitive and evaluation workloads; use FP8 for latency- and throughput-critical serving on recent NVIDIA GPUs. + +## 2. SGLang Installation + +Refer to the [official SGLang installation guide](../../../docs/get-started/installation), or install nightly wheel through: +```bash Command +uv pip install sglang==0.5.6.post3.dev1278+gad1b4e472 --extra-index-url https://sgl-project.github.io/whl/nightly/ +``` + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance tuning. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: select hardware, model variant, and common knobs to generate a launch command. + + + +### 3.2 Configuration Tips + +- **Attention backend**: + + **H200**: Use flash attention 3 backend by default. + **B200**: Use flashinfer backend by default. + +- **TP support**: + + To set tp size, use `--tp <1|2|4|8>`. + +- **FP8 KV cache**: + + To enable fp8 kv cache, please append `--kv-cache-dtype fp8_e4m3`. + +## 4. Model Invocation + +### 4.1 Basic Usage (OpenAI-Compatible API) + +SGLang provides an OpenAI-compatible endpoint. Example with the OpenAI Python client: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +resp = client.chat.completions.create( + model="nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8", + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Summarize what MoE models are in 5 bullets."}, + ], + temperature=0.7, + max_tokens=256, +) + +print(resp.choices[0].message.content) + +``` + +Streaming chat completion +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +stream = client.chat.completions.create( + model="nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8", + messages=[ + {"role": "system", "content": "You are a helpful AI assistant."}, + {"role": "user", "content": "What are the first 5 prime numbers?"} + ], + temperature=0.7, + max_tokens=1024, + stream=True, +) +for chunk in stream: + delta = chunk.choices[0].delta + if delta and delta.content: + print(delta.content, end="", flush=True) +``` + +### 4.2 Reasoning +To enable reasoning, `--reasoning-parser nemotron_3` should be appended to the launching command. The model supports two modes - Reasoning ON (default) vs OFF. This can be toggled by setting enable_thinking to False, as shown below. + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +# Reasoning on (default) +print("Reasoning on") +resp = client.chat.completions.create( + model="nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8", + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Write a haiku about GPUs."} + ], + temperature=0.7, + max_tokens=512, +) +print(resp.choices[0].message.reasoning_content) + +# Reasoning off +print("Reasoning off") +resp = client.chat.completions.create( + model="nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8", + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Write a haiku about GPUs."} + ], + temperature=0.6, + max_tokens=256, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} +) +print(resp.choices[0].message.reasoning_content) + +``` + +### 4.3 Tool calling +To enable reasoning, `--tool-call-parser qwen3_coder` should be appended to the launching command. Call functions using the OpenAI Tools schema and inspect returned tool_calls. + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY", +) + +# Tool calling via OpenAI tools schema +TOOLS = [ + { + "type": "function", + "function": { + "name": "calculate_tip", + "parameters": { + "type": "object", + "properties": { + "bill_total": { + "type": "integer", + "description": "The total amount of the bill" + }, + "tip_percentage": { + "type": "integer", + "description": "The percentage of tip to be applied" + } + }, + "required": ["bill_total", "tip_percentage"] + } + } + } +] + +completion = client.chat.completions.create( + model="nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8", + messages=[ + {"role": "system", "content": ""}, + {"role": "user", "content": "My bill is $50. What will be the amount for 15% tip?"} + ], + tools=TOOLS, + temperature=0.6, + top_p=0.95, + max_tokens=512, + stream=False +) + +print(completion.choices[0].message.reasoning_content) +print(completion.choices[0].message.tool_calls) +``` + +--- + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU + +**FP8 variant** + +- Model Deployment Command: + +```shell Command +python3 -m sglang.launch_server \ + --model-path nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8 \ + --trust-remote-code \ + --max-running-requests 1024 \ + --host 0.0.0.0 \ + --port 30000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8 \ + --dataset-name random \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 4096 \ + --max-concurrency 256 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 256 +Successful requests: 4096 +Benchmark duration (s): 183.18 +Total input tokens: 2081726 +Total input text tokens: 2081726 +Total input vision tokens: 0 +Total generated tokens: 2116125 +Total generated tokens (retokenized): 1076256 +Request throughput (req/s): 22.36 +Input token throughput (tok/s): 11364.25 +Output token throughput (tok/s): 11552.04 +Peak output token throughput (tok/s): 24692.00 +Peak concurrent requests: 294 +Total token throughput (tok/s): 22916.30 +Concurrency: 251.19 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 11233.74 +Median E2E Latency (ms): 11142.97 +---------------Time to First Token---------------- +Mean TTFT (ms): 172.99 +Median TTFT (ms): 116.57 +P99 TTFT (ms): 1193.68 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 21.74 +Median TPOT (ms): 21.14 +P99 TPOT (ms): 41.12 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 21.45 +Median ITL (ms): 9.06 +P95 ITL (ms): 62.59 +P99 ITL (ms): 110.83 +Max ITL (ms): 5368.19 +================================================== +``` + +**BF16 variant** + +- Model Deployment Command: + +```shell Command +python3 -m sglang.launch_server \ + --model-path nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 \ + --trust-remote-code \ + --max-running-requests 1024 \ + --host 0.0.0.0 \ + --port 30000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 \ + --dataset-name random \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 4096 \ + --max-concurrency 256 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 256 +Successful requests: 4096 +Benchmark duration (s): 360.22 +Total input tokens: 2081726 +Total input text tokens: 2081726 +Total input vision tokens: 0 +Total generated tokens: 2087288 +Total generated tokens (retokenized): 1940652 +Request throughput (req/s): 11.37 +Input token throughput (tok/s): 5779.10 +Output token throughput (tok/s): 5794.55 +Peak output token throughput (tok/s): 9169.00 +Peak concurrent requests: 276 +Total token throughput (tok/s): 11573.65 +Concurrency: 249.76 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 21965.10 +Median E2E Latency (ms): 21706.35 +---------------Time to First Token---------------- +Mean TTFT (ms): 211.54 +Median TTFT (ms): 93.06 +P99 TTFT (ms): 2637.66 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 43.27 +Median TPOT (ms): 43.04 +P99 TPOT (ms): 61.15 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 42.77 +Median ITL (ms): 28.46 +P95 ITL (ms): 71.85 +P99 ITL (ms): 113.20 +Max ITL (ms): 5237.28 +================================================== + +``` +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +**Environment** +- Hardware: NVIDIA B200 GPU +- Model: BF16 checkpoint + +**Launch Model** +```bash Command +python3 -m sglang.launch_server \ + --model-path nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 \ + --trust-remote-code \ + --reasoning-parser nemotron_3 +``` + +**Run Benchmark with lm-eval** +```bash Command +pip install lm-eval[api]==0.4.9.2 + +lm_eval --model local-completions --tasks gsm8k --model_args "model=nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16,base_url=http://127.0.0.1:30000/v1/completions,num_concurrent=4,max_retries=3,tokenized_requests=False,max_lengths=16384" --gen_kwargs '{"chat_template_kwargs":{"thinking":true}}' --batch_size 256 +``` + +**Test Results:** +```text Output +|Tasks|Version| Filter |n-shot| Metric | |Value | |Stderr| +|-----|------:|----------------|-----:|-----------|---|-----:|---|-----:| +|gsm8k| 3|flexible-extract| 5|exact_match|↑ |0.5603|± |0.0137| +| | |strict-match | 5|exact_match|↑ |0.8453|± |0.0100| +``` diff --git a/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Super.mdx b/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Super.mdx new file mode 100644 index 000000000..abcc1f48d --- /dev/null +++ b/docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Super.mdx @@ -0,0 +1,571 @@ +--- +title: NVIDIA Nemotron3-Super +metatags: + description: "Deploy NVIDIA Nemotron3-Super with SGLang - 120B hybrid MoE model (12B active) with 1M context window optimized for multi-agent systems and tool use." +--- + +import { Nemotron3SuperDeployment } from '/src/snippets/autoregressive/nemotron3-super-deployment.jsx'; + +## 1. Model Introduction + +`NVIDIA Nemotron3-Super` is a leading open model in the Nemotron 3 family, built for running many collaborating agents together. It is optimized for agentic systems that chain planning, reasoning, and tool use workloads that generate far more tokens than single turn chat and require strong reasoning at every step. + +Nemotron 3 Super is a 120B parameter hybrid MoE model that activates only 12B parameters per forward pass, delivering strong accuracy for coding, tool calling, and instruction following at a fraction of the cost. It also supports a 1M token context window so agents can keep conversation history and plan state in view across long workflows. + +Architecture and key features: + +- **Hybrid Transformer-Mamba Architecture (MoE):** Combines Mixture of Experts with a hybrid Transformer-Mamba architecture, enabling efficient routing and sequence modeling in a single stack. +- **Highest throughput efficiency in its size category:** Delivers up to 5x higher throughput compared to the previous Nemotron Super model (Llama Nemotron Super 1.5). +- **Multi-Token Prediction (MTP):** By predicting several future tokens simultaneously in a single forward pass, MTP drastically accelerates the generation of long-form text. +- **Thinking Budget support:** Supports Thinking Budget for optimal accuracy with minimum reasoning token generation. + +## 2. SGLang Installation + +SGLang from the main branch is required for Nemotron3-Super. You can install from source and with a nightly docker. + +```bash Command +# Install from source +uv pip install 'git+https://github.com/sgl-project/sglang.git#subdirectory=python' + +# Or use Docker +docker pull lmsysorg/sglang:nightly-dev-20260310-0fd9a57d +``` + +For the full Docker setup and other installation methods, please refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance tuning. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: select hardware, tensor parallelism, and common knobs to generate a launch command. + + + +### 3.2 Configuration Tips + +- **Attention backend**: + + **H200**: Use flash attention 3 backend by default. + **B200**: Use flashinfer backend by default. + +- **TP support**: + + To set tp size, use `--tp <2|4|8>`. + +- **FP8 KV cache**: + + To enable fp8 kv cache, please append `--kv-cache-dtype fp8_e4m3`. + +## 4. Model Invocation + +```shell Command +python3 -m sglang.launch_server \ + --model-path nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 \ + --host 0.0.0.0 \ + --port 5000 \ + --trust-remote-code \ + --tp 4 \ + --tool-call-parser qwen3_coder \ + --reasoning-parser nemotron_3 +``` + +### 4.1 Basic Usage (OpenAI-Compatible API) + +SGLang provides an OpenAI-compatible endpoint. Example with the OpenAI Python client: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:5000/v1", + api_key="EMPTY", +) + +resp = client.chat.completions.create( + model="nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", + messages=[ + {"role": "system", "content": "You are a helpful AI assistant."}, + {"role": "user", "content": "Give me 3 bullet points about SGLang."}, + ], + temperature=0.6, + max_tokens=1024, +) +print("Reasoning:", resp.choices[0].message.reasoning_content, "\nContent:", resp.choices[0].message.content) +print("\n") +``` + +Output: +```text Output +Reasoning: Okay, the user is asking for 3 bullet points about SGLang. Let me recall what I know about SGLang. It's a framework for serving large language models, right? Developed by the team at UC Berkeley and others. + +First, I should verify the key features. SGLang is known for its high-performance serving capabilities, especially with features like Radix Attention and chunked prefill. Those are important points to mention...(more tokens) + +Content: - SGLang introduces **Radix Attention**, an innovative attention mechanism that significantly reduces KV cache memory usage and improves computational efficiency during LLM serving by reusing intermediate states across tokens. +- It features **chunked prefill** for handling long prompts efficiently, breaking input sequences into manageable chunks to minimize latency and memory pressure while maintaining high throughput. +- Designed for **high-performance LLM serving**, SGLang achieves superior throughput and lower latency compared to traditional systems (like vLLM or TensorRT-LLM) through optimized kernel fusion, dynamic batching, and seamless integration with Hugging Face Transformers. +``` + +Streaming chat completion: +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:5000/v1", + api_key="EMPTY", +) + +stream = client.chat.completions.create( + model="nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", + messages=[ + {"role": "system", "content": "You are a helpful AI assistant."}, + {"role": "user", "content": "What are the first 5 prime numbers?"} + ], + temperature=0.7, + max_tokens=1024, + stream=True, +) +for chunk in stream: + delta = chunk.choices[0].delta + if delta and delta.content: + print(delta.content, end="", flush=True) +``` + +Output: +```text Output +The first 5 prime numbers are: +**2, 3, 5, 7, 11**. + +### Explanation: +- A **prime number** is a natural number greater than 1 that has no positive divisors other than 1 and itself. +- **2** is the smallest and only even prime number. +- **3** is prime (divisible only by 1 and 3). +- **4** is not prime (divisible by 2). +- **5** is prime. +- **6** is not prime (divisible by 2 and 3). +- **7** is prime. +- **8, 9, 10** are not prime. +- **11** is prime (the fifth in the sequence). + +Note: **1 is not considered a prime number** by definition, as it has only one positive divisor. +This list is universally accepted in mathematics. Let me know if you'd like to explore more primes or related concepts! 😊 +``` + +### 4.2 Reasoning + +The model supports two modes — Reasoning ON (default) vs OFF. This can be toggled by setting `enable_thinking` to `False`, as shown below. + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:5000/v1", + api_key="EMPTY", +) + +# Reasoning on (default) +print("Reasoning on") +resp = client.chat.completions.create( + model="nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Write a haiku about GPUs. Please make thinking process short."} + ], + temperature=1, + max_tokens=1024, +) +print(f"Reasoning: \n{resp.choices[0].message.reasoning_content[:200]}... \nContent: \n{resp.choices[0].message.content[:200]}...") +print("\n") +# Reasoning off +print("Reasoning off") +resp = client.chat.completions.create( + model="nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Give me 3 facts about SGLang."} + ], + temperature=0, + max_tokens=256, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} +) +print(f"Content: \n{resp.choices[0].message.reasoning_content[:200]}...") +``` + +Output: +```text Output +Reasoning on +Reasoning: +We need to output a haiku about GPUs, with short thinking process. Probably we just need to produce the haiku. No extra commentary needed. Provide a haiku: 5-7-5 syllable lines about GPUs. + +Let's deci... +Content: +Silicon hearts beat +Paint vivid worlds with bright light +GPU dreams rise... + +Reasoning off +Content: +Certainly! Here are three accurate and informative facts about **SGLang**: + +1. **SGLang is a high-performance serving system for large language models (LLMs)** + Developed by researchers at UC Berk... +``` + +### 4.3 Tool Calling + +Call functions using the OpenAI Tools schema and inspect returned `tool_calls`. + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:5000/v1", + api_key="EMPTY", +) + +# Tool calling via OpenAI tools schema +TOOLS = [ + { + "type": "function", + "function": { + "name": "calculate_tip", + "parameters": { + "type": "object", + "properties": { + "bill_total": { + "type": "integer", + "description": "The total amount of the bill" + }, + "tip_percentage": { + "type": "integer", + "description": "The percentage of tip to be applied" + } + }, + "required": ["bill_total", "tip_percentage"] + } + } + } +] + +completion = client.chat.completions.create( + model="nemotron", + messages=[ + {"role": "system", "content": ""}, + {"role": "user", "content": "My bill is $50. What will be the amount for 15% tip?"} + ], + tools=TOOLS, + temperature=0.6, + top_p=0.95, + max_tokens=512, + stream=False +) + +print(completion.choices[0].message.reasoning_content) +print(completion.choices[0].message.tool_calls) +``` + +Output: +```text Output +The user wants to calculate a 15% tip on a $50 bill. I have a function called calculate_tip that takes bill_total and tip_percentage as parameters. The bill_total is $50, and tip_percentage is 15. I need to call the function with these values. Let me do that. + +[ChatCompletionMessageFunctionToolCall(id='call_ced9a83a3baa448e9d587aaf', function=Function(arguments='{"bill_total": 50, "tip_percentage": 15}', name='calculate_tip'), type='function', index=0)] +``` + +### 4.4 Controlling Reasoning Budget + +The `reasoning_budget` parameter allows you to limit the length of the model's reasoning trace. When the reasoning output reaches the specified token budget, the model will attempt to gracefully end the reasoning at the next newline character. + +If no newline is encountered within 500 tokens after reaching the budget threshold, the reasoning trace will be forcibly terminated at `reasoning_budget + 500` tokens. + +```python Example +from typing import Any, Dict, List +import openai +from transformers import AutoTokenizer + +class ThinkingBudgetClient: + def __init__(self, base_url: str, api_key: str, tokenizer_name_or_path: str): + self.base_url = base_url + self.api_key = api_key + self.tokenizer = AutoTokenizer.from_pretrained(tokenizer_name_or_path) + self.client = openai.OpenAI(base_url=self.base_url, api_key=self.api_key) + + def chat_completion( + self, + model: str, + messages: List[Dict[str, Any]], + reasoning_budget: int = 512, + max_tokens: int = 1024, + **kwargs, + ) -> Dict[str, Any]: + assert ( + max_tokens > reasoning_budget + ), f"reasoning_budget must be smaller than max_tokens. Given {max_tokens=} and {reasoning_budget=}" + + # 1. first call chat completion to get reasoning content + response = self.client.chat.completions.create( + model=model, + messages=messages, + max_tokens=reasoning_budget, + **kwargs + ) + + reasoning_content = response.choices[0].message.reasoning_content or "" + + if "
      " not in reasoning_content: + # reasoning content is too long, closed with a period (.) + reasoning_content = f"{reasoning_content}.\n
      \n\n" + + reasoning_tokens_used = len( + self.tokenizer.encode(reasoning_content, add_special_tokens=False) + ) + remaining_tokens = max_tokens - reasoning_tokens_used + + assert ( + remaining_tokens > 0 + ), f"remaining tokens must be positive. Given {remaining_tokens=}. Increase max_tokens or lower reasoning_budget." + + # 2. append reasoning content to messages and call completion + messages.append({"role": "assistant", "content": reasoning_content}) + prompt = self.tokenizer.apply_chat_template( + messages, + tokenize=False, + continue_final_message=True, + ) + + response = self.client.completions.create( + model=model, + prompt=prompt, + max_tokens=remaining_tokens, + **kwargs + ) + + response_data = { + "reasoning_content": reasoning_content.strip().strip("
      ").strip(), + "content": response.choices[0].text, + "finish_reason": response.choices[0].finish_reason, + } + return response_data +``` + +Usage example with `reasoning_budget=128`: + +```python Example +SERVED_MODEL_NAME = "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16" + +# Client +client = ThinkingBudgetClient( + base_url="http://127.0.0.1:5000/v1", + api_key="null", + tokenizer_name_or_path=SERVED_MODEL_NAME +) + +resp = client.chat_completion( + model=SERVED_MODEL_NAME, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Write a haiku about GPUs."} + ], + temperature=1, + max_tokens=512, + reasoning_budget=128 +) +print("Reasoning:", resp["reasoning_content"], "\nContent:", resp["content"]) +``` + +Output: +```text Output +Reasoning: Okay, the user wants a haiku about GPUs. Let me recall what a haiku is: a traditional Japanese poem with three lines, 5-7-5 syllable structure. So I need to make sure the syllable count is exact. + +First, I should think about what makes GPUs interesting. They're used for graphics rendering, parallel processing, AI, gaming, etc. Maybe focus on their speed, power, or how they handle many tasks at once. + +Let me brainstorm some words and phrases related to GPUs: silicon, cores, transistors, parallel, rendering, pixels, frames per second, CUDA, tensor. +Content: + +Silicon minds awaken, +Thousands of cores hum in unison— +Lightning paints the void. +``` + +--- + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** +- Hardware: H200 (4x) +- Model: nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 +- Tensor Parallelism: 4 +- SGLang Version: main branch + +- Model Deployment Command: + +```shell Command +python3 -m sglang.launch_server \ + --model-path nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 \ + --trust-remote-code \ + --tp 4 \ + --max-running-requests 1024 \ + --host 0.0.0.0 \ + --port 5000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 5000 \ + --model nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 \ + --dataset-name random \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 4096 \ + --max-concurrency 256 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 256 +Successful requests: 4096 +Benchmark duration (s): 623.49 +Total input tokens: 2081726 +Total input text tokens: 2081726 +Total generated tokens: 2087288 +Total generated tokens (retokenized): 2044666 +Request throughput (req/s): 6.57 +Input token throughput (tok/s): 3338.85 +Output token throughput (tok/s): 3347.77 +Peak output token throughput (tok/s): 6349.00 +Peak concurrent requests: 270 +Total token throughput (tok/s): 6686.62 +Concurrency: 250.35 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 38108.46 +Median E2E Latency (ms): 37186.80 +P90 E2E Latency (ms): 69325.24 +P99 E2E Latency (ms): 77776.90 +---------------Time to First Token---------------- +Mean TTFT (ms): 436.49 +Median TTFT (ms): 114.90 +P99 TTFT (ms): 6938.11 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 75.02 +Median TPOT (ms): 76.02 +P99 TPOT (ms): 92.27 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 74.07 +Median ITL (ms): 38.45 +P95 ITL (ms): 230.42 +P99 ITL (ms): 242.70 +Max ITL (ms): 7181.72 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +**Environment** +- Hardware: H200 (4x) +- Model: nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 +- Tensor Parallelism: 4 +- SGLang Version: main branch + +**Launch Model** +```bash Command +python3 -m sglang.launch_server \ + --model-path nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 \ + --trust-remote-code \ + --tp 4 \ + --reasoning-parser nemotron_3 +``` + +**Run Benchmark** +```bash Command +python3 benchmark/gsm8k/bench_sglang.py --port 5000 +``` + +**Test Results:** +```text Output +Accuracy: 0.950 +Invalid: 0.000 +Latency: 21.442 s +Output throughput: 996.815 token/s +``` + +#### 5.2.2 MMLU Benchmark + +**Run Benchmark** +```bash Command +python3 benchmark/mmlu/bench_sglang.py --port 5000 +``` + +**Test Results:** +```text Output +subject: abstract_algebra, #q:100, acc: 0.730 +subject: anatomy, #q:135, acc: 0.830 +subject: astronomy, #q:152, acc: 0.934 +subject: business_ethics, #q:100, acc: 0.830 +subject: clinical_knowledge, #q:265, acc: 0.879 +subject: college_biology, #q:144, acc: 0.931 +subject: college_chemistry, #q:100, acc: 0.620 +subject: college_computer_science, #q:100, acc: 0.840 +subject: college_mathematics, #q:100, acc: 0.820 +subject: college_medicine, #q:173, acc: 0.821 +subject: college_physics, #q:102, acc: 0.794 +subject: computer_security, #q:100, acc: 0.880 +subject: conceptual_physics, #q:235, acc: 0.919 +subject: econometrics, #q:114, acc: 0.746 +subject: electrical_engineering, #q:145, acc: 0.828 +subject: elementary_mathematics, #q:378, acc: 0.926 +subject: formal_logic, #q:126, acc: 0.857 +subject: global_facts, #q:100, acc: 0.570 +subject: high_school_biology, #q:310, acc: 0.952 +subject: high_school_chemistry, #q:203, acc: 0.828 +subject: high_school_computer_science, #q:100, acc: 0.940 +subject: high_school_european_history, #q:165, acc: 0.861 +subject: high_school_geography, #q:198, acc: 0.939 +subject: high_school_government_and_politics, #q:193, acc: 0.990 +subject: high_school_macroeconomics, #q:390, acc: 0.928 +subject: high_school_mathematics, #q:270, acc: 0.700 +subject: high_school_microeconomics, #q:238, acc: 0.966 +subject: high_school_physics, #q:151, acc: 0.834 +subject: high_school_psychology, #q:545, acc: 0.960 +subject: high_school_statistics, #q:216, acc: 0.852 +subject: high_school_us_history, #q:204, acc: 0.926 +subject: high_school_world_history, #q:237, acc: 0.937 +subject: human_aging, #q:223, acc: 0.879 +subject: human_sexuality, #q:131, acc: 0.939 +subject: international_law, #q:121, acc: 0.934 +subject: jurisprudence, #q:108, acc: 0.898 +subject: logical_fallacies, #q:163, acc: 0.914 +subject: machine_learning, #q:112, acc: 0.821 +subject: management, #q:103, acc: 0.903 +subject: marketing, #q:234, acc: 0.944 +subject: medical_genetics, #q:100, acc: 0.980 +subject: miscellaneous, #q:783, acc: 0.945 +subject: moral_disputes, #q:346, acc: 0.861 +subject: moral_scenarios, #q:895, acc: 0.542 +subject: nutrition, #q:306, acc: 0.902 +subject: philosophy, #q:311, acc: 0.884 +subject: prehistory, #q:324, acc: 0.920 +subject: professional_accounting, #q:282, acc: 0.805 +subject: professional_law, #q:1534, acc: 0.681 +subject: professional_medicine, #q:272, acc: 0.923 +subject: professional_psychology, #q:612, acc: 0.889 +subject: public_relations, #q:110, acc: 0.800 +subject: security_studies, #q:245, acc: 0.837 +subject: sociology, #q:201, acc: 0.960 +subject: us_foreign_policy, #q:100, acc: 0.920 +subject: virology, #q:166, acc: 0.590 +subject: world_religions, #q:171, acc: 0.906 +Total latency: 150.267 +Average accuracy: 0.841 +``` diff --git a/docs_new/cookbook/autoregressive/OpenAI/GPT-OSS.mdx b/docs_new/cookbook/autoregressive/OpenAI/GPT-OSS.mdx new file mode 100644 index 000000000..791316982 --- /dev/null +++ b/docs_new/cookbook/autoregressive/OpenAI/GPT-OSS.mdx @@ -0,0 +1,572 @@ +--- +title: GPT-OSS +metatags: + description: "Deploy GPT-OSS (20B/120B) with SGLang - configurable reasoning, full chain-of-thought, MXFP4 quantization for single GPU deployment." +--- + +## 1.Model Introduction + +[GPT-OSS](https://huggingface.co/openai/gpt-oss-20b) is an advanced large language model developed by OpenAI designed for power reasoning, agentic tasks, and versatile developer use cases. It has versions with two model sizes. + +- **gpt-oss-120b** — for production, general purpose, high reasoning use cases that fit into a single 80GB GPU (like NVIDIA H100 80GB or AMD MI300X 192GB) (117B parameters with 5.1B active parameters) +- **gpt-oss-20b** — for lower latency, and local or specialized use cases (21B parameters with 3.6B active parameters) + +GPT-OSS introduces several groundbreaking innovations: + +- **Configurable reasoning effort**: Easily adjust the reasoning effort (low, medium, high) based on your specific use case and latency needs. +- **Full chain-of-thought**: Gain complete access to the model’s reasoning process, facilitating easier debugging and increased trust in outputs. It’s not intended to be shown to end users. +- **Fine-tunable**: Fully customize models to your specific use case through parameter fine-tuning. +- **Agentic capabilities**: Use the models’ native capabilities for function calling, web browsing, Python code execution, and Structured Outputs. +- **MXFP4 quantization**: The models were post-trained with MXFP4 quantization of the MoE weights, making gpt-oss-120b run on a single 80GB GPU (like NVIDIA H100 80GB or AMD MI300X 192GB) and the gpt-oss-20b model run within 16GB of memory. All evals were performed with the same MXFP4 quantization. + +## 2.SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3.Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +The GPT-OSS series comes in two sizes. Recommended starting configurations vary depending on hardware. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model size, quantization method, and thinking capabilities. + +import { GPTOSSDeployment } from "/src/snippets/autoregressive/gpt-oss-deployment.jsx"; + + + +### 3.2 Configuration Tips + +For more detailed configuration tips, please refer to [GPS-OSS Usage](../../../docs/basic_usage/gpt_oss). + +## 4.Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +GPT-OSS supports reasoning mode. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +python -m sglang.launch_server \ + --model openai/gpt-oss-120b \ + --reasoning-parser gpt-oss \ + --tp 8 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="openai/gpt-oss-120b", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user asks: "Solve this problem step by step: What is 15% of 240?" So we need to provide step-by-step solution. Compute 15% of 240: 0.15 * 240 = 36. Provide steps: convert percent to decimal, multiply, maybe use fraction. Provide answer. +=============== Content ================= +**Step‑by‑step solution** + +1. **Understand what “percent” means** + “15 %” means 15 out of every 100 parts, i.e. the fraction \(\displaystyle \frac{15}{100}\). + +2. **Convert the percent to a decimal (or fraction)** + \[ + \frac{15}{100}=0.15 + \] + +3. **Set up the multiplication** + To find 15 % of 240 we multiply 240 by the decimal 0.15: + \[ + 240 \times 0.15 + \] + +4. **Do the multiplication** + One convenient way is to break it into two easier parts: + \[ + 240 \times 0.15 = 240 \times \left(\frac{15}{100}\right) + = \frac{240 \times 15}{100} + \] + + - First compute \(240 \times 15\): + \[ + 240 \times 15 = 240 \times (10 + 5) = 2400 + 1200 = 3600 + \] + + - Then divide by 100: + \[ + \frac{3600}{100} = 36 + \] + +5. **Write the result** + \[ + 15\% \text{ of } 240 = 36 + \] + +--- + +**Answer:** \(36\) +``` + +#### 4.2.2 Tool Calling + +GPT-OSS supports tool calling capabilities. Enable the tool call parser: + +**Python Example (without Thinking Process):** + +Start sglang server: + +```shell Command +python -m sglang.launch_server \ + --model openai/gpt-oss-120b \ + --tool-call-parser gpt-oss \ + --tp 8 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="openai/gpt-oss-120b", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"🔧 Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +🔧 Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Python Example (with Thinking Process):** + +Start sglang server: + +```shell Command +python -m sglang.launch_server \ + --model openai/gpt-oss-120b \ + --reasoning-parser gpt-oss \ + --tool-call-parser gpt-oss \ + --tp 8 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="openai/gpt-oss-120b", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"🔧 Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +User asks: "What's the weather in Beijing?" We need to get current weather. Use function get_weather with location "Beijing". No unit specified; default? Probably use default (maybe Celsius). We can specify unit as "celsius". We'll call function. +=============== Content ================= +🔧 Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="openai/gpt-oss-120b", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The current weather in Beijing is 22 °C and sunny. Let me know if you’d like a forecast for the next few days or any other details!" +``` + +## 5.Benchmark + +### 5.1 Speed Benchmark + +- Hardware: NVIDIA B200 GPU (8x) +- Tensor Parallelism: 8 +- Model: openai/gpt-oss-120b +- sglang version: 0.5.6 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. + +#### 5.1.1 Latency-Sensitive Benchmark + +- Server Command: + +```shell Command +python -m sglang.launch_server \ + --model openai/gpt-oss-120b \ + --tp 8 +``` + +- Test Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --num-prompt 100 \ + --max-concurrency 1 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 100 +Benchmark duration (s): 52.35 +Total input tokens: 33178 +Total input text tokens: 33178 +Total input vision tokens: 0 +Total generated tokens: 21251 +Total generated tokens (retokenized): 20868 +Request throughput (req/s): 1.91 +Input token throughput (tok/s): 633.76 +Output token throughput (tok/s): 405.93 +Peak output token throughput (tok/s): 433.00 +Peak concurrent requests: 8 +Total token throughput (tok/s): 1039.69 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 523.30 +Median E2E Latency (ms): 389.91 +---------------Time to First Token---------------- +Mean TTFT (ms): 33.71 +Median TTFT (ms): 31.79 +P99 TTFT (ms): 108.98 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 2.31 +Median TPOT (ms): 2.31 +P99 TPOT (ms): 2.39 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 2.31 +Median ITL (ms): 2.31 +P95 ITL (ms): 2.35 +P99 ITL (ms): 2.38 +Max ITL (ms): 3.54 +================================================== +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Server Command: + +```shell Command +python -m sglang.launch_server \ + --model openai/gpt-oss-120b \ + --tp 8 +``` + +- Test Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --num-prompt 1000 \ + --max-concurrency 100 +``` + +**Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 24.76 +Total input tokens: 297156 +Total input text tokens: 297156 +Total input vision tokens: 0 +Total generated tokens: 192432 +Total generated tokens (retokenized): 187145 +Request throughput (req/s): 40.39 +Input token throughput (tok/s): 12003.57 +Output token throughput (tok/s): 7773.26 +Peak output token throughput (tok/s): 13780.00 +Peak concurrent requests: 156 +Total token throughput (tok/s): 19776.83 +Concurrency: 89.23 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 2208.97 +Median E2E Latency (ms): 1591.11 +---------------Time to First Token---------------- +Mean TTFT (ms): 102.94 +Median TTFT (ms): 31.53 +P99 TTFT (ms): 674.32 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 14.31 +Median TPOT (ms): 11.00 +P99 TPOT (ms): 91.28 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 11.00 +Median ITL (ms): 5.75 +P95 ITL (ms): 25.35 +P99 ITL (ms): 43.18 +Max ITL (ms): 621.42 +================================================== +``` + +### 5.2 Accuracy Benchmark + +### 5.2.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 --port 8000 +``` + +- **Results**: + + - GPT-OSS-120b + + ```text Output + Accuracy: 0.880 + Invalid: 0.005 + Latency: 5.262 s + Output throughput: 12143.675 token/s + ``` + + - GPT-OSS-20b + + ```text Output + Accuracy: 0.535 + Invalid: 0.165 + Latency: 4.157 s + Output throughput: 19589.165 token/s + ``` diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen2.5-VL.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen2.5-VL.mdx new file mode 100644 index 000000000..650e68791 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen2.5-VL.mdx @@ -0,0 +1,392 @@ +--- +title: Qwen2.5-VL +metatags: + description: "Deploy Qwen2.5-VL vision-language models with SGLang on AMD MI300X - available in 3B to 72B sizes with enhanced visual understanding." +--- + +import { Qwen25VLDeployment } from '/src/snippets/autoregressive/qwen25-vl-deployment.jsx'; + +## 1. Model Introduction + +**[Qwen2.5-VL](https://huggingface.co/collections/Qwen/qwen25-vl)** is a vision-language model series from the Qwen team, offering significant improvements over its predecessor in understanding, reasoning, and multi-modal processing. + +**Key Features:** + +- **Understand things visually**: Proficient in recognizing common objects such as flowers, birds, fish, and insects, and it is highly capable of analyzing texts, charts, icons, graphics, and layouts within images. +- **More Agentic**: Play as a visual agent that can reason and dynamically direct tools, which is capable of computer use and phone use. +- **Understanding long videos and capturing events**: Supports comprehending videos of over 1 hour, and this time it has a new ability of capturing event by pinpointing the relevant video segments. +- **Capable of visual localization in different formats**: Accurately localize objects in an image by generating bounding boxes or points, and it can provide stable JSON outputs for coordinates and attributes. +- **Generating structured outputs**: Supports structured outputs of the contents, benefiting usages in finance, commerce, etc for data like scans of invoices, forms, tables, etc. +- **Dynamic Resolution and Frame Rate Training for Video Understanding**: Extend dynamic resolution to the temporal dimension by adopting dynamic FPS sampling, enabling the model to comprehend videos at various sampling rates. Accordingly, we update mRoPE in the time dimension with IDs and absolute time alignment, enabling the model to learn temporal sequence and speed, and ultimately acquire the ability to pinpoint specific moments. +- **Multiple Sizes**: Available in 3B, 7B, 32B, and 72B variants to suit different deployment needs. +- **ROCm Support**: Compatible with AMD MI300X, MI325X and MI355X GPUs via SGLang (verified). + +For more details, please refer to the [official Qwen2.5-VL GitHub Repository](https://github.com/QwenLM/Qwen3-VL). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for AMD MI300X, MI325X and MI355X hardware platforms and different use cases. + +### 3.1 Basic Configuration + +The Qwen2.5-VL series offers models in various sizes. The following configurations have been verified on AMD MI300X, MI325X and MI355X GPUs. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform and model size. + + + +### 3.2 Configuration Tips + +* **Memory Management**: For the 72B model on MI300X/MI325X/MI355X, we have verified successful deployment with `--context-length 128000`. Smaller context lengths can be used to reduce memory usage if needed. +* **Multi-GPU Deployment**: Use Tensor Parallelism (`--tp`) to scale across multiple GPUs. For example, use `--tp 8` for the 72B model and `--tp 2` for the 32B model on MI300X/MI325X/MI355X. + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) +- [SGLang OpenAI Vision API Guide](../../../docs/basic_usage/openai_api_vision) + +### 4.2 Advanced Usage + +#### 4.2.1 Multi-Modal Inputs + +Qwen2.5-VL supports image inputs. Here's a basic example with single image input: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://ofasys-multimodal-wlcb-3-toshanghai.oss-accelerate.aliyuncs.com/wpf272043/keepme/image/receipt.png" + } + }, + { + "type": "text", + "text": "Read all the text in the image." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="Qwen/Qwen2.5-VL-7B-Instruct", + messages=messages, + max_tokens=2048 +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Example Output:** + +```text Output +Response costs: 2.31s +Generated text: Auntie Anne's + +CINNAMON SUGAR +1 x 17,000 +SUB TOTAL +17,000 + +GRAND TOTAL +17,000 + +CASH IDR +20,000 + +CHANGE DUE +3,000 +``` + +**Multi-Image Input Example:** + +Qwen2.5-VL can process multiple images in a single request for comparison or analysis: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://www.civitatis.com/f/china/hong-kong/guia/taxi.jpg" + } + }, + { + "type": "image_url", + "image_url": { + "url": "https://cdn.cheapoguides.com/wp-content/uploads/sites/7/2025/05/GettyImages-509614603-1280x600.jpg" + } + }, + { + "type": "text", + "text": "Compare these two images and describe the differences in 100 words or less." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="Qwen/Qwen2.5-VL-7B-Instruct", + messages=messages, + max_tokens=2048 +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Example Output:** + +```text Output +Response costs: 13.79s +Generated text: The first image shows a single red taxi driving on a street with a few other taxis in the background. The second image shows a large number of taxis parked in a lot, with some appearing to be in various states of repair. The first image has a single taxi with a visible license plate, while the second image has multiple taxis with different license plates. The first image has a clear view of the street and surrounding area, while the second image is taken from an elevated perspective, showing a wider view of the parking lot and the surrounding area. +``` + +**Note:** + +- You can also provide local file paths using `file://` protocol. +- For larger images, you may need more memory, adjust `--mem-fraction-static` accordingly. + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: AMD MI300X GPU (8x) +- Model: Qwen2.5-VL-72B-Instruct +- Tensor Parallelism: 8 +- SGLang Version: 0.5.6 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation with random images. To simulate real-world usage, you can specify different input and output lengths for each request. For example, each request can have 128 input tokens, two 720p images, and 1024 output tokens. + +#### 5.1.1 Latency-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen2.5-VL-72B-Instruct \ + --tp 8 \ + --host 0.0.0.0 \ + --port 30000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen2.5-VL-72B-Instruct \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen2.5-VL-72B-Instruct \ + --tp 8 \ + --host 0.0.0.0 \ + --port 30000 +``` +- Result: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 37.99 +Total input tokens: 24781 +Total input text tokens: 821 +Total input vision tokens: 23960 +Total generated tokens: 4220 +Total generated tokens (retokenized): 2365 +Request throughput (req/s): 0.26 +Input token throughput (tok/s): 652.26 +Output token throughput (tok/s): 111.07 +Peak output token throughput (tok/s): 128.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 763.34 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3797.61 +Median E2E Latency (ms): 3140.90 +P90 E2E Latency (ms): 6545.54 +P99 E2E Latency (ms): 7939.56 +---------------Time to First Token---------------- +Mean TTFT (ms): 504.45 +Median TTFT (ms): 510.93 +P99 TTFT (ms): 521.78 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 7.82 +Median TPOT (ms): 7.82 +P99 TPOT (ms): 7.84 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 10.07 +Median ITL (ms): 7.90 +P95 ITL (ms): 15.79 +P99 ITL (ms): 15.93 +Max ITL (ms): 23.60 +================================================== +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen2.5-VL-72B-Instruct \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 1000 \ + --max-concurrency 100 +``` +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 454.68 +Total input tokens: 2481865 +Total input text tokens: 85865 +Total input vision tokens: 2396000 +Total generated tokens: 510855 +Total generated tokens (retokenized): 296466 +Request throughput (req/s): 2.20 +Input token throughput (tok/s): 5458.50 +Output token throughput (tok/s): 1123.55 +Peak output token throughput (tok/s): 5004.00 +Peak concurrent requests: 106 +Total token throughput (tok/s): 6582.05 +Concurrency: 98.63 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 44844.92 +Median E2E Latency (ms): 42866.15 +P90 E2E Latency (ms): 82798.20 +P99 E2E Latency (ms): 106306.30 +---------------Time to First Token---------------- +Mean TTFT (ms): 4507.79 +Median TTFT (ms): 1180.83 +P99 TTFT (ms): 39975.22 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 80.26 +Median TPOT (ms): 82.38 +P99 TPOT (ms): 152.89 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 100.66 +Median ITL (ms): 13.26 +P95 ITL (ms): 428.45 +P99 ITL (ms): 1393.35 +Max ITL (ms): 31943.26 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 MMMU Benchmark + +You can evaluate the model's accuracy using the MMMU dataset: + +- Benchmark Command: + +```shell Command +python3 benchmark/mmmu/bench_sglang.py \ + --port 30000 \ + --concurrency 64 +``` +```text Output +Benchmark time: 97.75084622902796 +answers saved to: ./answer_sglang.json +Evaluating... +answers saved to: ./answer_sglang.json +{'Accounting': {'acc': 0.633, 'num': 30}, + 'Agriculture': {'acc': 0.5, 'num': 30}, + 'Architecture_and_Engineering': {'acc': 0.367, 'num': 30}, + 'Art': {'acc': 0.767, 'num': 30}, + 'Art_Theory': {'acc': 0.9, 'num': 30}, + 'Basic_Medical_Science': {'acc': 0.7, 'num': 30}, + 'Biology': {'acc': 0.467, 'num': 30}, + 'Chemistry': {'acc': 0.433, 'num': 30}, + 'Clinical_Medicine': {'acc': 0.733, 'num': 30}, + 'Computer_Science': {'acc': 0.567, 'num': 30}, + 'Design': {'acc': 0.833, 'num': 30}, + 'Diagnostics_and_Laboratory_Medicine': {'acc': 0.467, 'num': 30}, + 'Economics': {'acc': 0.767, 'num': 30}, + 'Electronics': {'acc': 0.433, 'num': 30}, + 'Energy_and_Power': {'acc': 0.467, 'num': 30}, + 'Finance': {'acc': 0.533, 'num': 30}, + 'Geography': {'acc': 0.633, 'num': 30}, + 'History': {'acc': 0.7, 'num': 30}, + 'Literature': {'acc': 0.867, 'num': 30}, + 'Manage': {'acc': 0.633, 'num': 30}, + 'Marketing': {'acc': 0.733, 'num': 30}, + 'Materials': {'acc': 0.333, 'num': 30}, + 'Math': {'acc': 0.533, 'num': 30}, + 'Mechanical_Engineering': {'acc': 0.433, 'num': 30}, + 'Music': {'acc': 0.367, 'num': 30}, + 'Overall': {'acc': 0.62, 'num': 900}, + 'Overall-Art and Design': {'acc': 0.717, 'num': 120}, + 'Overall-Business': {'acc': 0.66, 'num': 150}, + 'Overall-Health and Medicine': {'acc': 0.693, 'num': 150}, + 'Overall-Humanities and Social Science': {'acc': 0.775, 'num': 120}, + 'Overall-Science': {'acc': 0.553, 'num': 150}, + 'Overall-Tech and Engineering': {'acc': 0.443, 'num': 210}, + 'Pharmacy': {'acc': 0.833, 'num': 30}, + 'Physics': {'acc': 0.7, 'num': 30}, + 'Psychology': {'acc': 0.767, 'num': 30}, + 'Public_Health': {'acc': 0.733, 'num': 30}, + 'Sociology': {'acc': 0.767, 'num': 30}} +eval out saved to ./val_sglang.json +Overall accuracy: 0.62 +``` diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder-Next.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder-Next.mdx new file mode 100644 index 000000000..9016a2bd9 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder-Next.mdx @@ -0,0 +1,902 @@ +--- +title: Qwen3-Coder-Next +metatags: + description: "Deploy Qwen3-Coder-Next code-focused models with SGLang on AMD MI300X - available in 3B to 80B sizes with enhanced code understanding." +--- + +import { Qwen3CoderNextDeployment } from '/src/snippets/autoregressive/qwen3-coder-next-deployment.jsx'; + +## 1. Model Introduction + +[Qwen3-Coder-Next](https://huggingface.co/Qwen/Qwen3-Coder-Next) is a cost-efficient code-focused language model from the Qwen team (Alibaba). With 80B total parameters but only 3B activated parameters, it achieves performance comparable to models with 10–20x more active parameters through its innovative hybrid architecture. + +**Key Features:** + +- **Hybrid Architecture**: Uses a 48-layer hybrid layout combining Gated DeltaNet and Gated Attention with Mixture-of-Experts (512 total experts, 10 activated, 1 shared), enabling exceptional efficiency. +- **Tool Calling Support**: Advanced agentic capabilities with native support for function calling and tool use via the `qwen3_coder` parser. +- **Extended Context Length**: Supports up to 256K tokens for processing large codebases and long documents. +- **Cost-Efficient Inference**: Only 3B parameters activated per token, making it ideal for local development and cost-effective deployment at scale. +- **IDE Integration**: Compatible with Claude Code, Qwen Code, Cline, and other IDE platforms. + +For more details, please refer to the [Qwen3-Coder-Next model card](https://huggingface.co/Qwen/Qwen3-Coder-Next). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +**Note:** Qwen3-Coder-Next requires SGLang v0.5.8 or later. + +## 3. Model Deployment + +This section provides a progressive guide from quick deployment to performance optimization, suitable for users at different levels. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform and deployment options. + + + +### 3.2 Configuration Tips + +- **Context Length**: The model supports up to 256K tokens natively. If you encounter OOM issues, try `--context-length 32768`. +- **Tool Use**: To enable tool calling capabilities, use the `--tool-call-parser qwen3_coder` flag. +- **Sampling Parameters**: SGLang automatically applies the recommended sampling parameters from the model's `generation_config.json`. No manual configuration is needed. +- **Mamba Radix Cache**: Qwen3-Coder-Next's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-scheduler-strategy`: + - **V1 (`no_buffer`)**: Default. No overlap scheduler, lower memory usage. + - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-scheduler-strategy extra_buffer --page-size 64`. Requires FLA kernel backend. Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). + +## 4. Model Invocation + +**Deployment Command:** + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-Coder-Next \ + --tp 2 \ + --tool-call-parser qwen3_coder \ + --host 0.0.0.0 \ + --port 30000 +``` + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Code Generation Example + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="Qwen/Qwen3-Coder-Next", + messages=[ + {"role": "user", "content": "Write a Python function that implements binary search on a sorted list. Include type hints."} + ], + max_tokens=2048 +) + +print(response.choices[0].message.content) +``` + +**Example Output:** + +````text Output +Here's a Python function implementing binary search on a sorted list, with comprehensive type hints: + +```python +from typing import Sequence, TypeVar, Optional + +T = TypeVar('T') + +def binary_search(sorted_list: Sequence[T], target: T) -> Optional[int]: + """ + Perform binary search on a sorted list to find the index of a target element. + + Args: + sorted_list: A sequence (e.g., list, tuple) sorted in ascending order. + target: The element to search for in the list. + + Returns: + The index of the target element if found, or None if not found. + + Time Complexity: O(log n) + Space Complexity: O(1) + + Note: + The function assumes the list is sorted in ascending order. + If the list contains duplicate elements, it returns the index of one of them. + """ + left = 0 + right = len(sorted_list) - 1 + + while left <= right: + mid = (left + right) // 2 + mid_val = sorted_list[mid] + + if mid_val == target: + return mid + elif mid_val < target: + left = mid + 1 + else: + right = mid - 1 + + return None +``` + +### Example usage: + +```python +# Example 1: Finding an existing element +numbers = [1, 3, 5, 7, 9, 11] +print(binary_search(numbers, 7)) # Output: 3 + +# Example 2: Element not in the list +print(binary_search(numbers, 4)) # Output: None + +# Example 3: Empty list +print(binary_search([], 5)) # Output: None + +# Example 4: Single element +print(binary_search([1], 1)) # Output: 0 +print(binary_search([1], 2)) # Output: None +``` + +### Key features: +- Uses `TypeVar` to support generic types (as long as comparison operations are defined) +- Returns `Optional[int]` to indicate either the index or no match found +- Uses `Sequence[T]` to accept any sequence type (list, tuple, etc.) +- Includes comprehensive docstring with time/space complexity +- Implements standard iterative binary search for O(1) space complexity +```` + +#### 4.2.2 Streaming Example + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="Qwen/Qwen3-Coder-Next", + messages=[ + {"role": "user", "content": "Explain the difference between a stack and a queue in 3 sentences."} + ], + max_tokens=512, + stream=True +) + +for chunk in response: + if chunk.choices and chunk.choices[0].delta.content: + print(chunk.choices[0].delta.content, end="", flush=True) +print() +``` + +**Example Output:** + +```text Output +A **stack** follows the **Last In, First Out (LIFO)** principle, meaning the last element added is the first one removed—operations like `push` (add) and `pop` (remove) occur at the same end, called the *top*. In contrast, a **queue** follows the **First In, First Out (FIFO)** principle, where elements are added at the *back* (enqueue) and removed from the *front* (dequeue), preserving the order of insertion. This structural difference makes stacks ideal for tasks like function call management and expression evaluation, while queues suit scheduling, buffering, and breadth-first traversal. +``` + +#### 4.2.3 Tool Calling Example + +Qwen3-Coder-Next supports tool calling capabilities. Make sure `--tool-call-parser qwen3_coder` is included in the deployment command above. + +**Python Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "execute_code", + "description": "Execute Python code and return the result", + "parameters": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The Python code to execute" + } + }, + "required": ["code"] + } + } + } +] + +response = client.chat.completions.create( + model="Qwen/Qwen3-Coder-Next", + messages=[ + {"role": "user", "content": "Calculate the factorial of 10 using Python"} + ], + tools=tools +) + +# Check if the model wants to call a tool +if response.choices[0].message.tool_calls: + tool_call = response.choices[0].message.tool_calls[0] + print(f"Tool: {tool_call.function.name}") + print(f"Arguments: {tool_call.function.arguments}") +else: + print(response.choices[0].message.content) +``` + +**Example Output:** + +```text Output +Tool: execute_code +Arguments: {"code": "import math\nmath.factorial(10)"} +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU (2x) +- Model: Qwen/Qwen3-Coder-Next +- Tensor Parallelism: 2 +- sglang version: 0.5.8+ + +#### 5.1.1 Standard Scenario Benchmark + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-Coder-Next \ + --tp 2 \ + --host 0.0.0.0 \ + --port 30000 +``` + +##### 5.1.1.1 Low Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3-Coder-Next \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` +- Result: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 27.86 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4218 +Request throughput (req/s): 0.36 +Input token throughput (tok/s): 219.00 +Output token throughput (tok/s): 151.48 +Peak output token throughput (tok/s): 166.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 370.48 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 2784.14 +Median E2E Latency (ms): 2258.08 +P90 E2E Latency (ms): 5044.43 +P99 E2E Latency (ms): 6130.52 +---------------Time to First Token---------------- +Mean TTFT (ms): 161.68 +Median TTFT (ms): 168.09 +P99 TTFT (ms): 183.26 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 6.19 +Median TPOT (ms): 6.23 +P99 TPOT (ms): 6.32 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 6.23 +Median ITL (ms): 6.23 +P95 ITL (ms): 6.51 +P99 ITL (ms): 6.64 +Max ITL (ms): 13.45 +================================================== +``` + +##### 5.1.1.2 Medium Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3-Coder-Next \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` +- Result: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 39.06 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40789 +Request throughput (req/s): 2.05 +Input token throughput (tok/s): 1015.62 +Output token throughput (tok/s): 1044.73 +Peak output token throughput (tok/s): 1664.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 2060.34 +Concurrency: 14.16 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 6910.97 +Median E2E Latency (ms): 7248.27 +P90 E2E Latency (ms): 11612.63 +P99 E2E Latency (ms): 13933.91 +---------------Time to First Token---------------- +Mean TTFT (ms): 183.48 +Median TTFT (ms): 156.50 +P99 TTFT (ms): 311.46 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 13.61 +Median TPOT (ms): 13.59 +P99 TPOT (ms): 21.11 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 13.22 +Median ITL (ms): 9.76 +P95 ITL (ms): 10.43 +P99 ITL (ms): 158.04 +Max ITL (ms): 394.39 +================================================== +``` + +##### 5.1.1.3 High Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3-Coder-Next \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 +``` +- Result: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 102.81 +Total input tokens: 249831 +Total input text tokens: 249831 +Total generated tokens: 252662 +Total generated tokens (retokenized): 252536 +Request throughput (req/s): 4.86 +Input token throughput (tok/s): 2429.99 +Output token throughput (tok/s): 2457.53 +Peak output token throughput (tok/s): 5299.00 +Peak concurrent requests: 109 +Total token throughput (tok/s): 4887.52 +Concurrency: 94.28 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 19385.20 +Median E2E Latency (ms): 17584.09 +P90 E2E Latency (ms): 36762.15 +P99 E2E Latency (ms): 42518.35 +---------------Time to First Token---------------- +Mean TTFT (ms): 270.62 +Median TTFT (ms): 159.65 +P99 TTFT (ms): 938.90 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 38.57 +Median TPOT (ms): 41.78 +P99 TPOT (ms): 53.28 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 37.90 +Median ITL (ms): 18.26 +P95 ITL (ms): 167.82 +P99 ITL (ms): 311.45 +Max ITL (ms): 993.20 +================================================== +``` + +#### 5.1.2 Reasoning Scenario Benchmark + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-Coder-Next \ + --tp 2 \ + --host 0.0.0.0 \ + --port 30000 +``` + +##### 5.1.2.1 Low Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3-Coder-Next \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- Result: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 285.02 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 44462 +Total generated tokens (retokenized): 44432 +Request throughput (req/s): 0.04 +Input token throughput (tok/s): 21.41 +Output token throughput (tok/s): 156.00 +Peak output token throughput (tok/s): 173.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 177.40 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 28499.54 +Median E2E Latency (ms): 30424.65 +P90 E2E Latency (ms): 49132.26 +P99 E2E Latency (ms): 51075.28 +---------------Time to First Token---------------- +Mean TTFT (ms): 95.51 +Median TTFT (ms): 93.86 +P99 TTFT (ms): 112.56 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 6.24 +Median TPOT (ms): 6.30 +P99 TPOT (ms): 6.60 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 6.39 +Median ITL (ms): 6.34 +P95 ITL (ms): 7.16 +P99 ITL (ms): 7.42 +Max ITL (ms): 12.48 +================================================== +``` + +##### 5.1.2.2 Medium Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3-Coder-Next \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` + +- Result: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 237.77 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 318306 +Total generated tokens (retokenized): 315646 +Request throughput (req/s): 0.34 +Input token throughput (tok/s): 166.83 +Output token throughput (tok/s): 1338.72 +Peak output token throughput (tok/s): 1727.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 1505.55 +Concurrency: 13.88 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 41266.21 +Median E2E Latency (ms): 41010.10 +P90 E2E Latency (ms): 77574.22 +P99 E2E Latency (ms): 82688.04 +---------------Time to First Token---------------- +Mean TTFT (ms): 140.73 +Median TTFT (ms): 84.52 +P99 TTFT (ms): 365.86 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.32 +Median TPOT (ms): 10.38 +P99 TPOT (ms): 10.87 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 10.34 +Median ITL (ms): 10.19 +P95 ITL (ms): 10.75 +P99 ITL (ms): 11.18 +Max ITL (ms): 206.79 +================================================== +``` + +##### 5.1.2.3 High Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3-Coder-Next \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 +``` + +- Result: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 384.82 +Total input tokens: 158939 +Total input text tokens: 158939 +Total generated tokens: 1301025 +Total generated tokens (retokenized): 1299908 +Request throughput (req/s): 0.83 +Input token throughput (tok/s): 413.02 +Output token throughput (tok/s): 3380.83 +Peak output token throughput (tok/s): 4317.00 +Peak concurrent requests: 69 +Total token throughput (tok/s): 3793.85 +Concurrency: 56.42 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 67847.54 +Median E2E Latency (ms): 70724.38 +P90 E2E Latency (ms): 120888.83 +P99 E2E Latency (ms): 133234.48 +---------------Time to First Token---------------- +Mean TTFT (ms): 212.24 +Median TTFT (ms): 115.96 +P99 TTFT (ms): 652.93 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 16.76 +Median TPOT (ms): 16.99 +P99 TPOT (ms): 18.18 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 16.64 +Median ITL (ms): 15.83 +P95 ITL (ms): 31.64 +P99 ITL (ms): 90.85 +Max ITL (ms): 576.60 +================================================== +``` + +#### 5.1.3 Summarization Scenario Benchmark + +##### 5.1.3.1 Low Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3-Coder-Next \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- Result: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 29.42 +Total input tokens: 41941 +Total input text tokens: 41941 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4220 +Request throughput (req/s): 0.34 +Input token throughput (tok/s): 1425.35 +Output token throughput (tok/s): 143.42 +Peak output token throughput (tok/s): 169.00 +Peak concurrent requests: 3 +Total token throughput (tok/s): 1568.77 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 2941.19 +Median E2E Latency (ms): 2411.84 +P90 E2E Latency (ms): 5661.26 +P99 E2E Latency (ms): 6497.45 +---------------Time to First Token---------------- +Mean TTFT (ms): 139.46 +Median TTFT (ms): 160.33 +P99 TTFT (ms): 184.30 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 6.56 +Median TPOT (ms): 6.65 +P99 TPOT (ms): 7.29 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 6.65 +Median ITL (ms): 6.68 +P95 ITL (ms): 7.39 +P99 ITL (ms): 7.51 +Max ITL (ms): 16.34 +================================================== +``` + +##### 5.1.3.2 Medium Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3-Coder-Next \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` + +- Result: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 41.62 +Total input tokens: 300020 +Total input text tokens: 300020 +Total generated tokens: 41669 +Total generated tokens (retokenized): 41664 +Request throughput (req/s): 1.92 +Input token throughput (tok/s): 7208.67 +Output token throughput (tok/s): 1001.19 +Peak output token throughput (tok/s): 1536.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 8209.86 +Concurrency: 14.27 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 7421.29 +Median E2E Latency (ms): 7985.77 +P90 E2E Latency (ms): 12122.09 +P99 E2E Latency (ms): 14595.05 +---------------Time to First Token---------------- +Mean TTFT (ms): 248.49 +Median TTFT (ms): 179.25 +P99 TTFT (ms): 915.90 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 14.13 +Median TPOT (ms): 14.28 +P99 TPOT (ms): 24.02 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 13.80 +Median ITL (ms): 10.46 +P95 ITL (ms): 11.00 +P99 ITL (ms): 173.14 +Max ITL (ms): 823.32 +================================================== +``` + +##### 5.1.3.3 High Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3-Coder-Next \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 +``` + +- Result: +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 85.74 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total generated tokens: 170000 +Total generated tokens (retokenized): 169983 +Request throughput (req/s): 3.73 +Input token throughput (tok/s): 14858.12 +Output token throughput (tok/s): 1982.80 +Peak output token throughput (tok/s): 3734.00 +Peak concurrent requests: 70 +Total token throughput (tok/s): 16840.92 +Concurrency: 59.75 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 16008.12 +Median E2E Latency (ms): 15460.65 +P90 E2E Latency (ms): 27705.81 +P99 E2E Latency (ms): 32874.74 +---------------Time to First Token---------------- +Mean TTFT (ms): 476.99 +Median TTFT (ms): 177.50 +P99 TTFT (ms): 3014.39 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 29.81 +Median TPOT (ms): 31.19 +P99 TPOT (ms): 45.53 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 29.29 +Median ITL (ms): 15.75 +P95 ITL (ms): 173.94 +P99 ITL (ms): 202.00 +Max ITL (ms): 2783.23 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python benchmark/gsm8k/bench_sglang.py --port 30000 +``` + +- **Test Results:** + +```text Output +Accuracy: 0.965 +Invalid: 0.000 +Latency: 26.407 s +Output throughput: 929.132 token/s +``` + +#### 5.2.2 MMLU Benchmark + +- **Benchmark Command:** + +```shell Command +cd benchmark/mmlu +bash download_data.sh +python3 bench_sglang.py --port 30000 +``` + +- **Test Results:** + +```text Output +subject: abstract_algebra, #q:100, acc: 0.780 +subject: anatomy, #q:135, acc: 0.807 +subject: astronomy, #q:152, acc: 0.921 +subject: business_ethics, #q:100, acc: 0.820 +subject: clinical_knowledge, #q:265, acc: 0.860 +subject: college_biology, #q:144, acc: 0.944 +subject: college_chemistry, #q:100, acc: 0.590 +subject: college_computer_science, #q:100, acc: 0.820 +subject: college_mathematics, #q:100, acc: 0.800 +subject: college_medicine, #q:173, acc: 0.803 +subject: college_physics, #q:102, acc: 0.775 +subject: computer_security, #q:100, acc: 0.880 +subject: conceptual_physics, #q:235, acc: 0.936 +subject: econometrics, #q:114, acc: 0.807 +subject: electrical_engineering, #q:145, acc: 0.834 +subject: elementary_mathematics, #q:378, acc: 0.854 +subject: formal_logic, #q:126, acc: 0.802 +subject: global_facts, #q:100, acc: 0.610 +subject: high_school_biology, #q:310, acc: 0.971 +subject: high_school_chemistry, #q:203, acc: 0.803 +subject: high_school_computer_science, #q:100, acc: 0.920 +subject: high_school_european_history, #q:165, acc: 0.891 +subject: high_school_geography, #q:198, acc: 0.929 +subject: high_school_government_and_politics, #q:193, acc: 0.969 +subject: high_school_macroeconomics, #q:390, acc: 0.903 +subject: high_school_mathematics, #q:270, acc: 0.689 +subject: high_school_microeconomics, #q:238, acc: 0.962 +subject: high_school_physics, #q:151, acc: 0.854 +subject: high_school_psychology, #q:545, acc: 0.947 +subject: high_school_statistics, #q:216, acc: 0.815 +subject: high_school_us_history, #q:204, acc: 0.907 +subject: high_school_world_history, #q:237, acc: 0.937 +subject: human_aging, #q:223, acc: 0.821 +subject: human_sexuality, #q:131, acc: 0.840 +subject: international_law, #q:121, acc: 0.934 +subject: jurisprudence, #q:108, acc: 0.870 +subject: logical_fallacies, #q:163, acc: 0.847 +subject: machine_learning, #q:112, acc: 0.812 +subject: management, #q:103, acc: 0.922 +subject: marketing, #q:234, acc: 0.923 +subject: medical_genetics, #q:100, acc: 0.970 +subject: miscellaneous, #q:783, acc: 0.941 +subject: moral_disputes, #q:346, acc: 0.850 +subject: moral_scenarios, #q:895, acc: 0.726 +subject: nutrition, #q:306, acc: 0.915 +subject: philosophy, #q:311, acc: 0.859 +subject: prehistory, #q:324, acc: 0.889 +subject: professional_accounting, #q:282, acc: 0.723 +subject: professional_law, #q:1534, acc: 0.648 +subject: professional_medicine, #q:272, acc: 0.923 +subject: professional_psychology, #q:612, acc: 0.845 +subject: public_relations, #q:110, acc: 0.782 +subject: security_studies, #q:245, acc: 0.796 +subject: sociology, #q:201, acc: 0.925 +subject: us_foreign_policy, #q:100, acc: 0.950 +subject: virology, #q:166, acc: 0.572 +subject: world_religions, #q:171, acc: 0.883 +Total latency: 208.985 +Average accuracy: 0.834 +``` diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder.mdx new file mode 100644 index 000000000..c02d69088 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Coder.mdx @@ -0,0 +1,520 @@ +--- +title: Qwen3-Coder +metatags: + description: "Deploy Qwen3-Coder(480B, 30B) MoE coding model with SGLang on AMD MI300X (MI325X, MI355X)" +--- + +import { Qwen3CoderDeployment } from '/src/snippets/autoregressive/qwen3-coder-deployment.jsx'; + +## 1. Model Introduction + +[Qwen3-Coder](https://huggingface.co/collections/Qwen/qwen3-coder) is the latest code-focused large language model series from the Qwen team. Built on the foundation of Qwen3, Qwen3-Coder delivers exceptional performance in code generation, understanding, and reasoning tasks. + +**Key Features:** + +- **State-of-the-art Coding Performance**: Achieves top-tier results on HumanEval, MBPP, LiveCodeBench, and other major coding benchmarks. +- **Tool Calling Support**: Native support for function calling and tool use, enabling seamless integration with external APIs and services. +- **Extended Context Length**: Supports up to 256K tokens for processing large codebases and long documents. +- **Multilingual Code Support**: Proficient in Python, JavaScript, TypeScript, Java, C++, Go, Rust, and many other programming languages. +- **MoE Architecture**: Efficient Mixture-of-Experts design for optimal performance-to-cost ratio. +- **ROCm Support**: Compatible with AMD MI300X, MI325X and MI355X GPUs via SGLang (verified). +- **NVIDIA GPU Support**: Compatible with NVIDIA GB200 and B200 GPUs via SGLang (verified). + +For more details, please refer to the [official Qwen3-Coder GitHub Repository](https://github.com/QwenLM/Qwen3-Coder). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations verified on AMD MI300X, MI325X, MI355X and NVIDIA B200, GB200 hardware platforms. + +### 3.1 Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model size, and quantization method. + + + +### 3.2 Configuration Tips + +**AMD (MI300X/MI325X/MI355X):** +* **Memory Management**: We have verified successful deployment on MI300X/MI325X/MI355X with `--context-length 8192`. Larger context lengths may be supported but require additional memory. +* **Expert Parallelism**: For 480B-A35B with FP8 quantization, `--ep 2` is required to satisfy the dimension alignment requirement. +* **Page Size**: `--page-size 32` is recommended for MoE models to optimize memory usage. +* **Environment Variable**: If you encounter aiter-related issues, try setting `SGLANG_USE_AITER=0`. + +**NVIDIA (B200/GB200):** +* **MOE Runner Backend**: FP8 uses `--moe-runner-backend triton`, NVFP4 uses `--moe-runner-backend flashinfer_cutlass`. +* **NVFP4 Quantization**: Requires `--quantization modelopt_fp4` and uses a different model path (`nvidia/Qwen3-Coder-...`). +* **DP Attention**: NVFP4 configuration supports `--enable-dp-attention` for improved throughput. + +**General:** +* **Tool Use**: To enable tool calling capabilities, add `--tool-call-parser qwen3_coder` to the launch command. + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Code Generation Example + +```python Example +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": "Write a Python function that implements binary search on a sorted list. Include docstring and type hints." + } +] + +response = client.chat.completions.create( + model="Qwen/Qwen3-Coder-480B-A35B-Instruct", + messages=messages, + max_tokens=2048, + temperature=0.7 +) + +print(response.choices[0].message.content) +``` + +**Example Output:** + +````text Output +```python +from typing import List, Optional, TypeVar + +T = TypeVar('T') + +def binary_search(arr: List[T], target: T) -> Optional[int]: + """ + Perform binary search on a sorted list to find the index of a target element. + + This function implements the binary search algorithm, which efficiently finds + a target value in a sorted array by repeatedly dividing the search interval + in half. + + Args: + arr (List[T]): A sorted list of elements to search through. + target (T): The element to search for in the list. + + Returns: + Optional[int]: The index of the target element if found, None otherwise. + + Time Complexity: + O(log n) where n is the number of elements in the array. + + Space Complexity: + O(1) - iterative implementation uses constant extra space. + + Examples: + >>> binary_search([1, 2, 3, 4, 5], 3) + 2 + >>> binary_search([1, 2, 3, 4, 5], 6) + None + >>> binary_search(['a', 'b', 'c', 'd'], 'b') + 1 + >>> binary_search([], 1) + None + """ + if not arr: + return None + + left: int = 0 + right: int = len(arr) - 1 + + while left <= right: + mid: int = (left + right) // 2 + + if arr[mid] == target: + return mid + elif arr[mid] < target: + left = mid + 1 + else: + right = mid - 1 + + return None + +# Alternative recursive implementation +def binary_search_recursive(arr: List[T], target: T, left: int = 0, right: Optional[int] = None) -> Optional[int]: + """ + Perform binary search recursively on a sorted list to find the index of a target element. + + Args: + arr (List[T]): A sorted list of elements to search through. + target (T): The element to search for in the list. + left (int): Left boundary of the search range (inclusive). + right (Optional[int]): Right boundary of the search range (inclusive). + + Returns: + Optional[int]: The index of the target element if found, None otherwise. + + Time Complexity: + O(log n) where n is the number of elements in the array. + + Space Complexity: + O(log n) due to recursive call stack. + + Examples: + >>> binary_search_recursive([1, 2, 3, 4, 5], 3) + 2 + >>> binary_search_recursive([1, 2, 3, 4, 5], 6) + None + """ + if not arr: + return None + + if right is None: + right = len(arr) - 1 + + if left > right: + return None + + mid: int = (left + right) // 2 + + if arr[mid] == target: + return mid + elif arr[mid] < target: + return binary_search_recursive(arr, target, mid + 1, right) + else: + return binary_search_recursive(arr, target, left, mid - 1) +``` + +This implementation provides: + +1. **Main function** (`binary_search`): An iterative implementation that's more memory-efficient +2. **Alternative function** (`binary_search_recursive`): A recursive implementation for educational purposes +3. **Type hints**: Using generics (`TypeVar`) to work with any comparable type +4. **Comprehensive docstring**: Including description, parameters, return value, complexity analysis, and examples +5. **Edge case handling**: Empty lists, elements not found, etc. +6. **Clear variable names**: Self-documenting code +7. **Examples**: Doctest-style examples in the docstring + +The function works with any sorted list of comparable elements (integers, strings, etc.) and returns the index of the target element if found, or `None` if not found. +```` + +#### 4.2.2 Tool Calling Example + +Qwen3-Coder supports tool calling capabilities. Enable the tool call parser during deployment. The following example uses 30B-A3B model: + +```shell Command +SGLANG_USE_AITER=0 python -m sglang.launch_server \ + --model Qwen/Qwen3-Coder-30B-A3B-Instruct \ + --tp 1 \ + --context-length 8192 \ + --page-size 32 \ + --tool-call-parser qwen3_coder +``` + +**Python Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "execute_code", + "description": "Execute Python code and return the result", + "parameters": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The Python code to execute" + } + }, + "required": ["code"] + } + } + } +] + +response = client.chat.completions.create( + model="Qwen/Qwen3-Coder-30B-A3B-Instruct", + messages=[ + {"role": "user", "content": "Calculate the factorial of 10 using Python"} + ], + tools=tools, + temperature=0.7 +) + +# Check if the model wants to call a tool +if response.choices[0].message.tool_calls: + tool_call = response.choices[0].message.tool_calls[0] + print(f"Tool: {tool_call.function.name}") + print(f"Arguments: {tool_call.function.arguments}") +else: + # Model may return tool call in content format + print(response.choices[0].message.content) +``` + +**Example Output:** + +```text Output +Tool: execute_code +Arguments: {"code": "def factorial(n):\n if n == 0 or n == 1:\n return 1\n else:\n return n * factorial(n-1)\n\nresult = factorial(10)\nresult"} +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: AMD MI300X GPU (8x) +- Model: Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 +- Tensor Parallelism: 8 +- Expert Parallelism: 2 +- sglang version: 0.5.7 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation with random dataset. + +#### 5.1.1 Standard Scenario Benchmark + +- Model Deployment Command: + +```shell Command +SGLANG_USE_AITER=0 python -m sglang.launch_server \ + --model Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 \ + --tp 8 \ + --ep 2 \ + --context-length 8192 \ + --page-size 32 \ + --trust-remote-code +``` + +##### 5.1.1.1 Low Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 73.79 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4104 +Request throughput (req/s): 0.14 +Input token throughput (tok/s): 82.68 +Output token throughput (tok/s): 57.19 +Peak output token throughput (tok/s): 59.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 139.86 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 7376.26 +Median E2E Latency (ms): 5851.51 +P90 E2E Latency (ms): 13351.89 +P99 E2E Latency (ms): 16908.32 +---------------Time to First Token---------------- +Mean TTFT (ms): 191.93 +Median TTFT (ms): 126.06 +P99 TTFT (ms): 662.15 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 17.06 +Median TPOT (ms): 17.07 +P99 TPOT (ms): 17.08 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 17.06 +Median ITL (ms): 17.06 +P95 ITL (ms): 17.14 +P99 ITL (ms): 17.19 +Max ITL (ms): 18.53 +================================================== +``` + +##### 5.1.1.2 Medium Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 87.04 +Total input tokens: 39668 +Total input text tokens: 39668 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40364 +Request throughput (req/s): 0.92 +Input token throughput (tok/s): 455.77 +Output token throughput (tok/s): 468.83 +Peak output token throughput (tok/s): 608.00 +Peak concurrent requests: 20 +Total token throughput (tok/s): 924.59 +Concurrency: 13.76 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 14966.88 +Median E2E Latency (ms): 15871.93 +P90 E2E Latency (ms): 24983.41 +P99 E2E Latency (ms): 29504.85 +---------------Time to First Token---------------- +Mean TTFT (ms): 388.94 +Median TTFT (ms): 157.49 +P99 TTFT (ms): 1318.63 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 29.41 +Median TPOT (ms): 29.22 +P99 TPOT (ms): 43.48 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 28.64 +Median ITL (ms): 26.42 +P95 ITL (ms): 27.51 +P99 ITL (ms): 131.63 +Max ITL (ms): 995.11 +================================================== +``` + +##### 5.1.1.3 High Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 177.82 +Total input tokens: 158939 +Total input text tokens: 158939 +Total generated tokens: 170134 +Total generated tokens (retokenized): 168387 +Request throughput (req/s): 1.80 +Input token throughput (tok/s): 893.84 +Output token throughput (tok/s): 956.80 +Peak output token throughput (tok/s): 1728.00 +Peak concurrent requests: 70 +Total token throughput (tok/s): 1850.64 +Concurrency: 58.88 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 32716.53 +Median E2E Latency (ms): 30896.37 +P90 E2E Latency (ms): 65605.24 +P99 E2E Latency (ms): 80970.63 +---------------Time to First Token---------------- +Mean TTFT (ms): 372.97 +Median TTFT (ms): 181.67 +P99 TTFT (ms): 529.01 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 62.98 +Median TPOT (ms): 50.44 +P99 TPOT (ms): 204.24 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 60.95 +Median ITL (ms): 37.87 +P95 ITL (ms): 143.98 +P99 ITL (ms): 148.02 +Max ITL (ms): 36863.32 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 +``` + +##### AMD (MI300X/MI325X/MI355X) + +- **Results**: + + - Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 + ``` + Accuracy: 0.965 + Invalid: 0.000 + Latency: 23.084 s + Output throughput: 1148.425 token/s + ``` + +##### NVIDIA (B200/GB200) + +For deployment commands, see [Section 3.1](#31-configuration). + + - Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 (tp=8, ep=2) + ``` + Accuracy: 0.950 + Invalid: 0.000 + Latency: 12.914 s + Output throughput: 2065.515 token/s + ``` + + - nvidia/Qwen3-Coder-480B-A35B-Instruct-NVFP (NVFP4, tp=8, ep=1) + ``` + Accuracy: 0.970 + Invalid: 0.000 + Latency: 71.280 s + Output throughput: 390.080 token/s + ``` diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3-Next.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Next.mdx new file mode 100644 index 000000000..44f91fbfe --- /dev/null +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3-Next.mdx @@ -0,0 +1,774 @@ +--- +title: Qwen3-Next +metatags: + description: "Deploy Qwen3-Next with SGLang - hybrid attention architecture supporting 262K context, 80B MoE with 3B active parameters, and multi-token prediction." +--- + +import { Qwen3NextDeployment } from '/src/snippets/autoregressive/qwen3-next-deployment.jsx'; + +## 1. Model Introduction + +[Qwen3-Next](https://huggingface.co/collections/Qwen/qwen3-next) is an advanced large language model architecture developed by Alibaba's Qwen team, designed to enhance efficiency and performance in handling extensive contexts and large-scale parameters. It features advanced capabilities in reasoning, function calling, and multilingual understanding. + +Qwen3-Next introduces several groundbreaking innovations: + +- **Hybrid Attention Mechanism**: Replaces standard attention with a combination of **Gated DeltaNet** (linear attention) and **Full Attention**, enabling efficient processing of context lengths up to 262,144 tokens. This hybrid approach makes it ideal for analyzing lengthy documents such as entire books or contracts. + +- **Highly Sparse Mixture-of-Experts (MoE)**: Features an 80-billion parameter architecture where only 3 billion parameters are active during inference. This design reduces computational costs by up to 90% while maintaining high performance, drastically reducing FLOPs per token without compromising model capacity. + +- **Multi-Token Prediction (MTP)**: Enables generation of multiple tokens per inference step, significantly reducing latency and enhancing user experience in real-time applications. This innovation boosts both pretraining performance and inference speed. + +- **Multilingual Support**: Natively supports 119 languages, facilitating seamless cross-lingual tasks and making it versatile for global applications. + +- **Enterprise-Ready Deployment**: Released under the Apache 2.0 license, offering flexible deployment options including on-premises, virtual private cloud (VPC), and private cloud environments, ensuring security and compliance for enterprise use. + +- **Advanced Reasoning & Stability**: Demonstrates clear improvement in reasoning performance with support for tool use during inference. Includes stability optimizations such as **zero-centered** and **weight-decayed layernorm** for robust pre-training and post-training. + +For more details, please refer to the [official Qwen3-Next blog](https://qwen.ai/blog?id=4074cca80393150c248e508aa62983f9cb7d27cd&from=research.latest-advancements-list). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +The Qwen3-Next series comes in only one size but offers different thinking modes. Recommended starting configurations vary depending on hardware. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model size, quantization method, and thinking capabilities. + + + +### 3.2 Configuration Tips + +- `--max-mamba-cache-size`: Adjust `--max-mamba-cache-size` to increase mamba cache space and max running requests capability. It will decrease KV cache space as a trade-off. You can adjust it according to workload. + +- `--mamba-ssm-dtype`: `bfloat16` or `float32`, use `bfloat16` to save mamba cache size and `float32` to get more accurate results. The default setting is `float32`. + +- `--mamba-full-memory-ratio`: Adjust `--mamba-full-memory-ratio` to set the ratio of mamba state memory to full kv cache memory. The default setting is `0.9`. + +- **Mamba Radix Cache**: Qwen3-Next's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-scheduler-strategy`: + - **V1 (`no_buffer`)**: Default. No overlap scheduler, lower memory usage. + - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-scheduler-strategy extra_buffer --page-size 64`. Requires FLA kernel backend. Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +1. **Streaming with Thinking Process:** + + Qwen3-Next-80B-A3B-Thinking only supports thinking mode. Enable the reasoning parser during deployment to separate the thinking and the content sections. + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-Next-80B-A3B-Thinking \ + --reasoning-parser qwen3 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="Qwen/Qwen3-Next-80B-A3B-Thinking", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +Okay, let's see. I need to find 15% of 240. Hmm, percentages. Right, "percent" means per hundred, so 15% is 15 per 100, or 15/100. To find a percentage of a number, I think you multiply the number by the percentage as a decimal. So first, maybe convert 15% to a decimal. To convert a percentage to a decimal, you divide by 100. So 15 divided by 100 is 0.15. Then, multiply that by 240. Let me check that. So 0.15 times 240. Let's calculate that. Maybe break it down. 10% of 240 is 24, because 10% is just moving the decimal one place left, so 240 becomes 24. Then 5% would be half of 10%, so half of 24 is 12. So 10% + 5% = 15%, so 24 + 12 = 36. Oh, that's another way to do it. Let me verify with the multiplication. 0.15 * 240. Let's do 240 * 0.1 = 24, 240 * 0.05 = 12, so 24 + 12 = 36. Yep, that works. Alternatively, 240 * 15 = 3600, then divide by 100, which is 36. Because 15% of 240 is (15/100)*240 = (15*240)/100. 15*240: 10*240=2400, 5*240=1200, so 2400+1200=3600. Then 3600/100=36. So that's 36. So the answer should be 36. Let me make sure. 15% of 240. If I take 240 and multiply by 0.15, 240*0.15. Let's compute 240*0.1=24, 240*0.05=12, so 24+12=36. Yep, that's right. So 15% of 240 is 36. + +=============== Content ================= + +To find **15% of 240**, follow these steps: + +--- + +### **Step 1: Understand what "percent" means** +- "Percent" means **per hundred**, so **15% = 15/100 = 0.15** in decimal form. + +--- + +### **Step 2: Multiply the number by the decimal** +- To find 15% of 240, multiply: + $$ + 240 \times 0.15 + $$ + +--- + +### **Step 3: Break it down for clarity (optional but helpful)** +- **10% of 240** = $ 240 \times 0.1 = 24 $ +- **5% of 240** = $ 240 \times 0.05 = 12 $ +- Add them together: + $$ + 24 + 12 = 36 + $$ + +--- + +### **Step 4: Confirm with direct multiplication** +- $ 240 \times 0.15 = 36 $ + +--- + +### ✅ Final Answer: +$$ +\boxed{36} +$$ +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +2. **Turn off Thinking:** + + Qwen3-Next-80B-A3B-Instruct only supports instruct (non-thinking) mode. + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-Next-80B-A3B-Instruct \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Turn off thinking process +response = client.chat.completions.create( + model="Qwen/Qwen3-Next-80B-A3B-Instruct", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True, + extra_body={"chat_template_kwargs": {"enable_thinking": False}} +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +To find **15% of 240**, follow these steps: + +--- + +### **Step 1: Understand what percentage means** +"Percent" means "per hundred," so **15%** is the same as **15 per 100**, or the fraction: + +$$ +\frac{15}{100} +$$ + +--- + +### **Step 2: Multiply the fraction by the number** +To find 15% of 240, multiply: + +$$ +\frac{15}{100} \times 240 +$$ + +--- + +### **Step 3: Simplify the multiplication** +You can simplify this in a couple of ways. + +#### **Option A: Multiply first, then divide** +$$ +15 \times 240 = 3600 +$$ +Then divide by 100: +$$ +\frac{3600}{100} = 36 +$$ + +#### **Option B: Simplify the fraction first** +$$ +\frac{15}{100} = \frac{3}{20} \quad \text{(divided numerator and denominator by 5)} +$$ +Now multiply: +$$ +\frac{3}{20} \times 240 = \frac{3 \times 240}{20} = \frac{720}{20} = 36 +$$ + +--- + +### **Step 4: Final Answer** +$$ +\boxed{36} +$$ + +So, **15% of 240 is 36**. +``` + +#### 4.2.2 Tool Calling + +Qwen/Qwen3-Next-80B-A3B-Instruct | Qwen/Qwen3-Next-80B-A3B-Thinking both support tool calling capabilities. Enable the tool call parser: + +**Python Example (without Thinking Process):** + +Start sglang server: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-Next-80B-A3B-Instruct \ + --tool-call-parser qwen \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="Qwen/Qwen3-Next-80B-A3B-Instruct", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"🔧 Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output + +{"name": "get_weather", "arguments": {"location": "Beijing"}} + +``` + +**Python Example (with Thinking Process):** + +Start sglang server: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-Next-80B-A3B-Thinking \ + --reasoning-parser qwen3 \ + --tool-call-parser qwen \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="Qwen/Qwen3-Next-80B-A3B-Thinking", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"🔧 Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +Okay, the user is asking for the weather in Beijing. Let me check the available tools. There's a get_weather function that requires location and optionally unit. The location is needed, so I need to provide Beijing as the location. The unit is optional, but the user didn't specify Celsius or Fahrenheit. Since the default might be Celsius, but maybe I should check if the parameters require unit. Wait, the required field is only location, so unit is optional. So I can just call get_weather with location "Beijing" and not include the unit. Let me confirm the parameters. The parameters for get_weather have location as required, and unit is an enum with celsius or fahrenheit, but not required. So the correct call is to send location as Beijing, and omit unit. So the tool call should be {"name": "get_weather", "arguments": {"location": "Beijing"}}. + + +{"name": "get_weather", "arguments": {"location": "Beijing"}} + +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="Qwen/Qwen3-Next-80B-A3B-Thinking", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +#### 4.2.3 Processing Ultra-Long Texts + +Qwen3-Next natively supports context lengths of up to 262,144 tokens. For conversations where the total length (including both input and output) significantly exceeds this limit, we recommend using RoPE scaling techniques to handle long texts effectively. We have validated the model's performance on context lengths of up to 1 million tokens using the YaRN method. + +**Qwen3-Next-80B-A3B-Instruct** + +```shell Command +SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 python -m sglang.launch_server --model Qwen/Qwen3-Next-80B-A3B-Instruct --tp 8 --host 0.0.0.0 --port 8000 --json-model-override-args '{"rope_scaling":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144}}' --context-length 1010000 + +``` + +**Qwen3-Next-80B-A3B-Thinking** + +```shell Command +SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 python -m sglang.launch_server --model Qwen/Qwen3-Next-80B-A3B-Thinking --reasoning-parser qwen3 --tp 8 --host 0.0.0.0 --port 8000 --json-model-override-args '{"rope_scaling":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144}}' --context-length 1010000 + +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU (8x) +- Tensor Parallelism: 8 +- Model: Qwen/Qwen3-Next-80B-A3B-Instruct +- sglang version: 0.5.6 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. + +#### 5.1.1 Latency-Sensitive Benchmark + +- Server Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-Next-80B-A3B-Instruct \ + --tp 8 +``` + +- Test Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --num-prompt 100 \ + --max-concurrency 1 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 100 +Benchmark duration (s): 146.52 +Total input tokens: 33839 +Total input text tokens: 33839 +Total input vision tokens: 0 +Total generated tokens: 21640 +Total generated tokens (retokenized): 21619 +Request throughput (req/s): 0.68 +Input token throughput (tok/s): 230.95 +Output token throughput (tok/s): 147.70 +Peak output token throughput (tok/s): 164.00 +Peak concurrent requests: 6 +Total token throughput (tok/s): 378.65 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 1464.81 +Median E2E Latency (ms): 1077.48 +---------------Time to First Token---------------- +Mean TTFT (ms): 127.88 +Median TTFT (ms): 132.88 +P99 TTFT (ms): 212.85 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 6.19 +Median TPOT (ms): 6.17 +P99 TPOT (ms): 6.64 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 6.21 +Median ITL (ms): 6.16 +P95 ITL (ms): 6.51 +P99 ITL (ms): 6.71 +Max ITL (ms): 10.07 +================================================== +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Server Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-Next-80B-A3B-Instruct \ + --tp 8 \ +``` + +- Test Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --num-prompt 1000 \ + --max-concurrency 100 +``` + +**Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 100.32 +Total input tokens: 302118 +Total input text tokens: 302118 +Total input vision tokens: 0 +Total generated tokens: 195775 +Total generated tokens (retokenized): 195016 +Request throughput (req/s): 9.97 +Input token throughput (tok/s): 3011.69 +Output token throughput (tok/s): 1951.60 +Peak output token throughput (tok/s): 5909.00 +Peak concurrent requests: 120 +Total token throughput (tok/s): 4963.29 +Concurrency: 93.05 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 9333.98 +Median E2E Latency (ms): 6054.12 +---------------Time to First Token---------------- +Mean TTFT (ms): 161.77 +Median TTFT (ms): 137.94 +P99 TTFT (ms): 503.29 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 50.87 +Median TPOT (ms): 50.28 +P99 TPOT (ms): 122.87 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 47.11 +Median ITL (ms): 13.84 +P95 ITL (ms): 195.33 +P99 ITL (ms): 289.56 +Max ITL (ms): 486.38 +================================================== +``` + +### 5.2 Accuracy Benchmark + +### 5.2.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 --port 8000 +``` + +- **Results**: + + - Qwen3-Next-80B-A3B-Instruct + + ``` + Accuracy: 0.960 + Invalid: 0.000 + Latency: 12.673 s + Output throughput: 2538.255 token/s + ``` + + - Qwen3-Next-80B-A3B-Thinking + ``` + Accuracy: 0.935 + Invalid: 0.000 + Latency: 9.912 s + Output throughput: 3288.737 token/s + ``` + +### 5.2.2 MMLU Benchmark + +- **Benchmark Command:** + +```shell Command +cd sglang +bash benchmark/mmlu/download_data.sh +python3 benchmark/mmlu/bench_sglang.py --nsub 10 +``` + +- **Results**: + + - Qwen3-Next-80B-A3B-Instruct + + ``` + subject: abstract_algebra, #q:100, acc: 0.800 + subject: anatomy, #q:135, acc: 0.807 + subject: astronomy, #q:152, acc: 0.947 + subject: business_ethics, #q:100, acc: 0.810 + subject: clinical_knowledge, #q:265, acc: 0.894 + subject: college_biology, #q:144, acc: 0.972 + subject: college_chemistry, #q:100, acc: 0.680 + subject: college_computer_science, #q:100, acc: 0.860 + subject: college_mathematics, #q:100, acc: 0.780 + subject: college_medicine, #q:173, acc: 0.861 + Total latency: 10.098 + Average accuracy: 0.856 + ``` + + - Qwen3-Next-80B-A3B-Thinking + ``` + subject: abstract_algebra, #q:100, acc: 0.780 + subject: anatomy, #q:135, acc: 0.815 + subject: astronomy, #q:152, acc: 0.941 + subject: business_ethics, #q:100, acc: 0.870 + subject: clinical_knowledge, #q:265, acc: 0.894 + subject: college_biology, #q:144, acc: 0.965 + subject: college_chemistry, #q:100, acc: 0.670 + subject: college_computer_science, #q:100, acc: 0.840 + subject: college_mathematics, #q:100, acc: 0.770 + subject: college_medicine, #q:173, acc: 0.861 + Total latency: 10.236 + Average accuracy: 0.855 + ``` diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3-VL.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3-VL.mdx new file mode 100644 index 000000000..8e7588fe9 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3-VL.mdx @@ -0,0 +1,777 @@ +--- +title: Qwen3-VL +metatags: + description: "Deploy Qwen3-VL vision-language models with SGLang - open model for text, 262K context, enhanced visual reasoning and agent capabilities." +--- + + +## 1. Model Introduction + +[Qwen3-VL series](https://github.com/QwenLM/Qwen3-VL) are the most powerful vision-language models in the Qwen series to date, featuring advanced capabilities in multi-modal understanding, reasoning, and agentic applications. + +This generation delivers comprehensive upgrades across the board: + +- **Superior text understanding & generation**: Qwen3-VL-235B-A22B-Instruct was ranked as the [#1 open model for text on lmarena.ai](https://x.com/arena/status/1973151703563460942) +- **Deeper visual perception & reasoning**: Enhanced image and video understanding capabilities. +- **Extended context length**: Supports up to 262K tokens for processing long documents and videos. +- **Enhanced spatial and video dynamics comprehension**: Better understanding of spatial relationships and temporal dynamics. +- **Stronger agent interaction capabilities**: Improved tool use and search-based agent performance. +- **Flexible deployment options**: Available in Dense and MoE architectures that scale from edge to cloud, with Instruct and reasoning-enhanced Thinking editions. + +For more details, please refer to the [official Qwen3-VL GitHub Repository](https://github.com/QwenLM/Qwen3-VL). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +The Qwen3-VL series offers models in various sizes and architectures, optimized for different hardware platforms including NVIDIA and AMD GPUs. The recommended launch configurations vary by hardware and model size. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model size, quantization method, and thinking capabilities. + +import { Qwen3VLDeployment } from "/src/snippets/autoregressive/qwen3-vl-deployment.jsx"; + + + +### 3.2 Configuration Tips + +* **Multimodal attention backend** : Usually, `--mm-attention-backend` is default to `fa3` on H100/H200/A100 for better performance, but it is default to `triton_attn` on B200 for compatibility. +* **TTFT Optimization** : Set `SGLANG_USE_CUDA_IPC_TRANSPORT=1` to use CUDA IPC for transferring multimodal features, which significantly improves TTFT. This consumes additional memory and may require adjusting `--mem-fraction-static` and/or `--max-running-requests`. (additional memory is proportional to image size * number of images in current running requests.) +* **Memory Management** : Set lower `--context-length` to conserve memory. A value of `128000` is sufficient for most scenarios, down from the default 262K. +* **Expert Parallelism** : SGLang supports Expert Parallelism (EP) via `--ep`, allowing experts in MoE models to be deployed on separate GPUs for better throughput. One thing to note is that, for quantized models, you need to set `--ep` to a value that satisfies the requirement: `(moe_intermediate_size / moe_tp_size) % weight_block_size_n == 0, where moe_tp_size is equal to tp_size divided by ep_size.` Note that EP may perform worse in low concurrency scenarios due to additional communication overhead. Check out [Expert Parallelism Deployment](../../../docs/advanced_features/expert_parallelism) for more details. +* **Kernel Tuning** : For MoE Triton kernel tuning on your specific hardware, refer to [fused_moe_triton](https://github.com/sgl-project/sglang/tree/main/benchmark/kernels/fused_moe_triton). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) +- [SGLang OpenAI Vision API Guide](../../../docs/basic_usage/openai_api_vision) + +### 4.2 Advanced Usage + +#### 4.2.1 Multi-Modal Inputs + +Qwen3-VL supports both image and video inputs. Here's a basic example with image input: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:8000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://ofasys-multimodal-wlcb-3-toshanghai.oss-accelerate.aliyuncs.com/wpf272043/keepme/image/receipt.png" + } + }, + { + "type": "text", + "text": "Read all the text in the image." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="Qwen/Qwen3-VL-235B-A22B-Instruct", + messages=messages, + max_tokens=2048 +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Example Output:** + +```text Output +Response costs: 3.37s +Generated text: Auntie Anne's + +CINNAMON SUGAR +1 x 17,000 17,000 + +SUB TOTAL 17,000 + +GRAND TOTAL 17,000 + +CASH IDR 20,000 + +CHANGE DUE 3,000 +``` + +**Multi-Image Input Example:** + +Qwen3-VL can process multiple images in a single request for comparison or analysis: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:8000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://www.civitatis.com/f/china/hong-kong/guia/taxi.jpg" + } + }, + { + "type": "image_url", + "image_url": { + "url": "https://cdn.cheapoguides.com/wp-content/uploads/sites/7/2025/05/GettyImages-509614603-1280x600.jpg" + } + }, + { + "type": "text", + "text": "Compare these two images and describe the differences in 100 words or less. Focus on the key visual elements, colors, textures, and any notable contrasts between the two scenes. Be specific about what you see in each image." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="Qwen/Qwen3-VL-235B-A22B-Instruct", + messages=messages, + max_tokens=2048 +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Example Output:** + +```text Output +Response costs: 10.18s +Generated text: The two images present starkly different portrayals of Hong Kong’s iconic red taxis, contrasting a dynamic street-level moment with a static, large-scale gathering. + +The first image is a close-up, eye-level shot capturing a single red Toyota Crown taxi (license plate RX 5004) in motion or paused at an urban intersection. Its glossy red paint gleams under daylight, reflecting the vibrant, cluttered backdrop of a Hong Kong street — neon signs, glass-fronted shops displaying sunglasses, and Chinese characters. The taxi’s chrome grille, clear headlights, and black trim provide visual contrast. A green “4 SEATS” sticker and a “的士 TAXI” sign on the side reinforce its identity. The composition is intimate, focusing on the vehicle’s details — the texture of its paint, the slight reflections on the windows, and the crispness of its license plate. Other red taxis flank it, suggesting a bustling city rhythm, but the central taxi dominates the frame, conveying movement and immediacy. + +In contrast, the second image is an elevated, wide-angle shot of dozens of red taxis — along with a few green ones — parked in neat, grid-like rows on what appears to be a highway or staging area. The scene is static, almost ceremonial. Many taxis have their hoods open, suggesting maintenance, inspection, or protest. People are scattered among the vehicles, some inspecting engines, others conversing — adding a human, documentary element. The dominant color remains red, but the repetition creates a visual pattern rather than individual focus. The green taxis offer a subtle color contrast, hinting at different service zones (green for New Territories, red for urban areas). The setting is more utilitarian — concrete barriers, metal railings, and sparse vegetation — with an overpass looming in the background. The texture here is less about polished paint and more about the collective mass of vehicles, the asphalt, and the functional layout. + +Key contrasts emerge: the first image is kinetic and personal, emphasizing the taxi as a working vehicle in the city’s daily flow; the second is static and collective, portraying the taxis as a fleet, possibly for logistical or political purposes. The lighting in both is bright daylight, but the first has richer color saturation and depth due to its proximity and urban backdrop, while the second feels flatter, more documentary in tone. The first image invites you into the city’s pulse; the second invites you to observe a system — organized, perhaps even paused — from a distance. + +In essence, the first image celebrates the individual taxi in its natural habitat; the second reveals the scale and structure behind the fleet, transforming the familiar red icon into a symbol of coordination, maintenance, or collective action. Both are quintessentially Hong Kong, yet they offer vastly different narratives — one of motion and commerce, the other of assembly and purpose. +``` + +**Video Input Example:** + +Qwen3-VL supports video understanding by processing video URLs: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:8000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "video_url", + "video_url": { + "url": "https://videos.pexels.com/video-files/4114797/4114797-uhd_3840_2160_25fps.mp4" + } + }, + { + "type": "text", + "text": "Describe what happens in this video." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="Qwen/Qwen3-VL-235B-A22B-Instruct", + messages=messages, + max_tokens=2048 +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Note:** + +- For video processing, ensure you have sufficient context length configured (up to 262K tokens) +- Video processing may require more memory; adjust `--mem-fraction-static` accordingly +- You can also provide local file paths using `file://` protocol + +**Example Output:** + +```text Output +Response costs: 3.89s +Generated text: A person wearing blue gloves is using a microscope. They are adjusting the focus knob with one hand while holding a pipette with the other, suggesting they are preparing or examining a sample on the slide beneath the objective lens. The microscope's 40x objective lens is positioned over the slide, indicating a high-magnification observation. The person carefully manipulates the slide and the microscope controls, likely to achieve a clear view of the specimen. +``` + +#### 4.2.2 Reasoning Parser + +Qwen3-VL-Thinking supports reasoning mode. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-VL-235B-A22B-Thinking \ + --reasoning-parser qwen3 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="Qwen/Qwen3-VL-235B-A22B-Thinking", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +To solve this problem, I need to calculate 15% of 240. +Step 1: Convert 15% to decimal: 15% = 0.15 +Step 2: Multiply 240 by 0.15 +Step 3: 240 × 0.15 = 36 +=============== Content ================= + +The answer is 36. To find 15% of 240, we multiply 240 by 0.15, which equals 36. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.3 Tool Calling + +Qwen3-VL supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-VL-235B-A22B-Thinking \ + --reasoning-parser qwen3 \ + --tool-call-parser qwen \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="Qwen/Qwen3-VL-235B-A22B-Thinking", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"🔧 Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I need to use the get_weather function to retrieve this information. +I should call the function with location="Beijing". +=============== Content ================= + +🔧 Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="Qwen/Qwen3-VL-235B-A22B-Thinking", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The weather in Beijing is currently 22°C and sunny." +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU (8x) +- Model: Qwen3-VL-235B-A22B-Instruct +- Tensor Parallelism: 8 +- sglang version: 0.5.6 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation with random images. To simulate real-world usage, you can specify different input and output lengths for each request. For example, each request can have 128 input tokens, two 720p images, and 1024 output tokens. + +#### 5.1.1 Latency-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-VL-235B-A22B-Instruct \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --host 127.0.0.1 \ + --port 8000 \ + --model Qwen/Qwen3-VL-235B-A22B-Instruct \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 45.97 +Total input tokens: 18348 +Total input text tokens: 708 +Total input vision tokens: 17640 +Total generated tokens: 4220 +Total generated tokens (retokenized): 3423 +Request throughput (req/s): 0.22 +Input token throughput (tok/s): 399.17 +Output token throughput (tok/s): 91.81 +Peak output token throughput (tok/s): 96.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 490.98 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 4594.52 +Median E2E Latency (ms): 3725.04 +---------------Time to First Token---------------- +Mean TTFT (ms): 193.35 +Median TTFT (ms): 196.32 +P99 TTFT (ms): 222.75 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.44 +Median TPOT (ms): 10.44 +P99 TPOT (ms): 10.47 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 11.78 +Median ITL (ms): 10.48 +P95 ITL (ms): 21.01 +P99 ITL (ms): 31.40 +Max ITL (ms): 31.92 +================================================== +``` + +**Optimized Results (with CUDA IPC Transport):** + +For further TTFT optimization, enable CUDA IPC Transport for multimodal features by setting `SGLANG_USE_CUDA_IPC_TRANSPORT=1`. This significantly reduces TTFT by using CUDA IPC for transferring multimodal features. + +- Model Deployment Command: + +```shell Command +SGLANG_USE_CUDA_IPC_TRANSPORT=1 python -m sglang.launch_server \ + --model Qwen/Qwen3-VL-235B-A22B-Instruct \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --host 127.0.0.1 \ + --port 8000 \ + --model Qwen/Qwen3-VL-235B-A22B-Instruct \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 100 \ + --max-concurrency 1 +``` + +- **Test Results:** + + With `SGLANG_USE_CUDA_IPC_TRANSPORT=1`, TTFT improves significantly: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 100 +Benchmark duration (s): 566.84 +Total input tokens: 183667 +Total input text tokens: 7267 +Total input vision tokens: 176400 +Total generated tokens: 52444 +Total generated tokens (retokenized): 28702 +Request throughput (req/s): 0.18 +Input token throughput (tok/s): 324.02 +Output token throughput (tok/s): 92.52 +Peak output token throughput (tok/s): 96.00 +Peak concurrent requests: 3 +Total token throughput (tok/s): 416.54 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 5667.50 +Median E2E Latency (ms): 5830.00 +---------------Time to First Token---------------- +Mean TTFT (ms): 191.16 +Median TTFT (ms): 182.58 +P99 TTFT (ms): 244.58 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.46 +Median TPOT (ms): 10.46 +P99 TPOT (ms): 10.48 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 13.91 +Median ITL (ms): 10.56 +P95 ITL (ms): 21.35 +P99 ITL (ms): 31.55 +Max ITL (ms): 42.36 +================================================== +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-VL-235B-A22B-Instruct \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --host 127.0.0.1 \ + --port 8000 \ + --model Qwen/Qwen3-VL-235B-A22B-Instruct \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 1000 \ + --max-concurrency 100 +``` + +- **Test Results:** + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 584.65 +Total input tokens: 1839015 +Total input text tokens: 75015 +Total input vision tokens: 1764000 +Total generated tokens: 510855 +Total generated tokens (retokenized): 284284 +Request throughput (req/s): 1.71 +Input token throughput (tok/s): 3145.50 +Output token throughput (tok/s): 873.78 +Peak output token throughput (tok/s): 2855.00 +Peak concurrent requests: 107 +Total token throughput (tok/s): 4019.29 +Concurrency: 98.35 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 57502.05 +Median E2E Latency (ms): 54301.08 +---------------Time to First Token---------------- +Mean TTFT (ms): 5802.23 +Median TTFT (ms): 1444.75 +P99 TTFT (ms): 46675.92 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 100.22 +Median TPOT (ms): 105.43 +P99 TPOT (ms): 144.37 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 134.20 +Median ITL (ms): 25.57 +P95 ITL (ms): 558.14 +P99 ITL (ms): 1449.01 +Max ITL (ms): 33453.23 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 MMMU Benchmark + +You can evaluate the model's accuracy using the MMMU dataset with `lmms_eval`: + +- Benchmark Command: + +```shell Command +uv pip install lmms_eval + +python3 -m lmms_eval \ + --model openai_compatible \ + --model_args "model=Qwen/Qwen3-VL-235B-A22B-Instruct,api_key=EMPTY,base_url=http://127.0.0.1:8000/v1/" \ + --tasks mmmu_val \ + --batch_size 128 \ + --log_samples \ + --log_samples_suffix "openai_compatible" \ + --output_path ./logs \ + --gen_kwargs "max_new_tokens=4096" +``` + +- **Test Results:** + +```text Output + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TasksVersionFiltern-shotMetricValueStderr
      mmmu_val0none0mmmu_acc0.6567±N/A
      +``` diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3.5.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3.5.mdx new file mode 100644 index 000000000..3f8349fde --- /dev/null +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3.5.mdx @@ -0,0 +1,1001 @@ +--- +title: Qwen3.5 +metatags: + description: "Deploy Qwen3.5 with SGLang - flagship Qwen model with unified vision-language foundation, hybrid architecture, and scalable reasoning." +--- + +import { Qwen35Deployment } from '/src/snippets/autoregressive/qwen35-deployment.jsx' + +## 1. Model Introduction + +[Qwen3.5-397B-A17B](https://huggingface.co/Qwen/Qwen3.5-397B-A17B) is the latest flagship model in the Qwen series developed by Alibaba, representing a significant leap forward with unified vision-language foundation, efficient hybrid architecture, and scalable reinforcement learning. + +Qwen3.5 features a Gated Delta Networks combined with sparse Mixture-of-Experts architecture (397B total parameters, 17B activated), delivering high-throughput inference with minimal latency. It supports multimodal inputs (text, image, video) and natively handles context lengths of up to 262,144 tokens, extensible to over 1M tokens. + +**Key Features:** + +- **Unified Vision-Language Foundation**: Early fusion training on multimodal tokens achieves cross-generational parity with Qwen3 and outperforms Qwen3-VL models +- **Efficient Hybrid Architecture**: Gated Delta Networks + sparse MoE (397B total / 17B active) for high-throughput inference +- **Hybrid Reasoning**: Thinking mode enabled by default with step-by-step reasoning, can be disabled for direct responses +- **Tool Calling**: Built-in tool calling support with `qwen3_coder` parser +- **Multi-Token Prediction (MTP)**: Speculative decoding support for lower latency +- **201 Language Support**: Expanded multilingual coverage across 201 languages and dialects + +**Available Models:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelBF16 (Full precision)FP8 (8-bit Quantized)FP4 (4-bit Quantized)
      Qwen3.5-397B-A17B[Qwen/Qwen3.5-397B-A17B](https://huggingface.co/Qwen/Qwen3.5-397B-A17B)[Qwen/Qwen3.5-397B-A17B-FP8](https://huggingface.co/Qwen/Qwen3.5-397B-A17B-FP8)[nvidia/Qwen3.5-397B-A17B-NVFP4](https://huggingface.co/nvidia/Qwen3.5-397B-A17B-NVFP4)
      Qwen3.5-122B-A10B[Qwen/Qwen3.5-122B-A10B](https://huggingface.co/Qwen/Qwen3.5-122B-A10B)[Qwen/Qwen3.5-122B-A10B-FP8](https://huggingface.co/Qwen/Qwen3.5-122B-A10B-FP8)-
      Qwen3.5-35B-A3B[Qwen/Qwen3.5-35B-A3B](https://huggingface.co/Qwen/Qwen3.5-35B-A3B)[Qwen/Qwen3.5-35B-A3B-FP8](https://huggingface.co/Qwen/Qwen3.5-35B-A3B-FP8)-
      Qwen3.5-27B[Qwen/Qwen3.5-27B](https://huggingface.co/Qwen/Qwen3.5-27B)[Qwen/Qwen3.5-27B-FP8](https://huggingface.co/Qwen/Qwen3.5-27B-FP8)-
      Qwen3.5-9B[Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B)--
      Qwen3.5-4B[Qwen/Qwen3.5-4B](https://huggingface.co/Qwen/Qwen3.5-4B)--
      Qwen3.5-2B[Qwen/Qwen3.5-2B](https://huggingface.co/Qwen/Qwen3.5-2B)--
      Qwen3.5-0.8B[Qwen/Qwen3.5-0.8B](https://huggingface.co/Qwen/Qwen3.5-0.8B)--
      + +**License:** Apache 2.0 + +## 2. SGLang Installation + +SGLang from the main branch is required for Qwen3.5. You can install from source or use a Docker image: + +```bash Command +# Install from source +uv pip install 'git+https://github.com/sgl-project/sglang.git#subdirectory=python' + +# Or use Docker (NVIDIA GPUs) +docker pull lmsysorg/sglang:nightly-dev-20260216-d3bae71e + +# Or use Docker (AMD MI300X/MI325X) +docker pull lmsysorg/sglang:v0.5.9-rocm720-mi30x + +# Or use Docker (AMD MI355X) +docker pull lmsysorg/sglang:v0.5.9-rocm720-mi35x +``` + +For the full Docker setup and other installation methods, please refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform and capabilities. + + + +### 3.2 Configuration Tips + +- Speculative decoding (MTP) can significantly reduce latency for interactive use cases. +- **Mamba Radix Cache**: Qwen3.5's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-scheduler-strategy`: + - **V1 (`no_buffer`)**: Default. No overlap scheduler, lower memory usage. Required for AMD MI GPUs. + - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-scheduler-strategy extra_buffer --page-size 64`. Requires FLA kernel backend (NVIDIA GPUs only). Trades higher mamba state memory for better throughput. Strictly superior in non-KV-cache-bound scenarios; in KV-cache-bound cases, weigh the overlap scheduling benefit against reduced max concurrency. `--page-size` must satisfy `FLA_CHUNK_SIZE % page_size == 0` or `page_size % FLA_CHUNK_SIZE == 0` (`FLA_CHUNK_SIZE` is currently 64). +- The `--mem-fraction-static` flag is recommended for optimal memory utilization, adjust it based on your hardware and workload. +- Context length defaults to 262,144 tokens. If you encounter OOM errors, consider reducing it, but maintain at least 128K to preserve thinking capabilities. +- To speed up weight loading for this large model, add `--model-loader-extra-config='{"enable_multithread_load": "true","num_threads": 64}'` to the launch command. +- **CUDA IPC Transport**: Add `SGLANG_USE_CUDA_IPC_TRANSPORT=1` as an environment variable to use CUDA IPC for transferring multimodal features, significantly improving TTFT (Time To First Token). Note: this consumes additional memory proportional to image size, so you may need to lower `--mem-fraction-static` or `--max-running-requests`. +- **Multimodal Attention Backend**: Use `--mm-attention-backend fa3` on H100/H200 for better vision performance, or `--mm-attention-backend fa4` on B200/B300. +- **B200 (FP8)**: Add `--enable-flashinfer-allreduce-fusion` for optimized throughput on Blackwell. +- For processing large images or videos, you may need to lower `--mem-fraction-static` to leave room for image feature tensors. +- Hardware requirements: + - **BF16**: ~397B parameters require ~800GB of GPU memory for weights. + - **H100 (80GB)** requires tp=16 (2 nodes) since each rank needs ~100GB at tp=8. + - **H200 (141GB)** runs with tp=8. + - **B200 (183GB)** runs with tp=8. + - **B300 (275GB)** runs with tp=4. + - **MI300X (192GB)** runs with tp=8. + - **MI325X (256GB)** runs with tp=4. + - **MI355X (288GB)** runs with tp=4. + - **FP8**: The FP8 quantized model requires ~400GB for weights, cutting memory in half. + - **H100 (80GB)** runs with tp=8. + - **H200 (141GB)** runs with tp=4. + - **B200 (183GB)** runs with tp=4. + - **B300 (275GB)** runs with tp=2. + - **MI300X (192GB)** runs with tp=4. + - **MI325X (256GB)** runs with tp=2. + - **MI355X (288GB)** runs with tp=2. + - **FP4**: The FP4 quantized model requires ~250GB for weights, cutting memory by almost 4x. Only compatible with B200/B300 (Blackwell architecture). + - **B200 (183GB)** runs with tp=4. + - **B300 (275GB)** runs with tp=2. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      HardwareMemoryBF16 TPFP8 TPFP4 TP
      H10080GB168N/A
      H200141GB84N/A
      B200183GB844
      B300275GB422
      MI300X192GB84N/A
      MI325X256GB42N/A
      MI355X288GB42N/A
      + + +**FP8 KV Cache**: `--kv-cache-dtype fp8_e4m3` quantizes the KV cache to FP8 at runtime. Since these FP8 model checkpoints do not include pre-calibrated KV cache scaling factors, SGLang defaults to a scale of 1.0, which may cause noticeable accuracy degradation on reasoning-heavy tasks. It is not included in the generated commands above; add it manually only if memory constraints require the trade-off. + + +## 4. Model Invocation + +**NVIDIA:** + +Deploy Qwen3.5-397B-A17B with the following command (H200, all features enabled): + +```shell Command +sglang serve \ + --model-path Qwen/Qwen3.5-397B-A17B \ + --tp 8 \ + --reasoning-parser qwen3 \ + --tool-call-parser qwen3_coder \ + --speculative-algo NEXTN \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --mem-fraction-static 0.8 \ + --host 0.0.0.0 \ + --port 30000 +``` + +**AMD:** + +Deploy Qwen3.5-397B-A17B with the following command (MI300X/MI325X/MI355X): + +```shell Command +sglang serve \ + --model-path Qwen/Qwen3.5-397B-A17B \ + --tp 8 \ + --reasoning-parser qwen3 \ + --tool-call-parser qwen3_coder \ + --mem-fraction-static 0.8 \ + --attention-backend triton \ + --host 0.0.0.0 \ + --port 30000 +``` +> **Note:** TP8 works on all MI GPUs. For MI325X/MI355X, you can use --tp 4 as the minimum requirement. + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Vision Input + +Qwen3.5 supports image and video inputs as a unified vision-language model. Here is an example with an image: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="Qwen/Qwen3.5-397B-A17B", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://qianwen-res.oss-accelerate.aliyuncs.com/Qwen3.5/demo/CI_Demo/mathv-1327.jpg" + } + }, + { + "type": "text", + "text": "Describe this image in detail." + } + ] + } + ], + max_tokens=2048, + stream=True +) + +thinking_started = False +has_thinking = False +has_answer = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + if delta.content: + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user wants a detailed description of the provided image. + +1. **Identify the main components:** + * There is a central square. + * There are four circles of varying sizes. + +2. **Analyze the arrangement and relationships:** + * **The Square:** It's in the middle, oriented upright (sides are vertical and horizontal). It's drawn with a thin black line. + * **The Circles:** + * **Top Right:** A large circle. It overlaps the top right corner of the square. A significant portion of the circle is outside the square, but a chunk of it is inside. + * **Bottom Left:** A large circle, roughly the same size as the top right one. It overlaps the bottom left corner of the square. Again, a chunk is inside, most is outside. + * **Top Left:** A smaller circle. It is positioned near the top left corner of the square. It overlaps the corner slightly. + * **Bottom Right:** A smaller circle, roughly the same size as the top left one. It is positioned near the bottom right corner of the square. It overlaps the corner slightly. + +3. **Synthesize the description:** + * Start with a general overview: A geometric line drawing. + * Describe the central shape: A square. + * Describe the surrounding shapes: Four circles. + * Detail the positioning: + * Two large circles are diagonally opposite (bottom-left and top-right). + * Two smaller circles are diagonally opposite (top-left and bottom-right). + * Describe the interaction/overlap: The shapes are not just touching; they intersect. The lines cross over each other. The square acts as a central anchor. The circles seem to be "orbiting" or clustered around the corners of the square. + * Mention the style: Black lines on a white background. Minimalist. No shading or color. + +4. **Refine the details:** + * Let's look closer at the overlaps. + * **Top Left Circle:** It sits mostly above and to the left of the square's top-left corner. The bottom-right part of this small circle cuts into the square. + * **Top Right Circle:** This is the largest circle (or tied for largest). Its bottom-left quadrant overlaps significantly with the top-right quadrant of the square. + * **Bottom Left Circle:** This is also a large circle. Its top-right quadrant overlaps significantly with the bottom-left quadrant of the square. + * **Bottom Right Circle:** This is a small circle. Its top-left part overlaps with the bottom-right corner of the square. + +5. **Final Polish:** Structure the description logically. Start with the big picture, then break down each element's position relative to the center. + + * *Drafting the description:* The image shows a black and white line drawing of geometric shapes. In the center is a square. Surrounding it are four circles of two different sizes. + * *Adding detail:* There are two large circles and two small circles. + * *Positioning:* + * A large circle is in the bottom left. It overlaps the bottom-left corner of the square. + * A large circle is in the top right. It overlaps the top-right corner of the square. + * A small circle is in the top left. It overlaps the top-left corner of the square. + * A small circle is in the bottom right. It overlaps the bottom-right corner of the square. + * *Visual style:* The lines are thin and black. The background is white. The shapes are transparent (wireframe style), so you can see the lines of the square through the circles and vice versa where they overlap. + +6. **Final Review against the image:** Does this match? Yes. The description is accurate. The "transparency" point is important because it's a line drawing, not solid shapes. The lines cross. + + * Wait, let me look really closely at the "Top Left" circle. It actually looks like it's touching the top edge and left edge. It overlaps the corner. + * Let me look at the "Bottom Right" circle. It overlaps the bottom right corner. + * The arrangement creates a sort of diagonal symmetry. Large-Large on one diagonal, Small-Small on the other. + + Let's write the final output based on these observations. +=============== Content ================= + + +Based on the image provided, here is a detailed description: + +**Overview** +The image is a minimalist, black-and-white line drawing featuring geometric shapes. It consists of a central square surrounded by four circles of varying sizes. The lines are thin and black against a plain white background. The shapes are drawn in a "wireframe" style, meaning they are transparent outlines; where shapes overlap, the lines cross over each other rather than one blocking the other. + +**Detailed Breakdown** + +1. **The Central Square:** + * There is a single square positioned in the center of the composition. It is oriented upright with vertical and horizontal sides. + +2. **The Circles:** + * There are four circles arranged around the corners of the square. They appear in two distinct sizes: two large circles and two smaller circles. + * **Top Right:** A large circle is positioned at the top right. It overlaps significantly with the top-right corner of the square. A portion of the circle's interior is inside the square's boundary. + * **Bottom Left:** Another large circle (roughly the same size as the top right one) is positioned at the bottom left. It overlaps significantly with the bottom-left corner of the square. + * **Top Left:** A smaller circle is positioned near the top left corner. It overlaps slightly with the top-left corner of the square. + * **Bottom Right:** A smaller circle (roughly the same size as the top left one) is positioned near the bottom right corner. It overlaps slightly with the bottom-right corner of the square. + +**Composition** +The arrangement creates a diagonal symmetry. The two largest circles are on a diagonal from bottom-left to top-right, while the two smallest circles are on a diagonal from top-left to bottom-right. The intersecting lines create a complex web of curves and angles in the center of the image. +``` + +### 4.3 Advanced Usage + +#### 4.3.1 Reasoning Parser + +Qwen3.5 supports Thinking mode **by default**. Enable the reasoning parser during deployment to separate the thinking and content sections. The thinking process is returned via `reasoning_content` in the streaming response. + +To disable thinking and use Instruct mode, pass `chat_template_kwargs` at request time: + +- **Thinking mode** (default): The model performs step-by-step reasoning before answering. No extra parameters needed. +- **Instruct mode** (`{"enable_thinking": false}`): The model responds directly without a thinking process. + +**Example 1: Thinking Mode (Default)** + +Thinking mode is enabled by default. The model will reason step-by-step before answering, and the thinking process is returned via `reasoning_content`: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Thinking mode is enabled by default, no extra parameters needed +response = client.chat.completions.create( + model="Qwen/Qwen3.5-397B-A17B", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +Thinking Process: + +1. **Analyze the Request:** The user wants to solve a math problem: "What is 15% of 240?" and expects a step-by-step explanation. + +2. **Identify the Core Operation:** The problem asks for a percentage of a number. The formula is: $\text{Percentage} \times \text{Number} = \text{Result}$. + * Percentage: $15\%$ + * Number: $240$ + +3. **Determine the Steps:** + * Step 1: Convert the percentage to a decimal or fraction. + * Step 2: Multiply the converted value by the number. + * Step 3: Calculate the final result. + * Alternative Step (Mental Math): Break down 15% into 10% + 5%. + +4. **Draft the Explanation (Method 1: Decimal Conversion):** + * Convert $15\%$ to $0.15$. + * Multiply $0.15 \times 240$. + * Calculation: $15 \times 24 = 360$, adjust decimal places $\rightarrow 36.0$. + +5. **Draft the Explanation (Method 2: Fraction Conversion):** + * Convert $15\%$ to $\frac{15}{100}$ or $\frac{3}{20}$. + * Multiply $\frac{3}{20} \times 240$. + * $240 / 20 = 12$. + * $3 \times 12 = 36$. + +6. **Draft the Explanation (Method 3: Breaking it down - often easier for step-by-step):** + * Find 10% of 240. + * Find 5% of 240 (which is half of 10%). + * Add them together. + * 10% of 240 = 24. + * 5% of 240 = 12. + * $24 + 12 = 36$. + +7. **Select the Best Presentation:** Method 3 is very intuitive for "step-by-step" requests as it shows logical reasoning without heavy multiplication. However, the standard decimal multiplication (Method 1) is the most formal. I will present the standard method clearly, perhaps mentioning the breakdown method as a check or alternative way to understand it. Let's stick to the standard multiplication method for clarity but explain the conversion clearly. Actually, providing the breakdown method is often more helpful for understanding *why*. I'll provide the standard calculation method as the primary steps. + + * Step 1: Convert percentage to decimal. + * Step 2: Multiply. + * Step 3: State answer. + + Let's refine the calculation for the final output. + $15\% = 0.15$ + $0.15 \times 240$ + $= \frac{15}{100} \times 240$ + $= 15 \times 2.4$ + $= 36$ + + Or: + $10\% = 24$ + $5\% = 12$ + $15\% = 36$ + + I will write out the solution using the decimal/fraction multiplication method as it's universally applicable, but I'll make the steps very clear. + +8. **Final Review:** Does this answer the prompt accurately and step-by-step? Yes. + + * Step 1: Convert 15% to a decimal. + * Step 2: Multiply by 240. + * Step 3: Calculate. + + Let's write it out. + + Step 1: Convert the percentage to a decimal. + $15\% = 0.15$ + + Step 2: Multiply the decimal by the number. + $0.15 \times 240$ + + Step 3: Perform the multiplication. + $15 \times 240 = 3600$ + Adjust decimal (2 places): $36.00$ + Result: 36. + + Wait, $0.15 \times 240$. + $15 \times 24 = 360$. + One zero from 240 cancels one decimal place? + $0.15 \times 240 = 15 \times 2.4 = 36$. + Or $\frac{15}{100} \times 240 = \frac{15 \times 240}{100} = \frac{3600}{100} = 36$. + This looks correct. + + I will also include the "10% + 5%" method as an alternative way to think about it, as it's often easier for mental math. + + Plan: + 1. Define the formula. + 2. Convert percent to decimal/fraction. + 3. Multiply. + 4. Provide the alternative mental math method for completeness. + 5. State final answer clearly. + + Actually, keeping it simple is better. Just one clear path. I'll use the fraction/decimal multiplication path. + + Step 1: Convert 15% to a decimal. + Step 2: Multiply 240 by 0.15. + Step 3: Final result. + + Let's go.cw +=============== Content ================= + + +Here is the step-by-step solution to find 15% of 240: + +**Step 1: Convert the percentage to a decimal.** +To convert a percentage to a decimal, divide by 100. +$$15\% = \frac{15}{100} = 0.15$$ + +**Step 2: Multiply the decimal by the number.** +Now, multiply 0.15 by 240. +$$0.15 \times 240$$ + +**Step 3: Calculate the result.** +You can think of this as: +$$15 \times 240 = 3600$$ +Since there are two decimal places in 0.15, move the decimal point in the result two places to the left: +$$3600 \rightarrow 36.00$$ + +**Alternative Method (Mental Math):** +* Find 10% of 240: $240 \div 10 = 24$ +* Find 5% of 240 (half of 10%): $24 \div 2 = 12$ +* Add them together (10% + 5% = 15%): $24 + 12 = 36$ + +**Answer:** +15% of 240 is **36**. +``` + +**Example 2: Instruct Mode (Thinking Off)** + +To disable thinking and get a direct response, pass `{"enable_thinking": false}` via `chat_template_kwargs`: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Disable thinking mode via chat_template_kwargs +response = client.chat.completions.create( + model="Qwen/Qwen3.5-397B-A17B", + messages=[ + {"role": "user", "content": "What is 15% of 240?"} + ], + extra_body={"chat_template_kwargs": {"enable_thinking": False}}, + max_tokens=2048, + stream=True +) + +# In Instruct mode, the model responds directly without reasoning_content +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +To find 15% of 240, you can follow these steps: + +### Step-by-Step Deduction + +1. **Convert the percentage to a decimal +**: + To convert a percentage to a decimal, divide by 100. + $$15\% = \frac{15}{100} = 0.15$$ + +2. **Multiply the decimal by the number**: + Multiply $0.15$ by $240$. + $$0.15 \times 240$$ + + *Alternative Method (Mental Math)*: + - Find 10% of 240: $240 \times 0.10 = 24$ + - Find 5% of 240 (which is half of 10%): $24 / 2 = 12$ + - Add them together ($10\% + 5\% = 15\%$): $24 + 12 = 36$ + +3. **Calculation**: + $$240 \times 0.15 = 36$$ + +### Final Conclusion +15% of 240 is **36**. +``` + +#### 4.3.2 Tool Calling + +Qwen3.5 supports tool calling capabilities. Enable the tool call parser during deployment. Thinking mode is on by default; to disable it for tool calling requests, pass `extra_body={"chat_template_kwargs": {"enable_thinking": False}}`. + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="Qwen/Qwen3.5-397B-A17B", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I have access to a get_weather function that can provide current weather information for a location. Let me check the parameters: + +- location (required): "Beijing" - this is provided by the user +- unit (optional): The user didn't specify a temperature unit, so I won't include this optional parameter + +I should call the get_weather function with Beijing as the location. + + +=============== Content ================= +Tool Call: get_weather + Arguments: +Tool Call: None + Arguments: { +Tool Call: None + Arguments: "location": "Beijing" +Tool Call: None + Arguments: } +``` + +## 5. Benchmark + +### 5.1 Accuracy Benchmark + +#### 5.1.1 GSM8K Benchmark + +- Benchmark Command +```bash Command +python3 benchmark/gsm8k/bench_sglang.py --port 30000 +``` + +- Test Result +```text Output +100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████| 200/200 [00:31<00:00, 6.43it/s] +Accuracy: 0.975 +Invalid: 0.005 +Latency: 31.784 s +Output throughput: 998.166 token/s +``` + +#### 5.1.2 MMMU Benchmark + +- Benchmark Command +```bash Command +python3 benchmark/mmmu/bench_sglang.py --concurrency 128 --port 30000 --max-new-tokens 512 +``` + +- Test Result +```text Output +{'Accounting': {'acc': 1.0, 'num': 3}, + 'Agriculture': {'acc': 1.0, 'num': 4}, + 'Art': {'acc': 1.0, 'num': 9}, + 'Art_Theory': {'acc': 1.0, 'num': 5}, + 'Basic_Medical_Science': {'acc': 1.0, 'num': 2}, + 'Biology': {'acc': 1.0, 'num': 1}, + 'Chemistry': {'acc': 1.0, 'num': 1}, + 'Computer_Science': {'acc': 1.0, 'num': 1}, + 'Design': {'acc': 0.909, 'num': 11}, + 'Diagnostics_and_Laboratory_Medicine': {'acc': 1.0, 'num': 1}, + 'Economics': {'acc': 1.0, 'num': 5}, + 'Finance': {'acc': 1.0, 'num': 2}, + 'Geography': {'acc': 1.0, 'num': 3}, + 'History': {'acc': 1.0, 'num': 3}, + 'Literature': {'acc': 0.938, 'num': 16}, + 'Manage': {'acc': 1.0, 'num': 2}, + 'Marketing': {'acc': 1.0, 'num': 5}, + 'Math': {'acc': 1.0, 'num': 1}, + 'Overall': {'acc': 0.978, 'num': 91}, + 'Overall-Art and Design': {'acc': 0.96, 'num': 25}, + 'Overall-Business': {'acc': 1.0, 'num': 17}, + 'Overall-Health and Medicine': {'acc': 1.0, 'num': 7}, + 'Overall-Humanities and Social Science': {'acc': 0.966, 'num': 29}, + 'Overall-Science': {'acc': 1.0, 'num': 8}, + 'Overall-Tech and Engineering': {'acc': 1.0, 'num': 5}, + 'Pharmacy': {'acc': 1.0, 'num': 2}, + 'Physics': {'acc': 1.0, 'num': 2}, + 'Psychology': {'acc': 1.0, 'num': 4}, + 'Public_Health': {'acc': 1.0, 'num': 2}, + 'Sociology': {'acc': 1.0, 'num': 6}} +eval out saved to ./val_sglang.json +Overall accuracy: 0.978 +``` + +### 5.2 Speed Benchmark + +**Test Environment:** + +- Hardware: H200 (8x) +- Model: Qwen3.5-397B-A17B +- Tensor Parallelism: 8 +- SGLang Version: main branch + +Server Launch Command: +```bash Command +SGLANG_USE_CUDA_IPC_TRANSPORT=1 python -m sglang.launch_server \ + --model Qwen/Qwen3.5-397B-A17B \ + --tp 8 \ + --reasoning-parser qwen3 \ + --tool-call-parser qwen3_coder \ + --speculative-algo NEXTN \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --mem-fraction-static 0.8 \ + --host 0.0.0.0 \ + --port 30000 +``` + +#### 5.3.1 Latency Benchmark + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3.5-397B-A17B \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 18.94 +Total input tokens: 6101 +Total input text tokens: 6101 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4211 +Request throughput (req/s): 0.53 +Input token throughput (tok/s): 322.16 +Output token throughput (tok/s): 222.84 +Peak output token throughput (tok/s): 289.00 +Peak concurrent requests: 3 +Total token throughput (tok/s): 545.00 +Concurrency: 1.00 +Accept length: 3.12 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 1892.35 +Median E2E Latency (ms): 1410.85 +P90 E2E Latency (ms): 3749.34 +P99 E2E Latency (ms): 4216.52 +---------------Time to First Token---------------- +Mean TTFT (ms): 190.40 +Median TTFT (ms): 208.46 +P99 TTFT (ms): 261.27 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 3.96 +Median TPOT (ms): 3.79 +P99 TPOT (ms): 4.96 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 4.04 +Median ITL (ms): 3.15 +P95 ITL (ms): 6.65 +P99 ITL (ms): 12.60 +Max ITL (ms): 58.03 +================================================== +``` + +#### 5.3.2 Throughput Benchmark + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3.5-397B-A17B \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 1000 \ + --max-concurrency 100 \ + --request-rate inf +``` + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 283.04 +Total input tokens: 502493 +Total input text tokens: 502493 +Total generated tokens: 500251 +Total generated tokens (retokenized): 498222 +Request throughput (req/s): 3.53 +Input token throughput (tok/s): 1775.37 +Output token throughput (tok/s): 1767.45 +Peak output token throughput (tok/s): 3630.00 +Peak concurrent requests: 108 +Total token throughput (tok/s): 3542.82 +Concurrency: 96.71 +Accept length: 3.31 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 27372.05 +Median E2E Latency (ms): 26660.21 +P90 E2E Latency (ms): 39951.91 +P99 E2E Latency (ms): 48405.51 +---------------Time to First Token---------------- +Mean TTFT (ms): 14247.21 +Median TTFT (ms): 14932.44 +P99 TTFT (ms): 20998.45 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 26.16 +Median TPOT (ms): 26.13 +P99 TPOT (ms): 41.33 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 26.29 +Median ITL (ms): 11.38 +P95 ITL (ms): 72.10 +P99 ITL (ms): 149.57 +Max ITL (ms): 1220.68 +================================================== +``` + +### 5.3 Vision Speed Benchmark + +We use SGLang's built-in benchmarking tool to conduct performance evaluation with random images. Each request has 128 input tokens, two 720p images, and 1024 output tokens. + +#### 5.3.1 Latency Benchmark + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3.5-397B-A17B \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 \ + --request-rate inf +``` + +```text Output +TODO +``` + +#### 5.3.2 Throughput Benchmark + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --host 127.0.0.1 \ + --port 30000 \ + --model Qwen/Qwen3.5-397B-A17B \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 1000 \ + --max-concurrency 100 \ + --request-rate inf +``` + +```text Output +TODO +``` diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3.6.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3.6.mdx new file mode 100644 index 000000000..ebf49b82d --- /dev/null +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3.6.mdx @@ -0,0 +1,471 @@ +--- +title: Qwen3.6 +metatags: + description: "Deploy Qwen3.6 with SGLang - open-weight 35B MoE multimodal model with 3B active parameters, thinking preservation, tool calling, MTP, and long-context support." +tag: NEW +--- + +import { Qwen36Deployment } from '/src/snippets/autoregressive/qwen36-deployment.jsx'; + +## 1. Model Introduction + +[Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) is the first open-weight variant of the Qwen3.6 series developed by Alibaba. Built on direct feedback from the community, Qwen3.6 prioritizes stability and real-world utility, delivering substantial upgrades in agentic coding and thinking preservation. + +Qwen3.6 features a Gated Delta Networks combined with sparse Mixture-of-Experts architecture (35B total parameters, 3B activated), supporting multimodal inputs (text, image, video) and natively handles context lengths of up to 262,144 tokens, extensible to over 1M tokens. + +**Key Features:** + +- **Agentic Coding**: Handles frontend workflows and repository-level reasoning with greater fluency and precision +- **Thinking Preservation**: New option to retain reasoning context from historical messages, streamlining iterative development +- **Efficient Hybrid Architecture**: Gated Delta Networks + sparse MoE (35B total / 3B active) for high-throughput inference +- **Hybrid Reasoning**: Thinking mode enabled by default with step-by-step reasoning, can be disabled for direct responses +- **Tool Calling**: Built-in tool calling support with `qwen3_coder` parser +- **Multi-Token Prediction (MTP)**: Speculative decoding support for lower latency +- **Multimodal**: Unified vision-language model supporting text, image, and video inputs + +**Available Models:** + + + + + + + + + + + + + + + + + + +
      ModelWeights
      Qwen3.6-35B-A3B (BF16)[Qwen/Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B)
      Qwen3.6-35B-A3B (FP8)[Qwen/Qwen3.6-35B-A3B-FP8](https://huggingface.co/Qwen/Qwen3.6-35B-A3B-FP8)
      + +**License:** Apache 2.0 + +## 2. SGLang Installation + +SGLang `>=0.5.10` is required for Qwen3.6. You can install from source or use a Docker image: + +```bash Command +# Install from PyPI +uv pip install "sglang[all]" + +# Or install from source +uv pip install 'git+https://github.com/sgl-project/sglang.git#subdirectory=python' + +# Or use Docker (NVIDIA GPUs) +docker pull lmsysorg/sglang:latest +``` + +For the full Docker setup and other installation methods, please refer to the [official SGLang installation guide](../../../docs/get-started/installation). + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform and capabilities. + + + + +### 3.2 Configuration Tips + +- Speculative decoding (MTP) can significantly reduce latency for interactive use cases. +- **Mamba Radix Cache**: Qwen3.6's hybrid Gated Delta Networks architecture supports two mamba scheduling strategies via `--mamba-scheduler-strategy`: + - **V1 (`no_buffer`)**: Default. No overlap scheduler, lower memory usage. + - **V2 (`extra_buffer`)**: Enables overlap scheduling and branching point caching with `--mamba-scheduler-strategy extra_buffer --page-size 64`. Requires FLA kernel backend (NVIDIA GPUs only). Trades higher mamba state memory for better throughput. +- The `--mem-fraction-static` flag is recommended for optimal memory utilization, adjust it based on your hardware and workload. +- Context length defaults to 262,144 tokens. If you encounter OOM errors, consider reducing it, but maintain at least 128K to preserve thinking capabilities. +- **CUDA IPC Transport**: Add `SGLANG_USE_CUDA_IPC_TRANSPORT=1` as an environment variable to use CUDA IPC for transferring multimodal features, significantly improving TTFT (Time To First Token). Note: this consumes additional memory proportional to image size, so you may need to lower `--mem-fraction-static` or `--max-running-requests`. +- **Multimodal Attention Backend**: Use `--mm-attention-backend fa3` on H100/H200 for better vision performance, or `--mm-attention-backend fa4` on B200. +- For processing large images or videos, you may need to lower `--mem-fraction-static` to leave room for image feature tensors. +- Hardware requirements: + - **BF16**: ~35B parameters require ~70GB of GPU memory for weights. TP=1 fits on all supported hardware. + - **FP8**: The FP8 quantized model requires ~35GB for weights. TP=1 fits on all supported hardware. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      HardwareMemoryBF16 TPFP8 TP
      H10080GB11
      H200141GB11
      B200183GB11
      + + +## 4. Model Invocation + +Deploy Qwen3.6-35B-A3B with the following command (H200, all features enabled): + +```shell Command +SGLANG_ENABLE_SPEC_V2=1 sglang serve \ + --model-path Qwen/Qwen3.6-35B-A3B-FP8 \ + --reasoning-parser qwen3 \ + --tool-call-parser qwen3_coder \ + --speculative-algorithm EAGLE \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --mem-fraction-static 0.8 \ + --host 0.0.0.0 \ + --port 30000 +``` + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Vision Input + +Qwen3.6 supports image and video inputs as a unified vision-language model. + +**Image Input Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="Qwen/Qwen3.6-35B-A3B-FP8", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://qianwen-res.oss-accelerate.aliyuncs.com/Qwen3.5/demo/CI_Demo/mathv-1327.jpg" + } + }, + { + "type": "text", + "text": "Describe this image in detail." + } + ] + } + ], + max_tokens=2048, + stream=True +) + +thinking_started = False +has_thinking = False +has_answer = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + if delta.content: + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Video Input Example:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="Qwen/Qwen3.6-35B-A3B-FP8", + messages=[ + { + "role": "user", + "content": [ + { + "type": "video_url", + "video_url": { + "url": "https://qianwen-res.oss-accelerate.aliyuncs.com/Qwen3.5/demo/video/N1cdUjctpG8.mp4" + } + }, + { + "type": "text", + "text": "Describe what happens in this video." + } + ] + } + ], + max_tokens=2048, + stream=True +) + +thinking_started = False +has_thinking = False +has_answer = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + if delta.content: + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +### 4.3 Advanced Usage + +#### 4.3.1 Reasoning Parser + +Qwen3.6 supports Thinking mode **by default**. Enable the reasoning parser during deployment to separate the thinking and content sections. The thinking process is returned via `reasoning_content` in the streaming response. + +To disable thinking and use Instruct mode, pass `chat_template_kwargs` at request time: + +- **Thinking mode** (default): The model performs step-by-step reasoning before answering. No extra parameters needed. +- **Instruct mode** (`{"enable_thinking": false}`): The model responds directly without a thinking process. + +**Example 1: Thinking Mode (Default)** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="Qwen/Qwen3.6-35B-A3B-FP8", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + max_tokens=2048, + stream=True +) + +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + if delta.content: + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Example 2: Instruct Mode (Thinking Off)** + +To disable thinking and get a direct response, pass `{"enable_thinking": false}` via `chat_template_kwargs`: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="Qwen/Qwen3.6-35B-A3B-FP8", + messages=[ + {"role": "user", "content": "What is 15% of 240?"} + ], + extra_body={"chat_template_kwargs": {"enable_thinking": False}}, + max_tokens=2048, + stream=True +) + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` + +#### 4.3.2 Thinking Preservation + +Qwen3.6 has been trained to preserve and leverage thinking traces from historical messages. Enable this for agent scenarios where maintaining full reasoning context improves decision consistency: + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +response = client.chat.completions.create( + model="Qwen/Qwen3.6-35B-A3B-FP8", + messages=[ + {"role": "user", "content": "Help me plan a web app architecture."} + ], + extra_body={"chat_template_kwargs": {"preserve_thinking": True}}, + max_tokens=2048, + stream=True +) + +thinking_started = False +has_thinking = False +has_answer = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + if delta.content: + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +#### 4.3.3 Tool Calling + +Qwen3.6 supports tool calling capabilities. Enable the tool call parser during deployment. + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +response = client.chat.completions.create( + model="Qwen/Qwen3.6-35B-A3B-FP8", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + stream=True +) + +thinking_started = False +has_thinking = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + if hasattr(delta, 'tool_calls') and delta.tool_calls: + if has_thinking and thinking_started: + print("\n=============== Content =================", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + if tool_call.function: + print(f"Tool Call: {tool_call.function.name}") + print(f" Arguments: {tool_call.function.arguments}") + + if delta.content: + print(delta.content, end="", flush=True) + +print() +``` diff --git a/docs_new/cookbook/autoregressive/Qwen/Qwen3.mdx b/docs_new/cookbook/autoregressive/Qwen/Qwen3.mdx new file mode 100644 index 000000000..74b5684f0 --- /dev/null +++ b/docs_new/cookbook/autoregressive/Qwen/Qwen3.mdx @@ -0,0 +1,884 @@ +--- +title: Qwen3 +metatags: + description: "Deploy Qwen3 series models with SGLang - featuring advanced reasoning, 256K context, and flexible Dense/MoE architectures for edge to cloud." +--- + + +## 1. Model Introduction + +[Qwen3 series](https://github.com/QwenLM/Qwen3) are the most powerful vision-language models in the Qwen series to date, featuring advanced capabilities in multi-modal understanding, reasoning, and agentic applications. + +This generation delivers comprehensive upgrades across the board: + +- **Stronger general intelligence**: Significant improvements in instruction following, logical reasoning, text comprehension, mathematics, science, coding, and tool usage. +- **Broader multilingual knowledge**: Substantial gains in long-tail knowledge coverage across multiple languages. +- **More helpful & aligned responses**: Markedly better alignment with user preferences in subjective and open-ended tasks, enabling higher-quality, more useful text generation. +- **Extended context length**: Enhanced capabilities in understanding and reasoning over 256K-token long contexts. +- **Stronger agent interaction capabilities**: Improved tool use and search-based agent performance. +- **Flexible deployment options**: Available in Dense and MoE architectures that scale from edge to cloud, with Instruct and reasoning-enhanced Thinking editions. + +For more details, please refer to the [official Qwen3 GitHub Repository](https://github.com/QwenLM/Qwen3). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +The Qwen3 series offers models in various sizes and architectures, optimized for different hardware platforms including NVIDIA and AMD GPUs. The recommended launch configurations vary by hardware and model size. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model size, quantization method, and thinking capabilities. + +import { Qwen3Deployment } from "/src/snippets/autoregressive/qwen3-deployment.jsx"; + + + +### 3.2 Configuration Tips + +- **Memory Management** : Set lower `--context-length` to conserve memory. A value of `128000` is sufficient for most scenarios, down from the default 262K. +- **Expert Parallelism** : SGLang supports Expert Parallelism (EP) via `--ep`, allowing experts in MoE models to be deployed on separate GPUs for better throughput. One thing to note is that, for quantized models, you need to set `--ep` to a value that satisfies the requirement: `(moe_intermediate_size / moe_tp_size) % weight_block_size_n == 0, where moe_tp_size is equal to tp_size divided by ep_size.` Note that EP may perform worse in low concurrency scenarios due to additional communication overhead. Check out [Expert Parallelism Deployment](../../../docs/advanced_features/expert_parallelism) for more details. +- **Kernel Tuning** : For MoE Triton kernel tuning on your specific hardware, refer to [fused_moe_triton](https://github.com/sgl-project/sglang/tree/main/benchmark/kernels/fused_moe_triton). +- **Speculative Decoding**: Using Speculative Decoding for latency-sensitive scenarios. + - `--speculative-algorithm EAGLE3`: Speculative decoding algorithm + - `--speculative-num-steps 3`: Number of speculative verification rounds + - `--speculative-eagle-topk 1`: Top-k sampling for draft tokens + - `--speculative-num-draft-tokens 4`: Number of draft tokens per step + - `--speculative-draft-model-path`: The path of the draft model weights. This can be a local folder or a Hugging Face repo ID such as [`lmsys/SGLang-EAGLE3-Qwen3-235B-A22B-Instruct-2507-SpecForge-Meituan`](https://huggingface.co/lmsys/SGLang-EAGLE3-Qwen3-235B-A22B-Instruct-2507-SpecForge-Meituan). + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) +- [SGLang OpenAI Vision API Guide](../../../docs/basic_usage/openai_api_vision) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +Qwen3-235B-A22B supports reasoning mode. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-235B-A22B-Thinking-2507 \ + --reasoning-parser qwen3 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="Qwen/Qwen3-235B-A22B-Thinking-2507", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= + +Okay, so I need to figure out what 15% of 240 is. Hmm, percentages can sometimes trip me up, but I think I remember some basics. Let me start by recalling that "percent" means "per hundred," so 15% is the same as 15 per 100, or 15/100. So, maybe I can convert 15% into a decimal first? Yeah, I think that's a common method. +... +So conclusion: The answer is 36. + +=============== Content ================= + + +To determine what 15% of 240 is, we can follow a systematic approach that involves converting the percentage to a decimal and then performing multiplication. Here's a step-by-step breakdown of the solution: + +.... + +### Final Answer: + +$$ +\boxed{36} +$$ + +Thus, 15% of 240 is **36**. +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.3 Tool Calling + +Qwen3 supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-235B-A22B-Thinking-2507 \ + --reasoning-parser qwen3 \ + --tool-call-parser qwen25 \ + --tp 8 \ + --host 0.0.0.0 \ + --port 8000 +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:8000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="Qwen/Qwen3-235B-A22B-Thinking-2507", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"🔧 Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= + +Okay, the user is asking for the weather in Beijing. Let me check the tools available. There's a function called get_weather that takes location and unit parameters. The location is required, so I need to specify Beijing as the location. The unit is optional and can be either celsius or fahrenheit. Since the user didn't specify the unit, maybe I should default to a common one. In China, they usually use celsius, so I'll set unit to celsius. I'll call the get_weather function with location: Beijing and unit: celsius. That should get the current weather for them. + + + +=============== Content ================= + +🔧 Tool Call: get_weather + Arguments: {"location": "Beijing", "unit": "celsius"} +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="Qwen/Qwen3-235B-A22B-Thinking-2507", + messages=messages, + temperature=0.7 +) + +print(final_response.choices[0].message.content) +# Output: "The current weather in Beijing is **22°C** and **sunny**. A perfect day to enjoy outdoor activities! 🌞" +``` + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU (8x) +- Model: Qwen3-235B-A22B-Instruct-2507 +- Tensor Parallelism: 8 +- sglang version: 0.5.6 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. + +#### 5.1.1 Standard Scenario Benchmark + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --tp 8 +``` + +##### 5.1.1.1 Low Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 43.56 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 4210 +Total generated tokens (retokenized): 4206 +Request throughput (req/s): 0.23 +Input token throughput (tok/s): 140.07 +Output token throughput (tok/s): 96.65 +Peak output token throughput (tok/s): 100.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 236.72 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 4353.63 +Median E2E Latency (ms): 3475.79 +---------------Time to First Token---------------- +Mean TTFT (ms): 99.03 +Median TTFT (ms): 92.18 +P99 TTFT (ms): 166.05 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.12 +Median TPOT (ms): 10.12 +P99 TPOT (ms): 10.15 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 10.13 +Median ITL (ms): 10.12 +P95 ITL (ms): 10.49 +P99 ITL (ms): 10.70 +Max ITL (ms): 13.45 +================================================== +``` + +##### 5.1.1.2 Medium Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 48.95 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 40725 +Total generated tokens (retokenized): 40716 +Request throughput (req/s): 1.63 +Input token throughput (tok/s): 810.44 +Output token throughput (tok/s): 832.04 +Peak output token throughput (tok/s): 1151.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 1642.48 +Concurrency: 13.61 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 8326.72 +Median E2E Latency (ms): 8827.86 +---------------Time to First Token---------------- +Mean TTFT (ms): 215.70 +Median TTFT (ms): 88.82 +P99 TTFT (ms): 727.08 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 16.36 +Median TPOT (ms): 16.12 +P99 TPOT (ms): 24.09 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 15.96 +Median ITL (ms): 14.52 +P95 ITL (ms): 16.04 +P99 ITL (ms): 67.69 +Max ITL (ms): 457.52 +================================================== +``` + +##### 5.1.1.3 High Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 92.07 +Total input tokens: 249831 +Total input text tokens: 249831 +Total input vision tokens: 0 +Total generated tokens: 252162 +Total generated tokens (retokenized): 251124 +Request throughput (req/s): 5.43 +Input token throughput (tok/s): 2713.46 +Output token throughput (tok/s): 2738.78 +Peak output token throughput (tok/s): 4400.00 +Peak concurrent requests: 110 +Total token throughput (tok/s): 5452.24 +Concurrency: 90.50 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 16665.09 +Median E2E Latency (ms): 16060.10 +---------------Time to First Token---------------- +Mean TTFT (ms): 260.55 +Median TTFT (ms): 122.68 +P99 TTFT (ms): 863.11 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 32.94 +Median TPOT (ms): 34.04 +P99 TPOT (ms): 41.19 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 32.59 +Median ITL (ms): 23.54 +P95 ITL (ms): 69.79 +P99 ITL (ms): 119.09 +Max ITL (ms): 577.70 +================================================== +``` + +#### 5.1.2 Reasoning Scenario Benchmark + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --tp 8 +``` + +##### 5.1.2.1 Low Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 457.45 +Total input tokens: 6101 +Total input text tokens: 6101 +Total input vision tokens: 0 +Total generated tokens: 44452 +Total generated tokens (retokenized): 44059 +Request throughput (req/s): 0.02 +Input token throughput (tok/s): 13.34 +Output token throughput (tok/s): 97.17 +Peak output token throughput (tok/s): 100.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 110.51 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 45742.42 +Median E2E Latency (ms): 49266.87 +---------------Time to First Token---------------- +Mean TTFT (ms): 110.60 +Median TTFT (ms): 109.36 +P99 TTFT (ms): 167.43 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.23 +Median TPOT (ms): 10.24 +P99 TPOT (ms): 10.32 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 10.27 +Median ITL (ms): 10.26 +P95 ITL (ms): 10.71 +P99 ITL (ms): 10.97 +Max ITL (ms): 15.79 +================================================== +``` + +##### 5.1.2.2 Medium Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 340.17 +Total input tokens: 39668 +Total input text tokens: 39668 +Total input vision tokens: 0 +Total generated tokens: 318226 +Total generated tokens (retokenized): 318104 +Request throughput (req/s): 0.24 +Input token throughput (tok/s): 116.61 +Output token throughput (tok/s): 935.49 +Peak output token throughput (tok/s): 1120.00 +Peak concurrent requests: 19 +Total token throughput (tok/s): 1052.10 +Concurrency: 13.85 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 58885.30 +Median E2E Latency (ms): 59238.70 +---------------Time to First Token---------------- +Mean TTFT (ms): 169.71 +Median TTFT (ms): 101.61 +P99 TTFT (ms): 455.71 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 14.82 +Median TPOT (ms): 14.91 +P99 TPOT (ms): 15.20 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 14.76 +Median ITL (ms): 14.63 +P95 ITL (ms): 15.46 +P99 ITL (ms): 16.62 +Max ITL (ms): 104.94 +================================================== +``` + +##### 5.1.2.3 High Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 8000 \ + --num-prompts 320 \ + --max-concurrency 64 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 544.83 +Total input tokens: 158939 +Total input text tokens: 158939 +Total input vision tokens: 0 +Total generated tokens: 1300705 +Total generated tokens (retokenized): 1293015 +Request throughput (req/s): 0.59 +Input token throughput (tok/s): 291.72 +Output token throughput (tok/s): 2387.34 +Peak output token throughput (tok/s): 3008.00 +Peak concurrent requests: 68 +Total token throughput (tok/s): 2679.06 +Concurrency: 56.35 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 95937.70 +Median E2E Latency (ms): 99362.32 +---------------Time to First Token---------------- +Mean TTFT (ms): 265.03 +Median TTFT (ms): 129.11 +P99 TTFT (ms): 823.85 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 23.66 +Median TPOT (ms): 24.07 +P99 TPOT (ms): 24.97 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 23.54 +Median ITL (ms): 23.07 +P95 ITL (ms): 25.92 +P99 ITL (ms): 63.87 +Max ITL (ms): 408.30 +================================================== +``` + +#### 5.1.3 Summarization Scenario Benchmark + +##### 5.1.3.1 Low Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 44.82 +Total input tokens: 41941 +Total input text tokens: 41941 +Total input vision tokens: 0 +Total generated tokens: 4210 +Total generated tokens (retokenized): 4210 +Request throughput (req/s): 0.22 +Input token throughput (tok/s): 935.86 +Output token throughput (tok/s): 93.94 +Peak output token throughput (tok/s): 99.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 1029.80 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 4479.60 +Median E2E Latency (ms): 3622.99 +---------------Time to First Token---------------- +Mean TTFT (ms): 139.90 +Median TTFT (ms): 114.85 +P99 TTFT (ms): 225.17 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 10.31 +Median TPOT (ms): 10.33 +P99 TPOT (ms): 10.51 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 10.33 +Median ITL (ms): 10.33 +P95 ITL (ms): 10.73 +P99 ITL (ms): 10.93 +Max ITL (ms): 14.48 +================================================== +``` + +##### 5.1.3.2 Medium Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 50.68 +Total input tokens: 300020 +Total input text tokens: 300020 +Total input vision tokens: 0 +Total generated tokens: 41589 +Total generated tokens (retokenized): 41578 +Request throughput (req/s): 1.58 +Input token throughput (tok/s): 5920.41 +Output token throughput (tok/s): 820.69 +Peak output token throughput (tok/s): 1200.00 +Peak concurrent requests: 20 +Total token throughput (tok/s): 6741.10 +Concurrency: 13.90 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 8805.54 +Median E2E Latency (ms): 9368.79 +---------------Time to First Token---------------- +Mean TTFT (ms): 284.29 +Median TTFT (ms): 168.48 +P99 TTFT (ms): 1027.21 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 16.81 +Median TPOT (ms): 16.66 +P99 TPOT (ms): 27.18 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 16.42 +Median ITL (ms): 13.68 +P95 ITL (ms): 17.23 +P99 ITL (ms): 90.75 +Max ITL (ms): 574.64 +================================================== +``` + +##### 5.1.3.3 High Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --dataset-name random \ + --random-input-len 8000 \ + --random-output-len 1000 \ + --num-prompts 320 \ + --max-concurrency 64 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 64 +Successful requests: 320 +Benchmark duration (s): 94.77 +Total input tokens: 1273893 +Total input text tokens: 1273893 +Total input vision tokens: 0 +Total generated tokens: 169680 +Total generated tokens (retokenized): 169640 +Request throughput (req/s): 3.38 +Input token throughput (tok/s): 13441.86 +Output token throughput (tok/s): 1790.43 +Peak output token throughput (tok/s): 2687.00 +Peak concurrent requests: 70 +Total token throughput (tok/s): 15232.28 +Concurrency: 58.63 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 17364.14 +Median E2E Latency (ms): 17495.95 +---------------Time to First Token---------------- +Mean TTFT (ms): 238.22 +Median TTFT (ms): 203.27 +P99 TTFT (ms): 510.48 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 32.50 +Median TPOT (ms): 34.27 +P99 TPOT (ms): 40.59 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 32.36 +Median ITL (ms): 22.50 +P95 ITL (ms): 97.81 +P99 ITL (ms): 151.55 +Max ITL (ms): 352.79 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 +``` + +- **Results**: + + - Qwen/Qwen3-235B-A22B-Instruct-2507 + ```text Output + Accuracy: 0.945 + Invalid: 0.000 + Latency: 11.980 s + Output throughput: 2358.105 token/s + ``` diff --git a/docs_new/cookbook/autoregressive/StepFun/Step3-VL-10B.mdx b/docs_new/cookbook/autoregressive/StepFun/Step3-VL-10B.mdx new file mode 100644 index 000000000..6cf33cb52 --- /dev/null +++ b/docs_new/cookbook/autoregressive/StepFun/Step3-VL-10B.mdx @@ -0,0 +1,695 @@ +--- +title: Step3-VL-10B +metatags: + description: "Deploy Step3-VL-10B multimodal model with SGLang - compact 10B dense model with frontier-level vision understanding, complex reasoning, and tool calling capabilities." +tag: NEW +--- + +import { Step3VL10BDeployment } from '/src/snippets/autoregressive/step-3vl-10b-deployment.jsx'; + +## 1. Model Introduction + +[Step3-VL-10B](https://huggingface.co/stepfun-ai/Step3-VL-10B) is a lightweight open-source multimodal model developed by StepFun, designed to redefine the trade-off between compact efficiency and frontier-level multimodal intelligence. Despite its compact 10B parameter footprint, Step3-VL-10B excels in visual perception, complex reasoning, and human-centric alignment. + +Key highlights of Step3-VL-10B include: + +- **STEM Reasoning**: Achieves 94.43% on AIME 2025 and 75.95% on MathVision (with PaCoRe), demonstrating exceptional complex reasoning capabilities that outperform models 10×–20× larger. +- **Visual Perception**: Records 92.05% on MMBench and 80.11% on MMMU, establishing strong general visual understanding and multimodal reasoning. +- **GUI & OCR**: Delivers state-of-the-art performance on ScreenSpot-V2 (92.61%), ScreenSpot-Pro (51.55%), and OCRBench (86.75%), optimized for agentic and document understanding tasks. +- **Spatial Understanding**: Demonstrates emergent spatial awareness with 66.79% on BLINK and 57.21% on All-Angles-Bench, establishing strong potential for embodied intelligence applications. + +For more details, please refer to the [Step3-VL-10B model card on Hugging Face](https://huggingface.co/stepfun-ai/Step3-VL-10B). + +## 2. SGLang Installation + +SGLang offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang installation guide](../../../docs/get-started/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +Step3-VL-10B is a compact 10B dense model that can run on a single GPU. Recommended starting configurations vary depending on hardware. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform and quantization method. SGLang supports serving Step3-VL-10B on NVIDIA B200, H200, H100, and AMD MI355X, MI325X, MI300X GPUs. + + + +### 3.2 Configuration Tips + +- **Single GPU Deployment**: Step3-VL-10B fits comfortably on a single GPU with BF16 precision, no tensor parallelism required. +- **Memory Management**: Set lower `--context-length` to conserve memory if needed. A value of `32768` is sufficient for most scenarios. +- **FP8 Quantization**: Use FP8 quantization to further reduce memory usage while maintaining quality. + +## 4. Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) +- [SGLang OpenAI Vision API Guide](../../../docs/basic_usage/openai_api_vision) + +### 4.2 Advanced Usage + +#### 4.2.1 Multi-Modal Inputs + +Step3-VL-10B supports image inputs. Here's a basic example with image input: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://ofasys-multimodal-wlcb-3-toshanghai.oss-accelerate.aliyuncs.com/wpf272043/keepme/image/receipt.png" + } + }, + { + "type": "text", + "text": "Read all the text in the image." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="stepfun-ai/Step3-VL-10B", + messages=messages, + max_tokens=2048, + extra_body={"top_k": -1} +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Example output:** + +```text Output +Response costs: 5.89s +Generated text: Auntie Anne's + +CINNAMON SUGAR +1 × 17,000               17,000 + +SUB TOTAL                    17,000 + +GRAND TOTAL                 17,000 + +CASH IDR                    20,000 + +CHANGE DUE                 3,000 +``` + +**Multi-Image Input Example:** + +Step3-VL-10B can process multiple images in a single request for comparison or analysis: + +```python Example +import time +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url="http://localhost:30000/v1", + timeout=3600 +) + +messages = [ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://www.civitatis.com/f/china/hong-kong/guia/taxi.jpg" + } + }, + { + "type": "image_url", + "image_url": { + "url": "https://cdn.cheapoguides.com/wp-content/uploads/sites/7/2025/05/GettyImages-509614603-1280x600.jpg" + } + }, + { + "type": "text", + "text": "Compare these two images and describe the differences in 100 words or less." + } + ] + } +] + +start = time.time() +response = client.chat.completions.create( + model="stepfun-ai/Step3-VL-10B", + messages=messages, + max_tokens=2048, + extra_body={"top_k": -1} +) +print(f"Response costs: {time.time() - start:.2f}s") +print(f"Generated text: {response.choices[0].message.content}") +``` + +**Example Output:** + +```text Output +Response costs: 3.24s +Generated text: First image: Single red Hong Kong taxi close - up, clear license plate (RX 5004), “4 SEATS” sticker, urban street with shops behind. Second image: Aerial view of many taxis (red, green) on a highway with a viaduct, some hoods open, dense arrangement. Differences: Scale (single vs many), perspective (close - up vs aerial), context (street shops vs highway), and taxi conditions (normal vs some open hoods). +``` + +#### 4.2.2 Reasoning Parser + +Step3-VL-10B supports reasoning mode. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +python -m sglang.launch_server \ + --model stepfun-ai/Step3-VL-10B \ + --reasoning-parser deepseek-r1 \ + --host 0.0.0.0 \ + --port 30000 \ + --trust-remote-code +``` + +**Streaming with Thinking Process:** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="stepfun-ai/Step3-VL-10B", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True, + extra_body={"top_k": -1} +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Example Output:** +```text Output +=============== Thinking ================= +Okay, let's see. The problem is asking for 15% of 240. Hmm, I need to remember how to calculate percentages. So, percentage means "per hundred," right? So, 15% is the same as 15 per 100, or 15/100. To find a percentage of a number, I think you convert the percentage to a decimal and then multiply it by the number. Let me check that. + +First, 15% as a decimal. To convert a percentage to a decimal, you divide by 100. So 15 divided by 100 is 0.15. Yeah, that's right. So 15% is 0.15 in decimal form. Then, to find 15% of 24 +0, I need to multiply 0.15 by 240. Let me do that calculation. + +Let me write it out: 0.15 * 240. Let's compute that. Maybe break it down. 0.1 is 10%, and 0.05 is 5%, so 10% of 240 is 24, and 5% of 240 is 12. Then 10% + 5% is 15%, so 24 + 12 is 36. Oh, + that's a good way to check. So 15% is 10% plus 5%, which adds up to 36. Let me verify with the decimal method. 0.15 * 240. Let's multiply 240 by 0.1 first: 24. Then 240 by 0.05: 12. Adding them gives 36. Yep, that matches. Alternatively, 240 * 15 = 3600, and then divide by 100 (since it's per hundred), so 3600 / 100 = 36. That's another way. So 15% of 240 is 36. Let me make sure I didn't make a mistake. Let's check with another method. 10% of 240 is 24, 20% would be 48, so 15% is halfway between 10% and 20%, which is (24 + 48)/2 = 36. Yep, that works too +. So all methods point to 36. I think that's the answer. + +=============== Content ================= + +To solve the problem "What is 15% of 240?" step by step: + +--- + +### **Step 1: Understand the concept of percentage** +A percentage represents a portion of a whole. Specifically, "percent" means "per hundred." So, 15% means **15 out of 100**, or **15/100**. + +--- + +### **Step 2: Convert the percentage to a decimal** +To use percentages in calculations, convert them to decimals by dividing by 100: +$$ +15\% = \frac{15}{100} = 0.15 +$$ + +--- + +### **Step 3: Multiply the decimal by the given number** +Now, multiply 0.15 (the decimal form of 15%) by 240: +$$ +0.15 \times 240 = 36 +$$ + +--- + +### **Alternative Verification Methods** + +#### **Method A: Break into parts** +- 10% of 240 = $ 0.10 \times 240 = 24 $ +- 5% of 240 = $ 0.05 \times 240 = 12 $ +- Add them: $ 24 + 12 = 36 $ + +#### **Method B: Use direct multiplication** +- $ 15\% \text{ of } 240 = \frac{15}{100} \times 240 = \frac{3600}{100} = 36 $ + +#### **Method C: Estimate using known percentages** +- 20% of 240 = $ 0.20 \times 240 = 48 $ +- 10% of 240 = $ 0.10 \times 240 = 24 $ +- 15% is halfway between 10% and 20%: $ \frac{24 + 48}{2} = 36 $ + +--- + +### **Final Answer** +$$ +\boxed{36} +$$ +``` + +**Note:** The reasoning parser captures the model's step-by-step thinking process, allowing you to see how the model arrives at its conclusions. + +#### 4.2.3 Tool Calling + +Step3-VL-10B supports tool calling capabilities. Enable the tool call parser: + +```shell Command +python -m sglang.launch_server \ + --model stepfun-ai/Step3-VL-10B \ + --reasoning-parser deepseek-r1 \ + --tool-call-parser hermes \ + --host 0.0.0.0 \ + --port 30000 \ + --trust-remote-code +``` + +**Python Example (with Thinking Process):** + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Define available tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city name" + }, + "unit": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature unit" + } + }, + "required": ["location"] + } + } + } +] + +# Make request with streaming to see thinking process +response = client.chat.completions.create( + model="stepfun-ai/Step3-VL-10B", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=0.7, + stream=True, + extra_body={"top_k": -1} +) + +# Process streaming response +thinking_started = False +has_thinking = False +tool_calls_accumulator = {} + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Accumulate tool calls + if hasattr(delta, 'tool_calls') and delta.tool_calls: + # Close thinking section if needed + if has_thinking and thinking_started: + print("\n=============== Content =================\n", flush=True) + thinking_started = False + + for tool_call in delta.tool_calls: + index = tool_call.index + if index not in tool_calls_accumulator: + tool_calls_accumulator[index] = { + 'name': None, + 'arguments': '' + } + + if tool_call.function: + if tool_call.function.name: + tool_calls_accumulator[index]['name'] = tool_call.function.name + if tool_call.function.arguments: + tool_calls_accumulator[index]['arguments'] += tool_call.function.arguments + + # Print content + if delta.content: + print(delta.content, end="", flush=True) + +# Print accumulated tool calls +for index, tool_call in sorted(tool_calls_accumulator.items()): + print(f"Tool Call: {tool_call['name']}") + print(f" Arguments: {tool_call['arguments']}") + +print() +``` + +**Example Output:** +```text Output +=============== Thinking ================= +The user is asking about the weather in Beijing. I have a function called "get_weather" that can provide weather information for a location. Let me check the parameters: + +- location: required (string) - "Beijing" +- unit: optional (string, enum: ["celsius", "fahrenheit"]) - not specified by the user, so I won't include it + +I should call the function with location="Beijing". + + + +=============== Content ================= + +Tool Call: get_weather + Arguments: {"location": "Beijing"} +``` + +**Handling Tool Call Results:** + +```python Example +# After getting the tool call, execute the function +def get_weather(location, unit="celsius"): + # Your actual weather API call here + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# Send tool result back to the model +messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + { + "role": "assistant", + "content": None, + "tool_calls": [{ + "id": "call_123", + "type": "function", + "function": { + "name": "get_weather", + "arguments": '{"location": "Beijing", "unit": "celsius"}' + } + }] + }, + { + "role": "tool", + "tool_call_id": "call_123", + "content": get_weather("Beijing", "celsius") + } +] + +final_response = client.chat.completions.create( + model="stepfun-ai/Step3-VL-10B", + messages=messages, + temperature=0.7, + extra_body={"top_k": -1} +) + +print(final_response.choices[0].message.content) +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA B200 GPU (1x) +- Model: stepfun-ai/Step3-VL-10B +- Tensor Parallelism: 1 +- sglang version: 0.5.8+ + +We use SGLang's built-in benchmarking tool to conduct performance evaluation with random images. + +#### 5.1.1 Latency-Sensitive Benchmark + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model stepfun-ai/Step3-VL-10B \ + --host 0.0.0.0 \ + --port 30000 \ + --trust-remote-code +``` + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --host 127.0.0.1 \ + --port 30000 \ + --model stepfun-ai/Step3-VL-10B \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- Result: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 30.85 +Total input tokens: 14120 +Total input text tokens: 720 +Total input vision tokens: 13400 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4217 +Request throughput (req/s): 0.32 +Input token throughput (tok/s): 457.71 +Output token throughput (tok/s): 136.79 +Peak output token throughput (tok/s): 240.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 594.50 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3083.40 +Median E2E Latency (ms): 2747.00 +P90 E2E Latency (ms): 4574.50 +P99 E2E Latency (ms): 5462.49 +---------------Time to First Token---------------- +Mean TTFT (ms): 1327.69 +Median TTFT (ms): 1341.01 +P99 TTFT (ms): 1486.11 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 4.16 +Median TPOT (ms): 4.17 +P99 TPOT (ms): 4.18 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 4.17 +Median ITL (ms): 4.18 +P95 ITL (ms): 4.30 +P99 ITL (ms): 4.38 +Max ITL (ms): 8.24 +================================================== +``` + +#### 5.1.2 Throughput-Sensitive Benchmark + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --host 127.0.0.1 \ + --port 30000 \ + --model stepfun-ai/Step3-VL-10B \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 \ + --random-output-len 1024 \ + --num-prompts 1000 \ + --max-concurrency 100 +``` + +- Result: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang-oai-chat +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 1000 +Benchmark duration (s): 976.52 +Total input tokens: 1416949 +Total input text tokens: 76949 +Total input vision tokens: 1340000 +Total generated tokens: 510855 +Total generated tokens (retokenized): 510526 +Request throughput (req/s): 1.02 +Input token throughput (tok/s): 1451.02 +Output token throughput (tok/s): 523.14 +Peak output token throughput (tok/s): 20429.00 +Peak concurrent requests: 103 +Total token throughput (tok/s): 1974.16 +Concurrency: 99.81 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 97463.22 +Median E2E Latency (ms): 91872.75 +P90 E2E Latency (ms): 118553.42 +P99 E2E Latency (ms): 198445.56 +---------------Time to First Token---------------- +Mean TTFT (ms): 94379.07 +Median TTFT (ms): 87163.09 +P99 TTFT (ms): 194871.41 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 5.89 +Median TPOT (ms): 5.72 +P99 TPOT (ms): 23.58 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 6.05 +Median ITL (ms): 0.13 +P95 ITL (ms): 0.56 +P99 ITL (ms): 3.99 +Max ITL (ms): 97551.06 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 MMMU Benchmark + +You can evaluate the model's accuracy using the MMMU dataset: + +- Model Deployment Command: + +```shell Command +python -m sglang.launch_server \ + --model stepfun-ai/Step3-VL-10B \ + --host 0.0.0.0 \ + --port 30000 \ + --trust-remote-code +``` + +- Benchmark Command: + +```shell Command +python3 benchmark/mmmu/bench_sglang.py \ + --port 30000 \ + --concurrency 64 +``` + +- Result: + +```text Output +Benchmark time: 934.6179109360091 +answers saved to: ./answer_sglang.json +Evaluating... +answers saved to: ./answer_sglang.json +{'Accounting': {'acc': 0.667, 'num': 30}, + 'Agriculture': {'acc': 0.367, 'num': 30}, + 'Architecture_and_Engineering': {'acc': 0.4, 'num': 30}, + 'Art': {'acc': 0.467, 'num': 30}, + 'Art_Theory': {'acc': 0.5, 'num': 30}, + 'Basic_Medical_Science': {'acc': 0.367, 'num': 30}, + 'Biology': {'acc': 0.3, 'num': 30}, + 'Chemistry': {'acc': 0.467, 'num': 30}, + 'Clinical_Medicine': {'acc': 0.567, 'num': 30}, + 'Computer_Science': {'acc': 0.467, 'num': 30}, + 'Design': {'acc': 0.567, 'num': 30}, + 'Diagnostics_and_Laboratory_Medicine': {'acc': 0.3, 'num': 30}, + 'Economics': {'acc': 0.6, 'num': 30}, + 'Electronics': {'acc': 0.567, 'num': 30}, + 'Energy_and_Power': {'acc': 0.633, 'num': 30}, + 'Finance': {'acc': 0.733, 'num': 30}, + 'Geography': {'acc': 0.333, 'num': 30}, + 'History': {'acc': 0.533, 'num': 30}, + 'Literature': {'acc': 0.533, 'num': 30}, + 'Manage': {'acc': 0.6, 'num': 30}, + 'Marketing': {'acc': 0.767, 'num': 30}, + 'Materials': {'acc': 0.6, 'num': 30}, + 'Math': {'acc': 0.7, 'num': 30}, + 'Mechanical_Engineering': {'acc': 0.333, 'num': 30}, + 'Music': {'acc': 0.4, 'num': 30}, + 'Overall': {'acc': 0.523, 'num': 900}, + 'Overall-Art and Design': {'acc': 0.483, 'num': 120}, + 'Overall-Business': {'acc': 0.673, 'num': 150}, + 'Overall-Health and Medicine': {'acc': 0.513, 'num': 150}, + 'Overall-Humanities and Social Science': {'acc': 0.492, 'num': 120}, + 'Overall-Science': {'acc': 0.5, 'num': 150}, + 'Overall-Tech and Engineering': {'acc': 0.481, 'num': 210}, + 'Pharmacy': {'acc': 0.6, 'num': 30}, + 'Physics': {'acc': 0.7, 'num': 30}, + 'Psychology': {'acc': 0.467, 'num': 30}, + 'Public_Health': {'acc': 0.733, 'num': 30}, + 'Sociology': {'acc': 0.433, 'num': 30}} +eval out saved to ./val_sglang.json +Overall accuracy: 0.523 +``` diff --git a/docs_new/cookbook/autoregressive/StepFun/Step3.5.mdx b/docs_new/cookbook/autoregressive/StepFun/Step3.5.mdx new file mode 100644 index 000000000..edb98a7e5 --- /dev/null +++ b/docs_new/cookbook/autoregressive/StepFun/Step3.5.mdx @@ -0,0 +1,529 @@ +--- +title: Step-3.5 +metatags: + description: "Deploy Step-3.5 reasoning engine with SGLang. " +tag: NEW +--- + +import { Step35Deployment } from '/src/snippets/autoregressive/step-35-deployment.jsx'; + +## 1. Model Introduction + +[Step-3.5-Flash](https://huggingface.co/stepfun-ai/Step-3.5-Flash) is StepFun's production-grade reasoning engine built to decouple elite intelligence from heavy compute, and cuts attention cost for low-latency, cost-effective long-context inference—purpose-built for autonomous agents in real-world workflows. The model is available in multiple quantization formats optimized for different hardware platforms. + +This generation delivers comprehensive upgrades across the board: +- **Hybrid Attention Architecture**: Interleaves Sliding Window Attention (SWA) and Global Attention (GA) with a 3:1 ratio and an aggressive 128-token window. This hybrid approach ensures consistent performance across massive datasets or long codebases while significantly reducing the computational overhead typical of standard long-context models. +- **Sparse Mixture-of-Experts**: Only 11B active parameters out of 196B parameters. +- **Multi-Layer Multi-Token Prediction (MTP)**: Equipped with a 3-way Multi-Token Prediction (MTP-3). This allows for complex, multi-step reasoning chains with immediate responsiveness. + +## 2.SGLang Installation + +Step-3.5-Flash is currently available in SGLang via Docker image install. + +### Docker (NVIDIA) +```bash Command +# Pull the docker image +docker pull lmsysorg/sglang:dev-pr-18084 + +# Launch the container +docker run -it --gpus all \ + --shm-size=32g \ + --ipc=host \ + --network=host \ + lmsysorg/sglang:dev-pr-18084 bash +``` + +### Docker (AMD ROCm) +```bash Command +# For MI300X/MI325X +docker pull lmsysorg/sglang:v0.5.9-rocm700-mi30x + +# For MI350X/MI355X +docker pull lmsysorg/sglang:v0.5.9-rocm700-mi35x + +docker run -it \ + --device=/dev/kfd --device=/dev/dri \ + --shm-size=32g \ + --ipc=host \ + --network=host \ + --group-add video --cap-add=SYS_PTRACE \ + --security-opt seccomp=unconfined \ + lmsysorg/sglang:v0.5.9-rocm700-mi30x bash # or mi35x for MI350X/MI355X +``` + +## 3.Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +The Step-3.5-Flash series comes in only one sizes. Recommended starting configurations vary depending on hardware. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model size, quantization method, and thinking capabilities. + + + +### 3.2 Configuration Tips + +- **Memory**: Requires GPUs with high VRAM capacity. Supported platforms: H200 (4×, TP=4), MI300X/MI325X/MI350X/MI355X (4×, TP=4 EP=4). +- **AMD Docker Image**: Use `lmsysorg/sglang:v0.5.9-rocm700-mi30x` for MI300X/MI325X and `lmsysorg/sglang:v0.5.9-rocm700-mi35x` for MI350X/MI355X. +- **AMD Expert Parallelism Required**: On AMD GPUs, always use `--ep 4` with `--tp 4`. Both BF16 and FP8 models require expert parallelism. Without EP, the MoE intermediate dimension is split across GPUs (N=320), which triggers an AITER CK GEMM incompatibility. With EP=4, each GPU handles 72 full experts (N=1280), which works correctly with cuda graph enabled. +- **AITER JIT Compilation**: First inference on AMD may take 30-40 seconds for AITER kernel JIT compilation. Subsequent requests use cached kernels. + +## 4.Model Invocation + +### 4.1 Basic Usage + +For basic API usage and request examples, please refer to: + +- [SGLang Basic Usage Guide](../../../docs/basic_usage/send_request) + +### 4.2 Advanced Usage + +#### 4.2.1 Reasoning Parser + +Step-3.5-Flash only supports reasoning mode. Enable the reasoning parser during deployment to separate the thinking and content sections: + +```shell Command +sglang serve \ + --model-path stepfun-ai/Step-3.5-Flash \ + --tp 4 \ + --ep 4 \ + --reasoning-parser step3p5 +``` + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# Enable streaming to see the thinking process in real-time +response = client.chat.completions.create( + model="stepfun-ai/Step-3.5-Flash", + messages=[ + {"role": "user", "content": "Solve this problem step by step: What is 15% of 240?"} + ], + temperature=0.7, + max_tokens=2048, + stream=True +) + +# Process the stream +has_thinking = False +has_answer = False +thinking_started = False + +for chunk in response: + if chunk.choices and len(chunk.choices) > 0: + delta = chunk.choices[0].delta + + # Print thinking process + if hasattr(delta, 'reasoning_content') and delta.reasoning_content: + if not thinking_started: + print("=============== Thinking =================", flush=True) + thinking_started = True + has_thinking = True + print(delta.reasoning_content, end="", flush=True) + + # Print answer content + if delta.content: + # Close thinking section and add content header + if has_thinking and not has_answer: + print("\n=============== Content =================", flush=True) + has_answer = True + print(delta.content, end="", flush=True) + +print() +``` + +**Output Example:** + +```text Output +=============== Thinking ================= +We are asked: "What is 15% of 240?" We need to solve step by step. + +Step 1: Understand that "15% of 240" means we need to calculate 15 percent of 240. In mathematical terms, it is (15/100) * 240. + +Step 2: Simplify the calculation. We can compute 15% of 240 by first finding 10% of 240 and then 5% of 240, and adding them. Alternatively, we can multiply directly. + +Method 1: +10% of 240 = 240 * 0.10 = 24. +5% is half of 10%, so 5% of 240 = 24 / 2 = 12. +Then 15% = 10% + 5% = 24 + 12 = 36. + +Method 2: Direct multiplication: 15% = 15/100 = 0.15, so 0.15 * 240 = 36. + +We can also compute fractionally: (15/100)*240 = (15*240)/100. 15*240 = 3600, divided by 100 gives 36. + +Thus, the answer is 36. + +We'll present the solution step by step. + +=============== Content ================= + +To find 15% of 240, follow these steps: + +1. **Convert the percentage to a decimal**: + \( 15\% = \frac{15}{100} = 0.15 \) + +2. **Multiply by the number**: + \( 0.15 \times 240 = 36 \) + +Alternatively, break it down: +- \( 10\% \text{ of } 240 = 240 \times 0.10 = 24 \) +- \( 5\% \text{ of } 240 = \frac{24}{2} = 12 \) (since 5% is half of 10%) +- \( 15\% = 10\% + 5\% = 24 + 12 = 36 \) + +**Answer:** 36 +``` + +#### 4.2.2 Tool Calling + +Step-3.5 supports tool calling capabilities. Enable the tool call parser: + +**Python Example:** + +Start sglang server: + +```shell Command +sglang serve \ + --model-path stepfun-ai/Step-3.5-Flash \ + --tp 4 \ + --ep 4 \ + --reasoning-parser step3p5 \ + --tool-call-parser step3p5 +``` + +```python Example +from openai import OpenAI +import json + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="EMPTY" +) + +# 1. define tools +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a location", + "parameters": { + "type": "object", + "properties": { + "location": {"type": "string", "description": "The city name"}, + "unit": {"type": "string", "enum": ["celsius", "fahrenheit"], "description": "Temperature unit"} + }, + "required": ["location"] + } + } + } +] + +# 2. tool run +def get_weather(location, unit="celsius"): + return f"The weather in {location} is 22°{unit[0].upper()} and sunny." + +# 3. send first request +print("--- Sending first request ---") +response = client.chat.completions.create( + model="stepfun-ai/Step-3.5-Flash", + messages=[ + {"role": "user", "content": "What's the weather in Beijing?"} + ], + tools=tools, + temperature=1.0, + stream=False +) + +message = response.choices[0].message + +# 4. Handle Reasoning Content +reasoning = getattr(message, 'reasoning_content', None) +if reasoning: + print("=============== Thinking =================") + print(reasoning) + print("==========================================") + +# 5. Handle Tool Calls +if message.tool_calls: + print("\n🔧 Tool Calls detected:") + history_messages = [ + {"role": "user", "content": "What's the weather in Beijing?"}, + message + ] + + for tool_call in message.tool_calls: + print(f" Tool: {tool_call.function.name}") + print(f" Args: {tool_call.function.arguments}") + + args = json.loads(tool_call.function.arguments) + tool_result = get_weather(args.get("location"), args.get("unit", "celsius")) + + history_messages.append({ + "role": "tool", + "tool_call_id": tool_call.id, + "content": tool_result + }) + + print("\n--- Sending tool results ---") + final_response = client.chat.completions.create( + model="stepfun-ai/Step-3.5-Flash", + messages=history_messages, + temperature=1.0, + stream=False + ) + + print("=============== Final Content =================") + print(final_response.choices[0].message.content) + +else: + if message.content: + print("=============== Content =================") + print(message.content) +``` + +**Output Example:** + +```text Output +--- Sending first request --- +=============== Thinking ================= +The user is asking for the weather in Beijing. I should use the get_weather function with location="Beijing". The unit parameter is optional and the user didn't specify a preference, so I'll leave it out (the default should be fine). + +========================================== + +🔧 Tool Calls detected: + Tool: get_weather + Args: {"location": "Beijing"} + +--- Sending tool results --- +=============== Final Content ================= +The weather in Beijing is 22°C and sunny. +``` + +**Note:** + +- The reasoning parser shows how the model decides to use a tool +- Tool calls are clearly marked with the function name and arguments +- You can then execute the function and send the result back to continue the conversation + +## 5. Benchmark + +### 5.1 Speed Benchmark + +**Test Environment:** + +- Hardware: NVIDIA H200 GPU (4x) +- Model: Step-3.5-Flash +- Tensor Parallelism: 4 +- Expert Parallelism: 4 +- sglang version: 0.5.8 + +We use SGLang's built-in benchmarking tool to conduct performance evaluation on the [ShareGPT_Vicuna_unfiltered](https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered) dataset. This dataset contains real conversation data and can better reflect performance in actual use scenarios. + +#### 5.1.1 Standard Scenario Benchmark + +- Model Deployment Command: + +```shell Command +sglang serve \ + --model-path stepfun-ai/Step-3.5-Flash \ + --tp 4 \ + --ep 4 +``` + +##### 5.1.1.1 Low Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model stepfun-ai/Step-3.5-Flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 1 +Successful requests: 10 +Benchmark duration (s): 35.30 +Total input tokens: 6091 +Total input text tokens: 6091 +Total generated tokens: 4220 +Total generated tokens (retokenized): 4212 +Request throughput (req/s): 0.28 +Input token throughput (tok/s): 172.57 +Output token throughput (tok/s): 119.56 +Peak output token throughput (tok/s): 124.00 +Peak concurrent requests: 2 +Total token throughput (tok/s): 292.14 +Concurrency: 1.00 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 3527.94 +Median E2E Latency (ms): 2884.72 +P90 E2E Latency (ms): 6350.38 +P99 E2E Latency (ms): 7858.53 +---------------Time to First Token---------------- +Mean TTFT (ms): 107.53 +Median TTFT (ms): 80.93 +P99 TTFT (ms): 269.52 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 8.12 +Median TPOT (ms): 8.13 +P99 TPOT (ms): 8.14 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 8.12 +Median ITL (ms): 8.11 +P95 ITL (ms): 8.61 +P99 ITL (ms): 8.91 +Max ITL (ms): 20.77 +================================================== +``` + +##### 5.1.1.2 Medium Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model stepfun-ai/Step-3.5-Flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 80 \ + --max-concurrency 16 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 16 +Successful requests: 80 +Benchmark duration (s): 54.06 +Total input tokens: 39588 +Total input text tokens: 39588 +Total generated tokens: 40805 +Total generated tokens (retokenized): 40479 +Request throughput (req/s): 1.48 +Input token throughput (tok/s): 732.33 +Output token throughput (tok/s): 754.84 +Peak output token throughput (tok/s): 928.00 +Peak concurrent requests: 21 +Total token throughput (tok/s): 1487.17 +Concurrency: 14.06 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 9501.23 +Median E2E Latency (ms): 10010.71 +P90 E2E Latency (ms): 15655.09 +P99 E2E Latency (ms): 18803.63 +---------------Time to First Token---------------- +Mean TTFT (ms): 198.34 +Median TTFT (ms): 89.50 +P99 TTFT (ms): 984.66 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 18.97 +Median TPOT (ms): 18.80 +P99 TPOT (ms): 35.67 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 18.27 +Median ITL (ms): 17.48 +P95 ITL (ms): 18.44 +P99 ITL (ms): 62.47 +Max ITL (ms): 460.85 +================================================== +``` + +##### 5.1.1.3 High Concurrency + +- Benchmark Command: + +```shell Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --model stepfun-ai/Step-3.5-Flash \ + --dataset-name random \ + --random-input-len 1000 \ + --random-output-len 1000 \ + --num-prompts 500 \ + --max-concurrency 100 +``` + +- Test Results: + +```text Output +============ Serving Benchmark Result ============ +Backend: sglang +Traffic request rate: inf +Max request concurrency: 100 +Successful requests: 500 +Benchmark duration (s): 125.88 +Total input tokens: 249331 +Total input text tokens: 249331 +Total generated tokens: 252662 +Total generated tokens (retokenized): 251323 +Request throughput (req/s): 3.97 +Input token throughput (tok/s): 1980.77 +Output token throughput (tok/s): 2007.23 +Peak output token throughput (tok/s): 2500.00 +Peak concurrent requests: 109 +Total token throughput (tok/s): 3987.99 +Concurrency: 92.25 +----------------End-to-End Latency---------------- +Mean E2E Latency (ms): 23223.31 +Median E2E Latency (ms): 22631.90 +P90 E2E Latency (ms): 42269.38 +P99 E2E Latency (ms): 47637.53 +---------------Time to First Token---------------- +Mean TTFT (ms): 372.13 +Median TTFT (ms): 127.26 +P99 TTFT (ms): 1880.42 +-----Time per Output Token (excl. 1st token)------ +Mean TPOT (ms): 46.06 +Median TPOT (ms): 47.61 +P99 TPOT (ms): 51.34 +---------------Inter-Token Latency---------------- +Mean ITL (ms): 45.31 +Median ITL (ms): 39.86 +P95 ITL (ms): 72.49 +P99 ITL (ms): 117.05 +Max ITL (ms): 1359.81 +================================================== +``` + +### 5.2 Accuracy Benchmark + +#### 5.2.1 GSM8K Benchmark + +- **Benchmark Command:** + +```shell Command +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 +``` + +- **Results**: + + - Step-3.5-Flash + ``` + Accuracy: 0.885 + Invalid: 0.005 + Latency: 9.986 s + Output throughput: 1972.911 token/s + ``` diff --git a/docs_new/cookbook/autoregressive/Xiaomi/MiMo-V2-Flash.mdx b/docs_new/cookbook/autoregressive/Xiaomi/MiMo-V2-Flash.mdx new file mode 100644 index 000000000..3823ba0eb --- /dev/null +++ b/docs_new/cookbook/autoregressive/Xiaomi/MiMo-V2-Flash.mdx @@ -0,0 +1,106 @@ +--- +title: MiMo-V2-Flash +metatags: + description: "Deploy MiMo-V2-Flash 309B MoE model with SGLang - hybrid attention, multi-token prediction, and 256K context for efficient inference." +--- + +## Introduction + +XiaomiMiMo/MiMo-V2-Flash, with 309B total parameters and 15B activated parameters, is a new inference-centric model designed to maximize decoding efficiency created by XiaomiMiMo Team explicitly co-designed for real-world serving workloads, enabling flexible tradeoffs between throughput and latency on different hardware. + +This model creates a new balance between long-context modeling capability and inference efficiency. Key features include: +- **Hybrid Attention Architecture**: Interleaves Sliding Window Attention (SWA) and Global Attention (GA) with a 5:1 ratio and an aggressive 128-token window. This reduces KV-cache storage by nearly 6x while maintaining long-context performance via learnable attention sink bias. +- **Multi-Token Prediction (MTP)**: Equipped with a lightweight MTP module (0.33B params/block) using dense FFNs. This triples output speed during inference and will be good to accelerates rollout in RL training. +- **Efficient Pre-Training**: Trained on 27T tokens using FP8 mixed precision and native 32k seq length. The context window supports up to 256k length. +- **Agentic Capabilities**: Post-training utilizes Multi-Teacher On-Policy Distillation (MOPD) and large-scale agentic RL, achieving superior performance on SWE-Bench and complex reasoning tasks. + + +## Installation + +MiMo-V2-Flash is currently available in SGLang via Docker image and pip install. + +### Docker + +```bash Command +# Pull the docker image +docker pull lmsysorg/sglang:dev-pr-15207 + +# Launch the container +docker run -it --gpus all \ + --shm-size=32g \ + --ipc=host \ + --network=host \ + lmsysorg/sglang:dev-pr-15207 bash +``` + +### Pip Installation + +```bash Command +# On a machine with SGLang dependencies installed or inside a SGLang nightly container +# Start an SGLang nightly container +docker run -it --gpus all \ + --shm-size=32g \ + --ipc=host \ + --network=host \ + lmsysorg/sglang:nightly-dev-20251215-4449c170 bash + +# If you already have SGLang installed, uninstall the current SGLang version +pip uninstall sglang -y + +# Install the PyPI Package +pip install sglang==0.5.6.post2.dev8005+pr.15207.g39d5bd57a \ + --extra-index-url https://sgl-project.github.io/whl/pr/ +``` + +## Model Deployment + +Use the configuration selector below to automatically generate the appropriate deployment command. + +import { MiMoV2FlashDeployment } from "/src/snippets/autoregressive/mimo-v2-flash-deployment.jsx"; + + + +MI355X (ROCm) is validated in the selector above with `--tp-size 4`, Triton attention, and `--disable-custom-all-reduce`. `--tp-size 8` hit a QKV sharding error during validation. EAGLE speculative decoding is still WIP on MI355X. + +## Testing the deployment + +Once the server is running, test it with a chat completion request in another terminal: + +```bash Command +curl http://localhost:30000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "XiaomiMiMo/MiMo-V2-Flash", + "messages": [ + {"role": "user", "content": "Hello! What can you help me with?"} + ], + "temperature": 0.7, + "max_tokens": 100 + }' +``` + +**Expected response:** + +```json Config +{ + "id": "...", + "object": "chat.completion", + "model": "XiaomiMiMo/MiMo-V2-Flash", + "choices": [{ + "message": { + "role": "assistant", + "content": "Hello! I can help you with..." + } + }] +} +``` + +## Troubleshooting + +**DeepGEMM Timeout Error** + +Occasionally DeepGEMM timeout errors occur during first launch. Simply rerun the server command in the same container - the compiled kernels are cached and subsequent launches will be fast. + +**ROCm MI355X Attention Backend** + +If you see an error such as `AiterAttnBackend.forward_decode() got an unexpected keyword argument 'sinks'` on MI355X, use the `MI355X` + `Performance Optimizations` command from the selector above, which switches to Triton attention and keeps `--disable-custom-all-reduce`. diff --git a/docs_new/cookbook/autoregressive/intro.mdx b/docs_new/cookbook/autoregressive/intro.mdx new file mode 100644 index 000000000..896a8f563 --- /dev/null +++ b/docs_new/cookbook/autoregressive/intro.mdx @@ -0,0 +1,118 @@ +--- +title: Overview +mode: wide +description: Practical guides for deploying and using large language models and vision language models with SGLang. +metatags: + description: "Explore SGLang autoregressive model cookbooks for LLM and VLM deployment, invocation, optimization, and benchmarking examples." +--- + + + + + + + + + + + + + + + + + + + + + diff --git a/docs_new/cookbook/base/benchmarks/autoregressive_model_benchmark.mdx b/docs_new/cookbook/base/benchmarks/autoregressive_model_benchmark.mdx new file mode 100644 index 000000000..6d04c632f --- /dev/null +++ b/docs_new/cookbook/base/benchmarks/autoregressive_model_benchmark.mdx @@ -0,0 +1,287 @@ +--- +title: Autoregressive Model Benchmark Documentation +metatags: + description: "Benchmark LLM and VLM serving throughput and latency with sglang.bench_serving - supports SGLang, vLLM, and multiple datasets." +--- + +`sglang.bench_serving` is a command-line tool designed to benchmark the online serving throughput and latency of Large Language Models (LLMs) and Vision Language Models(VLMs). It supports various backends (`SGLang`, `vLLM`, etc.) and offers flexible configurations for request rates, dataset types, and profiling. + +## 1. Quick Start + +### Basic Usage (Random Data) + +Run a benchmark using randomly generated prompts with a local SGLang server. + +```bash Command +python -m sglang.bench_serving --backend sglang --port 30000 --dataset-name random --num-prompts 100 +``` + +### Real-World Data (ShareGPT) + +Run a benchmark using the ShareGPT dataset with a specific request rate. + +```shell Command +python -m sglang.bench_serving \ + --backend sglang \ + --dataset-name sharegpt \ + --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json \ + --num-prompts 1000 \ + --request-rate 10 +``` + +## 2. Parameter Reference + +### 2.1 Backend & Server Configuration + +These parameters define the target server and the inference engine being used. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDescription
      `--backend`**Required.** Specifies the backend engine. Options: `sglang`, `sglang-native`, `sglang-oai`, `sglang-oai-chat`, `vllm`, `vllm-chat`, `lmdeploy`, `lmdeploy-chat`, `trt`, `gserver`, `truss`.
      `--base-url`The API base URL (if not using specific host/port flags).
      `--host`Server hostname. Default: `0.0.0.0`.
      `--port`Server port. If not set, it defaults to the specific backend's standard port.
      `--model`Model name or path. If unset, it queries `/v1/models` for configuration.
      `--served-model-name`The model name used in the API request body. Defaults to the value of `--model`.
      `--tokenizer`Path or name of the tokenizer. Defaults to the model configuration.
      + +### 2.2 Dataset Configuration + +Controls the source of the prompts used for benchmarking. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDescription
      `--dataset-name`The type of dataset. Options: `sharegpt`, `custom`, `random`, `random-ids`, `generated-shared-prefix`, `mmmu`, `image`, `mooncake`.
      `--dataset-path`File path to the dataset (e.g., local JSON file for ShareGPT).
      `--num-prompts`Total number of prompts to process. Default: `1000`.
      `--seed`Random seed for reproducibility.
      `--tokenize-prompt`Uses integer IDs instead of strings for inputs. Useful for precise length control.
      + +### 2.3 Input/Output Length Control + +Parameters to control the shape of requests (context length and generation length). + +#### For Random/Image Datasets: + +- `--random-input-len`: Number of input tokens per request. +- `--random-output-len`: Number of output tokens per request. +- `--random-range-ratio`: Range ratio for sampling input/output lengths. + +#### For ShareGPT Dataset: + +- `--sharegpt-output-len`: Overrides the output length defined in the dataset for each request. +- `--sharegpt-context-len`: Max context length. Requests exceeding this are dropped. + +#### General Request Modifiers: + +- `--extra-request-body`: Appends a JSON object to the request payload (e.g., \{"key": "value"\}). Useful for passing sampling parameters. +- `--prompt-suffix`: A string suffix appended to all user prompts. +- `--disable-ignore-eos`: If set, the model will stop generation upon hitting the EOS token (benchmarks usually ignore EOS to force max generation length). +- `--apply-chat-template`: Applies the model's chat template to the input. + +### 2.4 Traffic & Concurrency + +Controls how fast requests are sent to the server. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDescription
      `--request-rate`Requests per second (RPS). If `inf` (default), all requests are sent immediately (burst). Otherwise, arrival times follow a Poisson process.
      `--max-concurrency`The maximum number of active requests allowed at once. Even if `request-rate` is high, the client will hold back requests if this limit is reached.
      `--warmup-requests`Number of requests to run before the actual measurement begins to warm up the server.
      `--flush-cache`Flushes the server cache before starting the benchmark.
      + +### 2.5 Output & Logging + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDescription
      `--output-file`Path to save the results in JSONL format.
      `--output-details`Includes detailed metrics in the output.
      `--print-requests`Prints requests to stdout as they are sent (useful for debugging).
      `--disable-tqdm`Hides the progress bar.
      `--disable-stream`Disables streaming mode (waits for full response).
      `--return-logprob`Requests logprobs from the server.
      `--tag`An arbitrary string tag added to the output file for identification.
      + +### 2.6 Advanced + +#### 2.6.1 Image / Multi-modal + +Only applicable when --dataset-name is set to image. + +- `--image-count`: Number of images per request. +- `--image-resolution`: Resolution (e.g., 1080p, 4k, or custom 1080x1920). +- `--image-format`: jpeg or png. +- `--image-content`: random (noise) or blank. + +#### 2.6.2 LoRA Benchmarking + +Used to simulate multi-LoRA serving scenarios. + +- `--lora-name`: A list of LoRA adapter names (e.g., `--lora-name` adapter1 adapter2). +- `--lora-request-distribution`: How requests are assigned to adapters: + - `uniform`: Equal probability. + - `distinct`: New adapter for every request. + - `skewed`: Follows a Zipf distribution (simulating hot/cold adapters). +- `--lora-zipf-alpha`: The alpha parameter for the Zipf distribution (if `skewed` is used). + +#### 2.6.3 Profiling + +Tools for deep performance analysis. + +- `--profile`: Enables Torch Profiler (Requires `SGLANG_TORCH_PROFILER_DIR` env var on server). +- `--plot-throughput`: Generates throughput/concurrency plots (requires `termplotlib` and `gnuplot`). +- `--profile-activities`: Activities to profile (CPU, GPU, CUDA_PROFILER). +- `--profile-num-steps`: Number of steps to profile. +- `--profile-by-stage` / `--profile-stages`: Profile specific processing stages. + +#### 2.6.4 PD Disaggregation + +For benchmarking Prefill-Decode (PD) separated architectures. + +- `--pd-separated`: Enable PD disaggregation benchmarking. +- `--profile-prefill-url`: URL(s) of prefill workers for profiling. +- `--profile-decode-url`: URL(s) of decode workers for profiling. + +Note: In PD mode, `prefill` and `decode` must be profiled separately. + +### 2.7 Specialized Datasets + +#### 2.7.1 Generated Shared Prefix (GSP): + +Designed to test system prompt caching/prefix sharing performance. + +- `--gsp-num-groups`: Number of unique system prompts. +- `--gsp-prompts-per-group`: How many user questions share the same system prompt. +- `--gsp-system-prompt-len`: Length of the shared prefix. +- `--gsp-fast-prepare`: Skips some statistics calculation for faster startup. + +#### 2.7.2 Mooncake + +Designed for trace replay. + +- `--mooncake-slowdown-factor`: Slows down the trace replay (e.g., 2.0 = 2x slower). +- `--mooncake-num-rounds`: Number of conversation rounds (supports multi-turn). +- `--use-trace-timestamps`: Schedules requests based on timestamps found in the trace file. + +## 3. Metrics + +After running the benchmark, the tool generally reports: + +- `E2E` (End-to-End Latency): The total time from sending the request to receiving the final token. +- `TTFT` (Time To First Token): The time between sending the request and seeing the first word appear. This represents the Prefill time (processing the image and text prompt). +- `TPOT` (Time per Output Token): The average time it takes to generate one token (excluding the first one). This is calculated per request. +- `ITL` (Inter-Token Latency): The time gap between two distinct streaming packets. While TPOT is an average, ITL measures the "jitter" or smoothness of the stream. diff --git a/docs_new/cookbook/base/benchmarks/diffusion_model_benchmark.mdx b/docs_new/cookbook/base/benchmarks/diffusion_model_benchmark.mdx new file mode 100644 index 000000000..4c8e7a092 --- /dev/null +++ b/docs_new/cookbook/base/benchmarks/diffusion_model_benchmark.mdx @@ -0,0 +1,235 @@ +--- +title: Diffusion Models Benchmark Documentation +metatags: + description: "Benchmark diffusion model serving throughput and latency with SGLang - supports image and video generation with flexible configurations." +--- + +`sglang.multimodal_gen.benchmarks.bench_serving` is a command-line tool designed to benchmark the online serving throughput and latency of Diffusion Models. It supports two backends (`sglang-image`, `sglang-video`) and offers flexible configurations for request rates, dataset types, and profiling. + +## 1. Quick Start + +### 1.1 Benchmarking in Low Concurrency + +Run a benchmark on a local server (port 30000) generating 1 videos/images from the `vbench` dataset. + +```bash Command +# For text to video: such as Wan2.2-T2V-A14B-Diffusers +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task t2v --num-prompts 1 --max-concurrency 1 + +# For image to video: such as Wan2.2-I2V-A14B-Diffusers +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task i2v --num-prompts 1 --max-concurrency 1 + +# For image-text to video: such as Wan2.2-TI2V-5B-Diffusers +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task ti2v --num-prompts 1 --max-concurrency 1 + +# For text to image: such as Qwen-Image +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task t2i --num-prompts 1 --max-concurrency 1 + +# For image-text to image: such as Qwen-Image-Edit +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task ti2i --num-prompts 1 --max-concurrency 1 +``` + +### 1.2 Benchmarking in High Concurrency + +Run a benchmark on a local server (port 30000) generating 20 videos/images from the `vbench` dataset. + +```bash Command +# For text to video: such as Wan2.2-T2V-A14B-Diffusers +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task t2v --num-prompts 20 --max-concurrency 20 + +# For image to video: such as Wan2.2-I2V-A14B-Diffusers +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task i2v --num-prompts 20 --max-concurrency 20 + +# For image-text to video: such as Wan2.2-TI2V-5B-Diffusers +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task ti2v --num-prompts 20 --max-concurrency 20 + +# For text to image: such as Qwen-Image +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task t2i --num-prompts 20 --max-concurrency 20 + +# For image-text to image: such as Qwen-Image-Edit +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task ti2i --num-prompts 20 --max-concurrency 20 +``` + +## 2. Parameter Reference + +### 2.1 Connection & Backend Settings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultDescription
      `--backend`**Required**The backend type to use. Choices: `sglang-image`, `sglang-video`.
      `--base-url``None`Base URL of the server (e.g., `http://localhost:30000`). If specified, this overrides `--host` and `--port`.
      `--host``None`The server host (e.g., `127.0.0.1`).
      `--port``None`The server port.
      `--model``None`Model name or path.
      + +### 2.2 Workload & Task Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentChoicesDescription
      `--task``t2v`, `i2v`, `ti2v`, `t2i`, `ti2i`Defines the generation task: `t2v` (Text-to-Video), `i2v` (Image-to-Video), `ti2v` (Text+Image-to-Video), `t2i` (Text-to-image), `ti2i` (Text+Image-to-Image).
      `--dataset``vbench`, `random`The source of prompts/inputs.
      `--dataset-path``None`(Optional) Path to a local dataset file if not using built-in presets.
      `--num-prompts``None`The total number of prompts/requests to execute during the benchmark.
      + +### 2.3 Generation Parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescription
      `--width`The target width for the generated image or video.
      `--height`The target height for the generated image or video.
      `--num-frames`Number of frames to generate (Specific to Video backends).
      `--fps`Frames Per Second configuration (Specific to Video backends).
      + +### 2.4 Concurrency & Load Control + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescription
      `--request-rate`The number of requests initiated per second. If set to `inf`, all requests are sent immediately (burst). If set to a number, request arrival times follow a Poisson process.
      `--max-concurrency`The maximum number of requests allowed to execute simultaneously. This simulates a semaphore or upstream limit. Even if `request-rate` is high, the actual processing rate is capped by this value.
      + +### 2.5 Logging & Output + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescription
      `--output-file`Path to save the benchmark metrics (JSON format).
      `--disable-tqdm`If set, disables the progress bar in the console.
      + +## 3. Metrics + +- `Request Throughput` (req/s), Output Throughput (tok/s) +- `Latency Mean` (ms): Time to Per Step +- `Peak Memory Max` (ms): Max Memory Usage during running diff --git a/docs_new/cookbook/base/reference/server_arguments.mdx b/docs_new/cookbook/base/reference/server_arguments.mdx new file mode 100644 index 000000000..737a1b35f --- /dev/null +++ b/docs_new/cookbook/base/reference/server_arguments.mdx @@ -0,0 +1,46 @@ +--- +title: Server Arguments +metatags: + description: "SGLang server CLI arguments reference - tensor parallelism, data parallelism, expert parallelism, and configuration options." +--- + +This guide explains the parallelism configuration fields used in SGLang model configurations and how they map to SGLang server command-line arguments. + +## Quick Reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Config FieldSGLang CLI ArgumentDescription
      `tp``--tp-size`, `--tensor-parallel-size`Tensor Parallelism - splits model across GPUs
      `dp``--dp-size`, `--data-parallel-size`Data Parallelism - runs multiple model replicas
      `ep``--ep-size`, `--expert-parallel-size`, `--ep`Expert Parallelism - distributes MoE experts
      `enable_dp_attention``--enable-dp-attention`DP for attention, TP for FFN (hybrid)
      diff --git a/docs_new/cookbook/diffusion/FLUX/FLUX.mdx b/docs_new/cookbook/diffusion/FLUX/FLUX.mdx new file mode 100644 index 000000000..ada4058ab --- /dev/null +++ b/docs_new/cookbook/diffusion/FLUX/FLUX.mdx @@ -0,0 +1,294 @@ +--- +title: FLUX +metatags: + description: "Deploy FLUX diffusion models with SGLang - 12B/32B rectified flow transformers for high-quality text-to-image generation." +--- + +import { FluxDeployment } from '/src/snippets/diffusion/flux-deployment.jsx'; + +## 1. Model Introduction + +[FLUX](https://blackforestlabs.ai/) is a family of rectified flow transformer models developed by Black Forest Labs for high-quality image generation from text descriptions. + +[FLUX.1-dev](https://huggingface.co/black-forest-labs/FLUX.1-dev) is a 12 billion parameter rectified flow transformer capable of generating images from text descriptions. + +**Key Features:** + +- **Cutting-edge Output Quality**: Second only to the state-of-the-art FLUX.1 [pro] model +- **Competitive Prompt Following**: Matches the performance of closed-source alternatives +- **Guidance Distillation**: Trained using guidance distillation for improved efficiency +- **Open Weights**: Available for personal, scientific, and commercial purposes under the FLUX [dev] Non-Commercial License + +[FLUX.2-dev](https://huggingface.co/black-forest-labs/FLUX.2-dev) is a 32 billion parameter rectified flow transformer capable of generating, editing, and combining images based on text instructions. + +**Key Features:** + +- **State-of-the-art Performance**: Leading open model in text-to-image generation, single-reference editing, and multi-reference editing +- **No Finetuning Required**: Character, object, and style reference without additional training in one model +- **Guidance Distillation**: Trained using guidance distillation for improved efficiency +- **Open Weights**: Available for personal, scientific, and commercial purposes under the FLUX [dev] Non-Commercial License + +For more details, please refer to the [FLUX.1-dev HuggingFace page](https://huggingface.co/black-forest-labs/FLUX.1-dev), [FLUX.2-dev HuggingFace page](https://huggingface.co/black-forest-labs/FLUX.2-dev), and the [official blog post](https://blackforestlabs.ai/announcing-black-forest-labs/). + +## 2. SGLang-diffusion Installation + +SGLang-diffusion offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang-diffusion installation guide](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/install.md) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +FLUX models are optimized for high-quality image generation. The recommended launch configurations vary by hardware and model version. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform and model version. SGLang supports serving FLUX on NVIDIA B200, H200, H100, and AMD MI355X, MI325X, MI300X GPUs. + + + +### 3.2 Configuration Tips + +Current supported optimization all listed [here](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/support_matrix.md). + +- `--vae-path`: Path to a custom VAE model or HuggingFace model ID (e.g., fal/FLUX.2-Tiny-AutoEncoder). If not specified, the VAE will be loaded from the main model path. +- `--num-gpus`: Number of GPUs to use +- `--tp-size`: Tensor parallelism size (only for the encoder; should not be larger than 1 if text encoder offload is enabled, as layer-wise offload plus prefetch is faster) +- `--sp-degree`: Sequence parallelism size (typically should match the number of GPUs) +- `--ulysses-degree`: The degree of DeepSpeed-Ulysses-style SP in USP +- `--ring-degree`: The degree of ring attention-style SP in USP + +## 4. API Usage + +For complete API documentation, please refer to the [official API usage guide](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/openai_api.md). + +### 4.1 Generate an Image + +```python Example +import base64 +from openai import OpenAI + +client = OpenAI(api_key="EMPTY", base_url="http://localhost:3000/v1") + +response = client.images.generate( + model="black-forest-labs/FLUX.1-dev", + prompt="A cat holding a sign that says hello world", + size="1024x1024", + n=1, + response_format="b64_json", +) + +# Save the generated image +image_bytes = base64.b64decode(response.data[0].b64_json) +with open("output.png", "wb") as f: + f.write(image_bytes) +``` + +### 4.2 Advanced Usage + +#### 4.2.1 Cache-DiT Acceleration + +SGLang integrates [Cache-DiT](https://github.com/vipshop/cache-dit), a caching acceleration engine for Diffusion Transformers (DiT), to achieve up to 7.4x inference speedup with minimal quality loss. You can set `SGLANG_CACHE_DIT_ENABLED=True` to enable it. For more details, please refer to the SGLang Cache-DiT [documentation](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/cache_dit.md). + +**Basic Usage** + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true sglang serve --model-path black-forest-labs/FLUX.1-dev +``` + +**Advanced Usage** + +- DBCache Parameters: DBCache controls block-level caching behavior: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Fn`SGLANG_CACHE_DIT_FN`1Number of first blocks to always compute
      Bn`SGLANG_CACHE_DIT_BN`0Number of last blocks to always compute
      W`SGLANG_CACHE_DIT_WARMUP`4Warmup steps before caching starts
      R`SGLANG_CACHE_DIT_RDT`0.24Residual difference threshold
      MC`SGLANG_CACHE_DIT_MC`3Maximum continuous cached steps
      +- TaylorSeer Configuration: TaylorSeer improves caching accuracy using Taylor expansion: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Enable`SGLANG_CACHE_DIT_TAYLORSEER`falseEnable TaylorSeer calibrator
      Order`SGLANG_CACHE_DIT_TS_ORDER`1Taylor expansion order (1 or 2)
      + + Combined Configuration Example: + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_FN=2 \ +SGLANG_CACHE_DIT_BN=1 \ +SGLANG_CACHE_DIT_WARMUP=4 \ +SGLANG_CACHE_DIT_RDT=0.4 \ +SGLANG_CACHE_DIT_MC=4 \ +SGLANG_CACHE_DIT_TAYLORSEER=true \ +SGLANG_CACHE_DIT_TS_ORDER=2 \ +sglang serve --model-path black-forest-labs/FLUX.1-dev +``` + +#### 4.2.2 CPU Offload + +- `--dit-cpu-offload`: Use CPU offload for DiT inference. Enable if run out of memory. +- `--text-encoder-cpu-offload`: Use CPU offload for text encoder inference. +- `--vae-cpu-offload`: Use CPU offload for VAE. +- `--pin-cpu-memory`: Pin memory for CPU offload. Only added as a temp workaround if it throws "CUDA error: invalid argument". + +## 5. Benchmark + +### 5.1 Speedup Benchmark + +#### 5.1.1 Generate a image + +Test Environment: + +- Hardware: NVIDIA B200 GPU (1x) +- Model: black-forest-labs/FLUX.1-dev +- sglang diffusion version: 0.5.6.post2 + +**Server Command**: + +```shell Command +sglang serve --model-path black-forest-labs/FLUX.1-dev --port 30000 +``` + +**Benchmark Command**: + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task t2v --num-prompts 1 --max-concurrency 1 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Backend: sglang-image +Model: black-forest-labs/FLUX.1-dev +Dataset: vbench +Task: t2v +-------------------------------------------------- +Benchmark duration (s): 50.97 +Request rate: inf +Max request concurrency: 1 +Successful requests: 1/1 +-------------------------------------------------- +Request throughput (req/s): 0.02 +Latency Mean (s): 50.9681 +Latency Median (s): 50.9681 +Latency P99 (s): 50.9681 +-------------------------------------------------- +Peak Memory Max (MB): 27905.19 +Peak Memory Mean (MB): 27905.19 +Peak Memory Median (MB): 27905.19 +============================================================ +``` + +#### 5.1.2 Generate images with high concurrency + +**Server Command** : + +```shell Command +sglang serve --model-path black-forest-labs/FLUX.1-dev --port 30000 +``` + +**Benchmark Command** : + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task t2v --num-prompts 20 --max-concurrency 20 +``` + +**Result** : + +```text Output +================= Serving Benchmark Result ================= +Backend: sglang-image +Model: black-forest-labs/FLUX.1-dev +Dataset: vbench +Task: t2v +-------------------------------------------------- +Benchmark duration (s): 111.79 +Request rate: inf +Max request concurrency: 20 +Successful requests: 20/20 +-------------------------------------------------- +Request throughput (req/s): 0.18 +Latency Mean (s): 67.0646 +Latency Median (s): 66.9691 +Latency P99 (s): 110.8949 +-------------------------------------------------- +Peak Memory Max (MB): 27917.19 +Peak Memory Mean (MB): 27916.59 +Peak Memory Median (MB): 27917.19 +============================================================ +``` diff --git a/docs_new/cookbook/diffusion/MOVA/MOVA.mdx b/docs_new/cookbook/diffusion/MOVA/MOVA.mdx new file mode 100644 index 000000000..8f7235b82 --- /dev/null +++ b/docs_new/cookbook/diffusion/MOVA/MOVA.mdx @@ -0,0 +1,268 @@ +--- +title: MOVA +metatags: + description: "Deploy MOVA with SGLang - simultaneous video and audio generation with asymmetric dual-tower architecture, precise lip-sync, and environment-aware sound effects." +--- + +## 1. Model Introduction + +[MOVA](https://github.com/OpenMOSS/MOVA) (MOSS Video and Audio) is a foundation model developed by the SII-OpenMOSS Team, designed to break the "silent era" of open-source video generation. Unlike cascaded pipelines that generate sound as an afterthought, MOVA synthesizes video and audio simultaneously in a single inference pass for perfect alignment. It adopts an Asymmetric Dual-Tower Architecture, fusing pre-trained video and audio towers through a bidirectional cross-attention mechanism to maintain tight synchronization between video and audio during generation. + +[MOVA-360p](https://huggingface.co/OpenMOSS-Team/MOVA-360p) is suitable for fast inference and resource-constrained environments. [MOVA-720p](https://huggingface.co/OpenMOSS-Team/MOVA-720p) provides higher resolution video generation. Both versions support generating up to 8 seconds of video-audio content. + +**Key Features:** + +- **Native Bimodal Generation**: Generates high-fidelity video and synchronized audio in a single inference pass, eliminating error accumulation from cascaded pipelines +- **Precise Lip-Sync**: Achieves state-of-the-art performance in multilingual lip-synchronization (LSE-D: 7.094, LSE-C: 7.452 with Dual CFG on Verse-Bench Set3) +- **Environment-Aware Sound Effects**: Generates corresponding environmental sound effects including physical interaction sounds, ambient sounds, and spatial/textural sound feedback +- **Fully Open-Source**: Model weights, inference code, training pipelines, and LoRA fine-tuning scripts are all open-sourced + +For more details, please refer to the [MOVA-360p HuggingFace page](https://huggingface.co/OpenMOSS-Team/MOVA-360p), the [MOVA-720p HuggingFace page](https://huggingface.co/OpenMOSS-Team/MOVA-720p), the [GitHub repository](https://github.com/OpenMOSS/MOVA), and the [technical report (arXiv)](https://arxiv.org/abs/2602.08794). + +## 2. SGLang-diffusion Installation + +SGLang-diffusion offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang-diffusion installation guide](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/install.md) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +MOVA supports both online serving and CLI generation modes. The recommended launch configurations vary by hardware and resolution. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform. + +import { MOVADeployment } from '/src/snippets/diffusion/mova-deployment.jsx' + + + +### 3.2 Configuration Tips + +Current supported optimization all listed [here](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/support_matrix.md). + +- `--num-gpus`: Number of GPUs to use +- `--tp`: Tensor parallelism size (should not be larger than 1 if text encoder offload is enabled, as layer-wise offload plus prefetch is faster) +- `--ring-degree`: The degree of ring attention-style SP in USP +- `--ulysses-degree`: The degree of DeepSpeed-Ulysses-style SP in USP +- `--adjust-frames`: Whether to adjust frames automatically (set to `false` for MOVA) +- `--enable-torch-compile`: Enable torch.compile for faster inference + +## 4. API Usage + +For complete API documentation, please refer to the [official API usage guide](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/openai_api.md). + +### 4.1 CLI Generation (sglang generate) + +```bash Command +sglang generate \ + --model-path OpenMOSS-Team/MOVA-720p \ + --prompt "A man in a blue blazer and glasses speaks in a formal indoor setting, \ + framed by wooden furniture and a filled bookshelf. \ + Quiet room acoustics underscore his measured tone as he delivers his remarks. \ + At one point, he says, \"I would also believe that this advance in AI recently wasn't unexpected.\"" \ + --image-path "" \ + --adjust-frames false \ + --num-gpus 8 \ + --ring-degree 2 \ + --ulysses-degree 4 \ + --num-frames 193 \ + --fps 24 \ + --seed 67 \ + --num-inference-steps 25 \ + --enable-torch-compile \ + --save-output +``` + +### 4.2 Generate a Video + +```bash Command +curl -X POST "http://0.0.0.0:30002/v1/videos" \ + -F "prompt=A man in a blue blazer and glasses speaks in a formal indoor setting, framed by wooden furniture and a filled bookshelf. Quiet room acoustics underscore his measured tone as he delivers his remarks. At one point, he says, \"I would also believe that this advance in AI recently wasn't unexpected.\"" \ + -F "input_reference=@" \ + -F "size=640x352" \ + -F "num_frames=193" \ + -F "fps=24" \ + -F "seed=67" \ + -F "guidance_scale=5.0" \ + -F "num_inference_steps=25" \ + -o create_video.json +``` + +### 4.3 Advanced Usage + +#### 4.3.1 Cache-DiT Acceleration + +SGLang integrates [Cache-DiT](https://github.com/vipshop/cache-dit), a caching acceleration engine for Diffusion Transformers (DiT), to achieve up to 7.4x inference speedup with minimal quality loss. You can set `SGLANG_CACHE_DIT_ENABLED=True` to enable it. For more details, please refer to the SGLang Cache-DiT [documentation](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/cache_dit.md). + +**Basic Usage** + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true sglang serve --model-path OpenMOSS-Team/MOVA-720p +``` + +**Advanced Usage** + +- DBCache Parameters: DBCache controls block-level caching behavior: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Fn`SGLANG_CACHE_DIT_FN`1Number of first blocks to always compute
      Bn`SGLANG_CACHE_DIT_BN`0Number of last blocks to always compute
      W`SGLANG_CACHE_DIT_WARMUP`4Warmup steps before caching starts
      R`SGLANG_CACHE_DIT_RDT`0.24Residual difference threshold
      MC`SGLANG_CACHE_DIT_MC`3Maximum continuous cached steps
      + +- TaylorSeer Configuration: TaylorSeer improves caching accuracy using Taylor expansion: + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Enable`SGLANG_CACHE_DIT_TAYLORSEER`falseEnable TaylorSeer calibrator
      Order`SGLANG_CACHE_DIT_TS_ORDER`1Taylor expansion order (1 or 2)
      + + Combined Configuration Example: + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_FN=2 \ +SGLANG_CACHE_DIT_BN=1 \ +SGLANG_CACHE_DIT_WARMUP=4 \ +SGLANG_CACHE_DIT_RDT=0.4 \ +SGLANG_CACHE_DIT_MC=4 \ +SGLANG_CACHE_DIT_TAYLORSEER=true \ +SGLANG_CACHE_DIT_TS_ORDER=2 \ +sglang serve --model-path OpenMOSS-Team/MOVA-720p +``` + +#### 4.3.2 CPU Offload + +- `--dit-cpu-offload`: Use CPU offload for DiT inference. Enable if run out of memory. +- `--text-encoder-cpu-offload`: Use CPU offload for text encoder inference. +- `--vae-cpu-offload`: Use CPU offload for VAE. +- `--pin-cpu-memory`: Pin memory for CPU offload. Only added as a temp workaround if it throws "CUDA error: invalid argument". + +## 5. Benchmark + +### 5.1 Speedup Benchmark + +#### 5.1.1 Generate a video + +Test Environment: + +- Hardware: NVIDIA H200 x 8 +- git revision: 443b1a8 +- Model: OpenMOSS-Team/MOVA-720p + +**Server Command**: + +```bash Command +sglang serve --model-path OpenMOSS-Team/MOVA-720p --port 30002 \ + --adjust-frames false --num-gpus 8 --ring-degree 2 --ulysses-degree 4 \ + --tp 1 --enable-torch-compile +``` + +**Benchmark Command**: + +```bash Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --task image-to-video --dataset vbench --num-prompts 1 --max-concurrency 1 \ + --port 30002 +``` + +**Result**: +```text Output +================= Serving Benchmark Result ================= +Task: image-to-video +Model: OpenMOSS-Team/MOVA-720p +Dataset: vbench +-------------------------------------------------- +Benchmark duration (s): 590.76 +Request rate: inf +Max request concurrency: 1 +Successful requests: 1/1 +-------------------------------------------------- +Request throughput (req/s): 0.00 +Latency Mean (s): 590.7549 +Latency Median (s): 590.7549 +Latency P99 (s): 590.7549 +-------------------------------------------------- +Peak Memory Max (MB): 74996.00 +Peak Memory Mean (MB): 74996.00 +Peak Memory Median (MB): 74996.00 +============================================================ +``` + +#### 5.1.2 Generate videos with high concurrency + +**Server Command**: + +```bash Command +sglang serve --model-path OpenMOSS-Team/MOVA-720p --port 30002 \ + --adjust-frames false --num-gpus 8 --ring-degree 2 --ulysses-degree 4 \ + --tp 1 --enable-torch-compile +``` + +**Benchmark Command**: + +```bash Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --task image-to-video --dataset vbench --num-prompts 20 --max-concurrency 20 \ + --port 30002 +``` diff --git a/docs_new/cookbook/diffusion/Qwen-Image/Qwen-Image-Edit.mdx b/docs_new/cookbook/diffusion/Qwen-Image/Qwen-Image-Edit.mdx new file mode 100644 index 000000000..d833289e2 --- /dev/null +++ b/docs_new/cookbook/diffusion/Qwen-Image/Qwen-Image-Edit.mdx @@ -0,0 +1,280 @@ +--- +title: Qwen-Image-Edit-2511 +metatags: + description: "Deploy Qwen-Image-Edit-2511 with SGLang - 20B image editing model with text rendering, character consistency, and geometric reasoning." +--- + +import { QwenImageEditDeployment } from '/src/snippets/diffusion/qwen-image-edit-deployment.jsx'; + +## 1. Model Introduction + +[Qwen-Image-Edit-2511](https://huggingface.co/Qwen/Qwen-Image-Edit-2511) is an enhanced version over Qwen-Image-Edit-2509, featuring multiple improvements—including notably better consistency. Built upon the 20B Qwen-Image model, Qwen-Image-Edit-2511 successfully extends Qwen-Image's unique text rendering capabilities to image editing tasks, enabling precise text editing. + +Key Enhancements in Qwen-Image-Edit-2511: + +- **Mitigate Image Drift**: Reduces unwanted changes in non-edited regions of the image. +- **Improved Character Consistency**: The model can perform imaginative edits based on an input portrait while preserving the identity and visual characteristics of the subject. +- **Multi-Person Consistency**: Enhanced consistency in multi-person group photos, enabling high-fidelity fusion of two separate person images into a coherent group shot. +- **Integrated LoRA Capabilities**: Selected popular community-created LoRAs are integrated directly into the base model, unlocking their effects without extra tuning (e.g., lighting enhancement, viewpoint generation). +- **Enhanced Industrial Design Generation**: Special attention to practical engineering scenarios, including batch industrial product design and material replacement for industrial components. +- **Strengthened Geometric Reasoning**: Stronger geometric reasoning capability for generating auxiliary construction lines for design or annotation purposes. + +For more details, please refer to the [official Qwen-Image-Edit-2511 HuggingFace page](https://huggingface.co/Qwen/Qwen-Image-Edit-2511), the [Blog](https://qwenlm.github.io/blog/qwen-image-edit-2511/), and the [Tech Report](https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-Image/Qwen_Image.pdf). + +## 2. SGLang-diffusion Installation + +SGLang-diffusion offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang-diffusion installation guide](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/install.md) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +Qwen-Image-Edit-2511 is a 20B parameter model optimized for image editing tasks. The recommended launch configurations vary by hardware. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform. + + + +### 3.2 Configuration Tips + +Current supported optimization all listed [here](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/support_matrix.md). + +- `--vae-path`: Path to a custom VAE model or HuggingFace model ID (e.g., fal/FLUX.2-Tiny-AutoEncoder). If not specified, the VAE will be loaded from the main model path. +- `--num-gpus`: Number of GPUs to use +- `--tp-size`: Tensor parallelism size (only for the encoder; should not be larger than 1 if text encoder offload is enabled, as layer-wise offload plus prefetch is faster) +- `--sp-degree`: Sequence parallelism size (typically should match the number of GPUs) +- `--ulysses-degree`: The degree of DeepSpeed-Ulysses-style SP in USP +- `--ring-degree`: The degree of ring attention-style SP in USP + +## 4. API Usage + +For complete API documentation, please refer to the [official API usage guide](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/openai_api.md). + +### 4.1 Edit an Image + +```python Example +import base64 +from openai import OpenAI + +client = OpenAI(api_key="EMPTY", base_url="http://localhost:3000/v1") + +response = client.images.edit( + model="Qwen/Qwen-Image-Edit-2511", + image=open("input.png", "rb"), + prompt="Change the color of the taxi to black.", + n=1, + response_format="b64_json", +) + +# Save the edited image +image_bytes = base64.b64decode(response.data[0].b64_json) +with open("output.png", "wb") as f: + f.write(image_bytes) +``` + +### 4.2 Advanced Usage + +#### 4.2.1 Cache-DiT Acceleration + +SGLang integrates [Cache-DiT](https://github.com/vipshop/cache-dit), a caching acceleration engine for Diffusion Transformers (DiT), to achieve up to 7.4x inference speedup with minimal quality loss. You can set `SGLANG_CACHE_DIT_ENABLED=True` to enable it. For more details, please refer to the SGLang Cache-DiT [documentation](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/cache_dit.md). + +**Basic Usage** + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true sglang serve --model-path Qwen/Qwen-Image-Edit-2511 +``` + +**Advanced Usage** + +- DBCache Parameters: DBCache controls block-level caching behavior: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Fn`SGLANG_CACHE_DIT_FN`1Number of first blocks to always compute
      Bn`SGLANG_CACHE_DIT_BN`0Number of last blocks to always compute
      W`SGLANG_CACHE_DIT_WARMUP`4Warmup steps before caching starts
      R`SGLANG_CACHE_DIT_RDT`0.24Residual difference threshold
      MC`SGLANG_CACHE_DIT_MC`3Maximum continuous cached steps
      +- TaylorSeer Configuration: TaylorSeer improves caching accuracy using Taylor expansion: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Enable`SGLANG_CACHE_DIT_TAYLORSEER`falseEnable TaylorSeer calibrator
      Order`SGLANG_CACHE_DIT_TS_ORDER`1Taylor expansion order (1 or 2)
      + + Combined Configuration Example: + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_FN=2 \ +SGLANG_CACHE_DIT_BN=1 \ +SGLANG_CACHE_DIT_WARMUP=4 \ +SGLANG_CACHE_DIT_RDT=0.4 \ +SGLANG_CACHE_DIT_MC=4 \ +SGLANG_CACHE_DIT_TAYLORSEER=true \ +SGLANG_CACHE_DIT_TS_ORDER=2 \ +sglang serve --model-path Qwen/Qwen-Image-Edit-2511 +``` + +#### 4.2.2 CPU Offload + +- `--dit-cpu-offload`: Use CPU offload for DiT inference. Enable if run out of memory. +- `--text-encoder-cpu-offload`: Use CPU offload for text encoder inference. +- `--image-encoder-cpu-offload`: Use CPU offload for image encoder inference. +- `--vae-cpu-offload`: Use CPU offload for VAE. +- `--pin-cpu-memory`: Pin memory for CPU offload. Only added as a temp workaround if it throws "CUDA error: invalid argument". + +## 5. Benchmark + +Test Environment: + +- Hardware: NVIDIA B200 GPU (1x) +- Model: Qwen/Qwen-Image-Edit-2511 +- sglang diffusion version: 0.5.6.post2 + +### 5.1 Speedup Benchmark + +#### 5.1.1 Edit a image + +**Server Command**: + +```shell Command +sglang serve --model-path Qwen/Qwen-Image-Edit-2511 --port 30000 +``` + +**Benchmark Command**: + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task ti2i --num-prompts 1 --max-concurrency 1 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Backend: sglang-image +Model: Qwen/Qwen-Image-Edit-2511 +Dataset: vbench +Task: ti2i +-------------------------------------------------- +Benchmark duration (s): 35.31 +Request rate: inf +Max request concurrency: 1 +Successful requests: 1/1 +-------------------------------------------------- +Request throughput (req/s): 0.03 +Latency Mean (s): 35.3053 +Latency Median (s): 35.3053 +Latency P99 (s): 35.3053 +-------------------------------------------------- +Peak Memory Max (MB): 47959.35 +Peak Memory Mean (MB): 47959.35 +Peak Memory Median (MB): 47959.35 +============================================================ +``` + +#### 5.1.2 Edit a image with high concurrency + +**Benchmark Command**: + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task ti2i --num-prompts 20 --max-concurrency 20 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Backend: sglang-image +Model: Qwen/Qwen-Image-Edit-2511 +Dataset: vbench +Task: ti2i +-------------------------------------------------- +Benchmark duration (s): 286.11 +Request rate: inf +Max request concurrency: 20 +Successful requests: 20/20 +-------------------------------------------------- +Request throughput (req/s): 0.07 +Latency Mean (s): 150.0428 +Latency Median (s): 150.0600 +Latency P99 (s): 283.3843 +-------------------------------------------------- +Peak Memory Max (MB): 47971.82 +Peak Memory Mean (MB): 47971.49 +Peak Memory Median (MB): 47971.29 +============================================================ +``` diff --git a/docs_new/cookbook/diffusion/Qwen-Image/Qwen-Image.mdx b/docs_new/cookbook/diffusion/Qwen-Image/Qwen-Image.mdx new file mode 100644 index 000000000..84970ef9c --- /dev/null +++ b/docs_new/cookbook/diffusion/Qwen-Image/Qwen-Image.mdx @@ -0,0 +1,271 @@ +--- +title: Qwen-Image +metatags: + description: "Deploy Qwen-Image with SGLang - community contribution guide for Qwen's image generation model." +--- + +import { QwenImageDeployment } from '/src/snippets/diffusion/qwen-image-deployment.jsx'; + +## 1. Model Introduction + +[Qwen-Image](https://huggingface.co/Qwen/Qwen-Image) is a text-to-image diffusion model developed by the Qwen team. + +For more details, please refer to the [official Qwen-Image HuggingFace page](https://huggingface.co/Qwen/Qwen-Image), the [Blog](https://qwenlm.github.io/blog/qwen-image/), and the [Tech Report](https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-Image/Qwen_Image.pdf). + +## 2. SGLang-diffusion Installation + +SGLang-diffusion offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang-diffusion installation guide](../../../docs/sglang-diffusion/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +Qwen-Image is a text-to-image model. The recommended launch configurations vary by hardware. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform. + + + +### 3.2 Configuration Tips + +Current supported optimization all listed [here](../../../docs/sglang-diffusion/attention-backends#platform-support-matrix). + +- `--vae-path`: Path to a custom VAE model or HuggingFace model ID (e.g., fal/FLUX.2-Tiny-AutoEncoder). If not specified, the VAE will be loaded from the main model path. +- `--num-gpus`: Number of GPUs to use +- `--tp-size`: Tensor parallelism size (only for the encoder; should not be larger than 1 if text encoder offload is enabled, as layer-wise offload plus prefetch is faster) +- `--sp-degree`: Sequence parallelism size (typically should match the number of GPUs) +- `--ulysses-degree`: The degree of DeepSpeed-Ulysses-style SP in USP +- `--ring-degree`: The degree of ring attention-style SP in USP + +**AMD ROCm Notes**: Requires SGLang >= v0.5.8. + +## 4. API Usage + +For complete API documentation, please refer to the [official API usage guide](../../../docs/sglang-diffusion/api/openai-api). + +### 4.1 Generate an Image + +```python Example +import base64 +from openai import OpenAI + +client = OpenAI(api_key="EMPTY", base_url="http://localhost:30000/v1") + +response = client.images.generate( + model="Qwen/Qwen-Image", + prompt="A logo With Bold Large text: SGL Diffusion", + n=1, + response_format="b64_json", +) + +# Save the generated image +image_bytes = base64.b64decode(response.data[0].b64_json) +with open("output.png", "wb") as f: + f.write(image_bytes) +``` + +### 4.2 Advanced Usage + +#### 4.2.1 Cache-DiT Acceleration + +SGLang integrates [Cache-DiT](https://github.com/vipshop/cache-dit), a caching acceleration engine for Diffusion Transformers (DiT), to achieve up to 7.4x inference speedup with minimal quality loss. You can set `SGLANG_CACHE_DIT_ENABLED=True` to enable it. For more details, please refer to the SGLang Cache-DiT [documentation](../../../docs/sglang-diffusion/cache-dit). + +**Basic Usage** + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true sglang serve --model-path Qwen/Qwen-Image +``` + +**Advanced Usage** + +- DBCache Parameters: DBCache controls block-level caching behavior: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Fn`SGLANG_CACHE_DIT_FN`1Number of first blocks to always compute
      Bn`SGLANG_CACHE_DIT_BN`0Number of last blocks to always compute
      W`SGLANG_CACHE_DIT_WARMUP`4Warmup steps before caching starts
      R`SGLANG_CACHE_DIT_RDT`0.24Residual difference threshold
      MC`SGLANG_CACHE_DIT_MC`3Maximum continuous cached steps
      +- TaylorSeer Configuration: TaylorSeer improves caching accuracy using Taylor expansion: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Enable`SGLANG_CACHE_DIT_TAYLORSEER`falseEnable TaylorSeer calibrator
      Order`SGLANG_CACHE_DIT_TS_ORDER`1Taylor expansion order (1 or 2)
      + + Combined Configuration Example: + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_FN=2 \ +SGLANG_CACHE_DIT_BN=1 \ +SGLANG_CACHE_DIT_WARMUP=4 \ +SGLANG_CACHE_DIT_RDT=0.4 \ +SGLANG_CACHE_DIT_MC=4 \ +SGLANG_CACHE_DIT_TAYLORSEER=true \ +SGLANG_CACHE_DIT_TS_ORDER=2 \ +sglang serve --model-path Qwen/Qwen-Image +``` + +#### 4.2.2 CPU Offload + +- `--dit-cpu-offload`: Use CPU offload for DiT inference. Enable if run out of memory. +- `--text-encoder-cpu-offload`: Use CPU offload for text encoder inference. +- `--vae-cpu-offload`: Use CPU offload for VAE. +- `--pin-cpu-memory`: Pin memory for CPU offload. Only added as a temp workaround if it throws "CUDA error: invalid argument". + +## 5. Benchmark + +Test Environment: + +- Hardware: AMD Instinct MI300X GPU (1x) +- Model: Qwen/Qwen-Image +- Docker Image: lmsysorg/sglang:v0.5.8-rocm700-mi30x +- sglang diffusion version: 0.5.8 + +### 5.1 Speedup Benchmark + +#### 5.1.1 Generate an image + +**Server Command**: + +```shell Command +sglang serve --model-path Qwen/Qwen-Image \ + --ulysses-degree=1 --ring-degree=1 --port 30000 +``` + +**Benchmark Command**: + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task text-to-image --num-prompts 1 --max-concurrency 1 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Task: text-to-image +Model: Qwen/Qwen-Image +Dataset: vbench +-------------------------------------------------- +Benchmark duration (s): 29.04 +Request rate: inf +Max request concurrency: 1 +Successful requests: 1/1 +-------------------------------------------------- +Request throughput (req/s): 0.03 +Latency Mean (s): 29.0378 +Latency Median (s): 29.0378 +Latency P99 (s): 29.0378 +-------------------------------------------------- +Peak Memory Max (MB): 48018.83 +Peak Memory Mean (MB): 48018.83 +Peak Memory Median (MB): 48018.83 +============================================================ +``` + +#### 5.1.2 Generate images with high concurrency + +**Benchmark Command**: + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task text-to-image --num-prompts 20 --max-concurrency 20 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Task: text-to-image +Model: Qwen/Qwen-Image +Dataset: vbench +-------------------------------------------------- +Benchmark duration (s): 300.79 +Request rate: inf +Max request concurrency: 20 +Successful requests: 14/20 +-------------------------------------------------- +Request throughput (req/s): 0.05 +Latency Mean (s): 154.5368 +Latency Median (s): 154.8363 +Latency P99 (s): 285.4603 +-------------------------------------------------- +Peak Memory Max (MB): 48030.31 +Peak Memory Mean (MB): 48030.30 +Peak Memory Median (MB): 48030.29 +============================================================ +``` diff --git a/docs_new/cookbook/diffusion/README.mdx b/docs_new/cookbook/diffusion/README.mdx new file mode 100644 index 000000000..75e37534b --- /dev/null +++ b/docs_new/cookbook/diffusion/README.mdx @@ -0,0 +1,91 @@ +--- +title: "Diffusion Cookbook" +description: "Cookbook recipes for running diffusion models with SGLang" +metatags: + description: "Explore SGLang diffusion cookbook structure, categories, and contribution guidance for image and video generation recipes." +--- + +# SGLang Diffusion Cookbook + +
      + +Create a comprehensive cookbook for diffusion models in SGLang, demonstrating SGLang's performance advantages for image and video generation workloads. + +## 🎯 What You'll Find Here + +This cookbook aggregates battle-tested SGLang recipes covering: + +- **Models**: Mainstream Image and Video generation Models +- **Use Cases**: Inference serving, deployment strategies +- **Hardware**: GPU and CPU configurations, optimization for different accelerators +- **Best Practices**: Configuration templates, performance tuning, troubleshooting guides + +Each recipe provides step-by-step instructions to help you quickly implement SGLang solutions for your specific requirements. + +## 🚀 Quick Start + +1. Browse the recipe index above to find your model +2. Follow the step-by-step instructions in each guide +3. Adapt configurations to your specific hardware and requirements +4. Join our community to share feedback and improvements + +The sglang diffusion cookbook directory structure are shown below: + +```text Example +sgl-cookbook/docs/diffusion/ +├── README.md # Main cookbook (this file) +├── Qwen-Image/ # Qwen-Image series models docs +│ ├── Qwen-Image.md +│ └── Qwen-Image-Edit.md +├── Wan/ # Wan series models docs +│ ├── Wan2.1.md +│ └── Wan2.2.md +├── Z-Image/ # Z-Image series models docs +│ └── Z-Image-Turbo.md +└── ... +``` + +## 🤝 Contributing + +We believe the best documentation comes from practitioners. Whether you've optimized SGLang for a specific model, solved a tricky deployment challenge, or discovered performance improvements, we encourage you to contribute your recipes! + +**💪How to Contribute** + +- Comment below if interested (mention which role) +- Join discussion on implementation details +- Fork repo and work on assigned section +- Submit PR following SGLang cookbook standards +- Iterate based on review feedback + +**To contribute:** + +```shell Command +# Fork the repo and clone locally +git clone https://github.com/YOUR_USERNAME/sglang-cookbook.git +cd sglang-cookbook + +# Create a new branch +git checkout -b add-my-recipe + +# Add your recipe following the template in DeepSeek-V3.2 +# Submit a PR! +``` + +## 📖 Resources + +- [SGLang GitHub](https://github.com/sgl-project/sglang) +- [SGLang Documentation](https://sgl-project.github.io) +- [SGLANG Diffusion Documentation](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/README.md) +- [SLACK Channel](https://sgl-fru7574.slack.com/archives/C07GLLLESNR) +- [Community Slack/Discord](https://discord.gg/MpEEuAeb) + +## 📄 License + +This project is licensed under the Apache License 2.0 - see the [LICENSE](https://github.com/sgl-project/sgl-cookbook/blob/main/LICENSE) file for details. + +--- + +**Let's build this resource together!** 🚀 Star the repo and contribute your recipes to help the SGLang community grow. diff --git a/docs_new/cookbook/diffusion/Wan/Wan2.1.mdx b/docs_new/cookbook/diffusion/Wan/Wan2.1.mdx new file mode 100644 index 000000000..f69f3f86c --- /dev/null +++ b/docs_new/cookbook/diffusion/Wan/Wan2.1.mdx @@ -0,0 +1,268 @@ +--- +title: Wan2.1 +metatags: + description: "Deploy Wan2.1 video generation models with SGLang - community contribution guide for Wan Video's diffusion models." +--- + +import { Wan21Deployment } from '/src/snippets/diffusion/wan21-deployment.jsx'; + +## 1. Model Introduction + +[Wan2.1 series](https://github.com/Wan-Video/Wan2.1) is an open and advanced suite of large-scale video generative models from Wan-AI. + +Key characteristics: + +- **State-of-the-art video quality**: Consistently outperforms many open-source and commercial video models on internal and public benchmarks, especially for motion richness and temporal consistency. +- **Consumer GPU friendly**: The T2V-1.3B variant can generate 5-second 480P videos on consumer GPUs with modest VRAM requirements. +- **Multi-capability suite**: Supports Text-to-Video (T2V), Image-to-Video (I2V), video editing, text-to-image, and video-to-audio generation. +- **Robust text rendering**: First-generation Wan model capable of generating both Chinese and English text in videos with strong readability. +- **Powerful Wan-VAE**: A 3D causal VAE that encodes/decodes long 1080P videos while preserving temporal information, enabling efficient high-resolution video generation. + +For more details, refer to the official Wan2.1 resources: + +- **GitHub**: [Wan-Video/Wan2.1](https://github.com/Wan-Video/Wan2.1) +- **Hugging Face collection**: [Wan-AI Wan2.1](https://huggingface.co/Wan-AI/Wan2.1-T2V-14B) + +## 2. SGLang-diffusion Installation + +SGLang-diffusion offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang-diffusion installation guide](../../../docs/sglang-diffusion/installation) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +The Wan2.1 series offers models in multiple sizes and resolutions, optimized for different hardware platforms. The recommended launch configurations vary by hardware and model size. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate an appropriate deployment command for your model variant and options. + + + +### 3.2 Configuration Tips + +Current supported optimization options are listed in the [SGLang diffusion support matrix](../../../docs/sglang-diffusion/attention-backends#platform-support-matrix). + +- `--vae-path`: Path to a custom VAE model or HuggingFace model ID. If not specified, the VAE will be loaded from the main model path. +- `--num-gpus {NUM_GPUS}`: Number of GPUs to use. +- `--tp-size {TP_SIZE}`: Tensor parallelism size (for the encoder/DiT; keep \(\leq 1\) if relying heavily on CPU offload). +- `--sp-degree {SP_SIZE}`: Sequence parallelism degree. +- `--ulysses-degree {ULYSSES_DEGREE}`: Degree of DeepSpeed-Ulysses-style SP in USP. +- `--ring-degree {RING_DEGREE}`: Degree of ring attention-style SP in USP. +- `--text-encoder-cpu-offload`, `--dit-cpu-offload`, `--vae-cpu-offload`: Use CPU offload to reduce peak GPU memory when needed. + +## 4. Model Invocation + +### 4.1 Basic Usage + +For more API usage and request examples, please refer to: +[SGLang Diffusion OpenAI API](../../../docs/sglang-diffusion/api/openai-api) + +#### 4.1.1 Launch a server and then send requests + +```bash Command +sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers --port 30000 + +curl http://127.0.0.1:30000/v1/images/generations \ + -o >(jq -r '.data[0].b64_json' | base64 --decode > example.png) \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $OPENAI_API_KEY" \ + -d '{ + "model": "Wan-AI/Wan2.1-T2V-14B-Diffusers", + "prompt": "A cute baby sea otter", + "n": 1, + "size": "1024x1024", + "response_format": "b64_json" + }' +``` + +#### 4.1.2 Generate a video without launching a server + +```bash Command +SERVER_ARGS=( + --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers + --text-encoder-cpu-offload + --pin-cpu-memory + --num-gpus 4 + --ulysses-degree=2 + --enable-cfg-parallel +) + +SAMPLING_ARGS=( + --prompt "A curious raccoon" + --save-output + --output-path outputs + --output-file-name "A curious raccoon.mp4" +) + +sglang generate "${SERVER_ARGS[@]}" "${SAMPLING_ARGS[@]}" +``` + +### 4.2 Advanced Usage + +#### 4.2.1 Cache-DiT Acceleration + +SGLang integrates [Cache-DiT](https://github.com/vipshop/cache-dit), a caching acceleration engine for Diffusion Transformers (DiT), to achieve significant inference speedups with minimal quality loss. You can set `SGLANG_CACHE_DIT_ENABLED=True` to enable it. For more details, please refer to the SGLang Cache-DiT [documentation](../../../docs/sglang-diffusion/cache-dit). + +**Basic Usage** + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers +``` + +**Advanced Usage** + + Combined Configuration Example: + ```bash Command + SGLANG_CACHE_DIT_ENABLED=true \ + SGLANG_CACHE_DIT_FN=2 \ + SGLANG_CACHE_DIT_BN=1 \ + SGLANG_CACHE_DIT_WARMUP=4 \ + SGLANG_CACHE_DIT_RDT=0.4 \ + SGLANG_CACHE_DIT_MC=4 \ + SGLANG_CACHE_DIT_TAYLORSEER=true \ + SGLANG_CACHE_DIT_TS_ORDER=2 \ + sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers + ``` + +#### 4.2.2 GPU Optimization + +- `--dit-cpu-offload`: Use CPU offload for DiT inference. Enable if you run out of memory with FSDP. +- `--text-encoder-cpu-offload`: Use CPU offload for text encoder inference. +- `--image-encoder-cpu-offload`: Use CPU offload for image encoder inference. +- `--vae-cpu-offload`: Use CPU offload for VAE. +- `--pin-cpu-memory`: Pin memory for CPU offload. Use as a workaround if you see "CUDA error: invalid argument". + +#### 4.2.3 Supported LoRA Registry + +SGLang supports applying Wan2.1 LoRA adapters on top of base models: + + + + + + + + + + + + + + + + + + + + + + +
      origin modelsupported LoRA
      [Wan-AI/Wan2.1-T2V-14B](https://huggingface.co/Wan-AI/Wan2.1-T2V-14B)[NIVEDAN/wan2.1-lora](https://huggingface.co/NIVEDAN/wan2.1-lora)
      [Wan-AI/Wan2.1-I2V-14B-720P](https://huggingface.co/Wan-AI/Wan2.1-I2V-14B-720P)[valiantcat/Wan2.1-Fight-LoRA](https://huggingface.co/valiantcat/Wan2.1-Fight-LoRA)
      + +**Example**: + +```bash Command +sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers --port 30000 \ + --lora-path NIVEDAN/wan2.1-lora +``` + +## 5. Benchmark + +Test Environment: + +- Hardware: AMD MI300X GPU (1x) +- Model: Wan-AI/Wan2.1-T2V-14B-Diffusers +- SGLang Docker Image Version: 0.5.9 + +### 5.1 How to Run Benchmarks with SGLang + +You can use the built-in SGLang diffusion benchmark script to evaluate Wan2.1 performance on your hardware. + +#### 5.1.1 Generate a single video + +**Server Command**: + +```bash Command +sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers +``` + +**Benchmark Command**: + +```bash Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task text-to-video --num-prompts 1 --max-concurrency 1 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Task: text-to-video +Model: Wan-AI/Wan2.1-T2V-14B-Diffusers +Dataset: vbench +-------------------------------------------------- +Benchmark duration (s): 1958.41 +Request rate: inf +Max request concurrency: 1 +Successful requests: 1/1 +-------------------------------------------------- +Request throughput (req/s): 0.00 +Latency Mean (s): 1958.4059 +Latency Median (s): 1958.4059 +Latency P99 (s): 1958.4059 +-------------------------------------------------- +Peak Memory Max (MB): 59662.00 +Peak Memory Mean (MB): 59662.00 +Peak Memory Median (MB): 59662.00 +============================================================ +``` + +#### 5.1.2 Generate videos with Cache-DiT acceleration + +**Server Command**: + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_FN=2 \ +SGLANG_CACHE_DIT_BN=1 \ +SGLANG_CACHE_DIT_WARMUP=4 \ +SGLANG_CACHE_DIT_RDT=0.4 \ +SGLANG_CACHE_DIT_MC=4 \ +SGLANG_CACHE_DIT_TAYLORSEER=true \ +SGLANG_CACHE_DIT_TS_ORDER=2 \ +sglang serve --model-path Wan-AI/Wan2.1-T2V-14B-Diffusers +``` + +**Benchmark Command**: + +```bash Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task text-to-video --num-prompts 1 --max-concurrency 1 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Task: text-to-video +Model: Wan-AI/Wan2.1-T2V-14B-Diffusers +Dataset: vbench +-------------------------------------------------- +Benchmark duration (s): 556.99 +Request rate: inf +Max request concurrency: 1 +Successful requests: 1/1 +-------------------------------------------------- +Request throughput (req/s): 0.00 +Latency Mean (s): 556.9885 +Latency Median (s): 556.9885 +Latency P99 (s): 556.9885 +-------------------------------------------------- +Peak Memory Max (MB): 69306.00 +Peak Memory Mean (MB): 69306.00 +Peak Memory Median (MB): 69306.00 +============================================================ +``` diff --git a/docs_new/cookbook/diffusion/Wan/Wan2.2.mdx b/docs_new/cookbook/diffusion/Wan/Wan2.2.mdx new file mode 100644 index 000000000..1a4f3a5c6 --- /dev/null +++ b/docs_new/cookbook/diffusion/Wan/Wan2.2.mdx @@ -0,0 +1,346 @@ +--- +title: Wan2.2 +metatags: + description: "Deploy Wan2.2 video generation models with SGLang - MoE architecture, cinematic aesthetics, and efficient 720P@24fps generation." +--- + +import { Wan22Deployment } from '/src/snippets/diffusion/wan22-deployment.jsx'; + +## 1. Model Introduction + +[Wan2.2 series](https://github.com/Wan-Video/Wan2.2) are the most popular and open and advanced large-scale video generative models. + +This generation delivers comprehensive upgrades across the board: + +- **Effective MoE Architecture**: Introduces a Mixture-of-Experts (MoE) architecture into video diffusion models. By separating the denoising process cross timesteps with specialized powerful expert models, this enlarges the overall model capacity while maintaining the same computational cost. +- **Cinematic-level Aesthetics**: Incorporates meticulously curated aesthetic data, complete with detailed labels for lighting, composition, contrast, color tone, and more. This allows for more precise and controllable cinematic style generation, facilitating the creation of videos with customizable aesthetic preferences. +- **Complex Motion Generation**: Trained on a significantly larger data, with +65.6% more images and +83.2% more videos. This expansion notably enhances the model's generalization across multiple dimensions such as motions, semantics, and aesthetics, achieving TOP performance among all open-sourced and closed-sourced models. +- **Efficient High-Definition Hybrid TI2V**: Open-sources a 5B model built with our advanced Wan2.2-VAE that achieves a compression ratio of 16×16×4. This model supports both text-to-video and image-to-video generation at 720P resolution with 24fps and can also run on consumer-grade graphics cards like 4090. It is one of the fastest 720P@24fps models currently available, capable of serving both the industrial and academic sectors simultaneously. + +For more details, please refer to the [official Wan2.2 GitHub Repository](https://github.com/Wan-Video/Wan2.2). + +## 2. SGLang-diffusion Installation + +SGLang-diffusion offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang-diffusion installation guide](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/install.md) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +The Wan2.2 series offers models in various sizes, architectures and input types, optimized for different hardware platforms. The recommended launch configurations vary by hardware and model size. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform, model size. SGLang supports serving Wan2.2 on NVIDIA B200, H200 and AMD MI300X, MI325X and MI355X GPUs. + + + +### 3.2 Configuration Tips + +Current supported optimization all listed [here](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/support_matrix.md). + +- `--vae-path`: Path to a custom VAE model or HuggingFace model ID (e.g., fal/FLUX.2-Tiny-AutoEncoder). If not specified, the VAE will be loaded from the main model path. +- `--num-gpus {NUM_GPUS}`: Number of GPUs to use +- `--tp-size {TP_SIZE}`: Tensor parallelism size (only for the encoder; should not be larger than 1 if text encoder offload is enabled, as layer-wise offload plus prefetch is faster) +- `--sp-degree {SP_SIZE}`: Sequence parallelism size (typically should match the number of GPUs) +- `--ulysses-degree {ULYSSES_DEGREE}`: The degree of DeepSpeed-Ulysses-style SP in USP +- `--ring-degree {RING_DEGREE}`: The degree of ring attention-style SP in USP + +## 4. Model Invocation + +### 4.1 Basic Usage + +For more API usage and request examples, please refer to: +[SGLang Diffusion OpenAI API](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/openai_api.md) + +#### 4.1.1 Launch a server and then send requests + +```shell Command +sglang serve --model-path Wan-AI/Wan2.2-T2V-A14B-Diffusers --port 3000 + +curl http://127.0.0.1:3000/v1/images/generations \ + -o >(jq -r '.data[0].b64_json' | base64 --decode > example.png) \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $OPENAI_API_KEY" \ + -d '{ + "model": "black-forest-labs/FLUX.1-dev", + "prompt": "A cute baby sea otter", + "n": 1, + "size": "1024x1024", + "response_format": "b64_json" + }' +``` + +#### 4.1.2 Generate a video without launching a server + +```shell Command +SERVER_ARGS=( + --model-path Wan-AI/Wan2.2-T2V-A14B-Diffusers + --text-encoder-cpu-offload + --pin-cpu-memory + --num-gpus 4 + --ulysses-degree=2 + --enable-cfg-parallel +) + +SAMPLING_ARGS=( + --prompt "A curious raccoon" + --save-output + --output-path outputs + --output-file-name "A curious raccoon.mp4" +) + +sglang generate "${SERVER_ARGS[@]}" "${SAMPLING_ARGS[@]}" + +``` + +### 4.2 Advanced Usage + +#### 4.2.1 Cache-DiT Acceleration + +SGLang integrates [Cache-DiT](https://github.com/vipshop/cache-dit), a caching acceleration engine for Diffusion Transformers (DiT), to achieve up to 7.4x inference speedup with minimal quality loss. You can set `SGLANG_CACHE_DIT_ENABLED=True` to enable it. For more details, please refer to the SGLang Cache-DiT [documentation](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/cache/cache_dit.md). + +**Basic Usage** + +```shell Command +SGLANG_CACHE_DIT_ENABLED=true sglang serve --model-path Wan-AI/Wan2.2-T2V-A14B-Diffusers +``` + +**Advanced Usage** + +- DBCache Parameters: DBCache controls block-level caching behavior: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Fn`SGLANG_CACHE_DIT_FN`1Number of first blocks to always compute
      Bn`SGLANG_CACHE_DIT_BN`0Number of last blocks to always compute
      W`SGLANG_CACHE_DIT_WARMUP`4Warmup steps before caching starts
      R`SGLANG_CACHE_DIT_RDT`0.24Residual difference threshold
      MC`SGLANG_CACHE_DIT_MC`3Maximum continuous cached steps
      + +- TaylorSeer Configuration: TaylorSeer improves caching accuracy using Taylor expansion: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Enable`SGLANG_CACHE_DIT_TAYLORSEER`falseEnable TaylorSeer calibrator
      Order`SGLANG_CACHE_DIT_TS_ORDER`1Taylor expansion order (1 or 2)
      + + Combined Configuration Example: + +```shell Command +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_FN=2 \ +SGLANG_CACHE_DIT_BN=1 \ +SGLANG_CACHE_DIT_WARMUP=4 \ +SGLANG_CACHE_DIT_RDT=0.4 \ +SGLANG_CACHE_DIT_MC=4 \ +SGLANG_CACHE_DIT_TAYLORSEER=true \ +SGLANG_CACHE_DIT_TS_ORDER=2 \ +sglang serve --model-path Wan-AI/Wan2.2-T2V-A14B-Diffusers +``` + +#### 4.2.2 GPU Optimization + +- `--dit-cpu-offload`: Use CPU offload for DiT inference. Enable if run out of memory with FSDP. +- `--text-encoder-cpu-offload`: Use CPU offload for text encoder inference. Enable if run out of memory with FSDP. +- `--image-encoder-cpu-offload`: Use CPU offload for image encoder inference. Enable if run out of memory with FSDP. +- `--vae-cpu-offload`: Use CPU offload for VAE. Enable if run out of memory. +- `--pin-cpu-memory`: Pin memory for CPU offload. Only added as a temp workaround if it throws "CUDA error: invalid argument". + +#### 4.2.3 Supported LoRA Registry + + + + + + + + + + + + + + + + + + + + + +
      origin modelsupported LoRA
      [Wan-AI/Wan2.2-I2V-A14B-Diffusers](https://huggingface.co/Wan-AI/Wan2.2-I2V-A14B-Diffusers)[lightx2v/Wan2.2-Distill-Loras](https://huggingface.co/lightx2v/Wan2.2-Distill-Loras)
      [Wan-AI/Wan2.2-T2V-A14B-Diffusers](https://huggingface.co/Wan-AI/Wan2.2-T2V-A14B-Diffusers)[Cseti/wan2.2-14B-Arcane_Jinx-lora-v1](https://huggingface.co/Cseti/wan2.2-14B-Arcane_Jinx-lora-v1)
      +**Example**: +```shell Command +sglang serve --model-path Wan-AI/Wan2.2-T2V-A14B-Diffusers --port 3000 \ + --lora-path Cseti/wan2.2-14B-Arcane_Jinx-lora-v1 +``` + +## 5. Benchmark + +Test Environment: + +- Hardware: NVIDIA B200 GPU (1x) +- Model: Wan-AI/Wan2.2-T2V-A14B-Diffusers +- sglang diffusion version: 0.5.6.post2 + +### 5.1 Speedup Benchmark + +#### 5.1.1 Generate a video + +**Server Command**: + +```shell Command +sglang serve --model-path Wan-AI/Wan2.2-T2V-A14B-Diffusers +``` + +**Benchmark Command**: + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task t2v --num-prompts 1 --max-concurrency 1 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Backend: sglang-video +Model: Wan-AI/Wan2.2-T2V-A14B-Diffusers +Dataset: vbench +Task: t2v +-------------------------------------------------- +Benchmark duration (s): 630.43 +Request rate: inf +Max request concurrency: 1 +Successful requests: 1/1 +-------------------------------------------------- +Request throughput (req/s): 0.00 +Latency Mean (s): 630.4277 +Latency Median (s): 630.4277 +Latency P99 (s): 630.4277 +-------------------------------------------------- +Peak Memory Max (MB): 62627.41 +Peak Memory Mean (MB): 62627.41 +Peak Memory Median (MB): 62627.41 + +============================================================ +``` + +#### 5.1.2 Generate videos with high concurrency + +**Server Command**: + +```shell Command +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_FN=2 \ +SGLANG_CACHE_DIT_BN=1 \ +SGLANG_CACHE_DIT_WARMUP=4 \ +SGLANG_CACHE_DIT_RDT=0.4 \ +SGLANG_CACHE_DIT_MC=4 \ +SGLANG_CACHE_DIT_TAYLORSEER=true \ +SGLANG_CACHE_DIT_TS_ORDER=2 \ +sglang serve --model-path Wan-AI/Wan2.2-T2V-A14B-Diffusers +``` + +**Benchmark Command**: + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-video --dataset vbench --task t2v --num-prompts 20 --max-concurrency 20 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Backend: sglang-video +Model: Wan-AI/Wan2.2-T2V-A14B-Diffusers +Dataset: vbench +Task: t2v +-------------------------------------------------- +Benchmark duration (s): 5163.21 +Request rate: inf +Max request concurrency: 20 +Successful requests: 20/20 +-------------------------------------------------- +Request throughput (req/s): 0.00 +Latency Mean (s): 2739.7695 +Latency Median (s): 2742.0673 +Latency P99 (s): 5121.6331 +-------------------------------------------------- +Peak Memory Max (MB): 72523.56 +Peak Memory Mean (MB): 70253.34 +Peak Memory Median (MB): 70824.46 + +============================================================ +``` diff --git a/docs_new/cookbook/diffusion/Z-Image/Z-Image-Turbo.mdx b/docs_new/cookbook/diffusion/Z-Image/Z-Image-Turbo.mdx new file mode 100644 index 000000000..8e43ce374 --- /dev/null +++ b/docs_new/cookbook/diffusion/Z-Image/Z-Image-Turbo.mdx @@ -0,0 +1,281 @@ +--- +title: Z-Image-Turbo +metatags: + description: "Deploy Z-Image-Turbo with SGLang - community contribution guide for Z-Image's fast image generation model." +--- + +import { ZImageTurboDeployment } from '/src/snippets/diffusion/zimage-turbo-deployment.jsx'; + +## 1. Model Introduction + +[Z-Image](https://github.com/Tongyi-MAI/Z-Image) is a powerful and highly efficient image generation model family with 6B parameters, developed by Tongyi-MAI. It adopts a Scalable Single-Stream DiT (S3-DiT) architecture, where text, visual semantic tokens, and image VAE tokens are concatenated at the sequence level to serve as a unified input stream, maximizing parameter efficiency compared to dual-stream approaches. + +[Z-Image-Turbo](https://huggingface.co/Tongyi-MAI/Z-Image-Turbo) is a distilled version of Z-Image that matches or exceeds leading competitors with only 8 NFEs (Number of Function Evaluations). It is powered by two core techniques: **Decoupled-DMD** (few-step distillation) and **DMDR** (fusing DMD with Reinforcement Learning). + +**Key Features:** + +- **Sub-second Inference Latency**: Achieves sub-second inference on enterprise-grade H800 GPUs and fits comfortably within 16GB VRAM consumer devices +- **Photorealistic Image Generation**: Excels in high-quality photorealistic image generation with rich aesthetics +- **Bilingual Text Rendering**: Supports accurate bilingual text rendering in both English and Chinese +- **Robust Instruction Adherence**: Strong prompt following and instruction adherence capabilities +- **#1 Open-Source Model**: Ranked 8th overall and #1 among open-source models on the [Artificial Analysis Text-to-Image Leaderboard](https://artificialanalysis.ai/image/leaderboard/text-to-image) + +For more details, please refer to the [Z-Image-Turbo HuggingFace page](https://huggingface.co/Tongyi-MAI/Z-Image-Turbo), the [GitHub repository](https://github.com/Tongyi-MAI/Z-Image), and the [technical report (arXiv)](https://arxiv.org/abs/2511.22699). + +## 2. SGLang-diffusion Installation + +SGLang-diffusion offers multiple installation methods. You can choose the most suitable installation method based on your hardware platform and requirements. + +Please refer to the [official SGLang-diffusion installation guide](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/install.md) for installation instructions. + +## 3. Model Deployment + +This section provides deployment configurations optimized for different hardware platforms and use cases. + +### 3.1 Basic Configuration + +Z-Image-Turbo is optimized for high-quality image generation with only 8 inference steps. The recommended launch configurations vary by hardware. + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate deployment command for your hardware platform. + + + +### 3.2 Configuration Tips + +Current supported optimization all listed [here](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/support_matrix.md). + +- `--vae-path`: Path to a custom VAE model or HuggingFace model ID (e.g., fal/FLUX.2-Tiny-AutoEncoder). If not specified, the VAE will be loaded from the main model path. +- `--num-gpus`: Number of GPUs to use +- `--tp-size`: Tensor parallelism size (only for the encoder; should not be larger than 1 if text encoder offload is enabled, as layer-wise offload plus prefetch is faster) +- `--sp-degree`: Sequence parallelism size (typically should match the number of GPUs) +- `--ulysses-degree`: The degree of DeepSpeed-Ulysses-style SP in USP +- `--ring-degree`: The degree of ring attention-style SP in USP + +**AMD ROCm Notes**: Requires SGLang >= v0.5.8. + +## 4. API Usage + +For complete API documentation, please refer to the [official API usage guide](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/openai_api.md). + +### 4.1 Generate an Image + +```python Example +import base64 +from openai import OpenAI + +client = OpenAI(api_key="EMPTY", base_url="http://localhost:30000/v1") + +response = client.images.generate( + model="Tongyi-MAI/Z-Image-Turbo", + prompt="A logo With Bold Large text: SGL Diffusion", + n=1, + response_format="b64_json", +) + +# Save the generated image +image_bytes = base64.b64decode(response.data[0].b64_json) +with open("output.png", "wb") as f: + f.write(image_bytes) +``` + +### 4.2 Advanced Usage + +#### 4.2.1 Cache-DiT Acceleration + +SGLang integrates [Cache-DiT](https://github.com/vipshop/cache-dit), a caching acceleration engine for Diffusion Transformers (DiT), to achieve up to 7.4x inference speedup with minimal quality loss. You can set `SGLANG_CACHE_DIT_ENABLED=True` to enable it. For more details, please refer to the SGLang Cache-DiT [documentation](https://github.com/sgl-project/sglang/blob/main/python/sglang/multimodal_gen/docs/cache_dit.md). + +**Basic Usage** + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true sglang serve --model-path Tongyi-MAI/Z-Image-Turbo +``` + +**Advanced Usage** + +- DBCache Parameters: DBCache controls block-level caching behavior: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Fn`SGLANG_CACHE_DIT_FN`1Number of first blocks to always compute
      Bn`SGLANG_CACHE_DIT_BN`0Number of last blocks to always compute
      W`SGLANG_CACHE_DIT_WARMUP`4Warmup steps before caching starts
      R`SGLANG_CACHE_DIT_RDT`0.24Residual difference threshold
      MC`SGLANG_CACHE_DIT_MC`3Maximum continuous cached steps
      +- TaylorSeer Configuration: TaylorSeer improves caching accuracy using Taylor expansion: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Enable`SGLANG_CACHE_DIT_TAYLORSEER`falseEnable TaylorSeer calibrator
      Order`SGLANG_CACHE_DIT_TS_ORDER`1Taylor expansion order (1 or 2)
      + + Combined Configuration Example: + +```bash Command +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_FN=2 \ +SGLANG_CACHE_DIT_BN=1 \ +SGLANG_CACHE_DIT_WARMUP=4 \ +SGLANG_CACHE_DIT_RDT=0.4 \ +SGLANG_CACHE_DIT_MC=4 \ +SGLANG_CACHE_DIT_TAYLORSEER=true \ +SGLANG_CACHE_DIT_TS_ORDER=2 \ +sglang serve --model-path Tongyi-MAI/Z-Image-Turbo +``` + +#### 4.2.2 CPU Offload + +- `--dit-cpu-offload`: Use CPU offload for DiT inference. Enable if run out of memory. +- `--text-encoder-cpu-offload`: Use CPU offload for text encoder inference. +- `--vae-cpu-offload`: Use CPU offload for VAE. +- `--pin-cpu-memory`: Pin memory for CPU offload. Only added as a temp workaround if it throws "CUDA error: invalid argument". + +## 5. Benchmark + +Test Environment: + +- Hardware: AMD Instinct MI300X GPU (1x) +- Model: Tongyi-MAI/Z-Image-Turbo +- Docker Image: lmsysorg/sglang:v0.5.8-rocm700-mi30x +- sglang diffusion version: 0.5.8 + +### 5.1 Speedup Benchmark + +#### 5.1.1 Generate an image + +**Server Command**: + +```shell Command +sglang serve --model-path Tongyi-MAI/Z-Image-Turbo \ + --ulysses-degree=1 --ring-degree=1 --port 30000 +``` + +**Benchmark Command**: + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task text-to-image --num-prompts 1 --max-concurrency 1 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Task: text-to-image +Model: Tongyi-MAI/Z-Image-Turbo +Dataset: vbench +-------------------------------------------------- +Benchmark duration (s): 1.84 +Request rate: inf +Max request concurrency: 1 +Successful requests: 1/1 +-------------------------------------------------- +Request throughput (req/s): 0.54 +Latency Mean (s): 1.8435 +Latency Median (s): 1.8435 +Latency P99 (s): 1.8435 +-------------------------------------------------- +Peak Memory Max (MB): 30689.20 +Peak Memory Mean (MB): 30689.20 +Peak Memory Median (MB): 30689.20 +============================================================ +``` + +#### 5.1.2 Generate images with high concurrency + +**Benchmark Command**: + +```shell Command +python3 -m sglang.multimodal_gen.benchmarks.bench_serving \ + --backend sglang-image --dataset vbench --task text-to-image --num-prompts 20 --max-concurrency 20 +``` + +**Result**: + +```text Output +================= Serving Benchmark Result ================= +Task: text-to-image +Model: Tongyi-MAI/Z-Image-Turbo +Dataset: vbench +-------------------------------------------------- +Benchmark duration (s): 35.32 +Request rate: inf +Max request concurrency: 20 +Successful requests: 20/20 +-------------------------------------------------- +Request throughput (req/s): 0.57 +Latency Mean (s): 18.5672 +Latency Median (s): 18.5573 +Latency P99 (s): 34.9880 +-------------------------------------------------- +Peak Memory Max (MB): 30689.26 +Peak Memory Mean (MB): 30689.21 +Peak Memory Median (MB): 30689.21 +============================================================ +``` diff --git a/docs_new/cookbook/diffusion/intro.mdx b/docs_new/cookbook/diffusion/intro.mdx new file mode 100644 index 000000000..540a23ccb --- /dev/null +++ b/docs_new/cookbook/diffusion/intro.mdx @@ -0,0 +1,40 @@ +--- +title: Overview +mode: wide +description: Practical guides for deploying and using diffusion models with SGLang. +metatags: + description: "Explore SGLang diffusion model cookbooks for image and video generation deployment, invocation, optimization, and benchmarking examples." +--- + + + + + + + + diff --git a/docs_new/cookbook/intro copy.mdx b/docs_new/cookbook/intro copy.mdx new file mode 100644 index 000000000..59600608f --- /dev/null +++ b/docs_new/cookbook/intro copy.mdx @@ -0,0 +1,224 @@ +--- +title: SGLang Cookbook +metatags: + description: The SGLang Cookbook is a practical collection of examples and guides that show developers how to efficiently run SGLang with a variety of models on different platforms. +--- + +[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/sgl-project/sgl-cookbook/pulls) + +A community-maintained repository of practical guides and recipes for deploying and using SGLang in production environments. Our mission is simple: answer the question **"How do I use SGLang (and related models) on hardware Y for task Z?"** with clear, actionable solutions. + +## 🎯 What You'll Find Here + +This cookbook aggregates battle-tested SGLang recipes covering: + +- **Models**: Mainstream LLMs and Vision-Language Models (VLMs) +- **Use Cases**: Inference serving, deployment strategies, multimodal applications +- **Hardware**: GPU and CPU configurations, optimization for different accelerators +- **Best Practices**: Configuration templates, performance tuning, troubleshooting guides + +Each recipe provides step-by-step instructions to help you quickly implement SGLang solutions for your specific requirements. + +## Guides + +### Autoregressive Models + +#### Qwen + +- [x] [Qwen3.5](./autoregressive/Qwen/Qwen3.5) NEW +- [x] [Qwen3](./autoregressive/Qwen/Qwen3) +- [x] [Qwen3-Next](./autoregressive/Qwen/Qwen3-Next) +- [x] [Qwen3-VL](./autoregressive/Qwen/Qwen3-VL) +- [x] [Qwen3-Coder](./autoregressive/Qwen/Qwen3-Coder) +- [x] [Qwen3-Coder-Next](./autoregressive/Qwen/Qwen3-Coder-Next) NEW +- [x] [Qwen2.5-VL](./autoregressive/Qwen/Qwen2.5-VL) + +#### DeepSeek + +- [x] [DeepSeek-V3.2](./autoregressive/DeepSeek/DeepSeek-V3_2) +- [x] [DeepSeek-V3.1](./autoregressive/DeepSeek/DeepSeek-V3_1) +- [x] [DeepSeek-V3](./autoregressive/DeepSeek/DeepSeek-V3) +- [x] [DeepSeek-R1](./autoregressive/DeepSeek/DeepSeek-R1) +- [x] [DeepSeek-OCR](./autoregressive/DeepSeek/DeepSeek-OCR) +- [x] [DeepSeek-OCR-2](./autoregressive/DeepSeek/DeepSeek-OCR-2) NEW + +#### Llama + +- [ ] [Llama4-Scout](./autoregressive/Llama/Llama4) +- [x] [Llama3.3-70B](./autoregressive/Llama/Llama3.3-70B) +- [x] [Llama3.1](./autoregressive/Llama/Llama3.1) + +#### GLM + +- [ ] [GLM-Glyph](./autoregressive/GLM/GLM-Glyph) +- [x] [GLM-5](./autoregressive/GLM/GLM-5) NEW +- [x] [GLM-OCR](./autoregressive/GLM/GLM-OCR) NEW +- [x] [GLM-4.5](./autoregressive/GLM/GLM-4.5) +- [x] [GLM-4.5V](./autoregressive/GLM/GLM-4.5V) +- [x] [GLM-4.6](./autoregressive/GLM/GLM-4.6) +- [x] [GLM-4.6V](./autoregressive/GLM/GLM-4.6V) +- [x] [GLM-4.7](./autoregressive/GLM/GLM-4.7) +- [x] [GLM-4.7-Flash](./autoregressive/GLM/GLM-4.7-Flash) NEW + +#### OpenAI + +- [x] [gpt-oss](./autoregressive/OpenAI/GPT-OSS) + +#### Moonshotai + +- [x] [Kimi-K2.6](./autoregressive/Moonshotai/Kimi-K2.6) NEW +- [x] [Kimi-K2.5](./autoregressive/Moonshotai/Kimi-K2.5) +- [x] [Kimi-K2](./autoregressive/Moonshotai/Kimi-K2) +- [x] [Kimi-Linear](./autoregressive/Moonshotai/Kimi-Linear) + +#### MiniMax + +- [ ] [MiniMax-M2](./autoregressive/MiniMax/MiniMax-M2) +- [x] [MiniMax-M2.5](./autoregressive/MiniMax/MiniMax-M2.5) NEW + +#### NVIDIA + +- [x] [Nemotron-Nano-3-30B-A3B](./autoregressive/NVIDIA/Nemotron3-Nano) + +#### Ernie + +- [x] [Ernie4.5](./autoregressive/Ernie/Ernie4.5) +- [ ] [Ernie4.5-VL](./autoregressive/Ernie/Ernie4.5-VL) + +#### InternVL + +- [ ] [InternVL3.5](./autoregressive/InternVL/InternVL3.5) + +#### InternLM + +- [ ] [Intern-S1](./autoregressive/InternLM/Intern-S1) + +#### Jina AI + +- [ ] [Jina-reranker-m0](./autoregressive/Jina/Jina-reranker-m0) + +#### Mistral + +- [ ] [Mistral-3](./autoregressive/Mistral/Ministral-3) +- [x] [Devstral 2](./autoregressive/Mistral/Devstral-2) + +#### Xiaomi + +- [x] [MiMo-V2-Flash](./autoregressive/Xiaomi/MiMo-V2-Flash) + +#### FlashLabs + +- [x] [Chroma 1.0](./autoregressive/FlashLabs/Chroma1.0)NEW + +#### StepFun + +- [x] [Step-3.5-Flash](./autoregressive/StepFun/Step3.5) NEW +- [x] [Step3-VL-10B](./autoregressive/StepFun/Step3-VL-10B) NEW + +#### InclusionAI + +- [x] [Ling-2.5-1T](./autoregressive/InclusionAI/Ling-2.5-1T) NEW +- [x] [Ring-2.5-1T](./autoregressive/InclusionAI/Ring-2.5-1T) NEW +- [x] [LLaDA-2.1](./autoregressive/InclusionAI/LLaDA-2.1) NEW + +### Diffusion Models + +#### FLUX + +- [x] [FLUX](./diffusion/FLUX/FLUX) + +#### Qwen-Image + +- [ ] [Qwen-Image](./diffusion/Qwen-Image/Qwen-Image) +- [x] [Qwen-Image-Edit](./diffusion/Qwen-Image/Qwen-Image-Edit) + +#### Wan + +- [ ] [Wan2.1](./diffusion/Wan/Wan2.1) +- [x] [Wan2.2](./diffusion/Wan/Wan2.2) + +#### Z-Image + +- [x] [Z-Image-Turbo](./diffusion/Z-Image/Z-Image-Turbo) + +### Benchmarks + +- [x] [Diffusion Model Benchmark](./base/benchmarks/diffusion_model_benchmark.mdx) +- [x] [LLM Benchmark](./base/benchmarks/autoregressive_model_benchmark.mdx) + +## Reference + +- [Installation (PyPI)](../docs/get-started/installation) - Install SGLang via pip or uv (stable and nightly) +- [Server arguments](./base/reference/server_arguments) - Understanding all the arguments + +## 🚀 Quick Start + +1. Browse the recipe index above to find your model +2. Follow the step-by-step instructions in each guide +3. Adapt configurations to your specific hardware and requirements +4. Join our community to share feedback and improvements + +## 🤝 Contributing + +We believe the best documentation comes from practitioners. Whether you've optimized SGLang for a specific model, solved a tricky deployment challenge, or discovered performance improvements, we encourage you to contribute your recipes! + +**Ways to contribute:** + +- Add a new recipe for a model not yet covered +- Improve existing recipes with additional tips or configurations +- Report issues or suggest enhancements +- Share your production deployment experiences + +**To contribute:** + + +```bash Contribute a Recipe +# Fork the repo and clone locally +git clone https://github.com/YOUR_USERNAME/sglang-cookbook.git +cd sglang-cookbook + +# Create a new branch +git checkout -b add-my-recipe + +# Add your recipe following the template in DeepSeek-V3.2 +# Submit a PR! +``` + + +## 🛠️ Local Development + +### Prerequisites + +- Node.js >= 20.0 +- npm or yarn + +### Setup and Run + +Install dependencies and start the development server: + + +```bash Local Development +# Install dependencies +npm install + +# Start development server (hot reload enabled) +npm start +``` + + +The site will automatically open in your browser at `http://localhost:3000`. + +## 📖 Resources + +- [SGLang GitHub](https://github.com/sgl-project/sglang) +- [SGLang Documentation](https://sgl-project.github.io) +- [Community Slack/Discord](https://discord.gg/MpEEuAeb) + +## 📄 License + +This project is licensed under the Apache License 2.0 - see the [LICENSE](https://github.com/sgl-project/sgl-cookbook/blob/main/LICENSE) file for details. + +--- + +**Let's build this resource together!** 🚀 Star the repo and contribute your recipes to help the SGLang community grow. diff --git a/docs_new/cookbook/intro.mdx b/docs_new/cookbook/intro.mdx new file mode 100644 index 000000000..3cd1747ee --- /dev/null +++ b/docs_new/cookbook/intro.mdx @@ -0,0 +1,42 @@ +--- +title: SGLang Cookbook +metatags: + description: The SGLang Cookbook is a practical collection of examples and guides that show developers how to efficiently run SGLang with a variety of models on different platforms. +--- + +A community-maintained repository of practical guides and recipes for deploying and using SGLang in production environments. Our mission is simple: answer the question **"How do I use SGLang (and related models) on hardware Y for task Z?"** with clear, actionable solutions. + + +## Guides + + + + + + +## Benchmarks + + + + + diff --git a/docs_new/cookbook/omni/FishAudio/S2-Pro.mdx b/docs_new/cookbook/omni/FishAudio/S2-Pro.mdx new file mode 100644 index 000000000..2c659fd46 --- /dev/null +++ b/docs_new/cookbook/omni/FishAudio/S2-Pro.mdx @@ -0,0 +1,208 @@ +--- +title: FishAudio S2 Pro +metatags: + description: "Deploy FishAudio S2 Pro with SGLang - state-of-the-art text-to-speech with dual-autoregressive architecture, voice cloning, prosody control, and 80+ language support." +tag: NEW +--- + +## 1. Model Introduction + +[FishAudio S2 Pro](https://huggingface.co/fishaudio/s2-pro) is a state-of-the-art text-to-speech model developed by [FishAudio](https://fish.audio), featuring fine-grained prosody and emotion control. Built on a Dual-Autoregressive (Dual-AR) transformer architecture with RVQ-based audio codec, S2 Pro achieves state-of-the-art quality across multiple TTS benchmarks. + +S2 Pro tops the Audio Turing Test (0.515 posterior mean) and EmergentTTS-Eval (81.88% win rate against gpt-4o-mini-tts) while achieving the lowest WER on Seed-TTS Eval among all evaluated models including closed-source systems. Trained on over 10 million hours of audio across approximately 100 languages and aligned with GRPO-based reinforcement learning, it supports voice cloning and fine-grained inline control of prosody and emotion through natural-language tags. + +**Key Features:** + +- **Dual-AR Architecture**: 5B parameter model (4B Slow AR + 400M Fast AR) with RVQ-based audio codec at 10 codebooks (~21 Hz frame rate) +- **Voice Cloning**: High-quality voice cloning from a short reference audio clip +- **Prosody & Emotion Control**: Fine-grained inline control of prosody and emotion through natural-language tags +- **Multilingual**: 80+ language support (Tier 1: Japanese, English, Chinese; Tier 2: Korean, Spanish, Portuguese, Arabic, Russian, French, German) +- **SGLang Integration**: Inherits LLM-native serving optimizations (paged KV cache, radix prefix caching) + +**License:** [FISH AUDIO RESEARCH LICENSE AGREEMENT](https://huggingface.co/fishaudio/s2-pro/blob/main/LICENSE.md) + +This work is a collaboration between the SGLang Omni Team and [FishAudio Team](https://fish.audio). For more details on S2 Pro's model design and training, see FishAudio's [S2 release blog post](https://fish.audio/blog/fish-audio-open-sources-s2/). + +## 2. Installation + +S2 Pro uses `sglang-omni`, an ecosystem project for SGLang. Start with the Docker image, then install the `sglang-omni` package inside the container. + +### 2.1 Docker + +```bash Command +docker pull frankleeeee/sglang-omni:dev + +docker run -it --shm-size 32g --gpus all frankleeeee/sglang-omni:dev /bin/zsh +``` + +### 2.2 Install sglang-omni (inside Docker) + +```bash Command +git clone https://github.com/sgl-project/sglang-omni.git +cd sglang-omni +uv venv .venv -p 3.12 && source .venv/bin/activate +uv pip install -v ".[s2pro]" +huggingface-cli download fishaudio/s2-pro +``` + +## 3. Model Deployment + +S2 Pro can be served via an OpenAI-compatible HTTP server or explored interactively through a Gradio playground. + +### 3.1 Server + +```bash Command +python -m sglang_omni.cli.cli serve \ + --model-path fishaudio/s2-pro \ + --config examples/configs/s2pro_tts.yaml \ + --port 8000 +``` + +### 3.2 Interactive Playground + +We provide a Gradio-based interactive playground. We highly recommend using the playground since audio data is hard to interact with by CLI. + +```bash Command +./playground/tts/start.sh +``` + +## 4. Model Invocation + +### 4.1 Text-to-Speech + +Generate speech from text using the OpenAI-compatible `/v1/audio/speech` endpoint. + + +Without a reference audio clip, the generated voice will use a default voice. Provide a reference audio for voice cloning. + + +```bash Command +curl -X POST http://localhost:8000/v1/audio/speech \ + -H "Content-Type: application/json" \ + -d '{"input": "Hello, how are you?"}' \ + --output output.wav +``` + +### 4.2 Voice Cloning + +Provide a reference audio file and its transcript for high-quality voice cloning: + +```bash Command +curl -X POST http://localhost:8000/v1/audio/speech \ + -H "Content-Type: application/json" \ + -d '{ + "input": "Hello, how are you?", + "references": [{"audio_path": "ref.wav", "text": "Transcript of ref audio."}] + }' \ + --output output.wav +``` + +## 5. Architecture + +S2 Pro uses a 3-stage pipeline: + +```text Example +Text input ──► Preprocessing ──► SGLang AR Engine ──► DAC Vocoder ──► Audio output + (CPU) (GPU) (GPU) +``` + +**Stage 1 — Preprocessing:** Tokenizes the input text into a Qwen3-style chat prompt. For voice cloning, encodes the reference audio into VQ codes via the DAC codec and prepends them to the prompt as a system message. + +**Stage 2 — Dual-AR Generation:** The Slow AR runs inside SGLang along the time axis. At each decode step, it predicts a semantic token, then the Fast AR (4-layer transformer) generates the remaining 9 residual codebook tokens conditioned on the hidden state. VQ embeddings are injected into the input embedding at masked positions, allowing the model to attend over both text and audio context through SGLang's KV cache. + +**Stage 3 — Vocoder:** The accumulated codebook indices are decoded into a waveform by a DAC codec, producing the final audio output. + +## 6. Performance + +Evaluated on the full seed-tts-eval EN testset (1,088 samples) on a single H200 GPU. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MetricBS=1BS=2BS=4BS=8
      Tok/s (mean)63.345.831.919.6
      RTF (mean)0.3400.4730.6761.097
      Latency (mean)1.33s1.80s2.69s4.36s
      TTFT (mean)19.6 ms22.0 ms31.6 ms50.7 ms
      TTFB (mean)172.8 ms249.9 ms319.1 ms509.6 ms
      + +## 7. SGLang Omni Optimizations + +By integrating S2 Pro's Dual-AR backbone into SGLang's paged-attention engine, we inherit LLM-native optimizations: + +- **Paged KV cache** — SGLang manages KV cache for the Slow AR path, enabling efficient memory usage and high concurrency. +- **Radix prefix caching** — Shared system prompt and reference audio prefixes are cached across requests, keeping TTFT consistently low (~18ms). +- **torch.compile on Fast AR** — The 9-step codebook loop is compiled with torch.compile, achieving 5x speedup over eager mode. +- **FlashAttention 3** — Forced FA3 backend to match training-time attention numerics, avoiding early-EOS divergence from flashinfer. + +## 8. Future Optimizations + +To further improve throughput and latency in the future: + +- **CUDA Graphs while torch.compile enabled.** The current implementation uses torch.compile on the Fast AR codebook loop (achieving 5x over eager), but does not capture CUDA graphs for the Slow AR path. Enabling CUDA graphs requires resolving numerical divergence from deterministic-mode constraints and adapting SGLang's graph capture to S2 Pro's interleaved VQ embedding injection, involving significant engineering that we leave for a future release. + +- **Batched Fast AR head processing.** Currently, the Fast AR codebook decoding loop runs sequentially per request. Batching these steps across concurrent requests would improve GPU utilization at higher batch sizes, potentially improving throughput. + +## 9. Engineering Appendix + + + +### BF16 RoPE Precision Mismatch + +SGLang's default RoPE implementation precomputes `cos_sin_cache` in float32, but S2 Pro's model was trained entirely in bfloat16 including the RoPE frequencies. The precision difference caused logit divergence producing garbled audio with abnormally long sequences of tokens. + +It's worth attention for any future engineering for fish audio inference infrastructure, since it's uncommon and hard to debug when accuracy of inference engine is higher than the precision of the model. Below is a simple fix once problem identified. + +```python Example +def _truncate_rope_to_bf16(model: torch.nn.Module) -> None: + for module in model.modules(): + if hasattr(module, "cos_sin_cache"): + module.cos_sin_cache.data = module.cos_sin_cache.data.to(torch.bfloat16).to( + torch.float32 + ) +``` + +### Attention Backend Divergence Causing Early Stopping + +SGLang defaults to flashinfer for attention, but S2 Pro was trained with FlashAttention. When future engineering meet early EOS token issue, this could suggest the fix. + + diff --git a/docs_new/cookbook/omni/intro.mdx b/docs_new/cookbook/omni/intro.mdx new file mode 100644 index 000000000..28702aae1 --- /dev/null +++ b/docs_new/cookbook/omni/intro.mdx @@ -0,0 +1,16 @@ +--- +title: Overview +mode: wide +description: Practical guides for deploying and using omni models (TTS, audio) with SGLang. +metatags: + description: "Explore SGLang omni model cookbooks for speech, audio, and multimodal deployment examples." +--- + + + + diff --git a/docs_new/cookbook/specbundle/specbundle_usage.mdx b/docs_new/cookbook/specbundle/specbundle_usage.mdx new file mode 100644 index 000000000..c8735077e --- /dev/null +++ b/docs_new/cookbook/specbundle/specbundle_usage.mdx @@ -0,0 +1,152 @@ +--- +title: SpecBundle Usage +metatags: + description: "SpecBundle usage guide - production-grade EAGLE3 speculative decoding with SGLang for faster LLM inference." +--- + +![specbundle logo](/logo/logo.png) + +## About SpecBundle + +Speculative decoding, especially EAGLE3, offer strong theoretical guarantees alongside consistent empirical improvements in token acceptance rate and end-to-end inference speed. However, despite these advances, adoption of speculative decoding—especially EAGLE3—remains limited in the open-source ecosystem, due primarily to three key factors. + +1. Lack of production-ready training infrastructure: Existing speculative decoding toolchains are largely research prototypes, offering limited system-level optimization and inadequate support for diverse architectures and large-scale models. +2. Scarcity of high-quality draft models: Effective speculative decoding depends on strong draft models, yet publicly available EAGLE3-compatible checkpoints are extremely limited, primarily originating from the original authors. +3. Insufficient training scale of existing drafts: Most available draft models are trained on small or curated datasets and fail to generalize to the large, diverse corpora used in modern LLM training, resulting in low token acceptance rates and diminished practical speedups. + +**SpecBundle** is a direct response to these limitations. Jointly driven by the open-source community and industry partners including **Ant Group**, **Meituan**, **Nex-AGI** and **EigenAI**, **SpecBundle** represents the **first open initiative** aimed at democratizing speculative decoding by providing high-performance, production-grade EAGLE3 draft model weights for mainstream open-source LLMs. This initiative also serves to verify the robustness of the [**SpecForge**](https://github.com/sgl-project/SpecForge) framework through multiple scales and architectures. + +## Installation + +```bash Command +git clone https://github.com/sgl-project/SpecForge.git +``` + +## Usage + +### Launch SGLang Server with SpecBundle models + +You can use the following command to launch the SGLang server with SpecBundle models. Please add `--tp`, `--ep` and `--mem-fraction-static` arguments when you encounter memory issues. + +```bash Command +python3 -m sglang.launch_server \ + --model \ + --speculative-algorithm EAGLE3 \ + --speculative-draft-model-path \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 +``` + +For example: + +```bash Command +SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 python3 -m sglang.launch_server \ + --model Qwen/Qwen3-30B-A3B-Instruct-2507 \ + --speculative-algorithm EAGLE3 \ + --speculative-draft-model-path lmsys/SGLang-EAGLE3-Qwen3-30B-A3B-Instruct-2507-SpecForge-Nex \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --tp 4 +``` + +### Use SpecBundle to compare the performance of Speculative Decoding draft models + +We provide a benchmark suite to evaluate the performance of SpecBundle draft models [here](https://github.com/sgl-project/SpecForge/tree/main/benchmarks). + +#### Example: + +1. Launch a SGLang Server + +```bash Command +SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 python3 -m sglang.launch_server \ + --model Qwen/Qwen3-30B-A3B-Instruct-2507 \ + --speculative-algorithm EAGLE3 \ + --speculative-draft-model-path lmsys/SGLang-EAGLE3-Qwen3-30B-A3B-Instruct-2507-SpecForge-Nex \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --tp 4 +``` + +2. Use the benchmark suite to evaluate the performance of SpecBundle draft models + +`bench_eagle3.py` can help you launch a SGLang server process and a Benchmarking process concurrently. In this way, you don't have to launch the SGLang server manually, this script will manually handle the SGLang launch under different speculative decoding configurations. Some important arguments are: + +- `--model-path`: the path to the target model. +- `--speculative-draft-model-path`: the path to the draft model. +- `--port`: the port to launch the SGLang server. +- `--trust-remote-code`: trust the remote code. +- `--mem-fraction-static`: the memory fraction for the static memory. +- `--tp-size`: the tensor parallelism size. +- `--attention-backend`: the attention backend. +- `--config-list`: the list of speculative decoding configuration to test, the format is `,,,`. +- `--benchmark-list`: the list of benchmarks to test, the format is `::`. + +```bash Command +cd SpecForge/benchmarks +python bench_eagle3.py \ + --model-path Qwen/Qwen3-30B-A3B-Instruct-2507 \ + --port 30000 \ + --config-list 1,3,1,4 \ + --benchmark-list mtbench:5 gsm8k:100 \ + --skip-launch-server +``` + +**Interactive Command Generator**: Use the configuration selector below to automatically generate the appropriate test command for your model and benchmark. + +import { SpecBundleDeployment } from "/src/snippets/specbundle/specbundle-deployment.jsx"; + + + +It will generate a json file, content is listed below: + +```json Config +{ + "mtbench": [ + { + "batch_size": 1, + "steps": null, + "topk": null, + "num_draft_tokens": null, + "metrics": [ + { + "latency": 12.232808108034078, + "output_throughput": 319.71399906382845, + "accept_length": 2.170366259711432, + "accuracy": null, + "num_questions": 5, + "num_valid_predictions": 0, + "categorical_performance": null + } + ], + "num_samples": 5 + } + ], + "gsm8k": [ + { + "batch_size": 1, + "steps": null, + "topk": null, + "num_draft_tokens": null, + "metrics": [ + { + "latency": 37.42077191895805, + "output_throughput": 373.6160234823207, + "accept_length": 2.643410852713178, + "accuracy": 0.96, + "num_questions": 100, + "num_valid_predictions": 100, + "categorical_performance": null + } + ], + "num_samples": 100 + } + ] +} +``` + +## Performance Scores + +We evaluate the performance of SpecBundle draft models on various benchmarks, please visit the [Performance Dashboard](https://docs.sglang.io/SpecForge/SpecBundle/index.html) for more details. diff --git a/docs_new/cookbook/specbundle/supported_models.mdx b/docs_new/cookbook/specbundle/supported_models.mdx new file mode 100644 index 000000000..f3b0f6bf7 --- /dev/null +++ b/docs_new/cookbook/specbundle/supported_models.mdx @@ -0,0 +1,191 @@ +--- +title: Supported Models +metatags: + description: "SpecBundle supported EAGLE3 draft models for speculative decoding - Llama, Qwen, DeepSeek, GLM, and more." +--- + +## [Released Models](https://huggingface.co/collections/lmsys/specbundle) + +We list the models released by the SpecForge and several industrial partners below. These models are released as part of the SpecBundle models, which are trained on large-scale multi-domain datasets and deliver exceptional performance on various benchmarks. + +> We also include some of the models previously trained by the SpecForge team but not technically part of the SpecBundle release. +> We mark models trained on ShareGPT+Ultrachat datasets with a **\*** mark and models trained on Perfect-Blend datasets but released before SpecBundle with **+** mark. + +### Llama Series + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Target ModelEAGLE3 Draft Model
      meta-llama/Llama-3.1-8B-Instruct[🤗 Hugging Face](https://huggingface.co/lmsys/SGLang-EAGLE3-Llama-3.1-8B-Instruct-SpecForge)
      meta-llama/Llama-3.3-70B-Instruct[🤗 Hugging Face](https://huggingface.co/lmsys/SGLang-EAGLE3-Llama-3.3-70B-Instruct-SpecForge)
      meta-llama/Llama-4-Scout-17B-16E-Instruct[🤗 Hugging Face](https://huggingface.co/lmsys/SGLang-EAGLE3-Llama-4-Scout-17B-16E-Instruct-SpecForge)
      meta-llama/Llama-4-Maverick-17B-128E-Instruct[🤗 Hugging Face \*](https://huggingface.co/lmsys/sglang-EAGLE3-Llama-4-Maverick-17B-128E-Instruct-v1)
      + +### Qwen Series + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Target ModelEAGLE3 Draft Model
      Qwen/Qwen3-30B-A3B-Instruct-2507[🤗 Hugging Face](https://huggingface.co/lmsys/SGLang-EAGLE3-Qwen3-30B-A3B-Instruct-2507-SpecForge-Nex)
      Qwen/Qwen3-235B-A22B-Instruct-2507[🤗 Hugging Face](https://huggingface.co/lmsys/SGLang-EAGLE3-Qwen3-235B-A22B-Instruct-2507-SpecForge-Meituan)
      Qwen/Qwen3-Next-80B-A3B-Instruct-FP8[🤗 Hugging Face](https://huggingface.co/lmsys/SGLang-EAGLE3-Qwen3-Next-80B-A3B-Instruct-FP8-perfect-blend-regenerated)
      + +### Qwen Coder Series + + + + + + + + + + + + + + + + + + + + + + +
      Target ModelEAGLE3 Draft Model
      Qwen/Qwen3-Coder-30B-A3B-Instruct[🤗 Hugging Face](https://huggingface.co/lmsys/SGLang-EAGLE3-Qwen3-Coder-30B-A3B-Instruct-SpecForge)
      Qwen/Qwen3-Coder-480B-A35B-Instruct[🤗 Hugging Face](https://huggingface.co/lmsys/SGLang-EAGLE3-Qwen3-Coder-480B-A35B-Instruct-SpecForge-EigenAI)
      + +### Ling Series + + + + + + + + + + + + + + + + + + +
      Target ModelEAGLE3 Draft Model
      inclusionAI/Ling-flash-2.0[🤗 Hugging Face](https://huggingface.co/AQ-MedAI/Ling-Flash-2.0-eagle3)
      + +### Kimi Series + + + + + + + + + + + + + + + + + + +
      Target ModelEAGLE3 Draft Model
      moonshotai/Kimi-K2-Instruct[🤗 Hugging Face](https://huggingface.co/AQ-MedAI/Kimi-K2-Instruct-eagle3)
      + +### GPT-OSS Series + + + + + + + + + + + + + + + + + + + + + + +
      Target ModelEAGLE3 Draft Model
      openai/gpt-oss-20b[🤗 Hugging Face +](https://huggingface.co/zhuyksir/EAGLE3-gpt-oss-20b-bf16)
      openai/gpt-oss-120b[🤗 Hugging Face +](https://huggingface.co/lmsys/EAGLE3-gpt-oss-120b-bf16)
      + +### Nex Series + + + + + + + + + + + + + + + + + + + + + + +
      Target ModelEAGLE3 Draft Model
      nex-agi/Qwen3-30B-A3B-Nex-N1[🤗 Hugging Face](https://huggingface.co/nex-agi/SGLANG-EAGLE3-Qwen3-30B-A3B-Nex-N1)
      nex-agi/Qwen3-32B-Nex-N1[🤗 Hugging Face](https://huggingface.co/nex-agi/SGLANG-EAGLE3-Qwen3-32B-Nex-N1)
      diff --git a/docs_new/custom.css b/docs_new/custom.css new file mode 100644 index 000000000..3dd898727 --- /dev/null +++ b/docs_new/custom.css @@ -0,0 +1,101 @@ +:where(*) { + scrollbar-width: none; + -ms-overflow-style: none; +} + +:where(*)::-webkit-scrollbar { + width: 0; + height: 0; +} + +:where(pre, code, .code-block, .code-group, #request-example, #response-example), +:where(pre, code, .code-block, .code-group, #request-example, #response-example) * { + scrollbar-width: auto; + -ms-overflow-style: auto; +} + +:where(pre, code, .code-block, .code-group, #request-example, #response-example)::-webkit-scrollbar, +:where(pre, code, .code-block, .code-group, #request-example, #response-example) *::-webkit-scrollbar { + width: 10px; + height: 10px; +} + +/* Global table styling to match vision-language-models.mdx reference */ +table { + width: 100%; + border-collapse: collapse; + table-layout: fixed; +} + +table thead tr { + border-bottom: 2px solid #d55816; +} + +table thead th { + text-align: left; + padding: 10px 12px; + font-weight: 700; + white-space: nowrap; +} + +table thead th:nth-child(odd) { + background-color: rgba(255,255,255,0.02); +} + +table thead th:nth-child(even) { + background-color: rgba(255,255,255,0.05); +} + +table tbody tr:nth-child(odd) td { + background-color: rgba(255,255,255,0.02); +} + +table tbody tr:nth-child(even) td { + background-color: rgba(255,255,255,0.05); +} + +table tbody td { + padding: 9px 12px; +} + +table tbody td:first-child { + font-weight: 500; +} + +/* Dark mode support for tables */ +html.dark table thead th:nth-child(odd), +[data-theme="dark"] table thead th:nth-child(odd) { + background-color: rgba(255,255,255,0.02); +} + +html.dark table thead th:nth-child(even), +[data-theme="dark"] table thead th:nth-child(even) { + background-color: rgba(255,255,255,0.05); +} + +html.dark table tbody tr:nth-child(odd) td, +[data-theme="dark"] table tbody tr:nth-child(odd) td { + background-color: rgba(255,255,255,0.02); +} + +html.dark table tbody tr:nth-child(even) td, +[data-theme="dark"] table tbody tr:nth-child(even) td { + background-color: rgba(255,255,255,0.05); +} + +/* Bold text (**text**) */ +.prose strong, .prose b { + font-weight: 600; +} + +/* Inline code (single backtick) */ +:not(pre) > code { + background-color: rgba(0, 0, 0, 0.07); + font-weight: 600; +} + +html.dark :not(pre) > code, +[data-theme="dark"] :not(pre) > code { + background-color: rgba(255, 255, 255, 0.13); + font-weight: 600; +} diff --git a/docs_new/docs.json b/docs_new/docs.json new file mode 100644 index 000000000..21db5501c --- /dev/null +++ b/docs_new/docs.json @@ -0,0 +1,564 @@ +{ + "$schema": "https://mintlify.com/docs.json", + "theme": "aspen", + "name": "SGLang Documentation", + "seo": { + "metatags": { + "google-site-verification": "bX3ofyYQhraIpAYf4DpyZQXZO_G4xLR_RqeBAKnJA7g" + } + }, + "redirects": [ + { + "source": "/docs/references/learn_more", + "destination": "/" + } + ], + "colors": { + "primary": "#d55816", + "light": "#d55816", + "dark": "#d55816" + }, + "background": { + "decoration": "grid", + "color": { + "dark": "#1d1d1d", + "light": "#fffcfb" + } + }, + "fonts": { + "heading": { + "family": "Inter", + "weight": 600 + }, + "body": { + "family": "Inter", + "weight": 400 + } + }, + "favicon": "/favicon.png", + "navigation": { + "tabs": [ + { + "tab": "Get Started", + "groups": [ + { + "group": "Get Started", + "icon": "play", + "pages": [ + "index", + "docs/get-started/installation", + "docs/get-started/quickstart", + "docs/basic_usage/send_request" + ] + } + ] + }, + { + "tab": "User Guide", + "groups": [ + { + "group": "Basic Usage", + "icon": "book-open", + "pages": [ + "docs/basic_usage/overview", + { + "group": "OpenAI-Compatible APIs", + "pages": [ + "docs/basic_usage/openai_api", + "docs/basic_usage/openai_api_completions", + "docs/basic_usage/openai_api_vision", + "docs/basic_usage/openai_api_embeddings" + ] + }, + "docs/basic_usage/ollama_api", + "docs/basic_usage/offline_engine_api", + "docs/basic_usage/native_api", + "docs/basic_usage/sampling_params", + { + "group": "Popular Model Usage", + "pages": [ + "docs/basic_usage/popular_model_usage", + "docs/basic_usage/deepseek_v3", + "docs/basic_usage/deepseek_v32", + "docs/basic_usage/glm45", + "docs/basic_usage/glmv", + "docs/basic_usage/gpt_oss", + "docs/basic_usage/kimi_k2_5", + "docs/basic_usage/minimax_m2", + "docs/basic_usage/qwen3", + "docs/basic_usage/qwen3_vl", + "docs/basic_usage/llama4" + ] + } + ] + }, + { + "group": "Advanced Features", + "icon": "gears", + "pages": [ + "docs/advanced_features/overview", + "docs/advanced_features/server_arguments", + "docs/advanced_features/object_storage", + "docs/advanced_features/hyperparameter_tuning", + "docs/advanced_features/attention_backend", + "docs/advanced_features/speculative_decoding", + "docs/advanced_features/structured_outputs", + "docs/advanced_features/structured_outputs_for_reasoning_models", + "docs/advanced_features/tool_parser", + "docs/advanced_features/separate_reasoning", + "docs/advanced_features/quantization", + "docs/advanced_features/quantized_kv_cache", + "docs/advanced_features/dp_dpa_smg_guide", + "docs/advanced_features/expert_parallelism", + "docs/advanced_features/lora", + "docs/advanced_features/pd_disaggregation", + "docs/advanced_features/epd_disaggregation", + "docs/advanced_features/pipeline_parallelism", + { + "group": "Hierarchical KV Caching (HiCache)", + "pages": [ + "docs/advanced_features/hicache", + "docs/advanced_features/hicache_best_practices", + "docs/advanced_features/hicache_design", + "docs/advanced_features/hicache_storage_runtime_attach_detach" + ] + }, + "docs/advanced_features/vlm_query", + "docs/advanced_features/dp_for_multi_modal_encoder", + "docs/advanced_features/cuda_graph_for_multi_modal_encoder", + "docs/advanced_features/breakable_cuda_graph", + "docs/advanced_features/piecewise_cuda_graph", + "docs/advanced_features/sgl_model_gateway", + "docs/advanced_features/deterministic_inference", + "docs/advanced_features/observability", + "docs/advanced_features/checkpoint_engine", + "docs/advanced_features/sglang_for_rl" + ] + }, + { + "group": "Supported Models", + "icon": "cubes", + "pages": [ + "docs/supported-models", + { + "group": "Text Generation", + "pages": [ + "docs/supported-models/large-language-models", + "docs/supported-models/vision-language-models", + "docs/supported-models/diffusion-language-models" + ] + }, + { + "group": "Retrieval and Ranking", + "pages": [ + "docs/supported-models/embedding-models", + "docs/supported-models/rerank-models", + "docs/supported-models/classification-models" + ] + }, + { + "group": "Specialized Models", + "pages": [ + "docs/supported-models/reward-models" + ] + }, + { + "group": "Extending SGLang", + "pages": [ + "docs/supported-models/new-model-support", + "docs/supported-models/transformers-fallback", + "docs/supported-models/modelscope", + "docs/supported-models/mindspore-models" + ] + } + ] + }, + { + "group": "Developer Guide", + "icon": "code", + "pages": [ + "docs/developer_guide/overview", + "docs/developer_guide/contribution_guide", + { + "group": "Development", + "pages": [ + "docs/developer_guide/development_guide_using_docker", + "docs/developer_guide/JIT_kernels" + ] + }, + { + "group": "Benchmarking", + "pages": [ + "docs/developer_guide/benchmark_and_profiling", + "docs/developer_guide/bench_serving" + ] + }, + "docs/developer_guide/evaluating_new_models" + ] + }, + { + "group": "References", + "icon": "bookmark", + "pages": [ + "docs/references/overview", + "docs/references/faq", + "docs/references/environment_variables", + "docs/references/production_metrics", + "docs/references/production_request_trace", + { + "group": "Multi-Node Deployment", + "pages": [ + "docs/references/multi_node_deployment/multi_node_index", + "docs/references/multi_node_deployment/multi_node", + "docs/references/multi_node_deployment/deploy_on_k8s", + "docs/references/multi_node_deployment/lws_pd/lws_pd_deploy", + "docs/references/multi_node_deployment/rbg_pd/deepseekv32_pd" + ] + }, + "docs/references/custom_chat_template", + { + "group": "Frontend Language", + "pages": [ + "docs/references/frontend/frontend_index", + "docs/references/frontend/frontend_tutorial", + "docs/references/frontend/choices_methods" + ] + }, + { + "group": "Cookbook", + "pages": [ + "cookbook/base/reference/server_arguments" + ] + }, + "docs/references/post_training_integration" + ] + } + ] + }, + { + "tab": "Hardware", + "groups": [ + { + "group": "Hardware Platforms", + "icon": "microchip", + "pages": [ + "docs/hardware-platforms/overview", + "docs/hardware-platforms/nvidia-gpus", + "docs/hardware-platforms/amd-gpus", + { + "group": "Ascend NPUs", + "pages": [ + "docs/hardware-platforms/ascend-npus/Best-Practice-on-Ascend-NPU", + "docs/hardware-platforms/ascend-npus/DeepSeek-Examples", + "docs/hardware-platforms/ascend-npus/GLM-5", + "docs/hardware-platforms/ascend-npus/MindSpore-Models", + "docs/hardware-platforms/ascend-npus/Qwen3-Examples", + "docs/hardware-platforms/ascend-npus/Qwen3.5", + "docs/hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support", + "docs/hardware-platforms/ascend-npus/Support-Features-on-Ascend-NPU", + "docs/hardware-platforms/ascend-npus/Support-Models-on-Ascend-NPU" + ] + }, + "docs/hardware-platforms/cpu-server", + { + "group": "Edge & Embedded", + "pages": [ + "docs/hardware-platforms/nvidia" + ] + }, + "docs/hardware-platforms/tpu", + "docs/hardware-platforms/xpu" + ] + } + ] + }, + { + "tab": "Cookbook", + "groups": [ + { + "group": "Cookbook", + "icon": "book", + "pages": [ + "cookbook/intro", + { + "group": "Autoregressive Models", + "pages": [ + "cookbook/autoregressive/intro", + { + "group": "Qwen", + "pages": [ + "cookbook/autoregressive/Qwen/Qwen3.6", + "cookbook/autoregressive/Qwen/Qwen3.5", + "cookbook/autoregressive/Qwen/Qwen3", + "cookbook/autoregressive/Qwen/Qwen3-Next", + "cookbook/autoregressive/Qwen/Qwen3-Coder", + "cookbook/autoregressive/Qwen/Qwen3-Coder-Next", + "cookbook/autoregressive/Qwen/Qwen3-VL", + "cookbook/autoregressive/Qwen/Qwen2.5-VL" + ] + }, + { + "group": "DeepSeek", + "pages": [ + "cookbook/autoregressive/DeepSeek/DeepSeek-V3_2", + "cookbook/autoregressive/DeepSeek/DeepSeek-V3_1", + "cookbook/autoregressive/DeepSeek/DeepSeek-V3", + "cookbook/autoregressive/DeepSeek/DeepSeek-R1", + "cookbook/autoregressive/DeepSeek/DeepSeek-Math-V2", + "cookbook/autoregressive/DeepSeek/DeepSeek-OCR", + "cookbook/autoregressive/DeepSeek/DeepSeek-OCR-2" + ] + }, + { + "group": "Llama", + "pages": [ + "cookbook/autoregressive/Llama/Llama4", + "cookbook/autoregressive/Llama/Llama3.3-70B", + "cookbook/autoregressive/Llama/Llama3.1" + ] + }, + { + "group": "GLM", + "pages": [ + "cookbook/autoregressive/GLM/GLM-4.5", + "cookbook/autoregressive/GLM/GLM-4.6", + "cookbook/autoregressive/GLM/GLM-4.7", + "cookbook/autoregressive/GLM/GLM-4.7-Flash", + "cookbook/autoregressive/GLM/GLM-5", + "cookbook/autoregressive/GLM/GLM-5.1", + "cookbook/autoregressive/GLM/GLM-Glyph", + "cookbook/autoregressive/GLM/GLM-OCR", + "cookbook/autoregressive/GLM/GLM-4.5V", + "cookbook/autoregressive/GLM/GLM-4.6V" + ] + }, + { + "group": "Google", + "pages": [ + "cookbook/autoregressive/Google/Gemma4" + ] + }, + { + "group": "OpenAI", + "pages": [ + "cookbook/autoregressive/OpenAI/GPT-OSS" + ] + }, + { + "group": "Moonshotai", + "pages": [ + "cookbook/autoregressive/Moonshotai/Kimi-K2.6", + "cookbook/autoregressive/Moonshotai/Kimi-K2.5", + "cookbook/autoregressive/Moonshotai/Kimi-K2", + "cookbook/autoregressive/Moonshotai/Kimi-Linear" + ] + }, + { + "group": "MiniMax", + "pages": [ + "cookbook/autoregressive/MiniMax/MiniMax-M2.7", + "cookbook/autoregressive/MiniMax/MiniMax-M2", + "cookbook/autoregressive/MiniMax/MiniMax-M2.5" + ] + }, + { + "group": "NVIDIA", + "pages": [ + "cookbook/autoregressive/NVIDIA/Nemotron3-Nano", + "cookbook/autoregressive/NVIDIA/Nemotron3-Super" + ] + }, + { + "group": "Ernie", + "pages": [ + "cookbook/autoregressive/Ernie/Ernie4.5", + "cookbook/autoregressive/Ernie/Ernie4.5-VL" + ] + }, + { + "group": "StepFun", + "pages": [ + "cookbook/autoregressive/StepFun/Step3.5", + "cookbook/autoregressive/StepFun/Step3-VL-10B" + ] + }, + { + "group": "InclusionAI", + "pages": [ + "cookbook/autoregressive/InclusionAI/Ling-2.5-1T", + "cookbook/autoregressive/InclusionAI/Ring-2.5-1T", + "cookbook/autoregressive/InclusionAI/LLaDA-2.1" + ] + }, + { + "group": "InternLM", + "pages": [ + "cookbook/autoregressive/InternLM/Intern-S1" + ] + }, + { + "group": "InternVL", + "pages": [ + "cookbook/autoregressive/InternVL/InternVL3.5" + ] + }, + { + "group": "Jina AI", + "pages": [ + "cookbook/autoregressive/Jina/Jina-reranker-m0" + ] + }, + { + "group": "Mistral", + "pages": [ + "cookbook/autoregressive/Mistral/Ministral-3", + "cookbook/autoregressive/Mistral/Mistral-Small-4", + "cookbook/autoregressive/Mistral/Devstral-2" + ] + }, + { + "group": "Xiaomi", + "pages": [ + "cookbook/autoregressive/Xiaomi/MiMo-V2-Flash" + ] + }, + { + "group": "FlashLabs", + "pages": [ + "cookbook/autoregressive/FlashLabs/Chroma1.0" + ] + } + ] + }, + { + "group": "Diffusion Models", + "pages": [ + "cookbook/diffusion/intro", + { + "group": "FLUX", + "pages": [ + "cookbook/diffusion/FLUX/FLUX" + ] + }, + { + "group": "Wan", + "pages": [ + "cookbook/diffusion/Wan/Wan2.1", + "cookbook/diffusion/Wan/Wan2.2" + ] + }, + { + "group": "Qwen-Image", + "pages": [ + "cookbook/diffusion/Qwen-Image/Qwen-Image", + "cookbook/diffusion/Qwen-Image/Qwen-Image-Edit" + ] + }, + { + "group": "Z-Image", + "pages": [ + "cookbook/diffusion/Z-Image/Z-Image-Turbo" + ] + }, + { + "group": "MOVA", + "pages": [ + "cookbook/diffusion/MOVA/MOVA" + ] + } + ] + }, + { + "group": "SpecBundle", + "pages": [ + "cookbook/specbundle/supported_models", + "cookbook/specbundle/specbundle_usage" + ] + }, + { + "group": "Benchmarks", + "pages": [ + "cookbook/base/benchmarks/autoregressive_model_benchmark", + "cookbook/base/benchmarks/diffusion_model_benchmark" + ] + } + ] + } + ] + }, + { + "tab": "SGLang Diffusion", + "groups": [ + { + "group": "SGLang Diffusion", + "icon": "sparkles", + "pages": [ + "sglang-diffusion/intro", + "docs/sglang-diffusion/installation", + "docs/sglang-diffusion/supported-models", + { + "group": "Usage", + "pages": [ + "docs/sglang-diffusion/api/cli", + "docs/sglang-diffusion/api/openai-api" + ] + }, + { + "group": "Performance Optimization", + "pages": [ + "docs/sglang-diffusion/performance-optimization", + "docs/sglang-diffusion/attention-backends", + "docs/sglang-diffusion/profiling", + "docs/sglang-diffusion/ci-performance" + ] + }, + { + "group": "Caching Strategies", + "pages": [ + "docs/sglang-diffusion/caching-acceleration", + "docs/sglang-diffusion/cache-dit", + "docs/sglang-diffusion/tea-cache" + ] + }, + { + "group": "References", + "pages": [ + "docs/sglang-diffusion/environment-variables", + "docs/sglang-diffusion/supported-models" + ] + } + ] + } + ] + } + ], + "global": { + "anchors": [] + } + }, + "logo": { + "light": "/logo/logo.png", + "dark": "/logo/logo.png" + }, + "contextual": { + "options": [ + "copy", + "view", + "chatgpt", + "claude", + "perplexity", + "mcp", + "cursor", + "vscode" + ] + }, + "footer": { + "socials": { + "github": "https://github.com/sgl-project/sglang", + "x": "https://x.com/lmsysorg", + "linkedin": "https://www.linkedin.com/company/sgl-project/posts?feedView=all", + "slack": "https://slack.sglang.io/", + "discord": "https://discord.gg/4ugb2t6YY2" + } + } +} diff --git a/docs_new/docs/advanced_features/attention_backend.mdx b/docs_new/docs/advanced_features/attention_backend.mdx new file mode 100644 index 000000000..2d07fa02c --- /dev/null +++ b/docs_new/docs/advanced_features/attention_backend.mdx @@ -0,0 +1,520 @@ +--- +title: "Attention Backend" +metatags: + description: "SGLang attention backend guide: FlashInfer, FA3, FA4, Triton, FlashMLA, TRTLLM MLA, hybrid attention. Support matrix for MHA and MLA models." +--- +SGLang supports a large variety of attention backends. Each of them has different pros and cons. +You can test them according to your needs. + + +Selecting an optimal attention backend is crucial for maximizing your performance. Different backends excel in various scenarios, so choose based on your model, hardware, and use case. Not all backends are supported on all platforms and model architectures. + +If you don't specify `--attention-backend`, SGLang makes a best effort to automatically select the most performant backend based on your hardware and model architecture. + + +## Support Matrix + +The support matrix is split into two parts: MHA (standard attention) and MLA (multi-head latent attention). For an explanation of the key differences between MHA and MLA, please see the [SGLang documentation on DeepSeek MLA](../basic_usage/deepseek_v3.md#multi-head-latent-attention-mla-throughput-optimizations) and the original [DeepSeek MLA paper](https://arxiv.org/pdf/2405.04434). + +### MHA Backends + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      **Backend****Page Size > 1 (native)****FP8 KV Cache****FP4 KV Cache****Spec topk=1****Spec topk>1****Sliding Window****MultiModal**
      **FlashInfer**
      **FA3 (FlashAttention 3)**
      **FA4 (FlashAttention 4)**128
      **Triton**
      **Torch Native (SDPA)**
      **FlexAttention (PyTorch)**
      **TRTLLM MHA**16, 32 or 64
      **Dual Chunk FlashAttention**
      **AITER (ROCm)**
      **Wave (ROCm)**
      **Ascend (NPU)**
      **Intel XPU**
      **Intel AMX (CPU)**
      + +### MLA Backends + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      **Backend****Native Page Sizes****FP8 KV Cache****FP4 KV Cache****Chunked Prefix Cache****Spec topk=1****Spec topk>1**
      **FlashInfer MLA**1
      **FlashMLA**64
      **Cutlass MLA**128
      **TRTLLM MLA (Blackwell)**32 or 64
      **FA3 (FlashAttention 3)**n/a⚠️ (page_size=1 only)
      **Triton**n/a⚠️ (page_size=1 only)
      **FA4**1
      **Ascend MLA (NPU)**128
      + + +Multimodal attention is selected by `--mm-attention-backend`. The "MultiModal" column indicates whether a corresponding multimodal implementation exists for that backend family. + + + +- FlashAttention 4 is prefill-only for now. +- NSA is specifically designed for [DeepSeek V3.2 DSA](https://lmsys.org/blog/2025-09-29-deepseek-V32/). + + + +For the KV4 FA4 scenario, FA4 requires using a different --decode-attention-backend to run. Except for trtllm_mha being incompatible with FA4, all other decode backends behave as shown in the table. + + + +Speculative decoding topk: `topk` is the number of draft tokens sampled per step from the draft model. `topk = 1` follows classic EAGLE; `topk > 1` explores multiple branches and requires backend support in both draft and verification paths. + + + +Page size controls how many tokens are grouped into a KV cache block. For the prefix cache to take effect, the number of tokens must fill at least one complete page. For example, if your prompt is only 32 tokens and `page_size = 64`, it won't fill a complete page and cannot be matched in the prefix cache (pages cannot be padded). With 65 tokens and `page_size = 64`, only the first page of 64 tokens will be cached and matched; the remaining 1 token is discarded. Use `page_size = 1` for maximum prefix reuse (token-level matching). + + +Many backends that do not natively operate on pages can emulate `page_size > 1` at the wrapper layer by expanding page tables to per-token indices. The "Page Size > 1 (native)" column indicates true in-kernel paging. Some backends require fixed native page sizes and cannot be reduced/emulated differently: TRTLLM MHA (16/32/64), TRTLLM MLA (32/64), FlashMLA (64), Cutlass MLA (128), Ascend (128). + +MLA page-size constraints: +- FlashInfer MLA: page_size = 1. +- FlashMLA: page_size = 64. +- Cutlass MLA: page_size = 128. +- TRTLLM MLA: page_size ∈ {32, 64}. + +### Hybrid attention (different backends for prefill vs decode) (Experimental) + + +Hybrid attention is an experimental feature. + + +You can mix-and-match attention backends for prefill and decode. This is useful when one backend excels at prefill and another excels at decode. For the implementation details, please see `python/sglang/srt/layers/attention/hybrid_attn_backend.py`. + +```bash Command +# Example: Prefill with FA4, Decode with TRTLLM MLA (Blackwell) +python3 -m sglang.launch_server \ + --model-path nvidia/DeepSeek-R1-FP4 \ + --tp 8 \ + --attention-backend trtllm_mla \ + --moe-runner-backend flashinfer_trtllm \ + --quantization modelopt_fp4 \ + --prefill-attention-backend fa4 +``` + +#### Speculative decoding with hybrid attention + +Hybrid attention also works with speculative decoding. The backend used for draft decoding and target verification depends on `--speculative-attention-mode`: + +- `--speculative-attention-mode decode` (recommended): draft/verify use the decode backend. +- `--speculative-attention-mode prefill` (default): draft/verify use the prefill backend. + +Constraints when combining hybrid attention with speculative decoding: + +- If any attention backend is `trtllm_mha`, speculative decoding supports only `--speculative-eagle-topk 1`. +- For paged MHA backends with `--page-size > 1` and `--speculative-eagle-topk > 1`, only `flashinfer` is supported. +- CUDA Graph: the decode backend is always captured; the prefill backend is captured only when `--speculative-attention-mode prefill`. + + + +If you set only one of `--prefill-attention-backend` or `--decode-attention-backend`, the unspecified phase inherits `--attention-backend`. +If both are specified and differ, SGLang automatically enables a hybrid wrapper to dispatch to the chosen backend per phase. + + +## Attention Backend Selection Guide (CUDA) + +If the `--attention-backend` argument is not specified, SGLang automatically selects the best backend based on the hardware (CUDA) and model architecture. + +### Automatic Selection Logic + +**1. MHA Models (e.g., Llama, Qwen)** +- **Hopper (e.g., H100, H200)**: Defaults to `fa3` if using CUDA 12.3+ and the model configuration is supported. +- **Blackwell (e.g., B200)**: Defaults to `trtllm_mha`, unless using speculative decoding with `topk > 1`. +- **Other Architectures (Ampere, Ada, etc.)**: Defaults to `flashinfer` if available; otherwise falls back to `triton`. + +**2. MLA Models (e.g., DeepSeek V3)** +- **Hopper**: Defaults to `fa3` (requires CUDA 12.3+). +- **Blackwell**: Defaults to `trtllm_mla`. +- **Other Architectures**: Defaults to `triton`. + + +## User Guide + +### Launch Command for Different Attention Backends + +- FlashInfer (Default for Non-Hopper Machines, e.g., A100, A40) +```bash Command +python3 -m sglang.launch_server \ + --model meta-llama/Meta-Llama-3.1-8B-Instruct \ + --attention-backend flashinfer +python3 -m sglang.launch_server \ + --tp 8 \ + --model deepseek-ai/DeepSeek-V3 \ + --attention-backend flashinfer \ + --trust-remote-code +``` + +- FlashAttention 3 (Default for Hopper Machines, e.g., H100, H200, H20) +```bash Command +python3 -m sglang.launch_server \ + --model meta-llama/Meta-Llama-3.1-8B-Instruct \ + --attention-backend fa3 +python3 -m sglang.launch_server \ + --tp 8 \ + --model deepseek-ai/DeepSeek-V3 \ + --trust-remote-code \ + --attention-backend fa3 +``` + +- Triton +```bash Command +python3 -m sglang.launch_server \ + --model meta-llama/Meta-Llama-3.1-8B-Instruct \ + --attention-backend triton +python3 -m sglang.launch_server \ + --tp 8 \ + --model deepseek-ai/DeepSeek-V3 \ + --attention-backend triton \ + --trust-remote-code +``` + +- FlashMLA +```bash Command +python3 -m sglang.launch_server \ + --tp 8 \ + --model deepseek-ai/DeepSeek-R1 \ + --attention-backend flashmla \ + --trust-remote-code +python3 -m sglang.launch_server \ + --tp 8 \ + --model deepseek-ai/DeepSeek-R1 \ + --attention-backend flashmla \ + --kv-cache-dtype fp8_e4m3 \ + --trust-remote-code +``` + +- TRTLLM MLA (Optimized for Blackwell Architecture, e.g., B200) +```bash Command +python3 -m sglang.launch_server \ + --tp 8 \ + --model deepseek-ai/DeepSeek-R1 \ + --attention-backend trtllm_mla \ + --trust-remote-code +``` + +- TRTLLM MLA with FP8 KV Cache (Higher concurrency, lower memory footprint) +```bash Command +python3 -m sglang.launch_server \ + --tp 8 \ + --model deepseek-ai/DeepSeek-R1 \ + --attention-backend trtllm_mla \ + --kv-cache-dtype fp8_e4m3 \ + --trust-remote-code +``` + +- FlashAttention 4 (MHA & MLA) +```bash Command +python3 -m sglang.launch_server \ + --tp 8 \ + --model deepseek-ai/DeepSeek-R1 \ + --prefill-attention-backend fa4 \ + --trust-remote-code +``` + +- Cutlass MLA +```bash Command +python3 -m sglang.launch_server \ + --tp 8 \ + --model deepseek-ai/DeepSeek-R1 \ + --attention-backend cutlass_mla \ + --trust-remote-code +``` + +- Ascend +```bash Command +python3 -m sglang.launch_server \ + --model meta-llama/Meta-Llama-3.1-8B-Instruct \ + --attention-backend ascend +``` + +- Intel XPU +```bash Command +python3 -m sglang.launch_server \ + --model meta-llama/Meta-Llama-3.1-8B-Instruct \ + --attention-backend intel_xpu +``` + +- Wave +```bash Command +python3 -m sglang.launch_server \ + --model meta-llama/Meta-Llama-3.1-8B-Instruct \ + --attention-backend wave +``` + +- FlexAttention +```bash Command +python3 -m sglang.launch_server \ + --model meta-llama/Meta-Llama-3.1-8B-Instruct \ + --attention-backend flex_attention +``` + +- Dual Chunk FlashAttention +```bash Command +python3 -m sglang.launch_server \ + --model Qwen/Qwen2.5-14B-Instruct-1M \ + --attention-backend dual_chunk_flash_attn +``` + +- Torch Native +```bash Command +python3 -m sglang.launch_server \ + --model meta-llama/Meta-Llama-3.1-8B-Instruct \ + --attention-backend torch_native +``` + +## Steps to add a new attention backend +To add a new attention backend, you can learn from the existing backends +(`python/sglang/srt/layers/attention/triton_backend.py`, `python/sglang/srt/layers/attention/flashattention_backend.py`) +and follow the steps below. + +1. Run without cuda graph. Support the two forward functions + - forward_extend + - Will be used for prefill, prefill with KV cache, and target verification + - It will be called once per layer + - forward_decode + - Will be used for normal decode, and draft decode + - It will be called once per layer + - init_forward_metadata + - Initialize the class and common metadata shared by all layers + - Call the plan function for optimizations like split_kv + - It will be called once per forward +2. Run with cuda graph. It has two phases (capture and replay) and you need to implement three functions + - init_cuda_graph_state + - It will be called once during life time + - Create all common shared buffers + - init_forward_metadata_capture_cuda_graph + - It will be called before capturing a cuda graph + - It is similar to init_forward_metadata but write the medatada to some pre-defined buffers + - init_forward_metadata_replay_cuda_graph + - It will be called before replaying a cuda graph + - This function is in the critical path and needs to be fast diff --git a/docs_new/docs/advanced_features/breakable_cuda_graph.mdx b/docs_new/docs/advanced_features/breakable_cuda_graph.mdx new file mode 100644 index 000000000..3497ba837 --- /dev/null +++ b/docs_new/docs/advanced_features/breakable_cuda_graph.mdx @@ -0,0 +1,192 @@ +--- +title: "Breakable CUDA Graph" +metatags: + description: "Use Breakable CUDA Graph to insert targeted eager graph breaks for debugging and CUDA graph compatibility." +--- + +## Motivation + +Standard CUDA graphs capture an entire forward pass as a single, opaque graph. This is great for performance, but creates two problems: + +1. **Debugging is hard.** When something goes wrong inside a captured graph (wrong outputs, numerical mismatches, crashes), there is no way to step through the operations or insert print statements because the graph replays as a monolithic unit. + +2. **Some ops are incompatible.** Certain operations — dynamic control flow, host-device synchronization, JIT compilation, or ops that change behavior across iterations — cannot be captured into a CUDA graph at all. Today, the only workaround is to disable CUDA graphs entirely, which sacrifices the kernel launch overhead savings for the rest of the model. + +**Breakable CUDA Graph** solves both problems by allowing graph breaks to be inserted at specific points. The computation is split into multiple captured graph segments with eager (non-graph) execution in between. This preserves most of the CUDA graph performance benefit while allowing targeted operations to run outside the graph. + +## Usage + +### Debug Mode: Run Everything Eagerly + +The simplest use case is debugging. The `--debug-cuda-graph` flag wraps the entire decode forward pass in a graph break, so every operation runs eagerly while still going through the full CUDA graph capture/replay code path. This lets you debug CUDA graph issues without changing model code. + +```bash +python -m sglang.launch_server \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --debug-cuda-graph +``` + +This mode is intended for debugging only — it eliminates the performance benefit of CUDA graphs since every op runs eagerly. + +### Selective Graph Breaks in Model Code + +For production use, you can mark specific functions as "non-graphable" using the `@eager_on_graph` decorator. During CUDA graph capture, these functions run eagerly between captured graph segments. Outside of capture, they behave normally. + +```python +from sglang.srt.model_executor.breakable_cuda_graph.breakable_cuda_graph import eager_on_graph + +@eager_on_graph(enable=True) +def my_dynamic_op(x): + # This op is incompatible with CUDA graph capture + return some_dynamic_operation(x) +``` + +You can also insert a bare graph break (no computation) using the `break_graph()` helper: + +```python +from sglang.srt.model_executor.breakable_cuda_graph.breakable_cuda_graph import break_graph + +def forward(self, x): + x = self.layer1(x) + break_graph() # force a segment split here + x = self.layer2(x) + return x +``` + +To enable breakable CUDA graph at the environment level (without debug mode), set the environment variable: + +```bash +export SGLANG_USE_BREAKABLE_CUDA_GRAPH=1 +python -m sglang.launch_server \ + --model meta-llama/Llama-3.1-8B-Instruct +``` + +### Server Args + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultDescription
      --debug-cuda-graphFalseEnable debug/eager mode. Wraps the entire forward pass in a graph break so every op runs eagerly through the capture/replay path.
      SGLANG_USE_BREAKABLE_CUDA_GRAPH0Environment variable. Enables breakable CUDA graph without debug mode. Required for @eager_on_graph decorators to take effect.
      + +## How It Works + +### Capture + +Breakable CUDA graph extends PyTorch's `torch.cuda.CUDAGraph` by splitting a single capture into multiple segments separated by graph breaks. + +During capture, the flow is: + +``` +Begin capture (segment 1) + ... graphable ops ... + @eager_on_graph function encountered: + 1. End current capture segment + 2. Run the function eagerly (allocates output tensors) + 3. Record the function for later replay + 4. Begin new capture segment + ... more graphable ops ... +End capture (segment N) +``` + +Each segment is independently instantiated as a CUDA graph executable. The non-graph functions and their argument references are stored for replay. + +### Replay + +During replay: + +``` +For each segment i: + 1. Launch CUDA graph segment i + 2. Run the recorded non-graph function i eagerly +Launch final CUDA graph segment +``` + +The non-graph functions are re-invoked with the same tensor references as capture time. Since these references point to the CUDA graph's static input/output buffers, they see updated values on each replay. + +### Output Writeback + +When a non-graph function produces output during replay, the result must be written back into the same tensor buffers that downstream graph segments reference. The mechanism handles: + +- **Plain tensors**: In-place `copy_()` into the original buffer. +- **Structured outputs** (dataclasses, objects with tensor attributes): Tensor fields are copied in-place; non-tensor fields are replaced. +- **Dicts of tensors**: Tensor values are copied in-place; non-tensor values are replaced. + +### Stream Fork/Join Tracking + +Some models fork work onto secondary CUDA streams (e.g., for overlapped computation). Breakable CUDA graph hooks `torch.cuda.Stream.wait_stream` to track which streams are forked from the capture stream. When a graph break occurs, all forked streams are automatically joined back before ending the capture segment, and re-forked after beginning the next segment. + +## Compatibility + +- **NVIDIA CUDA only.** Breakable CUDA graph is not supported on ROCm/HIP or other non-CUDA platforms. On unsupported platforms, `--debug-cuda-graph` is automatically disabled with a warning. +- **Requires `cuda-python`.** The `cuda.bindings` package must be installed (`pip install cuda-python`). +- **Not compatible with memory saver mode.** Cannot be used together with `SGLANG_MEMORY_SAVER_CUDA_GRAPH`. + +## Performance + +When no graph breaks are inserted, breakable CUDA graph has minimal overhead compared to standard CUDA graph — the capture/replay path is nearly identical. + +Each graph break adds: +- One `cudaGraphLaunch` call (to replay the segment before the break) +- One eager Python function call +- One `cudaStreamBeginCapture` / `cudaStreamEndCapture` pair during capture + +For typical use cases with a small number of graph breaks, the overhead is negligible compared to the saved kernel launch overhead from the captured segments. + +## Code Reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FileDescription
      python/sglang/srt/model_executor/breakable_cuda_graph/breakable_cuda_graph.pyCore implementation: eager_on_graph, BreakableCUDAGraph, BreakableCUDAGraphCapture
      python/sglang/srt/model_executor/breakable_cuda_graph/cuda_utils.pyCUDA runtime binding utilities
      python/sglang/srt/model_executor/cuda_graph_runner.pyIntegration with the main CUDA graph runner
      python/sglang/srt/server_args.py--debug-cuda-graph flag and environment variable handling
      python/sglang/srt/environ.pySGLANG_USE_BREAKABLE_CUDA_GRAPH environment variable definition
      diff --git a/docs_new/docs/advanced_features/checkpoint_engine.mdx b/docs_new/docs/advanced_features/checkpoint_engine.mdx new file mode 100644 index 000000000..59472e609 --- /dev/null +++ b/docs_new/docs/advanced_features/checkpoint_engine.mdx @@ -0,0 +1,257 @@ +--- +title: "Checkpoint Engine Integration" +metatags: + description: "SGLang checkpoint engine: distributed model weight loading, parallel multi-node setup, broadcast and P2P modes. Reduces loading time for large models." +--- +The SGLang checkpoint engine integration provides an efficient way to load model weights using a distributed checkpoint loading system. This feature significantly reduces model loading time, especially for large models and multi-node setups, by parallelizing the weight loading process across multiple processes and nodes. + +## Overview + +The checkpoint engine integration allows SGLang to: +- Load model weights in parallel using multiple processes +- Distribute weight loading across multiple nodes to increase effective disk bandwidth +- Overlap weight loading with other initialization tasks like CUDA graph capture +- Support both single-node and multi-node deployments + +## Installation + +First, install the checkpoint engine package: + +```bash Command +pip install 'checkpoint-engine[p2p]' +``` + +## Architecture + +The system consists of two main components: + +1. **SGLang Server**: Runs with `--wait-for-initial-weights` flag to wait for weights before becoming ready +2. **Checkpoint Engine Workers**: Separate processes (managed by torchrun) that load and distribute model weights + +The checkpoint engine uses a parameter server architecture with support for: +- **Broadcast mode**: Weights are broadcast from loading processes to inference processes +- **P2P mode**: Direct peer-to-peer weight transfer between processes +- **All mode**: Combination of both broadcast and P2P methods + +## Usage Examples + +### Single Node Setup + +**Terminal 1 - Launch SGLang Server:** +```bash Command +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-8B \ + --tp 8 \ + --load-format dummy \ + --wait-for-initial-weights +``` + +**Terminal 2 - Run Checkpoint Engine:** + +Using sglang entrypoint: +```bash Command +python -m sglang.srt.checkpoint_engine.update \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 8 +``` + +Using torchrun directly: +```bash Command +torchrun --nproc-per-node 8 \ + examples/checkpoint_engine/update.py \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 8 +``` + +### Multi-Node Setup (2 Nodes) + +**Node 0:** + +Launch SGLang server: +```bash Command +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-8B \ + --tp 8 \ + --load-format dummy \ + --wait-for-initial-weights \ + --host [IP] +``` + +Run checkpoint engine: + +Using sglang entrypoint (recommended): +```bash Command +python -m sglang.srt.checkpoint_engine.update \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 8 +``` + +Using torchrun directly: +```bash Command +torchrun --nproc-per-node 8 \ + --nnodes 2 \ + --node-rank 0 \ + --master-addr [IP] \ + --master-port 29500 \ + examples/checkpoint_engine/update.py \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 8 +``` + +**Node 1:** + +Launch SGLang server: +```bash Command +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-8B \ + --tp 8 \ + --load-format dummy \ + --wait-for-initial-weights \ + --host [IP] +``` + +Run checkpoint engine: + +Using sglang entrypoint (recommended): +```bash Command +python -m sglang.srt.checkpoint_engine.update \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 8 +``` + +Using torchrun directly: +```bash Command +torchrun --nproc-per-node 8 \ + --nnodes 2 \ + --node-rank 1 \ + --master-addr [IP] \ + --master-port 29500 \ + examples/checkpoint_engine/update.py \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 8 +``` + +### Multi-Node Setup with Tensor Parallelism (TP=16) + +**Node 0:** + +Launch SGLang server: +```bash Command +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-8B \ + --tp 8 \ + --load-format dummy \ + --wait-for-initial-weights \ + --host [IP] \ + --dist-init-addr [IP]:9120 \ + --nnodes 2 \ + --node-rank 0 +``` + +Run checkpoint engine: + +Using sglang entrypoint (recommended): +```bash Command +python -m sglang.srt.checkpoint_engine.update \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 16 +``` + +Using torchrun directly: +```bash Command +torchrun --nproc-per-node 8 \ + --nnodes 2 \ + --node-rank 0 \ + --master-addr [IP] \ + --master-port 29500 \ + examples/checkpoint_engine/update.py \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 16 +``` + +**Node 1:** + +Launch SGLang server: +```bash Command +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-8B \ + --tp 8 \ + --load-format dummy \ + --wait-for-initial-weights \ + --host [IP] \ + --dist-init-addr [IP]:9120 \ + --nnodes 2 \ + --node-rank 1 +``` + +Run checkpoint engine: + +Using sglang entrypoint (recommended): +```bash Command +python -m sglang.srt.checkpoint_engine.update \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 16 +``` + +Using torchrun directly: +```bash Command +torchrun --nproc-per-node 8 \ + --nnodes 2 \ + --node-rank 1 \ + --master-addr [IP] \ + --master-port 29500 \ + examples/checkpoint_engine/update.py \ + --update-method broadcast \ + --checkpoint-path /path/to/Qwen/Qwen3-8B/ \ + --inference-parallel-size 16 +``` + +## Configuration Options + +### SGLang Server Options + +- `--load-format dummy`: Use dummy format for initial loading (allows overlapping with other tasks) +- `--wait-for-initial-weights`: Wait for checkpoint engine to provide weights before becoming ready +- `--host`: Host address for multi-node setups +- `--dist-init-addr`: Distributed initialization address for tensor parallelism + +### Checkpoint Engine Options + +- `--update-method`: Weight update method (`broadcast`, `p2p`, or `all`) +- `--checkpoint-path`: Path to model checkpoint directory +- `--inference-parallel-size`: Number of inference parallel processes +- `--endpoint`: SGLang server endpoint (default: `http://localhost:19730`) +- `--checkpoint-name`: Name for the checkpoint (default: `my-checkpoint-iter-0`) +- `--save-metas-file`: File to save checkpoint metadata +- `--load-metas-file`: File to load checkpoint metadata from +- `--uds`: Unix domain socket path for communication +- `--weight-version`: Version identifier for weights + +## Performance Benefits + +The checkpoint engine provides significant time savings in two main aspects: + +1. **Multi-node Loading**: Each node only loads a portion of weights from disk, effectively increasing disk bandwidth. More participating nodes provide greater acceleration. Preliminary tests show 20-second acceleration when loading DeepSeek-R1 on H20-3e with two nodes. + +2. **Single Process Optimization**: Using dummy format allows overlapping disk-to-CPU transfer with CUDA graph capture and other initialization tasks, providing additional time savings. + +## Troubleshooting + +- Ensure checkpoint engine package is installed: `pip install 'checkpoint-engine[p2p]'` +- Verify network connectivity between nodes in multi-node setups +- Check that the checkpoint path contains valid model files +- Monitor logs for connection errors between SGLang server and checkpoint engine +- Use `--sleep-time` parameter to add delays if needed for debugging + +## References + +- [Checkpoint Engine Repository](https://github.com/MoonshotAI/checkpoint-engine) diff --git a/docs_new/docs/advanced_features/cuda_graph_for_multi_modal_encoder.mdx b/docs_new/docs/advanced_features/cuda_graph_for_multi_modal_encoder.mdx new file mode 100644 index 000000000..1ee463979 --- /dev/null +++ b/docs_new/docs/advanced_features/cuda_graph_for_multi_modal_encoder.mdx @@ -0,0 +1,76 @@ +--- +title: "Cuda Graph for Multi-Modal Encoder in SGLang" +metatags: + description: "CUDA Graph optimization for ViT in SGLang: reduce kernel launch overhead, dynamic input handling, support for Qwen2.5-VL and Qwen3-VL models." +--- +## Motivation + +In multimodal reasoning services, the visual encoder (ViT / Vision Transformer) typically has a few characteristic traits: + +Many layers, fragmented operators: Each layer includes LN, QKV projections, attention, MLP, residual connections, etc., resulting in extremely frequent kernel launches. + +Server-side “small batch / low latency” is common: The batch size is very small (sometimes it looks like 1 after “flattening” the batch), so kernel launch overhead accounts for a large portion of end-to-end latency. + +Input token count (number of patches) varies frequently: Different image/video resolutions and different batch composition lead to different sequence lengths +S — and this is precisely the biggest obstacle for CUDA Graph (unstable shapes). + +The value of CUDA Graph: It captures a long sequence of GPU kernels with fixed shapes and fixed memory addresses into a graph; later, for the same shapes, it can replay the graph directly, dramatically reducing launch overhead and making GPU scheduling more compact. + +This led us to seek a CUDA Graph enabled feature for ViT in order to improve ViT performance. + +## Design and Restrictions + +The new CUDA Graph enabled ViT logic is built on ViTCudaGraphRunner. This runner captures the "blocks + merger + deepstack merger (optional)" part of a vision transformer into a CUDA graph and replays it for identical shapes. See the following design consideration and restrictions for more details. + +### Dynamic inputs to fit static constraints of CUDA Graph + +Variable sequence length S is very common in ViT. While CUDA Graph requires fixed shapes. The solution is to build a graph cache by S(e.g., graph_key = S). The first time create a new S, and then capture a graph; afterwards, replay it. + +If there are many distinct S values, we need to increase VRAM usage which is graph-private memory pools for many graphs. + +### Stable addresses + +Everything "parameter-like" becomes a static buffer: + +- block_input / block_ws / block_output +- cu_full_len / cu_window_len and their kk variants +- sin_cos_ws + +In this way to solve the underlying requirement: during replay, not allowed to swap tensors, can only modify tensor contents. + +### Attention backend arguments +Attention backend arguments are fixed inside the graph: + +TritonAttn expects [cu_seqlens, cu_seqlens_kk, max_len] +FA3 expects [cu_seqlens, max_len] + +max_len is frozen as an int constant. +cu_seqlens is cached into a dict during create_graph(), and its contents are not updated during subsequent replays. + +For the same graph_key = S, you not only require the input shape to match, but also require the segmentation pattern in cu_seqlens (and window seqlens) to be identical. Otherwise, attention will segment the sequence incorrectly. + +### Rotary buffer management +The feature reallocates a larger sin_cos_ws when seq_len increases. +The max_content_len is used to make sure the maximum size of the allocated rotary buffer. + + +## Command Example +You can enable CUDA Graph for ViT by setting env variable `SGLANG_VIT_ENABLE_CUDA_GRAPH=1`, for example: +```shell Command +SGLANG_VIT_ENABLE_CUDA_GRAPH=1 \ +python3 -m sglang.launch_server \ + --model Qwen/Qwen3-VL-8B-Instruct +``` +Or you can run CUDA Graph for ViT together with Piecewise CUDA Graph feature by both setting env variable `SGLANG_VIT_ENABLE_CUDA_GRAPH=1` and setting `--enable-piecewise-cuda-graph`, for example: +```shell Command +SGLANG_VIT_ENABLE_CUDA_GRAPH=1 \ +python3 -m sglang.launch_server \ + --model Qwen/Qwen3-VL-8B-Instruct \ + --piecewise-cuda-graph-max-tokens 4096 \ + --enable-piecewise-cuda-graph \ + --piecewise-cuda-graph-compiler eager +``` + +## Known supported models +- Qwen2.5-VL (https://github.com/sgl-project/sglang/pull/14422) +- Qwen3-VL (https://github.com/sgl-project/sglang/pull/15320) diff --git a/docs_new/docs/advanced_features/deterministic_inference.mdx b/docs_new/docs/advanced_features/deterministic_inference.mdx new file mode 100644 index 000000000..9c6732810 --- /dev/null +++ b/docs_new/docs/advanced_features/deterministic_inference.mdx @@ -0,0 +1,215 @@ +--- +title: "Deterministic Inference" +metatags: + description: "SGLang deterministic inference: consistent outputs for RL training, testing, and production. Supports FlashInfer, FA3, Triton backends with CUDA Graph." +--- +## Why Deterministic Inference Matters + +Deterministic inference ensures consistent LLM outputs across runs, which is critical for: +- **Reinforcement Learning**: Ensures consistent logprobs across runs, reducing stochastic noise and making RL training more stable, reproducible, and debuggable. +- **Testing & Debugging**: Enables reproducible validation +- **Production**: Improves reliability and user experience + +Even with `temperature=0`, standard LLM inference can produce different outputs due to dynamic batching and varying reduction orders in GPU kernels. + +## The Root Cause of Non-Determinism + +The main source is **varying batch sizes**. Different batch sizes cause GPU kernels to split reduction operations differently, leading to different addition orders. Due to floating-point non-associativity (`(a + b) + c ≠ a + (b + c)`), this produces different results even for identical inputs. + + +## SGLang's Solution + +Building on [Thinking Machines Lab's batch-invariant operators](https://github.com/thinking-machines-lab/batch_invariant_ops), SGLang achieves fully deterministic inference while maintaining compatibility with chunked prefill, CUDA graphs, radix cache, and non-greedy sampling. The development roadmap for deterministic inference features can be found in this [issue](https://github.com/sgl-project/sglang/issues/10278). + +### Supported Backends + +Deterministic inference is only supported with the following three attention backends: **FlashInfer**, **FlashAttention 3 (FA3)**, and **Triton**. + +The following table shows feature compatibility for deterministic inference across different attention backends: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Attention BackendCUDA GraphChunked PrefillRadix CacheNon-greedy Sampling (Temp > 0)
      **FlashInfer**✅ Yes✅ Yes❌ No✅ Yes
      **FlashAttention 3 (FA3)**✅ Yes✅ Yes✅ Yes✅ Yes
      **Triton**✅ Yes✅ Yes✅ Yes✅ Yes
      + +## Usage + +### Basic Usage + +Enable deterministic inference by adding the `--enable-deterministic-inference` flag: + +```bash Command +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-8B \ + --attention-backend fa3 \ + --enable-deterministic-inference +``` + +### Server Arguments + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentType/DefaultDescription
      `--enable-deterministic-inference`flag; default: disabledEnable deterministic inference with batch-invariant operations
      `--attention-backend`string; default: fa3Choose attention backend (flashinfer, fa3, or triton)
      + +### Example Configurations + +#### Qwen3-8B +```bash Command +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-8B \ + --attention-backend flashinfer \ + --enable-deterministic-inference +``` + +#### Llama Models +```bash Command +python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --attention-backend fa3 \ + --enable-deterministic-inference +``` + +#### Qwen3-30B-A3B (MoE Model) +```bash Command +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-30B-A3B \ + --attention-backend fa3 \ + --enable-deterministic-inference +``` + +### Deterministic Inference with Non-Greedy Sampling (Temperature > 0) + +SGLang supports deterministic inference even with non-greedy sampling by using sampling seeds. This is particularly useful for reinforcement learning scenarios like GRPO (Group Relative Policy Optimization) where you need multiple diverse but reproducible responses. + +#### Default Behavior + +By default, SGLang uses a sampling seed of `42` for reproducible sampling: + +```python Example +import requests + +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "Tell me a joke", + "sampling_params": { + "temperature": 0.8, # Non-greedy sampling + "max_new_tokens": 128, + }, + }, +) +print(response.json()) +# This will always produce the same response across runs +``` + +#### Generating Multiple Reproducible Responses + +To sample different responses from the same prompt while maintaining reproducibility (e.g., for GRPO training), provide different sampling seeds in your requests: + +```python Example +import requests + +# Prepare a list of sampling seeds for different responses +sampling_seeds = [42, 43, 44, 45, 46] + +responses = [] +for seed in sampling_seeds: + response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "Tell me a joke", + "sampling_params": { + "temperature": 0.8, + "max_new_tokens": 128, + "sampling_seed": seed, # Specify sampling seed + }, + }, + ) + responses.append(response.json()) + +# Each seed will produce a different but reproducible response +# Using the same seed will always produce the same response +``` + +This approach ensures that: +- Different seeds produce diverse responses +- The same seed always produces the same response across different runs +- Results are reproducible for debugging and evaluation + + +## Verification + +Run deterministic tests to verify consistent outputs: + +```bash Command +# Single test: same prompt, varying batch sizes +python3 -m sglang.test.test_deterministic --test-mode single --n-trials 50 + +# Prefix test: prompts with different prefix lengths +python3 -m sglang.test.test_deterministic --test-mode prefix --n-trials 50 + +# Radix Cache Consistency mode: test radix cache determinism (cached vs uncached prefill) +python3 -m sglang.test.test_deterministic --test-mode radix_cache +``` + +Expected result: All tests should show `Unique samples: 1` (perfectly deterministic). diff --git a/docs_new/docs/advanced_features/dp_dpa_smg_guide.mdx b/docs_new/docs/advanced_features/dp_dpa_smg_guide.mdx new file mode 100644 index 000000000..cbb2545b7 --- /dev/null +++ b/docs_new/docs/advanced_features/dp_dpa_smg_guide.mdx @@ -0,0 +1,509 @@ +--- +title: "DP, DPA and SGLang DP Router" +metatags: + description: "Learn the differences between Data Parallelism, Data Parallelism Attention, and SGLang Model Gateway routing for production DP deployments." +--- + +This guide explains the difference between Data Parallelism (DP) and Data Parallelism Attention (DPA), how to enable each mode correctly, and how to use the SGLang Model Gateway (SMG) for production-grade DP deployments. + +## Data Parallelism (DP) + +**Data Parallelism (DP)** is the most common parallelism strategy that replicates the entire model across multiple GPU sets and processes different batches of requests in parallel. Each GPU set handles independent requests. With dedicated routing strategies, as we will introduce later, with those proper routing algorithms in SGLang Model Gateway, the throughput of your serving system could be multiplied nearly linearly. + +### Key characteristics + +- Each replica has a full copy of the model +- Requests are distributed/scattered across replicas +- No inter-replica communication during one request's inference (for simple DP) + +## Data Parallelism Attention (DPA) + +**Data Parallelism Attention (DPA)**, also known as DP Attention, is an advanced parallelism strategy. While DPA provides the most significant benefits for **Multi-Head Latent Attention (MLA)** models (such as DeepSeek, MiniMax, Kimi-K2), it also supports **standard attention models** like Qwen. + +### The Problem with Tensor Parallelism for MLA Models + +The most common parallelism strategy for inference is **Tensor Parallelism (TP)**. However, TP might not be the most efficient strategy for certain models. For example, DeepSeek models use MLA and only have **one KV head**. If we use tensor parallelism on 8 GPUs, it will lead to: + +- **Duplicated KV cache** across all GPUs +- **Unwanted memory usage** that limits batch size +- **Reduced throughput** due to memory constraints + +### How DPA Works + +DPA addresses these limitations by applying **data parallelism specifically to the attention component**. + + + + + + + + + + + + +
      + DPA + EP Architecture + +

      Each DP replica:

      +
        +
      • Processes different batches independently (can be in different forward modes: prefill, decode, or idle)
      • +
      • Maintains its own KV cache (no duplication)
      • +
      • Enables significantly larger batch sizes due to memory savings
      • +
      +

      Communication patterns in DPA + EP:

      +
        +
      • All2All (Dispatch): Routes tokens to expert sub-groups based on gating decisions
      • +
      • All2All (Combine): Gathers computed results from experts back to original token positions
      • +
      +
      + +### Key benefits of DPA + +1. **Significantly reduced KV cache memory**: Each DP replica only stores KV cache for its own batches +2. **Larger batch sizes**: Memory savings enable larger batch sizes +3. **Improved decoding throughput**: Significant throughput gains for MLA-based models +4. **Independent forward modes**: Each DP replica can be in different forward modes (prefill, decode, or idle) and handles its assigned batches independently during attention computation + +### DPA with Expert Parallelism for MoE + +For MoE models like DeepSeek, DPA is **often** paired with Expert Parallelism (EP) for best throughput at scale. However, **DPA does not require EP**: you can enable DPA without EP if your deployment does not need expert sharding. + +- Distribute 256+ expert weights across GPUs (cannot fit on a single GPU) +- Enable efficient all-to-all token routing via DeepEP +- Scale to large clusters (up to 5x throughput improvement over vanilla TP) + +### Recommended setup for DeepSeek + +```bash +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3 \ + --tp 8 \ + --dp-size 8 \ + --ep 8 \ + --enable-dp-attention \ + --moe-a2a-backend deepep \ + --moe-runner-backend deep_gemm +``` + +> **Note**: `--dp-size` must be explicitly set when using `--enable-dp-attention`. If `dp_size` is 1 (default), DPA will be disabled. + +For detailed EP configuration (DeepEP, Two-Batch Overlap, EPLB), see [Expert Parallelism](/docs/advanced_features/expert_parallelism). + +### Target Models + +DPA supports the following model architectures: + +- **MLA (Multi-Head Latent Attention) models** - where DPA provides the most significant benefits: + - DeepSeek family (DeepSeek-V2, DeepSeek-V3, DeepSeek-R1) + - MiniMax models + - Kimi-K2 + - Other models using MLA architecture + +- **Standard attention models** - also supported: + - Qwen models (see [PR #6121](https://github.com/sgl-project/sglang/pull/6121)) + +For models like Llama, with standard GQA, standard DP, or TP is typically recommended. + +To enable DPA, add `--enable-dp-attention` to your server launch command. + +### Activation Logic + +DPA is enabled explicitly via server arguments (CLI or config). You must set both `--dp-size` and `--enable-dp-attention`: + +```bash +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3 \ + --tp 8 \ + --dp-size 8 \ + --enable-dp-attention +``` + +**Important**: `--dp-size` must be greater than 1 for DPA to work. When `dp_size == 1` (default), `--enable-dp-attention` is automatically disabled. The constraint `tp_size % dp_size == 0` must also be satisfied. + +### Standard DP for MLA models + +Note that MLA models, of course, also support DP. Suppose you want to enable standard DP for MLA models. First, launch each MLA model's replica independently. You may launch these replicas one by one with DPA enabled. After launching each MLA model's replica, launch an SMG and connect all the replicas to the SMG. A detailed explanation of SMG is as follows. + +## Modern Data Parallelism SGLang Model Gateway (SMG) + +### Native DP Mode + +Native DP (built-in Data Parallelism) in SGLang creates multiple worker processes within a single SGLang instance, under the control of `DataParallelController` with the launching parameter of `dp-size`. + +```bash +# Native DP mode +python -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --dp-size 4 +``` + +**Limitations:** + +- Built-in in-process load balancing only (e.g., `round_robin`, `total_requests`, `total_tokens`) +- No cache-aware routing +- Limited observability and metrics +- No fault tolerance or circuit breakers +- Not suitable for production workloads + +⚠️ Native DP is **highly not recommended for use right now**. It is only used in some ancient/outdated RL frameworks. You can use SGLang Model Gateway (SMG) to power up your data parallelism in any use case. + +### SMG-Based DP (Recommended) + +Starting from September 2024, SGLang Model Gateway, i.e., SMG, formerly named as SGLang DP Router, was built especially as a production-ready DP routing system with Rust. It starts from DP routing, but later we further expanded its scope to coordinate RL, PD Disaggregation, and other scenarios. This doc only discusses SMG's usage in DP routing. For other usage, please refer to [SGLang Model Gateway Documentation](/docs/advanced_features/sgl_model_gateway). + +> To achieve the best production-level routing performance and reduce the overhead to an extreme extent, we use Rust to build SMG, but not Python, since Python is never FAST enough. + +**We strongly recommend using the SGLang Model Gateway (SMG) for production-grade Data Parallelism.** SMG provides significant advantages over native DP mode. + +```bash +# SMG-based DP mode (Recommended) +python -m sglang_router.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --dp-size 4 +``` + +⚠️ Note that **SMG and Naive DP share the same launching parameter, `--dp-size`**. But the entrypoint of Naive DP is `python -m sglang.launch_server`, and SMG's entrypoint is `python -m sglang_router.launch_server`. + +**Advantages of SMG-Based DP:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FeatureNative DPSMG-Based DP
      Load BalancingBuilt-in in-process methodsAdvanced policies (cache-aware, power-of-two, etc.)
      Cache Awareness❌ No✅ Yes - significantly higher cache hit rate
      ThroughputBaselineSignificant improvement
      Multi-Node SupportLimited✅ Full support
      Worker Health MonitoringBasic✅ Circuit breakers, health checks
      ReliabilityBasic✅ Retries, rate limiting, queuing
      ObservabilityBasic metrics✅ 40+ Prometheus metrics, OpenTelemetry
      Hot Worker Add/Remove❌ No✅ Yes
      + +### SMG's Performance + +The cache-aware routing policy in SMG significantly improves performance for workloads with shared prefixes: + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MetricWithout Cache-AwareWith Cache-Aware SMG
      Throughput (token/s)82,665158,596 (+92%)
      Cache Hit Rate20%75% (+275%)
      + +*Benchmark from [SGLang v0.4 blog](https://lmsys.org/blog/2024-12-04-sglang-v0-4/), workload with multiple long prefix groups, 8x A100 80GB GPUs, dp-size=8* + +### When to Use Each + +**Use Native DP when:** + +- ~Never use Native/Naive DP~ +- Learning material of DP routing + +**Use SMG-Based DP when:** + +- In any case, when you think DP is needed +- Production deployments +- Multi-node distributed setups +- Workloads with shared prefixes (high cache reuse potential) +- You need high availability and reliability features +- You require detailed observability and metrics +- You want to have highly efficient RL rollout systems + +Note that for RL rollout systems, **there are four crucial reasons that SMG-Based DP is far better than naive DP routing**. Details can be found at [Load Balancing Router in RL](/docs/advanced_features/sglang_for_rl#load-balancing-router). + +### Quick Start For SMG + +**Installation** + +```bash +pip install sglang-router +# or +pip install "sglang[all]" +``` + +**Option A: Co-launch Workers and SMG (Simplest)** + +This is the easiest way to get started - SMG and workers are launched together: + +```bash +python -m sglang_router.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --dp-size 4 \ + --host 0.0.0.0 \ + --port 30000 +``` + +**Option B: Separate Launch (Multi-Node)** + +For distributed deployments across multiple machines: + +1. Launch workers on each node + +```bash +# Node 1 +python -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --port 8000 + +# Node 2 +python -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --port 8000 +``` + +2. Launch SMG pointing to workers + +```bash +python -m sglang_router.launch_router \ + --worker-urls http://node1:8000 http://node2:8000 \ + --policy cache_aware \ + --host 0.0.0.0 \ + --port 30000 +``` + +**Option C: Dynamic Worker Registration** + +For elastic deployments where workers can be added/removed dynamically: + +```bash +# Launch SMG first +python -m sglang_router.launch_router \ + --policy cache_aware \ + --host 0.0.0.0 \ + --port 30000 + +# Register workers dynamically +curl -X POST http://localhost:30000/workers \ + -H "Content-Type: application/json" \ + -d '{"url": "http://worker1:8000"}' + +curl -X POST http://localhost:30000/workers \ + -H "Content-Type: application/json" \ + -d '{"url": "http://worker2:8000"}' +``` + +### Load Balancing Policies + +SMG supports multiple load balancing policies: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      PolicyDescriptionBest For
      cache_awareCombines cache locality with load balancingRecommended for most workloads
      round_robinCycles through workers in orderSimple, predictable distribution
      randomRandom worker selectionBaseline, testing
      power_of_twoSamples two workers, picks lighter oneLow latency requirements
      + +**Cache-Aware Policy (Default, Recommended)** + +The cache-aware policy provides the best performance for most workloads: + +```bash +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 http://worker2:8000 \ + --policy cache_aware \ + --cache-threshold 0.5 \ + --balance-abs-threshold 32 \ + --balance-rel-threshold 1.5 \ + --eviction-interval-secs 120 \ + --max-tree-size 67108864 +``` + +**How it works:** + +1. Maintains an approximate radix tree for each worker based on request history +2. Routes requests to workers with the highest prefix match (cache hit) +3. Falls back to shortest-queue routing when load is imbalanced +4. Automatically evicts old entries to prevent memory overflow + +### Best Practices + +1. **Start with `cache_aware` policy** - It provides the best balance between cache locality and load distribution for most workloads +2. **Use SMG for production** - Prefer `sglang_router.launch_server` over `sglang.launch_server` for better reliability and observability +3. **Enable health checks** - Configure `--router-health-check-interval-secs` to detect and remove unhealthy workers automatically + +**Recommended command with best practices applied:** + +```bash +python -m sglang_router.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --dp-size 4 \ + --router-policy cache_aware \ + --router-health-check-interval-secs 30 \ + --router-prometheus-port 10001 \ + --host 0.0.0.0 \ + --port 30000 +``` + +For advanced configuration (circuit breakers, retries, Prometheus metrics, K8s integration), see [SGLang Model Gateway Documentation](/docs/advanced_features/sgl_model_gateway). + +### Verifying Traffic Distribution + +After launching SMG, verify that traffic is being distributed correctly: + +**1. Check worker status:** + +```bash +curl http://localhost:30000/workers +``` + +**2. Check load distribution:** + +```bash +curl http://localhost:30000/get_loads +``` + +**3. Monitor metrics (if Prometheus enabled):** + +```bash +# Key metrics to check +smg_router_requests_total{model="..."} +smg_worker_requests_active{worker="..."} +sglang_cache_hit_rate{source="..."} +``` + +For detailed metrics and monitoring setup, see [SGLang Model Gateway Documentation](/docs/advanced_features/sgl_model_gateway). + +## Reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      StrategyUse CaseKey Benefit
      Native DP (--dp-size)NeverEasy to understand, not rust based
      SMG-Based DPProduction (recommended)Cache-aware routing, high availability
      DPA (--dp-size N --enable-dp-attention)DeepSeek/MLA modelsEliminates KV cache duplication, improved throughput
      DPA + EPDeepSeek MoE modelsSignificant throughput improvement vs vanilla TP
      + +**Recommended production setup for DeepSeek:** +1. Enable **DPA** for attention layers (`--dp-size 8 --enable-dp-attention`) +2. Enable **EP** for MoE layers (`--ep 8 --moe-a2a-backend deepep`) +3. Use **SMG** with **cache_aware** policy + +**Related documentation:** +- [Expert Parallelism](./expert_parallelism) - DeepEP, Two-Batch Overlap, EPLB +- [SGLang Model Gateway Documentation](./sgl_model_gateway) - SMG configuration & troubleshooting +- [Large-Scale EP Blog](https://lmsys.org/blog/2025-05-05-large-scale-ep/) - 96 GPU deployment guide diff --git a/docs_new/docs/advanced_features/dp_for_multi_modal_encoder.mdx b/docs_new/docs/advanced_features/dp_for_multi_modal_encoder.mdx new file mode 100644 index 000000000..afa991532 --- /dev/null +++ b/docs_new/docs/advanced_features/dp_for_multi_modal_encoder.mdx @@ -0,0 +1,33 @@ +--- +title: "DP for Multi-Modal Encoder in SGLang" +metatags: + description: "Data parallelism for VLM vision encoder in SGLang: reduce TTFT, boost throughput. Supports Qwen2.5-VL, Qwen3-VL, InternVL, GLM-4.5V/4.6V." +--- +A typical VLM architecture involves two main components: an multi-modal encoder and a text decoder. + +Most VLMs utilize a Vision Transformer (ViT) as their multi-modal encoder, it is responsible for processing visual data, extracting features (objects, colors, textures, etc.), and transforming them into a format that can be understood by the model. + +The text deocoder is based on LLM. It processes textual data and generates output based on the encoded visual features. + +However, since the size of ViT is very small compared to language decoders, +there is relatively little gain from TP. On the other hand, TP incurs significant communication +overhead because of all-reduce being performed after every layer. + +Placing the ViT in data parallel while keeping the LLM in tensor parallel consistently lowers TTFT and boosts end-to-end throughput. In this hybrid layout, the vision front-end becomes parallel and lightweight, while scarce interconnect bandwidth and collective ops are reserved for the LLM. + +Data parallelism replicates the entire model across multiple GPU sets and processes different batches of requests in parallel. + +## Command Example +You can enable batch-level DP by setting `mm-enable-dp-encoder`, for example: +```shell Command +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen2.5-VL-7B-Instruct \ + --tp 2 \ + --mm-enable-dp-encoder +``` + +## Known supported models +- Qwen2.5-VL (<https://github.com/sgl-project/sglang/pull/13126>) +- Qwen3-VL (<https://github.com/sgl-project/sglang/pull/13724>) +- InternVL (<https://github.com/sgl-project/sglang/pull/13925>) +- GLM-4.5V & GLM-4.6V (<https://github.com/sgl-project/sglang/pull/14097>) diff --git a/docs_new/docs/advanced_features/epd_disaggregation.mdx b/docs_new/docs/advanced_features/epd_disaggregation.mdx new file mode 100644 index 000000000..ca30ef2d4 --- /dev/null +++ b/docs_new/docs/advanced_features/epd_disaggregation.mdx @@ -0,0 +1,83 @@ +--- +title: "EPD Disaggregation" +metatags: + description: "SGLang EPD disaggregation: separate encoder, prefill, decode stages for VLM inference. Independent scaling, load balancing, three-tier architecture." +--- +## Why and What is EPD Disaggregation? + +In modern Vision-Language Model (VLM) inference, request execution naturally decomposes into three distinct stages: Encoder, Prefill, and Decode. +The Encoder stage performs vision preprocessing and ViT-based image encoding, which is highly compute-intensive but only required during request initialization. The Prefill stage processes the full multimodal input sequence to initialize the language model’s Key-Value (KV) cache, while the Decode stage is dominated by memory bandwidth and KV cache access for autoregressive token generation. + +Existing deployments typically colocate these stages within a unified execution engine, or at best apply Prefill–Decode (PD) disaggregation. However, such designs still tightly couple vision encoding with language prefill, leading to inefficient resource utilization, limited scalability for image-heavy workloads, and suboptimal scheduling under load. + +To address these challenges, we introduce Encoder–Prefill–Decode (EPD) Disaggregation in SGLang. EPD further separates vision encoding from language processing, enabling independent horizontal scaling of encoder servers, improved load balancing for multimodal requests, and seamless integration with existing PD disaggregation to form a fully decoupled three-tier inference architecture. + +### Usage + +You can launch a language-only model using `--language-only`, or an encoder-only model using `--encoder-only`. +When launching a language-only model, you must additionally specify the encoder service endpoints via `--encoder-urls`. + +We support multiple encoder transfer backends, including zmq_to_scheduler, zmq_to_tokenizer, and mooncake (the default is zmq_to_scheduler). The backend can be selected using `--encoder-transfer-backend`. + +#### Qwen VL + +- EP Disaggregation + +```bash Command +# encoder 0 +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-8B-Instruct \ + --encoder-only \ + --encoder-transfer-backend zmq_to_scheduler \ + --port 30000 +# encoder 1 +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-8B-Instruct \ + --encoder-only \ + --encoder-transfer-backend zmq_to_scheduler \ + --port 30001 +# language-only server +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-8B-Instruct \ + --language-only \ + --encoder-urls http://127.0.0.1:30000 http://127.0.0.1:30001 \ + --encoder-transfer-backend zmq_to_scheduler \ + --port 30002 +``` + +- EPD Disaggregation + +```bash Command +# encoder 0 +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-8B-Instruct \ + --encoder-only \ + --encoder-transfer-backend zmq_to_scheduler \ + --port 30000 +# encoder 1 +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-8B-Instruct \ + --encoder-only \ + --encoder-transfer-backend zmq_to_scheduler \ + --port 30001 +# prefill 0 +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-8B-Instruct \ + --disaggregation-mode prefill \ + --language-only \ + --encoder-urls http://127.0.0.1:30000 http://127.0.0.1:30001 \ + --encoder-transfer-backend zmq_to_scheduler \ + --port 30002 +# decode 0 +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-8B-Instruct \ + --disaggregation-mode decode \ + --port 30003 +# router +python -m sglang_router.launch_router \ + --pd-disaggregation \ + --prefill http://$PREFILL_HOST:30002 \ + --decode http://$DECODE_HOST:30003 \ + --port 8000 + +``` diff --git a/docs_new/docs/advanced_features/expert_parallelism.mdx b/docs_new/docs/advanced_features/expert_parallelism.mdx new file mode 100644 index 000000000..aa53d57d2 --- /dev/null +++ b/docs_new/docs/advanced_features/expert_parallelism.mdx @@ -0,0 +1,288 @@ +--- +title: "Expert Parallelism" +metatags: + description: "SGLang Expert Parallelism: distribute MoE experts across GPUs, DeepEP all-to-all, grouped GEMMs, TBO/SBO overlap, EPLB load balancing." +--- +Expert Parallelism (EP) in SGLang distributes expert weights across multiple devices in Mixture-of-Experts (MoE) models, addressing memory bottlenecks and enabling efficient scaling for high-performance inference. It is particularly vital for serving large-scale MoE models where tokens are dynamically routed to specialized experts across GPUs. By leveraging optimized all-to-all communication and grouped matrix multiplications (GEMMs), EP reduces latency, boosts throughput, and minimizes idle GPU time. SGLang's EP offers strong extensibility through its modular framework, allowing seamless integration of custom kernels, backends, and optimizations without refactoring core logic, supporting diverse hardware and quantization schemes. + +## Supported Backends and Selection Guidance + +SGLang's EP integrates diverse, highly efficient backends for different use cases, allowing fine-grained control over performance trade-offs. Users specify backends via command-line flags: +- `--moe-a2a-backend`: Selects the backend for all-to-all communication. +- `--moe-runner-backend`: Selects the backend for MoE computation. + +### Backends for All-to-All Communication + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      BackendDescriptionUse Cases
      **`none` (default)**Disables all-to-all for EP. Uses All-Reduce or All-Gather for token dispatch.Hybrid EP and TP setups.
      `deepep`DeepEP, a communication library for efficient token shuffling in MoE models.Large-scale EP deployments.
      `mooncake`An extension of DeepEP for elastic inference, leveraging RDMA for high-performance data transfers.Elastic EP serving.
      `flashinfer`Flashinfer implementation of all-to-all.Large-scale EP deployments.
      `ascend_fuseep`Ascend NPU native fused all-to-all communication.Ascend NPU deployments.
      + +DeepEP and Mooncake backends support two modes for token dispatch: `normal` mode (optimized for prefill workloads with high throughput) and `low_latency` mode (optimized for decode workloads with low latency and CUDA Graph compatibility). Users are recommended to set `--deepep-mode auto` to enable automatic dispatch mode switching during runtime. Setting `--deepep-mode normal` or `--deepep-mode low_latency` is useful for debugging or development purposes. + +Currently, DeepEP and Mooncake only support cases where `ep_size = tp_size`. For hybrid EP and TP (i.e., `ep_size < tp_size`), only the `none` backend (All-Reduce or All-Gather-based dispatching) is supported. + +### Backends for MoE Computation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      BackendDescriptionUse Cases
      **`auto` (default)**Automatically selects the optimal backend based on model architecture, hardware (e.g., NVIDIA architecture like Ampere, Hopper, Blackwell), quantization scheme (e.g., FP8, FP4), and runtime conditions.General-purpose deployments; ensures compatibility and performance without user intervention.
      `triton`Triton-based implementation for grouped GEMMs. To achieve higher performance, it's highly recommended to create [tuned configurations](https://github.com/sgl-project/sglang/blob/main/benchmark/kernels/fused_moe_triton/README).Custom kernel development or scenarios requiring high extensibility with Torch compilation support.
      `deep_gemm`DeepGEMM backend optimized for MoE matrix multiplications, supporting contiguous layouts for prefill and masked layouts for decode; often JIT-compiled for performance.Large-scale EP deployments with FP8 block-wise quantization.
      `cutlass`CUTLASS-based backend for efficient GEMMs.NVIDIA architectures with CUTLASS support.
      `flashinfer_trtllm`FlashInfer integrated with TensorRT-LLM for accelerated MoE computations, supporting FP4 communication operators and high-performance GEMMs.Blackwell with TRT-LLM.
      `flashinfer_cutlass`FlashInfer combined with CUTLASS for high-performance grouped GEMMs in MoE layers, handling FP4/FP8 quantization efficiently.Blackwell with FP4/FP8 models.
      `flashinfer_mxfp4`FlashInfer variant optimized for MXFP4 (mixed FP4) quantization in MoE runners, focusing on memory-efficient low-precision inference.Low-precision models with MXFP4.
      `flashinfer_cutedsl`FlashInfer with a custom DSL for flexible and efficient MoE kernel generation, integrated with ModelOpt FP4 quantization.Low-precision models with NVFP4.
      + +### Examples + +Launch with DeepEP and DeepGEMM for DeepSeek-V3: + +```bash Command +python -m sglang.launch_server --model-path deepseek-ai/DeepSeek-V3 --moe-a2a-backend deepep --moe-runner-backend deep_gemm --tp 8 --ep 8 +``` + +## Extensible EP Framework + +SGLang's EP framework provides modular abstractions for easy integration of custom kernels, backends, and optimizations. It decouples the MoE forward pass into stages (dispatch → pre-permute → core runner → post-permute → combine), enabling seamless extensions without refactoring core logic. + +### Framework Overview + +The framework centers on `FusedMoE` as the unified entry point for a single, extensible structure. Key components include: +- **Dispatcher**: Manages dispatch/combine for backends like DeepEP (implements `BaseDispatcher` subclasses). +- **MoeRunner**: Orchestrates grouped-GEMM execution via `MoeRunnerCore` implementations (e.g., `TritonRunnerCore`). +- **PermuteMethodPool**: Auto-registers layout conversions (e.g., pre/post-permute via `register_pre_permute` and `register_post_permute` for dynamic modes, or `register_fused_func` for static, torch.compile-compatible fused operations). +- **TopK Router**: Backend-agnostic expert selection. + +This design supports multiple backends via `--moe-a2a-backend` and `--moe-runner-backend`, with quantization integrated through a standardized `apply()` method. The computation flow ensures modularity: + +```text Output +[input_hidden_states] + | + v + TopK.forward -> select_experts / triton_kernels.routing / bypass + | + v + [TopKOutput] + | + v + FusedMoE.forward -> Dispatcher.dispatch -> DeepEP / bypass + | | + | v + | [DispatchOutput] + | | + | v + | quant_method.apply -> MoeRunner.forward + | | | + | | v + | | pre-permute + grouped_gemm + post-permute + | | | + | |-------------- + | v + | [CombineInput] + | | + | v + | Dispatcher.combine -> DeepEP / bypass + | | + |--------------------- + v +[final_hidden_states] +``` + +For details, see the [MoE Refactor Roadmap](https://github.com/sgl-project/sglang/issues/8715). + +### Implementing New Backends + +To add a new backend: +1. For a new all-to-all dispatcher, implement a `BaseDispatcher` subclass with `dispatch` and `combine` methods. +2. For a new MoE runner backend, define a `MoeRunnerCore` subclass for core operations (e.g., grouped GEMMs). +3. Define new input/output formats for the dispatcher or model runner (e.g., `RunnerInput`, `RunnerOutput`). +4. Register permute/unpermute methods to ensure compatibility: + - **Fused Mode** (static, torch.compile-compatible): Use `register_fused_func` for end-to-end operations. + - **Permute Mode** (dynamic): Register `register_pre_permute` and `register_post_permute` for flexible layouts. + +See the [MoE Refactor Implementation PR](https://github.com/sgl-project/sglang/pull/9269) for full changes, including type hints and config expansions. + +### Examples + +For an example implementation, see [moe_runner/triton.py](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/layers/moe/moe_runner/triton.py), which demonstrates Triton-based grouped GEMMs with registered fused and permutation functions. + +## Computation and Communication Overlap + +SGLang's EP employs advanced overlap techniques to hide communication latency behind computation, maximizing GPU utilization in MoE layers. + +### Two-Batch Overlap (TBO) + +TBO splits requests into micro-batches, interleaving attention computation with dispatch/combine operations. Yield points in the execution graph allow pausing for overlaps, increasing overall throughput without peak memory spikes: + +```python Example +operations = [ + self._forward_attn, + YieldOperation(), # Overlap with dispatch of prior micro-batch + self._forward_dispatch, + self._forward_mlp, + YieldOperation(), # Overlap with combine + self._forward_combine, +] +``` + +Users need to specify `--enable-two-batch-overlap` to unlock up to 2x throughput. For details, see the [Large-Scale EP Blog](https://lmsys.org/blog/2025-05-05-large-scale-ep/#two-batch-overlap). + +### Single-Batch Overlap (SBO) + +SGLang introduces a dispatcher-hook system for Single-Batch Overlap (SBO), enabling the overlap of operations within a single batch—such as shared experts computation with communication—while decentralizing logic to enhance modularity. These hooks execute before and after the `dispatch` and `combine` operations without modifying core MoE modules. This design simplifies interfaces, reduces coupling, and improves extensibility. For implementation details and an example of overlapping shared experts with DeepEP's combine operation, refer to [PR #13327](https://github.com/sgl-project/sglang/pull/13327). Users can set `--enable-single-batch-overlap` to enable this feature. + + +## Workload Balancer + +SGLang integrates the [Expert Parallelism Load Balancer (EPLB)](https://github.com/deepseek-ai/EPLB) from DeepSeek to address routing imbalances in MoE models. By analyzing expert activation statistics, EPLB computes an optimal expert arrangement, strategically placing or replicating experts to minimize GPU utilization variance, reduce idle cycles, and enhance scalability. + +To enable EPLB, use the flags `--enable-eplb`. For optimal performance, increase batch sizes to stabilize activation statistics and configure periodic rebalancing (e.g., every 1000 requests) to adapt to evolving workloads. Simulations demonstrate significant improvements in load balancedness (ratio of mean to max computation time), correlating strongly with throughput gains. + +For more details, refer to the [EPLB Section in the Large-Scale EP Blog](https://lmsys.org/blog/2025-05-05-large-scale-ep/#expert-parallelism-load-balancer) and the [EPLB Repository](https://github.com/deepseek-ai/eplb). + + +## EP with Spectulative Decoding + + +When utilizing speculative decoding with MTP on MoE architectures, use the `--speculative-moe-runner-backend` and `--speculative-moe-a2a-backend` arguments to customize the MoE layer behavior for the draft model. While they default to the target model’s settings, users can differentiate them for varying precisions between target and draft models. + +For model like `nvidia/DeepSeek-R1-0528-NVFP4-v2`, the target model uses NVFP4 precision while the draft model uses BF16. To apply `flashinfer_trtllm` kernel for target MoE layer while falling back to triton fused MoE kernel for draft MoE layer, users can set the arguments as follows: +```text Output +... +--moe-runner-backend flashinfer_trtllm \ +--speculative-moe-runner-backend triton \ +... +``` + + +## Ascend NPU Guidance +### Guidance on SGLang configuration in Ascend NPU +- `--moe-a2a-backend` only supports deepep and ascend_fuseep backends, + + - `deepep`: The mechanism is consistent with the above description. + + - `ascend_fuseep`: Offer a large fused operator which integrates all operations between dispatch and combine to boost MoE computation. Only used for decode stage in PD Disaggregation Mode. + +- `--moe-runner-backend` parameter does not need to be configured. + +- `--deepep-mode`: + + - In PD mixed mode, please set `--deepep-mode` auto. + + - In PD Disaggregation Mode, prefill instance sets `--deepep-mode` normal, and decode instance sets `--deepep-mode` low_latency. + +### DeepEP Ascend Introduction +DeepEP Ascend is the adapted version of the DeepEP communication library for Huawei Ascend NPUs, specifically designed for Mixture-of-Experts (MoE) model Expert Parallelism (EP). It supports the Ant-moving Function (Split the sequence length into rounds for streaming batch transmission) to optimize the buffer size occupied during collective communication in prefill stage, especially for long sequences. + +Ant-moving Function can be enabled for both the dispatch and combine phases via the following environment variables: + +- `DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS`: Enable ant-moving function in dispatch stage. Indicates the number of tokens transmitted per round on each rank, default 8192. + +- `DEEPEP_NORMAL_LONG_SEQ_ROUND`: Enable ant-moving function in dispatch stage. Indicates the number of rounds transmitted on each rank, default 1. + +- `DEEPEP_NORMAL_COMBINE_ENABLE_LONG_SEQ`: Enable ant-moving function in combine stage, default 0 (means disabled). + +`DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS * DEEPEP_NORMAL_LONG_SEQ_ROUND` means input sequence length. When the input sequence length exceeds 8192, it is recommended to enable the ant-moving function in both dispatch and combine phase. + +The environment variable `HCCL_BUFFSIZE` is used to configure the buffer size (MB) actually allocated. Its calculation formula is as follows: +```text Output +# Enable Ant-moving Function +HCCL_BUFFSIZE >= 2 * (102MB + 4MB + DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS * (hidden_size + hidden_size + hidden_size) * topk) + PADDING_BUFFSIZE + +# Disable Ant-moving Function +HCCL_BUFFSIZE >= 2 * (102MB + 4MB + TOTAL_SEQ_LEN * (hidden_size + hidden_size) * topk) + PADDING_BUFFSIZE +``` +Wherein the parameters are described as follows: + +- `hidden_size`: hidden size in model config. + +- `topk`: The number of selected routing experts. + +- `TOTAL_SEQ_LEN`: input sequence length. + +- `PADDING_BUFFSIZE`: A value of 20 or greater is recommended. diff --git a/docs_new/docs/advanced_features/forward_hooks.mdx b/docs_new/docs/advanced_features/forward_hooks.mdx new file mode 100644 index 000000000..a66f1548c --- /dev/null +++ b/docs_new/docs/advanced_features/forward_hooks.mdx @@ -0,0 +1,298 @@ +--- +title: "Model Forward Hooks" +metatags: + description: "SGLang forward hooks: attach PyTorch hooks to model submodules via JSON config. Log activations, debug internals, export hidden states." +--- + +## Model Hooks + +SGLang supports attaching PyTorch forward hooks to specific submodules in the loaded model, configured entirely via `server_args` JSON. + +This is useful for: + +* Logging intermediate activations +* Debugging model internals +* Exporting hidden states to external tooling + +Hooks are attached once during `ModelRunner.initialize` and run on every forward pass. + +*** +### Configuration overview + +Hooks are configured via a `ServerArgs` field: + +```python Example +class ServerArgs: + ... + # For forward hooks + forward_hooks: Optional[List[dict[str, Any]]] = None +```` + +In JSON form, a minimal configuration looks like: + +```jsonc Example +{ + "forward_hooks": [ + { + "name": "outer_linear_hooks", + "target_modules": ["outer.0", "outer.1"], + "hook_factory": "my_project.hooks:dummy_hook_factory", + "config": { + "tag": "outer-layer" + } + } + ] +} +``` + +#### Top-level fields + +* `forward_hooks` (optional list of objects) + Each element is a hook spec describing: + + * Which modules to target + * Which Python factory to call + * What configuration to pass into that factory + +*** +### Hook spec schema + +Each entry in `forward_hooks` is a JSON object with the following shape: + +```jsonc Example +{ + "name": "optional-descriptive-name", + "target_modules": ["pattern1", "pattern2", "..."], + "hook_factory": "module.submodule:factory_name", + "config": { + "...": "arbitrary JSON" + } +} +``` + +#### `name` (optional) + +* Human-readable name for logging. +* Used only in log messages such as: + + ```text Output + Registered forward hook 'outer_linear_hooks' on outer.0 + ``` + +#### `target_modules` (required) + +* List of **module name patterns** used to match entries in `model.named_modules()`. +* Patterns are matched using `fnmatch.fnmatch`, so: + + * `"outer.0"` matches exactly `"outer.0"`. + * `"outer.*"` matches `"outer.0"`, `"outer.1"`, `"outer.inner"`, etc. + * `"outer.inner.*"` matches children under `outer.inner`. + +> If no modules match the given patterns, hook registration does **not** fail. +> Instead, SGLang logs a warning and continues: +> +> ```text +> No modules matched hook spec 'name' patterns=['...'] +> ``` + +#### `hook_factory` (required) + +* String path to the Python factory function that creates the hook. +* Supported formats: + + * `"package.module:factory_name"` + * `"package.module.submodule.factory_name"` + +The path is resolved via: + +```python Example +def resolve_callable(path: Optional[str]) -> Optional[Callable]: + if path is None: + return None + + if ":" in path: + module_name, fn_name = path.split(":", 1) + else: + parts = path.split(".") + if len(parts) < 2: + raise ValueError( + f"Invalid hook callable path '{path}'. " + "Expected 'module.submodule:factory' or 'module.submodule.factory'." + ) + *mod_parts, fn_name = parts + module_name = ".".join(mod_parts) + + module = importlib.import_module(module_name) + try: + return getattr(module, fn_name) + except AttributeError as e: + raise AttributeError( + f"Module '{module_name}' has no attribute '{fn_name}' " + f"(from hook path '{path}')" + ) from e +``` + +**Failure modes**: + +* If the path is malformed (not enough dots and no `:`), a `ValueError` is raised at startup. +* If the module imports but the attribute is missing, an `AttributeError` is raised with a clear error message. +* If the hook factory returns `None`, a warning is logged and no hook is registered for that spec (initialization continues). + +The first two cause initialization to fail fast with a descriptive error; the last one is non-fatal. + +#### `config` (optional) + +* Arbitrary JSON object. +* Passed directly to the hook factory as a Python `dict`. +* This lets you parameterize hook behavior from config (e.g. tags, log levels, sampling rates, etc.). + +*** +### Hook lifecycle and behavior + +Hooks are registered in `ModelRunner.initialize()`: + +```python Example +if server_args.forward_hooks: + register_forward_hooks(self.model, server_args.forward_hooks) +``` + +The actual registration logic is implemented by `register_forward_hooks`: + +```python Example +def register_forward_hooks(model: nn.Module, hook_specs: List[dict[str, Any]]) -> None: + """ + hook_specs is a list of dicts from server_args.forward_hooks. + Attaches forward hooks to the matching modules. + """ + name_to_module = dict(model.named_modules()) + + for spec in hook_specs: + spec_name = spec.get("name", "") + target_patterns = spec.get("target_modules", []) + if not target_patterns: + logger.warning( + f"Hook spec '{spec_name}' has no 'target_modules', skipping" + ) + continue + + hook_factory_path = spec.get("hook_factory") + if not hook_factory_path: + logger.warning( + f"Hook spec '{spec_name}' has no 'hook_factory', skipping" + ) + continue + + config = spec.get("config") or {} + hook_factory = resolve_callable(hook_factory_path) + + hook = hook_factory(config) if hook_factory else None + if hook is None: + logger.warning( + f"Hook factory '{hook_factory_path}' for spec '{spec_name}' " + "returned None, not registering any hook" + ) + continue + + # Resolve patterns like "model.layers.*.mlp" + matched = [] + for name, module in name_to_module.items(): + if any(fnmatch.fnmatch(name, pattern) for pattern in target_patterns): + matched.append((name, module)) + + if not matched: + logger.warning( + f"No modules matched hook spec '{spec_name}' " + f"patterns={target_patterns}" + ) + continue + + for module_name, module in matched: + if hook: + _ = module.register_forward_hook(hook) + logger.info( + f"Registered forward hook '{spec_name}' " + f"on {module_name}" + ) +``` + +Key points: + +* Hooks are **forward hooks only** (via `module.register_forward_hook`). +* They are attached once at initialization. +* Hook handles are currently not stored on `ModelRunner` (they cannot be removed later via this API). +* Failure to match any modules is non-fatal; a warning is logged instead. +* If a hook factory returns `None`, a warning is logged and that spec is skipped. + +*** +### Writing a hook factory + +A hook factory is a regular Python function: + +* Takes a `config: dict` (from JSON) +* Returns a forward hook function with signature `(module, inputs, output)` + +Example: + +```python Example +HOOK_CALLS = [] + +def dummy_hook_factory(config): + """Factory that returns a forward hook capturing a tag from config.""" + tag = config.get("tag", "default") + + def hook(module, inputs, output): + HOOK_CALLS.append( + { + "module_type": type(module).__name__, + "tag": tag, + "shape": tuple(output.shape), + } + ) + return output # must return output if you don’t want to modify the tensor + + return hook +``` + +In JSON: + +```jsonc Example +{ + "forward_hooks": [ + { + "name": "capture_outer", + "target_modules": ["outer.0", "outer.1"], + "hook_factory": "my_project.hooks:dummy_hook_factory", + "config": { + "tag": "outer" + } + } + ] +} +``` + +This will: + +* Resolve `my_project.hooks:dummy_hook_factory` to a Python callable. +* Call it with `config = {"tag": "outer"}`. +* Use the returned hook for all modules matching `outer.0` and `outer.1`. +* Append metadata about each call to `HOOK_CALLS`. + +*** +### Summary + +* Define `forward_hooks` as a list of specs in `ServerArgs` to turn on the feature. + +* Each spec: + + * selects modules via `target_modules` (glob patterns over `model.named_modules()`), + * points to a hook factory via `hook_factory`, + * passes arbitrary `config` into that factory. + +* Hook factories are resolved via `resolve_callable`, which supports `module:factory` and `module.submodule.factory`. + +* Hooks are standard PyTorch forward hooks, attached once at startup and invoked on every forward pass. + +* Misconfiguration is either: + + * **fatal and explicit** (bad path / missing attribute), or + * **non-fatal with clear warnings** (no targets matched, or factory returned `None`). diff --git a/docs_new/docs/advanced_features/hicache.mdx b/docs_new/docs/advanced_features/hicache.mdx new file mode 100644 index 000000000..6c083ad23 --- /dev/null +++ b/docs_new/docs/advanced_features/hicache.mdx @@ -0,0 +1,8 @@ +--- +title: "Hierarchical KV Caching (HiCache)" +metatags: + description: "SGLang HiCache: three-tier KV caching (GPU, CPU, storage) for long-context and multi-turn inference. Supports Mooncake, 3FS, NIXL backends." +--- +- [Hicache Best Practices](./hicache_best_practices) +- [Hicache Design](./hicache_design) +- [Hicache Storage Runtime Attach Detach](./hicache_storage_runtime_attach_detach) diff --git a/docs_new/docs/advanced_features/hicache.rst b/docs_new/docs/advanced_features/hicache.rst new file mode 100644 index 000000000..e7d83211d --- /dev/null +++ b/docs_new/docs/advanced_features/hicache.rst @@ -0,0 +1,9 @@ +Hierarchical KV Caching (HiCache) +================================= + +.. toctree:: + :maxdepth: 1 + + hicache_best_practices.md + hicache_design.md + hicache_storage_runtime_attach_detach.md diff --git a/docs_new/docs/advanced_features/hicache_best_practices.mdx b/docs_new/docs/advanced_features/hicache_best_practices.mdx new file mode 100644 index 000000000..d86e676e2 --- /dev/null +++ b/docs_new/docs/advanced_features/hicache_best_practices.mdx @@ -0,0 +1,202 @@ +--- +title: "SGLang HiCache Best Practices" +metatags: + description: "HiCache configuration guide: memory layout, prefetch policies, PD disaggregation, HF3FS and Mooncake deployment, custom storage backends." +--- +## Why HiCache Matters + +SGLang HiCache extends the traditional RadixAttention with a three-tier hierarchical KV caching system that dramatically improves performance for long-context and multi-turn conversation scenarios. By intelligently managing KV caches across GPU memory, host memory, and external storage backends, HiCache addresses the fundamental capacity bottleneck that limits cache hit rates in conventional systems. + +## Configuration Guidelines + +## Core HiCache Parameters + +```bash Command +# Essential HiCache flags +--page-size 64 # Page size for cache management +--enable-hierarchical-cache # Enable HiCache +--hicache-ratio 2 # Host memory ratio (2x GPU memory) +--hicache-size 100 # Host memory size in GBs, will override the above ratio +--hicache-io-backend kernel # The I/O backend of moving data between CPU and GPU +--hicache-write-policy write_through # Cache write policy from GPU to CPU +--hicache-storage-backend # Optional storage backend (e.g., hf3fs, mooncake, etc.) +``` + +Notes: + +- Besides configuring `--hicache-storage-backend` at startup, SGLang also supports **runtime attach/detach** of the HiCache storage backend (no restart required) via HTTP admin endpoints. See [Runtime Attach/Detach HiCache Storage Backend](./hicache_storage_runtime_attach_detach). + +## Key Configurations with Storage Backends Enabled + +### Memory Layout Optimization + +```bash Command +# Page-first: Optimized for I/O efficiency with zero-copy (recommended with kernel backend) +--hicache-mem-layout page_first +# Page-first-direct: Optimized for direct I/O operations (Compatible with fa3 and same zero-copy performance as page_first) +--hicache-mem-layout page_first_direct +# Layer-first +--hicache-mem-layout layer_first +``` +**Layout Compatibility:** +- `page_first`: Only compatible with `kernel` I/O backend, automatically switches to `layer_first` with `direct` backend +- `page_first_direct`: Specifically designed for `direct` I/O backend with optimized memory organization + +### Prefetch Policies + +```bash Command +# Best-effort: Terminate prefetch when needed +--hicache-storage-prefetch-policy best_effort +# Wait-complete: Ensure complete prefetch, higher cache reuse +--hicache-storage-prefetch-policy wait_complete +# Timeout: Balance between completion and best-effort +--hicache-storage-prefetch-policy timeout +``` + +### Integration with PD Disaggregation + +HiCache works seamlessly with PD Disaggregation. You can choose between two configurations: + +1. **Prefill-only HiCache**: Enable HiCache only on Prefill nodes, allowing KV cache sharing among Prefill instances +2. **Full HiCache with async offloading**: Enable HiCache on Prefill nodes and async KV cache offloading on Decode nodes, allowing Prefill nodes to reuse KV caches from Decode nodes in multi-turn dialogue scenarios + +```bash Command +# Prefill node with HiCache enabled for cross-prefill sharing (ideal for SystemPrompt scenarios) +python3 -m sglang.launch_server \ + --model-path /xxx/DeepSeek-R1/ \ + --tp 8 \ + --host 0.0.0.0 \ + --port 10000 \ + --enable-metrics \ + --enable-cache-report \ + --mem-fraction-static 0.85 \ + --page-size 64 \ + --enable-hierarchical-cache \ + --hicache-ratio 2 \ + --hicache-size 0 \ + --hicache-mem-layout page_first_direct \ + --hicache-io-backend direct \ + --hicache-write-policy write_through \ + --hicache-storage-backend hf3fs \ + --hicache-storage-prefetch-policy wait_complete \ + --disaggregation-ib-device mlx5_0 \ + --disaggregation-mode prefill \ + --disaggregation-transfer-backend mooncake + +# Decode node with async offloading enabled for KV cache reuse by Prefill (ideal for multi-turn conversations) +python3 -m sglang.launch_server \ + --model-path /xxx/DeepSeek-R1/ \ + --tp 8 \ + --host 0.0.0.0 \ + --port 10000 \ + --enable-metrics \ + --enable-cache-report \ + --page-size 64 \ + --hicache-ratio 2 \ + --hicache-size 0 \ + --hicache-mem-layout page_first_direct \ + --hicache-io-backend direct \ + --hicache-write-policy write_through \ + --hicache-storage-backend hf3fs \ + --hicache-storage-prefetch-policy wait_complete \ + --disaggregation-decode-enable-offload-kvcache \ # Enable async KV cache offloading in decode node + --disaggregation-ib-device mlx5_0 \ + --disaggregation-mode decode \ + --disaggregation-transfer-backend mooncake +``` + + +### Deployment with HF3FS + +Here is an example of deploying DeepSeek-R1 with HiCache-HF3FS. For more details, see the [HF3FS Documentation](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/mem_cache/storage/hf3fs/docs). + +```bash Command +python3 -m sglang.launch_server \ + --model-path /xxx/DeepSeek-R1/ \ + --log-level info \ + --tp 8 \ + --host 0.0.0.0 \ + --port 10000 \ + --enable-metrics \ + --enable-cache-report \ + --page-size 64 \ + --mem-fraction-static 0.85 \ + --enable-hierarchical-cache \ + --hicache-ratio 2 \ + --hicache-size 0 \ + --hicache-mem-layout page_first_direct \ + --hicache-io-backend direct \ + --hicache-write-policy write_through \ + --hicache-storage-backend hf3fs \ + --hicache-storage-prefetch-policy wait_complete \ +``` + +### Deployment with Mooncake + +Here is an example of deploying Qwen3-235B-A22B-Instruct-2507 with Mooncake. For more details, see the [Mooncake Documentation](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/mem_cache/storage/mooncake_store). + +```bash Command +# Set Mooncake environment variables +export MOONCAKE_TE_META_DATA_SERVER="http://127.0.0.1:8080/metadata" +export MOONCAKE_GLOBAL_SEGMENT_SIZE=816043786240 +export MOONCAKE_PROTOCOL="rdma" +export MOONCAKE_DEVICE="$DEVICE_LIST" +export MOONCAKE_MASTER=127.0.0.1:50051 + +# Launch SGLang server with Mooncake backend +python3 -m sglang.launch_server \ + --model-path $MODEL_PATH \ + --tp 8 \ + --page-size 64 \ + --enable-hierarchical-cache \ + --hicache-ratio 2 \ + --hicache-mem-layout page_first_direct \ + --hicache-io-backend direct \ + --hicache-storage-backend mooncake \ + --hicache-write-policy write_through \ + --hicache-storage-prefetch-policy timeout +``` + + +## Custom Storage Backend Integration + +To integrate a new storage backend: + +1. **Implement three core methods:** + - `get(key)`: Retrieve value by key + - `exists(key)`: Check key existence + - `set(key, value)`: Store key-value pair + +2. **Register your backend:** Add your storage backend to the HiCache [BackendFactory](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/mem_cache/storage/backend_factory.py#L188) + +The HiCache controller handles all scheduling and synchronization automatically. + +### Dynamic Backend Loading + +Alternatively, you can use dynamic loading to avoid hard-coding your backend in the repository: + +```bash Command +python3 -m sglang.launch_server \ + --model-path your-model \ + --enable-hierarchical-cache \ + --hicache-storage-backend dynamic \ + --hicache-storage-backend-extra-config '{"backend_name":"custom_backend_name", "module_path": "your_module_path", "class_name": "YourHiCacheClassName"}' +``` + +**Configuration Parameters:** +- `--hicache-storage-backend`: Set to `dynamic` +- `--hicache-storage-backend-extra-config`: JSON configuration with: + - `backend_name`: Custom backend identifier + - `module_path`: Python module path to your implementation + - `class_name`: Your HiCache implementation class name + - `interface_v1`: 0 (disable) or 1 (enable) to control usage of batch_get_v1 and batch_set_v1 methods + + +## Community and Support + +- **GitHub Issues**: Report bugs and feature requests +- **Slack Channel**: Join community discussions in #sgl-kv-cache-store +- **Documentation**: Refer to storage backend-specific guides + +*** +*This document will be continuously updated based on community feedback and new features. Contributions and suggestions are welcome!* diff --git a/docs_new/docs/advanced_features/hicache_design.mdx b/docs_new/docs/advanced_features/hicache_design.mdx new file mode 100644 index 000000000..15ab841af --- /dev/null +++ b/docs_new/docs/advanced_features/hicache_design.mdx @@ -0,0 +1,164 @@ +--- +title: "HiCache System Design and Optimization" +metatags: + description: "HiCache architecture: HiRadixTree metadata, L1/L2/L3 workflow, prefetch strategies, write-back policies, zero-copy transfers, multi-rank sync." +--- +This document provides a comprehensive overview of SGLang HiCache, covering its system architecture, workflow and key components. It also details configuration parameters, optimization techniques, and integration with various L3 storage backends, serving as a complete reference for users and developers to understand and tune HiCache for efficient LLM inference. + +## Why and What is HiCache? + +In large language model inference, the prefill phase is often time-consuming: input sequences need to be first converted into Key-Value cache (KV cache) for subsequent decoding. When multiple requests share the same prefix, the KV cache for that prefix is identical. By caching and reusing these shared KV caches, redundant computation can be avoided. To address this, SGLang introduced RadixAttention, which leverages idle GPU memory to cache and reuse prefix KV caches, and **HiCache**, which extends this idea to host memory and distributed storage. + +Inspired by the classic three-level cache design of modern CPUs, HiCache organizes GPU memory as L1, host memory as L2, and distributed storage as L3. This hierarchy enables HiCache to fully exploit the "idle" storage space of GPUs and CPUs, while integrating distributed cache systems such as Mooncake, 3FS, NIXL, and AIBrix KVCache for global KV cache storage and scheduling. As a result, HiCache significantly expands KV cache capacity while maintaining strong read performance—especially in workloads such as multi-QA and long-context inference, where KV cache reuse is frequent. For detailed benchmark results, see [this blog](https://lmsys.org/blog/2025-09-10-sglang-hicache/). + + +## System Design + +### Overall Architecture + +In many modern CPU architectures, the small but fast L1 and L2 caches are private to each core, enabling rapid access to the hottest data, while the larger L3 cache is shared across all cores to significantly reduce redundancy within the cache. Similarly, in HiCache, the L1 and L2 KV caches are private to each inference instance, whereas the L3 KV cache is shared among all inference instances within the cluster. + +### HiRadixTree: Metadata Organization in HiCache + +For KV cache data organization, HiCache builds upon the RadixTree structure introduced in RadixAttention and proposes HiRadixTree. In RadixAttention, each node of the RadixTree corresponds to the KV cache of a consecutive span of tokens in GPU memory. A path from the root to a leaf node represents the prefix of a request, and shared prefixes across multiple requests can reuse the same nodes, thereby avoiding redundant storage. + +HiRadixTree extends this idea: each node corresponds to the KV cache of a span of consecutive tokens and records where that KV cache is stored—whether in local GPU memory, CPU memory, L3 storage, or multiple of these tiers. If stored locally, HiRadixTree maintains precise metadata, including the exact storage address. However, to reduce overhead, HiRadixTree does not store or continuously synchronize metadata for L3 KV cache. Instead, when accessing L3 data, it queries the backend in real time to retrieve the necessary metadata, such as whether the data exists and on which server and location it resides. + +### Overall Workflow + +The workflow of HiCache mainly involves three key operations: **local match**, **prefetch** and **write-back**. When the system receives a new request, it first searches the local L1 and L2 caches for matching KV caches. For parts not found locally, it attempts to prefetch from L3. After prefetching, all required KV caches are loaded into the GPU for computation. Once the prefill computation is complete, the system considers storing the newly generated data into L2 or L3. + + + HiCache Workflow + + +### Local Match + +Local matching is the first step in HiCache's workflow, where incoming request tokens are matched against the HiRadixTree to locate cached KV data in local memory tiers (L1 GPU memory and L2 host memory). + +The matching algorithm traverses the HiRadixTree from the root node, following child nodes that match the token sequence prefix. At each node, the incoming token sequence is compared with the node’s stored token sequence. When `page_size > 1`, matching is performed at the page granularity to optimize memory access patterns. If a match terminates within a node’s stored sequence, the node is automatically split to create an exact boundary, improving the efficiency of future matches. + +The algorithm returns a continuous prefix of the request, with the first part residing in L1 and the latter part in L2. + +Since the process only requires traversing the local HiRadixTree and does not involve any actual data copying, local matching is extremely fast. + +### Prefetch from L3 + +Data prefetching is one of HiCache’s core optimization techniques, designed to proactively load KV caches from L3 storage into local L2 memory, thereby reducing access latency during subsequent operations. + +**Prefetch Trigger Conditions**: +After local matching, for the parts not found in L1 or L2, the system queries L3 to retrieve metadata for the next continuous matching KV caches. If the length of hit cache in L3 exceeds a threshold (default: 256 tokens, configurable), a prefetch operation is triggered. + +**Prefetch Strategies**: HiCache provides three different prefetch termination strategies to address different scenario needs: +- **best_effort**: Terminates immediately when GPU can execute prefill computation, with no waiting time, suitable for scenarios extremely sensitive to latency. +- **wait_complete**: Must wait for all prefetch operations to complete, suitable for scenarios requiring high cache hit rates. +- **timeout**: Terminates after specified time or when complete, balancing latency and cache hit rate needs. + +After prefetching stops, the data already fetched is used together with the local data for the prefill computation. + +For **timeout** strategy, HiCache introduces two configuration parameters to support fine-grained control over prefetch timeout conditions: + +* `prefetch_timeout_base`: the base timeout, representing overhead unrelated to the number of tokens (e.g., scheduling and synchronization). +* `prefetch_timeout_per_ki_token`: the incremental timeout per thousand tokens. + +The timeout is computed as: + +```python Example +timeout = prefetch_timeout_base + prefetch_timeout_per_ki_token * num_token_to_fetch / 1024 +``` + +### Data Write-back + +The write-back mechanism is responsible for moving frequently accessed KV caches from L1 to L2 and L3, enabling larger and longer-term storage as well as cache sharing across instances. + +**Configurable Write-back Policies**: HiCache supports three write-back strategies: + +* **write_through**: Every access is immediately written back to the next level. When bandwidth is sufficient, this strategy provides the strongest caching benefit. +* **write_through_selective**: Data is written back only after the access frequency exceeds a threshold. This strategy backs up only hot data, reducing I/O overhead. +* **write_back**: Data is written back to the next level only when it is evicted from the upper level. This strategy alleviates storage pressure and is suitable for scenarios where storage capacity is limited but memory utilization must be maximized. + +**Cross-instance Sharing**: When data is written back from L2 to L3, only data not already present in L3 is transferred. KV caches stored in L3 can then be shared across all SGLang instances in the cluster (depending on the L3 backend implementation), significantly improving cache hit rates within the same memory budget. + +### Multi-Rank Synchronization + +During multi-GPU parallel computation, such as tensor parallelism (TP), HiCache must ensure consistent states across different ranks. Therefore, critical computation steps require the use of `all_reduce` for state synchronization. + +For example, during prefetching, `all_reduce(op=min)` is used to ensure that all ranks obtain the same number of L3 hits, preventing inconsistent judgments about whether the prefetch threshold has been reached. Similarly, after prefetching completes or terminates, `all_reduce(op=min)` is again required to guarantee consensus among ranks on the prefix length of the successfully retrieved KV cache. + +### Data Transfer Optimization + +**Zero-Copy Data Transfers**: Both prefetching and write-back involve substantial data movement. Minimizing the number of data copies can significantly improve system performance. HiCache supports passing memory addresses and sizes directly when transferring data from L2 memory to an L3 backend. + +**“Batch-Oriented” Data Organization**: The granularity of data reads and writes has a major impact on performance. To address this, HiCache L3 stores and transfers KV cache data at the granularity of **pages** and supports different data layouts beyond the existing `layer first` scheme, including `page first` and `page first direct`. Under the `page first` and `page first direct` layouts, all KV cache data belonging to the same page is placed in contiguous memory, allowing it to be passed as a single object to L3 using zero-copy transfers. + + + HiCache L2 MEM layout + + +However, because GPU KV computation is naturally performed layer by layer, the GPU inherently operates in a `layer first` layout. When transferring `page first` data from L2 to the GPU, data must be transferred at the granularity of one token per layer. The `page first direct` layout mitigates this issue by grouping together all tokens of a given layer within a page, allowing transfers from L2 to GPU to be aggregated at the page-layer level. + +**CPU-to-GPU Transfer Optimizations**: In HiCache, moving data from CPU memory to GPU is as performance-critical as prefetching data from L3 to L2. HiCache employs several optimizations for this process: + +* **Compute-Transfer Overlap**: During the prefill phase, when transferring data from CPU to GPU, HiCache overlaps layers by concurrently loading the KV cache of layer N+1 while computing layer N. This effectively hides data transfer latency. +* **GPU-assisted I/O Kernels**: On top of `cudaMemcpyAsync`, HiCache implements a set of GPU-assisted I/O kernels specifically optimized for KV cache transfers between CPU and GPU. Compared to the baseline approach, these kernels achieve up to 3x higher transfer speed. + +**Write-back Optimization for MLA**: For MHA (Multi-Head Attention) models under multi-TP, each rank holds `1/tp_size` of a token’s KV data. In contrast, for MLA (Multi-Layer Attention) models, all ranks hold the complete and identical KV data for each token. HiCache includes a dedicated optimization for MLA: only one rank initiates the write-back operation, ensuring that data is not redundantly stored across ranks. + +### Integration with PD-Disaggregation Deployment Mode + +SGLang supports a PD (Prefill-Decode) disaggregation deployment mode through the Mooncake TransferEngine (for details, see [this doc](./pd_disaggregation)). In the PD-disaggregation deployment mode, HiCache can be enabled on both the prefill nodes and decode nodes to optimize prefill performance. If enabled on decode nodes, the decode output will also be written back to L3. + +### Unified Interfaces and Rich L3 Storage Backends + +HiCache encapsulates all read, write, and query operations on L3 backends within the `class HiCacheStorage(ABC)`, exposing a set of simple and consistent interfaces. This design supports a wide range of L3 storage backends and allows users to select the one that best fits their specific use cases. + +- **Mooncake**: Mooncake is a high-performance caching system for LLM inference that leverages RDMA and multi-NIC resources to enable zero-copy, ultra-fast data transfers. Try Mooncake [here](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/mem_cache/storage/mooncake_store). + +- **DeepSeek 3FS (HF3FS)**: HF3FS is a Kubernetes-native distributed storage solution with operator-based deployment. Try HF3FS [here](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/mem_cache/storage/hf3fs). + +- **NIXL**: NIXL provides a unified API for accessing various storage plugins, including but not limited to DeepSeek's 3FS, GPU Direct Storage (GDS) and Amazon S3-compatible object storage. Try NIXL [here](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/mem_cache/storage/nixl). + +- **AIBrix KVCache**: AIBrix KVCache is a production-ready KVCache Offloading Framework, which enables efficient memory tiering and low-overhead cross-engine reuse. Try AIBrix KVCache [here](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/mem_cache/storage/aibrix_kvcache). + +- **HiCacheFile**: A simple file-based storage backend for demonstration purposes. + +Specifically, **LMCache**, an efficient KV cache layer for enterprise-scale LLM inference, provides an alternative solution to HiCache. Try LMCache [here](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/mem_cache/storage/lmcache). + +## Related Parameters + +- **`--enable-hierarchical-cache`**: Enable hierarchical cache functionality. This is required to use HiCache. + +- **`--hicache-ratio HICACHE_RATIO`**: The ratio of the size of host KV cache memory pool to the size of device pool. For example, a value of 2 means the host memory pool is twice as large as the device memory pool. The value of this parameter must be greater than 1, as the current implementation requires the host memory allocated for the KV cache to be larger than the device memory allocated for the KV cache. + +- **`--hicache-size HICACHE_SIZE`**: The size of host KV cache memory pool in gigabytes. This parameter overrides `hicache-ratio` if set. For example, `--hicache-size 30` allocates 30GB (1GB = 1e9 bytes) for the host memory pool **for each rank**. If there are 8 ranks, then the total memory size is 240GB. Just like `hicache-ratio`, the value of this parameter must be larger than the size of device memory allocated for KV cache. + +**Note**: `--hicache-ratio` and `--hicache-size` are two critical parameters. In general, a larger HiCache size leads to a higher cache hit rate, which improves prefill performance. However, the relationship between cache size and hit rate is not linear. Once most reusable KV data—especially hot tokens—are already cached, further increasing the size may yield only marginal performance gains. Users can set these parameters based on their workload characteristics and performance requirements. + +- **`--page-size PAGE_SIZE`**: The number of tokens per page. This parameter determines the granularity of KV cache storage and retrieval. Larger page sizes reduce metadata overhead and improve I/O efficiency for storage backends, but may lower the cache hit rate when only part of a page matches the stored KV cache. For workloads with long common prefixes, larger pages can improve performance, while workloads with more diverse prefixes may benefit from smaller pages. See [Data Transfer Optimization](#data-transfer-optimization) for how page granularity affects I/O performance. + +- **`--hicache-storage-prefetch-policy {best_effort,wait_complete,timeout}`**: Controls when prefetching from storage should stop. See [Prefetch from L3](#prefetch-from-l3) for details. + - `best_effort`: Prefetch as much as possible without blocking + - `wait_complete`: Wait for prefetch to complete before proceeding + - `timeout`: Terminates after specified time or when complete (Recommended for production environments, as setting an appropriate timeout helps the system meet required SLOs) + +- **`--hicache-write-policy {write_back,write_through,write_through_selective}`**: Controls how data is written from faster to slower memory tiers. See [Data Write-back](#data-write-back) for details. + - `write_through`: Immediately writes data to all tiers (strongest caching benefits) + - `write_through_selective`: Uses hit-count tracking to back up only frequently accessed data + - `write_back`: Writes data back to slower tiers only when eviction is needed (reduces I/O load) + +- **`--hicache-io-backend {direct,kernel}`**: Choose the I/O backend for KV cache transfer between CPU and GPU. See [Data Transfer Optimization](#data-transfer-optimization) for details. + - `direct`: Standard CUDA memory copy operations + - `kernel`: GPU-assisted I/O kernels (recommended for better performance) + +- **`--hicache-mem-layout {layer_first,page_first,page_first_direct}`**: Memory layout for the host memory pool. See [Data Transfer Optimization](#data-transfer-optimization) for details. + - `layer_first`: Compatible with GPU computation kernels (default for GPU memory) + - `page_first`: Optimized for I/O efficiency + - `page_first_direct`: Groups all tokens of a given layer within a page, allowing transfers from L2 to GPU to be aggregated at the page-layer level + +- **`--hicache-storage-backend {file,mooncake,hf3fs,nixl,aibrix,dynamic}`**: Choose the storage backend for the L3 tier. Built-in backends: file, mooncake, hf3fs, nixl, aibrix. For dynamic backend, use --hicache-storage-backend-extra-config to specify: `backend_name` (custom name), `module_path` (Python module path), `class_name` (backend class name). See [Unified Interfaces and Rich L3 Storage Backends](#unified-interfaces-and-rich-l3-storage-backends) for available backends. + +- **`--enable-lmcache`**: Using LMCache as an alternative hierarchical cache solution. + +- **`--hicache-storage-backend-extra-config HICACHE_STORAGE_BACKEND_EXTRA_CONFIG`**: the extra config can be either + - a JSON string containing extra configuration for the storage backend, e.g., `--hicache-storage-backend-extra-config '{"prefetch_threshold":512, "prefetch_timeout_base": 0.5, "prefetch_timeout_per_ki_token": 0.25}' `, or + - a TOML or JSON or YAML file specifying the extra configuration for the storage backend (to differentiate from the JSON string input, prepend a `@` in front of the file name), e.g., `--hicache-storage-backend-extra-config "@config.toml"` where `config.toml` is the config file containing the complex configurations. This can be useful when the configuration consists of many or complex key-value pairs (for instance, it is preferred to use a config file for NIXL backend as its configurations can be complex). diff --git a/docs_new/docs/advanced_features/hicache_storage_runtime_attach_detach.mdx b/docs_new/docs/advanced_features/hicache_storage_runtime_attach_detach.mdx new file mode 100644 index 000000000..beb9aada8 --- /dev/null +++ b/docs_new/docs/advanced_features/hicache_storage_runtime_attach_detach.mdx @@ -0,0 +1,133 @@ +--- +title: "Runtime Attach/Detach HiCache Storage Backend (No Restart)" +metatags: + description: "Dynamically attach/detach HiCache L3 storage backends at runtime via HTTP API. No restart required, idle-state safety checks." +--- +This document explains how to **dynamically attach/detach the HiCache L3 storage backend at runtime** (e.g., `mooncake` / `hf3fs` / `nixl` / `file` / `aibrix` / `eic`) while **SGLang is already running and serving traffic**, without restarting the process. + +For safety and consistency, the current implementation **strictly requires** these operations to happen only when the service is **idle**: + +- **No running requests** +- **No waiting/queued requests** + +If the idle condition is not met, the API will fail fast (HTTP 400) and **will not modify** the current service state. + +*** +## 1. Background and implementation overview + +### 1.1 Architecture / control path + +The control path is: + +1. **HTTP Server** (`python/sglang/srt/entrypoints/http_server.py`) + - Exposes `PUT /hicache/storage-backend`, `DELETE /hicache/storage-backend`, `GET /hicache/storage-backend` +2. **TokenizerManager** (`python/sglang/srt/managers/tokenizer_communicator_mixin.py`) + - Sends the request to the Scheduler via `_Communicator` +3. **Scheduler** (`python/sglang/srt/managers/scheduler.py`) + - Performs a **strict idle check** + - Calls `tree_cache.attach_storage_backend(...)` / `detach_storage_backend(...)` +4. **HiRadixCache** (`python/sglang/srt/mem_cache/hiradix_cache.py`) + - Parses `hicache_storage_backend_extra_config_json` (supports both backend config and prefetch knobs) + - Calls `cache_controller.attach_storage_backend(...)` / `detach_storage_backend(...)` +5. **HiCacheController** (`python/sglang/srt/managers/cache_controller.py`) + - Creates/destroys the storage backend instance (via `StorageBackendFactory`) + - Starts/stops backend background threads at runtime (prefetch/backup) + +*** +## 2. Idle-state requirement (strict) + +The Scheduler uses a stricter `_is_idle_for_hicache_storage_op()`: + +- `_is_no_request()` is true (covers running/overlap/pp/disagg and other active states) +- `waiting_queue` is empty +- `grammar_queue` is empty (if the grammar backend is enabled) + +If the condition is not met, attach/detach returns an error like: + +- `Reject attach: scheduler is not idle. #queue-req=... #running-req=...` + + +before switching, drain upstream traffic and wait for the server to become idle, then call attach/detach. + + +### 2.1 DP (data parallel) semantics + +When `dp_size > 1`, the tokenizer dispatches the request to **all DP scheduler instances** and aggregates their responses: + +- The final `success` is **true only if all DP ranks return success** +- The final `message` concatenates messages from all DP ranks + +This is intended to prevent “silent partial success”, but it also means you may see: + +- Overall **failure** even though **some ranks already succeeded** + +Currently there is **no automatic partial rollback** across DP ranks (see TODO in code). Operationally: + +- Prefer to keep backend config identical across ranks +- If attach fails, immediately call detach (best-effort/idempotent), fix config, then retry attach + +*** +## 3. How to use (HTTP Admin API) + +The examples below assume your SGLang HTTP server is at `http://127.0.0.1:30000`. + +### 3.1 Query current storage backend status + +```bash Command +curl -s http://127.0.0.1:30000/hicache/storage-backend +``` + +Example response: + +```json Config +{ + "hicache_storage_backend": "mooncake", + "hicache_storage_backend_extra_config": "{\"master_server_address\":\"127.0.0.1:50051\", ...}" +} +``` + +### 3.2 Attach (enable) a storage backend +```bash Command +curl -s -X PUT http://127.0.0.1:30000/hicache/storage-backend \ + -H 'Content-Type: application/json' \ + -d '{ + "hicache_storage_backend": "mooncake" + }' +``` + +```bash Command +curl -s -X PUT http://127.0.0.1:30000/hicache/storage-backend \ + -H 'Content-Type: application/json' \ + -d '{ + "hicache_storage_backend": "mooncake", + "hicache_storage_backend_extra_config_json": "{\"master_server_address\":\"127.0.0.1:50051\",\"protocol\":\"tcp\",\"global_segment_size\":\"4gb\",\"prefetch_threshold\":256}", + "hicache_storage_prefetch_policy": "timeout" + }' +``` + +Notes: + +- `hicache_storage_backend_extra_config_json` can include both: + - **Backend configuration** (e.g., Mooncake master/metadata/protocol, etc.) + - **Prefetch configuration** (`prefetch_threshold`, `prefetch_timeout_base`, `prefetch_timeout_per_ki_token`, `hicache_storage_pass_prefix_keys`) + +### 3.3 Detach (disable) the storage backend + +```bash Command +curl -s -X DELETE http://127.0.0.1:30000/hicache/storage-backend +``` + +Notes: + +- Detach only makes SGLang **stop using** the L3 storage backend and stops prefetch/backup threads +- It **does not automatically delete** data stored in Mooncake/HF3FS (or other remote backends) + +*** +## 4. Behavior and caveats + +- **No restart required**: attach/detach switches in-process at runtime +- **Must be idle**: otherwise the request is rejected to avoid consistency issues +- **Host KV layout constraints still apply**: for example, Mooncake still requires layouts like `page_first/page_first_direct/page_head`; if the server's HiCache host-memory layout does not satisfy the backend requirements, attach will fail with an error +- **Observability**: + - After attach, `server_args.hicache_storage_backend*` is updated on both the tokenizer and scheduler sides + - If metrics are enabled, attach will create a storage metrics collector in `HiRadixCache` on demand diff --git a/docs_new/docs/advanced_features/hyperparameter_tuning.mdx b/docs_new/docs/advanced_features/hyperparameter_tuning.mdx new file mode 100644 index 000000000..6a52d5a36 --- /dev/null +++ b/docs_new/docs/advanced_features/hyperparameter_tuning.mdx @@ -0,0 +1,82 @@ +--- +title: "Hyperparameter Tuning" +metatags: + description: "SGLang performance tuning: batch size, token usage, mem-fraction-static, chunked-prefill-size, CUDA graph, DP/TP optimization." +--- +## Achieving high throughput for offline batch inference + +Achieving a large batch size is the most important thing for attaining high throughput in offline batch inference. +When the server is running at full load in a steady state, look for the following in the log: + +```text Output +Decode batch. #running-req: 233, #token: 370959, token usage: 0.82, cuda graph: True, gen throughput (token/s): 4594.01, #queue-req: 317 +``` + +### Adjust the request submission speed to control `#queue-req` + +`#queue-req` indicates the number of requests in the queue. +If you frequently see `#queue-req: 0`, it suggests that your client code is submitting requests too slowly. +A healthy range for `#queue-req` is `100 - 2000`. +However, avoid making `#queue-req` too large, as this will increase the scheduling overhead on the server. + +### Achieve a high `token usage` + +`token usage` indicates the KV cache memory utilization of the server. `token usage > 0.9` means good utilization. + +If you frequently see `token usage < 0.9` and `#queue-req > 0`, it means the server is too conservative about taking in new requests. You can decrease `--schedule-conservativeness` to a value like 0.3. +The case of a server being too conservative can happen when users send many requests with a large `max_new_tokens` but the requests stop very early due to EOS or stop strings. + +On the other hand, if you see `token usage` very high and you frequently see warnings like +`KV cache pool is full. Retract requests. #retracted_reqs: 1, #new_token_ratio: 0.9998 -> 1.0000`, you can increase `--schedule-conservativeness` to a value like 1.3. +If you see `KV cache pool is full. Retract requests.` occasionally but not frequently (~1 time per minute), it is okay. + +### Tune `--mem-fraction-static` to increase KV cache pool capacity +SGLang allocates memory as follows: + +Total memory usage = model weights + KV cache pool + CUDA graph buffers + activations + +The `--mem-fraction-static` parameter determines how much memory is allocated to the first two components: + +mem_fraction_static = (model weights + KV cache pool) / GPU memory capacity + +To support higher concurrency, you should maximize the KV cache pool capacity by setting `--mem-fraction-static` as high as possible while still reserving enough memory for activations and CUDA graph buffers. + +SGLang uses simple heuristics to set the default value of `--mem-fraction-static`, but you can optimize it for your use cases. +As a rule of thumb, reserving 5–8 GB of memory for activations is typically sufficient. You can check this by inspecting the logs just before the server is ready. +Look for log entries like this: + +```text Output +[2025-08-11 17:17:03] max_total_num_tokens=665690, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=4096, context_len=65536, available_gpu_mem=13.50 GB +``` + +Check the `available_gpu_mem` value. +- If it is between 5–8 GB, the setting is good. +- If it is too high (e.g., 10 - 20 GB), increase `--mem-fraction-static` to allocate more memory to the KV cache. +- If it is too low, you risk out-of-memory (OOM) errors later, so decrease `--mem-fraction-static`. + +Another straightforward approach is to increase `--mem-fraction-static` in increments of 0.01 until you encounter OOM errors for your workloads. + +### Avoid out-of-memory errors by tuning `--chunked-prefill-size`, `--mem-fraction-static`, and `--max-running-requests` + +If you encounter out-of-memory (OOM) errors, you can adjust the following parameters: + +- If OOM occurs during prefill, try reducing `--chunked-prefill-size` to `4096` or `2048`. This saves memory but slows down the prefill speed for long prompts. +- If OOM occurs during decoding, try lowering `--max-running-requests`. +- You can also reduce `--mem-fraction-static` to a smaller value, such as 0.8 or 0.7. This decreases the memory usage of the KV cache memory pool and helps prevent OOM errors during both prefill and decoding. However, it limits maximum concurrency and reduces peak throughput. + +### Tune `--cuda-graph-max-bs` +By default, CUDA graph is enabled only for small batch sizes (e.g., less than 160 or 256). +However, for some models, especially at large tensor parallelism sizes, CUDA graph can be useful for batch sizes up to 512 or 768. +Therefore, it may be beneficial to increase `--cuda-graph-max-bs` to a larger value. +Note that CUDA graph consumes more memory, so you may need to reduce `--mem-fraction-static` at the same time. + +### Tune `--dp-size` and `--tp-size` + +Data parallelism is better for throughput. When there is enough GPU memory, always favor data parallelism for throughput. Refer to [SGLang Model Gateway (former Router)](../advanced_features/sgl_model_gateway) for a better data parallelism rather than using `dp_size` parameter. + +### Try other options + +- `torch.compile` accelerates small models on small batch sizes. You can enable it with `--enable-torch-compile`. +- Try other quantization (e.g. FP8 quantization with `--quantization fp8`) +- Try other parallelism strategies (e.g. [expert parallelism](https://lmsys.org/blog/2025-05-05-large-scale-ep/)) or DP attention for deepseek models (with `--enable-dp-attention --dp-size 8`). +- If the workload has many shared prefixes, try `--schedule-policy lpm`. Here, `lpm` stands for longest prefix match. It reorders requests to encourage more cache hits but introduces more scheduling overhead. diff --git a/docs_new/docs/advanced_features/lora.ipynb b/docs_new/docs/advanced_features/lora.ipynb new file mode 100644 index 000000000..36fcf7aee --- /dev/null +++ b/docs_new/docs/advanced_features/lora.ipynb @@ -0,0 +1,714 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# LoRA Serving" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "SGLang enables the use of [LoRA adapters](https://arxiv.org/abs/2106.09685) with a base model. By incorporating techniques from [S-LoRA](https://arxiv.org/pdf/2311.03285) and [Punica](https://arxiv.org/pdf/2310.18547), SGLang can efficiently support multiple LoRA adapters for different sequences within a single batch of inputs." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Arguments for LoRA Serving" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following server arguments are relevant for multi-LoRA serving:\n", + "\n", + "* `enable_lora`: Enable LoRA support for the model. This argument is automatically set to True if `--lora-paths` is provided for backward compatibility.\n", + "\n", + "* `enable_lora_overlap_loading`: Enable asynchronous LoRA weight loading in order to overlap H2D transfers with GPU compute. This should be enabled if you find that your LoRA workloads are bottlenecked by adapter weight loading, for example when frequently loading large LoRA adapters.\n", + "\n", + "* `lora_paths`: The list of LoRA adapters to load. Each adapter must be specified in one of the following formats: | = | JSON with schema {\"lora_name\":str,\"lora_path\":str,\"pinned\":bool}.\n", + "\n", + "* `max_loras_per_batch`: Maximum number of adaptors used by each batch. This argument can affect the amount of GPU memory reserved for multi-LoRA serving, so it should be set to a smaller value when memory is scarce. Defaults to be 8.\n", + "\n", + "* `max_loaded_loras`: If specified, it limits the maximum number of LoRA adapters loaded in CPU memory at a time. The value must be greater than or equal to `max-loras-per-batch`.\n", + "\n", + "* `lora_eviction_policy`: LoRA adapter eviction policy when GPU memory pool is full. `lru`: Least Recently Used (default, better cache efficiency). `fifo`: First-In-First-Out.\n", + "\n", + "* `lora_backend`: The backend of running GEMM kernels for Lora modules. Currently we support Triton LoRA backend (`triton`) and Chunked SGMV backend (`csgmv`). In the future, faster backend built upon Cutlass or Cuda kernels will be added.\n", + "\n", + "* `max_lora_rank`: The maximum LoRA rank that should be supported. If not specified, it will be automatically inferred from the adapters provided in `--lora-paths`. This argument is needed when you expect to dynamically load adapters of larger LoRA rank after server startup.\n", + "\n", + "* `lora_target_modules`: The union set of all target modules where LoRA should be applied (e.g., `q_proj`, `k_proj`, `gate_proj`). If not specified, it will be automatically inferred from the adapters provided in `--lora-paths`. This argument is needed when you expect to dynamically load adapters of different target modules after server startup. You can also set it to `all` to enable LoRA for all supported modules. However, enabling LoRA on additional modules introduces a minor performance overhead. If your application is performance-sensitive, we recommend only specifying the modules for which you plan to load adapters.\n", + "\n", + "* `--max-lora-chunk-size`: Maximum chunk size for the ChunkedSGMV LoRA backend. Only used when --lora-backend is 'csgmv'. Choosing a larger value might improve performance. Please tune this value based on your hardware and workload as needed. Defaults to 16.\n", + "\n", + "* `tp_size`: LoRA serving along with Tensor Parallelism is supported by SGLang. `tp_size` controls the number of GPUs for tensor parallelism. More details on the tensor sharding strategy can be found in [S-Lora](https://arxiv.org/pdf/2311.03285) paper.\n", + "\n", + "From client side, the user needs to provide a list of strings as input batch, and a list of adaptor names that each input sequence corresponds to." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Usage\n", + "\n", + "### Serving Single Adaptor" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Note:** SGLang supports LoRA adapters through two APIs:\n", + "\n", + "1. **OpenAI-Compatible API** (`/v1/chat/completions`, `/v1/completions`): Use the `model:adapter-name` syntax. See [OpenAI API with LoRA](../basic_usage/openai_api_completions.ipynb#Using-LoRA-Adapters) for examples.\n", + "\n", + "2. **Native API** (`/generate`): Pass `lora_path` in the request body (shown below)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import requests\n", + "\n", + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, terminate_process" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\n", + " # Here we set max-loras-per-batch to 2: one slot for adaptor and another one for base model\n", + " \"\"\"\n", + "python3 -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \\\n", + " --enable-lora \\\n", + " --lora-paths lora0=algoprog/fact-generation-llama-3.1-8b-instruct-lora \\\n", + " --max-loras-per-batch 2 \\\n", + " --log-level warning \\\n", + "\"\"\"\n", + ")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://127.0.0.1:{port}\"\n", + "json_data = {\n", + " \"text\": [\n", + " \"List 3 countries and their capitals.\",\n", + " \"List 3 countries and their capitals.\",\n", + " ],\n", + " \"sampling_params\": {\"max_new_tokens\": 32, \"temperature\": 0},\n", + " # The first input uses lora0, and the second input uses the base model\n", + " \"lora_path\": [\"lora0\", None],\n", + "}\n", + "response = requests.post(\n", + " url + \"/generate\",\n", + " json=json_data,\n", + ")\n", + "print(f\"Output 0: {response.json()[0]['text']}\")\n", + "print(f\"Output 1: {response.json()[1]['text']}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Serving Multiple Adaptors" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \\\n", + " --enable-lora \\\n", + " --lora-paths lora0=algoprog/fact-generation-llama-3.1-8b-instruct-lora \\\n", + " lora1=Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16 \\\n", + " --max-loras-per-batch 2 \\\n", + " --log-level warning \\\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://127.0.0.1:{port}\"\n", + "json_data = {\n", + " \"text\": [\n", + " \"List 3 countries and their capitals.\",\n", + " \"List 3 countries and their capitals.\",\n", + " ],\n", + " \"sampling_params\": {\"max_new_tokens\": 32, \"temperature\": 0},\n", + " # The first input uses lora0, and the second input uses lora1\n", + " \"lora_path\": [\"lora0\", \"lora1\"],\n", + "}\n", + "response = requests.post(\n", + " url + \"/generate\",\n", + " json=json_data,\n", + ")\n", + "print(f\"Output 0: {response.json()[0]['text']}\")\n", + "print(f\"Output 1: {response.json()[1]['text']}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dynamic LoRA loading" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Instead of specifying all adapters during server startup via `--lora-paths`. You can also load & unload LoRA adapters dynamically via the `/load_lora_adapter` and `/unload_lora_adapter` API.\n", + "\n", + "When using dynamic LoRA loading, it's recommended to explicitly specify both `--max-lora-rank` and `--lora-target-modules` at startup. For backward compatibility, SGLang will infer these values from `--lora-paths` if they are not explicitly provided. However, in that case, you would have to ensure that all dynamically loaded adapters share the same shape (rank and target modules) as those in the initial `--lora-paths` or are strictly \"smaller\"." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "lora0 = \"Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16\" # rank - 4, target modules - q_proj, k_proj, v_proj, o_proj, gate_proj\n", + "lora1 = \"algoprog/fact-generation-llama-3.1-8b-instruct-lora\" # rank - 64, target modules - q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj\n", + "lora0_new = \"philschmid/code-llama-3-1-8b-text-to-sql-lora\" # rank - 256, target modules - q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj\n", + "\n", + "\n", + "# The `--target-lora-modules` param below is technically not needed, as the server will infer it from lora0 which already has all the target modules specified.\n", + "# We are adding it here just to demonstrate usage.\n", + "server_process, port = launch_server_cmd(\"\"\"\n", + " python3 -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \\\n", + " --enable-lora \\\n", + " --cuda-graph-max-bs 2 \\\n", + " --max-loras-per-batch 2 \\\n", + " --max-lora-rank 256\n", + " --lora-target-modules all\n", + " --log-level warning\n", + " \"\"\")\n", + "\n", + "url = f\"http://127.0.0.1:{port}\"\n", + "wait_for_server(url)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load adapter lora0" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(\n", + " url + \"/load_lora_adapter\",\n", + " json={\n", + " \"lora_name\": \"lora0\",\n", + " \"lora_path\": lora0,\n", + " },\n", + ")\n", + "\n", + "if response.status_code == 200:\n", + " print(\"LoRA adapter loaded successfully.\", response.json())\n", + "else:\n", + " print(\"Failed to load LoRA adapter.\", response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load adapter lora1:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(\n", + " url + \"/load_lora_adapter\",\n", + " json={\n", + " \"lora_name\": \"lora1\",\n", + " \"lora_path\": lora1,\n", + " },\n", + ")\n", + "\n", + "if response.status_code == 200:\n", + " print(\"LoRA adapter loaded successfully.\", response.json())\n", + "else:\n", + " print(\"Failed to load LoRA adapter.\", response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Check inference output:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://127.0.0.1:{port}\"\n", + "json_data = {\n", + " \"text\": [\n", + " \"List 3 countries and their capitals.\",\n", + " \"List 3 countries and their capitals.\",\n", + " ],\n", + " \"sampling_params\": {\"max_new_tokens\": 32, \"temperature\": 0},\n", + " # The first input uses lora0, and the second input uses lora1\n", + " \"lora_path\": [\"lora0\", \"lora1\"],\n", + "}\n", + "response = requests.post(\n", + " url + \"/generate\",\n", + " json=json_data,\n", + ")\n", + "print(f\"Output from lora0: \\n{response.json()[0]['text']}\\n\")\n", + "print(f\"Output from lora1 (updated): \\n{response.json()[1]['text']}\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Unload lora0 and replace it with a different adapter:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(\n", + " url + \"/unload_lora_adapter\",\n", + " json={\n", + " \"lora_name\": \"lora0\",\n", + " },\n", + ")\n", + "\n", + "response = requests.post(\n", + " url + \"/load_lora_adapter\",\n", + " json={\n", + " \"lora_name\": \"lora0\",\n", + " \"lora_path\": lora0_new,\n", + " },\n", + ")\n", + "\n", + "if response.status_code == 200:\n", + " print(\"LoRA adapter loaded successfully.\", response.json())\n", + "else:\n", + " print(\"Failed to load LoRA adapter.\", response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Check output again:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://127.0.0.1:{port}\"\n", + "json_data = {\n", + " \"text\": [\n", + " \"List 3 countries and their capitals.\",\n", + " \"List 3 countries and their capitals.\",\n", + " ],\n", + " \"sampling_params\": {\"max_new_tokens\": 32, \"temperature\": 0},\n", + " # The first input uses lora0, and the second input uses lora1\n", + " \"lora_path\": [\"lora0\", \"lora1\"],\n", + "}\n", + "response = requests.post(\n", + " url + \"/generate\",\n", + " json=json_data,\n", + ")\n", + "print(f\"Output from lora0: \\n{response.json()[0]['text']}\\n\")\n", + "print(f\"Output from lora1 (updated): \\n{response.json()[1]['text']}\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### OpenAI-compatible API usage\n", + "\n", + "You can use LoRA adapters via the OpenAI-compatible APIs by specifying the adapter in the `model` field using the `base-model:adapter-name` syntax (for example, `qwen/qwen2.5-0.5b-instruct:adapter_a`). For more details and examples, see the “Using LoRA Adapters” section in the OpenAI API documentation: [openai_api_completions](../basic_usage/openai_api_completions).\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### LoRA GPU Pinning" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another advanced option is to specify adapters as `pinned` during loading. When an adapter is pinned, it is permanently assigned to one of the available GPU pool slots (as configured by `--max-loras-per-batch`) and will not be evicted from GPU memory during runtime. Instead, it remains resident until it is explicitly unloaded.\n", + "\n", + "This can improve performance in scenarios where the same adapter is frequently used across requests, by avoiding repeated memory transfers and reinitialization overhead. However, since GPU pool slots are limited, pinning adapters reduces the flexibility of the system to dynamically load other adapters on demand. If too many adapters are pinned, it may lead to degraded performance, or in the most extreme case (`Number of pinned adapters == max-loras-per-batch`), halt all unpinned requests. Therefore, currently SGLang limits maximal number of pinned adapters to `max-loras-per-batch - 1` to prevent unexpected starvations. \n", + "\n", + "In the example below, we start a server with `lora1` loaded as pinned, `lora2` and `lora3` loaded as regular (unpinned) adapters. Please note that, we intentionally specify `lora2` and `lora3` in two different formats to demonstrate that both are supported." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\"\"\"\n", + " python3 -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \\\n", + " --enable-lora \\\n", + " --cuda-graph-max-bs 8 \\\n", + " --max-loras-per-batch 3 \\\n", + " --max-lora-rank 256 \\\n", + " --lora-target-modules all \\\n", + " --lora-paths \\\n", + " {\"lora_name\":\"lora0\",\"lora_path\":\"Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16\",\"pinned\":true} \\\n", + " {\"lora_name\":\"lora1\",\"lora_path\":\"algoprog/fact-generation-llama-3.1-8b-instruct-lora\"} \\\n", + " lora2=philschmid/code-llama-3-1-8b-text-to-sql-lora\n", + " --log-level warning\n", + " \"\"\")\n", + "\n", + "\n", + "url = f\"http://127.0.0.1:{port}\"\n", + "wait_for_server(url)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also specify adapter as pinned during dynamic adapter loading. In the example below, we reload `lora2` as pinned adapter:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(\n", + " url + \"/unload_lora_adapter\",\n", + " json={\n", + " \"lora_name\": \"lora1\",\n", + " },\n", + ")\n", + "\n", + "response = requests.post(\n", + " url + \"/load_lora_adapter\",\n", + " json={\n", + " \"lora_name\": \"lora1\",\n", + " \"lora_path\": \"algoprog/fact-generation-llama-3.1-8b-instruct-lora\",\n", + " \"pinned\": True, # Pin the adapter to GPU\n", + " },\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Verify that the results are expected:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://127.0.0.1:{port}\"\n", + "json_data = {\n", + " \"text\": [\n", + " \"List 3 countries and their capitals.\",\n", + " \"List 3 countries and their capitals.\",\n", + " \"List 3 countries and their capitals.\",\n", + " ],\n", + " \"sampling_params\": {\"max_new_tokens\": 32, \"temperature\": 0},\n", + " # The first input uses lora0, and the second input uses lora1\n", + " \"lora_path\": [\"lora0\", \"lora1\", \"lora2\"],\n", + "}\n", + "response = requests.post(\n", + " url + \"/generate\",\n", + " json=json_data,\n", + ")\n", + "print(f\"Output from lora0 (pinned): \\n{response.json()[0]['text']}\\n\")\n", + "print(f\"Output from lora1 (pinned): \\n{response.json()[1]['text']}\\n\")\n", + "print(f\"Output from lora2 (not pinned): \\n{response.json()[2]['text']}\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Choosing LoRA Backend\n", + "\n", + "SGLang supports two LoRA backends that you can choose from using the `--lora-backend` argument:\n", + "\n", + "- `triton`: Basic Triton-based backend.\n", + "- `csgmv`: Default chunked SGMV backend optimized for high concurrency scenarios.\n", + "\n", + "The `csgmv` backend was recently introduced to improve performance especially at high-concurrency scenarios. Our benchmark shows that it achieves 20% to 80% latency improvements over the basic triton backend." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\"\"\"\n", + " python3 -m sglang.launch_server \\\n", + " --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \\\n", + " --enable-lora \\\n", + " --lora-backend csgmv \\\n", + " --max-loras-per-batch 16 \\\n", + " --lora-paths lora1=path/to/lora1 lora2=path/to/lora2\n", + " \"\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## LoRA Overlap Loading" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By using the `--enable-lora-overlap-loading` server argument, the SGLang engine is able to overlap the loading of LoRA weights with prefill and decode compute, essentially hiding the data movement for LoRA weights behind GPU computation. Our benchmarks show that under adversarial conditions, enabling this feature can result in a ~35% reduction in median TTFT - (see the [LoRA overlap loading PR](https://github.com/sgl-project/sglang/pull/15512) for detailed benchmarks)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "lora0 = \"Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16\"\n", + "lora1 = \"algoprog/fact-generation-llama-3.1-8b-instruct-lora\"\n", + "lora2 = \"philschmid/code-llama-3-1-8b-text-to-sql-lora\"\n", + "\n", + "\n", + "server_process, port = launch_server_cmd(\"\"\"\n", + " python3 -m sglang.launch_server \\\n", + " --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \\\n", + " --enable-lora \\\n", + " --enable-lora-overlap-loading \\\n", + " --lora-paths lora0=Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16 \\\n", + " lora1=algoprog/fact-generation-llama-3.1-8b-instruct-lora \\\n", + " lora2=philschmid/code-llama-3-1-8b-text-to-sql-lora \\\n", + " --max-lora-rank 256 \\\n", + " --max-loras-per-batch 2 \\\n", + " --max-loaded-loras 4\n", + " \"\"\")\n", + "\n", + "url = f\"http://127.0.0.1:{port}\"\n", + "wait_for_server(url)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "json_data = {\n", + " \"text\": [\n", + " \"Write a very long fairy-tale.\",\n", + " \"List 3 countries and their capitals.\",\n", + " \"List 3 countries and their capitals.\",\n", + " ],\n", + " \"sampling_params\": [\n", + " {\"max_new_tokens\": 1024, \"temperature\": 0},\n", + " {\"max_new_tokens\": 64, \"temperature\": 0},\n", + " {\"max_new_tokens\": 64, \"temperature\": 0},\n", + " ],\n", + " \"lora_path\": [\"lora0\", \"lora1\", \"lora2\"],\n", + "}\n", + "\n", + "# lora0 and lora1 will be loaded into the memory pool first, and because max_loras_per_batch = 2, lora2's request will remain in the queue.\n", + "# lora1's request will likely finish first, and once it does, lora2 will be loaded. With --enable-lora-overlap-loading, this loading will\n", + "# occur asynchronously and thus decoding for lora0's request won't be blocked.\n", + "response = requests.post(\n", + " url + \"/generate\",\n", + " json=json_data,\n", + ")\n", + "\n", + "for i in range(3):\n", + " print(f\"Output from lora{i}: \\n{response.json()[i]['text']}\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Limitations of LoRA Overlap Loading" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, LoRA overlap loading is not free and comes with two important caveats:\n", + "\n", + "1. **Pinned CPU memory requirement**:\n", + " Asynchronous H2D memory copies require LoRA weights to be pinned in CPU memory, which is a finite system resource. To mitigate excessive pinned-memory usage, SGLang currently restricts `max_loaded_loras` to be at most 2× `max_loras_per_batch` when LoRA overlap loading is enabled.\n", + "\n", + "2. **Reduced multi-adapter prefill batching**:\n", + " With overlap loading, adapters become available on the GPU at different times because each adapter is loaded asynchronously. This can reduce the scheduler’s ability to form multi-adapter prefill batches, since only requests whose adapters are currently loaded can be grouped together. As a result, requests for different adapters will be scheduled in separate (or smaller) prefill batches, which can increase TTFT when adapter load time is small compared to prefill compute time. This is why LoRA overlap loading is disabled by default: it should only be enabled when users have determined that LoRA weight loading is a bottleneck (EG high adapter churn, heavy adapter weights, or PCIe-bottlenecked workloads).\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Example When Overlap Loading Results in Higher Latency" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For instance, suppose we have four LoRA adapters: `lora0`, `lora1`, `lora2`, and `lora3`. Loading any adapter takes 2ms, while the prefill step for requests for that adapter takes 20ms.\n", + "\n", + "1. **Baseline**:\n", + " The engine loads all four adapters synchronously, then runs one combined prefill batch, giving us a total time of ≈ `2 * 4 + 20 = 28ms`\n", + "\n", + "2. **With LoRA overlap loading enabled**:\n", + " The engine begins loading `lora0` and, once it is ready, schedules a prefill batch containing only `lora0` while `lora1` loads in the background. Then it schedules `lora1`’s prefill while `lora2` loads, and so on. In the worst case where prefill cannot be batched across adapters, total time is ≈ `2 + 4 * 20 = 82ms`\n", + "\n", + "In this scenario, overlap loading reduces adapter-load overhead, but the loss of multi-adapter prefill batching dominates and leads to higher TTFT." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Future Works\n", + "\n", + "The development roadmap for LoRA-related features can be found in this [issue](https://github.com/sgl-project/sglang/issues/2929). Other features, including Embedding Layer, Unified Paging, Cutlass backend are still under development." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs_new/docs/advanced_features/lora.mdx b/docs_new/docs/advanced_features/lora.mdx new file mode 100644 index 000000000..be2ad9d87 --- /dev/null +++ b/docs_new/docs/advanced_features/lora.mdx @@ -0,0 +1,507 @@ +--- +title: "LoRA Serving" +metatags: + description: "SGLang multi-LoRA serving: S-LoRA and Punica techniques, dynamic adapter loading, GPU pinning, overlap loading, Triton and CSGMV backends." +--- +SGLang enables the use of [LoRA adapters](https://arxiv.org/abs/2106.09685) with a base model. By incorporating techniques from [S-LoRA](https://arxiv.org/pdf/2311.03285) and [Punica](https://arxiv.org/pdf/2310.18547), SGLang can efficiently support multiple LoRA adapters for different sequences within a single batch of inputs. + + +## Arguments for LoRA Serving + + +The following server arguments are relevant for multi-LoRA serving: + +* `enable_lora`: Enable LoRA support for the model. This argument is automatically set to True if `--lora-paths` is provided for backward compatibility. + +* `enable_lora_overlap_loading`: Enable asynchronous LoRA weight loading in order to overlap H2D transfers with GPU compute. This should be enabled if you find that your LoRA workloads are bottlenecked by adapter weight loading, for example when frequently loading large LoRA adapters. + +* `lora_paths`: The list of LoRA adapters to load. Each adapter must be specified in one of the following formats: <PATH> | <NAME>=<PATH> | JSON with schema {"lora_name":str,"lora_path":str,"pinned":bool}. + +* `max_loras_per_batch`: Maximum number of adaptors used by each batch. This argument can affect the amount of GPU memory reserved for multi-LoRA serving, so it should be set to a smaller value when memory is scarce. Defaults to be 8. + +* `max_loaded_loras`: If specified, it limits the maximum number of LoRA adapters loaded in CPU memory at a time. The value must be greater than or equal to `max-loras-per-batch`. + +* `lora_eviction_policy`: LoRA adapter eviction policy when GPU memory pool is full. `lru`: Least Recently Used (default, better cache efficiency). `fifo`: First-In-First-Out. + +* `lora_backend`: The backend of running GEMM kernels for Lora modules. Currently we support Triton LoRA backend (`triton`) and Chunked SGMV backend (`csgmv`). In the future, faster backend built upon Cutlass or Cuda kernels will be added. + +* `max_lora_rank`: The maximum LoRA rank that should be supported. If not specified, it will be automatically inferred from the adapters provided in `--lora-paths`. This argument is needed when you expect to dynamically load adapters of larger LoRA rank after server startup. + +* `lora_target_modules`: The union set of all target modules where LoRA should be applied (e.g., `q_proj`, `k_proj`, `gate_proj`). If not specified, it will be automatically inferred from the adapters provided in `--lora-paths`. This argument is needed when you expect to dynamically load adapters of different target modules after server startup. You can also set it to `all` to enable LoRA for all supported modules. However, enabling LoRA on additional modules introduces a minor performance overhead. If your application is performance-sensitive, we recommend only specifying the modules for which you plan to load adapters. + +* `--max-lora-chunk-size`: Maximum chunk size for the ChunkedSGMV LoRA backend. Only used when --lora-backend is 'csgmv'. Choosing a larger value might improve performance. Please tune this value based on your hardware and workload as needed. Defaults to 16. + +* `tp_size`: LoRA serving along with Tensor Parallelism is supported by SGLang. `tp_size` controls the number of GPUs for tensor parallelism. More details on the tensor sharding strategy can be found in [S-Lora](https://arxiv.org/pdf/2311.03285) paper. + +From client side, the user needs to provide a list of strings as input batch, and a list of adaptor names that each input sequence corresponds to. + + +## Usage + +### Serving Single Adaptor + + +**Note:** SGLang supports LoRA adapters through two APIs: + +1. **OpenAI-Compatible API** (`/v1/chat/completions`, `/v1/completions`): Use the `model:adapter-name` syntax. See [OpenAI API with LoRA](../basic_usage/openai_api_completions.ipynb#Using-LoRA-Adapters) for examples. + +2. **Native API** (`/generate`): Pass `lora_path` in the request body (shown below). + + + +```python Example +import json +import requests + +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, terminate_process +``` + + +```python Example +server_process, port = launch_server_cmd( + # Here we set max-loras-per-batch to 2: one slot for adaptor and another one for base model + """ +python3 -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --enable-lora \ + --lora-paths lora0=algoprog/fact-generation-llama-3.1-8b-instruct-lora \ + --max-loras-per-batch 2 \ + --log-level warning \ +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + + +```python Example +url = f"http://127.0.0.1:{port}" +json_data = { + "text": [ + "List 3 countries and their capitals.", + "List 3 countries and their capitals.", + ], + "sampling_params": {"max_new_tokens": 32, "temperature": 0}, + # The first input uses lora0, and the second input uses the base model + "lora_path": ["lora0", None], +} +response = requests.post( + url + "/generate", + json=json_data, +) +print(f"Output 0: {response.json()[0]['text']}") +print(f"Output 1: {response.json()[1]['text']}") +``` + + +```python Example +terminate_process(server_process) +``` + +### Serving Multiple Adaptors + + + +```python Example +server_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --enable-lora \ + --lora-paths lora0=algoprog/fact-generation-llama-3.1-8b-instruct-lora \ + lora1=Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16 \ + --max-loras-per-batch 2 \ + --log-level warning \ +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + + +```python Example +url = f"http://127.0.0.1:{port}" +json_data = { + "text": [ + "List 3 countries and their capitals.", + "List 3 countries and their capitals.", + ], + "sampling_params": {"max_new_tokens": 32, "temperature": 0}, + # The first input uses lora0, and the second input uses lora1 + "lora_path": ["lora0", "lora1"], +} +response = requests.post( + url + "/generate", + json=json_data, +) +print(f"Output 0: {response.json()[0]['text']}") +print(f"Output 1: {response.json()[1]['text']}") +``` + + +```python Example +terminate_process(server_process) +``` + +### Dynamic LoRA loading + + +Instead of specifying all adapters during server startup via `--lora-paths`. You can also load & unload LoRA adapters dynamically via the `/load_lora_adapter` and `/unload_lora_adapter` API. + +When using dynamic LoRA loading, it's recommended to explicitly specify both `--max-lora-rank` and `--lora-target-modules` at startup. For backward compatibility, SGLang will infer these values from `--lora-paths` if they are not explicitly provided. However, in that case, you would have to ensure that all dynamically loaded adapters share the same shape (rank and target modules) as those in the initial `--lora-paths` or are strictly "smaller". + + + +```python Example +lora0 = "Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16" # rank - 4, target modules - q_proj, k_proj, v_proj, o_proj, gate_proj +lora1 = "algoprog/fact-generation-llama-3.1-8b-instruct-lora" # rank - 64, target modules - q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj +lora0_new = "philschmid/code-llama-3-1-8b-text-to-sql-lora" # rank - 256, target modules - q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj + + +# The `--target-lora-modules` param below is technically not needed, as the server will infer it from lora0 which already has all the target modules specified. +# We are adding it here just to demonstrate usage. +server_process, port = launch_server_cmd( + """ + python3 -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --enable-lora \ + --cuda-graph-max-bs 2 \ + --max-loras-per-batch 2 \ + --max-lora-rank 256 + --lora-target-modules all + --log-level warning + """ +) + +url = f"http://127.0.0.1:{port}" +wait_for_server(url) +``` + +Load adapter lora0 + + + +```python Example +response = requests.post( + url + "/load_lora_adapter", + json={ + "lora_name": "lora0", + "lora_path": lora0, + }, +) + +if response.status_code == 200: + print("LoRA adapter loaded successfully.", response.json()) +else: + print("Failed to load LoRA adapter.", response.json()) +``` + +Load adapter lora1: + + + +```python Example +response = requests.post( + url + "/load_lora_adapter", + json={ + "lora_name": "lora1", + "lora_path": lora1, + }, +) + +if response.status_code == 200: + print("LoRA adapter loaded successfully.", response.json()) +else: + print("Failed to load LoRA adapter.", response.json()) +``` + +Check inference output: + + + +```python Example +url = f"http://127.0.0.1:{port}" +json_data = { + "text": [ + "List 3 countries and their capitals.", + "List 3 countries and their capitals.", + ], + "sampling_params": {"max_new_tokens": 32, "temperature": 0}, + # The first input uses lora0, and the second input uses lora1 + "lora_path": ["lora0", "lora1"], +} +response = requests.post( + url + "/generate", + json=json_data, +) +print(f"Output from lora0: \n{response.json()[0]['text']}\n") +print(f"Output from lora1 (updated): \n{response.json()[1]['text']}\n") +``` + +Unload lora0 and replace it with a different adapter: + + + +```python Example +response = requests.post( + url + "/unload_lora_adapter", + json={ + "lora_name": "lora0", + }, +) + +response = requests.post( + url + "/load_lora_adapter", + json={ + "lora_name": "lora0", + "lora_path": lora0_new, + }, +) + +if response.status_code == 200: + print("LoRA adapter loaded successfully.", response.json()) +else: + print("Failed to load LoRA adapter.", response.json()) +``` + +Check output again: + + + +```python Example +url = f"http://127.0.0.1:{port}" +json_data = { + "text": [ + "List 3 countries and their capitals.", + "List 3 countries and their capitals.", + ], + "sampling_params": {"max_new_tokens": 32, "temperature": 0}, + # The first input uses lora0, and the second input uses lora1 + "lora_path": ["lora0", "lora1"], +} +response = requests.post( + url + "/generate", + json=json_data, +) +print(f"Output from lora0: \n{response.json()[0]['text']}\n") +print(f"Output from lora1 (updated): \n{response.json()[1]['text']}\n") +``` + + +```python Example +terminate_process(server_process) +``` + +### OpenAI-compatible API usage + +You can use LoRA adapters via the OpenAI-compatible APIs by specifying the adapter in the `model` field using the `base-model:adapter-name` syntax (for example, `qwen/qwen2.5-0.5b-instruct:adapter_a`). For more details and examples, see the “Using LoRA Adapters” section in the OpenAI API documentation: [openai_api_completions](../basic_usage/openai_api_completions). + + + +### LoRA GPU Pinning + + +Another advanced option is to specify adapters as `pinned` during loading. When an adapter is pinned, it is permanently assigned to one of the available GPU pool slots (as configured by `--max-loras-per-batch`) and will not be evicted from GPU memory during runtime. Instead, it remains resident until it is explicitly unloaded. + +This can improve performance in scenarios where the same adapter is frequently used across requests, by avoiding repeated memory transfers and reinitialization overhead. However, since GPU pool slots are limited, pinning adapters reduces the flexibility of the system to dynamically load other adapters on demand. If too many adapters are pinned, it may lead to degraded performance, or in the most extreme case (`Number of pinned adapters == max-loras-per-batch`), halt all unpinned requests. Therefore, currently SGLang limits maximal number of pinned adapters to `max-loras-per-batch - 1` to prevent unexpected starvations. + +In the example below, we start a server with `lora1` loaded as pinned, `lora2` and `lora3` loaded as regular (unpinned) adapters. Please note that, we intentionally specify `lora2` and `lora3` in two different formats to demonstrate that both are supported. + + + +```python Example +server_process, port = launch_server_cmd( + """ + python3 -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --enable-lora \ + --cuda-graph-max-bs 8 \ + --max-loras-per-batch 3 \ + --max-lora-rank 256 \ + --lora-target-modules all \ + --lora-paths \ + {"lora_name":"lora0","lora_path":"Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16","pinned":true} \ + {"lora_name":"lora1","lora_path":"algoprog/fact-generation-llama-3.1-8b-instruct-lora"} \ + lora2=philschmid/code-llama-3-1-8b-text-to-sql-lora + --log-level warning + """ +) + + +url = f"http://127.0.0.1:{port}" +wait_for_server(url) +``` + +You can also specify adapter as pinned during dynamic adapter loading. In the example below, we reload `lora2` as pinned adapter: + + + +```python Example +response = requests.post( + url + "/unload_lora_adapter", + json={ + "lora_name": "lora1", + }, +) + +response = requests.post( + url + "/load_lora_adapter", + json={ + "lora_name": "lora1", + "lora_path": "algoprog/fact-generation-llama-3.1-8b-instruct-lora", + "pinned": True, # Pin the adapter to GPU + }, +) +``` + +Verify that the results are expected: + + + +```python Example +url = f"http://127.0.0.1:{port}" +json_data = { + "text": [ + "List 3 countries and their capitals.", + "List 3 countries and their capitals.", + "List 3 countries and their capitals.", + ], + "sampling_params": {"max_new_tokens": 32, "temperature": 0}, + # The first input uses lora0, and the second input uses lora1 + "lora_path": ["lora0", "lora1", "lora2"], +} +response = requests.post( + url + "/generate", + json=json_data, +) +print(f"Output from lora0 (pinned): \n{response.json()[0]['text']}\n") +print(f"Output from lora1 (pinned): \n{response.json()[1]['text']}\n") +print(f"Output from lora2 (not pinned): \n{response.json()[2]['text']}\n") +``` + + +```python Example +terminate_process(server_process) +``` + +## Choosing LoRA Backend + +SGLang supports two LoRA backends that you can choose from using the `--lora-backend` argument: + +- `triton`: Basic Triton-based backend. +- `csgmv`: Default chunked SGMV backend optimized for high concurrency scenarios. + +The `csgmv` backend was recently introduced to improve performance especially at high-concurrency scenarios. Our benchmark shows that it achieves 20% to 80% latency improvements over the basic triton backend. + + + +```python Example +server_process, port = launch_server_cmd( + """ + python3 -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --enable-lora \ + --lora-backend csgmv \ + --max-loras-per-batch 16 \ + --lora-paths lora1=path/to/lora1 lora2=path/to/lora2 + """ +) +``` + + +```python Example +terminate_process(server_process) +``` + +## LoRA Overlap Loading + + +By using the `--enable-lora-overlap-loading` server argument, the SGLang engine is able to overlap the loading of LoRA weights with prefill and decode compute, essentially hiding the data movement for LoRA weights behind GPU computation. Our benchmarks show that under adversarial conditions, enabling this feature can result in a ~35% reduction in median TTFT - (see the [LoRA overlap loading PR](https://github.com/sgl-project/sglang/pull/15512) for detailed benchmarks). + + + +```python Example +lora0 = "Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16" +lora1 = "algoprog/fact-generation-llama-3.1-8b-instruct-lora" +lora2 = "philschmid/code-llama-3-1-8b-text-to-sql-lora" + + +server_process, port = launch_server_cmd( + """ + python3 -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --enable-lora \ + --enable-lora-overlap-loading \ + --lora-paths lora0=Nutanix/Meta-Llama-3.1-8B-Instruct_lora_4_alpha_16 \ + lora1=algoprog/fact-generation-llama-3.1-8b-instruct-lora \ + lora2=philschmid/code-llama-3-1-8b-text-to-sql-lora \ + --max-lora-rank 256 \ + --max-loras-per-batch 2 \ + --max-loaded-loras 4 + """ +) + +url = f"http://127.0.0.1:{port}" +wait_for_server(url) +``` + + +```python Example +json_data = { + "text": [ + "Write a very long fairy-tale.", + "List 3 countries and their capitals.", + "List 3 countries and their capitals.", + ], + "sampling_params": [ + {"max_new_tokens": 1024, "temperature": 0}, + {"max_new_tokens": 64, "temperature": 0}, + {"max_new_tokens": 64, "temperature": 0}, + ], + "lora_path": ["lora0", "lora1", "lora2"], +} + +# lora0 and lora1 will be loaded into the memory pool first, and because max_loras_per_batch = 2, lora2's request will remain in the queue. +# lora1's request will likely finish first, and once it does, lora2 will be loaded. With --enable-lora-overlap-loading, this loading will +# occur asynchronously and thus decoding for lora0's request won't be blocked. +response = requests.post( + url + "/generate", + json=json_data, +) + +for i in range(3): + print(f"Output from lora{i}: \n{response.json()[i]['text']}\n") +``` + + +```python Example +terminate_process(server_process) +``` + +#### Limitations of LoRA Overlap Loading + + +However, LoRA overlap loading is not free and comes with two important caveats: + +1. **Pinned CPU memory requirement**: + Asynchronous H2D memory copies require LoRA weights to be pinned in CPU memory, which is a finite system resource. To mitigate excessive pinned-memory usage, SGLang currently restricts `max_loaded_loras` to be at most 2× `max_loras_per_batch` when LoRA overlap loading is enabled. + +2. **Reduced multi-adapter prefill batching**: + With overlap loading, adapters become available on the GPU at different times because each adapter is loaded asynchronously. This can reduce the scheduler’s ability to form multi-adapter prefill batches, since only requests whose adapters are currently loaded can be grouped together. As a result, requests for different adapters will be scheduled in separate (or smaller) prefill batches, which can increase TTFT when adapter load time is small compared to prefill compute time. This is why LoRA overlap loading is disabled by default: it should only be enabled when users have determined that LoRA weight loading is a bottleneck (EG high adapter churn, heavy adapter weights, or PCIe-bottlenecked workloads). + + + +#### Example When Overlap Loading Results in Higher Latency + + +For instance, suppose we have four LoRA adapters: `lora0`, `lora1`, `lora2`, and `lora3`. Loading any adapter takes 2ms, while the prefill step for requests for that adapter takes 20ms. + +1. **Baseline**: + The engine loads all four adapters synchronously, then runs one combined prefill batch, giving us a total time of ≈ `2 * 4 + 20 = 28ms` + +2. **With LoRA overlap loading enabled**: + The engine begins loading `lora0` and, once it is ready, schedules a prefill batch containing only `lora0` while `lora1` loads in the background. Then it schedules `lora1`’s prefill while `lora2` loads, and so on. In the worst case where prefill cannot be batched across adapters, total time is ≈ `2 + 4 * 20 = 82ms` + +In this scenario, overlap loading reduces adapter-load overhead, but the loss of multi-adapter prefill batching dominates and leads to higher TTFT. + + +## Future Works + +The development roadmap for LoRA-related features can be found in this [issue](https://github.com/sgl-project/sglang/issues/2929). Other features, including Embedding Layer, Unified Paging, Cutlass backend are still under development. diff --git a/docs_new/docs/advanced_features/object_storage.mdx b/docs_new/docs/advanced_features/object_storage.mdx new file mode 100644 index 000000000..a6de5a206 --- /dev/null +++ b/docs_new/docs/advanced_features/object_storage.mdx @@ -0,0 +1,142 @@ +--- +title: "Loading Models from Object Storage" +metatags: + description: "Load SGLang models directly from S3, Google Cloud Storage, Azure Blob, and S3-compatible object storage with runai_streamer." +--- + +SGLang supports direct loading of models from object storage (S3 and Google Cloud Storage) without requiring a full local download. This feature uses the `runai_streamer` load format to stream model weights directly from cloud storage, significantly reducing startup time and local storage requirements. + +## Overview + +When loading models from object storage, SGLang uses a two-phase approach: + +1. **Metadata Download** (once, before process launch): Configuration files and tokenizer files are downloaded to a local cache +2. **Weight Streaming** (lazy, during model loading): Model weights are streamed directly from object storage as needed + +## Supported Storage Backends + +1. **Amazon S3**: `s3://bucket-name/path/to/model/` +2. **Google Cloud Storage**: `gs://bucket-name/path/to/model/` +3. **Azure Blob**: `az://some-azure-container/path/` +4. **S3 compatible**: `s3://bucket-name/path/to/model/` + +## Quick Start + +### Basic Usage + +Simply provide an object storage URI as the model path: + +```bash +# S3 +python -m sglang.launch_server \ + --model-path s3://my-bucket/models/llama-3-8b/ \ + --load-format runai_streamer + +# Google Cloud Storage +python -m sglang.launch_server \ + --model-path gs://my-bucket/models/llama-3-8b/ \ + --load-format runai_streamer +``` + +**Note**: The `--load-format runai_streamer` is automatically detected when using object storage URIs, so you can omit it: + +```bash +python -m sglang.launch_server \ + --model-path s3://my-bucket/models/llama-3-8b/ +``` + +### With Tensor Parallelism + +```bash +python -m sglang.launch_server \ + --model-path gs://my-bucket/models/llama-70b/ \ + --tp 4 \ + --model-loader-extra-config '{"distributed": true}' +``` + +## Configuration + +### Load Format + +The `runai_streamer` load format is specifically designed for object storage, ssd and shared file systems + +```bash +python -m sglang.launch_server \ + --model-path s3://bucket/model/ \ + --load-format runai_streamer +``` + +### Extended Configuration Parameters + +Use `--model-loader-extra-config` to pass additional configuration as a JSON string: + +```bash +python -m sglang.launch_server \ + --model-path s3://bucket/model/ \ + --model-loader-extra-config '{ + "distributed": true, + "concurrency": 8, + "memory_limit": 2147483648 + }' +``` + +#### Available Parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescriptionDefault
      distributedboolEnable distributed streaming for multi-GPU setups. Automatically set to true for object storage paths and cuda alike devices.Auto-detected
      concurrencyintNumber of concurrent download streams. Higher values can improve throughput for large models.4
      memory_limitintMemory limit (in bytes) for the streaming buffer.System-dependent
      + +## Performance Considerations + +### Distributed Streaming + +For multi-GPU setups, enable distributed streaming to parallelize weight loading between the processes: + +```bash +python -m sglang.launch_server \ + --model-path s3://bucket/model/ \ + --tp 8 \ + --model-loader-extra-config '{"distributed": true}' +``` + +## Limitations + +- **Supported Formats**: Currently only supports `.safetensors` weight format (recommended format) +- **Supported Device**: Distributed streaming is supported on cuda alike devices. Otherwise fallback to non distributed streaming + +## See Also + +- [Runai model streamer documentation](https://github.com/run-ai/runai-model-streamer) diff --git a/docs_new/docs/advanced_features/observability.mdx b/docs_new/docs/advanced_features/observability.mdx new file mode 100644 index 000000000..3b550f6ad --- /dev/null +++ b/docs_new/docs/advanced_features/observability.mdx @@ -0,0 +1,38 @@ +--- +title: "Observability" +metatags: + description: "SGLang observability: Prometheus metrics, request logging, request dump and replay, crash dump debugging." +--- +## Production Metrics +SGLang exposes the following metrics via Prometheus. You can enable them by adding `--enable-metrics` when launching the server. +You can query them by: +```bash Command +curl http://localhost:30000/metrics +``` + +See [Production Metrics](../references/production_metrics) and [Production Request Tracing](../references/production_request_trace) for more details. + +## Logging + +By default, SGLang does not log any request contents. You can log them by using `--log-requests`. +You can control the verbosity by using `--log-request-level`. +See [Logging](./server_arguments#logging) for more details. + +## Request Dump and Replay + +You can dump all requests and replay them later for benchmarking or other purposes. + +To start dumping, use the following command to send a request to a server: +```bash Command +python3 -m sglang.srt.managers.configure_logging --url http://localhost:30000 --dump-requests-folder /tmp/sglang_request_dump --dump-requests-threshold 100 +``` +The server will dump the requests into a pickle file for every 100 requests. + +To replay the request dump, use `scripts/playground/replay_request_dump.py`. + +## Crash Dump and Replay +Sometimes the server might crash, and you may want to debug the cause of the crash. +SGLang supports crash dumping, which will dump all requests from the 5 minutes before the crash, allowing you to replay the requests and debug the reason later. + +To enable crash dumping, use `--crash-dump-folder /tmp/crash_dump`. +To replay the crash dump, use `scripts/playground/replay_request_dump.py`. diff --git a/docs_new/docs/advanced_features/overview.mdx b/docs_new/docs/advanced_features/overview.mdx new file mode 100644 index 000000000..804f01bd4 --- /dev/null +++ b/docs_new/docs/advanced_features/overview.mdx @@ -0,0 +1,18 @@ +--- +title: Advanced Features +description: Advanced configuration, optimization, and deployment features for SGLang. +--- + +- [Server Arguments](./server_arguments) +- [Hyperparameter Tuning](./hyperparameter_tuning) +- [Attention Backend](./attention_backend) +- [Speculative Decoding](./speculative_decoding) +- [Structured Outputs](./structured_outputs) +- [Quantization](./quantization) +- [Expert Parallelism](./expert_parallelism) +- [LoRA](./lora) +- [PD Disaggregation](./pd_disaggregation) +- [Pipeline Parallelism](./pipeline_parallelism) +- [HiCache](./hicache_best_practices) +- [Observability](./observability) +- [And more…](./server_arguments) diff --git a/docs_new/docs/advanced_features/pd_disaggregation.mdx b/docs_new/docs/advanced_features/pd_disaggregation.mdx new file mode 100644 index 000000000..fa796a4fb --- /dev/null +++ b/docs_new/docs/advanced_features/pd_disaggregation.mdx @@ -0,0 +1,404 @@ +--- +title: "PD Disaggregation" +metatags: + description: "SGLang PD disaggregation: separate prefill and decode phases, Mooncake and NIXL transfer engines, multi-node DeepSeek deployment." +--- +## Why and What is PD Disaggregation? + +Large Language Model (LLM) inference comprises two distinct phases: **Prefill** and **Decode**. The Prefill phase is computation-intensive, processing the entire input sequence, while the Decode phase is memory-intensive, managing the Key-Value (KV) cache for token generation. Traditionally, these phases are handled within a unified engine, where combined scheduling of prefill and decode batches introduces inefficiencies. To address these challenges, we introduce **Prefill and Decoding (PD) Disaggregation** in SGLang. + +### Issues with Unified Scheduling + +The conventional unified engine, which processes prefill and decode batches together, results in two significant problems: + +1. **Prefill Interruption**: Incoming prefill batches frequently interrupt ongoing decode batches, causing substantial delays in token generation. +2. **DP Attention Imbalance**: In data-parallel (DP) attention, one DP worker may process a prefill batch while another handles a decode batch simultaneously, leading to increased decode latency. + +PD Disaggregation resolves these by separating the two stages, enabling tailored optimizations for each. + +For the design details, please refer to [link](https://docs.google.com/document/d/1rQXJwKd5b9b1aOzLh98mnyMhBMhlxXA5ATZTHoQrwvc/edit?tab=t.0). + +Currently, we support Mooncake and NIXL as the transfer engine. + +## Profiling in PD Disaggregation Mode + +When you need to profile prefill or decode workers in PD disaggregation mode, please refer to the [Profile In PD Disaggregation Mode](../developer_guide/benchmark_and_profiling#profile-in-pd-disaggregation-mode) section in the Benchmark and Profiling guide. Due to torch profiler limitations, prefill and decode workers must be profiled separately using dedicated command-line options. + +## Router Integration + +For deploying PD disaggregation at scale with load balancing and fault tolerance, SGLang provides a router. The router can distribute requests between prefill and decode instances using various routing policies. For detailed information on setting up routing with PD disaggregation, including configuration options and deployment patterns, see the [SGLang Model Gateway (former Router)](../advanced_features/sgl_model_gateway.md#prefill-decode-disaggregation). + + +## Mooncake +### Requirements + +```bash +uv pip install mooncake-transfer-engine +``` + +### Usage + +### Llama Single Node + +```bash +python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disaggregation-mode prefill \ + --port 30000 \ + --disaggregation-ib-device mlx5_roce0 +python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disaggregation-mode decode \ + --port 30001 \ + --base-gpu-id 1 \ + --disaggregation-ib-device mlx5_roce0 +python -m sglang_router.launch_router --pd-disaggregation --prefill http://127.0.0.1:30000 --decode http://127.0.0.1:30001 --host 0.0.0.0 --port 8000 +``` + +### DeepSeek Multi-Node + +```bash +# prefill 0 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-ib-device ${device_name} \ + --disaggregation-mode prefill \ + --host ${local_ip} \ + --port 30000 \ + --trust-remote-code \ + --dist-init-addr ${prefill_master_ip}:5000 \ + --nnodes 2 \ + --node-rank 0 \ + --tp-size 16 \ + --dp-size 8 \ + --enable-dp-attention \ + --moe-a2a-backend deepep \ + --mem-fraction-static 0.8 +# prefill 1 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-ib-device ${device_name} \ + --disaggregation-mode prefill \ + --host ${local_ip} \ + --port 30000 \ + --trust-remote-code \ + --dist-init-addr ${prefill_master_ip}:5000 \ + --nnodes 2 \ + --node-rank 1 \ + --tp-size 16 \ + --dp-size 8 \ + --enable-dp-attention \ + --moe-a2a-backend deepep \ + --mem-fraction-static 0.8 +# decode 0 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-ib-device ${device_name} \ + --disaggregation-mode decode \ + --host ${local_ip} \ + --port 30001 \ + --trust-remote-code \ + --dist-init-addr ${decode_master_ip}:5000 \ + --nnodes 2 \ + --node-rank 0 \ + --tp-size 16 \ + --dp-size 8 \ + --enable-dp-attention \ + --moe-a2a-backend deepep \ + --mem-fraction-static 0.8 \ + --max-running-requests 128 +# decode 1 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-ib-device ${device_name} \ + --disaggregation-mode decode \ + --host ${local_ip} \ + --port 30001 \ + --trust-remote-code \ + --dist-init-addr ${decode_master_ip}:5000 \ + --nnodes 2 \ + --node-rank 1 \ + --tp-size 16 \ + --dp-size 8 \ + --enable-dp-attention \ + --moe-a2a-backend deepep \ + --mem-fraction-static 0.8 \ + --max-running-requests 128 +``` +### Advanced Configuration + +PD Disaggregation with Mooncake supports the following environment variables for fine-grained control over system behavior. + +#### NVLink Transport Configuration +To enable NVLink transport for KV cache transfers with the mooncake backend (recommended for NVL72 deployments), set the following environment variables. Note that auxiliary data transfer will still use TCP as a temporary workaround. + +```bash +export SGLANG_MOONCAKE_CUSTOM_MEM_POOL=True +export MC_FORCE_MNNVL=True +``` + +#### Prefill Server Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      VariableDescriptionDefault
      **`SGLANG_DISAGGREGATION_THREAD_POOL_SIZE`**Controls the total number of worker threads for KVCache transfer operations per TP rankA dynamic value calculated by `int(0.75 * os.cpu_count()) // 8)`, which is limited to be larger than 4 and less than 12 to ensure efficiency and prevent thread race conditions
      **`SGLANG_DISAGGREGATION_QUEUE_SIZE`**Sets the number of parallel transfer queues. KVCache transfer requests from multiple decode instances will be sharded into these queues so that they can share the threads and the transfer bandwidth at the same time. If it is set to `1`, then we transfer requests one by one according to fcfs strategy`4`
      **`SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT`**Timeout (seconds) for receiving destination KV indices during request initialization`300`
      + +If a greater mean TTFT is acceptable, you can `export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600` (10 minutes) to relax the timeout condition. +Please be aware that this setting will cause prefill instances to take a longer time to clean up the affected memory resources when a running decode node loses connection. + +#### Decode Server Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      VariableDescriptionDefault
      **`SGLANG_DISAGGREGATION_HEARTBEAT_INTERVAL`**Interval (seconds) between health checks to prefill bootstrap servers`5.0`
      **`SGLANG_DISAGGREGATION_HEARTBEAT_MAX_FAILURE`**Consecutive heartbeat failures before marking prefill server offline`2`
      **`SGLANG_DISAGGREGATION_WAITING_TIMEOUT`**Timeout (seconds) for receiving KV Cache after request initialization`300`
      + +If a greater mean TTFT is acceptable, you can `export SGLANG_DISAGGREGATION_WAITING_TIMEOUT=600` (10 minutes) to relax the timeout condition. + + +## NIXL +### Requirements + +Install via pip. + +```bash +pip install nixl +``` + +Or build from source - may be required if you already have UCX installed. + +```bash +git clone https://github.com/ai-dynamo/nixl.git +cd nixl +pip install . --config-settings=setup-args="-Ducx_path=/path/to/ucx" +``` + + +### Usage + +### Llama Single Node + +```bash +python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disaggregation-mode prefill \ + --port 30000 \ + --disaggregation-transfer-backend nixl +python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disaggregation-mode decode \ + --port 30001 \ + --base-gpu-id 1 \ + --disaggregation-transfer-backend nixl +python -m sglang_router.launch_router --pd-disaggregation --prefill http://127.0.0.1:30000 --decode http://127.0.0.1:30001 --host 0.0.0.0 --port 8000 +``` + +### DeepSeek Multi-Node + +```bash +# prefill 0 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-transfer-backend nixl \ + --disaggregation-mode prefill \ + --host ${local_ip} \ + --port 30000 \ + --trust-remote-code \ + --dist-init-addr ${prefill_master_ip}:5000 \ + --nnodes 2 \ + --node-rank 0 \ + --tp-size 16 \ + --dp-size 8 \ + --enable-dp-attention \ + --moe-a2a-backend deepep \ + --mem-fraction-static 0.8 +# prefill 1 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-transfer-backend nixl \ + --disaggregation-mode prefill \ + --host ${local_ip} \ + --port 30000 \ + --trust-remote-code \ + --dist-init-addr ${prefill_master_ip}:5000 \ + --nnodes 2 \ + --node-rank 1 \ + --tp-size 16 \ + --dp-size 8 \ + --enable-dp-attention \ + --moe-a2a-backend deepep \ + --mem-fraction-static 0.8 +# decode 0 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-transfer-backend nixl \ + --disaggregation-mode decode \ + --host ${local_ip} \ + --port 30001 \ + --trust-remote-code \ + --dist-init-addr ${decode_master_ip}:5000 \ + --nnodes 2 \ + --node-rank 0 \ + --tp-size 16 \ + --dp-size 8 \ + --enable-dp-attention \ + --moe-a2a-backend deepep \ + --mem-fraction-static 0.8 \ + --max-running-requests 128 +# decode 1 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-transfer-backend nixl \ + --disaggregation-mode decode \ + --host ${local_ip} \ + --port 30001 \ + --trust-remote-code \ + --dist-init-addr ${decode_master_ip}:5000 \ + --nnodes 2 \ + --node-rank 1 \ + --tp-size 16 \ + --dp-size 8 \ + --enable-dp-attention \ + --moe-a2a-backend deepep \ + --mem-fraction-static 0.8 \ + --max-running-requests 128 +``` + +### Advanced Configuration + +#### NIXL Backend Selection + +By default, NIXL uses the **UCX** backend for KV cache transfers. You can select a different NIXL plugin backend depending on your infrastructure using the environment variable `SGLANG_DISAGGREGATION_NIXL_BACKEND`. + +Example: `export SGLANG_DISAGGREGATION_NIXL_BACKEND=LIBFABRIC` + +**Available backends:** UCX (default), LIBFABRIC, or any installed NIXL plugin. + +Example usage: +```bash +export SGLANG_DISAGGREGATION_NIXL_BACKEND=LIBFABRIC +python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disaggregation-mode prefill \ + --disaggregation-transfer-backend nixl \ + --port 30000 +``` + +## ASCEND + +### Usage + +Use ascend backend with [memfabric_hybrid](https://gitcode.com/Ascend/memfabric_hybrid) and ASCEND_MF_STORE_URL being set + +```bash +pip install memfabric-hybrid==1.0.5 +export ASCEND_MF_STORE_URL="tcp://xxx.xx.xxx.xxx:xxxx" +``` +Use mooncake backend, more details can be found in mooncake section. +```bash +export ENABLE_ASCEND_TRANSFER_WITH_MOONCAKE=true +``` +ASCEND_NPU_PHY_ID need to be set in container env +```bash +export ASCEND_NPU_PHY_ID=xxx +``` + + +### Llama Single Node + +```bash +python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disaggregation-mode prefill \ + --port 30000 \ + --disaggregation-transfer-backend ascend +python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disaggregation-mode decode \ + --port 30001 \ + --base-gpu-id 1 \ + --disaggregation-transfer-backend ascend +python -m sglang_router.launch_router --pd-disaggregation --prefill http://127.0.0.1:30000 --decode http://127.0.0.1:30001 --host 0.0.0.0 --port 8000 +``` + +### DeepSeek Multi-Node + +```bash +# prefill 0 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-transfer-backend ascend \ + --disaggregation-mode prefill \ + --host ${local_ip} \ + --port 30000 \ + --trust-remote-code \ + --dist-init-addr ${prefill_master_ip}:5000 \ + --nnodes 1 \ + --node-rank 0 \ + --tp-size 16 +# decode 0 +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --disaggregation-transfer-backend ascend \ + --disaggregation-mode decode \ + --host ${local_ip} \ + --port 30001 \ + --trust-remote-code \ + --dist-init-addr ${decode_master_ip}:5000 \ + --nnodes 1 \ + --node-rank 0 \ + --tp-size 16 +``` diff --git a/docs_new/docs/advanced_features/piecewise_cuda_graph.mdx b/docs_new/docs/advanced_features/piecewise_cuda_graph.mdx new file mode 100644 index 000000000..701bb9ae1 --- /dev/null +++ b/docs_new/docs/advanced_features/piecewise_cuda_graph.mdx @@ -0,0 +1,299 @@ +--- +title: "Piecewise CUDA Graph" +metatags: + description: "Use Piecewise CUDA Graph to reduce prefill and extend kernel launch overhead while supporting dynamic token shapes." +--- + +## Motivation + +Standard CUDA graphs capture the entire model forward pass as a single graph. This works well for decode (fixed batch size), but not for extend/prefill where the number of tokens varies across iterations. + +Piecewise CUDA Graph (PCG) solves this by splitting the model's computation graph into pieces (roughly one per layer) at "split points" (e.g., MoE dispatch ops). Each piece is captured as a separate CUDA graph for a set of pre-defined token lengths. At runtime, the input is padded to the nearest captured size, and each piece is replayed. This eliminates kernel launch overhead for prefill/extend while still supporting dynamic shapes. + +Recently we **enabled PCG by default**, which means that the old `--enable-piecewise-cuda-graph` flag is deprecated. Use `--disable-piecewise-cuda-graph` to turn it off. + +## Usage + +PCG is enabled by default for supported configurations. No extra flags needed: + +```bash +python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct +``` + +### Disable PCG + +```bash +python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disable-piecewise-cuda-graph +``` + +### Custom capture sizes + +```bash +python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --piecewise-cuda-graph-max-tokens 2048 +``` + +### Server Args + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultDescription
      --disable-piecewise-cuda-graphFalseDisable PCG for extend/prefill.
      --enforce-piecewise-cuda-graphFalseForce-enable PCG, skipping all auto-disable conditions. For testing only.
      --piecewise-cuda-graph-max-tokensNone (auto)Maximum token count to capture. Defaults to chunked_prefill_size (non-MLA) or 2048 (MLA).
      --piecewise-cuda-graph-tokensNone (auto)Explicit list of token lengths to capture. Auto-generated if not set.
      --piecewise-cuda-graph-compiler"eager"Compiler backend for the captured subgraphs. Choices: eager, inductor.
      --enable-piecewise-cuda-graphDeprecated. PCG is now enabled by default. Use --enforce-piecewise-cuda-graph to skip auto-disable conditions.
      + +## Bug Report + +PCG is enabled by default but is still in an experimental stage. Since PCG relies on `torch.compile` to trace the model's forward pass, most bugs are introduced by torch compile tracing failures (e.g., untraceable ops, dynamic control flow, or graph breaks). If you encounter any issues related to PCG, please disable it by adding `--disable-piecewise-cuda-graph` to your launch command and report the bug at [GitHub Issues](https://github.com/sgl-project/sglang/issues/new/choose). We greatly appreciate your help in improving this feature. + +### For Users + +If you see an error message like the following during server startup, it is a PCG bug: + +``` +Piecewise CUDA Graph is enabled by default as an experimental feature. +To work around this error, add --disable-piecewise-cuda-graph to your launch command. +Please report this issue at https://github.com/sgl-project/sglang/issues/new/choose +``` + +To work around it, add `--disable-piecewise-cuda-graph` to your launch command. When filing a bug report, please include: +1. The full error traceback +2. Model name and quantization method +3. Launch command with all arguments +4. GPU type and driver version + +### For Developers + +Since PCG relies on `torch.compile` to trace the model's forward pass, newly developed CUDA kernels (both JIT kernels and sgl-kernels) are typically not compatible with `torch.compile` out of the box. The tracing will fail on untraceable operations such as JIT compilation, file I/O, or dynamic module loading inside the kernel. + +To make a kernel compatible with PCG, you need to register it as a custom op using `register_custom_op` from `sglang.srt.utils.custom_op`. This wraps the kernel as an opaque node in the compiled graph so that `torch.compile` will not trace inside it. + +**Example usage (JIT kernel):** + +```python +from sglang.srt.utils.custom_op import register_custom_op + +# Inplace operator (no return value) +@register_custom_op(mutates_args=["output_q", "output_s"]) +def per_token_group_quant_8bit( + input: torch.Tensor, + output_q: torch.Tensor, + output_s: torch.Tensor, +) -> None: + # kernel implementation ... +``` + +**Example usage (operator with output):** + +```python +# out_shape indicates which argument has the same shape as the output +@register_custom_op(mutates_args=["x"], out_shape=0) +def add(x: torch.Tensor, y: torch.Tensor) -> torch.Tensor: + return x.add_(y) +``` + +For wrapping external library functions (e.g., FlashInfer kernels), use `register_custom_op_from_extern` instead. See `python/sglang/srt/utils/custom_op.py` for full API documentation. + +## How it works + +### Torch compile backend + +PCG uses `torch.compile` with a custom backend (`SGLangBackend`) to split and compile the model's forward pass. The flow is: + +``` +model.forward wrapper +→ torch.compile(..., backend=SGLangBackend) +→ FX graph +→ split_graph() at registered split ops +→ split_gm (top-level graph that chains the pieces) +→ replace capturable submodules with CUDAPiecewiseBackend +→ runtime dispatch: eager split ops + per-piece capture/replay +``` + +- **Install**: `install_torch_compiled()` replaces `model.forward` with a wrapper function. When `is_in_piecewise_cuda_graph()` returns True, the wrapper dispatches to the compiled callable; otherwise it falls back to the original forward. The first invocation through this path triggers Dynamo tracing and graph compilation — CUDA graph replay only happens after the capture phase completes. + +- **Split**: When `torch.compile` traces the model, `SGLangBackend` receives the FX graph and calls `split_graph()`. Ops listed in `CompilationConfig.split_ops` are treated as split points, so the graph is cut at each one. These split-op submodules are left to run eagerly at runtime, while the surrounding submodules are compiled and wrapped by `CUDAPiecewiseBackend`. The result is a top-level "stitching graph" (`split_gm`) with children such as `submod_0`, `submod_1`, … interleaving capturable subgraphs and eager split-op submodules. + +- **Replace**: `PiecewiseCompileInterpreter` iterates over each capturable submodule in `split_gm`, compiles it for general (dynamic) shapes, and replaces it in-place with a `CUDAPiecewiseBackend` instance. Split-op submodules (e.g., attention, all-reduce) are left as-is and run eagerly at runtime. + +- **Dispatch**: At runtime, calling `split_gm` executes the stitching graph, which calls each submodule in order. Split-op submodules run eagerly. Each `CUDAPiecewiseBackend` submodule goes through three phases: + - **Compile warmup** — runs the general-shape compiled path. + - **Capture** — for each capture size, runs one warmup pass then records a CUDA graph. + - **Steady-state replay** — replays the captured CUDA graph for each forward pass. + +### Piecewise cuda graph runner + +`PiecewiseCudaGraphRunner` orchestrates the full lifecycle through three phases: + +- **Compile** — Warms up JIT kernels with a dummy forward pass, then wraps the model with `torch.compile`, triggering Dynamo tracing to split the FX graph and create `CUDAPiecewiseBackend` instances for each subgraph piece. + +- **Capture** — Iterates over capture sizes in reverse order (largest first). For each size, runs the forward pass twice (one warmup, one CUDA graph capture). + +- **Replay** — At runtime, finds the smallest captured size >= actual token count via binary search, copies inputs into static buffers with zero-padding, replays the captured CUDA graphs, and slices outputs back to the actual token count. + +### Memory optimization + +The memory cost of PCG comes from two parts: **torch memory allocator** and **non-torch memory**. + +The torch memory allocator overhead is trivial thanks to several optimizations: a global shared memory pool is reused across all CUDA graph runners and capture sizes, capture is done in reverse order (large to small) so smaller graphs reuse memory allocated by larger ones, and output tensors of the last subgraph are stored as weak references to maximize memory reuse. + +The main memory overhead comes from non-torch memory — the CUDA graph objects themselves require GPU memory to store the recorded kernel launch parameters and internal state. This overhead scales with the number of captured sizes, which is why `piecewise_cuda_graph_max_tokens` is capped conservatively by default. + +### Shape configuration + +Piecewise CUDA graph pre-captures graphs for a set of token counts. At runtime, the actual token count is rounded up to the nearest captured size (via binary search), and the corresponding graph is replayed. If the token count exceeds the largest captured size, the runtime falls back to the normal (non-graph) forward path. + +The default capture schedule is auto-generated with increasing granularity: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Token rangeStep size
      4 – 324
      48 – 25616
      288 – 51232
      576 – 102464
      1280 – 4096256
      4096+512
      + +For the auto-generated schedule, sizes are capped at `--piecewise-cuda-graph-max-tokens`. The default cap is `chunked_prefill_size` for non-MLA models and `2048` for MLA backend models. If `--max-total-tokens` is set, the cap is further limited to not exceed it. Additionally, Llama-2 models are auto-capped at 4096 tokens as a temporary workaround. + +## Compatibility + +PCG is auto-disabled in the following scenarios. We are actively working on expanding compatibility — support for many of these will be coming soon. + +- Disabled model architectures (e.g., `DeepseekV32ForCausalLM`) +- Speculative decoding +- DP attention +- Pipeline parallelism (`pp_size > 1`) +- Non-CUDA hardware (AMD ROCm, Ascend NPU) +- MoE A2A backend +- LoRA +- Multimodal / VLM models +- DLLM (diffusion LLM) +- Deterministic inference +- PD disaggregation +- Expert distribution recorder / EPLB + +Use `--enforce-piecewise-cuda-graph` to skip all auto-disable checks (for testing/debugging only). + +## Code Reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FileDescription
      python/sglang/srt/model_executor/piecewise_cuda_graph_runner.pyMain runner: init, capture, replay
      python/sglang/srt/compilation/compile.pyinstall_torch_compiled trampoline
      python/sglang/srt/compilation/backend.pySGLangBackend, graph splitting, piecewise compilation
      python/sglang/srt/compilation/cuda_piecewise_backend.pyPer-subgraph CUDA graph capture/replay
      python/sglang/srt/compilation/piecewise_context_manager.pyGlobal context flags and ForwardContext
      python/sglang/srt/compilation/compilation_config.pyCapture sizes, split ops, compiler config
      python/sglang/srt/utils/custom_op.pyregister_custom_op for torch.compile compatibility
      python/sglang/srt/server_args.pyServer arguments and auto-disable logic
      diff --git a/docs_new/docs/advanced_features/pipeline_parallelism.mdx b/docs_new/docs/advanced_features/pipeline_parallelism.mdx new file mode 100644 index 000000000..77c88c2c4 --- /dev/null +++ b/docs_new/docs/advanced_features/pipeline_parallelism.mdx @@ -0,0 +1,119 @@ +--- +title: "Pipeline Parallelism for Long Context" +metatags: + description: "SGLang pipeline parallelism: reduce TTFT for ultra-long sequences, dynamic chunking, async P2P communication, multi-node deployment." +--- +## Why Pipeline Parallelism? + +As Large Language Models (LLMs) scale toward trillion-parameter architectures and "infinite" context windows, the underlying serving infrastructure must evolve toward more granular, cross-node parallelization strategies. While KV cache techniques effectively mitigate redundant computation, they cannot circumvent the prohibitive Time to First Token (TTFT) inherent in ultra-long sequences with extremely large initial Input Token Length (ITL). Although Tensor Parallelism (TP) remains the conventional approach for intra-node scaling, it frequently encounters communication bottlenecks during multi-node deployments. On the other hand, pipeline parallelism only requires cross-node communication at the boundaries of each pipeline stage, which can achieve better computation-communication overlap compared to a large TP. Therefore, it is also a promising parallelization strategy for improving throughput. + +Detailed analysis can be found in this [blog](https://lmsys.org/blog/2026-01-15-chunked-pipeline/). + +## Implementation Refactoring based on Async Communication +With Dynamic Chunked Prefill, pipeline parallelism has the potential to reduce the TTFT of long-context inputs. For each request, its input tokens can be partitioned into multiple chunks, each no longer than the chunked prefill size. Different chunks of the same request can be processed simultaneously by different nodes, thus parallelizing the processing and reducing TTFT. SGLang has supported Pipeline Parallelism (#5724) for some time and made it compatible with the PD Disaggregation feature (#8846), but the implementation was not perfect and had significant room for performance improvements. + +To eliminate this performance hazard, SGLang implements a Micro-batching Event Loop with non-blocking asynchronous peer-to-peer (P2P) communication to overlap GPU computation with CPU metadata processing and PP communication. This ensures that while one micro-batch is being computed on the GPU, the next one is already being prepared and moved into position effectively, ensuring the pipeline remains as saturated as possible. This approach was first proposed in #7979 and has been redesigned and included in #11852. + +The key mechanisms of the implementation include: + +* **Decoupled Sync/Async Logic in the Event Loop:** The scheduler uses `async_send` in `_pp_send_pyobj_to_next_stage`. Instead of waiting for a transfer to complete, it returns a `P2PWork` handle. The actual synchronization (`P2PWork.work.wait()`) is deferred until `_pp_commit_comm_work` is called, allowing the CPU to perform other work—like scheduling the next batch or processing metadata—while data is in flight. +* **Multi-Stream Execution:** In addition to the main `default_stream`, which serves as the synchronization stream, SGLang utilizes dedicated `forward_stream` and `copy_stream` to execute forward pass GPU computation and Data-to-Host (D2H) memory transfers separately for better overlapping. While `_pp_launch_batch` is executing the current micro-batch on the GPU for the current stage, the CPU processes the previous micro-batch's results using `_pp_process_batch_result`. + +## Guidance about Dynamic Chunking + +### Why Dynamic Chunking +Chunked prefill with a fixed size can cause bubbles in the pipeline, especially when the pp size is large. The main reason behind this phenomenon is that the model has a non-uniform running time, even though each chunk size is identical (brought by the Transformer structure). The larger the prefix sequence length, the longer the running time of the chunk. And these bubbles will be propagated to the next stage, and will significantly degrade the scale efficiency of larger pp ranks. + +To address this issue, SGLang introduces a dynamic chunking mechanism to predict the optimal size for the next chunk such that it satisfies this condition: + +Runtime(L + Next Chunk Size) - Runtime(L) = Runtime(Initial Chunk Size) + +where ***L*** denotes the Prefix Sequence Length. By profiling a series of requests with different ITLs, we model the cumulative runtime as a quadratic function of sequence length. Using this model, we solve the optimal next chunk size for any given prefix length ***L***. Since the computation complexity of the Attention mechanism scales with ***L***, the next chunk size will be progressively reduced as ***L*** grows to maintain an aligned chunk execution time across pipeline stages. + +Based on this method, the scheduler can predict and dynamically reduce the chunk size during runtime to minimize the bubbles caused by the stage misalignment. To be noticed, the scheduler does not use the raw predicted value. To facilitate efficient KVCache memory management and ensure affinity with hardware execution efficiency, the value is aligned downward to the nearest multiple of max(`--page-size`, 64). + + +### Chunked Prefill Size and Smoothing Factor + +When `--enable-dynamic-chunking` is enabled, each chunk size of a sequence is determined dynamically based on the quadratic model that predicts the next chunk size based on the estimated runtime of the initial chunk length. In this case, we use `--chunked-prefill-size` to set up the initial chunk size. When switching to the dynamic chunking mode, the initial chunk size (`--chunked-prefill-size`) should be set to a larger value comparable to the original chunked prefill size, so that there won't be too many chunks. + +**`SGLANG_DYNAMIC_CHUNKING_SMOOTH_FACTOR`** is an environmental variable that controls the smoothing factor for the dynamic chunking algorithm, defaulting to 0.75. It determines how much the chunk size can change during the prefill phase. A larger value means a more aggressive chunk size change, which may lead to better performance but also to greater chunk size changes (the chunk size at the end may become very small, which could lead to performance degradation) and more total chunks. When it is set to 1, the chunk size will be adjusted strictly based on the aforementioned quadratic model that predicts the next chunk size. A smaller value means a more conservative chunk size change, which may lead to smaller chunk size changes and fewer total chunks. When it is set to 0, the chunk size will not be adjusted dynamically, so it is identical to the traditional way with a fixed chunked prefill size. + +Due to the variation in hardware, models, and target workloads, a static configuration is seldom optimal across all scenarios. Consequently, achieving peak performance necessitates a degree of hyperparameter tuning when switching to the dynamic chunking mode. + +**Tuning Guidance for Dynamic Chunked Prefill** + +* **Step 1 \- Iterate to find the optimal fixed chunked prefill size for the targeted PP size**: Different PP sizes for targeted ITL may have different optimal chunked prefill sizes. Therefore, users should iterate to obtain the baseline according to the available resources for scaling. +* **Step 2 \- Initial Chunk Size Selection for Dynamic Chunking**: Set the initial size to 2× or 3× the optimal fixed chunked prefill size. This reduces the total number of chunks and prevents "tail chunks" from underutilizing hardware. To maintain efficiency for extremely large Input Token Lengths (ITL), the dynamic predictor automatically ensures subsequent chunks are at least 1/4 of this initial size. In addition, it is recommended to use a larger initial chunk size (e.g., 4× the optimal fixed chunked prefill size) for such cases as well. +* **Step 3 \- Smooth Factor Adjustment**: This factor controls how strictly the chunk size adjusts the prediction given by the quadratic performance fitting model. + * 1.0: Follows the model strictly. + * **0.6 – 0.85 (Recommended)**: Typical range for the best balance between dynamic scaling and hardware stability. Through experiments, we find that a range between 0.6 and 0.85 typically yields the best performance for dynamic chunking. + * 0: Disables dynamic adjustment, reverting to traditional fixed-size chunking. +* **Another small optimization tip:** Put the larger partition in the higher PP rank when the layers are not evenly divisible across ranks. It can increase the GPU utilization when a larger PP rank is waiting for the previous stage’s result, hence reducing the bubbles on higher PP ranks. If we take DeepSeek-V3.1 as an example, `SGLANG_PP_LAYER_PARTITION=15,15,15,16` usually performs better than `16,15,15,15`. + +## Best Practice for Long Context + +### Tuning the Chunked Prefill Size +Optimizing the chunked prefill size is crucial for balancing pipeline efficiency and resource utilization. The ideal size depends on factors including model architecture, hardware configuration, and typical input lengths. We recommend starting with a small chunk size, such as 4K, and gradually increasing it until you find the optimal size for your specific use case (Different targeted ITL and PP Sizes may have different optimal chunked prefill sizes. Therefore, users should iterate to obtain the baseline according to the available resources for scaling). Alternatively, you can analyze the hardware capacity and determine the optimal chunk size based on the roofline model. + +### Enable Dynamic Chunking and Adjust Smoothing Factor for Ultra-long ITL +SGLang also offers a dynamic chunking solution that could further improve performance. This feature is currently an experimental feature that requires a certain amount of tuning experimentation and may not be suitable for all workloads. In addition, fine-tuning the smoothing factor can help optimize performance for specific workloads and model characteristics. + +### Case Study on NVIDIA H20 + +When evaluating pipeline parallelism with fixed chunked prefill sizes from 2K to 16K, experiment results show that a 4K chunk size delivered optimal prefill TTFT performance for the DeepSeek-V3.1, and a 6K chunk size delivered optimal prefill TTFT performance for the Qwen3-235B-A22B-FP8. + +When enabling dynamic chunking, we first scale the optimal fixed chunked prefill size by a factor of 3 as the initial chunk size. Through experimentation, we found that a multiplier of 2-3 provides an appropriate balance—avoiding excessive initial pipeline bubbles while ensuring that subsequent chunks don't become too small as context length increases. With the default dynamic chunking smoothing factor of 0.75, we performed parameter tuning and determined that a value of 0.65 works optimally with the 12K initial chunk size for the DeepSeek-V3.1, while a value of 0.8 works optimally with the 18K initial chunk size for the Qwen3-235B-A22B-FP8. + +#### DeepSeek-V3.1 with 128K Input Token Length +```bash Command +# prefill node 0 (fixed chunked prefill size) +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.1 --trust-remote-code \ + --nnodes 4 --node-rank 0 --tp 8 --pp-size 4 \ + --port 30000 --dist-init-addr \ + --disable-radix-cache --mem-fraction-static 0.8 \ + --attention-backend fa3 --host 0.0.0.0 --watchdog-timeout 3600 \ + --max-running-requests 128 --chunked-prefill-size 4096 +``` + +```bash Command +# prefill node 0 (with dynamic chunking) +export SGLANG_DYNAMIC_CHUNKING_SMOOTH_FACTOR=0.65 +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.1 --trust-remote-code \ + --nnodes 4 --node-rank 0 --tp 8 --pp-size 4 \ + --port 30000 --dist-init-addr \ + --disable-radix-cache --mem-fraction-static 0.8 \ + --attention-backend fa3 --host 0.0.0.0 --watchdog-timeout 3600 \ + --max-running-requests 128 --chunked-prefill-size 12288 --enable-dynamic-chunking +``` + +#### Qwen3-235B-A22B-FP8 with 128K Input Token Length +```bash Command +# prefill node 0 (fixed chunked prefill size) +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-235B-A22B-FP8 --trust-remote-code \ + --nnodes 4 --node-rank 0 --tp 4 --pp-size 8 \ + --port 30000 --dist-init-addr \ + --disable-radix-cache --mem-fraction-static 0.8 \ + --attention-backend fa3 --host 0.0.0.0 --watchdog-timeout 3600 \ + --max-running-requests 128 --chunked-prefill-size 6144 +``` + +```bash Command +# prefill node 0 (with dynamic chunking) +export SGLANG_DYNAMIC_CHUNKING_SMOOTH_FACTOR=0.8 +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-235B-A22B-FP8 --trust-remote-code \ + --nnodes 4 --node-rank 0 --tp 4 --pp-size 8 \ + --port 30000 --dist-init-addr \ + --disable-radix-cache --mem-fraction-static 0.8 \ + --attention-backend fa3 --host 0.0.0.0 --watchdog-timeout 3600 \ + --max-running-requests 128 --chunked-prefill-size 18432 --enable-dynamic-chunking +``` + +Note: `--disable-radix-cache` is enabled only for reproducible benchmarking purposes. It is not recommended to use it in production. + +## Best Practice for Pipeline Parallelism with PD Disaggregation +To be added. Stay tuned for the latest updates on Pipeline Parallelism with PD Disaggregation. diff --git a/docs_new/docs/advanced_features/quantization.mdx b/docs_new/docs/advanced_features/quantization.mdx new file mode 100644 index 000000000..3d26fc51e --- /dev/null +++ b/docs_new/docs/advanced_features/quantization.mdx @@ -0,0 +1,395 @@ +--- +title: "Quantization" +metatags: + description: "SGLang quantization: FP8, FP4, AWQ, GPTQ, ModelOpt, torchao. Offline and online quantization methods for efficient LLM inference." +--- +SGLang supports various quantization methods, including offline quantization and online dynamic quantization. + +Offline quantization loads pre-quantized model weights directly during inference. This is required for quantization methods +such as GPTQ and AWQ, which collect and pre-compute various statistics from the original weights using the calibration dataset. + +Online quantization dynamically computes scaling parameters—such as the maximum/minimum values of model weights—during runtime. +Like NVIDIA FP8 training's [delayed scaling](https://docs.nvidia.com/deeplearning/transformer-engine/user-guide/examples/fp8_primer.html#Mixed-precision-training-with-FP8) mechanism, online quantization calculates the appropriate scaling factors +on-the-fly to convert high-precision weights into a lower-precision format. + +**Note: For better performance, usability and convenience, offline quantization is recommended over online quantization.** + +If you use a pre-quantized model, do not add `--quantization` to enable online quantization at the same time. +For popular pre-quantized models, please visit [Unsloth](https://huggingface.co/unsloth), [NVIDIA ModelOpt](https://huggingface.co/collections/nvidia/inference-optimized-checkpoints-with-model-optimizer) +or [NeuralMagic](https://huggingface.co/collections/neuralmagic) collections on HF for some +popular quality validated quantized models. Quantized models must be validated via benchmarks post-quantization +to guard against abnormal quantization loss regressions. + +## Offline Quantization + +To load already quantized models, simply load the model weights and config. **Again, if the model has been quantized offline, +there's no need to add `--quantization` argument when starting the engine. The quantization method will be parsed from the +downloaded Hugging Face config. For example, DeepSeek V3/R1 models are already in FP8, so do not add redundant parameters.** + +```bash Command +python3 -m sglang.launch_server \ + --model-path hugging-quants/Meta-Llama-3.1-8B-Instruct-AWQ-INT4 \ + --port 30000 --host 0.0.0.0 +``` + +Take note, if your model is **per-channel quantized (INT8 or FP8) with per-token dynamic quantization activation**, you can opt to include `--quantization w8a8_int8` or `--quantization w8a8_fp8` to invoke the corresponding CUTLASS int8_kernel or fp8_kernel in sgl-kernel. This action will ignore the Hugging Face config's quantization settings. For instance, with `neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8-dynamic`, if you execute with `--quantization w8a8_fp8`, the system will use the `W8A8Fp8Config` from SGLang to invoke the sgl-kernel, rather than the `CompressedTensorsConfig` for vLLM kernels. + +```bash Command +python3 -m sglang.launch_server \ + --model-path neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8-dynamic \ + --quantization w8a8_fp8 \ + --port 30000 --host 0.0.0.0 +``` + +### Examples of Offline Model Quantization + +#### Using [Unsloth](https://docs.unsloth.ai/basics/inference-and-deployment/sglang-guide) + +We strongly suggest the use of Unsloth to quantize and load the model. Please refer to [SGLang Deployment & Inference Guide with Unsloth](https://docs.unsloth.ai/basics/inference-and-deployment/sglang-guide). + +#### Using [auto-round](https://github.com/intel/auto-round) + +```bash Command +# Install +pip install auto-round +``` + +- LLM quantization + +```py Example +# for LLM +from auto_round import AutoRound +model_id = "meta-llama/Llama-3.2-1B-Instruct" +quant_path = "Llama-3.2-1B-Instruct-autoround-4bit" +# Scheme examples: "W2A16", "W3A16", "W4A16", "W8A16", "NVFP4", "MXFP4" (no real kernels), "GGUF:Q4_K_M", etc. +scheme = "W4A16" +format = "auto_round" +autoround = AutoRound(model_id, scheme=scheme) +autoround.quantize_and_save(quant_path, format=format) # quantize and save + +``` + +- VLM quantization +```py Example +# for VLMs +from auto_round import AutoRoundMLLM +model_name = "Qwen/Qwen2-VL-2B-Instruct" +quant_path = "Qwen2-VL-2B-Instruct-autoround-4bit" +scheme = "W4A16" +format = "auto_round" +autoround = AutoRoundMLLM(model_name, scheme) +autoround.quantize_and_save(quant_path, format=format) # quantize and save + +``` + +- Command Line Usage (Gaudi/CPU/Intel GPU/CUDA) + +```bash Command +auto-round \ + --model meta-llama/Llama-3.2-1B-Instruct \ + --bits 4 \ + --group_size 128 \ + --format "auto_round" \ + --output_dir ./tmp_autoround +``` + +- known issues + +Several limitations currently affect offline quantized model loading in sglang, These issues might be resolved in future updates of sglang. If you experience any problems, consider using Hugging Face Transformers as an alternative. + +1. Mixed-bit Quantization Limitations + + Mixed-bit quantization is not fully supported. Due to vLLM's layer fusion (e.g., QKV fusion), applying different bit-widths to components within the same fused layer can lead to compatibility issues. + + +2. Limited Support for Quantized MoE Models + + Quantized MoE models may encounter inference issues due to kernel limitations (e.g., lack of support for mlp.gate layer quantization). please try to skip quantizing these layers to avoid such errors. + + +3. Limited Support for Quantized VLMs + + {/* VLM failure cases */} + + Qwen2.5-VL-7B + + auto_round:auto_gptq format: Accuracy is close to zero. + + GPTQ format: Fails with: + ```text Output + The output size is not aligned with the quantized weight shape + ``` + auto_round:auto_awq and AWQ format: These work as expected. + + +#### Using [GPTQModel](https://github.com/ModelCloud/GPTQModel) + +```bash Command +# install +pip install gptqmodel --no-build-isolation -v +``` + +```py Example +from datasets import load_dataset +from gptqmodel import GPTQModel, QuantizeConfig + +model_id = "meta-llama/Llama-3.2-1B-Instruct" +quant_path = "Llama-3.2-1B-Instruct-gptqmodel-4bit" + +calibration_dataset = load_dataset( + "allenai/c4", data_files="en/c4-train.00001-of-01024.json.gz", + split="train" + ).select(range(1024))["text"] + +quant_config = QuantizeConfig(bits=4, group_size=128) # quantization config +model = GPTQModel.load(model_id, quant_config) # load model + +model.quantize(calibration_dataset, batch_size=2) # quantize +model.save(quant_path) # save model +``` + +#### Using [LLM Compressor](https://github.com/vllm-project/llm-compressor/) + +```bash Command +# install +pip install llmcompressor +``` + +Here, we take quantize `meta-llama/Meta-Llama-3-8B-Instruct` to `FP8` as an example to elaborate on how to do offline quantization. + +```python Example +from transformers import AutoTokenizer +from llmcompressor.transformers import SparseAutoModelForCausalLM +from llmcompressor.transformers import oneshot +from llmcompressor.modifiers.quantization import QuantizationModifier + +# Step 1: Load the original model. +MODEL_ID = "meta-llama/Meta-Llama-3-8B-Instruct" + +model = SparseAutoModelForCausalLM.from_pretrained( + MODEL_ID, device_map="auto", torch_dtype="auto") +tokenizer = AutoTokenizer.from_pretrained(MODEL_ID) + +# Step 2: Perform offline quantization. +# Step 2.1: Configure the simple PTQ quantization. +recipe = QuantizationModifier( + targets="Linear", scheme="FP8_DYNAMIC", ignore=["lm_head"]) + +# Step 2.2: Apply the quantization algorithm. +oneshot(model=model, recipe=recipe) + +# Step 3: Save the model. +SAVE_DIR = MODEL_ID.split("/")[1] + "-FP8-Dynamic" +model.save_pretrained(SAVE_DIR) +tokenizer.save_pretrained(SAVE_DIR) +``` + +Then, you can directly use the quantized model with `SGLang`, by using the following command: + +```bash Command +python3 -m sglang.launch_server \ + --model-path $PWD/Meta-Llama-3-8B-Instruct-FP8-Dynamic \ + --port 30000 --host 0.0.0.0 +``` + +#### Using [NVIDIA ModelOpt](https://github.com/NVIDIA/Model-Optimizer) + +NVIDIA Model Optimizer (ModelOpt) provides advanced quantization techniques optimized for NVIDIA hardware. SGLang includes a streamlined workflow for quantizing models with ModelOpt and automatically exporting them for deployment. + +##### Installation + +First, install ModelOpt. You can either install it directly or as an optional SGLang dependency: + +```bash Command +# Option 1: Install ModelOpt directly +pip install nvidia-modelopt + +# Option 2: Install SGLang with ModelOpt support (recommended) +pip install sglang[modelopt] +``` + +##### Quantization and Export Workflow + +SGLang provides an example script that demonstrates the complete ModelOpt quantization and export workflow: + +```bash Command +# Quantize and export a model using ModelOpt FP8 quantization +python examples/usage/modelopt_quantize_and_export.py quantize \ + --model-path TinyLlama/TinyLlama-1.1B-Chat-v1.0 \ + --export-dir ./quantized_tinyllama_fp8 \ + --quantization-method modelopt_fp8 + +# For FP4 quantization +python examples/usage/modelopt_quantize_and_export.py quantize \ + --model-path TinyLlama/TinyLlama-1.1B-Chat-v1.0 \ + --export-dir ./quantized_tinyllama_fp4 \ + --quantization-method modelopt_fp4 +``` + +##### Available Quantization Methods + +- `modelopt_fp8`: FP8 quantization with optimal performance on NVIDIA Hopper and Blackwell GPUs +- `modelopt_fp4`: FP4 quantization with optimal performance on Nvidia Blackwell GPUs + +##### Python API Usage + +You can also use ModelOpt quantization programmatically: + +```python Example +import sglang as sgl +from sglang.srt.configs.device_config import DeviceConfig +from sglang.srt.configs.load_config import LoadConfig +from sglang.srt.configs.model_config import ModelConfig +from sglang.srt.model_loader.loader import get_model_loader + +# Configure model with ModelOpt quantization and export +model_config = ModelConfig( + model_path="TinyLlama/TinyLlama-1.1B-Chat-v1.0", + quantization="modelopt_fp8", # or "modelopt_fp4" + trust_remote_code=True, +) + +load_config = LoadConfig( + modelopt_export_path="./exported_model", + modelopt_checkpoint_save_path="./checkpoint.pth", # optional, fake quantized checkpoint +) +device_config = DeviceConfig(device="cuda") + +# Load and quantize the model (export happens automatically) +model_loader = get_model_loader(load_config, model_config) +quantized_model = model_loader.load_model( + model_config=model_config, + device_config=device_config, +) +``` + +##### Deploying Quantized Models + +After quantization and export, you can deploy the model with SGLang: + +```bash Command +# Deploy the exported quantized model +python -m sglang.launch_server \ + --model-path ./quantized_tinyllama_fp8 \ + --quantization modelopt \ + --port 30000 --host 0.0.0.0 +``` + +Or using the Python API: + +```python Example +import sglang as sgl + +# Deploy exported ModelOpt quantized model +llm = sgl.Engine( + model_path="./quantized_tinyllama_fp8", + quantization="modelopt" +) + +# Run inference +prompts = ["Hello, how are you?", "What is the capital of France?"] +sampling_params = {"temperature": 0.8, "top_p": 0.95, "max_new_tokens": 100} +outputs = llm.generate(prompts, sampling_params) + +for i, output in enumerate(outputs): + print(f"Prompt: {prompts[i]}") + print(f"Output: {output.outputs[0].text}") +``` + +##### Advanced Features + +**Checkpoint Management**: Save and restore fake quantized checkpoints for reuse: + +```bash Command +# Save the fake quantized checkpoint during quantization +python examples/usage/modelopt_quantize_and_export.py quantize \ + --model-path meta-llama/Llama-3.2-1B-Instruct \ + --export-dir ./quantized_model \ + --quantization-method modelopt_fp8 \ + --checkpoint-save-path ./my_checkpoint.pth + +# The checkpoint can be reused for future quantization runs and skip calibration +``` + +**Export-only Workflow**: If you have a pre-existing fake quantized ModelOpt checkpoint, you can export it directly: + +```python Example +from sglang.srt.configs.device_config import DeviceConfig +from sglang.srt.configs.load_config import LoadConfig +from sglang.srt.configs.model_config import ModelConfig +from sglang.srt.model_loader.loader import get_model_loader + +model_config = ModelConfig( + model_path="meta-llama/Llama-3.2-1B-Instruct", + quantization="modelopt_fp8", + trust_remote_code=True, +) + +load_config = LoadConfig( + modelopt_checkpoint_restore_path="./my_checkpoint.pth", + modelopt_export_path="./exported_model", +) + +# Load and export the model +model_loader = get_model_loader(load_config, model_config) +model_loader.load_model(model_config=model_config, device_config=DeviceConfig()) +``` + +##### Benefits of ModelOpt + +- **Hardware Optimization**: Specifically optimized for NVIDIA GPU architectures +- **Advanced Quantization**: Supports cutting-edge FP8 and FP4 quantization techniques +- **Seamless Integration**: Automatic export to HuggingFace format for easy deployment +- **Calibration-based**: Uses calibration datasets for optimal quantization quality +- **Production Ready**: Enterprise-grade quantization with NVIDIA support + +## Online Quantization + +To enable online quantization, you can simply specify `--quantization` in the command line. For example, you can launch the server with the following command to enable `FP8` quantization for model `meta-llama/Meta-Llama-3.1-8B-Instruct`: + +```bash Command +python3 -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --quantization fp8 \ + --port 30000 --host 0.0.0.0 +``` + +Our team is working on supporting more online quantization methods. SGLang will soon support methods including but not limited to `["awq", "gptq", "marlin", "gptq_marlin", "awq_marlin", "bitsandbytes", "gguf"]`. + +### torchao online quantization method + +SGLang also supports quantization methods based on [torchao](https://github.com/pytorch/ao). You can simply specify `--torchao-config` in the command line to support this feature. For example, if you want to enable `int4wo-128` for model `meta-llama/Meta-Llama-3.1-8B-Instruct`, you can launch the server with the following command: + +```bash Command +python3 -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --torchao-config int4wo-128 \ + --port 30000 --host 0.0.0.0 +``` + +SGLang supports the following quantization methods based on torchao `["int8dq", "int8wo", "fp8wo", "fp8dq-per_tensor", "fp8dq-per_row", "int4wo-32", "int4wo-64", "int4wo-128", "int4wo-256"]`. + +Note: According to [this issue](https://github.com/sgl-project/sglang/issues/2219#issuecomment-2561890230), `"int8dq"` method currently has some bugs when using together with cuda graph capture. So we suggest to disable cuda graph capture when using `"int8dq"` method. Namely, please use the following command: + +```bash Command +python3 -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --torchao-config int8dq \ + --disable-cuda-graph \ + --port 30000 --host 0.0.0.0 +``` + +### `quark_int4fp8_moe` online quantization method + +SGLang running on AMD GPUs (CDNA3 or CDNA4 architecture) supports the quantization method `--quantization quark_int4fp8_moe`, that will replace [MoE layers](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/layers/moe/fused_moe_triton/layer.py) originally in high precision (bfloat16, float16 or float32) to use weights dynamically quantized to int4, that are upcasted to float8 during inference to run compute in float8 precision with activations dynamically quantized on the fly to float8. + +Other layers (e.g. projections in the attention layers) have their weights quantized online to float8 directly. + +## Reference + +- [GPTQModel](https://github.com/ModelCloud/GPTQModel) +- [LLM Compressor](https://github.com/vllm-project/llm-compressor/) +- [NVIDIA Model Optimizer (ModelOpt)](https://github.com/NVIDIA/Model-Optimizer) +- [Torchao: PyTorch Architecture Optimization](https://github.com/pytorch/ao) +- [vLLM Quantization](https://docs.vllm.ai/en/latest/quantization/) +- [auto-round](https://github.com/intel/auto-round) diff --git a/docs_new/docs/advanced_features/quantized_kv_cache.mdx b/docs_new/docs/advanced_features/quantized_kv_cache.mdx new file mode 100644 index 000000000..034741fe0 --- /dev/null +++ b/docs_new/docs/advanced_features/quantized_kv_cache.mdx @@ -0,0 +1,256 @@ +--- +title: "Quantized KV Cache" +metatags: + description: "SGLang quantized KV cache: FP8 E4M3/E5M2 and FP4 E2M1 formats, memory savings up to 3.56x, scaling factors, accuracy benchmarks." +--- +Quantized KV cache reduces the memory footprint of key-value cache storage by using lower-precision data types (FP8 or FP4) instead of the default model precision in BF16. During autoregressive generation, LLMs cache previously computed key-value pairs to avoid redundant calculations. The KV cache typically consumes a significant portion of GPU memory, especially for long sequences. + +Quantized KV cache is a memory optimization technique that primarily benefits throughput by allowing more tokens to be cached, but may introduce minimal accuracy degradation depending on the quantization format used. + + +**Performance Warning**: When quantized KV cache must be dequantized before use in attention operations, performance can be extremely slow if dequantization is not fused with the attention kernel. Always verify that your chosen attention backend supports quantized KV cache. Backends without fused support may experience significant throughput degradation, potentially negating the memory benefits. + +**Backend Support**: Not all attention backends support quantized KV cache. Refer to [Attention Backend](./attention_backend) for which backends support it. + + +## Supported Formats + +SGLang supports the following quantized KV cache formats: + +### FP8 Format + +[OCP (Open Compute Project)](https://www.opencompute.org) specifies two common 8-bit floating point formats: + +- **E5M2** (5 exponent bits, 2 mantissa bits): Larger dynamic range (±57344.0), lower precision +- **E4M3** (4 exponent bits, 3 mantissa bits): Higher precision, smaller dynamic range (±240.0) + +### FP4 Format + + +FP4 quantization is currently experimental. + + +[OCP (Open Compute Project)](https://www.opencompute.org) specifies MXFP4 (Microscaling FP4), a 4-bit floating-point format: + +- **E2M1** (1 sign bit, 2 exponent bits, 1 mantissa bit): Uses block-based microscaling where tensors are divided into blocks of consecutive elements, with each block sharing a single 8-bit exponential scaling factor. While OCP specifies blocks of 32 elements, SGLang's current implementation uses blocks of 16 elements for KV cache quantization. + +## Usage + +### Enabling Quantized KV Cache + +To enable quantized KV cache, use the `--kv-cache-dtype` argument when launching the server: + +```bash Command +# Enable FP8 E5M2 KV cache +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-R1-0528 \ + --kv-cache-dtype fp8_e5m2 \ + +# Enable FP8 E4M3 KV cache +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-R1-0528 \ + --kv-cache-dtype fp8_e4m3 \ + +# Enable FP4 E2M1 KV cache +python3 -m sglang.launch_server \ + --model-path nvidia/DeepSeek-R1-0528-NVFP4 \ + --kv-cache-dtype fp4_e2m1 \ +``` + +### Scaling Factors + +FP8 quantization requires scaling factors to properly quantize and dequantize the KV cache. + + +Currently, only per-tensor (scalar) scaling factors are supported. + + +Scaling factors can be: + +- **Loaded from checkpoints**: Pre-quantized models (e.g., ModelOpt) may include `k_scale` and `v_scale` parameters that are automatically loaded +- **Provided via JSON**: Supply scaling factors via `--quantization-param-path`. + +The JSON file should follow this format: + +```json Config +{ + "kv_cache": { + "dtype": "float8_e4m3fn", + "scaling_factor": { + "0": { + "0": 1.0, + "1": 1.0 + } + } + } +} +``` + +Where the outer keys in `scaling_factor` are tensor parallel ranks and inner keys are layer indices. + + +If scaling factors are not provided and not found in the checkpoint, it will default to 1.0, which may cause accuracy issues. + + + +**FP4 (MXFP4)**: Unlike FP8, FP4 quantization handles scaling factors automatically on-the-fly during quantization and dequantization. No pre-quantized models or external scaling factor files are required—the block-based scaling factors are computed dynamically as needed. + + +## Performance Considerations + +### Memory Savings + +Quantized KV cache provides significant memory savings: +- **BF16 → FP4**: Supports approximately 3.56× more tokens than BF16 (accounting for scaling factor overhead) + + +FP4 and FP8 quantization require additional memory for block-based scaling factors, which reduces the effective memory savings compared to the raw bit-width reduction. FP4 with block size 16 supports approximately 1.78× more tokens than FP8, and approximately 3.56× more tokens than BF16. The relative token capacity between FP8 and BF16 can be derived from these ratios. + + +This enables longer context lengths or more concurrent requests within the same memory budget. + +### Accuracy Impact + +#### FP8 Accuracy + +FP8 E4M3 quantization typically introduces minimal accuracy degradation. The impact depends on model architecture, sequence length, and quantization format (generally, E4M3 has better accuracy than E5M2). + +#### FP4 Accuracy + +FP4 (MXFP4) quantization provides significant memory savings with varying accuracy impact depending on model size and dataset complexity. Preliminary accuracy test results from [PR #10078](https://github.com/sgl-project/sglang/pull/10078) (MLA) and [PR #12612](https://github.com/sgl-project/sglang/pull/12612) (MHA) show: + +**Large Models (e.g., Qwen3-235B-A22B, DeepSeek-R1-0528)** + +On large-scale models, FP4 maintains accuracy close to FP8/BF16, especially on simpler datasets: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelDatasetKV16KV8 (FP8 E4M3)KV4 (FP4 E2M1)
      Qwen3-235B-A22Bgsm8k0.91680.91810.9186
      Qwen3-235B-A22Baime250.77330.73330.6000
      Qwen3-235B-A22Bgpqa_diamond0.70100.68990.6778
      DeepSeek-R1-0528gsm8k0.91570.91540.9124
      DeepSeek-R1-0528aime250.50670.49340.4000
      DeepSeek-R1-0528gpqa_diamond0.77070.76970.7273
      + +**Smaller Models (e.g., GPT-OSS-120B)** + +On smaller models, FP4 shows more pronounced accuracy drops, particularly on challenging datasets: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelDatasetKV16KV8 (FP8 E4M3)KV4 (FP4 E2M1)
      GPT-OSS-120Bgsm8k0.91610.91630.9152
      GPT-OSS-120Baime250.75330.76670.3533
      GPT-OSS-120Bgpqa_diamond0.50810.54340.3202
      + +**Key Observations:** + +- **Simple datasets (e.g., gsm8k)**: FP4 maintains accuracy close to FP8/BF16 across model sizes +- **Model size matters**: Large models (200B+ parameters) generally tolerate FP4 quantization better than smaller models +- **Context length**: Accuracy degradation may be more pronounced in long-context scenarios, as the accumulation of the quantization error may become significant. + + +Evaluate FP4 accuracy on your specific model and workload. Large models on simpler tasks typically show minimal degradation, while smaller models or complex reasoning tasks may require FP8 or BF16 for acceptable accuracy. + + +## Best Practices + +- **Use pre-quantized models**: Prefer models quantized offline with scaling factors included in the checkpoint. +- **Choose the right format**: Use `fp8_e4m3` for better accuracy (recommended), `fp8_e5m2` for larger dynamic range, or `fp4_e2m1` for maximum memory savings (experimental) +- **Check backend compatibility**: Verify that your chosen attention backend supports quantized KV cache + + +See also: +- [Quantization](./quantization) +- [Attention Backend](./attention_backend) +- [Server Arguments](./server_arguments) + diff --git a/docs_new/docs/advanced_features/rfork.mdx b/docs_new/docs/advanced_features/rfork.mdx new file mode 100644 index 000000000..d14109bc2 --- /dev/null +++ b/docs_new/docs/advanced_features/rfork.mdx @@ -0,0 +1,82 @@ +--- +title: "R-Fork" +metatags: + description: "SGLang R-Fork: zero-copy GPU-to-GPU weight loading, reduce boot-up time from minutes to seconds. NCCL and TransferEngine backends." +--- +R-Fork (Tensor Remote Fork) is a novel weight loading methodology that leverages efficient inter-node GPU-to-GPU data transfer path to load tensors from a running SGLang instance to a new instance with zero-copy. It can significantly optimize the SGLang instance boot-up time by reducing model weights loading from several minutes to mere seconds. + +To learn more details about R-Fork, please check **[R-Fork blog](https://lmsys.org/blog/2025-12-10-rfork/)** + +## Usage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentUsage
      load-formatset to `remote_instance` to enable R-Fork.
      remote-instance-weight-loader-backend`nccl` or `transfer_engine`, default value is `nccl`
      remote-instance-weight-loader-seed-instance-ipIP address of the seed instance who will provide the model weight
      remote-instance-weight-loader-seed-instance-service-portthe port that the seed instance's HTTP server is listening on
      remote-instance-weight-loader-send-weights-group-portsthe list of available ports on the seed instance that will be used to build NCCL communication groups between seed and client instance. This argument is only needed by `nccl` backend.
      remote-instance-weight-loader-start-seed-via-transfer-engineset to start seed service that supports TransferEngine as backend. It is needed for seed instances when using `transfer_engine` as backend.
      + +### NCCL as backend + +seed instance: +```shell Command +python -m sglang.launch_server [args] +``` + +client instance: +```shell Command +python -m sglang.launch_server [args] \ + --load-format remote_instance \ + --remote-instance-weight-loader-seed-instance-ip [seed_instance_ip] \ + --remote-instance-weight-loader-seed-instance-service-port [seed_instance_service_port] \ + --remote-instance-weight-loader-send-weights-group-ports [send_weights_nccl_group_ports_list] \ + --remote-instance-weight-loader-backend nccl +``` + +### TransferEngine as backend + +seed instance: +```shell Command +python -m sglang.launch_server [args] \ + --remote-instance-weight-loader-start-seed-via-transfer-engine +``` + +```shell Command +python -m sglang.launch_server [args] \ + --load-format remote_instance \ + --remote-instance-weight-loader-seed-instance-ip [seed_instance_ip] \ + --remote-instance-weight-loader-seed-instance-service-port [seed_instance_service_port] \ + --remote-instance-weight-loader-backend transfer_engine +``` diff --git a/docs_new/docs/advanced_features/separate_reasoning.ipynb b/docs_new/docs/advanced_features/separate_reasoning.ipynb new file mode 100644 index 000000000..fde97d8a6 --- /dev/null +++ b/docs_new/docs/advanced_features/separate_reasoning.ipynb @@ -0,0 +1,377 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reasoning Parser\n", + "\n", + "SGLang supports parsing reasoning content out from \"normal\" content for reasoning models such as [DeepSeek R1](https://huggingface.co/deepseek-ai/DeepSeek-R1).\n", + "\n", + "## Supported Models & Parsers\n", + "\n", + "| Model | Reasoning tags | Parser | Notes |\n", + "|---------|-----------------------------|------------------|-------|\n", + "| [DeepSeek‑R1 series](https://huggingface.co/collections/deepseek-ai/deepseek-r1-678e1e131c0169c0bc89728d) | `` … `` | `deepseek-r1` | Supports all variants (R1, R1-0528, R1-Distill) |\n", + "| [DeepSeek‑V3 series](https://huggingface.co/deepseek-ai/DeepSeek-V3.1) | `` … `` | `deepseek-v3` | Including [DeepSeek‑V3.2](https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Exp). Supports `thinking` parameter |\n", + "| [Standard Qwen3 models](https://huggingface.co/collections/Qwen/qwen3-67dd247413f0e2e4f653967f) | `` … `` | `qwen3` | Supports `enable_thinking` parameter |\n", + "| [Qwen3-Thinking models](https://huggingface.co/Qwen/Qwen3-235B-A22B-Thinking-2507) | `` … `` | `qwen3` or `qwen3-thinking` | Always generates thinking content |\n", + "| [Kimi K2 Thinking](https://huggingface.co/moonshotai/Kimi-K2-Thinking) | `◁think▷` … `◁/think▷` | `kimi_k2` | Uses special thinking delimiters. Also requires `--tool-call-parser kimi_k2` for tool use. |\n", + "| [GPT OSS](https://huggingface.co/openai/gpt-oss-120b) | `<\\|channel\\|>analysis<\\|message\\|>` … `<\\|end\\|>` | `gpt-oss` | N/A |\n", + "### Model-Specific Behaviors\n", + "\n", + "**DeepSeek-R1 Family:**\n", + "- DeepSeek-R1: No `` start tag, jumps directly to thinking content\n", + "- DeepSeek-R1-0528: Generates both `` start and `` end tags\n", + "- Both are handled by the same `deepseek-r1` parser\n", + "\n", + "**DeepSeek-V3 Family:**\n", + "- DeepSeek-V3.1/V3.2: Hybrid model supporting both thinking and non-thinking modes, use the `deepseek-v3` parser and `thinking` parameter (NOTE: not `enable_thinking`)\n", + "\n", + "**Qwen3 Family:**\n", + "- Standard Qwen3 (e.g., Qwen3-2507): Use `qwen3` parser, supports `enable_thinking` in chat templates\n", + "- Qwen3-Thinking (e.g., Qwen3-235B-A22B-Thinking-2507): Use `qwen3` or `qwen3-thinking` parser, always thinks\n", + "\n", + "**Kimi K2:**\n", + "- Kimi K2 Thinking: Uses special `◁think▷` and `◁/think▷` tags. For agentic tool use, also specify `--tool-call-parser kimi_k2`.\n", + "\n", + "**GPT OSS:**\n", + "- GPT OSS: Uses special `<|channel|>analysis<|message|>` and `<|end|>` tags" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Usage\n", + "\n", + "### Launching the Server" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Specify the `--reasoning-parser` option." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "from openai import OpenAI\n", + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "\n", + "server_process, port = launch_server_cmd(\n", + " \"python3 -m sglang.launch_server --model-path deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --host 0.0.0.0 --reasoning-parser deepseek-r1 --log-level warning\"\n", + ")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that `--reasoning-parser` defines the parser used to interpret responses." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### OpenAI Compatible API\n", + "\n", + "Using the OpenAI compatible API, the contract follows the [DeepSeek API design](https://api-docs.deepseek.com/guides/reasoning_model) established with the release of DeepSeek-R1:\n", + "\n", + "- `reasoning_content`: The content of the CoT.\n", + "- `content`: The content of the final answer." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize OpenAI-like client\n", + "client = OpenAI(api_key=\"None\", base_url=f\"http://0.0.0.0:{port}/v1\")\n", + "model_name = client.models.list().data[0].id\n", + "\n", + "messages = [\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"What is 1+3?\",\n", + " }\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Non-Streaming Request" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response_non_stream = client.chat.completions.create(\n", + " model=model_name,\n", + " messages=messages,\n", + " temperature=0.6,\n", + " top_p=0.95,\n", + " stream=False, # Non-streaming\n", + " extra_body={\"separate_reasoning\": True},\n", + ")\n", + "print_highlight(\"==== Reasoning ====\")\n", + "print_highlight(response_non_stream.choices[0].message.reasoning_content)\n", + "\n", + "print_highlight(\"==== Text ====\")\n", + "print_highlight(response_non_stream.choices[0].message.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Streaming Request" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response_stream = client.chat.completions.create(\n", + " model=model_name,\n", + " messages=messages,\n", + " temperature=0.6,\n", + " top_p=0.95,\n", + " stream=True, # Non-streaming\n", + " extra_body={\"separate_reasoning\": True},\n", + ")\n", + "\n", + "reasoning_content = \"\"\n", + "content = \"\"\n", + "for chunk in response_stream:\n", + " if chunk.choices[0].delta.content:\n", + " content += chunk.choices[0].delta.content\n", + " if chunk.choices[0].delta.reasoning_content:\n", + " reasoning_content += chunk.choices[0].delta.reasoning_content\n", + "\n", + "print_highlight(\"==== Reasoning ====\")\n", + "print_highlight(reasoning_content)\n", + "\n", + "print_highlight(\"==== Text ====\")\n", + "print_highlight(content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Optionally, you can buffer the reasoning content to the last reasoning chunk (or the first chunk after the reasoning content)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response_stream = client.chat.completions.create(\n", + " model=model_name,\n", + " messages=messages,\n", + " temperature=0.6,\n", + " top_p=0.95,\n", + " stream=True, # Non-streaming\n", + " extra_body={\"separate_reasoning\": True, \"stream_reasoning\": False},\n", + ")\n", + "\n", + "reasoning_content = \"\"\n", + "content = \"\"\n", + "for chunk in response_stream:\n", + " if chunk.choices[0].delta.content:\n", + " content += chunk.choices[0].delta.content\n", + " if chunk.choices[0].delta.reasoning_content:\n", + " reasoning_content += chunk.choices[0].delta.reasoning_content\n", + "\n", + "print_highlight(\"==== Reasoning ====\")\n", + "print_highlight(reasoning_content)\n", + "\n", + "print_highlight(\"==== Text ====\")\n", + "print_highlight(content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The reasoning separation is enable by default when specify . \n", + "**To disable it, set the `separate_reasoning` option to `False` in request.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response_non_stream = client.chat.completions.create(\n", + " model=model_name,\n", + " messages=messages,\n", + " temperature=0.6,\n", + " top_p=0.95,\n", + " stream=False, # Non-streaming\n", + " extra_body={\"separate_reasoning\": False},\n", + ")\n", + "\n", + "print_highlight(\"==== Original Output ====\")\n", + "print_highlight(response_non_stream.choices[0].message.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### SGLang Native API " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoTokenizer\n", + "\n", + "tokenizer = AutoTokenizer.from_pretrained(\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\")\n", + "input = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "\n", + "gen_url = f\"http://localhost:{port}/generate\"\n", + "gen_data = {\n", + " \"text\": input,\n", + " \"sampling_params\": {\n", + " \"skip_special_tokens\": False,\n", + " \"max_new_tokens\": 1024,\n", + " \"temperature\": 0.6,\n", + " \"top_p\": 0.95,\n", + " },\n", + "}\n", + "gen_response = requests.post(gen_url, json=gen_data).json()[\"text\"]\n", + "\n", + "print_highlight(\"==== Original Output ====\")\n", + "print_highlight(gen_response)\n", + "\n", + "parse_url = f\"http://localhost:{port}/separate_reasoning\"\n", + "separate_reasoning_data = {\n", + " \"text\": gen_response,\n", + " \"reasoning_parser\": \"deepseek-r1\",\n", + "}\n", + "separate_reasoning_response_json = requests.post(\n", + " parse_url, json=separate_reasoning_data\n", + ").json()\n", + "print_highlight(\"==== Reasoning ====\")\n", + "print_highlight(separate_reasoning_response_json[\"reasoning_text\"])\n", + "print_highlight(\"==== Text ====\")\n", + "print_highlight(separate_reasoning_response_json[\"text\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Offline Engine API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sglang as sgl\n", + "from sglang.srt.parser.reasoning_parser import ReasoningParser\n", + "from sglang.utils import print_highlight\n", + "\n", + "llm = sgl.Engine(model_path=\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\")\n", + "tokenizer = AutoTokenizer.from_pretrained(\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\")\n", + "input = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "sampling_params = {\n", + " \"max_new_tokens\": 1024,\n", + " \"skip_special_tokens\": False,\n", + " \"temperature\": 0.6,\n", + " \"top_p\": 0.95,\n", + "}\n", + "result = llm.generate(prompt=input, sampling_params=sampling_params)\n", + "\n", + "generated_text = result[\"text\"] # Assume there is only one prompt\n", + "\n", + "print_highlight(\"==== Original Output ====\")\n", + "print_highlight(generated_text)\n", + "\n", + "parser = ReasoningParser(\"deepseek-r1\")\n", + "reasoning_text, text = parser.parse_non_stream(generated_text)\n", + "print_highlight(\"==== Reasoning ====\")\n", + "print_highlight(reasoning_text)\n", + "print_highlight(\"==== Text ====\")\n", + "print_highlight(text)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "llm.shutdown()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Supporting New Reasoning Model Schemas\n", + "\n", + "For future reasoning models, you can implement the reasoning parser as a subclass of `BaseReasoningFormatDetector` in `python/sglang/srt/reasoning_parser.py` and specify the reasoning parser for new reasoning model schemas accordingly." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs_new/docs/advanced_features/separate_reasoning.mdx b/docs_new/docs/advanced_features/separate_reasoning.mdx new file mode 100644 index 000000000..e0bea35ee --- /dev/null +++ b/docs_new/docs/advanced_features/separate_reasoning.mdx @@ -0,0 +1,317 @@ +--- +title: "Reasoning Parser" +metatags: + description: "SGLang reasoning parser: separate thinking content from output for DeepSeek R1, Qwen3, Kimi K2, GPT-OSS reasoning models." +--- +SGLang supports parsing reasoning content out from "normal" content for reasoning models such as [DeepSeek R1](https://huggingface.co/deepseek-ai/DeepSeek-R1). + +## Supported Models & Parsers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelReasoning tagsParserNotes
      [DeepSeek‑R1 series](https://huggingface.co/collections/deepseek-ai/deepseek-r1-678e1e131c0169c0bc89728d)`` … ```deepseek-r1`Supports all variants (R1, R1-0528, R1-Distill)
      [DeepSeek‑V3 series](https://huggingface.co/deepseek-ai/DeepSeek-V3.1)`` … ```deepseek-v3`Including [DeepSeek‑V3.2](https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Exp). Supports `thinking` parameter
      [Standard Qwen3 models](https://huggingface.co/collections/Qwen/qwen3-67dd247413f0e2e4f653967f)`` … ```qwen3`Supports `enable_thinking` parameter
      [Qwen3-Thinking models](https://huggingface.co/Qwen/Qwen3-235B-A22B-Thinking-2507)`` … ```qwen3` or `qwen3-thinking`Always generates thinking content
      [Kimi K2 Thinking](https://huggingface.co/moonshotai/Kimi-K2-Thinking)`◁think▷` … `◁/think▷``kimi_k2`Uses special thinking delimiters. Also requires `--tool-call-parser kimi_k2` for tool use.
      [GPT OSS](https://huggingface.co/openai/gpt-oss-120b)`<|channel|>analysis<|message|>` … `<|end|>``gpt-oss`N/A
      +### Model-Specific Behaviors + +**DeepSeek-R1 Family:** +- DeepSeek-R1: No `` start tag, jumps directly to thinking content +- DeepSeek-R1-0528: Generates both `` start and `` end tags +- Both are handled by the same `deepseek-r1` parser + +**DeepSeek-V3 Family:** +- DeepSeek-V3.1/V3.2: Hybrid model supporting both thinking and non-thinking modes, use the `deepseek-v3` parser and `thinking` parameter (NOTE: not `enable_thinking`) + +**Qwen3 Family:** +- Standard Qwen3 (e.g., Qwen3-2507): Use `qwen3` parser, supports `enable_thinking` in chat templates +- Qwen3-Thinking (e.g., Qwen3-235B-A22B-Thinking-2507): Use `qwen3` or `qwen3-thinking` parser, always thinks + +**Kimi K2:** +- Kimi K2 Thinking: Uses special `◁think▷` and `◁/think▷` tags. For agentic tool use, also specify `--tool-call-parser kimi_k2`. + +**GPT OSS:** +- GPT OSS: Uses special `<|channel|>analysis<|message|>` and `<|end|>` tags + + +## Usage + +### Launching the Server + + +Specify the `--reasoning-parser` option. + + + +```python Example +import requests +from openai import OpenAI +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, print_highlight, terminate_process + +server_process, port = launch_server_cmd( + "python3 -m sglang.launch_server --model-path deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --host 0.0.0.0 --reasoning-parser deepseek-r1 --log-level warning" +) + +wait_for_server(f"http://localhost:{port}") +``` + +Note that `--reasoning-parser` defines the parser used to interpret responses. + + +### OpenAI Compatible API + +Using the OpenAI compatible API, the contract follows the [DeepSeek API design](https://api-docs.deepseek.com/guides/reasoning_model) established with the release of DeepSeek-R1: + +- `reasoning_content`: The content of the CoT. +- `content`: The content of the final answer. + + + +```python Example +# Initialize OpenAI-like client +client = OpenAI(api_key="None", base_url=f"http://0.0.0.0:{port}/v1") +model_name = client.models.list().data[0].id + +messages = [ + { + "role": "user", + "content": "What is 1+3?", + } +] +``` + +#### Non-Streaming Request + + + +```python Example +response_non_stream = client.chat.completions.create( + model=model_name, + messages=messages, + temperature=0.6, + top_p=0.95, + stream=False, # Non-streaming + extra_body={"separate_reasoning": True}, +) +print_highlight("==== Reasoning ====") +print_highlight(response_non_stream.choices[0].message.reasoning_content) + +print_highlight("==== Text ====") +print_highlight(response_non_stream.choices[0].message.content) +``` + +#### Streaming Request + + + +```python Example +response_stream = client.chat.completions.create( + model=model_name, + messages=messages, + temperature=0.6, + top_p=0.95, + stream=True, # Non-streaming + extra_body={"separate_reasoning": True}, +) + +reasoning_content = "" +content = "" +for chunk in response_stream: + if chunk.choices[0].delta.content: + content += chunk.choices[0].delta.content + if chunk.choices[0].delta.reasoning_content: + reasoning_content += chunk.choices[0].delta.reasoning_content + +print_highlight("==== Reasoning ====") +print_highlight(reasoning_content) + +print_highlight("==== Text ====") +print_highlight(content) +``` + +Optionally, you can buffer the reasoning content to the last reasoning chunk (or the first chunk after the reasoning content). + + + +```python Example +response_stream = client.chat.completions.create( + model=model_name, + messages=messages, + temperature=0.6, + top_p=0.95, + stream=True, # Non-streaming + extra_body={"separate_reasoning": True, "stream_reasoning": False}, +) + +reasoning_content = "" +content = "" +for chunk in response_stream: + if chunk.choices[0].delta.content: + content += chunk.choices[0].delta.content + if chunk.choices[0].delta.reasoning_content: + reasoning_content += chunk.choices[0].delta.reasoning_content + +print_highlight("==== Reasoning ====") +print_highlight(reasoning_content) + +print_highlight("==== Text ====") +print_highlight(content) +``` + +The reasoning separation is enable by default when specify . +**To disable it, set the `separate_reasoning` option to `False` in request.** + + + +```python Example +response_non_stream = client.chat.completions.create( + model=model_name, + messages=messages, + temperature=0.6, + top_p=0.95, + stream=False, # Non-streaming + extra_body={"separate_reasoning": False}, +) + +print_highlight("==== Original Output ====") +print_highlight(response_non_stream.choices[0].message.content) +``` + +### SGLang Native API + + + +```python Example +from transformers import AutoTokenizer + +tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-R1-Distill-Qwen-7B") +input = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) + +gen_url = f"http://localhost:{port}/generate" +gen_data = { + "text": input, + "sampling_params": { + "skip_special_tokens": False, + "max_new_tokens": 1024, + "temperature": 0.6, + "top_p": 0.95, + }, +} +gen_response = requests.post(gen_url, json=gen_data).json()["text"] + +print_highlight("==== Original Output ====") +print_highlight(gen_response) + +parse_url = f"http://localhost:{port}/separate_reasoning" +separate_reasoning_data = { + "text": gen_response, + "reasoning_parser": "deepseek-r1", +} +separate_reasoning_response_json = requests.post( + parse_url, json=separate_reasoning_data +).json() +print_highlight("==== Reasoning ====") +print_highlight(separate_reasoning_response_json["reasoning_text"]) +print_highlight("==== Text ====") +print_highlight(separate_reasoning_response_json["text"]) +``` + + +```python Example +terminate_process(server_process) +``` + +### Offline Engine API + + + +```python Example +import sglang as sgl +from sglang.srt.parser.reasoning_parser import ReasoningParser +from sglang.utils import print_highlight + +llm = sgl.Engine(model_path="deepseek-ai/DeepSeek-R1-Distill-Qwen-7B") +tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-R1-Distill-Qwen-7B") +input = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +sampling_params = { + "max_new_tokens": 1024, + "skip_special_tokens": False, + "temperature": 0.6, + "top_p": 0.95, +} +result = llm.generate(prompt=input, sampling_params=sampling_params) + +generated_text = result["text"] # Assume there is only one prompt + +print_highlight("==== Original Output ====") +print_highlight(generated_text) + +parser = ReasoningParser("deepseek-r1") +reasoning_text, text = parser.parse_non_stream(generated_text) +print_highlight("==== Reasoning ====") +print_highlight(reasoning_text) +print_highlight("==== Text ====") +print_highlight(text) +``` + + +```python Example +llm.shutdown() +``` + +## Supporting New Reasoning Model Schemas + +For future reasoning models, you can implement the reasoning parser as a subclass of `BaseReasoningFormatDetector` in `python/sglang/srt/reasoning_parser.py` and specify the reasoning parser for new reasoning model schemas accordingly. diff --git a/docs_new/docs/advanced_features/server_arguments.mdx b/docs_new/docs/advanced_features/server_arguments.mdx new file mode 100644 index 000000000..e183be1ce --- /dev/null +++ b/docs_new/docs/advanced_features/server_arguments.mdx @@ -0,0 +1,2871 @@ +--- +title: "Server Arguments" +metatags: + description: "SGLang server arguments: model selection, TP/DP parallelism, memory management, quantization, logging, and optimization options." +--- +This page provides a list of server arguments used in the command line to configure the behavior +and performance of the language model server during deployment. These arguments enable users to +customize key aspects of the server, including model selection, parallelism policies, +memory management, and optimization techniques. +You can find all arguments by `python3 -m sglang.launch_server --help` + +## Common launch commands + +- To use a configuration file, create a YAML file with your server arguments and specify it with `--config`. CLI arguments will override config file values. + + ```bash Command + # Create config.yaml + cat > config.yaml << EOF + model-path: meta-llama/Meta-Llama-3-8B-Instruct + host: 0.0.0.0 + port: 30000 + tensor-parallel-size: 2 + enable-metrics: true + log-requests: true + EOF + + # Launch server with config file + python -m sglang.launch_server --config config.yaml + ``` + +- To enable multi-GPU tensor parallelism, add `--tp 2`. If it reports the error "peer access is not supported between these two devices", add `--enable-p2p-check` to the server launch command. + + ```bash Command + python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --tp 2 + ``` + +- To enable multi-GPU data parallelism, add `--dp 2`. Data parallelism is better for throughput if there is enough memory. It can also be used together with tensor parallelism. The following command uses 4 GPUs in total. We recommend [SGLang Model Gateway (former Router)](../advanced_features/sgl_model_gateway) for data parallelism. + + ```bash Command + python -m sglang_router.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --dp 2 --tp 2 + ``` + +- If you see out-of-memory errors during serving, try to reduce the memory usage of the KV cache pool by setting a smaller value of `--mem-fraction-static`. The default value is `0.9`. + + ```bash Command + python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --mem-fraction-static 0.7 + ``` + +- See [hyperparameter tuning](./hyperparameter_tuning) on tuning hyperparameters for better performance. +- For docker and Kubernetes runs, you need to set up shared memory which is used for communication between processes. See `--shm-size` for docker and `/dev/shm` size update for Kubernetes manifests. +- If you see out-of-memory errors during prefill for long prompts, try to set a smaller chunked prefill size. + + ```bash Command + python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --chunked-prefill-size 4096 + ``` + +- To enable `torch.compile` acceleration, add `--enable-torch-compile`. It accelerates small models on small batch sizes. By default, the cache path is located at `/tmp/torchinductor_root`, you can customize it using environment variable `TORCHINDUCTOR_CACHE_DIR`. For more details, please refer to [PyTorch official documentation](https://pytorch.org/tutorials/recipes/torch_compile_caching_tutorial.html) and [Enabling cache for torch.compile](../references/torch_compile_cache). +- To enable torchao quantization, add `--torchao-config int4wo-128`. It supports other [quantization strategies (INT8/FP8)](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/server_args.py) as well. +- To enable fp8 weight quantization, add `--quantization fp8` on a fp16 checkpoint or directly load a fp8 checkpoint without specifying any arguments. +- To enable fp8 kv cache quantization, add `--kv-cache-dtype fp8_e5m2`. +- To enable deterministic inference and batch invariant operations, add `--enable-deterministic-inference`. More details can be found in [deterministic inference document](../advanced_features/deterministic_inference). +- If the model does not have a chat template in the Hugging Face tokenizer, you can specify a [custom chat template](../references/custom_chat_template). If the tokenizer has multiple named templates (e.g., 'default', 'tool_use'), you can select one using `--hf-chat-template-name tool_use`. +- To run tensor parallelism on multiple nodes, add `--nnodes 2`. If you have two nodes with two GPUs on each node and want to run TP=4, let `sgl-dev-0` be the hostname of the first node and `50000` be an available port, you can use the following commands. If you meet deadlock, please try to add `--disable-cuda-graph` + + ```bash Command + # Node 0 + python -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3-8B-Instruct \ + --tp 4 \ + --dist-init-addr sgl-dev-0:50000 \ + --nnodes 2 \ + --node-rank 0 + + # Node 1 + python -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3-8B-Instruct \ + --tp 4 \ + --dist-init-addr sgl-dev-0:50000 \ + --nnodes 2 \ + --node-rank 1 + ``` + +Please consult the documentation below and [server_args.py](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/server_args.py) to learn more about the arguments you may provide when launching a server. + +## Model and tokenizer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      ` --model-path`
      `--model`
      The path of the model weights. This can be a local folder or a Hugging Face repo ID.` None`Type: str
      ` --tokenizer-path`The path of the tokenizer.` None`Type: str
      ` --tokenizer-mode`Tokenizer mode. 'auto' will use the fast tokenizer if available, and 'slow' will always use the slow tokenizer.` auto`` auto`, `slow`
      ` --tokenizer-worker-num`The worker num of the tokenizer manager.` 1`Type: int
      ` --skip-tokenizer-init`If set, skip init tokenizer and pass input_ids in generate request.` False`bool flag (set to enable)
      ` --load-format`The format of the model weights to load. "auto" will try to load the weights in the safetensors format and fall back to the pytorch bin format if safetensors format is not available. "pt" will load the weights in the pytorch bin format. "safetensors" will load the weights in the safetensors format. "npcache" will load the weights in pytorch format and store a numpy cache to speed up the loading. "dummy" will initialize the weights with random values, which is mainly for profiling. "gguf" will load the weights in the gguf format. "bitsandbytes" will load the weights using bitsandbytes quantization. "layered" loads weights layer by layer so that one can quantize a layer before loading another to make the peak memory envelope smaller. "flash_rl" will load the weights in flash_rl format. "fastsafetensors" and "private" are also supported.` auto`` auto`, `pt`, `safetensors`, `npcache`, `dummy`, `sharded_state`, `gguf`, `bitsandbytes`, `layered`, `flash_rl`, `remote`, `remote_instance`, `fastsafetensors`, `private`
      ` --model-loader-extra-config`Extra config for model loader. This will be passed to the model loader corresponding to the chosen load_format.` {}`Type: str
      ` --trust-remote-code`Whether or not to allow for custom models defined on the Hub in their own modeling files.` False`bool flag (set to enable)
      ` --context-length`The model's maximum context length. Defaults to None (will use the value from the model's config.json instead).` None`Type: int
      ` --is-embedding`Whether to use a CausalLM as an embedding model.` False`bool flag (set to enable)
      ` --enable-multimodal`Enable the multimodal functionality for the served model. If the model being served is not multimodal, nothing will happen.` None`bool flag (set to enable)
      ` --revision`The specific model version to use. It can be a branch name, a tag name, or a commit id. If unspecified, will use the default version.` None`Type: str
      ` --model-impl`Which implementation of the model to use. "auto" will try to use the SGLang implementation if it exists and fall back to the Transformers implementation if no SGLang implementation is available. "sglang" will use the SGLang model implementation. "transformers" will use the Transformers model implementation.` auto`Type: str
      + +## HTTP server + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--host`The host of the HTTP server.`127.0.0.1`Type: str
      `--port`The port of the HTTP server.`30000`Type: int
      `--fastapi-root-path`App is behind a path based routing proxy.`""`Type: str
      `--grpc-mode`If set, use gRPC server instead of HTTP server.`False`bool flag (set to enable)
      `--skip-server-warmup`If set, skip warmup.`False`bool flag (set to enable)
      `--warmups`Specify custom warmup functions (csv) to run before server starts eg. --warmups=warmup_name1,warmup_name2 will run the functions `warmup_name1` and `warmup_name2` specified in warmup.py before the server starts listening for requests`None`Type: str
      `--nccl-port`The port for NCCL distributed environment setup. Defaults to a random port.`None`Type: int
      `--checkpoint-engine-wait-weights-before-ready`If set, the server will wait for initial weights to be loaded via checkpoint-engine or other update methods before serving inference requests.`False`bool flag (set to enable)
      + +## Quantization and data type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--dtype`Data type for model weights and activations. * "auto" will use FP16 precision for FP32 and FP16 models, and BF16 precision for BF16 models. * "half" for FP16. Recommended for AWQ quantization. * "float16" is the same as "half". * "bfloat16" for a balance between precision and range. * "float" is shorthand for FP32 precision. * "float32" for FP32 precision.`auto``auto`, `half`, `float16`, `bfloat16`, `float`, `float32`
      `--quantization`The quantization method.`None``awq`, `fp8`, `gptq`, `marlin`, `gptq_marlin`, `awq_marlin`, `bitsandbytes`, `gguf`, `modelopt`, `modelopt_fp8`, `modelopt_fp4`, `petit_nvfp4`, `w8a8_int8`, `w8a8_fp8`, `moe_wna16`, `qoq`, `w4afp8`, `mxfp4`, `auto-round`, `compressed-tensors`, `modelslim`, `quark_int4fp8_moe`
      `--quantization-param-path`Path to the JSON file containing the KV cache scaling factors. This should generally be supplied, when KV cache dtype is FP8. Otherwise, KV cache scaling factors default to 1.0, which may cause accuracy issues.`None`Type: Optional[str]
      `--kv-cache-dtype`Data type for kv cache storage. "auto" will use model data type. "bf16" or "bfloat16" for BF16 KV cache. "fp8_e5m2" and "fp8_e4m3" are supported for CUDA 11.8+. "fp4_e2m1" (only mxfp4) is supported for CUDA 12.8+ and PyTorch 2.8.0+`auto``auto`, `fp8_e5m2`, `fp8_e4m3`, `bf16`, `bfloat16`, `fp4_e2m1`
      `--enable-fp32-lm-head`If set, the LM head outputs (logits) are in FP32.`False`bool flag (set to enable)
      `--modelopt-quant`The ModelOpt quantization configuration. Supported values: 'fp8', 'int4_awq', 'w4a8_awq', 'nvfp4', 'nvfp4_awq'. This requires the NVIDIA Model Optimizer library to be installed: pip install nvidia-modelopt`None`Type: str
      `--modelopt-checkpoint-restore-path`Path to restore a previously saved ModelOpt quantized checkpoint. If provided, the quantization process will be skipped and the model will be loaded from this checkpoint.`None`Type: str
      `--modelopt-checkpoint-save-path`Path to save the ModelOpt quantized checkpoint after quantization. This allows reusing the quantized model in future runs.`None`Type: str
      `--modelopt-export-path`Path to export the quantized model in HuggingFace format after ModelOpt quantization. The exported model can then be used directly with SGLang for inference. If not provided, the model will not be exported.`None`Type: str
      `--quantize-and-serve`Quantize the model with ModelOpt and immediately serve it without exporting. This is useful for development and prototyping. For production, it's recommended to use separate quantization and deployment steps.`False`bool flag (set to enable)
      `--rl-quant-profile`Path to the FlashRL quantization profile. Required when using --load-format flash_rl.`None`Type: str
      + +## Memory and scheduling + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--mem-fraction-static`The fraction of the memory used for static allocation (model weights and KV cache memory pool). Use a smaller value if you see out-of-memory errors.`None`Type: float
      `--max-running-requests`The maximum number of running requests.`None`Type: int
      `--max-queued-requests`The maximum number of queued requests. This option is ignored when using disaggregation-mode.`None`Type: int
      `--max-total-tokens`The maximum number of tokens in the memory pool. If not specified, it will be automatically calculated based on the memory usage fraction. This option is typically used for development and debugging purposes.`None`Type: int
      `--chunked-prefill-size`The maximum number of tokens in a chunk for the chunked prefill. Setting this to -1 means disabling chunked prefill.`None`Type: int
      `--prefill-max-requests`The maximum number of requests in a prefill batch. If not specified, there is no limit.`None`Type: int
      `--enable-dynamic-chunking`Enable dynamic chunk size adjustment for pipeline parallelism. When enabled, chunk sizes are dynamically calculated based on fitted function to maintain consistent execution time across chunks.`False`bool flag (set to enable)
      `--max-prefill-tokens`The maximum number of tokens in a prefill batch. The real bound will be the maximum of this value and the model's maximum context length.`16384`Type: int
      `--schedule-policy`The scheduling policy of the requests.`fcfs``lpm`, `random`, `fcfs`, `dfs-weight`, `lof`, `priority`, `routing-key`
      `--enable-priority-scheduling`Enable priority scheduling. Requests with higher priority integer values will be scheduled first by default.`False`bool flag (set to enable)
      `--abort-on-priority-when-disabled`If set, abort requests that specify a priority when priority scheduling is disabled.`False`bool flag (set to enable)
      `--schedule-low-priority-values-first`If specified with --enable-priority-scheduling, the scheduler will schedule requests with lower priority integer values first.`False`bool flag (set to enable)
      `--priority-scheduling-preemption-threshold`Minimum difference in priorities for an incoming request to have to preempt running request(s).`10`Type: int
      `--schedule-conservativeness`How conservative the schedule policy is. A larger value means more conservative scheduling. Use a larger value if you see requests being retracted frequently.`1.0`Type: float
      `--page-size`The number of tokens in a page.`1`Type: int
      `--swa-full-tokens-ratio`The ratio of SWA layer KV tokens / full layer KV tokens, regardless of the number of swa:full layers. It should be between 0 and 1. E.g. 0.5 means if each swa layer has 50 tokens, then each full layer has 100 tokens.`0.8`Type: float
      `--disable-hybrid-swa-memory`Disable the hybrid SWA memory.`False`bool flag (set to enable)
      `--radix-eviction-policy`The eviction policy of radix trees. 'lru' stands for Least Recently Used, 'lfu' stands for Least Frequently Used.`lru``lru`, `lfu`
      `--enable-prefill-delayer`Enable prefill delayer for DP attention to reduce idle time.`False`bool flag (set to enable)
      `--prefill-delayer-max-delay-passes`Maximum forward passes to delay prefill.`30`Type: int
      `--prefill-delayer-token-usage-low-watermark`Token usage low watermark for prefill delayer.`None`Type: float
      `--prefill-delayer-forward-passes-buckets`Custom buckets for prefill delayer forward passes histogram. 0 and max_delay_passes-1 will be auto-added.`None`List[float]
      `--prefill-delayer-wait-seconds-buckets`Custom buckets for prefill delayer wait seconds histogram. 0 will be auto-added.`None`List[float]
      + +## Runtime options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--device`The device to use ('cuda', 'xpu', 'hpu', 'npu', 'cpu'). Defaults to auto-detection if not specified.`None`Type: str
      `--tensor-parallel-size` `--tp-size`The tensor parallelism size.`1`Type: int
      `--pipeline-parallel-size` `--pp-size`The pipeline parallelism size.`1`Type: int
      `--pp-max-micro-batch-size`The maximum micro batch size in pipeline parallelism.`None`Type: int
      `--pp-async-batch-depth`The async batch depth of pipeline parallelism.`0`Type: int
      `--stream-interval`The interval (or buffer size) for streaming in terms of the token length. A smaller value makes streaming smoother, while a larger value makes the throughput higher.`1`Type: int
      `--stream-output`Whether to output as a sequence of disjoint segments.`False`bool flag (set to enable)
      `--random-seed`The random seed.`None`Type: int
      `--constrained-json-whitespace-pattern`{"(outlines and llguidance backends only) Regex pattern for syntactic whitespaces allowed in JSON constrained output. For example, to allow the model to generate consecutive whitespaces, set the pattern to [\\n\\t ]*"}`None`Type: str
      `--constrained-json-disable-any-whitespace`{"(xgrammar and llguidance backends only) Enforce compact representation in JSON constrained output."}`False`bool flag (set to enable)
      `--watchdog-timeout`Set watchdog timeout in seconds. If a forward batch takes longer than this, the server will crash to prevent hanging.`300`Type: float
      `--soft-watchdog-timeout`Set soft watchdog timeout in seconds. If a forward batch takes longer than this, the server will dump information for debugging.`None`Type: float
      `--dist-timeout`Set timeout for torch.distributed initialization.`None`Type: int
      `--download-dir`Model download directory for huggingface.`None`Type: str
      `--model-checksum`Model file integrity verification. If provided without value, uses model-path as HF repo ID. Otherwise, provide checksums JSON file path or HuggingFace repo ID.`None`Type: str
      `--base-gpu-id`The base GPU ID to start allocating GPUs from. Useful when running multiple instances on the same machine.`0`Type: int
      `--gpu-id-step`The delta between consecutive GPU IDs that are used. For example, setting it to 2 will use GPU 0,2,4,...`1`Type: int
      `--sleep-on-idle`Reduce CPU usage when sglang is idle.`False`bool flag (set to enable)
      `--custom-sigquit-handler`Register a custom sigquit handler so you can do additional cleanup after the server is shutdown. This is only available for Engine, not for CLI.`None`Type: str
      + +## Logging + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--log-level`The logging level of all loggers.`info`Type: str
      `--log-level-http`The logging level of HTTP server. If not set, reuse --log-level by default.`None`Type: str
      `--log-requests`Log metadata, inputs, outputs of all requests. The verbosity is decided by --log-requests-level`False`bool flag (set to enable)
      `--log-requests-level`0: Log metadata (no sampling parameters). 1: Log metadata and sampling parameters. 2: Log metadata, sampling parameters and partial input/output. 3: Log every input/output.`2``0`, `1`, `2`, `3`
      `--log-requests-format`Format for request logging: 'text' (human-readable) or 'json' (structured)`text``text`, `json`
      `--log-requests-target`Target(s) for request logging: 'stdout' and/or directory path(s) for file output. Can specify multiple targets, e.g., '--log-requests-target stdout /my/path'.`None`List[str]
      `--uvicorn-access-log-exclude-prefixes`Exclude uvicorn access logs whose request path starts with any of these prefixes. Defaults to empty (disabled).`[]`List[str]
      `--crash-dump-folder`Folder path to dump requests from the last 5 min before a crash (if any). If not specified, crash dumping is disabled.`None`Type: str
      `--show-time-cost`Show time cost of custom marks.`False`bool flag (set to enable)
      `--enable-metrics`Enable log prometheus metrics.`False`bool flag (set to enable)
      `--enable-metrics-for-all-schedulers`Enable --enable-metrics-for-all-schedulers when you want schedulers on all TP ranks (not just TP 0) to record request metrics separately. This is especially useful when dp_attention is enabled, as otherwise all metrics appear to come from TP 0.`False`bool flag (set to enable)
      `--tokenizer-metrics-custom-labels-header`Specify the HTTP header for passing custom labels for tokenizer metrics.`x-custom-labels`Type: str
      `--tokenizer-metrics-allowed-custom-labels`The custom labels allowed for tokenizer metrics. The labels are specified via a dict in '--tokenizer-metrics-custom-labels-header' field in HTTP requests, e.g., {'label1': 'value1', 'label2': 'value2'} is allowed if '--tokenizer-metrics-allowed-custom-labels label1 label2' is set.`None`List[str]
      `--bucket-time-to-first-token`The buckets of time to first token, specified as a list of floats.`None`List[float]
      `--bucket-inter-token-latency`The buckets of inter-token latency, specified as a list of floats.`None`List[float]
      `--bucket-e2e-request-latency`The buckets of end-to-end request latency, specified as a list of floats.`None`List[float]
      `--collect-tokens-histogram`Collect prompt/generation tokens histogram.`False`bool flag (set to enable)
      `--prompt-tokens-buckets`The buckets rule of prompt tokens. Supports 3 rule types: 'default' uses predefined buckets; 'tse <middle> <base> <count>' generates two sides exponential distributed buckets (e.g., 'tse 1000 2 8' generates buckets [984.0, 992.0, 996.0, 998.0, 1000.0, 1002.0, 1004.0, 1008.0, 1016.0]).); 'custom <value1> <value2> ...' uses custom bucket values (e.g., 'custom 10 50 100 500').`None`List[str]
      `--generation-tokens-buckets`The buckets rule for generation tokens histogram. Supports 3 rule types: 'default' uses predefined buckets; 'tse <middle> <base> <count>' generates two sides exponential distributed buckets (e.g., 'tse 1000 2 8' generates buckets [984.0, 992.0, 996.0, 998.0, 1000.0, 1002.0, 1004.0, 1008.0, 1016.0]).); 'custom <value1> <value2> ...' uses custom bucket values (e.g., 'custom 10 50 100 500').`None`List[str]
      `--gc-warning-threshold-secs`The threshold for long GC warning. If a GC takes longer than this, a warning will be logged. Set to 0 to disable.`0.0`Type: float
      `--decode-log-interval`The log interval of decode batch.`40`Type: int
      `--enable-request-time-stats-logging`Enable per request time stats logging`False`bool flag (set to enable)
      `--kv-events-config`Config in json format for NVIDIA dynamo KV event publishing. Publishing will be enabled if this flag is used.`None`Type: str
      `--enable-trace`Enable opentelemetry trace`False`bool flag (set to enable)
      `--otlp-traces-endpoint`Config opentelemetry collector endpoint if --enable-trace is set. format: <ip>:<port>`localhost:4317`Type: str
      + +## RequestMetricsExporter configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--export-metrics-to-file`Export performance metrics for each request to local file (e.g. for forwarding to external systems).`False`bool flag (set to enable)
      `--export-metrics-to-file-dir`Directory path for writing performance metrics files (required when --export-metrics-to-file is enabled).`None`Type: str
      + +## API related + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--api-key`Set API key of the server. It is also used in the OpenAI API compatible server.`None`Type: str
      `--admin-api-key`Set **admin API key** for administrative/control endpoints (e.g., weights update, cache flush, `/get_server_info`). Endpoints marked as admin-only require `Authorization: Bearer ` when this is set.`None`Type: str
      `--served-model-name`Override the model name returned by the v1/models endpoint in OpenAI API server.`None`Type: str
      `--weight-version`Version identifier for the model weights. Defaults to 'default' if not specified.`default`Type: str
      `--chat-template`The buliltin chat template name or the path of the chat template file. This is only used for OpenAI-compatible API server.`None`Type: str
      `--hf-chat-template-name`When the HuggingFace tokenizer has multiple chat templates (e.g., 'default', 'tool_use', 'rag'), specify which named template to use. If not set, the first available template is used.`None`Type: str
      `--completion-template`The buliltin completion template name or the path of the completion template file. This is only used for OpenAI-compatible API server. only for code completion currently.`None`Type: str
      `--file-storage-path`The path of the file storage in backend.`sglang_storage`Type: str
      `--enable-cache-report`Return number of cached tokens in usage.prompt_tokens_details for each openai request.`False`bool flag (set to enable)
      `--reasoning-parser`Specify the parser for reasoning models. Supported parsers: [deepseek-r1, deepseek-v3, glm45, gpt-oss, kimi, qwen3, qwen3-thinking, step3].`None``deepseek-r1`, `deepseek-v3`, `glm45`, `gpt-oss`, `kimi`, `qwen3`, `qwen3-thinking`, `step3`
      `--tool-call-parser`Specify the parser for handling tool-call interactions. Supported parsers: [deepseekv3, deepseekv31, glm, glm45, glm47, gpt-oss, kimi_k2, llama3, mistral, pythonic, qwen, qwen25, qwen3_coder, step3].`None``deepseekv3`, `deepseekv31`, `glm`, `glm45`, `glm47`, `gpt-oss`, `kimi_k2`, `llama3`, `mistral`, `pythonic`, `qwen`, `qwen25`, `qwen3_coder`, `step3`
      `--tool-server`Either 'demo' or a comma-separated list of tool server urls to use for the model. If not specified, no tool server will be used.`None`Type: str
      `--sampling-defaults`Where to get default sampling parameters. 'openai' uses SGLang/OpenAI defaults (temperature=1.0, top_p=1.0, etc.). 'model' uses the model's generation_config.json to get the recommended sampling parameters if available. Default is 'model'.`model``openai`, `model`
      + +## Data parallelism + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      ` --data-parallel-size`
      `--dp-size`
      The data parallelism size.` 1`Type: int
      ` --load-balance-method`The load balancing strategy for data parallelism. The `total_tokens` algorithm can only be used when DP attention is applied. This algorithm performs load balancing based on the real-time token load of the DP workers.` auto`` auto`, `round_robin`, `follow_bootstrap_room`, `total_requests`, `total_tokens`
      + +## Multi-node distributed serving + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      ` --dist-init-addr`
      `--nccl-init-addr`
      The host address for initializing distributed backend (e.g., `192.168.0.2:25000`).` None`Type: str
      ` --nnodes`The number of nodes.` 1`Type: int
      ` --node-rank`The node rank.` 0`Type: int
      + +## Model override args + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--json-model-override-args`A dictionary in JSON string format used to override default model configurations.`{}`Type: str
      `--preferred-sampling-params`json-formatted sampling settings that will be returned in /get_model_info`None`Type: str
      + +## LoRA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--enable-lora`Enable LoRA support for the model. This argument is automatically set to `True` if `--lora-paths` is provided for backward compatibility.`False`Bool flag (set to enable)
      `--enable-lora-overlap-loading`Enable asynchronous LoRA weight loading in order to overlap H2D transfers with GPU compute. This should be enabled if you find that your LoRA workloads are bottlenecked by adapter weight loading, for example when frequently loading large LoRA adapters.`False`Bool flag (set to enable)
      `--max-lora-rank`The maximum LoRA rank that should be supported. If not specified, it will be automatically inferred from the adapters provided in `--lora-paths`. This argument is needed when you expect to dynamically load adapters of larger LoRA rank after server startup.`None`Type: int
      `--lora-target-modules`The union set of all target modules where LoRA should be applied (e.g., `q_proj`, `k_proj`, `gate_proj`). If not specified, it will be automatically inferred from the adapters provided in `--lora-paths`. You can also set it to `all` to enable LoRA for all supported modules; note this may introduce minor performance overhead.`None`{"q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj, qkv_proj, gate_up_proj, all"}
      `--lora-paths`{"The list of LoRA adapters to load. Each adapter must be specified in one of the following formats: | = | JSON with schema {\"lora_name\": str, \"lora_path\": str, \"pinned\": bool}."}`None`Type: List[str] / JSON objects
      `--max-loras-per-batch`Maximum number of adapters for a running batch, including base-only requests.`8`Type: int
      `--max-loaded-loras`If specified, limits the maximum number of LoRA adapters loaded in CPU memory at a time. Must be ≥ `--max-loras-per-batch`.`None`Type: int
      `--lora-eviction-policy`LoRA adapter eviction policy when the GPU memory pool is full.`lru`lru, fifo
      `--lora-backend`Choose the kernel backend for multi-LoRA serving.`csgmv`triton, csgmv, ascend, torch_native
      `--max-lora-chunk-size`Maximum chunk size for the ChunkedSGMV LoRA backend. Only used when `--lora-backend` is `csgmv`. Larger values may improve performance.`16`16, 32, 64, 128
      + +## Kernel Backends (Attention, Sampling, Grammar, GEMM) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--attention-backend`Choose the kernels for attention layers.`None``triton`, `torch_native`, `flex_attention`, `nsa`, `cutlass_mla`, `fa3`, `fa4`, `flashinfer`, `flashmla`, `trtllm_mla`, `trtllm_mha`, `dual_chunk_flash_attn`, `aiter`, `wave`, `intel_amx`, `ascend`
      `--prefill-attention-backend`Choose the kernels for prefill attention layers (have priority over --attention-backend).`None``triton`, `torch_native`, `flex_attention`, `nsa`, `cutlass_mla`, `fa3`, `fa4`, `flashinfer`, `flashmla`, `trtllm_mla`, `trtllm_mha`, `dual_chunk_flash_attn`, `aiter`, `wave`, `intel_amx`, `ascend`
      `--decode-attention-backend`Choose the kernels for decode attention layers (have priority over --attention-backend).`None``triton`, `torch_native`, `flex_attention`, `nsa`, `cutlass_mla`, `fa3`, `fa4`, `flashinfer`, `flashmla`, `trtllm_mla`, `trtllm_mha`, `dual_chunk_flash_attn`, `aiter`, `wave`, `intel_amx`, `ascend`
      `--sampling-backend`Choose the kernels for sampling layers.`None``flashinfer`, `pytorch`, `ascend`
      `--grammar-backend`Choose the backend for grammar-guided decoding.`None``xgrammar`, `outlines`, `llguidance`, `none`
      `--mm-attention-backend`Set multimodal attention backend.`None``sdpa`, `fa3`, `fa4`, `triton_attn`, `ascend_attn`, `aiter_attn`
      `--nsa-prefill-backend`Choose the NSA backend for the prefill stage (overrides `--attention-backend` when running DeepSeek NSA-style attention).`flashmla_sparse``flashmla_sparse`, `flashmla_kv`, `flashmla_auto`, `fa3`, `tilelang`, `aiter`
      `--nsa-decode-backend`Choose the NSA backend for the decode stage when running DeepSeek NSA-style attention. Overrides `--attention-backend` for decoding.`fa3``flashmla_sparse`, `flashmla_kv`, `fa3`, `tilelang`, `aiter`
      `--fp8-gemm-backend`Choose the runner backend for Blockwise FP8 GEMM operations. Options: 'auto' (default, auto-selects based on hardware), 'deep_gemm' (JIT-compiled; enabled by default on NVIDIA Hopper (SM90) and Blackwell (SM100) when DeepGEMM is installed), 'flashinfer_trtllm' (optimal for Blackwell and low-latency), 'cutlass' (optimal for Hopper/Blackwell GPUs and high-throughput), 'triton' (fallback, widely compatible), 'aiter' (ROCm only). **NOTE**: This replaces the deprecated environment variables SGLANG_ENABLE_FLASHINFER_FP8_GEMM and SGLANG_SUPPORT_CUTLASS_BLOCK_FP8.`auto``auto`, `deep_gemm`, `flashinfer_trtllm`, `cutlass`, `triton`, `aiter`
      `--fp4-gemm-backend`Choose the runner backend for NVFP4 GEMM operations. Options: 'auto' (default, auto-selects between flashinfer_cudnn/flashinfer_cutlass based on CUDA/cuDNN version), 'flashinfer_cudnn' (FlashInfer cuDNN backend, optimal on CUDA 13+ with cuDNN 9.15+), 'flashinfer_cutlass' (FlashInfer CUTLASS backend, optimal on CUDA 12), 'flashinfer_trtllm' (FlashInfer TensorRT-LLM backend, requires different weight preparation with shuffling). All backends are from FlashInfer; when FlashInfer is unavailable, sgl-kernel CUTLASS is used as an automatic fallback. **NOTE**: This replaces the deprecated environment variable SGLANG_FLASHINFER_FP4_GEMM_BACKEND.`auto``auto`, `flashinfer_cudnn`, `flashinfer_cutlass`, `flashinfer_trtllm`
      `--disable-flashinfer-autotune`Flashinfer autotune is enabled by default. Set this flag to disable the autotune.`False`bool flag (set to enable)
      + +## Speculative decoding + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--speculative-algorithm`Speculative algorithm.`None``EAGLE`, `EAGLE3`, `NEXTN`, `STANDALONE`, `NGRAM`
      `--speculative-draft-model-path` `--speculative-draft-model`The path of the draft model weights. This can be a local folder or a Hugging Face repo ID.`None`Type: str
      `--speculative-draft-model-revision`The specific draft model version to use. It can be a branch name, a tag name, or a commit id. If unspecified, will use the default version.`None`Type: str
      `--speculative-draft-load-format`The format of the draft model weights to load. If not specified, will use the same format as `--load-format`. Use 'dummy' to initialize draft model weights with random values for profiling.`None`Same as `--load-format` options
      `--speculative-num-steps`The number of steps sampled from draft model in Speculative Decoding.`None`Type: int
      `--speculative-eagle-topk`The number of tokens sampled from the draft model in eagle2 each step.`None`Type: int
      `--speculative-num-draft-tokens`The number of tokens sampled from the draft model in Speculative Decoding.`None`Type: int
      `--speculative-accept-threshold-single`Accept a draft token if its probability in the target model is greater than this threshold.`1.0`Type: float
      `--speculative-accept-threshold-acc`The accept probability of a draft token is raised from its target probability p to min(1, p / threshold_acc).`1.0`Type: float
      `--speculative-token-map`The path of the draft model's small vocab table.`None`Type: str
      `--speculative-attention-mode`Attention backend for speculative decoding operations (both target verify and draft extend). Can be one of 'prefill' (default) or 'decode'.`prefill`prefill, decode
      `--speculative-draft-attention-backend`Attention backend for speculative decoding drafting.`None`Same as attention backend options
      `--speculative-moe-runner-backend`MOE backend for EAGLE speculative decoding, see `--moe-runner-backend` for options. Same as moe runner backend if unset.`None`Same as `--moe-runner-backend` options
      `--speculative-moe-a2a-backend`MOE A2A backend for EAGLE speculative decoding, see `--moe-a2a-backend` for options. Same as moe a2a backend if unset.`None`Same as `--moe-a2a-backend` options
      `--speculative-draft-model-quantization`The quantization method for speculative model.`None`Same as `--quantization` options
      + +## Ngram speculative decoding + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--speculative-ngram-min-match-window-size`The minimum window size for pattern matching in ngram speculative decoding.`1`Type: int
      `--speculative-ngram-max-match-window-size`The maximum window size for pattern matching in ngram speculative decoding.`12`Type: int
      `--speculative-ngram-min-bfs-breadth`The minimum breadth for BFS (Breadth-First Search) in ngram speculative decoding.`1`Type: int
      `--speculative-ngram-max-bfs-breadth`The maximum breadth for BFS (Breadth-First Search) in ngram speculative decoding.`10`Type: int
      `--speculative-ngram-match-type`The match type for cache tree.`BFS``BFS`, `PROB`
      `--speculative-ngram-branch-length`The branch length for ngram speculative decoding.`18`Type: int
      `--speculative-ngram-capacity`The cache capacity for ngram speculative decoding.`10000000`Type: int
      + +## Multi-layer Eagle speculative decoding + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--enable-multi-layer-eagle`Enable multi-layer Eagle speculative decoding.`False`bool flag (set to enable)
      + +## MoE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      ` --expert-parallel-size`
      `--ep-size`
      `--ep`
      The expert parallelism size.` 1`Type: int
      ` --moe-a2a-backend`Select the backend for all-to-all communication for expert parallelism.` none`` none`, `deepep`, `mooncake`, `ascend_fuseep`
      ` --moe-runner-backend`Choose the runner backend for MoE.` auto`` auto`, `deep_gemm`, `triton`, `triton_kernel`, `flashinfer_trtllm`, `flashinfer_cutlass`, `flashinfer_mxfp4`, `flashinfer_cutedsl`, `cutlass`
      ` --flashinfer-mxfp4-moe-precision`Choose the computation precision of flashinfer mxfp4 moe.` default`` default`, `bf16`
      ` --enable-flashinfer-allreduce-fusion`Enable FlashInfer allreduce fusion with Residual RMSNorm.` False`bool flag (set to enable)
      ` --deepep-mode`Select the mode when enable DeepEP MoE, could be `normal`, `low_latency` or `auto`. Default is `auto`, which means `low_latency` for decode batch and `normal` for prefill batch.` auto`` normal`, `low_latency`, `auto`
      ` --ep-num-redundant-experts`Allocate this number of redundant experts in expert parallel.` 0`Type: int
      ` --ep-dispatch-algorithm`The algorithm to choose ranks for redundant experts in expert parallel.` None`Type: str
      ` --init-expert-location`Initial location of EP experts.` trivial`Type: str
      ` --enable-eplb`Enable EPLB algorithm.` False`bool flag (set to enable)
      ` --eplb-algorithm`Chosen EPLB algorithm.` auto`Type: str
      ` --eplb-rebalance-num-iterations`Number of iterations to automatically trigger a EPLB re-balance.` 1000`Type: int
      ` --eplb-rebalance-layers-per-chunk`Number of layers to rebalance per forward pass.` None`Type: int
      ` --eplb-min-rebalancing-utilization-threshold`Minimum threshold for GPU average utilization to trigger EPLB rebalancing. Must be in the range [0.0, 1.0].` 1.0`Type: float
      ` --expert-distribution-recorder-mode`Mode of expert distribution recorder.` None`Type: str
      ` --expert-distribution-recorder-buffer-size`Circular buffer size of expert distribution recorder. Set to -1 to denote infinite buffer.` None`Type: int
      ` --enable-expert-distribution-metrics`Enable logging metrics for expert balancedness.` False`bool flag (set to enable)
      ` --deepep-config`Tuned DeepEP config suitable for your own cluster. It can be either a string with JSON content or a file path.` None`Type: str
      ` --moe-dense-tp-size`TP size for MoE dense MLP layers. This flag is useful when, with large TP size, there are errors caused by weights in MLP layers having dimension smaller than the min dimension GEMM supports.` None`Type: int
      ` --elastic-ep-backend`Specify the collective communication backend for elastic EP. Currently supports 'mooncake'.` none`` none`, `mooncake`
      ` --mooncake-ib-device`The InfiniBand devices for Mooncake Backend transfer, accepts multiple comma-separated devices (e.g., --mooncake-ib-device mlx5_0,mlx5_1). Default is None, which triggers automatic device detection when Mooncake Backend is enabled.` None`Type: str
      + +## Mamba Cache + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--max-mamba-cache-size`The maximum size of the mamba cache.`None`Type: int
      `--mamba-ssm-dtype`The data type of the SSM states in mamba cache.`float32``float32`, `bfloat16`
      `--mamba-full-memory-ratio`The ratio of mamba state memory to full kv cache memory.`0.9`Type: float
      `--mamba-scheduler-strategy`The strategy to use for mamba scheduler. `auto` currently defaults to `no_buffer`. 1. `no_buffer` does not support overlap scheduler due to not allocating extra mamba state buffers. Branching point caching support is feasible but not implemented. 2. `extra_buffer` supports overlap schedule by allocating extra mamba state buffers to track mamba state for caching (mamba state usage per running req becomes `2x` for non-spec; `1+(1/(2+speculative_num_draft_tokens))x` for spec dec (e.g. 1.16x if speculative_num_draft_tokens==4)). 2a. `extra_buffer` is strictly better for non-KV-cache-bound cases; for KV-cache-bound cases, the tradeoff depends on whether enabling overlap outweighs reduced max running requests. 2b. mamba caching at radix cache branching point is strictly better than non-branch but requires kernel support (currently only FLA backend), currently only extra_buffer supports branching.`auto``auto`, `no_buffer`, `extra_buffer`
      `--mamba-track-interval`The interval (in tokens) to track the mamba state during decode. Only used when `--mamba-scheduler-strategy` is `extra_buffer`. Must be divisible by page_size if set, and must be >= speculative_num_draft_tokens when using speculative decoding.`256`Type: int
      + +## Hierarchical cache + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--enable-hierarchical-cache`Enable hierarchical cache`False`bool flag (set to enable)
      `--hicache-ratio`The ratio of the size of host KV cache memory pool to the size of device pool.`2.0`Type: float
      `--hicache-size`The size of host KV cache memory pool in gigabytes, which will override the hicache_ratio if set.`0`Type: int
      `--hicache-write-policy`The write policy of hierarchical cache.`write_through``write_back`, `write_through`, `write_through_selective`
      `--hicache-io-backend`The IO backend for KV cache transfer between CPU and GPU`kernel``direct`, `kernel`, `kernel_ascend`
      `--hicache-mem-layout`The layout of host memory pool for hierarchical cache.`layer_first``layer_first`, `page_first`, `page_first_direct`, `page_first_kv_split`, `page_head`
      `--hicache-storage-backend`The storage backend for hierarchical KV cache. Built-in backends: file, mooncake, hf3fs, nixl, aibrix. For dynamic backend, use --hicache-storage-backend-extra-config to specify: backend_name (custom name), module_path (Python module path), class_name (backend class name).`None``file`, `mooncake`, `hf3fs`, `nixl`, `aibrix`, `dynamic`, `eic`
      `--hicache-storage-prefetch-policy`Control when prefetching from the storage backend should stop.`best_effort``best_effort`, `wait_complete`, `timeout`
      `--hicache-storage-backend-extra-config`A dictionary in JSON string format, or a string starting with a `@` followed by a config file in JSON/YAML/TOML format, containing extra configuration for the storage backend.`None`Type: str
      + +## Hierarchical sparse attention + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--hierarchical-sparse-attention-extra-config`A dictionary in JSON string format for hierarchical sparse attention configuration. Required fields: `algorithm` (str), `backend` (str). All other fields are algorithm-specific and passed to the algorithm constructor.`None`Type: str
      + +## LMCache + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--enable-lmcache`Using LMCache as an alternative hierarchical cache solution`False`bool flag (set to enable)
      + +## Ktransformers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--kt-weight-path`[ktransformers parameter] The path of the quantized expert weights for amx kernel. A local folder.`None`Type: str
      `--kt-method`[ktransformers parameter] Quantization formats for CPU execution.`AMXINT4`Type: str
      `--kt-cpuinfer`[ktransformers parameter] The number of CPUInfer threads.`None`Type: int
      `--kt-threadpool-count`[ktransformers parameter] One-to-one with the number of NUMA nodes (one thread pool per NUMA).`2`Type: int
      `--kt-num-gpu-experts`[ktransformers parameter] The number of GPU experts.`None`Type: int
      `--kt-max-deferred-experts-per-token`[ktransformers parameter] Maximum number of experts deferred to CPU per token. All MoE layers except the final one use this value; the final layer always uses 0.`None`Type: int
      + +## Diffusion LLM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--dllm-algorithm`The diffusion LLM algorithm, such as LowConfidence.`None`Type: str
      `--dllm-algorithm-config`The diffusion LLM algorithm configurations. Must be a YAML file.`None`Type: str
      + +## Double Sparsity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--enable-double-sparsity`Enable double sparsity attention`False`bool flag (set to enable)
      `--ds-channel-config-path`The path of the double sparsity channel config`None`Type: str
      `--ds-heavy-channel-num`The number of heavy channels in double sparsity attention`32`Type: int
      `--ds-heavy-token-num`The number of heavy tokens in double sparsity attention`256`Type: int
      `--ds-heavy-channel-type`The type of heavy channels in double sparsity attention`qk`Type: str
      `--ds-sparse-decode-threshold`The minimum decode sequence length required before the double-sparsity backend switches from the dense fallback to the sparse decode kernel.`4096`Type: int
      + +## Offloading + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--cpu-offload-gb`How many GBs of RAM to reserve for CPU offloading.`0`Type: int
      `--offload-group-size`Number of layers per group in offloading.`-1`Type: int
      `--offload-num-in-group`Number of layers to be offloaded within a group.`1`Type: int
      `--offload-prefetch-step`Steps to prefetch in offloading.`1`Type: int
      `--offload-mode`Mode of offloading.`cpu`Type: str
      + +## Args for multi-item scoring + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--multi-item-scoring-delimiter`Delimiter token ID for multi-item scoring. Used to combine Query and Items into a single sequence: Query<delimiter>Item1<delimiter>Item2<delimiter>... This enables efficient batch processing of multiple items against a single query.`None`Type: int
      + +## Optimization/debug options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--disable-radix-cache`Disable RadixAttention for prefix caching.`False`bool flag (set to enable)
      `--cuda-graph-max-bs`Set the maximum batch size for cuda graph. It will extend the cuda graph capture batch size to this value.`None`Type: int
      `--cuda-graph-bs`Set the list of batch sizes for cuda graph.`None`List[int]
      `--disable-cuda-graph`Disable cuda graph.`False`bool flag (set to enable)
      `--disable-cuda-graph-padding`Disable cuda graph when padding is needed. Still uses cuda graph when padding is not needed.`False`bool flag (set to enable)
      `--enable-profile-cuda-graph`Enable profiling of cuda graph capture.`False`bool flag (set to enable)
      `--enable-cudagraph-gc`Enable garbage collection during CUDA graph capture. If disabled (default), GC is frozen during capture to speed up the process.`False`bool flag (set to enable)
      `--enable-layerwise-nvtx-marker`Enable layerwise NVTX profiling annotations for the model. This adds NVTX markers to every layer for detailed per-layer performance analysis with Nsight Systems.`False`bool flag (set to enable)
      `--enable-nccl-nvls`Enable NCCL NVLS for prefill heavy requests when available.`False`bool flag (set to enable)
      `--enable-symm-mem`Enable NCCL symmetric memory for fast collectives.`False`bool flag (set to enable)
      `--disable-flashinfer-cutlass-moe-fp4-allgather`Disables quantize before all-gather for flashinfer cutlass moe.`False`bool flag (set to enable)
      `--enable-tokenizer-batch-encode`Enable batch tokenization for improved performance when processing multiple text inputs. Do not use with image inputs, pre-tokenized input_ids, or input_embeds.`False`bool flag (set to enable)
      `--disable-tokenizer-batch-decode`Disable batch decoding when decoding multiple completions.`False`bool flag (set to enable)
      `--disable-outlines-disk-cache`Disable disk cache of outlines to avoid possible crashes related to file system or high concurrency.`False`bool flag (set to enable)
      `--disable-custom-all-reduce`Disable the custom all-reduce kernel and fall back to NCCL.`False`bool flag (set to enable)
      `--enable-mscclpp`Enable using mscclpp for small messages for all-reduce kernel and fall back to NCCL.`False`bool flag (set to enable)
      `--enable-torch-symm-mem`Enable using torch symm mem for all-reduce kernel and fall back to NCCL. Only supports CUDA device SM90 and above. SM90 supports world size 4, 6, 8. SM10 supports world size 6, 8.`False`bool flag (set to enable)
      `--disable-overlap-schedule`Disable the overlap scheduler, which overlaps the CPU scheduler with GPU model worker.`False`bool flag (set to enable)
      `--enable-mixed-chunk`Enabling mixing prefill and decode in a batch when using chunked prefill.`False`bool flag (set to enable)
      `--enable-dp-attention`Enabling data parallelism for attention and tensor parallelism for FFN. The dp size should be equal to the tp size. Currently DeepSeek-V2 and Qwen 2/3 MoE models are supported.`False`bool flag (set to enable)
      `--enable-dp-lm-head`Enable vocabulary parallel across the attention TP group to avoid all-gather across DP groups, optimizing performance under DP attention.`False`bool flag (set to enable)
      `--enable-two-batch-overlap`Enabling two micro batches to overlap.`False`bool flag (set to enable)
      `--enable-single-batch-overlap`Let computation and communication overlap within one micro batch.`False`bool flag (set to enable)
      `--tbo-token-distribution-threshold`The threshold of token distribution between two batches in micro-batch-overlap, determines whether to two-batch-overlap or two-chunk-overlap. Set to 0 denote disable two-chunk-overlap.`0.48`Type: float
      `--enable-torch-compile`Optimize the model with torch.compile. Experimental feature.`False`bool flag (set to enable)
      `--enable-torch-compile-debug-mode`Enable debug mode for torch compile.`False`bool flag (set to enable)
      `--enable-piecewise-cuda-graph`Optimize the model with piecewise cuda graph for extend/prefill only. Experimental feature.`False`bool flag (set to enable)
      `--piecewise-cuda-graph-tokens`Set the list of tokens when using piecewise cuda graph.`None`Type: JSON list
      `--piecewise-cuda-graph-compiler`Set the compiler for piecewise cuda graph. Choices are: eager, inductor.`eager``eager`, `inductor`
      `--torch-compile-max-bs`Set the maximum batch size when using torch compile.`32`Type: int
      `--piecewise-cuda-graph-max-tokens`Set the maximum tokens when using piecewise cuda graph.`4096`Type: int
      `--torchao-config`Optimize the model with torchao. Experimental feature. Current choices are: int8dq, int8wo, int4wo-<group_size>, fp8wo, fp8dq-per_tensor, fp8dq-per_row``Type: str
      `--enable-nan-detection`Enable the NaN detection for debugging purposes.`False`bool flag (set to enable)
      `--enable-p2p-check`Enable P2P check for GPU access, otherwise the p2p access is allowed by default.`False`bool flag (set to enable)
      `--triton-attention-reduce-in-fp32`Cast the intermediate attention results to fp32 to avoid possible crashes related to fp16. This only affects Triton attention kernels.`False`bool flag (set to enable)
      `--triton-attention-num-kv-splits`The number of KV splits in flash decoding Triton kernel. Larger value is better in longer context scenarios. The default value is 8.`8`Type: int
      `--triton-attention-split-tile-size`The size of split KV tile in flash decoding Triton kernel. Used for deterministic inference.`None`Type: int
      `--num-continuous-decode-steps`Run multiple continuous decoding steps to reduce scheduling overhead. This can potentially increase throughput but may also increase time-to-first-token latency. The default value is 1, meaning only run one decoding step at a time.`1`Type: int
      `--delete-ckpt-after-loading`Delete the model checkpoint after loading the model.`False`bool flag (set to enable)
      `--enable-memory-saver`Allow saving memory using release_memory_occupation and resume_memory_occupation`False`bool flag (set to enable)
      `--enable-weights-cpu-backup`Save model weights to CPU memory during release_weights_occupation and resume_weights_occupation`False`bool flag (set to enable)
      `--enable-draft-weights-cpu-backup`Save draft model weights to CPU memory during release_weights_occupation and resume_weights_occupation`False`bool flag (set to enable)
      `--allow-auto-truncate`Allow automatically truncating requests that exceed the maximum input length instead of returning an error.`False`bool flag (set to enable)
      `--enable-custom-logit-processor`Enable users to pass custom logit processors to the server (disabled by default for security)`False`bool flag (set to enable)
      `--flashinfer-mla-disable-ragged`Not using ragged prefill wrapper when running flashinfer mla`False`bool flag (set to enable)
      `--disable-shared-experts-fusion`Disable shared experts fusion optimization for deepseek v3/r1.`False`bool flag (set to enable)
      `--disable-chunked-prefix-cache`Disable chunked prefix cache feature for deepseek, which should save overhead for short sequences.`False`bool flag (set to enable)
      `--disable-fast-image-processor`Adopt base image processor instead of fast image processor.`False`bool flag (set to enable)
      `--keep-mm-feature-on-device`Keep multimodal feature tensors on device after processing to save D2H copy.`False`bool flag (set to enable)
      `--enable-return-hidden-states`Enable returning hidden states with responses.`False`bool flag (set to enable)
      `--enable-return-routed-experts`Enable returning routed experts of each layer with responses.`False`bool flag (set to enable)
      `--scheduler-recv-interval`The interval to poll requests in scheduler. Can be set to >1 to reduce the overhead of this.`1`Type: int
      `--numa-node`Sets the numa node for the subprocesses. i-th element corresponds to i-th subprocess.`None`List[int]
      `--enable-deterministic-inference`Enable deterministic inference mode with batch invariant ops.`False`bool flag (set to enable)
      `--rl-on-policy-target`The training system that SGLang needs to match for true on-policy.`None``fsdp`
      `--enable-attn-tp-input-scattered`Allow input of attention to be scattered when only using tensor parallelism, to reduce the computational load of operations such as qkv latent.`False`bool flag (set to enable)
      `--enable-nsa-prefill-context-parallel`Enable context parallelism used in the long sequence prefill phase of DeepSeek v3.2.`False`bool flag (set to enable)
      `--nsa-prefill-cp-mode`Token splitting mode for the prefill phase of DeepSeek v3.2 under context parallelism. Optional values: `in-seq-split` (default), `round-robin-split`. `round-robin-split` distributes tokens across ranks based on `token_idx % cp_size`. It supports multi-batch prefill, fused MoE, and FP8 KV cache.`in-seq-split``in-seq-split`, `round-robin-split`
      `--enable-fused-qk-norm-rope`Enable fused qk normalization and rope rotary embedding.`False`bool flag (set to enable)
      `--enable-precise-embedding-interpolation`Enable corner alignment for resize of embeddings grid to ensure more accurate(but slower) evaluation of interpolated embedding values.`False`bool flag (set to enable)
      + +## Dynamic batch tokenizer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--enable-dynamic-batch-tokenizer`Enable async dynamic batch tokenizer for improved performance when multiple requests arrive concurrently.`False`bool flag (set to enable)
      `--dynamic-batch-tokenizer-batch-size`[Only used if --enable-dynamic-batch-tokenizer is set] Maximum batch size for dynamic batch tokenizer.`32`Type: int
      `--dynamic-batch-tokenizer-batch-timeout`[Only used if --enable-dynamic-batch-tokenizer is set] Timeout in seconds for batching tokenization requests.`0.002`Type: float
      + +## Debug tensor dumps + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--debug-tensor-dump-output-folder`The output folder for dumping tensors.`None`Type: str
      `--debug-tensor-dump-layers`The layer ids to dump. Dump all layers if not specified.`None`Type: JSON list
      `--debug-tensor-dump-input-file`The input filename for dumping tensors`None`Type: str
      `--debug-tensor-dump-inject`Inject the outputs from jax as the input of every layer.`False`Type: str
      + +## PD disaggregation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--disaggregation-mode`Only used for PD disaggregation. "prefill" for prefill-only server, and "decode" for decode-only server. If not specified, it is not PD disaggregated`null``null`, `prefill`, `decode`
      `--disaggregation-transfer-backend`The backend for disaggregation transfer. Default is mooncake.`mooncake``mooncake`, `nixl`, `ascend`, `fake`
      `--disaggregation-bootstrap-port`Bootstrap server port on the prefill server. Default is 8998.`8998`Type: int
      `--disaggregation-decode-tp`Decode tp size. If not set, it matches the tp size of the current engine. This is only set on the prefill server.`None`Type: int
      `--disaggregation-decode-dp`Decode dp size. If not set, it matches the dp size of the current engine. This is only set on the prefill server.`None`Type: int
      `--disaggregation-prefill-pp`Prefill pp size. If not set, it is default to 1. This is only set on the decode server.`1`Type: int
      `--disaggregation-ib-device`The InfiniBand devices for disaggregation transfer, accepts single device (e.g., --disaggregation-ib-device mlx5_0) or multiple comma-separated devices (e.g., --disaggregation-ib-device mlx5_0,mlx5_1). Default is None, which triggers automatic device detection when mooncake backend is enabled.`None`Type: str
      `--disaggregation-decode-enable-offload-kvcache`Enable async KV cache offloading on decode server (PD mode).`False`bool flag (set to enable)
      `--disaggregation-decode-enable-fake-auto`Auto enable FAKE mode for decode node testing, no need to pass bootstrap_host and bootstrap_room in request.`False`bool flag (set to enable)
      `--num-reserved-decode-tokens`Number of decode tokens that will have memory reserved when adding new request to the running batch.`512`Type: int
      `--disaggregation-decode-polling-interval`The interval to poll requests in decode server. Can be set to >1 to reduce the overhead of this.`1`Type: int
      + +## Encode prefill disaggregation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--encoder-only`For MLLM with an encoder, launch an encoder-only server`False`bool flag (set to enable)
      `--language-only`For VLM, load weights for the language model only.`False`bool flag (set to enable)
      `--encoder-transfer-backend`The backend for encoder disaggregation transfer. Default is zmq_to_scheduler.`zmq_to_scheduler``zmq_to_scheduler`, `zmq_to_tokenizer`, `mooncake`
      `--encoder-urls`List of encoder server urls.`[]`Type: JSON list
      + +## Custom weight loader + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--custom-weight-loader`The custom dataloader which used to update the model. Should be set with a valid import path, such as my_package.weight_load_func`None`List[str]
      `--weight-loader-disable-mmap`Disable mmap while loading weight using safetensors.`False`bool flag (set to enable)
      `--remote-instance-weight-loader-seed-instance-ip`The ip of the seed instance for loading weights from remote instance.`None`Type: str
      `--remote-instance-weight-loader-seed-instance-service-port`The service port of the seed instance for loading weights from remote instance.`None`Type: int
      `--remote-instance-weight-loader-send-weights-group-ports`The communication group ports for loading weights from remote instance.`None`Type: JSON list
      `--remote-instance-weight-loader-backend`The backend for loading weights from remote instance. Can be 'transfer_engine' or 'nccl'. Default is 'nccl'.`nccl``transfer_engine`, `nccl`
      `--remote-instance-weight-loader-start-seed-via-transfer-engine`Start seed server via transfer engine backend for remote instance weight loader.`False`bool flag (set to enable)
      + +## For PD-Multiplexing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--enable-pdmux`Enable PD-Multiplexing, PD running on greenctx stream.`False`bool flag (set to enable)
      `--pdmux-config-path`The path of the PD-Multiplexing config file.`None`Type: str
      `--sm-group-num`Number of sm partition groups.`8`Type: int
      + +## Configuration file support + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--config`Read CLI options from a config file. Must be a YAML file with configuration options.`None`Type: str
      + +## For Multi-Modal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--mm-max-concurrent-calls`The max concurrent calls for async mm data processing.`32`Type: int
      `--mm-per-request-timeout`The timeout for each multi-modal request in seconds.`10.0`Type: int
      `--enable-broadcast-mm-inputs-process`Enable broadcast mm-inputs process in scheduler.`False`bool flag (set to enable)
      `--mm-process-config`Multimodal preprocessing config, a json config contains keys: `image`, `video`, `audio`.`{}`Type: JSON / Dict
      `--mm-enable-dp-encoder`Enabling data parallelism for mm encoder. The dp size will be set to the tp size automatically.`False`bool flag (set to enable)
      `--limit-mm-data-per-request`Limit the number of multimodal inputs per request. e.g. '{"image": 1, "video": 1, "audio": 1}'`None`Type: JSON / Dict
      + +## For checkpoint decryption + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--decrypted-config-file`The path of the decrypted config file.`None`Type: str
      `--decrypted-draft-config-file`The path of the decrypted draft config file.`None`Type: str
      `--enable-prefix-mm-cache`Enable prefix multimodal cache. Currently only supports mm-only.`False`bool flag (set to enable)
      + +## Forward hooks + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--forward-hooks`JSON-formatted list of forward hook specifications. Each element must include `target_modules` (list of glob patterns matched against `model.named_modules()` names) and `hook_factory` (Python import path to a factory, e.g. `my_package.hooks:make_hook`). An optional `name` field is used for logging, and an optional `config` object is passed as a `dict` to the factory.`None`Type: JSON list
      + +## Deprecated arguments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDescriptionDefaultsOptions
      `--enable-ep-moe`NOTE: --enable-ep-moe is deprecated. Please set `--ep-size` to the same value as `--tp-size` instead.`None`N/A
      `--enable-deepep-moe`NOTE: --enable-deepep-moe is deprecated. Please set `--moe-a2a-backend` to 'deepep' instead.`None`N/A
      `--prefill-round-robin-balance`Note: Note: --prefill-round-robin-balance is deprecated now.`None`N/A
      `--enable-flashinfer-cutlass-moe`NOTE: --enable-flashinfer-cutlass-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_cutlass' instead.`None`N/A
      `--enable-flashinfer-cutedsl-moe`NOTE: --enable-flashinfer-cutedsl-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_cutedsl' instead.`None`N/A
      `--enable-flashinfer-trtllm-moe`NOTE: --enable-flashinfer-trtllm-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_trtllm' instead.`None`N/A
      `--enable-triton-kernel-moe`NOTE: --enable-triton-kernel-moe is deprecated. Please set `--moe-runner-backend` to 'triton_kernel' instead.`None`N/A
      `--enable-flashinfer-mxfp4-moe`NOTE: --enable-flashinfer-mxfp4-moe is deprecated. Please set `--moe-runner-backend` to 'flashinfer_mxfp4' instead.`None`N/A
      `--crash-on-nan`Crash the server on nan logprobs.`False`Type: str
      `--hybrid-kvcache-ratio`Mix ratio in [0,1] between uniform and hybrid kv buffers (0.0 = pure uniform: swa_size / full_size = 1)(1.0 = pure hybrid: swa_size / full_size = local_attention_size / context_length)`None`Optional[float]
      `--load-watch-interval`The interval of load watching in seconds.`0.1`Type: float
      `--nsa-prefill`Choose the NSA backend for the prefill stage (overrides `--attention-backend` when running DeepSeek NSA-style attention).`flashmla_sparse``flashmla_sparse`, `flashmla_decode`, `fa3`, `tilelang`, `aiter`
      `--nsa-decode`Choose the NSA backend for the decode stage when running DeepSeek NSA-style attention. Overrides `--attention-backend` for decoding.`flashmla_kv``flashmla_prefill`, `flashmla_kv`, `fa3`, `tilelang`, `aiter`
      diff --git a/docs_new/docs/advanced_features/sgl_model_gateway.mdx b/docs_new/docs/advanced_features/sgl_model_gateway.mdx new file mode 100644 index 000000000..1789442de --- /dev/null +++ b/docs_new/docs/advanced_features/sgl_model_gateway.mdx @@ -0,0 +1,2775 @@ +--- +title: "SGLang Model Gateway" +metatags: + description: "SGLang Model Gateway: load balancing, PD disaggregation, multi-model routing, gRPC support, MCP integration, Kubernetes service discovery." +--- +SGLang Model Gateway is a high-performance model-routing gateway for large-scale LLM deployments. It centralizes worker lifecycle management, balances traffic across heterogeneous protocols (HTTP, gRPC, OpenAI-compatible), and provides enterprise-ready control over history storage, MCP tooling, and privacy-sensitive workflows. The gateway is deeply optimized for the SGLang serving runtime, but can route to any OpenAI-compatible backend. + +*** +## Table of Contents + +1. [Overview](#overview) +2. [Architecture](#architecture) + - [Control Plane](#control-plane) + - [Data Plane](#data-plane) + - [Storage and Privacy](#storage-and-privacy) +3. [Installation](#installation) +4. [Quick Start](#quick-start) +5. [Deployment Modes](#deployment-modes) + - [Co-launch Router and Workers](#co-launch-router-and-workers) + - [Separate Launch (HTTP)](#separate-launch-http) + - [gRPC Launch](#grpc-launch) + - [Prefill-Decode Disaggregation](#prefill-decode-disaggregation) + - [OpenAI Backend Proxy](#openai-backend-proxy) + - [Multi-Model Inference Gateway](#multi-model-inference-gateway) +6. [API Reference](#api-reference) + - [Inference Endpoints](#inference-endpoints) + - [Tokenization Endpoints](#tokenization-endpoints) + - [Parser Endpoints](#parser-endpoints) + - [Classification API](#classification-api) + - [Conversation and Response APIs](#conversation-and-response-apis) + - [Worker Management APIs](#worker-management-apis) + - [Admin and Health Endpoints](#admin-and-health-endpoints) +7. [Load Balancing Policies](#load-balancing-policies) +8. [Reliability and Flow Control](#reliability-and-flow-control) + - [Retries](#retries) + - [Circuit Breaker](#circuit-breaker) + - [Rate Limiting and Queuing](#rate-limiting-and-queuing) + - [Health Checks](#health-checks) +9. [Reasoning Parser Integration](#reasoning-parser-integration) +10. [Tool Call Parsing](#tool-call-parsing) +11. [Tokenizer Management](#tokenizer-management) +12. [MCP Integration](#mcp-integration) +13. [Service Discovery (Kubernetes)](#service-discovery-kubernetes) +14. [History and Data Connectors](#history-and-data-connectors) +15. [WASM Middleware](#wasm-middleware) +16. [Language Bindings](#language-bindings) +17. [Security and Authentication](#security-and-authentication) + - [TLS (HTTPS) for Gateway Server](#tls-https-for-gateway-server) + - [mTLS for Worker Communication](#mtls-for-worker-communication) +18. [Observability](#observability) + - [Prometheus Metrics](#prometheus-metrics) + - [OpenTelemetry Tracing](#opentelemetry-tracing) + - [Logging](#logging) +19. [Production Recommendations](#production-recommendations) + - [Security Best Practices](#security-best-practices) + - [High Availability](#high-availability) + - [Performance](#performance) + - [Kubernetes Deployment](#kubernetes-deployment) + - [Monitoring with PromQL](#monitoring-with-promql) +20. [Configuration Reference](#configuration-reference) +21. [Troubleshooting](#troubleshooting) + +*** +## Overview + +- **Unified control plane** for registering, monitoring, and orchestrating regular, prefill, and decode workers across heterogeneous model fleets. +- **Multi-protocol data plane** that routes traffic across HTTP, PD (prefill/decode), gRPC, and OpenAI-compatible backends with shared reliability primitives. +- **Industry-first gRPC pipeline** with native Rust tokenization, reasoning parsers, and tool-call execution for high-throughput, OpenAI-compatible serving; supports both single-stage and PD topologies. +- **Inference Gateway Mode (`--enable-igw`)** dynamically instantiates multiple router stacks (HTTP regular/PD, gRPC) and applies per-model policies for multi-tenant deployments. +- **Conversation & responses connectors** centralize chat history inside the router so the same context can be reused across models and MCP loops without leaking data to upstream vendors (memory, none, Oracle ATP, PostgreSQL). +- **Enterprise privacy**: agentic multi-turn `/v1/responses`, native MCP client (STDIO/HTTP/SSE/Streamable), and history storage all operate within the router boundary. +- **Reliability core**: retries with jitter, worker-scoped circuit breakers, token-bucket rate limiting with queuing, background health checks, and cache-aware load monitoring. +- **Comprehensive observability**: 40+ Prometheus metrics, OpenTelemetry distributed tracing, structured logging, and request ID propagation. + +*** +## Architecture + +### Control Plane + +- **Worker Manager** discovers capabilities (`/get_server_info`, `/get_model_info`), tracks load, and registers/removes workers in the shared registry. +- **Job Queue** serializes add/remove requests and exposes status (`/workers/{worker_id}`) so clients can track onboarding progress. +- **Load Monitor** feeds cache-aware and power-of-two policies with live worker load statistics. +- **Health Checker** continuously probes workers and updates readiness, circuit breaker state, and router metrics. +- **Tokenizer Registry** manages dynamically registered tokenizers with async loading from HuggingFace or local paths. + +### Data Plane + +- **HTTP routers** (regular & PD) implement `/generate`, `/v1/chat/completions`, `/v1/completions`, `/v1/responses`, `/v1/embeddings`, `/v1/rerank`, `/v1/classify`, `/v1/tokenize`, `/v1/detokenize`, and associated admin endpoints. +- **gRPC router** streams tokenized requests directly to SRT gRPC workers, running fully in Rust—tokenizer, reasoning parser, and tool parser all reside in-process. Supports both single-stage and PD routing, including embeddings and classification. +- **OpenAI router** proxies OpenAI-compatible endpoints to external vendors (OpenAI, xAI, etc.) while keeping chat history and multi-turn orchestration local. + +### Storage and Privacy + +- Conversation and response history is stored at the router tier (memory, none, Oracle ATP, or PostgreSQL). The same history can power multiple models or MCP loops without sending data to upstream vendors. +- `/v1/responses` agentic flows, MCP sessions, and conversation APIs share the same storage layer, enabling compliance for regulated workloads. + +*** +## Installation + +### Docker + +Pre-built Docker images are available on Docker Hub with multi-architecture support (x86_64 and ARM64): + +```bash Command +docker pull lmsysorg/sgl-model-gateway:latest +``` + +### Prerequisites + +- **Rust and Cargo** + ```bash Command + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + source "$HOME/.cargo/env" + rustc --version + cargo --version + ``` +- **Python** with `pip` and virtualenv tooling available. + +### Rust Binary + +```bash Command +cd sgl-model-gateway +cargo build --release +``` + +### Python Package + +```bash Command +pip install maturin + +# Fast development mode +cd sgl-model-gateway/bindings/python +maturin develop + +# Production build +maturin build --release --out dist --features vendored-openssl +pip install --force-reinstall dist/*.whl +``` + +*** +## Quick Start + +### Regular HTTP Routing + +```bash Command +# Rust binary +./target/release/sgl-model-gateway \ + --worker-urls http://worker1:8000 http://worker2:8000 \ + --policy cache_aware + +# Python launcher +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 http://worker2:8000 \ + --policy cache_aware +``` + +### gRPC Routing + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls grpc://127.0.0.1:20000 \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --reasoning-parser deepseek-r1 \ + --tool-call-parser json \ + --host 0.0.0.0 --port 8080 +``` + +*** +## Deployment Modes + +### Co-launch Router and Workers + +Launch the router and a fleet of SGLang workers in one process: + +```bash Command +python -m sglang_router.launch_server \ + --model meta-llama/Meta-Llama-3.1-8B-Instruct \ + --dp-size 4 \ + --host 0.0.0.0 \ + --port 30000 +``` + +Comprehensive example with router arguments (prefixed with `--router-`): + +```bash Command +python -m sglang_router.launch_server \ + --host 0.0.0.0 \ + --port 8080 \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --tp-size 1 \ + --dp-size 8 \ + --grpc-mode \ + --log-level debug \ + --router-prometheus-port 10001 \ + --router-tool-call-parser llama \ + --router-model-path meta-llama/Llama-3.1-8B-Instruct \ + --router-policy round_robin \ + --router-log-level debug +``` + +### Separate Launch (HTTP) + +Run workers independently and point the router at their HTTP endpoints: + +```bash Command +# Worker nodes +python -m sglang.launch_server --model meta-llama/Meta-Llama-3.1-8B-Instruct --port 8000 +python -m sglang.launch_server --model meta-llama/Meta-Llama-3.1-8B-Instruct --port 8001 + +# Router node +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 http://worker2:8001 \ + --policy cache_aware \ + --host 0.0.0.0 --port 30000 +``` + +### gRPC Launch + +Use SRT gRPC workers to unlock the highest throughput and access native reasoning/tool pipelines: + +```bash Command +# Workers expose gRPC endpoints +python -m sglang.launch_server \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --grpc-mode \ + --port 20000 + +# Router +python -m sglang_router.launch_router \ + --worker-urls grpc://127.0.0.1:20000 \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --reasoning-parser deepseek-r1 \ + --tool-call-parser json \ + --host 0.0.0.0 --port 8080 +``` + +The gRPC router supports both regular HTTP-equivalent serving and PD (prefill/decode) serving. Provide `--tokenizer-path` or `--model-path` (HuggingFace ID or local directory) whenever connection mode resolves to gRPC. + +### Prefill-Decode Disaggregation + +Split prefill and decode workers for PD-aware caching and balancing: + +```bash Command +python -m sglang_router.launch_router \ + --pd-disaggregation \ + --prefill http://prefill1:30001 9001 \ + --decode http://decode1:30011 \ + --prefill-policy cache_aware \ + --decode-policy power_of_two +``` + +Prefill entries accept an optional bootstrap port. PD mode merges prefill metadata with decode outputs and streams results back to the client. + +### OpenAI Backend Proxy + +Proxy OpenAI-compatible endpoints while keeping history and MCP sessions local: + +```bash Command +python -m sglang_router.launch_router \ + --backend openai \ + --worker-urls https://api.openai.com \ + --history-backend memory +``` + +OpenAI backend mode expects exactly one `--worker-urls` entry per router instance. + +### Multi-Model Inference Gateway + +Enable IGW mode to route multiple models through a single router: + +```bash Command +./target/release/sgl-model-gateway \ + --enable-igw \ + --policy cache_aware \ + --max-concurrent-requests 512 + +# Register workers dynamically +curl -X POST http://localhost:30000/workers \ + -H "Content-Type: application/json" \ + -d '{ + "url": "http://worker-a:8000", + "model_id": "mistral", + "priority": 10, + "labels": {"tier": "gold"} + }' +``` + +*** +## API Reference + +### Inference Endpoints + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MethodPathDescription
      `POST``/generate`SGLang generate API
      `POST``/v1/chat/completions`OpenAI-compatible chat completions (streaming/tool calls)
      `POST``/v1/completions`OpenAI-compatible text completions
      `POST``/v1/embeddings`Embedding generation (HTTP and gRPC)
      `POST``/v1/rerank`, `/rerank`Reranking requests
      `POST``/v1/classify`Text classification
      + +### Tokenization Endpoints + +The gateway provides HTTP endpoints for text tokenization with batch support, designed to mirror the SGLang Python tokenization API. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MethodPathDescription
      `POST``/v1/tokenize`Tokenize text to token IDs (single or batch)
      `POST``/v1/detokenize`Convert token IDs back to text (single or batch)
      `POST``/v1/tokenizers`Register a new tokenizer (async, returns job status)
      `GET``/v1/tokenizers`List all registered tokenizers
      `GET``/v1/tokenizers/{id}`Get tokenizer info by UUID
      `GET``/v1/tokenizers/{id}/status`Check async tokenizer loading status
      `DELETE``/v1/tokenizers/{id}`Remove a tokenizer from the registry
      + +#### Tokenize Request + +```json Config +{ + "model": "meta-llama/Llama-3.1-8B-Instruct", + "prompt": "Hello, world!" +} +``` + +#### Batch Tokenize Request + +```json Config +{ + "model": "meta-llama/Llama-3.1-8B-Instruct", + "prompt": ["Hello", "World", "How are you?"] +} +``` + +#### Tokenize Response + +```json Config +{ + "tokens": [15339, 11, 1917, 0], + "count": 4, + "char_count": 13 +} +``` + +#### Detokenize Request + +```json Config +{ + "model": "meta-llama/Llama-3.1-8B-Instruct", + "tokens": [15339, 11, 1917, 0], + "skip_special_tokens": true +} +``` + +#### Detokenize Response + +```json Config +{ + "text": "Hello, world!" +} +``` + +#### Add Tokenizer (Async) + +```bash Command +curl -X POST http://localhost:30000/v1/tokenizers \ + -H "Content-Type: application/json" \ + -d '{"name": "llama3", "source": "meta-llama/Llama-3.1-8B-Instruct"}' +``` + +Response: +```json Config +{ + "id": "550e8400-e29b-41d4-a716-446655440000", + "status": "pending", + "message": "Tokenizer registration queued" +} +``` + +Check status: +```bash Command +curl http://localhost:30000/v1/tokenizers/550e8400-e29b-41d4-a716-446655440000/status +``` + +### Parser Endpoints + +The gateway provides admin endpoints for parsing reasoning content and function calls from LLM outputs. + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MethodPathDescription
      `POST``/parse/reasoning`Separate reasoning (`<think>`) from normal text
      `POST``/parse/function_call`Parse function/tool calls from text
      + +#### Separate Reasoning Request + +```json Config +{ + "text": "<think>Let me analyze this step by step...</think>The answer is 42.", + "parser": "deepseek-r1" +} +``` + +#### Response + +```json Config +{ + "normal_text": "The answer is 42.", + "reasoning_text": "Let me analyze this step by step..." +} +``` + +#### Function Call Parsing + +```json Config +{ + "text": "{\"name\": \"get_weather\", \"arguments\": {\"city\": \"NYC\"}}", + "parser": "json" +} +``` + +### Classification API + +The `/v1/classify` endpoint provides text classification using sequence classification models (e.g., `Qwen2ForSequenceClassification`, `BertForSequenceClassification`). + +#### Request + +```bash Command +curl http://localhost:30000/v1/classify \ + -H "Content-Type: application/json" \ + -d '{ + "model": "jason9693/Qwen2.5-1.5B-apeach", + "input": "I love this product!" + }' +``` + +#### Response + +```json Config +{ + "id": "classify-a1b2c3d4-5678-90ab-cdef-1234567890ab", + "object": "list", + "created": 1767034308, + "model": "jason9693/Qwen2.5-1.5B-apeach", + "data": [ + { + "index": 0, + "label": "positive", + "probs": [0.12, 0.88], + "num_classes": 2 + } + ], + "usage": { + "prompt_tokens": 6, + "completion_tokens": 0, + "total_tokens": 6 + } +} +``` + +#### Response Fields + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescription
      `label`Predicted class label (from model's `id2label` config, or `LABEL_N` fallback)
      `probs`Probability distribution over all classes (softmax of logits)
      `num_classes`Number of classification classes
      + +#### Notes + +- Classification reuses the embedding backend—the scheduler returns logits which are converted to probabilities via softmax +- Labels come from the model's HuggingFace config (`id2label` field); models without this mapping use generic labels (`LABEL_0`, `LABEL_1`, etc.) +- Both HTTP and gRPC routers support classification + +### Conversation and Response APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MethodPathDescription
      `POST``/v1/responses`Create background responses (agentic loops)
      `GET``/v1/responses/{id}`Retrieve stored response
      `POST``/v1/responses/{id}/cancel`Cancel background response
      `DELETE``/v1/responses/{id}`Delete response
      `GET``/v1/responses/{id}/input_items`List response input items
      `POST``/v1/conversations`Create conversation
      `GET``/v1/conversations/{id}`Get conversation
      `POST``/v1/conversations/{id}`Update conversation
      `DELETE``/v1/conversations/{id}`Delete conversation
      `GET``/v1/conversations/{id}/items`List conversation items
      `POST``/v1/conversations/{id}/items`Add items to conversation
      `GET``/v1/conversations/{id}/items/{item_id}`Get conversation item
      `DELETE``/v1/conversations/{id}/items/{item_id}`Delete conversation item
      + +### Worker Management APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MethodPathDescription
      `POST``/workers`Queue worker registration (returns 202 Accepted)
      `GET``/workers`List workers with health, load, and policy metadata
      `GET``/workers/{worker_id}`Inspect specific worker or job queue entry
      `PUT``/workers/{worker_id}`Queue worker update
      `DELETE``/workers/{worker_id}`Queue worker removal
      + +#### Add Worker + +```bash Command +curl -X POST http://localhost:30000/workers \ + -H "Content-Type: application/json" \ + -d '{"url":"grpc://0.0.0.0:31000","worker_type":"regular"}' +``` + +#### List Workers + +```bash Command +curl http://localhost:30000/workers +``` + +Response: +```json Config +{ + "workers": [ + { + "id": "2f3a0c3e-3a7b-4c3f-8c70-1b7d4c3a6e1f", + "url": "http://0.0.0.0:31378", + "model_id": "mistral", + "priority": 50, + "cost": 1.0, + "worker_type": "regular", + "is_healthy": true, + "load": 0, + "connection_mode": "Http" + } + ], + "total": 1, + "stats": { + "prefill_count": 0, + "decode_count": 0, + "regular_count": 1 + } +} +``` + +### Admin and Health Endpoints + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MethodPathDescription
      `GET``/liveness`Health check (always returns OK)
      `GET``/readiness`Readiness check (checks healthy worker availability)
      `GET``/health`Alias for liveness
      `GET``/health_generate`Health generate test
      `GET``/engine_metrics`Engine-level metrics from workers
      `GET``/v1/models`List available models
      `GET``/get_model_info`Get model information
      `GET``/get_server_info`Get server information
      `POST``/flush_cache`Clear all caches
      `GET``/get_loads`Get all worker loads
      `POST``/wasm`Upload WASM module
      `GET``/wasm`List WASM modules
      `DELETE``/wasm/{module_uuid}`Remove WASM module
      + +*** +## Load Balancing Policies + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      PolicyDescriptionUsage
      `random`Uniform random selection`--policy random`
      `round_robin`Cycles through workers in order`--policy round_robin`
      `power_of_two`Samples two workers and picks the lighter one`--policy power_of_two`
      `cache_aware`Combines cache locality with load balancing (default)`--policy cache_aware`
      `bucket`Divides workers into load buckets with dynamic boundaries`--policy bucket`
      + +### Cache-Aware Policy Tuning + +```bash Command +--cache-threshold 0.5 \ +--balance-abs-threshold 32 \ +--balance-rel-threshold 1.5 \ +--eviction-interval-secs 120 \ +--max-tree-size 67108864 +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDefaultDescription
      `--cache-threshold`0.3Minimum prefix match ratio for cache hit
      `--balance-abs-threshold`64Absolute load difference before rebalancing
      `--balance-rel-threshold`1.5Relative load ratio before rebalancing
      `--eviction-interval-secs`120Cache eviction cadence in seconds
      `--max-tree-size`67108864Maximum nodes in cache tree
      + +*** +## Reliability and Flow Control + +### Retries + +Configure exponential backoff retries: + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 http://worker2:8001 \ + --retry-max-retries 5 \ + --retry-initial-backoff-ms 50 \ + --retry-max-backoff-ms 30000 \ + --retry-backoff-multiplier 1.5 \ + --retry-jitter-factor 0.2 +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDefaultDescription
      `--retry-max-retries`5Maximum retry attempts
      `--retry-initial-backoff-ms`50Initial backoff duration (ms)
      `--retry-max-backoff-ms`5000Maximum backoff duration (ms)
      `--retry-backoff-multiplier`2.0Exponential backoff multiplier
      `--retry-jitter-factor`0.1Random jitter factor (0.0-1.0)
      `--disable-retries`falseDisable retries entirely
      + +**Retryable Status Codes:** 408, 429, 500, 502, 503, 504 + +### Circuit Breaker + +Per-worker circuit breakers prevent cascading failures: + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 http://worker2:8001 \ + --cb-failure-threshold 5 \ + --cb-success-threshold 2 \ + --cb-timeout-duration-secs 30 \ + --cb-window-duration-secs 60 +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDefaultDescription
      `--cb-failure-threshold`5Consecutive failures to open circuit
      `--cb-success-threshold`2Successes to close from half-open
      `--cb-timeout-duration-secs`30Time before half-open attempt
      `--cb-window-duration-secs`60Failure counting window
      `--disable-circuit-breaker`falseDisable circuit breaker
      + +**Circuit Breaker States:** +- **Closed**: Normal operation, requests allowed +- **Open**: Failing, requests rejected immediately +- **Half-Open**: Testing recovery, limited requests allowed + +### Rate Limiting and Queuing + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 http://worker2:8001 \ + --max-concurrent-requests 256 \ + --rate-limit-tokens-per-second 512 \ + --queue-size 128 \ + --queue-timeout-secs 30 +``` + +Requests beyond the concurrency limit wait in a FIFO queue. Returns: +- `429 Too Many Requests` when queue is full +- `408 Request Timeout` when queue timeout expires + +### Health Checks + +```bash Command +--health-check-interval-secs 30 \ +--health-check-timeout-secs 10 \ +--health-success-threshold 2 \ +--health-failure-threshold 3 \ +--health-check-endpoint /health +``` + +*** +## Reasoning Parser Integration + +The gateway includes built-in reasoning parsers for models that use Chain-of-Thought (CoT) reasoning with explicit thinking blocks. + +### Supported Parsers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Parser IDModel FamilyThink Tokens
      `deepseek-r1`DeepSeek-R1`<think>...</think>` (initial reasoning)
      `qwen3`Qwen-3`<think>...</think>`
      `qwen3-thinking`Qwen-3 Thinking`<think>...</think>` (initial reasoning)
      `kimi`Kimi K2Unicode think tokens
      `glm45`GLM-4.5/4.6/4.7`<think>...</think>`
      `step3`Step-3`<think>...</think>`
      `minimax`MiniMax`<think>...</think>`
      + +### Usage + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls grpc://127.0.0.1:20000 \ + --model-path deepseek-ai/DeepSeek-R1 \ + --reasoning-parser deepseek-r1 +``` + +The gRPC router automatically: +1. Detects reasoning blocks in streaming output +2. Separates reasoning content from normal text +3. Applies incremental streaming parsing with buffer management +4. Handles partial token detection for correct streaming behavior + +*** +## Tool Call Parsing + +The gateway supports parsing function/tool calls from LLM outputs in multiple formats. + +### Supported Formats + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParserFormatDescription
      `json`JSONStandard JSON tool calls
      `python`PythonicPython function call syntax
      `xml`XMLXML-formatted tool calls
      + +### Usage + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls grpc://127.0.0.1:20000 \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --tool-call-parser json +``` + +*** +## Tokenizer Management + +### Tokenizer Sources + +The gateway supports multiple tokenizer backends: +- **HuggingFace**: Load from HuggingFace Hub by model ID +- **Local**: Load from local `tokenizer.json` or directory +- **Tiktoken**: Auto-detect OpenAI GPT models (gpt-4, davinci, etc.) + +### Configuration + +```bash Command +# HuggingFace model +--model-path meta-llama/Llama-3.1-8B-Instruct + +# Local tokenizer +--tokenizer-path /path/to/tokenizer.json + +# With chat template override +--chat-template /path/to/template.jinja +``` + +### Tokenizer Caching + +Two-level caching for optimal performance: + + + + + + + + + + + + + + + + + + + + + + + + + + +
      CacheTypeDescription
      L0Exact matchWhole-string caching for repeated prompts
      L1Prefix matchPrefix boundary matching for incremental prompts
      + +```bash Command +--enable-l0-cache \ +--l0-max-entries 10000 \ +--enable-l1-cache \ +--l1-max-memory 52428800 # 50MB +``` + +*** +## MCP Integration + +The gateway provides native Model Context Protocol (MCP) client integration for tool execution. + +### Supported Transports + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TransportDescription
      STDIOLocal process execution
      SSEServer-Sent Events (HTTP)
      StreamableBidirectional streaming
      + +### Configuration + +```bash Command +python -m sglang_router.launch_router \ + --mcp-config-path /path/to/mcp-config.yaml \ + --worker-urls http://worker1:8000 +``` + +### MCP Configuration File + +```yaml Config +servers: + - name: "filesystem" + command: "npx" + args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] + protocol: "stdio" + required: false + + - name: "github" + url: "https://api.github.com/mcp" + token: "ghp_xxxxx" + protocol: "sse" + required: false + + - name: "custom-tools" + url: "https://tools.example.com/mcp" + protocol: "streamable" + required: true + +pool: + max_connections: 100 + idle_timeout: 300 + +proxy: + http: "http://proxy.internal:8080" + https: "https://proxy.internal:8443" + no_proxy: "localhost,127.0.0.1,*.internal" + +inventory: + enable_refresh: true + tool_ttl: 300 + refresh_interval: 300 +``` + +*** +## Service Discovery (Kubernetes) + +Enable automatic worker discovery via Kubernetes pod selectors: + +```bash Command +python -m sglang_router.launch_router \ + --service-discovery \ + --selector app=sglang-worker role=inference \ + --service-discovery-namespace production \ + --service-discovery-port 8000 +``` + +### PD Mode Discovery + +```bash Command +--pd-disaggregation \ +--prefill-selector app=sglang component=prefill \ +--decode-selector app=sglang component=decode \ +--service-discovery +``` + +Prefill pods can expose bootstrap ports via the `sglang.ai/bootstrap-port` annotation. RBAC must allow `get`, `list`, and `watch` on pods. + +*** +## History and Data Connectors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      BackendDescriptionUsage
      `memory`In-memory storage (default)`--history-backend memory`
      `none`No persistence`--history-backend none`
      `oracle`Oracle Autonomous Database`--history-backend oracle`
      `postgres`PostgreSQL Database`--history-backend postgres`
      `redis`Redis`--history-backend redis`
      + +### Oracle Configuration + +```bash Command +# Connection descriptor +export ATP_DSN="(description=(address=(protocol=tcps)(port=1522)(host=adb.region.oraclecloud.com))(connect_data=(service_name=service_name)))" + +# Or TNS alias (requires wallet) +export ATP_TNS_ALIAS="sglroutertestatp_high" +export ATP_WALLET_PATH="/path/to/wallet" + +# Credentials +export ATP_USER="admin" +export ATP_PASSWORD="secret" +export ATP_POOL_MIN=4 +export ATP_POOL_MAX=32 + +python -m sglang_router.launch_router \ + --backend openai \ + --worker-urls https://api.openai.com \ + --history-backend oracle +``` + +### PostgreSQL Configuration + +```bash Command +export POSTGRES_DB_URL="postgres://user:password@host:5432/dbname" + +python -m sglang_router.launch_router \ + --backend openai \ + --worker-urls https://api.openai.com \ + --history-backend postgres +``` + +### Redis Configuration + +```bash Command +export REDIS_URL="redis://localhost:6379" +export REDIS_POOL_MAX=16 +export REDIS_RETENTION_DAYS=30 + +python -m sglang_router.launch_router \ + --backend openai \ + --worker-urls https://api.openai.com \ + --history-backend redis \ + --redis-retention-days 30 +``` + +Use `--redis-retention-days -1` for persistent storage (default is 30 days). + +*** +## WASM Middleware + +The gateway supports WebAssembly (WASM) middleware modules for custom request/response processing. This enables organization-specific logic for authentication, rate limiting, billing, logging, and more—without modifying or recompiling the gateway. + +### Overview + +WASM middleware runs in a sandboxed environment with memory isolation, no network/filesystem access, and configurable resource limits. + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Attach PointWhen ExecutedUse Cases
      `OnRequest`Before forwarding to workersAuth, rate limiting, request modification
      `OnResponse`After receiving worker responseLogging, response modification, error handling
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ActionDescription
      `Continue`Proceed without modification
      `Reject(status)`Reject request with HTTP status code
      `Modify(...)`Modify headers, body, or status
      + +### Examples + +Complete working examples are available in `examples/wasm/`: + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ExampleDescription
      `auth/`API key authentication for protected routes
      `rate_limit/`Per-client rate limiting (requests/minute)
      `logging/`Request tracking headers and response modification
      + +The interface definition is located at `src/wasm/interface`. + +### Building Modules + +```bash Command +# Prerequisites +rustup target add wasm32-wasip2 +cargo install wasm-tools + +# Build +cargo build --target wasm32-wasip2 --release + +# Convert to component format +wasm-tools component new \ + target/wasm32-wasip2/release/my_middleware.wasm \ + -o my_middleware.component.wasm +``` + +### Deploying Modules + +```bash Command +# Enable WASM support +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 \ + --enable-wasm + +# Upload module +curl -X POST http://localhost:30000/wasm \ + -H "Content-Type: application/json" \ + -d '{ + "modules": [{ + "name": "auth-middleware", + "file_path": "/absolute/path/to/auth.component.wasm", + "module_type": "Middleware", + "attach_points": [{"Middleware": "OnRequest"}] + }] + }' + +# List modules +curl http://localhost:30000/wasm + +# Remove module +curl -X DELETE http://localhost:30000/wasm/{module_uuid} +``` + +### Runtime Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDefaultDescription
      `max_memory_pages`1024 (64MB)Maximum WASM memory
      `max_execution_time_ms`1000Execution timeout
      `max_stack_size`1MBStack size limit
      `module_cache_size`10Cached modules per worker
      + +**Note:** Rate limiting state is per-worker thread and not shared across gateway replicas. For production, consider implementing rate limiting at a shared layer (e.g., Redis) + +*** +## Language Bindings + +SGLang Model Gateway provides official language bindings for Python and Go, enabling integration with different technology stacks and organizational requirements. + +### Python Bindings + +The Python bindings provide a PyO3-based wrapper around the Rust gateway library. This is a straightforward binding that calls the gateway server startup from Python. + +#### Installation + +```bash Command +# From PyPI +pip install sglang-router + +# Development build +cd sgl-model-gateway/bindings/python +pip install maturin && maturin develop --features vendored-openssl +``` + +#### Usage + +The Python bindings are used throughout this documentation. See the [Quick Start](#quick-start) and [Deployment Modes](#deployment-modes) sections for detailed examples. + +Key components: +- `RouterArgs` dataclass with 50+ configuration options +- `Router.from_args()` for programmatic startup +- CLI commands: `smg launch`, `smg server`, `python -m sglang_router.launch_router` + +### Go Bindings + +The Go bindings provide a high-performance gRPC client library for organizations with Go-based infrastructure. This is ideal for: + +- Integration with internal Go services and tooling +- High-performance client applications +- Building custom OpenAI-compatible proxy servers + +#### Architecture + +```text Output ++-------------------------------------------+ +| High-Level Go API | +| (client.go - OpenAI-style interface) | ++-------------------------------------------+ +| gRPC Layer | ++-------------------------------------------+ +| Rust FFI Layer | +| (Tokenization, Parsing, Conversion) | ++-------------------------------------------+ +``` + +**Key Features:** +- Native Rust tokenization via FFI (thread-safe, lock-free) +- Full streaming support with context cancellation +- Configurable channel buffer sizes for high concurrency +- Built-in tool call parsing and chat template application + +#### Installation + +```bash Command +# Build the FFI library first +cd sgl-model-gateway/bindings/golang +make build && make lib + +# Then use in your Go project +go get github.com/sgl-project/sgl-go-sdk +``` + +**Requirements:** Go 1.24+, Rust toolchain + +#### Examples + +Complete working examples are available in `bindings/golang/examples/`: + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ExampleDescription
      `simple/`Non-streaming chat completion
      `streaming/`Streaming chat completion with SSE
      `oai_server/`Full OpenAI-compatible HTTP server
      + +```bash Command +# Run examples +cd sgl-model-gateway/bindings/golang/examples/simple && ./run.sh +cd sgl-model-gateway/bindings/golang/examples/streaming && ./run.sh +cd sgl-model-gateway/bindings/golang/examples/oai_server && ./run.sh +``` + +#### Testing + +```bash Command +cd sgl-model-gateway/bindings/golang + +# Unit tests +go test -v ./... + +# Integration tests (requires running SGLang server) +export SGL_GRPC_ENDPOINT=grpc://localhost:20000 +export SGL_TOKENIZER_PATH=/path/to/tokenizer +go test -tags=integration -v ./... +``` + +### Comparison + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FeaturePythonGo
      **Primary Use**Gateway server launchergRPC client library
      **CLI Support**Full CLI (smg, sglang-router)Library only
      **K8s Discovery**Native supportN/A (client library)
      **PD Mode**Built-inN/A (client library)
      + +**When to Use Python:** Launching and managing the gateway server, service discovery, PD disaggregation. + +**When to Use Go:** Building custom client applications, integration with Go microservices, OpenAI-compatible proxy servers + +*** +## Security and Authentication + +### Router API Key + +```bash Command +python -m sglang_router.launch_router \ + --api-key "your-router-api-key" \ + --worker-urls http://worker1:8000 +``` + +Clients must supply `Authorization: Bearer ` for protected endpoints. + +### Worker API Keys + +```bash Command +# Add worker with explicit key +curl -H "Authorization: Bearer router-key" \ + -X POST http://localhost:8080/workers \ + -H "Content-Type: application/json" \ + -d '{"url":"http://worker:8000","api_key":"worker-key"}' +``` + +### Security Configurations + +1. **No Authentication** (default): Use only in trusted environments +2. **Router-only Authentication**: Clients authenticate to router +3. **Worker-only Authentication**: Router open, workers require keys +4. **Full Authentication**: Both router and workers protected + +### TLS (HTTPS) for Gateway Server + +Enable TLS to serve the gateway over HTTPS: + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 \ + --tls-cert-path /path/to/server.crt \ + --tls-key-path /path/to/server.key +``` + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDescription
      `--tls-cert-path`Path to server certificate (PEM format)
      `--tls-key-path`Path to server private key (PEM format)
      + +Both parameters must be provided together. The gateway uses rustls with the ring crypto provider for TLS termination. If TLS is not configured, the gateway falls back to plain HTTP. + +### mTLS for Worker Communication + +Enable mutual TLS (mTLS) for secure communication with workers in HTTP mode: + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls https://worker1:8443 https://worker2:8443 \ + --client-cert-path /path/to/client.crt \ + --client-key-path /path/to/client.key \ + --ca-cert-path /path/to/ca.crt +``` + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterDescription
      `--client-cert-path`Path to client certificate for mTLS (PEM format)
      `--client-key-path`Path to client private key for mTLS (PEM format)
      `--ca-cert-path`Path to CA certificate for verifying worker TLS (PEM format, repeatable)
      + +**Key Points:** +- Client certificate and key must be provided together +- Multiple CA certificates can be added with multiple `--ca-cert-path` flags +- Uses rustls backend when TLS is configured +- Single HTTP client is created for all workers (assumes single security domain) +- TCP keepalive (30 seconds) is enabled for long-lived connections + +### Full TLS Configuration Example + +Gateway HTTPS + Worker mTLS + API Key authentication: + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls https://worker1:8443 https://worker2:8443 \ + --tls-cert-path /etc/certs/server.crt \ + --tls-key-path /etc/certs/server.key \ + --client-cert-path /etc/certs/client.crt \ + --client-key-path /etc/certs/client.key \ + --ca-cert-path /etc/certs/ca.crt \ + --api-key "secure-api-key" \ + --policy cache_aware +``` + +*** +## Observability + +### Prometheus Metrics + +Enable with `--prometheus-host`/`--prometheus-port` (defaults to `0.0.0.0:29000`). + +#### Metric Categories (40+ metrics) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      LayerPrefixMetrics
      HTTP`smg_http_*``requests_total`, `request_duration_seconds`, `responses_total`, `connections_active`, `rate_limit_total`
      Router`smg_router_*``requests_total`, `request_duration_seconds`, `request_errors_total`, `stage_duration_seconds`, `upstream_responses_total`
      Inference`smg_router_*``ttft_seconds`, `tpot_seconds`, `tokens_total`, `generation_duration_seconds`
      Worker`smg_worker_*``pool_size`, `connections_active`, `requests_active`, `health_checks_total`, `selection_total`, `errors_total`
      Circuit Breaker`smg_worker_cb_*``state`, `transitions_total`, `outcomes_total`, `consecutive_failures`, `consecutive_successes`
      Retry`smg_worker_*``retries_total`, `retries_exhausted_total`, `retry_backoff_seconds`
      Discovery`smg_discovery_*``registrations_total`, `deregistrations_total`, `sync_duration_seconds`, `workers_discovered`
      MCP`smg_mcp_*``tool_calls_total`, `tool_duration_seconds`, `servers_active`, `tool_iterations_total`
      Database`smg_db_*``operations_total`, `operation_duration_seconds`, `connections_active`, `items_stored`
      + +#### Key Inference Metrics (gRPC mode) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MetricTypeDescription
      `smg_router_ttft_seconds`HistogramTime to first token
      `smg_router_tpot_seconds`HistogramTime per output token
      `smg_router_tokens_total`CounterTotal tokens (input/output)
      `smg_router_generation_duration_seconds`HistogramEnd-to-end generation time
      + +#### Duration Buckets + +1ms, 5ms, 10ms, 25ms, 50ms, 100ms, 250ms, 500ms, 1s, 2.5s, 5s, 10s, 15s, 30s, 45s, 60s, 90s, 120s, 180s, 240s + +### OpenTelemetry Tracing + +Enable distributed tracing with OTLP export: + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 \ + --enable-trace \ + --otlp-traces-endpoint localhost:4317 +``` + +#### Features + +- OTLP/gRPC exporter (default port 4317) +- W3C Trace Context propagation for HTTP and gRPC +- Batch span processing (500ms delay, 64 span batch size) +- Custom filtering to reduce noise +- Trace context injection into upstream worker requests +- Service name: `sgl-router` + +### Logging + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 \ + --log-level debug \ + --log-dir ./router_logs +``` + +Structured tracing with optional file sink. Log levels: `debug`, `info`, `warn`, `error`. + +### Request ID Propagation + +```bash Command +--request-id-headers x-request-id x-trace-id x-correlation-id +``` + +Responses include `x-request-id` header for correlation. + +*** +## Production Recommendations + +This section provides guidance for deploying SGLang Model Gateway in production environments. + +### Security Best Practices + +**Always enable TLS in production:** + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls https://worker1:8443 https://worker2:8443 \ + --tls-cert-path /etc/certs/server.crt \ + --tls-key-path /etc/certs/server.key \ + --client-cert-path /etc/certs/client.crt \ + --client-key-path /etc/certs/client.key \ + --ca-cert-path /etc/certs/ca.crt \ + --api-key "${ROUTER_API_KEY}" +``` + +**Security Checklist:** +- Enable TLS for gateway HTTPS termination +- Enable mTLS for worker communication when workers are on untrusted networks +- Set `--api-key` to protect router endpoints +- Use Kubernetes Secrets or a secrets manager for credentials +- Rotate certificates and API keys periodically +- Restrict network access with firewalls or network policies + +### High Availability + +**Scaling Strategy:** + +The gateway supports running multiple replicas behind a load balancer for high availability. However, there are important considerations: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ComponentShared Across ReplicasImpact
      Worker RegistryNo (independent)Each replica discovers workers independently
      Radix Cache TreeNo (independent)Cache hits may decrease by 10-20%
      Circuit Breaker StateNo (independent)Each replica tracks failures independently
      Rate LimitingNo (independent)Limits apply per-replica, not globally
      + +**Recommendations:** + +1. **Prefer horizontal scaling over vertical scaling**: Deploy multiple smaller gateway replicas rather than one large instance with excessive CPU and memory. This provides: + - Better fault tolerance (single replica failure doesn't take down the gateway) + - More predictable resource usage + - Easier capacity planning + +2. **Use Kubernetes Service Discovery**: Let the gateway automatically discover and manage workers: + ```bash Command + python -m sglang_router.launch_router \ + --service-discovery \ + --selector app=sglang-worker \ + --service-discovery-namespace production + ``` + +3. **Accept cache efficiency trade-off**: With multiple replicas, the cache-aware routing policy's radix tree is not synchronized across replicas. This means: + - Each replica builds its own cache tree + - Requests from the same user may hit different replicas + - Expected cache hit rate reduction: **10-20%** + - This is often acceptable given the HA benefits + +4. **Configure session affinity (optional)**: If cache efficiency is critical, configure your load balancer for session affinity based on a consistent hash of the request (e.g., user ID or API key). + +**Example HA Architecture:** +```text Output + +-------------------+ + | Load Balancer | + | (L4/L7) | + +---------+---------+ + | + +-------------------+-------------------+ + | | | + v v v + +-----------+ +-----------+ +-----------+ + | Gateway | | Gateway | | Gateway | + | Replica 1 | | Replica 2 | | Replica 3 | + +-----+-----+ +-----+-----+ +-----+-----+ + | | | + +-------------------+-------------------+ + | + +-------------------+-------------------+ + | | | + v v v + +-----------+ +-----------+ +-----------+ + | Worker | | Worker | | Worker | + | Pod 1 | | Pod 2 | | Pod N | + +-----------+ +-----------+ +-----------+ +``` + +### Performance + +**Use gRPC mode for high throughput:** + +gRPC mode provides the highest performance for SGLang workers: + +```bash Command +# Start workers in gRPC mode +python -m sglang.launch_server \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --grpc-mode \ + --port 20000 + +# Configure gateway for gRPC +python -m sglang_router.launch_router \ + --worker-urls grpc://worker1:20000 grpc://worker2:20000 \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --policy cache_aware +``` + +**Performance Benefits of gRPC:** +- Native Rust tokenization (no Python overhead) +- Streaming with lower latency +- Built-in reasoning parser execution +- Tool call parsing in the gateway +- Reduced serialization overhead + +**Tuning Recommendations:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterRecommendationReason
      `--policy``cache_aware`Best for repeated prompts, ~30% latency reduction
      `--max-concurrent-requests`2-4x worker countPrevent overload while maximizing throughput
      `--queue-size`2x max-concurrentBuffer for burst traffic
      `--request-timeout-secs`Based on max generation lengthPrevent stuck requests
      + +### Kubernetes Deployment + +**Pod Labeling for Service Discovery:** + +For the gateway to discover workers automatically, label your worker pods consistently: + +```yaml Config +# Worker Deployment (Regular Mode) +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sglang-worker + namespace: production +spec: + replicas: 4 + selector: + matchLabels: + app: sglang-worker + component: inference + template: + metadata: + labels: + app: sglang-worker + component: inference + model: llama-3-8b + spec: + containers: + - name: worker + image: lmsysorg/sglang:latest + ports: + - containerPort: 8000 + name: http + - containerPort: 20000 + name: grpc +``` + +**Gateway configuration for discovery:** +```bash Command +python -m sglang_router.launch_router \ + --service-discovery \ + --selector app=sglang-worker component=inference \ + --service-discovery-namespace production \ + --service-discovery-port 8000 +``` + +**PD (Prefill/Decode) Mode Labeling:** + +```yaml Config +# Prefill Worker +metadata: + labels: + app: sglang-worker + component: prefill + annotations: + sglang.ai/bootstrap-port: "9001" + +# Decode Worker +metadata: + labels: + app: sglang-worker + component: decode +``` + +**Gateway configuration for PD discovery:** +```bash Command +python -m sglang_router.launch_router \ + --service-discovery \ + --pd-disaggregation \ + --prefill-selector app=sglang-worker component=prefill \ + --decode-selector app=sglang-worker component=decode \ + --service-discovery-namespace production +``` + +**RBAC Requirements:** + +The gateway needs permissions to watch pods: + +```yaml Config +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: sglang-gateway + namespace: production +rules: +- apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] +*** +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: sglang-gateway + namespace: production +subjects: +- kind: ServiceAccount + name: sglang-gateway + namespace: production +roleRef: + kind: Role + name: sglang-gateway + apiGroup: rbac.authorization.k8s.io +``` + +### Monitoring with PromQL + +Configure Prometheus to scrape the gateway metrics endpoint (default: `:29000/metrics`). + +**Essential Dashboards:** + +**1. Request Rate and Latency:** +```sql Example +# Request rate by endpoint +sum(rate(smg_http_requests_total[5m])) by (path, method) + +# P50 latency +histogram_quantile(0.50, sum(rate(smg_http_request_duration_seconds_bucket[5m])) by (le)) + +# P99 latency +histogram_quantile(0.99, sum(rate(smg_http_request_duration_seconds_bucket[5m])) by (le)) + +# Error rate +sum(rate(smg_http_responses_total{status=~"5.."}[5m])) / sum(rate(smg_http_responses_total[5m])) +``` + +**2. Worker Health:** +```sql Example +# Healthy workers +sum(smg_worker_pool_size) + +# Active connections per worker +smg_worker_connections_active + +# Worker health check failures +sum(rate(smg_worker_health_checks_total{result="failure"}[5m])) by (worker_id) +``` + +**3. Circuit Breaker Status:** +```sql Example +# Circuit breaker states (0=closed, 1=open, 2=half-open) +smg_worker_cb_state + +# Circuit breaker transitions +sum(rate(smg_worker_cb_transitions_total[5m])) by (worker_id, from_state, to_state) + +# Workers with open circuits +count(smg_worker_cb_state == 1) +``` + +**4. Inference Performance (gRPC mode):** +```sql Example +# Time to first token (P50) +histogram_quantile(0.50, sum(rate(smg_router_ttft_seconds_bucket[5m])) by (le, model)) + +# Time per output token (P99) +histogram_quantile(0.99, sum(rate(smg_router_tpot_seconds_bucket[5m])) by (le, model)) + +# Token throughput +sum(rate(smg_router_tokens_total[5m])) by (model, direction) + +# Generation duration P95 +histogram_quantile(0.95, sum(rate(smg_router_generation_duration_seconds_bucket[5m])) by (le)) +``` + +**5. Rate Limiting and Queuing:** +```sql Example +# Rate limit rejections +sum(rate(smg_http_rate_limit_total{decision="rejected"}[5m])) + +# Queue depth (if using concurrency limiting) +smg_worker_requests_active + +# Retry attempts +sum(rate(smg_worker_retries_total[5m])) by (worker_id) + +# Exhausted retries (failures after all retries) +sum(rate(smg_worker_retries_exhausted_total[5m])) +``` + +**6. MCP Tool Execution:** +```sql Example +# Tool call rate +sum(rate(smg_mcp_tool_calls_total[5m])) by (server, tool) + +# Tool latency P95 +histogram_quantile(0.95, sum(rate(smg_mcp_tool_duration_seconds_bucket[5m])) by (le, tool)) + +# Active MCP server connections +smg_mcp_servers_active +``` + +**Alerting Rules Example:** + +```yaml Config +groups: +- name: sglang-gateway + rules: + - alert: HighErrorRate + expr: | + sum(rate(smg_http_responses_total{status=~"5.."}[5m])) + / sum(rate(smg_http_responses_total[5m])) > 0.05 + for: 5m + labels: + severity: critical + annotations: + summary: "High error rate on SGLang Gateway" + + - alert: CircuitBreakerOpen + expr: count(smg_worker_cb_state == 1) > 0 + for: 2m + labels: + severity: warning + annotations: + summary: "Worker circuit breaker is open" + + - alert: HighLatency + expr: | + histogram_quantile(0.99, sum(rate(smg_http_request_duration_seconds_bucket[5m])) by (le)) > 30 + for: 5m + labels: + severity: warning + annotations: + summary: "P99 latency exceeds 30 seconds" + + - alert: NoHealthyWorkers + expr: sum(smg_worker_pool_size) == 0 + for: 1m + labels: + severity: critical + annotations: + summary: "No healthy workers available" +``` + +*** +## Configuration Reference + +### Core Settings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDefaultDescription
      `--host`str127.0.0.1Router host
      `--port`int30000Router port
      `--worker-urls`list[]Worker URLs (HTTP or gRPC)
      `--policy`strcache_awareRouting policy
      `--max-concurrent-requests`int-1Concurrency limit (-1 disables)
      `--request-timeout-secs`int600Request timeout
      `--max-payload-size`int256MBMaximum request payload
      + +### Prefill/Decode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDefaultDescription
      `--pd-disaggregation`flagfalseEnable PD mode
      `--prefill`list[]Prefill URLs + optional bootstrap ports
      `--decode`list[]Decode URLs
      `--prefill-policy`strNoneOverride policy for prefill nodes
      `--decode-policy`strNoneOverride policy for decode nodes
      `--worker-startup-timeout-secs`int600Worker init timeout
      + +### Kubernetes Discovery + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      `--service-discovery`flagEnable discovery
      `--selector`listLabel selectors (key=value)
      `--prefill-selector` / `--decode-selector`listPD mode selectors
      `--service-discovery-namespace`strNamespace to watch
      `--service-discovery-port`intWorker port (default 80)
      `--bootstrap-port-annotation`strAnnotation for bootstrap ports
      + +### TLS Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      `--tls-cert-path`strServer certificate for gateway HTTPS (PEM)
      `--tls-key-path`strServer private key for gateway HTTPS (PEM)
      `--client-cert-path`strClient certificate for worker mTLS (PEM)
      `--client-key-path`strClient private key for worker mTLS (PEM)
      `--ca-cert-path`strCA certificate for verifying workers (PEM, repeatable)
      + +*** +## Troubleshooting + +### Workers Never Ready + +Increase `--worker-startup-timeout-secs` or ensure health probes respond before router startup. + +### Load Imbalance / Hot Workers + +Inspect `smg_router_requests_total` by worker and tune cache-aware thresholds (`--balance-*`, `--cache-threshold`). + +### Circuit Breaker Flapping + +Increase `--cb-failure-threshold` or extend the timeout/window durations. Consider temporarily disabling retries. + +### Queue Overflow (429) + +Increase `--queue-size` or reduce client concurrency. Ensure `--max-concurrent-requests` matches downstream capacity. + +### Memory Growth + +Reduce `--max-tree-size` or lower `--eviction-interval-secs` for more aggressive cache pruning. + +### Debugging + +```bash Command +python -m sglang_router.launch_router \ + --worker-urls http://worker1:8000 \ + --log-level debug \ + --log-dir ./router_logs +``` + +### gRPC Connection Issues + +Ensure workers are started with `--grpc-mode` and verify `--model-path` or `--tokenizer-path` is provided to the router. + +### Tokenizer Loading Failures + +Check HuggingFace Hub credentials (`HF_TOKEN` environment variable) for private models. Verify local paths are accessible. + +*** +SGLang Model Gateway continues to evolve alongside the SGLang runtime. Keep CLI flags, integrations, and documentation aligned when adopting new features or contributing improvements. diff --git a/docs_new/docs/advanced_features/sglang_for_rl.mdx b/docs_new/docs/advanced_features/sglang_for_rl.mdx new file mode 100644 index 000000000..31898d34c --- /dev/null +++ b/docs_new/docs/advanced_features/sglang_for_rl.mdx @@ -0,0 +1,575 @@ +--- +title: "SGLang for RL Systems" +metatags: + description: "SGLang for RL: engine sleep/wake, weight refit, partial rollout, deterministic inference, cache-aware load balancing for RLHF." +--- +This document is a practical guide for infrastructure teams integrating SGLang into RL and post-training systems. It focuses on the operational pain points in the loop (rollout, evaluation, training, weight sync) and maps them to concrete SGLang APIs, flags, and integration patterns. The focus is on maximizing rollout efficiency, accuracy and stability while keeping rollout-serving behavior aligned in production environments. + +## Why SGLang for RL Lifecycle? + +Let's embrace a guiding principle from early DeepMind's RL engineering: + +**Be a library, not a framework.** + +This philosophy empowers innovation by providing SGLang as flexible tools, not rigid structures. Here are five reasons to use SGLang for your RL lifecycle: + +* **Fine-Grained Engine Sleep and Wake Up**: facilitate maximum-powered rollout and training +* **Open-To-Use Refit Functionality**: diverse methods for co-location or disaggregation +* **Easy To Postpone Generation**: enable partial rollout and dedicated rollout control +* **Deterministic Inference**: achieve deterministic inference to enable zero training-inference mismatch +* **Load Balancing Router**: cache-aware load-balancing for high-throughput rollout + +The following sections cover these aspects in detail. + +## Fine-Grained Engine Sleep and Wake Up + +Rollout and training are both memory-intensive, and co-locating them on the same GPUs often leads to memory pressure and slow handoffs. SGLang provides a memory-aware sleep/wake mechanism that releases KV cache and weights while keeping the server process alive, then resumes them for rollout without a full restart. This avoids repeated disk I/O and CUDA graph recapture during each RL step. + +Under the hood, the RL team uses CUDA-graph-aware weight offload via [torch_memory_saver](https://github.com/fzyzcjy/torch_memory_saver) to preserve virtual memory addresses for graph replay. For details, see: [Efficient RL Training - Optimizing Memory Usage in verl](https://hebiao064.github.io/rl-memory-management). + +### Server flag + +Enable memory saver support when launching the server: + +```text Output +--enable-memory-saver +``` + +### Release Memory + +**Endpoint:** `POST /release_memory_occupation` + +**Request body:** + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescriptionDefaultsOptions
      `tags`Which memory regions to release. If omitted, all are released.`None`Type: list[str], values: `kv_cache`, `weights`
      +{/* python/sglang/srt/managers/io_struct.py#L1381 currently only supports `kv_cache`, `weights` */} +**Behavior notes:** + +- This call asserts there are no ongoing requests. Ensure the engine is idle before calling it. +- If `kv_cache` is released, SGLang flushes cache; subsequent requests will rebuild KV cache as needed. + +### Resume Memory + +**Endpoint:** `POST /resume_memory_occupation` + +**Request body:** + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescriptionDefaultsOptions
      `tags`Which memory regions to resume. If omitted, all are resumed.`None`Type: list[str], values: `kv_cache`, `weights`
      +{/* python/sglang/srt/managers/io_struct.py#L1393 currently only supports `kv_cache`, `weights` */} + +## Open-To-Use Refit Functionality + +After training completes each step, rollout engines must be refit with new weights. SGLang supports three refit strategies so you can match your infrastructure style (co-located vs disaggregated) and scaling needs. Each strategy maps to a concrete API with clear request schemas. For a deeper dive into SGLang's weight update utilities, see [RL System Deep Thinking: Weight Update Mechanisms](https://github.com/zhaochenyang20/Awesome-ML-SYS-Tutorial/blob/main/rlhf/sys-design/readme-1-EN). + +**How to choose:** + +- **From disk** is simplest and best for elastic rollout scaling and checkpointing. +- **From tensor** is best for co-located training/rollout when you can pass in-memory tensors. +- **From distributed** is best for disaggregated training/rollout with dedicated communication groups (NCCL/IB). + +### Update Weights from Disk + +**When to use:** + +- Save checkpoint to disk and update weights from disk +- Dynamic scaling (new rollout instances can load from the same checkpoint) + +**Why it works well:** + +This path trades some I/O overhead for simplicity and flexibility. It integrates naturally with checkpointing and makes it trivial to add new rollout engines: point them at the same checkpoint and call the API. It is also the safest option for high availability because the checkpoint itself is the source of truth. + +**Endpoint:** `POST /update_weights_from_disk` + +**Request body:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescriptionDefaultsOptions
      `model_path`The model path with the new weights.RequiredType: str
      `load_format`The format to load the weights.`None`Type: str
      `abort_all_requests`Abort all running requests before update.`False`Type: bool
      `weight_version`Optional weight version label tracked by the server.`None`Type: str
      `is_async`Perform weight load asynchronously.`False`Type: bool
      `torch_empty_cache`Empty torch cache.`False`Type: bool
      `keep_pause`Keep scheduler paused after update.`False`Type: bool
      `recapture_cuda_graph`Recapture CUDA graphs after update.`False`Type: bool
      `token_step`Trainer step id for rollout bookkeeping.`0`Type: int
      `flush_cache`Flush KV cache after update.`True`Type: bool
      + +**Response body:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescriptionDefaultsOptions
      `success`Whether the update succeeded.-Type: bool
      `message`Status / error message.-Type: str
      `num_paused_requests`Number of paused requests during update.`0`Type: int
      + +**Python Engine API:** `engine.update_weights_from_disk(model_path, load_format=None)` + +### Update Weights from Tensor + +**When to use:** + +- Co-located training and rollout, where training can provide tensors directly +- Fast in-memory updates + +**Important constraints:** + +This strategy requires the training process and rollout engine to share access to the tensors. Co-located setups must keep the model on GPU; moving tensors to CPU will break the update path. For high-performance MoE or specialized attention kernels, co-location may limit some optimizations compared to disaggregated rollouts. + +**Endpoint:** `POST /update_weights_from_tensor` + +**Request body:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescriptionDefaultsOptions
      `serialized_named_tensors`Per-TP serialized tensor payloads.RequiredType: list[str
      `load_format`Optional load format selector.`None``None`, `direct`, `flattened_bucket`, or a custom loader path string
      `flush_cache`Flush KV cache after update.`True`Type: bool
      `abort_all_requests`Abort all running requests before update.`False`Type: bool
      `weight_version`Optional version label tracked by the server.`None`Type: str
      + +**Note:** The serialized tensor payloads must be created with `MultiprocessingSerializer.serialize(...)` and should be base64-safe strings. + +**Python Engine API:** `engine.update_weights_from_tensor(named_tensors, load_format=None, flush_cache=True)` + +### Update Weights from Distributed Group + +**When to use:** + +- Disaggregated training and rollout +- NCCL or IB-backed weight broadcast from training workers to rollout workers + +**How it works:** + +Training workers gather weights (typically on TP rank 0), broadcast them to the rollout group, and each rollout TP shard loads the parameters it needs. This avoids disk I/O and keeps training and rollout decoupled, at the cost of managing a dedicated communication group. + +**Initialize weight update group** + +**Endpoint:** `POST /init_weights_update_group` + +**Request body:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescriptionDefaultsOptions
      `master_address`Group master address.RequiredType: str
      `master_port`Group master port.RequiredType: int
      `rank_offset`Offset for local rank mapping.RequiredType: int
      `world_size`Total world size.RequiredType: int
      `group_name`Group name.`weight_update_group`Type: str
      `backend`Communication backend.`nccl`Type: str
      + +**Update weight** + +**Endpoint:** `POST /update_weights_from_distributed` + +**Request body:** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescriptionDefaultsOptions
      `names`Parameter names to update.RequiredType: list[str]
      `dtypes`Dtype strings for each parameter.RequiredType: list[str]
      `shapes`Tensor shapes.RequiredType: list[list[int]]
      `group_name`Group name.`weight_update_group`Type: str
      `flush_cache`Flush KV cache after update.`True`Type: bool
      `abort_all_requests`Abort all running requests before update.`False`Type: bool
      `weight_version`Optional version label.`None`Type: str
      `load_format`Optional format selector.`None``None` or `flattened_bucket`
      + +**Destroy weights update group** + +**Endpoint:** `POST /destroy_weights_update_group` + +**Request body:** + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescriptionDefaultsOptions
      `group_name`Group name.`weight_update_group`Type: str
      + +**Python Engine APIs:** + +- `engine.init_weights_update_group(...)` +- `engine.update_weights_from_distributed(names, dtypes, shapes, ...)` +- `engine.destroy_weights_update_group(group_name)` + +## Easy To Postpone Generation + +Multi-turn RL rollouts often suffer from long-tail requests that block the entire batch. A small number of slow interactions can stall all GPUs, and the long-tail behavior makes profiling and monitoring difficult. + +SGLang exposes explicit pause/resume APIs so you can pause slow requests and continue them later. This pattern matches systems like [APRIL](https://arxiv.org/abs/2509.18521), terminate once enough responses are collected, and recycle incomplete responses in the next step. The result is higher GPU utilization without discarding partial work. + +`pause_generation` --- update weights --- `continue_generation` is the correct execution flow when updating weights from training. An update can only happen when SGLang is not actively processing inference tasks. + +### Pause Generation + +**Endpoint:** `POST /pause_generation` + +**Request body:** + + + + + + + + + + + + + + + + + + + + + + + + +
      FieldDescriptionDefaultsOptions
      `mode`Pause mode.`abort``abort`, `retract`, `in_place`
      + +**Modes:** + +- `abort`: Default behavior, identical to `abort` endpoint with `abort_all` set. Pending requests from `waiting_queue` and `running_queue` will be returned immediately to the caller. +- `retract`: Put engine in "paused" state. Move running requests back to waiting queue. KV cache can be flushed and recomputed later. +- `in_place`: Put engine in "paused" state without changing states of the requests. Running requests rely on availability of KV caches to continue, so any subsequent `flush_cache` call will be unsuccessful. + +### Continue Generation + +**Endpoint:** `POST /continue_generation` + +## Deterministic Inference + +In many RL stacks, rollout and training are implemented with different kernels or batching behavior. Even when weights are identical, token probabilities can drift, silently breaking the on-policy assumption. This is the training–inference mismatch problem. + +SGLang supports a deterministic inference mode that reduces non-determinism across batch shapes. This mitigates variance introduced by runtime batching and kernel selection. To further achieve true on-policy training, you need to modify the training engine to use the same deterministic kernels. For implementation details, see these miles examples: [True On-Policy](https://github.com/radixark/miles/tree/main/examples/true_on_policy) and [True On-Policy for VLM](https://github.com/radixark/miles/tree/main/examples/true_on_policy_vlm). For additional context, see the blog post [Let Speed Be With Stability: All-In-One Solution to Training-Inference Mismatch with Miles](https://github.com/zhaochenyang20/Awesome-ML-SYS-Tutorial/blob/main/rlhf/slime/mismatch/blog-en). + +**Server flag:** + +```text Output +--enable-deterministic-inference +``` + +For more details, see [Deterministic Inference](./deterministic_inference) + +## Load Balancing Router + +SGLang Model Gateway is the recommended control plane for large‑scale RL rollouts. It provides async, non‑blocking request handling, cache‑aware load balancing, and fault‑tolerant routing across rollout and reward servers. This lets you keep GPUs saturated while avoiding long‑tail stalls and brittle, engine‑local concurrency logic. It has been deployed in the training of GLM 4.5+ models and proven to be highly efficient in production-level large-scale RL workloads. + +Key benefits for RL infrastructure: + +- **Async non-blocking efficiency**: SGLang’s native async server/router architecture (HTTPS/gRPC) manages concurrency automatically. This guarantees maximum GPU saturation and effective continuous batching without requiring complex, manual implementation by engineers. +- **Elasticity and fault tolerance**: By encapsulating the reward model and rollout as independent servers, SGLang decouples them logically and physically. This architecture provides robust disaster recovery for large-scale distributed training; if a server fails, the router automatically redirects traffic to healthy nodes, ensuring the training process continues without interruption. +- **Training–Inference alignment**: Using the SGLang Model Gateway for both training and inference ensures "What You See Is What You Get." This eliminates score discrepancies and the painful backend alignment issues often caused by using different engines for training versus deployment. +- **Dynamic load balancing and long-tail mitigation**: Unlike static partitioning, the SGLang Model Gateway enables request-level dynamic dispatching for multi-turn RL. It can distribute different turns of a conversation across different servers to balance workloads and eliminate long-tail latency caused by varying sequence lengths. + +For deployment and configuration, see: [SGLang Model Gateway](./sgl_model_gateway) diff --git a/docs_new/docs/advanced_features/speculative_decoding.ipynb b/docs_new/docs/advanced_features/speculative_decoding.ipynb new file mode 100644 index 000000000..c24cac402 --- /dev/null +++ b/docs_new/docs/advanced_features/speculative_decoding.ipynb @@ -0,0 +1,360 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Speculative Decoding\n", + "\n", + "SGLang now provides an EAGLE-based (EAGLE-2/EAGLE-3) speculative decoding option. Our implementation aims to maximize speed and efficiency and is considered to be among the fastest in open-source LLM engines.\n", + "\n", + "### Performance Highlights\n", + "\n", + "Please see below for the huge improvements on throughput for LLaMA-Instruct 3.1 8B tested on MT bench that can be achieved via EAGLE3 decoding.\n", + "For further details please see the [EAGLE3 paper](https://arxiv.org/pdf/2503.01840).\n", + "\n", + "| Method | Throughput (tokens/s) |\n", + "|--------|----------------|\n", + "| SGLang (w/o speculative, 1x H100) | 158.34 tokens/s |\n", + "| SGLang + EAGLE-2 (1x H100) | 244.10 tokens/s |\n", + "| SGLang + EAGLE-3 (1x H100) | 373.25 tokens/s |" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## EAGLE Decoding\n", + "\n", + "To enable EAGLE speculative decoding the following parameters are relevant:\n", + "* `speculative_draft_model_path`: Specifies draft model. This parameter is required.\n", + "* `speculative_num_steps`: Depth of autoregressive drafting. Increases speculation range but risks rejection cascades. Default is 5.\n", + "* `speculative_eagle_topk`: Branching factor per step. Improves candidate diversity, will lead to higher acceptance rate, but more lead to higher memory/compute consumption. Default is 4.\n", + "* `speculative_num_draft_tokens`: Maximum parallel verification capacity. Allows deeper tree evaluation but will lead to higher GPU memory usage. Default is 8.\n", + "\n", + "These parameters are the same for EAGLE-2 and EAGLE-3.\n", + "\n", + "You can find the best combinations of these parameters with [bench_speculative.py](https://github.com/sgl-project/sglang/blob/main/scripts/playground/bench_speculative.py).\n", + "\n", + "In the documentation below, we set `--cuda-graph-max-bs` to be a small value for faster engine startup. For your own workloads, please tune the above parameters together with `--cuda-graph-max-bs`, `--max-running-requests`, `--mem-fraction-static` for the best performance. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### EAGLE-2 decoding\n", + "\n", + "You can enable EAGLE-2 decoding by setting `--speculative-algorithm EAGLE` and choosing an appropriate model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "\n", + "import openai" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model meta-llama/Llama-2-7b-chat-hf --speculative-algorithm EAGLE \\\n", + " --speculative-draft-model-path lmsys/sglang-EAGLE-llama2-chat-7B --speculative-num-steps 3 \\\n", + " --speculative-eagle-topk 4 --speculative-num-draft-tokens 16 --cuda-graph-max-bs 8 --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"meta-llama/Llama-2-7b-chat-hf\",\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": \"List 3 countries and their capitals.\"},\n", + " ],\n", + " temperature=0,\n", + " max_tokens=64,\n", + ")\n", + "\n", + "print_highlight(f\"Response: {response}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### EAGLE-2 Decoding with `torch.compile`\n", + "\n", + "You can also enable `torch.compile` for further optimizations and optionally set `--torch-compile-max-bs`:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model meta-llama/Llama-2-7b-chat-hf --speculative-algorithm EAGLE \\\n", + " --speculative-draft-model-path lmsys/sglang-EAGLE-llama2-chat-7B --speculative-num-steps 5 \\\n", + " --speculative-eagle-topk 8 --speculative-num-draft-tokens 64 --mem-fraction 0.6 \\\n", + " --enable-torch-compile --torch-compile-max-bs 2 --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"meta-llama/Llama-2-7b-chat-hf\",\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": \"List 3 countries and their capitals.\"},\n", + " ],\n", + " temperature=0,\n", + " max_tokens=64,\n", + ")\n", + "\n", + "print_highlight(f\"Response: {response}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### EAGLE-2 Decoding via Frequency-Ranked Speculative Sampling\n", + "\n", + "By employing a truncated high-frequency token vocabulary in the draft model, Eagle speculative decoding reduces `lm_head` computational overhead while accelerating the pipeline without quality degradation. For more details, checkout [the paper](https://arxiv.org/pdf/arXiv:2502.14856).\n", + "\n", + "In our implementation, set `--speculative-token-map` to enable the optimization. You can get the high-frequency token in FR-Spec from [this model](https://huggingface.co/thunlp/LLaMA3-Instruct-8B-FR-Spec). Or you can obtain high-frequency token by directly downloading these token from [this repo](https://github.com/thunlp/FR-Spec/tree/main?tab=readme-ov-file#prepare-fr-spec-vocabulary-subset).\n", + "\n", + "Thanks for the contribution from [Weilin Zhao](https://github.com/Achazwl) and [Zhousx](https://github.com/Zhou-sx). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model meta-llama/Meta-Llama-3-8B-Instruct --speculative-algorithm EAGLE \\\n", + " --speculative-draft-model-path lmsys/sglang-EAGLE-LLaMA3-Instruct-8B --speculative-num-steps 5 \\\n", + " --speculative-eagle-topk 8 --speculative-num-draft-tokens 64 --speculative-token-map thunlp/LLaMA3-Instruct-8B-FR-Spec/freq_32768.pt \\\n", + " --mem-fraction 0.7 --cuda-graph-max-bs 2 --dtype float16 --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"meta-llama/Meta-Llama-3-8B-Instruct\",\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": \"List 3 countries and their capitals.\"},\n", + " ],\n", + " temperature=0,\n", + " max_tokens=64,\n", + ")\n", + "\n", + "print_highlight(f\"Response: {response}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### EAGLE-3 Decoding\n", + "\n", + "You can enable EAGLE-3 decoding by setting `--speculative-algorithm EAGLE3` and choosing an appropriate model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model meta-llama/Llama-3.1-8B-Instruct --speculative-algorithm EAGLE3 \\\n", + " --speculative-draft-model-path jamesliu1/sglang-EAGLE3-Llama-3.1-Instruct-8B --speculative-num-steps 5 \\\n", + " --speculative-eagle-topk 8 --speculative-num-draft-tokens 32 --mem-fraction 0.6 \\\n", + " --cuda-graph-max-bs 2 --dtype float16 --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"meta-llama/Meta-Llama-3.1-8B-Instruct\",\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": \"List 3 countries and their capitals.\"},\n", + " ],\n", + " temperature=0,\n", + " max_tokens=64,\n", + ")\n", + "\n", + "print_highlight(f\"Response: {response}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multi Token Prediction\n", + "\n", + "We support [MTP(Multi-Token Prediction)](https://arxiv.org/pdf/2404.19737) in SGLang by using speculative decoding. We use Xiaomi/MiMo-7B-RL model as example here (deepseek mtp usage refer to [deepseek doc](../basic_usage/deepseek.md#multi-token-prediction))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\"\"\"\n", + " python3 -m sglang.launch_server --model-path XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code \\\n", + " --speculative-algorithm EAGLE --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2 \\\n", + " --mem-fraction 0.5 --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "\n", + "url = f\"http://localhost:{port}/v1/chat/completions\"\n", + "\n", + "data = {\n", + " \"model\": \"XiaomiMiMo/MiMo-7B-RL\",\n", + " \"messages\": [{\"role\": \"user\", \"content\": \"What is the capital of France?\"}],\n", + "}\n", + "\n", + "response = requests.post(url, json=data)\n", + "print_highlight(response.json())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "EAGLE process is as follows:\n", + "\n", + "- Within EAGLE the draft model predicts the next feature vector, i.e. the last hidden state of the original LLM, using the feature sequence $(f_1, ..., f_k)$ and the token sequence $(t_2, ..., t_{k+1})$. \n", + "- The next token is then sampled from $p_{k+2}=\\text{LMHead}(f_{k+1})$. Afterwards, the two sequences are extended in a tree style—branching out multiple potential continuations, with the branching factor per step controlled by the `speculative_eagle_topk` parameter—to ensure a more coherent connection of context, and are given as input again.\n", + "- EAGLE-2 additionally uses the draft model to evaluate how probable certain branches in the draft tree are, dynamically stopping the expansion of unlikely branches. After the expansion phase, reranking is employed to select only the top `speculative_num_draft_tokens` final nodes as draft tokens.\n", + "- EAGLE-3 removes the feature prediction objective, incorporates low and mid-layer features, and is trained in an on-policy manner.\n", + "\n", + "This enhances drafting accuracy by operating on the features instead of tokens for more regular inputs and passing the tokens from the next timestep additionally to minimize randomness effects from sampling. Furthermore the dynamic adjustment of the draft tree and selection of reranked final nodes increases acceptance rate of draft tokens further. For more details see [EAGLE-2](https://arxiv.org/abs/2406.16858) and [EAGLE-3](https://arxiv.org/abs/2503.01840) paper.\n", + "\n", + "\n", + "For guidance how to train your own EAGLE model please see the [EAGLE repo](https://github.com/SafeAILab/EAGLE/tree/main?tab=readme-ov-file#train)." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs_new/docs/advanced_features/speculative_decoding.mdx b/docs_new/docs/advanced_features/speculative_decoding.mdx new file mode 100644 index 000000000..b5f4f1158 --- /dev/null +++ b/docs_new/docs/advanced_features/speculative_decoding.mdx @@ -0,0 +1,278 @@ +--- +title: "Speculative Decoding" +metatags: + description: "SGLang EAGLE speculative decoding: EAGLE-2/EAGLE-3, up to 2.4x throughput improvement, draft model configuration, MTP for DeepSeek." +--- +SGLang now provides an EAGLE-based (EAGLE-2/EAGLE-3) speculative decoding option. Our implementation aims to maximize speed and efficiency and is considered to be among the fastest in open-source LLM engines. + +### Performance Highlights + +Please see below for the huge improvements on throughput for LLaMA-Instruct 3.1 8B tested on MT bench that can be achieved via EAGLE3 decoding. +For further details please see the [EAGLE3 paper](https://arxiv.org/pdf/2503.01840). + + + + + + + + + + + + + + + + + + + + + + + + + + +
      MethodThroughput (tokens/s)
      SGLang (w/o speculative, 1x H100)158.34 tokens/s
      SGLang + EAGLE-2 (1x H100)244.10 tokens/s
      SGLang + EAGLE-3 (1x H100)373.25 tokens/s
      + + +## EAGLE Decoding + +To enable EAGLE speculative decoding the following parameters are relevant: +* `speculative_draft_model_path`: Specifies draft model. This parameter is required. +* `speculative_num_steps`: Depth of autoregressive drafting. Increases speculation range but risks rejection cascades. Default is 5. +* `speculative_eagle_topk`: Branching factor per step. Improves candidate diversity, will lead to higher acceptance rate, but more lead to higher memory/compute consumption. Default is 4. +* `speculative_num_draft_tokens`: Maximum parallel verification capacity. Allows deeper tree evaluation but will lead to higher GPU memory usage. Default is 8. + +These parameters are the same for EAGLE-2 and EAGLE-3. + +You can find the best combinations of these parameters with [bench_speculative.py](https://github.com/sgl-project/sglang/blob/main/scripts/playground/bench_speculative.py). + +In the documentation below, we set `--cuda-graph-max-bs` to be a small value for faster engine startup. For your own workloads, please tune the above parameters together with `--cuda-graph-max-bs`, `--max-running-requests`, `--mem-fraction-static` for the best performance. + + +### EAGLE-2 decoding + +You can enable EAGLE-2 decoding by setting `--speculative-algorithm EAGLE` and choosing an appropriate model. + + + +```python Example +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, print_highlight, terminate_process + +import openai +``` + + +```python Example +server_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model meta-llama/Llama-2-7b-chat-hf --speculative-algorithm EAGLE \ + --speculative-draft-model-path lmsys/sglang-EAGLE-llama2-chat-7B --speculative-num-steps 3 \ + --speculative-eagle-topk 4 --speculative-num-draft-tokens 16 --cuda-graph-max-bs 8 --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + + +```python Example +client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None") + +response = client.chat.completions.create( + model="meta-llama/Llama-2-7b-chat-hf", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0, + max_tokens=64, +) + +print_highlight(f"Response: {response}") +``` + + +```python Example +terminate_process(server_process) +``` + +### EAGLE-2 Decoding with `torch.compile` + +You can also enable `torch.compile` for further optimizations and optionally set `--torch-compile-max-bs`: + + + + +```python Example +server_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model meta-llama/Llama-2-7b-chat-hf --speculative-algorithm EAGLE \ + --speculative-draft-model-path lmsys/sglang-EAGLE-llama2-chat-7B --speculative-num-steps 5 \ + --speculative-eagle-topk 8 --speculative-num-draft-tokens 64 --mem-fraction 0.6 \ + --enable-torch-compile --torch-compile-max-bs 2 --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + + +```python Example +client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None") + +response = client.chat.completions.create( + model="meta-llama/Llama-2-7b-chat-hf", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0, + max_tokens=64, +) + +print_highlight(f"Response: {response}") +``` + + +```python Example +terminate_process(server_process) +``` + +### EAGLE-2 Decoding via Frequency-Ranked Speculative Sampling + +By employing a truncated high-frequency token vocabulary in the draft model, Eagle speculative decoding reduces `lm_head` computational overhead while accelerating the pipeline without quality degradation. For more details, checkout [the paper](https://arxiv.org/pdf/arXiv:2502.14856). + +In our implementation, set `--speculative-token-map` to enable the optimization. You can get the high-frequency token in FR-Spec from [this model](https://huggingface.co/thunlp/LLaMA3-Instruct-8B-FR-Spec). Or you can obtain high-frequency token by directly downloading these token from [this repo](https://github.com/thunlp/FR-Spec/tree/main?tab=readme-ov-file#prepare-fr-spec-vocabulary-subset). + +Thanks for the contribution from [Weilin Zhao](https://github.com/Achazwl) and [Zhousx](https://github.com/Zhou-sx). + + + +```python Example +server_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model meta-llama/Meta-Llama-3-8B-Instruct --speculative-algorithm EAGLE \ + --speculative-draft-model-path lmsys/sglang-EAGLE-LLaMA3-Instruct-8B --speculative-num-steps 5 \ + --speculative-eagle-topk 8 --speculative-num-draft-tokens 64 --speculative-token-map thunlp/LLaMA3-Instruct-8B-FR-Spec/freq_32768.pt \ + --mem-fraction 0.7 --cuda-graph-max-bs 2 --dtype float16 --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + + +```python Example +client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None") + +response = client.chat.completions.create( + model="meta-llama/Meta-Llama-3-8B-Instruct", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0, + max_tokens=64, +) + +print_highlight(f"Response: {response}") +``` + + +```python Example +terminate_process(server_process) +``` + +### EAGLE-3 Decoding + +You can enable EAGLE-3 decoding by setting `--speculative-algorithm EAGLE3` and choosing an appropriate model. + + + +```python Example +server_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model meta-llama/Llama-3.1-8B-Instruct --speculative-algorithm EAGLE3 \ + --speculative-draft-model-path jamesliu1/sglang-EAGLE3-Llama-3.1-Instruct-8B --speculative-num-steps 5 \ + --speculative-eagle-topk 8 --speculative-num-draft-tokens 32 --mem-fraction 0.6 \ + --cuda-graph-max-bs 2 --dtype float16 --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + + +```python Example +client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None") + +response = client.chat.completions.create( + model="meta-llama/Meta-Llama-3.1-8B-Instruct", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0, + max_tokens=64, +) + +print_highlight(f"Response: {response}") +``` + + +```python Example +terminate_process(server_process) +``` + +## Multi Token Prediction + +We support [MTP(Multi-Token Prediction)](https://arxiv.org/pdf/2404.19737) in SGLang by using speculative decoding. We use Xiaomi/MiMo-7B-RL model as example here (deepseek mtp usage refer to [deepseek doc](../basic_usage/deepseek_v3#multi-token-prediction)) + + + +```python Example +server_process, port = launch_server_cmd( + """ + python3 -m sglang.launch_server --model-path XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code \ + --speculative-algorithm EAGLE --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2 \ + --mem-fraction 0.5 --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + + +```python Example +import requests + +url = f"http://localhost:{port}/v1/chat/completions" + +data = { + "model": "XiaomiMiMo/MiMo-7B-RL", + "messages": [{"role": "user", "content": "What is the capital of France?"}], +} + +response = requests.post(url, json=data) +print_highlight(response.json()) +``` + + +```python Example +terminate_process(server_process) +``` + +## References + +EAGLE process is as follows: + +- Within EAGLE the draft model predicts the next feature vector, i.e. the last hidden state of the original LLM, using the feature sequence $(f_1, ..., f_k)$ and the token sequence $(t_2, ..., t_{k+1})$. +- The next token is then sampled from $p_{k+2}=\text{LMHead}(f_{k+1})$. Afterwards, the two sequences are extended in a tree style—branching out multiple potential continuations, with the branching factor per step controlled by the `speculative_eagle_topk` parameter—to ensure a more coherent connection of context, and are given as input again. +- EAGLE-2 additionally uses the draft model to evaluate how probable certain branches in the draft tree are, dynamically stopping the expansion of unlikely branches. After the expansion phase, reranking is employed to select only the top `speculative_num_draft_tokens` final nodes as draft tokens. +- EAGLE-3 removes the feature prediction objective, incorporates low and mid-layer features, and is trained in an on-policy manner. + +This enhances drafting accuracy by operating on the features instead of tokens for more regular inputs and passing the tokens from the next timestep additionally to minimize randomness effects from sampling. Furthermore the dynamic adjustment of the draft tree and selection of reranked final nodes increases acceptance rate of draft tokens further. For more details see [EAGLE-2](https://arxiv.org/abs/2406.16858) and [EAGLE-3](https://arxiv.org/abs/2503.01840) paper. + + +For guidance how to train your own EAGLE model please see the [EAGLE repo](https://github.com/SafeAILab/EAGLE/tree/main?tab=readme-ov-file#train). diff --git a/docs_new/docs/advanced_features/structured_outputs.ipynb b/docs_new/docs/advanced_features/structured_outputs.ipynb new file mode 100644 index 000000000..bd29a0b3e --- /dev/null +++ b/docs_new/docs/advanced_features/structured_outputs.ipynb @@ -0,0 +1,997 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Structured Outputs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can specify a JSON schema, [regular expression](https://en.wikipedia.org/wiki/Regular_expression) or [EBNF](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) to constrain the model output. The model output will be guaranteed to follow the given constraints. Only one constraint parameter (`json_schema`, `regex`, or `ebnf`) can be specified for a request.\n", + "\n", + "SGLang supports three grammar backends:\n", + "\n", + "- [XGrammar](https://github.com/mlc-ai/xgrammar)(default): Supports JSON schema, regular expression, and EBNF constraints.\n", + "- [Outlines](https://github.com/dottxt-ai/outlines): Supports JSON schema and regular expression constraints.\n", + "- [Llguidance](https://github.com/guidance-ai/llguidance): Supports JSON schema, regular expression, and EBNF constraints.\n", + "\n", + "We suggest using XGrammar for its better performance and utility. XGrammar currently uses the [GGML BNF format](https://github.com/ggerganov/llama.cpp/blob/master/grammars/README). For more details, see [XGrammar technical overview](https://blog.mlc.ai/2024/11/22/achieving-efficient-flexible-portable-structured-generation-with-xgrammar).\n", + "\n", + "To use Outlines, simply add `--grammar-backend outlines` when launching the server.\n", + "To use llguidance, add `--grammar-backend llguidance` when launching the server.\n", + "If no backend is specified, XGrammar will be used as the default.\n", + "\n", + "For better output quality, **It's advisable to explicitly include instructions in the prompt to guide the model to generate the desired format.** For example, you can specify, 'Please generate the output in the following JSON format: ...'.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## OpenAI Compatible API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import openai\n", + "import os\n", + "\n", + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "\n", + "os.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n", + "\n", + "\n", + "server_process, port = launch_server_cmd(\n", + " \"python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct --host 0.0.0.0 --log-level warning\"\n", + ")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")\n", + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### JSON\n", + "\n", + "you can directly define a JSON schema or use [Pydantic](https://docs.pydantic.dev/latest/) to define and validate the response." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Using Pydantic**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pydantic import BaseModel, Field\n", + "\n", + "\n", + "# Define the schema using Pydantic\n", + "class CapitalInfo(BaseModel):\n", + " name: str = Field(..., pattern=r\"^\\w+$\", description=\"Name of the capital city\")\n", + " population: int = Field(..., description=\"Population of the capital city\")\n", + "\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"meta-llama/Meta-Llama-3.1-8B-Instruct\",\n", + " messages=[\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"Please generate the information of the capital of France in the JSON format.\",\n", + " },\n", + " ],\n", + " temperature=0,\n", + " max_tokens=128,\n", + " response_format={\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": {\n", + " \"name\": \"foo\",\n", + " # convert the pydantic model to json schema\n", + " \"schema\": CapitalInfo.model_json_schema(),\n", + " },\n", + " },\n", + ")\n", + "\n", + "response_content = response.choices[0].message.content\n", + "# validate the JSON response by the pydantic model\n", + "capital_info = CapitalInfo.model_validate_json(response_content)\n", + "print_highlight(f\"Validated response: {capital_info.model_dump_json()}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**JSON Schema Directly**\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "json_schema = json.dumps(\n", + " {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"name\": {\"type\": \"string\", \"pattern\": \"^[\\\\w]+$\"},\n", + " \"population\": {\"type\": \"integer\"},\n", + " },\n", + " \"required\": [\"name\", \"population\"],\n", + " }\n", + ")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"meta-llama/Meta-Llama-3.1-8B-Instruct\",\n", + " messages=[\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"Give me the information of the capital of France in the JSON format.\",\n", + " },\n", + " ],\n", + " temperature=0,\n", + " max_tokens=128,\n", + " response_format={\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": {\"name\": \"foo\", \"schema\": json.loads(json_schema)},\n", + " },\n", + ")\n", + "\n", + "print_highlight(response.choices[0].message.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### EBNF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ebnf_grammar = \"\"\"\n", + "root ::= city | description\n", + "city ::= \"London\" | \"Paris\" | \"Berlin\" | \"Rome\"\n", + "description ::= city \" is \" status\n", + "status ::= \"the capital of \" country\n", + "country ::= \"England\" | \"France\" | \"Germany\" | \"Italy\"\n", + "\"\"\"\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"meta-llama/Meta-Llama-3.1-8B-Instruct\",\n", + " messages=[\n", + " {\"role\": \"system\", \"content\": \"You are a helpful geography bot.\"},\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"Give me the information of the capital of France.\",\n", + " },\n", + " ],\n", + " temperature=0,\n", + " max_tokens=32,\n", + " extra_body={\"ebnf\": ebnf_grammar},\n", + ")\n", + "\n", + "print_highlight(response.choices[0].message.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Regular expression" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = client.chat.completions.create(\n", + " model=\"meta-llama/Meta-Llama-3.1-8B-Instruct\",\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": \"What is the capital of France?\"},\n", + " ],\n", + " temperature=0,\n", + " max_tokens=128,\n", + " extra_body={\"regex\": \"(Paris|London)\"},\n", + ")\n", + "\n", + "print_highlight(response.choices[0].message.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Structural Tag" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tool_get_current_weather = {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_current_weather\",\n", + " \"description\": \"Get the current weather in a given location\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"city\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The city to find the weather for, e.g. 'San Francisco'\",\n", + " },\n", + " \"state\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"the two-letter abbreviation for the state that the city is\"\n", + " \" in, e.g. 'CA' which would mean 'California'\",\n", + " },\n", + " \"unit\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The unit to fetch the temperature in\",\n", + " \"enum\": [\"celsius\", \"fahrenheit\"],\n", + " },\n", + " },\n", + " \"required\": [\"city\", \"state\", \"unit\"],\n", + " },\n", + " },\n", + "}\n", + "\n", + "tool_get_current_date = {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_current_date\",\n", + " \"description\": \"Get the current date and time for a given timezone\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"timezone\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The timezone to fetch the current date and time for, e.g. 'America/New_York'\",\n", + " }\n", + " },\n", + " \"required\": [\"timezone\"],\n", + " },\n", + " },\n", + "}\n", + "\n", + "schema_get_current_weather = tool_get_current_weather[\"function\"][\"parameters\"]\n", + "schema_get_current_date = tool_get_current_date[\"function\"][\"parameters\"]\n", + "\n", + "\n", + "def get_messages():\n", + " return [\n", + " {\n", + " \"role\": \"system\",\n", + " \"content\": f\"\"\"\n", + "# Tool Instructions\n", + "- Always execute python code in messages that you share.\n", + "- When looking for real time information use relevant functions if available else fallback to brave_search\n", + "You have access to the following functions:\n", + "Use the function 'get_current_weather' to: Get the current weather in a given location\n", + "{tool_get_current_weather[\"function\"]}\n", + "Use the function 'get_current_date' to: Get the current date and time for a given timezone\n", + "{tool_get_current_date[\"function\"]}\n", + "If a you choose to call a function ONLY reply in the following format:\n", + "<{{start_tag}}={{function_name}}>{{parameters}}{{end_tag}}\n", + "where\n", + "start_tag => ` a JSON dict with the function argument name as key and function argument value as value.\n", + "end_tag => ``\n", + "Here is an example,\n", + "{{\"example_name\": \"example_value\"}}\n", + "Reminder:\n", + "- Function calls MUST follow the specified format\n", + "- Required parameters MUST be specified\n", + "- Only call one function at a time\n", + "- Put the entire function call reply on one line\n", + "- Always add your sources when using search results to answer the user query\n", + "You are a helpful assistant.\"\"\",\n", + " },\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"You are in New York. Please get the current date and time, and the weather.\",\n", + " },\n", + " ]\n", + "\n", + "\n", + "messages = get_messages()\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"meta-llama/Meta-Llama-3.1-8B-Instruct\",\n", + " messages=messages,\n", + " response_format={\n", + " \"type\": \"structural_tag\",\n", + " \"structures\": [\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_weather,\n", + " \"end\": \"\",\n", + " },\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_date,\n", + " \"end\": \"\",\n", + " },\n", + " ],\n", + " \"triggers\": [\"\",\n", + " \"content\": {\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": schema_get_current_weather,\n", + " },\n", + " \"end\": \"\",\n", + " },\n", + " {\n", + " \"begin\": \"\",\n", + " \"content\": {\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": schema_get_current_date,\n", + " },\n", + " \"end\": \"\",\n", + " },\n", + " ],\n", + " \"at_least_one\": False,\n", + " \"stop_after_first\": False,\n", + " },\n", + " },\n", + ")\n", + "\n", + "print_highlight(response.choices[0].message.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Native API and SGLang Runtime (SRT)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### JSON" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Using Pydantic**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "import json\n", + "from pydantic import BaseModel, Field\n", + "\n", + "from transformers import AutoTokenizer\n", + "\n", + "tokenizer = AutoTokenizer.from_pretrained(\"meta-llama/Meta-Llama-3.1-8B-Instruct\")\n", + "\n", + "\n", + "# Define the schema using Pydantic\n", + "class CapitalInfo(BaseModel):\n", + " name: str = Field(..., pattern=r\"^\\w+$\", description=\"Name of the capital city\")\n", + " population: int = Field(..., description=\"Population of the capital city\")\n", + "\n", + "\n", + "# Make API request\n", + "messages = [\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"Here is the information of the capital of France in the JSON format.\\n\",\n", + " }\n", + "]\n", + "text = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": text,\n", + " \"sampling_params\": {\n", + " \"temperature\": 0,\n", + " \"max_new_tokens\": 64,\n", + " \"json_schema\": json.dumps(CapitalInfo.model_json_schema()),\n", + " },\n", + " },\n", + ")\n", + "print_highlight(response.json())\n", + "\n", + "\n", + "response_data = json.loads(response.json()[\"text\"])\n", + "# validate the response by the pydantic model\n", + "capital_info = CapitalInfo.model_validate(response_data)\n", + "print_highlight(f\"Validated response: {capital_info.model_dump_json()}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**JSON Schema Directly**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "json_schema = json.dumps(\n", + " {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"name\": {\"type\": \"string\", \"pattern\": \"^[\\\\w]+$\"},\n", + " \"population\": {\"type\": \"integer\"},\n", + " },\n", + " \"required\": [\"name\", \"population\"],\n", + " }\n", + ")\n", + "\n", + "# JSON\n", + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": text,\n", + " \"sampling_params\": {\n", + " \"temperature\": 0,\n", + " \"max_new_tokens\": 64,\n", + " \"json_schema\": json_schema,\n", + " },\n", + " },\n", + ")\n", + "\n", + "print_highlight(response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### EBNF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "messages = [\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"Give me the information of the capital of France.\",\n", + " }\n", + "]\n", + "text = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": text,\n", + " \"sampling_params\": {\n", + " \"max_new_tokens\": 128,\n", + " \"temperature\": 0,\n", + " \"n\": 3,\n", + " \"ebnf\": (\n", + " \"root ::= city | description\\n\"\n", + " 'city ::= \"London\" | \"Paris\" | \"Berlin\" | \"Rome\"\\n'\n", + " 'description ::= city \" is \" status\\n'\n", + " 'status ::= \"the capital of \" country\\n'\n", + " 'country ::= \"England\" | \"France\" | \"Germany\" | \"Italy\"'\n", + " ),\n", + " },\n", + " \"stream\": False,\n", + " \"return_logprob\": False,\n", + " },\n", + ")\n", + "\n", + "print_highlight(response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Regular expression" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "messages = [\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"Paris is the capital of\",\n", + " }\n", + "]\n", + "text = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": text,\n", + " \"sampling_params\": {\n", + " \"temperature\": 0,\n", + " \"max_new_tokens\": 64,\n", + " \"regex\": \"(France|England)\",\n", + " },\n", + " },\n", + ")\n", + "print_highlight(response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Structural Tag" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoTokenizer\n", + "\n", + "# generate an answer\n", + "tokenizer = AutoTokenizer.from_pretrained(\"meta-llama/Meta-Llama-3.1-8B-Instruct\")\n", + "\n", + "text = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "payload = {\n", + " \"text\": text,\n", + " \"sampling_params\": {\n", + " \"structural_tag\": json.dumps(\n", + " {\n", + " \"type\": \"structural_tag\",\n", + " \"structures\": [\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_weather,\n", + " \"end\": \"\",\n", + " },\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_date,\n", + " \"end\": \"\",\n", + " },\n", + " ],\n", + " \"triggers\": [\"\",\n", + " \"content\": {\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": schema_get_current_weather,\n", + " },\n", + " \"end\": \"\",\n", + " },\n", + " {\n", + " \"begin\": \"\",\n", + " \"content\": {\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": schema_get_current_date,\n", + " },\n", + " \"end\": \"\",\n", + " },\n", + " ],\n", + " \"at_least_one\": False,\n", + " \"stop_after_first\": False,\n", + " },\n", + " }\n", + " )\n", + " },\n", + "}\n", + "\n", + "\n", + "# Send POST request to the API endpoint\n", + "response = requests.post(f\"http://localhost:{port}/generate\", json=payload)\n", + "print_highlight(response.json())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Offline Engine API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sglang as sgl\n", + "\n", + "llm = sgl.Engine(\n", + " model_path=\"meta-llama/Meta-Llama-3.1-8B-Instruct\", grammar_backend=\"xgrammar\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### JSON" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Using Pydantic**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "from pydantic import BaseModel, Field\n", + "\n", + "prompts = [\n", + " \"Give me the information of the capital of China in the JSON format.\",\n", + " \"Give me the information of the capital of France in the JSON format.\",\n", + " \"Give me the information of the capital of Ireland in the JSON format.\",\n", + "]\n", + "\n", + "\n", + "# Define the schema using Pydantic\n", + "class CapitalInfo(BaseModel):\n", + " name: str = Field(..., pattern=r\"^\\w+$\", description=\"Name of the capital city\")\n", + " population: int = Field(..., description=\"Population of the capital city\")\n", + "\n", + "\n", + "sampling_params = {\n", + " \"temperature\": 0.1,\n", + " \"top_p\": 0.95,\n", + " \"json_schema\": json.dumps(CapitalInfo.model_json_schema()),\n", + "}\n", + "\n", + "outputs = llm.generate(prompts, sampling_params)\n", + "for prompt, output in zip(prompts, outputs):\n", + " print_highlight(\"===============================\")\n", + " print_highlight(f\"Prompt: {prompt}\") # validate the output by the pydantic model\n", + " capital_info = CapitalInfo.model_validate_json(output[\"text\"])\n", + " print_highlight(f\"Validated output: {capital_info.model_dump_json()}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**JSON Schema Directly**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "prompts = [\n", + " \"Give me the information of the capital of China in the JSON format.\",\n", + " \"Give me the information of the capital of France in the JSON format.\",\n", + " \"Give me the information of the capital of Ireland in the JSON format.\",\n", + "]\n", + "\n", + "json_schema = json.dumps(\n", + " {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"name\": {\"type\": \"string\", \"pattern\": \"^[\\\\w]+$\"},\n", + " \"population\": {\"type\": \"integer\"},\n", + " },\n", + " \"required\": [\"name\", \"population\"],\n", + " }\n", + ")\n", + "\n", + "sampling_params = {\"temperature\": 0.1, \"top_p\": 0.95, \"json_schema\": json_schema}\n", + "\n", + "outputs = llm.generate(prompts, sampling_params)\n", + "for prompt, output in zip(prompts, outputs):\n", + " print_highlight(\"===============================\")\n", + " print_highlight(f\"Prompt: {prompt}\\nGenerated text: {output['text']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### EBNF\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "prompts = [\n", + " \"Give me the information of the capital of France.\",\n", + " \"Give me the information of the capital of Germany.\",\n", + " \"Give me the information of the capital of Italy.\",\n", + "]\n", + "\n", + "sampling_params = {\n", + " \"temperature\": 0.8,\n", + " \"top_p\": 0.95,\n", + " \"ebnf\": (\n", + " \"root ::= city | description\\n\"\n", + " 'city ::= \"London\" | \"Paris\" | \"Berlin\" | \"Rome\"\\n'\n", + " 'description ::= city \" is \" status\\n'\n", + " 'status ::= \"the capital of \" country\\n'\n", + " 'country ::= \"England\" | \"France\" | \"Germany\" | \"Italy\"'\n", + " ),\n", + "}\n", + "\n", + "outputs = llm.generate(prompts, sampling_params)\n", + "for prompt, output in zip(prompts, outputs):\n", + " print_highlight(\"===============================\")\n", + " print_highlight(f\"Prompt: {prompt}\\nGenerated text: {output['text']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Regular expression" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "prompts = [\n", + " \"Please provide information about London as a major global city:\",\n", + " \"Please provide information about Paris as a major global city:\",\n", + "]\n", + "\n", + "sampling_params = {\"temperature\": 0.8, \"top_p\": 0.95, \"regex\": \"(France|England)\"}\n", + "\n", + "outputs = llm.generate(prompts, sampling_params)\n", + "for prompt, output in zip(prompts, outputs):\n", + " print_highlight(\"===============================\")\n", + " print_highlight(f\"Prompt: {prompt}\\nGenerated text: {output['text']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Structural Tag" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "text = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "prompts = [text]\n", + "\n", + "\n", + "sampling_params = {\n", + " \"temperature\": 0.8,\n", + " \"top_p\": 0.95,\n", + " \"structural_tag\": json.dumps(\n", + " {\n", + " \"type\": \"structural_tag\",\n", + " \"structures\": [\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_weather,\n", + " \"end\": \"\",\n", + " },\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_date,\n", + " \"end\": \"\",\n", + " },\n", + " ],\n", + " \"triggers\": [\"\",\n", + " \"content\": {\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": schema_get_current_weather,\n", + " },\n", + " \"end\": \"\",\n", + " },\n", + " {\n", + " \"begin\": \"\",\n", + " \"content\": {\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": schema_get_current_date,\n", + " },\n", + " \"end\": \"\",\n", + " },\n", + " ],\n", + " \"at_least_one\": False,\n", + " \"stop_after_first\": False,\n", + " },\n", + " }\n", + " ),\n", + "}\n", + "\n", + "\n", + "# Send POST request to the API endpoint\n", + "outputs = llm.generate(prompts, sampling_params)\n", + "for prompt, output in zip(prompts, outputs):\n", + " print_highlight(\"===============================\")\n", + " print_highlight(f\"Prompt: {prompt}\\nGenerated text: {output['text']}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "llm.shutdown()" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs_new/docs/advanced_features/structured_outputs.mdx b/docs_new/docs/advanced_features/structured_outputs.mdx new file mode 100644 index 000000000..cb9b0b464 --- /dev/null +++ b/docs_new/docs/advanced_features/structured_outputs.mdx @@ -0,0 +1,803 @@ +--- +title: "Structured Outputs" +metatags: + description: "SGLang structured outputs: JSON schema, regex, EBNF constraints. XGrammar, Outlines, Llguidance backends for guaranteed output format." +--- +You can specify a JSON schema, [regular expression](https://en.wikipedia.org/wiki/Regular_expression) or [EBNF](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) to constrain the model output. The model output will be guaranteed to follow the given constraints. Only one constraint parameter (`json_schema`, `regex`, or `ebnf`) can be specified for a request. + +SGLang supports three grammar backends: + +- [XGrammar](https://github.com/mlc-ai/xgrammar)(default): Supports JSON schema, regular expression, and EBNF constraints. +- [Outlines](https://github.com/dottxt-ai/outlines): Supports JSON schema and regular expression constraints. +- [Llguidance](https://github.com/guidance-ai/llguidance): Supports JSON schema, regular expression, and EBNF constraints. + +We suggest using XGrammar for its better performance and utility. XGrammar currently uses the [GGML BNF format](https://github.com/ggerganov/llama.cpp/blob/master/grammars/README). For more details, see [XGrammar technical overview](https://blog.mlc.ai/2024/11/22/achieving-efficient-flexible-portable-structured-generation-with-xgrammar). + +To use Outlines, simply add `--grammar-backend outlines` when launching the server. +To use llguidance, add `--grammar-backend llguidance` when launching the server. +If no backend is specified, XGrammar will be used as the default. + +For better output quality, **It's advisable to explicitly include instructions in the prompt to guide the model to generate the desired format.** For example, you can specify, 'Please generate the output in the following JSON format: ...'. + + + +## OpenAI Compatible API + + + +```python Example +import openai +import os + +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, print_highlight, terminate_process + +os.environ["TOKENIZERS_PARALLELISM"] = "false" + + +server_process, port = launch_server_cmd( + "python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct --host 0.0.0.0 --log-level warning" +) + +wait_for_server(f"http://localhost:{port}") +client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None") +``` + +### JSON + +you can directly define a JSON schema or use [Pydantic](https://docs.pydantic.dev/latest/) to define and validate the response. + + +**Using Pydantic** + + + +```python Example +from pydantic import BaseModel, Field + + +# Define the schema using Pydantic +class CapitalInfo(BaseModel): + name: str = Field(..., pattern=r"^\w+$", description="Name of the capital city") + population: int = Field(..., description="Population of the capital city") + + +response = client.chat.completions.create( + model="meta-llama/Meta-Llama-3.1-8B-Instruct", + messages=[ + { + "role": "user", + "content": "Please generate the information of the capital of France in the JSON format.", + }, + ], + temperature=0, + max_tokens=128, + response_format={ + "type": "json_schema", + "json_schema": { + "name": "foo", + # convert the pydantic model to json schema + "schema": CapitalInfo.model_json_schema(), + }, + }, +) + +response_content = response.choices[0].message.content +# validate the JSON response by the pydantic model +capital_info = CapitalInfo.model_validate_json(response_content) +print_highlight(f"Validated response: {capital_info.model_dump_json()}") +``` + +**JSON Schema Directly** + + + + +```python Example +import json + +json_schema = json.dumps( + { + "type": "object", + "properties": { + "name": {"type": "string", "pattern": "^[\\w]+$"}, + "population": {"type": "integer"}, + }, + "required": ["name", "population"], + } +) + +response = client.chat.completions.create( + model="meta-llama/Meta-Llama-3.1-8B-Instruct", + messages=[ + { + "role": "user", + "content": "Give me the information of the capital of France in the JSON format.", + }, + ], + temperature=0, + max_tokens=128, + response_format={ + "type": "json_schema", + "json_schema": {"name": "foo", "schema": json.loads(json_schema)}, + }, +) + +print_highlight(response.choices[0].message.content) +``` + +### EBNF + + + +```python Example +ebnf_grammar = """ +root ::= city | description +city ::= "London" | "Paris" | "Berlin" | "Rome" +description ::= city " is " status +status ::= "the capital of " country +country ::= "England" | "France" | "Germany" | "Italy" +""" + +response = client.chat.completions.create( + model="meta-llama/Meta-Llama-3.1-8B-Instruct", + messages=[ + {"role": "system", "content": "You are a helpful geography bot."}, + { + "role": "user", + "content": "Give me the information of the capital of France.", + }, + ], + temperature=0, + max_tokens=32, + extra_body={"ebnf": ebnf_grammar}, +) + +print_highlight(response.choices[0].message.content) +``` + +### Regular expression + + + +```python Example +response = client.chat.completions.create( + model="meta-llama/Meta-Llama-3.1-8B-Instruct", + messages=[ + {"role": "user", "content": "What is the capital of France?"}, + ], + temperature=0, + max_tokens=128, + extra_body={"regex": "(Paris|London)"}, +) + +print_highlight(response.choices[0].message.content) +``` + +### Structural Tag + + + +```python Example +tool_get_current_weather = { + "type": "function", + "function": { + "name": "get_current_weather", + "description": "Get the current weather in a given location", + "parameters": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "The city to find the weather for, e.g. 'San Francisco'", + }, + "state": { + "type": "string", + "description": "the two-letter abbreviation for the state that the city is" + " in, e.g. 'CA' which would mean 'California'", + }, + "unit": { + "type": "string", + "description": "The unit to fetch the temperature in", + "enum": ["celsius", "fahrenheit"], + }, + }, + "required": ["city", "state", "unit"], + }, + }, +} + +tool_get_current_date = { + "type": "function", + "function": { + "name": "get_current_date", + "description": "Get the current date and time for a given timezone", + "parameters": { + "type": "object", + "properties": { + "timezone": { + "type": "string", + "description": "The timezone to fetch the current date and time for, e.g. 'America/New_York'", + } + }, + "required": ["timezone"], + }, + }, +} + +schema_get_current_weather = tool_get_current_weather["function"]["parameters"] +schema_get_current_date = tool_get_current_date["function"]["parameters"] + + +def get_messages(): + return [ + { + "role": "system", + "content": f""" +# Tool Instructions +- Always execute python code in messages that you share. +- When looking for real time information use relevant functions if available else fallback to brave_search +You have access to the following functions: +Use the function 'get_current_weather' to: Get the current weather in a given location +{tool_get_current_weather["function"]} +Use the function 'get_current_date' to: Get the current date and time for a given timezone +{tool_get_current_date["function"]} +If a you choose to call a function ONLY reply in the following format: +<{{start_tag}}={{function_name}}>{{parameters}}{{end_tag}} +where +start_tag => ` a JSON dict with the function argument name as key and function argument value as value. +end_tag => `</function>` +Here is an example, +<function=example_function_name>{{"example_name": "example_value"}}</function> +Reminder: +- Function calls MUST follow the specified format +- Required parameters MUST be specified +- Only call one function at a time +- Put the entire function call reply on one line +- Always add your sources when using search results to answer the user query +You are a helpful assistant.""", + }, + { + "role": "user", + "content": "You are in New York. Please get the current date and time, and the weather.", + }, + ] + + +messages = get_messages() + +response = client.chat.completions.create( + model="meta-llama/Meta-Llama-3.1-8B-Instruct", + messages=messages, + response_format={ + "type": "structural_tag", + "structures": [ + { + "begin": "<function=get_current_weather>", + "schema": schema_get_current_weather, + "end": "</function>", + }, + { + "begin": "<function=get_current_date>", + "schema": schema_get_current_date, + "end": "</function>", + }, + ], + "triggers": ["<function="], + }, +) + +print_highlight(response.choices[0].message.content) +``` + + +```python Example +# Support for XGrammar latest structural tag format +# https://xgrammar.mlc.ai/docs/tutorials/structural_tag.html + +response = client.chat.completions.create( + model="meta-llama/Meta-Llama-3.1-8B-Instruct", + messages=messages, + response_format={ + "type": "structural_tag", + "format": { + "type": "triggered_tags", + "triggers": ["<function="], + "tags": [ + { + "begin": "<function=get_current_weather>", + "content": { + "type": "json_schema", + "json_schema": schema_get_current_weather, + }, + "end": "</function>", + }, + { + "begin": "<function=get_current_date>", + "content": { + "type": "json_schema", + "json_schema": schema_get_current_date, + }, + "end": "</function>", + }, + ], + "at_least_one": False, + "stop_after_first": False, + }, + }, +) + +print_highlight(response.choices[0].message.content) +``` + +## Native API and SGLang Runtime (SRT) + + +### JSON + + +**Using Pydantic** + + + +```python Example +import requests +import json +from pydantic import BaseModel, Field + +from transformers import AutoTokenizer + +tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3.1-8B-Instruct") + + +# Define the schema using Pydantic +class CapitalInfo(BaseModel): + name: str = Field(..., pattern=r"^\w+$", description="Name of the capital city") + population: int = Field(..., description="Population of the capital city") + + +# Make API request +messages = [ + { + "role": "user", + "content": "Here is the information of the capital of France in the JSON format.\n", + } +] +text = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": text, + "sampling_params": { + "temperature": 0, + "max_new_tokens": 64, + "json_schema": json.dumps(CapitalInfo.model_json_schema()), + }, + }, +) +print_highlight(response.json()) + + +response_data = json.loads(response.json()["text"]) +# validate the response by the pydantic model +capital_info = CapitalInfo.model_validate(response_data) +print_highlight(f"Validated response: {capital_info.model_dump_json()}") +``` + +**JSON Schema Directly** + + + +```python Example +json_schema = json.dumps( + { + "type": "object", + "properties": { + "name": {"type": "string", "pattern": "^[\\w]+$"}, + "population": {"type": "integer"}, + }, + "required": ["name", "population"], + } +) + +# JSON +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": text, + "sampling_params": { + "temperature": 0, + "max_new_tokens": 64, + "json_schema": json_schema, + }, + }, +) + +print_highlight(response.json()) +``` + +### EBNF + + + +```python Example +messages = [ + { + "role": "user", + "content": "Give me the information of the capital of France.", + } +] +text = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": text, + "sampling_params": { + "max_new_tokens": 128, + "temperature": 0, + "n": 3, + "ebnf": ( + "root ::= city | description\n" + 'city ::= "London" | "Paris" | "Berlin" | "Rome"\n' + 'description ::= city " is " status\n' + 'status ::= "the capital of " country\n' + 'country ::= "England" | "France" | "Germany" | "Italy"' + ), + }, + "stream": False, + "return_logprob": False, + }, +) + +print_highlight(response.json()) +``` + +### Regular expression + + + +```python Example +messages = [ + { + "role": "user", + "content": "Paris is the capital of", + } +] +text = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": text, + "sampling_params": { + "temperature": 0, + "max_new_tokens": 64, + "regex": "(France|England)", + }, + }, +) +print_highlight(response.json()) +``` + +### Structural Tag + + + +```python Example +from transformers import AutoTokenizer + +# generate an answer +tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3.1-8B-Instruct") + +text = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +payload = { + "text": text, + "sampling_params": { + "structural_tag": json.dumps( + { + "type": "structural_tag", + "structures": [ + { + "begin": "<function=get_current_weather>", + "schema": schema_get_current_weather, + "end": "</function>", + }, + { + "begin": "<function=get_current_date>", + "schema": schema_get_current_date, + "end": "</function>", + }, + ], + "triggers": ["<function="], + } + ) + }, +} + + +# Send POST request to the API endpoint +response = requests.post(f"http://localhost:{port}/generate", json=payload) +print_highlight(response.json()) +``` + + +```python Example +# Support for XGrammar latest structural tag format +# https://xgrammar.mlc.ai/docs/tutorials/structural_tag.html + +payload = { + "text": text, + "sampling_params": { + "structural_tag": json.dumps( + { + "type": "structural_tag", + "format": { + "type": "triggered_tags", + "triggers": ["<function="], + "tags": [ + { + "begin": "<function=get_current_weather>", + "content": { + "type": "json_schema", + "json_schema": schema_get_current_weather, + }, + "end": "</function>", + }, + { + "begin": "<function=get_current_date>", + "content": { + "type": "json_schema", + "json_schema": schema_get_current_date, + }, + "end": "</function>", + }, + ], + "at_least_one": False, + "stop_after_first": False, + }, + } + ) + }, +} + + +# Send POST request to the API endpoint +response = requests.post(f"http://localhost:{port}/generate", json=payload) +print_highlight(response.json()) +``` + + +```python Example +terminate_process(server_process) +``` + +## Offline Engine API + + + +```python Example +import sglang as sgl + +llm = sgl.Engine( + model_path="meta-llama/Meta-Llama-3.1-8B-Instruct", grammar_backend="xgrammar" +) +``` + +### JSON + + +**Using Pydantic** + + + +```python Example +import json +from pydantic import BaseModel, Field + + +prompts = [ + "Give me the information of the capital of China in the JSON format.", + "Give me the information of the capital of France in the JSON format.", + "Give me the information of the capital of Ireland in the JSON format.", +] + + +# Define the schema using Pydantic +class CapitalInfo(BaseModel): + name: str = Field(..., pattern=r"^\w+$", description="Name of the capital city") + population: int = Field(..., description="Population of the capital city") + + +sampling_params = { + "temperature": 0.1, + "top_p": 0.95, + "json_schema": json.dumps(CapitalInfo.model_json_schema()), +} + +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print_highlight("===============================") + print_highlight(f"Prompt: {prompt}") # validate the output by the pydantic model + capital_info = CapitalInfo.model_validate_json(output["text"]) + print_highlight(f"Validated output: {capital_info.model_dump_json()}") +``` + +**JSON Schema Directly** + + + +```python Example +prompts = [ + "Give me the information of the capital of China in the JSON format.", + "Give me the information of the capital of France in the JSON format.", + "Give me the information of the capital of Ireland in the JSON format.", +] + +json_schema = json.dumps( + { + "type": "object", + "properties": { + "name": {"type": "string", "pattern": "^[\\w]+$"}, + "population": {"type": "integer"}, + }, + "required": ["name", "population"], + } +) + +sampling_params = {"temperature": 0.1, "top_p": 0.95, "json_schema": json_schema} + +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print_highlight("===============================") + print_highlight(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + +### EBNF + + + + +```python Example +prompts = [ + "Give me the information of the capital of France.", + "Give me the information of the capital of Germany.", + "Give me the information of the capital of Italy.", +] + +sampling_params = { + "temperature": 0.8, + "top_p": 0.95, + "ebnf": ( + "root ::= city | description\n" + 'city ::= "London" | "Paris" | "Berlin" | "Rome"\n' + 'description ::= city " is " status\n' + 'status ::= "the capital of " country\n' + 'country ::= "England" | "France" | "Germany" | "Italy"' + ), +} + +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print_highlight("===============================") + print_highlight(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + +### Regular expression + + + +```python Example +prompts = [ + "Please provide information about London as a major global city:", + "Please provide information about Paris as a major global city:", +] + +sampling_params = {"temperature": 0.8, "top_p": 0.95, "regex": "(France|England)"} + +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print_highlight("===============================") + print_highlight(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + +### Structural Tag + + + +```python Example +text = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +prompts = [text] + + +sampling_params = { + "temperature": 0.8, + "top_p": 0.95, + "structural_tag": json.dumps( + { + "type": "structural_tag", + "structures": [ + { + "begin": "<function=get_current_weather>", + "schema": schema_get_current_weather, + "end": "</function>", + }, + { + "begin": "<function=get_current_date>", + "schema": schema_get_current_date, + "end": "</function>", + }, + ], + "triggers": ["<function="], + } + ), +} + + +# Send POST request to the API endpoint +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print_highlight("===============================") + print_highlight(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + + +```python Example +# Support for XGrammar latest structural tag format +# https://xgrammar.mlc.ai/docs/tutorials/structural_tag.html + +sampling_params = { + "temperature": 0.8, + "top_p": 0.95, + "structural_tag": json.dumps( + { + "type": "structural_tag", + "format": { + "type": "triggered_tags", + "triggers": ["<function="], + "tags": [ + { + "begin": "<function=get_current_weather>", + "content": { + "type": "json_schema", + "json_schema": schema_get_current_weather, + }, + "end": "</function>", + }, + { + "begin": "<function=get_current_date>", + "content": { + "type": "json_schema", + "json_schema": schema_get_current_date, + }, + "end": "</function>", + }, + ], + "at_least_one": False, + "stop_after_first": False, + }, + } + ), +} + + +# Send POST request to the API endpoint +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print_highlight("===============================") + print_highlight(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + + +```python Example +llm.shutdown() +``` diff --git a/docs_new/docs/advanced_features/structured_outputs_for_reasoning_models.ipynb b/docs_new/docs/advanced_features/structured_outputs_for_reasoning_models.ipynb new file mode 100644 index 000000000..d05f9e950 --- /dev/null +++ b/docs_new/docs/advanced_features/structured_outputs_for_reasoning_models.ipynb @@ -0,0 +1,841 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Structured Outputs For Reasoning Models\n", + "\n", + "When working with reasoning models that use special tokens like `...` to denote reasoning sections, you might want to allow free-form text within these sections while still enforcing grammar constraints on the rest of the output.\n", + "\n", + "SGLang provides a feature to disable grammar restrictions within reasoning sections. This is particularly useful for models that need to perform complex reasoning steps before providing a structured output.\n", + "\n", + "To enable this feature, use the `--reasoning-parser` flag which decide the think_end_token, such as `
      `, when launching the server. You can also specify the reasoning parser using the `--reasoning-parser` flag.\n", + "\n", + "## Supported Models\n", + "\n", + "Currently, SGLang supports the following reasoning models:\n", + "- [DeepSeek R1 series](https://huggingface.co/collections/deepseek-ai/deepseek-r1-678e1e131c0169c0bc89728d): The reasoning content is wrapped with `` and `` tags.\n", + "- [QwQ](https://huggingface.co/Qwen/QwQ-32B): The reasoning content is wrapped with `` and `` tags.\n", + "\n", + "\n", + "## Usage\n", + "\n", + "## OpenAI Compatible API" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Specify the `--grammar-backend`, `--reasoning-parser` option." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import openai\n", + "import os\n", + "\n", + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "\n", + "os.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n", + "\n", + "\n", + "server_process, port = launch_server_cmd(\n", + " \"python -m sglang.launch_server --model-path deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --host 0.0.0.0 --reasoning-parser deepseek-r1 --log-level warning\"\n", + ")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")\n", + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### JSON\n", + "\n", + "you can directly define a JSON schema or use [Pydantic](https://docs.pydantic.dev/latest/) to define and validate the response." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Using Pydantic**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pydantic import BaseModel, Field\n", + "\n", + "\n", + "# Define the schema using Pydantic\n", + "class CapitalInfo(BaseModel):\n", + " name: str = Field(..., pattern=r\"^\\w+$\", description=\"Name of the capital city\")\n", + " population: int = Field(..., description=\"Population of the capital city\")\n", + "\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\",\n", + " messages=[\n", + " {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"Give me the information and population of the capital of France in the JSON format.\",\n", + " },\n", + " ],\n", + " temperature=0,\n", + " max_tokens=2048,\n", + " response_format={\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": {\n", + " \"name\": \"foo\",\n", + " # convert the pydantic model to json schema\n", + " \"schema\": CapitalInfo.model_json_schema(),\n", + " },\n", + " },\n", + ")\n", + "\n", + "print_highlight(\n", + " f\"reasoing_content: {response.choices[0].message.reasoning_content}\\n\\ncontent: {response.choices[0].message.content}\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**JSON Schema Directly**\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "json_schema = json.dumps(\n", + " {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"name\": {\"type\": \"string\", \"pattern\": \"^[\\\\w]+$\"},\n", + " \"population\": {\"type\": \"integer\"},\n", + " },\n", + " \"required\": [\"name\", \"population\"],\n", + " }\n", + ")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\",\n", + " messages=[\n", + " {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"Give me the information and population of the capital of France in the JSON format.\",\n", + " },\n", + " ],\n", + " temperature=0,\n", + " max_tokens=2048,\n", + " response_format={\n", + " \"type\": \"json_schema\",\n", + " \"json_schema\": {\"name\": \"foo\", \"schema\": json.loads(json_schema)},\n", + " },\n", + ")\n", + "\n", + "print_highlight(\n", + " f\"reasoing_content: {response.choices[0].message.reasoning_content}\\n\\ncontent: {response.choices[0].message.content}\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### EBNF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ebnf_grammar = \"\"\"\n", + "root ::= city | description\n", + "city ::= \"London\" | \"Paris\" | \"Berlin\" | \"Rome\"\n", + "description ::= city \" is \" status\n", + "status ::= \"the capital of \" country\n", + "country ::= \"England\" | \"France\" | \"Germany\" | \"Italy\"\n", + "\"\"\"\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\",\n", + " messages=[\n", + " {\"role\": \"system\", \"content\": \"You are a helpful geography bot.\"},\n", + " {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"Give me the information and population of the capital of France in the JSON format.\",\n", + " },\n", + " ],\n", + " temperature=0,\n", + " max_tokens=2048,\n", + " extra_body={\"ebnf\": ebnf_grammar},\n", + ")\n", + "\n", + "print_highlight(\n", + " f\"reasoing_content: {response.choices[0].message.reasoning_content}\\n\\ncontent: {response.choices[0].message.content}\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Regular expression" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = client.chat.completions.create(\n", + " model=\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\",\n", + " messages=[\n", + " {\"role\": \"assistant\", \"content\": \"What is the capital of France?\"},\n", + " ],\n", + " temperature=0,\n", + " max_tokens=2048,\n", + " extra_body={\"regex\": \"(Paris|London)\"},\n", + ")\n", + "\n", + "print_highlight(\n", + " f\"reasoing_content: {response.choices[0].message.reasoning_content}\\n\\ncontent: {response.choices[0].message.content}\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Structural Tag" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tool_get_current_weather = {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_current_weather\",\n", + " \"description\": \"Get the current weather in a given location\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"city\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The city to find the weather for, e.g. 'San Francisco'\",\n", + " },\n", + " \"state\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"the two-letter abbreviation for the state that the city is\"\n", + " \" in, e.g. 'CA' which would mean 'California'\",\n", + " },\n", + " \"unit\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The unit to fetch the temperature in\",\n", + " \"enum\": [\"celsius\", \"fahrenheit\"],\n", + " },\n", + " },\n", + " \"required\": [\"city\", \"state\", \"unit\"],\n", + " },\n", + " },\n", + "}\n", + "\n", + "tool_get_current_date = {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_current_date\",\n", + " \"description\": \"Get the current date and time for a given timezone\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"timezone\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The timezone to fetch the current date and time for, e.g. 'America/New_York'\",\n", + " }\n", + " },\n", + " \"required\": [\"timezone\"],\n", + " },\n", + " },\n", + "}\n", + "\n", + "schema_get_current_weather = tool_get_current_weather[\"function\"][\"parameters\"]\n", + "schema_get_current_date = tool_get_current_date[\"function\"][\"parameters\"]\n", + "\n", + "\n", + "def get_messages():\n", + " return [\n", + " {\n", + " \"role\": \"system\",\n", + " \"content\": f\"\"\"\n", + "# Tool Instructions\n", + "- Always execute python code in messages that you share.\n", + "- When looking for real time information use relevant functions if available else fallback to brave_search\n", + "You have access to the following functions:\n", + "Use the function 'get_current_weather' to: Get the current weather in a given location\n", + "{tool_get_current_weather[\"function\"]}\n", + "Use the function 'get_current_date' to: Get the current date and time for a given timezone\n", + "{tool_get_current_date[\"function\"]}\n", + "If a you choose to call a function ONLY reply in the following format:\n", + "<{{start_tag}}={{function_name}}>{{parameters}}{{end_tag}}\n", + "where\n", + "start_tag => ` a JSON dict with the function argument name as key and function argument value as value.\n", + "end_tag => ``\n", + "Here is an example,\n", + "{{\"example_name\": \"example_value\"}}\n", + "Reminder:\n", + "- Function calls MUST follow the specified format\n", + "- Required parameters MUST be specified\n", + "- Only call one function at a time\n", + "- Put the entire function call reply on one line\n", + "- Always add your sources when using search results to answer the user query\n", + "You are a helpful assistant.\"\"\",\n", + " },\n", + " {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"You are in New York. Please get the current date and time, and the weather.\",\n", + " },\n", + " ]\n", + "\n", + "\n", + "messages = get_messages()\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\",\n", + " messages=messages,\n", + " response_format={\n", + " \"type\": \"structural_tag\",\n", + " \"max_new_tokens\": 2048,\n", + " \"structures\": [\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_weather,\n", + " \"end\": \"\",\n", + " },\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_date,\n", + " \"end\": \"\",\n", + " },\n", + " ],\n", + " \"triggers\": [\" Note: For native API, as a work-around, you need to set `require_reasoning` argument to `True` to ensure the model will think before generating the structured output. It's not required for chat-completion API." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### JSON" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Using Pydantic**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "from pydantic import BaseModel, Field\n", + "from transformers import AutoTokenizer\n", + "\n", + "tokenizer = AutoTokenizer.from_pretrained(\"deepseek-ai/DeepSeek-R1-Distill-Qwen-7B\")\n", + "\n", + "\n", + "# Define the schema using Pydantic\n", + "class CapitalInfo(BaseModel):\n", + " name: str = Field(..., pattern=r\"^\\w+$\", description=\"Name of the capital city\")\n", + " population: int = Field(..., description=\"Population of the capital city\")\n", + "\n", + "\n", + "messages = [\n", + " {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"Give me the information and population of the capital of France in the JSON format.\",\n", + " },\n", + "]\n", + "text = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "# Make API request\n", + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": text,\n", + " \"require_reasoning\": True,\n", + " \"sampling_params\": {\n", + " \"temperature\": 0,\n", + " \"max_new_tokens\": 2048,\n", + " \"json_schema\": json.dumps(CapitalInfo.model_json_schema()),\n", + " },\n", + " },\n", + ")\n", + "print(response.json())\n", + "\n", + "\n", + "reasoing_content = response.json()[\"text\"].split(\"
      \")[0]\n", + "content = response.json()[\"text\"].split(\"\")[1]\n", + "print_highlight(f\"reasoing_content: {reasoing_content}\\n\\ncontent: {content}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**JSON Schema Directly**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "json_schema = json.dumps(\n", + " {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"name\": {\"type\": \"string\", \"pattern\": \"^[\\\\w]+$\"},\n", + " \"population\": {\"type\": \"integer\"},\n", + " },\n", + " \"required\": [\"name\", \"population\"],\n", + " }\n", + ")\n", + "\n", + "# JSON\n", + "text = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": text,\n", + " \"require_reasoning\": True,\n", + " \"sampling_params\": {\n", + " \"temperature\": 0,\n", + " \"max_new_tokens\": 2048,\n", + " \"json_schema\": json_schema,\n", + " },\n", + " },\n", + ")\n", + "\n", + "print_highlight(response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### EBNF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": \"Give me the information of the capital of France.\",\n", + " \"require_reasoning\": True,\n", + " \"sampling_params\": {\n", + " \"max_new_tokens\": 2048,\n", + " \"temperature\": 0,\n", + " \"n\": 3,\n", + " \"ebnf\": (\n", + " \"root ::= city | description\\n\"\n", + " 'city ::= \"London\" | \"Paris\" | \"Berlin\" | \"Rome\"\\n'\n", + " 'description ::= city \" is \" status\\n'\n", + " 'status ::= \"the capital of \" country\\n'\n", + " 'country ::= \"England\" | \"France\" | \"Germany\" | \"Italy\"'\n", + " ),\n", + " },\n", + " \"stream\": False,\n", + " \"return_logprob\": False,\n", + " },\n", + ")\n", + "\n", + "print(response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Regular expression" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": \"Paris is the capital of\",\n", + " \"require_reasoning\": True,\n", + " \"sampling_params\": {\n", + " \"temperature\": 0,\n", + " \"max_new_tokens\": 2048,\n", + " \"regex\": \"(France|England)\",\n", + " },\n", + " },\n", + ")\n", + "print(response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Structural Tag" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "text = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, return_dict=False\n", + ")\n", + "payload = {\n", + " \"text\": text,\n", + " \"require_reasoning\": True,\n", + " \"sampling_params\": {\n", + " \"max_new_tokens\": 2048,\n", + " \"structural_tag\": json.dumps(\n", + " {\n", + " \"type\": \"structural_tag\",\n", + " \"structures\": [\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_weather,\n", + " \"end\": \"\",\n", + " },\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_date,\n", + " \"end\": \"\",\n", + " },\n", + " ],\n", + " \"triggers\": [\"\",\n", + " \"schema\": schema_get_current_weather,\n", + " \"end\": \"\",\n", + " },\n", + " {\n", + " \"begin\": \"\",\n", + " \"schema\": schema_get_current_date,\n", + " \"end\": \"\",\n", + " },\n", + " ],\n", + " \"triggers\": [\"{{parameters}}{{end_tag}} +where +start_tag => ` a JSON dict with the function argument name as key and function argument value as value. +end_tag => `</function>` +Here is an example, +<function=example_function_name>{{"example_name": "example_value"}}</function> +Reminder: +- Function calls MUST follow the specified format +- Required parameters MUST be specified +- Only call one function at a time +- Put the entire function call reply on one line +- Always add your sources when using search results to answer the user query +You are a helpful assistant.""", + }, + { + "role": "assistant", + "content": "You are in New York. Please get the current date and time, and the weather.", + }, + ] + + +messages = get_messages() + +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + messages=messages, + response_format={ + "type": "structural_tag", + "max_new_tokens": 2048, + "structures": [ + { + "begin": "<function=get_current_weather>", + "schema": schema_get_current_weather, + "end": "</function>", + }, + { + "begin": "<function=get_current_date>", + "schema": schema_get_current_date, + "end": "</function>", + }, + ], + "triggers": ["<function="], + }, +) + +print_highlight( + f"reasoing_content: {response.choices[0].message.reasoning_content}\n\ncontent: {response.choices[0].message.content}" +) +``` + +## Native API and SGLang Runtime (SRT) + + +> Note: For native API, as a work-around, you need to set `require_reasoning` argument to `True` to ensure the model will think before generating the structured output. It's not required for chat-completion API. + + +### JSON + + +**Using Pydantic** + + + +```python Example +import requests +from pydantic import BaseModel, Field +from transformers import AutoTokenizer + +tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-R1-Distill-Qwen-7B") + + +# Define the schema using Pydantic +class CapitalInfo(BaseModel): + name: str = Field(..., pattern=r"^\w+$", description="Name of the capital city") + population: int = Field(..., description="Population of the capital city") + + +messages = [ + { + "role": "assistant", + "content": "Give me the information and population of the capital of France in the JSON format.", + }, +] +text = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +# Make API request +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": text, + "require_reasoning": True, + "sampling_params": { + "temperature": 0, + "max_new_tokens": 2048, + "json_schema": json.dumps(CapitalInfo.model_json_schema()), + }, + }, +) +print(response.json()) + + +reasoing_content = response.json()["text"].split("</think>")[0] +content = response.json()["text"].split("</think>")[1] +print_highlight(f"reasoing_content: {reasoing_content}\n\ncontent: {content}") +``` + +**JSON Schema Directly** + + + +```python Example +json_schema = json.dumps( + { + "type": "object", + "properties": { + "name": {"type": "string", "pattern": "^[\\w]+$"}, + "population": {"type": "integer"}, + }, + "required": ["name", "population"], + } +) + +# JSON +text = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": text, + "require_reasoning": True, + "sampling_params": { + "temperature": 0, + "max_new_tokens": 2048, + "json_schema": json_schema, + }, + }, +) + +print_highlight(response.json()) +``` + +### EBNF + + + +```python Example +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": "Give me the information of the capital of France.", + "require_reasoning": True, + "sampling_params": { + "max_new_tokens": 2048, + "temperature": 0, + "n": 3, + "ebnf": ( + "root ::= city | description\n" + 'city ::= "London" | "Paris" | "Berlin" | "Rome"\n' + 'description ::= city " is " status\n' + 'status ::= "the capital of " country\n' + 'country ::= "England" | "France" | "Germany" | "Italy"' + ), + }, + "stream": False, + "return_logprob": False, + }, +) + +print(response.json()) +``` + +### Regular expression + + + +```python Example +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": "Paris is the capital of", + "require_reasoning": True, + "sampling_params": { + "temperature": 0, + "max_new_tokens": 2048, + "regex": "(France|England)", + }, + }, +) +print(response.json()) +``` + +### Structural Tag + + + +```python Example +text = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +payload = { + "text": text, + "require_reasoning": True, + "sampling_params": { + "max_new_tokens": 2048, + "structural_tag": json.dumps( + { + "type": "structural_tag", + "structures": [ + { + "begin": "<function=get_current_weather>", + "schema": schema_get_current_weather, + "end": "</function>", + }, + { + "begin": "<function=get_current_date>", + "schema": schema_get_current_date, + "end": "</function>", + }, + ], + "triggers": ["<function="], + } + ), + }, +} + + +# Send POST request to the API endpoint +response = requests.post(f"http://localhost:{port}/generate", json=payload) +print_highlight(response.json()) +``` + + +```python Example +terminate_process(server_process) +``` + +## Offline Engine API + + + +```python Example +import sglang as sgl + +llm = sgl.Engine( + model_path="deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + reasoning_parser="deepseek-r1", + grammar_backend="xgrammar", +) +``` + +### JSON + + +**Using Pydantic** + + + +```python Example +import json +from pydantic import BaseModel, Field + + +prompts = [ + "Give me the information of the capital of China in the JSON format.", + "Give me the information of the capital of France in the JSON format.", + "Give me the information of the capital of Ireland in the JSON format.", +] + + +# Define the schema using Pydantic +class CapitalInfo(BaseModel): + name: str = Field(..., pattern=r"^\w+$", description="Name of the capital city") + population: int = Field(..., description="Population of the capital city") + + +sampling_params = { + "temperature": 0, + "top_p": 0.95, + "max_new_tokens": 2048, + "json_schema": json.dumps(CapitalInfo.model_json_schema()), +} + +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print("===============================") + print(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + +**JSON Schema Directly** + + + +```python Example +prompts = [ + "Give me the information of the capital of China in the JSON format.", + "Give me the information of the capital of France in the JSON format.", + "Give me the information of the capital of Ireland in the JSON format.", +] + +json_schema = json.dumps( + { + "type": "object", + "properties": { + "name": {"type": "string", "pattern": "^[\\w]+$"}, + "population": {"type": "integer"}, + }, + "required": ["name", "population"], + } +) + +sampling_params = {"temperature": 0, "max_new_tokens": 2048, "json_schema": json_schema} + +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print("===============================") + print(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + +### EBNF + + + + +```python Example +prompts = [ + "Give me the information of the capital of France.", + "Give me the information of the capital of Germany.", + "Give me the information of the capital of Italy.", +] + +sampling_params = { + "temperature": 0.8, + "top_p": 0.95, + "ebnf": ( + "root ::= city | description\n" + 'city ::= "London" | "Paris" | "Berlin" | "Rome"\n' + 'description ::= city " is " status\n' + 'status ::= "the capital of " country\n' + 'country ::= "England" | "France" | "Germany" | "Italy"' + ), +} + +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print("===============================") + print(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + +### Regular expression + + + +```python Example +prompts = [ + "Please provide information about London as a major global city:", + "Please provide information about Paris as a major global city:", +] + +sampling_params = {"temperature": 0.8, "top_p": 0.95, "regex": "(France|England)"} + +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print("===============================") + print(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + + +```python Example +text = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, return_dict=False +) +prompts = [text] + + +sampling_params = { + "temperature": 0.8, + "top_p": 0.95, + "max_new_tokens": 2048, + "structural_tag": json.dumps( + { + "type": "structural_tag", + "structures": [ + { + "begin": "<function=get_current_weather>", + "schema": schema_get_current_weather, + "end": "</function>", + }, + { + "begin": "<function=get_current_date>", + "schema": schema_get_current_date, + "end": "</function>", + }, + ], + "triggers": ["<function="], + } + ), +} + + +# Send POST request to the API endpoint +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print("===============================") + print(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + + +```python Example +llm.shutdown() +``` diff --git a/docs_new/docs/advanced_features/tool_parser.ipynb b/docs_new/docs/advanced_features/tool_parser.ipynb new file mode 100644 index 000000000..df1bc4bc7 --- /dev/null +++ b/docs_new/docs/advanced_features/tool_parser.ipynb @@ -0,0 +1,854 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tool Parser\n", + "\n", + "This guide demonstrates how to use SGLang’s [Function calling](https://platform.openai.com/docs/guides/function-calling) functionality." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Currently supported parsers:\n", + "\n", + "| Parser | Supported Models | Notes |\n", + "|---|---|---|\n", + "| `deepseekv3` | DeepSeek-v3 (e.g., `deepseek-ai/DeepSeek-V3-0324`) | Recommend adding `--chat-template ./examples/chat_template/tool_chat_template_deepseekv3.jinja` to launch command. |\n", + "| `deepseekv31` | DeepSeek-V3.1 and DeepSeek-V3.2-Exp (e.g. `deepseek-ai/DeepSeek-V3.1`, `deepseek-ai/DeepSeek-V3.2-Exp`) | Recommend adding `--chat-template ./examples/chat_template/tool_chat_template_deepseekv31.jinja` (Or ..deepseekv32.jinja for DeepSeek-V3.2) to launch command. |\n", + "| `deepseekv32` | DeepSeek-V3.2 (`deepseek-ai/DeepSeek-V3.2`) | |\n", + "| `glm` | GLM series (e.g. `zai-org/GLM-4.6`) | |\n", + "| `gpt-oss` | GPT-OSS (e.g., `openai/gpt-oss-120b`, `openai/gpt-oss-20b`, `lmsys/gpt-oss-120b-bf16`, `lmsys/gpt-oss-20b-bf16`) | The gpt-oss tool parser filters out analysis channel events and only preserves normal text. This can cause the content to be empty when explanations are in the analysis channel. To work around this, complete the tool round by returning tool results as `role=\"tool\"` messages, which enables the model to generate the final content. |\n", + "| `kimi_k2` | `moonshotai/Kimi-K2-Instruct` | |\n", + "| `llama3` | Llama 3.1 / 3.2 / 3.3 (e.g. `meta-llama/Llama-3.1-8B-Instruct`, `meta-llama/Llama-3.2-1B-Instruct`, `meta-llama/Llama-3.3-70B-Instruct`) | |\n", + "| `llama4` | Llama 4 (e.g. `meta-llama/Llama-4-Scout-17B-16E-Instruct`) | |\n", + "| `mistral` | Mistral (e.g. `mistralai/Mistral-7B-Instruct-v0.3`, `mistralai/Mistral-Nemo-Instruct-2407`, `mistralai/Mistral-7B-v0.3`) | |\n", + "| `pythonic` | Llama-3.2 / Llama-3.3 / Llama-4 | Model outputs function calls as Python code. Requires `--tool-call-parser pythonic` and is recommended to use with a specific chat template. |\n", + "| `qwen` | Qwen series (e.g. `Qwen/Qwen3-Next-80B-A3B-Instruct`, `Qwen/Qwen3-VL-30B-A3B-Thinking`) except Qwen3-Coder| |\n", + "| `qwen3_coder` | Qwen3-Coder (e.g. `Qwen/Qwen3-Coder-30B-A3B-Instruct`) | |\n", + "| `step3` | Step-3 | |\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## OpenAI Compatible API" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Launching the Server" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "from openai import OpenAI\n", + "\n", + "server_process, port = launch_server_cmd(\n", + " \"python3 -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --tool-call-parser qwen25 --host 0.0.0.0 --log-level warning\" # qwen25\n", + ")\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that `--tool-call-parser` defines the parser used to interpret responses." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Tools for Function Call\n", + "Below is a Python snippet that shows how to define a tool as a dictionary. The dictionary includes a tool name, a description, and property defined Parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Define tools\n", + "tools = [\n", + " {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_current_weather\",\n", + " \"description\": \"Get the current weather in a given location\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"city\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The city to find the weather for, e.g. 'San Francisco'\",\n", + " },\n", + " \"state\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"the two-letter abbreviation for the state that the city is\"\n", + " \" in, e.g. 'CA' which would mean 'California'\",\n", + " },\n", + " \"unit\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The unit to fetch the temperature in\",\n", + " \"enum\": [\"celsius\", \"fahrenheit\"],\n", + " },\n", + " },\n", + " \"required\": [\"city\", \"state\", \"unit\"],\n", + " },\n", + " },\n", + " }\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Messages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_messages():\n", + " return [\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"What's the weather like in Boston today? Output a reasoning before act, then use the tools to help you.\",\n", + " }\n", + " ]\n", + "\n", + "\n", + "messages = get_messages()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Initialize the Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Initialize OpenAI-like client\n", + "client = OpenAI(api_key=\"None\", base_url=f\"http://0.0.0.0:{port}/v1\")\n", + "model_name = client.models.list().data[0].id" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Non-Streaming Request" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Non-streaming mode test\n", + "response_non_stream = client.chat.completions.create(\n", + " model=model_name,\n", + " messages=messages,\n", + " temperature=0,\n", + " top_p=0.95,\n", + " max_tokens=1024,\n", + " stream=False, # Non-streaming\n", + " tools=tools,\n", + ")\n", + "print_highlight(\"Non-stream response:\")\n", + "print_highlight(response_non_stream)\n", + "print_highlight(\"==== content ====\")\n", + "print_highlight(response_non_stream.choices[0].message.content)\n", + "print_highlight(\"==== tool_calls ====\")\n", + "print_highlight(response_non_stream.choices[0].message.tool_calls)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Handle Tools\n", + "When the engine determines it should call a particular tool, it will return arguments or partial arguments through the response. You can parse these arguments and later invoke the tool accordingly." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "name_non_stream = response_non_stream.choices[0].message.tool_calls[0].function.name\n", + "arguments_non_stream = (\n", + " response_non_stream.choices[0].message.tool_calls[0].function.arguments\n", + ")\n", + "\n", + "print_highlight(f\"Final streamed function call name: {name_non_stream}\")\n", + "print_highlight(f\"Final streamed function call arguments: {arguments_non_stream}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Streaming Request" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Streaming mode test\n", + "print_highlight(\"Streaming response:\")\n", + "response_stream = client.chat.completions.create(\n", + " model=model_name,\n", + " messages=messages,\n", + " temperature=0,\n", + " top_p=0.95,\n", + " max_tokens=1024,\n", + " stream=True, # Enable streaming\n", + " tools=tools,\n", + ")\n", + "\n", + "texts = \"\"\n", + "tool_calls = []\n", + "name = \"\"\n", + "arguments = \"\"\n", + "for chunk in response_stream:\n", + " if chunk.choices[0].delta.content:\n", + " texts += chunk.choices[0].delta.content\n", + " if chunk.choices[0].delta.tool_calls:\n", + " tool_calls.append(chunk.choices[0].delta.tool_calls[0])\n", + "print_highlight(\"==== Text ====\")\n", + "print_highlight(texts)\n", + "\n", + "print_highlight(\"==== Tool Call ====\")\n", + "for tool_call in tool_calls:\n", + " print_highlight(tool_call)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Handle Tools\n", + "When the engine determines it should call a particular tool, it will return arguments or partial arguments through the response. You can parse these arguments and later invoke the tool accordingly." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Parse and combine function call arguments\n", + "arguments = []\n", + "for tool_call in tool_calls:\n", + " if tool_call.function.name:\n", + " print_highlight(f\"Streamed function call name: {tool_call.function.name}\")\n", + "\n", + " if tool_call.function.arguments:\n", + " arguments.append(tool_call.function.arguments)\n", + "\n", + "# Combine all fragments into a single JSON string\n", + "full_arguments = \"\".join(arguments)\n", + "print_highlight(f\"streamed function call arguments: {full_arguments}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define a Tool Function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# This is a demonstration, define real function according to your usage.\n", + "def get_current_weather(city: str, state: str, unit: \"str\"):\n", + " return (\n", + " f\"The weather in {city}, {state} is 85 degrees {unit}. It is \"\n", + " \"partly cloudly, with highs in the 90's.\"\n", + " )\n", + "\n", + "\n", + "available_tools = {\"get_current_weather\": get_current_weather}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "### Execute the Tool" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "messages.append(response_non_stream.choices[0].message)\n", + "\n", + "# Call the corresponding tool function\n", + "tool_call = messages[-1].tool_calls[0]\n", + "tool_name = tool_call.function.name\n", + "tool_to_call = available_tools[tool_name]\n", + "result = tool_to_call(**(json.loads(tool_call.function.arguments)))\n", + "print_highlight(f\"Function call result: {result}\")\n", + "# messages.append({\"role\": \"tool\", \"content\": result, \"name\": tool_name})\n", + "messages.append(\n", + " {\n", + " \"role\": \"tool\",\n", + " \"tool_call_id\": tool_call.id,\n", + " \"content\": str(result),\n", + " \"name\": tool_name,\n", + " }\n", + ")\n", + "\n", + "print_highlight(f\"Updated message history: {messages}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Send Results Back to Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "final_response = client.chat.completions.create(\n", + " model=model_name,\n", + " messages=messages,\n", + " temperature=0,\n", + " top_p=0.95,\n", + " stream=False,\n", + " tools=tools,\n", + ")\n", + "print_highlight(\"Non-stream response:\")\n", + "print_highlight(final_response)\n", + "\n", + "print_highlight(\"==== Text ====\")\n", + "print_highlight(final_response.choices[0].message.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Native API and SGLang Runtime (SRT)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoTokenizer\n", + "import requests\n", + "\n", + "# generate an answer\n", + "tokenizer = AutoTokenizer.from_pretrained(\"Qwen/Qwen2.5-7B-Instruct\")\n", + "\n", + "messages = get_messages()\n", + "\n", + "input = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True, tools=tools, return_dict=False\n", + ")\n", + "\n", + "gen_url = f\"http://localhost:{port}/generate\"\n", + "gen_data = {\n", + " \"text\": input,\n", + " \"sampling_params\": {\n", + " \"skip_special_tokens\": False,\n", + " \"max_new_tokens\": 1024,\n", + " \"temperature\": 0,\n", + " \"top_p\": 0.95,\n", + " },\n", + "}\n", + "gen_response = requests.post(gen_url, json=gen_data).json()[\"text\"]\n", + "print_highlight(\"==== Response ====\")\n", + "print_highlight(gen_response)\n", + "\n", + "# parse the response\n", + "parse_url = f\"http://localhost:{port}/parse_function_call\"\n", + "\n", + "function_call_input = {\n", + " \"text\": gen_response,\n", + " \"tool_call_parser\": \"qwen25\",\n", + " \"tools\": tools,\n", + "}\n", + "\n", + "function_call_response = requests.post(parse_url, json=function_call_input)\n", + "function_call_response_json = function_call_response.json()\n", + "\n", + "print_highlight(\"==== Text ====\")\n", + "print(function_call_response_json[\"normal_text\"])\n", + "print_highlight(\"==== Calls ====\")\n", + "print(\"function name: \", function_call_response_json[\"calls\"][0][\"name\"])\n", + "print(\"function arguments: \", function_call_response_json[\"calls\"][0][\"parameters\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Offline Engine API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sglang as sgl\n", + "from sglang.srt.function_call.function_call_parser import FunctionCallParser\n", + "from sglang.srt.managers.io_struct import Tool, Function\n", + "\n", + "llm = sgl.Engine(model_path=\"Qwen/Qwen2.5-7B-Instruct\")\n", + "tokenizer = llm.tokenizer_manager.tokenizer\n", + "input_ids = tokenizer.apply_chat_template(\n", + " messages, tokenize=True, add_generation_prompt=True, tools=tools, return_dict=False\n", + ")\n", + "\n", + "# Note that for gpt-oss tool parser, adding \"no_stop_trim\": True\n", + "# to make sure the tool call token is not trimmed.\n", + "\n", + "sampling_params = {\n", + " \"max_new_tokens\": 1024,\n", + " \"temperature\": 0,\n", + " \"top_p\": 0.95,\n", + " \"skip_special_tokens\": False,\n", + "}\n", + "\n", + "# 1) Offline generation\n", + "result = llm.generate(input_ids=input_ids, sampling_params=sampling_params)\n", + "generated_text = result[\"text\"] # Assume there is only one prompt\n", + "\n", + "print_highlight(\"=== Offline Engine Output Text ===\")\n", + "print_highlight(generated_text)\n", + "\n", + "\n", + "# 2) Parse using FunctionCallParser\n", + "def convert_dict_to_tool(tool_dict: dict) -> Tool:\n", + " function_dict = tool_dict.get(\"function\", {})\n", + " return Tool(\n", + " type=tool_dict.get(\"type\", \"function\"),\n", + " function=Function(\n", + " name=function_dict.get(\"name\"),\n", + " description=function_dict.get(\"description\"),\n", + " parameters=function_dict.get(\"parameters\"),\n", + " ),\n", + " )\n", + "\n", + "\n", + "tools = [convert_dict_to_tool(raw_tool) for raw_tool in tools]\n", + "\n", + "parser = FunctionCallParser(tools=tools, tool_call_parser=\"qwen25\")\n", + "normal_text, calls = parser.parse_non_stream(generated_text)\n", + "\n", + "print_highlight(\"=== Parsing Result ===\")\n", + "print(\"Normal text portion:\", normal_text)\n", + "print_highlight(\"Function call portion:\")\n", + "for call in calls:\n", + " # call: ToolCallItem\n", + " print_highlight(f\" - tool name: {call.name}\")\n", + " print_highlight(f\" parameters: {call.parameters}\")\n", + "\n", + "# 3) If needed, perform additional logic on the parsed functions, such as automatically calling the corresponding function to obtain a return value, etc." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "llm.shutdown()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tool Choice Mode\n", + "\n", + "SGLang supports OpenAI's `tool_choice` parameter to control when and which tools the model should call. This feature is implemented using EBNF (Extended Backus-Naur Form) grammar to ensure reliable tool calling behavior.\n", + "\n", + "### Supported Tool Choice Options\n", + "\n", + "- **`tool_choice=\"required\"`**: Forces the model to call at least one tool\n", + "- **`tool_choice={\"type\": \"function\", \"function\": {\"name\": \"specific_function\"}}`**: Forces the model to call a specific function\n", + "\n", + "### Backend Compatibility\n", + "\n", + "Tool choice is fully supported with the **Xgrammar backend**, which is the default grammar backend (`--grammar-backend xgrammar`). However, it may not be fully supported with other backends such as `outlines`.\n", + "\n", + "### Example: Required Tool Choice" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from openai import OpenAI\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "from sglang.test.doc_patch import launch_server_cmd\n", + "\n", + "# Start a new server session for tool choice examples\n", + "server_process_tool_choice, port_tool_choice = launch_server_cmd(\n", + " \"python3 -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --tool-call-parser qwen25 --host 0.0.0.0 --log-level warning\"\n", + ")\n", + "wait_for_server(f\"http://localhost:{port_tool_choice}\")\n", + "\n", + "# Initialize client for tool choice examples\n", + "client_tool_choice = OpenAI(\n", + " api_key=\"None\", base_url=f\"http://0.0.0.0:{port_tool_choice}/v1\"\n", + ")\n", + "model_name_tool_choice = client_tool_choice.models.list().data[0].id\n", + "\n", + "# Example with tool_choice=\"required\" - forces the model to call a tool\n", + "messages_required = [\n", + " {\"role\": \"user\", \"content\": \"Hello, what is the capital of France?\"}\n", + "]\n", + "\n", + "# Define tools\n", + "tools = [\n", + " {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_current_weather\",\n", + " \"description\": \"Get the current weather in a given location\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"city\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The city to find the weather for, e.g. 'San Francisco'\",\n", + " },\n", + " \"unit\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The unit to fetch the temperature in\",\n", + " \"enum\": [\"celsius\", \"fahrenheit\"],\n", + " },\n", + " },\n", + " \"required\": [\"city\", \"unit\"],\n", + " },\n", + " },\n", + " }\n", + "]\n", + "\n", + "response_required = client_tool_choice.chat.completions.create(\n", + " model=model_name_tool_choice,\n", + " messages=messages_required,\n", + " temperature=0,\n", + " max_tokens=1024,\n", + " tools=tools,\n", + " tool_choice=\"required\", # Force the model to call a tool\n", + ")\n", + "\n", + "print_highlight(\"Response with tool_choice='required':\")\n", + "print(\"Content:\", response_required.choices[0].message.content)\n", + "print(\"Tool calls:\", response_required.choices[0].message.tool_calls)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example: Specific Function Choice\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Example with specific function choice - forces the model to call a specific function\n", + "messages_specific = [\n", + " {\"role\": \"user\", \"content\": \"What are the most attactive places in France?\"}\n", + "]\n", + "\n", + "response_specific = client_tool_choice.chat.completions.create(\n", + " model=model_name_tool_choice,\n", + " messages=messages_specific,\n", + " temperature=0,\n", + " max_tokens=1024,\n", + " tools=tools,\n", + " tool_choice={\n", + " \"type\": \"function\",\n", + " \"function\": {\"name\": \"get_current_weather\"},\n", + " }, # Force the model to call the specific get_current_weather function\n", + ")\n", + "\n", + "print_highlight(\"Response with specific function choice:\")\n", + "print(\"Content:\", response_specific.choices[0].message.content)\n", + "print(\"Tool calls:\", response_specific.choices[0].message.tool_calls)\n", + "\n", + "if response_specific.choices[0].message.tool_calls:\n", + " tool_call = response_specific.choices[0].message.tool_calls[0]\n", + " print_highlight(f\"Called function: {tool_call.function.name}\")\n", + " print_highlight(f\"Arguments: {tool_call.function.arguments}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process_tool_choice)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pythonic Tool Call Format (Llama-3.2 / Llama-3.3 / Llama-4)\n", + "\n", + "Some Llama models (such as Llama-3.2-1B, Llama-3.2-3B, Llama-3.3-70B, and Llama-4) support a \"pythonic\" tool call format, where the model outputs function calls as Python code, e.g.:\n", + "\n", + "```python\n", + "[get_current_weather(city=\"San Francisco\", state=\"CA\", unit=\"celsius\")]\n", + "```\n", + "\n", + "- The output is a Python list of function calls, with arguments as Python literals (not JSON).\n", + "- Multiple tool calls can be returned in the same list:\n", + "```python\n", + "[get_current_weather(city=\"San Francisco\", state=\"CA\", unit=\"celsius\"),\n", + " get_current_weather(city=\"New York\", state=\"NY\", unit=\"fahrenheit\")]\n", + "```\n", + "\n", + "For more information, refer to Meta’s documentation on [Zero shot function calling](https://github.com/meta-llama/llama-models/blob/main/models/llama4/prompt_format.md#zero-shot-function-calling---system-message).\n", + "\n", + "Note that this feature is still under development on Blackwell.\n", + "\n", + "### How to enable\n", + "- Launch the server with `--tool-call-parser pythonic`\n", + "- You may also specify --chat-template with the improved template for the model (e.g., `--chat-template=examples/chat_template/tool_chat_template_llama4_pythonic.jinja`).\n", + "This is recommended because the model expects a special prompt format to reliably produce valid pythonic tool call outputs. The template ensures that the prompt structure (e.g., special tokens, message boundaries like `<|eom|>`, and function call delimiters) matches what the model was trained or fine-tuned on. If you do not use the correct chat template, tool calling may fail or produce inconsistent results.\n", + "\n", + "#### Forcing Pythonic Tool Call Output Without a Chat Template\n", + "If you don't want to specify a chat template, you must give the model extremely explicit instructions in your messages to enforce pythonic output. For example, for `Llama-3.2-1B-Instruct`, you need:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import openai\n", + "\n", + "server_process, port = launch_server_cmd(\n", + " \" python3 -m sglang.launch_server --model-path meta-llama/Llama-3.2-1B-Instruct --tool-call-parser pythonic --tp 1 --log-level warning\" # llama-3.2-1b-instruct\n", + ")\n", + "wait_for_server(f\"http://localhost:{port}\")\n", + "\n", + "tools = [\n", + " {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_weather\",\n", + " \"description\": \"Get the current weather for a given location.\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"location\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The name of the city or location.\",\n", + " }\n", + " },\n", + " \"required\": [\"location\"],\n", + " },\n", + " },\n", + " },\n", + " {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_tourist_attractions\",\n", + " \"description\": \"Get a list of top tourist attractions for a given city.\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"city\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The name of the city to find attractions for.\",\n", + " }\n", + " },\n", + " \"required\": [\"city\"],\n", + " },\n", + " },\n", + " },\n", + "]\n", + "\n", + "\n", + "def get_messages():\n", + " return [\n", + " {\n", + " \"role\": \"system\",\n", + " \"content\": (\n", + " \"You are a travel assistant. \"\n", + " \"When asked to call functions, ALWAYS respond ONLY with a python list of function calls, \"\n", + " \"using this format: [func_name1(param1=value1, param2=value2), func_name2(param=value)]. \"\n", + " \"Do NOT use JSON, do NOT use variables, do NOT use any other format. \"\n", + " \"Here is an example:\\n\"\n", + " '[get_weather(location=\"Paris\"), get_tourist_attractions(city=\"Paris\")]'\n", + " ),\n", + " },\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": (\n", + " \"I'm planning a trip to Tokyo next week. What's the weather like and what are some top tourist attractions? \"\n", + " \"Propose parallel tool calls at once, using the python list of function calls format as shown above.\"\n", + " ),\n", + " },\n", + " ]\n", + "\n", + "\n", + "messages = get_messages()\n", + "\n", + "client = openai.Client(base_url=f\"http://localhost:{port}/v1\", api_key=\"xxxxxx\")\n", + "model_name = client.models.list().data[0].id\n", + "\n", + "\n", + "response_non_stream = client.chat.completions.create(\n", + " model=model_name,\n", + " messages=messages,\n", + " temperature=0,\n", + " top_p=0.9,\n", + " stream=False, # Non-streaming\n", + " tools=tools,\n", + ")\n", + "print_highlight(\"Non-stream response:\")\n", + "print_highlight(response_non_stream)\n", + "\n", + "response_stream = client.chat.completions.create(\n", + " model=model_name,\n", + " messages=messages,\n", + " temperature=0,\n", + " top_p=0.9,\n", + " stream=True,\n", + " tools=tools,\n", + ")\n", + "texts = \"\"\n", + "tool_calls = []\n", + "name = \"\"\n", + "arguments = \"\"\n", + "\n", + "for chunk in response_stream:\n", + " if chunk.choices[0].delta.content:\n", + " texts += chunk.choices[0].delta.content\n", + " if chunk.choices[0].delta.tool_calls:\n", + " tool_calls.append(chunk.choices[0].delta.tool_calls[0])\n", + "\n", + "print_highlight(\"Streaming Response:\")\n", + "print_highlight(\"==== Text ====\")\n", + "print_highlight(texts)\n", + "\n", + "print_highlight(\"==== Tool Call ====\")\n", + "for tool_call in tool_calls:\n", + " print_highlight(tool_call)\n", + "\n", + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> **Note:** \n", + "> The model may still default to JSON if it was heavily finetuned on that format. Prompt engineering (including examples) is the only way to increase the chance of pythonic output if you are not using a chat template." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## How to support a new model?\n", + "1. Update the TOOLS_TAG_LIST in sglang/srt/function_call_parser.py with the model’s tool tags. Currently supported tags include:\n", + "```\n", + "\tTOOLS_TAG_LIST = [\n", + "\t “<|plugin|>“,\n", + "\t ““,\n", + "\t “<|python_tag|>“,\n", + "\t “[TOOL_CALLS]”\n", + "\t]\n", + "```\n", + "2. Create a new detector class in sglang/srt/function_call_parser.py that inherits from BaseFormatDetector. The detector should handle the model’s specific function call format. For example:\n", + "```\n", + " class NewModelDetector(BaseFormatDetector):\n", + "```\n", + "3. Add the new detector to the MultiFormatParser class that manages all the format detectors." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs_new/docs/advanced_features/tool_parser.mdx b/docs_new/docs/advanced_features/tool_parser.mdx new file mode 100644 index 000000000..a5fcc169b --- /dev/null +++ b/docs_new/docs/advanced_features/tool_parser.mdx @@ -0,0 +1,740 @@ +--- +title: "Tool Parser" +metatags: + description: "SGLang function calling: tool parsers for DeepSeek, Llama, Qwen, Mistral, GLM, Kimi K2. OpenAI-compatible tool use API." +--- +This guide demonstrates how to use SGLang’s [Function calling](https://platform.openai.com/docs/guides/function-calling) functionality. + + +## Currently supported parsers: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParserSupported ModelsNotes
      `deepseekv3`DeepSeek-v3 (e.g., `deepseek-ai/DeepSeek-V3-0324`)Recommend adding `--chat-template ./examples/chat_template/tool_chat_template_deepseekv3.jinja` to launch command.
      `deepseekv31`DeepSeek-V3.1 and DeepSeek-V3.2-Exp (e.g. `deepseek-ai/DeepSeek-V3.1`, `deepseek-ai/DeepSeek-V3.2-Exp`)Recommend adding `--chat-template ./examples/chat_template/tool_chat_template_deepseekv31.jinja` (Or ..deepseekv32.jinja for DeepSeek-V3.2) to launch command.
      `deepseekv32`DeepSeek-V3.2 (`deepseek-ai/DeepSeek-V3.2`)
      `glm`GLM series (e.g. `zai-org/GLM-4.6`)
      `gpt-oss`GPT-OSS (e.g., `openai/gpt-oss-120b`, `openai/gpt-oss-20b`, `lmsys/gpt-oss-120b-bf16`, `lmsys/gpt-oss-20b-bf16`)The gpt-oss tool parser filters out analysis channel events and only preserves normal text. This can cause the content to be empty when explanations are in the analysis channel. To work around this, complete the tool round by returning tool results as `role="tool"` messages, which enables the model to generate the final content.
      `kimi_k2``moonshotai/Kimi-K2-Instruct`
      `llama3`Llama 3.1 / 3.2 / 3.3 (e.g. `meta-llama/Llama-3.1-8B-Instruct`, `meta-llama/Llama-3.2-1B-Instruct`, `meta-llama/Llama-3.3-70B-Instruct`)
      `llama4`Llama 4 (e.g. `meta-llama/Llama-4-Scout-17B-16E-Instruct`)
      `mistral`Mistral (e.g. `mistralai/Mistral-7B-Instruct-v0.3`, `mistralai/Mistral-Nemo-Instruct-2407`, `mistralai/Mistral-7B-v0.3`)
      `pythonic`Llama-3.2 / Llama-3.3 / Llama-4Model outputs function calls as Python code. Requires `--tool-call-parser pythonic` and is recommended to use with a specific chat template.
      `qwen`Qwen series (e.g. `Qwen/Qwen3-Next-80B-A3B-Instruct`, `Qwen/Qwen3-VL-30B-A3B-Thinking`) except Qwen3-Coder
      `qwen3_coder`Qwen3-Coder (e.g. `Qwen/Qwen3-Coder-30B-A3B-Instruct`)
      `step3`Step-3
      + + + +## OpenAI Compatible API + + +### Launching the Server + + + +```python Example +import json +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, print_highlight, terminate_process +from openai import OpenAI + +server_process, port = launch_server_cmd( + "python3 -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --tool-call-parser qwen25 --host 0.0.0.0 --log-level warning" # qwen25 +) +wait_for_server(f"http://localhost:{port}") +``` + +Note that `--tool-call-parser` defines the parser used to interpret responses. + + +### Define Tools for Function Call +Below is a Python snippet that shows how to define a tool as a dictionary. The dictionary includes a tool name, a description, and property defined Parameters. + + + +```python Example +# Define tools +tools = [ + { + "type": "function", + "function": { + "name": "get_current_weather", + "description": "Get the current weather in a given location", + "parameters": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "The city to find the weather for, e.g. 'San Francisco'", + }, + "state": { + "type": "string", + "description": "the two-letter abbreviation for the state that the city is" + " in, e.g. 'CA' which would mean 'California'", + }, + "unit": { + "type": "string", + "description": "The unit to fetch the temperature in", + "enum": ["celsius", "fahrenheit"], + }, + }, + "required": ["city", "state", "unit"], + }, + }, + } +] +``` + +### Define Messages + + + +```python Example +def get_messages(): + return [ + { + "role": "user", + "content": "What's the weather like in Boston today? Output a reasoning before act, then use the tools to help you.", + } + ] + + +messages = get_messages() +``` + +### Initialize the Client + + + +```python Example +# Initialize OpenAI-like client +client = OpenAI(api_key="None", base_url=f"http://0.0.0.0:{port}/v1") +model_name = client.models.list().data[0].id +``` + +### Non-Streaming Request + + + +```python Example +# Non-streaming mode test +response_non_stream = client.chat.completions.create( + model=model_name, + messages=messages, + temperature=0, + top_p=0.95, + max_tokens=1024, + stream=False, # Non-streaming + tools=tools, +) +print_highlight("Non-stream response:") +print_highlight(response_non_stream) +print_highlight("==== content ====") +print_highlight(response_non_stream.choices[0].message.content) +print_highlight("==== tool_calls ====") +print_highlight(response_non_stream.choices[0].message.tool_calls) +``` + +#### Handle Tools +When the engine determines it should call a particular tool, it will return arguments or partial arguments through the response. You can parse these arguments and later invoke the tool accordingly. + + + +```python Example +name_non_stream = response_non_stream.choices[0].message.tool_calls[0].function.name +arguments_non_stream = ( + response_non_stream.choices[0].message.tool_calls[0].function.arguments +) + +print_highlight(f"Final streamed function call name: {name_non_stream}") +print_highlight(f"Final streamed function call arguments: {arguments_non_stream}") +``` + +### Streaming Request + + + +```python Example +# Streaming mode test +print_highlight("Streaming response:") +response_stream = client.chat.completions.create( + model=model_name, + messages=messages, + temperature=0, + top_p=0.95, + max_tokens=1024, + stream=True, # Enable streaming + tools=tools, +) + +texts = "" +tool_calls = [] +name = "" +arguments = "" +for chunk in response_stream: + if chunk.choices[0].delta.content: + texts += chunk.choices[0].delta.content + if chunk.choices[0].delta.tool_calls: + tool_calls.append(chunk.choices[0].delta.tool_calls[0]) +print_highlight("==== Text ====") +print_highlight(texts) + +print_highlight("==== Tool Call ====") +for tool_call in tool_calls: + print_highlight(tool_call) +``` + +#### Handle Tools +When the engine determines it should call a particular tool, it will return arguments or partial arguments through the response. You can parse these arguments and later invoke the tool accordingly. + + + +```python Example +# Parse and combine function call arguments +arguments = [] +for tool_call in tool_calls: + if tool_call.function.name: + print_highlight(f"Streamed function call name: {tool_call.function.name}") + + if tool_call.function.arguments: + arguments.append(tool_call.function.arguments) + +# Combine all fragments into a single JSON string +full_arguments = "".join(arguments) +print_highlight(f"streamed function call arguments: {full_arguments}") +``` + +### Define a Tool Function + + + +```python Example +# This is a demonstration, define real function according to your usage. +def get_current_weather(city: str, state: str, unit: "str"): + return ( + f"The weather in {city}, {state} is 85 degrees {unit}. It is " + "partly cloudly, with highs in the 90's." + ) + + +available_tools = {"get_current_weather": get_current_weather} +``` + + +### Execute the Tool + + + +```python Example +messages.append(response_non_stream.choices[0].message) + +# Call the corresponding tool function +tool_call = messages[-1].tool_calls[0] +tool_name = tool_call.function.name +tool_to_call = available_tools[tool_name] +result = tool_to_call(**(json.loads(tool_call.function.arguments))) +print_highlight(f"Function call result: {result}") +# messages.append({"role": "tool", "content": result, "name": tool_name}) +messages.append( + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": str(result), + "name": tool_name, + } +) + +print_highlight(f"Updated message history: {messages}") +``` + +### Send Results Back to Model + + + +```python Example +final_response = client.chat.completions.create( + model=model_name, + messages=messages, + temperature=0, + top_p=0.95, + stream=False, + tools=tools, +) +print_highlight("Non-stream response:") +print_highlight(final_response) + +print_highlight("==== Text ====") +print_highlight(final_response.choices[0].message.content) +``` + +## Native API and SGLang Runtime (SRT) + + + +```python Example +from transformers import AutoTokenizer +import requests + +# generate an answer +tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct") + +messages = get_messages() + +input = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True, tools=tools, return_dict=False +) + +gen_url = f"http://localhost:{port}/generate" +gen_data = { + "text": input, + "sampling_params": { + "skip_special_tokens": False, + "max_new_tokens": 1024, + "temperature": 0, + "top_p": 0.95, + }, +} +gen_response = requests.post(gen_url, json=gen_data).json()["text"] +print_highlight("==== Response ====") +print_highlight(gen_response) + +# parse the response +parse_url = f"http://localhost:{port}/parse_function_call" + +function_call_input = { + "text": gen_response, + "tool_call_parser": "qwen25", + "tools": tools, +} + +function_call_response = requests.post(parse_url, json=function_call_input) +function_call_response_json = function_call_response.json() + +print_highlight("==== Text ====") +print(function_call_response_json["normal_text"]) +print_highlight("==== Calls ====") +print("function name: ", function_call_response_json["calls"][0]["name"]) +print("function arguments: ", function_call_response_json["calls"][0]["parameters"]) +``` + + +```python Example +terminate_process(server_process) +``` + +## Offline Engine API + + + +```python Example +import sglang as sgl +from sglang.srt.function_call.function_call_parser import FunctionCallParser +from sglang.srt.managers.io_struct import Tool, Function + +llm = sgl.Engine(model_path="Qwen/Qwen2.5-7B-Instruct") +tokenizer = llm.tokenizer_manager.tokenizer +input_ids = tokenizer.apply_chat_template( + messages, tokenize=True, add_generation_prompt=True, tools=tools, return_dict=False +) + +# Note that for gpt-oss tool parser, adding "no_stop_trim": True +# to make sure the tool call token is not trimmed. + +sampling_params = { + "max_new_tokens": 1024, + "temperature": 0, + "top_p": 0.95, + "skip_special_tokens": False, +} + +# 1) Offline generation +result = llm.generate(input_ids=input_ids, sampling_params=sampling_params) +generated_text = result["text"] # Assume there is only one prompt + +print_highlight("=== Offline Engine Output Text ===") +print_highlight(generated_text) + + +# 2) Parse using FunctionCallParser +def convert_dict_to_tool(tool_dict: dict) -> Tool: + function_dict = tool_dict.get("function", {}) + return Tool( + type=tool_dict.get("type", "function"), + function=Function( + name=function_dict.get("name"), + description=function_dict.get("description"), + parameters=function_dict.get("parameters"), + ), + ) + + +tools = [convert_dict_to_tool(raw_tool) for raw_tool in tools] + +parser = FunctionCallParser(tools=tools, tool_call_parser="qwen25") +normal_text, calls = parser.parse_non_stream(generated_text) + +print_highlight("=== Parsing Result ===") +print("Normal text portion:", normal_text) +print_highlight("Function call portion:") +for call in calls: + # call: ToolCallItem + print_highlight(f" - tool name: {call.name}") + print_highlight(f" parameters: {call.parameters}") + +# 3) If needed, perform additional logic on the parsed functions, such as automatically calling the corresponding function to obtain a return value, etc. +``` + + +```python Example +llm.shutdown() +``` + +## Tool Choice Mode + +SGLang supports OpenAI's `tool_choice` parameter to control when and which tools the model should call. This feature is implemented using EBNF (Extended Backus-Naur Form) grammar to ensure reliable tool calling behavior. + +### Supported Tool Choice Options + +- **`tool_choice="required"`**: Forces the model to call at least one tool +- **`tool_choice={"type": "function", "function": {"name": "specific_function"}}`**: Forces the model to call a specific function + +### Backend Compatibility + +Tool choice is fully supported with the **Xgrammar backend**, which is the default grammar backend (`--grammar-backend xgrammar`). However, it may not be fully supported with other backends such as `outlines`. + +### Example: Required Tool Choice + + + +```python Example +from openai import OpenAI +from sglang.utils import wait_for_server, print_highlight, terminate_process +from sglang.test.doc_patch import launch_server_cmd + +# Start a new server session for tool choice examples +server_process_tool_choice, port_tool_choice = launch_server_cmd( + "python3 -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --tool-call-parser qwen25 --host 0.0.0.0 --log-level warning" +) +wait_for_server(f"http://localhost:{port_tool_choice}") + +# Initialize client for tool choice examples +client_tool_choice = OpenAI( + api_key="None", base_url=f"http://0.0.0.0:{port_tool_choice}/v1" +) +model_name_tool_choice = client_tool_choice.models.list().data[0].id + +# Example with tool_choice="required" - forces the model to call a tool +messages_required = [ + {"role": "user", "content": "Hello, what is the capital of France?"} +] + +# Define tools +tools = [ + { + "type": "function", + "function": { + "name": "get_current_weather", + "description": "Get the current weather in a given location", + "parameters": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "The city to find the weather for, e.g. 'San Francisco'", + }, + "unit": { + "type": "string", + "description": "The unit to fetch the temperature in", + "enum": ["celsius", "fahrenheit"], + }, + }, + "required": ["city", "unit"], + }, + }, + } +] + +response_required = client_tool_choice.chat.completions.create( + model=model_name_tool_choice, + messages=messages_required, + temperature=0, + max_tokens=1024, + tools=tools, + tool_choice="required", # Force the model to call a tool +) + +print_highlight("Response with tool_choice='required':") +print("Content:", response_required.choices[0].message.content) +print("Tool calls:", response_required.choices[0].message.tool_calls) +``` + +### Example: Specific Function Choice + + + + +```python Example +# Example with specific function choice - forces the model to call a specific function +messages_specific = [ + {"role": "user", "content": "What are the most attactive places in France?"} +] + +response_specific = client_tool_choice.chat.completions.create( + model=model_name_tool_choice, + messages=messages_specific, + temperature=0, + max_tokens=1024, + tools=tools, + tool_choice={ + "type": "function", + "function": {"name": "get_current_weather"}, + }, # Force the model to call the specific get_current_weather function +) + +print_highlight("Response with specific function choice:") +print("Content:", response_specific.choices[0].message.content) +print("Tool calls:", response_specific.choices[0].message.tool_calls) + +if response_specific.choices[0].message.tool_calls: + tool_call = response_specific.choices[0].message.tool_calls[0] + print_highlight(f"Called function: {tool_call.function.name}") + print_highlight(f"Arguments: {tool_call.function.arguments}") +``` + + +```python Example +terminate_process(server_process_tool_choice) +``` + +## Pythonic Tool Call Format (Llama-3.2 / Llama-3.3 / Llama-4) + +Some Llama models (such as Llama-3.2-1B, Llama-3.2-3B, Llama-3.3-70B, and Llama-4) support a "pythonic" tool call format, where the model outputs function calls as Python code, e.g.: + +```python Example +[get_current_weather(city="San Francisco", state="CA", unit="celsius")] +``` + +- The output is a Python list of function calls, with arguments as Python literals (not JSON). +- Multiple tool calls can be returned in the same list: +```python Example +[get_current_weather(city="San Francisco", state="CA", unit="celsius"), + get_current_weather(city="New York", state="NY", unit="fahrenheit")] +``` + +For more information, refer to Meta’s documentation on [Zero shot function calling](https://github.com/meta-llama/llama-models/blob/main/models/llama4/prompt_format.md#zero-shot-function-calling---system-message). + +Note that this feature is still under development on Blackwell. + +### How to enable +- Launch the server with `--tool-call-parser pythonic` +- You may also specify --chat-template with the improved template for the model (e.g., `--chat-template=examples/chat_template/tool_chat_template_llama4_pythonic.jinja`). +This is recommended because the model expects a special prompt format to reliably produce valid pythonic tool call outputs. The template ensures that the prompt structure (e.g., special tokens, message boundaries like `<|eom|>`, and function call delimiters) matches what the model was trained or fine-tuned on. If you do not use the correct chat template, tool calling may fail or produce inconsistent results. + +#### Forcing Pythonic Tool Call Output Without a Chat Template +If you don't want to specify a chat template, you must give the model extremely explicit instructions in your messages to enforce pythonic output. For example, for `Llama-3.2-1B-Instruct`, you need: + + + +```python Example +import openai + +server_process, port = launch_server_cmd( + " python3 -m sglang.launch_server --model-path meta-llama/Llama-3.2-1B-Instruct --tool-call-parser pythonic --tp 1 --log-level warning" # llama-3.2-1b-instruct +) +wait_for_server(f"http://localhost:{port}") + +tools = [ + { + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a given location.", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The name of the city or location.", + } + }, + "required": ["location"], + }, + }, + }, + { + "type": "function", + "function": { + "name": "get_tourist_attractions", + "description": "Get a list of top tourist attractions for a given city.", + "parameters": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "The name of the city to find attractions for.", + } + }, + "required": ["city"], + }, + }, + }, +] + + +def get_messages(): + return [ + { + "role": "system", + "content": ( + "You are a travel assistant. " + "When asked to call functions, ALWAYS respond ONLY with a python list of function calls, " + "using this format: [func_name1(param1=value1, param2=value2), func_name2(param=value)]. " + "Do NOT use JSON, do NOT use variables, do NOT use any other format. " + "Here is an example:\n" + '[get_weather(location="Paris"), get_tourist_attractions(city="Paris")]' + ), + }, + { + "role": "user", + "content": ( + "I'm planning a trip to Tokyo next week. What's the weather like and what are some top tourist attractions? " + "Propose parallel tool calls at once, using the python list of function calls format as shown above." + ), + }, + ] + + +messages = get_messages() + +client = openai.Client(base_url=f"http://localhost:{port}/v1", api_key="xxxxxx") +model_name = client.models.list().data[0].id + + +response_non_stream = client.chat.completions.create( + model=model_name, + messages=messages, + temperature=0, + top_p=0.9, + stream=False, # Non-streaming + tools=tools, +) +print_highlight("Non-stream response:") +print_highlight(response_non_stream) + +response_stream = client.chat.completions.create( + model=model_name, + messages=messages, + temperature=0, + top_p=0.9, + stream=True, + tools=tools, +) +texts = "" +tool_calls = [] +name = "" +arguments = "" + +for chunk in response_stream: + if chunk.choices[0].delta.content: + texts += chunk.choices[0].delta.content + if chunk.choices[0].delta.tool_calls: + tool_calls.append(chunk.choices[0].delta.tool_calls[0]) + +print_highlight("Streaming Response:") +print_highlight("==== Text ====") +print_highlight(texts) + +print_highlight("==== Tool Call ====") +for tool_call in tool_calls: + print_highlight(tool_call) + +terminate_process(server_process) +``` + +> **Note:** +> The model may still default to JSON if it was heavily finetuned on that format. Prompt engineering (including examples) is the only way to increase the chance of pythonic output if you are not using a chat template. + + +## How to support a new model? +1. Update the TOOLS_TAG_LIST in sglang/srt/function_call_parser.py with the model’s tool tags. Currently supported tags include: +```text Output + TOOLS_TAG_LIST = [ + “<|plugin|>“, + ““, + “<|python_tag|>“, + “[TOOL_CALLS]” + ] +``` +2. Create a new detector class in sglang/srt/function_call_parser.py that inherits from BaseFormatDetector. The detector should handle the model’s specific function call format. For example: +```text Output + class NewModelDetector(BaseFormatDetector): +``` +3. Add the new detector to the MultiFormatParser class that manages all the format detectors. diff --git a/docs_new/docs/advanced_features/vlm_query.ipynb b/docs_new/docs/advanced_features/vlm_query.ipynb new file mode 100644 index 000000000..13491d1b9 --- /dev/null +++ b/docs_new/docs/advanced_features/vlm_query.ipynb @@ -0,0 +1,388 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "metadata": {}, + "source": [ + "# Query VLM with Offline Engine\n", + "\n", + "This tutorial demonstrates how to use SGLang's **offline Engine API** to query VLMs. We will demonstrate usage with Qwen2.5-VL and Llama 4. This section demonstrates three different calling approaches:\n", + "\n", + "1. **Basic Call**: Directly pass images and text.\n", + "2. **Processor Output**: Use HuggingFace processor for data preprocessing.\n", + "3. **Precomputed Embeddings**: Pre-calculate image features to improve inference efficiency." + ] + }, + { + "cell_type": "markdown", + "id": "1", + "metadata": {}, + "source": [ + "## Understanding the Three Input Formats\n", + "\n", + "SGLang supports three ways to pass visual data, each optimized for different scenarios:\n", + "\n", + "### 1. **Raw Images** - Simplest approach\n", + "- Pass PIL Images, file paths, URLs, or base64 strings directly\n", + "- SGLang handles all preprocessing automatically\n", + "- Best for: Quick prototyping, simple applications\n", + "\n", + "### 2. **Processor Output** - For custom preprocessing\n", + "- Pre-process images with HuggingFace processor\n", + "- Pass the complete processor output dict with `format: \"processor_output\"`\n", + "- Best for: Custom image transformations, integration with existing pipelines\n", + "- Requirement: Must use `input_ids` instead of text prompt\n", + "\n", + "### 3. **Precomputed Embeddings** - For maximum performance\n", + "- Pre-calculate visual embeddings using the vision encoder\n", + "- Pass embeddings with `format: \"precomputed_embedding\"`\n", + "- Best for: Repeated queries on same images, caching, high-throughput serving\n", + "- Performance gain: Avoids redundant vision encoder computation (30-50% speedup)\n", + "\n", + "**Key Rule**: Within a single request, use only one format for all images. Don't mix formats.\n", + "\n", + "The examples below demonstrate all three approaches with both Qwen2.5-VL and Llama 4 models." + ] + }, + { + "cell_type": "markdown", + "id": "2", + "metadata": {}, + "source": [ + "## Querying Qwen2.5-VL Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", + "metadata": {}, + "outputs": [], + "source": [ + "import nest_asyncio\n", + "\n", + "nest_asyncio.apply()\n", + "\n", + "model_path = \"Qwen/Qwen2.5-VL-3B-Instruct\"\n", + "chat_template = \"qwen2-vl\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4", + "metadata": {}, + "outputs": [], + "source": [ + "from io import BytesIO\n", + "import requests\n", + "from PIL import Image\n", + "\n", + "from sglang.srt.parser.conversation import chat_templates\n", + "\n", + "image = Image.open(\n", + " BytesIO(\n", + " requests.get(\n", + " \"https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true\"\n", + " ).content\n", + " )\n", + ")\n", + "\n", + "conv = chat_templates[chat_template].copy()\n", + "conv.append_message(conv.roles[0], f\"What's shown here: {conv.image_token}?\")\n", + "conv.append_message(conv.roles[1], \"\")\n", + "conv.image_data = [image]\n", + "\n", + "print(\"Generated prompt text:\")\n", + "print(conv.get_prompt())\n", + "print(f\"\\nImage size: {image.size}\")\n", + "image" + ] + }, + { + "cell_type": "markdown", + "id": "5", + "metadata": {}, + "source": [ + "### Basic Offline Engine API Call" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6", + "metadata": {}, + "outputs": [], + "source": [ + "from sglang import Engine\n", + "\n", + "llm = Engine(model_path=model_path, chat_template=chat_template, log_level=\"warning\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "metadata": {}, + "outputs": [], + "source": [ + "out = llm.generate(prompt=conv.get_prompt(), image_data=[image])\n", + "print(\"Model response:\")\n", + "print(out[\"text\"])" + ] + }, + { + "cell_type": "markdown", + "id": "8", + "metadata": {}, + "source": [ + "### Call with Processor Output\n", + "\n", + "Using a HuggingFace processor to preprocess text and images, and passing the `processor_output` directly into `Engine.generate`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoProcessor\n", + "\n", + "processor = AutoProcessor.from_pretrained(model_path, use_fast=True)\n", + "processor_output = processor(\n", + " images=[image], text=conv.get_prompt(), return_tensors=\"pt\"\n", + ")\n", + "\n", + "out = llm.generate(\n", + " input_ids=processor_output[\"input_ids\"][0].detach().cpu().tolist(),\n", + " image_data=[dict(processor_output, format=\"processor_output\")],\n", + ")\n", + "print(\"Response using processor output:\")\n", + "print(out[\"text\"])" + ] + }, + { + "cell_type": "markdown", + "id": "10", + "metadata": {}, + "source": [ + "### Call with Precomputed Embeddings\n", + "\n", + "You can pre-calculate image features to avoid repeated visual encoding processes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoProcessor\n", + "from transformers import Qwen2_5_VLForConditionalGeneration\n", + "\n", + "processor = AutoProcessor.from_pretrained(model_path, use_fast=True)\n", + "vision = (\n", + " Qwen2_5_VLForConditionalGeneration.from_pretrained(model_path).eval().visual.cuda()\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "12", + "metadata": {}, + "outputs": [], + "source": [ + "processor_output = processor(\n", + " images=[image], text=conv.get_prompt(), return_tensors=\"pt\"\n", + ")\n", + "\n", + "input_ids = processor_output[\"input_ids\"][0].detach().cpu().tolist()\n", + "\n", + "precomputed_embeddings = vision(\n", + " processor_output[\"pixel_values\"].cuda(), processor_output[\"image_grid_thw\"].cuda()\n", + ")\n", + "\n", + "multi_modal_item = dict(\n", + " processor_output,\n", + " format=\"precomputed_embedding\",\n", + " feature=precomputed_embeddings,\n", + ")\n", + "\n", + "out = llm.generate(input_ids=input_ids, image_data=[multi_modal_item])\n", + "print(\"Response using precomputed embeddings:\")\n", + "print(out[\"text\"])\n", + "\n", + "llm.shutdown()" + ] + }, + { + "cell_type": "markdown", + "id": "13", + "metadata": {}, + "source": [ + "## Querying Llama 4 Vision Model\n", + "\n", + "```python\n", + "model_path = \"meta-llama/Llama-4-Scout-17B-16E-Instruct\"\n", + "chat_template = \"llama-4\"\n", + "\n", + "from io import BytesIO\n", + "import requests\n", + "from PIL import Image\n", + "\n", + "from sglang.srt.parser.conversation import chat_templates\n", + "\n", + "# Download the same example image\n", + "image = Image.open(\n", + " BytesIO(\n", + " requests.get(\n", + " \"https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true\"\n", + " ).content\n", + " )\n", + ")\n", + "\n", + "conv = chat_templates[chat_template].copy()\n", + "conv.append_message(conv.roles[0], f\"What's shown here: {conv.image_token}?\")\n", + "conv.append_message(conv.roles[1], \"\")\n", + "conv.image_data = [image]\n", + "\n", + "print(\"Llama 4 generated prompt text:\")\n", + "print(conv.get_prompt())\n", + "print(f\"Image size: {image.size}\")\n", + "\n", + "image\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "14", + "metadata": {}, + "source": [ + "### Llama 4 Basic Call\n", + "\n", + "Llama 4 requires more computational resources, so it's configured with multi-GPU parallelism (tp_size=4) and larger context length.\n", + "\n", + "```python\n", + "llm = Engine(\n", + " model_path=model_path,\n", + " enable_multimodal=True,\n", + " attention_backend=\"fa3\",\n", + " tp_size=4,\n", + " context_length=65536,\n", + ")\n", + "\n", + "out = llm.generate(prompt=conv.get_prompt(), image_data=[image])\n", + "print(\"Llama 4 response:\")\n", + "print(out[\"text\"])\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "15", + "metadata": {}, + "source": [ + "### Call with Processor Output\n", + "\n", + "Using HuggingFace processor to preprocess data can reduce computational overhead during inference.\n", + "\n", + "```python\n", + "from transformers import AutoProcessor\n", + "\n", + "processor = AutoProcessor.from_pretrained(model_path, use_fast=True)\n", + "processor_output = processor(\n", + " images=[image], text=conv.get_prompt(), return_tensors=\"pt\"\n", + ")\n", + "\n", + "out = llm.generate(\n", + " input_ids=processor_output[\"input_ids\"][0].detach().cpu().tolist(),\n", + " image_data=[dict(processor_output, format=\"processor_output\")],\n", + ")\n", + "print(\"Response using processor output:\")\n", + "print(out)\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "16", + "metadata": {}, + "source": [ + "### Call with Precomputed Embeddings\n", + "\n", + "```python\n", + "from transformers import AutoProcessor\n", + "from transformers import Llama4ForConditionalGeneration\n", + "\n", + "processor = AutoProcessor.from_pretrained(model_path, use_fast=True)\n", + "model = Llama4ForConditionalGeneration.from_pretrained(\n", + " model_path, torch_dtype=\"auto\"\n", + ").eval()\n", + "\n", + "vision = model.vision_model.cuda()\n", + "multi_modal_projector = model.multi_modal_projector.cuda()\n", + "\n", + "print(f'Image pixel values shape: {processor_output[\"pixel_values\"].shape}')\n", + "input_ids = processor_output[\"input_ids\"][0].detach().cpu().tolist()\n", + "\n", + "# Process image through vision encoder\n", + "image_outputs = vision(\n", + " processor_output[\"pixel_values\"].to(\"cuda\"), \n", + " aspect_ratio_ids=processor_output[\"aspect_ratio_ids\"].to(\"cuda\"),\n", + " aspect_ratio_mask=processor_output[\"aspect_ratio_mask\"].to(\"cuda\"),\n", + " output_hidden_states=False\n", + ")\n", + "image_features = image_outputs.last_hidden_state\n", + "\n", + "# Flatten image features and pass through multimodal projector\n", + "vision_flat = image_features.view(-1, image_features.size(-1))\n", + "precomputed_embeddings = multi_modal_projector(vision_flat)\n", + "\n", + "# Build precomputed embedding data item\n", + "mm_item = dict(\n", + " processor_output, \n", + " format=\"precomputed_embedding\", \n", + " feature=precomputed_embeddings\n", + ")\n", + "\n", + "# Use precomputed embeddings for efficient inference\n", + "out = llm.generate(input_ids=input_ids, image_data=[mm_item])\n", + "print(\"Llama 4 precomputed embedding response:\")\n", + "print(out[\"text\"])\n", + "```" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "custom_cell_magics": "kql", + "encoding": "# -*- coding: utf-8 -*-", + "text_representation": { + "extension": ".py", + "format_name": "light", + "format_version": "1.5", + "jupytext_version": "1.16.1" + } + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs_new/docs/advanced_features/vlm_query.mdx b/docs_new/docs/advanced_features/vlm_query.mdx new file mode 100644 index 000000000..47d8ff9a6 --- /dev/null +++ b/docs_new/docs/advanced_features/vlm_query.mdx @@ -0,0 +1,275 @@ +--- +title: "Query VLM with Offline Engine" +metatags: + description: "SGLang VLM offline engine: raw images, processor output, precomputed embeddings. Qwen2.5-VL and Llama 4 examples." +--- +This tutorial demonstrates how to use SGLang's **offline Engine API** to query VLMs. We will demonstrate usage with Qwen2.5-VL and Llama 4. This section demonstrates three different calling approaches: + +1. **Basic Call**: Directly pass images and text. +2. **Processor Output**: Use HuggingFace processor for data preprocessing. +3. **Precomputed Embeddings**: Pre-calculate image features to improve inference efficiency. + + +## Understanding the Three Input Formats + +SGLang supports three ways to pass visual data, each optimized for different scenarios: + +### 1. **Raw Images** - Simplest approach +- Pass PIL Images, file paths, URLs, or base64 strings directly +- SGLang handles all preprocessing automatically +- Best for: Quick prototyping, simple applications + +### 2. **Processor Output** - For custom preprocessing +- Pre-process images with HuggingFace processor +- Pass the complete processor output dict with `format: "processor_output"` +- Best for: Custom image transformations, integration with existing pipelines +- Requirement: Must use `input_ids` instead of text prompt + +### 3. **Precomputed Embeddings** - For maximum performance +- Pre-calculate visual embeddings using the vision encoder +- Pass embeddings with `format: "precomputed_embedding"` +- Best for: Repeated queries on same images, caching, high-throughput serving +- Performance gain: Avoids redundant vision encoder computation (30-50% speedup) + +**Key Rule**: Within a single request, use only one format for all images. Don't mix formats. + +The examples below demonstrate all three approaches with both Qwen2.5-VL and Llama 4 models. + + +## Querying Qwen2.5-VL Model + + + +```python Example +import nest_asyncio + +nest_asyncio.apply() + +model_path = "Qwen/Qwen2.5-VL-3B-Instruct" +chat_template = "qwen2-vl" +``` + + +```python Example +from io import BytesIO +import requests +from PIL import Image + +from sglang.srt.parser.conversation import chat_templates + +image = Image.open( + BytesIO( + requests.get( + "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true" + ).content + ) +) + +conv = chat_templates[chat_template].copy() +conv.append_message(conv.roles[0], f"What's shown here: {conv.image_token}?") +conv.append_message(conv.roles[1], "") +conv.image_data = [image] + +print("Generated prompt text:") +print(conv.get_prompt()) +print(f"\nImage size: {image.size}") +image +``` + +### Basic Offline Engine API Call + + + +```python Example +from sglang import Engine + + +llm = Engine(model_path=model_path, chat_template=chat_template, log_level="warning") +``` + + +```python Example +out = llm.generate(prompt=conv.get_prompt(), image_data=[image]) +print("Model response:") +print(out["text"]) +``` + +### Call with Processor Output + +Using a HuggingFace processor to preprocess text and images, and passing the `processor_output` directly into `Engine.generate`. + + + +```python Example +from transformers import AutoProcessor + +processor = AutoProcessor.from_pretrained(model_path, use_fast=True) +processor_output = processor( + images=[image], text=conv.get_prompt(), return_tensors="pt" +) + +out = llm.generate( + input_ids=processor_output["input_ids"][0].detach().cpu().tolist(), + image_data=[dict(processor_output, format="processor_output")], +) +print("Response using processor output:") +print(out["text"]) +``` + +### Call with Precomputed Embeddings + +You can pre-calculate image features to avoid repeated visual encoding processes. + + + +```python Example +from transformers import AutoProcessor +from transformers import Qwen2_5_VLForConditionalGeneration + +processor = AutoProcessor.from_pretrained(model_path, use_fast=True) +vision = ( + Qwen2_5_VLForConditionalGeneration.from_pretrained(model_path).eval().visual.cuda() +) +``` + + +```python Example +processor_output = processor( + images=[image], text=conv.get_prompt(), return_tensors="pt" +) + +input_ids = processor_output["input_ids"][0].detach().cpu().tolist() + +precomputed_embeddings = vision( + processor_output["pixel_values"].cuda(), processor_output["image_grid_thw"].cuda() +) + +multi_modal_item = dict( + processor_output, + format="precomputed_embedding", + feature=precomputed_embeddings, +) + +out = llm.generate(input_ids=input_ids, image_data=[multi_modal_item]) +print("Response using precomputed embeddings:") +print(out["text"]) + +llm.shutdown() +``` + +## Querying Llama 4 Vision Model + +```python Example +model_path = "meta-llama/Llama-4-Scout-17B-16E-Instruct" +chat_template = "llama-4" + +from io import BytesIO +import requests +from PIL import Image + +from sglang.srt.parser.conversation import chat_templates + +# Download the same example image +image = Image.open( + BytesIO( + requests.get( + "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true" + ).content + ) +) + +conv = chat_templates[chat_template].copy() +conv.append_message(conv.roles[0], f"What's shown here: {conv.image_token}?") +conv.append_message(conv.roles[1], "") +conv.image_data = [image] + +print("Llama 4 generated prompt text:") +print(conv.get_prompt()) +print(f"Image size: {image.size}") + +image +``` + + +### Llama 4 Basic Call + +Llama 4 requires more computational resources, so it's configured with multi-GPU parallelism (tp_size=4) and larger context length. + +```python Example +llm = Engine( + model_path=model_path, + enable_multimodal=True, + attention_backend="fa3", + tp_size=4, + context_length=65536, +) + +out = llm.generate(prompt=conv.get_prompt(), image_data=[image]) +print("Llama 4 response:") +print(out["text"]) +``` + + +### Call with Processor Output + +Using HuggingFace processor to preprocess data can reduce computational overhead during inference. + +```python Example +from transformers import AutoProcessor + +processor = AutoProcessor.from_pretrained(model_path, use_fast=True) +processor_output = processor( + images=[image], text=conv.get_prompt(), return_tensors="pt" +) + +out = llm.generate( + input_ids=processor_output["input_ids"][0].detach().cpu().tolist(), + image_data=[dict(processor_output, format="processor_output")], +) +print("Response using processor output:") +print(out) +``` + + +### Call with Precomputed Embeddings + +```python Example +from transformers import AutoProcessor +from transformers import Llama4ForConditionalGeneration + +processor = AutoProcessor.from_pretrained(model_path, use_fast=True) +model = Llama4ForConditionalGeneration.from_pretrained( + model_path, torch_dtype="auto" +).eval() + +vision = model.vision_model.cuda() +multi_modal_projector = model.multi_modal_projector.cuda() + +print(f'Image pixel values shape: {processor_output["pixel_values"].shape}') +input_ids = processor_output["input_ids"][0].detach().cpu().tolist() + +# Process image through vision encoder +image_outputs = vision( + processor_output["pixel_values"].to("cuda"), + aspect_ratio_ids=processor_output["aspect_ratio_ids"].to("cuda"), + aspect_ratio_mask=processor_output["aspect_ratio_mask"].to("cuda"), + output_hidden_states=False +) +image_features = image_outputs.last_hidden_state + +# Flatten image features and pass through multimodal projector +vision_flat = image_features.view(-1, image_features.size(-1)) +precomputed_embeddings = multi_modal_projector(vision_flat) + +# Build precomputed embedding data item +mm_item = dict( + processor_output, + format="precomputed_embedding", + feature=precomputed_embeddings +) + +# Use precomputed embeddings for efficient inference +out = llm.generate(input_ids=input_ids, image_data=[mm_item]) +print("Llama 4 precomputed embedding response:") +print(out["text"]) +``` diff --git a/docs_new/docs/basic_usage/deepseek_v3.mdx b/docs_new/docs/basic_usage/deepseek_v3.mdx new file mode 100644 index 000000000..78fd62d91 --- /dev/null +++ b/docs_new/docs/basic_usage/deepseek_v3.mdx @@ -0,0 +1,337 @@ +--- +title: "DeepSeek V3/V3.1/R1 Usage" +metatags: + description: "Deploy DeepSeek V3/R1 with SGLang: MLA optimization, FP8 quantization, multi-node TP, DP attention, MTP speculative decoding. Supports H200, B200, MI300X, A100." +--- +SGLang provides many optimizations specifically designed for the DeepSeek models, making it the inference engine recommended by the official [DeepSeek team](https://github.com/deepseek-ai/DeepSeek-V3/tree/main?tab=readme-ov-file#62-inference-with-sglang-recommended) from Day 0. + +This document outlines current optimizations for DeepSeek. +For an overview of the implemented features see the completed [Roadmap](https://github.com/sgl-project/sglang/issues/2591). + +## Launch DeepSeek V3.1/V3/R1 with SGLang + +To run DeepSeek V3.1/V3/R1 models, the recommended settings are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Weight TypeConfiguration
      **Full precision [FP8](https://huggingface.co/deepseek-ai/DeepSeek-R1-0528)** *(recommended)*8 x H200
      8 x B200
      8 x MI300X
      2 x 8 x H100/800/20
      Xeon 6980P CPU
      **Full precision ([BF16](https://huggingface.co/unsloth/DeepSeek-R1-0528-BF16))** (upcast from original FP8)2 x 8 x H200
      2 x 8 x MI300X
      4 x 8 x H100/800/20
      4 x 8 x A100/A800
      **Quantized weights ([INT8](https://huggingface.co/meituan/DeepSeek-R1-Channel-INT8))**16 x A100/800
      32 x L40S
      Xeon 6980P CPU
      4 x Atlas 800I A3
      **Quantized weights ([W4A8](https://huggingface.co/novita/Deepseek-R1-0528-W4AFP8))**8 x H20/100, 4 x H200
      **Quantized weights ([AWQ](https://huggingface.co/QuixiAI/DeepSeek-R1-0528-AWQ))**8 x H100/800/20
      8 x A100/A800
      **Quantized weights ([MXFP4](https://huggingface.co/amd/DeepSeek-R1-MXFP4-Preview))**8, 4 x MI355X/350X
      **Quantized weights ([NVFP4](https://huggingface.co/nvidia/DeepSeek-R1-0528-NVFP4-v2))**8, 4 x B200
      + + + +The official DeepSeek V3 is already in FP8 format, so you should not run it with any quantization arguments like `--quantization fp8`. + + +Detailed commands for reference: + +- [8 x H200](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#using-docker-recommended) +- [4 x B200, 8 x B200](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-one-b200-node) +- [8 x MI300X](../hardware-platforms/amd-gpus#running-deepseek-v3) +- [2 x 8 x H200](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-two-h208-nodes) +- [4 x 8 x A100](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-four-a1008-nodes) +- [8 x A100 (AWQ)](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-8-a100a800-with-awq-quantization) +- [16 x A100 (INT8)](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-16-a100a800-with-int8-quantization) +- [32 x L40S (INT8)](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-32-l40s-with-int8-quantization) +- [Xeon 6980P CPU](../hardware-platforms/cpu-server#example-running-deepseek-v31-terminus) +- [4 x Atlas 800I A3 (int8)](../hardware-platforms/ascend-npus/DeepSeek-Examples#running-deepseek-with-pd-disaggregation-on-4-x-atlas-800i-a3) + +### Download Weights +If you encounter errors when starting the server, ensure the weights have finished downloading. It's recommended to download them beforehand or restart multiple times until all weights are downloaded. Please refer to [DeepSeek V3](https://huggingface.co/deepseek-ai/DeepSeek-V3-Base#61-inference-with-deepseek-infer-demo-example-only) official guide to download the weights. + +### Launch with one node of 8 x H200 +Please refer to [the example](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#installation--launch). + +### Running examples on Multi-Node + +- [Deploying DeepSeek on GB200 NVL72 with PD and Large Scale EP](https://lmsys.org/blog/2025-06-16-gb200-part-1/) ([Part I](https://lmsys.org/blog/2025-06-16-gb200-part-1/), [Part II](https://lmsys.org/blog/2025-09-25-gb200-part-2/)) - Comprehensive guide on GB200 optimizations. + +- [Deploying DeepSeek with PD Disaggregation and Large-Scale Expert Parallelism on 96 H100 GPUs](https://lmsys.org/blog/2025-05-05-deepseek-pd-ep/) - Guide on PD disaggregation and large-scale EP. + +- [Serving with two H20*8 nodes](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-two-h208-nodes). + +- [Best Practices for Serving DeepSeek-R1 on H20](https://lmsys.org/blog/2025-09-26-sglang-ant-group/) - Comprehensive guide on H20 optimizations, deployment and performance. + +- [Serving with two H200*8 nodes and docker](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-two-h2008-nodes-and-docker). + +- [Serving with four A100*8 nodes](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-four-a1008-nodes). + +## Optimizations + +### Multi-head Latent Attention (MLA) Throughput Optimizations + +**Description**: [MLA](https://arxiv.org/pdf/2405.04434) is an innovative attention mechanism introduced by the DeepSeek team, aimed at improving inference efficiency. SGLang has implemented specific optimizations for this, including: + +- **Weight Absorption**: By applying the associative law of matrix multiplication to reorder computation steps, this method balances computation and memory access and improves efficiency in the decoding phase. + +- **MLA Attention Backends**: Currently SGLang supports different optimized MLA attention backends, including [FlashAttention3](https://github.com/Dao-AILab/flash-attention), [Flashinfer](https://docs.flashinfer.ai/api/attention.html#flashinfer-mla), [FlashMLA](https://github.com/deepseek-ai/FlashMLA), [CutlassMLA](https://github.com/sgl-project/sglang/pull/5390), **TRTLLM MLA** (optimized for Blackwell architecture), and [Triton](https://github.com/triton-lang/triton) backends. The default FA3 provides good performance across wide workloads. + +- **FP8 Quantization**: W8A8 FP8 and KV Cache FP8 quantization enables efficient FP8 inference. Additionally, we have implemented Batched Matrix Multiplication (BMM) operator to facilitate FP8 inference in MLA with weight absorption. + +- **CUDA Graph & Torch.compile**: Both MLA and Mixture of Experts (MoE) are compatible with CUDA Graph and Torch.compile, which reduces latency and accelerates decoding speed for small batch sizes. + +- **Chunked Prefix Cache**: Chunked prefix cache optimization can increase throughput by cutting prefix cache into chunks, processing them with multi-head attention and merging their states. Its improvement can be significant when doing chunked prefill on long sequences. Currently this optimization is only available for FlashAttention3 backend. + +Overall, with these optimizations, we have achieved up to **7x** acceleration in output throughput compared to the previous version. + + + Multi-head Latent Attention for DeepSeek Series Models + + +**Usage**: MLA optimization is enabled by default. + +**Reference**: Check [Blog](https://lmsys.org/blog/2024-09-04-sglang-v0-3/#deepseek-multi-head-latent-attention-mla-throughput-optimizations) and [Slides](https://github.com/sgl-project/sgl-learning-materials/blob/main/slides/lmsys_1st_meetup_deepseek_mla.pdf) for more details. + +### Data Parallelism Attention + +**Description**: This optimization involves data parallelism (DP) for the MLA attention mechanism of DeepSeek Series Models, which allows for a significant reduction in the KV cache size, enabling larger batch sizes. Each DP worker independently handles different types of batches (prefill, decode, idle), which are then synchronized before and after processing through the Mixture-of-Experts (MoE) layer. If you do not use DP attention, KV cache will be duplicated among all TP ranks. + + + Data Parallelism Attention for DeepSeek Series Models + + +With data parallelism attention enabled, we have achieved up to **1.9x** decoding throughput improvement compared to the previous version. + + + Data Parallelism Attention Performance Comparison + + +**Usage**: +- Append `--enable-dp-attention --tp 8 --dp 8` to the server arguments when using 8 H200 GPUs. This optimization improves peak throughput in high batch size scenarios where the server is limited by KV cache capacity. +- DP and TP attention can be flexibly combined. For example, to deploy DeepSeek-V3/R1 on 2 nodes with 8 H100 GPUs each, you can specify `--enable-dp-attention --tp 16 --dp 2`. This configuration runs attention with 2 DP groups, each containing 8 TP GPUs. + + +Data parallelism attention is not recommended for low-latency, small-batch use cases. It is optimized for high-throughput scenarios with large batch sizes. + + +**Reference**: Check [Blog](https://lmsys.org/blog/2024-12-04-sglang-v0-4/#data-parallelism-attention-for-deepseek-models). + +### Multi-Node Tensor Parallelism + +**Description**: For users with limited memory on a single node, SGLang supports serving DeepSeek Series Models, including DeepSeek V3, across multiple nodes using tensor parallelism. This approach partitions the model parameters across multiple GPUs or nodes to handle models that are too large for one node's memory. + +**Usage**: Check [here](https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3#example-serving-with-2-h208) for usage examples. + +### Block-wise FP8 + +**Description**: SGLang implements block-wise FP8 quantization with two key optimizations: + +- **Activation**: E4M3 format using per-token-per-128-channel sub-vector scales with online casting. + +- **Weight**: Per-128x128-block quantization for better numerical stability. + +- **DeepGEMM**: The [DeepGEMM](https://github.com/deepseek-ai/DeepGEMM) kernel library optimized for FP8 matrix multiplications. + +**Usage**: The activation and weight optimization above are turned on by default for DeepSeek V3 models. DeepGEMM is enabled by default on NVIDIA Hopper/Blackwell GPUs and disabled by default on other devices. DeepGEMM can also be manually turned off by setting the environment variable `SGLANG_ENABLE_JIT_DEEPGEMM=0`. + + +Before serving the DeepSeek model, precompile the DeepGEMM kernels to improve first-run performance. The precompilation process typically takes around 10 minutes to complete. + + +```bash Command +python3 -m sglang.compile_deep_gemm --model deepseek-ai/DeepSeek-V3 --tp 8 --trust-remote-code +``` + +### Multi-token Prediction +**Description**: SGLang implements DeepSeek V3 Multi-Token Prediction (MTP) based on [EAGLE speculative decoding](../advanced_features/speculative_decoding#EAGLE-Decoding). With this optimization, the decoding speed can be improved by **1.8x** for batch size 1 and **1.5x** for batch size 32 respectively on H200 TP8 setting. + +**Usage**: +Add `--speculative-algorithm EAGLE`. Other flags, like `--speculative-num-steps`, `--speculative-eagle-topk` and `--speculative-num-draft-tokens` are optional. For example: +```text Output +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3-0324 \ + --speculative-algorithm EAGLE \ + --trust-remote-code \ + --tp 8 +``` +- The default configuration for DeepSeek models is `--speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4`. The best configuration for `--speculative-num-steps`, `--speculative-eagle-topk` and `--speculative-num-draft-tokens` can be searched with [bench_speculative.py](https://github.com/sgl-project/sglang/blob/main/scripts/playground/bench_speculative.py) script for given batch size. The minimum configuration is `--speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2`, which can achieve speedup for larger batch sizes. +- Most MLA attention backends fully support MTP usage. See [MLA Backends](../advanced_features/attention_backend.md#mla-backends) for details. + + +To enable DeepSeek MTP for large batch sizes (>48), you need to adjust some parameters (Reference [this discussion](https://github.com/sgl-project/sglang/issues/4543#issuecomment-2737413756)): +- Adjust `--max-running-requests` to a larger number. The default value is `48` for MTP. For larger batch sizes, you should increase this value beyond the default value. +- Set `--cuda-graph-bs`. It's a list of batch sizes for cuda graph capture. The [default captured batch sizes for speculative decoding](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/server_args.py#L888-L895) is 48. You can customize this by including more batch sizes. + + + +To enable the experimental overlap scheduler for EAGLE speculative decoding, set the environment variable `SGLANG_ENABLE_SPEC_V2=1`. This can improve performance by enabling overlap scheduling between draft and verification stages. + + + +### Reasoning Content for DeepSeek R1 & V3.1 + +See [Reasoning Parser](../advanced_features/separate_reasoning) and [Thinking Parameter for DeepSeek V3.1](./openai_api_completions#Example:-DeepSeek-V3-Models). + + +### Function calling for DeepSeek Models + +Add arguments `--tool-call-parser deepseekv3` and `--chat-template ./examples/chat_template/tool_chat_template_deepseekv3.jinja`(recommended) to enable this feature. For example (running on 1 * H20 node): + +```text Output +python3 -m sglang.launch_server \ + --model deepseek-ai/DeepSeek-V3-0324 \ + --tp 8 \ + --port 30000 \ + --host 0.0.0.0 \ + --mem-fraction-static 0.9 \ + --tool-call-parser deepseekv3 \ + --chat-template ./examples/chat_template/tool_chat_template_deepseekv3.jinja +``` + +Sample Request: + +```text Output +curl "http://127.0.0.1:30000/v1/chat/completions" \ +-H "Content-Type: application/json" \ +-d '{"temperature": 0, "max_tokens": 100, "model": "deepseek-ai/DeepSeek-V3-0324", "tools": [{"type": "function", "function": {"name": "query_weather", "description": "Get weather of an city, the user should supply a city first", "parameters": {"type": "object", "properties": {"city": {"type": "string", "description": "The city, e.g. Beijing"}}, "required": ["city"]}}}], "messages": [{"role": "user", "content": "Hows the weather like in Qingdao today"}]}' +``` + +Expected Response + +```text Output +{"id":"6501ef8e2d874006bf555bc80cddc7c5","object":"chat.completion","created":1745993638,"model":"deepseek-ai/DeepSeek-V3-0324","choices":[{"index":0,"message":{"role":"assistant","content":null,"reasoning_content":null,"tool_calls":[{"id":"0","index":null,"type":"function","function":{"name":"query_weather","arguments":"{\"city\": \"Qingdao\"}"}}]},"logprobs":null,"finish_reason":"tool_calls","matched_stop":null}],"usage":{"prompt_tokens":116,"total_tokens":138,"completion_tokens":22,"prompt_tokens_details":null}} + +``` +Sample Streaming Request: +```text Output +curl "http://127.0.0.1:30000/v1/chat/completions" \ +-H "Content-Type: application/json" \ +-d '{"temperature": 0, "max_tokens": 100, "model": "deepseek-ai/DeepSeek-V3-0324","stream":true,"tools": [{"type": "function", "function": {"name": "query_weather", "description": "Get weather of an city, the user should supply a city first", "parameters": {"type": "object", "properties": {"city": {"type": "string", "description": "The city, e.g. Beijing"}}, "required": ["city"]}}}], "messages": [{"role": "user", "content": "Hows the weather like in Qingdao today"}]}' +``` +Expected Streamed Chunks (simplified for clarity): +```text Output +data: {"choices":[{"delta":{"tool_calls":[{"function":{"arguments":"{\""}}]}}]} +data: {"choices":[{"delta":{"tool_calls":[{"function":{"arguments":"city"}}]}}]} +data: {"choices":[{"delta":{"tool_calls":[{"function":{"arguments":"\":\""}}]}}]} +data: {"choices":[{"delta":{"tool_calls":[{"function":{"arguments":"Q"}}]}}]} +data: {"choices":[{"delta":{"tool_calls":[{"function":{"arguments":"ing"}}]}}]} +data: {"choices":[{"delta":{"tool_calls":[{"function":{"arguments":"dao"}}]}}]} +data: {"choices":[{"delta":{"tool_calls":[{"function":{"arguments":"\"}"}}]}}]} +data: {"choices":[{"delta":{"tool_calls":null}}], "finish_reason": "tool_calls"} +data: [DONE] +``` +The client needs to concatenate all arguments fragments to reconstruct the complete tool call: +```text Output +{"city": "Qingdao"} +``` + +1. Use a lower `"temperature"` value for better results. +2. To receive more consistent tool call results, it is recommended to use `--chat-template examples/chat_template/tool_chat_template_deepseekv3.jinja`. It provides an improved unified prompt. + + + +### Thinking Budget for DeepSeek R1 + +In SGLang, we can implement thinking budget with `CustomLogitProcessor`. + +Launch a server with `--enable-custom-logit-processor` flag on. + +```text Output +python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-R1 --tp 8 --port 30000 --host 0.0.0.0 --mem-fraction-static 0.9 --disable-cuda-graph --reasoning-parser deepseek-r1 --enable-custom-logit-processor +``` + +Sample Request: + + +```python Sample Request +import openai +from rich.pretty import pprint +from sglang.srt.sampling.custom_logit_processor import DeepSeekR1ThinkingBudgetLogitProcessor + + +client = openai.Client(base_url="http://127.0.0.1:30000/v1", api_key="*") +response = client.chat.completions.create( + model="deepseek-ai/DeepSeek-R1", + messages=[ + { + "role": "user", + "content": "Question: Is Paris the Capital of France?", + } + ], + max_tokens=1024, + extra_body={ + "custom_logit_processor": DeepSeekR1ThinkingBudgetLogitProcessor().to_str(), + "custom_params": { + "thinking_budget": 512, + }, + }, +) +pprint(response) +``` + + +## FAQ + +**Q: Model loading is taking too long, and I'm encountering an NCCL timeout. What should I do?** + +A: If you're experiencing extended model loading times and an NCCL timeout, you can try increasing the timeout duration. Add the argument `--dist-timeout 3600` when launching your model. This will set the timeout to one hour, which often resolves the issue. diff --git a/docs_new/docs/basic_usage/deepseek_v32.mdx b/docs_new/docs/basic_usage/deepseek_v32.mdx new file mode 100644 index 000000000..3a9b1643b --- /dev/null +++ b/docs_new/docs/basic_usage/deepseek_v32.mdx @@ -0,0 +1,575 @@ +--- +title: "DeepSeek V3.2 Usage" +metatags: + description: "Deploy DeepSeek V3.2 with SGLang: DeepSeek Sparse Attention (DSA), long-context optimization, MTP speculative decoding, function calling. Supports H200, B200, MI300X, MI350." +--- +DeepSeek-V3.2 model family equips DeepSeek-V3.1-Terminus with DeepSeek Sparse Attention (DSA) through continued training. With DSA, a fine-grained sparse attention mechanism powered by a lightning indexer, DeepSeek-V3.2 achieves efficiency improvements in long-context scenarios. + +For reporting issues or tracking upcoming features, please refer to this [Roadmap](https://github.com/sgl-project/sglang/issues/11060). + +Note: This document is originally written for the usage of [DeepSeek-V3.2-Exp](https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Exp) model. The usage of [DeepSeek-V3.2](https://huggingface.co/deepseek-ai/DeepSeek-V3.2) or [DeepSeek-V3.2-Speciale](https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Speciale) is the same as DeepSeek-V3.2-Exp except for the tool call parser. + + +## Installation + +### Docker + +```bash Command +# H200/B200 +docker pull lmsysorg/sglang:latest + +# MI350/MI355 +docker pull lmsysorg/sglang:v0.5.8-rocm700-mi35x + +# MI300 +# v0.5.8-rocm700-mi30x does not include PR #17504. Prefer the newest MI30x ROCm +# image tag from Docker Hub when available, or build from source (below). +docker pull lmsysorg/sglang:v0.5.8-rocm700-mi30x + + +# NPUs +docker pull lmsysorg/sglang:dsv32-a2 +docker pull lmsysorg/sglang:dsv32-a3 +``` + +### Build From Source + +```bash Command +# Install SGLang +git clone https://github.com/sgl-project/sglang +cd sglang +pip3 install pip --upgrade +pip3 install -e "python" +``` +## Launch DeepSeek V3.2 with SGLang + +To serve [DeepSeek-V3.2-Exp](https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Exp) on 8xH200/B200 GPUs: + +```bash Command +# Launch with TP + DP (Recommended) +python -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 --dp 8 --enable-dp-attention + +# Launch with EP + DP +python -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 --ep 8 --dp 8 --enable-dp-attention + +# Launch with Pure TP +python -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 + +# Launch with TP on MI30x/MI35x +python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 --nsa-prefill-backend tilelang --nsa-decode-backend tilelang +``` + +### Configuration Tips +- **DP Attention (Recommended)**: For DeepSeek V3.2 model, the kernels are customized for the use case of `dp_size=8`, so DP attention (`--dp 8 --enable-dp-attention`) is the recommended configuration for better stability and performance. All test cases use this configuration by default. +- **Pure TP Mode**: Launching with pure TP (without `--dp` and `--enable-dp-attention`) is also supported. Note that this mode has not been fully validated in PD disaggregation scenarios. +- **Short-sequence MHA prefill (adaptive)**: For short prefill sequences (default threshold: **2048 tokens**), the NSA backend uses standard MHA automatically (no extra flags). On H200 (SM90) this path uses the FlashAttention variable-length kernel; on B200 (SM100) it uses TRT-LLM ragged MHA. MHA uses `MHA_ONE_SHOT` for best performance. `MHA_ONE_SHOT` computes multi-head attention over all tokens (both cached prefix and newly extended tokens) in a single kernel invocation, avoiding the overhead of chunked KV cache processing. This achieves optimal throughput for short sequences where total sequence length fits within the chunk capacity limit. +- **Choices of Attention Kernels**: The attention backend is automatically set to `nsa` attention backend for DeepSeek V3.2 model. In this backend, different kernels for sparse prefilling/decoding are implemented, which can be specified by `--nsa-prefill-backend` and `--nsa-decode-backend` server arguments. The choices of nsa prefill/decode attention kernels include: + - `flashmla_sparse`: `flash_mla_sparse_fwd` kernel from `flash_mla` library. Can run on both Hopper and Blackwell GPUs. It requires bf16 q, kv inputs. + - `flashmla_kv`: `flash_mla_with_kvcache` kernel from `flash_mla` library. Can run on both Hopper and Blackwell GPUs. It requires bf16 q, fp8 k_cache inputs. + - `fa3`: `flash_attn_with_kvcache` kernel from `flash_attn` library. Can only run on Hopper GPUs. It requires bf16 q, kv inputs. + - `tilelang`: `tilelang` implementation that can run on GPU, HPU and NPU. + - `aiter`: Aiter kernel on AMD HPUs. Can only be used as decode kernel. +- On the basis of performance benchmarks, the default configuration on H200 and B200 are set as follows : + - H200: `flashmla_sparse` prefill attention (short-seq prefill uses MHA via FlashAttention varlen), `fa3` decode attention, `bf16` kv cache dtype. + - B200: `flashmla_auto` prefill attention (short-seq prefill uses MHA via TRT-LLM ragged), `flashmla_kv` decode attention, `fp8_e4m3` kv cache dtype. `flashmla_auto` enables automatic selection of either `flashmla_sparse` or `flashmla_kv` kernel for prefill based on KV cache dtype, hardware, and heuristics. When FP8 KV cache is enabled and `total_kv_tokens < total_q_tokens * 512`, it uses the `flashmla_sparse` kernel; otherwise, it falls back to the `flashmla_kv` kernel. The heuristics may need to be tuned if the performance of either the `flashmla_sparse` or `flashmla_kv` kernel changes significantly. + +## Multi-token Prediction +SGLang implements Multi-Token Prediction (MTP) for DeepSeek V3.2 based on [EAGLE speculative decoding](../advanced_features/speculative_decoding#EAGLE-Decoding). With this optimization, the decoding speed can be improved significantly on small batch sizes. Please look at [this PR](https://github.com/sgl-project/sglang/pull/11652) for more information. + +Example usage with DP Attention: +```bash Command +python -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 --dp 8 --enable-dp-attention --speculative-algorithm EAGLE --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 +``` + +Example usage with Pure TP: +```bash Command +python -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 --speculative-algorithm EAGLE --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 +``` + +- The best configuration for `--speculative-num-steps`, `--speculative-eagle-topk` and `--speculative-num-draft-tokens` can be searched with [bench_speculative.py](https://github.com/sgl-project/sglang/blob/main/scripts/playground/bench_speculative.py) script for given batch size. The minimum configuration is `--speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2`, which can achieve speedup for larger batch sizes. +- The default value of `--max-running-requests` is set to `48` for MTP. For larger batch sizes, this value should be increased beyond the default value. + + +To enable the experimental overlap scheduler for EAGLE speculative decoding, set the environment variable `SGLANG_ENABLE_SPEC_V2=1`. This can improve performance by enabling overlap scheduling between draft and verification stages. + + + +## Function Calling and Reasoning Parser +The usage of function calling and reasoning parser is the same as DeepSeek V3.1. Please refer to [Reasoning Parser](../advanced_features/separate_reasoning) and [Tool Parser](../advanced_features/tool_parser) documents. + +To launch `DeepSeek-V3.2-Exp` with function calling and reasoning parser: + +It is recommended to specify the chat-template, ensuring that you are within the sglang's root directory. + + +```bash Command +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.2-Exp \ + --trust-remote-code \ + --tp-size 8 --dp-size 8 --enable-dp-attention \ + --tool-call-parser deepseekv31 \ + --reasoning-parser deepseek-v3 \ + --chat-template ./examples/chat_template/tool_chat_template_deepseekv32.jinja +``` + +To launch `DeepSeek-V3.2` with function calling and reasoning parser: +```bash Command +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.2 \ + --trust-remote-code \ + --tp-size 8 --dp-size 8 --enable-dp-attention \ + --tool-call-parser deepseekv32 \ + --reasoning-parser deepseek-v3 +``` + +`DeepSeek-V3.2-Speciale` doesn't support tool calling, so can only be launched with reasoning parser: +```bash Command +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.2-Speciale \ + --trust-remote-code \ + --tp-size 8 --dp-size 8 --enable-dp-attention \ + --reasoning-parser deepseek-v3 +``` + + +## PD Disaggregation + +Prefill Command: +```bash Command +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.2-Exp \ + --disaggregation-mode prefill \ + --host $LOCAL_IP \ + --port $PORT \ + --tp 8 \ + --dp 8 \ + --enable-dp-attention \ + --dist-init-addr ${HOST}:${DIST_PORT} \ + --trust-remote-code \ + --disaggregation-bootstrap-port 8998 \ + --mem-fraction-static 0.9 \ +``` + +Decode command: +```bash Command +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.2-Exp \ + --disaggregation-mode decode \ + --host $LOCAL_IP \ + --port $PORT \ + --tp 8 \ + --dp 8 \ + --enable-dp-attention \ + --dist-init-addr ${HOST}:${DIST_PORT} \ + --trust-remote-code \ + --mem-fraction-static 0.9 \ +``` + +Router command: +```bash Command +python -m sglang_router.launch_router --pd-disaggregation \ + --prefill $PREFILL_ADDR 8998 \ + --decode $DECODE_ADDR \ + --host 127.0.0.1 \ + --port 8000 \ +``` + +If you need more advanced deployment methods or production-ready deployment methods, such as RBG or LWS-based deployment, please refer to [references/multi_node_deployment/rbg_pd/deepseekv32_pd](../references/multi_node_deployment/rbg_pd/deepseekv32_pd). Additionally, you can also find startup commands for DeepEP-based EP parallelism in the aforementioned documentation. + + +## Benchmarking Results + +### Accuracy Test with `gsm8k` +A simple accuracy benchmark can be tested with `gsm8k` dataset: +```bash Command +python3 benchmark/gsm8k/bench_sglang.py --num-shots 8 --num-questions 1319 --parallel 1319 +``` + +The result is 0.956, which matches our expectation: +```bash Command +Accuracy: 0.956 +Invalid: 0.000 +Latency: 25.109 s +Output throughput: 5226.235 token/s +``` + +To test long-context accuracy, run gsm8k with `--num-shots 20`. The results are very close to the 8 shots results: +```text Output +Accuracy: 0.956 +Invalid: 0.000 +Latency: 29.545 s +Output throughput: 4418.617 token/s +``` + + +### Accuracy Test with `gpqa-diamond` + +Accuracy benchmark on long context can be tested on GPQA-diamond dataset with long output tokens and thinking enabled: +```bash Command +python3 -m sglang.test.run_eval --port 30000 --eval-name gpqa --num-examples 198 --max-tokens 128000 --repeat 8 --thinking-mode deepseek-v3 +``` + +The mean accuracy over 8 runs shows 0.797, which matches the number 0.799 in official tech report. +```bash Command +Repeat: 8, mean: 0.797 +Scores: ['0.808', '0.798', '0.808', '0.798', '0.783', '0.788', '0.803', '0.793'] +``` + +For Deepseek V3.2, Deepseek recommends setting the sampling parameters to temperature = 1.0, top_p = 0.95: + +```bash Command +python3 -m sglang.test.run_eval --port 30000 --eval-name gpqa --num-examples 198 --max-tokens 128000 --repeat 8 --top-p 0.95 --temperature 1.0 --thinking-mode deepseek-v3 + +Repeat: 8, mean: 0.840 +Scores: ['0.848', '0.808', '0.848', '0.838', '0.879', '0.813', '0.838', '0.848'] +``` +which matches the official score, 0.824, as reported in the [Deepseek-V3.2 technical report](https://huggingface.co/deepseek-ai/DeepSeek-V3.2/blob/main/assets/paper.pdf). + +### Accuracy Test with `aime 2025` + +Prepare the environment by installing NeMo-Skills in the docker or your own virtual environment: + + ```text Output + pip install git+https://github.com/NVIDIA/NeMo-Skills.git --ignore-installed blinker + ``` + +Then launch the SGLang server: +```text Output +python -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 --dp 8 --enable-dp-attention +``` + +**For `DeepSeek-V3.2` and `DeepSeek-V3.2-Speciale`**: + +```text Output +python3 -m sglang.launch_server --model-path deepseek-ai/DeepSeek-V3.2 --trust-remote-code --tp-size 8 --dp-size 8 --enable-dp-attention --tool-call-parser deepseekv32 --reasoning-parser deepseek-v3 +``` + +Run the following script to evaluate AIME 2025: +```text Output +#! /bin/bash +export NEMO_SKILLS_DISABLE_UNCOMMITTED_CHANGES_CHECK=1 + +ns prepare_data aime25 + +PORT=30000 +BACKEND=sglang +MODEL="deepseek-ai/DeepSeek-V3.2-Exp" # Should be changed to the model name +MODEL_NAME="dsv32-fp8" + +echo "Starting AIME25 evaluation with model $MODEL on port $PORT using backend $BACKEND..." +ns eval \ + --benchmarks=aime25:4 \ + --server_type=$BACKEND \ + --model=$MODEL \ + --server_address=http://localhost:${PORT}/v1 \ + --output_dir=nemo_skills_aime25_${MODEL_NAME}_output_${BACKEND}_$(date +%Y%m%d_%H%M%S) \ + ++chat_template_kwargs.thinking=true \ + ++inference.temperature=1.0 \ + ++inference.top_p=0.95 \ + ++inference.tokens_to_generate=64000 + # ++inference.tokens_to_generate=120000 for Speciale model +``` + +Test results (8*B200): + +DeepSeek-V3.2-Exp: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      evaluation_modenum_entriesavg_tokensgen_secondssymbolic_correctno_answer
      pass@1[avg-of-4]3015040167387.50% ± 1.67%0.00%
      majority@43015040167390.00%0.00%
      pass@43015040167390.00%0.00%
      + + +DeepSeek-V3.2: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      evaluation_modenum_entriesavg_tokensgen_secondssymbolic_correctno_answer
      pass@1[avg-of-4]3013550163292.50% ± 1.67%0.00%
      majority@43013550163294.71%0.00%
      pass@43013550163296.67%0.00%
      + + +DeepSeek-V3.2-Speciale: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      evaluation_modenum_entriesavg_tokensgen_secondssymbolic_correctno_answer
      pass@1[avg-of-4]3024155358395.00% ± 1.92%0.00%
      majority@43024155358395.83%0.00%
      pass@430241553583100.00%0.00%
      + + + +## DSA long sequence context parallel optimization(experimental) + +**Note: This feature is only verified on Hopper machines** + +For context parallel in DeepSeek V3.2 model, we provide two different modes of splitting tokens, which can be controlled with argument `--nsa-prefill-cp-mode`. + +### In sequence splitting (default setting) + +The first mode can be enabled by `--nsa-prefill-cp-mode in-seq-split`. This mode implements context parallel for DSA by splitting the sequence uniformly between context parallel ranks. At attention stage, each cp rank computes the indexer results of sharded sequence, and collects the whole kv cache through all gather operator. + +The communication group for context parallel reuses the one for attention tp, thus `cp_size` equals `atten_tp_size = tp_size / dp_size`. + +Note that in sequence splitting mode has the following restrictions: +- The batch size is restricted to 1 for prefill batches +- Multi-node/PD disaggregation is still not supported +- `moe_dense_tp_size=1`, `kv_cache_dtype = "bf16"`, `moe_a2a_backend = "deepep"` +- To ensure `cp_size > 1`, the passed in `tp_size` must be larger than `dp_size` + +For more details, please refer to PR https://github.com/sgl-project/sglang/pull/12065. + +Example: +```bash Command +# In-seq splitting mode launched with EP + DP +python -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 --ep 8 --dp 2 --enable-dp-attention --enable-nsa-prefill-context-parallel --nsa-prefill-cp-mode in-seq-split --max-running-requests 32 +``` + +### Round robin splitting + +This mode can be enabled by specifying the parameter `--nsa-prefill-cp-mode round-robin-split`, which distributes tokens across ranks based on `token_idx % cp_size`. + +In this scenario, compared with the aforementioned method, it additionally supports the fused MoE backend (the fused MoE backend may deliver better performance than DeepEP in single-machine scenarios), FP8 KV-cache, and multi-batch prefill inference. But it cannot be enabled with dp attention together. + +For more details, please refer to PR https://github.com/sgl-project/sglang/pull/13959. + +Example usage: +```bash Command +# Launch with FusedMoe + CP8 +python -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 --enable-nsa-prefill-context-parallel --nsa-prefill-cp-mode round-robin-split --max-running-requests 32 +``` +### Pipeline Parallel + Context Parallel (PP + CP) + +This mode combines Pipeline Parallelism (PP) and Context Parallelism (CP) to scale across multiple nodes, which can achieve better throughput and Time To First Token (TTFT). Note that this method has only been tested on H20 96G. + +#### Standard Usage + +To launch with PP=2 and CP (via `round-robin-split` mode) on 2 nodes. This configuration uses the fused MoE kernel by default, which generally provides better performance. + +For related development details, please refer to: +- Fused MoE + CP support: [PR #13959](https://github.com/sgl-project/sglang/pull/13959) +- PP + CP support: [Issue #15358](https://github.com/sgl-project/sglang/issues/15358) and [PR #16380](https://github.com/sgl-project/sglang/pull/16380) + +Node 0: +```bash Command +export SGLANG_PP_LAYER_PARTITION=30,31 +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.2-Exp \ + --nnodes 2 --node-rank 0 \ + --dist-init-addr :62001 \ + --tp 8 --pp-size 2 \ + --dp-size 1 --moe-dense-tp-size 1 \ + --enable-nsa-prefill-context-parallel \ + --nsa-prefill-cp-mode round-robin-split \ + --trust-remote-code \ + --disable-radix-cache \ + --mem-fraction-static 0.8 \ + --max-running-requests 128 \ + --chunked-prefill-size 16384 \ + --cuda-graph-max-bs 8 \ + --page-size 64 \ + --watchdog-timeout 3600 \ + --host 0.0.0.0 --port 8000 \ + --tool-call-parser deepseekv32 +``` + +Node 1: +```bash Command +export SGLANG_PP_LAYER_PARTITION=30,31 +python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.2-Exp \ + --nnodes 2 --node-rank 1 \ + --dist-init-addr :62001 \ + --tp 8 --pp-size 2 \ + --dp-size 1 --moe-dense-tp-size 1 \ + --enable-nsa-prefill-context-parallel \ + --nsa-prefill-cp-mode round-robin-split \ + --trust-remote-code \ + --disable-radix-cache \ + --mem-fraction-static 0.8 \ + --max-running-requests 128 \ + --chunked-prefill-size 16384 \ + --cuda-graph-max-bs 8 \ + --page-size 64 \ + --watchdog-timeout 3600 \ + --host 0.0.0.0 --port 8000 \ + --tool-call-parser deepseekv32 +``` + +#### PD Disaggregation with PP + CP + +If using PD (Prefill-Decode) Disaggregation, the Prefill nodes can be configured with PP + CP as follows. + +Prefill Node 0: +```bash Command +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.2-Exp \ + --served-model-name deepseek-v32 \ + --nnodes 2 --node-rank 0 \ + --dist-init-addr :20102 \ + --tp 8 --pp-size 2 \ + --dp-size 1 --moe-dense-tp-size 1 \ + --enable-nsa-prefill-context-parallel \ + --nsa-prefill-cp-mode round-robin-split \ + --disaggregation-ib-device mlx5_bond_0,mlx5_bond_1,mlx5_bond_2,mlx5_bond_3 \ + --trust-remote-code \ + --disable-radix-cache \ + --max-running-requests 512 \ + --chunked-prefill-size 4096 \ + --context-length 131072 \ + --mem-fraction-static 0.9 \ + --page-size 64 \ + --enable-metrics \ + --collect-tokens-histogram \ + --tokenizer-worker-num 8 \ + --host 0.0.0.0 --port 30000 +``` + +Prefill Node 1: +```bash Command +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3.2-Exp \ + --served-model-name deepseek-v32-prefill \ + --nnodes 2 --node-rank 1 \ + --dist-init-addr :20102 \ + --tp 8 --pp-size 2 \ + --dp-size 1 --moe-dense-tp-size 1 \ + --enable-nsa-prefill-context-parallel \ + --nsa-prefill-cp-mode round-robin-split \ + --disaggregation-ib-device mlx5_bond_0,mlx5_bond_1,mlx5_bond_2,mlx5_bond_3 \ + --trust-remote-code \ + --disable-radix-cache \ + --max-running-requests 512 \ + --chunked-prefill-size 4096 \ + --context-length 131072 \ + --mem-fraction-static 0.9 \ + --page-size 64 \ + --enable-metrics \ + --collect-tokens-histogram \ + --tokenizer-worker-num 8 \ + --host 0.0.0.0 --port 30000 +``` + +For the Decode nodes, it is recommended to use the **EP mode**. diff --git a/docs_new/docs/basic_usage/glm45.mdx b/docs_new/docs/basic_usage/glm45.mdx new file mode 100644 index 000000000..8ccb41492 --- /dev/null +++ b/docs_new/docs/basic_usage/glm45.mdx @@ -0,0 +1,76 @@ +--- +title: "Launch GLM-4.5 / GLM-4.6 / GLM-4.7 with SGLang" +metatags: + description: "Deploy GLM-4.5/4.6/4.7 models with SGLang: FP8 inference, EAGLE speculative decoding, function calling support. Optimized for H100/H200 GPUs." +--- + +## Launch GLM-4.5 / GLM-4.6 / GLM-4.7 with SGLang + +To serve GLM-4.5 / GLM-4.6 FP8 models on 8xH100/H200 GPUs: + +```bash Command +python3 -m sglang.launch_server --model zai-org/GLM-4.6-FP8 --tp 8 +``` + +### EAGLE Speculative Decoding + +**Description**: SGLang has supported GLM-4.5 / GLM-4.6 models +with [EAGLE speculative decoding](../advanced_features/speculative_decoding#EAGLE-Decoding). + +**Usage**: +Add arguments `--speculative-algorithm`, `--speculative-num-steps`, `--speculative-eagle-topk` and +`--speculative-num-draft-tokens` to enable this feature. For example: + +```bash Command +python3 -m sglang.launch_server \ + --model-path zai-org/GLM-4.6-FP8 \ + --tp-size 8 \ + --tool-call-parser glm45 \ + --reasoning-parser glm45 \ + --speculative-algorithm EAGLE \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --mem-fraction-static 0.9 \ + --served-model-name glm-4.6-fp8 \ + --enable-custom-logit-processor +``` + + +To enable the experimental overlap scheduler for EAGLE speculative decoding, set the environment variable `SGLANG_ENABLE_SPEC_V2=1`. This can improve performance by enabling overlap scheduling between draft and verification stages. + + +### Thinking Budget for GLM-4.5 / GLM-4.6 +**Note**: For GLM-4.7, `--tool-call-parser` should be set to `glm47`, for GLM-4.5 and GLM-4.6, it should be set to `glm45`. + +In SGLang, we can implement thinking budget with `CustomLogitProcessor`. + +Launch a server with `--enable-custom-logit-processor` flag on. + +Sample Request: + +```python Example +import openai +from rich.pretty import pprint +from sglang.srt.sampling.custom_logit_processor import Glm4MoeThinkingBudgetLogitProcessor + + +client = openai.Client(base_url="http://127.0.0.1:30000/v1", api_key="*") +response = client.chat.completions.create( + model="zai-org/GLM-4.6", + messages=[ + { + "role": "user", + "content": "Question: Is Paris the Capital of France?", + } + ], + max_tokens=1024, + extra_body={ + "custom_logit_processor": Glm4MoeThinkingBudgetLogitProcessor().to_str(), + "custom_params": { + "thinking_budget": 512, + }, + }, +) +pprint(response) +``` diff --git a/docs_new/docs/basic_usage/glmv.mdx b/docs_new/docs/basic_usage/glmv.mdx new file mode 100644 index 000000000..0427a4ad0 --- /dev/null +++ b/docs_new/docs/basic_usage/glmv.mdx @@ -0,0 +1,139 @@ +--- +title: "GLM-4.6V / GLM-4.5V Usage" +metatags: + description: "Deploy GLM-4.6V/4.5V vision models with SGLang: FP8 and BF16 modes, expert parallelism, video understanding. Supports H100, H200, A100 GPUs." +--- +## Launch commands for SGLang + +Below are suggested launch commands tailored for different hardware / precision modes + +### FP8 (quantised) mode + +For high memory-efficiency and latency optimized deployments (e.g., on H100, H200) where FP8 checkpoint is supported: + +```bash Command +python3 -m sglang.launch_server \ + --model-path zai-org/GLM-4.6V-FP8 \ + --tp 2 \ + --ep 2 \ + --host 0.0.0.0 \ + --port 30000 \ + --keep-mm-feature-on-device +``` + +### Non-FP8 (BF16 / full precision) mode +For deployments on A100/H100 where BF16 is used (or FP8 snapshot not used): +```bash Command +python3 -m sglang.launch_server \ + --model-path zai-org/GLM-4.6V \ + --tp 4 \ + --ep 4 \ + --host 0.0.0.0 \ + --port 30000 +``` + +## Hardware-specific notes / recommendations + +- On H100 with FP8: Use the FP8 checkpoint for best memory efficiency. +- On A100 / H100 with BF16 (non-FP8): It’s recommended to use `--mm-max-concurrent-calls` to control parallel throughput and GPU memory usage during image/video inference. +- On H200 & B200: The model can be run “out of the box”, supporting full context length plus concurrent image + video processing. + +## Sending Image/Video Requests + +### Image input: + +```python Example +import requests + +url = f"http://localhost:30000/v1/chat/completions" + +data = { + "model": "zai-org/GLM-4.6V", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": "What’s in this image?"}, + { + "type": "image_url", + "image_url": { + "url": "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true" + }, + }, + ], + } + ], + "max_tokens": 300, +} + +response = requests.post(url, json=data) +print(response.text) +``` + +### Video Input: + +```python Example +import requests + +url = f"http://localhost:30000/v1/chat/completions" + +data = { + "model": "zai-org/GLM-4.6V", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": "What’s happening in this video?"}, + { + "type": "video_url", + "video_url": { + "url": "https://github.com/sgl-project/sgl-test-files/raw/refs/heads/main/videos/jobs_presenting_ipod.mp4" + }, + }, + ], + } + ], + "max_tokens": 300, +} + +response = requests.post(url, json=data) +print(response.text) +``` + +## Important Server Parameters and Flags + +When launching the model server for **multimodal support**, you can use the following command-line arguments to fine-tune performance and behavior: + +- `--mm-attention-backend`: Specify multimodal attention backend. Eg. `fa3`(Flash Attention 3) +- `--mm-max-concurrent-calls `: Specifies the **maximum number of concurrent asynchronous multimodal data processing calls** allowed on the server. Use this to control parallel throughput and GPU memory usage during image/video inference. +- `--mm-per-request-timeout `: Defines the **timeout duration (in seconds)** for each multimodal request. If a request exceeds this time limit (e.g., for very large video inputs), it will be automatically terminated. +- `--keep-mm-feature-on-device`: Instructs the server to **retain multimodal feature tensors on the GPU** after processing. This avoids device-to-host (D2H) memory copies and improves performance for repeated or high-frequency inference workloads. +- `--mm-enable-dp-encoder`: Placing the ViT in data parallel while keeping the LLM in tensor parallel consistently lowers TTFT and boosts end-to-end throughput. +- `SGLANG_USE_CUDA_IPC_TRANSPORT=1`: Shared memory pool based CUDA IPC for multi-modal data transport. For significantly improving e2e latency. + +### Example usage with the above optimizations: +```bash Command +SGLANG_USE_CUDA_IPC_TRANSPORT=1 \ +SGLANG_VLM_CACHE_SIZE_MB=0 \ +python -m sglang.launch_server \ + --model-path zai-org/GLM-4.6V \ + --host 0.0.0.0 \ + --port 30000 \ + --trust-remote-code \ + --tp-size 8 \ + --enable-cache-report \ + --log-level info \ + --max-running-requests 64 \ + --mem-fraction-static 0.65 \ + --chunked-prefill-size 8192 \ + --attention-backend fa3 \ + --mm-attention-backend fa3 \ + --mm-enable-dp-encoder \ + --enable-metrics +``` + +### Thinking Budget for GLM-4.5V / GLM-4.6V + +In SGLang, we can implement thinking budget with `CustomLogitProcessor`. + +Launch a server with `--enable-custom-logit-processor` flag on. and using `Glm4MoeThinkingBudgetLogitProcessor` in the request likes `GLM-4.6` example in [glm45](./glm45). diff --git a/docs_new/docs/basic_usage/gpt_oss.mdx b/docs_new/docs/basic_usage/gpt_oss.mdx new file mode 100644 index 000000000..25c656e91 --- /dev/null +++ b/docs_new/docs/basic_usage/gpt_oss.mdx @@ -0,0 +1,181 @@ +--- +title: "GPT OSS Usage" +metatags: + description: "Deploy GPT-OSS with SGLang: OpenAI Responses API compatible, built-in tools for web search and Python execution, reasoning levels, MCP tool server support." +--- +Please refer to [#8833](https://github.com/sgl-project/sglang/issues/8833). + +## Responses API & Built-in Tools + +### Responses API + +GPT‑OSS is compatible with the OpenAI Responses API. Use `client.responses.create(...)` with `model`, `instructions`, `input`, and optional `tools` to enable built‑in tool use. You can set reasoning level via `instructions`, e.g., "Reasoning: high" (also supports "medium" and "low") — levels: low (fast), medium (balanced), high (deep). + +### Built-in Tools + +GPT‑OSS can call built‑in tools for web search and Python execution. You can use the demo tool server or connect to external MCP tool servers. + +#### Python Tool + +- Executes short Python snippets for calculations, parsing, and quick scripts. +- By default runs in a Docker-based sandbox. To run on the host, set `PYTHON_EXECUTION_BACKEND=UV` (this executes model-generated code locally; use with care). +- Ensure Docker is available if you are not using the UV backend. It is recommended to run `docker pull python:3.11` in advance. + +#### Web Search Tool + +- Uses the Exa backend for web search. +- Requires an Exa API key; set `EXA_API_KEY` in your environment. Create a key at `https://exa.ai`. + +### Tool & Reasoning Parser + +- We support OpenAI Reasoning and Tool Call parser, as well as our SGLang native api for tool call and reasoning. Refer to [reasoning parser](../advanced_features/separate_reasoning) and [tool call parser](../advanced_features/tool_parser) for more details. + + +## Notes + +- Use **Python 3.12** for the demo tools. And install the required `gpt-oss` packages. +- The default demo integrates the web search tool (Exa backend) and a demo Python interpreter via Docker. +- For search, set `EXA_API_KEY`. For Python execution, either have Docker available or set `PYTHON_EXECUTION_BACKEND=UV`. + +Examples: +```bash Command +export EXA_API_KEY=YOUR_EXA_KEY +# Optional: run Python tool locally instead of Docker (use with care) +export PYTHON_EXECUTION_BACKEND=UV +``` + +Launch the server with the demo tool server: + +```bash Command +python3 -m sglang.launch_server \ + --model-path openai/gpt-oss-120b \ + --tool-server demo \ + --tp 2 +``` + +For production usage, sglang can act as an MCP client for multiple services. An [example tool server](https://github.com/openai/gpt-oss/tree/main/gpt-oss-mcp-server) is provided. Start the servers and point sglang to them: +```bash Command +mcp run -t sse browser_server.py:mcp +mcp run -t sse python_server.py:mcp + +python -m sglang.launch_server ... --tool-server ip-1:port-1,ip-2:port-2 +``` +The URLs should be MCP SSE servers that expose server information and well-documented tools. These tools are added to the system prompt so the model can use them. + +## Speculative Decoding + +SGLang supports speculative decoding for GPT-OSS models using EAGLE3 algorithm. This can significantly improve decoding speed, especially for small batch sizes. + +**Usage**: +Add `--speculative-algorithm EAGLE3` along with the draft model path. +```bash Command +python3 -m sglang.launch_server \ + --model-path openai/gpt-oss-120b \ + --speculative-algorithm EAGLE3 \ + --speculative-draft-model-path lmsys/EAGLE3-gpt-oss-120b-bf16 \ + --tp 2 +``` + + +To enable the experimental overlap scheduler for EAGLE3 speculative decoding, set the environment variable `SGLANG_ENABLE_SPEC_V2=1`. This can improve performance by enabling overlap scheduling between draft and verification stages. + + +### Quick Demo + +```python Example +from openai import OpenAI + +client = OpenAI( + base_url="http://localhost:30000/v1", + api_key="sk-123456" +) + +tools = [ + {"type": "code_interpreter"}, + {"type": "web_search_preview"}, +] + +# Reasoning level example +response = client.responses.create( + model="openai/gpt-oss-120b", + instructions="You are a helpful assistant." + reasoning_effort="high" # Supports high, medium, or low + input="In one sentence, explain the transformer architecture.", +) +print("====== reasoning: high ======") +print(response.output_text) + +# Test python tool +response = client.responses.create( + model="openai/gpt-oss-120b", + instructions="You are a helfpul assistant, you could use python tool to execute code.", + input="Use python tool to calculate the sum of 29138749187 and 29138749187", # 58,277,498,374 + tools=tools +) +print("====== test python tool ======") +print(response.output_text) + +# Test browser tool +response = client.responses.create( + model="openai/gpt-oss-120b", + instructions="You are a helfpul assistant, you could use browser to search the web", + input="Search the web for the latest news about Nvidia stock price", + tools=tools +) +print("====== test browser tool ======") +print(response.output_text) +``` + +Example output: +```text Output +====== test python tool ====== +The sum of 29,138,749,187 and 29,138,749,187 is **58,277,498,374**. +====== test browser tool ====== +**Recent headlines on Nvidia (NVDA) stock** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Date (2025)SourceKey news pointsStock‑price detail
      **May 13**ReutersThe market data page shows Nvidia trading “higher” at **$116.61** with no change from the previous close.**$116.61** – latest trade (delayed ≈ 15 min)【14†L34-L38】
      **Aug 18**CNBCMorgan Stanley kept an **overweight** rating and lifted its price target to **$206** (up from $200), implying a 14 % upside from the Friday close. The firm notes Nvidia shares have already **jumped 34 % this year**.No exact price quoted, but the article signals strong upside expectations【9†L27-L31】
      **Aug 20**The Motley FoolNvidia is set to release its Q2 earnings on Aug 27. The article lists the **current price of $175.36**, down 0.16 % on the day (as of 3:58 p.m. ET).**$175.36** – current price on Aug 20【10†L12-L15】【10†L53-L57】
      + +**What the news tells us** + +* Nvidia’s share price has risen sharply this year – up roughly a third according to Morgan Stanley – and analysts are still raising targets (now $206). +* The most recent market quote (Reuters, May 13) was **$116.61**, but the stock has surged since then, reaching **$175.36** by mid‑August. +* Upcoming earnings on **Aug 27** are a focal point; both the Motley Fool and Morgan Stanley expect the results could keep the rally going. + +**Bottom line:** Nvidia’s stock is on a strong upward trajectory in 2025, with price targets climbing toward $200‑$210 and the market price already near $175 as of late August. + +``` diff --git a/docs_new/docs/basic_usage/kimi_k2_5.mdx b/docs_new/docs/basic_usage/kimi_k2_5.mdx new file mode 100644 index 000000000..d87920198 --- /dev/null +++ b/docs_new/docs/basic_usage/kimi_k2_5.mdx @@ -0,0 +1,106 @@ +--- +title: "Kimi-K2.5 Usage" +metatags: + description: "Deploy Kimi-K2.5 with SGLang: 1T-parameter multimodal MoE model, 256K context, MLA attention, MoonViT vision encoder, thinking and instant modes, tool calling support." +--- +[Kimi-K2.5](https://huggingface.co/moonshotai/Kimi-K2.5) is Moonshot AI's open-source, native multimodal, agentic MoE. It is a 1T-parameter model (32B active) with 256K context, MLA attention, and a MoonViT vision encoder, supporting both thinking and instant modes. + +In SGLang, Kimi-K2.5 uses the `kimi_k2` reasoning and tool-call parsers for correct thinking and tool handling. + +```{note} Example +Kimi-K2.5 support is in SGLang main and will land in the next release. Use the latest main or a nightly image until then. +``` + +Official deployment guide: [Kimi-K2.5 deployment guide](https://huggingface.co/moonshotai/Kimi-K2.5/blob/main/docs/deploy_guidance) + +## Install (Latest Main) + +```bash Command +uv pip install "sglang @ git+https://github.com/sgl-project/sglang.git#subdirectory=python" +# For CUDA 12: +uv pip install "nvidia-cudnn-cu12==9.16.0.29" +# For CUDA 13: +uv pip install "nvidia-cudnn-cu13==9.16.0.29" +``` + +## Launch Kimi-K2.5 with SGLang + +Example: single node, TP8 on H200. + +```bash Command +python3 -m sglang.launch_server \ + --model-path moonshotai/Kimi-K2.5 \ + --tp 8 \ + --trust-remote-code \ + --tool-call-parser kimi_k2 \ + --reasoning-parser kimi_k2 +``` + +### Parser Requirements + +- `--tool-call-parser kimi_k2`: Required for tool calling. +- `--reasoning-parser kimi_k2`: Required to parse thinking content; thinking mode is enabled by default. + +## Test the Deployment + +Thinking mode is enabled by default. To disable thinking (instant mode), pass `extra_body.chat_template_kwargs.thinking=false`. + +```bash Command +# Thinking mode (default) +curl http://localhost:30000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "moonshotai/Kimi-K2.5", + "messages": [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Explain mixture-of-experts in one sentence."} + ], + "max_tokens": 256 + }' +``` + +```bash Command +# Instant mode (thinking disabled) +curl http://localhost:30000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "moonshotai/Kimi-K2.5", + "messages": [ + {"role": "user", "content": "Give one sentence on MoE models."} + ], + "max_tokens": 128, + "extra_body": {"chat_template_kwargs": {"thinking": false}} + }' +``` + +## Multimodal Inputs (Image/Video) + +Kimi-K2.5 is multimodal. Image inputs are supported via the OpenAI-compatible vision API. For more details, see `openai_api_vision.ipynb`. + +```bash Command +# Image input (SGLang) +curl http://localhost:30000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "moonshotai/Kimi-K2.5", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": "Describe this image."}, + { + "type": "image_url", + "image_url": { + "url": "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true" + } + } + ] + } + ], + "max_tokens": 256 + }' +``` + + +Video chat is experimental and is only supported in the official Moonshot API for now. + diff --git a/docs_new/docs/basic_usage/llama4.mdx b/docs_new/docs/basic_usage/llama4.mdx new file mode 100644 index 000000000..c68ea27c7 --- /dev/null +++ b/docs_new/docs/basic_usage/llama4.mdx @@ -0,0 +1,117 @@ +--- +title: "Llama4 Usage" +metatags: + description: "Deploy Llama 4 Scout (109B) and Maverick (400B) with SGLang: up to 10M context, hybrid KV cache, vision support. Optimized for H100/H200 GPUs." +--- +[Llama 4](https://github.com/meta-llama/llama-models/blob/main/models/llama4/MODEL_CARD) is Meta's latest generation of open-source LLM model with industry-leading performance. + +SGLang has supported Llama 4 Scout (109B) and Llama 4 Maverick (400B) since [v0.4.5](https://github.com/sgl-project/sglang/releases/tag/v0.4.5). + +Ongoing optimizations are tracked in the [Roadmap](https://github.com/sgl-project/sglang/issues/5118). + +## Launch Llama 4 with SGLang + +To serve Llama 4 models on 8xH100/H200 GPUs: + +```bash Command +python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-4-Scout-17B-16E-Instruct \ + --tp 8 \ + --context-length 1000000 +``` + +### Configuration Tips + +- **OOM Mitigation**: Adjust `--context-length` to avoid a GPU out-of-memory issue. For the Scout model, we recommend setting this value up to 1M on 8\*H100 and up to 2.5M on 8\*H200. For the Maverick model, we don't need to set context length on 8\*H200. When hybrid kv cache is enabled, `--context-length` can be set up to 5M on 8\*H100 and up to 10M on 8\*H200 for the Scout model. + +- **Attention Backend Auto-Selection**: SGLang automatically selects the optimal attention backend for Llama 4 based on your hardware. You typically don't need to specify `--attention-backend` manually: + - **Blackwell GPUs (B200/GB200)**: `trtllm_mha` + - **Hopper GPUs (H100/H200)**: `fa3` + - **AMD GPUs**: `aiter` + - **Intel XPU**: `intel_xpu` + - **Other platforms**: `triton` (fallback) + + To override the auto-selection, explicitly specify `--attention-backend` with one of the supported backends: `fa3`, `aiter`, `triton`, `trtllm_mha`, or `intel_xpu`. + +- **Chat Template**: Add `--chat-template llama-4` for chat completion tasks. +- **Enable Multi-Modal**: Add `--enable-multimodal` for multi-modal capabilities. +- **Enable Hybrid-KVCache**: Set `--swa-full-tokens-ratio` to adjust the ratio of SWA layer (for Llama4, it's local attention layer) KV tokens / full layer KV tokens. (default: 0.8, range: 0-1) + + +### EAGLE Speculative Decoding +**Description**: SGLang has supported Llama 4 Maverick (400B) with [EAGLE speculative decoding](../advanced_features/speculative_decoding#EAGLE-Decoding). + +**Usage**: +Add arguments `--speculative-draft-model-path`, `--speculative-algorithm`, `--speculative-num-steps`, `--speculative-eagle-topk` and `--speculative-num-draft-tokens` to enable this feature. For example: +```text Output +python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-4-Maverick-17B-128E-Instruct \ + --speculative-algorithm EAGLE3 \ + --speculative-draft-model-path nvidia/Llama-4-Maverick-17B-128E-Eagle3 \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --trust-remote-code \ + --tp 8 \ + --context-length 1000000 +``` + +- **Note** The Llama 4 draft model *nvidia/Llama-4-Maverick-17B-128E-Eagle3* can only recognize conversations in chat mode. + +## Benchmarking Results + +### Accuracy Test with `lm_eval` + +The accuracy on SGLang for both Llama4 Scout and Llama4 Maverick can match the [official benchmark numbers](https://ai.meta.com/blog/llama-4-multimodal-intelligence/). + +Benchmark results on MMLU Pro dataset with 8*H100: + + + + + + + + + + + + + + + + + + + + + + + + + +
      Llama-4-Scout-17B-16E-InstructLlama-4-Maverick-17B-128E-Instruct
      Official Benchmark74.380.5
      SGLang75.280.7
      + +Commands: + +```bash Command +# Llama-4-Scout-17B-16E-Instruct model +python -m sglang.launch_server \ + --model-path meta-llama/Llama-4-Scout-17B-16E-Instruct \ + --port 30000 \ + --tp 8 \ + --mem-fraction-static 0.8 \ + --context-length 65536 +lm_eval --model local-chat-completions --model_args model=meta-llama/Llama-4-Scout-17B-16E-Instruct,base_url=http://localhost:30000/v1/chat/completions,num_concurrent=128,timeout=999999,max_gen_toks=2048 --tasks mmlu_pro --batch_size 128 --apply_chat_template --num_fewshot 0 + +# Llama-4-Maverick-17B-128E-Instruct +python -m sglang.launch_server \ + --model-path meta-llama/Llama-4-Maverick-17B-128E-Instruct \ + --port 30000 \ + --tp 8 \ + --mem-fraction-static 0.8 \ + --context-length 65536 +lm_eval --model local-chat-completions --model_args model=meta-llama/Llama-4-Maverick-17B-128E-Instruct,base_url=http://localhost:30000/v1/chat/completions,num_concurrent=128,timeout=999999,max_gen_toks=2048 --tasks mmlu_pro --batch_size 128 --apply_chat_template --num_fewshot 0 +``` + +Details can be seen in [this PR](https://github.com/sgl-project/sglang/pull/5092). diff --git a/docs_new/docs/basic_usage/minimax_m2.mdx b/docs_new/docs/basic_usage/minimax_m2.mdx new file mode 100644 index 000000000..14da7051d --- /dev/null +++ b/docs_new/docs/basic_usage/minimax_m2.mdx @@ -0,0 +1,69 @@ +--- +title: "MiniMax M2.1/M2 Usage" +metatags: + description: "Deploy MiniMax M2.1/M2 with SGLang: 230B MoE model (10B active), up to 3M context, optimized for coding and agentic tasks, tool use support." +--- +[MiniMax-M2.1](https://huggingface.co/MiniMaxAI/MiniMax-M2.1) and [MiniMax-M2](https://huggingface.co/MiniMaxAI/MiniMax-M2) are advanced large language models created by [MiniMax](https://www.minimax.io/). + +MiniMax-M2 series redefines efficiency for agents. It's a compact, fast, and cost-effective MoE model (230 billion total parameters with 10 billion active parameters) built for elite performance in coding and agentic tasks, all while maintaining powerful general intelligence. With just 10 billion activated parameters, MiniMax-M2 provides the sophisticated, end-to-end tool use performance expected from today's leading models, but in a streamlined form factor that makes deployment and scaling easier than ever. + +## Supported Models + +This guide applies to the following models. You only need to update the model name during deployment. The following examples use **MiniMax-M2**: + +- [MiniMaxAI/MiniMax-M2.1](https://huggingface.co/MiniMaxAI/MiniMax-M2.1) +- [MiniMaxAI/MiniMax-M2](https://huggingface.co/MiniMaxAI/MiniMax-M2) + +## System Requirements + +The following are recommended configurations; actual requirements should be adjusted based on your use case: + +- 4x 96GB GPUs: Supported context length of up to 400K tokens. +- 8x 144GB GPUs: Supported context length of up to 3M tokens. + +## Deployment with Python + +4-GPU deployment command: + +```bash Command +python -m sglang.launch_server \ + --model-path MiniMaxAI/MiniMax-M2 \ + --tp-size 4 \ + --tool-call-parser minimax-m2 \ + --reasoning-parser minimax-append-think \ + --host 0.0.0.0 \ + --trust-remote-code \ + --port 8000 \ + --mem-fraction-static 0.85 +``` + +8-GPU deployment command: + +```bash Command +python -m sglang.launch_server \ + --model-path MiniMaxAI/MiniMax-M2 \ + --tp-size 8 \ + --ep-size 8 \ + --tool-call-parser minimax-m2 \ + --reasoning-parser minimax-append-think \ + --host 0.0.0.0 \ + --trust-remote-code \ + --port 8000 \ + --mem-fraction-static 0.85 +``` + +## Testing Deployment + +After startup, you can test the SGLang OpenAI-compatible API with the following command: + +```bash Command +curl http://localhost:8000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "MiniMaxAI/MiniMax-M2", + "messages": [ + {"role": "system", "content": [{"type": "text", "text": "You are a helpful assistant."}]}, + {"role": "user", "content": [{"type": "text", "text": "Who won the world series in 2020?"}]} + ] + }' +``` diff --git a/docs_new/docs/basic_usage/native_api.ipynb b/docs_new/docs/basic_usage/native_api.ipynb new file mode 100644 index 000000000..59ac6ee3a --- /dev/null +++ b/docs_new/docs/basic_usage/native_api.ipynb @@ -0,0 +1,667 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SGLang Native APIs\n", + "\n", + "Apart from the OpenAI compatible APIs, the SGLang Runtime also provides its native server APIs. We introduce the following APIs:\n", + "\n", + "- `/generate` (text generation model)\n", + "- `/get_model_info`\n", + "- `/get_server_info`\n", + "- `/health`\n", + "- `/health_generate`\n", + "- `/flush_cache`\n", + "- `/update_weights`\n", + "- `/encode`(embedding model)\n", + "- `/v1/rerank`(cross encoder rerank model)\n", + "- `/v1/score`(decoder-only scoring)\n", + "- `/classify`(reward model)\n", + "- `/start_expert_distribution_record`\n", + "- `/stop_expert_distribution_record`\n", + "- `/dump_expert_distribution_record`\n", + "- `/tokenize`\n", + "- `/detokenize`\n", + "- A full list of these APIs can be found at [http_server.py](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/entrypoints/http_server.py)\n", + "\n", + "We mainly use `requests` to test these APIs in the following examples. You can also use `curl`.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch A Server" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "\n", + "server_process, port = launch_server_cmd(\n", + " \"python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct --host 0.0.0.0 --log-level warning\"\n", + ")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate (text generation model)\n", + "Generate completions. This is similar to the `/v1/completions` in OpenAI API. Detailed parameters can be found in the [sampling parameters](sampling_params)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "\n", + "url = f\"http://localhost:{port}/generate\"\n", + "data = {\"text\": \"What is the capital of France?\"}\n", + "\n", + "response = requests.post(url, json=data)\n", + "print_highlight(response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get Model Info\n", + "\n", + "Get the information of the model.\n", + "\n", + "- `model_path`: The path/name of the model.\n", + "- `is_generation`: Whether the model is used as generation model or embedding model.\n", + "- `tokenizer_path`: The path/name of the tokenizer.\n", + "- `preferred_sampling_params`: The default sampling params specified via `--preferred-sampling-params`. `None` is returned in this example as we did not explicitly configure it in server args.\n", + "- `weight_version`: This field contains the version of the model weights. This is often used to track changes or updates to the model’s trained parameters.\n", + "- `has_image_understanding`: Whether the model has image-understanding capability.\n", + "- `has_audio_understanding`: Whether the model has audio-understanding capability.\n", + "- `model_type`: The model type from the HuggingFace config (e.g., \"qwen2\", \"llama\").\n", + "- `architectures`: The model architectures from the HuggingFace config (e.g., [\"Qwen2ForCausalLM\"])." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://localhost:{port}/get_model_info\"\n", + "\n", + "response = requests.get(url)\n", + "response_json = response.json()\n", + "print_highlight(response_json)\n", + "assert response_json[\"model_path\"] == \"qwen/qwen2.5-0.5b-instruct\"\n", + "assert response_json[\"is_generation\"] is True\n", + "assert response_json[\"tokenizer_path\"] == \"qwen/qwen2.5-0.5b-instruct\"\n", + "assert response_json[\"preferred_sampling_params\"] is None\n", + "assert response_json.keys() == {\n", + " \"model_path\",\n", + " \"is_generation\",\n", + " \"tokenizer_path\",\n", + " \"preferred_sampling_params\",\n", + " \"weight_version\",\n", + " \"has_image_understanding\",\n", + " \"has_audio_understanding\",\n", + " \"model_type\",\n", + " \"architectures\",\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get Server Info\n", + "Gets the server information including CLI arguments, token limits, and memory pool sizes.\n", + "- Note: `get_server_info` merges the following deprecated endpoints:\n", + " - `get_server_args`\n", + " - `get_memory_pool_size`\n", + " - `get_max_total_num_tokens`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://localhost:{port}/get_server_info\"\n", + "\n", + "response = requests.get(url)\n", + "print_highlight(response.text)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Health Check\n", + "- `/health`: Check the health of the server.\n", + "- `/health_generate`: Check the health of the server by generating one token." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://localhost:{port}/health_generate\"\n", + "\n", + "response = requests.get(url)\n", + "print_highlight(response.text)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://localhost:{port}/health\"\n", + "\n", + "response = requests.get(url)\n", + "print_highlight(response.text)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Flush Cache\n", + "\n", + "Flush the radix cache. It will be automatically triggered when the model weights are updated by the `/update_weights` API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "url = f\"http://localhost:{port}/flush_cache\"\n", + "\n", + "response = requests.post(url)\n", + "print_highlight(response.text)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Update Weights From Disk\n", + "\n", + "Update model weights from disk without restarting the server. Only applicable for models with the same architecture and parameter size.\n", + "\n", + "SGLang support `update_weights_from_disk` API for continuous evaluation during training (save checkpoint to disk and update weights from disk).\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# successful update with same architecture and size\n", + "\n", + "url = f\"http://localhost:{port}/update_weights_from_disk\"\n", + "data = {\"model_path\": \"qwen/qwen2.5-0.5b-instruct\"}\n", + "\n", + "response = requests.post(url, json=data)\n", + "print_highlight(response.text)\n", + "assert response.json()[\"success\"] is True\n", + "assert response.json()[\"message\"] == \"Succeeded to update model weights.\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# failed update with different parameter size or wrong name\n", + "\n", + "url = f\"http://localhost:{port}/update_weights_from_disk\"\n", + "data = {\"model_path\": \"qwen/qwen2.5-0.5b-instruct-wrong\"}\n", + "\n", + "response = requests.post(url, json=data)\n", + "response_json = response.json()\n", + "print_highlight(response_json)\n", + "assert response_json[\"success\"] is False\n", + "assert response_json[\"message\"] == (\n", + " \"Failed to get weights iterator: \"\n", + " \"qwen/qwen2.5-0.5b-instruct-wrong\"\n", + " \" (repository not found).\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Encode (embedding model)\n", + "\n", + "Encode text into embeddings. Note that this API is only available for [embedding models](openai_api_embeddings) and will raise an error for generation models.\n", + "Therefore, we launch a new server to server an embedding model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "embedding_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model-path Alibaba-NLP/gte-Qwen2-1.5B-instruct \\\n", + " --host 0.0.0.0 --is-embedding --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# successful encode for embedding model\n", + "\n", + "url = f\"http://localhost:{port}/encode\"\n", + "data = {\"model\": \"Alibaba-NLP/gte-Qwen2-1.5B-instruct\", \"text\": \"Once upon a time\"}\n", + "\n", + "response = requests.post(url, json=data)\n", + "response_json = response.json()\n", + "print_highlight(f\"Text embedding (first 10): {response_json['embedding'][:10]}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(embedding_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## v1/rerank (cross encoder rerank model)\n", + "Rerank a list of documents given a query using a cross-encoder model. Note that this API is only available for cross encoder model like [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) with `attention-backend` `triton` and `torch_native`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "reranker_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model-path BAAI/bge-reranker-v2-m3 \\\n", + " --host 0.0.0.0 --disable-radix-cache --chunked-prefill-size -1 --attention-backend triton --is-embedding --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# compute rerank scores for query and documents\n", + "\n", + "url = f\"http://localhost:{port}/v1/rerank\"\n", + "data = {\n", + " \"model\": \"BAAI/bge-reranker-v2-m3\",\n", + " \"query\": \"what is panda?\",\n", + " \"documents\": [\n", + " \"hi\",\n", + " \"The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.\",\n", + " ],\n", + "}\n", + "\n", + "response = requests.post(url, json=data)\n", + "response_json = response.json()\n", + "for item in response_json:\n", + " print_highlight(f\"Score: {item['score']:.2f} - Document: '{item['document']}'\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(reranker_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## v1/score (decoder-only scoring)\n", + "\n", + "Compute token probabilities for specified tokens given a query and items. This is useful for classification tasks, scoring responses, or computing log-probabilities.\n", + "\n", + "Parameters:\n", + "- `query`: Query text\n", + "- `items`: Item text(s) to score\n", + "- `label_token_ids`: Token IDs to compute probabilities for\n", + "- `apply_softmax`: Whether to apply softmax to get normalized probabilities (default: False)\n", + "- `item_first`: Whether items come first in concatenation order (default: False)\n", + "- `model`: Model name\n", + "\n", + "The response contains `scores` - a list of probability lists, one per item, each in the order of `label_token_ids`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "score_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct \\\n", + " --host 0.0.0.0 --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Score the probability of different completions given a query\n", + "query = \"The capital of France is\"\n", + "items = [\"Paris\", \"London\", \"Berlin\"]\n", + "\n", + "url = f\"http://localhost:{port}/v1/score\"\n", + "data = {\n", + " \"model\": \"qwen/qwen2.5-0.5b-instruct\",\n", + " \"query\": query,\n", + " \"items\": items,\n", + " \"label_token_ids\": [9454, 2753], # e.g. \"Yes\" and \"No\" token ids\n", + " \"apply_softmax\": True, # Normalize probabilities to sum to 1\n", + "}\n", + "\n", + "response = requests.post(url, json=data)\n", + "response_json = response.json()\n", + "\n", + "# Display scores for each item\n", + "for item, scores in zip(items, response_json[\"scores\"]):\n", + " print_highlight(f\"Item '{item}': probabilities = {[f'{s:.4f}' for s in scores]}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(score_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Classify (reward model)\n", + "\n", + "SGLang Runtime also supports reward models. Here we use a reward model to classify the quality of pairwise generations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Note that SGLang now treats embedding models and reward models as the same type of models.\n", + "# This will be updated in the future.\n", + "\n", + "reward_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model-path Skywork/Skywork-Reward-Llama-3.1-8B-v0.2 --host 0.0.0.0 --is-embedding --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoTokenizer\n", + "\n", + "PROMPT = (\n", + " \"What is the range of the numeric output of a sigmoid node in a neural network?\"\n", + ")\n", + "\n", + "RESPONSE1 = \"The output of a sigmoid node is bounded between -1 and 1.\"\n", + "RESPONSE2 = \"The output of a sigmoid node is bounded between 0 and 1.\"\n", + "\n", + "CONVS = [\n", + " [{\"role\": \"user\", \"content\": PROMPT}, {\"role\": \"assistant\", \"content\": RESPONSE1}],\n", + " [{\"role\": \"user\", \"content\": PROMPT}, {\"role\": \"assistant\", \"content\": RESPONSE2}],\n", + "]\n", + "\n", + "tokenizer = AutoTokenizer.from_pretrained(\"Skywork/Skywork-Reward-Llama-3.1-8B-v0.2\")\n", + "prompts = tokenizer.apply_chat_template(CONVS, tokenize=False, return_dict=False)\n", + "\n", + "url = f\"http://localhost:{port}/classify\"\n", + "data = {\"model\": \"Skywork/Skywork-Reward-Llama-3.1-8B-v0.2\", \"text\": prompts}\n", + "\n", + "responses = requests.post(url, json=data).json()\n", + "for response in responses:\n", + " print_highlight(f\"reward: {response['embedding'][0]}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(reward_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Capture expert selection distribution in MoE models\n", + "\n", + "SGLang Runtime supports recording the number of times an expert is selected in a MoE model run for each expert in the model. This is useful when analyzing the throughput of the model and plan for optimization.\n", + "\n", + "*Note: We only print out the first 10 lines of the csv below for better readability. Please adjust accordingly if you want to analyze the results more deeply.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "expert_record_server_process, port = launch_server_cmd(\n", + " \"python3 -m sglang.launch_server --model-path Qwen/Qwen1.5-MoE-A2.7B --host 0.0.0.0 --expert-distribution-recorder-mode stat --log-level warning\"\n", + ")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = requests.post(f\"http://localhost:{port}/start_expert_distribution_record\")\n", + "print_highlight(response)\n", + "\n", + "url = f\"http://localhost:{port}/generate\"\n", + "data = {\"text\": \"What is the capital of France?\"}\n", + "\n", + "response = requests.post(url, json=data)\n", + "print_highlight(response.json())\n", + "\n", + "response = requests.post(f\"http://localhost:{port}/stop_expert_distribution_record\")\n", + "print_highlight(response)\n", + "\n", + "response = requests.post(f\"http://localhost:{port}/dump_expert_distribution_record\")\n", + "print_highlight(response)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(expert_record_server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tokenize/Detokenize Example (Round Trip)\n", + "\n", + "This example demonstrates how to use the /tokenize and /detokenize endpoints together. We first tokenize a string, then detokenize the resulting IDs to reconstruct the original text. This workflow is useful when you need to handle tokenization externally but still leverage the server for detokenization." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tokenizer_free_server_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "from sglang.utils import print_highlight\n", + "\n", + "base_url = f\"http://localhost:{port}\"\n", + "tokenize_url = f\"{base_url}/tokenize\"\n", + "detokenize_url = f\"{base_url}/detokenize\"\n", + "\n", + "model_name = \"qwen/qwen2.5-0.5b-instruct\"\n", + "input_text = \"SGLang provides efficient tokenization endpoints.\"\n", + "print_highlight(f\"Original Input Text:\\n'{input_text}'\")\n", + "\n", + "# --- tokenize the input text ---\n", + "tokenize_payload = {\n", + " \"model\": model_name,\n", + " \"prompt\": input_text,\n", + " \"add_special_tokens\": False,\n", + "}\n", + "try:\n", + " tokenize_response = requests.post(tokenize_url, json=tokenize_payload)\n", + " tokenize_response.raise_for_status()\n", + " tokenization_result = tokenize_response.json()\n", + " token_ids = tokenization_result.get(\"tokens\")\n", + "\n", + " if not token_ids:\n", + " raise ValueError(\"Tokenization returned empty tokens.\")\n", + "\n", + " print_highlight(f\"\\nTokenized Output (IDs):\\n{token_ids}\")\n", + " print_highlight(f\"Token Count: {tokenization_result.get('count')}\")\n", + " print_highlight(f\"Max Model Length: {tokenization_result.get('max_model_len')}\")\n", + "\n", + " # --- detokenize the obtained token IDs ---\n", + " detokenize_payload = {\n", + " \"model\": model_name,\n", + " \"tokens\": token_ids,\n", + " \"skip_special_tokens\": True,\n", + " }\n", + "\n", + " detokenize_response = requests.post(detokenize_url, json=detokenize_payload)\n", + " detokenize_response.raise_for_status()\n", + " detokenization_result = detokenize_response.json()\n", + " reconstructed_text = detokenization_result.get(\"text\")\n", + "\n", + " print_highlight(f\"\\nDetokenized Output (Text):\\n'{reconstructed_text}'\")\n", + "\n", + " if input_text == reconstructed_text:\n", + " print_highlight(\n", + " \"\\nRound Trip Successful: Original and reconstructed text match.\"\n", + " )\n", + " else:\n", + " print_highlight(\n", + " \"\\nRound Trip Mismatch: Original and reconstructed text differ.\"\n", + " )\n", + "\n", + "except requests.exceptions.RequestException as e:\n", + " print_highlight(f\"\\nHTTP Request Error: {e}\")\n", + "except Exception as e:\n", + " print_highlight(f\"\\nAn error occurred: {e}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(tokenizer_free_server_process)" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs_new/docs/basic_usage/native_api.mdx b/docs_new/docs/basic_usage/native_api.mdx new file mode 100644 index 000000000..af4c76ce9 --- /dev/null +++ b/docs_new/docs/basic_usage/native_api.mdx @@ -0,0 +1,450 @@ +--- +title: "SGLang Native APIs" +metatags: + description: "SGLang native server APIs for text generation, embedding, reranking, model info, cache management, and more." +--- +Apart from the OpenAI compatible APIs, the SGLang Runtime also provides its native server APIs. We introduce the following APIs: + +- `/generate` (text generation model) +- `/get_model_info` +- `/get_server_info` +- `/health` +- `/health_generate` +- `/flush_cache` +- `/update_weights` +- `/encode`(embedding model) +- `/v1/rerank`(cross encoder rerank model) +- `/v1/score`(decoder-only scoring) +- `/classify`(reward model) +- `/start_expert_distribution_record` +- `/stop_expert_distribution_record` +- `/dump_expert_distribution_record` +- `/tokenize` +- `/detokenize` +- A full list of these APIs can be found at [http_server.py](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/entrypoints/http_server.py) + +We mainly use `requests` to test these APIs in the following examples. You can also use `curl`. + +## Launch A Server + +```python Example +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, print_highlight, terminate_process + +server_process, port = launch_server_cmd( + "python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct --host 0.0.0.0 --log-level warning" +) + +wait_for_server(f"http://localhost:{port}") +``` + +## Generate (text generation model) +Generate completions. This is similar to the `/v1/completions` in OpenAI API. Detailed parameters can be found in the [sampling parameters](./sampling_params). + +```python Example +import requests + +url = f"http://localhost:{port}/generate" +data = {"text": "What is the capital of France?"} + +response = requests.post(url, json=data) +print_highlight(response.json()) +``` + +## Get Model Info + +Get the information of the model. + +- `model_path`: The path/name of the model. +- `is_generation`: Whether the model is used as generation model or embedding model. +- `tokenizer_path`: The path/name of the tokenizer. +- `preferred_sampling_params`: The default sampling params specified via `--preferred-sampling-params`. `None` is returned in this example as we did not explicitly configure it in server args. +- `weight_version`: This field contains the version of the model weights. This is often used to track changes or updates to the model’s trained parameters. +- `has_image_understanding`: Whether the model has image-understanding capability. +- `has_audio_understanding`: Whether the model has audio-understanding capability. +- `model_type`: The model type from the HuggingFace config (e.g., "qwen2", "llama"). +- `architectures`: The model architectures from the HuggingFace config (e.g., ["Qwen2ForCausalLM"]). + +```python Example +url = f"http://localhost:{port}/get_model_info" + +response = requests.get(url) +response_json = response.json() +print_highlight(response_json) +assert response_json["model_path"] == "qwen/qwen2.5-0.5b-instruct" +assert response_json["is_generation"] is True +assert response_json["tokenizer_path"] == "qwen/qwen2.5-0.5b-instruct" +assert response_json["preferred_sampling_params"] is None +assert response_json.keys() == { + "model_path", + "is_generation", + "tokenizer_path", + "preferred_sampling_params", + "weight_version", + "has_image_understanding", + "has_audio_understanding", + "model_type", + "architectures", +} +``` + +## Get Server Info +Gets the server information including CLI arguments, token limits, and memory pool sizes. +- Note: `get_server_info` merges the following deprecated endpoints: + - `get_server_args` + - `get_memory_pool_size` + - `get_max_total_num_tokens` + +```python Example +url = f"http://localhost:{port}/get_server_info" + +response = requests.get(url) +print_highlight(response.text) +``` + +## Health Check +- `/health`: Check the health of the server. +- `/health_generate`: Check the health of the server by generating one token. + +```python Example +url = f"http://localhost:{port}/health_generate" + +response = requests.get(url) +print_highlight(response.text) +``` + +```python Example +url = f"http://localhost:{port}/health" + +response = requests.get(url) +print_highlight(response.text) +``` + +## Flush Cache + +Flush the radix cache. It will be automatically triggered when the model weights are updated by the `/update_weights` API. + +```python Example +url = f"http://localhost:{port}/flush_cache" + +response = requests.post(url) +print_highlight(response.text) +``` + +## Update Weights From Disk + +Update model weights from disk without restarting the server. Only applicable for models with the same architecture and parameter size. + +SGLang support `update_weights_from_disk` API for continuous evaluation during training (save checkpoint to disk and update weights from disk). + +```python Example +# successful update with same architecture and size + +url = f"http://localhost:{port}/update_weights_from_disk" +data = {"model_path": "qwen/qwen2.5-0.5b-instruct"} + +response = requests.post(url, json=data) +print_highlight(response.text) +assert response.json()["success"] is True +assert response.json()["message"] == "Succeeded to update model weights." +``` + +```python Example +# failed update with different parameter size or wrong name + +url = f"http://localhost:{port}/update_weights_from_disk" +data = {"model_path": "qwen/qwen2.5-0.5b-instruct-wrong"} + +response = requests.post(url, json=data) +response_json = response.json() +print_highlight(response_json) +assert response_json["success"] is False +assert response_json["message"] == ( + "Failed to get weights iterator: " + "qwen/qwen2.5-0.5b-instruct-wrong" + " (repository not found)." +) +``` + +```python Example +terminate_process(server_process) +``` + +## Encode (embedding model) + +Encode text into embeddings. Note that this API is only available for [embedding models](./openai_api_embeddings) and will raise an error for generation models. +Therefore, we launch a new server to server an embedding model. + +```python Example +embedding_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model-path Alibaba-NLP/gte-Qwen2-1.5B-instruct \ + --host 0.0.0.0 --is-embedding --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + +```python Example +# successful encode for embedding model + +url = f"http://localhost:{port}/encode" +data = {"model": "Alibaba-NLP/gte-Qwen2-1.5B-instruct", "text": "Once upon a time"} + +response = requests.post(url, json=data) +response_json = response.json() +print_highlight(f"Text embedding (first 10): {response_json['embedding'][:10]}") +``` + +```python Example +terminate_process(embedding_process) +``` + +## v1/rerank (cross encoder rerank model) +Rerank a list of documents given a query using a cross-encoder model. Note that this API is only available for cross encoder model like [BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3) with `attention-backend` `triton` and `torch_native`. + +```python Example +reranker_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model-path BAAI/bge-reranker-v2-m3 \ + --host 0.0.0.0 --disable-radix-cache --chunked-prefill-size -1 --attention-backend triton --is-embedding --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + +```python Example +# compute rerank scores for query and documents + +url = f"http://localhost:{port}/v1/rerank" +data = { + "model": "BAAI/bge-reranker-v2-m3", + "query": "what is panda?", + "documents": [ + "hi", + "The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.", + ], +} + +response = requests.post(url, json=data) +response_json = response.json() +for item in response_json: + print_highlight(f"Score: {item['score']:.2f} - Document: '{item['document']}'") +``` + +```python Example +terminate_process(reranker_process) +``` + +## v1/score (decoder-only scoring) + +Compute token probabilities for specified tokens given a query and items. This is useful for classification tasks, scoring responses, or computing log-probabilities. + +Parameters: +- `query`: Query text +- `items`: Item text(s) to score +- `label_token_ids`: Token IDs to compute probabilities for +- `apply_softmax`: Whether to apply softmax to get normalized probabilities (default: False) +- `item_first`: Whether items come first in concatenation order (default: False) +- `model`: Model name + +The response contains `scores` - a list of probability lists, one per item, each in the order of `label_token_ids`. + +```python Example +score_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct \ + --host 0.0.0.0 --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + +```python Example +# Score the probability of different completions given a query +query = "The capital of France is" +items = ["Paris", "London", "Berlin"] + +url = f"http://localhost:{port}/v1/score" +data = { + "model": "qwen/qwen2.5-0.5b-instruct", + "query": query, + "items": items, + "label_token_ids": [9454, 2753], # e.g. "Yes" and "No" token ids + "apply_softmax": True, # Normalize probabilities to sum to 1 +} + +response = requests.post(url, json=data) +response_json = response.json() + +# Display scores for each item +for item, scores in zip(items, response_json["scores"]): + print_highlight(f"Item '{item}': probabilities = {[f'{s:.4f}' for s in scores]}") +``` + +```python Example +terminate_process(score_process) +``` + +## Classify (reward model) + +SGLang Runtime also supports reward models. Here we use a reward model to classify the quality of pairwise generations. + +```python Example +# Note that SGLang now treats embedding models and reward models as the same type of models. +# This will be updated in the future. + +reward_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model-path Skywork/Skywork-Reward-Llama-3.1-8B-v0.2 --host 0.0.0.0 --is-embedding --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + +```python Example +from transformers import AutoTokenizer + +PROMPT = ( + "What is the range of the numeric output of a sigmoid node in a neural network?" +) + +RESPONSE1 = "The output of a sigmoid node is bounded between -1 and 1." +RESPONSE2 = "The output of a sigmoid node is bounded between 0 and 1." + +CONVS = [ + [{"role": "user", "content": PROMPT}, {"role": "assistant", "content": RESPONSE1}], + [{"role": "user", "content": PROMPT}, {"role": "assistant", "content": RESPONSE2}], +] + +tokenizer = AutoTokenizer.from_pretrained("Skywork/Skywork-Reward-Llama-3.1-8B-v0.2") +prompts = tokenizer.apply_chat_template(CONVS, tokenize=False, return_dict=False) + +url = f"http://localhost:{port}/classify" +data = {"model": "Skywork/Skywork-Reward-Llama-3.1-8B-v0.2", "text": prompts} + +responses = requests.post(url, json=data).json() +for response in responses: + print_highlight(f"reward: {response['embedding'][0]}") +``` + +```python Example +terminate_process(reward_process) +``` + +## Capture expert selection distribution in MoE models + +SGLang Runtime supports recording the number of times an expert is selected in a MoE model run for each expert in the model. This is useful when analyzing the throughput of the model and plan for optimization. + +*Note: We only print out the first 10 lines of the csv below for better readability. Please adjust accordingly if you want to analyze the results more deeply.* + +```python Example +expert_record_server_process, port = launch_server_cmd( + "python3 -m sglang.launch_server --model-path Qwen/Qwen1.5-MoE-A2.7B --host 0.0.0.0 --expert-distribution-recorder-mode stat --log-level warning" +) + +wait_for_server(f"http://localhost:{port}") +``` + +```python Example +response = requests.post(f"http://localhost:{port}/start_expert_distribution_record") +print_highlight(response) + +url = f"http://localhost:{port}/generate" +data = {"text": "What is the capital of France?"} + +response = requests.post(url, json=data) +print_highlight(response.json()) + +response = requests.post(f"http://localhost:{port}/stop_expert_distribution_record") +print_highlight(response) + +response = requests.post(f"http://localhost:{port}/dump_expert_distribution_record") +print_highlight(response) +``` + +```python Example +terminate_process(expert_record_server_process) +``` + +## Tokenize/Detokenize Example (Round Trip) + +This example demonstrates how to use the /tokenize and /detokenize endpoints together. We first tokenize a string, then detokenize the resulting IDs to reconstruct the original text. This workflow is useful when you need to handle tokenization externally but still leverage the server for detokenization. + +```python Example +tokenizer_free_server_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + +```python Example +import requests +from sglang.utils import print_highlight + +base_url = f"http://localhost:{port}" +tokenize_url = f"{base_url}/tokenize" +detokenize_url = f"{base_url}/detokenize" + +model_name = "qwen/qwen2.5-0.5b-instruct" +input_text = "SGLang provides efficient tokenization endpoints." +print_highlight(f"Original Input Text:\n'{input_text}'") + +# --- tokenize the input text --- +tokenize_payload = { + "model": model_name, + "prompt": input_text, + "add_special_tokens": False, +} +try: + tokenize_response = requests.post(tokenize_url, json=tokenize_payload) + tokenize_response.raise_for_status() + tokenization_result = tokenize_response.json() + token_ids = tokenization_result.get("tokens") + + if not token_ids: + raise ValueError("Tokenization returned empty tokens.") + + print_highlight(f"\nTokenized Output (IDs):\n{token_ids}") + print_highlight(f"Token Count: {tokenization_result.get('count')}") + print_highlight(f"Max Model Length: {tokenization_result.get('max_model_len')}") + + # --- detokenize the obtained token IDs --- + detokenize_payload = { + "model": model_name, + "tokens": token_ids, + "skip_special_tokens": True, + } + + detokenize_response = requests.post(detokenize_url, json=detokenize_payload) + detokenize_response.raise_for_status() + detokenization_result = detokenize_response.json() + reconstructed_text = detokenization_result.get("text") + + print_highlight(f"\nDetokenized Output (Text):\n'{reconstructed_text}'") + + if input_text == reconstructed_text: + print_highlight( + "\nRound Trip Successful: Original and reconstructed text match." + ) + else: + print_highlight( + "\nRound Trip Mismatch: Original and reconstructed text differ." + ) + +except requests.exceptions.RequestException as e: + print_highlight(f"\nHTTP Request Error: {e}") +except Exception as e: + print_highlight(f"\nAn error occurred: {e}") +``` + +```python Example +terminate_process(tokenizer_free_server_process) +``` diff --git a/docs_new/docs/basic_usage/offline_engine_api.ipynb b/docs_new/docs/basic_usage/offline_engine_api.ipynb new file mode 100644 index 000000000..9c03e90a7 --- /dev/null +++ b/docs_new/docs/basic_usage/offline_engine_api.ipynb @@ -0,0 +1,235 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Offline Engine API\n", + "\n", + "SGLang provides a direct inference engine without the need for an HTTP server, especially for use cases where additional HTTP server adds unnecessary complexity or overhead. Here are two general use cases:\n", + "\n", + "- Offline Batch Inference\n", + "- Custom Server on Top of the Engine\n", + "\n", + "This document focuses on the offline batch inference, demonstrating four different inference modes:\n", + "\n", + "- Non-streaming synchronous generation\n", + "- Streaming synchronous generation\n", + "- Non-streaming asynchronous generation\n", + "- Streaming asynchronous generation\n", + "\n", + "Additionally, you can easily build a custom server on top of the SGLang offline engine. A detailed example working in a python script can be found in [custom_server](https://github.com/sgl-project/sglang/blob/main/examples/runtime/engine/custom_server.py).\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Nest Asyncio\n", + "Note that if you want to use **Offline Engine** in ipython or some other nested loop code, you need to add the following code:\n", + "```python\n", + "import nest_asyncio\n", + "\n", + "nest_asyncio.apply()\n", + "\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Advanced Usage\n", + "\n", + "The engine supports [vlm inference](https://github.com/sgl-project/sglang/blob/main/examples/runtime/engine/offline_batch_inference_vlm.py) as well as [extracting hidden states](https://github.com/sgl-project/sglang/blob/main/examples/runtime/hidden_states). \n", + "\n", + "Please see [the examples](https://github.com/sgl-project/sglang/tree/main/examples/runtime/engine) for further use cases." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Offline Batch Inference\n", + "\n", + "SGLang offline engine supports batch inference with efficient scheduling." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# launch the offline engine\n", + "import asyncio\n", + "\n", + "import sglang as sgl\n", + "import sglang.test.doc_patch\n", + "from sglang.utils import async_stream_and_merge, stream_and_merge\n", + "\n", + "llm = sgl.Engine(model_path=\"qwen/qwen2.5-0.5b-instruct\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Non-streaming Synchronous Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "prompts = [\n", + " \"Hello, my name is\",\n", + " \"The president of the United States is\",\n", + " \"The capital of France is\",\n", + " \"The future of AI is\",\n", + "]\n", + "\n", + "sampling_params = {\"temperature\": 0.8, \"top_p\": 0.95}\n", + "\n", + "outputs = llm.generate(prompts, sampling_params)\n", + "for prompt, output in zip(prompts, outputs):\n", + " print(\"===============================\")\n", + " print(f\"Prompt: {prompt}\\nGenerated text: {output['text']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Streaming Synchronous Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "prompts = [\n", + " \"Write a short, neutral self-introduction for a fictional character. Hello, my name is\",\n", + " \"Provide a concise factual statement about France’s capital city. The capital of France is\",\n", + " \"Explain possible future trends in artificial intelligence. The future of AI is\",\n", + "]\n", + "\n", + "sampling_params = {\n", + " \"temperature\": 0.2,\n", + " \"top_p\": 0.9,\n", + "}\n", + "\n", + "print(\"\\n=== Testing synchronous streaming generation with overlap removal ===\\n\")\n", + "\n", + "for prompt in prompts:\n", + " print(f\"Prompt: {prompt}\")\n", + " merged_output = stream_and_merge(llm, prompt, sampling_params)\n", + " print(\"Generated text:\", merged_output)\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Non-streaming Asynchronous Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "prompts = [\n", + " \"Write a short, neutral self-introduction for a fictional character. Hello, my name is\",\n", + " \"Provide a concise factual statement about France’s capital city. The capital of France is\",\n", + " \"Explain possible future trends in artificial intelligence. The future of AI is\",\n", + "]\n", + "\n", + "sampling_params = {\"temperature\": 0.8, \"top_p\": 0.95}\n", + "\n", + "print(\"\\n=== Testing asynchronous batch generation ===\")\n", + "\n", + "\n", + "async def main():\n", + " outputs = await llm.async_generate(prompts, sampling_params)\n", + "\n", + " for prompt, output in zip(prompts, outputs):\n", + " print(f\"\\nPrompt: {prompt}\")\n", + " print(f\"Generated text: {output['text']}\")\n", + "\n", + "\n", + "asyncio.run(main())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Streaming Asynchronous Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "prompts = [\n", + " \"Write a short, neutral self-introduction for a fictional character. Hello, my name is\",\n", + " \"Provide a concise factual statement about France’s capital city. The capital of France is\",\n", + " \"Explain possible future trends in artificial intelligence. The future of AI is\",\n", + "]\n", + "\n", + "sampling_params = {\"temperature\": 0.8, \"top_p\": 0.95}\n", + "\n", + "print(\"\\n=== Testing asynchronous streaming generation (no repeats) ===\")\n", + "\n", + "\n", + "async def main():\n", + " for prompt in prompts:\n", + " print(f\"\\nPrompt: {prompt}\")\n", + " print(\"Generated text: \", end=\"\", flush=True)\n", + "\n", + " # Replace direct calls to async_generate with our custom overlap-aware version\n", + " async for cleaned_chunk in async_stream_and_merge(llm, prompt, sampling_params):\n", + " print(cleaned_chunk, end=\"\", flush=True)\n", + "\n", + " print() # New line after each prompt\n", + "\n", + "\n", + "asyncio.run(main())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "llm.shutdown()" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs_new/docs/basic_usage/offline_engine_api.mdx b/docs_new/docs/basic_usage/offline_engine_api.mdx new file mode 100644 index 000000000..4a814b319 --- /dev/null +++ b/docs_new/docs/basic_usage/offline_engine_api.mdx @@ -0,0 +1,143 @@ +--- +title: "Offline Engine API" +metatags: + description: "Use SGLang's offline engine for direct batch inference without HTTP server overhead. Supports sync/async and streaming modes." +--- +SGLang provides a direct inference engine without the need for an HTTP server, especially for use cases where additional HTTP server adds unnecessary complexity or overhead. Here are two general use cases: + +- Offline Batch Inference +- Custom Server on Top of the Engine + +This document focuses on the offline batch inference, demonstrating four different inference modes: + +- Non-streaming synchronous generation +- Streaming synchronous generation +- Non-streaming asynchronous generation +- Streaming asynchronous generation + +Additionally, you can easily build a custom server on top of the SGLang offline engine. A detailed example working in a python script can be found in [custom_server](https://github.com/sgl-project/sglang/blob/main/examples/runtime/engine/custom_server.py). + +## Nest Asyncio +Note that if you want to use **Offline Engine** in ipython or some other nested loop code, you need to add the following code: +```python Example +import nest_asyncio + +nest_asyncio.apply() + +``` + +## Advanced Usage + +The engine supports [vlm inference](https://github.com/sgl-project/sglang/blob/main/examples/runtime/engine/offline_batch_inference_vlm.py) as well as [extracting hidden states](https://github.com/sgl-project/sglang/tree/main/examples/runtime/hidden_states). + +Please see [the examples](https://github.com/sgl-project/sglang/tree/main/examples/runtime/engine) for further use cases. + +## Offline Batch Inference + +SGLang offline engine supports batch inference with efficient scheduling. + +```python Example +# launch the offline engine +import asyncio + +import sglang as sgl +import sglang.test.doc_patch +from sglang.utils import async_stream_and_merge, stream_and_merge + +llm = sgl.Engine(model_path="qwen/qwen2.5-0.5b-instruct") +``` + +### Non-streaming Synchronous Generation + +```python Example +prompts = [ + "Hello, my name is", + "The president of the United States is", + "The capital of France is", + "The future of AI is", +] + +sampling_params = {"temperature": 0.8, "top_p": 0.95} + +outputs = llm.generate(prompts, sampling_params) +for prompt, output in zip(prompts, outputs): + print("===============================") + print(f"Prompt: {prompt}\nGenerated text: {output['text']}") +``` + +### Streaming Synchronous Generation + +```python Example +prompts = [ + "Write a short, neutral self-introduction for a fictional character. Hello, my name is", + "Provide a concise factual statement about France’s capital city. The capital of France is", + "Explain possible future trends in artificial intelligence. The future of AI is", +] + +sampling_params = { + "temperature": 0.2, + "top_p": 0.9, +} + +print("\n=== Testing synchronous streaming generation with overlap removal ===\n") + +for prompt in prompts: + print(f"Prompt: {prompt}") + merged_output = stream_and_merge(llm, prompt, sampling_params) + print("Generated text:", merged_output) + print() +``` + +### Non-streaming Asynchronous Generation + +```python Example +prompts = [ + "Write a short, neutral self-introduction for a fictional character. Hello, my name is", + "Provide a concise factual statement about France’s capital city. The capital of France is", + "Explain possible future trends in artificial intelligence. The future of AI is", +] + +sampling_params = {"temperature": 0.8, "top_p": 0.95} + +print("\n=== Testing asynchronous batch generation ===") + +async def main(): + outputs = await llm.async_generate(prompts, sampling_params) + + for prompt, output in zip(prompts, outputs): + print(f"\nPrompt: {prompt}") + print(f"Generated text: {output['text']}") + +asyncio.run(main()) +``` + +### Streaming Asynchronous Generation + +```python Example +prompts = [ + "Write a short, neutral self-introduction for a fictional character. Hello, my name is", + "Provide a concise factual statement about France’s capital city. The capital of France is", + "Explain possible future trends in artificial intelligence. The future of AI is", +] + +sampling_params = {"temperature": 0.8, "top_p": 0.95} + +print("\n=== Testing asynchronous streaming generation (no repeats) ===") + +async def main(): + for prompt in prompts: + print(f"\nPrompt: {prompt}") + print("Generated text: ", end="", flush=True) + + # Replace direct calls to async_generate with our custom overlap-aware version + async for cleaned_chunk in async_stream_and_merge(llm, prompt, sampling_params): + print(cleaned_chunk, end="", flush=True) + + print() # New line after each prompt + +asyncio.run(main()) +``` + +```python Example +llm.shutdown() +``` diff --git a/docs_new/docs/basic_usage/ollama_api.mdx b/docs_new/docs/basic_usage/ollama_api.mdx new file mode 100644 index 000000000..c92533c3f --- /dev/null +++ b/docs_new/docs/basic_usage/ollama_api.mdx @@ -0,0 +1,157 @@ +--- +title: "Ollama-Compatible API" +metatags: + description: "SGLang provides Ollama API compatibility, allowing you to use the Ollama CLI and Python library with SGLang as the inference backend." +--- +SGLang provides Ollama API compatibility, allowing you to use the Ollama CLI and Python library with SGLang as the inference backend. + +## Prerequisites + + +```bash Command +# Install the Ollama Python library (for Python client usage) +pip install ollama +``` + + +You don't need the Ollama server installed - SGLang acts as the backend. You only need the `ollama` CLI or Python library as the client. + +## Endpoints + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      EndpointMethodDescription
      `/`GET, HEADHealth check for Ollama CLI
      `/api/tags`GETList available models
      `/api/chat`POSTChat completions (streaming & non-streaming)
      `/api/generate`POSTText generation (streaming & non-streaming)
      `/api/show`POSTModel information
      + +## Quick Start + +### 1. Launch SGLang Server + + +```bash Command +python -m sglang.launch_server \ + --model Qwen/Qwen2.5-1.5B-Instruct \ + --port 30001 \ + --host 0.0.0.0 +``` + + +The model name used with `ollama run` must match exactly what you passed to `--model`. + +### 2. Use Ollama CLI + + +```bash Command +# List available models +OLLAMA_HOST=http://localhost:30001 ollama list + +# Interactive chat +OLLAMA_HOST=http://localhost:30001 ollama run "Qwen/Qwen2.5-1.5B-Instruct" +``` + + +If connecting to a remote server behind a firewall: + + +```bash Command +# SSH tunnel +ssh -L 30001:localhost:30001 user@gpu-server -N & + +# Then use Ollama CLI as above +OLLAMA_HOST=http://localhost:30001 ollama list +``` + + +### 3. Use Ollama Python Library + +```python Example +import ollama + +client = ollama.Client(host='http://localhost:30001') + +# Non-streaming +response = client.chat( + model='Qwen/Qwen2.5-1.5B-Instruct', + messages=[{'role': 'user', 'content': 'Hello!'}] +) +print(response['message']['content']) + +# Streaming +stream = client.chat( + model='Qwen/Qwen2.5-1.5B-Instruct', + messages=[{'role': 'user', 'content': 'Tell me a story'}], + stream=True +) +for chunk in stream: + print(chunk['message']['content'], end='', flush=True) +``` + +## Smart Router + +For intelligent routing between local Ollama (fast) and remote SGLang (powerful) using an LLM judge, see the [Smart Router documentation](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/entrypoints/ollama/README). + +## Summary + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ComponentPurpose
      **Ollama API**Familiar CLI/API that developers already know
      **SGLang Backend**High-performance inference engine
      **Smart Router**Intelligent routing - fast local for simple tasks, powerful remote for complex tasks
      diff --git a/docs_new/docs/basic_usage/openai_api.mdx b/docs_new/docs/basic_usage/openai_api.mdx new file mode 100644 index 000000000..523fa2db6 --- /dev/null +++ b/docs_new/docs/basic_usage/openai_api.mdx @@ -0,0 +1,7 @@ +--- +title: "OpenAI-Compatible APIs" +description: "Documentation for OpenAI-Compatible APIs" +--- +- [Openai Api Completions](./openai_api_completions) +- [Openai Api Vision](./openai_api_vision) +- [Openai Api Embeddings](./openai_api_embeddings) diff --git a/docs_new/docs/basic_usage/openai_api.rst b/docs_new/docs/basic_usage/openai_api.rst new file mode 100644 index 000000000..370abe99c --- /dev/null +++ b/docs_new/docs/basic_usage/openai_api.rst @@ -0,0 +1,9 @@ +OpenAI-Compatible APIs +====================== + +.. toctree:: + :maxdepth: 1 + + openai_api_completions.ipynb + openai_api_vision.ipynb + openai_api_embeddings.ipynb diff --git a/docs_new/docs/basic_usage/openai_api_completions.ipynb b/docs_new/docs/basic_usage/openai_api_completions.ipynb new file mode 100644 index 000000000..e64b7a13e --- /dev/null +++ b/docs_new/docs/basic_usage/openai_api_completions.ipynb @@ -0,0 +1,552 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# OpenAI APIs - Completions\n", + "\n", + "SGLang provides OpenAI-compatible APIs to enable a smooth transition from OpenAI services to self-hosted local models.\n", + "A complete reference for the API is available in the [OpenAI API Reference](https://platform.openai.com/docs/api-reference).\n", + "\n", + "This tutorial covers the following popular APIs:\n", + "\n", + "- `chat/completions`\n", + "- `completions`\n", + "\n", + "Check out other tutorials to learn about [vision APIs](openai_api_vision) for vision-language models and [embedding APIs](openai_api_embeddings) for embedding models." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch A Server\n", + "\n", + "Launch the server in your terminal and wait for it to initialize." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "\n", + "server_process, port = launch_server_cmd(\n", + " \"python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct --host 0.0.0.0 --log-level warning\"\n", + ")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")\n", + "print(f\"Server started on http://localhost:{port}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Chat Completions\n", + "\n", + "### Usage\n", + "\n", + "The server fully implements the OpenAI API.\n", + "It will automatically apply the chat template specified in the Hugging Face tokenizer, if one is available.\n", + "You can also specify a custom chat template with `--chat-template` when launching the server." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import openai\n", + "\n", + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": \"List 3 countries and their capitals.\"},\n", + " ],\n", + " temperature=0,\n", + " max_tokens=64,\n", + ")\n", + "\n", + "print_highlight(f\"Response: {response}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Model Thinking/Reasoning Support\n", + "\n", + "Some models support internal reasoning or thinking processes that can be exposed in the API response. SGLang provides unified support for various reasoning models through the `chat_template_kwargs` parameter and compatible reasoning parsers.\n", + "\n", + "#### Supported Models and Configuration\n", + "\n", + "| Model Family | Chat Template Parameter | Reasoning Parser | Notes |\n", + "|--------------|------------------------|------------------|--------|\n", + "| DeepSeek-R1 (R1, R1-0528, R1-Distill) | `enable_thinking` | `--reasoning-parser deepseek-r1` | Standard reasoning models |\n", + "| DeepSeek-V3.1 | `thinking` | `--reasoning-parser deepseek-v3` | Hybrid model (thinking/non-thinking modes) |\n", + "| Qwen3 (standard) | `enable_thinking` | `--reasoning-parser qwen3` | Hybrid model (thinking/non-thinking modes) |\n", + "| Qwen3-Thinking | N/A (always enabled) | `--reasoning-parser qwen3-thinking` | Always generates reasoning |\n", + "| Kimi | N/A (always enabled) | `--reasoning-parser kimi` | Kimi thinking models |\n", + "| Gpt-Oss | N/A (always enabled) | `--reasoning-parser gpt-oss` | Gpt-Oss thinking models |\n", + "\n", + "#### Basic Usage\n", + "\n", + "To enable reasoning output, you need to:\n", + "1. Launch the server with the appropriate reasoning parser\n", + "2. Set the model-specific parameter in `chat_template_kwargs`\n", + "3. Optionally use `separate_reasoning: False` to not get reasoning content separately (default to `True`)\n", + "\n", + "**Note for Qwen3-Thinking models:** These models always generate thinking content and do not support the `enable_thinking` parameter. Use `--reasoning-parser qwen3-thinking` or `--reasoning-parser qwen3` to parse the thinking content.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Example: Qwen3 Models\n", + "\n", + "```python\n", + "# Launch server:\n", + "# python3 -m sglang.launch_server --model Qwen/Qwen3-4B --reasoning-parser qwen3\n", + "\n", + "from openai import OpenAI\n", + "\n", + "client = OpenAI(\n", + " api_key=\"EMPTY\",\n", + " base_url=f\"http://127.0.0.1:30000/v1\",\n", + ")\n", + "\n", + "model = \"Qwen/Qwen3-4B\"\n", + "messages = [{\"role\": \"user\", \"content\": \"How many r's are in 'strawberry'?\"}]\n", + "\n", + "response = client.chat.completions.create(\n", + " model=model,\n", + " messages=messages,\n", + " extra_body={\n", + " \"chat_template_kwargs\": {\"enable_thinking\": True},\n", + " \"separate_reasoning\": True\n", + " }\n", + ")\n", + "\n", + "print(\"Reasoning:\", response.choices[0].message.reasoning_content)\n", + "print(\"-\"*100)\n", + "print(\"Answer:\", response.choices[0].message.content)\n", + "```\n", + "\n", + "**ExampleOutput:**\n", + "```\n", + "Reasoning: Okay, so the user is asking how many 'r's are in the word 'strawberry'. Let me think. First, I need to make sure I have the word spelled correctly. Strawberry... S-T-R-A-W-B-E-R-R-Y. Wait, is that right? Let me break it down.\n", + "\n", + "Starting with 'strawberry', let's write out the letters one by one. S, T, R, A, W, B, E, R, R, Y. Hmm, wait, that's 10 letters. Let me check again. S (1), T (2), R (3), A (4), W (5), B (6), E (7), R (8), R (9), Y (10). So the letters are S-T-R-A-W-B-E-R-R-Y. \n", + "...\n", + "Therefore, the answer should be three R's in 'strawberry'. But I need to make sure I'm not counting any other letters as R. Let me check again. S, T, R, A, W, B, E, R, R, Y. No other R's. So three in total. Yeah, that seems right.\n", + "\n", + "----------------------------------------------------------------------------------------------------\n", + "Answer: The word \"strawberry\" contains **three** letters 'r'. Here's the breakdown:\n", + "\n", + "1. **S-T-R-A-W-B-E-R-R-Y** \n", + " - The **third letter** is 'R'. \n", + " - The **eighth and ninth letters** are also 'R's. \n", + "\n", + "Thus, the total count is **3**. \n", + "\n", + "**Answer:** 3.\n", + "```\n", + "\n", + "**Note:** Setting `\"enable_thinking\": False` (or omitting it) will result in `reasoning_content` being `None`. Qwen3-Thinking models always generate reasoning content and don't support the `enable_thinking` parameter.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Logit Bias Support\n", + "\n", + "SGLang supports the `logit_bias` parameter for both chat completions and completions APIs. This parameter allows you to modify the likelihood of specific tokens being generated by adding bias values to their logits. The bias values can range from -100 to 100, where:\n", + "\n", + "- **Positive values** (0 to 100) increase the likelihood of the token being selected\n", + "- **Negative values** (-100 to 0) decrease the likelihood of the token being selected\n", + "- **-100** effectively prevents the token from being generated\n", + "\n", + "The `logit_bias` parameter accepts a dictionary where keys are token IDs (as strings) and values are the bias amounts (as floats).\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Getting Token IDs\n", + "\n", + "To use `logit_bias` effectively, you need to know the token IDs for the words you want to bias. Here's how to get token IDs:\n", + "\n", + "```python\n", + "# Get tokenizer to find token IDs\n", + "import tiktoken\n", + "\n", + "# For OpenAI models, use the appropriate encoding\n", + "tokenizer = tiktoken.encoding_for_model(\"gpt-3.5-turbo\") # or your model\n", + "\n", + "# Get token IDs for specific words\n", + "word = \"sunny\"\n", + "token_ids = tokenizer.encode(word)\n", + "print(f\"Token IDs for '{word}': {token_ids}\")\n", + "\n", + "# For SGLang models, you can access the tokenizer through the client\n", + "# and get token IDs for bias\n", + "```\n", + "\n", + "**Important:** The `logit_bias` parameter uses token IDs as string keys, not the actual words.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Example: DeepSeek-V3 Models\n", + "\n", + "DeepSeek-V3 models support thinking mode through the `thinking` parameter:\n", + "\n", + "```python\n", + "# Launch server:\n", + "# python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.1 --tp 8 --reasoning-parser deepseek-v3\n", + "\n", + "from openai import OpenAI\n", + "\n", + "client = OpenAI(\n", + " api_key=\"EMPTY\",\n", + " base_url=f\"http://127.0.0.1:30000/v1\",\n", + ")\n", + "\n", + "model = \"deepseek-ai/DeepSeek-V3.1\"\n", + "messages = [{\"role\": \"user\", \"content\": \"How many r's are in 'strawberry'?\"}]\n", + "\n", + "response = client.chat.completions.create(\n", + " model=model,\n", + " messages=messages,\n", + " extra_body={\n", + " \"chat_template_kwargs\": {\"thinking\": True},\n", + " \"separate_reasoning\": True\n", + " }\n", + ")\n", + "\n", + "print(\"Reasoning:\", response.choices[0].message.reasoning_content)\n", + "print(\"-\"*100)\n", + "print(\"Answer:\", response.choices[0].message.content)\n", + "```\n", + "\n", + "**Example Output:**\n", + "```\n", + "Reasoning: First, the question is: \"How many r's are in 'strawberry'?\"\n", + "\n", + "I need to count the number of times the letter 'r' appears in the word \"strawberry\".\n", + "\n", + "Let me write out the word: S-T-R-A-W-B-E-R-R-Y.\n", + "\n", + "Now, I'll go through each letter and count the 'r's.\n", + "...\n", + "So, I have three 'r's in \"strawberry\".\n", + "\n", + "I should double-check. The word is spelled S-T-R-A-W-B-E-R-R-Y. The letters are at positions: 3, 8, and 9 are 'r's. Yes, that's correct.\n", + "\n", + "Therefore, the answer should be 3.\n", + "----------------------------------------------------------------------------------------------------\n", + "Answer: The word \"strawberry\" contains **3** instances of the letter \"r\". Here's a breakdown for clarity:\n", + "\n", + "- The word is spelled: S-T-R-A-W-B-E-R-R-Y\n", + "- The \"r\" appears at the 3rd, 8th, and 9th positions.\n", + "```\n", + "\n", + "**Note:** DeepSeek-V3 models use the `thinking` parameter (not `enable_thinking`) to control reasoning output.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Example with logit_bias parameter\n", + "# Note: You need to get the actual token IDs from your tokenizer\n", + "# For demonstration, we'll use some example token IDs\n", + "response = client.chat.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": \"Complete this sentence: The weather today is\"}\n", + " ],\n", + " temperature=0.7,\n", + " max_tokens=20,\n", + " logit_bias={\n", + " \"12345\": 50, # Increase likelihood of token ID 12345\n", + " \"67890\": -50, # Decrease likelihood of token ID 67890\n", + " \"11111\": 25, # Slightly increase likelihood of token ID 11111\n", + " },\n", + ")\n", + "\n", + "print_highlight(f\"Response with logit bias: {response.choices[0].message.content}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Parameters\n", + "\n", + "The chat completions API accepts OpenAI Chat Completions API's parameters. Refer to [OpenAI Chat Completions API](https://platform.openai.com/docs/api-reference/chat/create) for more details.\n", + "\n", + "SGLang extends the standard API with the `extra_body` parameter, allowing for additional customization. One key option within `extra_body` is `chat_template_kwargs`, which can be used to pass arguments to the chat template processor." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = client.chat.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " messages=[\n", + " {\n", + " \"role\": \"system\",\n", + " \"content\": \"You are a knowledgeable historian who provides concise responses.\",\n", + " },\n", + " {\"role\": \"user\", \"content\": \"Tell me about ancient Rome\"},\n", + " {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"Ancient Rome was a civilization centered in Italy.\",\n", + " },\n", + " {\"role\": \"user\", \"content\": \"What were their major achievements?\"},\n", + " ],\n", + " temperature=0.3, # Lower temperature for more focused responses\n", + " max_tokens=128, # Reasonable length for a concise response\n", + " top_p=0.95, # Slightly higher for better fluency\n", + " presence_penalty=0.2, # Mild penalty to avoid repetition\n", + " frequency_penalty=0.2, # Mild penalty for more natural language\n", + " n=1, # Single response is usually more stable\n", + " seed=42, # Keep for reproducibility\n", + ")\n", + "\n", + "print_highlight(response.choices[0].message.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Streaming mode is also supported." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Logit Bias Support\n", + "\n", + "The completions API also supports the `logit_bias` parameter with the same functionality as described in the chat completions section above.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "stream = client.chat.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " messages=[{\"role\": \"user\", \"content\": \"Say this is a test\"}],\n", + " stream=True,\n", + ")\n", + "for chunk in stream:\n", + " if chunk.choices[0].delta.content is not None:\n", + " print(chunk.choices[0].delta.content, end=\"\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Returning Routed Experts (MoE Models)\n", + "\n", + "For MoE models, set `return_routed_experts: true` in `extra_body` to return expert routing data. Requires `--enable-return-routed-experts` server flag. The `routed_experts` field will be returned in the `sgl_ext` object on each choice, containing base64-encoded int32 expert IDs as a flattened array with logical shape `[num_tokens, num_layers, top_k]`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Example with logit_bias parameter for completions API\n", + "# Note: You need to get the actual token IDs from your tokenizer\n", + "# For demonstration, we'll use some example token IDs\n", + "response = client.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " prompt=\"The best programming language for AI is\",\n", + " temperature=0.7,\n", + " max_tokens=20,\n", + " logit_bias={\n", + " \"12345\": 75, # Strongly favor token ID 12345\n", + " \"67890\": -100, # Completely avoid token ID 67890\n", + " \"11111\": -25, # Slightly discourage token ID 11111\n", + " },\n", + ")\n", + "\n", + "print_highlight(f\"Response with logit bias: {response.choices[0].text}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Completions\n", + "\n", + "### Usage\n", + "Completions API is similar to Chat Completions API, but without the `messages` parameter or chat templates." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = client.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " prompt=\"List 3 countries and their capitals.\",\n", + " temperature=0,\n", + " max_tokens=64,\n", + " n=1,\n", + " stop=None,\n", + ")\n", + "\n", + "print_highlight(f\"Response: {response}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Parameters\n", + "\n", + "The completions API accepts OpenAI Completions API's parameters. Refer to [OpenAI Completions API](https://platform.openai.com/docs/api-reference/completions/create) for more details.\n", + "\n", + "Here is an example of a detailed completions request:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = client.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " prompt=\"Write a short story about a space explorer.\",\n", + " temperature=0.7, # Moderate temperature for creative writing\n", + " max_tokens=150, # Longer response for a story\n", + " top_p=0.9, # Balanced diversity in word choice\n", + " stop=[\"\\n\\n\", \"THE END\"], # Multiple stop sequences\n", + " presence_penalty=0.3, # Encourage novel elements\n", + " frequency_penalty=0.3, # Reduce repetitive phrases\n", + " n=1, # Generate one completion\n", + " seed=123, # For reproducible results\n", + ")\n", + "\n", + "print_highlight(f\"Response: {response}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Returning Routed Experts (MoE Models)\n", + "\n", + "For MoE models, set `return_routed_experts: true` in `extra_body` to return expert routing data. Requires `--enable-return-routed-experts` server flag. The `routed_experts` field will be returned in the `sgl_ext` object on each choice, containing base64-encoded int32 expert IDs as a flattened array with logical shape `[num_tokens, num_layers, top_k]`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Structured Outputs (JSON, Regex, EBNF)\n", + "\n", + "For OpenAI compatible structured outputs API, refer to [Structured Outputs](../advanced_features/structured_outputs) for more details.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using LoRA Adapters\n", + "\n", + "SGLang supports LoRA (Low-Rank Adaptation) adapters with OpenAI-compatible APIs. You can specify which adapter to use directly in the `model` parameter using the `base-model:adapter-name` syntax.\n", + "\n", + "**Server Setup:**\n", + "```bash\n", + "python -m sglang.launch_server \\\n", + " --model-path qwen/qwen2.5-0.5b-instruct \\\n", + " --enable-lora \\\n", + " --lora-paths adapter_a=/path/to/adapter_a adapter_b=/path/to/adapter_b\n", + "```\n", + "\n", + "For more details on LoRA serving configuration, see the [LoRA documentation](../advanced_features/lora).\n", + "\n", + "**API Call:**\n", + "\n", + "(Recommended) Use the `model:adapter` syntax to specify which adapter to use:\n", + "```python\n", + "response = client.chat.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct:adapter_a\", # ← base-model:adapter-name\n", + " messages=[{\"role\": \"user\", \"content\": \"Convert to SQL: show all users\"}],\n", + " max_tokens=50,\n", + ")\n", + "```\n", + "\n", + "**Backward Compatible: Using `extra_body`**\n", + "\n", + "The old `extra_body` method is still supported for backward compatibility:\n", + "```python\n", + "# Backward compatible method\n", + "response = client.chat.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " messages=[{\"role\": \"user\", \"content\": \"Convert to SQL: show all users\"}],\n", + " extra_body={\"lora_path\": \"adapter_a\"}, # ← old method\n", + " max_tokens=50,\n", + ")\n", + "```\n", + "**Note:** When both `model:adapter` and `extra_body[\"lora_path\"]` are specified, the `model:adapter` syntax takes precedence." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs_new/docs/basic_usage/openai_api_completions.mdx b/docs_new/docs/basic_usage/openai_api_completions.mdx new file mode 100644 index 000000000..c463fcca5 --- /dev/null +++ b/docs_new/docs/basic_usage/openai_api_completions.mdx @@ -0,0 +1,456 @@ +--- +title: "OpenAI APIs - Completions" +metatags: + description: "This tutorial covers the following popular APIs: 'chat/completions' and 'completions'" +--- +SGLang provides OpenAI-compatible APIs to enable a smooth transition from OpenAI services to self-hosted local models. +A complete reference for the API is available in the [OpenAI API Reference](https://platform.openai.com/docs/api-reference). + +This tutorial covers the following popular APIs: + +- `chat/completions` +- `completions` + +Check out other tutorials to learn about [vision APIs](./openai_api_vision) for vision-language models and [embedding APIs](./openai_api_embeddings) for embedding models. + +## Launch A Server + +Launch the server in your terminal and wait for it to initialize. + +```python Example +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, print_highlight, terminate_process + +server_process, port = launch_server_cmd( + "python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct --host 0.0.0.0 --log-level warning" +) + +wait_for_server(f"http://localhost:{port}") +print(f"Server started on http://localhost:{port}") +``` + +## Chat Completions + +### Usage + +The server fully implements the OpenAI API. +It will automatically apply the chat template specified in the Hugging Face tokenizer, if one is available. +You can also specify a custom chat template with `--chat-template` when launching the server. + +```python Example +import openai + +client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None") + +response = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0, + max_tokens=64, +) + +print_highlight(f"Response: {response}") +``` + +### Model Thinking/Reasoning Support + +Some models support internal reasoning or thinking processes that can be exposed in the API response. SGLang provides unified support for various reasoning models through the `chat_template_kwargs` parameter and compatible reasoning parsers. + +#### Supported Models and Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model FamilyChat Template ParameterReasoning ParserNotes
      DeepSeek-R1 (R1, R1-0528, R1-Distill)`enable_thinking``--reasoning-parser deepseek-r1`Standard reasoning models
      DeepSeek-V3.1`thinking``--reasoning-parser deepseek-v3`Hybrid model (thinking/non-thinking modes)
      Qwen3 (standard)`enable_thinking``--reasoning-parser qwen3`Hybrid model (thinking/non-thinking modes)
      Qwen3-ThinkingN/A (always enabled)`--reasoning-parser qwen3-thinking`Always generates reasoning
      KimiN/A (always enabled)`--reasoning-parser kimi`Kimi thinking models
      Gpt-OssN/A (always enabled)`--reasoning-parser gpt-oss`Gpt-Oss thinking models
      + +#### Basic Usage + +To enable reasoning output, you need to: +1. Launch the server with the appropriate reasoning parser +2. Set the model-specific parameter in `chat_template_kwargs` +3. Optionally use `separate_reasoning: False` to not get reasoning content separately (default to `True`) + + +**Note for Qwen3-Thinking models:** These models always generate thinking content and do not support the `enable_thinking` parameter. Use `--reasoning-parser qwen3-thinking` or `--reasoning-parser qwen3` to parse the thinking content. + + +#### Example: Qwen3 Models + +```python Example +# Launch server: +# python3 -m sglang.launch_server --model Qwen/Qwen3-4B --reasoning-parser qwen3 + +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url=f"http://127.0.0.1:30000/v1", +) + +model = "Qwen/Qwen3-4B" +messages = [{"role": "user", "content": "How many r's are in 'strawberry'?"}] + +response = client.chat.completions.create( + model=model, + messages=messages, + extra_body={ + "chat_template_kwargs": {"enable_thinking": True}, + "separate_reasoning": True + } +) + +print("Reasoning:", response.choices[0].message.reasoning_content) +print("-"*100) +print("Answer:", response.choices[0].message.content) +``` + +**ExampleOutput:** +```text Output +Reasoning: Okay, so the user is asking how many 'r's are in the word 'strawberry'. Let me think. First, I need to make sure I have the word spelled correctly. Strawberry... S-T-R-A-W-B-E-R-R-Y. Wait, is that right? Let me break it down. + +Starting with 'strawberry', let's write out the letters one by one. S, T, R, A, W, B, E, R, R, Y. Hmm, wait, that's 10 letters. Let me check again. S (1), T (2), R (3), A (4), W (5), B (6), E (7), R (8), R (9), Y (10). So the letters are S-T-R-A-W-B-E-R-R-Y. +... +Therefore, the answer should be three R's in 'strawberry'. But I need to make sure I'm not counting any other letters as R. Let me check again. S, T, R, A, W, B, E, R, R, Y. No other R's. So three in total. Yeah, that seems right. + +---------------------------------------------------------------------------------------------------- +Answer: The word "strawberry" contains **three** letters 'r'. Here's the breakdown: + +1. **S-T-R-A-W-B-E-R-R-Y** + - The **third letter** is 'R'. + - The **eighth and ninth letters** are also 'R's. + +Thus, the total count is **3**. + +**Answer:** 3. +``` + +Setting `"enable_thinking": False` (or omitting it) will result in `reasoning_content` being `None`. Qwen3-Thinking models always generate reasoning content and don't support the `enable_thinking` parameter. + + +#### Logit Bias Support + +SGLang supports the `logit_bias` parameter for both chat completions and completions APIs. This parameter allows you to modify the likelihood of specific tokens being generated by adding bias values to their logits. The bias values can range from -100 to 100, where: + +- **Positive values** (0 to 100) increase the likelihood of the token being selected +- **Negative values** (-100 to 0) decrease the likelihood of the token being selected +- **-100** effectively prevents the token from being generated + +The `logit_bias` parameter accepts a dictionary where keys are token IDs (as strings) and values are the bias amounts (as floats). + +#### Getting Token IDs + +To use `logit_bias` effectively, you need to know the token IDs for the words you want to bias. Here's how to get token IDs: + +```python Example +# Get tokenizer to find token IDs +import tiktoken + +# For OpenAI models, use the appropriate encoding +tokenizer = tiktoken.encoding_for_model("gpt-3.5-turbo") # or your model + +# Get token IDs for specific words +word = "sunny" +token_ids = tokenizer.encode(word) +print(f"Token IDs for '{word}': {token_ids}") + +# For SGLang models, you can access the tokenizer through the client +# and get token IDs for bias +``` + +**Important:** The `logit_bias` parameter uses token IDs as string keys, not the actual words. + + +#### Example: DeepSeek-V3 Models + +DeepSeek-V3 models support thinking mode through the `thinking` parameter: + +```python Example +# Launch server: +# python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.1 --tp 8 --reasoning-parser deepseek-v3 + +from openai import OpenAI + +client = OpenAI( + api_key="EMPTY", + base_url=f"http://127.0.0.1:30000/v1", +) + +model = "deepseek-ai/DeepSeek-V3.1" +messages = [{"role": "user", "content": "How many r's are in 'strawberry'?"}] + +response = client.chat.completions.create( + model=model, + messages=messages, + extra_body={ + "chat_template_kwargs": {"thinking": True}, + "separate_reasoning": True + } +) + +print("Reasoning:", response.choices[0].message.reasoning_content) +print("-"*100) +print("Answer:", response.choices[0].message.content) +``` + +**Example Output:** +```text Output +Reasoning: First, the question is: "How many r's are in 'strawberry'?" + +I need to count the number of times the letter 'r' appears in the word "strawberry". + +Let me write out the word: S-T-R-A-W-B-E-R-R-Y. + +Now, I'll go through each letter and count the 'r's. +... +So, I have three 'r's in "strawberry". + +I should double-check. The word is spelled S-T-R-A-W-B-E-R-R-Y. The letters are at positions: 3, 8, and 9 are 'r's. Yes, that's correct. + +Therefore, the answer should be 3. +---------------------------------------------------------------------------------------------------- +Answer: The word "strawberry" contains **3** instances of the letter "r". Here's a breakdown for clarity: + +- The word is spelled: S-T-R-A-W-B-E-R-R-Y +- The "r" appears at the 3rd, 8th, and 9th positions. +``` + +DeepSeek-V3 models use the `thinking` parameter (not `enable_thinking`) to control reasoning output. + + +```python Example +# Example with logit_bias parameter +# Note: You need to get the actual token IDs from your tokenizer +# For demonstration, we'll use some example token IDs +response = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + messages=[ + {"role": "user", "content": "Complete this sentence: The weather today is"} + ], + temperature=0.7, + max_tokens=20, + logit_bias={ + "12345": 50, # Increase likelihood of token ID 12345 + "67890": -50, # Decrease likelihood of token ID 67890 + "11111": 25, # Slightly increase likelihood of token ID 11111 + }, +) + +print_highlight(f"Response with logit bias: {response.choices[0].message.content}") +``` + +### Parameters + +The chat completions API accepts OpenAI Chat Completions API's parameters. Refer to [OpenAI Chat Completions API](https://platform.openai.com/docs/api-reference/chat/create) for more details. + +SGLang extends the standard API with the `extra_body` parameter, allowing for additional customization. One key option within `extra_body` is `chat_template_kwargs`, which can be used to pass arguments to the chat template processor. + +```python Example +response = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + messages=[ + { + "role": "system", + "content": "You are a knowledgeable historian who provides concise responses.", + }, + {"role": "user", "content": "Tell me about ancient Rome"}, + { + "role": "assistant", + "content": "Ancient Rome was a civilization centered in Italy.", + }, + {"role": "user", "content": "What were their major achievements?"}, + ], + temperature=0.3, # Lower temperature for more focused responses + max_tokens=128, # Reasonable length for a concise response + top_p=0.95, # Slightly higher for better fluency + presence_penalty=0.2, # Mild penalty to avoid repetition + frequency_penalty=0.2, # Mild penalty for more natural language + n=1, # Single response is usually more stable + seed=42, # Keep for reproducibility +) + +print_highlight(response.choices[0].message.content) +``` + +Streaming mode is also supported. + +#### Logit Bias Support + +The completions API also supports the `logit_bias` parameter with the same functionality as described in the chat completions section above. + +```python Example +stream = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + messages=[{"role": "user", "content": "Say this is a test"}], + stream=True, +) +for chunk in stream: + if chunk.choices[0].delta.content is not None: + print(chunk.choices[0].delta.content, end="") +``` + +#### Returning Routed Experts (MoE Models) + +For MoE models, set `return_routed_experts: true` in `extra_body` to return expert routing data. Requires `--enable-return-routed-experts` server flag. The `routed_experts` field will be returned in the `sgl_ext` object on each choice, containing base64-encoded int32 expert IDs as a flattened array with logical shape `[num_tokens, num_layers, top_k]`. + +```python Example +# Example with logit_bias parameter for completions API +# Note: You need to get the actual token IDs from your tokenizer +# For demonstration, we'll use some example token IDs +response = client.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + prompt="The best programming language for AI is", + temperature=0.7, + max_tokens=20, + logit_bias={ + "12345": 75, # Strongly favor token ID 12345 + "67890": -100, # Completely avoid token ID 67890 + "11111": -25, # Slightly discourage token ID 11111 + }, +) + +print_highlight(f"Response with logit bias: {response.choices[0].text}") +``` + +## Completions + +### Usage +Completions API is similar to Chat Completions API, but without the `messages` parameter or chat templates. + +```python Example +response = client.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + prompt="List 3 countries and their capitals.", + temperature=0, + max_tokens=64, + n=1, + stop=None, +) + +print_highlight(f"Response: {response}") +``` + +### Parameters + +The completions API accepts OpenAI Completions API's parameters. Refer to [OpenAI Completions API](https://platform.openai.com/docs/api-reference/completions/create) for more details. + +Here is an example of a detailed completions request: + +```python Example +response = client.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + prompt="Write a short story about a space explorer.", + temperature=0.7, # Moderate temperature for creative writing + max_tokens=150, # Longer response for a story + top_p=0.9, # Balanced diversity in word choice + stop=["\n\n", "THE END"], # Multiple stop sequences + presence_penalty=0.3, # Encourage novel elements + frequency_penalty=0.3, # Reduce repetitive phrases + n=1, # Generate one completion + seed=123, # For reproducible results +) + +print_highlight(f"Response: {response}") +``` + +#### Returning Routed Experts (MoE Models) + +For MoE models, set `return_routed_experts: true` in `extra_body` to return expert routing data. Requires `--enable-return-routed-experts` server flag. The `routed_experts` field will be returned in the `sgl_ext` object on each choice, containing base64-encoded int32 expert IDs as a flattened array with logical shape `[num_tokens, num_layers, top_k]`. + +## Structured Outputs (JSON, Regex, EBNF) + +For OpenAI compatible structured outputs API, refer to [Structured Outputs](../advanced_features/structured_outputs) for more details. + +## Using LoRA Adapters + +SGLang supports LoRA (Low-Rank Adaptation) adapters with OpenAI-compatible APIs. You can specify which adapter to use directly in the `model` parameter using the `base-model:adapter-name` syntax. + +**Server Setup:** +```bash Command +python -m sglang.launch_server \ + --model-path qwen/qwen2.5-0.5b-instruct \ + --enable-lora \ + --lora-paths adapter_a=/path/to/adapter_a adapter_b=/path/to/adapter_b +``` + +For more details on LoRA serving configuration, see the [LoRA documentation](../advanced_features/lora). + +**API Call:** + +(Recommended) Use the `model:adapter` syntax to specify which adapter to use: +```python Example +response = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct:adapter_a", # ← base-model:adapter-name + messages=[{"role": "user", "content": "Convert to SQL: show all users"}], + max_tokens=50, +) +``` + +**Backward Compatible: Using `extra_body`** + +The old `extra_body` method is still supported for backward compatibility: +```python Example +# Backward compatible method +response = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + messages=[{"role": "user", "content": "Convert to SQL: show all users"}], + extra_body={"lora_path": "adapter_a"}, # ← old method + max_tokens=50, +) +``` +**Note:** When both `model:adapter` and `extra_body["lora_path"]` are specified, the `model:adapter` syntax takes precedence. + +```python Example +terminate_process(server_process) +``` diff --git a/docs_new/docs/basic_usage/openai_api_embeddings.ipynb b/docs_new/docs/basic_usage/openai_api_embeddings.ipynb new file mode 100644 index 000000000..07031d32c --- /dev/null +++ b/docs_new/docs/basic_usage/openai_api_embeddings.ipynb @@ -0,0 +1,193 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# OpenAI APIs - Embedding\n", + "\n", + "SGLang provides OpenAI-compatible APIs to enable a smooth transition from OpenAI services to self-hosted local models.\n", + "A complete reference for the API is available in the [OpenAI API Reference](https://platform.openai.com/docs/guides/embeddings).\n", + "\n", + "This tutorial covers the embedding APIs for embedding models. For a list of the supported models see the [corresponding overview page](../supported_models/embedding_models)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch A Server\n", + "\n", + "Launch the server in your terminal and wait for it to initialize. Remember to add `--is-embedding` to the command." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "\n", + "embedding_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model-path Alibaba-NLP/gte-Qwen2-1.5B-instruct \\\n", + " --host 0.0.0.0 --is-embedding --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using cURL" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import subprocess, json\n", + "\n", + "text = \"Once upon a time\"\n", + "\n", + "curl_text = f\"\"\"curl -s http://localhost:{port}/v1/embeddings \\\n", + " -H \"Content-Type: application/json\" \\\n", + " -d '{{\"model\": \"Alibaba-NLP/gte-Qwen2-1.5B-instruct\", \"input\": \"{text}\"}}'\"\"\"\n", + "\n", + "result = subprocess.check_output(curl_text, shell=True)\n", + "\n", + "print(result)\n", + "\n", + "text_embedding = json.loads(result)[\"data\"][0][\"embedding\"]\n", + "\n", + "print_highlight(f\"Text embedding (first 10): {text_embedding[:10]}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using Python Requests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "\n", + "text = \"Once upon a time\"\n", + "\n", + "response = requests.post(\n", + " f\"http://localhost:{port}/v1/embeddings\",\n", + " json={\"model\": \"Alibaba-NLP/gte-Qwen2-1.5B-instruct\", \"input\": text},\n", + ")\n", + "\n", + "text_embedding = response.json()[\"data\"][0][\"embedding\"]\n", + "\n", + "print_highlight(f\"Text embedding (first 10): {text_embedding[:10]}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using OpenAI Python Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import openai\n", + "\n", + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")\n", + "\n", + "# Text embedding example\n", + "response = client.embeddings.create(\n", + " model=\"Alibaba-NLP/gte-Qwen2-1.5B-instruct\",\n", + " input=text,\n", + ")\n", + "\n", + "embedding = response.data[0].embedding[:10]\n", + "print_highlight(f\"Text embedding (first 10): {embedding}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using Input IDs\n", + "\n", + "SGLang also supports `input_ids` as input to get the embedding." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import os\n", + "from transformers import AutoTokenizer\n", + "\n", + "os.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\"\n", + "\n", + "tokenizer = AutoTokenizer.from_pretrained(\"Alibaba-NLP/gte-Qwen2-1.5B-instruct\")\n", + "input_ids = tokenizer.encode(text)\n", + "\n", + "curl_ids = f\"\"\"curl -s http://localhost:{port}/v1/embeddings \\\n", + " -H \"Content-Type: application/json\" \\\n", + " -d '{{\"model\": \"Alibaba-NLP/gte-Qwen2-1.5B-instruct\", \"input\": {json.dumps(input_ids)}}}'\"\"\"\n", + "\n", + "input_ids_embedding = json.loads(subprocess.check_output(curl_ids, shell=True))[\"data\"][\n", + " 0\n", + "][\"embedding\"]\n", + "\n", + "print_highlight(f\"Input IDs embedding (first 10): {input_ids_embedding[:10]}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(embedding_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multi-Modal Embedding Model\n", + "Please refer to [Multi-Modal Embedding Model](../supported_models/embedding_models)" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs_new/docs/basic_usage/openai_api_embeddings.mdx b/docs_new/docs/basic_usage/openai_api_embeddings.mdx new file mode 100644 index 000000000..a0528a0c4 --- /dev/null +++ b/docs_new/docs/basic_usage/openai_api_embeddings.mdx @@ -0,0 +1,126 @@ +--- +title: "OpenAI APIs - Embedding" +metatags: + description: "This tutorial covers the embedding APIs for embedding models." +--- +SGLang provides OpenAI-compatible APIs to enable a smooth transition from OpenAI services to self-hosted local models. +A complete reference for the API is available in the [OpenAI API Reference](https://platform.openai.com/docs/guides/embeddings). + +This tutorial covers the embedding APIs for embedding models. For a list of the supported models see the [corresponding overview page](../supported-models) + + + +## Launch A Server + +Launch the server in your terminal and wait for it to initialize. Remember to add `--is-embedding` to the command. + + + +```python Example +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, print_highlight, terminate_process + +embedding_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model-path Alibaba-NLP/gte-Qwen2-1.5B-instruct \ + --host 0.0.0.0 --is-embedding --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + +## Using cURL + + + +```python Example +import subprocess, json + +text = "Once upon a time" + +curl_text = f"""curl -s http://localhost:{port}/v1/embeddings \ + -H "Content-Type: application/json" \ + -d '{{"model": "Alibaba-NLP/gte-Qwen2-1.5B-instruct", "input": "{text}"}}'""" + +result = subprocess.check_output(curl_text, shell=True) + +print(result) + +text_embedding = json.loads(result)["data"][0]["embedding"] + +print_highlight(f"Text embedding (first 10): {text_embedding[:10]}") +``` + +## Using Python Requests + + + +```python Example +import requests + +text = "Once upon a time" + +response = requests.post( + f"http://localhost:{port}/v1/embeddings", + json={"model": "Alibaba-NLP/gte-Qwen2-1.5B-instruct", "input": text}, +) + +text_embedding = response.json()["data"][0]["embedding"] + +print_highlight(f"Text embedding (first 10): {text_embedding[:10]}") +``` + +## Using OpenAI Python Client + + + +```python Example +import openai + +client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None") + +# Text embedding example +response = client.embeddings.create( + model="Alibaba-NLP/gte-Qwen2-1.5B-instruct", + input=text, +) + +embedding = response.data[0].embedding[:10] +print_highlight(f"Text embedding (first 10): {embedding}") +``` + +## Using Input IDs + +SGLang also supports `input_ids` as input to get the embedding. + + + +```python Example +import json +import os +from transformers import AutoTokenizer + +os.environ["TOKENIZERS_PARALLELISM"] = "false" + +tokenizer = AutoTokenizer.from_pretrained("Alibaba-NLP/gte-Qwen2-1.5B-instruct") +input_ids = tokenizer.encode(text) + +curl_ids = f"""curl -s http://localhost:{port}/v1/embeddings \ + -H "Content-Type: application/json" \ + -d '{{"model": "Alibaba-NLP/gte-Qwen2-1.5B-instruct", "input": {json.dumps(input_ids)}}}'""" + +input_ids_embedding = json.loads(subprocess.check_output(curl_ids, shell=True))["data"][ + 0 +]["embedding"] + +print_highlight(f"Input IDs embedding (first 10): {input_ids_embedding[:10]}") +``` + + +```python Example +terminate_process(embedding_process) +``` + +## Multi-Modal Embedding Model +Please refer to [Multi-Modal Embedding Model](../supported-models) diff --git a/docs_new/docs/basic_usage/openai_api_vision.ipynb b/docs_new/docs/basic_usage/openai_api_vision.ipynb new file mode 100644 index 000000000..aea2c7ef8 --- /dev/null +++ b/docs_new/docs/basic_usage/openai_api_vision.ipynb @@ -0,0 +1,252 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# OpenAI APIs - Vision\n", + "\n", + "SGLang provides OpenAI-compatible APIs to enable a smooth transition from OpenAI services to self-hosted local models.\n", + "A complete reference for the API is available in the [OpenAI API Reference](https://platform.openai.com/docs/guides/vision).\n", + "This tutorial covers the vision APIs for vision language models.\n", + "\n", + "SGLang supports various vision language models such as Llama 3.2, LLaVA-OneVision, Qwen2.5-VL, Gemma3 and [more](../supported_models/multimodal_language_models).\n", + "\n", + "As an alternative to the OpenAI API, you can also use the [SGLang offline engine](https://github.com/sgl-project/sglang/blob/main/examples/runtime/engine/offline_batch_inference_vlm.py)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch A Server\n", + "\n", + "Launch the server in your terminal and wait for it to initialize." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "\n", + "vision_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model-path Qwen/Qwen2.5-VL-7B-Instruct --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using cURL\n", + "\n", + "Once the server is up, you can send test requests using curl or requests." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import subprocess\n", + "\n", + "curl_command = f\"\"\"\n", + "curl -s http://localhost:{port}/v1/chat/completions \\\\\n", + " -H \"Content-Type: application/json\" \\\\\n", + " -d '{{\n", + " \"model\": \"Qwen/Qwen2.5-VL-7B-Instruct\",\n", + " \"messages\": [\n", + " {{\n", + " \"role\": \"user\",\n", + " \"content\": [\n", + " {{\n", + " \"type\": \"text\",\n", + " \"text\": \"What’s in this image?\"\n", + " }},\n", + " {{\n", + " \"type\": \"image_url\",\n", + " \"image_url\": {{\n", + " \"url\": \"https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true\"\n", + " }}\n", + " }}\n", + " ]\n", + " }}\n", + " ],\n", + " \"max_tokens\": 300\n", + " }}'\n", + "\"\"\"\n", + "\n", + "response = subprocess.check_output(curl_command, shell=True).decode()\n", + "print_highlight(response)\n", + "\n", + "\n", + "response = subprocess.check_output(curl_command, shell=True).decode()\n", + "print_highlight(response)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using Python Requests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "\n", + "url = f\"http://localhost:{port}/v1/chat/completions\"\n", + "\n", + "data = {\n", + " \"model\": \"Qwen/Qwen2.5-VL-7B-Instruct\",\n", + " \"messages\": [\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": [\n", + " {\"type\": \"text\", \"text\": \"What’s in this image?\"},\n", + " {\n", + " \"type\": \"image_url\",\n", + " \"image_url\": {\n", + " \"url\": \"https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true\"\n", + " },\n", + " },\n", + " ],\n", + " }\n", + " ],\n", + " \"max_tokens\": 300,\n", + "}\n", + "\n", + "response = requests.post(url, json=data)\n", + "print_highlight(response.text)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using OpenAI Python Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from openai import OpenAI\n", + "\n", + "client = OpenAI(base_url=f\"http://localhost:{port}/v1\", api_key=\"None\")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"Qwen/Qwen2.5-VL-7B-Instruct\",\n", + " messages=[\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": [\n", + " {\n", + " \"type\": \"text\",\n", + " \"text\": \"What is in this image?\",\n", + " },\n", + " {\n", + " \"type\": \"image_url\",\n", + " \"image_url\": {\n", + " \"url\": \"https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true\"\n", + " },\n", + " },\n", + " ],\n", + " }\n", + " ],\n", + " max_tokens=300,\n", + ")\n", + "\n", + "print_highlight(response.choices[0].message.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multiple-Image Inputs\n", + "\n", + "The server also supports multiple images and interleaved text and images if the model supports it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from openai import OpenAI\n", + "\n", + "client = OpenAI(base_url=f\"http://localhost:{port}/v1\", api_key=\"None\")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"Qwen/Qwen2.5-VL-7B-Instruct\",\n", + " messages=[\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": [\n", + " {\n", + " \"type\": \"image_url\",\n", + " \"image_url\": {\n", + " \"url\": \"https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true\",\n", + " },\n", + " },\n", + " {\n", + " \"type\": \"image_url\",\n", + " \"image_url\": {\n", + " \"url\": \"https://raw.githubusercontent.com/sgl-project/sglang/main/assets/logo.png\",\n", + " },\n", + " },\n", + " {\n", + " \"type\": \"text\",\n", + " \"text\": \"I have two very different images. They are not related at all. \"\n", + " \"Please describe the first image in one sentence, and then describe the second image in another sentence.\",\n", + " },\n", + " ],\n", + " }\n", + " ],\n", + " temperature=0,\n", + ")\n", + "\n", + "print_highlight(response.choices[0].message.content)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(vision_process)" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs_new/docs/basic_usage/openai_api_vision.mdx b/docs_new/docs/basic_usage/openai_api_vision.mdx new file mode 100644 index 000000000..75e394e7d --- /dev/null +++ b/docs_new/docs/basic_usage/openai_api_vision.mdx @@ -0,0 +1,189 @@ +--- +title: "OpenAI APIs - Vision" +metatags: + description: "This tutorial covers the vision APIs for vision language models." +--- +SGLang provides OpenAI-compatible APIs to enable a smooth transition from OpenAI services to self-hosted local models. +A complete reference for the API is available in the [OpenAI API Reference](https://platform.openai.com/docs/guides/vision). +This tutorial covers the vision APIs for vision language models. + +SGLang supports various vision language models such as Llama 3.2, LLaVA-OneVision, Qwen2.5-VL, Gemma3 and [more](../supported-models). + +As an alternative to the OpenAI API, you can also use the [SGLang offline engine](https://github.com/sgl-project/sglang/blob/main/examples/runtime/engine/offline_batch_inference_vlm.py). + + +## Launch A Server + +Launch the server in your terminal and wait for it to initialize. + + + +```python Example +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, print_highlight, terminate_process + +vision_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model-path Qwen/Qwen2.5-VL-7B-Instruct --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + +## Using cURL + +Once the server is up, you can send test requests using curl or requests. + + + +```python Example +import subprocess + +curl_command = f""" +curl -s http://localhost:{port}/v1/chat/completions \\ + -H "Content-Type: application/json" \\ + -d '{{ + "model": "Qwen/Qwen2.5-VL-7B-Instruct", + "messages": [ + {{ + "role": "user", + "content": [ + {{ + "type": "text", + "text": "What’s in this image?" + }}, + {{ + "type": "image_url", + "image_url": {{ + "url": "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true" + }} + }} + ] + }} + ], + "max_tokens": 300 + }}' +""" + +response = subprocess.check_output(curl_command, shell=True).decode() +print_highlight(response) + + +response = subprocess.check_output(curl_command, shell=True).decode() +print_highlight(response) +``` + +## Using Python Requests + + + +```python Example +import requests + +url = f"http://localhost:{port}/v1/chat/completions" + +data = { + "model": "Qwen/Qwen2.5-VL-7B-Instruct", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": "What’s in this image?"}, + { + "type": "image_url", + "image_url": { + "url": "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true" + }, + }, + ], + } + ], + "max_tokens": 300, +} + +response = requests.post(url, json=data) +print_highlight(response.text) +``` + +## Using OpenAI Python Client + + + +```python Example +from openai import OpenAI + +client = OpenAI(base_url=f"http://localhost:{port}/v1", api_key="None") + +response = client.chat.completions.create( + model="Qwen/Qwen2.5-VL-7B-Instruct", + messages=[ + { + "role": "user", + "content": [ + { + "type": "text", + "text": "What is in this image?", + }, + { + "type": "image_url", + "image_url": { + "url": "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true" + }, + }, + ], + } + ], + max_tokens=300, +) + +print_highlight(response.choices[0].message.content) +``` + +## Multiple-Image Inputs + +The server also supports multiple images and interleaved text and images if the model supports it. + + + +```python Example +from openai import OpenAI + +client = OpenAI(base_url=f"http://localhost:{port}/v1", api_key="None") + +response = client.chat.completions.create( + model="Qwen/Qwen2.5-VL-7B-Instruct", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": { + "url": "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true", + }, + }, + { + "type": "image_url", + "image_url": { + "url": "https://raw.githubusercontent.com/sgl-project/sglang/main/assets/logo.png", + }, + }, + { + "type": "text", + "text": "I have two very different images. They are not related at all. " + "Please describe the first image in one sentence, and then describe the second image in another sentence.", + }, + ], + } + ], + temperature=0, +) + +print_highlight(response.choices[0].message.content) +``` + + +```python Example +terminate_process(vision_process) +``` diff --git a/docs_new/docs/basic_usage/overview.mdx b/docs_new/docs/basic_usage/overview.mdx new file mode 100644 index 000000000..6f15d1c33 --- /dev/null +++ b/docs_new/docs/basic_usage/overview.mdx @@ -0,0 +1,11 @@ +--- +title: Basic Usage +description: Core APIs and common usage patterns for SGLang. +--- + +- [OpenAI-Compatible APIs](./openai_api_completions) — Chat completions, vision, and embeddings +- [Ollama API](./ollama_api) +- [Offline Engine API](./offline_engine_api) +- [Native API](./native_api) +- [Sampling Parameters](./sampling_params) +- [Popular Model Usage](./popular_model_usage) — DeepSeek, GLM, Qwen, Llama, and more diff --git a/docs_new/docs/basic_usage/popular_model_usage.mdx b/docs_new/docs/basic_usage/popular_model_usage.mdx new file mode 100644 index 000000000..db61169e7 --- /dev/null +++ b/docs_new/docs/basic_usage/popular_model_usage.mdx @@ -0,0 +1,14 @@ +--- +title: "Popular Model Usage (DeepSeek, GPT-OSS, GLM, Llama, MiniMax, Qwen, and more)" +description: "Documentation for Popular Model Usage (DeepSeek, GPT-OSS, GLM, Llama, MiniMax, Qwen, and more)" +--- +- [Deepseek V3](./deepseek_v3) +- [Deepseek V32](./deepseek_v32) +- [Glm45](./glm45) +- [Glmv](./glmv) +- [Gpt Oss](./gpt_oss) +- [Kimi K2 5](./kimi_k2_5) +- [Minimax M2](./minimax_m2) +- [Qwen3](./qwen3) +- [Qwen3 Vl](./qwen3_vl) +- [Llama4](./llama4) diff --git a/docs_new/docs/basic_usage/popular_model_usage.rst b/docs_new/docs/basic_usage/popular_model_usage.rst new file mode 100644 index 000000000..06d426661 --- /dev/null +++ b/docs_new/docs/basic_usage/popular_model_usage.rst @@ -0,0 +1,16 @@ +Popular Model Usage (DeepSeek, GPT-OSS, GLM, Llama, MiniMax, Qwen, and more) +=============================================================== + +.. toctree:: + :maxdepth: 1 + + deepseek_v3.md + deepseek_v32.md + glm45.md + glmv.md + gpt_oss.md + kimi_k2_5.md + minimax_m2.md + qwen3.md + qwen3_vl.md + llama4.md diff --git a/docs_new/docs/basic_usage/qwen3.mdx b/docs_new/docs/basic_usage/qwen3.mdx new file mode 100644 index 000000000..4c316dcf8 --- /dev/null +++ b/docs_new/docs/basic_usage/qwen3.mdx @@ -0,0 +1,42 @@ +--- +title: "Qwen3-Next Usage" +metatags: + description: "Deploy Qwen3-Next with SGLang: 80B hybrid Mamba model, MambaRadixCache prefix caching, EAGLE speculative decoding. Supports H100/H200 GPUs." +--- +SGLang has supported Qwen3-Next-80B-A3B-Instruct and Qwen3-Next-80B-A3B-Thinking since [this PR](https://github.com/sgl-project/sglang/pull/10233). + +## Launch Qwen3-Next with SGLang + +To serve Qwen3-Next models on 4xH100/H200 GPUs: + +```bash Command +python3 -m sglang.launch_server --model Qwen/Qwen3-Next-80B-A3B-Instruct --tp 4 +``` + +### Configuration Tips +- `--max-mamba-cache-size`: Adjust `--max-mamba-cache-size` to increase mamba cache space and max running requests capability. It will decrease KV cache space as a trade-off. You can adjust it according to workload. +- `--mamba-ssm-dtype`: `bfloat16` or `float32`, use `bfloat16` to save mamba cache size and `float32` to get more accurate results. The default setting is `float32`. +- `--mamba-full-memory-ratio`: The ratio of mamba state memory to full kv cache memory. The default is 0.9. + +### Mamba Radix Cache +SGLang supports prefix caching for Qwen3-Next models named `MambaRadixCache`, which improves inference speed by reusing computation results. There are two versions of `MambaRadixCache`: +- `no_buffer`: The default version, which is also other hybrid linear models' choice. When it is enabled, SGLang will automatically close overlap schedule for compatibility reasons. +- `extra_buffer`: An optimized version that is compatible with features like page size > 1, overlap schedule, and speculative decoding. It also supports storing mamba state in branching positions. However, it requires two extra mamba spaces for a ping-pong buffer for each request. To enable it, add the argument `--mamba-scheduler-strategy extra_buffer` when launching the server. + +### EAGLE Speculative Decoding +**Description**: SGLang has supported Qwen3-Next models with [EAGLE speculative decoding](../advanced_features/speculative_decoding#EAGLE-Decoding). + +**Usage**: +Add arguments `--speculative-algorithm`, `--speculative-num-steps`, `--speculative-eagle-topk` and `--speculative-num-draft-tokens` to enable this feature. For example: + +```bash Command +python3 -m sglang.launch_server \ + --model Qwen/Qwen3-Next-80B-A3B-Instruct \ + --tp 4 \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --speculative-algo NEXTN +``` + +Details can be seen in [this PR](https://github.com/sgl-project/sglang/pull/10233). diff --git a/docs_new/docs/basic_usage/qwen3_vl.mdx b/docs_new/docs/basic_usage/qwen3_vl.mdx new file mode 100644 index 000000000..a98a5b4e8 --- /dev/null +++ b/docs_new/docs/basic_usage/qwen3_vl.mdx @@ -0,0 +1,133 @@ +--- +title: "Qwen3-VL Usage" +metatags: + description: "Deploy Qwen3-VL vision models with SGLang: FP8 and BF16 modes, image and video input, expert parallelism. Supports H100, H200, A100 GPUs." +--- +[Qwen3-VL](https://huggingface.co/collections/Qwen/qwen3-vl) +is Alibaba’s latest multimodal large language model with strong text, vision, and reasoning capabilities. +SGLang supports Qwen3-VL Family of models with Image and Video input support. + +## Launch commands for SGLang + +Below are suggested launch commands tailored for different hardware / precision modes + +### FP8 (quantised) mode +For high memory-efficiency and latency optimized deployments (e.g., on H100, H200) where FP8 checkpoint is supported: +```bash Command +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-235B-A22B-Instruct-FP8 \ + --tp 8 \ + --ep 8 \ + --host 0.0.0.0 \ + --port 30000 \ + --keep-mm-feature-on-device +``` + +### Non-FP8 (BF16 / full precision) mode +For deployments on A100/H100 where BF16 is used (or FP8 snapshot not used): +```bash Command +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-235B-A22B-Instruct \ + --tp 8 \ + --ep 8 \ + --host 0.0.0.0 \ + --port 30000 \ +``` + +## Hardware-specific notes / recommendations + +- On H100 with FP8: Use the FP8 checkpoint for best memory efficiency. +- On A100 / H100 with BF16 (non-FP8): It’s recommended to use `--mm-max-concurrent-calls` to control parallel throughput and GPU memory usage during image/video inference. +- On H200 & B200: The model can be run “out of the box”, supporting full context length plus concurrent image + video processing. + +## Sending Image/Video Requests + +### Image input: + +```python Example +import requests + +url = f"http://localhost:30000/v1/chat/completions" + +data = { + "model": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": "What’s in this image?"}, + { + "type": "image_url", + "image_url": { + "url": "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true" + }, + }, + ], + } + ], + "max_tokens": 300, +} + +response = requests.post(url, json=data) +print(response.text) +``` + +### Video Input: + +```python Example +import requests + +url = f"http://localhost:30000/v1/chat/completions" + +data = { + "model": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": "What’s happening in this video?"}, + { + "type": "video_url", + "video_url": { + "url": "https://github.com/sgl-project/sgl-test-files/raw/refs/heads/main/videos/jobs_presenting_ipod.mp4" + }, + }, + ], + } + ], + "max_tokens": 300, +} + +response = requests.post(url, json=data) +print(response.text) +``` + +## Important Server Parameters and Flags + +When launching the model server for **multimodal support**, you can use the following command-line arguments to fine-tune performance and behavior: + +- `--mm-attention-backend`: Specify multimodal attention backend. Eg. `fa3`(Flash Attention 3) +- `--mm-max-concurrent-calls `: Specifies the **maximum number of concurrent asynchronous multimodal data processing calls** allowed on the server. Use this to control parallel throughput and GPU memory usage during image/video inference. +- `--mm-per-request-timeout `: Defines the **timeout duration (in seconds)** for each multimodal request. If a request exceeds this time limit (e.g., for very large video inputs), it will be automatically terminated. +- `--keep-mm-feature-on-device`: Instructs the server to **retain multimodal feature tensors on the GPU** after processing. This avoids device-to-host (D2H) memory copies and improves performance for repeated or high-frequency inference workloads. +- `SGLANG_USE_CUDA_IPC_TRANSPORT=1`: Shared memory pool based CUDA IPC for multi-modal data transport. For significantly improving e2e latency. + +### Example usage with the above optimizations: +```bash Command +SGLANG_USE_CUDA_IPC_TRANSPORT=1 \ +SGLANG_VLM_CACHE_SIZE_MB=0 \ +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-235B-A22B-Instruct \ + --host 0.0.0.0 \ + --port 30000 \ + --trust-remote-code \ + --tp-size 8 \ + --enable-cache-report \ + --log-level info \ + --max-running-requests 64 \ + --mem-fraction-static 0.65 \ + --chunked-prefill-size 8192 \ + --attention-backend fa3 \ + --mm-attention-backend fa3 \ + --enable-metrics +``` diff --git a/docs_new/docs/basic_usage/sampling_params.mdx b/docs_new/docs/basic_usage/sampling_params.mdx new file mode 100644 index 000000000..4b271a229 --- /dev/null +++ b/docs_new/docs/basic_usage/sampling_params.mdx @@ -0,0 +1,576 @@ +--- +title: "Sampling Parameters" +metatags: + description: "Complete reference for SGLang sampling parameters: temperature, top_p, top_k, frequency penalty, stop tokens, and more." +--- +This doc describes the sampling parameters of the SGLang Runtime. It is the low-level endpoint of the runtime. +If you want a high-level endpoint that can automatically handle chat templates, consider using the [OpenAI Compatible API](./openai_api_completions). + +## `/generate` Endpoint + +The `/generate` endpoint accepts the following parameters in JSON format. For detailed usage, see the [native API doc](./native_api). The object is defined at `io_struct.py::GenerateReqInput`. You can also read the source code to find more arguments and docs. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentType/DefaultDescription
      text`Optional[Union[List[str], str]] = None`The input prompt. Can be a single prompt or a batch of prompts.
      input_ids`Optional[Union[List[List[int]], List[int]]] = None`The token IDs for text; one can specify either text or input_ids.
      input_embeds`Optional[Union[List[List[List[float]]], List[List[float]]]] = None`The embeddings for input_ids; one can specify either text, input_ids, or input_embeds.
      image_data`Optional[Union[List[List[ImageDataItem]], List[ImageDataItem], ImageDataItem]] = None`The image input. Supports three formats: (1) **Raw images**: PIL Image, file path, URL, or base64 string; (2) **Processor output**: Dict with `format: "processor_output"` containing HuggingFace processor outputs; (3) **Precomputed embeddings**: Dict with `format: "precomputed_embedding"` and `feature` containing pre-calculated visual embeddings. Can be a single image, list of images, or list of lists of images. See [Multimodal Input Formats](#multimodal-input-formats) for details.
      audio_data`Optional[Union[List[AudioDataItem], AudioDataItem]] = None`The audio input. Can be a file name, URL, or base64 encoded string.
      sampling_params`Optional[Union[List[Dict], Dict]] = None`The sampling parameters as described in the sections below.
      rid`Optional[Union[List[str], str]] = None`The request ID.
      return_logprob`Optional[Union[List[bool], bool]] = None`Whether to return log probabilities for tokens.
      logprob_start_len`Optional[Union[List[int], int]] = None`If return_logprob, the start location in the prompt for returning logprobs. Default is "-1", which returns logprobs for output tokens only.
      top_logprobs_num`Optional[Union[List[int], int]] = None`If return_logprob, the number of top logprobs to return at each position.
      token_ids_logprob`Optional[Union[List[List[int]], List[int]]] = None`If return_logprob, the token IDs to return logprob for.
      return_text_in_logprobs`bool = False`Whether to detokenize tokens in text in the returned logprobs.
      stream`bool = False`Whether to stream output.
      lora_path`Optional[Union[List[Optional[str]], Optional[str]]] = None`The path to the LoRA.
      custom_logit_processor`Optional[Union[List[Optional[str]], str]] = None`Custom logit processor for advanced sampling control. Must be a serialized instance of `CustomLogitProcessor` using its `to_str()` method. For usage see below.
      return_hidden_states`Union[List[bool], bool] = False`Whether to return hidden states.
      return_routed_experts`bool = False`Whether to return routed experts for MoE models. Requires `--enable-return-routed-experts` server flag. Returns base64-encoded int32 expert IDs as a flattened array with logical shape `[num_tokens, num_layers, top_k]`.
      + +## Sampling parameters + +The object is defined at `sampling_params.py::SamplingParams`. You can also read the source code to find more arguments and docs. + +### Note on defaults + +By default, SGLang initializes several sampling parameters from the model's `generation_config.json` (when the server is launched with `--sampling-defaults model`, which is the default). To use SGLang/OpenAI constant defaults instead, start the server with `--sampling-defaults openai`. You can always override any parameter per request via `sampling_params`. + +```bash Command +# Use model-provided defaults from generation_config.json (default behavior) +python -m sglang.launch_server --model-path --sampling-defaults model + +# Use SGLang/OpenAI constant defaults instead +python -m sglang.launch_server --model-path --sampling-defaults openai +``` + +### Core parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentType/DefaultDescription
      max_new_tokens`int = 128`The maximum output length measured in tokens.
      stop`Optional[Union[str, List[str]]] = None`One or multiple [stop words](https://platform.openai.com/docs/api-reference/chat/create#chat-create-stop). Generation will stop if one of these words is sampled.
      stop_token_ids`Optional[List[int]] = None`Provide stop words in the form of token IDs. Generation will stop if one of these token IDs is sampled.
      stop_regex`Optional[Union[str, List[str]]] = None`Stop when hitting any of the regex patterns in this list
      temperature`float (model default; fallback 1.0)`[Temperature](https://platform.openai.com/docs/api-reference/chat/create#chat-create-temperature) when sampling the next token. `temperature = 0` corresponds to greedy sampling, a higher temperature leads to more diversity.
      top_p`float (model default; fallback 1.0)`[Top-p](https://platform.openai.com/docs/api-reference/chat/create#chat-create-top_p) selects tokens from the smallest sorted set whose cumulative probability exceeds `top_p`. When `top_p = 1`, this reduces to unrestricted sampling from all tokens.
      top_k`int (model default; fallback -1)`[Top-k](https://developer.nvidia.com/blog/how-to-get-better-outputs-from-your-large-language-model/#predictability_vs_creativity) randomly selects from the `k` highest-probability tokens.
      min_p`float (model default; fallback 0.0)`[Min-p](https://github.com/huggingface/transformers/issues/27670) samples from tokens with probability larger than `min_p * highest_token_probability`.
      + +### Penalizers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentType/DefaultDescription
      frequency_penalty`float = 0.0`Penalizes tokens based on their frequency in generation so far. Must be between `-2` and `2` where negative numbers encourage repeatment of tokens and positive number encourages sampling of new tokens. The scaling of penalization grows linearly with each appearance of a token.
      presence_penalty`float = 0.0`Penalizes tokens if they appeared in the generation so far. Must be between `-2` and `2` where negative numbers encourage repeatment of tokens and positive number encourages sampling of new tokens. The scaling of the penalization is constant if a token occurred.
      repetition_penalty`float = 1.0`Scales the logits of previously generated tokens to discourage (values > 1) or encourage (values < 1) repetition. Valid range is `[0, 2]`; `1.0` leaves probabilities unchanged.
      min_new_tokens`int = 0`Forces the model to generate at least `min_new_tokens` until a stop word or EOS token is sampled. Note that this might lead to unintended behavior, for example, if the distribution is highly skewed towards these tokens.
      + +### Constrained decoding + +Please refer to our dedicated guide on [constrained decoding](../advanced_features/structured_outputs) for the following parameters. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentType/DefaultDescription
      json_schema`Optional[str] = None`JSON schema for structured outputs.
      regex`Optional[str] = None`Regex for structured outputs.
      ebnf`Optional[str] = None`EBNF for structured outputs.
      structural_tag`Optional[str] = None`The structal tag for structured outputs.
      + +### Other options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentType/DefaultDescription
      n`int = 1`Specifies the number of output sequences to generate per request. (Generating multiple outputs in one request (n > 1) is discouraged; repeating the same prompts several times offers better control and efficiency.)
      ignore_eos`bool = False`Don't stop generation when EOS token is sampled.
      skip_special_tokens`bool = True`Remove special tokens during decoding.
      spaces_between_special_tokens`bool = True`Whether or not to add spaces between special tokens during detokenization.
      no_stop_trim`bool = False`Don't trim stop words or EOS token from the generated text.
      custom_params`Optional[List[Optional[Dict[str, Any]]]] = None`Used when employing `CustomLogitProcessor`. For usage, see below.
      + +## Examples + +### Normal + +Launch a server: + +```bash Command +python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --port 30000 +``` + +Send a request: + +```python Example +import requests + +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "The capital of France is", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 32, + }, + }, +) +print(response.json()) +``` + +Detailed example in [send request](./send_request). + +### Streaming + +Send a request and stream the output: + +```python Example +import requests, json + +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "The capital of France is", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 32, + }, + "stream": True, + }, + stream=True, +) + +prev = 0 +for chunk in response.iter_lines(decode_unicode=False): + chunk = chunk.decode("utf-8") + if chunk and chunk.startswith("data:"): + if chunk == "data: [DONE]": + break + data = json.loads(chunk[5:].strip("\n")) + output = data["text"].strip() + print(output[prev:], end="", flush=True) + prev = len(output) +print("") +``` + +Detailed example in [openai compatible api](./openai_api_completions). + +### Multimodal + +Launch a server: + +```bash Command +python3 -m sglang.launch_server --model-path lmms-lab/llava-onevision-qwen2-7b-ov +``` + +Download an image: + +```bash Command +curl -o example_image.png -L https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true +``` + +Send a request: + +```python Example +import requests + +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n" + "<|im_start|>user\n\nDescribe this image in a very short sentence.<|im_end|>\n" + "<|im_start|>assistant\n", + "image_data": "example_image.png", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 32, + }, + }, +) +print(response.json()) +``` + +The `image_data` can be a file name, a URL, or a base64 encoded string. See also `python/sglang/srt/utils.py:load_image`. + +Streaming is supported in a similar manner as [above](#streaming). + +Detailed example in [OpenAI API Vision](./openai_api_vision). + +### Structured Outputs (JSON, Regex, EBNF) + +You can specify a JSON schema, regular expression or [EBNF](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) to constrain the model output. The model output will be guaranteed to follow the given constraints. Only one constraint parameter (`json_schema`, `regex`, or `ebnf`) can be specified for a request. + +SGLang supports two grammar backends: + +- [XGrammar](https://github.com/mlc-ai/xgrammar) (default): Supports JSON schema, regular expression, and EBNF constraints. + - XGrammar currently uses the [GGML BNF format](https://github.com/ggerganov/llama.cpp/blob/master/grammars/README). +- [Outlines](https://github.com/dottxt-ai/outlines): Supports JSON schema and regular expression constraints. + +If instead you want to initialize the Outlines backend, you can use `--grammar-backend outlines` flag: + +```bash Command +python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ +--port 30000 --host 0.0.0.0 --grammar-backend [xgrammar|outlines] # xgrammar or outlines (default: xgrammar) +``` + +```python Example +import json +import requests + +json_schema = json.dumps({ + "type": "object", + "properties": { + "name": {"type": "string", "pattern": "^[\\w]+$"}, + "population": {"type": "integer"}, + }, + "required": ["name", "population"], +}) + +# JSON (works with both Outlines and XGrammar) +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "Here is the information of the capital of France in the JSON format.\n", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 64, + "json_schema": json_schema, + }, + }, +) +print(response.json()) + +# Regular expression (Outlines backend only) +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "Paris is the capital of", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 64, + "regex": "(France|England)", + }, + }, +) +print(response.json()) + +# EBNF (XGrammar backend only) +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "Write a greeting.", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 64, + "ebnf": 'root ::= "Hello" | "Hi" | "Hey"', + }, + }, +) +print(response.json()) +``` + +Detailed example in [structured outputs](../advanced_features/structured_outputs). + +### Custom logit processor + +Launch a server with `--enable-custom-logit-processor` flag on. + +```bash Command +python -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3-8B-Instruct \ + --port 30000 \ + --enable-custom-logit-processor +``` + +Define a custom logit processor that will always sample a specific token id. + +```python Example +from sglang.srt.sampling.custom_logit_processor import CustomLogitProcessor + +class DeterministicLogitProcessor(CustomLogitProcessor): + """A dummy logit processor that changes the logits to always + sample the given token id. + """ + + def __call__(self, logits, custom_param_list): + # Check that the number of logits matches the number of custom parameters + assert logits.shape[0] == len(custom_param_list) + key = "token_id" + + for i, param_dict in enumerate(custom_param_list): + # Mask all other tokens + logits[i, :] = -float("inf") + # Assign highest probability to the specified token + logits[i, param_dict[key]] = 0.0 + return logits +``` + +Send a request: + +```python Example +import requests + +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "The capital of France is", + "custom_logit_processor": DeterministicLogitProcessor().to_str(), + "sampling_params": { + "temperature": 0.0, + "max_new_tokens": 32, + "custom_params": {"token_id": 5}, + }, + }, +) +print(response.json()) +``` + +Send an OpenAI chat completion request: + +```python Example +import openai +from sglang.utils import print_highlight + +client = openai.Client(base_url="http://127.0.0.1:30000/v1", api_key="None") + +response = client.chat.completions.create( + model="meta-llama/Meta-Llama-3-8B-Instruct", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0.0, + max_tokens=32, + extra_body={ + "custom_logit_processor": DeterministicLogitProcessor().to_str(), + "custom_params": {"token_id": 5}, + }, +) + +print_highlight(f"Response: {response}") +``` diff --git a/docs_new/docs/basic_usage/send_request.ipynb b/docs_new/docs/basic_usage/send_request.ipynb new file mode 100644 index 000000000..412f1fa60 --- /dev/null +++ b/docs_new/docs/basic_usage/send_request.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sending Requests\n", + "This notebook provides a quick-start guide to use SGLang in chat completions after installation. Once your server is running, API documentation is available at `http://localhost:30000/docs` (Swagger UI), `http://localhost:30000/redoc` (ReDoc), or `http://localhost:30000/openapi.json` (OpenAPI spec, useful for AI agents). Replace `30000` with your port if using a different one.\n", + "\n", + "- For Vision Language Models, see [OpenAI APIs - Vision](openai_api_vision).\n", + "- For Embedding Models, see [OpenAI APIs - Embedding](openai_api_embeddings) and [Encode (embedding model)](native_api#encode-embedding-model).\n", + "- For Reward Models, see [Classify (reward model)](native_api#classify-reward-model)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch A Server" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import wait_for_server, print_highlight, terminate_process\n", + "\n", + "# This is equivalent to running the following command in your terminal\n", + "# python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct --host 0.0.0.0\n", + "\n", + "server_process, port = launch_server_cmd(\"\"\"\n", + "python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct \\\n", + " --host 0.0.0.0 --log-level warning\n", + "\"\"\")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using cURL\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import subprocess, json\n", + "\n", + "curl_command = f\"\"\"\n", + "curl -s http://localhost:{port}/v1/chat/completions \\\n", + " -H \"Content-Type: application/json\" \\\n", + " -d '{{\"model\": \"qwen/qwen2.5-0.5b-instruct\", \"messages\": [{{\"role\": \"user\", \"content\": \"What is the capital of France?\"}}]}}'\n", + "\"\"\"\n", + "\n", + "response = json.loads(subprocess.check_output(curl_command, shell=True))\n", + "print_highlight(response)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using Python Requests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "\n", + "url = f\"http://localhost:{port}/v1/chat/completions\"\n", + "\n", + "data = {\n", + " \"model\": \"qwen/qwen2.5-0.5b-instruct\",\n", + " \"messages\": [{\"role\": \"user\", \"content\": \"What is the capital of France?\"}],\n", + "}\n", + "\n", + "response = requests.post(url, json=data)\n", + "print_highlight(response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using OpenAI Python Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import openai\n", + "\n", + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")\n", + "\n", + "response = client.chat.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": \"List 3 countries and their capitals.\"},\n", + " ],\n", + " temperature=0,\n", + " max_tokens=64,\n", + ")\n", + "print_highlight(response)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Streaming" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import openai\n", + "\n", + "client = openai.Client(base_url=f\"http://127.0.0.1:{port}/v1\", api_key=\"None\")\n", + "\n", + "# Use stream=True for streaming responses\n", + "response = client.chat.completions.create(\n", + " model=\"qwen/qwen2.5-0.5b-instruct\",\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": \"List 3 countries and their capitals.\"},\n", + " ],\n", + " temperature=0,\n", + " max_tokens=64,\n", + " stream=True,\n", + ")\n", + "\n", + "# Handle the streaming output\n", + "for chunk in response:\n", + " if chunk.choices[0].delta.content:\n", + " print(chunk.choices[0].delta.content, end=\"\", flush=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using Native Generation APIs\n", + "\n", + "You can also use the native `/generate` endpoint with requests, which provides more flexibility. An API reference is available at [Sampling Parameters](sampling_params)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "\n", + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": \"The capital of France is\",\n", + " \"sampling_params\": {\n", + " \"temperature\": 0,\n", + " \"max_new_tokens\": 32,\n", + " },\n", + " },\n", + ")\n", + "\n", + "print_highlight(response.json())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Streaming" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import requests, json\n", + "\n", + "response = requests.post(\n", + " f\"http://localhost:{port}/generate\",\n", + " json={\n", + " \"text\": \"The capital of France is\",\n", + " \"sampling_params\": {\n", + " \"temperature\": 0,\n", + " \"max_new_tokens\": 32,\n", + " },\n", + " \"stream\": True,\n", + " },\n", + " stream=True,\n", + ")\n", + "\n", + "prev = 0\n", + "for chunk in response.iter_lines(decode_unicode=False):\n", + " chunk = chunk.decode(\"utf-8\")\n", + " if chunk and chunk.startswith(\"data:\"):\n", + " if chunk == \"data: [DONE]\":\n", + " break\n", + " data = json.loads(chunk[5:].strip(\"\\n\"))\n", + " output = data[\"text\"]\n", + " print(output[prev:], end=\"\", flush=True)\n", + " prev = len(output)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs_new/docs/basic_usage/send_request.mdx b/docs_new/docs/basic_usage/send_request.mdx new file mode 100644 index 000000000..15ce9b121 --- /dev/null +++ b/docs_new/docs/basic_usage/send_request.mdx @@ -0,0 +1,172 @@ +--- +title: "Tutorial: Sending a request" +metatags: + description: "This notebook provides a quick-start guide to use SGLang in chat completions after installation. " +--- +This notebook provides a quick-start guide to use SGLang in chat completions after installation. Once your server is running, API documentation is available at `http://localhost:30000/docs` (Swagger UI), `http://localhost:30000/redoc` (ReDoc), or `http://localhost:30000/openapi.json` (OpenAPI spec, useful for AI agents). Replace `30000` with your port if using a different one. + +- For Vision Language Models, see [OpenAI APIs - Vision](./openai_api_vision). +- For Embedding Models, see [OpenAI APIs - Embedding](./openai_api_embeddings) and [Encode (embedding model)](./native_api#encode-embedding-model). +- For Reward Models, see [Classify (reward model)](./native_api#classify-reward-model). + + +## Launch A Server + + + +```python Example +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import wait_for_server, print_highlight, terminate_process + +# This is equivalent to running the following command in your terminal +# python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct --host 0.0.0.0 + +server_process, port = launch_server_cmd( + """ +python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct \ + --host 0.0.0.0 --log-level warning +""" +) + +wait_for_server(f"http://localhost:{port}") +``` + +## Using cURL + + + + +```python Example +import subprocess, json + +curl_command = f""" +curl -s http://localhost:{port}/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{{"model": "qwen/qwen2.5-0.5b-instruct", "messages": [{{"role": "user", "content": "What is the capital of France?"}}]}}' +""" + +response = json.loads(subprocess.check_output(curl_command, shell=True)) +print_highlight(response) +``` + +## Using Python Requests + + + +```python Example +import requests + +url = f"http://localhost:{port}/v1/chat/completions" + +data = { + "model": "qwen/qwen2.5-0.5b-instruct", + "messages": [{"role": "user", "content": "What is the capital of France?"}], +} + +response = requests.post(url, json=data) +print_highlight(response.json()) +``` + +## Using OpenAI Python Client + + + +```python Example +import openai + +client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None") + +response = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0, + max_tokens=64, +) +print_highlight(response) +``` + +### Streaming + + + +```python Example +import openai + +client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None") + +# Use stream=True for streaming responses +response = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0, + max_tokens=64, + stream=True, +) + +# Handle the streaming output +for chunk in response: + if chunk.choices[0].delta.content: + print(chunk.choices[0].delta.content, end="", flush=True) +``` + +## Using Native Generation APIs + +You can also use the native `/generate` endpoint with requests, which provides more flexibility. An API reference is available at [Sampling Parameters](./sampling_params). + + + +```python Example +import requests + +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": "The capital of France is", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 32, + }, + }, +) + +print_highlight(response.json()) +``` +### Streaming + + + +```python Example +import requests, json + +response = requests.post( + f"http://localhost:{port}/generate", + json={ + "text": "The capital of France is", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 32, + }, + "stream": True, + }, + stream=True, +) + +prev = 0 +for chunk in response.iter_lines(decode_unicode=False): + chunk = chunk.decode("utf-8") + if chunk and chunk.startswith("data:"): + if chunk == "data: [DONE]": + break + data = json.loads(chunk[5:].strip("\n")) + output = data["text"] + print(output[prev:], end="", flush=True) + prev = len(output) +``` + +```python Example +terminate_process(server_process) +``` diff --git a/docs_new/docs/developer_guide/JIT_kernels.mdx b/docs_new/docs/developer_guide/JIT_kernels.mdx new file mode 100644 index 000000000..27fe52a45 --- /dev/null +++ b/docs_new/docs/developer_guide/JIT_kernels.mdx @@ -0,0 +1,266 @@ +--- +title: "Development Guide for JIT Kernels" +sidebarTitle: "JIT Kernels" +metatags: + description: "SGLang JIT kernel development: clangd setup, TensorMatcher, LaunchKernel, add_constant example walkthrough." +--- +## Environment Setup + +We strongly recommend using `clangd` as the language server for JIT kernel development. +For Ubuntu/Debian, you can download clangd from [apt.llvm.org](https://apt.llvm.org/). +If you are using VS Code, we recommend installing the `clangd` extension for better IDE integration. + +All JIT-related files are located in `python/sglang/jit_kernel`. +Unlike `sgl-kernel`, which compiles CUDA/C++ binaries ahead of time (AOT), just-in-time (JIT) kernels are compiled at runtime. +Consequently, a static `compile_commands.json` cannot be generated. +To enable code completion with `clangd`, run `python -m sglang.jit_kernel` to generate a `.clangd` configuration file in your current directory. +After generating the file, restart the clangd language server. It should now recognize all JIT kernel files. + +## Code Structure + +### C++ Implementation + +C++ source code is located in `python/sglang/jit_kernel/csrc`. +Reusable functions should be placed in `python/sglang/jit_kernel/include`. + +We use [tvm-ffi](https://github.com/apache/tvm-ffi) for efficient foreign language bindings. +Refer to the [documentation](https://tvm.apache.org/ffi/) for advanced usage, such as exporting C++ objects. +Typically, `tvm::ffi::TensorView` is sufficient for passing PyTorch Tensors from Python. + +### Python Interface + +Python interfaces are defined in `python/sglang/jit_kernel`. +The `load_jit` utility function in `python/sglang/jit_kernel/utils.py` loads and returns the compiled module. +To export a C++ function (e.g., `cpp_func`), pass `cuda_wrappers=[("func", "cpp_func")]` to `load_jit`. +The function can then be called in Python as `module.func`. + +### C++ Utilities + +The following C++ utilities are available: + +#### Integer Range + +Similar to PyTorch, we provide an `irange` function to represent an integer range. + +```C++ Example +#include + +void test() { + for (auto i : host::irange(100)) { // [0, 100) + // do something + } + for (auto i : host::irange(0, 100)) { // [0, 100) + // do something + } +} + +``` + +#### Runtime Checking + +`RuntimeCheck` validates conditions at runtime. It accepts optional arguments for error reporting. +If the check fails, these arguments are output to aid debugging. +`RuntimeDeviceCheck` verifies the status of the last kernel launch. + +```C++ Example +#include +#include + +void test() { + host::RuntimeCheck(1 + 1 == 2, 1 + 1, " != ", 2); + host::RuntimeDeviceCheck(); + // check the provided `cudaError_t` + host::RuntimeDeviceCheck(cudaGetLastError()); +} + +``` + +#### Tensor Checking + +`TensorMatcher` provides a readable way to validate and extract tensor shape information. + +```cpp Example +#include + +void test(const tvm::ffi::TensorView k_cache, const tvm::ffi::TensorView v_cache) { + using namespace host; + + auto D = SymbolicSize{"D"}; // cache dimension + auto N = SymbolicSize{"N"}; // kvcache stride + auto dtype = SymbolicDType{}; + auto device = SymbolicDevice{}; + + TensorMatcher({-1, D}) // + .with_strides({N, 1}) + .with_dtype(dtype) + .with_device(device) + .verify(k_cache) + .verify(v_cache); +} +``` + +Configure the `TensorMatcher` with expected stride, dtype, and device properties before verification. +- If `with_strides` is omitted, the tensor is expected to be contiguous. +- Template arguments in `with_dtype` restrict the allowed data types. +- Template arguments in `with_device` restrict the allowed devices. +- Values passed to `with_xxx` methods enforce equality checks. +- Passing `-1` for size or stride allows matching any value. + +A `Symbolic` variable must resolve to the same value across all verifications. +Use `.unwrap()` to retrieve the matched value after verification. + + +`TensorMatcher` is a temporary expression and should not be stored in a variable. + + + +Add `//` at the end of the `TensorMatcher` chain to enforce proper indentation. + + +#### Kernel Launching + +`LaunchKernel::resolve_device` retrieves the current `cudaStream` from PyTorch. +Kernels can also be launched directly using `LaunchKernel`. + +```cpp Example +#include + +#include + +__global__ void kernel() {} + +void test() { + const auto num_blocks = 1; + const auto num_threads = 32; + const auto dynamic_smem = 0; + + DLDevice dev; // suppose this is initialized properly + host::LaunchKernel(num_blocks, num_threads, dev)(kernel); + + cudaStream_t stream = host::LaunchKernel::resolve_device(dev); + host::LaunchKernel(num_blocks, num_threads, stream, dynamic_smem)(kernel); +} + +``` + +## Add new kernels + +This section walks through a complete, end-to-end example of adding a new JIT kernel to the system. +We use a simple add_constant kernel as a running example, which adds a constant integer value to every element of an input tensor. + +Conceptually, the Python interface looks like this: + +```python Example +def add_constant(src: torch.Tensor, c: int): + return src + c +``` + +### STEP 1: Write the C++ kernel + +Write your CUDA kernel in [jit_kernel/csrc/add_constant.cuh](https://github.com/sgl-project/sglang/blob/main/python/sglang/jit_kernel/csrc/add_constant.cuh). For demonstration purposes, we pass the constant value as a template parameter. + +```cpp Example +#include // For TensorMatcher, SymbolicSize, SymbolicDevice +#include // For LaunchKernel +#include // For div_ceil, RuntimeCheck + +#include +#include + +#include +#include + +namespace { + +template +__global__ void add_constant_kernel(int32_t* dst, const int32_t* src, size_t length) { + size_t idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx < length) { + dst[idx] = src[idx] + kConstant; + } +} + +constexpr size_t kBlockSize = 256; + +// You can also use struct with static method as an alternative +template +void add_constant(tvm::ffi::TensorView dst, tvm::ffi::TensorView src) { + using namespace host; + + // 1. Validate input tensors + SymbolicSize N = {"num_elements"}; + SymbolicDevice device_; + TensorMatcher({N}) // 1D tensor, must be contiguous + .with_dtype() // must be int32 + .with_device(device_) // must be on CUDA device + .verify(dst) // check tensor dst + .verify(src); // check tensor src + + // 2. Extract required parameters, prepare for kernel launch + const size_t num_elements = N.unwrap(); + const size_t grid_size = div_ceil(num_elements, kBlockSize); + const DLDevice device = device_.unwrap(); + // some extra runtime checks using host::RuntimeCheck + RuntimeCheck(num_elements > 0, "We only support non-empty tensors, got num_elements = ", num_elements); + + // 3. Launch the kernel. Error code will be automatically checked. + LaunchKernel(grid_size, kBlockSize, device /*, dynamic_smem*/)( + // kernel function + add_constant_kernel, + // kernel arguments + static_cast(dst.data_ptr()), + static_cast(src.data_ptr()), + num_elements); +} + +} // namespace + +``` + +### STEP 2: Create Python Interfaces + +Next, expose the kernel through a Python wrapper. +Create a new file at [jit_kernel/add_constant.py](https://github.com/sgl-project/sglang/blob/main/python/sglang/jit_kernel/add_constant.py) and expose the needed interfaces. + +```python Example +from __future__ import annotations + +import functools +from typing import TYPE_CHECKING + +import torch + +from sglang.jit_kernel.utils import load_jit, make_cpp_args + +if TYPE_CHECKING: + from tvm_ffi.module import Module + + +@functools.cache +def _jit_add_constant_module(constant: int) -> Module: + args = make_cpp_args(constant) # pass all the template argument + return load_jit( + "add_constant", + *args, + cuda_files=["add_constant.cuh"], + cuda_wrappers=[("add_constant", f"add_constant<{args}>")], + ) + + +def add_constant(src: torch.Tensor, constant: int) -> torch.Tensor: + dst = torch.empty_like(src) + module = _jit_add_constant_module(constant) + module.add_constant(dst, src) + return dst + +``` + +### STEP 3: Use your kernel + +Finally, import and use the kernel like a regular Python function: + +```python Example +from sglang.jit_kernel.add_constant import add_constant +``` + +For a complete, runnable example, refer to [test_add_constant.py](https://github.com/sgl-project/sglang/blob/main/python/sglang/jit_kernel/test_add_constant.py). diff --git a/docs_new/docs/developer_guide/bench_serving.mdx b/docs_new/docs/developer_guide/bench_serving.mdx new file mode 100644 index 000000000..c00b72da1 --- /dev/null +++ b/docs_new/docs/developer_guide/bench_serving.mdx @@ -0,0 +1,358 @@ +--- +title: "Bench Serving Guide" +metatags: + description: "SGLang bench_serving: benchmark throughput, TTFT, ITL with random/sharegpt/image datasets. Multi-backend support." +--- +This guide explains how to benchmark online serving throughput and latency using `python -m sglang.bench_serving`. It supports multiple inference backends via OpenAI-compatible and native endpoints, and produces both console metrics and optional JSONL outputs. + +### What it does + +- Generates synthetic or dataset-driven prompts and submits them to a target serving endpoint +- Measures throughput, time-to-first-token (TTFT), inter-token latency (ITL), per-request end-to-end latency, and more +- Supports streaming or non-streaming modes, rate control, and concurrency limits + +### Supported backends and endpoints + +- `sglang` / `sglang-native`: `POST /generate` +- `sglang-oai`, `vllm`, `lmdeploy`: `POST /v1/completions` +- `sglang-oai-chat`, `vllm-chat`, `lmdeploy-chat`: `POST /v1/chat/completions` +- `trt` (TensorRT-LLM): `POST /v2/models/ensemble/generate_stream` +- `gserver`: Custom server (Not Implemented yet in this script) +- `truss`: `POST /v1/models/model:predict` + +If `--base-url` is provided, requests are sent to it. Otherwise, `--host` and `--port` are used. When `--model` is not provided, the script will attempt to query `GET /v1/models` for an available model ID (OpenAI-compatible endpoints). + +### Prerequisites + +- Python 3.8+ +- Dependencies typically used by this script: `aiohttp`, `numpy`, `requests`, `tqdm`, `transformers`, and for some datasets `datasets`, `pillow`, `pybase64`. Install as needed. +- An inference server running and reachable via the endpoints above +- If your server requires authentication, set environment variable `OPENAI_API_KEY` (used as `Authorization: Bearer `) + +### Quick start + +Run a basic benchmark against an sglang server exposing `/generate`: + +```bash Command +python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct +``` + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 --port 30000 \ + --num-prompts 1000 \ + --model meta-llama/Llama-3.1-8B-Instruct +``` + +Or, using an OpenAI-compatible endpoint (completions): + +```bash Command +python3 -m sglang.bench_serving \ + --backend vllm \ + --base-url http://127.0.0.1:8000 \ + --num-prompts 1000 \ + --model meta-llama/Llama-3.1-8B-Instruct +``` + +### Datasets + +Select with `--dataset-name`: + +- `sharegpt` (default): loads ShareGPT-style pairs; optionally restrict with `--sharegpt-context-len` and override outputs with `--sharegpt-output-len` +- `random`: random text lengths; sampled from ShareGPT token space +- `random-ids`: random token ids (can lead to gibberish) +- `image`: generates images and wraps them in chat messages; supports custom resolutions, multiple formats, and different content types +- `generated-shared-prefix`: synthetic dataset with shared long system prompts and short questions +- `mmmu`: samples from MMMU (Math split) and includes images + +Common dataset flags: + +- `--num-prompts N`: number of requests +- `--random-input-len`, `--random-output-len`, `--random-range-ratio`: for random/random-ids/image +- `--image-count`: Number of images per request (for `image` dataset). + +- `--apply-chat-template`: apply tokenizer chat template when constructing prompts +- `--dataset-path PATH`: file path for ShareGPT json; if blank and missing, it will be downloaded and cached + +Generated Shared Prefix flags (for `generated-shared-prefix`): + +- `--gsp-num-groups` +- `--gsp-prompts-per-group` +- `--gsp-system-prompt-len` +- `--gsp-question-len` +- `--gsp-output-len` + +Image dataset flags (for `image`): + +- `--image-count`: Number of images per request +- `--image-resolution`: Image resolution; supports presets (4k, 1080p, 720p, 360p) or custom 'heightxwidth' format (e.g., 1080x1920, 512x768) +- `--image-format`: Image format (jpeg or png) +- `--image-content`: Image content type (random or blank) + +### Examples + +1. To benchmark image dataset with 3 images per request, 500 prompts, 512 input length, and 512 output length, you can run: + +```bash Command +python -m sglang.launch_server --model-path Qwen/Qwen2.5-VL-3B-Instruct --disable-radix-cache +``` + +```bash Command +python -m sglang.bench_serving \ + --backend sglang-oai-chat \ + --dataset-name image \ + --num-prompts 500 \ + --image-count 3 \ + --image-resolution 720p \ + --random-input-len 512 \ + --random-output-len 512 +``` + +2. To benchmark random dataset with 3000 prompts, 1024 input length, and 1024 output length, you can run: + +```bash Command +python -m sglang.launch_server --model-path Qwen/Qwen2.5-3B-Instruct +``` + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --dataset-name random \ + --num-prompts 3000 \ + --random-input 1024 \ + --random-output 1024 \ + --random-range-ratio 0.5 +``` + +### Choosing model and tokenizer + +- `--model` is required unless the backend exposes `GET /v1/models`, in which case the first model ID is auto-selected. +- `--tokenizer` defaults to `--model`. Both can be HF model IDs or local paths. +- For ModelScope workflows, setting `SGLANG_USE_MODELSCOPE=true` enables fetching via ModelScope (weights are skipped for speed). +- If your tokenizer lacks a chat template, the script warns because token counting can be less robust for gibberish outputs. + +### Rate, concurrency, and streaming + +- `--request-rate`: requests per second. `inf` sends all immediately (burst). Non-infinite rate uses a Poisson process for arrival times. +- `--max-concurrency`: caps concurrent in-flight requests regardless of arrival rate. +- `--disable-stream`: switch to non-streaming mode when supported; TTFT then equals total latency for chat completions. + +### Other key options + +- `--output-file FILE.jsonl`: append JSONL results to file; auto-named if unspecified +- `--output-details`: include per-request arrays (generated texts, errors, ttfts, itls, input/output lens) +- `--extra-request-body '{"top_p":0.9,"temperature":0.6}'`: merged into payload (sampling params, etc.) +- `--disable-ignore-eos`: pass through EOS behavior (varies by backend) +- `--warmup-requests N`: run warmup requests with short output first (default 1) +- `--flush-cache`: call `/flush_cache` (sglang) before main run +- `--profile`: call `/start_profile` and `/stop_profile` (requires server to enable profiling, e.g., `SGLANG_TORCH_PROFILER_DIR`) +- `--lora-name name1 name2 ...`: randomly pick one per request and pass to backend (e.g., `lora_path` for sglang) +- `--tokenize-prompt`: send integer IDs instead of text (currently supports `--backend sglang` only) + +### Authentication + +If your target endpoint requires OpenAI-style auth, set: + +```bash Command +export OPENAI_API_KEY=sk-...yourkey... +``` + +The script will add `Authorization: Bearer $OPENAI_API_KEY` automatically for OpenAI-compatible routes. + +### Metrics explained + +Printed after each run: + +- Request throughput (req/s) +- Input token throughput (tok/s) - includes both text and vision tokens +- Output token throughput (tok/s) +- Total token throughput (tok/s) - includes both text and vision tokens +- Total input text tokens and Total input vision tokens - per-modality breakdown +- Concurrency: aggregate time of all requests divided by wall time +- End-to-End Latency (ms): mean/median/std/p99 per-request total latency +- Time to First Token (TTFT, ms): mean/median/std/p99 for streaming mode +- Inter-Token Latency (ITL, ms): mean/median/std/p95/p99/max between tokens +- TPOT (ms): Token processing time after first token, i.e., `(latency - ttft)/(tokens-1)` +- Accept length (sglang-only, if available): speculative decoding accept length + +The script also retokenizes generated text with the configured tokenizer and reports "retokenized" counts. + +### JSONL output format + +When `--output-file` is set, one JSON object is appended per run. Base fields: + +- Arguments summary: backend, dataset, request_rate, max_concurrency, etc. +- Duration and totals: completed, total_input_tokens, total_output_tokens, retokenized totals +- Throughputs and latency statistics as printed in the console +- `accept_length` when available (sglang) + +With `--output-details`, an extended object also includes arrays: + +- `input_lens`, `output_lens` +- `ttfts`, `itls` (per request: ITL arrays) +- `generated_texts`, `errors` + +### End-to-end examples + +1) sglang native `/generate` (streaming): + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 --port 30000 \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --dataset-name random \ + --random-input-len 1024 --random-output-len 1024 --random-range-ratio 0.5 \ + --num-prompts 2000 \ + --request-rate 100 \ + --max-concurrency 512 \ + --output-file sglang_random.jsonl --output-details +``` + +2) OpenAI-compatible Completions (e.g., vLLM): + +```bash Command +python3 -m sglang.bench_serving \ + --backend vllm \ + --base-url http://127.0.0.1:8000 \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --dataset-name sharegpt \ + --num-prompts 1000 \ + --sharegpt-output-len 256 +``` + +3) OpenAI-compatible Chat Completions (streaming): + +```bash Command +python3 -m sglang.bench_serving \ + --backend vllm-chat \ + --base-url http://127.0.0.1:8000 \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --dataset-name random \ + --num-prompts 500 \ + --apply-chat-template +``` + +4) Images (VLM) with chat template: + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 --port 30000 \ + --model your-vlm-model \ + --dataset-name image \ + --image-count 2 \ + --image-resolution 720p \ + --random-input-len 128 --random-output-len 256 \ + --num-prompts 200 \ + --apply-chat-template +``` + +4a) Images with custom resolution: + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 --port 30000 \ + --model your-vlm-model \ + --dataset-name image \ + --image-count 1 \ + --image-resolution 512x768 \ + --random-input-len 64 --random-output-len 128 \ + --num-prompts 100 \ + --apply-chat-template +``` + +4b) 1080p images with PNG format and blank content: + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 --port 30000 \ + --model your-vlm-model \ + --dataset-name image \ + --image-count 1 \ + --image-resolution 1080p \ + --image-format png \ + --image-content blank \ + --random-input-len 64 --random-output-len 128 \ + --num-prompts 100 \ + --apply-chat-template +``` + +5) Generated shared prefix (long system prompts + short questions): + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 --port 30000 \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --dataset-name generated-shared-prefix \ + --gsp-num-groups 64 --gsp-prompts-per-group 16 \ + --gsp-system-prompt-len 2048 --gsp-question-len 128 --gsp-output-len 256 \ + --num-prompts 1024 +``` + +6) Tokenized prompts (ids) for strict length control (sglang only): + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 --port 30000 \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --dataset-name random \ + --tokenize-prompt \ + --random-input-len 2048 --random-output-len 256 --random-range-ratio 0.2 +``` + +7) Profiling and cache flush (sglang): + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 --port 30000 \ + --model meta-llama/Llama-3.1-8B-Instruct \ + --profile \ + --flush-cache +``` + +8) TensorRT-LLM streaming endpoint: + +```bash Command +python3 -m sglang.bench_serving \ + --backend trt \ + --base-url http://127.0.0.1:8000 \ + --model your-trt-llm-model \ + --dataset-name random \ + --num-prompts 100 \ + --disable-ignore-eos +``` + +9) Evaluating large-scale KVCache sharing with mooncake trace (sglang only): + +```bash Command +python3 -m sglang.bench_serving \ + --backend sglang \ + --host 127.0.0.1 --port 30000 \ + --model mode-name \ + --dataset-name mooncake \ + --mooncake-slowdown-factor 1.0 \ + --mooncake-num-rounds 1000 \ + --mooncake-workload conversation|mooncake|agent|synthetic + --use-trace-timestamps true \ + --random-output-len 256 +``` + +### Troubleshooting + +- All requests failed: verify `--backend`, server URL/port, `--model`, and authentication. Check warmup errors printed by the script. +- Throughput seems too low: adjust `--request-rate` and `--max-concurrency`; verify server batch size/scheduling; ensure streaming is enabled if appropriate. +- Token counts look odd: prefer chat/instruct models with proper chat templates; otherwise tokenization of gibberish may be inconsistent. +- Image/MMMU datasets: ensure you installed extra deps (`pillow`, `datasets`, `pybase64`). +- Authentication errors (401/403): set `OPENAI_API_KEY` or disable auth on your server. + +### Notes + +- The script raises the file descriptor soft limit (`RLIMIT_NOFILE`) to help with many concurrent connections. +- For sglang, `/get_server_info` is queried post-run to report speculative decoding accept length when available. diff --git a/docs_new/docs/developer_guide/benchmark_and_profiling.mdx b/docs_new/docs/developer_guide/benchmark_and_profiling.mdx new file mode 100644 index 000000000..7418aaaae --- /dev/null +++ b/docs_new/docs/developer_guide/benchmark_and_profiling.mdx @@ -0,0 +1,459 @@ +--- +title: "Benchmark and Profiling" +metatags: + description: "SGLang benchmarking and profiling: PyTorch Profiler, Nsight Systems, layerwise NVTX, PD disaggregation profiling." +--- +## Benchmark + +- Benchmark the latency of running a single static batch without a server. The arguments are the same as for `launch_server.py`. + Note that this is a simplified test script without a dynamic batching server, so it may run out of memory for a batch size that a real server can handle. A real server truncates the prefill into several batches, while this simplified script does not. + - Without a server (do not need to launch a server) + ```bash Command + python -m sglang.bench_one_batch --model-path meta-llama/Meta-Llama-3.1-8B-Instruct --batch 32 --input-len 256 --output-len 32 + ``` + - With a server (please use `sglang.launch_server` to launch a server first and run the following command.) + ```bash Command + python -m sglang.bench_one_batch_server --base-url http://127.0.0.1:30000 --model-path meta-llama/Meta-Llama-3.1-8B-Instruct --batch-size 32 --input-len 256 --output-len 32 + ``` + + +- Benchmark offline processing. This script will start an offline engine and run the benchmark. + + ```bash Command + python3 -m sglang.bench_offline_throughput --model-path meta-llama/Meta-Llama-3.1-8B-Instruct --num-prompts 10 + ``` + +- Benchmark online serving. Please use `sglang.launch_server` to launch a server first and run the following command. + + ```bash Command + python3 -m sglang.bench_serving --backend sglang --num-prompt 10 + ``` + +## Profile with PyTorch Profiler + +[Pytorch Profiler](https://pytorch.org/tutorials/recipes/recipes/profiler_recipe.html) is a convenient basic tool to inspect kernel execution time, call stack, and kernel overlap and occupancy. + +### Profile a server with `sglang.bench_serving` + +```bash Command +# set trace path +export SGLANG_TORCH_PROFILER_DIR=/root/sglang/profile_log + +# start server +python -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct + +# send profiling request from client +python -m sglang.bench_serving --backend sglang --model meta-llama/Llama-3.1-8B-Instruct --num-prompts 10 --sharegpt-output-len 100 --profile +``` + +Please make sure that the `SGLANG_TORCH_PROFILER_DIR` should be set at both server and client side, otherwise the trace file cannot be generated correctly . A secure way will be setting `SGLANG_TORCH_PROFILER_DIR` in the `.*rc` file of shell (e.g. `~/.bashrc` for bash shells). + +For more details, please refer to [Bench Serving Guide](./bench_serving). + +### Profile In PD Disaggregation Mode + +When profiling in PD disaggregation mode, prefill and decode workers **must be profiled separately** due to torch profiler limitations. The `bench_serving` command provides dedicated options for this: + +#### Profile Prefill Workers + +```bash Command +# set trace path +export SGLANG_TORCH_PROFILER_DIR=/root/sglang/profile_log + +# start prefill and decode servers (see PD disaggregation docs for setup) +python -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --disaggregation-mode prefill +python -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --disaggregation-mode decode --port 30001 --base-gpu-id 1 + +# start router +python -m sglang_router.launch_router --pd-disaggregation --prefill http://127.0.0.1:30000 --decode http://127.0.0.1:30001 --host 0.0.0.0 --port 8000 + +# send profiling request targeting prefill workers +python -m sglang.bench_serving --backend sglang --model meta-llama/Llama-3.1-8B-Instruct --num-prompts 10 --sharegpt-output-len 100 --profile --pd-separated --profile-prefill-url http://127.0.0.1:30000 +``` + +#### Profile Decode Workers + +```bash Command +# send profiling request targeting decode workers +python -m sglang.bench_serving --backend sglang --model meta-llama/Llama-3.1-8B-Instruct --num-prompts 10 --sharegpt-output-len 100 --profile --pd-separated --profile-decode-url http://127.0.0.1:30001 +``` + +#### Important Notes + +- `--profile-prefill-url` and `--profile-decode-url` are **mutually exclusive** - you cannot profile both at the same time +- Both options support multiple worker URLs for multi-instance setups: + ```bash Command + # Profile multiple prefill workers + python -m sglang.bench_serving --backend sglang --model meta-llama/Llama-3.1-8B-Instruct --num-prompts 10 --profile --pd-separated --profile-prefill-url http://127.0.0.1:30000 http://127.0.0.1:30002 + + # Profile multiple decode workers + python -m sglang.bench_serving --backend sglang --model meta-llama/Llama-3.1-8B-Instruct --num-prompts 10 --profile --pd-separated --profile-decode-url http://127.0.0.1:30001 http://127.0.0.1:30003 + ``` +- Make sure `SGLANG_TORCH_PROFILER_DIR` is set on all worker nodes before starting the servers +- For more details on setting up PD disaggregation, see [PD Disaggregation Guide](../advanced_features/pd_disaggregation) + +### Profile a server with `sglang.bench_offline_throughput` +```bash Command +export SGLANG_TORCH_PROFILER_DIR=/root/sglang/profile_log + +# profile one batch with bench_one_batch.py +# batch size can be controlled with --batch argument +python3 -m sglang.bench_one_batch --model-path meta-llama/Llama-3.1-8B-Instruct --batch 32 --input-len 1024 --output-len 10 --profile + +# profile multiple batches with bench_offline_throughput.py +python -m sglang.bench_offline_throughput --model-path meta-llama/Llama-3.1-8B-Instruct --dataset-name random --num-prompts 10 --profile --mem-frac=0.8 +``` + +### Profile a server with `sglang.profiler` + +When the server is running (e.g., processing a decoding request), you can start live profiling immediately by sending a profile request to the server. + +You can do this by running `python3 -m sglang.profiler`. For example: + +```text Output +# Terminal 1: Send a generation request +python3 -m sglang.test.send_one + +# Terminal 2: Before the above request finishes, quickly launch the following command in a separate terminal. +# It will generate a profile of the above request for several decoding batches. +python3 -m sglang.profiler +``` + +You can also combine the above operations into a single command + +```text Output +python3 -m sglang.test.send_one --profile +``` + +### Profile a server with HTTP API endpoints + +SGLang provides HTTP API endpoints to control profiling on a running server. This allows you to start and stop profiling programmatically, which is useful for capturing specific workload patterns. + +#### Using `/start_profile` endpoint + +The `/start_profile` endpoint starts profiling on the server. You can control when profiling begins and how long it runs using the following parameters: + +**Basic usage:** + +```bash Command +# Start profiling immediately for 10 steps +curl -X POST http://127.0.0.1:30000/start_profile \ + -H "Content-Type: application/json" \ + -d '{ + "num_steps": 10 + }' +``` + +**Parameters:** + +- `output_dir` (optional): Directory where profile traces will be saved. If not specified, uses `SGLANG_TORCH_PROFILER_DIR` environment variable, or `/tmp` as the default +- `num_steps` (optional): Number of steps to profile. If not specified, profiling continues until manually stopped with `/end_profile` +- `start_step` (optional): Step number at which to start profiling (inclusive). Useful for skipping warmup iterations +- `activities` (optional): List of activities to profile, e.g., `["CPU", "GPU"]`. Default is `["CPU", "GPU"]` +- `merge_profiles` (optional): Whether to merge distributed traces. Default is `false` + +**Note on step ranges:** Profiling starts at `start_step` (inclusive) and continues for `num_steps` iterations. For example, with `start_step=3` and `num_steps=10`, profiling captures steps 3, 4, 5, 6, 7, 8, 9, 10, 11, and 12 (10 steps total, starting from step 3). + +**Advanced usage with `start_step`:** + +```bash Command +# Wait 5 steps (warmup), then profile for 10 steps +curl -X POST http://127.0.0.1:30000/start_profile \ + -H "Content-Type: application/json" \ + -d '{ + "output_dir": "/tmp/profiles", + "start_step": 5, + "num_steps": 10, + "activities": ["CPU", "GPU"] + }' +``` + +**Continuous profiling (manual stop):** + +```bash Command +# Start profiling without num_steps - must manually stop with /end_profile +curl -X POST http://127.0.0.1:30000/start_profile +``` + +#### Using `/end_profile` endpoint + +The `/end_profile` endpoint stops an ongoing profiling session and saves the trace file. + +```bash Command +# Stop profiling and save traces +curl -X POST http://127.0.0.1:30000/end_profile +``` + +This is only needed when you start profiling without specifying `num_steps`. If `num_steps` is specified, profiling will automatically stop after that many steps. + +#### Example workflow + +```bash Command +# Terminal 1: Start the server +export SGLANG_TORCH_PROFILER_DIR=/tmp/profiles +python -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct + +# Terminal 2: Start continuous profiling +curl -X POST http://127.0.0.1:30000/start_profile \ + -H "Content-Type: application/json" \ + -d '{ + "start_step": 3 + }' + +# Terminal 3: Send requests to generate load +python -m sglang.bench_serving --backend sglang --num-prompts 100 + +# Terminal 2: Stop profiling when done +curl -X POST http://127.0.0.1:30000/end_profile +``` + +### Profiler Trace Merger for Distributed Traces + +SGLang now supports automatic merging of profiling traces from distributed setups with multiple parallelism types (TP, DP, PP, EP). This feature is particularly useful for analyzing performance across distributed runs. + +#### Multi-Node Profiling and Shared Storage Considerations + +Single-node profiler output merging is completely supported. When profiling in distributed environments spanning multiple nodes, shared storage (e.g., NFS, Lustre) should be accessible by all nodes for the output directory to enable merging of trace files. + +If there is no shared storage accessible across nodes, automatic merging of trace files during profiling is not supported directly as of now. + +#### HTTP API Usage + +```bash Command +# Start profiling with automatic trace merging enabled +curl -X POST /start_profile \ + -H "Content-Type: application/json" \ + -d '{ + "output_dir": "/tmp/profiles", # where to store profile traces + "num_steps": 10, + "activities": ["CPU", "GPU"], + "merge_profiles": true # optional argument to merge profile traces (default=False) + }' +``` + +#### Command Line Usage + +```bash Command +# Start profiling with merge enabled +python -m sglang.profiler \ + --num-steps 10 \ + --cpu \ + --gpu \ + --output-dir /tmp/profiles \ + --merge-profiles # optional argument to merge profile traces (default=False) +``` + +#### Output Files + +The profile merger generates: +- Individual rank trace files: `{profile_id}-TP-{tp}-DP-{dp}-PP-{pp}-EP-{ep}.trace.json.gz` +- Merged trace file: `merged-{profile_id}.trace.json.gz` + +### Possible PyTorch bugs +If in any cases you encounter the following error (for example, using qwen 2.5 VL): +```bash Command +RuntimeError: !stack.empty() INTERNAL ASSERT FAILED at "/pytorch/torch/csrc/autograd/profiler_python.cpp":983, please report a bug to PyTorch. Python replay stack is empty. +``` +This is likely a PyTorch Bug reported in [Bug: vLLM Profiler](https://github.com/vllm-project/vllm/issues/18240) and [Bug: torch.profiler.profile](https://github.com/pytorch/pytorch/issues/101632). As a workaround, you may disable `with_stack` with an environment variable such as follows: +```bash Command +export SGLANG_PROFILE_WITH_STACK=False +python -m sglang.bench_offline_throughput --model-path meta-llama/Llama-3.1-8B-Instruct --dataset-name random --num-prompts 10 --profile --mem-frac=0.8 +``` + +### View traces + +Trace files can be loaded and visualized from: + +1. https://ui.perfetto.dev/ (any browser) +2. chrome://tracing (Chrome browser only) + +If browser cannot open trace file due to its large size, +client can generate a small trace file (<100MB) by controlling number of prompts and lengths of prompt outputs. +For example, when profiling a server, + +```bash Command +python -m sglang.bench_serving --backend sglang --model meta-llama/Llama-3.1-8B-Instruct --num-prompts 2 --sharegpt-output-len 100 --profile +``` + +This command sets the number of prompts to 2 with `--num-prompts` argument and limits the length of output sequences to 100 with `--sharegpt-output-len` argument, which can generate a small trace file for browser to open smoothly. + +Additionally, if you want to locate the SGLang Python source code through the cuda kernel in Trace, you need to disable CUDA Graph when starting the service. This can be done by using the `--disable-cuda-graph` parameter in the command to start the service. + +## Profile with Nsight + +[Nsight systems](https://docs.nvidia.com/nsight-systems/) is an advanced tool that exposes more profiling details, such as register and shared memory usage, annotated code regions and low-level CUDA APIs and events. + +1. Prerequisite: + + Install using apt, or run inside a [NVIDIA Docker container](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch/tags) or [SGLang Docker container](https://github.com/sgl-project/sglang/tree/main/docker). + + ```bash Command + # install nsys + # https://docs.nvidia.com/nsight-systems/InstallationGuide/index.html + apt update + apt install -y --no-install-recommends gnupg + echo "deb http://developer.download.nvidia.com/devtools/repos/ubuntu$(source /etc/lsb-release; echo "$DISTRIB_RELEASE" | tr -d .)/$(dpkg --print-architecture) /" | tee /etc/apt/sources.list.d/nvidia-devtools.list + apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub + apt update + apt install nsight-systems-cli + ``` + +2. To profile a single batch, use + + ```bash Command + nsys profile --trace-fork-before-exec=true --cuda-graph-trace=node python3 -m sglang.bench_one_batch --model meta-llama/Meta-Llama-3-8B --batch-size 64 --input-len 512 + ``` + +3. To profile a server, e.g. + + ```bash Command + # launch the server, set the delay and duration times according to needs + # after the duration time has been used up, server will be killed by nsys + + nsys profile --trace-fork-before-exec=true --cuda-graph-trace=node -o sglang.out --delay 60 --duration 70 python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --disable-radix-cache + + # client + python3 -m sglang.bench_serving --backend sglang --num-prompts 1000 --dataset-name random --random-input 1024 --random-output 512 + ``` + + In practice, we recommend users to set `--duration` argument to a large value. Whenever user wants the server to stop profiling. Firstly run: + + ```bash Command + nsys sessions list + ``` + + to get the session id in the form of `profile-XXXXX`, then run: + + ```bash Command + nsys stop --session=profile-XXXXX + ``` + + to manually kill the profiler and generate `nsys-rep` files instantly. + +4. Use NVTX to annotate code regions, e.g. to see their execution time. + + ```bash Command + # install nvtx + pip install nvtx + ``` + + ```python Example + # code snippets + import nvtx + with nvtx.annotate("description", color="color"): + # some critical code + ``` + +### Layer-wise NVTX Profiling with Nsight Systems + +SGLang provides built-in layerwise NVTX annotations that can be combined with the CUDA Profiler for detailed per-layer profiling in Nsight Systems. This is particularly useful for identifying performance bottlenecks at the layer level. + +#### Using `--enable-layerwise-nvtx-marker` with Nsight Systems and `/start_profile` + +The `--enable-layerwise-nvtx-marker` flag automatically adds NVTX markers to every layer in your model. This is particularly powerful when combined with Nsight Systems profiling to see detailed per-layer performance. + +**Method 1: Using `/start_profile` with CUDA_PROFILER (for programmatic control)** + +This method allows you to control exactly when profiling starts/stops via HTTP API while Nsight Systems is running. + +1. Launch the server with layerwise NVTX enabled under Nsight Systems: + + ```bash Command + # Terminal 1: Start server with nsys and capture-range option + nsys profile --trace-fork-before-exec=true \ + --cuda-graph-trace=node \ + --capture-range=cudaProfilerApi \ + --capture-range-end=stop \ + -o layerwise_profile \ + python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --enable-layerwise-nvtx-marker \ + --disable-cuda-graph + ``` + + Note: NVTX markers are not emitted for kernel launches captured by CUDA graphs. Use `--disable-cuda-graph` to ensure all layerwise NVTX markers are emitted in the trace. + +2. In another terminal, control profiling via `/start_profile` with `CUDA_PROFILER` activity: + + ```bash Command + # Terminal 2: Wait for server to be ready, then start CUDA profiling + # Wait 3 steps for warmup, then profile for 10 steps + curl -X POST http://127.0.0.1:30000/start_profile \ + -H "Content-Type: application/json" \ + -d '{ + "start_step": 3, + "num_steps": 10, + "activities": ["CUDA_PROFILER"] + }' + ``` + +3. Send requests to generate load: + + ```bash Command + # Terminal 3: Generate workload + python -m sglang.bench_serving --backend sglang --num-prompts 100 + ``` + +4. Profiling will automatically stop after 10 steps (due to `num_steps: 10`). If you hadn't specified `num_steps`, you would need to manually stop it: + + ```bash Command + # Terminal 2: Only needed if num_steps was not specified + curl -X POST http://127.0.0.1:30000/end_profile + ``` + +The `--capture-range=cudaProfilerApi` option tells Nsight Systems to only capture data between `cudaProfilerStart()` and `cudaProfilerStop()` calls (triggered by `/start_profile` and `/end_profile`), reducing overhead and file size. The `start_step` parameter skips the first 3 steps to avoid capturing warmup overhead. + +**Method 2: Simpler approach without `/start_profile` API** + +For simpler use cases where you don't need fine-grained control over profiling start/stop, you can profile with Nsight Systems capturing the entire workload: + +```bash Command +# Terminal 1: Start server with layerwise NVTX +# Note: --disable-cuda-graph ensures all NVTX markers are emitted +python -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --enable-layerwise-nvtx-marker \ + --disable-cuda-graph + +# Terminal 2: Profile the benchmarking client +nsys profile --trace-fork-before-exec=true \ + --cuda-graph-trace=node \ + -o layerwise_profile \ + python -m sglang.bench_serving --backend sglang --num-prompts 10 +``` + +This approach profiles the entire client execution, including all server interactions. The layerwise NVTX markers will be visible in the Nsight Systems timeline. + +**Viewing the profiling results:** + +Open the generated `.qdrep` file with Nsight Systems: + +```bash Command +nsys-ui layerwise_profile.qdrep +``` + +In the Nsight Systems GUI, you'll see: +- **NVTX ranges**: Each layer appears as a labeled range in the timeline with detailed information in the marker metadata +- **CUDA kernels**: All GPU kernels are shown alongside the layer annotations +- **Layer hierarchy**: The full module path (e.g., `meta-llama/Meta-Llama-3.1-8B-Instruct.model.layers.0.self_attn.qkv_proj`) helps identify specific layers. The prefix uses the full model path from `--model-path`. +- **Tensor shapes**: Input/output dimensions and parameter shapes are included in the NVTX marker data + +**Benefits of layerwise NVTX profiling:** + +- **Granular visibility**: See exactly which layers are taking the most time +- **Memory tracking**: Identify layers with large memory allocations +- **Bottleneck identification**: Quickly locate inefficient operations +- **Communication overhead**: In multi-GPU setups, see per-layer communication costs +- **Development debugging**: Validate that model architecture changes have the expected performance impact + +## Other tips + +1. You can benchmark a model using dummy weights by only providing the config.json file. This allows for quick testing of model variants without training. To do so, add `--load-format dummy` to the above commands and then you only need a correct `config.json` under the checkpoint folder. +2. You can benchmark a model with modified configs (e.g., less layers) by using `--json-model-override-args`. For example, you can benchmark a model with only 2 layers and 2 kv heads using: + + ```bash Command + python -m sglang.bench_one_batch --model-path meta-llama/Meta-Llama-3.1-8B-Instruct --batch 32 --input-len 256 --output-len 32 --load-format dummy --json-model-override-args '{"num_hidden_layers": 1, "num_key_value_heads": 1}' + ``` + +3. You can use `--python-backtrace=cuda` to see python call stack for all CUDA kernels, as in PyTorch Profiler. (Caveat: this can cause inaccurately long kernel runtimes for CUDA event based timing) +4. For more arguments see [Nsight Systems User Guide](https://docs.nvidia.com/nsight-systems/UserGuide/index.html). diff --git a/docs_new/docs/developer_guide/contribution_guide.mdx b/docs_new/docs/developer_guide/contribution_guide.mdx new file mode 100644 index 000000000..a1de8d6c8 --- /dev/null +++ b/docs_new/docs/developer_guide/contribution_guide.mdx @@ -0,0 +1,149 @@ +--- +title: "Contribution Guide" +mode: wide +metatags: + description: "SGLang contribution guide: source install, pre-commit, unit tests, CI triggers, code style, sgl-kernel updates." +--- +Welcome to **SGLang**! We appreciate your interest in contributing. This guide provides a concise overview of how to set up your environment, run tests, build documentation, and open a Pull Request (PR). Whether you're fixing a small bug or developing a major feature, we encourage following these steps for a smooth contribution process. + +## Install SGLang from Source + +### Fork and clone the repository + +**Note**: New contributors do **not** have the write permission to push to the official SGLang repo. Please fork the repository under your GitHub account, then clone your fork locally. + +```bash +git clone https://github.com//sglang.git +``` + +### Build from source + +Refer to [Install SGLang from Source](../get-started/installation). + +## Format code with pre-commit + +We use [pre-commit](https://pre-commit.com/) to maintain consistent code style checks. Before pushing your changes, please run: + +```bash +pip3 install pre-commit +pre-commit install +pre-commit run --all-files +``` + +- **`pre-commit run --all-files`** manually runs all configured checks, applying fixes if possible. If it fails the first time, re-run it to ensure lint errors are fully resolved. Make sure your code passes all checks **before** creating a Pull Request. +- **Do not commit** directly to the `main` branch. Always create a new branch (e.g., `feature/my-new-feature`), push your changes, and open a PR from that branch. + +## Run and add unit tests + +If you add a new feature or fix a bug, please add corresponding unit tests to ensure coverage and prevent regression. +SGLang uses Python's built-in [unittest](https://docs.python.org/3/library/unittest.html) framework. +For detailed instructions on running tests and integrating them into CI, refer to [test/README](https://github.com/sgl-project/sglang/tree/main/test/README). + +## Write documentations + +We recommend new contributors start from writing documentation, which helps you quickly understand SGLang codebase. +For more details, please refer to [docs/README](https://github.com/sgl-project/sglang/blob/main/docs/README.md). + +## Test the accuracy +If your code changes the model output, please run the accuracy tests. A quick sanity check is the few-shot GSM8K. + +```text Output +# Launch a server +python3 -m sglang.launch_server --model Qwen/Qwen2-7B-Instruct + +# Evaluate +python3 -m sglang.test.few_shot_gsm8k --num-questions 200 +``` + +Please note that the above script is primarily a sanity check, not a rigorous accuracy or speed test. +This test can have significant variance (1%-5%) in accuracy due to batching and the non-deterministic nature of the inference engine. +Also, do not rely on the "Latency/Output throughput" from this script, as it is not a proper speed test. + +GSM8K is too easy for state-of-the-art models nowadays. Please try your own more challenging accuracy tests. +You can find additional accuracy eval examples in: +- [test_eval_accuracy_large.py](https://github.com/sgl-project/sglang/blob/main/test/srt/test_eval_accuracy_large.py) +- [test_gpt_oss_1gpu.py](https://github.com/sgl-project/sglang/blob/main/test/srt/test_gpt_oss_1gpu.py) + +## Benchmark the speed +Refer to [Benchmark and Profiling](../developer_guide/benchmark_and_profiling). + +## Requesting a review for merge +You can follow the pull request merge process described in [MAINTAINER](https://github.com/sgl-project/sglang/blob/main/.github/MAINTAINER). +You will need to work with the Merge Oncall, Codeowner, and other reviewers to get their approvals. +Then your PR can be merged. + +## How to Trigger CI Tests + +We have a lot of open PRs but limited CI machines, so only top and trusted contributors have permission to trigger CI tests. +Users with permission are listed in the [CI_PERMISSIONS.json](https://github.com/sgl-project/sglang/blob/main/.github/CI_PERMISSIONS.json) + +For CI to run on a pull request, it must have the "run-ci" label. Authorized users can add the label or rerun failed tests by commenting on the PR with one of these commands: + +- `/tag-run-ci-label`: Adds the "run-ci" label. Every future commit will trigger CI. +- `/rerun-failed-ci`: Reruns the failed or flaky tests from the most recent commit. +- `/tag-and-rerun-ci`: A single command that performs both `/tag-run-ci-label` and `/rerun-failed-ci`. +- `/rerun-stage `: Reruns a specific test stage without waiting for its dependencies. This is useful when you want to quickly validate a fix for a specific test failure instead of waiting ~30 minutes for preceding stages to complete. + +If you have permission, the [Slash Command Handler](https://github.com/sgl-project/sglang/actions/workflows/slash-command-handler.yml) will run your command and react with a +1 to your comment. It may take up to a few minutes for the reaction to appear. Here's a usage [example](https://github.com/sgl-project/sglang/pull/14253#issuecomment-3599509302). + +To avoid spamming a PR with too many `/rerun-failed-ci` comments, you can also trigger the command by editing an existing comment and adding any suffix (e.g., `/rerun-failed-ci try again`). + +Example of rerunning a single test stage: `/rerun-stage unit-test-backend-4-gpu`. + +If you don't have permission, please ask maintainers to trigger CI for you. + +### CI rate limits + +Due to CI scheduling and limited resources, higher-priority PRs may preempt running jobs. In such cases, you may need to rerun the tests. + +We apply CI rate limits to prevent abuse and ensure fair usage of our CI resources. + +Each CI workflow has a default limit defined in its workflow configuration file. For example, in [pr-gate.yml](https://github.com/sgl-project/sglang/blob/main/.github/workflows/pr-gate.yml), the default cooldown period is 120 minutes, and each workflow can override it via the `cool-down-minutes` input parameter: + +```yaml Config +cool-down-minutes: + description: "Default cooldown period in minutes; 0 disables rate limiting" + type: number + default: 120 +``` + +Users listed in [CI_PERMISSIONS.json](https://github.com/sgl-project/sglang/blob/main/.github/CI_PERMISSIONS.json) may have a per-user cooldown interval. In practice, we use the minimum of the workflow's default window and the user-specific interval. + + +## Code style guidance +- Avoid code duplication. If the same code snippet (more than five lines) appears multiple times, extract it into a shared function. +- Minimize device synchronization. Reduce expensive CPU-GPU synchronization operations, such as `tensor.item()` or `tensor.cpu()`, whenever possible. Use vectorized code. +- Prioritize extreme efficiency. SGLang is a runtime, and most of your code runs on the critical path for every request. Optimize all minor overheads as much as possible, especially in the model forward code. + - A common pattern is some runtime checks in the model forward pass (e.g., [this](https://github.com/sgl-project/sglang/blob/f1b0eda55c2c4838e8ab90a0fac7fb1e3d7064ab/python/sglang/srt/models/deepseek_v2.py#L486-L491)). These are very likely the same for every layer. Please cache the result as a single boolean value whenever possible. +- Make functions as pure as possible. Avoid in-place modification of arguments. +- Keep files concise. If a file exceeds 2,000 lines of code, split it into multiple smaller files. (e.g., `scheduler.py`, `scheduler_output_processor_mixin.py`) +- Keep tests run fast. + - If a single test file run longer than 500 seconds, split it into multiple smaller files (e.g., `test_eagle_infer_a.py`, `test_eagle_infer_b.py`). + - If a single job in a github workflow runs longer than 30 mins, split it into smaller jobs/steps. + - Reuse server launches in your unit tests to make tests run faster. +- When supporting new hardware or features, follow these guidelines: + - Do not drastically change existing code. + - Always prefer new files to introduce specific components for your new hardware (e.g., `allocator_ascend.py`). + - If you write multiple if/else blocks for new features, ensure the common path (e.g., NVIDIA hardware or the existing code path) is the first branch. + +## How to update sgl-kernel +Since sglang and sgl-kernel are separate Python packages, our current GitHub CI infrastructure does not support updating a kernel and using it immediately within the same pull request (PR). +To add a new kernel or modify an existing one in the sgl-kernel package, you must use multiple PRs. + +Follow these steps: + +1. Submit a PR to update the sgl-kernel source code without using it in sglang python package (e.g., [#8884](https://github.com/sgl-project/sglang/pull/8884/files)). +2. Bump the version of sgl-kernel (e.g., [#9220](https://github.com/sgl-project/sglang/pull/9220/files)). + - Once merged, this will trigger an automatic release of the sgl-kernel wheel to PyPI. + - If not urgent, you can wait for other people to release the wheel. A new version will typically be released within one week. +3. Apply the changes: + - Update the sgl-kernel version in `sglang/python/pyproject.toml` to use the modified kernels. + - Update the related caller code in the sglang to use the new kernel. + +## Tips for newcomers + +If you want to contribute but don't have a specific idea in mind, pick issues labeled ["good first issue" or "help wanted"](https://github.com/sgl-project/sglang/issues?q=is%3Aissue+label%3A%22good+first+issue%22%2C%22help+wanted%22). These tasks typically have lower complexity and provide an excellent introduction to the codebase. Also check out this [code walk-through](https://github.com/zhaochenyang20/Awesome-ML-SYS-Tutorial/tree/main/sglang/code-walk-through) for a deeper look into SGLang's workflow. + +If you have any questions or want to start a discussion, please feel free to ask in our [Slack channel](https://slack.sglang.io). + +Thank you for your interest in SGLang. Happy coding! diff --git a/docs_new/docs/developer_guide/development_guide_using_docker.mdx b/docs_new/docs/developer_guide/development_guide_using_docker.mdx new file mode 100644 index 000000000..d7e167f9b --- /dev/null +++ b/docs_new/docs/developer_guide/development_guide_using_docker.mdx @@ -0,0 +1,119 @@ +--- +title: "Development Guide Using Docker" +sidebarTitle: "Using Docker" +metatags: + description: "SGLang Docker development: VSCode dev container, remote tunnels, debugger setup, nsys profiling." +--- +## Setup VSCode on a Remote Host +(Optional - you can skip this step if you plan to run sglang dev container locally) + +1. In the remote host, download `code` from [Https://code.visualstudio.com/docs/?dv=linux64cli](https://code.visualstudio.com/download) and run `code tunnel` in a shell. + +Example +```bash Command +wget https://vscode.download.prss.microsoft.com/dbazure/download/stable/fabdb6a30b49f79a7aba0f2ad9df9b399473380f/vscode_cli_alpine_x64_cli.tar.gz +tar xf vscode_cli_alpine_x64_cli.tar.gz + +# https://code.visualstudio.com/docs/remote/tunnels +./code tunnel +``` + +2. In your local machine, press F1 in VSCode and choose "Remote Tunnels: Connect to Tunnel". + +## Setup Docker Container + +### Option 1. Use the default dev container automatically from VSCode +There is a `.devcontainer` folder in the sglang repository root folder to allow VSCode to automatically start up within dev container. You can read more about this VSCode extension in VSCode official document [Developing inside a Container](https://code.visualstudio.com/docs/devcontainers/containers). + + VSCode Dev Container Architecture + + +*Figure 1: Diagram from VSCode official documentation [Developing inside a Container](https://code.visualstudio.com/docs/devcontainers/containers).* + +To enable this, you only need to: +1. Start Visual Studio Code and install [VSCode dev container extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). +2. Press F1, type and choose "Dev Container: Open Folder in Container. +3. Input the `sglang` local repo path in your machine and press enter. + +The first time you open it in dev container might take longer due to docker pull and build. Once it's successful, you should set on your status bar at the bottom left displaying that you are in a dev container: + + + VSCode Dev Container Status Bar + + +Now when you run `sglang.launch_server` in the VSCode terminal or start debugging using F5, sglang server will be started in the dev container with all your local changes applied automatically: + + + SGLang Server Running in Dev Container + + + +### Option 2. Start up containers manually (advanced) + +The following startup command is an example for internal development by the SGLang team. You can **modify or add directory mappings as needed**, especially for model weight downloads, to prevent repeated downloads by different Docker containers. + +❗️ **Note on RDMA** + + 1. `--network host` and `--privileged` are required by RDMA. If you don't need RDMA, you can remove them but keeping them there does not harm. Thus, we enable these two flags by default in the commands below. + 2. You may need to set `NCCL_IB_GID_INDEX` if you are using RoCE, for example: `export NCCL_IB_GID_INDEX=3`. + +```bash Command +# Change the name to yours +docker run -itd --shm-size 32g --gpus all -v --ipc=host --network=host --privileged --name sglang_dev lmsysorg/sglang:dev /bin/zsh +docker exec -it sglang_dev /bin/zsh +``` +Some useful volumes to mount are: +1. **Huggingface model cache**: mounting model cache can avoid re-download every time docker restarts. Default location on Linux is `~/.cache/huggingface/`. +2. **SGLang repository**: code changes in the SGLang local repository will be automatically synced to the .devcontainer. + +Example 1: Monting local cache folder `/opt/dlami/nvme/.cache` but not the SGLang repo. Use this when you prefer to manually transfer local code changes to the devcontainer. +```bash Command +docker run -itd --shm-size 32g --gpus all -v /opt/dlami/nvme/.cache:/root/.cache --ipc=host --network=host --privileged --name sglang_zhyncs lmsysorg/sglang:dev /bin/zsh +docker exec -it sglang_zhyncs /bin/zsh +``` +Example 2: Mounting both HuggingFace cache and local SGLang repo. Local code changes are automatically synced to the devcontainer as the SGLang is installed in editable mode in the dev image. +```bash Command +docker run -itd --shm-size 32g --gpus all -v $HOME/.cache/huggingface/:/root/.cache/huggingface -v $HOME/src/sglang:/sgl-workspace/sglang --ipc=host --network=host --privileged --name sglang_zhyncs lmsysorg/sglang:dev /bin/zsh +docker exec -it sglang_zhyncs /bin/zsh +``` +## Debug SGLang with VSCode Debugger +1. (Create if not exist) open `launch.json` in VSCode. +2. Add the following config and save. Please note that you can edit the script as needed to apply different parameters or debug a different program (e.g. benchmark script). + ```JSON Config + { + "version": "0.2.0", + "configurations": [ + { + "name": "Python Debugger: launch_server", + "type": "debugpy", + "request": "launch", + "module": "sglang.launch_server", + "console": "integratedTerminal", + "args": [ + "--model-path", "meta-llama/Llama-3.2-1B", + "--host", "0.0.0.0", + "--port", "30000", + "--trust-remote-code", + ], + "justMyCode": false + } + ] + } + ``` + +3. Press "F5" to start. VSCode debugger will ensure that the program will pause at the breakpoints even if the program is running at remote SSH/Tunnel host + dev container. + +## Profile + +```bash Command +# Change batch size, input, output and add `disable-cuda-graph` (for easier analysis) +# e.g. DeepSeek V3 +nsys profile -o deepseek_v3 python3 -m sglang.bench_one_batch --batch-size 1 --input 128 --output 256 --model deepseek-ai/DeepSeek-V3 --trust-remote-code --tp 8 --disable-cuda-graph +``` + +## Evaluation + +```bash Command +# e.g. gsm8k 8 shot +python3 benchmark/gsm8k/bench_sglang.py --num-questions 2000 --parallel 2000 --num-shots 8 +``` diff --git a/docs_new/docs/developer_guide/evaluating_new_models.mdx b/docs_new/docs/developer_guide/evaluating_new_models.mdx new file mode 100644 index 000000000..9f5aade7a --- /dev/null +++ b/docs_new/docs/developer_guide/evaluating_new_models.mdx @@ -0,0 +1,149 @@ +--- +title: "Evaluating New Models with SGLang" +metatags: + description: "SGLang model evaluation: MMLU, GSM8K, GPQA, HumanEval, MMMU benchmarks. Latency and throughput testing commands." +--- +This document provides commands for evaluating models' accuracy and performance. Before open-sourcing new models, we strongly suggest running these commands to verify whether the score matches your internal benchmark results. + +**For cross verification, please submit commands for installation, server launching, and benchmark running with all the scores and hardware requirements when open-sourcing your models.** + +[Reference: MiniMax M2](https://github.com/sgl-project/sglang/pull/12129) + +## Accuracy + +### LLMs + +SGLang provides built-in scripts to evaluate common benchmarks. + +**MMLU** + +```bash Command +python -m sglang.test.run_eval \ + --eval-name mmlu \ + --port 30000 \ + --num-examples 1000 \ + --max-tokens 8192 +``` + +**GSM8K** + +```bash Command +python -m sglang.test.few_shot_gsm8k \ + --host http://127.0.0.1 \ + --port 30000 \ + --num-questions 200 \ + --num-shots 5 +``` + +**HellaSwag** + +```bash Command +python benchmark/hellaswag/bench_sglang.py \ + --host http://127.0.0.1 \ + --port 30000 \ + --num-questions 200 \ + --num-shots 20 +``` + +**GPQA** + +```bash Command +python -m sglang.test.run_eval \ + --eval-name gpqa \ + --port 30000 \ + --num-examples 198 \ + --max-tokens 120000 \ + --repeat 8 +``` + + +For reasoning models, add `--thinking-mode ` (e.g., `qwen3`, `deepseek-r1`, `deepseek-v3`). You may skip it if the model has forced thinking enabled. + + +**HumanEval** + +```bash Command +pip install human_eval + +python -m sglang.test.run_eval \ + --eval-name humaneval \ + --num-examples 10 \ + --port 30000 +``` + +### VLMs + +**MMMU** + +```bash Command +python benchmark/mmmu/bench_sglang.py \ + --port 30000 \ + --concurrency 64 +``` + + +You can set max tokens by passing `--extra-request-body '{"max_tokens": 4096}'`. + + +For models capable of processing video, we recommend extending the evaluation to include `VideoMME`, `MVBench`, and other relevant benchmarks. + +## Performance + +Performance benchmarks measure **Latency** (Time To First Token - TTFT) and **Throughput** (tokens/second). + +### LLMs + +**Latency-Sensitive Benchmark** + +This simulates a scenario with low concurrency (e.g., single user) to measure latency. + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --host 0.0.0.0 \ + --port 30000 \ + --dataset-name random \ + --num-prompts 10 \ + --max-concurrency 1 +``` + +**Throughput-Sensitive Benchmark** + +This simulates a high-traffic scenario to measure maximum system throughput. + +```bash Command +python -m sglang.bench_serving \ + --backend sglang \ + --host 0.0.0.0 \ + --port 30000 \ + --dataset-name random \ + --num-prompts 1000 \ + --max-concurrency 100 +``` + +**Single Batch Performance** + +You can also benchmark the performance of processing a single batch offline. + +```bash Command +python -m sglang.bench_one_batch_server \ + --model \ + --batch-size 8 \ + --input-len 1024 \ + --output-len 1024 +``` + +You can run more granular benchmarks: + +- **Low Concurrency**: `--num-prompts 10 --max-concurrency 1` +- **Medium Concurrency**: `--num-prompts 80 --max-concurrency 16` +- **High Concurrency**: `--num-prompts 500 --max-concurrency 100` + +## Reporting Results + +For each evaluation, please report: + +1. **Metric Score**: Accuracy % (LLMs and VLMs); Latency (ms) and Throughput (tok/s) (LLMs only). +2. **Environment settings**: GPU type/count, SGLang commit hash. +3. **Launch configuration**: Model path, TP size, and any special flags. +4. **Evaluation parameters**: Number of shots, examples, max tokens. diff --git a/docs_new/docs/developer_guide/overview.mdx b/docs_new/docs/developer_guide/overview.mdx new file mode 100644 index 000000000..3c952d724 --- /dev/null +++ b/docs_new/docs/developer_guide/overview.mdx @@ -0,0 +1,11 @@ +--- +title: Developer Guide +description: Contributing to SGLang — development setup, benchmarking, and evaluation. +--- + +- [Contribution Guide](./contribution_guide) +- [Development Guide (Docker)](./development_guide_using_docker) +- [JIT Kernels](./JIT_kernels) +- [Benchmark and Profiling](./benchmark_and_profiling) +- [Bench Serving](./bench_serving) +- [Evaluating New Models](./evaluating_new_models) diff --git a/docs_new/docs/developer_guide/release_process.mdx b/docs_new/docs/developer_guide/release_process.mdx new file mode 100644 index 000000000..cac283675 --- /dev/null +++ b/docs_new/docs/developer_guide/release_process.mdx @@ -0,0 +1,21 @@ +--- +title: "PyPI Package Release Process" +metatags: + description: "SGLang PyPI release: version update, upload_pypi.sh script, GitHub release creation." +--- +## Update the version in code +Update the package version in `python/pyproject.toml` and `python/sglang/__init__.py`. + +## Upload the PyPI package + +```text Output +pip install build twine +``` + +```text Output +cd python +bash upload_pypi.sh +``` + +## Make a release in GitHub +Make a new release https://github.com/sgl-project/sglang/releases/new. diff --git a/docs_new/docs/developer_guide/setup_github_runner.mdx b/docs_new/docs/developer_guide/setup_github_runner.mdx new file mode 100644 index 000000000..4c4243623 --- /dev/null +++ b/docs_new/docs/developer_guide/setup_github_runner.mdx @@ -0,0 +1,54 @@ +--- +title: "Set Up Self-Hosted Runners for GitHub Action" +metatags: + description: "SGLang GitHub Actions self-hosted runner: Docker setup for NVIDIA/AMD GPUs, config.sh and run.sh." +--- +## Add a Runner + +### Step 1: Start a docker container. + +**You can mount a folder for the shared huggingface model weights cache. ** +The command below uses `/tmp/huggingface` as an example. + +```text Output +docker pull nvidia/cuda:12.9.1-devel-ubuntu22.04 +# Nvidia +docker run --shm-size 128g -it -v /tmp/huggingface:/hf_home --gpus all nvidia/cuda:12.9.1-devel-ubuntu22.04 /bin/bash +# AMD +docker run --rm --device=/dev/kfd --device=/dev/dri --group-add video --shm-size 128g -it -v /tmp/huggingface:/hf_home lmsysorg/sglang:v0.5.0rc1-rocm630 /bin/bash +# AMD just the last 2 GPUs +docker run --rm --device=/dev/kfd --device=/dev/dri/renderD176 --device=/dev/dri/renderD184 --group-add video --shm-size 128g -it -v /tmp/huggingface:/hf_home lmsysorg/sglang:v0.5.0rc1-rocm630 /bin/bash +``` + +### Step 2: Configure the runner by `config.sh` + +Run these commands inside the container. + +```text Output +apt update && apt install -y curl python3-pip git +pip install --upgrade pip +export RUNNER_ALLOW_RUNASROOT=1 +``` + +Then follow https://github.com/sgl-project/sglang/settings/actions/runners/new?arch=x64&os=linux to run `config.sh` + +**Notes** +- Do not need to specify the runner group +- Give it a name (e.g., `test-sgl-gpu-0`) and some labels (e.g., `1-gpu-runner`). The labels can be edited later in Github Settings. +- Do not need to change the work folder. + +### Step 3: Run the runner by `run.sh` + +- Set up environment variables +```text Output +export HF_HOME=/hf_home +export SGLANG_IS_IN_CI=true +export HF_TOKEN=hf_xxx +export OPENAI_API_KEY=sk-xxx +export CUDA_VISIBLE_DEVICES=0 +``` + +- Run it forever +```text Output +while true; do ./run.sh; echo "Restarting..."; sleep 2; done +``` diff --git a/docs_new/docs/get-started/installation.mdx b/docs_new/docs/get-started/installation.mdx new file mode 100644 index 000000000..0402af64a --- /dev/null +++ b/docs_new/docs/get-started/installation.mdx @@ -0,0 +1,256 @@ +--- +title: Installation +description: Install SGLang with pip/uv, source, Docker, Kubernetes, and cloud deployment options. +keywords: + - installation + - sglang + - pip + - docker +--- + +You can install SGLang using one of the methods below. +This page primarily applies to common NVIDIA GPU platforms. +For other or newer platforms, please refer to the dedicated pages for [AMD GPUs](../hardware-platforms/amd-gpus), [Intel Xeon CPUs](../hardware-platforms/cpu-server), [Google TPU](../hardware-platforms/tpu), [NVIDIA DGX Spark](https://lmsys.org/blog/2025-11-03-gpt-oss-on-nvidia-dgx-spark/), [NVIDIA Jetson](../hardware-platforms/nvidia), [Ascend NPUs](../hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support), and [Intel XPU](../hardware-platforms/xpu). + + +## Install methods + + + + It is recommended to use uv for faster installation: + + ```bash + pip install --upgrade pip + pip install uv + uv pip install "sglang" + ``` + + ### Quick fixes to common problems + + + + In some cases (for example, GB200), the command above might install a wrong torch version (for example, the CPU version) due to dependency resolution. Reinstall the correct [PyTorch](https://pytorch.org/get-started/locally/) with the following: + + ```bash + uv pip install "torch" "torchvision" --extra-index-url https://download.pytorch.org/whl/cu129 --force-reinstall + ``` + + + + If you do not have Docker access, install the matching `sgl_kernel` wheel from [the sgl-project whl releases](https://github.com/sgl-project/whl/releases) after installing SGLang. Replace `X.Y.Z` with the `sgl_kernel` version required by your SGLang (you can find this by running `uv pip show sgl_kernel`). + + **x86_64** + + ```bash + uv pip install "https://github.com/sgl-project/whl/releases/download/vX.Y.Z/sgl_kernel-X.Y.Z+cu130-cp310-abi3-manylinux2014_x86_64.whl" + ``` + + **aarch64** + + ```bash + uv pip install "https://github.com/sgl-project/whl/releases/download/vX.Y.Z/sgl_kernel-X.Y.Z+cu130-cp310-abi3-manylinux2014_aarch64.whl" + ``` + + + + Choose one of the following solutions: + + 1. Set `CUDA_HOME` to your CUDA install root: + + ```bash + export CUDA_HOME=/usr/local/cuda- + ``` + + 2. Install FlashInfer first following the [FlashInfer installation doc](https://docs.flashinfer.ai/installation.html), then install SGLang as described above. + + + + + +```bash +git clone https://github.com/sgl-project/sglang.git +cd sglang +pip install --upgrade pip +pip install -e "python" +``` + + ### Quick fixes to common problems + + + + If you want to develop SGLang, try the dev docker image. Refer to [setup docker container](../developer_guide/development_guide_using_docker#setup-docker-container). The docker image is `lmsysorg/sglang:dev`. + + + + + + The docker images are available on Docker Hub at [lmsysorg/sglang](https://hub.docker.com/r/lmsysorg/sglang/tags), built from [Dockerfile](https://github.com/sgl-project/sglang/tree/main/docker). + Replace `` below with your huggingface hub [token](https://huggingface.co/docs/hub/en/security-tokens). + + **Standard image** + + ```bash + docker run --gpus all \ + --shm-size 32g \ + -p 30000:30000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --env "HF_TOKEN=" \ + --ipc=host \ + lmsysorg/sglang:latest \ + python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 30000 + ``` + + **Runtime image for production** + + ```bash + docker run --gpus all \ + --shm-size 32g \ + -p 30000:30000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --env "HF_TOKEN=" \ + --ipc=host \ + lmsysorg/sglang:latest-runtime \ + python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 30000 + ``` + + You can also find the nightly docker images [here](https://hub.docker.com/r/lmsysorg/sglang/tags?name=nightly). + + + On B300/GB300 (SM103) or CUDA 13 environment, use the nightly image at `lmsysorg/sglang:dev-cu13` or stable image at `lmsysorg/sglang:latest-cu130-runtime`. Do not re-install the project as editable inside the docker image, since it will override the version of libraries specified by the cu13 docker image. + + + + + Please check out [OME](https://github.com/sgl-project/ome), a Kubernetes operator for enterprise-grade management and serving of large language models (LLMs). + + + + For models that fit into GPUs on one node, create the deployment and service with llama-31-8b as example. + + ```bash + kubectl apply -f docker/k8s-sglang-service.yaml + ``` + + + + For larger models (for example, `DeepSeek-R1`), modify the model path and arguments, then create the statefulset and service. + + ```bash + kubectl apply -f docker/k8s-sglang-distributed-sts.yaml + ``` + + + + + + + This method is recommended if you plan to serve it as a service. A better approach is to use the [k8s-sglang-service.yaml](https://github.com/sgl-project/sglang/blob/main/docker/k8s-sglang-service.yaml). + + + 1. Copy the [compose.yml](https://github.com/sgl-project/sglang/blob/main/docker/compose.yaml) to your local machine. + 2. Start the service: + + ```bash + docker compose up -d + ``` + + + + To deploy on Kubernetes or 12+ clouds, you can use [SkyPilot](https://github.com/skypilot-org/skypilot). + + 1. Install SkyPilot and set up Kubernetes cluster or cloud access. See [SkyPilot's documentation](https://skypilot.readthedocs.io/en/latest/getting-started/installation.html). + 2. Deploy on your own infra with a single command and get the HTTP API endpoint: + + **SkyPilot YAML: `sglang.yaml`** + + ```yaml Config + # sglang.yaml + envs: + HF_TOKEN: null + + resources: + image_id: docker:lmsysorg/sglang:latest + accelerators: A100 + ports: 30000 + + run: | + conda deactivate + python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --host 0.0.0.0 \ + --port 30000 + ``` + + ```bash + # Deploy on any cloud or Kubernetes cluster. Use --cloud to select a specific cloud provider. + HF_TOKEN= sky launch -c sglang --env HF_TOKEN sglang.yaml + + # Get the HTTP API endpoint + sky status --endpoint 30000 sglang + ``` + + 3. To scale with autoscaling and failure recovery, check out the [SkyServe + SGLang guide](https://github.com/skypilot-org/skypilot/tree/master/llm/sglang#serving-llama-2-with-sglang-for-more-traffic-using-skyserve). + + + + To deploy on SGLang on AWS SageMaker, check out [AWS SageMaker Inference](https://aws.amazon.com/sagemaker/ai/deploy). + + Amazon Web Services provide supports for SGLang containers along with routine security patching. For available SGLang containers, check out [AWS SGLang DLCs](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#sglang-containers). + + To host a model with your own container, follow the following steps: + + 1. Build a docker container with [sagemaker.Dockerfile](https://github.com/sgl-project/sglang/blob/main/docker/sagemaker.Dockerfile) alongside the [serve](https://github.com/sgl-project/sglang/blob/main/docker/serve) script, then push it to AWS ECR. + + **Dockerfile build script: `build-and-push.sh`** + + ```bash + #!/bin/bash + AWS_ACCOUNT="" + AWS_REGION="" + REPOSITORY_NAME="" + IMAGE_TAG="" + + ECR_REGISTRY="${AWS_ACCOUNT}.dkr.ecr.${AWS_REGION}.amazonaws.com" + IMAGE_URI="${ECR_REGISTRY}/${REPOSITORY_NAME}:${IMAGE_TAG}" + + echo "Starting build and push process..." + + # Login to ECR + echo "Logging into ECR..." + aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${ECR_REGISTRY} + + # Build the image + echo "Building Docker image..." + docker build -t ${IMAGE_URI} -f sagemaker.Dockerfile . + + echo "Pushing ${IMAGE_URI}" + docker push ${IMAGE_URI} + + echo "Build and push completed successfully!" + ``` + + 2. Deploy a model for serving on AWS Sagemaker. Refer to [deploy_and_serve_endpoint.py](https://github.com/sgl-project/sglang/blob/main/examples/sagemaker/deploy_and_serve_endpoint.py). For more information, check out [sagemaker-python-sdk](https://github.com/aws/sagemaker-python-sdk). + + **Default command** + + The model server on SageMaker runs: `python3 -m sglang.launch_server --model-path opt/ml/model --host 0.0.0.0 --port 8080`. + + **Custom arguments** + + The [serve](https://github.com/sgl-project/sglang/blob/main/docker/serve) script exposes all options in `python3 -m sglang.launch_server --help` through environment variables prefixed with `SM_SGLANG_`. + + **Environment variable mapping** + + The serve script converts variables with prefix `SM_SGLANG_` from `SM_SGLANG_INPUT_ARGUMENT` into `--input-argument` for the `python3 -m sglang.launch_server` CLI. + + **Example** + + To run [Qwen/Qwen3-0.6B](https://huggingface.co/Qwen/Qwen3-0.6B) with reasoning parser, add `SM_SGLANG_MODEL_PATH=Qwen/Qwen3-0.6B` and `SM_SGLANG_REASONING_PARSER=qwen3`. + + + +## Common notes + +- [FlashInfer](https://github.com/flashinfer-ai/flashinfer) is the default attention kernel backend. It only supports sm75 and above. If you encounter any FlashInfer-related issues on sm75+ devices (for example, T4, A10, A100, L4, L40S, H100), switch to other kernels by adding `--attention-backend triton --sampling-backend pytorch` and open an issue on GitHub. +- To reinstall flashinfer locally, use the following command: `pip3 install --upgrade flashinfer-python --force-reinstall --no-deps` and then delete the cache with `rm -rf ~/.cache/flashinfer`. +- When encountering `ptxas fatal : Value 'sm_103a' is not defined for option 'gpu-name'` on B300/GB300, fix it with `export TRITON_PTXAS_PATH=/usr/local/cuda/bin/ptxas`. diff --git a/docs_new/docs/get-started/quickstart.mdx b/docs_new/docs/get-started/quickstart.mdx new file mode 100644 index 000000000..d33a1fb12 --- /dev/null +++ b/docs_new/docs/get-started/quickstart.mdx @@ -0,0 +1,332 @@ +--- +title: "Quickstart" +description: "Get up and running with SGLang in minutes: install, launch a server, and send your first request." +--- + +## Overview + +This guide walks you through the entire flow of getting started with SGLang: + +1. **Install** SGLang +2. **Launch** an inference server +3. **Send requests** using cURL, OpenAI Python client, Python `requests`, or the native SGLang API + +By the end, you'll have a working SGLang server responding to your prompts. + +--- + +## Prerequisites + +- **Python**: 3.9 or higher +- **GPU**: NVIDIA GPU with CUDA support (sm75 and above, e.g., T4, A10, A100, L4, L40S, H100) +- **OS**: Linux (recommended) + + +For other platforms, see the dedicated guides for [AMD GPUs](../hardware-platforms/amd-gpus), [Intel Xeon CPUs](../hardware-platforms/cpu-server), [Google TPUs](../hardware-platforms/tpu), [NVIDIA Jetson](../hardware-platforms/nvidia), [Ascend NPUs](../hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support), and [Intel XPU](../hardware-platforms/xpu). + + +--- + +## Installation + + + + We recommend using **uv** for faster installation: + +```bash +pip install --upgrade pip +pip install uv +uv pip install sglang +``` + + +```bash +# Clone and install from source +git clone https://github.com/sgl-project/sglang.git +cd sglang +pip install --upgrade pip +pip install -e "python" +``` + + + The Docker images are available on Docker Hub at [lmsysorg/sglang](https://hub.docker.com/r/lmsysorg/sglang/tags). + + Replace `` with your [Hugging Face token](https://huggingface.co/docs/hub/en/security-tokens): + + ```bash + docker run --gpus all \ + --shm-size 32g \ + -p 30000:30000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --env "HF_TOKEN=" \ + --ipc=host \ + lmsysorg/sglang:latest \ + python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 30000 + ``` + + For production deployments, use the smaller **runtime** variant (~40% size reduction): + + ```bash + docker run --gpus all \ + --shm-size 32g \ + -p 30000:30000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --env "HF_TOKEN=" \ + --ipc=host \ + lmsysorg/sglang:latest-runtime \ + python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 30000 + ``` + + + + +If you encounter `OSError: CUDA_HOME environment variable is not set`, set it with: +```bash +export CUDA_HOME=/usr/local/cuda- +``` + + +--- + +## Launch a Server + +Start the SGLang server with a model. Here we use `qwen/qwen2.5-0.5b-instruct` as a lightweight example: + +```bash +python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct --host 0.0.0.0 --port 30000 +``` + +Wait until you see `The server is fired up and ready to roll!` in the terminal output. + + +Once the server is running, API documentation is available at: +- **Swagger UI**: `http://localhost:30000/docs` +- **ReDoc**: `http://localhost:30000/redoc` +- **OpenAPI Spec**: `http://localhost:30000/openapi.json` + + + +The server automatically applies the chat template from the Hugging Face tokenizer. You can override it with `--chat-template` when launching. + + +--- + +## Send Requests + +SGLang is fully **OpenAI API-compatible**, so you can use the same tools and libraries you already know. + +### Using cURL + +```bash +curl http://localhost:30000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "qwen/qwen2.5-0.5b-instruct", + "messages": [ + {"role": "user", "content": "What is the capital of France?"} + ] + }' +``` + +### Using OpenAI Python Client + +Install the OpenAI Python library if you haven't: + +```bash +pip install openai +``` + +Then send a request: + +```python Example +import openai + +client = openai.Client(base_url="http://127.0.0.1:30000/v1", api_key="None") + +response = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0, + max_tokens=64, +) + +print(response.choices[0].message.content) +``` + +#### Streaming + +```python Example +import openai + +client = openai.Client(base_url="http://127.0.0.1:30000/v1", api_key="None") + +response = client.chat.completions.create( + model="qwen/qwen2.5-0.5b-instruct", + messages=[ + {"role": "user", "content": "List 3 countries and their capitals."}, + ], + temperature=0, + max_tokens=64, + stream=True, +) + +for chunk in response: + if chunk.choices[0].delta.content: + print(chunk.choices[0].delta.content, end="", flush=True) +``` + +### Using Python Requests + +```python Example +import requests + +url = "http://localhost:30000/v1/chat/completions" + +data = { + "model": "qwen/qwen2.5-0.5b-instruct", + "messages": [{"role": "user", "content": "What is the capital of France?"}], +} + +response = requests.post(url, json=data) +print(response.json()) +``` + +### Using the Native `/generate` API + +SGLang also provides a native `/generate` endpoint for more flexibility. + +```python Example +import requests + +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "The capital of France is", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 32, + }, + }, +) + +print(response.json()) +``` + +#### Streaming with `/generate` + +```python Example +import requests +import json + +response = requests.post( + "http://localhost:30000/generate", + json={ + "text": "The capital of France is", + "sampling_params": { + "temperature": 0, + "max_new_tokens": 32, + }, + "stream": True, + }, + stream=True, +) + +prev = 0 +for chunk in response.iter_lines(decode_unicode=False): + chunk = chunk.decode("utf-8") + if chunk and chunk.startswith("data:"): + if chunk == "data: [DONE]": + break + data = json.loads(chunk[5:].strip("\n")) + output = data["text"] + print(output[prev:], end="", flush=True) + prev = len(output) +``` + +--- + +## Offline Batch Inference (No Server) + +SGLang also supports offline batch inference using the `Engine` class directly -- no HTTP server required. + +```python Example +import sglang as sgl + +llm = sgl.Engine(model_path="qwen/qwen2.5-0.5b-instruct") + +prompts = [ + "Hello, my name is", + "The president of the United States is", + "The capital of France is", + "The future of AI is", +] + +sampling_params = {"temperature": 0.8, "top_p": 0.95} + +outputs = llm.generate(prompts, sampling_params) + +for prompt, output in zip(prompts, outputs): + print(f"Prompt: {prompt}\nGenerated text: {output['text']}\n") + +llm.shutdown() +``` + +--- + +## Common Troubleshooting + + + + Set the `CUDA_HOME` environment variable to your CUDA install root: + ```bash + export CUDA_HOME=/usr/local/cuda- + ``` + + + Switch to alternative backends by adding these flags when launching the server: + ```bash + --attention-backend triton --sampling-backend pytorch + ``` + + + ```bash + pip3 install --upgrade flashinfer-python --force-reinstall --no-deps + rm -rf ~/.cache/flashinfer + ``` + + + ```bash + export TRITON_PTXAS_PATH=/usr/local/cuda/bin/ptxas + ``` + + + +--- + +{/* +WIP, TBD linked later +## What's Next? + + + + Explore the full Chat Completions and Completions APIs, including multi-turn conversations. + + + Send image inputs alongside text using OpenAI-compatible vision APIs. + + + Fine-tune generation with temperature, top-p, frequency penalty, and more. + + + Customize server behavior with advanced launch arguments like tensor parallelism. + + + Constrain model output to JSON, regex, or EBNF grammars. + + + Use the familiar Ollama CLI and Python library with SGLang as the backend. + + +*/} diff --git a/docs_new/docs/hardware-platforms/amd-gpus.mdx b/docs_new/docs/hardware-platforms/amd-gpus.mdx new file mode 100644 index 000000000..823f783dd --- /dev/null +++ b/docs_new/docs/hardware-platforms/amd-gpus.mdx @@ -0,0 +1,194 @@ +--- +title: "AMD GPUs" +--- +This document describes how run SGLang on AMD GPUs. If you encounter issues or have questions, please [open an issue](https://github.com/sgl-project/sglang/issues). + +## System Configuration + +When using AMD GPUs (such as MI300X), certain system-level optimizations help ensure stable performance. Here we take MI300X as an example. AMD provides official documentation for MI300X optimization and system tuning: + +* [AMD MI300X Tuning Guides](https://rocm.docs.amd.com/en/latest/how-to/tuning-guides/mi300x/index.html) +* [LLM inference performance validation on AMD Instinct MI300X](https://rocm.docs.amd.com/en/latest/how-to/rocm-for-ai/inference/vllm-benchmark.html) +* [AMD Instinct MI300X System Optimization](https://rocm.docs.amd.com/en/latest/how-to/system-optimization/mi300x.html) +* [AMD Instinct MI300X Workload Optimization](https://rocm.docs.amd.com/en/latest/how-to/rocm-for-ai/inference-optimization/workload.html) +* [Supercharge DeepSeek-R1 Inference on AMD Instinct MI300X](https://rocm.blogs.amd.com/artificial-intelligence/DeepSeekR1-Part2/README.html) + + +We strongly recommend reading these docs and guides entirely to fully utilize your system. + + +Below are a few key settings to confirm or enable for SGLang: + +### Update GRUB Settings + +In `/etc/default/grub`, append the following to `GRUB_CMDLINE_LINUX`: + + +```text GRUB Configuration +pci=realloc=off iommu=pt +``` + + +Afterward, run `sudo update-grub` (or your distro's equivalent) and reboot. + +### Disable NUMA Auto-Balancing + + +```bash Disable NUMA +sudo sh -c 'echo 0 > /proc/sys/kernel/numa_balancing' +``` + + +You can automate or verify this change using [this helpful script](https://github.com/ROCm/triton/blob/rocm_env/scripts/amd/env_check.sh). + +Again, please go through the entire documentation to confirm your system is using the recommended configuration. + +## Install SGLang + + + + The docker images are available on Docker Hub at [lmsysorg/sglang](https://hub.docker.com/r/lmsysorg/sglang/tags), built from [rocm.Dockerfile](https://github.com/sgl-project/sglang/tree/main/docker). + + 1. **Build the docker image** + If you use pre-built images, you can skip this step and replace `sglang_image` with the pre-built image names in the steps below. + + + ```bash Build Image + docker build -t sglang_image -f rocm.Dockerfile . + ``` + + + 2. **Create a convenient alias** + + ```bash Create Alias + alias drun='docker run -it --rm --network=host --privileged --device=/dev/kfd --device=/dev/dri \ + --ipc=host --shm-size 16G --group-add video --cap-add=SYS_PTRACE \ + --security-opt seccomp=unconfined \ + -v $HOME/dockerx:/dockerx \ + -v /data:/data' + ``` + + + If you are using RDMA, please note that: + + * `--network host` and `--privileged` are required by RDMA. If you don't need RDMA, you can remove them. + * You may need to set `NCCL_IB_GID_INDEX` if you are using RoCE, for example: `export NCCL_IB_GID_INDEX=3`. + + 3. **Launch the server** + + Replace `` below with your [huggingface hub token](https://huggingface.co/docs/hub/en/security-tokens). + + + + ```bash Launch Server + drun -p 30000:30000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --env "HF_TOKEN=" \ + sglang_image \ + python3 -m sglang.launch_server \ + --model-path NousResearch/Meta-Llama-3.1-8B \ + --host 0.0.0.0 \ + --port 30000 + ``` + + + 4. **Verify the installation** + You can run a benchmark in another terminal or refer to [other docs](../basic_usage/openai_api_completions) to send requests to the engine. + + + ```bash Run Benchmark + drun sglang_image \ + python3 -m sglang.bench_serving \ + --backend sglang \ + --dataset-name random \ + --num-prompts 4000 \ + --random-input 128 \ + --random-output 128 + ``` + + + With your AMD system properly configured and SGLang installed, you can now fully leverage AMD hardware to power SGLang's machine learning capabilities. + + + + 1. **Clone the repository** + Clone the SGLang repository. + + + ```bash + git clone https://github.com/sgl-project/sglang.git + cd sglang + ``` + + + 2. **Compile sgl-kernel** + Upgrade pip and compile the sgl-kernel for ROCm support. + + + ```bash + pip install --upgrade pip + cd sgl-kernel + python setup_rocm.py install + ``` + + + 3. **Install sglang package** + Install the SGLang Python package with HIP and diffusion support. + + + ```bash + cd .. + rm -rf python/pyproject.toml && mv python/pyproject_other.toml python/pyproject.toml + pip install -e "python[all_hip]" + ``` + + + + +## Examples + +### Running DeepSeek-V3 + +The only difference when running DeepSeek-V3 is in how you start the server. + + +```bash DeepSeek-V3 +drun -p 30000:30000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --ipc=host \ + --env "HF_TOKEN=" \ + sglang_image \ + python3 -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-V3 \ + --tp 8 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 30000 +``` + + +[Running DeepSeek-R1 on a single NDv5 MI300X VM](https://techcommunity.microsoft.com/blog/azurehighperformancecomputingblog/running-deepseek-r1-on-a-single-ndv5-mi300x-vm/4372726) could also be a good reference. + +### Running Llama3.1 + +Running Llama3.1 is nearly identical to running DeepSeek-V3. The only difference is in the model specified when starting the server. + + +```bash Llama3.1 +drun -p 30000:30000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --ipc=host \ + --env "HF_TOKEN=" \ + sglang_image \ + python3 -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --tp 8 \ + --trust-remote-code \ + --host 0.0.0.0 \ + --port 30000 +``` + + +### Warmup Step + +When the server displays `The server is fired up and ready to roll!`, it means the startup is successful. diff --git a/docs_new/docs/hardware-platforms/ascend-npus/Best-Practice-on-Ascend-NPU.mdx b/docs_new/docs/hardware-platforms/ascend-npus/Best-Practice-on-Ascend-NPU.mdx new file mode 100644 index 000000000..0b4b3e917 --- /dev/null +++ b/docs_new/docs/hardware-platforms/ascend-npus/Best-Practice-on-Ascend-NPU.mdx @@ -0,0 +1,2911 @@ +This section describes the best practice data of mainstream LLM models such as DeepSeek and Qwen on the Ascend NPU. If +you encounter issues or have any questions, please [open an issue](https://github.com/sgl-project/sglang/issues). + +## DeepSeek Series Models + +### Low Latency + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelHardwareCardsDeploy ModeDatasetTPOTQuantizationConfiguration
      Deepseek-R1Atlas 800I A332PD Separation6K+1.6K20msW8A8 INT8[Optimal Configuration](#deepseek-r1-6k-1_6k-20ms-on-a3-32-cards-separation-mode)
      Deepseek-R1Atlas 800I A332PD Separation3.9K+1K20msW8A8 INT8[Optimal Configuration](#deepseek-r1-3_9k-1k-20ms-on-a3-32-cards-separation-mode)
      Deepseek-R1Atlas 800I A332PD Separation3.5K+1.5K20msW8A8 INT8[Optimal Configuration](#deepseek-r1-3_5k-1_5k-20ms-on-a3-32-cards-separation-mode)
      Deepseek-R1Atlas 800I A332PD Separation3.5K+1K20msW8A8 INT8[Optimal Configuration](#deepseek-r1-3_5k-1k-20ms-on-a3-32-cards-separation-mode)
      DeepSeek-V3.2-ExpAtlas 800I A332PD Separation64K+3K30msW8A8 INT8[Optimal Configuration](#deepseek-v32-exp-64k-3k-30ms-on-a3-32-cards-separation-mode)
      + +### High Throughput + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelHardwareCardsDeploy ModeDatasetTPOTQuantizationConfiguration
      Deepseek-R1Atlas 800I A332PD Separation3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#deepseek-r1-3_5k-1_5k-50ms-on-a3-32-cards-separation-mode)
      Deepseek-R1Atlas 800I A38PD Mixed2K+2K50msW4A8 INT8[Optimal Configuration](#deepseek-r1-2k-2k-50ms-on-a3-8-cards-mixed-mode)
      Deepseek-R1Atlas 800I A316PD Separation2K+2K50msW4A8 INT8[Optimal Configuration](#deepseek-r1-2k-2k-50ms-on-a3-16-cards-separation-mode)
      Deepseek-R1Atlas 800I A38PD Mixed3.5K+1.5K50msW4A8 INT8[Optimal Configuration](#deepseek-r1-3_5k-1_5k-50ms-on-a3-8-cards-mixed-mode)
      Deepseek-R1Atlas 800I A316PD Separation3.5K+1.5K50msW4A8 INT8[Optimal Configuration](#deepseek-r1-3_5k-1_5k-50ms-on-a3-16-cards-separation-mode)
      + +## Qwen Series Models + +### Low Latency + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelHardwareCardsDeploy ModeDatasetTPOTQuantizationConfiguration
      Qwen3-235B-A22BAtlas 800I A38PD Mixed11K+1K10msBF16[Optimal Configuration](#qwen3-235b-a22b-11k-1k-10ms-on-a3-8-cards-mixed-mode)
      Qwen3-32BAtlas 800I A34PD Mixed6K+1.5K18msBF16[Optimal Configuration](#qwen3-32b-6k-1_5k-18ms-on-a3-4-cards-mixed-mode)
      Qwen3-32BAtlas 800I A34PD Mixed4K+1.5K11msBF16[Optimal Configuration](#qwen3-32b-4k-1_5k-11ms-on-a3-4-cards-mixed-mode)
      Qwen3-32BAtlas 800I A38PD Mixed18K+4K12msBF16[Optimal Configuration](#qwen3-32b-18k-4k-12ms-on-a3-8-cards-mixed-mode)
      Qwen3-32BAtlas 800I A28PD Mixed6K+1.5K18msW8A8 INT8[Optimal Configuration](#qwen3-32b-6k-1_5k-18ms-on-a2-8-cards-mixed-mode)
      Qwen3-32BAtlas 800I A28PD Mixed4K+1.5K11msBF16[Optimal Configuration](#qwen3-32b-4k-1_5k-11ms-on-a2-8-cards-mixed-mode)
      + +### High Throughput + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelHardwareCardsDeploy ModeDatasetTPOTQuantizationConfiguration
      Qwen3-235B-A22BAtlas 800I A324PD Separation3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#qwen3-235b-a22b-3_5k-1_5k-50ms-on-a3-24-cards-separation-mode)
      Qwen3-235B-A22BAtlas 800I A38PD Mixed3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#qwen3-235b-a22b-3_5k-1_5k-50ms-on-a3-8-cards-mixed-mode)
      Qwen3-235B-A22BAtlas 800I A38PD Mixed2K+2K100msW8A8 INT8[Optimal Configuration](#qwen3-235b-a22b-2k-2k-100ms-on-a3-8-cards-mixed-mode)
      Qwen3-235B-A22BAtlas 800I A38PD Mixed2K+2K50msW8A8 INT8[Optimal Configuration](#qwen3-235b-a22b-2k-2k-50ms-on-a3-8-cards-mixed-mode)
      Qwen3-235B-A22BAtlas 800I A316PD Mixed2K+2K50msW8A8 INT8[Optimal Configuration](#qwen3-235b-a22b-2k-2k-50ms-on-a3-16-cards-mixed-mode)
      Qwen3-32BAtlas 800I A32PD Mixed3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#qwen3-32b-3_5k-1_5k-50ms-on-a3-2-cards-mixed-mode)
      Qwen3-32BAtlas 800I A32PD Mixed2K+2K50msW8A8 INT8[Optimal Configuration](#qwen3-32b-2k-2k-50ms-on-a3-2-cards-mixed-mode)
      Qwen3-30B-A3BAtlas 800I A31PD Mixed3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#qwen3-30b-a3b-3_5k-1_5k-50ms-on-a3-1-card-mixed-mode)
      Qwen3-Coder-480B-A35B-InstructAtlas 800I A324PD Separation3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#qwen3-coder-480b-a35b-instruct-3_5k-1_5k-50ms-on-a3-24-cards-separation-mode)
      Qwen3-Coder-480B-A35B-InstructAtlas 800I A316PD Mixed3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#qwen3-coder-480b-a35b-instruct-3_5k-1_5k-50ms-on-a3-16-cards-mixed-mode)
      Qwen3-Coder-480B-A35B-InstructAtlas 800I A38PD Mixed3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#qwen3-coder-480b-a35b-instruct-3_5k-1_5k-50ms-on-a3-8-cards-mixed-mode)
      Qwen3-Next-80B-A3B-InstructAtlas 800I A32PD Mixed3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#qwen3-next-80B-a3b-instruct-3_5k-1_5k-50ms-on-a3-2-cards-mixed-mode)
      Qwen3-32BAtlas 800I A28PD Mixed3.5K+1.5K50msW8A8 INT8[Optimal Configuration](#qwen3-32b-3_5k-1_5k-50ms-on-a2-8-cards-mixed-mode)
      Qwen3-32BAtlas 800I A28PD Mixed2K+2K50msW8A8 INT8[Optimal Configuration](#qwen3-32b-2k-2k-50ms-on-a2-8-cards-mixed-mode)
      + +## Optimal Configuration + +### DeepSeek-R1 3_5K-1_5K 50ms on A3 32 Cards Separation Mode + +Model: Deepseek R1 + +Hardware: Atlas 800I A3 32Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 +export SGLANG_SET_CPU_AFFINITY=1 +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 + +export ASCEND_MF_STORE_URL="tcp://your prefill ip1:24669" + +P_IP=('your prefill ip1' 'your prefill ip2') + +D_IP=('your decode ip1' 'your decode ip2') + +MODEL_PATH=xxx + +export SGLANG_NPU_USE_MLAPO=1 +export SGLANG_USE_FIA_NZ=1 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" +# prefill +for i in "${!P_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${P_IP[$i]}" || "$LOCAL_HOST2" == "${P_IP[$i]}" ]]; + then + echo "${P_IP[$i]}" + export HCCL_BUFFSIZE=1536 + export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 + export TASK_QUEUE_ENABLE=2 + + export HCCL_SOCKET_IFNAME=lo + export GLOO_SOCKET_IFNAME=lo + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode prefill --host ${P_IP[$i]} \ + --port 8000 --disaggregation-bootstrap-port $((8998+$i)) --trust-remote-code --nnodes 1 --node-rank 0 \ + --tp-size 16 --mem-fraction-static 0.81 --attention-backend ascend --device npu --quantization modelslim \ + --disaggregation-transfer-backend ascend --max-running-requests 8 --context-length 8192 --disable-radix-cache \ + --chunked-prefill-size -1 --max-prefill-tokens 28680 --moe-a2a-backend deepep --deepep-mode normal \ + --speculative-algorithm NEXTN --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2 \ + --dp-size 2 --enable-dp-attention --disable-shared-experts-fusion --dtype bfloat16 --enable-attn-tp-input-scattered + NODE_RANK=$i + break + fi +done + +# decode +for i in "${!D_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${D_IP[$i]}" || "$LOCAL_HOST2" == "${D_IP[$i]}" ]]; + then + echo "${D_IP[$i]}" + export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 + export SGLANG_ENABLE_SPEC_V2=1 + export HCCL_BUFFSIZE=650 + export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=78 + export TASK_QUEUE_ENABLE=1 + export SGLANG_SCHEDULER_SKIP_ALL_GATHER=1 + export HCCL_SOCKET_IFNAME=xxx + export GLOO_SOCKET_IFNAME=xxx + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode decode --host ${D_IP[$i]} \ + --port 8001 --trust-remote-code --dist-init-addr ${D_IP[0]}:5000 --nnodes 2 --node-rank $i --tp-size 32 --dp-size 32 \ + --mem-fraction-static 0.815 --max-running-requests 832 --attention-backend ascend --device npu --quantization modelslim \ + --moe-a2a-backend deepep --enable-dp-attention --deepep-mode low_latency --enable-dp-lm-head --moe-dense-tp 1 \ + --cuda-graph-bs 12 14 16 18 20 22 24 26 --disaggregation-transfer-backend ascend --watchdog-timeout 9000 --context-length 8192 \ + --speculative-algorithm NEXTN --speculative-num-steps 2 --speculative-eagle-topk 1 --speculative-num-draft-tokens 3 \ + --tokenizer-worker-num 4 --prefill-round-robin-balance --disable-shared-experts-fusion --dtype bfloat16 \ + --load-balance-method decode_round_robin + NODE_RANK=$i + break + fi +done + +``` + +```shell Command +export SGLANG_DP_ROUND_ROBIN=1 +python -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://P_IP:8000 8998 \ + --prefill http://P_IP:8000 8999 \ + --decode http://D_IP:8001 \ + --host 127.0.0.1 \ + --port 6688 \ + --mini-lb +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6688 --max-concurrency 768 --random-input-len 3500 --random-output-len 1500 --num-prompts 3072 --random-range-ratio 1 --request-rate 16 +``` + +### DeepSeek-R1 6K-1_6K 20ms on A3 32 Cards Separation Mode + +Model: Deepseek R1 + +Hardware: Atlas 800I A3 32Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 6K+1.6K + +TPOT: 20ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 +export SGLANG_SET_CPU_AFFINITY=1 +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 +export ASCEND_MF_STORE_URL="tcp://your prefill ip1:24669" + +P_IP=('your prefill ip1' 'your prefill ip2') + +D_IP=('your decode ip1' 'your decode ip2') + +MODEL_PATH=xxx + +export SGLANG_NPU_USE_MLAPO=1 +export SGLANG_USE_FIA_NZ=1 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" +# prefill +for i in "${!P_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${P_IP[$i]}" || "$LOCAL_HOST2" == "${P_IP[$i]}" ]]; + then + echo "${P_IP[$i]}" + export HCCL_BUFFSIZE=1536 + export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 + export TASK_QUEUE_ENABLE=2 + + export HCCL_SOCKET_IFNAME=lo + export GLOO_SOCKET_IFNAME=lo + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode prefill --host ${P_IP[$i]} \ + --port 8000 --disaggregation-bootstrap-port $((8998+$i)) --trust-remote-code --nnodes 1 --node-rank 0 \ + --tp-size 16 --mem-fraction-static 0.81 --attention-backend ascend --device npu --quantization modelslim \ + --disaggregation-transfer-backend ascend --max-running-requests 4 --context-length 8192 --disable-radix-cache \ + --chunked-prefill-size -1 --max-prefill-tokens 28680 --moe-a2a-backend deepep --deepep-mode normal \ + --speculative-algorithm NEXTN --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2 \ + --dp-size 2 --enable-dp-attention --disable-shared-experts-fusion --dtype bfloat16 --enable-attn-tp-input-scattered + NODE_RANK=$i + break + fi +done + +# decode +for i in "${!D_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${D_IP[$i]}" || "$LOCAL_HOST2" == "${D_IP[$i]}" ]]; + then + echo "${D_IP[$i]}" + export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 + export SGLANG_ENABLE_SPEC_V2=1 + export HCCL_BUFFSIZE=650 + export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=12 + export TASK_QUEUE_ENABLE=1 + export SGLANG_SCHEDULER_SKIP_ALL_GATHER=1 + export HCCL_SOCKET_IFNAME=xxx + export GLOO_SOCKET_IFNAME=xxx + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode decode --host ${D_IP[$i]} \ + --port 8001 --trust-remote-code --dist-init-addr DIP1:5000 --nnodes 2 --node-rank $i --tp-size 32 --dp-size 16 \ + --mem-fraction-static 0.75 --max-running-requests 32 --attention-backend ascend --device npu --quantization modelslim \ + --moe-a2a-backend deepep --enable-dp-attention --deepep-mode low_latency --enable-dp-lm-head --moe-dense-tp 1 \ + --cuda-graph-bs 2 4 6 --disaggregation-transfer-backend ascend --watchdog-timeout 9000 --context-length 8192 \ + --speculative-algorithm NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --tokenizer-worker-num 4 --prefill-round-robin-balance --disable-shared-experts-fusion --dtype bfloat16 \ + --load-balance-method decode_round_robin + NODE_RANK=$i + break + fi +done + +``` + +```shell Command +export SGLANG_DP_ROUND_ROBIN=1 +python -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://P_IP:8000 8998 \ + --prefill http://P_IP:8000 8999 \ + --decode http://D_IP:8001 \ + --host 127.0.0.1 \ + --port 6688 \ + --mini-lb +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6688 --max-concurrency 32 --random-input-len 6000 --random-output-len 1600 --num-prompts 32 --random-range-ratio 1 +``` + +### DeepSeek-R1 3_9K-1K 20ms on A3 32 Cards Separation Mode + +Model: Deepseek R1 + +Hardware: Atlas 800I A3 32Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 3.9K+1K + +TPOT: 20ms + +#### Model Deployment + +Please Turn to [DeepSeek-R1 6K-1_6K 20ms on A3 32 Cards Separation Mode](#deepseek-r1-6k-1_6k-20ms-on-a3-32-cards-separation-mode) + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6688 --max-concurrency 768 --random-input-len 3900 --random-output-len 1000 --num-prompts 768 --random-range-ratio 1 --request-rate 16 +``` + +### DeepSeek-R1 3_5K-1_5K 20ms on A3 32 Cards Separation Mode + +Model: Deepseek R1 + +Hardware: Atlas 800I A3 32Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 20ms + +#### Model Deployment + +Please Turn to [DeepSeek-R1 6K-1_6K 20ms on A3 32 Cards Separation Mode](#deepseek-r1-6k-1_6k-20ms-on-a3-32-cards-separation-mode) + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```bash Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6688 --max-concurrency 768 --random-input-len 3500 --random-output-len 1500 --num-prompts 768 --random-range-ratio 1 --request-rate 16 +``` + +### DeepSeek-R1 3_5K-1K 20ms on A3 32 Cards Separation Mode + +Model: Deepseek R1 + +Hardware: Atlas 800I A3 32Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 3.5K+1K + +TPOT: 20ms + +#### Model Deployment + +Please Turn to [DeepSeek-R1 6K-1_6K 20ms on A3 32 Cards Separation Mode](#deepseek-r1-6k-1_6k-20ms-on-a3-32-cards-separation-mode) + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6688 --max-concurrency 768 --random-input-len 3500 --random-output-len 1000 --num-prompts 768 --random-range-ratio 1 --request-rate 16 +``` + +### DeepSeek-R1 2K-2K 50ms on A3 8 Cards Mixed Mode + +Model: Deepseek R1 + +Hardware: Atlas 800I A3 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 2K+2K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 +export SGLANG_SCHEDULER_DECREASE_PREFILL_IDLE=1 + +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo + +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=64 +export HCCL_BUFFSIZE=1600 +export DEEPEP_NORMAL_LONG_SEQ_ROUND=10 +export DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS=512 + +MODEL_PATH=xxx + +export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 +export SGLANG_NPU_USE_MLAPO=1 +export SGLANG_ENABLE_SPEC_V2=1 +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_USE_FIA_NZ=1 +export ENABLE_MOE_NZ=1 + +python3 -m sglang.launch_server --model-path ${MODEL_PATH} \ +--tp 16 \ +--trust-remote-code \ +--attention-backend ascend \ +--device npu \ +--quantization modelslim \ +--watchdog-timeout 9000 \ +--host 127.0.0.1 --port 6699 \ +--cuda-graph-bs 4 8 16 \ +--mem-fraction-static 0.74 \ +--max-running-requests 256 \ +--disable-radix-cache --chunked-prefill-size -1 --max-prefill-tokens 1500 \ +--moe-a2a-backend deepep --deepep-mode auto \ +--enable-dp-attention --dp-size 16 --enable-dp-lm-head \ +--speculative-algorithm NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ +--dtype bfloat16 + +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6699 --max-concurrency 256 --random-input-len 2048 --random-output-len 2048 --num-prompts 1024 --random-range-ratio 1 +``` + +### DeepSeek-R1 2K-2K 50ms on A3 16 Cards Separation Mode + +Model: Deepseek R1 + +Hardware: Atlas 800I A3 16Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 2K+2K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 + +export ASCEND_MF_STORE_URL="tcp://your prefill ip1:24667" + +P_IP=('your prefill ip1') + +D_IP=('your decode ip1') + +MODEL_PATH=xxx + +export SGLANG_NPU_USE_MLAPO=1 +export SGLANG_USE_FIA_NZ=1 +export ENABLE_MOE_NZ=1 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +# prefill +for i in "${!P_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${P_IP[$i]}" || "$LOCAL_HOST2" == "${P_IP[$i]}" ]]; + then + echo "${P_IP[$i]}" + export HCCL_BUFFSIZE=1536 + export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 + export TASK_QUEUE_ENABLE=2 + + export HCCL_SOCKET_IFNAME=lo + export GLOO_SOCKET_IFNAME=lo + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode prefill --host ${P_IP[$i]} \ + --port 8000 --disaggregation-bootstrap-port $((8998+$i)) --trust-remote-code --nnodes 1 --node-rank 0 \ + --tp-size 16 --mem-fraction-static 0.6 --attention-backend ascend --device npu --quantization modelslim \ + --disaggregation-transfer-backend ascend --max-running-requests 8 --context-length 8192 --disable-radix-cache \ + --chunked-prefill-size 32768 --max-prefill-tokens 28680 --moe-a2a-backend deepep --deepep-mode normal \ + --speculative-algorithm NEXTN --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2 \ + --dp-size 2 --enable-dp-attention --disable-shared-experts-fusion --dtype bfloat16 + NODE_RANK=$i + break + fi +done + +# decode +for i in "${!D_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${D_IP[$i]}" || "$LOCAL_HOST2" == "${D_IP[$i]}" ]]; + then + echo "${D_IP[$i]}" + export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 + export SGLANG_ENABLE_SPEC_V2=1 + export HCCL_BUFFSIZE=720 + export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=96 + export TASK_QUEUE_ENABLE=1 + export HCCL_SOCKET_IFNAME=xxx + export GLOO_SOCKET_IFNAME=xxx + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode decode --host ${D_IP[$i]} \ + --port 8001 --trust-remote-code --nnodes 1 --node-rank 0 --tp-size 16 --dp-size 16 \ + --mem-fraction-static 0.8 --max-running-requests 384 --attention-backend ascend --device npu --quantization modelslim \ + --moe-a2a-backend deepep --enable-dp-attention --deepep-mode low_latency --enable-dp-lm-head \ + --cuda-graph-bs 8 10 12 14 16 18 20 22 24 --disaggregation-transfer-backend ascend --watchdog-timeout 9000 --context-length 8192 \ + --speculative-algorithm NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --prefill-round-robin-balance --disable-shared-experts-fusion --dtype bfloat16 --tokenizer-worker-num 4 \ + --load-balance-method decode_round_robin + NODE_RANK=$i + break + fi +done + +``` + +```shell Command +export SGLANG_DP_ROUND_ROBIN=1 +python -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://P_IP:8000 8998 \ + --decode http://D_IP:8001 \ + --host 127.0.0.1 \ + --port 6688 \ + --mini-lb +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6688 --max-concurrency 400 --random-input-len 2048 --random-output-len 2048 --num-prompts 3200 --random-range-ratio 1 --request-rate 8 +``` + +### DeepSeek-R1 3_5K-1_5K 50ms on A3 8 Cards Mixed Mode + +Model: Deepseek R1 + +Hardware: Atlas 800I A3 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +export STREAMS_PER_DEVICE=32 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export SGLANG_SCHEDULER_DECREASE_PREFILL_IDLE=1 +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=36 +export HCCL_BUFFSIZE=1600 +export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 +export SGLANG_NPU_USE_MLAPO=1 +export SGLANG_ENABLE_SPEC_V2=1 +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_USE_FIA_NZ=1 +export ENABLE_MOE_NZ=1 + +MODEL_PATH=xxx + +python3 -m sglang.launch_server --model-path ${MODEL_PATH} \ +--tp 16 \ +--trust-remote-code \ +--attention-backend ascend \ +--device npu \ +--quantization modelslim \ +--watchdog-timeout 9000 \ +--host 127.0.0.1 --port 6699 \ +--cuda-graph-bs 8 16 24 28 32 36 \ +--mem-fraction-static 0.71 \ +--max-running-requests 144 \ +--context-length 8188 --disable-radix-cache --chunked-prefill-size -1 --max-prefill-tokens 9000 \ +--moe-a2a-backend deepep --deepep-mode auto \ +--enable-dp-attention --dp-size 4 --enable-dp-lm-head \ +--speculative-algorithm NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ +--dtype bfloat16 + +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6699 --max-concurrency 144 --random-input-len 3500 --random-output-len 1500 --num-prompts 576 --random-range-ratio 1 +``` + +### DeepSeek-R1 3_5K-1_5K 50ms on A3 16 Cards Separation Mode + +Model: Deepseek R1 + +Hardware: Atlas 800I A3 16Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 + +export ASCEND_MF_STORE_URL="tcp://your prefill ip1:24667" + +P_IP=('your prefill ip1') + +D_IP=('your decode ip1') + +MODEL_PATH=xxx + +export SGLANG_NPU_USE_MLAPO=1 +export SGLANG_USE_FIA_NZ=1 +export ENABLE_MOE_NZ=1 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +# prefill +for i in "${!P_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${P_IP[$i]}" || "$LOCAL_HOST2" == "${P_IP[$i]}" ]]; + then + echo "${P_IP[$i]}" + export HCCL_BUFFSIZE=1536 + export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 + export TASK_QUEUE_ENABLE=2 + + export HCCL_SOCKET_IFNAME=lo + export GLOO_SOCKET_IFNAME=lo + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode prefill --host ${P_IP[$i]} \ + --port 8000 --disaggregation-bootstrap-port $((8998+$i)) --trust-remote-code --nnodes 1 --node-rank 0 \ + --tp-size 16 --mem-fraction-static 0.6 --attention-backend ascend --device npu --quantization modelslim \ + --disaggregation-transfer-backend ascend --max-running-requests 8 --context-length 8192 --disable-radix-cache \ + --chunked-prefill-size -1 --max-prefill-tokens 28680 --moe-a2a-backend deepep --deepep-mode normal \ + --speculative-algorithm NEXTN --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2 \ + --dp-size 2 --enable-dp-attention --disable-shared-experts-fusion --dtype bfloat16 + NODE_RANK=$i + break + fi +done + +# decode +for i in "${!D_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${D_IP[$i]}" || "$LOCAL_HOST2" == "${D_IP[$i]}" ]]; + then + echo "${D_IP[$i]}" + export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 + export SGLANG_ENABLE_SPEC_V2=1 + export HCCL_BUFFSIZE=720 + export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=96 + export TASK_QUEUE_ENABLE=1 + export HCCL_SOCKET_IFNAME=xxx + export GLOO_SOCKET_IFNAME=xxx + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode decode --host ${D_IP[$i]} \ + --port 8001 --trust-remote-code --nnodes 1 --node-rank 0 --tp-size 16 --dp-size 16 \ + --mem-fraction-static 0.8 --max-running-requests 384 --attention-backend ascend --device npu --quantization modelslim \ + --moe-a2a-backend deepep --enable-dp-attention --deepep-mode low_latency --enable-dp-lm-head \ + --cuda-graph-bs 8 10 12 14 16 18 20 22 24 --disaggregation-transfer-backend ascend --watchdog-timeout 9000 --context-length 8192 \ + --speculative-algorithm NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --prefill-round-robin-balance --disable-shared-experts-fusion --dtype bfloat16 --tokenizer-worker-num 4 \ + --load-balance-method decode_round_robin + NODE_RANK=$i + break + fi +done + +``` + +```shell Command +export SGLANG_DP_ROUND_ROBIN=1 +python -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://P_IP:8000 8998 \ + --decode http://D_IP:8001 \ + --host 127.0.0.1 \ + --port 6688 \ + --mini-lb +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6688 --max-concurrency 384 --random-input-len 3500 --random-output-len 1500 --num-prompts 1536 --random-range-ratio 1 +``` + +### DeepSeek-V3.2-Exp 64K-3K 30ms on A3 32 Cards Separation Mode + +Model: DeepSeek-V3.2-Exp-W8A8 + +Hardware: Atlas 800I A3 32Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 64K+3K + +TPOT: 30ms + +#### Model Deployment + +Deploy Prefill Instance + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING + +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/op_api/lib/:${LD_LIBRARY_PATH} +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export ASCEND_HOME_PATH=/usr/local/Ascend/ascend-toolkit/latest + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 + +export HCCL_BUFFSIZE=1024 +export DEEPEP_NORMAL_LONG_SEQ_ROUND=5 +export DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS=512 + +MODEL_PATH=xxx + +export SGLANG_NPU_USE_MLAPO=1 +export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 +export SGLANG_NPU_USE_MULTI_STREAM=1 +export HCCL_OP_EXPANSION_MODE=AIV + +IPs=('your prefill ip1' 'your prefill ip2') + +# get IP in current node +LOCAL_HOST=`hostname -I|awk -F " " '{print$1}'` +echo "LOCAL_HOST = " ${LOCAL_HOST} +# get node index +for i in "${!IPs[@]}"; +do + echo "LOCAL_HOST=${LOCAL_HOST}, IPs[${i}]=${IPs[$i]}" + if [ "$LOCAL_HOST" == "${IPs[$i]}" ]; then + echo "Node Rank : ${i}" + VC_TASK_INDEX=$i + break + fi +done + +IFNAMES=('xxx' 'xxx') + +export HCCL_SOCKET_IFNAME=${IFNAMES[$VC_TASK_INDEX]} +export GLOO_SOCKET_IFNAME=${HCCL_SOCKET_IFNAME} +echo "HCCL_SOCKET_IFNAME : ${HCCL_SOCKET_IFNAME}" +nnodes=${#IPs[@]} +tp_size=`expr 16 \* ${nnodes}` +export ASCEND_MF_STORE_URL=tcp://${IPs[0]}:24667 + +python3 -m sglang.launch_server --model-path ${MODEL_PATH} \ +--tp $tp_size \ +--trust-remote-code \ +--attention-backend ascend \ +--device npu \ +--watchdog-timeout 9000 \ +--host ${IPs[$VC_TASK_INDEX]} --port 8000 \ +--mem-fraction-static 0.73 \ +--disable-radix-cache --chunked-prefill-size -1 --max-prefill-tokens 68000 \ +--max-running-requests 1 \ +--moe-a2a-backend deepep --deepep-mode normal \ +--quantization modelslim \ +--disaggregation-transfer-backend ascend \ +--disaggregation-mode prefill \ +--disable-cuda-graph \ +--nnodes $nnodes --node-rank $VC_TASK_INDEX \ +--disaggregation-bootstrap-port 8995 \ +--enable-nsa-prefill-context-parallel --moe-dense-tp-size 1 \ +--speculative-algorithm NEXTN --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2 \ +--dist-init-addr ${IPs[0]}:10000 +``` + +Deploy Decode Instance + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/op_api/lib/:${LD_LIBRARY_PATH} +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH +export ASCEND_HOME_PATH=/usr/local/Ascend/ascend-toolkit/latest + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 + +MODEL_PATH=xxx + +export SGLANG_NPU_USE_MULTI_STREAM=1 +export SGLANG_NPU_USE_MLAPO=1 +export HCCL_OP_EXPANSION_MODE=AIV +export SGLANG_SCHEDULER_SKIP_ALL_GATHER=1 +export TASK_QUEUE_ENABLE=0 +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +IPs=('your decode ip1' 'your decode ip2') + +export prefill_ip=your prefill ip1 +# get IP in current node +LOCAL_HOST=`hostname -I|awk -F " " '{print$1}'` +echo "LOCAL_HOST = " ${LOCAL_HOST} +# get node index +for i in "${!IPs[@]}"; +do + echo "LOCAL_HOST=${LOCAL_HOST}, IPs[${i}]=${IPs[$i]}" + if [ "$LOCAL_HOST" == "${IPs[$i]}" ]; then + echo "Node Rank : ${i}" + VC_TASK_INDEX=$i + break + fi +done + +IFNAMES=('xxx' 'xxx') + +export HCCL_SOCKET_IFNAME=${IFNAMES[$VC_TASK_INDEX]} +export GLOO_SOCKET_IFNAME=${HCCL_SOCKET_IFNAME} +nnodes=${#IPs[@]} +tp_size=`expr 16 \* ${nnodes}` +export ASCEND_MF_STORE_URL=tcp://${prefill_ip}:24667 + +CHUNKED_SIZE=65536 +DP=8 +export HCCL_BUFFSIZE=400 +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=8 + +python3 -m sglang.launch_server --model-path ${MODEL_PATH} \ +--tp $tp_size \ +--dp ${DP} \ +--ep $tp_size \ +--moe-dense-tp-size 1 \ +--enable-dp-attention \ +--enable-dp-lm-head \ +--trust-remote-code \ +--attention-backend ascend \ +--device npu \ +--watchdog-timeout 9000 \ +--host ${IPs[$VC_TASK_INDEX]} --port 8001 \ +--mem-fraction-static 0.79 \ +--disable-radix-cache \ +--chunked-prefill-size -1 --max-prefill-tokens 68000 \ +--max-running-requests 32 \ +--cuda-graph-max-bs 4 \ +--moe-a2a-backend deepep \ +--deepep-mode low_latency \ +--quantization modelslim \ +--speculative-algorithm NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ +--disaggregation-transfer-backend ascend \ +--disaggregation-mode decode \ +--prefill-round-robin-balance \ +--load-balance-method round_robin \ +--nnodes $nnodes --node-rank $VC_TASK_INDEX \ +--dist-init-addr ${IPs[0]}:10000 --load-balance-method decode_round_robin +``` + +```shell Command +export SGLANG_DP_ROUND_ROBIN=1 +python -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://PIP1:8000 8995 \ + --decode http://DIP1:8001 \ + --host 127.0.0.1 \ + --port 6688 \ + --mini-lb +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6688 --max-concurrency 32 --random-input-len 64000 --random-output-len 3000 --num-prompts 64 --random-range-ratio 1 +``` + +### Qwen3-235B-A22B 3_5K-1_5K 50ms on A3 24 Cards Separation Mode + +Model: Qwen3-235B-A22B-W8A8 + +Hardware: Atlas 800I A3 24Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING + +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=16 + +MODEL_PATH=xxx +export ASCEND_MF_STORE_URL="tcp://your prefill ip1:24667" +P_IP=('your prefill ip1') +D_IP=('your decode ip1' 'your decode ip2') +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 +export SGLANG_DP_ROUND_ROBIN=1 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + + +for i in "${!P_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${P_IP[$i]}" || "$LOCAL_HOST2" == "${P_IP[$i]}" ]]; + then + echo "${P_IP[$i]}" + source /usr/local/Ascend/ascend-toolkit/set_env.sh + source /usr/local/Ascend/nnal/atb/set_env.sh + export DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS=1024 + export DEEPEP_NORMAL_LONG_SEQ_ROUND=16 + export HCCL_BUFFSIZE=4300 + export TASK_QUEUE_ENABLE=2 + export HCCL_SOCKET_IFNAME=lo + export GLOO_SOCKET_IFNAME=lo + export STREAMS_PER_DEVICE=32 + export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 + + # P节点 + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode prefill \ + --host ${P_IP[$i]} --port 8000 --disaggregation-bootstrap-port 8995 --trust-remote-code \ + --nnodes 1 --node-rank $i --tp-size 16 --dp-size 16 --mem-fraction-static 0.6 \ + --disable-radix-cache \ + --attention-backend ascend --device npu --quantization modelslim --disaggregation-transfer-backend ascend \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --speculative-draft-model-quantization unquant \ + --max-running-requests 128 --chunked-prefill-size 262144 --max-prefill-tokens 262144 \ + --enable-dp-attention \ + --moe-a2a-backend deepep --deepep-mode normal --dtype bfloat16 + NODE_RANK=$i + break + fi +done + + +for i in "${!D_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${D_IP[$i]}" || "$LOCAL_HOST2" == "${D_IP[$i]}" ]]; + then + echo "${D_IP[$i]}" + source /usr/local/Ascend/ascend-toolkit/set_env.sh + source /usr/local/Ascend/nnal/atb/set_env.sh + export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=24 + export HCCL_BUFFSIZE=512 + export HCCL_SOCKET_IFNAME=data0.3001 + export GLOO_SOCKET_IFNAME=data0.3001 + export STREAMS_PER_DEVICE=32 + + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode decode \ + --host ${D_IP[$i]} --port 8001 --trust-remote-code \ + --nnodes 2 --node-rank $i --tp-size 32 --dp-size 32 --mem-fraction-static 0.83 --max-running-requests 768 \ + --attention-backend ascend --device npu --quantization modelslim --enable-dp-attention \ + --moe-a2a-backend ascend_fuseep --cuda-graph-bs 6 8 12 15 18 20 22 24 \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-draft-model-quantization unquant \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --dist-init-addr xxx:5000 \ + --disaggregation-transfer-backend ascend --watchdog-timeout 9000 --context-length 8192 \ + --prefill-round-robin-balance --enable-dp-lm-head --dtype bfloat16 --tokenizer-worker-num 4 \ + --load-balance-method decode_round_robin + NODE_RANK=$i + break + fi +done + +``` + +```shell Command +export SGLANG_DP_ROUND_ROBIN=1 +python -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://PIP:8000 8995 \ + --decode http://DIP:8001 \ + --host 127.0.0.1 \ + --port 6688 \ + --mini-lb +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang-oai --host 127.0.0.1 --port 7239 --max-concurrency 860 --random-input-len 3500 --random-output-len 1500 --num-prompts 3440 --random-range-ratio 1 +``` + +### Qwen3-235B-A22B 3_5K-1_5K 50ms on A3 8 Cards Mixed Mode + +Model: Qwen3-235B-A22B-W8A8 + +Hardware: Atlas 800I A3 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=1600 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 +export SGLANG_SCHEDULER_DECREASE_PREFILL_IDLE=2 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7439 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 272 --context-length 8192 --dtype bfloat16 \ + --chunked-prefill-size 32768 --max-prefill-tokens 32768 \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --disable-radix-cache --moe-a2a-backend deepep --deepep-mode auto --speculative-draft-model-quantization unquant \ + --tp 16 --dp-size 16 --enable-dp-attention --enable-dp-lm-head --mem-fraction-static 0.8 --cuda-graph-bs 3 4 6 8 10 12 13 14 15 16 17 + +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7439 --max-concurrency 272 --random-input-len 3500 --random-output-len 1500 --num-prompts 1088 --random-range-ratio 1 +``` + +### Qwen3-235B-A22B 2K-2K 100ms on A3 8 Cards Mixed Mode + +Model: Qwen3-235B-A22B-W8A8 + +Hardware: Atlas 800I A3 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 2K+2K + +TPOT: 100ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=1200 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7439 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 576 --context-length 8192 --dtype bfloat16 \ + --chunked-prefill-size 32768 --max-prefill-tokens 458880 \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --disable-radix-cache --moe-a2a-backend deepep --deepep-mode auto --speculative-draft-model-quantization unquant \ + --tp 16 --dp-size 16 --enable-dp-attention --enable-dp-lm-head --mem-fraction-static 0.81 --cuda-graph-bs 8 16 20 24 32 36 + +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7439 --max-concurrency 576 --random-input-len 2000 --random-output-len 2000 --num-prompts 576 --random-range-ratio 1 +``` + +### Qwen3-235B-A22B 2K-2K 50ms on A3 8 Cards Mixed Mode + +Model: Qwen3-235B-A22B-W8A8 + +Hardware: Atlas 800I A3 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 2K+2K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=2100 +export HCCL_SOCKET_IFNAME=xxx +export GLOO_SOCKET_IFNAME=xxx +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7439 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 480 --context-length 8192 --dtype bfloat16 \ + --chunked-prefill-size -1 --max-prefill-tokens 4096 --speculative-draft-model-quantization unquant \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --disable-radix-cache --moe-a2a-backend deepep --deepep-mode auto \ + --tp 16 --dp-size 16 --enable-dp-attention --enable-dp-lm-head --mem-fraction-static 0.75 --cuda-graph-bs 6 8 10 12 15 18 28 30 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7439 --max-concurrency 480 --random-input-len 2048 --random-output-len 2048 --num-prompts 480 --random-range-ratio 1 +``` + +### Qwen3-235B-A22B 2K-2K 50ms on A3 16 Cards Mixed Mode + +Model: Qwen3-235B-A22B-W8A8 + +Hardware: Atlas 800I A3 16Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 2K+2K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=1600 +export HCCL_SOCKET_IFNAME=xxx +export GLOO_SOCKET_IFNAME=xxx +export HCCL_OP_EXPANSION_MODE="AIV" + +MIX_IP=('IP1' 'IP2') + +for i in "${!MIX_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${MIX_IP[$i]}" || "$LOCAL_HOST2" == "${MIX_IP[$i]}" ]]; + then + echo "${MIX_IP[$i]}" + export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 + export SGLANG_ENABLE_SPEC_V2=1 + + python -m sglang.launch_server --model-path ${MODEL_PATH} \ + --host 127.0.0.1 --port 7439 --trust-remote-code \ + --nnodes 2 --node-rank $i --tp-size 32 --dp-size 32 --mem-fraction-static 0.8 --max-running-requests 768 \ + --attention-backend ascend --device npu --quantization modelslim --enable-dp-attention \ + --moe-a2a-backend deepep --deepep-mode auto --cuda-graph-bs 6 8 10 12 18 24 \ + --dist-init-addr ${MIX_IP[0]}:5000 --chunked-prefill-size 131072 --max-prefill-tokens 458880 \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx --speculative-draft-model-quantization= unquant \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --context-length 8192 --disable-radix-cache \ + --enable-dp-lm-head --dtype bfloat16 + NODE_RANK=$i + break + fi +done + +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7439 --max-concurrency 768 --random-input-len 2000 --random-output-len 2000 --num-prompts 768 --random-range-ratio 1 +``` + +### Qwen3-235B-A22B 11K-1K 10ms on A3 8 Cards Mixed Mode + +Model: Qwen3-235B-A22B-W8A8 + +Hardware: Atlas 800I A3 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 11K+1K + +TPOT: 10ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=1600 +export HCCL_SOCKET_IFNAME=xxx +export GLOO_SOCKET_IFNAME=xxx +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7439 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 1 --dtype bfloat16 \ + --chunked-prefill-size -1 --max-prefill-tokens 16384 --speculative-draft-model-quantization unquant \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 4 --speculative-eagle-topk 1 --speculative-num-draft-tokens 5 \ + --disable-radix-cache --enable-dp-lm-head \ + --tp 16 --mem-fraction-static 0.78 --cuda-graph-bs 1 + +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7439 --max-concurrency 1 --random-input-len 11000 --random-output-len 1000 --num-prompts 1 --random-range-ratio 1 +``` + +### Qwen3-32B 6K-1_5K 18ms on A3 4 Cards Mixed Mode + +Model: Qwen3-32B + +Hardware: Atlas 800I A3 4Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 6K+1.5K + +TPOT: 18ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=xxx +export GLOO_SOCKET_IFNAME=xxx +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7439 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu \ + --max-running-requests 32 \ + --disable-radix-cache \ + --chunked-prefill-size 24576 --max-prefill-tokens 65536 \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 4 --speculative-eagle-topk 1 --speculative-num-draft-tokens 5 \ + --tp-size 8 --mem-fraction-static 0.72 --cuda-graph-bs 8 16 24 32 --dtype bfloat16 + +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7439 --max-concurrency 32 --random-output-len 1500 --random-input-len 6000 --num-prompts 32 --random-range-ratio 1 +``` + +### Qwen3-32B 4K-1_5K 11ms on A3 4 Cards Mixed Mode + +Model: Qwen3-32B + +Hardware: Atlas 800I A3 4Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 4K+1.5K + +TPOT: 11ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7339 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu \ + --max-running-requests 1 \ + --disable-radix-cache \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 4 --speculative-eagle-topk 1 --speculative-num-draft-tokens 5 \ + --chunked-prefill-size 24576 --max-prefill-tokens 65536 \ + --tp-size 8 --mem-fraction-static 0.72 --cuda-graph-bs 1 --dtype bfloat16 + +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7239 --random-range-ratio 1 --max-concurrency 1 --random-output-len 1500 --random-input-len 4096 --num-prompts 4 +``` + +### Qwen3-32B 18K-4K 12ms on A3 8 Cards Mixed Mode + +Model: Qwen3-32B + +Hardware: Atlas 800I A3 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 18K+4K + +TPOT: 12ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7339 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu \ + --max-running-requests 1 \ + --disable-radix-cache --speculative-draft-model-quantization unquant \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 4 --speculative-eagle-topk 1 --speculative-num-draft-tokens 5 \ + --chunked-prefill-size -1 --max-prefill-tokens 65536 \ + --tp-size 16 --mem-fraction-static 0.72 --cuda-graph-bs 1 --dtype bfloat16 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7339 --random-range-ratio 1 --max-concurrency 1 --random-output-len 18000 --random-input-len 4000 --num-prompts 1 +``` + +### Qwen3-32B 3_5K-1_5K 50ms on A3 2 Cards Mixed Mode + +Model: Qwen3-32B + +Hardware: Atlas 800I A3 2Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7239 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 78 \ + --disable-radix-cache --speculative-draft-model-quantization unquant \ + --chunked-prefill-size -1 --max-prefill-tokens 49152 \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --tp-size 4 --mem-fraction-static 0.72 --cuda-graph-bs 16 32 64 68 72 78 --dtype bfloat16 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7239 --max-concurrency 78 --random-output-len 1500 --random-input-len 3500 --num-prompts 312 --random-range-ratio 1 +``` + +### Qwen3-32B 2K-2K 50ms on A3 2 Cards Mixed Mode + +Model: Qwen3-32B + +Hardware: Atlas 800I A3 2Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 2K+2K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7239 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 120 \ + --disable-radix-cache --speculative-draft-model-quantization unquant \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --chunked-prefill-size -1 --max-prefill-tokens 49152 \ + --tp-size 4 --mem-fraction-static 0.7 --cuda-graph-bs 54 60 66 72 78 84 90 108 114 120 --dtype bfloat16 + +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7239 --max-concurrency 120 --random-output-len 2000 --random-input-len 2000 --num-prompts 480 --random-range-ratio 1 +``` + +### Qwen3-30B-A3B 3_5K-1_5K 50ms on A3 1 Card Mixed Mode + +Model: Qwen3-30B-A3B-Instruct-2507 + +Hardware: Atlas 800I A3 1Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7239 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 192 \ + --disable-radix-cache \ + --speculative-draft-model-quantization unquant \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --chunked-prefill-size -1 --max-prefill-tokens 32768 \ + --tp-size 2 --mem-fraction-static 0.86 --cuda-graph-bs 42 88 96 132 144 156 172 178 192 --dtype bfloat16 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7239 --max-concurrency 156 --random-input-len 3500 --random-output-len 1500 --num-prompts 624 --random-range-ratio 1 +``` + +### Qwen3-Coder-480B-A35B-Instruct 3_5K-1_5K 50ms on A3 24 Cards Separation Mode + +Model: Qwen3-Coder-480B-A35B-Instruct + +Hardware: Atlas 800I A3 24Card + +DeployMode: PD Separation + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING + +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=16 + +MODEL_PATH=xxx +export ASCEND_MF_STORE_URL="tcp://PIP:24667" +P_IP=('PIP') +D_IP=('DIP1' 'DIP2') +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + + +for i in "${!P_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${P_IP[$i]}" || "$LOCAL_HOST2" == "${P_IP[$i]}" ]]; + then + echo "${P_IP[$i]}" + source /usr/local/Ascend/ascend-toolkit/set_env.sh + source /usr/local/Ascend/nnal/atb/set_env.sh + export DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS=1024 + export DEEPEP_NORMAL_LONG_SEQ_ROUND=16 + export HCCL_BUFFSIZE=4300 + export TASK_QUEUE_ENABLE=2 + export HCCL_SOCKET_IFNAME=lo + export GLOO_SOCKET_IFNAME=lo + export STREAMS_PER_DEVICE=32 + export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 + + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode prefill \ + --host ${P_IP[$i]} --port 8000 --disaggregation-bootstrap-port 8995 --trust-remote-code \ + --nnodes 1 --node-rank $i --tp-size 16 --dp-size 2 --mem-fraction-static 0.6 \ + --disable-radix-cache \ + --attention-backend ascend --device npu --quantization modelslim --disaggregation-transfer-backend ascend \ + --max-running-requests 128 --chunked-prefill-size 65536 --max-prefill-tokens 262144 \ + --enable-dp-attention \ + --moe-a2a-backend deepep --deepep-mode normal --dtype bfloat16 + NODE_RANK=$i + break + fi +done + +for i in "${!D_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${D_IP[$i]}" || "$LOCAL_HOST2" == "${D_IP[$i]}" ]]; + then + echo "${D_IP[$i]}" + source /usr/local/Ascend/ascend-toolkit/set_env.sh + source /usr/local/Ascend/nnal/atb/set_env.sh + export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=72 + export HCCL_BUFFSIZE=512 + export HCCL_SOCKET_IFNAME=xxx + export GLOO_SOCKET_IFNAME=xxx + export STREAMS_PER_DEVICE=32 + + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode decode \ + --host ${D_IP[$i]} --port 8001 --trust-remote-code \ + --nnodes 2 --node-rank $i --tp-size 32 --dp-size 4 --mem-fraction-static 0.73 --max-running-requests 384 \ + --attention-backend ascend --device npu --quantization modelslim --enable-dp-attention \ + --moe-a2a-backend ascend_fuseep --cuda-graph-bs 16 32 48 56 64 72 80 88 96 \ + --dist-init-addr DIP1:5000 \ + --disaggregation-transfer-backend ascend --watchdog-timeout 9000 --context-length 8192 \ + --prefill-round-robin-balance --enable-dp-lm-head --dtype bfloat16 --tokenizer-worker-num 4 --load-balance-method decode_round_robin + NODE_RANK=$i + break + fi +done + +``` + +```shell Command +export SGLANG_DP_ROUND_ROBIN=1 +python -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://PIP:8000 8995 \ + --decode http://DIP:8001 \ + --host 127.0.0.1 \ + --port 6688 \ + --mini-lb +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7239 --max-concurrency 410 --random-input-len 3500 --random-output-len 1500 --num-prompts 1640 --random-range-ratio 1 --request-rate 8 +``` + +### Qwen3-Coder-480B-A35B-Instruct 3_5K-1_5K 50ms on A3 16 Cards Mixed Mode + +Model: Qwen3-Coder-480B-A35B-Instruct + +Hardware: Atlas 800I A3 16Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=16 + +export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=1800 +export HCCL_SOCKET_IFNAME=xxx +export GLOO_SOCKET_IFNAME=xxx +export HCCL_OP_EXPANSION_MODE="AIV" + +MIX_IP=('IP1' 'IP2') + +for i in "${!MIX_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${MIX_IP[$i]}" || "$LOCAL_HOST2" == "${MIX_IP[$i]}" ]]; + then + echo "${MIX_IP[$i]}" + + python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7439 --trust-remote-code --nnodes 2 --node-rank $i \ + --dist-init-addr 141.61.133.128:5000 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 288 --context-length 8192 --dtype bfloat16 \ + --chunked-prefill-size 114688 --max-prefill-tokens 458880 \ + --disable-radix-cache --moe-a2a-backend deepep --deepep-mode auto \ + --tp 32 --dp-size 4 --enable-dp-attention --enable-dp-lm-head --mem-fraction-static 0.7 --cuda-graph-bs 56 64 72 + NODE_RANK=$i + break + fi +done +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7439 --max-concurrency 288 --random-input-len 3500 --random-output-len 1500 --num-prompts 1152 --random-range-ratio 1 --request-rate 20 +``` + +### Qwen3-Coder-480B-A35B-Instruct 3_5K-1_5K 50ms on A3 8 Cards Mixed Mode + +Model: Qwen3-Coder-480B-A35B-Instruct + +Hardware: Atlas 800I A3 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=2100 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" + +python -m sglang.launch_server --model-path $MODEL_PATH \ +--host 127.0.0.1 --port 7439 --trust-remote-code --nnodes 1 --node-rank 0 \ +--attention-backend ascend --device npu --quantization modelslim \ +--max-running-requests 80 --context-length 8192 --dtype bfloat16 \ +--chunked-prefill-size 28672 --max-prefill-tokens 458880 \ +--disable-radix-cache --moe-a2a-backend deepep --deepep-mode auto --enable-dp-attention --enable-dp-lm-head \ +--tp 16 --dp-size 4 --mem-fraction-static 0.7 --cuda-graph-bs 16 20 24 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7439 --max-concurrency 80 --random-input-len 3500 --random-output-len 1500 --num-prompts 320 --random-range-ratio 1 +``` + +### Qwen3-Next-80B-A3B-Instruct 3_5K-1_5K 50ms on A3 2 Cards Mixed Mode + +Model: Qwen3-Next-80B-A3B-Instruct + +Hardware: Atlas 800I A3 2Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +export cann_path=/usr/local/Ascend/ascend-toolkit/latest +source /usr/local/Ascend/driver/bin/setenv.bash +source ${cann_path}/../set_env.sh +source ${cann_path}/../../nnal/atb/set_env.sh +source ${cann_path}/opp/vendors/customize/bin/set_env.bash +export ASCEND_HOME_PATH=${cann_path} +source /usr/local/Ascend/8.5.0/bisheng_toolkit/set_env.sh + +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo + +export HCCL_OP_EXPANSION_MODE=AIV +export HCCL_ALGO="level0:NA;level1:ring" + +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=20 +export HCCL_BUFFSIZE=2000 + +python -m sglang.launch_server \ + --model-path /path/to/Qwen3-Next-80B-A3B-Instruct-W8A8-3 \ + --host 127.0.0.1 \ + --port 6699 \ + --tp-size 4 \ + --device npu \ + --attention-backend ascend \ + --mem-fraction-static 0.685 \ + --max-running-requests 80 \ + --watchdog-timeout 3600 \ + --disable-radix-cache \ + --cuda-graph-bs 80 \ + --max-prefill-tokens 28672 --max-total-tokens 450560 \ + --moe-a2a-backend deepep --deepep-mode auto \ + --quantization modelslim \ + --chunked-prefill-size -1 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 6699 --max-concurrency 80 --random-output-len 1536 --random-input-len 3584 --num-prompts 160 --random-range-ratio 1 +``` + +### Qwen3-32B 6K-1_5K 18ms on A2 8 Cards Mixed Mode + +Model: Qwen3-32B + +Hardware: Atlas 800I A2 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 6K+1.5K + +TPOT: 18ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7439 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 32 \ + --disable-radix-cache \ + --chunked-prefill-size 24576 --max-prefill-tokens 65536 \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 4 --speculative-eagle-topk 1 --speculative-num-draft-tokens 5 \ + --tp-size 8 --mem-fraction-static 0.72 --cuda-graph-bs 8 16 24 32 --dtype bfloat16 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7439 --max-concurrency 32 --random-output-len 1500 --random-input-len 6000 --num-prompts 32 --random-range-ratio 1 +``` + +### Qwen3-32B 4K-1_5K 11ms on A2 8 Cards Mixed Mode + +Model: Qwen3-32B + +Hardware: Atlas 800I A2 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 4K+1.5K + +TPOT: 11ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7339 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu \ + --max-running-requests 32 \ + --disable-radix-cache \ + --speculative-draft-model-quantization unquant \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 4 --speculative-eagle-topk 1 --speculative-num-draft-tokens 5 \ + --chunked-prefill-size -1 --max-prefill-tokens 65536 \ + --tp-size 8 --mem-fraction-static 0.72 --cuda-graph-bs 1 4 6 12 18 24 30 32 --dtype bfloat16 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7339 --random-range-ratio 1 --max-concurrency 1 --random-output-len 1500 --random-input-len 4096 --num-prompts 4 +``` + +### Qwen3-32B 3_5K-1_5K 50ms on A2 8 Cards Mixed Mode + +Model: Qwen3-32B + +Hardware: Atlas 800I A2 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 3.5K+1.5K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7239 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 78 \ + --disable-radix-cache --speculative-draft-model-quantization unquant \ + --chunked-prefill-size -1 --max-prefill-tokens 65536 \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \ + --tp-size 4 --mem-fraction-static 0.72 --cuda-graph-bs 1 4 8 16 32 64 68 72 78 --dtype bfloat16 --base-gpu-id 4 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7239 --max-concurrency 78 --random-output-len 1500 --random-input-len 3500 --num-prompts 312 --random-range-ratio 1 +``` + +### Qwen3-32B 2K-2K 50ms on A2 8 Cards Mixed Mode + +Model: Qwen3-32B + +Hardware: Atlas 800I A2 8Card + +DeployMode: PD Mixed + +Dataset: random + +Input Output Length: 2K+2K + +TPOT: 50ms + +#### Model Deployment + +```shell Command +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 + +export SGLANG_SET_CPU_AFFINITY=1 +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh +source /usr/local/Ascend/ascend-toolkit/latest/opp/vendors/customize/bin/set_env.bash +export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + +MODEL_PATH=xxx + +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + +echo "${LOCAL_HOST1}" +echo "${LOCAL_HOST2}" + +export HCCL_BUFFSIZE=400 +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo +export HCCL_OP_EXPANSION_MODE="AIV" +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server --model-path $MODEL_PATH \ + --host 127.0.0.1 --port 7239 --trust-remote-code --nnodes 1 --node-rank 0 \ + --attention-backend ascend --device npu --quantization modelslim \ + --max-running-requests 120 \ + --disable-radix-cache \ + --speculative-algorithm EAGLE3 --speculative-draft-model-path xxx \ + --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 --speculative-draft-model-quantization unquant \ + --chunked-prefill-size -1 --max-prefill-tokens 49152 --base-gpu-id 4 \ + --tp-size 4 --mem-fraction-static 0.7 --cuda-graph-bs 54 60 66 72 78 84 90 108 114 120 --dtype bfloat16 +``` + +#### Benchmark + +We tested it based on the `RANDOM` dataset. + +```shell Command +python3 -m sglang.bench_serving --dataset-name random --backend sglang --host 127.0.0.1 --port 7239 --max-concurrency 120 --random-output-len 2000 --random-input-len 2000 --num-prompts 120 --random-range-ratio 1 +``` diff --git a/docs_new/docs/hardware-platforms/ascend-npus/DeepSeek-Examples.mdx b/docs_new/docs/hardware-platforms/ascend-npus/DeepSeek-Examples.mdx new file mode 100644 index 000000000..243a3897b --- /dev/null +++ b/docs_new/docs/hardware-platforms/ascend-npus/DeepSeek-Examples.mdx @@ -0,0 +1,309 @@ +## Running DeepSeek-V3 + +### Running DeepSeek in PD mixed mode on 1 x Atlas 800I A3 + +W4A8 Model weights could be found [here](https://modelers.cn/models/Modelers_Park/DeepSeek-R1-0528-w4a8). + + +```shell Launch Server +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 + +#Deepep communication settings +export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=32 +export HCCL_BUFFSIZE=1600 + +#spec overlap +export SGLANG_ENABLE_SPEC_V2=1 +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 + +#npu acceleration operator +export SGLANG_NPU_USE_MLAPO=1 +export SGLANG_USE_FIA_NZ=1 + +python3 -m sglang.launch_server \ + --model-path ${MODEL_PATH} \ + --tp 16 \ + --trust-remote-code \ + --attention-backend ascend \ + --device npu \ + --quantization modelslim \ + --watchdog-timeout 9000 \ + --cuda-graph-bs 8 16 24 28 32 \ + --mem-fraction-static 0.68 \ + --max-running-requests 128 \ + --context-length 8188 \ + --disable-radix-cache \ + --chunked-prefill-size -1 \ + --max-prefill-tokens 16384 \ + --moe-a2a-backend deepep \ + --deepep-mode auto \ + --enable-dp-attention \ + --dp-size 4 \ + --enable-dp-lm-head \ + --speculative-algorithm NEXTN \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --dtype bfloat16 +``` + + +### Running DeepSeek with PD disaggregation mode on 2 x Atlas 800I A3 + +W4A8 Model weights could be found [here](https://modelers.cn/models/Modelers_Park/DeepSeek-R1-0528-w4a8). + + + + ```shell Command + export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + export STREAMS_PER_DEVICE=32 + + #memfabric config store + export ASCEND_MF_STORE_URL="tcp://:" + + #Deepep communication settings + export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 + export HCCL_BUFFSIZE=1536 + + #npu acceleration operator + export SGLANG_NPU_USE_MLAPO=1 + export SGLANG_USE_FIA_NZ=1 + export TASK_QUEUE_ENABLE=2 + + python -m sglang.launch_server \ + --model-path ${MODEL_PATH} \ + --host $PREFILL_HOST_IP \ + --port 8000 \ + --disaggregation-mode prefill \ + --disaggregation-bootstrap-port 8996 \ + --disaggregation-transfer-backend ascend \ + --trust-remote-code \ + --nnodes 1 \ + --node-rank 0 \ + --tp-size 16 \ + --mem-fraction-static 0.6 \ + --attention-backend ascend \ + --device npu \ + --quantization modelslim \ + --load-balance-method round_robin \ + --max-running-requests 8 \ + --context-length 8192 \ + --disable-radix-cache \ + --chunked-prefill-size -1 \ + --max-prefill-tokens 28680 \ + --moe-a2a-backend deepep \ + --deepep-mode normal \ + --speculative-algorithm NEXTN \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --dp-size 2 \ + --enable-dp-attention \ + --disable-shared-experts-fusion \ + --dtype bfloat16 + ``` + + + + + ```shell Command + export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + export STREAMS_PER_DEVICE=32 + + #memfabric config store + export ASCEND_MF_STORE_URL="tcp://:" + + #Deepep communication settings + export HCCL_BUFFSIZE=720 + export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=88 + + #spec overlap + export SGLANG_ENABLE_SPEC_V2=1 + export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 + + #npu acceleration operator + unset TASK_QUEUE_ENABLE + export SGLANG_NPU_USE_MLAPO=1 + export SGLANG_USE_FIA_NZ=1 + export ENABLE_MOE_NZ=1 + + # suggest max-running-requests <= max-cuda-graph-bs * dp_size, Because when this value is exceeded, performance will significantly degrade. + python -m sglang.launch_server \ + --model-path ${MODEL_PATH} \ + --disaggregation-mode decode \ + --host $DECODE_HOST_IP \ + --port 8001 \ + --trust-remote-code \ + --nnodes 1 \ + --node-rank 0 \ + --tp-size 16 \ + --dp-size 16 \ + --mem-fraction-static 0.8 \ + --max-running-requests 352 \ + --attention-backend ascend \ + --device npu \ + --quantization modelslim \ + --prefill-round-robin-balance \ + --moe-a2a-backend deepep \ + --enable-dp-attention \ + --deepep-mode low_latency \ + --enable-dp-lm-head \ + --cuda-graph-bs 8 10 12 14 16 18 20 22 \ + --disaggregation-transfer-backend ascend \ + --watchdog-timeout 9000 \ + --context-length 8192 \ + --speculative-algorithm NEXTN \ + --speculative-num-steps 3 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 4 \ + --disable-shared-experts-fusion \ + --dtype bfloat16 \ + --tokenizer-worker-num 4 + ``` + + + + + ```shell Command + python -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://:8000 8996 \ + --decode http://:8001 \ + --host 127.0.0.1 \ + --port 6688 + ``` + + + +### Running DeepSeek with PD disaggregation on 4 x Atlas 800I A3 + +W8A8 Model weights could be found [here](https://modelers.cn/models/State_Cloud/Deepseek-R1-bf16-hfd-w8a8). + + + + ```shell Command + echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor + sysctl -w vm.swappiness=0 + sysctl -w kernel.numa_balancing=0 + sysctl -w kernel.sched_migration_cost_ns=50000 + export SGLANG_SET_CPU_AFFINITY=1 + unset ASCEND_LAUNCH_BLOCKING + source /usr/local/Ascend/ascend-toolkit/set_env.sh + source /usr/local/Ascend/nnal/atb/set_env.sh + export PATH=/usr/local/Ascend/8.5.0/compiler/bishengir/bin:$PATH + + export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True + export STREAMS_PER_DEVICE=32 + + export ASCEND_MF_STORE_URL="tcp://your prefill ip1:24669" + + P_IP=('your prefill ip1' 'your prefill ip2') + + D_IP=('your decode ip1' 'your decode ip2') + + MODEL_PATH=xxx + + export SGLANG_NPU_USE_MLAPO=1 + export SGLANG_USE_FIA_NZ=1 + + LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` + LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` + echo "${LOCAL_HOST1}" + echo "${LOCAL_HOST2}" + # prefill + for i in "${!P_IP[@]}"; + do + if [[ "$LOCAL_HOST1" == "${P_IP[$i]}" || "$LOCAL_HOST2" == "${P_IP[$i]}" ]]; + then + echo "${P_IP[$i]}" + export HCCL_BUFFSIZE=1536 + export DEEP_NORMAL_MODE_USE_INT8_QUANT=1 + export TASK_QUEUE_ENABLE=2 + + export HCCL_SOCKET_IFNAME=lo + export GLOO_SOCKET_IFNAME=lo + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode prefill --host ${P_IP[$i]} \ + --port 8000 --disaggregation-bootstrap-port $((8998+$i)) --trust-remote-code --nnodes 1 --node-rank 0 \ + --tp-size 16 --mem-fraction-static 0.81 --attention-backend ascend --device npu --quantization modelslim \ + --disaggregation-transfer-backend ascend --max-running-requests 8 --context-length 8192 --disable-radix-cache \ + --chunked-prefill-size -1 --max-prefill-tokens 28680 --moe-a2a-backend deepep --deepep-mode normal \ + --speculative-algorithm NEXTN --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 2 \ + --dp-size 2 --enable-dp-attention --disable-shared-experts-fusion --dtype bfloat16 --enable-attn-tp-input-scattered + NODE_RANK=$i + break + fi + done + + # decode + for i in "${!D_IP[@]}"; + do + if [[ "$LOCAL_HOST1" == "${D_IP[$i]}" || "$LOCAL_HOST2" == "${D_IP[$i]}" ]]; + then + echo "${D_IP[$i]}" + export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 + export SGLANG_ENABLE_SPEC_V2=1 + export HCCL_BUFFSIZE=650 + export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=78 + export TASK_QUEUE_ENABLE=1 + export SGLANG_SCHEDULER_SKIP_ALL_GATHER=1 + export HCCL_SOCKET_IFNAME=xxx + export GLOO_SOCKET_IFNAME=xxx + python -m sglang.launch_server --model-path ${MODEL_PATH} --disaggregation-mode decode --host ${D_IP[$i]} \ + --port 8001 --trust-remote-code --dist-init-addr ${D_IP[0]}:5000 --nnodes 2 --node-rank $i --tp-size 32 --dp-size 32 \ + --mem-fraction-static 0.815 --max-running-requests 832 --attention-backend ascend --device npu --quantization modelslim \ + --moe-a2a-backend deepep --enable-dp-attention --deepep-mode low_latency --enable-dp-lm-head --moe-dense-tp 1 \ + --cuda-graph-bs 12 14 16 18 20 22 24 26 --disaggregation-transfer-backend ascend --watchdog-timeout 9000 --context-length 8192 \ + --speculative-algorithm NEXTN --speculative-num-steps 2 --speculative-eagle-topk 1 --speculative-num-draft-tokens 3 \ + --tokenizer-worker-num 4 --prefill-round-robin-balance --disable-shared-experts-fusion --dtype bfloat16 \ + --load-balance-method decode_round_robin + NODE_RANK=$i + break + fi + done + ``` + + + + + ```shell Command + export SGLANG_DP_ROUND_ROBIN=1 + python -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://P_IP:8000 8998 \ + --prefill http://P_IP:8000 8999 \ + --decode http://D_IP:8001 \ + --host 127.0.0.1 \ + --port 6688 \ + --mini-lb + ``` + + + +### Test GSM8K + + +```python Test GSM8K +from types import SimpleNamespace +from sglang.test.few_shot_gsm8k import run_eval + +def gsm8k(): + args = SimpleNamespace( + num_shots=5, + data_path=None, + num_questions=200, + max_new_tokens=512, + parallel=32, + host=f"http://127.0.0.1", + port=6688, + ) + metrics = run_eval(args) + print(f"{metrics=}") + print(f"{metrics['accuracy']=}") +if __name__ == "__main__": + gsm8k() +``` + diff --git a/docs_new/docs/hardware-platforms/ascend-npus/GLM-5.mdx b/docs_new/docs/hardware-platforms/ascend-npus/GLM-5.mdx new file mode 100644 index 000000000..783cbf122 --- /dev/null +++ b/docs_new/docs/hardware-platforms/ascend-npus/GLM-5.mdx @@ -0,0 +1,200 @@ +## Introduction + +The GLM (General Language Model) series is an open-source bilingual large language model family jointly developed by the KEG Laboratory of Tsinghua University and Zhipu AI. This series of models has performed outstandingly in the field of Chinese NLP with its unique unified pre-training framework and bilingual capabilities. [GLM-5](https://huggingface.co/zai-org/GLM-5) adopts the DeepSeek-V3/V3.2 architecture, including the sparse attention (DSA) and multi-token prediction (MTP). Ascend supports GLM-5 with 0Day based on the SGLang inference framework, achieving low-code seamless enablement and compatibility with the mainstream distributed parallel capabilities within the current SGLang framework. We welcome developers to download and experience it. + +## Environment Preparation + +### Model Weight + +- `GLM-5.0`(BF16 version): [Download model weight](https://www.modelscope.cn/models/ZhipuAI/GLM-5). +- `GLM-5.0-w4a8`(Quantized version without mtp): [Download model weight](https://modelers.cn/models/Eco-Tech/GLM-5-w4a8). +- You can use [msmodelslim](https://gitcode.com/Ascend/msmodelslim) to quantify the model naively. + + +### Installation + +The dependencies required for the NPU runtime environment have been integrated into a Docker image and uploaded to the quay.io platform. You can directly pull it. + + +```bash Pull and Start Container +#Atlas 800 A3 +docker pull swr.cn-southwest-2.myhuaweicloud.com/base_image/dockerhub/lmsysorg/sglang:cann8.5.0-a3-glm5 +#Atlas 800 A2 +docker pull swr.cn-southwest-2.myhuaweicloud.com/base_image/dockerhub/lmsysorg/sglang:cann8.5.0-910b-glm5 + +#start container +docker run -itd --shm-size=16g --privileged=true --name ${NAME} \ +--privileged=true --net=host \ +-v /var/queue_schedule:/var/queue_schedule \ +-v /etc/ascend_install.info:/etc/ascend_install.info \ +-v /usr/local/sbin:/usr/local/sbin \ +-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ +-v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \ +--device=/dev/davinci0:/dev/davinci0 \ +--device=/dev/davinci1:/dev/avinci1 \ +--device=/dev/davinci2:/dev/davinci2 \ +--device=/dev/davinci3:/dev/davinci3 \ +--device=/dev/davinci4:/dev/davinci4 \ +--device=/dev/davinci5:/dev/davinci5 \ +--device=/dev/davinci6:/dev/davinci6 \ +--device=/dev/davinci7:/dev/davinci7 \ +--device=/dev/davinci8:/dev/davinci8 \ +--device=/dev/davinci9:/dev/davinci9 \ +--device=/dev/davinci10:/dev/davinci10 \ +--device=/dev/davinci11:/dev/davinci11 \ +--device=/dev/davinci12:/dev/davinci12 \ +--device=/dev/davinci13:/dev/davinci13 \ +--device=/dev/davinci14:/dev/davinci14 \ +--device=/dev/davinci15:/dev/davinci15 \ +--device=/dev/davinci_manager:/dev/davinci_manager \ +--device=/dev/hisi_hdc:/dev/hisi_hdc \ +--entrypoint=bash \ +swr.cn-southwest-2.myhuaweicloud.com/base_image/dockerhub/lmsysorg/sglang:${TAG} +``` + + +Note: Using this image, you need to update transformers to main branch + +```shell Update Transformers +# reinstall transformers +pip install git+https://github.com/huggingface/transformers.git +``` + + +## Deployment + +### Single-node Deployment + +- Quantized model `glm5_w4a8` can be deployed on 1 Atlas 800 A3 (64G × 16) . + +Run the following script to execute online inference. + + +```shell Launch Server +# high performance cpu +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 +# bind cpu +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +# cann +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh + +export STREAMS_PER_DEVICE=32 +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 +export SGLANG_ENABLE_SPEC_V2=1 +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_NPU_USE_MULTI_STREAM=1 +export HCCL_BUFFSIZE=1000 +export HCCL_OP_EXPANSION_MODE=AIV +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo + +python3 -m sglang.launch_server \ + --model-path $MODEL_PATH \ + --attention-backend ascend \ + --device npu \ + --tp-size 16 --nnodes 1 --node-rank 0 \ + --chunked-prefill-size 16384 --max-prefill-tokens 280000 \ + --trust-remote-code \ + --host 127.0.0.1 \ + --mem-fraction-static 0.7 \ + --port 8000 \ + --served-model-name glm-5 \ + --cuda-graph-bs 16 \ + --quantization modelslim \ + --moe-a2a-backend deepep --deepep-mode auto +``` + + +### Multi-node Deployment + +- `GLM-5-bf16`: require at least 2 Atlas 800 A3 (64G × 16). + +**A3 series** + +Modify the IP of 2 nodes, then run the same scripts on two nodes. + +**node 0/1** + + +```shell Launch Multi-node Server +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 +# bind cpu +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +# cann +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh + +export STREAMS_PER_DEVICE=32 +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 +export SGLANG_ENABLE_SPEC_V2=1 +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_NPU_USE_MULTI_STREAM=1 +export HCCL_BUFFSIZE=1000 +export HCCL_OP_EXPANSION_MODE=AIV + +# Run command ifconfig on two nodes, find out which inet addr has same IP with your node IP. That is your public interface, which should be added here +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo + + +P_IP=('your ip1' 'your ip2') +P_MASTER="${P_IP[0]}:your port" +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 + +export SGLANG_ENABLE_SPEC_V2=1 +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 + +LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'` +LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'` +for i in "${!P_IP[@]}"; +do + if [[ "$LOCAL_HOST1" == "${P_IP[$i]}" || "$LOCAL_HOST2" == "${P_IP[$i]}" ]]; + then + echo "${P_IP[$i]}" + python3 -m sglang.launch_server \ + --model-path $MODEL_PATH \ + --attention-backend ascend \ + --device npu \ + --tp-size 32 --nnodes 2 --node-rank $i --dist-init-addr $P_MASTER \ + --chunked-prefill-size 16384 --max-prefill-tokens 131072 \ + --trust-remote-code \ + --host 127.0.0.1 \ + --mem-fraction-static 0.8\ + --port 8000 \ + --served-model-name glm-5 \ + --cuda-graph-max-bs 16 \ + --disable-radix-cache + NODE_RANK=$i + break + fi +done + +``` + + +### Prefill-Decode Disaggregation + +Not test yet. + +### Using Benchmark + +Refer to [Benchmark and Profiling](../../developer_guide/benchmark_and_profiling) for details. diff --git a/docs_new/docs/hardware-platforms/ascend-npus/MindSpore-Models.mdx b/docs_new/docs/hardware-platforms/ascend-npus/MindSpore-Models.mdx new file mode 100644 index 000000000..63ccfcf86 --- /dev/null +++ b/docs_new/docs/hardware-platforms/ascend-npus/MindSpore-Models.mdx @@ -0,0 +1,169 @@ +## Introduction + +MindSpore is a high-performance AI framework optimized for Ascend NPUs. This doc guides users to run MindSpore models in SGLang. + +## Requirements + +MindSpore currently only supports Ascend NPU devices. Users need to first install Ascend CANN software packages. +The CANN software packages can be downloaded from the [Ascend Official Website](https://www.hiascend.com). The recommended version is 8.3.RC2. + +## Supported Models + +Currently, the following models are supported: + +- **Qwen3**: Dense and MoE models +- **DeepSeek V3/R1** +- *More models coming soon...* + +## Installation + + +Currently, MindSpore models are provided by an independent package `sgl-mindspore`. Support for MindSpore is built upon current SGLang support for Ascend NPU platform. Please first [install SGLang for Ascend NPU](./SGLang-installation-with-NPUs-support) and then install `sgl-mindspore`: + + + +```shell Install +git clone https://github.com/mindspore-lab/sgl-mindspore.git +cd sgl-mindspore +pip install -e . +``` + + + +## Run Model + +Current SGLang-MindSpore supports Qwen3 and DeepSeek V3/R1 models. This doc uses Qwen3-8B as an example. + +### Offline infer + +Use the following script for offline infer: + + +```python Offline Inference +import sglang as sgl + +# Initialize the engine with MindSpore backend +llm = sgl.Engine( + model_path="/path/to/your/model", # Local model path + device="npu", # Use NPU device + model_impl="mindspore", # MindSpore implementation + attention_backend="ascend", # Attention backend + tp_size=1, # Tensor parallelism size + dp_size=1 # Data parallelism size +) + +# Generate text +prompts = [ + "Hello, my name is", + "The capital of France is", + "The future of AI is" +] + +sampling_params = {"temperature": 0, "top_p": 0.9} +outputs = llm.generate(prompts, sampling_params) + +for prompt, output in zip(prompts, outputs): + print(f"Prompt: {prompt}") + print(f"Generated: {output['text']}") + print("---") +``` + + +### Start server + +Launch a server with MindSpore backend: + + +```bash Launch Server +# Basic server startup +python3 -m sglang.launch_server \ + --model-path /path/to/your/model \ + --host 0.0.0.0 \ + --device npu \ + --model-impl mindspore \ + --attention-backend ascend \ + --tp-size 1 \ + --dp-size 1 +``` + + +For distributed server with multiple nodes: + + +```bash Multi-node Distributed +# Multi-node distributed server +python3 -m sglang.launch_server \ + --model-path /path/to/your/model \ + --host 0.0.0.0 \ + --device npu \ + --model-impl mindspore \ + --attention-backend ascend \ + --dist-init-addr 127.0.0.1:29500 \ + --nnodes 2 \ + --node-rank 0 \ + --tp-size 4 \ + --dp-size 2 +``` + + +## Troubleshooting + +#### Debug Mode + +Enable sglang debug logging by log-level argument. + + +```bash Debug Mode +python3 -m sglang.launch_server \ + --model-path /path/to/your/model \ + --host 0.0.0.0 \ + --device npu \ + --model-impl mindspore \ + --attention-backend ascend \ + --log-level DEBUG +``` + + +Enable mindspore info and debug logging by setting environments. + + +```bash Set Log Level +export GLOG_v=1 # INFO +export GLOG_v=0 # DEBUG +``` + + +#### Explicitly select devices + +Use the following environment variable to explicitly select the devices to use. + + +```shell Select Devices +export ASCEND_RT_VISIBLE_DEVICES=4,5,6,7 # to set device +``` + + +#### Some communication environment issues + +In case of some environment with special communication environment, users need set some environment variables. + + +```shell Disable LCCL +export MS_ENABLE_LCCL=off # current not support LCCL communication mode in SGLang-MindSpore +``` + + +#### Some dependencies of protobuf + +In case of some environment with special protobuf version, users need set some environment variables to avoid binary version mismatch. + + +```shell Fix Protobuf +export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python # to avoid protobuf binary version mismatch +``` + + +## Support +For MindSpore-specific issues: + +- Refer to the [MindSpore documentation](https://www.mindspore.cn/) diff --git a/docs_new/docs/hardware-platforms/ascend-npus/Qwen3-Examples.mdx b/docs_new/docs/hardware-platforms/ascend-npus/Qwen3-Examples.mdx new file mode 100644 index 000000000..469ea172f --- /dev/null +++ b/docs_new/docs/hardware-platforms/ascend-npus/Qwen3-Examples.mdx @@ -0,0 +1,124 @@ +## Running Qwen3 + +### Running Qwen3-32B on 1 x Atlas 800I A3 + +Model weights could be found [here](https://huggingface.co/Qwen/Qwen3-32B) + + +```shell Launch Server +export SGLANG_SET_CPU_AFFINITY=1 +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 +export HCCL_BUFFSIZE=1536 +export HCCL_OP_EXPANSION_MODE=AIV + +python -m sglang.launch_server \ + --device npu \ + --attention-backend ascend \ + --trust-remote-code \ + --tp-size 4 \ + --model-path Qwen/Qwen3-32B \ + --mem-fraction-static 0.8 +``` + + +### Running Qwen3-32B on 1 x Atlas 800I A3 with Qwen3-32B-Eagle3 + +Model weights could be found [here](https://huggingface.co/Qwen/Qwen3-32B) + +Speculative model weights could be found [here](https://huggingface.co/Zhihu-ai/Zhi-Create-Qwen3-32B-Eagle3) + + +```shell Launch Server with Eagle3 +export SGLANG_SET_CPU_AFFINITY=1 +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 +export HCCL_OP_EXPANSION_MODE=AIV +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_ENABLE_SPEC_V2=1 + +python -m sglang.launch_server \ + --device npu \ + --attention-backend ascend \ + --trust-remote-code \ + --tp-size 4 \ + --model-path Qwen/Qwen3-32B \ + --mem-fraction-static 0.8 \ + --speculative-algorithm EAGLE3 \ + --speculative-draft-model-path Qwen/Qwen3-32B-Eagle3 \ + --speculative-num-steps 1 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 2 +``` + + +### Running Qwen3-30B-A3B MOE on 1 x Atlas 800I A3 + +Model weights could be found [here](https://huggingface.co/Qwen/Qwen3-30B-A3B) + + +```shell Launch Server +export SGLANG_SET_CPU_AFFINITY=1 +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 +export HCCL_BUFFSIZE=1536 +export HCCL_OP_EXPANSION_MODE=AIV +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=32 +export SGLANG_DEEPEP_BF16_DISPATCH=1 + +python -m sglang.launch_server \ + --device npu \ + --attention-backend ascend \ + --trust-remote-code \ + --tp-size 4 \ + --model-path Qwen/Qwen3-30B-A3B \ + --mem-fraction-static 0.8 +``` + + +### Running Qwen3-235B-A22B-Instruct-2507 MOE on 1 x Atlas 800I A3 + +Model weights could be found [here](https://huggingface.co/Qwen/Qwen3-235B-A22B-Instruct-2507) + + +```shell Launch Server +export SGLANG_SET_CPU_AFFINITY=1 +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 +export HCCL_BUFFSIZE=1536 +export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=32 +export SGLANG_DEEPEP_BF16_DISPATCH=1 + +python -m sglang.launch_server \ + --model-path Qwen/Qwen3-235B-A22B-Instruct-2507 \ + --tp-size 16 \ + --trust-remote-code \ + --attention-backend ascend \ + --device npu \ + --watchdog-timeout 9000 \ + --mem-fraction-static 0.8 +``` + + +### Running Qwen3-VL-8B-Instruct on 1 x Atlas 800I A3 + +Model weights could be found [here](https://huggingface.co/Qwen/Qwen3-VL-8B-Instruct) + + +```shell Launch Server +export SGLANG_SET_CPU_AFFINITY=1 +export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True +export STREAMS_PER_DEVICE=32 +export HCCL_BUFFSIZE=1536 +export HCCL_OP_EXPANSION_MODE=AIV + +python -m sglang.launch_server \ + --enable-multimodal \ + --attention-backend ascend \ + --mm-attention-backend ascend_attn \ + --trust-remote-code \ + --tp-size 4 \ + --model-path Qwen/Qwen3-VL-8B-Instruct \ + --mem-fraction-static 0.8 +``` + diff --git a/docs_new/docs/hardware-platforms/ascend-npus/Qwen3.5.mdx b/docs_new/docs/hardware-platforms/ascend-npus/Qwen3.5.mdx new file mode 100644 index 000000000..baca8dd9f --- /dev/null +++ b/docs_new/docs/hardware-platforms/ascend-npus/Qwen3.5.mdx @@ -0,0 +1,106 @@ +## Environment Preparation + +### Installation + +The dependencies required for the NPU runtime environment have been integrated into a Docker image and uploaded to the quay.io platform. You can directly pull it. + + +```bash Pull and Start Container +#Atlas 800 A3 +docker pull swr.cn-southwest-2.myhuaweicloud.com/base_image/dockerhub/lmsysorg/sglang:cann8.5.0-a3-qwen3.5 +#Atlas 800 A2 +docker pull swr.cn-southwest-2.myhuaweicloud.com/base_image/dockerhub/lmsysorg/sglang:cann8.5.0-910b-qwen3.5 + +#start container +docker run -itd --shm-size=16g --privileged=true --name ${NAME} \ +--privileged=true --net=host \ +-v /var/queue_schedule:/var/queue_schedule \ +-v /etc/ascend_install.info:/etc/ascend_install.info \ +-v /usr/local/sbin:/usr/local/sbin \ +-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ +-v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \ +--device=/dev/davinci0:/dev/davinci0 \ +--device=/dev/davinci1:/dev/davinci1 \ +--device=/dev/davinci2:/dev/davinci2 \ +--device=/dev/davinci3:/dev/davinci3 \ +--device=/dev/davinci4:/dev/davinci4 \ +--device=/dev/davinci5:/dev/davinci5 \ +--device=/dev/davinci6:/dev/davinci6 \ +--device=/dev/davinci7:/dev/davinci7 \ +--device=/dev/davinci8:/dev/davinci8 \ +--device=/dev/davinci9:/dev/davinci9 \ +--device=/dev/davinci10:/dev/davinci10 \ +--device=/dev/davinci11:/dev/davinci11 \ +--device=/dev/davinci12:/dev/davinci12 \ +--device=/dev/davinci13:/dev/davinci13 \ +--device=/dev/davinci14:/dev/davinci14 \ +--device=/dev/davinci15:/dev/davinci15 \ +--device=/dev/davinci_manager:/dev/davinci_manager \ +--device=/dev/hisi_hdc:/dev/hisi_hdc \ +--entrypoint=bash \ +swr.cn-southwest-2.myhuaweicloud.com/base_image/dockerhub/lmsysorg/sglang:${TAG} +``` + + +## Deployment + +### Single-node Deployment + +- Quantized model `qwen35_w8a8` can be deployed on 1 Atlas 800 A3 (64G × 16) . + +Run the following script to execute online inference. + + +```shell Launch Server +# high performance cpu +echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +sysctl -w vm.swappiness=0 +sysctl -w kernel.numa_balancing=0 +sysctl -w kernel.sched_migration_cost_ns=50000 +# bind cpu +export SGLANG_SET_CPU_AFFINITY=1 + +unset https_proxy +unset http_proxy +unset HTTPS_PROXY +unset HTTP_PROXY +unset ASCEND_LAUNCH_BLOCKING +# cann +source /usr/local/Ascend/ascend-toolkit/set_env.sh +source /usr/local/Ascend/nnal/atb/set_env.sh + +export STREAMS_PER_DEVICE=32 +export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=600 +export SGLANG_ENABLE_SPEC_V2=1 +export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1 +export SGLANG_NPU_USE_MULTI_STREAM=1 +export HCCL_BUFFSIZE=1000 +export HCCL_OP_EXPANSION_MODE=AIV +export HCCL_SOCKET_IFNAME=lo +export GLOO_SOCKET_IFNAME=lo + +python3 -m sglang.launch_server \ + --model-path $MODEL_PATH \ + --attention-backend ascend \ + --device npu \ + --tp-size 16 --nnodes 1 --node-rank 0 \ + --chunked-prefill-size 16384 --max-prefill-tokens 280000 \ + --trust-remote-code \ + --host 127.0.0.1 \ + --mem-fraction-static 0.7 \ + --port 8000 \ + --cuda-graph-bs 16 \ + --quantization modelslim \ + --enable-multimodal \ + --mm-attention-backend ascend_attn \ + --dtype bfloat16 +``` + + +### Prefill-Decode Disaggregation + +Not test yet. + +### Using Benchmark + +Refer to [Benchmark and Profiling](../../developer_guide/benchmark_and_profiling) for details. diff --git a/docs_new/docs/hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support.mdx b/docs_new/docs/hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support.mdx new file mode 100644 index 000000000..23323cbbf --- /dev/null +++ b/docs_new/docs/hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support.mdx @@ -0,0 +1,318 @@ +--- +title: SGLang installation with NPUs support +--- + +You can install SGLang using any of the methods below. Please go through `System Settings` section to ensure the clusters are roaring at max performance. Feel free to leave an issue [here at sglang](https://github.com/sgl-project/sglang/issues) if you encounter any issues or have any problems. + +## Component Version Mapping For SGLang + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ComponentVersionObtain Way
      HDK25.3.RC1[](https://hiascend.com/hardware/firmware-drivers/commercial?product=7\&model=33)
      CANN8.5.0[Obtain Images](#obtain-cann-image)
      Pytorch Adapter7.3.0[](https://gitcode.com/Ascend/pytorch/releases)
      MemFabric1.0.5`pip install memfabric-hybrid==1.0.5`
      Triton3.2.0`pip install triton-ascend`
      Bisheng20251121[](https://sglang-ascend.obs.cn-east-3.myhuaweicloud.com/sglang/triton_ascend/Ascend-BiSheng-toolkit_aarch64_20251121.run)
      SGLang NPU KernelNA[](https://github.com/sgl-project/sgl-kernel-npu/releases)
      + + + + You can obtain the dependency of a specified version of CANN through an image. + + ```bash + # for Atlas 800I A3 and Ubuntu OS + docker pull quay.io/ascend/cann:8.5.0-a3-ubuntu22.04-py3.11 + # for Atlas 800I A2 and Ubuntu OS + docker pull quay.io/ascend/cann:8.5.0-910b-ubuntu22.04-py3.11 + ``` + + +## Preparing the Running Environment + + + + + + Only `python==3.11` is supported currently. If you don't want to break system pre-installed python, try installing with [conda](https://github.com/conda/conda). + + ```bash + conda create --name sglang_npu python=3.11 + conda activate sglang_npu + ``` + + + Prior to start work with SGLang on Ascend you need to install CANN Toolkit, Kernels operator package and NNAL version 8.3.RC2 or higher, check the [installation guide](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/83RC1/softwareinst/instg/instg_0008.html?Mode=PmIns\&InstallType=local\&OS=openEuler\&Software=cannToolKit) + + + If you want to use PD disaggregation mode, you need to install MemFabric-Hybrid. MemFabric-Hybrid is a drop-in replacement of Mooncake Transfer Engine that enables KV cache transfer on Ascend NPU clusters. + + ```bash + pip install memfabric-hybrid==1.0.5 + ``` + + + ```bash + PYTORCH_VERSION=2.8.0 + TORCHVISION_VERSION=0.23.0 + TORCH_NPU_VERSION=2.8.0 + pip install torch==$PYTORCH_VERSION torchvision==$TORCHVISION_VERSION --index-url https://download.pytorch.org/whl/cpu + pip install torch_npu==$TORCH_NPU_VERSION + ``` + + If you are using other versions of `torch` and install `torch_npu`, check [installation guide](https://github.com/Ascend/pytorch/blob/master/README) + + + We provide our own implementation of Triton for Ascend. + + ```bash + BISHENG_NAME="Ascend-BiSheng-toolkit_aarch64_20251121.run" + BISHENG_URL="https://sglang-ascend.obs.cn-east-3.myhuaweicloud.com/sglang/triton_ascend/${BISHENG_NAME}" + wget -O "${BISHENG_NAME}" "${BISHENG_URL}" && chmod a+x "${BISHENG_NAME}" && "./${BISHENG_NAME}" --install && rm "${BISHENG_NAME}" + ``` + + ```bash + pip install triton-ascend + ``` + + For installation of Triton on Ascend nightly builds or from sources, follow [installation guide](https://gitcode.com/Ascend/triton-ascend/blob/master/docs/sources/getting-started/installation) + + + + We provide SGL kernels for Ascend NPU, check [installation guide](https://github.com/sgl-project/sgl-kernel-npu/blob/main/python/sgl_kernel_npu/README). + + + We provide a DeepEP-compatible Library as a drop-in replacement of deepseek-ai's DeepEP library, check the [installation guide](https://github.com/sgl-project/sgl-kernel-npu/blob/main/python/deep_ep/README). + + + ```bash + # Use the last release branch + git clone https://github.com/sgl-project/sglang.git + cd sglang + mv python/pyproject_npu.toml python/pyproject.toml + pip install -e python[all_npu] + ``` + + + + + + + ### Obtain Image + + You can download the SGLang image or build an image based on Dockerfile to obtain the Ascend NPU image. + + 1. **Download SGLang image** + + ```bash + dockerhub: docker.io/lmsysorg/sglang:$tag + # Main-based tag, change main to specific version like v0.5.6, + # you can get image for specific version + Atlas 800I A3 : {main}-cann8.5.0-a3 + Atlas 800I A2: {main}-cann8.5.0-910b + ``` + + 2. **Build an image based on Dockerfile** + + ```bash + # Clone the SGLang repository + git clone https://github.com/sgl-project/sglang.git + cd sglang/docker + + # Build the docker image + # If there are network errors, please modify the Dockerfile to use offline dependencies or use a proxy + docker build -t -f npu.Dockerfile . + ``` + + ### Create Docker + + `--privileged` and `--network=host` are required by RDMA, which is typically needed by Ascend NPU clusters. + The following docker command is based on Atlas 800I A3 machines. If you are using Atlas 800I A2, make sure only `davinci[0-7]` are mapped into container. + + ```bash + alias drun='docker run -it --rm --privileged --network=host --ipc=host --shm-size=16g \ + --device=/dev/davinci0 --device=/dev/davinci1 --device=/dev/davinci2 --device=/dev/davinci3 \ + --device=/dev/davinci4 --device=/dev/davinci5 --device=/dev/davinci6 --device=/dev/davinci7 \ + --device=/dev/davinci8 --device=/dev/davinci9 --device=/dev/davinci10 --device=/dev/davinci11 \ + --device=/dev/davinci12 --device=/dev/davinci13 --device=/dev/davinci14 --device=/dev/davinci15 \ + --device=/dev/davinci_manager --device=/dev/hisi_hdc \ + --volume /usr/local/sbin:/usr/local/sbin --volume /usr/local/Ascend/driver:/usr/local/Ascend/driver \ + --volume /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \ + --volume /etc/ascend_install.info:/etc/ascend_install.info \ + --volume /var/queue_schedule:/var/queue_schedule --volume ~/.cache/:/root/.cache/' + + # Add HF_TOKEN env for download model by SGLang. + drun --env "HF_TOKEN=" \ + \ + python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --attention-backend ascend + ``` + + + + +## System Settings + + + + The default power scheme on Ascend hardware is `ondemand` which could affect performance, changing it to `performance` is recommended. + + ```bash + echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor + + # Make sure changes are applied successfully + cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor # shows performance + ``` + + + ```bash + sudo sysctl -w kernel.numa_balancing=0 + # Check + cat /proc/sys/kernel/numa_balancing # shows 0 + ``` + + + ```bash + sudo sysctl -w vm.swappiness=10 + + # Check + cat /proc/sys/vm/swappiness # shows 10 + ``` + + + +## Running SGLang Service + + + + + ### PD Mixed Scene + + ```bash + # Enabling CPU Affinity + export SGLANG_SET_CPU_AFFINITY=1 + python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --attention-backend ascend + ``` + + ### PD Separation Scene + + 1. **Launch Prefill Server** + + ```bash + # Enabling CPU Affinity + export SGLANG_SET_CPU_AFFINITY=1 + + # PIP: recommended to config first Prefill Server IP + # PORT: one free port + # all sglang servers need to be config the same PIP and PORT, + export ASCEND_MF_STORE_URL="tcp://PIP:PORT" + # if you are Atlas 800I A2 hardware and use rdma for kv cache transfer, add this parameter + export ASCEND_MF_TRANSFER_PROTOCOL="device_rdma" + python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disaggregation-mode prefill \ + --disaggregation-transfer-backend ascend \ + --disaggregation-bootstrap-port 8995 \ + --attention-backend ascend \ + --device npu \ + --base-gpu-id 0 \ + --tp-size 1 \ + --host 127.0.0.1 \ + --port 8000 + ``` + + 2. **Launch Decode Server** + + ```bash + # PIP: recommended to config first Prefill Server IP + # PORT: one free port + # all sglang servers need to be config the same PIP and PORT, + export ASCEND_MF_STORE_URL="tcp://PIP:PORT" + # if you are Atlas 800I A2 hardware and use rdma for kv cache transfer, add this parameter + export ASCEND_MF_TRANSFER_PROTOCOL="device_rdma" + python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.1-8B-Instruct \ + --disaggregation-mode decode \ + --disaggregation-transfer-backend ascend \ + --attention-backend ascend \ + --device npu \ + --base-gpu-id 1 \ + --tp-size 1 \ + --host 127.0.0.1 \ + --port 8001 + ``` + + 3. **Launch Router** + + ```bash + python3 -m sglang_router.launch_router \ + --pd-disaggregation \ + --policy cache_aware \ + --prefill http://127.0.0.1:8000 8995 \ + --decode http://127.0.0.1:8001 \ + --host 127.0.0.1 \ + --port 6688 + ``` + + + + ### PD Mixed Scene + + ```bash + python3 -m sglang.launch_server \ + --model-path Qwen3-VL-30B-A3B-Instruct \ + --host 127.0.0.1 \ + --port 8000 \ + --tp 4 \ + --device npu \ + --attention-backend ascend \ + --mm-attention-backend ascend_attn \ + --disable-radix-cache \ + --trust-remote-code \ + --enable-multimodal \ + --sampling-backend ascend + ``` + + + diff --git a/docs_new/docs/hardware-platforms/ascend-npus/Support-Features-on-Ascend-NPU.mdx b/docs_new/docs/hardware-platforms/ascend-npus/Support-Features-on-Ascend-NPU.mdx new file mode 100644 index 000000000..7f91e4e68 --- /dev/null +++ b/docs_new/docs/hardware-platforms/ascend-npus/Support-Features-on-Ascend-NPU.mdx @@ -0,0 +1,3327 @@ +This section describes the basic functions and features supported by the Ascend NPU.If you encounter issues or have any +questions, please [open an issue](https://github.com/sgl-project/sglang/issues). + +If you want to know the meaning and usage of each parameter, +click [Server Arguments](../../advanced_features/server_arguments). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--model-path`
      `--model`
      `None`Type: str
      `--tokenizer-path``None`Type: str
      `--tokenizer-mode``auto``auto`, `slow`
      `--tokenizer-worker-num``1`Type: int
      `--skip-tokenizer-init``False`bool flag (set to enable)
      `--load-format``auto``auto`, `safetensors`
      `--model-loader-`
      `extra-config`
      {}Type: str
      `--trust-remote-code``False`bool flag (set to enable)
      `--context-length``None`Type: int
      `--is-embedding``False`bool flag (set to enable)
      `--enable-multimodal``None`bool flag (set to enable)
      `--revision``None`Type: str
      `--model-impl``auto``auto`, `sglang`,
      `transformers`
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--host``127.0.0.1`Type: str
      `--port``30000`Type: int
      `--skip-server-warmup``False`bool flag (set to enable)
      `--warmups``None`Type: str
      `--nccl-port``None`Type: int
      `--fastapi-root-path``None`Type: str
      `--grpc-mode``False`bool flag (set to enable)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--dtype``auto``auto`,
      `float16`,
      `bfloat16`
      `--quantization``None``modelslim`
      `--quantization-param-path``None`Type: str
      `--kv-cache-dtype``auto``auto`
      `--enable-fp32-lm-head``False`bool flag
      (set to enable)
      `--modelopt-quant``None`Type: str
      `--modelopt-checkpoint-`
      `restore-path`
      `None`Type: str
      `--modelopt-checkpoint-`
      `save-path`
      `None`Type: str
      `--modelopt-export-path``None`Type: str
      `--quantize-and-serve``False`bool flag
      (set to enable)
      `--rl-quant-profile``None`Type: str
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--mem-fraction-static``None`Type: float
      `--max-running-requests``None`Type: int
      `--prefill-max-requests``None`Type: int
      `--max-queued-requests``None`Type: int
      `--max-total-tokens``None`Type: int
      `--chunked-prefill-size``None`Type: int
      `--max-prefill-tokens``16384`Type: int
      `--schedule-policy``fcfs``lpm`, `fcfs`
      `--enable-priority-`
      `scheduling`
      `False`bool flag
      (set to enable)
      `--schedule-low-priority-`
      `values-first`
      `False`bool flag
      (set to enable)
      `--priority-scheduling-`
      `preemption-threshold`
      `10`Type: int
      `--schedule-conservativeness``1.0`Type: float
      `--page-size``128`Type: int
      `--swa-full-tokens-ratio``0.8`Type: float
      `--disable-hybrid-swa-memory``False`bool flag
      (set to enable)
      `--abort-on-priority-`
      `when-disabled`
      `False`bool flag
      (set to enable)
      `--enable-dynamic-chunking``False`bool flag
      (set to enable)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--device``None`Type: str
      `--tensor-parallel-size`
      `--tp-size`
      `1`Type: int
      `--pipeline-parallel-size`
      `--pp-size`
      `1`Type: int
      `--pp-max-micro-batch-size``None`Type: int
      `--pp-async-batch-depth``None`Type: int
      `--stream-interval``1`Type: int
      `--stream-output``False`bool flag (set to enable)
      `--random-seed``None`Type: int
      `--constrained-json-`
      `whitespace-pattern`
      `None`Type: str
      `--constrained-json-`
      `disable-any-whitespace`
      `False`bool flag (set to enable)
      `--watchdog-timeout``300`Type: float
      `--soft-watchdog-timeout``300`Type: float
      `--dist-timeout``None`Type: int
      `--base-gpu-id``0`Type: int
      `--gpu-id-step``1`Type: int
      `--sleep-on-idle``False`bool flag (set to enable)
      `--custom-sigquit-handler``None`Optional[Callable]
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--log-level``info`Type: str
      `--log-level-http``None`Type: str
      `--log-requests``False`bool flag
      (set to enable)
      `--log-requests-level``2``0`, `1`, `2`, `3`
      `--log-requests-format`texttext, json
      `--crash-dump-folder``None`Type: str
      `--enable-metrics``False`bool flag
      (set to enable)
      `--enable-metrics-for-`
      `all-schedulers`
      `False`bool flag
      (set to enable)
      `--tokenizer-metrics-`
      `custom-labels-header`
      `x-custom-labels`Type: str
      `--tokenizer-metrics-`
      `allowed-custom-labels`
      `None`List[str]
      `--bucket-time-to-`
      `first-token`
      `None`List[float]
      `--bucket-inter-token-`
      `latency`
      `None`List[float]
      `--bucket-e2e-request-`
      `latency`
      `None`List[float]
      `--collect-tokens-`
      `histogram`
      `False`bool flag
      (set to enable)
      `--prompt-tokens-buckets``None`List[str]
      `--generation-tokens-buckets``None`List[str]
      `--gc-warning-threshold-secs``0.0`Type: float
      `--decode-log-interval``40`Type: int
      `--enable-request-time-`
      `stats-logging`
      `False`bool flag
      (set to enable)
      `--kv-events-config``None`Type: str
      `--enable-trace``False`bool flag
      (set to enable)
      `--oltp-traces-endpoint``localhost:4317`Type: str
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--export-metrics-to-`
      `file`
      `False`bool flag
      (set to enable)
      `--export-metrics-to-`
      `file-dir`
      `None`Type: str
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--api-key``None`Type: str
      `--admin-api-key``None`Type: str
      `--served-model-name``None`Type: str
      `--weight-version``default`Type: str
      `--chat-template``None`Type: str
      `--completion-template``None`Type: str
      `--enable-cache-report``False`bool flag
      (set to enable)
      `--reasoning-parser``None``deepseek-r1`
      `--tool-call-parser``None``llama`,`pythonic`
      `--sampling-defaults``model``openai`, `model`
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--data-parallel-size`
      `--dp-size`
      `1`Type: int
      `--load-balance-method``round_robin``round_robin`,
      `total_requests`,
      `total_tokens`
      `--prefill-round-robin-balance``False`bool flag
      (set to enable)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--dist-init-addr`
      `--nccl-init-addr`
      `None`Type: str
      `--nnodes``1`Type: int
      `--node-rank``0`Type: int
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--json-model-override-`
      `args`
      `{}`Type: str
      `--preferred-sampling-`
      `params`
      `None`Type: str
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--enable-lora``False`Bool flag
      (set to enable)
      `--max-lora-rank``None`Type: int
      `--lora-target-modules``None``all`
      `--lora-paths``None`Type: List[str] /
      JSON objects
      `--max-loras-per-batch``8`Type: int
      `--max-loaded-loras``None`Type: int
      `--lora-eviction-policy``lru``lru`,
      `fifo`
      `--lora-backend``triton``triton`
      `--max-lora-chunk-size``16``16`, `32`,
      `64`, `128`
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--attention-backend``None``ascend`
      `--prefill-attention-backend``None``ascend`
      `--decode-attention-backend``None``ascend`
      `--sampling-backend``None``pytorch`,
      `ascend`
      `--grammar-backend``None``xgrammar`
      `--mm-attention-backend``None``ascend_attn`
      `--nsa-prefill-backend``flashmla_sparse``flashmla_sparse`,
      `flashmla_decode`,
      `fa3`,
      `tilelang`,
      `aiter`
      `--nsa-decode-backend``fa3``flashmla_prefill`,
      `flashmla_kv`,
      `fa3`,
      `tilelang`,
      `aiter`
      `--fp8-gemm-backend``auto``auto`,
      `deep_gemm`,
      `flashinfer_trtllm`,
      `cutlass`,
      `triton`,
      `aiter`
      `--disable-flashinfer-`
      `autotune`
      `False`bool flag
      (set to enable)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--speculative-algorithm``None``EAGLE3`,
      `NEXTN`
      `--speculative-draft-model-path`
      `--speculative-draft-model`
      `None`Type: str
      `--speculative-draft-model-`
      `revision`
      `None`Type: str
      `--speculative-draft-load-format``None``auto`
      `--speculative-num-steps``None`Type: int
      `--speculative-eagle-topk``None`Type: int
      `--speculative-num-draft-tokens``None`Type: int
      `--speculative-accept-`
      `threshold-single`
      `1.0`Type: float
      `--speculative-accept-`
      `threshold-acc`
      `1.0`Type: float
      `--speculative-token-map``None`Type: str
      `--speculative-attention-`
      `mode`
      `prefill``prefill`,
      `decode`
      `--speculative-moe-runner-`
      `backend`
      `None``auto`
      `--speculative-moe-a2a-`
      `backend`
      `None``ascend_fuseep`
      `--speculative-draft-attention-backend``None``ascend`
      `--speculative-draft-model-quantization``None``unquant`
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Experimental
      `--speculative-ngram-`
      `min-match-window-size`
      `1`Type: int
      `--speculative-ngram-`
      `max-match-window-size`
      `12`Type: int
      `--speculative-ngram-`
      `min-bfs-breadth`
      `1`Type: int
      `--speculative-ngram-`
      `max-bfs-breadth`
      `10`Type: int
      `--speculative-ngram-`
      `match-type`
      `BFS``BFS`,
      `PROB`
      `--speculative-ngram-`
      `branch-length`
      `18`Type: int
      `--speculative-ngram-`
      `capacity`
      `10000000`Type: int
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--expert-parallel-size`
      `--ep-size`
      `--ep`
      `1`Type: int
      `--moe-a2a-backend``none``none`,
      `deepep`,
      `ascend_fuseep`
      `--moe-runner-backend``auto``auto`, `triton`
      `--flashinfer-mxfp4-`
      `moe-precision`
      `default``default`,
      `bf16`
      `--enable-flashinfer-`
      `allreduce-fusion`
      `False`bool flag
      (set to enable)
      `--deepep-mode``auto``normal`,
      `low_latency`,
      `auto`
      `--deepep-config``None`Type: str
      `--ep-num-redundant-experts``0`Type: int
      `--ep-dispatch-algorithm``None`Type: str
      `--init-expert-location``trivial`Type: str
      `--enable-eplb``False`bool flag
      (set to enable)
      `--eplb-algorithm``auto`Type: str
      `--eplb-rebalance-layers-`
      `per-chunk`
      `None`Type: int
      `--eplb-min-rebalancing-`
      `utilization-threshold`
      `1.0`Type: float
      `--expert-distribution-`
      `recorder-mode`
      `None`Type: str
      `--expert-distribution-`
      `recorder-buffer-size`
      `None`Type: int
      `--enable-expert-distribution-`
      `metrics`
      `False`bool flag (set to enable)
      `--moe-dense-tp-size``None`Type: int
      `--elastic-ep-backend``None``none`, `mooncake`
      `--mooncake-ib-device``None`Type: str
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--max-mamba-cache-size``None`Type: int
      `--mamba-ssm-dtype``float32``float32`,
      `bfloat16`
      `--mamba-full-memory-ratio``0.2`Type: float
      `--mamba-scheduler-strategy``auto``auto`,
      `no_buffer`,
      `extra_buffer`
      `--mamba-track-interval``256`Type: int
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--enable-hierarchical-`
      `cache`
      `False`bool flag
      (set to enable)
      `--hicache-ratio``2.0`Type: float
      `--hicache-size``0`Type: int
      `--hicache-write-policy``write_through``write_back`,
      `write_through`,
      `write_through_selective`
      `--radix-eviction-policy``lru``lru`, `lfu`
      `--hicache-io-backend``kernel``kernel_ascend`,
      `direct`
      `--hicache-mem-layout``layer_first``page_first_direct`,
      `page_first_kv_split`
      `--hicache-storage-`
      `backend`
      `None``file`
      `--hicache-storage-`
      `prefetch-policy`
      `best_effort``best_effort`,
      `wait_complete`,
      `timeout`
      `--hicache-storage-`
      `backend-extra-config`
      `None`Type: str
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--enable-lmcache``False`bool flag
      (set to enable)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--cpu-offload-gb``0`Type: int
      `--offload-group-size``-1`Type: int
      `--offload-num-in-group``1`Type: int
      `--offload-prefetch-step``1`Type: int
      `--offload-mode``cpu`Type: str
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--multi-item-scoring-delimiter``None`Type: int
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3SpecialPlanned
      `--disable-radix-cache``False`bool flag
      (set to enable)
      `--cuda-graph-max-bs``None`Type: int
      `--cuda-graph-bs``None`List[int]
      `--disable-cuda-graph``False`bool flag
      (set to enable)
      `--disable-cuda-graph-`
      `padding`
      `False`bool flag
      (set to enable)
      `--enable-profile-`
      `cuda-graph`
      `False`bool flag
      (set to enable)
      `--enable-cudagraph-gc``False`bool flag
      (set to enable)
      `--enable-nccl-nvls``False`bool flag
      (set to enable)
      `--enable-symm-mem``False`bool flag
      (set to enable)
      `--disable-flashinfer-`
      `cutlass-moe-fp4-allgather`
      `False`bool flag
      (set to enable)
      `--enable-tokenizer-`
      `batch-encode`
      `False`bool flag
      (set to enable)
      `--disable-tokenizer-`
      `batch-encode`
      `False`bool flag
      (set to enable)
      `--disable-outlines-`
      `disk-cache`
      `False`bool flag
      (set to enable)
      `--disable-custom-`
      `all-reduce`
      `False`bool flag
      (set to enable)
      `--enable-mscclpp``False`bool flag
      (set to enable)
      `--enable-torch-`
      `symm-mem`
      `False`bool flag
      (set to enable)
      `--disable-overlap`
      `-schedule`
      `False`bool flag
      (set to enable)
      `--enable-mixed-`
      `chunk`
      `False`bool flag
      (set to enable)
      `--enable-dp-attention``False`bool flag
      (set to enable)
      `--enable-dp-lm-head``False`bool flag
      (set to enable)
      `--enable-two-`
      `batch-overlap`
      `False`bool flag
      (set to enable)
      `--enable-single-`
      `batch-overlap`
      `False`bool flag
      (set to enable)
      `--tbo-token-`
      `distribution-threshold`
      `0.48`Type: float
      `--enable-torch-`
      `compile`
      `False`bool flag
      (set to enable)
      `--enable-torch-`
      `compile-debug-mode`
      `False`bool flag
      (set to enable)
      `--enable-piecewise-`
      `cuda-graph`
      `False`bool flag
      (set to enable)
      `--piecewise-cuda-`
      `graph-tokens`
      `None`Type: JSON
      list
      `--piecewise-cuda-`
      `graph-compiler`
      `eager`["eager", "inductor"]
      `--torch-compile-max-bs``32`Type: int
      `--piecewise-cuda-`
      `graph-max-tokens`
      `4096`Type: int
      `--torchao-config```Type: str
      `--enable-nan-detection``False`bool flag
      (set to enable)
      `--enable-p2p-check``False`bool flag
      (set to enable)
      `--triton-attention-`
      `reduce-in-fp32`
      `False`bool flag
      (set to enable)
      `--triton-attention-`
      `num-kv-splits`
      `8`Type: int
      `--triton-attention-`
      `split-tile-size`
      `None`Type: int
      `--delete-ckpt-`
      `after-loading`
      `False`bool flag
      (set to enable)
      `--enable-memory-saver``False`bool flag
      (set to enable)
      `--enable-weights-`
      `cpu-backup`
      `False`bool flag
      (set to enable)
      `--enable-draft-weights-`
      `cpu-backup`
      `False`bool flag
      (set to enable)
      `--allow-auto-truncate``False`bool flag
      (set to enable)
      `--enable-custom-`
      `logit-processor`
      `False`bool flag
      (set to enable)
      `--flashinfer-mla-`
      `disable-ragged`
      `False`bool flag
      (set to enable)
      `--disable-shared-`
      `experts-fusion`
      `False`bool flag
      (set to enable)
      `--disable-chunked-`
      `prefix-cache`
      `False`bool flag
      (set to enable)
      `--disable-fast-`
      `image-processor`
      `False`bool flag
      (set to enable)
      `--keep-mm-feature-`
      `on-device`
      `False`bool flag
      (set to enable)
      `--enable-return-`
      `hidden-states`
      `False`bool flag
      (set to enable)
      `--enable-return-`
      `routed-experts`
      `False`bool flag
      (set to enable)
      `--scheduler-recv-`
      `interval`
      `1`Type: int
      `--numa-node``None`List[int]
      `--rl-on-policy-target``None``fsdp`
      `--enable-layerwise-`
      `nvtx-marker`
      `False`bool flag
      (set to enable)
      `--enable-attn-tp-`
      `input-scattered`
      `False`bool flag
      (set to enable)
      `--enable-nsa-prefill-`
      `context-parallel`
      `False`bool flag
      (set to enable)
      `--enable-fused-qk-`
      `norm-rope`
      `False`bool flag
      (set to enable)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--enable-dynamic-`
      `batch-tokenizer`
      `False`bool flag
      (set to enable)
      `--dynamic-batch-`
      `tokenizer-batch-size`
      `32`Type: int
      `--dynamic-batch-`
      `tokenizer-batch-timeout`
      `0.002`Type: float
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--debug-tensor-dump-`
      `output-folder`
      `None`Type: str
      `--debug-tensor-dump-`
      `layers`
      `None`List[int]
      `--debug-tensor-dump-`
      `input-file`
      `None`Type: str
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--disaggregation-mode``null``null`,
      `prefill`,
      `decode`
      `--disaggregation-transfer-backend``mooncake``ascend`
      `--disaggregation-bootstrap-port``8998`Type: int
      `--disaggregation-decode-tp``None`Type: int
      `--disaggregation-decode-dp``None`Type: int
      `--disaggregation-ib-device``None`Type: str
      `--disaggregation-decode-`
      `enable-offload-kvcache`
      `False`bool flag
      (set to enable)
      `--disaggregation-decode-`
      `enable-fake-auto`
      `False`bool flag
      (set to enable)
      `--num-reserved-decode-tokens``512`Type: int
      `--disaggregation-decode-`
      `polling-interval`
      `1`Type: int
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--encoder-only``False`bool flag
      (set to enable)
      `--language-only``False`bool flag
      (set to enable)
      `--encoder-transfer-backend``zmq_to_scheduler``zmq_to_scheduler`,
      `zmq_to_tokenizer`,
      `mooncake`
      `--encoder-urls``[]`List[str]
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--custom-weight-loader``None`List[str]
      `--weight-loader-disable-`
      `mmap`
      `False`bool flag
      (set to enable)
      `--remote-instance-weight-`
      `loader-seed-instance-ip`
      `None`Type: str
      `--remote-instance-weight-`
      `loader-seed-instance-service-port`
      `None`Type: int
      `--remote-instance-weight-`
      `loader-send-weights-group-ports`
      `None`Type: JSON
      list
      `--remote-instance-weight-`
      `loader-backend`
      `nccl``transfer_engine`,
      `nccl`
      `--remote-instance-weight-`
      `loader-start-seed-via-transfer-engine`
      `False`bool flag
      (set to enable)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Special
      `--enable-pdmux``False`bool flag
      (set to enable)
      `--pdmux-config-path``None`Type: str
      `--sm-group-num``8`Type: int
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--mm-max-concurrent-calls`32Type: int
      `--mm-per-request-timeout`10.0Type: float
      `--enable-broadcast-mm-`
      `inputs-process`
      `False`bool flag
      (set to enable)
      `--mm-process-config``None`Type: JSON / Dict
      `--mm-enable-dp-encoder``False`bool flag
      (set to enable)
      `--limit-mm-data-per-request``None`Type: JSON / Dict
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--decrypted-config-file``None`Type: str
      `--decrypted-draft-config-file``None`Type: str
      `--enable-prefix-mm-cache``False`bool flag
      (set to enable)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3Planned
      `--enable-deterministic-`
      `inference`
      `False`bool flag
      (set to enable)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--forward-hooks``None`Type: JSON list
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptionsA2A3
      `--config``None`Type: str
      + + +
      + + + + + +The following parameters are not supported because the third-party components that depend on are not compatible with the +NPU, like Ktransformer, checkpoint-engine etc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptions
      `--checkpoint-engine-`
      `wait-weights-`
      `before-ready`
      `False`bool flag (set to enable)
      `--kt-weight-path``None`Type: str
      `--kt-method``AMXINT4`Type: str
      `--kt-cpuinfer``None`Type: int
      `--kt-threadpool-count`2Type: int
      `--kt-num-gpu-experts``None`Type: int
      `--kt-max-deferred-`
      `experts-per-token`
      `None`Type: int
      + +The following parameters have some functional deficiencies on community + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ArgumentDefaultsOptions
      `--enable-double-sparsity``False`bool flag
      (set to enable)
      `--ds-channel-config-path``None`Type: str
      `--ds-heavy-channel-num``32`Type: int
      `--ds-heavy-token-num``256`Type: int
      `--ds-heavy-channel-type``qk`Type: str
      `--ds-sparse-decode-`
      `threshold`
      `4096`Type: int
      `--tool-server``None`Type: str
      + +
      diff --git a/docs_new/docs/hardware-platforms/ascend-npus/Support-Models-on-Ascend-NPU.mdx b/docs_new/docs/hardware-platforms/ascend-npus/Support-Models-on-Ascend-NPU.mdx new file mode 100644 index 000000000..6e07d021c --- /dev/null +++ b/docs_new/docs/hardware-platforms/ascend-npus/Support-Models-on-Ascend-NPU.mdx @@ -0,0 +1,610 @@ +This section describes the models supported on the Ascend NPU, including Large Language Models, Multimodal Language +Models, Embedding Models, Reward Models and Rerank Models. Mainstream DeepSeek/Qwen/GLM series are included. +You are welcome to enable various models based on your business requirements. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelsModel FamilyA2A3
      DeepSeek V3/V3.1DeepSeek
      vllm-ascend/DeepSeek-V3.2-Exp-W8A8DeepSeek
      vllm-ascend/DeepSeek-R1-0528-W8A8DeepSeek
      vllm-ascend/DeepSeek-V2-Lite-W8A8DeepSeek
      Qwen/Qwen3-30B-A3B-Instruct-2507Qwen
      Qwen/Qwen3-32BQwen
      Qwen/Qwen3-0.6BQwen
      vllm-ascend/Qwen3-235B-A22B-W8A8Qwen
      Qwen/Qwen3-Next-80B-A3B-InstructQwen
      Qwen3-Coder-480B-A35B-Instruct-w8a8-QuaRotQwen
      Qwen/Qwen2.5-7B-InstructQwen
      vllm-ascend/QWQ-32B-W8A8Qwen
      meta-llama/Llama-4-Scout-17B-16E-InstructLlama
      AI-ModelScope/Llama-3.1-8B-InstructLlama
      LLM-Research/llama-2-7bLlama
      LLM-Research/Llama-3.2-1B-InstructLlama
      mistralai/Mistral-7B-Instruct-v0.2Mistral
      google/gemma-3-4b-itGemma
      microsoft/Phi-4-multimodal-instructPhi
      allenai/OLMoE-1B-7B-0924OLMoE
      stabilityai/stablelm-2-1_6bStableLM
      CohereForAI/c4ai-command-r-v01Command-R
      huihui-ai/grok-2Grok
      ZhipuAI/chatglm2-6bChatGLM
      Shanghai_AI_Laboratory/internlm2-7bInternLM 2
      LGAI-EXAONE/EXAONE-3.5-7.8B-InstructExaONE 3
      xverse/XVERSE-MoE-A36BXVERSE
      HuggingFaceTB/SmolLM-1.7BSmolLM
      ZhipuAI/glm-4-9b-chatGLM-4
      XiaomiMiMo/MiMo-7B-RLMiMo
      arcee-ai/AFM-4.5B-BaseArcee AFM-4.5B
      Howeee/persimmon-8b-chatPersimmon
      inclusionAI/Ling-liteLing
      ibm-granite/granite-3.1-8b-instructGranite
      ibm-granite/granite-3.0-3b-a800m-instructGranite MoE
      AI-ModelScope/dbrx-instructDBRX (Databricks)
      baichuan-inc/Baichuan2-13B-ChatBaichuan 2 (7B, 13B)
      baidu/ERNIE-4.5-21B-A3B-PTERNIE-4.5 (4.5, 4.5MoE series)
      OpenBMB/MiniCPM3-4BMiniCPM (v3, 4B)
      Kimi/Kimi-K2-ThinkingKimi
      openai/gpt-oss-120bGPTOSS
      allenai/OLMo-2-1124-7B-InstructOLMo
      minimax/MiniMax-M2MiniMax-M2
      upstage/SOLAR-10.7B-Instruct-v1.0Solar
      bigcode/starcoder2-7bStarCoder2
      arcee-ai/Trinity-MiniTrinity (Nano, Mini)
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelsModel Family (Variants)A2A3
      Qwen/Qwen2.5-VL-3B-InstructQwen-VL
      Qwen/Qwen2.5-VL-72B-InstructQwen-VL
      Qwen/Qwen3-VL-30B-A3B-InstructQwen-VL
      Qwen/Qwen3-VL-8B-InstructQwen-VL
      Qwen/Qwen3-VL-4B-InstructQwen-VL
      Qwen/Qwen3-VL-235B-A22B-InstructQwen-VL
      deepseek-ai/deepseek-vl2DeepSeek-VL2
      deepseek-ai/Janus-Pro-1BJanus-Pro (1B, 7B)
      deepseek-ai/Janus-Pro-7BJanus-Pro (1B, 7B)
      openbmb/MiniCPM-V-2_6MiniCPM-V / MiniCPM-o
      openbmb/MiniCPM-o-2_6MiniCPM-V / MiniCPM-o
      google/gemma-3-4b-itGemma 3 (Multimodal)
      mistralai/Mistral-Small-3.1-24B-Instruct-2503Mistral-Small-3.1-24B
      microsoft/Phi-4-multimodal-instructPhi-4-multimodal-instruct
      XiaomiMiMo/MiMo-VL-7B-RLMiMo-VL (7B)
      AI-ModelScope/llava-v1.6-34bLLaVA (v1.5 & v1.6)
      lmms-lab/llava-next-72bLLaVA-NeXT (8B, 72B)
      lmms-lab/llava-onevision-qwen2-7b-ovLLaVA-OneVision
      Kimi/Kimi-VL-A3B-InstructKimi-VL (A3B)
      ZhipuAI/GLM-4.5VGLM-4.5V (106B)
      LLM-Research/Llama-3.2-11B-Vision-InstructLlama 3.2 Vision (11B)
      rednote-hilab/dots.ocrDotsVLM-OCR
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelsModel FamilyA2A3
      intfloat/e5-mistral-7b-instructE5 (Llama/Mistral based)
      iic/gte_Qwen2-1.5B-instructGTE-Qwen2
      Qwen/Qwen3-Embedding-8BQwen3-Embedding
      Alibaba-NLP/gme-Qwen2-VL-2B-InstructGME (Multimodal)
      AI-ModelScope/clip-vit-large-patch14-336CLIP
      BAAI/bge-large-en-v1.5BGE
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelsModel FamilyA2A3
      Skywork/Skywork-Reward-Llama-3.1-8B-v0.2Llama3.1 Reward
      Shanghai_AI_Laboratory/internlm2-7b-rewardInternLM 2 Reward
      Qwen/Qwen2.5-Math-RM-72BQwen2.5 Reward - Math
      Howeee/Qwen2.5-1.5B-apeachQwen2.5 Reward - Sequence
      AI-ModelScope/Skywork-Reward-Gemma-2-27B-v0.2Gemma 2-27B Reward
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelsModel FamilyA2A3
      BAAI/bge-reranker-v2-m3BGE-Reranker
      +
      diff --git a/docs_new/docs/hardware-platforms/cpu-server.mdx b/docs_new/docs/hardware-platforms/cpu-server.mdx new file mode 100644 index 000000000..b3fa72e36 --- /dev/null +++ b/docs_new/docs/hardware-platforms/cpu-server.mdx @@ -0,0 +1,355 @@ +--- +title: "CPU Servers" +--- + +The document addresses how to set up the [SGLang](https://github.com/sgl-project/sglang) environment and run LLM inference on CPU servers. +SGLang is enabled and optimized on the CPUs equipped with Intel® AMX® Instructions, +which are 4th generation or newer Intel® Xeon® Scalable Processors. + +## Optimized Model List + +A list of popular LLMs are optimized and run efficiently on CPU, +including the most notable open-source models like Llama series, Qwen series, +and DeepSeek series like DeepSeek-R1 and DeepSeek-V3.1-Terminus. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model NameBF16W8A8_INT8FP8
      DeepSeek-R1DeepSeek-R1-Channel-INT8DeepSeek-R1
      DeepSeek-V3.1-TerminusDeepSeek-V3.1-Terminus-Channel-int8DeepSeek-V3.1-Terminus
      Llama-3.2-3BLlama-3.2-3B-InstructLlama-3.2-3B-quantized.w8a8
      Llama-3.1-8BLlama-3.1-8B-InstructLlama-3.1-8B-quantized.w8a8
      QwQ-32BQwQ-32B-quantized.w8a8
      DeepSeek-Distilled-LlamaDeepSeek-R1-Distill-Llama-70B-quantized.w8a8
      Qwen3-235BQwen3-235B-A22B-FP8
      + +> **Note:** The model identifiers listed in the table above have been verified on 6th Gen Intel® Xeon® P-core platforms. + +## Installation + + + + It is recommended to use Docker for setting up the SGLang environment. + A [Dockerfile](https://github.com/sgl-project/sglang/blob/main/docker/xeon.Dockerfile) is provided to facilitate the installation. + + > **Note:** Replace `` below with your [HuggingFace access token](https://huggingface.co/docs/hub/en/security-tokens). + + + ```bash Clone, Build and Run + # Clone the SGLang repository + git clone https://github.com/sgl-project/sglang.git + cd sglang/docker + + # Build the docker image + docker build -t sglang-cpu:latest -f xeon.Dockerfile . + + # Initiate a docker container + docker run \ + -it \ + --privileged \ + --ipc=host \ + --network=host \ + -v /dev/shm:/dev/shm \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + -p 30000:30000 \ + -e "HF_TOKEN=" \ + sglang-cpu:latest /bin/bash + ``` + + + + + If you prefer to install SGLang in a bare metal environment, the setup process is as follows. + + Please install the required packages and libraries beforehand if they are not already present on your system. + You can refer to the Ubuntu-based installation commands in + [the Dockerfile](https://github.com/sgl-project/sglang/blob/main/docker/xeon.Dockerfile#L11) for guidance. + + 1. **Install uv and create a virtual environment** + + ```bash Create Virtual Environment + # Taking '/opt' as the example uv env folder, feel free to change it as needed + cd /opt + curl -LsSf https://astral.sh/uv/install.sh | sh + source $HOME/.local/bin/env + uv venv --python 3.12 + source .venv/bin/activate + ``` + + + 2. **Create a config file for torch package indexes** + Create the `uv.toml` config file: + + + ```bash Open Config File + vim .venv/uv.toml + ``` + + + Press `a` to enter insert mode in `vim`, then paste the following content: + + + ```toml + [[index]] + name = "torch" + url = "https://download.pytorch.org/whl/cpu" + + [[index]] + name = "torchvision" + url = "https://download.pytorch.org/whl/cpu" + + [[index]] + name = "torchaudio" + url = "https://download.pytorch.org/whl/cpu" + + [[index]] + name = "triton" + url = "https://download.pytorch.org/whl/cpu" + ``` + + + Save the file (press `Esc`, then type `:x` and hit `Enter`), then set it as the default `uv` config: + + + ```bash Set Config Path + export UV_CONFIG_FILE=/opt/.venv/uv.toml + ``` + + + 3. **Clone SGLang and build packages** + + ```bash Build SGLang + # Clone the SGLang code + git clone https://github.com/sgl-project/sglang.git + cd sglang + git checkout + + # Use dedicated toml file + cd python + cp pyproject_cpu.toml pyproject.toml + # Install SGLang dependent libs, and build SGLang main package + uv pip install --upgrade pip setuptools + uv pip install . + + # Build the CPU backend kernels + cd ../sgl-kernel + cp pyproject_cpu.toml pyproject.toml + uv pip install . + ``` + + + 4. **Set required environment variables** + + ```bash Set Environment Variables + export SGLANG_USE_CPU_ENGINE=1 + + # Set 'LD_LIBRARY_PATH' and 'LD_PRELOAD' to ensure the libs can be loaded by sglang processes + export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu + export LD_PRELOAD=${LD_PRELOAD}:/opt/.venv/lib/libiomp5.so:${LD_LIBRARY_PATH}/libtcmalloc.so.4:${LD_LIBRARY_PATH}/libtbbmalloc.so.2 + ``` + + + > **Note:** The environment variable `SGLANG_USE_CPU_ENGINE=1` is required to enable the SGLang service with the CPU engine. + + > **Note:** If you encounter code compilation issues during the `sgl-kernel` building process, please check your `gcc` and `g++` versions and upgrade them if they are outdated. It is recommended to use `gcc-13` and `g++-13` as they have been verified in the official Docker container. + + > **Note:** The system library path is typically located in one of the following directories: `~/.local/lib/`, `/usr/local/lib/`, `/usr/local/lib64/`, `/usr/lib/`, `/usr/lib64/`, and `/usr/lib/x86_64-linux-gnu/`. In the above example commands, `/usr/lib/x86_64-linux-gnu` is used. Please adjust the path according to your server configuration. + + It is recommended to add the following to your `~/.bashrc` file to avoid setting these variables every time you open a new terminal: + + + ```bash Persist in ~/.bashrc + source .venv/bin/activate + export SGLANG_USE_CPU_ENGINE=1 + export LD_LIBRARY_PATH= + export LD_PRELOAD= + ``` + + + + +## Launch of the Serving Engine + +Example command to launch SGLang serving: + + +```bash Launch Server +python -m sglang.launch_server \ + --model \ + --trust-remote-code \ + --disable-overlap-schedule \ + --device cpu \ + --host 0.0.0.0 \ + --tp 6 +``` + + +> **Note:** For running W8A8 quantized models, please add the flag `--quantization w8a8_int8`. + +> **Note:** The flag `--tp 6` specifies that tensor parallelism will be applied using 6 ranks (TP6). On a CPU platform, a TP rank means a sub-NUMA cluster (SNC). You can get the SNC count using `lscpu`. If the specified TP rank number differs from the total SNC count, the system will automatically utilize the first `n` SNCs — but `n` cannot exceed the total SNC number. +> +> To specify the cores to be used, set the environment variable `SGLANG_CPU_OMP_THREADS_BIND`. For example, to use the first 40 cores of each SNC on a Xeon® 6980P server (which has 43-43-42 cores on the 3 SNCs of a socket): + + +```bash Set Thread Binding +export SGLANG_CPU_OMP_THREADS_BIND="0-39|43-82|86-125|128-167|171-210|214-253" +``` + + +> Please beware that with `SGLANG_CPU_OMP_THREADS_BIND` set, the available memory amounts of the ranks may not be determined in advance. You may need to set `--max-total-tokens` to avoid out-of-memory errors. + +> **Note:** For optimizing decoding with `torch.compile`, add the flag `--enable-torch-compile`. To specify the maximum batch size, set `--torch-compile-max-bs`. For example, `--enable-torch-compile --torch-compile-max-bs 4` uses `torch.compile` with a maximum batch size of 4. The maximum applicable batch size is 16. + +> **Note:** A warmup step is automatically triggered when the service is started. The server is ready when you see the log `The server is fired up and ready to roll!`. + +## Benchmarking with Requests + +You can benchmark the performance via the `bench_serving` script. +Run the command in another terminal. An example command would be: + + +```bash Run Benchmark +python -m sglang.bench_serving \ + --dataset-name random \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 1 \ + --request-rate inf \ + --random-range-ratio 1.0 +``` + + +Detailed parameter descriptions are available via the command: + + +```bash Benchmark Help +python -m sglang.bench_serving -h +``` + + +Additionally, requests can be formatted using +[the OpenAI Completions API](../basic_usage/openai_api_completions) +and sent via the command line (e.g., using `curl`) or through your own scripts. + +## Example Usage Commands + +Large Language Models can range from fewer than 1 billion to several hundred billion parameters. +Dense models larger than 20B are expected to run on flagship 6th Gen Intel® Xeon® processors +with dual sockets and a total of 6 sub-NUMA clusters. Dense models of approximately 10B parameters or fewer, +or MoE (Mixture of Experts) models with fewer than 10B activated parameters, can run on more common +4th generation or newer Intel® Xeon® processors, or utilize a single socket of the flagship 6th Gen Intel® Xeon® processors. + +### Example: Running DeepSeek-V3.1-Terminus + + +```bash W8A8_INT8 +python -m sglang.launch_server \ + --model IntervitensInc/DeepSeek-V3.1-Terminus-Channel-int8 \ + --trust-remote-code \ + --disable-overlap-schedule \ + --device cpu \ + --quantization w8a8_int8 \ + --host 0.0.0.0 \ + --enable-torch-compile \ + --torch-compile-max-bs 4 \ + --tp 6 +``` + +```bash FP8 +python -m sglang.launch_server \ + --model deepseek-ai/DeepSeek-V3.1-Terminus \ + --trust-remote-code \ + --disable-overlap-schedule \ + --device cpu \ + --host 0.0.0.0 \ + --enable-torch-compile \ + --torch-compile-max-bs 4 \ + --tp 6 +``` + + +> **Note:** Please set `--torch-compile-max-bs` to the maximum desired batch size for your deployment, which can be up to 16. The value `4` in the examples is illustrative. + +### Example: Running Llama-3.2-3B + + +```bash BF16 +python -m sglang.launch_server \ + --model meta-llama/Llama-3.2-3B-Instruct \ + --trust-remote-code \ + --disable-overlap-schedule \ + --device cpu \ + --host 0.0.0.0 \ + --enable-torch-compile \ + --torch-compile-max-bs 16 \ + --tp 2 +``` + +```bash W8A8_INT8 +python -m sglang.launch_server \ + --model RedHatAI/Llama-3.2-3B-quantized.w8a8 \ + --trust-remote-code \ + --disable-overlap-schedule \ + --device cpu \ + --quantization w8a8_int8 \ + --host 0.0.0.0 \ + --enable-torch-compile \ + --torch-compile-max-bs 16 \ + --tp 2 +``` + + +> **Note:** The `--torch-compile-max-bs` and `--tp` settings are examples that should be adjusted for your setup. For instance, use `--tp 3` to utilize 1 socket with 3 sub-NUMA clusters on an Intel® Xeon® 6980P server. + +Once the server has been launched, you can test it using the `bench_serving` command or create +your own commands or scripts following [the benchmarking example](#benchmarking-with-requests). diff --git a/docs_new/docs/hardware-platforms/nvidia-gpus.mdx b/docs_new/docs/hardware-platforms/nvidia-gpus.mdx new file mode 100644 index 000000000..6d85d1d07 --- /dev/null +++ b/docs_new/docs/hardware-platforms/nvidia-gpus.mdx @@ -0,0 +1,5 @@ +--- +title: NVIDIA GPUs +--- + +Please refer to the [Installation Guide](/docs/get-started/installation) to get started with SGLang on NVIDIA GPUs. diff --git a/docs_new/docs/hardware-platforms/nvidia.mdx b/docs_new/docs/hardware-platforms/nvidia.mdx new file mode 100644 index 000000000..b4703e81b --- /dev/null +++ b/docs_new/docs/hardware-platforms/nvidia.mdx @@ -0,0 +1,102 @@ +--- +title: NVIDIA Jetson Orin +description: Guide for installing and running SGLang on NVIDIA Jetson Orin devices. +--- + +## Prerequisites + +Before starting, ensure the following: + +- [NVIDIA Jetson AGX Orin Devkit](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/) is set up with JetPack 6.1 or later. +- CUDA Toolkit and cuDNN are installed. +- Verify that the Jetson AGX Orin is in high-performance mode: + + +```bash +sudo nvpmodel -m 0 +``` + + +## Installing and Running SGLang with Jetson Containers + +1. **Clone the jetson-containers repository** + +```bash +git clone https://github.com/dusty-nv/jetson-containers.git +``` + +2. **Run the installation script** + +```bash +bash jetson-containers/install.sh +``` + +3. **Build the container image** + +```bash +jetson-containers build sglang +``` + +4. **Run the container** + + + + ```bash + jetson-containers run $(autotag sglang) + ``` + + + ```bash + docker run --runtime nvidia -it --rm --network=host IMAGE_NAME + ``` + + + +## Running Inference + +Launch the server: + + +```bash +python -m sglang.launch_server \ + --model-path deepseek-ai/DeepSeek-R1-Distill-Llama-8B \ + --device cuda \ + --dtype half \ + --attention-backend flashinfer \ + --mem-fraction-static 0.8 \ + --context-length 8192 +``` + + +The quantization and limited context length (`--dtype half` `--context-length 8192`) are due to the limited computational resources in [Nvidia jetson kit](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-orin/). A detailed explanation can be found in [Server Arguments](../advanced_features/server_arguments). + +After launching the engine, refer to [Chat completions](../basic_usage/openai_api_completions#Usage) to test the usability. + +## Running Quantization with TorchAO + +TorchAO is suggested to NVIDIA Jetson Orin. + + +```bash +python -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-8B-Instruct \ + --device cuda \ + --dtype bfloat16 \ + --attention-backend flashinfer \ + --mem-fraction-static 0.8 \ + --context-length 8192 \ + --torchao-config int4wo-128 +``` + + +This enables TorchAO's int4 weight-only quantization with a 128-group size. The usage of `--torchao-config int4wo-128` is also for memory efficiency. + +## Structured Output with XGrammar + +Please refer to [SGLang doc structured output](../advanced_features/structured_outputs). + +Thanks to the support from [Nurgaliyev Shakhizat](https://github.com/shahizat), [Dustin Franklin](https://github.com/dusty-nv) and [Johnny Núñez Cano](https://github.com/johnnynunez). + +## References + +- [NVIDIA Jetson AGX Orin Documentation](https://developer.nvidia.com/embedded/jetson-agx-orin) diff --git a/docs_new/docs/hardware-platforms/overview.mdx b/docs_new/docs/hardware-platforms/overview.mdx new file mode 100644 index 000000000..b53e06fa0 --- /dev/null +++ b/docs_new/docs/hardware-platforms/overview.mdx @@ -0,0 +1,12 @@ +--- +title: Hardware Platforms +description: Platform-specific guides for running SGLang on GPUs, TPUs, NPUs, CPUs, and more. +--- + +- [NVIDIA GPUs](./nvidia-gpus) +- [AMD GPUs](./amd-gpus) +- [Ascend NPUs](./ascend-npus/SGLang-installation-with-NPUs-support) +- [CPU Server](./cpu-server) +- [NVIDIA (Edge & Embedded)](./nvidia) +- [TPU](./tpu) +- [XPU](./xpu) diff --git a/docs_new/docs/hardware-platforms/tpu.mdx b/docs_new/docs/hardware-platforms/tpu.mdx new file mode 100644 index 000000000..12e89b2ea --- /dev/null +++ b/docs_new/docs/hardware-platforms/tpu.mdx @@ -0,0 +1,673 @@ +--- +title: "TPU" +description: "SGLang supports high-performance TPU inference through the SGLang-JAX backend, which is specifically optimized for Google Cloud TPUs. The JAX-based implementation delivers exceptional throughput and low latency for Large Language Model (LLM) serving workloads on TPU hardware." +--- + + + SGLang TPU support is implemented via the SGLang-JAX backend, a dedicated JAX-based inference engine maintained as a separate repository at [sgl-project/sglang-jax](https://github.com/sgl-project/sglang-jax). + + +For TPU-specific issues or feature requests, please visit the [sglang-jax GitHub issues page](https://github.com/sgl-project/sglang-jax/issues). + +--- + +# System Requirements + +--- + +## Supported TPU Hardware + + + + **32 GB** HBM Memory — Available on Google Cloud + + + **96 GB per core** HBM Memory — Available on Google Cloud + + + +--- + +## Software Requirements + + + + Version **3.12 or higher** + + + **Latest version** with TPU support + + + Google Cloud TPU VM or compatible TPU runtime. **Optional:** SkyPilot for simplified cloud deployment. + + + +--- + +# Feature Support Matrix + +SGLang-JAX provides comprehensive TPU-optimized features for production LLM serving: + +### Supported Features + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      **Feature****Support Status****Description**
      High-Throughput Continuous BatchingDynamic request batching for maximum TPU utilization
      Radix Tree KV CacheMemory-efficient prefix sharing between requests
      FlashAttention BackendTPU-optimized attention kernel for long sequences
      Tensor ParallelismDistribute models across multiple TPU cores
      Paged AttentionFlexible KV cache management with paging
      Speculative Decoding (EAGLE/EAGLE3)20-40% throughput improvement for compatible models
      Chunked PrefillMixed prefill-decode batching
      OpenAI-Compatible APIDrop-in replacement for OpenAI API
      Data Parallel Attention🚧In development — Attention computation with data parallelism
      Quantization🚧In development — Model quantization for reduced memory usage
      Multi-LoRA🚧In development — Serve multiple LoRA adapters simultaneously
      + +--- + +### Attention Backend Comparison + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      **Backend****Paged Attention****Spec Decoding****MLA****Sliding Window**
      FlashAttention (fa)
      Native
      + + + FlashAttention backend is recommended for production workloads due to superior memory efficiency and performance. + + +--- + +# Optimized Model List + +The following models have been tested and optimized for TPU deployment: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      **Model Family****Performance Status**
      Qwen 3⭐ Recommended for production
      Qwen 3 MoE⭐ Best performance
      Qwen 2Needs improvement
      Qwen 2 MoENeeds improvement
      Qwen 1.5Needs improvement
      Llama/LLaMANeeds improvement
      Grok-2Needs improvement
      Gemma 2Verified on TPU
      Bailing MoENeeds improvement
      + +--- + +# Installation + + + + ```bash + pip install sglang-jax + ``` + + + ```bash + git clone https://github.com/sgl-project/sglang-jax + cd sglang-jax + uv venv --python 3.12 && source .venv/bin/activate + uv pip install -e "python[all]" + ``` + + + + Docker support for TPU is currently under development. Please use PyPI or source installation methods. + + + + SkyPilot provides simplified deployment on Google Cloud TPU: + + 1. **Install SkyPilot and configure GCP access** + + See the [SkyPilot documentation](https://docs.skypilot.co/en/latest/) for setup instructions. + + 2. **Create a SkyPilot configuration file** + + Create a SkyPilot YAML file: `sglang-jax.sky.yaml` + + 3. **Launch your TPU cluster** + + ```bash + # Standard deployment + sky launch -c sglang-jax sglang-jax.sky.yaml --infra=gcp + + # With spot instances for cost savings + sky launch -c sglang-jax sglang-jax.sky.yaml --infra=gcp --use-spot + ``` + + + +--- + +# Launch the Serving Engine + + + + ```bash + JAX_COMPILATION_CACHE_DIR=/tmp/jit_cache python3 -u -m sgl_jax.launch_server \ + --model-path Qwen/Qwen-7B-Chat \ + --trust-remote-code \ + --dist-init-addr=0.0.0.0:10011 \ + --nnodes=1 \ + --tp-size=4 \ + --device=tpu \ + --random-seed=3 \ + --node-rank=0 \ + --mem-fraction-static=0.8 \ + --max-prefill-tokens=8192 \ + --download-dir=/tmp \ + --dtype=bfloat16 \ + --skip-server-warmup \ + --host 0.0.0.0 \ + --port 30000 + ``` + + + + + Enables JIT compilation caching to accelerate server startup on subsequent runs. Recommended: `/tmp/jit_cache` + + + Tensor parallelism size; match this to your TPU core count (typically `1`, `4`, or `8`). + + + Specifies TPU device. This is the default for `sglang-jax`. + + + Uses bfloat16 precision, which TPUs are optimized for. + + + Allocates this fraction of TPU HBM for static memory. Adjustable from `0.2` to `0.9`. + + + Maximum number of tokens processed in the prefill phase. + + + + + + For production workloads with optimal throughput: + + ```bash + python3 -u -m sgl_jax.launch_server \ + --model-path Qwen/Qwen3-8B \ + --trust-remote-code \ + --tp-size=4 \ + --device=tpu \ + --mem-fraction-static=0.8 \ + --chunked-prefill-size=2048 \ + --dtype=bfloat16 \ + --max-running-requests=256 \ + --page-size=128 \ + --attention-backend=fa + ``` + + + Speculative decoding can improve throughput by 20-40% for compatible models: + + ```bash + python3 -u -m sgl_jax.launch_server \ + --model-path Qwen/Qwen3-32B \ + --trust-remote-code \ + --device=tpu \ + --tp-size=4 \ + --mem-fraction-static=0.8 \ + --max-prefill-tokens=4096 \ + --attention-backend=fa \ + --dtype=bfloat16 \ + --port=30000 \ + --host=0.0.0.0 \ + --disable-overlap-schedule \ + --speculative-algorithm=EAGLE3 \ + --speculative-draft-model-path=AngelSlim/Qwen3-32B_eagle3 \ + --page-size=64 \ + --speculative-eagle-topk=1 \ + --speculative-num-steps=3 \ + --speculative-num-draft-tokens=4 + ``` + + + Speculative decoding is currently supported for Qwen3 and LLaMA model families. See the [Speculative Decoding documentation](../advanced_features/speculative_decoding) for detailed configuration guidance. + + + + For large models requiring multiple TPU VMs: + + ```bash + # Node 0 (coordinator) + python3 -m sgl_jax.launch_server \ + --model-path MODEL_PATH \ + --dist-init-addr=NODE0_IP:10011 \ + --nnodes=2 \ + --node-rank=0 \ + --tp-size=8 \ + [other parameters...] + + # Node 1 (worker) + python3 -m sgl_jax.launch_server \ + --model-path MODEL_PATH \ + --dist-init-addr=NODE0_IP:10011 \ + --nnodes=2 \ + --node-rank=1 \ + --tp-size=8 \ + [other parameters...] + ``` + + + +--- + +# Benchmarking with Requests + + + + Basic throughput benchmark: + + ```bash + python3 -m sgl_jax.bench_serving \ + --backend sgl-jax \ + --dataset-name random \ + --num-prompts=100 \ + --random-input=512 \ + --random-output=128 \ + --max-concurrency=8 \ + --random-range-ratio=1 \ + --warmup-requests=0 + ``` + + + Measure single-batch latency: + + ```bash + python3 -m sgl_jax.bench_one_batch_server \ + --base-url http://127.0.0.1:30000 \ + --model-path Qwen/Qwen-7B-Chat \ + --batch-size=32 \ + --input-len=256 \ + --output-len=32 + ``` + + + For systematic performance evaluation across different configurations: + + ```bash + #!/bin/bash + set -e + + backend=${1:-sgl-jax} + num_prompts_per_concurrency=3 + input_seq_lens=(1024 4096 8192) + output_seq_lens=(1 1024) + max_concurrencies=(8 16 32 64 128 256) + + for input_seq_len in "${input_seq_lens[@]}"; do + for output_seq_len in "${output_seq_lens[@]}"; do + echo "=======================================" + echo "Testing ISL/OSL: $input_seq_len/$output_seq_len" + echo "=======================================" + for max_concurrency in "${max_concurrencies[@]}"; do + num_prompts=$((num_prompts_per_concurrency * max_concurrency)) + python3 -m sgl_jax.bench_serving \ + --backend ${backend} \ + --dataset-name random \ + --num-prompts ${num_prompts} \ + --random-input ${input_seq_len} \ + --random-output ${output_seq_len} \ + --max-concurrency ${max_concurrency} \ + --random-range-ratio 1 \ + --disable-ignore-eos \ + --warmup-requests 0 + done + done + done + ``` + + For detailed help on all benchmark parameters: + + ```bash + python3 -m sgl_jax.bench_serving --help + ``` + + See the [Benchmark and Profiling Guide](../developer_guide/benchmark_and_profiling) for advanced benchmarking techniques and profiling with JAX Profiler. + + + +--- + +# Performance Optimization + + + + **Reduce memory usage:** + - Lower `--mem-fraction-static` (from `0.8` → `0.5` → `0.3`) + - Decrease `--max-prefill-tokens` (from `16384` → `8192` → `4096`) + - Reduce `--max-running-requests` + + **Handle OOM errors:** + - Start with conservative memory settings (`--mem-fraction-static=0.5`) + - Gradually increase until you find the optimal balance + - Increase `--page-size` for better memory locality (`1` → `16` → `64` → `128`) + + + To maximize tokens per second: + - Use FlashAttention backend: `--attention-backend=fa` + - Enable speculative decoding (EAGLE3) for Qwen3 models (20-40% improvement) + - Increase `--max-running-requests` to `256+` + - Set `--mem-fraction-static` to `0.8+` (if memory allows) + - Use larger page sizes (`64-128`) + - Enable chunked prefill: `--chunked-prefill-size=2048` + + + To minimize time-to-first-token (TTFT) and inter-token latency: + - Reduce `--page-size` to `1-4` + - Lower `--max-running-requests` (`16-32`) for smaller batches + - Reduce `--chunked-prefill-size` + - Use conservative memory settings to avoid GC pauses + + + **JIT Compilation Cache:** + + ```bash + export JAX_COMPILATION_CACHE_DIR=/tmp/jit_cache + ``` + + Always set this environment variable to cache compiled kernels and accelerate server startup. + + **Data Type Optimization:** Use `--dtype=bfloat16` for TPU native optimization. TPUs are specifically designed for bfloat16 computations. + + **Tensor Parallelism:** Match `--tp-size` to your TPU core configuration (`1`, `4`, or `8`) for optimal model distribution. + + **Attention Backend:** Always use `--attention-backend=fa` (FlashAttention) for production workloads. + + + +--- + +# Troubleshooting + + + + If you encounter out-of-memory errors: + + 1. **Reduce mem-fraction-static** + + Lower `--mem-fraction-static` from `0.8` to `0.5` or lower. + + 2. **Decrease max-prefill-tokens** + + Decrease `--max-prefill-tokens` from `8192` to `4096` or `2048`. + + 3. **Lower max-running-requests** + + Lower `--max-running-requests` to reduce concurrent batch size. + + 4. **Increase page-size** + + Increase `--page-size` for better memory layout efficiency. + + + If the server takes too long to start: + + Ensure `JAX_COMPILATION_CACHE_DIR` is properly set + Understand that the first run requires JIT compilation — this is normal + Subsequent runs will be significantly faster with cached compilations + Consider using `--skip-server-warmup` to defer compilation until first request + + + If you're not achieving expected throughput: + + Verify `--tp-size` matches your TPU core configuration + Check that `--attention-backend=fa` is enabled + Increase `--max-running-requests` to enable larger batch formation + Consider enabling speculative decoding for compatible models + Ensure memory settings allow for sufficient batch sizes + + + If clients cannot connect to the server: + + Ensure `--host=0.0.0.0` for external access (not just `127.0.0.1`) + Verify firewall rules allow traffic on the specified port (default: `30000`) + Check that the server process is running: `curl http://localhost:30000/health` + + + +--- + +# Advanced Features + + + + SGLang-JAX supports EAGLE and EAGLE3 speculative decoding algorithms for Qwen3 and LLaMA model families. Speculative decoding can improve throughput by 20-40% without affecting output quality. + + See the [Speculative Decoding documentation](../advanced_features/speculative_decoding) for detailed configuration and supported model combinations. + + + Enable mixed prefill-decode batching for better TPU utilization: + + ```bash + --chunked-prefill-size=2048 --enable-mixed-chunk + ``` + + This allows the scheduler to mix prefill operations with decode operations in the same batch, improving overall throughput. + + + SGLang-JAX supports a plugin-based attention backend system. You can implement custom attention kernels optimized for specific use cases. + + See the [Attention Backend documentation](https://github.com/sgl-project/sglang-jax/tree/main/docs) for implementation details. + + + Verify your TPU setup before deploying: + + ```bash + python -c "from sgl_jax import check_env; check_env.check_env()" + ``` + + This command checks: + - Installed package versions + - TPU device availability and specifications + - System resources and configuration + - Compatibility of settings + + + +--- + +# Contributing + +We welcome contributions to improve TPU support in SGLang-JAX! + + + Check the [Development Roadmap](https://github.com/sgl-project/sglang-jax) to see planned features and find opportunities to contribute new functionality. + + +Current contribution areas include: + +- Performance optimizations for specific TPU generations +- Support for additional model architectures +- Documentation improvements and examples +- Bug reports and fixes +- Benchmark results and performance analysis + + + + Visit the sglang-jax repository + + + Read the Contribution Guide + + + Join the SGL-JAX Slack community for discussions + + + +--- + +## Testing on TPU + +For contributors who need TPU access for testing: + +- Refer to the [TPU Resources Guide](https://cloud.google.com/tpu/docs/managing-tpus-tpu-vm) for information on accessing TPU hardware +- Use SkyPilot with spot instances for cost-effective testing +- Follow the [Benchmark and Profiling Guide](../developer_guide/benchmark_and_profiling) for performance validation + +--- + +# References + + + + Source code and issue tracker for the JAX TPU backend. + + + Step-by-step installation instructions. + + + Get up and running quickly with the Qwen model family. + + + Advanced benchmarking techniques and JAX Profiler usage. + + + EAGLE and EAGLE3 speculative decoding configuration. + + + Official JAX documentation and API reference. + + + Google Cloud TPU product documentation. + + + Simplified cloud deployment with SkyPilot. + + diff --git a/docs_new/docs/hardware-platforms/xpu.mdx b/docs_new/docs/hardware-platforms/xpu.mdx new file mode 100644 index 000000000..97bd3946d --- /dev/null +++ b/docs_new/docs/hardware-platforms/xpu.mdx @@ -0,0 +1,146 @@ +--- +title: XPU +sidebarTitle: Intel GPUs (XPU) +--- + +The document addresses how to set up the [SGLang](https://github.com/sgl-project/sglang) environment and run LLM inference on Intel GPU, [see more context about Intel GPU support within PyTorch ecosystem](https://docs.pytorch.org/docs/stable/notes/get_start_xpu.html). + +Specifically, SGLang is optimized for: +- [Intel® Arc™ Pro B-Series Graphics](https://www.intel.com/content/www/us/en/ark/products/series/242616/intel-arc-pro-b-series-graphics.html) +- [Intel® Arc™ B-Series Graphics](https://www.intel.com/content/www/us/en/ark/products/series/240391/intel-arc-b-series-graphics.html). + +## Optimized Model List + +A list of LLMs have been optimized on Intel GPU, and more are on the way: + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model NameBF16
      Llama-3.2-3B[meta-llama/Llama-3.2-3B-Instruct](https://huggingface.co/meta-llama/Llama-3.2-3B-Instruct)
      Llama-3.1-8B[meta-llama/Llama-3.1-8B-Instruct](https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct)
      Qwen2.5-1.5B[Qwen/Qwen2.5-1.5B](https://huggingface.co/Qwen/Qwen2.5-1.5B)
      + +The model identifiers listed in the table above have been verified on [Intel® Arc™ B580 Graphics](https://www.intel.com/content/www/us/en/products/sku/241598/intel-arc-b580-graphics/specifications.html). + +## Installation + + + + + + Currently SGLang XPU only supports installation from source. Please refer to [“Getting Started on Intel GPU”](https://docs.pytorch.org/docs/stable/notes/get_start_xpu.html) to install XPU dependency. + + 1. **Creation & Activation** + + Create and activate a conda environment. + + ```bash + conda create -n sgl-xpu python=3.12 -y + conda activate sgl-xpu + ``` + + 2. **Install PyTorch and Dependencies** + + Set PyTorch XPU as primary pip install channel to avoid installing the larger CUDA-enabled version and prevent potential runtime issues. + + ```bash + pip3 install torch==2.9.0+xpu torchao torchvision torchaudio pytorch-triton-xpu==3.5.0 --index-url https://download.pytorch.org/whl/xpu + pip3 install xgrammar --no-deps # xgrammar will introduce CUDA-enabled triton which might conflict with XPU + ``` + + 3. **Cloning** + + Clone the SGLang code + + ```bash + git clone https://github.com/sgl-project/sglang.git + cd sglang + git checkout + ``` + + 4. **Configure Build File** + + Use dedicated toml file + + ```bash + cd python + cp pyproject_xpu.toml pyproject.toml + ``` + + 5. **Build and Install** + + Install SGLang dependent libs, and build SGLang main package + + ```bash + pip install --upgrade pip setuptools + pip install -v . + ``` + + + + The docker for XPU is under active development. Please stay tuned. + + +## Launch of the Serving Engine + +Example command to launch SGLang serving: + + +```bash +python -m sglang.launch_server \ + --model \ + --trust-remote-code \ + --disable-overlap-schedule \ + --device xpu \ + --host 0.0.0.0 \ + --tp 2 \ # using multi GPUs + --attention-backend intel_xpu \ # using intel optimized XPU attention backend + --page-size \ # intel_xpu attention backend supports [32, 64, 128] +``` + + +## Benchmarking with Requests + +You can benchmark the performance via the `bench_serving` script. Run the command in another terminal. + + +```bash +python -m sglang.bench_serving \ + --dataset-name random \ + --random-input-len 1024 \ + --random-output-len 1024 \ + --num-prompts 1 \ + --request-rate inf \ + --random-range-ratio 1.0 +``` + + +The detail explanations of the parameters can be looked up by the command: + + +```bash +python -m sglang.bench_serving -h +``` + + +Additionally, the requests can be formed with [OpenAI Completions API](../basic_usage/openai_api_completions) and sent via the command line (e.g. using `curl`) or via your own script. diff --git a/docs_new/docs/references/custom_chat_template.mdx b/docs_new/docs/references/custom_chat_template.mdx new file mode 100644 index 000000000..19cae6004 --- /dev/null +++ b/docs_new/docs/references/custom_chat_template.mdx @@ -0,0 +1,54 @@ +--- +title: "Custom Chat Template" +metatags: + description: "SGLang custom chat templates: JSON and Jinja formats for OpenAI-compatible API server. Override tokenizer defaults." +--- +**NOTE**: There are two chat template systems in SGLang project. This document is about setting a custom chat template for the OpenAI-compatible API server (defined at [conversation.py](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/conversation.py)). It is NOT related to the chat template used in the SGLang language frontend (defined at [chat_template.py](https://github.com/sgl-project/sglang/blob/main/python/sglang/lang/chat_template.py)). + +By default, the server uses the chat template specified in the model tokenizer from Hugging Face. +It should just work for most official models such as Llama-2/Llama-3. + +If needed, you can also override the chat template when launching the server: + +```bash Command +python -m sglang.launch_server \ + --model-path meta-llama/Llama-2-7b-chat-hf \ + --port 30000 \ + --chat-template llama-2 +``` + +If the chat template you are looking for is missing, you are welcome to contribute it or load it from a file. + +## JSON Format + +You can load the JSON format, which is defined by `conversation.py`. + +```json Config +{ + "name": "my_model", + "system": "<|im_start|>system", + "user": "<|im_start|>user", + "assistant": "<|im_start|>assistant", + "sep_style": "CHATML", + "sep": "<|im_end|>", + "stop_str": ["<|im_end|>", "<|im_start|>"] +} +``` + +```bash Command +python -m sglang.launch_server \ + --model-path meta-llama/Llama-2-7b-chat-hf \ + --port 30000 \ + --chat-template ./my_model_template.json +``` + +## Jinja Format + +You can also use the [Jinja template format](https://huggingface.co/docs/transformers/main/en/chat_templating) as defined by Hugging Face Transformers. + +```bash Command +python -m sglang.launch_server \ + --model-path meta-llama/Llama-2-7b-chat-hf \ + --port 30000 \ + --chat-template ./my_model_template.jinja +``` diff --git a/docs_new/docs/references/environment_variables.mdx b/docs_new/docs/references/environment_variables.mdx new file mode 100644 index 000000000..d9693284a --- /dev/null +++ b/docs_new/docs/references/environment_variables.mdx @@ -0,0 +1,652 @@ +--- +title: "Environment Variables" +metatags: + description: "SGLang environment variables: SGLANG_* and SGL_* configs for performance, memory, DeepGEMM, DeepEP, profiling." +--- +SGLang supports various environment variables that can be used to configure its runtime behavior. This document provides a comprehensive list and aims to stay updated over time. + +*Note: SGLang uses two prefixes for environment variables: `SGL_` and `SGLANG_`. This is likely due to historical reasons. While both are currently supported for different settings, future versions might consolidate them.* + +## General Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_USE_MODELSCOPE`Enable using models from ModelScope`false`
      `SGLANG_HOST_IP`Host IP address for the server`0.0.0.0`
      `SGLANG_PORT`Port for the serverauto-detected
      `SGLANG_LOGGING_CONFIG_PATH`Custom logging configuration pathNot set
      `SGLANG_DISABLE_REQUEST_LOGGING`Disable request logging`false`
      `SGLANG_HEALTH_CHECK_TIMEOUT`Timeout for health check in seconds`20`
      `SGLANG_EPLB_HEATMAP_COLLECTION_INTERVAL`The interval of passes to collect the metric of selected count of physical experts on each layer and GPU rank. 0 means disabled.`0`
      `SGLANG_FORWARD_UNKNOWN_TOOLS`Forward unknown tool calls to clients instead of dropping them`false` (drop unknown tools)
      `SGLANG_QUEUED_TIMEOUT_MS`Timeout (in ms) for requests in the waiting queue`-1`
      + +## Performance Tuning + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_ENABLE_TORCH_INFERENCE_MODE`Control whether to use torch.inference_mode`false`
      `SGLANG_ENABLE_TORCH_COMPILE`Enable torch.compile`true`
      `SGLANG_SET_CPU_AFFINITY`Enable CPU affinity setting (often set to `1` in Docker builds)`0`
      `SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN`Allows the scheduler to overwrite longer context length requests (often set to `1` in Docker builds)`0`
      `SGLANG_IS_FLASHINFER_AVAILABLE`Control FlashInfer availability check`true`
      `SGLANG_SKIP_P2P_CHECK`Skip P2P (peer-to-peer) access check`false`
      `SGLANG_CHUNKED_PREFIX_CACHE_THRESHOLD`Sets the threshold for enabling chunked prefix caching`8192`
      `SGLANG_FUSED_MLA_ENABLE_ROPE_FUSION`Enable RoPE fusion in Fused Multi-Layer Attention`1`
      `SGLANG_DISABLE_CONSECUTIVE_PREFILL_OVERLAP`Disable overlap schedule for consecutive prefill batches`false`
      `SGLANG_SCHEDULER_MAX_RECV_PER_POLL`Set the maximum number of requests per poll, with a negative value indicating no limit`-1`
      `SGLANG_DISABLE_FA4_WARMUP`Disable Flash Attention 4 warmup passes (set to `1`, `true`, `yes`, or `on` to disable)`false`
      `SGLANG_DATA_PARALLEL_BUDGET_INTERVAL`Interval for DPBudget updates`1`
      `SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_DEFAULT`Default weight value for scheduler recv skipper counter (used when forward mode doesn't match specific modes). Only active when `--scheduler-recv-interval > 1`. The counter accumulates weights and triggers request polling when reaching the interval threshold.`1000`
      `SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_DECODE`Weight increment for decode forward mode in scheduler recv skipper. Works with `--scheduler-recv-interval` to control polling frequency during decode phase.`1`
      `SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_VERIFY`Weight increment for target verify forward mode in scheduler recv skipper. Works with `--scheduler-recv-interval` to control polling frequency during verification phase.`1`
      `SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_NONE`Weight increment when forward mode is None in scheduler recv skipper. Works with `--scheduler-recv-interval` to control polling frequency when no specific forward mode is active.`1`
      `SGLANG_MM_BUFFER_SIZE_MB`Size of preallocated GPU buffer (in MB) for multi-modal feature hashing optimization. When set to a positive value, temporarily moves features to GPU for faster hash computation, then moves them back to CPU to save GPU memory. Larger features benefit more from GPU hashing. Set to `0` to disable.`0`
      `SGLANG_MM_PRECOMPUTE_HASH`Enable precomputing of hash values for MultimodalDataItem`false`
      `SGLANG_NCCL_ALL_GATHER_IN_OVERLAP_SCHEDULER_SYNC_BATCH`Enable NCCL for gathering when preparing mlp sync batch under overlap scheduler (without this flag gloo is used for gathering)`false`
      `SGLANG_SYMM_MEM_PREALLOC_GB_SIZE`Size of preallocated GPU buffer (in GB) for NCCL symmetric memory pool to limit memory fragmentation. Only have an effect when server arg `--enable-symm-mem` is set.`4`
      + + +## DeepGEMM Configuration (Advanced Optimization) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_ENABLE_JIT_DEEPGEMM`Enable Just-In-Time compilation of DeepGEMM kernels (enabled by default on NVIDIA Hopper (SM90) and Blackwell (SM100) GPUs when the DeepGEMM package is installed; set to `"0"` to disable)`"true"`
      `SGLANG_JIT_DEEPGEMM_PRECOMPILE`Enable precompilation of DeepGEMM kernels`"true"`
      `SGLANG_JIT_DEEPGEMM_COMPILE_WORKERS`Number of workers for parallel DeepGEMM kernel compilation`4`
      `SGLANG_IN_DEEPGEMM_PRECOMPILE_STAGE`Indicator flag used during the DeepGEMM precompile script`"false"`
      `SGLANG_DG_CACHE_DIR`Directory for caching compiled DeepGEMM kernels`~/.cache/deep_gemm`
      `SGL_DG_USE_NVRTC`Use NVRTC (instead of Triton) for JIT compilation (Experimental)`"0"`
      `SGL_USE_DEEPGEMM_BMM`Use DeepGEMM for Batched Matrix Multiplication (BMM) operations`"false"`
      + +## DeepEP Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_DEEPEP_BF16_DISPATCH`Use Bfloat16 for dispatch`"false"`
      `SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK`The maximum number of dispatched tokens on each GPU`"128"`
      `SGLANG_FLASHINFER_NUM_MAX_DISPATCH_TOKENS_PER_RANK`The maximum number of dispatched tokens on each GPU for --moe-a2a-backend=flashinfer`"1024"`
      `SGLANG_DEEPEP_LL_COMBINE_SEND_NUM_SMS`Number of SMs used for DeepEP combine when single batch overlap is enabled`"32"`
      `SGLANG_BLACKWELL_OVERLAP_SHARED_EXPERTS_OUTSIDE_SBO`Run shared experts on an alternate stream when single batch overlap is enabled on GB200. When not setting this flag, shared experts and down gemm will be overlapped with DeepEP combine together.`"false"`
      + +## NSA Backend Configuration (For DeepSeek V3.2) + +{/* # Environment variable to control mtp precomputing of metadata for multi-step speculative decoding */} + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_NSA_FUSE_TOPK`Fuse the operation of picking topk logits and picking topk indices from page table`true`
      `SGLANG_NSA_ENABLE_MTP_PRECOMPUTE_METADATA`Precompute metadata that can be shared among different draft steps when MTP is enabled`true`
      + + +## Memory Management + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_DEBUG_MEMORY_POOL`Enable memory pool debugging`false`
      `SGLANG_CLIP_MAX_NEW_TOKENS_ESTIMATION`Clip max new tokens estimation for memory planning`4096`
      `SGLANG_DETOKENIZER_MAX_STATES`Maximum states for detokenizerDefault value based on system
      `SGLANG_ENABLE_TP_MEMORY_INBALANCE_CHECK`Enable checks for memory imbalance across Tensor Parallel ranks`true`
      + +## Model-Specific Options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_USE_AITER`Use AITER optimize implementation`false`
      `SGLANG_MOE_PADDING`Enable MoE padding (sets padding size to 128 if value is `1`, often set to `1` in Docker builds)`0`
      `SGLANG_CUTLASS_MOE` (deprecated)Use Cutlass FP8 MoE kernel on Blackwell GPUs (deprecated, use --moe-runner-backend=cutlass)`false`
      + +## Quantization + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_INT4_WEIGHT`Enable INT4 weight quantization`false`
      `SGLANG_PER_TOKEN_GROUP_QUANT_8BIT_V2`Apply per token group quantization kernel with fused silu and mul and masked m`false`
      `SGLANG_FORCE_FP8_MARLIN`Force using FP8 MARLIN kernels even if other FP8 kernels are available`false`
      `SGLANG_FLASHINFER_FP4_GEMM_BACKEND` (deprecated)Select backend for `mm_fp4` on Blackwell GPUs. **DEPRECATED**: Please use `--fp4-gemm-backend` instead.``
      `SGLANG_NVFP4_CKPT_FP8_GEMM_IN_ATTN`Quantize q_b_proj from BF16 to FP8 when launching DeepSeek NVFP4 checkpoint`false`
      `SGLANG_MOE_NVFP4_DISPATCH`Use nvfp4 for moe dispatch (on flashinfer_cutlass or flashinfer_cutedsl moe runner backend)`"false"`
      `SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE`Quantize moe of nextn layer from BF16 to FP8 when launching DeepSeek NVFP4 checkpoint`false`
      `SGLANG_ENABLE_FLASHINFER_FP8_GEMM` (deprecated)Use flashinfer kernels when running blockwise fp8 GEMM on Blackwell GPUs. **DEPRECATED**: Please use `--fp8-gemm-backend=flashinfer_trtllm` instead.`false`
      `SGLANG_SUPPORT_CUTLASS_BLOCK_FP8` (deprecated)Use Cutlass kernels when running blockwise fp8 GEMM on Hopper or Blackwell GPUs. **DEPRECATED**: Please use `--fp8-gemm-backend=cutlass` instead.`false`
      + + +## Distributed Computing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_BLOCK_NONZERO_RANK_CHILDREN`Control blocking of non-zero rank children processes`1`
      `SGLANG_IS_FIRST_RANK_ON_NODE`Indicates if the current process is the first rank on its node`"true"`
      `SGLANG_PP_LAYER_PARTITION`Pipeline parallel layer partition specificationNot set
      `SGLANG_ONE_VISIBLE_DEVICE_PER_PROCESS`Set one visible device per process for distributed computing`false`
      + +## Testing & Debugging (Internal/CI) + +*These variables are primarily used for internal testing, continuous integration, or debugging.* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_IS_IN_CI`Indicates if running in CI environment`false`
      `SGLANG_IS_IN_CI_AMD`Indicates running in AMD CI environment`0`
      `SGLANG_TEST_RETRACT`Enable retract decode testing`false`
      `SGLANG_TEST_RETRACT_NO_PREFILL_BS`When SGLANG_TEST_RETRACT is enabled, no prefill is performed if the batch size exceeds SGLANG_TEST_RETRACT_NO_PREFILL_BS.`2 ** 31`
      `SGLANG_RECORD_STEP_TIME`Record step time for profiling`false`
      `SGLANG_TEST_REQUEST_TIME_STATS`Test request time statistics`false`
      + +## Profiling & Benchmarking + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_TORCH_PROFILER_DIR`Directory for PyTorch profiler output`/tmp`
      `SGLANG_PROFILE_WITH_STACK`Set `with_stack` option (bool) for PyTorch profiler (capture stack trace)`true`
      `SGLANG_PROFILE_RECORD_SHAPES`Set `record_shapes` option (bool) for PyTorch profiler (record shapes)`true`
      `SGLANG_OTLP_EXPORTER_SCHEDULE_DELAY_MILLIS`Config BatchSpanProcessor.schedule_delay_millis if tracing is enabled`500`
      `SGLANG_OTLP_EXPORTER_MAX_EXPORT_BATCH_SIZE`Config BatchSpanProcessor.max_export_batch_size if tracing is enabled`64`
      + +## Storage & Caching + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      `SGLANG_WAIT_WEIGHTS_READY_TIMEOUT`Timeout period for waiting on weights`120`
      `SGLANG_DISABLE_OUTLINES_DISK_CACHE`Disable Outlines disk cache`true`
      `SGLANG_USE_CUSTOM_TRITON_KERNEL_CACHE`Use SGLang's custom Triton kernel cache implementation for lower overheads (automatically enabled on CUDA)`false`
      + +## Function Calling / Tool Use + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDescriptionDefault Value
      ` SGLANG_TOOL_STRICT_LEVEL`Controls strictness for tool-call parsing and validation: **Level 0** off (no strict validation); **Level 1** function strict (enables structural tag constraints for all tools, even if none have `strict=True`); **Level 2** parameter strict (enforces strict parameter validation for all tools as if all had `strict=True`).` 0`
      diff --git a/docs_new/docs/references/faq.mdx b/docs_new/docs/references/faq.mdx new file mode 100644 index 000000000..a2cb48695 --- /dev/null +++ b/docs_new/docs/references/faq.mdx @@ -0,0 +1,42 @@ +--- +title: "Troubleshooting and Frequently Asked Questions" +metatags: + description: "SGLang troubleshooting: CUDA OOM, illegal memory access, server hangs, non-deterministic outputs." +--- +## Troubleshooting + +This page lists common errors and tips for resolving them. + +### CUDA Out of Memory +If you encounter out-of-memory (OOM) errors, you can adjust the following parameters: + +- If OOM occurs during prefill, try reducing `--chunked-prefill-size` to `4096` or `2048`. This saves memory but slows down the prefill speed for long prompts. +- If OOM occurs during decoding, try lowering `--max-running-requests`. +- You can also decrease `--mem-fraction-static` to a smaller value, such as 0.8 or 0.7. This decreases the memory usage of the KV cache memory pool and helps prevent OOM errors during both prefill and decoding. However, it limits maximum concurrency and reduces peak throughput. +- Another common case for OOM is requesting input logprobs for a long prompt as it requires significant memory. To address this, set `logprob_start_len` in your sampling parameters to include only the necessary parts. If you do need input logprobs for a long prompt, try reducing `--mem-fraction-static`. + +### CUDA Error: Illegal Memory Access Encountered +This error may result from kernel errors or out-of-memory issues: +- If it is a kernel error, resolving it may be challenging. Please file an issue on GitHub. +- If it is an out-of-memory issue, it may sometimes be reported as this error instead of "Out of Memory." Refer to the section above for guidance on avoiding OOM issues. + +### The server hangs +- If the server hangs during initialization or running, it can be memory issues (out of memory), network issues (nccl errors), or other bugs in sglang. + - If it is out of memory, you might see that `avail mem` is very low during the initialization or right after initialization. In this case, + you can try to decrease `--mem-fraction-static`, decrease `--cuda-graph-max-bs`, or decrease `--chunked-prefill-size`. +- Other bugs, please file an issue on GitHub. + + +## Frequently Asked Questions + +### The results are not deterministic, even with a temperature of 0 + +You may notice that when you send the same request twice, the results from the engine will be slightly different, even when the temperature is set to 0. + +From our initial investigation, this indeterminism arises from two factors: dynamic batching and prefix caching. Roughly speaking, dynamic batching accounts for about 95% of the indeterminism, while prefix caching accounts for the remaining portion. The server runs dynamic batching under the hood. Different batch sizes can cause PyTorch/CuBLAS to dispatch to different CUDA kernels, which can lead to slight numerical differences. This difference accumulates across many layers, resulting in nondeterministic output when the batch size changes. Similarly, when prefix caching is enabled, it can also dispatch to different kernels. Even when the computations are mathematically equivalent, small numerical differences from different kernel implementations lead to the final nondeterministic outputs. + +To achieve more deterministic outputs in the current code, you can add `--disable-radix-cache` and send only one request at a time. The results will be mostly deterministic under this setting. + +**Update**: +Recently, we also introduced a deterministic mode, you can enable it with `--enable-deterministic-inference`. +Please find more details in this blog post: https://lmsys.org/blog/2025-09-22-sglang-deterministic/ diff --git a/docs_new/docs/references/frontend/choices_methods.mdx b/docs_new/docs/references/frontend/choices_methods.mdx new file mode 100644 index 000000000..6bfa8747c --- /dev/null +++ b/docs_new/docs/references/frontend/choices_methods.mdx @@ -0,0 +1,81 @@ +--- +title: "Choices Methods in SGLang" +metatags: + description: "SGLang choices methods: token_length_normalized, greedy_token_selection, unconditional_likelihood_normalized." +--- +This doc describes the choices methods supported by SGLang. + +The optional `choices_method` arg determines how options supplied to SGLang's `choices` primitive are selected. Only the `RuntimeEndpoint` backend supports the `choices_method` arg. Other backends, such as `OpenAI`, have bespoke selection implementations due to API limitations. + +## Methods + +### Token Length Normalized + +Token length normalized is the default SGLang choices method. It selects the option with the highest average logprob across all of its tokens. + +Usage example (alternatively, simply omit the `choices_method` arg): +```python Example +@sgl.function +def example(s): + s += sgl.user("What is the capital of France?") + s += sgl.assistant( + sgl.gen( + "answer", + choices=["London", "Paris", "Berlin"], + choices_method=sgl.token_length_normalized, + ) + ) +``` + + +This can perform poorly if an option contains many tokens, where its later tokens are predicted with high confidence based on its earlier tokens. For instance, even strong models will fail the above example if the specified options are `["Paris", "Antidisestablishmentarianism"]`. + +### Greedy Token Selection + +Greedy token selection simply selects the option with the highest logprob for its initial token. For overlapping options where one option is a subset of a longer option, the logprobs of the shorter option are extended using its average logprob for comparison against the longer option. + +Usage example: +```python Example +@sgl.function +def example(s): + s += sgl.user("What is the capital of France?") + s += sgl.assistant( + sgl.gen( + "answer", + choices=["London", "Paris", "Berlin"], + choices_method=sgl.greedy_token_selection, + ) + ) +``` + +This can perform poorly if an option misleads the model down a bad path based on an attractive initial token. For instance, greedy selection will result in an incorrect response for this example: +```python Example +@sgl.function +def us_president_example(s): + s += sgl.user("Name a US president.") + s += sgl.assistant( + sgl.gen( + "answer", + choices=["Donald Duck", "Millard Fillmore"], + choices_method=sgl.greedy_token_selection, + ) + ) +``` + +### Unconditional Likelihood Normalized + +Unconditional likelihood normalized selects the option with the highest average token logprob once normalized by the unconditional token logprobs, as described in [this EleutherAI blogpost](https://blog.eleuther.ai/multiple-choice-normalization/). This method incurs an additional LLM call to obtain the unconditional likelihoods. + +Usage example: +```python Example +@sgl.function +def example(s): + s += sgl.user("What is the capital of France?") + s += sgl.assistant( + sgl.gen( + "answer", + choices=["London", "Paris", "Berlin"], + choices_method=sgl.unconditional_likelihood_normalized, + ) + ) +``` diff --git a/docs_new/docs/references/frontend/frontend_index.mdx b/docs_new/docs/references/frontend/frontend_index.mdx new file mode 100644 index 000000000..0e5daf0c9 --- /dev/null +++ b/docs_new/docs/references/frontend/frontend_index.mdx @@ -0,0 +1,7 @@ +--- +title: "Frontend Language" +metatags: + description: "SGLang frontend language documentation: tutorials and choices methods reference." +--- +- [Frontend Tutorial](./frontend_tutorial) +- [Choices Methods](./choices_methods) diff --git a/docs_new/docs/references/frontend/frontend_index.rst b/docs_new/docs/references/frontend/frontend_index.rst new file mode 100644 index 000000000..62544cba5 --- /dev/null +++ b/docs_new/docs/references/frontend/frontend_index.rst @@ -0,0 +1,9 @@ +Frontend Language +================= + +.. toctree:: + :maxdepth: 1 + :caption: Frontend Language + + frontend_tutorial.ipynb + choices_methods.md diff --git a/docs_new/docs/references/frontend/frontend_tutorial.ipynb b/docs_new/docs/references/frontend/frontend_tutorial.ipynb new file mode 100644 index 000000000..166f8cacc --- /dev/null +++ b/docs_new/docs/references/frontend/frontend_tutorial.ipynb @@ -0,0 +1,456 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SGLang Frontend Language" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "SGLang frontend language can be used to define simple and easy prompts in a convenient, structured way." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Launch A Server\n", + "\n", + "Launch the server in your terminal and wait for it to initialize." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sglang import assistant_begin, assistant_end\n", + "from sglang import assistant, function, gen, system, user\n", + "from sglang import image\n", + "from sglang import RuntimeEndpoint\n", + "from sglang.lang.api import set_default_backend\n", + "from sglang.srt.utils import load_image\n", + "from sglang.test.doc_patch import launch_server_cmd\n", + "from sglang.utils import print_highlight, terminate_process, wait_for_server\n", + "\n", + "server_process, port = launch_server_cmd(\n", + " \"python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --host 0.0.0.0 --log-level warning\"\n", + ")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")\n", + "print(f\"Server started on http://localhost:{port}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set the default backend. Note: Besides the local server, you may use also `OpenAI` or other API endpoints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "set_default_backend(RuntimeEndpoint(f\"http://localhost:{port}\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Basic Usage\n", + "\n", + "The most simple way of using SGLang frontend language is a simple question answer dialog between a user and an assistant." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@function\n", + "def basic_qa(s, question):\n", + " s += system(f\"You are a helpful assistant than can answer questions.\")\n", + " s += user(question)\n", + " s += assistant(gen(\"answer\", max_tokens=512))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "state = basic_qa(\"List 3 countries and their capitals.\")\n", + "print_highlight(state[\"answer\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multi-turn Dialog\n", + "\n", + "SGLang frontend language can also be used to define multi-turn dialogs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@function\n", + "def multi_turn_qa(s):\n", + " s += system(f\"You are a helpful assistant than can answer questions.\")\n", + " s += user(\"Please give me a list of 3 countries and their capitals.\")\n", + " s += assistant(gen(\"first_answer\", max_tokens=512))\n", + " s += user(\"Please give me another list of 3 countries and their capitals.\")\n", + " s += assistant(gen(\"second_answer\", max_tokens=512))\n", + " return s\n", + "\n", + "\n", + "state = multi_turn_qa()\n", + "print_highlight(state[\"first_answer\"])\n", + "print_highlight(state[\"second_answer\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Control flow\n", + "\n", + "You may use any Python code within the function to define more complex control flows." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@function\n", + "def tool_use(s, question):\n", + " s += assistant(\n", + " \"To answer this question: \"\n", + " + question\n", + " + \". I need to use a \"\n", + " + gen(\"tool\", choices=[\"calculator\", \"search engine\"])\n", + " + \". \"\n", + " )\n", + "\n", + " if s[\"tool\"] == \"calculator\":\n", + " s += assistant(\"The math expression is: \" + gen(\"expression\"))\n", + " elif s[\"tool\"] == \"search engine\":\n", + " s += assistant(\"The key word to search is: \" + gen(\"word\"))\n", + "\n", + "\n", + "state = tool_use(\"What is 2 * 2?\")\n", + "print_highlight(state[\"tool\"])\n", + "print_highlight(state[\"expression\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parallelism\n", + "\n", + "Use `fork` to launch parallel prompts. Because `sgl.gen` is non-blocking, the for loop below issues two generation calls in parallel." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@function\n", + "def tip_suggestion(s):\n", + " s += assistant(\n", + " \"Here are two tips for staying healthy: \"\n", + " \"1. Balanced Diet. 2. Regular Exercise.\\n\\n\"\n", + " )\n", + "\n", + " forks = s.fork(2)\n", + " for i, f in enumerate(forks):\n", + " f += assistant(\n", + " f\"Now, expand tip {i+1} into a paragraph:\\n\"\n", + " + gen(\"detailed_tip\", max_tokens=256, stop=\"\\n\\n\")\n", + " )\n", + "\n", + " s += assistant(\"Tip 1:\" + forks[0][\"detailed_tip\"] + \"\\n\")\n", + " s += assistant(\"Tip 2:\" + forks[1][\"detailed_tip\"] + \"\\n\")\n", + " s += assistant(\n", + " \"To summarize the above two tips, I can say:\\n\" + gen(\"summary\", max_tokens=512)\n", + " )\n", + "\n", + "\n", + "state = tip_suggestion()\n", + "print_highlight(state[\"summary\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Constrained Decoding\n", + "\n", + "Use `regex` to specify a regular expression as a decoding constraint. This is only supported for local models." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@function\n", + "def regular_expression_gen(s):\n", + " s += user(\"What is the IP address of the Google DNS servers?\")\n", + " s += assistant(\n", + " gen(\n", + " \"answer\",\n", + " temperature=0,\n", + " regex=r\"((25[0-5]|2[0-4]\\d|[01]?\\d\\d?).){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\",\n", + " )\n", + " )\n", + "\n", + "\n", + "state = regular_expression_gen()\n", + "print_highlight(state[\"answer\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use `regex` to define a `JSON` decoding schema." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "character_regex = (\n", + " r\"\"\"\\{\\n\"\"\"\n", + " + r\"\"\" \"name\": \"[\\w\\d\\s]{1,16}\",\\n\"\"\"\n", + " + r\"\"\" \"house\": \"(Gryffindor|Slytherin|Ravenclaw|Hufflepuff)\",\\n\"\"\"\n", + " + r\"\"\" \"blood status\": \"(Pure-blood|Half-blood|Muggle-born)\",\\n\"\"\"\n", + " + r\"\"\" \"occupation\": \"(student|teacher|auror|ministry of magic|death eater|order of the phoenix)\",\\n\"\"\"\n", + " + r\"\"\" \"wand\": \\{\\n\"\"\"\n", + " + r\"\"\" \"wood\": \"[\\w\\d\\s]{1,16}\",\\n\"\"\"\n", + " + r\"\"\" \"core\": \"[\\w\\d\\s]{1,16}\",\\n\"\"\"\n", + " + r\"\"\" \"length\": [0-9]{1,2}\\.[0-9]{0,2}\\n\"\"\"\n", + " + r\"\"\" \\},\\n\"\"\"\n", + " + r\"\"\" \"alive\": \"(Alive|Deceased)\",\\n\"\"\"\n", + " + r\"\"\" \"patronus\": \"[\\w\\d\\s]{1,16}\",\\n\"\"\"\n", + " + r\"\"\" \"bogart\": \"[\\w\\d\\s]{1,16}\"\\n\"\"\"\n", + " + r\"\"\"\\}\"\"\"\n", + ")\n", + "\n", + "\n", + "@function\n", + "def character_gen(s, name):\n", + " s += user(\n", + " f\"{name} is a character in Harry Potter. Please fill in the following information about this character.\"\n", + " )\n", + " s += assistant(gen(\"json_output\", max_tokens=256, regex=character_regex))\n", + "\n", + "\n", + "state = character_gen(\"Harry Potter\")\n", + "print_highlight(state[\"json_output\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Batching \n", + "\n", + "Use `run_batch` to run a batch of prompts." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@function\n", + "def text_qa(s, question):\n", + " s += user(question)\n", + " s += assistant(gen(\"answer\", stop=\"\\n\"))\n", + "\n", + "\n", + "states = text_qa.run_batch(\n", + " [\n", + " {\"question\": \"What is the capital of the United Kingdom?\"},\n", + " {\"question\": \"What is the capital of France?\"},\n", + " {\"question\": \"What is the capital of Japan?\"},\n", + " ],\n", + " progress_bar=True,\n", + ")\n", + "\n", + "for i, state in enumerate(states):\n", + " print_highlight(f\"Answer {i+1}: {states[i]['answer']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Streaming \n", + "\n", + "Use `stream` to stream the output to the user." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@function\n", + "def text_qa(s, question):\n", + " s += user(question)\n", + " s += assistant(gen(\"answer\", stop=\"\\n\"))\n", + "\n", + "\n", + "state = text_qa.run(\n", + " question=\"What is the capital of France?\", temperature=0.1, stream=True\n", + ")\n", + "\n", + "for out in state.text_iter():\n", + " print(out, end=\"\", flush=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Complex Prompts\n", + "\n", + "You may use `{system|user|assistant}_{begin|end}` to define complex prompts." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@function\n", + "def chat_example(s):\n", + " s += system(\"You are a helpful assistant.\")\n", + " # Same as: s += s.system(\"You are a helpful assistant.\")\n", + "\n", + " with s.user():\n", + " s += \"Question: What is the capital of France?\"\n", + "\n", + " s += assistant_begin()\n", + " s += \"Answer: \" + gen(\"answer\", max_tokens=100, stop=\"\\n\")\n", + " s += assistant_end()\n", + "\n", + "\n", + "state = chat_example()\n", + "print_highlight(state[\"answer\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multi-modal Generation\n", + "\n", + "You may use SGLang frontend language to define multi-modal prompts.\n", + "See [here](https://docs.sglang.io/supported_models/generative_models.html) for supported models." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "server_process, port = launch_server_cmd(\n", + " \"python -m sglang.launch_server --model-path Qwen/Qwen2.5-VL-7B-Instruct --host 0.0.0.0 --log-level warning\"\n", + ")\n", + "\n", + "wait_for_server(f\"http://localhost:{port}\")\n", + "print(f\"Server started on http://localhost:{port}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "set_default_backend(RuntimeEndpoint(f\"http://localhost:{port}\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ask a question about an image." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@function\n", + "def image_qa(s, image_file, question):\n", + " s += user(image(image_file) + question)\n", + " s += assistant(gen(\"answer\", max_tokens=256))\n", + "\n", + "\n", + "image_url = \"https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true\"\n", + "image_bytes, _ = load_image(image_url)\n", + "state = image_qa(image_bytes, \"What is in the image?\")\n", + "print_highlight(state[\"answer\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "terminate_process(server_process)" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs_new/docs/references/frontend/frontend_tutorial.mdx b/docs_new/docs/references/frontend/frontend_tutorial.mdx new file mode 100644 index 000000000..6814095ac --- /dev/null +++ b/docs_new/docs/references/frontend/frontend_tutorial.mdx @@ -0,0 +1,318 @@ +--- +title: "SGLang Frontend Language" +metatags: + description: "SGLang frontend tutorial: multi-turn dialog, fork parallelism, regex constraints, batching, streaming." +--- +SGLang frontend language can be used to define simple and easy prompts in a convenient, structured way. + + +## Launch A Server + +Launch the server in your terminal and wait for it to initialize. + + + +```python Example +from sglang import assistant_begin, assistant_end +from sglang import assistant, function, gen, system, user +from sglang import image +from sglang import RuntimeEndpoint +from sglang.lang.api import set_default_backend +from sglang.srt.utils import load_image +from sglang.test.doc_patch import launch_server_cmd +from sglang.utils import print_highlight, terminate_process, wait_for_server + +server_process, port = launch_server_cmd( + "python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --host 0.0.0.0 --log-level warning" +) + +wait_for_server(f"http://localhost:{port}") +print(f"Server started on http://localhost:{port}") +``` + +Set the default backend. Note: Besides the local server, you may use also `OpenAI` or other API endpoints. + + + +```python Example +set_default_backend(RuntimeEndpoint(f"http://localhost:{port}")) +``` + +## Basic Usage + +The most simple way of using SGLang frontend language is a simple question answer dialog between a user and an assistant. + + + +```python Example +@function +def basic_qa(s, question): + s += system(f"You are a helpful assistant than can answer questions.") + s += user(question) + s += assistant(gen("answer", max_tokens=512)) +``` + + +```python Example +state = basic_qa("List 3 countries and their capitals.") +print_highlight(state["answer"]) +``` + +## Multi-turn Dialog + +SGLang frontend language can also be used to define multi-turn dialogs. + + + +```python Example +@function +def multi_turn_qa(s): + s += system(f"You are a helpful assistant than can answer questions.") + s += user("Please give me a list of 3 countries and their capitals.") + s += assistant(gen("first_answer", max_tokens=512)) + s += user("Please give me another list of 3 countries and their capitals.") + s += assistant(gen("second_answer", max_tokens=512)) + return s + + +state = multi_turn_qa() +print_highlight(state["first_answer"]) +print_highlight(state["second_answer"]) +``` + +## Control flow + +You may use any Python code within the function to define more complex control flows. + + + +```python Example +@function +def tool_use(s, question): + s += assistant( + "To answer this question: " + + question + + ". I need to use a " + + gen("tool", choices=["calculator", "search engine"]) + + ". " + ) + + if s["tool"] == "calculator": + s += assistant("The math expression is: " + gen("expression")) + elif s["tool"] == "search engine": + s += assistant("The key word to search is: " + gen("word")) + + +state = tool_use("What is 2 * 2?") +print_highlight(state["tool"]) +print_highlight(state["expression"]) +``` + +## Parallelism + +Use `fork` to launch parallel prompts. Because `sgl.gen` is non-blocking, the for loop below issues two generation calls in parallel. + + + +```python Example +@function +def tip_suggestion(s): + s += assistant( + "Here are two tips for staying healthy: " + "1. Balanced Diet. 2. Regular Exercise.\n\n" + ) + + forks = s.fork(2) + for i, f in enumerate(forks): + f += assistant( + f"Now, expand tip {i+1} into a paragraph:\n" + + gen("detailed_tip", max_tokens=256, stop="\n\n") + ) + + s += assistant("Tip 1:" + forks[0]["detailed_tip"] + "\n") + s += assistant("Tip 2:" + forks[1]["detailed_tip"] + "\n") + s += assistant( + "To summarize the above two tips, I can say:\n" + gen("summary", max_tokens=512) + ) + + +state = tip_suggestion() +print_highlight(state["summary"]) +``` + +## Constrained Decoding + +Use `regex` to specify a regular expression as a decoding constraint. This is only supported for local models. + + + +```python Example +@function +def regular_expression_gen(s): + s += user("What is the IP address of the Google DNS servers?") + s += assistant( + gen( + "answer", + temperature=0, + regex=r"((25[0-5]|2[0-4]\d|[01]?\d\d?).){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)", + ) + ) + + +state = regular_expression_gen() +print_highlight(state["answer"]) +``` + +Use `regex` to define a `JSON` decoding schema. + + + +```python Example +character_regex = ( + r"""\{\n""" + + r""" "name": "[\w\d\s]{1,16}",\n""" + + r""" "house": "(Gryffindor|Slytherin|Ravenclaw|Hufflepuff)",\n""" + + r""" "blood status": "(Pure-blood|Half-blood|Muggle-born)",\n""" + + r""" "occupation": "(student|teacher|auror|ministry of magic|death eater|order of the phoenix)",\n""" + + r""" "wand": \{\n""" + + r""" "wood": "[\w\d\s]{1,16}",\n""" + + r""" "core": "[\w\d\s]{1,16}",\n""" + + r""" "length": [0-9]{1,2}\.[0-9]{0,2}\n""" + + r""" \},\n""" + + r""" "alive": "(Alive|Deceased)",\n""" + + r""" "patronus": "[\w\d\s]{1,16}",\n""" + + r""" "bogart": "[\w\d\s]{1,16}"\n""" + + r"""\}""" +) + + +@function +def character_gen(s, name): + s += user( + f"{name} is a character in Harry Potter. Please fill in the following information about this character." + ) + s += assistant(gen("json_output", max_tokens=256, regex=character_regex)) + + +state = character_gen("Harry Potter") +print_highlight(state["json_output"]) +``` + +## Batching + +Use `run_batch` to run a batch of prompts. + + + +```python Example +@function +def text_qa(s, question): + s += user(question) + s += assistant(gen("answer", stop="\n")) + + +states = text_qa.run_batch( + [ + {"question": "What is the capital of the United Kingdom?"}, + {"question": "What is the capital of France?"}, + {"question": "What is the capital of Japan?"}, + ], + progress_bar=True, +) + +for i, state in enumerate(states): + print_highlight(f"Answer {i+1}: {states[i]['answer']}") +``` + +## Streaming + +Use `stream` to stream the output to the user. + + + +```python Example +@function +def text_qa(s, question): + s += user(question) + s += assistant(gen("answer", stop="\n")) + + +state = text_qa.run( + question="What is the capital of France?", temperature=0.1, stream=True +) + +for out in state.text_iter(): + print(out, end="", flush=True) +``` + +## Complex Prompts + +You may use `{system|user|assistant}_{begin|end}` to define complex prompts. + + + +```python Example +@function +def chat_example(s): + s += system("You are a helpful assistant.") + # Same as: s += s.system("You are a helpful assistant.") + + with s.user(): + s += "Question: What is the capital of France?" + + s += assistant_begin() + s += "Answer: " + gen("answer", max_tokens=100, stop="\n") + s += assistant_end() + + +state = chat_example() +print_highlight(state["answer"]) +``` + + +```python Example +terminate_process(server_process) +``` + +## Multi-modal Generation + +You may use SGLang frontend language to define multi-modal prompts. +See [here](../../supported-models/large-language-models) for supported models. + + + +```python Example +server_process, port = launch_server_cmd( + "python -m sglang.launch_server --model-path Qwen/Qwen2.5-VL-7B-Instruct --host 0.0.0.0 --log-level warning" +) + +wait_for_server(f"http://localhost:{port}") +print(f"Server started on http://localhost:{port}") +``` + + +```python Example +set_default_backend(RuntimeEndpoint(f"http://localhost:{port}")) +``` + +Ask a question about an image. + + + +```python Example +@function +def image_qa(s, image_file, question): + s += user(image(image_file) + question) + s += assistant(gen("answer", max_tokens=256)) + + +image_url = "https://github.com/sgl-project/sglang/blob/main/examples/assets/example_image.png?raw=true" +image_bytes, _ = load_image(image_url) +state = image_qa(image_bytes, "What is in the image?") +print_highlight(state["answer"]) +``` + + +```python Example +terminate_process(server_process) +``` diff --git a/docs_new/docs/references/multi_node_deployment/deploy_on_k8s.mdx b/docs_new/docs/references/multi_node_deployment/deploy_on_k8s.mdx new file mode 100644 index 000000000..e2070fd1c --- /dev/null +++ b/docs_new/docs/references/multi_node_deployment/deploy_on_k8s.mdx @@ -0,0 +1,340 @@ +--- +title: "Deploy On Kubernetes" +metatags: + description: "SGLang on Kubernetes with LWS: DeepSeek-R1 multi-node deployment, RoCE RDMA setup, NCCL debugging." +--- +This document is for deploying a RoCE network-based SGLang two-node inference service on a Kubernetes (K8S) cluster. + +[LeaderWorkerSet (LWS)](https://github.com/kubernetes-sigs/lws) is a Kubernetes API that aims to address common deployment patterns of AI/ML inference workloads. A major use case is for multi-host/multi-node distributed inference. + +SGLang can also be deployed with LWS on Kubernetes for distributed model serving. + +Please see this guide for more details on deploying SGLang on Kubernetes using LWS. + +Here we take the deployment of DeepSeek-R1 as an example. + +## Prerequisites + +1. At least two Kubernetes nodes, each with two H20 systems and eight GPUs, are required. + +2. Make sure your K8S cluster has LWS correctly installed. If it hasn't been set up yet, please follow the [installation instructions](https://github.com/kubernetes-sigs/lws/blob/main/site/content/en/docs/installation/_index). **Note:** For LWS versions ≤0.5.x, you must use the Downward API to obtain `LWS_WORKER_INDEX`, as native support for this feature was introduced in v0.6.0. + +## Basic example + +For the basic example documentation, refer to [Deploy Distributed Inference Service with SGLang and LWS on GPUs](https://github.com/kubernetes-sigs/lws/tree/main/docs/examples/sglang). + +However, that document only covers the basic NCCL socket mode. + +In this section, we’ll make some simple modifications to adapt the setup to the RDMA scenario. + +## RDMA RoCE case + +* Check your env: + +```bash Command +[root@node1 ~]# ibstatus +Infiniband device 'mlx5_bond_0' port 1 status: + default gid: fe80:0000:0000:0000:0225:9dff:fe64:c79a + base lid: 0x0 + sm lid: 0x0 + state: 4: ACTIVE + phys state: 5: LinkUp + rate: 200 Gb/sec (2X NDR) + link_layer: Ethernet + +Infiniband device 'mlx5_bond_1' port 1 status: + default gid: fe80:0000:0000:0000:0225:9dff:fe6e:c3ec + base lid: 0x0 + sm lid: 0x0 + state: 4: ACTIVE + phys state: 5: LinkUp + rate: 200 Gb/sec (2X NDR) + link_layer: Ethernet + +Infiniband device 'mlx5_bond_2' port 1 status: + default gid: fe80:0000:0000:0000:0225:9dff:fe73:0dd7 + base lid: 0x0 + sm lid: 0x0 + state: 4: ACTIVE + phys state: 5: LinkUp + rate: 200 Gb/sec (2X NDR) + link_layer: Ethernet + +Infiniband device 'mlx5_bond_3' port 1 status: + default gid: fe80:0000:0000:0000:0225:9dff:fe36:f7ff + base lid: 0x0 + sm lid: 0x0 + state: 4: ACTIVE + phys state: 5: LinkUp + rate: 200 Gb/sec (2X NDR) + link_layer: Ethernet +``` + +* Prepare the `lws.yaml` file for deploying on k8s. + +```yaml Config +apiVersion: leaderworkerset.x-k8s.io/v1 +kind: LeaderWorkerSet +metadata: + name: sglang +spec: + replicas: 1 + leaderWorkerTemplate: + size: 2 + restartPolicy: RecreateGroupOnPodRestart + leaderTemplate: + metadata: + labels: + role: leader + spec: + dnsPolicy: ClusterFirstWithHostNet + hostNetwork: true + hostIPC: true + containers: + - name: sglang-leader + image: sglang:latest + securityContext: + privileged: true + env: + - name: NCCL_IB_GID_INDEX + value: "3" + command: + - python3 + - -m + - sglang.launch_server + - --model-path + - /work/models + - --mem-fraction-static + - "0.93" + - --torch-compile-max-bs + - "8" + - --max-running-requests + - "20" + - --tp + - "16" # Size of Tensor Parallelism + - --dist-init-addr + - $(LWS_LEADER_ADDRESS):20000 + - --nnodes + - $(LWS_GROUP_SIZE) + - --node-rank + - $(LWS_WORKER_INDEX) + - --trust-remote-code + - --host + - "0.0.0.0" + - --port + - "40000" + resources: + limits: + nvidia.com/gpu: "8" + ports: + - containerPort: 40000 + readinessProbe: + tcpSocket: + port: 40000 + initialDelaySeconds: 15 + periodSeconds: 10 + volumeMounts: + - mountPath: /dev/shm + name: dshm + - name: model + mountPath: /work/models + - name: ib + mountPath: /dev/infiniband + volumes: + - name: dshm + emptyDir: + medium: Memory + - name: model + hostPath: + path: '< your models dir >' # modify it according your models dir + - name: ib + hostPath: + path: /dev/infiniband + workerTemplate: + spec: + dnsPolicy: ClusterFirstWithHostNet + hostNetwork: true + hostIPC: true + containers: + - name: sglang-worker + image: sglang:latest + securityContext: + privileged: true + env: + - name: NCCL_IB_GID_INDEX + value: "3" + command: + - python3 + - -m + - sglang.launch_server + - --model-path + - /work/models + - --mem-fraction-static + - "0.93" + - --torch-compile-max-bs + - "8" + - --max-running-requests + - "20" + - --tp + - "16" # Size of Tensor Parallelism + - --dist-init-addr + - $(LWS_LEADER_ADDRESS):20000 + - --nnodes + - $(LWS_GROUP_SIZE) + - --node-rank + - $(LWS_WORKER_INDEX) + - --trust-remote-code + resources: + limits: + nvidia.com/gpu: "8" + volumeMounts: + - mountPath: /dev/shm + name: dshm + - name: model + mountPath: /work/models + - name: ib + mountPath: /dev/infiniband + volumes: + - name: dshm + emptyDir: + medium: Memory + - name: ib + hostPath: + path: /dev/infiniband + - name: model + hostPath: + path: /data1/models/deepseek_v3_moe +*** +apiVersion: v1 +kind: Service +metadata: + name: sglang-leader +spec: + selector: + leaderworkerset.sigs.k8s.io/name: sglang + role: leader + ports: + - protocol: TCP + port: 40000 + targetPort: 40000 + +``` + +* Then use `kubectl apply -f lws.yaml` you will get this output. + +```text Output +NAME READY STATUS RESTARTS AGE +sglang-0 0/1 Running 0 9s +sglang-0-1 1/1 Running 0 9s +``` + +Wait for the sglang leader (`sglang-0`) status to change to 1/1, which indicates it is `Ready`. + +You can use the command `kubectl logs -f sglang-0` to view the logs of the leader node. + +Once successful, you should see output like this: + +```text Output +[2025-02-17 05:27:24 TP1] Capture cuda graph end. Time elapsed: 84.89 s +[2025-02-17 05:27:24 TP6] max_total_num_tokens=712400, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=50, context_len=163840 +[2025-02-17 05:27:24 TP0] max_total_num_tokens=712400, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=50, context_len=163840 +[2025-02-17 05:27:24 TP7] max_total_num_tokens=712400, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=50, context_len=163840 +[2025-02-17 05:27:24 TP3] max_total_num_tokens=712400, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=50, context_len=163840 +[2025-02-17 05:27:24 TP2] max_total_num_tokens=712400, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=50, context_len=163840 +[2025-02-17 05:27:24 TP4] max_total_num_tokens=712400, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=50, context_len=163840 +[2025-02-17 05:27:24 TP1] max_total_num_tokens=712400, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=50, context_len=163840 +[2025-02-17 05:27:24 TP5] max_total_num_tokens=712400, chunked_prefill_size=8192, max_prefill_tokens=16384, max_running_requests=50, context_len=163840 +[2025-02-17 05:27:24] INFO: Started server process [1] +[2025-02-17 05:27:24] INFO: Waiting for application startup. +[2025-02-17 05:27:24] INFO: Application startup complete. +[2025-02-17 05:27:24] INFO: Uvicorn running on http://0.0.0.0:40000 (Press CTRL+C to quit) +[2025-02-17 05:27:25] INFO: 127.0.0.1:48908 - "GET /get_model_info HTTP/1.1" 200 OK +[2025-02-17 05:27:25 TP0] Prefill batch. #new-seq: 1, #new-token: 7, #cached-token: 0, cache hit rate: 0.00%, token usage: 0.00, #running-req: 0, #queue-req: 0 +[2025-02-17 05:27:32] INFO: 127.0.0.1:48924 - "POST /generate HTTP/1.1" 200 OK +[2025-02-17 05:27:32] The server is fired up and ready to roll! +``` + +If it doesn’t start up successfully, please follow these steps to check for any remaining issues. Thanks! + +### Debug + +* Set `NCCL_DEBUG=TRACE` to check if it is a NCCL communication problem. + +This should resolve most NCCL-related issues. + +***Notice: If you find that NCCL_DEBUG=TRACE is not effective in the container environment, but the process is stuck or you encounter hard-to-diagnose issues, try switching to a different container image. Some images may not handle standard error output properly.*** + +#### RoCE scenario + +* Please make sure that RDMA devices are available in the cluster environment. +* Please make sure that the nodes in the cluster have Mellanox NICs with RoCE. In this example, we use Mellanox ConnectX 5 model NICs, and the proper OFED driver has been installed. If not, please refer to the document [Install OFED Driver](https://docs.nvidia.com/networking/display/mlnxofedv461000/installing+mellanox+ofed) to install the driver. +* Check your env: + + ```shell Command + $ lspci -nn | grep Eth | grep Mellanox + 0000:7f:00.0 Ethernet controller [0200]: Mellanox Technologies MT43244 BlueField-3 integrated ConnectX-7 network controller [15b3:a2dc] (rev 01) + 0000:7f:00.1 Ethernet controller [0200]: Mellanox Technologies MT43244 BlueField-3 integrated ConnectX-7 network controller [15b3:a2dc] (rev 01) + 0000:c7:00.0 Ethernet controller [0200]: Mellanox Technologies MT43244 BlueField-3 integrated ConnectX-7 network controller [15b3:a2dc] (rev 01) + 0000:c7:00.1 Ethernet controller [0200]: Mellanox Technologies MT43244 BlueField-3 integrated ConnectX-7 network controller [15b3:a2dc] (rev 01) + 0001:08:00.0 Ethernet controller [0200]: Mellanox Technologies MT43244 BlueField-3 integrated ConnectX-7 network controller [15b3:a2dc] (rev 01) + 0001:08:00.1 Ethernet controller [0200]: Mellanox Technologies MT43244 BlueField-3 integrated ConnectX-7 network controller [15b3:a2dc] (rev 01) + 0001:a2:00.0 Ethernet controller [0200]: Mellanox Technologies MT43244 BlueField-3 integrated ConnectX-7 network controller [15b3:a2dc] (rev 01) + 0001:a2:00.1 Ethernet controller [0200]: Mellanox Technologies MT43244 BlueField-3 integrated ConnectX-7 network controller [15b3:a2dc] (rev 01) + ``` + +* Check the OFED driver: + + ```shell Command + ofed_info -s + OFED-internal-23.07-0.5.0: + ``` + +* Show RDMA link status and check IB devices: + + ```shell Command + $ rdma link show + 8/1: mlx5_bond_0/1: state ACTIVE physical_state LINK_UP netdev reth0 + 9/1: mlx5_bond_1/1: state ACTIVE physical_state LINK_UP netdev reth2 + 10/1: mlx5_bond_2/1: state ACTIVE physical_state LINK_UP netdev reth4 + 11/1: mlx5_bond_3/1: state ACTIVE physical_state LINK_UP netdev reth6 + + $ ibdev2netdev + 8/1: mlx5_bond_0/1: state ACTIVE physical_state LINK_UP netdev reth0 + 9/1: mlx5_bond_1/1: state ACTIVE physical_state LINK_UP netdev reth2 + 10/1: mlx5_bond_2/1: state ACTIVE physical_state LINK_UP netdev reth4 + 11/1: mlx5_bond_3/1: state ACTIVE physical_state LINK_UP netdev reth6 + ``` + +* Test RoCE network speed on the host: + + ```shell Command + yum install qperf + # for server: + execute qperf + # for client + qperf -t 60 -cm1 rc_rdma_write_bw + ``` + +* Check RDMA accessible in your container: + + ```shell Command + # ibv_devices + # ibv_devinfo + ``` + +## Keys to success + +* In the YAML configuration above, pay attention to the NCCL environment variable. For older versions of NCCL, you should check the NCCL_IB_GID_INDEX environment setting. +* NCCL_SOCKET_IFNAME is also crucial, but in a containerized environment, this typically isn’t an issue. +* In some cases, it’s necessary to configure GLOO_SOCKET_IFNAME correctly. +* NCCL_DEBUG is essential for troubleshooting, but I've found that sometimes it doesn't show error logs within containers. This could be related to the Docker image you're using. You may want to try switching images if needed. +* Avoid using Docker images based on Ubuntu 18.04, as they tend to have compatibility issues. + +## Remaining issues + +* In Kubernetes, Docker, or Containerd environments, we use hostNetwork to prevent performance degradation. +* We utilize privileged mode, which isn’t secure. Additionally, in containerized environments, full GPU isolation cannot be achieved. + +## TODO + +* Integrated with [k8s-rdma-shared-dev-plugin](https://github.com/Mellanox/k8s-rdma-shared-dev-plugin). diff --git a/docs_new/docs/references/multi_node_deployment/lws_pd/lws_pd_deploy.mdx b/docs_new/docs/references/multi_node_deployment/lws_pd/lws_pd_deploy.mdx new file mode 100644 index 000000000..53778af8d --- /dev/null +++ b/docs_new/docs/references/multi_node_deployment/lws_pd/lws_pd_deploy.mdx @@ -0,0 +1,786 @@ +--- +title: "LWS Based PD Deploy" +metatags: + description: "SGLang LWS PD deployment: DeepSeek R1 prefill/decode disaggregation on Kubernetes with RDMA." +--- +## 0. Prerequisites + +1. k8s >=1.26 +2. lws installed on k8s. + +## 1. Image Preparation + +`lmsysorg/sglang:deepep` + +## 2. Deployment Manifest Files + +***Notice: We will package all deployment files into Helm Chart format in the near future. Interested community members can contact us to contribute*** + +### Prefill + +Prefill manifest file [prefill.yaml](https://github.com/sgl-project/sglang/blob/main/docs/references/multi_node_deployment/lws_pd/lws-examples/p.yaml) + +*Note: The NodeSelector section, model location section, and taint toleration section can be adjusted according to your actual deployment environment* + +```yaml Config +apiVersion: leaderworkerset.x-k8s.io/v1 +kind: LeaderWorkerSet +metadata: + name: deepseekr10528-prefill-main +spec: + leaderWorkerTemplate: + leaderTemplate: + metadata: + labels: + role: leader + spec: + containers: + - command: + - python3 + - -m + - sglang.launch_server + - --port + - "30000" + - --host + - "0.0.0.0" + - --model-path + - /work/models + - --disaggregation-ib-device + # should modify according your rdma env + - mlx5_bond_0,mlx5_bond_1,mlx5_bond_2,mlx5_bond_3 + - --chunked-prefill-size + - "524288" + - --max-prefill-tokens + - "32768" + - --page-size + - "64" + # - --init-expert-location + # - /home/aiges/tuned/attachment_ep_statistics/prefill_in1024.json + - --ep-dispatch-algorithm + - dynamic + - --eplb-algorithm + - deepseek + # - --deepep-config + # - /home/aiges/tuned/tuned_8sms.json + - --enable-dp-lm-head + - --enable-dp-attention + - --dp-size + - "16" + - --disable-radix-cache + - --moe-a2a-backend + - deepep + - --disaggregation-mode + - prefill + - --mem-fraction-static + - "0.7" + - --context-length + - "32768" + - --tp + - "16" + - --dist-init-addr + - $(LWS_LEADER_ADDRESS):20102 + - --nnodes + - $(LWS_GROUP_SIZE) + - --node-rank + - $(LWS_WORKER_INDEX) + - --trust-remote-code + - --ep-num-redundant-experts + - "32" + - --moe-dense-tp-size + - "1" + - --max-running-requests + - "1024" + env: +# - name: NVSHMEM_HCA_PE_MAPPING +# value: "mlx5_bond_0:1:2,mlx5_bond_1:1:2,mlx5_bond_2:1:2,mlx5_bond_3:1:2" +# - name: NVSHMEM_HCA_LIST +# value: "mlx5_bond_0:1,mlx5_bond_1:1,mlx5_bond_2:1,mlx5_bond_3:1" + - name: NVSHMEM_IB_GID_INDEX + value: "3" + - name: NVSHMEM_ENABLE_NIC_PE_MAPPING + value: "1" + - name: SGLANG_SET_CPU_AFFINITY + value: "true" + - name: SGLANG_ENABLE_JIT_DEEPGEMM + value: "1" + - name: NCCL_IB_QPS_PER_CONNECTION + value: "8" + - name: NCCL_IB_SPLIT_DATA_ON_QPS + value: "1" + - name: NCCL_NET_PLUGIN + value: none + - name: NCCL_IB_TC + value: "136" + - name: NCCL_MIN_NCHANNELS + value: "4" + - name: MC_TE_METRIC + value: "false" + - name: NCCL_IB_SL + value: "5" + - name: NCCL_IB_HCA + value: ^=mlx5_0,mlx5_5,mlx5_6 + - name: LWS_WORKER_INDEX + valueFrom: + fieldRef: + fieldPath: metadata.labels['leaderworkerset.sigs.k8s.io/worker-index'] + image: lmsysorg/sglang:deepep + name: sglang-leader + ports: + - containerPort: 30000 + protocol: TCP + readinessProbe: + periodSeconds: 30 + tcpSocket: + port: 30000 + resources: + limits: + nvidia.com/gpu: "8" + securityContext: + capabilities: + add: + - IPC_LOCK + privileged: true + volumeMounts: + - mountPath: /dev/shm + name: dshm + - mountPath: /work/models + name: model + - mountPath: /dev/infiniband + name: ib + - mountPath: /sgl-workspace/sglang/python/sglang/srt/layers/moe/fused_moe_triton/configs + name: cf + - mountPath: /root/.cache + name: sgl-cache + dnsPolicy: ClusterFirstWithHostNet + hostIPC: true + hostNetwork: true + nodeSelector: + pd: "yes" + tolerations: + - key: pd + operator: Exists + - key: node-role + operator: Exists + volumes: + - emptyDir: + medium: Memory + name: dshm + - hostPath: + # modify according to you deployment env + path: /data1/maas_hosted_models/models/DeepSeek-R1-0528/deepseek_r1_0528 + name: model + - hostPath: + path: /dev/infiniband + name: ib + - hostPath: + # modify according to you deployment env + path: /data1/maas_hosted_models/models/fused_moe_triton/configs + name: cf + - hostPath: + # modify according to you deployment env + path: /data1/sgl_cache + type: DirectoryOrCreate + name: sgl-cache + restartPolicy: RecreateGroupOnPodRestart + size: 2 + workerTemplate: + metadata: {} + spec: + containers: + - command: + - python3 + - -m + - sglang.launch_server + - --model-path + - /work/models + - --disaggregation-ib-device + - mlx5_bond_0,mlx5_bond_1,mlx5_bond_2,mlx5_bond_3 + - --chunked-prefill-size + - "524288" + - --max-prefill-tokens + - "32768" + - --page-size + - "64" + #- --init-expert-location + #- /home/aiges/tuned/attachment_ep_statistics/prefill_in1024.json + - --ep-dispatch-algorithm + - dynamic + - --eplb-algorithm + - deepseek +# - --deepep-config +# - /home/aiges/tuned/tuned_8sms.json + - --enable-dp-lm-head + - --enable-dp-attention + - --dp-size + - "16" + - --disable-radix-cache + - --moe-a2a-backend + - deepep + - --disaggregation-mode + - prefill + - --mem-fraction-static + - "0.7" + - --context-length + - "32768" + - --tp + - "16" + - --dist-init-addr + - $(LWS_LEADER_ADDRESS):20102 + - --nnodes + - $(LWS_GROUP_SIZE) + - --node-rank + - $(LWS_WORKER_INDEX) + - --trust-remote-code + - --ep-num-redundant-experts + - "32" + - --moe-dense-tp-size + - "1" + - --max-running-requests + - "1024" + env: + - name: SGLANG_SET_CPU_AFFINITY + value: "true" + - name: SGLANG_HACK_DEEPEP_NUM_SMS + value: "8" + - name: SGLANG_HACK_DEEPEP_NEW_MODE + value: "0" +# - name: NVSHMEM_HCA_PE_MAPPING +# value: "mlx5_bond_0:1:2,mlx5_bond_1:1:2,mlx5_bond_2:1:2,mlx5_bond_3:1:2" +# - name: NVSHMEM_HCA_LIST +# value: "mlx5_bond_0:1,mlx5_bond_1:1,mlx5_bond_2:1,mlx5_bond_3:1" + - name: NCCL_IB_HCA + value: ^=mlx5_0,mlx5_5,mlx5_6 + - name: NVSHMEM_IB_TRAFFIC_CLASS + value: "16" + - name: NVSHMEM_IB_GID_INDEX + value: "3" + - name: NVSHMEM_ENABLE_NIC_PE_MAPPING + value: "1" + - name: CUDA_LAUNCH_BLOCKING + value: "0" + - name: SGLANG_MOONCAKE_TRANS_THREAD + value: "8" + - name: SGLANG_ENABLE_JIT_DEEPGEMM + value: "1" + - name: SGLANG_CHUNKED_PREFIX_CACHE_THRESHOLD + value: "0" + - name: NCCL_IB_QPS_PER_CONNECTION + value: "8" + - name: NCCL_IB_SPLIT_DATA_ON_QPS + value: "1" + - name: NCCL_NET_PLUGIN + value: none + - name: NCCL_IB_TC + value: "136" + - name: NCCL_MIN_NCHANNELS + value: "4" + - name: MC_TE_METRIC + value: "true" + - name: NCCL_IB_SL + value: "5" + - name: LWS_WORKER_INDEX + valueFrom: + fieldRef: + fieldPath: metadata.labels['leaderworkerset.sigs.k8s.io/worker-index'] + image: lmsysorg/sglang:deepep + name: sglang-worker + ports: + - containerPort: 30001 + protocol: TCP + resources: + limits: + nvidia.com/gpu: "8" + securityContext: + capabilities: + add: + - IPC_LOCK + privileged: true + volumeMounts: + + - mountPath: /root/.cache + name: sgl-cache + - mountPath: /dev/shm + name: dshm + - mountPath: /work/models + name: model + - mountPath: /dev/infiniband + name: ib + - mountPath: /sgl-workspace/sglang/python/sglang/srt/layers/moe/fused_moe_triton/configs + name: cf + dnsPolicy: ClusterFirstWithHostNet + hostIPC: true + hostNetwork: true + nodeSelector: + pd: "yes" + tolerations: + - key: pd + operator: Exists + - key: node-role + operator: Exists + volumes: + - emptyDir: + medium: Memory + name: dshm + - hostPath: + path: /dev/infiniband + name: ib + - hostPath: + path: /data1/maas_hosted_models/models/DeepSeek-R1-0528/deepseek_r1_0528 + name: model + - hostPath: + path: /data1/maas_hosted_models/models/fused_moe_triton/configs + name: cf + - hostPath: + path: /data1/sgl_cache + type: DirectoryOrCreate + name: sgl-cache + +``` + +### Decode + +Decode node deployment manifest file [decode.yaml](https://github.com/sgl-project/sglang/blob/main/docs/references/multi_node_deployment/lws_pd/lws-examples/d.yaml) + +*Note: The NodeSelector section, model location section, and taint toleration section can be adjusted according to your actual deployment environment* + +```yaml Config +apiVersion: leaderworkerset.x-k8s.io/v1 +kind: LeaderWorkerSet +metadata: + name: deepseekr10528-decode-main +spec: + leaderWorkerTemplate: + leaderTemplate: + metadata: + labels: + role: leader + spec: + containers: + - command: + - python3 + - -m + - sglang.launch_server + - --port + - "30000" + - --host + - "0.0.0.0" + - --model-path + - /work/models + - --chunked-prefill-size + - "262144" + - --page-size + - "64" + - --enable-dp-attention + - --enable-dp-lm-head + - --dp-size + - "16" + - --moe-a2a-backend + - deepep + - --disaggregation-mode + - decode + - --mem-fraction-static + - "0.849" + - --context-length + - "32768" + - --disaggregation-ib-device + - "mlx5_bond_0,mlx5_bond_1,mlx5_bond_2,mlx5_bond_3" + - --cuda-graph-max-bs + - "64" + - --max-running-requests + - "2048" + - --tp-size + - "16" # Size of Tensor Parallelism + - --dist-init-addr + - $(LWS_LEADER_ADDRESS):20102 + - --nnodes + - $(LWS_GROUP_SIZE) + - --node-rank + - $(LWS_WORKER_INDEX) + - --trust-remote-code + - --ep-num-redundant-experts + - "32" + - --moe-dense-tp-size + - "1" + env: + - name: CUDA_LAUNCH_BLOCKING + value: "0" + - name: NVSHMEM_IB_GID_INDEX + value: "3" + - name: NVSHMEM_ENABLE_NIC_PE_MAPPING + value: "1" + - name: NCCL_IB_QPS_PER_CONNECTION + value: "8" + - name: NCCL_IB_SPLIT_DATA_ON_QPS + value: "1" + - name: NCCL_NET_PLUGIN + value: "none" + - name: NCCL_IB_TC + value: "136" + - name: NCCL_MIN_NCHANNELS + value: "4" + - name: NCCL_IB_SL + value: "5" + - name: MC_TE_METRIC + value: "true" + - name: SGLANG_MOONCAKE_TRANS_THREAD + value: "16" + - name: SGLANG_ENABLE_JIT_DEEPGEMM + value: "1" + - name: NCCL_IB_HCA + value: ^=mlx5_0,mlx5_5,mlx5_6 + - name: LWS_WORKER_INDEX + valueFrom: + fieldRef: + fieldPath: metadata.labels['leaderworkerset.sigs.k8s.io/worker-index'] + image: lmsysorg/sglang:deepep + name: sglang-leader + ports: + - containerPort: 30000 + protocol: TCP + readinessProbe: + periodSeconds: 30 + tcpSocket: + port: 30000 + resources: + limits: + nvidia.com/gpu: "8" + securityContext: + capabilities: + add: + - IPC_LOCK + privileged: true + volumeMounts: + - mountPath: /root/.cache + name: sgl-cache + - mountPath: /dev/shm + name: dshm + - mountPath: /work/models + name: model + - mountPath: /dev/infiniband + name: ib + - mountPath: /sgl-workspace/sglang/python/sglang/srt/layers/moe/fused_moe_triton/configs + name: cf + dnsPolicy: ClusterFirstWithHostNet + hostIPC: true + hostNetwork: true + nodeSelector: + pd: "yes" + tolerations: + - key: pd + operator: Exists + - key: node-role + operator: Exists + volumes: + - hostPath: + path: /data1/sgl_cache1 + type: DirectoryOrCreate + name: sgl-cache + - emptyDir: + medium: Memory + name: dshm + - hostPath: + path: /data1/maas_hosted_models/models/DeepSeek-R1-0528/deepseek_r1_0528 + name: model + - hostPath: + path: /dev/infiniband + name: ib + - hostPath: + path: /data1/maas_hosted_models/models/fused_moe_triton/configs + name: cf + restartPolicy: RecreateGroupOnPodRestart + size: 2 + workerTemplate: + metadata: {} + spec: + containers: + - command: + - python3 + - -m + - sglang.launch_server + - --model-path + - /work/models + - --chunked-prefill-size + - "262144" + - --page-size + - "64" + - --enable-dp-attention + - --enable-dp-lm-head + #- --enable-two-batch-overlap + - --dp-size + - "16" + - --moe-a2a-backend + - deepep + - --disaggregation-mode + - decode + - --mem-fraction-static + - "0.849" + - --context-length + - "32768" + - --disaggregation-ib-device + # should modify according your rdma env + - "mlx5_bond_0,mlx5_bond_1,mlx5_bond_2,mlx5_bond_3" + - --cuda-graph-max-bs + - "64" + - --max-running-requests + - "2048" + - --tp-size + - "16" # Size of Tensor Parallelism + - --dist-init-addr + - $(LWS_LEADER_ADDRESS):20102 + - --nnodes + - $(LWS_GROUP_SIZE) + - --node-rank + - $(LWS_WORKER_INDEX) + - --trust-remote-code + - --ep-num-redundant-experts + - "32" + - --moe-dense-tp-size + - "1" + env: + - name: SGLANG_HACK_DEEPEP_NUM_SMS + value: "24" + - name: SGLANG_HACK_DEEPEP_NEW_MODE + value: "0" + - name: NVSHMEM_IB_TRAFFIC_CLASS + value: "16" + - name: NVSHMEM_IB_GID_INDEX + value: "3" + - name: NVSHMEM_ENABLE_NIC_PE_MAPPING + value: "1" + - name: NCCL_IB_QPS_PER_CONNECTION + value: "8" + - name: NCCL_IB_SPLIT_DATA_ON_QPS + value: "1" + - name: NCCL_NET_PLUGIN + value: "none" + - name: NCCL_IB_TC + value: "136" + - name: NCCL_MIN_NCHANNELS + value: "4" + - name: MC_TE_METRIC + value: "true" + - name: NCCL_IB_SL + value: "5" + - name: SGLANG_MOONCAKE_TRANS_THREAD + value: "16" + - name: SGLANG_ENABLE_JIT_DEEPGEMM + value: "1" + - name: NCCL_IB_HCA + value: ^=mlx5_0,mlx5_5,mlx5_6 + - name: LWS_WORKER_INDEX + valueFrom: + fieldRef: + fieldPath: metadata.labels['leaderworkerset.sigs.k8s.io/worker-index'] + image: lmsysorg/sglang:deepep + name: sglang-worker + ports: + - containerPort: 30001 + resources: + limits: + nvidia.com/gpu: "8" + securityContext: + capabilities: + add: + - IPC_LOCK + privileged: true + volumeMounts: + - mountPath: /root/.cache + name: sgl-cache + - mountPath: /dev/shm + name: dshm + - mountPath: /work/models + name: model + - mountPath: /dev/infiniband + name: ib + - mountPath: /sgl-workspace/sglang/python/sglang/srt/layers/moe/fused_moe_triton/configs + name: cf + dnsPolicy: ClusterFirstWithHostNet + hostIPC: true + hostNetwork: true + nodeSelector: + pd: "yes" + tolerations: + - key: pd + operator: Exists + - key: node-role + operator: Exists + volumes: + - hostPath: + path: /data1/sgl_cache1 + type: DirectoryOrCreate + name: sgl-cache + - emptyDir: + medium: Memory + name: dshm + - hostPath: + path: /dev/infiniband + name: ib + - hostPath: + # modify according to you deployment env + path: /data1/maas_hosted_models/models/DeepSeek-R1-0528/deepseek_r1_0528 + name: model + - hostPath: + # modify according to you deployment env + path: /data1/maas_hosted_models/models/fused_moe_triton/configs + name: cf + networkConfig: + subdomainPolicy: Shared + replicas: 1 + rolloutStrategy: + rollingUpdateConfiguration: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + startupPolicy: LeaderCreated +``` + +Execute separately: + +```bash Command +kubectl apply -f p.yaml +kubectl apply -f d.yaml +``` + +At this point, we have completed the deployment of the 1P1D SGlang engine part. + +To allow our users to directly experience the model API, we still need a load balancer to handle sequential calls between prefill and decode. Different companies implement LBs differently, and the community will also officially release a new LB component written in Rust in the near future. + +Currently, we use a static K8S service + minilb approach to implement model API calls. + +### Creating Service for Prefill and Decode + +#### Create prefill k8s service +[p-svc.yaml](https://github.com/sgl-project/sglang/blob/main/docs/references/multi_node_deployment/lws_pd/lws-examples/p-svc.yaml) +```yaml Config +apiVersion: v1 +kind: Service +metadata: + name: deepseekr10528-prefill-main +spec: + selector: + leaderworkerset.sigs.k8s.io/name: deepseekr10528-prefill-main + role: leader + ports: + - protocol: TCP + port: 30000 + targetPort: 30000 +``` +Execute `kubectl apply -f p-svc.yaml` + +#### Create decode k8s service +[d-svc.yaml](https://github.com/sgl-project/sglang/blob/main/docs/references/multi_node_deployment/lws_pd/lws-examples/d-svc.yaml) +```yaml Config +apiVersion: v1 +kind: Service +metadata: + name: deepseekr10528-decode-main +spec: + selector: + leaderworkerset.sigs.k8s.io/name: deepseekr10528-decode-main + role: leader + ports: + - protocol: TCP + port: 30000 + targetPort: 30000 +``` +Execute `kubectl apply -f d-svc.yaml` + +#### Deploy minilb and lb service +[lb.yaml](https://github.com/sgl-project/sglang/blob/main/docs/references/multi_node_deployment/lws_pd/lws-examples/lb.yaml) +```yaml Config +apiVersion: apps/v1 +kind: Deployment +metadata: + name: deepseekr10528-lb-main + labels: + app: deepseekr10528-lb +spec: + replicas: 1 + selector: + matchLabels: + app: deepseekr10528-lb + template: + metadata: + labels: + app: deepseekr10528-lb + spec: + nodeSelector: + pd: "yes" + tolerations: + - key: pd + operator: Exists + - key: node-role + operator: Exists + containers: + - name: sgl-minilb + image: lmsysorg/sglang:deepep + command: + - python + - -m + - sglang_router.launch_router + - --pd-disaggregation + - --prefill + - http://deepseekr10528-prefill-main:30000 + - --decode + - http://deepseekr10528-decode-main:30000 + - --host + - 0.0.0.0 + - --port + - "8000" + ports: + - containerPort: 8000 +*** +apiVersion: v1 +kind: Service +metadata: + name: deepseekr10528-lb-service +spec: + type: NodePort + selector: + app: deepseekr10528-lb + ports: + - protocol: TCP + port: 8000 # Service Port(In-Cluster) + targetPort: 8000 # Exposed Container + nodePort: 30800 +``` +Execute `kubectl apply -f lb.yaml` + +After waiting for all model deployments to succeed, you will get the following output: + +```bash Command +[root@ecs-001]# kubectl get po +deepseekr10528-decode-main-0 1/1 Running 0 74m +deepseekr10528-decode-main-0-1 1/1 Running 0 74m +deepseekr10528-lb-main-9c5dbfc57-6lcbd 1/1 Running 0 22m +deepseekr10528-prefill-main-0 1/1 Running 0 74m +deepseekr10528-prefill-main-0-1 1/1 Running 0 74m +[root@ecs-cbm-x1-pd-cpu-001 main_doc]# kubectl get svc |grep dee +deepseekr10528-decode-main ClusterIP None 97m +deepseekr10528-lb-service NodePort 172.16.242.169 8000:30800/TCP 22m +deepseekr10528-prefill-main ClusterIP None 97m +``` + +At this point, select a nodePort:30800 to access: + +```bash Command +[root@ecs-001]# curl -X POST "http://{nodePort}:30800/v1/chat/completions" \ +> -H "Content-Type: application/json" \ +> -H "Authorization: Bearer None" \ +> -d '{ +> "rid":"ccccdd", +> "model": "r1", +> "messages": [ +> {"role": "system", "content": "0: You are a helpful AI assistant"}, +> {"role": "user", "content": "你是谁?."} +> ], +> "max_tokens":221 +> }' +{"id":"ccccdd","object":"chat.completion","created":1750252498,"model":"qwen2","choices":[{"index":0,"message":{"role":"assistant","content":"<think>\n嗯,用户问了一个很基础的自我介绍问题"你是谁?"。这可能是第一次互动时的常规开场白,也可能是想确认我的身份和功能范围。\n\n用户没有提供任何背景信息,语气简洁中性。这种场景下新用户的可能性较高,需要给出清晰友好的自我介绍,同时突出实用价值来降低陌生感。\n\n考虑到中文用户,应该用简体中文回复。重点要说明三点:身份归属(深度求索)、功能定位(AI助手)、服务范围(学习/工作/生活)。结尾用开放性问题引导对话很关键——既能了解需求,又能避免让用户面对空白输入框时不知所措。\n\n用波浪线结尾可以软化语气,那个笑脸表情😊刚好能中和AI的机械感。不过要控制表情符号数量,避免显得轻浮。\n</think>\n你好呀!我是你的AI助手,由深度求索公司(DeepSeek)开发的语言模型,名字叫 **DeepSeek-R1**。你可以把我当成一个知识丰富、随叫随到的小帮手~😊\n\n我的任务就是陪你聊天、解答问题、","reasoning_content":null,"tool_calls":null},"logprobs":null,"finish_reason":"length","matched_stop":null}],"usage":{"prompt_tokens":14,"total_tokens":235,"completion_tokens":221,"prompt_tokens_details":null}} + +``` +## FAQ + +1. The current deployment startup parameters may not be fully compatible with all RDMA scenarios. Different RDMA NCCL-related environment configurations may be needed in different network environments. + +2. Some preset, optimized configurations for EPLB are not used here. You can adjust them according to [6017](https://github.com/sgl-project/sglang/issues/6017) as needed. diff --git a/docs_new/docs/references/multi_node_deployment/multi_node.mdx b/docs_new/docs/references/multi_node_deployment/multi_node.mdx new file mode 100644 index 000000000..645203ea8 --- /dev/null +++ b/docs_new/docs/references/multi_node_deployment/multi_node.mdx @@ -0,0 +1,103 @@ +--- +title: "Multi-Node Deployment" +metatags: + description: "SGLang multi-node: Llama 405B on 2 nodes, DeepSeek V3/R1, SLURM cluster deployment examples." +--- +## Llama 3.1 405B + +**Run 405B (fp16) on Two Nodes** + +```bash Command +# replace 172.16.4.52:20000 with your own node ip address and port of the first node + +python3 -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-405B-Instruct \ + --tp 16 \ + --dist-init-addr 172.16.4.52:20000 \ + --nnodes 2 \ + --node-rank 0 + +python3 -m sglang.launch_server \ + --model-path meta-llama/Meta-Llama-3.1-405B-Instruct \ + --tp 16 \ + --dist-init-addr 172.16.4.52:20000 \ + --nnodes 2 \ + --node-rank 1 +``` + +Note that LLama 405B (fp8) can also be launched on a single node. + +```bash Command +python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-405B-Instruct-FP8 --tp 8 +``` + +## DeepSeek V3/R1 + +Please refer to [DeepSeek documents for reference](../../basic_usage/deepseek_v3#running-examples-on-multi-node). + +## Multi-Node Inference on SLURM + +This example showcases how to serve SGLang server across multiple nodes by SLURM. Submit the following job to the SLURM cluster. + +```bash Command +#!/bin/bash -l + +#SBATCH -o SLURM_Logs/%x_%j_master.out +#SBATCH -e SLURM_Logs/%x_%j_master.err +#SBATCH -D ./ +#SBATCH -J Llama-405B-Online-Inference-TP16-SGL + +#SBATCH --nodes=2 +#SBATCH --ntasks=2 +#SBATCH --ntasks-per-node=1 # Ensure 1 task per node +#SBATCH --cpus-per-task=18 +#SBATCH --mem=224GB +#SBATCH --partition="lmsys.org" +#SBATCH --gres=gpu:8 +#SBATCH --time=12:00:00 + +echo "[INFO] Activating environment on node $SLURM_PROCID" +if ! source ENV_FOLDER/bin/activate; then + echo "[ERROR] Failed to activate environment" >&2 + exit 1 +fi + +# Define parameters +model=MODEL_PATH +tp_size=16 + +echo "[INFO] Running inference" +echo "[INFO] Model: $model" +echo "[INFO] TP Size: $tp_size" + +# Set NCCL initialization address using the hostname of the head node +HEAD_NODE=$(scontrol show hostname "$SLURM_NODELIST" | head -n 1) +NCCL_INIT_ADDR="${HEAD_NODE}:8000" +echo "[INFO] NCCL_INIT_ADDR: $NCCL_INIT_ADDR" + +# Launch the model server on each node using SLURM +srun --ntasks=2 --nodes=2 --output="SLURM_Logs/%x_%j_node$SLURM_NODEID.out" \ + --error="SLURM_Logs/%x_%j_node$SLURM_NODEID.err" \ + python3 -m sglang.launch_server \ + --model-path "$model" \ + --grammar-backend "xgrammar" \ + --tp "$tp_size" \ + --dist-init-addr "$NCCL_INIT_ADDR" \ + --nnodes 2 \ + --node-rank "$SLURM_NODEID" & + +# Wait for the NCCL server to be ready on port 30000 +while ! nc -z "$HEAD_NODE" 30000; do + sleep 1 + echo "[INFO] Waiting for $HEAD_NODE:30000 to accept connections" +done + +echo "[INFO] $HEAD_NODE:30000 is ready to accept connections" + +# Keep the script running until the SLURM job times out +wait +``` + +Then, you can test the server by sending requests following other [documents](../../basic_usage/openai_api_completions). + +Thanks for [aflah02](https://github.com/aflah02) for providing the example, based on his [blog post](https://aflah02.substack.com/p/multi-node-llm-inference-with-sglang). diff --git a/docs_new/docs/references/multi_node_deployment/multi_node_index.mdx b/docs_new/docs/references/multi_node_deployment/multi_node_index.mdx new file mode 100644 index 000000000..eba1a2955 --- /dev/null +++ b/docs_new/docs/references/multi_node_deployment/multi_node_index.mdx @@ -0,0 +1,11 @@ +--- +title: "Multi-Node Deployment" +metatags: + description: "SGLang multi-node deployment index: K8s, LWS, RBG, PD disaggregation guides." +--- +- [Multi Node](./multi_node) +- [Deploy On K8S](./deploy_on_k8s) +- [Lws Pd Deploy](./lws_pd/lws_pd_deploy) +- [Deepseekv32 Pd](./rbg_pd/deepseekv32_pd) +- [Deploying DeepSeek with PD Disaggregation on 96 H100 GPUs](https://lmsys.org/blog/2025-05-05-large-scale-ep/) +- [Deploying Kimi K2 with PD Disaggregation on 128 H200 GPUs](https://lmsys.org/blog/2025-07-20-k2-large-scale-ep/) diff --git a/docs_new/docs/references/multi_node_deployment/multi_node_index.rst b/docs_new/docs/references/multi_node_deployment/multi_node_index.rst new file mode 100644 index 000000000..78636869e --- /dev/null +++ b/docs_new/docs/references/multi_node_deployment/multi_node_index.rst @@ -0,0 +1,14 @@ +Multi-Node Deployment +===================== + +.. toctree:: + :maxdepth: 1 + :caption: Multi-Node Deployment + + multi_node.md + deploy_on_k8s.md + lws_pd/lws_pd_deploy.md + rbg_pd/deepseekv32_pd.md + +- `Deploying DeepSeek with PD Disaggregation and Large-Scale Expert Parallelism on 96 H100 GPUs `_ +- `Deploying Kimi K2 with PD Disaggregation and Large-Scale Expert Parallelism on 128 H200 GPUs `_ diff --git a/docs_new/docs/references/multi_node_deployment/rbg_pd/deepseekv32_pd.mdx b/docs_new/docs/references/multi_node_deployment/rbg_pd/deepseekv32_pd.mdx new file mode 100644 index 000000000..fbc63eb1b --- /dev/null +++ b/docs_new/docs/references/multi_node_deployment/rbg_pd/deepseekv32_pd.mdx @@ -0,0 +1,570 @@ +--- +title: "DeepSeekV32-Exp RBG Based PD Deploy" +metatags: + description: "SGLang DeepSeek V3.2 RBG deployment: RoleBasedGroup PD disaggregation on Kubernetes." +--- +## 0. Prerequisites + +1. k8s >=1.26 +2. lws installed on k8s. +3. rbg installed on k8s. + +For RBG installation, please refer to: https://github.com/sgl-project/rbg + +## 1. Image Preparation + +`lmsysorg/sglang:latest` + + +### 2. All In One manifest file + +*Note: The NodeSelector section, model location section, and taint toleration section can be adjusted according to your actual deployment environment* + +rbg-dsv32.yml + +```yaml Config +apiVersion: workloads.x-k8s.io/v1alpha1 +kind: RoleBasedGroup +metadata: + name: deepseek-rbg-32exp + namespace: default +spec: + roles: + - name: prefill + replicas: 1 + workload: + apiVersion: leaderworkerset.x-k8s.io/v1 + kind: LeaderWorkerSet + restartPolicy: None + leaderWorkerSet: + size: 1 + patchLeaderTemplate: + metadata: + labels: + role: leader + pd_role: prefill + spec: + containers: + - command: + - python3 + - -m + - sglang.launch_server + - --model-path + - /work/models + - --port + - "30000" + - --trust-remote + - --host + - 0.0.0.0 + - --disaggregation-ib-device + - mlx5_0,mlx5_1,mlx5_2,mlx5_3,mlx5_4,mlx5_5,mlx5_6,mlx5_7 + - --disable-radix-cache + - --chunked-prefill-size + - "131072" + - --page-size + - "64" + # - --enable-eplb + - --ep-dispatch-algorithm + - dynamic + - --eplb-algorithm + - deepseek + - --enable-dp-lm-head + - --enable-dp-attention + - --dp-size + - "8" + - --moe-a2a-backend + - deepep + - --deepep-mode + - normal + - --disaggregation-mode + - prefill + - --mem-fraction-static + - "0.8" + - --max-prefill-tokens + - "32768" + - --context-length + - "32768" + - --tp + - "8" + - --dist-init-addr + - $(LWS_LEADER_ADDRESS):20102 + - --nnodes + - $(LWS_GROUP_SIZE) + - --node-rank + - $(LWS_WORKER_INDEX) + - --trust-remote-code + - --ep-num-redundant-experts + - "32" + - --moe-dense-tp-size + - "1" + - --max-running-requests + - "1024" + env: + - name: LWS_WORKER_INDEX + valueFrom: + fieldRef: + fieldPath: metadata.labels['leaderworkerset.sigs.k8s.io/worker-index'] + livenessProbe: + failureThreshold: 3000 + httpGet: + path: /health + port: 30000 + initialDelaySeconds: 300 + periodSeconds: 60 + successThreshold: 1 + timeoutSeconds: 10 + readinessProbe: + failureThreshold: 20 + httpGet: + path: /health + port: 30000 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 10 + name: sglang + ports: + - containerPort: 30000 + name: sglang-http + protocol: TCP + + patchWorkerTemplate: {} + template: + metadata: + labels: + inference-framework: sglang + inference-stack.io/monitoring: "enabled" + spec: + containers: + - name: sglang + image: lmsysorg/sglang:latest + env: + - name: SGLANG_SKIP_SGL_KERNEL_VERSION_CHECK + value: "1" + - name: CUDA_LAUNCH_BLOCKING + value: "0" + - name: SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT + value: "1000000000" + - name: NVSHMEM_IB_TRAFFIC_CLASS + value: "16" + - name: NVSHMEM_DISABLE_P2P + value: "0" + - name: ENABLE_METRICS + value: "true" + - name: NVSHMEM_IB_GID_INDEX + value: "3" + - name: NVSHMEM_IB_SL + value: "5" + - name: SGLANG_SET_CPU_AFFINITY + value: "true" + - name: SGL_ENABLE_JIT_DEEPGEMM + value: "1" + - name: NCCL_IB_QPS_PER_CONNECTION + value: "8" + - name: NCCL_IB_SPLIT_DATA_ON_QPS + value: "1" + - name: NCCL_NET_PLUGIN + value: "none" + - name: NCCL_IB_TC + value: "136" + - name: NCCL_IB_SL + value: "5" + - name: NCCL_IB_TIMEOUT + value: "22" + - name: NCCL_IB_GID_INDEX + value: "3" + - name: NCCL_MIN_NCHANNELS + value: "4" + - name: NCCL_SOCKET_IFNAME + value: bond0 + - name: GLOO_SOCKET_IFNAME + value: bond0 + - name: NCCL_IB_HCA + value: ^=mlx5_0,mlx5_5,mlx5_6 + - name: NVSHMEM_BOOTSTRAP_UID_SOCK_IFNAME + value: "bond0" + - name: MC_TE_METRIC + value: "false" + resources: + limits: + nvidia.com/gpu: "8" + securityContext: + capabilities: + add: + - IPC_LOCK + privileged: true + volumeMounts: + - mountPath: /root/.cache + name: sgl-cache + - mountPath: /dev/shm + name: dshm + - mountPath: /work/models + name: model + - mountPath: /dev/infiniband + name: ib + - mountPath: /sgl-workspace/sglang + name: src + + dnsPolicy: ClusterFirstWithHostNet + hostIPC: true + hostNetwork: true + nodeSelector: + pd: "yes" + tolerations: + - key: pd + operator: Exists + volumes: + - hostPath: + path: /var/run/sys-topology + name: topo + - hostPath: + path: /data1/sgl_cache4 + type: DirectoryOrCreate + name: sgl-cache + - emptyDir: + medium: Memory + name: dshm + - hostPath: + path: /data/DeepSeek-V3.2-Exp + name: model + - hostPath: + path: /dev/infiniband + name: ib + - hostPath: + path: /data/src/sglang + type: DirectoryOrCreate + name: src + + - name: decode + replicas: 1 + workload: + apiVersion: leaderworkerset.x-k8s.io/v1 + kind: LeaderWorkerSet + leaderWorkerSet: + size: 1 + patchLeaderTemplate: + metadata: + labels: + role: leader + pd_role: decode + spec: + containers: + - command: + - python3 + - -m + - sglang.launch_server + - --model-path + - /work/models + - --port + - "30000" + - --trust-remote + - --host + - 0.0.0.0 + - --disaggregation-ib-device + - mlx5_0,mlx5_1,mlx5_2,mlx5_3,mlx5_4,mlx5_5,mlx5_6,mlx5_7 + - --chunked-prefill-size + - "131072" + - --eplb-rebalance-layers-per-chunk + - "29" + - --page-size + - "64" + - --enable-dp-attention + - --enable-dp-lm-head + - --dp-size + - "8" + - --moe-a2a-backend + - deepep + - --deepep-mode + - low_latency + - --disaggregation-mode + - decode + - --mem-fraction-static + - "0.8" + - --context-length + - "32768" + - --max-running-requests + - "2048" + - --tp-size + - "8" # Size of Tensor Parallelism + - --cuda-graph-max-bs + - "16" + - --dist-init-addr + - $(LWS_LEADER_ADDRESS):20102 + - --nnodes + - $(LWS_GROUP_SIZE) + - --node-rank + - $(LWS_WORKER_INDEX) + - --trust-remote-code + - --ep-num-redundant-experts + - "32" + - --moe-dense-tp-size + - "1" + env: + - name: LWS_WORKER_INDEX + valueFrom: + fieldRef: + fieldPath: metadata.labels['leaderworkerset.sigs.k8s.io/worker-index'] + livenessProbe: + failureThreshold: 30000 + httpGet: + path: /health + port: 30000 + initialDelaySeconds: 300 + periodSeconds: 60 + successThreshold: 1 + timeoutSeconds: 10 + name: sglang + readinessProbe: + failureThreshold: 20 + httpGet: + path: /health + port: 30000 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 10 + patchWorkerTemplate: + spec: + containers: + - command: + - python3 + - -m + - sglang.launch_server + - --model-path + - /work/models + - --crash-dump-folder + - /log + - --chunked-prefill-size + - "262144" + - --eplb-rebalance-layers-per-chunk + - "29" + - --page-size + - "64" + - --enable-dp-attention + - --enable-dp-lm-head + - --dp-size + - "32" + - --moe-a2a-backend + - "deepep" + - --deepep-mode + - low_latency + - --disaggregation-mode + - decode + - --mem-fraction-static + - "0.849" + - --context-length + - "32768" + - --disaggregation-ib-device + - mlx5_0,mlx5_1,mlx5_2,mlx5_3,mlx5_4,mlx5_5,mlx5_6,mlx5_7 + - --max-running-requests + - "4096" + - --cuda-graph-max-bs + - "16" + - --tp-size + - "8" # Size of Tensor Parallelism + - --dist-init-addr + - $(LWS_LEADER_ADDRESS):20102 + - --nnodes + - $(LWS_GROUP_SIZE) + - --node-rank + - $(LWS_WORKER_INDEX) + - --trust-remote-code + - --ep-num-redundant-experts + - "32" + - --moe-dense-tp-size + - "1" + env: + - name: LWS_WORKER_INDEX + valueFrom: + fieldRef: + fieldPath: metadata.labels['leaderworkerset.sigs.k8s.io/worker-index'] + name: sglang + template: + metadata: + labels: + inference-framework: sglang-unuse + inference-stack.io/monitoring: "enabled" + spec: + containers: + - image: lmsysorg/sglang:latest + name: sglang + resources: + limits: + nvidia.com/gpu: "8" + securityContext: + capabilities: + add: + - IPC_LOCK + privileged: true + volumeMounts: + - mountPath: /root/.cache + name: sgl-cache + - mountPath: /dev/shm + name: dshm + - mountPath: /work/models + name: model + - mountPath: /dev/infiniband + name: ib + - mountPath: /sgl-workspace/sglang + name: src + env: + - name: SGLANG_SKIP_SGL_KERNEL_VERSION_CHECK + value: "1" + - name: SGLANG_DISAGGREGATION_WAITING_TIMEOUT + value: "100000000" + - name: NVSHMEM_DISABLE_P2P + value: "0" + - name: NVSHMEM_IB_TRAFFIC_CLASS + value: "16" + - name: NVSHMEM_IB_SL + value: "5" + - name: ENABLE_METRICS + value: "true" + - name: CUDA_LAUNCH_BLOCKING + value: "0" + - name: NVSHMEM_IB_GID_INDEX + value: "3" + - name: NCCL_IB_QPS_PER_CONNECTION + value: "8" + - name: NCCL_IB_SPLIT_DATA_ON_QPS + value: "1" + - name: NCCL_NET_PLUGIN + value: "none" + - name: NCCL_IB_TC + value: "136" + - name: NCCL_IB_SL + value: "5" + - name: NCCL_IB_TIMEOUT + value: "22" + - name: NCCL_IB_GID_INDEX + value: "3" + - name: NCCL_MIN_NCHANNELS + value: "4" + - name: NCCL_SOCKET_IFNAME + value: bond0 + - name: GLOO_SOCKET_IFNAME + value: bond0 + - name: NVSHMEM_BOOTSTRAP_UID_SOCK_IFNAME + value: "bond0" + - name: NCCL_IB_HCA + value: ^=mlx5_0,mlx5_5,mlx5_6 + - name: MC_TE_METRIC + value: "false" + - name: SGL_ENABLE_JIT_DEEPGEMM + value: "1" + dnsPolicy: ClusterFirstWithHostNet + hostIPC: true + hostNetwork: true + nodeSelector: + pd: "yes" + tolerations: + - key: pd + operator: Exists + volumes: + - hostPath: + path: /var/run/sys-topology + name: topo + - hostPath: + path: /data1/sgl_cache4 + type: DirectoryOrCreate + name: sgl-cache + - hostPath: + path: /data/src/sglang + type: DirectoryOrCreate + name: src + - emptyDir: + medium: Memory + name: dshm + - hostPath: + path: /data/DeepSeek-V3.2-Exp + name: model + - hostPath: + path: /dev/infiniband + name: ib + - name: router + replicas: 1 + dependencies: [ "decode", "prefill" ] + template: + spec: + containers: + - name: scheduler + image: lmsysorg/sglang:latest + command: + - sh + - -c + - > + python3 -m sglang_router.launch_router + --host 0.0.0.0 + --port 8080 + --pd-disaggregation + --policy random + --service-discovery + --service-discovery-namespace ${NAMESPACE} + --service-discovery-port 30000 + --prefill-selector pd_role=prefill + --decode-selector pd_role=decode + --max-payload-size 2147483648 + --worker-startup-timeout-secs 1200 + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace +*** +apiVersion: v1 +kind: Service +metadata: + labels: + app: deepseek-rbg-32exp + name: deepseek-rbg-32exp + namespace: default +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: 8080 + nodePort: 30080 + + selector: + rolebasedgroup.workloads.x-k8s.io/name: deepseek-rbg-32exp + rolebasedgroup.workloads.x-k8s.io/role: router + type: NodePort + +``` + +```bash Command +[root@ecs-001]# kubectl get po -n default +deepseek-rbg-32exp-decode-main-0 1/1 Running 0 74m +deepseek-rbg-32exp-decode-0-1 1/1 Running 0 74m +deepseek-rbg-32exp-router-9c5dbfc57 1/1 Running 0 22m +deepseek-rbg-32exp-prefill-0 1/1 Running 0 74m + +[root@ecs-cbm-x1-pd-cpu-001 main_doc]# kubectl get svc |grep dee +deepseek-rbg-32exp-decode ClusterIP None 97m +deepseek-rbg-32exp-router-service NodePort 172.16.242.169 8000:30800/TCP 22m +deepseek-rbg-32exp-prefill ClusterIP None 97m +``` + +At this point, select a nodePort:30800 to access: + +```bash Command +[root@ecs-001]# curl -X POST "http://{nodePort}:30800/v1/chat/completions" \ +> -H "Content-Type: application/json" \ +> -H "Authorization: Bearer None" \ +> -d '{ +> "rid":"ccccdd", +> "model": "dsv32", +> "messages": [ +> {"role": "system", "content": "0: You are a helpful AI assistant"}, +> {"role": "user", "content": "你是谁?."} +> ], +> "max_tokens":221 +> }' +{"id":"ccccdd","object":"chat.completion","created":1750252498,"model":"qwen2","choices":[{"index":0,"message":{"role":"assistant","content":"<think>\n嗯,用户问了一个很基础的自我介绍问题"你是谁?"。这可能是第一次互动时的常规开场白,也可能是想确认我的身份和功能范围。\n\n用户没有提供任何背景信息,语气简洁中性。这种场景下新用户的可能性较高,需要给出清晰友好的自我介绍,同时突出实用价值来降低陌生感。\n\n考虑到中文用户,应该用简体中文回复。重点要说明三点:身份归属(深度求索)、功能定位(AI助手)、服务范围(学习/工作/生活)。结尾用开放性问题引导对话很关键——既能了解需求,又能避免让用户面对空白输入框时不知所措。\n\n用波浪线结尾可以软化语气,那个笑脸表情😊刚好能中和AI的机械感。不过要控制表情符号数量,避免显得轻浮。\n</think>\n你好呀!我是你的AI助手,由深度求索公司(DeepSeek)开发的语言模型,名字叫 **DeepSeek-V32**。你可以把我当成一个知识丰富、随叫随到的小帮手~😊\n\n我的任务就是陪你聊天、解答问题、","reasoning_content":null,"tool_calls":null},"logprobs":null,"finish_reason":"length","matched_stop":null}],"usage":{"prompt_tokens":14,"total_tokens":235,"completion_tokens":221,"prompt_tokens_details":null}} + +``` +## FAQ + +1. The current deployment startup parameters may not be fully compatible with all RDMA scenarios. Different RDMA NCCL-related environment configurations may be needed in different network environments. + +2. Please ensure that the sglang code in the image has incorporated the changes from [PR #10912](https://github.com/sgl-project/sglang/pull/10912). diff --git a/docs_new/docs/references/overview.mdx b/docs_new/docs/references/overview.mdx new file mode 100644 index 000000000..60af63453 --- /dev/null +++ b/docs_new/docs/references/overview.mdx @@ -0,0 +1,13 @@ +--- +title: References +description: FAQ, environment variables, production metrics, deployment guides, and more. +--- + +- [FAQ](./faq) +- [Environment Variables](./environment_variables) +- [Production Metrics](./production_metrics) +- [Production Request Trace](./production_request_trace) +- [Multi-Node Deployment](./multi_node_deployment/multi_node) +- [Custom Chat Template](./custom_chat_template) +- [Frontend Language](./frontend/frontend_tutorial) +- [Post-Training Integration](./post_training_integration) diff --git a/docs_new/docs/references/post_training_integration.mdx b/docs_new/docs/references/post_training_integration.mdx new file mode 100644 index 000000000..d4544fd0f --- /dev/null +++ b/docs_new/docs/references/post_training_integration.mdx @@ -0,0 +1,34 @@ +--- +title: "Post-Training Integration" +metatags: + description: "SGLang post-training: RLHF integration with Miles, slime, AReaL, ROLL, verl, Unsloth, LLaMA Factory." +--- +SGLang has become the de facto inference backend for modern LLM training frameworks, powering state-of-the-art models across the industry. From GLM-4.6 to Qwen3, leading models leverage SGLang's high-performance inference during reinforcement learning and post-training workflows. + +What makes SGLang essential for post-training? + +- Open-To-Use Refit Functionality: diverse method for colocate or disaggregate +- Easy To Postpone Generation: enable partial rollout and dedicated rollout control +- Fine-Grained Engine Sleep And Wake Up: facilitate maxium-powered rollout and training +- Training Serving Alignment: ensure the performance consistency in training and serving +- Load Balancing Router: cache-aware load-balancing for high-throughput rollout +- Deterministic Inference: ensure zero kl divergence between rollout and training + +These capabilities, combined with native integration support across major frameworks, have established SGLang as the infrastructure backbone for modern LLM/VLMs post-training. We also share our latest work in this slide, [Optimizing Large-Scale RL with SGLang](https://gamma.app/docs/Optimizing-RL-with-SGLang-y0kqgj877k34779). + +## Adoption + +- [**Miles**](https://github.com/radixark/miles): Enterprise-scale RL framework for large MoE models with SGLang-native rollout, speculative training, and production-grade stability +- [**slime**](https://github.com/THUDM/slime): Post-training framework combining Megatron and SGLang, used to train GLM-4.6 +- [**AReaL**](https://github.com/inclusionAI/AReaL): Fully asynchronous RL system achieving 2.77x speedup with SGLang backend for continuous rollout generation +- [**ROLL**](https://github.com/alibaba/ROLL): ROLL is an efficient and user-friendly RL library designed for Large Language Models utilizing Large Scale GPU resources +- [**verl**](https://github.com/volcengine/verl): Full-stack RLHF framework supporting PPO, GRPO, and ReMax with modular SGLang integration +- [**Unsloth**](https://docs.unsloth.ai/basics/inference-and-deployment/sglang-guide): 2x faster fine-tuning with optimized kernels, deploys seamlessly with SGLang inference +- [**LLaMA Factory**](https://github.com/hiyouga/LLaMA-Factory): Unified framework for training 100+ LLMs with LoRA, QLoRA, and full fine-tuning methods +- [**Tunix**](https://github.com/google/tunix): Google's JAX-native library for LLM post-training with SFT, DPO, PPO, and GRPO support +- [**RL2**](https://github.com/ChenmienTan/RL2): Ray Less Reinforcement Learning, a concise library of post-training for large language models + + +## Collaboration + +Due to the privacy of the design parternes, we cannot list the companies that adopt SGLang for post-training. However, we are happy to share the details with you if you are interested and trust the choice among 10+ top companies and frontier labs across US and China. If you are interested in integrating SGLang with your training framework or need technical support, we're here to help! Reach out to us at **rl_team@lmsys.org** for partnerships, integration guidance, and custom feature development. diff --git a/docs_new/docs/references/production_metrics.mdx b/docs_new/docs/references/production_metrics.mdx new file mode 100644 index 000000000..96ff6c899 --- /dev/null +++ b/docs_new/docs/references/production_metrics.mdx @@ -0,0 +1,234 @@ +--- +title: "Production Metrics" +metatags: + description: "SGLang Prometheus metrics: TTFT, TPOT, throughput, cache hit rate. Grafana dashboard setup guide." +--- +SGLang exposes the following metrics via Prometheus. You can enable it by adding `--enable-metrics` when you launch the server. + +An example of the monitoring dashboard is available in [examples/monitoring/grafana.json](https://github.com/sgl-project/sglang/blob/main/examples/monitoring/grafana/dashboards/json/sglang-dashboard.json). + +Here is an example of the metrics: + +```text Output +$ curl http://localhost:30000/metrics +# HELP sglang:prompt_tokens_total Number of prefill tokens processed. +# TYPE sglang:prompt_tokens_total counter +sglang:prompt_tokens_total{model_name="meta-llama/Llama-3.1-8B-Instruct"} 8.128902e+06 +# HELP sglang:generation_tokens_total Number of generation tokens processed. +# TYPE sglang:generation_tokens_total counter +sglang:generation_tokens_total{model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.557572e+06 +# HELP sglang:token_usage The token usage +# TYPE sglang:token_usage gauge +sglang:token_usage{model_name="meta-llama/Llama-3.1-8B-Instruct"} 0.28 +# HELP sglang:cache_hit_rate The cache hit rate +# TYPE sglang:cache_hit_rate gauge +sglang:cache_hit_rate{model_name="meta-llama/Llama-3.1-8B-Instruct"} 0.007507552643049313 +# HELP sglang:time_to_first_token_seconds Histogram of time to first token in seconds. +# TYPE sglang:time_to_first_token_seconds histogram +sglang:time_to_first_token_seconds_sum{model_name="meta-llama/Llama-3.1-8B-Instruct"} 2.3518979474117756e+06 +sglang:time_to_first_token_seconds_bucket{le="0.001",model_name="meta-llama/Llama-3.1-8B-Instruct"} 0.0 +sglang:time_to_first_token_seconds_bucket{le="0.005",model_name="meta-llama/Llama-3.1-8B-Instruct"} 0.0 +sglang:time_to_first_token_seconds_bucket{le="0.01",model_name="meta-llama/Llama-3.1-8B-Instruct"} 0.0 +sglang:time_to_first_token_seconds_bucket{le="0.02",model_name="meta-llama/Llama-3.1-8B-Instruct"} 0.0 +sglang:time_to_first_token_seconds_bucket{le="0.04",model_name="meta-llama/Llama-3.1-8B-Instruct"} 1.0 +sglang:time_to_first_token_seconds_bucket{le="0.06",model_name="meta-llama/Llama-3.1-8B-Instruct"} 3.0 +sglang:time_to_first_token_seconds_bucket{le="0.08",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:time_to_first_token_seconds_bucket{le="0.1",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:time_to_first_token_seconds_bucket{le="0.25",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:time_to_first_token_seconds_bucket{le="0.5",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:time_to_first_token_seconds_bucket{le="0.75",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:time_to_first_token_seconds_bucket{le="1.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 27.0 +sglang:time_to_first_token_seconds_bucket{le="2.5",model_name="meta-llama/Llama-3.1-8B-Instruct"} 140.0 +sglang:time_to_first_token_seconds_bucket{le="5.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 314.0 +sglang:time_to_first_token_seconds_bucket{le="7.5",model_name="meta-llama/Llama-3.1-8B-Instruct"} 941.0 +sglang:time_to_first_token_seconds_bucket{le="10.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 1330.0 +sglang:time_to_first_token_seconds_bucket{le="15.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 1970.0 +sglang:time_to_first_token_seconds_bucket{le="20.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 2326.0 +sglang:time_to_first_token_seconds_bucket{le="25.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 2417.0 +sglang:time_to_first_token_seconds_bucket{le="30.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 2513.0 +sglang:time_to_first_token_seconds_bucket{le="+Inf",model_name="meta-llama/Llama-3.1-8B-Instruct"} 11008.0 +sglang:time_to_first_token_seconds_count{model_name="meta-llama/Llama-3.1-8B-Instruct"} 11008.0 +# HELP sglang:e2e_request_latency_seconds Histogram of End-to-end request latency in seconds +# TYPE sglang:e2e_request_latency_seconds histogram +sglang:e2e_request_latency_seconds_sum{model_name="meta-llama/Llama-3.1-8B-Instruct"} 3.116093850019932e+06 +sglang:e2e_request_latency_seconds_bucket{le="0.3",model_name="meta-llama/Llama-3.1-8B-Instruct"} 0.0 +sglang:e2e_request_latency_seconds_bucket{le="0.5",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:e2e_request_latency_seconds_bucket{le="0.8",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:e2e_request_latency_seconds_bucket{le="1.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:e2e_request_latency_seconds_bucket{le="1.5",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:e2e_request_latency_seconds_bucket{le="2.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:e2e_request_latency_seconds_bucket{le="2.5",model_name="meta-llama/Llama-3.1-8B-Instruct"} 6.0 +sglang:e2e_request_latency_seconds_bucket{le="5.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.0 +sglang:e2e_request_latency_seconds_bucket{le="10.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 10.0 +sglang:e2e_request_latency_seconds_bucket{le="15.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 11.0 +sglang:e2e_request_latency_seconds_bucket{le="20.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 14.0 +sglang:e2e_request_latency_seconds_bucket{le="30.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 247.0 +sglang:e2e_request_latency_seconds_bucket{le="40.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 486.0 +sglang:e2e_request_latency_seconds_bucket{le="50.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 845.0 +sglang:e2e_request_latency_seconds_bucket{le="60.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 1513.0 +sglang:e2e_request_latency_seconds_bucket{le="+Inf",model_name="meta-llama/Llama-3.1-8B-Instruct"} 11228.0 +sglang:e2e_request_latency_seconds_count{model_name="meta-llama/Llama-3.1-8B-Instruct"} 11228.0 +# HELP sglang:time_per_output_token_seconds Histogram of time per output token in seconds. +# TYPE sglang:time_per_output_token_seconds histogram +sglang:time_per_output_token_seconds_sum{model_name="meta-llama/Llama-3.1-8B-Instruct"} 866964.5791549598 +sglang:time_per_output_token_seconds_bucket{le="0.005",model_name="meta-llama/Llama-3.1-8B-Instruct"} 1.0 +sglang:time_per_output_token_seconds_bucket{le="0.01",model_name="meta-llama/Llama-3.1-8B-Instruct"} 73.0 +sglang:time_per_output_token_seconds_bucket{le="0.015",model_name="meta-llama/Llama-3.1-8B-Instruct"} 382.0 +sglang:time_per_output_token_seconds_bucket{le="0.02",model_name="meta-llama/Llama-3.1-8B-Instruct"} 593.0 +sglang:time_per_output_token_seconds_bucket{le="0.025",model_name="meta-llama/Llama-3.1-8B-Instruct"} 855.0 +sglang:time_per_output_token_seconds_bucket{le="0.03",model_name="meta-llama/Llama-3.1-8B-Instruct"} 1035.0 +sglang:time_per_output_token_seconds_bucket{le="0.04",model_name="meta-llama/Llama-3.1-8B-Instruct"} 1815.0 +sglang:time_per_output_token_seconds_bucket{le="0.05",model_name="meta-llama/Llama-3.1-8B-Instruct"} 11685.0 +sglang:time_per_output_token_seconds_bucket{le="0.075",model_name="meta-llama/Llama-3.1-8B-Instruct"} 433413.0 +sglang:time_per_output_token_seconds_bucket{le="0.1",model_name="meta-llama/Llama-3.1-8B-Instruct"} 4.950195e+06 +sglang:time_per_output_token_seconds_bucket{le="0.15",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.039435e+06 +sglang:time_per_output_token_seconds_bucket{le="0.2",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.171662e+06 +sglang:time_per_output_token_seconds_bucket{le="0.3",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.266055e+06 +sglang:time_per_output_token_seconds_bucket{le="0.4",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.296752e+06 +sglang:time_per_output_token_seconds_bucket{le="0.5",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.312226e+06 +sglang:time_per_output_token_seconds_bucket{le="0.75",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.339675e+06 +sglang:time_per_output_token_seconds_bucket{le="1.0",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.357747e+06 +sglang:time_per_output_token_seconds_bucket{le="2.5",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.389414e+06 +sglang:time_per_output_token_seconds_bucket{le="+Inf",model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.400757e+06 +sglang:time_per_output_token_seconds_count{model_name="meta-llama/Llama-3.1-8B-Instruct"} 7.400757e+06 +# HELP sglang:func_latency_seconds Function latency in seconds +# TYPE sglang:func_latency_seconds histogram +sglang:func_latency_seconds_sum{name="generate_request"} 4.514771912145079 +sglang:func_latency_seconds_bucket{le="0.05",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="0.07500000000000001",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="0.1125",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="0.16875",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="0.253125",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="0.3796875",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="0.56953125",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="0.8542968750000001",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="1.2814453125",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="1.9221679687500002",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="2.8832519531250003",name="generate_request"} 14006.0 +sglang:func_latency_seconds_bucket{le="4.3248779296875",name="generate_request"} 14007.0 +sglang:func_latency_seconds_bucket{le="6.487316894531251",name="generate_request"} 14007.0 +sglang:func_latency_seconds_bucket{le="9.730975341796876",name="generate_request"} 14007.0 +sglang:func_latency_seconds_bucket{le="14.596463012695313",name="generate_request"} 14007.0 +sglang:func_latency_seconds_bucket{le="21.89469451904297",name="generate_request"} 14007.0 +sglang:func_latency_seconds_bucket{le="32.84204177856446",name="generate_request"} 14007.0 +sglang:func_latency_seconds_bucket{le="49.26306266784668",name="generate_request"} 14007.0 +sglang:func_latency_seconds_bucket{le="+Inf",name="generate_request"} 14007.0 +sglang:func_latency_seconds_count{name="generate_request"} 14007.0 +# HELP sglang:num_running_reqs The number of running requests +# TYPE sglang:num_running_reqs gauge +sglang:num_running_reqs{model_name="meta-llama/Llama-3.1-8B-Instruct"} 162.0 +# HELP sglang:num_used_tokens The number of used tokens +# TYPE sglang:num_used_tokens gauge +sglang:num_used_tokens{model_name="meta-llama/Llama-3.1-8B-Instruct"} 123859.0 +# HELP sglang:gen_throughput The generate throughput (token/s) +# TYPE sglang:gen_throughput gauge +sglang:gen_throughput{model_name="meta-llama/Llama-3.1-8B-Instruct"} 86.50814177726902 +# HELP sglang:num_queue_reqs The number of requests in the waiting queue +# TYPE sglang:num_queue_reqs gauge +sglang:num_queue_reqs{model_name="meta-llama/Llama-3.1-8B-Instruct"} 2826.0 +``` + +## Setup Guide + +This section describes how to set up the monitoring stack (Prometheus + Grafana) provided in the `examples/monitoring` directory. + +### Prerequisites + +- Docker and Docker Compose installed +- SGLang server running with metrics enabled + +### Usage + +1. **Start your SGLang server with metrics enabled:** + + ```bash Command + python -m sglang.launch_server \ + --model-path \ + --port 30000 \ + --enable-metrics + ``` + Replace `` with the actual path to your model (e.g., `meta-llama/Meta-Llama-3.1-8B-Instruct`). Ensure the server is accessible from the monitoring stack (you might need `--host 0.0.0.0` if running in Docker). By default, the metrics endpoint will be available at `http://:30000/metrics`. + +2. **Navigate to the monitoring example directory:** + ```bash Command + cd examples/monitoring + ``` + +3. **Start the monitoring stack:** + ```bash Command + docker compose up -d + ``` + This command will start Prometheus and Grafana in the background. + +4. **Access the monitoring interfaces:** + * **Grafana:** Open your web browser and go to [http://localhost:3000](http://localhost:3000). + * **Prometheus:** Open your web browser and go to [http://localhost:9090](http://localhost:9090). + +5. **Log in to Grafana:** + * Default Username: `admin` + * Default Password: `admin` + You will be prompted to change the password upon your first login. + +6. **View the Dashboard:** + The SGLang dashboard is pre-configured and should be available automatically. Navigate to `Dashboards` -> `Browse` -> `SGLang Monitoring` folder -> `SGLang Dashboard`. + +### Troubleshooting + +* **Port Conflicts:** If you encounter errors like "port is already allocated," check if other services (including previous instances of Prometheus/Grafana) are using ports `9090` or `3000`. Use `docker ps` to find running containers and `docker stop ` to stop them, or use `lsof -i :` to find other processes using the ports. You might need to adjust the ports in the `docker-compose.yaml` file if they permanently conflict with other essential services on your system. + +To modify Grafana's port to the other one(like 3090) in your Docker Compose file, you need to explicitly specify the port mapping under the grafana service. + + Option 1: Add GF_SERVER_HTTP_PORT to the environment section: + ```text Output + environment: + - GF_AUTH_ANONYMOUS_ENABLED=true + - GF_SERVER_HTTP_PORT=3090 # <-- Add this line + ``` + Option 2: Use port mapping: + ```text Output + grafana: + image: grafana/grafana:latest + container_name: grafana + ports: + - "3090:3000" # <-- Host:Container port mapping + ``` +* **Connection Issues:** + * Ensure both Prometheus and Grafana containers are running (`docker ps`). + * Verify the Prometheus data source configuration in Grafana (usually auto-configured via `grafana/datasources/datasource.yaml`). Go to `Connections` -> `Data sources` -> `Prometheus`. The URL should point to the Prometheus service (e.g., `http://prometheus:9090`). + * Confirm that your SGLang server is running and the metrics endpoint (`http://:30000/metrics`) is accessible *from the Prometheus container*. If SGLang is running on your host machine and Prometheus is in Docker, use `host.docker.internal` (on Docker Desktop) or your machine's network IP instead of `localhost` in the `prometheus.yaml` scrape configuration. +* **No Data on Dashboard:** + * Generate some traffic to your SGLang server to produce metrics. For example, run a benchmark: + ```bash Command + python3 -m sglang.bench_serving --backend sglang --dataset-name random --num-prompts 100 --random-input 128 --random-output 128 + ``` + * Check the Prometheus UI (`http://localhost:9090`) under `Status` -> `Targets` to see if the SGLang endpoint is being scraped successfully. + * Verify the `model_name` and `instance` labels in your Prometheus metrics match the variables used in the Grafana dashboard. You might need to adjust the Grafana dashboard variables or the labels in your Prometheus configuration. + +### Configuration Files + +The monitoring setup is defined by the following files within the `examples/monitoring` directory: + +* `docker-compose.yaml`: Defines the Prometheus and Grafana services. +* `prometheus.yaml`: Prometheus configuration, including scrape targets. +* `grafana/datasources/datasource.yaml`: Configures the Prometheus data source for Grafana. +* `grafana/dashboards/config/dashboard.yaml`: Tells Grafana to load dashboards from the specified path. +* `grafana/dashboards/json/sglang-dashboard.json`: The actual Grafana dashboard definition in JSON format. + +You can customize the setup by modifying these files. For instance, you might need to update the `static_configs` target in `prometheus.yaml` if your SGLang server runs on a different host or port. + +#### Check if the metrics are being collected + +Run: +```text Output +python3 -m sglang.bench_serving \ + --backend sglang \ + --dataset-name random \ + --num-prompts 3000 \ + --random-input 1024 \ + --random-output 1024 \ + --random-range-ratio 0.5 +``` + +to generate some requests. + +Then you should be able to see the metrics in the Grafana dashboard. diff --git a/docs_new/docs/references/production_request_trace.mdx b/docs_new/docs/references/production_request_trace.mdx new file mode 100644 index 000000000..53f000ac1 --- /dev/null +++ b/docs_new/docs/references/production_request_trace.mdx @@ -0,0 +1,164 @@ +--- +title: "Production Request Tracing" +metatags: + description: "SGLang OpenTelemetry tracing: Jaeger visualization, trace context propagation, PD disaggregation support." +--- +SGlang exports request trace data based on the OpenTelemetry Collector. You can enable tracing by adding the `--enable-trace` and configure the OpenTelemetry Collector endpoint using `--otlp-traces-endpoint` when launching the server. + +You can find example screenshots of the visualization in https://github.com/sgl-project/sglang/issues/8965. + +## Setup Guide +This section explains how to configure the request tracing and export the trace data. +1. Install the required packages and tools + * install Docker and Docker Compose + * install the dependencies + ```bash Command + # enter the SGLang root directory + pip install -e "python[tracing]" + + # or manually install the dependencies using pip + pip install opentelemetry-sdk opentelemetry-api opentelemetry-exporter-otlp opentelemetry-exporter-otlp-proto-grpc + ``` + +2. launch opentelemetry collector and jaeger + ```bash Command + docker compose -f examples/monitoring/tracing_compose.yaml up -d + ``` + +3. start your SGLang server with tracing enabled + ```bash Command + # set env variables + export SGLANG_OTLP_EXPORTER_SCHEDULE_DELAY_MILLIS=500 + export SGLANG_OTLP_EXPORTER_MAX_EXPORT_BATCH_SIZE=64 + # start the prefill and decode server + python -m sglang.launch_server --enable-trace --otlp-traces-endpoint 0.0.0.0:4317 + # start the mini lb + python -m sglang_router.launch_router --enable-trace --otlp-traces-endpoint 0.0.0.0:4317 + ``` + + Replace `0.0.0.0:4317` with the actual endpoint of the opentelemetry collector. If you launched the openTelemetry collector with tracing_compose.yaml, the default receiving port is 4317. + + To use the HTTP/protobuf span exporter, set the following environment variable and point to an HTTP endpoint, for example, `http://0.0.0.0:4318/v1/traces`. + ```bash Command + export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf + ``` + + +4. raise some requests +5. Observe whether trace data is being exported + * Access port 16686 of Jaeger using a web browser to visualize the request traces. + * The OpenTelemetry Collector also exports trace data in JSON format to /tmp/otel_trace.json. In a follow-up patch, we will provide a tool to convert this data into a Perfetto-compatible format, enabling visualization of requests in the Perfetto UI. + +## How to add Tracing for slices you're interested in? +We have already inserted instrumentation points in the tokenizer and scheduler main threads. If you wish to trace additional request execution segments or perform finer-grained tracing, please use the APIs from the tracing package as described below. + +1. initialization + + Every process involved in tracing during the initialization phase should execute: + ```python Example + process_tracing_init(otlp_traces_endpoint, server_name) + ``` + The otlp_traces_endpoint is obtained from the arguments, and you can set server_name freely, but it should remain consistent across all processes. + + Every thread involved in tracing during the initialization phase should execute: + ```python Example + trace_set_thread_info("thread label", tp_rank, dp_rank) + ``` + The "thread label" can be regarded as the name of the thread, used to distinguish different threads in the visualization view. + +2. Mark the beginning and end of a request + ```text Output + trace_req_start(rid, bootstrap_room) + trace_req_finish(rid) + ``` + These two APIs must be called within the same process, for example, in the tokenizer. + +3. Add tracing for slice + + * Add slice tracing normally: + ```python Example + trace_slice_start("slice A", rid) + trace_slice_end("slice A", rid) + ``` + + - Use the "anonymous" flag to not specify a slice name at the start of the slice, allowing the slice name to be determined by trace_slice_end. + +Note: Anonymous slices must not be nested. + ```python Example + trace_slice_start("", rid, anonymous = True) + trace_slice_end("slice A", rid) + ``` + + - In trace_slice_end, use auto_next_anon to automatically create the next anonymous slice, which can reduce the number of instrumentation points needed. + ```python Example + trace_slice_start("", rid, anonymous = True) + trace_slice_end("slice A", rid, auto_next_anon = True) + trace_slice_end("slice B", rid, auto_next_anon = True) + trace_slice_end("slice C", rid, auto_next_anon = True) + trace_slice_end("slice D", rid) + ``` + - The end of the last slice in a thread must be marked with thread_finish_flag=True; otherwise, the thread's span will not be properly generated. + ```python Example + trace_slice_end("slice D", rid, thread_finish_flag = True) + ``` + +4. When the request execution flow transfers to another thread, the trace context needs to be explicitly propagated. + - sender: Execute the following code before sending the request to another thread via ZMQ + ```python Example + trace_context = trace_get_proc_propagate_context(rid) + req.trace_context = trace_context + ``` + - receiver: Execute the following code after receiving the request via ZMQ + ```python Example + trace_set_proc_propagate_context(rid, req.trace_context) + ``` + +5. When the request execution flow transfers to another node(PD disaggregation), the trace context needs to be explicitly propagated. + - sender: Execute the following code before sending the request to node thread via http + ```python Example + trace_context = trace_get_remote_propagate_context(bootstrap_room_list) + headers = {"trace_context": trace_context} + session.post(url, headers=headers) + ``` + - receiver: Execute the following code after receiving the request via http + ```python Example + trace_set_remote_propagate_context(request.headers['trace_context']) + ``` + +## How to Extend the Tracing Framework to Support Complex Tracing Scenarios + +The currently provided tracing package still has potential for further development. If you wish to build more advanced features upon it, you must first understand its existing design principles. + +The core of the tracing framework's implementation lies in the design of the span structure and the trace context. To aggregate scattered slices and enable concurrent tracking of multiple requests, we have designed a two-level trace context structure and a four-level span structure: `SglangTraceReqContext`, `SglangTraceThreadContext`. Their relationship is as follows: +```text Output +SglangTraceReqContext (req_id="req-123") ++-- SglangTraceThreadContext(thread_label="scheduler", tp_rank=0) +| ++-- SglangTraceThreadContext(thread_label="scheduler", tp_rank=1) +``` + +Each traced request maintains a global `SglangTraceReqContext`. For every thread processing the request, a corresponding `SglangTraceThreadContext` is recorded and composed within the `SglangTraceReqContext`. Within each thread, every currently traced slice (possibly nested) is stored in a list. + +In addition to the above hierarchy, each slice also records its previous slice via Span.add_link(), which can be used to trace the execution flow. + +When the request execution flow transfers to a new thread, the trace context needs to be explicitly propagated. In the framework, this is represented by `SglangTracePropagateContext`, which contains the context of the request span and the previous slice span. + + +We designed a four-level span structure, consisting of `bootstrap_room_span`, `req_root_span`, `thread_span`, and `slice_span`. Among them, `req_root_span` and `thread_span` correspond to `SglangTraceReqContext` and `SglangTraceThreadContext`, respectively, and `slice_span` is stored within the `SglangTraceThreadContext`. The `bootstrap_room_span` is designed to accommodate the separation of PD-disaggregation. On different nodes, we may want to add certain attributes to the `req_root_span`. However, if the `req_root_span` is shared across all nodes, the Prefill and Decode nodes would not be allowed to add attributes due to the constraints imposed by OpenTelemetry's design. + +```text Output +bootstrap room span ++-- router req root span +| +-- router thread span +| +-- slice span ++-- prefill req root span +| +-- tokenizer thread span +| | +-- slice span +| +-- scheduler thread span +| +-- slice span ++-- decode req root span + +-- tokenizer thread span + | +-- slice span + +-- scheduler thread span + +-- slice span +``` diff --git a/docs_new/docs/references/torch_compile_cache.mdx b/docs_new/docs/references/torch_compile_cache.mdx new file mode 100644 index 000000000..0e3c850ca --- /dev/null +++ b/docs_new/docs/references/torch_compile_cache.mdx @@ -0,0 +1,16 @@ +--- +title: "Enabling cache for torch.compile" +metatags: + description: "SGLang torch.compile cache: TORCHINDUCTOR_CACHE_DIR for faster deployment across multiple machines." +--- +SGLang uses `max-autotune-no-cudagraphs` mode of torch.compile. The auto-tuning can be slow. +If you want to deploy a model on many different machines, you can ship the torch.compile cache to these machines and skip the compilation steps. + +This is based on https://pytorch.org/tutorials/recipes/torch_compile_caching_tutorial.html + + +1. Generate the cache by setting TORCHINDUCTOR_CACHE_DIR and running the model once. +```text Output +TORCHINDUCTOR_CACHE_DIR=/root/inductor_root_cache python3 -m sglang.launch_server --model meta-llama/Llama-3.1-8B-Instruct --enable-torch-compile +``` +2. Copy the cache folder to other machines and launch the server with `TORCHINDUCTOR_CACHE_DIR`. diff --git a/docs_new/docs/sglang-diffusion/api/cli.mdx b/docs_new/docs/sglang-diffusion/api/cli.mdx new file mode 100644 index 000000000..73f913ffd --- /dev/null +++ b/docs_new/docs/sglang-diffusion/api/cli.mdx @@ -0,0 +1,366 @@ +--- +title: CLI reference +sidebarTitle: CLI +description: Run one-off generation tasks and launch the HTTP server from the command line. +--- + +The `sglang` CLI provides two main subcommands for diffusion inference: + +- **`sglang generate`** -- run a one-off generation without a persistent server +- **`sglang serve`** -- launch the OpenAI-compatible HTTP server + +## Prerequisites + +A working SGLang Diffusion installation with the `sglang` CLI available in your `$PATH`. See the [installation guide](../installation) for setup instructions. + +## Generate + +Run a one-off generation task without launching a persistent server. Pass both server arguments and sampling parameters after the `generate` subcommand: + +```bash +SERVER_ARGS=( + --model-path Wan-AI/Wan2.2-T2V-A14B-Diffusers + --text-encoder-cpu-offload + --pin-cpu-memory + --num-gpus 4 + --ulysses-degree=2 + --ring-degree=2 +) + +SAMPLING_ARGS=( + --prompt "A curious raccoon" + --save-output + --output-path outputs + --output-file-name "A curious raccoon.mp4" +) + +sglang generate "${SERVER_ARGS[@]}" "${SAMPLING_ARGS[@]}" +``` + +You can also enable Cache-DiT acceleration via an environment variable: + +```bash +SGLANG_CACHE_DIT_ENABLED=true sglang generate "${SERVER_ARGS[@]}" "${SAMPLING_ARGS[@]}" +``` + + +HTTP server-related arguments are ignored in `generate` mode. The process shuts down automatically once generation completes. + + +## Serve + +Launch the SGLang Diffusion HTTP server and interact through the OpenAI-compatible API. + +```bash +SERVER_ARGS=( + --model-path Wan-AI/Wan2.1-T2V-1.3B-Diffusers + --text-encoder-cpu-offload + --pin-cpu-memory + --num-gpus 4 + --ulysses-degree=2 + --ring-degree=2 +) + +sglang serve "${SERVER_ARGS[@]}" +``` + +- `--model-path` -- which model to load (e.g. `Wan-AI/Wan2.1-T2V-1.3B-Diffusers`) +- `--port` -- HTTP port to listen on (default: `30010`) + +For full API usage including image/video generation and LoRA management, see the [OpenAI API documentation](./openai-api). + +--- + +## Supported arguments + +### Server arguments + + + +| Argument | Description | +|:--|:--| +| `--model-path MODEL_PATH` | Path to the model or HuggingFace model ID | +| `--lora-path LORA_PATH` | Path to a LoRA adapter (local or HuggingFace ID). If omitted, LoRA is not applied | +| `--lora-nickname NAME` | Nickname for the LoRA adapter (default: `default`) | +| `--num-gpus NUM` | Number of GPUs to use | +| `--tp-size SIZE` | Tensor parallelism size (encoder only; keep at most 1 when text encoder offload is enabled) | +| `--sp-degree SIZE` | Sequence parallelism size (typically should match the number of GPUs) | +| `--ulysses-degree SIZE` | DeepSpeed-Ulysses-style SP degree in USP | +| `--ring-degree SIZE` | Ring attention-style SP degree in USP | +| `--attention-backend BACKEND` | Attention backend. Native pipelines: `fa`, `torch_sdpa`, `sage_attn`, etc. Diffusers pipelines: `flash`, `_flash_3_hub`, `sage`, `xformers` | +| `--attention-backend-config CONFIG` | Config for the attention backend. Accepts a JSON string, a JSON/YAML file path, or `key=value` pairs | +| `--cache-dit-config PATH` | Path to a Cache-DiT YAML/JSON config (diffusers backend only) | +| `--dit-precision DTYPE` | Precision for the DiT model (`fp32`, `fp16`, `bf16`) | +| `--text-encoder-cpu-offload` | Offload text encoders to CPU | +| `--pin-cpu-memory` | Pin CPU memory for faster transfers | + + + +### Sampling parameters + + + +| Argument | Description | +|:--|:--| +| `--prompt PROMPT` | Text description for the image or video to generate | +| `--negative-prompt PROMPT` | Negative prompt to guide generation away from certain concepts | +| `--num-inference-steps STEPS` | Number of denoising steps | +| `--seed SEED` | Random seed for reproducible generation | + + + + + +| Argument | Description | +|:--|:--| +| `--height HEIGHT` | Height of the generated output | +| `--width WIDTH` | Width of the generated output | +| `--num-frames NUM` | Number of frames to generate (video only) | +| `--fps FPS` | Frames per second for the saved output (video only) | + + + + + +| Argument | Description | +|:--|:--| +| `--save-output` | Save the image or video to disk | +| `--output-path PATH` | Directory to save the generated output | +| `--output-file-name NAME` | File name for the saved output | +| `--return-frames` | Return the raw frames instead of saving | + + + +### Frame interpolation (video only) + +Frame interpolation is a post-processing step that synthesizes new frames between each pair of consecutive generated frames, producing smoother motion without re-running the diffusion model. + +The `--frame-interpolation-exp` flag controls how many rounds of interpolation to apply: each round inserts one new frame into every gap between adjacent frames, so the output frame count follows the formula: + +$$ +\text{output frames} = (N - 1) \times 2^{\text{exp}} + 1 +$$ + +For example, 5 original frames with `exp=1` -> 4 gaps x 1 new frame + 5 originals = **9 frames**; with `exp=2` -> **17 frames**. + +| Argument | Description | +|:--|:--| +| `--enable-frame-interpolation` | Enable frame interpolation. Model weights are downloaded automatically on first use | +| `--frame-interpolation-exp EXP` | Interpolation exponent -- `1` = 2x temporal resolution, `2` = 4x, etc. (default: `1`) | +| `--frame-interpolation-scale SCALE` | RIFE inference scale; use `0.5` for high-resolution inputs to save memory (default: `1.0`) | +| `--frame-interpolation-model-path PATH` | Local directory or HuggingFace repo ID containing RIFE `flownet.pkl` weights (default: `elfgum/RIFE-4.22.lite`, downloaded automatically) | + +**Example** -- generate a 5-frame video and interpolate to 9 frames ($(5 - 1) \times 2^1 + 1 = 9$): + +```bash +sglang generate \ + --model-path Wan-AI/Wan2.2-T2V-A14B-Diffusers \ + --prompt "A dog running through a park" \ + --num-frames 5 \ + --enable-frame-interpolation \ + --frame-interpolation-exp 1 \ + --save-output +``` + +--- + +## Configuration files + +Instead of passing every parameter on the command line, you can use a JSON or YAML config file. Command-line arguments take precedence over config values. + +```bash +sglang generate --config config.json +``` + + + + ```json config.json + { + "model_path": "FastVideo/FastHunyuan-diffusers", + "prompt": "A beautiful woman in a red dress walking down a street", + "output_path": "outputs/", + "num_gpus": 2, + "sp_size": 2, + "tp_size": 1, + "num_frames": 45, + "height": 720, + "width": 1280, + "num_inference_steps": 6, + "seed": 1024, + "fps": 24, + "precision": "bf16", + "vae_precision": "fp16", + "vae_tiling": true, + "vae_sp": true, + "vae_config": { + "load_encoder": false, + "load_decoder": true, + "tile_sample_min_height": 256, + "tile_sample_min_width": 256 + }, + "text_encoder_precisions": ["fp16", "fp16"], + "mask_strategy_file_path": null, + "enable_torch_compile": false + } + ``` + + + ```yaml config.yaml + model_path: "FastVideo/FastHunyuan-diffusers" + prompt: "A beautiful woman in a red dress walking down a street" + output_path: "outputs/" + num_gpus: 2 + sp_size: 2 + tp_size: 1 + num_frames: 45 + height: 720 + width: 1280 + num_inference_steps: 6 + seed: 1024 + fps: 24 + precision: "bf16" + vae_precision: "fp16" + vae_tiling: true + vae_sp: true + vae_config: + load_encoder: false + load_decoder: true + tile_sample_min_height: 256 + tile_sample_min_width: 256 + text_encoder_precisions: + - "fp16" + - "fp16" + mask_strategy_file_path: null + enable_torch_compile: false + ``` + + + +To see all available options: + +```bash +sglang generate --help +``` + +--- + +## Component path overrides + +You can override any pipeline component (e.g. `vae`, `transformer`, `text_encoder`) by specifying a custom checkpoint path with `---path`, where `` matches the key in the model's `model_index.json`. + +### Example: FLUX.2-dev with Tiny AutoEncoder + +Replace the default VAE with a distilled tiny autoencoder for ~3x faster decoding: + +```bash +sglang serve \ + --model-path=black-forest-labs/FLUX.2-dev \ + --vae-path=fal/FLUX.2-Tiny-AutoEncoder +``` + +You can also use a local path: + +```bash +sglang serve \ + --model-path=black-forest-labs/FLUX.2-dev \ + --vae-path=~/.cache/huggingface/hub/models--fal--FLUX.2-Tiny-AutoEncoder/snapshots/.../vae +``` + + +The component key must match the one in the model's `model_index.json` (e.g. `vae`). +The path must be either a HuggingFace repo ID or point to a complete component folder containing `config.json` and safetensors files. + + +--- + +## Diffusers backend + +SGLang Diffusion supports a diffusers backend that runs any diffusers-compatible model through SGLang's infrastructure using vanilla diffusers pipelines. This is useful for models without native SGLang implementations or models with custom pipeline classes. + +### Backend arguments + +| Argument | Values | Description | +|:--|:--|:--| +| `--backend` | `auto` (default), `sglang`, `diffusers` | `auto`: prefer native SGLang, fallback to diffusers. `sglang`: force native (fails if unavailable). `diffusers`: force vanilla diffusers pipeline | +| `--diffusers-attention-backend` | `flash`, `_flash_3_hub`, `sage`, `xformers`, `native` | Attention backend for diffusers pipelines | +| `--trust-remote-code` | flag | Required for models with custom pipeline classes | +| `--vae-tiling` | flag | Enable VAE tiling for large image support (decodes tile-by-tile) | +| `--vae-slicing` | flag | Enable VAE slicing for lower memory usage (decodes slice-by-slice) | +| `--dit-precision` | `fp16`, `bf16`, `fp32` | Precision for the diffusion transformer | +| `--vae-precision` | `fp16`, `bf16`, `fp32` | Precision for the VAE | + +### Example: running Ovis-Image-7B + +[Ovis-Image-7B](https://huggingface.co/AIDC-AI/Ovis-Image-7B) is a 7B text-to-image model optimized for high-quality text rendering. + +```bash +sglang generate \ + --model-path AIDC-AI/Ovis-Image-7B \ + --backend diffusers \ + --trust-remote-code \ + --diffusers-attention-backend flash \ + --prompt "A serene Japanese garden with cherry blossoms" \ + --height 1024 \ + --width 1024 \ + --num-inference-steps 30 \ + --save-output \ + --output-path outputs \ + --output-file-name ovis_garden.png +``` + +### Extra diffusers arguments + +For pipeline-specific parameters not exposed via CLI, use `diffusers_kwargs` in a config file: + +```json config.json +{ + "model_path": "AIDC-AI/Ovis-Image-7B", + "backend": "diffusers", + "prompt": "A beautiful landscape", + "diffusers_kwargs": { + "cross_attention_kwargs": {"scale": 0.5} + } +} +``` + +```bash +sglang generate --config config.json +``` + +### Cache-DiT acceleration + +Users on the diffusers backend can leverage Cache-DiT acceleration by loading custom cache configs from a YAML file. See the [Cache-DiT documentation](../cache-dit) for details. + +--- + +## Cloud storage support + +The server supports automatically uploading generated artifacts to S3-compatible cloud storage (AWS S3, MinIO, Alibaba Cloud OSS, Tencent Cloud COS). + +The workflow is: **Generate -> Upload -> Delete local file**. The API response returns the public URL of the uploaded object. + +1. **Install boto3** + +```bash +pip install boto3 +``` + +2. **Set environment variables** + +```bash +export SGLANG_CLOUD_STORAGE_TYPE=s3 +export SGLANG_S3_BUCKET_NAME=my-bucket +export SGLANG_S3_ACCESS_KEY_ID=your-access-key +export SGLANG_S3_SECRET_ACCESS_KEY=your-secret-key + +# Optional: custom endpoint for MinIO/OSS/COS +export SGLANG_S3_ENDPOINT_URL=https://minio.example.com +``` + +3. **Launch the server** + +```bash +sglang serve --model-path MODEL_PATH +``` + +See the [environment variables reference](../environment-variables) for all storage-related variables. diff --git a/docs_new/docs/sglang-diffusion/api/openai-api.mdx b/docs_new/docs/sglang-diffusion/api/openai-api.mdx new file mode 100644 index 000000000..15642149c --- /dev/null +++ b/docs_new/docs/sglang-diffusion/api/openai-api.mdx @@ -0,0 +1,421 @@ +--- +title: OpenAI API +sidebarTitle: OpenAI API +description: Image and video generation endpoints with LoRA adapter management. +--- + +The SGLang Diffusion HTTP server implements an OpenAI-compatible API for image and video generation, as well as dynamic LoRA adapter management. + +## Prerequisites + +- Python 3.11+ if you plan to use the OpenAI Python SDK. +- A running SGLang Diffusion server (see the [CLI reference](./cli) for launch instructions). + +## Start the server + +```bash +SERVER_ARGS=( + --model-path Wan-AI/Wan2.1-T2V-1.3B-Diffusers + --text-encoder-cpu-offload + --pin-cpu-memory + --num-gpus 4 + --ulysses-degree=2 + --ring-degree=2 + --port 30010 +) + +sglang serve "${SERVER_ARGS[@]}" +``` + +- `--model-path` -- path to the model or HuggingFace model ID +- `--port` -- HTTP port to listen on (default: `30000`) + +### Get model information + +**Endpoint:** `GET /models` + +Returns model path, task type, pipeline configuration, and precision settings. + + +```bash curl +curl -sS -X GET "http://localhost:30010/models" +``` + + +**Response:** + +```json +{ + "model_path": "Wan-AI/Wan2.1-T2V-1.3B-Diffusers", + "task_type": "T2V", + "pipeline_name": "wan_pipeline", + "pipeline_class": "WanPipeline", + "num_gpus": 4, + "dit_precision": "bf16", + "vae_precision": "fp16" +} +``` + +--- + +## Image generation + +The server implements an OpenAI-compatible Images API under the `/v1/images` namespace. + +### Create an image + +**Endpoint:** `POST /v1/images/generations` + + +```python Python +import base64 +from openai import OpenAI + +client = OpenAI(api_key="sk-proj-1234567890", base_url="http://localhost:30010/v1") + +img = client.images.generate( + prompt="A calico cat playing a piano on stage", + size="1024x1024", + n=1, + response_format="b64_json", +) + +image_bytes = base64.b64decode(img.data[0].b64_json) +with open("output.png", "wb") as f: + f.write(image_bytes) +``` + +```bash curl +curl -sS -X POST "http://localhost:30010/v1/images/generations" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer sk-proj-1234567890" \ + -d '{ + "prompt": "A calico cat playing a piano on stage", + "size": "1024x1024", + "n": 1, + "response_format": "b64_json" + }' +``` + + + +If `response_format=url` is used and cloud storage is not configured, the API returns a relative URL like `/v1/images//content`. + + +### Edit an image + +**Endpoint:** `POST /v1/images/edits` + +Accepts a multipart form upload with input images and a text prompt. Returns either a base64-encoded image or a URL. + + + + ```bash + curl -sS -X POST "http://localhost:30010/v1/images/edits" \ + -H "Authorization: Bearer sk-proj-1234567890" \ + -F "image=@local_input_image.png" \ + -F "url=image_url.jpg" \ + -F "prompt=A calico cat playing a piano on stage" \ + -F "size=1024x1024" \ + -F "response_format=b64_json" + ``` + + + ```bash + curl -sS -X POST "http://localhost:30010/v1/images/edits" \ + -H "Authorization: Bearer sk-proj-1234567890" \ + -F "image=@local_input_image.png" \ + -F "url=image_url.jpg" \ + -F "prompt=A calico cat playing a piano on stage" \ + -F "size=1024x1024" \ + -F "response_format=url" + ``` + + + +### Download image content + +When `response_format=url` is used, the API returns a relative URL like `/v1/images//content`. + +**Endpoint:** `GET /v1/images/{image_id}/content` + +```bash +curl -sS -L "http://localhost:30010/v1/images//content" \ + -H "Authorization: Bearer sk-proj-1234567890" \ + -o output.png +``` + +--- + +## Video generation + +The server implements a subset of the OpenAI Videos API under the `/v1/videos` namespace. + +### Create a video + +**Endpoint:** `POST /v1/videos` + + +```python Python +from openai import OpenAI + +client = OpenAI(api_key="sk-proj-1234567890", base_url="http://localhost:30010/v1") + +video = client.videos.create( + prompt="A calico cat playing a piano on stage", + size="1280x720" +) +print(f"Video ID: {video.id}, Status: {video.status}") +``` + +```bash curl +curl -sS -X POST "http://localhost:30010/v1/videos" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer sk-proj-1234567890" \ + -d '{ + "prompt": "A calico cat playing a piano on stage", + "size": "1280x720" + }' +``` + + +### List videos + +**Endpoint:** `GET /v1/videos` + + +```python Python +videos = client.videos.list() +for item in videos.data: + print(item.id, item.status) +``` + +```bash curl +curl -sS -X GET "http://localhost:30010/v1/videos" \ + -H "Authorization: Bearer sk-proj-1234567890" +``` + + +### Download video content + +**Endpoint:** `GET /v1/videos/{video_id}/content` + + +```python Python +import time + +# Poll for completion +while True: + page = client.videos.list() + item = next((v for v in page.data if v.id == video_id), None) + if item and item.status == "completed": + break + time.sleep(5) + +# Download content +resp = client.videos.download_content(video_id=video_id) +with open("output.mp4", "wb") as f: + f.write(resp.read()) +``` + +```bash curl +curl -sS -L "http://localhost:30010/v1/videos//content" \ + -H "Authorization: Bearer sk-proj-1234567890" \ + -o output.mp4 +``` + + +--- + +## LoRA management + +The server supports dynamic loading, merging, and unmerging of LoRA adapters. + + +- **Mutual exclusion:** Only one LoRA can be merged (active) at a time. +- **Switching:** To switch LoRAs, you must first unmerge the current one, then set the new one. +- **Caching:** The server caches loaded LoRA weights in memory. Switching back to a previously loaded LoRA (same path) has negligible cost. + + +### Set LoRA adapter + +Loads one or more LoRA adapters and merges their weights into the model. Supports both single LoRA (backward compatible) and multiple LoRA adapters. + +**Endpoint:** `POST /v1/set_lora` + +**Parameters:** + +| Parameter | Type | Description | +|:--|:--|:--| +| `lora_nickname` | string or list | A unique identifier for the LoRA adapter(s). Required | +| `lora_path` | string or list | Path to `.safetensors` file(s) or HuggingFace repo ID(s). Required for first load; optional when re-activating a cached nickname | +| `target` | string or list | Which transformer(s) to apply the LoRA to: `"all"` (default), `"transformer"`, `"transformer_2"`, `"critic"` | +| `strength` | float or list | LoRA strength for merge (default: `1.0`). Values < 1.0 reduce the effect, > 1.0 amplify it | + + + + ```bash + curl -X POST http://localhost:30010/v1/set_lora \ + -H "Content-Type: application/json" \ + -d '{ + "lora_nickname": "lora_name", + "lora_path": "/path/to/lora.safetensors", + "target": "all", + "strength": 0.8 + }' + ``` + + + ```bash + curl -X POST http://localhost:30010/v1/set_lora \ + -H "Content-Type: application/json" \ + -d '{ + "lora_nickname": ["lora_1", "lora_2"], + "lora_path": ["/path/to/lora1.safetensors", "/path/to/lora2.safetensors"], + "target": ["transformer", "transformer_2"], + "strength": [0.8, 1.0] + }' + ``` + + + ```bash + curl -X POST http://localhost:30010/v1/set_lora \ + -H "Content-Type: application/json" \ + -d '{ + "lora_nickname": ["style_lora", "character_lora"], + "lora_path": ["/path/to/style.safetensors", "/path/to/character.safetensors"], + "target": "all", + "strength": [0.7, 0.9] + }' + ``` + + + + +When using multiple LoRAs: +- All list parameters (`lora_nickname`, `lora_path`, `target`, `strength`) must have the same length. +- If `target` or `strength` is a single value, it will be applied to all LoRAs. +- Multiple LoRAs applied to the same target will be merged in order. + + +### Merge LoRA weights + +Manually merges the currently set LoRA weights into the base model. + +**Endpoint:** `POST /v1/merge_lora_weights` + +| Parameter | Type | Description | +|:--|:--|:--| +| `target` | string | Which transformer(s) to merge: `"all"` (default), `"transformer"`, `"transformer_2"`, `"critic"` | +| `strength` | float | LoRA strength for merge (default: `1.0`) | + +```bash +curl -X POST http://localhost:30010/v1/merge_lora_weights \ + -H "Content-Type: application/json" \ + -d '{"strength": 0.8}' +``` + + +`set_lora` automatically performs a merge, so this endpoint is typically only needed if you have manually unmerged but want to re-apply the same LoRA without calling `set_lora` again. + + +### Unmerge LoRA weights + +Unmerges the currently active LoRA weights from the base model, restoring it to its original state. Call this before setting a different LoRA. + +**Endpoint:** `POST /v1/unmerge_lora_weights` + +```bash +curl -X POST http://localhost:30010/v1/unmerge_lora_weights \ + -H "Content-Type: application/json" +``` + +### List LoRA adapters + +Returns loaded LoRA adapters and current application status per module. + +**Endpoint:** `GET /v1/list_loras` + +```bash +curl -sS -X GET "http://localhost:30010/v1/list_loras" +``` + +**Response:** + +```json +{ + "loaded_adapters": [ + { "nickname": "lora_a", "path": "/weights/lora_a.safetensors" }, + { "nickname": "lora_b", "path": "/weights/lora_b.safetensors" } + ], + "active": { + "transformer": [ + { + "nickname": "lora2", + "path": "tarn59/pixel_art_style_lora_z_image_turbo", + "merged": true, + "strength": 1.0 + } + ] + } +} +``` + +### Example: switching LoRAs + +1. **Set LoRA A** + +```bash +curl -X POST http://localhost:30010/v1/set_lora \ + -d '{"lora_nickname": "lora_a", "lora_path": "path/to/A"}' +``` + +2. **Generate with LoRA A** + +Run your image or video generation requests. + +3. **Unmerge LoRA A** + +```bash +curl -X POST http://localhost:30010/v1/unmerge_lora_weights +``` + +4. **Set LoRA B** + +```bash +curl -X POST http://localhost:30010/v1/set_lora \ + -d '{"lora_nickname": "lora_b", "lora_path": "path/to/B"}' +``` + +5. **Generate with LoRA B** + +Run your image or video generation requests with the new adapter. + +--- + +## Output quality + +Control output quality and compression for both image and video generation through the `output-quality` and `output-compression` parameters. + +### Parameters + +| Parameter | Type | Description | +|:--|:--|:--| +| `output-quality` | string | Preset quality level. Default: `"default"` | +| `output-compression` | integer | Direct compression level override (0-100). When provided, takes precedence over `output-quality` | + +**Quality presets:** + +| Preset | Compression value | +|:--|:--| +| `"maximum"` | 100 | +| `"high"` | 90 | +| `"medium"` | 55 | +| `"low"` | 35 | +| `"default"` | Auto (50 for video, 75 for image) | + + +- When both `output-quality` and `output-compression` are provided, `output-compression` takes precedence. +- Quality settings apply to JPEG and video formats. PNG uses lossless compression and ignores these settings. +- Lower compression values (or `"low"` quality preset) produce smaller files but may show visible artifacts. + diff --git a/docs_new/docs/sglang-diffusion/attention-backends.mdx b/docs_new/docs/sglang-diffusion/attention-backends.mdx new file mode 100644 index 000000000..d8a6c21c1 --- /dev/null +++ b/docs_new/docs/sglang-diffusion/attention-backends.mdx @@ -0,0 +1,405 @@ +--- +title: "Attention Backends" +description: "Select and configure attention backends for SGLang diffusion pipelines." +--- + +This document describes the attention backends available in sglang diffusion (`sglang.multimodal_gen`) and how to select them. + +## Overview + +Attention backends are defined by `AttentionBackendEnum` (`sglang.multimodal_gen.runtime.platforms.interface.AttentionBackendEnum`) and selected via the CLI flag `--attention-backend`. + +Backend selection is performed by the shared attention layers (e.g. `LocalAttention` / `USPAttention` / `UlyssesAttention` in `sglang.multimodal_gen.runtime.layers.attention.layer`) and therefore applies to any model component using these layers (e.g. diffusion transformer / DiT and encoders). + +When using the diffusers backend, `--attention-backend` is passed through to diffusers' +`set_attention_backend` (e.g., `flash`, `_flash_3_hub`, `sage`, `xformers`, `native`). + +- **CUDA**: prefers FlashAttention (FA3/FA4) when supported; otherwise falls back to PyTorch SDPA. +- **ROCm**: uses FlashAttention when available; otherwise falls back to PyTorch SDPA. +- **MPS**: always uses PyTorch SDPA. +- **NPU**: always uses PyTorch SDPA. + +## Backend options + +For SGLang-native pipelines, the CLI accepts the lowercase names of `AttentionBackendEnum`. The table below lists the backends implemented by the built-in platforms. `fa3`/`fa4` are accepted as aliases for `fa`. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      CLI valueEnum valueNotes
      `fa` / `fa3` / `fa4``FA`FlashAttention. `fa3/fa4` are normalized to `fa` during argument parsing (`ServerArgs.__post_init__`).
      `torch_sdpa``TORCH_SDPA`PyTorch `scaled_dot_product_attention`.
      `sliding_tile_attn``SLIDING_TILE_ATTN`Sliding Tile Attention (STA). Requires `st_attn`. Configure via `--attention-backend-config`.
      `sage_attn``SAGE_ATTN`Requires `sageattention`. Upstream SageAttention CUDA extensions target SM80/SM86/SM89/SM90/SM120 (compute capability 8.0/8.6/8.9/9.0/12.0); see upstream `setup.py`: https://github.com/thu-ml/SageAttention/blob/main/setup.py.
      `sage_attn_3``SAGE_ATTN_3`Requires SageAttention3 installed per upstream instructions.
      `video_sparse_attn``VIDEO_SPARSE_ATTN`Requires `vsa`. Configure `sparsity` via `--attention-backend-config`.
      `vmoba_attn``VMOBA_ATTN`Requires `kernel.attn.vmoba_attn.vmoba`. Configure via `--attention-backend-config`.
      `aiter``AITER`Requires `aiter`.
      `sparse_video_gen_2_attn``SPARSE_VIDEO_GEN_2_ATTN`Requires `svg`. See installation instructions at https://github.com/svg-project/Sparse-VideoGen.
      + +## Selection priority + +The selection order in `runtime/layers/attention/selector.py` is: + +1. `global_force_attn_backend(...)` / `global_force_attn_backend_context_manager(...)` +2. CLI `--attention-backend` (`ServerArgs.attention_backend`) +3. Auto selection (platform capability, dtype, and installed packages) + +## Configuration + +Some backends require additional configuration. You can pass these parameters via `--attention-backend-config`. This argument accepts: +- A path to a JSON or YAML configuration file. +- A JSON string (e.g., `'{"sparsity": 0.5}'`). +- Key-value pairs (e.g., `"sparsity=0.5,enable_x=true"`). + +### Supported Configuration Parameters + +**Sliding Tile Attention (`sliding_tile_attn`)** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescriptionDefault
      `mask_strategy_file_path``str`**Required.** Path to the mask strategy JSON file.-
      `sta_mode``str`Mode of STA.``STA_inference``
      `skip_time_steps``int`Number of steps to use full attention before switching to sparse attention.`15`
      + +**Video Sparse Attention (`video_sparse_attn`)** + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescriptionDefault
      `sparsity``float`Validation sparsity (0.0 - 1.0).`0.0`
      + +**V-MoBA (`vmoba_attn`)** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescriptionDefault
      `temporal_chunk_size``int`Chunk size for temporal dimension.-
      `temporal_topk``int`Top-K tokens to select in temporal dimension.-
      `spatial_chunk_size``list[int]`Chunk size for spatial dimension (H, W).-
      `spatial_topk``int`Top-K tokens to select in spatial dimension.-
      `st_chunk_size``list[int]`Chunk size for spatiotemporal dimension (T, H, W).-
      `st_topk``int`Top-K tokens to select in spatiotemporal dimension.-
      `moba_select_mode``str`Selection mode (e.g., `threshold`).`threshold`
      `moba_threshold``float`Threshold value for selection.`0.25`
      `moba_threshold_type``str`Type of thresholding (e.g., `query_head`).`query_head`
      `first_full_step``int`Number of initial steps to use full attention.`12`
      `first_full_layer``int`Number of initial layers to use full attention.`0`
      `temporal_layer``int`Number of temporal layers.`1`
      `spatial_layer``int`Number of spatial layers.`1`
      `st_layer``int`Number of spatiotemporal layers.`1`
      + +## Platform support matrix + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      BackendCUDAROCmMPSNPUNotes
      `fa`YesYesNoNoCUDA requires SM80+ and fp16/bf16. FlashAttention is only used when the required runtime is installed; otherwise it falls back to `torch_sdpa`.
      `torch_sdpa`YesYesYesYesMost compatible option across platforms.
      `sliding_tile_attn`YesNoNoNoCUDA-only. Requires `st_attn`. Configure via `--attention-backend-config`.
      `sage_attn`YesNoNoNoCUDA-only (optional dependency).
      `sage_attn_3`YesNoNoNoCUDA-only (optional dependency).
      `video_sparse_attn`YesNoNoNoCUDA-only. Requires `vsa`. Configure `sparsity` via `--attention-backend-config`.
      `vmoba_attn`YesNoNoNoCUDA-only. Requires `kernel.attn.vmoba_attn.vmoba`. Configure via `--attention-backend-config`.
      `aiter`YesNoNoNoRequires `aiter`.
      `sparse_video_gen_2_attn`YesNoNoNoCUDA-only. Requires `svg`.
      + +## Usage + +### Select a backend via CLI + +```bash +sglang generate \ + --model-path \ + --prompt "..." \ + --attention-backend fa +``` + +```bash +sglang generate \ + --model-path \ + --prompt "..." \ + --attention-backend torch_sdpa +``` + +### Using Sliding Tile Attention (STA) + +```bash +# Pass the mask strategy file path via config +sglang generate \ + --model-path \ + --prompt "..." \ + --attention-backend sliding_tile_attn \ + --attention-backend-config "mask_strategy_file_path=/abs/path/to/mask_strategy.json" +``` + +### Notes for ROCm / MPS + +- ROCm: use `--attention-backend torch_sdpa` or `fa` depending on what is available in your environment. +- MPS: the platform implementation always uses `torch_sdpa`. diff --git a/docs_new/docs/sglang-diffusion/cache-dit.mdx b/docs_new/docs/sglang-diffusion/cache-dit.mdx new file mode 100644 index 000000000..59bc388d3 --- /dev/null +++ b/docs_new/docs/sglang-diffusion/cache-dit.mdx @@ -0,0 +1,433 @@ +--- +title: "Cache-DiT Acceleration" +description: "Configure Cache-DiT acceleration for diffusion inference." +--- + +SGLang integrates [Cache-DiT](https://github.com/vipshop/cache-dit), a caching acceleration engine for Diffusion Transformers (DiT), to achieve up to **1.69x inference speedup** with minimal quality loss. + +## Overview + +**Cache-DiT** uses intelligent caching strategies to skip redundant computation in the denoising loop: + +- **DBCache (Dual Block Cache)**: Dynamically decides when to cache transformer blocks based on residual differences +- **TaylorSeer**: Uses Taylor expansion for calibration to optimize caching decisions +- **SCM (Step Computation Masking)**: Step-level caching control for additional speedup + +## Basic Usage + +Enable Cache-DiT by exporting the environment variable and using `sglang generate` or `sglang serve` : + +```bash +SGLANG_CACHE_DIT_ENABLED=true \ +sglang generate --model-path Qwen/Qwen-Image \ + --prompt "A beautiful sunset over the mountains" +``` + +## Diffusers Backend + +Cache-DiT supports loading acceleration configs from a custom YAML file. For +diffusers pipelines (`diffusers` backend), pass the YAML/JSON path via `--cache-dit-config`. This +flow requires cache-dit >= 1.2.0 (`cache_dit.load_configs`). + +### Single GPU inference + +Define a `cache.yaml` file that contains: + +```yaml +cache_config: + max_warmup_steps: 8 + warmup_interval: 2 + max_cached_steps: -1 + max_continuous_cached_steps: 2 + Fn_compute_blocks: 1 + Bn_compute_blocks: 0 + residual_diff_threshold: 0.12 + enable_taylorseer: true + taylorseer_order: 1 +``` + +Then apply the config with: + +```bash +sglang generate \ + --backend diffusers \ + --model-path Qwen/Qwen-Image \ + --cache-dit-config cache.yaml \ + --prompt "A beautiful sunset over the mountains" +``` + +### Distributed inference + +- 1D Parallelism + +Define a parallelism only config yaml `parallel.yaml` file that contains: + +```yaml +parallelism_config: + ulysses_size: auto + parallel_kwargs: + attention_backend: native + extra_parallel_modules: ["text_encoder", "vae"] +``` + +Then, apply the distributed inference acceleration config from yaml. `ulysses_size: auto` means that cache-dit will auto detect the `world_size` as the ulysses_size. Otherwise, you should manually set it as specific int number, e.g, 4. + +Then apply the distributed config with: (Note: please add `--num-gpus N` to specify the number of gpus for distributed inference) + +```bash +sglang generate \ + --backend diffusers \ + --num-gpus 4 \ + --model-path Qwen/Qwen-Image \ + --cache-dit-config parallel.yaml \ + --prompt "A futuristic cityscape at sunset" +``` + +- 2D Parallelism + +You can also define a 2D parallelism config yaml `parallel_2d.yaml` file that contains: + +```yaml +parallelism_config: + ulysses_size: auto + tp_size: 2 + parallel_kwargs: + attention_backend: native + extra_parallel_modules: ["text_encoder", "vae"] +``` +Then, apply the 2D parallelism config from yaml. Here `tp_size: 2` means using tensor parallelism with size 2. The `ulysses_size: auto` means that cache-dit will auto detect the `world_size // tp_size` as the ulysses_size. + +- 3D Parallelism + +You can also define a 3D parallelism config yaml `parallel_3d.yaml` file that contains: + +```yaml +parallelism_config: + ulysses_size: 2 + ring_size: 2 + tp_size: 2 + parallel_kwargs: + attention_backend: native + extra_parallel_modules: ["text_encoder", "vae"] +``` +Then, apply the 3D parallelism config from yaml. Here `ulysses_size: 2`, `ring_size: 2`, `tp_size: 2` means using ulysses parallelism with size 2, ring parallelism with size 2 and tensor parallelism with size 2. + +### Hybrid Cache and Parallelism + +Define a hybrid cache and parallel acceleration config yaml `hybrid.yaml` file that contains: + +```yaml +cache_config: + max_warmup_steps: 8 + warmup_interval: 2 + max_cached_steps: -1 + max_continuous_cached_steps: 2 + Fn_compute_blocks: 1 + Bn_compute_blocks: 0 + residual_diff_threshold: 0.12 + enable_taylorseer: true + taylorseer_order: 1 +parallelism_config: + ulysses_size: auto + parallel_kwargs: + attention_backend: native + extra_parallel_modules: ["text_encoder", "vae"] +``` + +Then, apply the hybrid cache and parallel acceleration config from yaml. + +```bash +sglang generate \ + --backend diffusers \ + --num-gpus 4 \ + --model-path Qwen/Qwen-Image \ + --cache-dit-config hybrid.yaml \ + --prompt "A beautiful sunset over the mountains" +``` + +## Advanced Configuration + +### DBCache Parameters + +DBCache controls block-level caching behavior: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Fn`SGLANG_CACHE_DIT_FN`1Number of first blocks to always compute
      Bn`SGLANG_CACHE_DIT_BN`0Number of last blocks to always compute
      W`SGLANG_CACHE_DIT_WARMUP`4Warmup steps before caching starts
      R`SGLANG_CACHE_DIT_RDT`0.24Residual difference threshold
      MC`SGLANG_CACHE_DIT_MC`3Maximum continuous cached steps
      + +### TaylorSeer Configuration + +TaylorSeer improves caching accuracy using Taylor expansion: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterEnv VariableDefaultDescription
      Enable`SGLANG_CACHE_DIT_TAYLORSEER`falseEnable TaylorSeer calibrator
      Order`SGLANG_CACHE_DIT_TS_ORDER`1Taylor expansion order (1 or 2)
      + +### Combined Configuration Example + +DBCache and TaylorSeer are complementary strategies that work together, you can configure both sets of parameters +simultaneously: + +```bash +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_FN=2 \ +SGLANG_CACHE_DIT_BN=1 \ +SGLANG_CACHE_DIT_WARMUP=4 \ +SGLANG_CACHE_DIT_RDT=0.4 \ +SGLANG_CACHE_DIT_MC=4 \ +SGLANG_CACHE_DIT_TAYLORSEER=true \ +SGLANG_CACHE_DIT_TS_ORDER=2 \ +sglang generate --model-path black-forest-labs/FLUX.1-dev \ + --prompt "A curious raccoon in a forest" +``` + +### SCM (Step Computation Masking) + +SCM provides step-level caching control for additional speedup. It decides which denoising steps to compute fully and +which to use cached results. + +**SCM Presets** + +SCM is configured with presets: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      PresetCompute RatioSpeedQuality
      `none`100%BaselineBest
      `slow`~75%~1.3xHigh
      `medium`~50%~2xGood
      `fast`~35%~3xAcceptable
      `ultra`~25%~4xLower
      + +**Usage** + +```bash +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_SCM_PRESET=medium \ +sglang generate --model-path Qwen/Qwen-Image \ + --prompt "A futuristic cityscape at sunset" +``` + +**Custom SCM Bins** + +For fine-grained control over which steps to compute vs cache: + +```bash +SGLANG_CACHE_DIT_ENABLED=true \ +SGLANG_CACHE_DIT_SCM_COMPUTE_BINS="8,3,3,2,2" \ +SGLANG_CACHE_DIT_SCM_CACHE_BINS="1,2,2,2,3" \ +sglang generate --model-path Qwen/Qwen-Image \ + --prompt "A futuristic cityscape at sunset" +``` + +**SCM Policy** + + + + + + + + + + + + + + + + + + + + + + + + + + +
      PolicyEnv VariableDescription
      `dynamic``SGLANG_CACHE_DIT_SCM_POLICY=dynamic`Adaptive caching based on content (default)
      `static``SGLANG_CACHE_DIT_SCM_POLICY=static`Fixed caching pattern
      + +## Environment Variables + +All Cache-DiT parameters can be configured via environment variables. +See [Environment variables](./environment-variables) for the complete list. + +## Supported Models + +SGLang Diffusion x Cache-DiT supports almost all models originally supported in SGLang Diffusion: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model FamilyExample Models
      WanWan2.1, Wan2.2
      FluxFLUX.1-dev, FLUX.2-dev
      Z-ImageZ-Image-Turbo
      QwenQwen-Image, Qwen-Image-Edit
      HunyuanHunyuanVideo
      + +## Performance Tips + +1. **Start with defaults**: The default parameters work well for most models +2. **Use TaylorSeer**: It typically improves both speed and quality +3. **Tune R threshold**: Lower values = better quality, higher values = faster +4. **SCM for extra speed**: Use `medium` preset for good speed/quality balance +5. **Warmup matters**: Higher warmup = more stable caching decisions + +## Limitations + +- **SGLang-native pipelines**: Distributed support (TP/SP) is not yet validated; Cache-DiT will be automatically + disabled when `world_size > 1`. +- **SCM minimum steps**: SCM requires >= 8 inference steps to be effective +- **Model support**: Only models registered in Cache-DiT's BlockAdapterRegister are supported + +## Troubleshooting + +### SCM disabled for low step count + +For models with < 8 inference steps (e.g., DMD distilled models), SCM will be automatically disabled. DBCache +acceleration still works. + +## References + +- [Cache-DiT](https://github.com/vipshop/cache-dit) +- [SGLang diffusion](../../sglang-diffusion/intro) diff --git a/docs_new/docs/sglang-diffusion/caching-acceleration.mdx b/docs_new/docs/sglang-diffusion/caching-acceleration.mdx new file mode 100644 index 000000000..0c95559b2 --- /dev/null +++ b/docs_new/docs/sglang-diffusion/caching-acceleration.mdx @@ -0,0 +1,88 @@ +--- +title: "Caching Acceleration" +description: "Compare caching acceleration strategies for diffusion models." +--- + +SGLang provides multiple caching acceleration strategies for Diffusion Transformer (DiT) models. These strategies can significantly reduce inference time by skipping redundant computation. + +## Overview + +SGLang supports two complementary caching approaches: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      StrategyScopeMechanismBest For
      Cache-DiTBlock-levelSkip individual transformer blocks dynamicallyAdvanced, higher speedup
      TeaCacheTimestep-levelSkip entire denoising steps based on L1 similaritySimple, built-in
      + + +## Cache-DiT + +[Cache-DiT](https://github.com/vipshop/cache-dit) provides block-level caching with +advanced strategies like DBCache and TaylorSeer. It can achieve up to **1.69x speedup**. + +See [Cache-DiT](./cache-dit) for detailed configuration. + +### Quick Start + +```bash +SGLANG_CACHE_DIT_ENABLED=true \ +sglang generate --model-path Qwen/Qwen-Image \ + --prompt "A beautiful sunset over the mountains" +``` + +### Key Features + +- **DBCache**: Dynamic block-level caching based on residual differences +- **TaylorSeer**: Taylor expansion-based calibration for optimized caching +- **SCM**: Step-level computation masking for additional speedup + +## TeaCache + +TeaCache (Temporal similarity-based caching) accelerates diffusion inference by detecting when consecutive denoising steps are similar enough to skip computation entirely. + +See [TeaCache](./tea-cache) for detailed documentation. + +### Quick Overview + +- Tracks L1 distance between modulated inputs across timesteps +- When accumulated distance is below threshold, reuses cached residual +- Supports CFG with separate positive/negative caches + +### Supported Models + +- Wan (wan2.1, wan2.2) +- Hunyuan (HunyuanVideo) +- Z-Image + +For Flux and Qwen models, TeaCache is automatically disabled when CFG is enabled. + +## References + +- [Cache-DiT Repository](https://github.com/vipshop/cache-dit) +- [TeaCache Paper](https://arxiv.org/abs/2411.14324) diff --git a/docs_new/docs/sglang-diffusion/ci-performance.mdx b/docs_new/docs/sglang-diffusion/ci-performance.mdx new file mode 100644 index 000000000..7d2f62ecd --- /dev/null +++ b/docs_new/docs/sglang-diffusion/ci-performance.mdx @@ -0,0 +1,32 @@ +--- +title: "CI Performance Baselines" +description: "Generate and update diffusion performance baselines used in CI." +--- + +`python/sglang/multimodal_gen/test/scripts/gen_perf_baselines.py` starts a local diffusion server, issues requests for selected test cases, aggregates stage/denoise-step/E2E timings from the perf log, and writes the results back to the `scenarios` section of `perf_baselines.json`. + +## Usage + +Update a single case: + +```bash +python python/sglang/multimodal_gen/test/scripts/gen_perf_baselines.py --case qwen_image_t2i +``` + +Select by regex: + +```bash +python python/sglang/multimodal_gen/test/scripts/gen_perf_baselines.py --match 'qwen_image_.*' +``` + +Run all keys from the baseline file `scenarios`: + +```bash +python python/sglang/multimodal_gen/test/scripts/gen_perf_baselines.py --all-from-baseline +``` + +Specify input/output paths and timeout: + +```bash +python python/sglang/multimodal_gen/test/scripts/gen_perf_baselines.py --baseline python/sglang/multimodal_gen/test/server/perf_baselines.json --out /tmp/perf_baselines.json --timeout 600 +``` diff --git a/docs_new/docs/sglang-diffusion/environment-variables.mdx b/docs_new/docs/sglang-diffusion/environment-variables.mdx new file mode 100644 index 000000000..603c68405 --- /dev/null +++ b/docs_new/docs/sglang-diffusion/environment-variables.mdx @@ -0,0 +1,140 @@ +--- +title: "Environment Variables" +description: "Configure SGLang diffusion behavior with environment variables." +--- + +These variables configure caching acceleration for Diffusion Transformer (DiT) models. +SGLang supports multiple caching strategies - see [performance optimization documentation](./performance-optimization) for an overview. + +See [Environment Variables](../references/environment_variables) for a list of all environment variables. + +## Cache-DiT configuration + +See [Cache-DiT documentation](./cache-dit) for detailed configuration. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDefaultDescription
      `SGLANG_CACHE_DIT_ENABLED`falseEnable Cache-DiT acceleration
      `SGLANG_CACHE_DIT_FN`1First N blocks to always compute
      `SGLANG_CACHE_DIT_BN`0Last N blocks to always compute
      `SGLANG_CACHE_DIT_WARMUP`4Warmup steps before caching
      `SGLANG_CACHE_DIT_RDT`0.24Residual difference threshold
      `SGLANG_CACHE_DIT_MC`3Max continuous cached steps
      `SGLANG_CACHE_DIT_TAYLORSEER`falseEnable TaylorSeer calibrator
      `SGLANG_CACHE_DIT_TS_ORDER`1TaylorSeer order (1 or 2)
      `SGLANG_CACHE_DIT_SCM_PRESET`noneSCM preset (none/slow/medium/fast/ultra)
      `SGLANG_CACHE_DIT_SCM_POLICY`dynamicSCM caching policy
      `SGLANG_CACHE_DIT_SCM_COMPUTE_BINS`not setCustom SCM compute bins
      `SGLANG_CACHE_DIT_SCM_CACHE_BINS`not setCustom SCM cache bins
      + +## Cloud Storage + +These variables configure S3-compatible cloud storage for automatically uploading generated images and videos. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Environment VariableDefaultDescription
      `SGLANG_CLOUD_STORAGE_TYPE`not setSet to `s3` to enable cloud storage
      `SGLANG_S3_BUCKET_NAME`not setThe name of the S3 bucket
      `SGLANG_S3_ENDPOINT_URL`not setCustom endpoint URL (for MinIO, OSS, etc.)
      `SGLANG_S3_REGION_NAME`us-east-1AWS region name
      `SGLANG_S3_ACCESS_KEY_ID`not setAWS Access Key ID
      `SGLANG_S3_SECRET_ACCESS_KEY`not setAWS Secret Access Key
      diff --git a/docs_new/docs/sglang-diffusion/index.mdx b/docs_new/docs/sglang-diffusion/index.mdx new file mode 100644 index 000000000..5e4a54d73 --- /dev/null +++ b/docs_new/docs/sglang-diffusion/index.mdx @@ -0,0 +1,65 @@ +--- +title: SGLang Diffusion +description: Accelerated image and video generation with diffusion models. +--- + +SGLang Diffusion is an inference framework for accelerated image and video generation using diffusion models. It provides an end-to-end unified pipeline with optimized kernels and an efficient scheduler loop. + +## Key features + +* **Broad model support:** Wan series, FastWan series, Hunyuan, Qwen-Image, Qwen-Image-Edit, Flux, Z-Image, GLM-Image, and more +* **Fast inference:** optimized kernels, efficient scheduler loop, and Cache-DiT acceleration +* **Ease of use:** OpenAI-compatible API, CLI, and Python SDK +* **Multi-platform:** NVIDIA GPUs (H100, H200, A100, B200, 4090), AMD GPUs (MI300X, MI325X), and Ascend NPU (A2, A3) + +## Quick start + +1. **Install SGLang Diffusion** + +```bash +uv pip install "sglang[diffusion]" --prerelease=allow +``` + +See the [installation guide](./installation) for more installation methods and ROCm-specific instructions. + +2. **Run a one-off generation** + +```bash +sglang generate --model-path Qwen/Qwen-Image \ + --prompt "A beautiful sunset over the mountains" \ + --save-output +``` + +3. **Serve with the OpenAI-compatible API** + +```bash +sglang serve --model-path Qwen/Qwen-Image --port 30010 +``` + +## CLI quick reference + +### Generate (one-off generation) + +```bash +sglang generate --model-path --prompt "" --save-output +``` + +### Serve (HTTP server) + +```bash +sglang serve --model-path --port 30010 +``` + +### Enable Cache-DiT acceleration + +```bash +SGLANG_CACHE_DIT_ENABLED=true sglang generate --model-path --prompt "" +``` + +## References + +* [SGLang GitHub](https://github.com/sgl-project/sglang) +* [Cache-DiT](https://github.com/vipshop/cache-dit) +* [FastVideo](https://github.com/hao-ai-lab/FastVideo) +* [xDiT](https://github.com/xdit-project/xDiT) +* [Diffusers](https://github.com/huggingface/diffusers) diff --git a/docs_new/docs/sglang-diffusion/installation.mdx b/docs_new/docs/sglang-diffusion/installation.mdx new file mode 100644 index 000000000..da8d12cec --- /dev/null +++ b/docs_new/docs/sglang-diffusion/installation.mdx @@ -0,0 +1,110 @@ +--- +title: Install SGLang Diffusion +description: Install SGLang Diffusion on NVIDIA, AMD, MUSA, and Ascend platforms. +--- + +You can install SGLang Diffusion using one of the methods below. + +## Standard installation (NVIDIA GPUs) + +**Platform:** NVIDIA GPUs (CUDA) + + + + Use `uv` for faster installation: + + ```bash + pip install --upgrade pip + pip install uv + uv pip install "sglang[diffusion]" --prerelease=allow + ``` + + + + ```bash + git clone https://github.com/sgl-project/sglang.git + cd sglang + pip install --upgrade pip + pip install -e "python[diffusion]" + ``` + + Or with `uv`: + + ```bash + uv pip install -e "python[diffusion]" --prerelease=allow + ``` + + + + The Docker images are available on Docker Hub at [lmsysorg/sglang](https://hub.docker.com/r/lmsysorg/sglang/tags), built from the [Dockerfile](https://github.com/sgl-project/sglang/blob/main/docker/Dockerfile). Replace `` below with your HuggingFace Hub [token](https://huggingface.co/docs/hub/en/security-tokens). + + ```bash + docker run --gpus all \ + --shm-size 32g \ + -p 30000:30000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --env "HF_TOKEN=" \ + --ipc=host \ + lmsysorg/sglang:dev \ + zsh -c '\ + echo "Installing diffusion dependencies..." && \ + pip install -e "python[diffusion]" && \ + echo "Starting SGLang-Diffusion..." && \ + sglang generate \ + --model-path black-forest-labs/FLUX.1-dev \ + --prompt "A logo With Bold Large text: SGL Diffusion" \ + --save-output \ + ' + ``` + + + +## Platform-specific installs + +Use the tab that matches your accelerator. + + + + **Platform:** AMD Instinct GPUs (ROCm) + + For AMD Instinct GPUs (for example, MI300X), use the ROCm-enabled Docker image: + + ```bash + docker run --device=/dev/kfd --device=/dev/dri --ipc=host \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --env HF_TOKEN= \ + lmsysorg/sglang:v0.5.9-rocm700-mi30x \ + sglang generate --model-path black-forest-labs/FLUX.1-dev --prompt "A logo With Bold Large text: SGL Diffusion" --save-output + ``` + + For detailed ROCm system configuration and installation from source, see [AMD GPUs](../hardware-platforms/amd-gpus). + + + + **Platform:** Moore Threads GPUs (MUSA) + + For Moore Threads GPUs (MTGPU) with the MUSA software stack: + + ```bash + git clone https://github.com/sgl-project/sglang.git + cd sglang + pip install --upgrade pip + rm -f python/pyproject.toml && mv python/pyproject_other.toml python/pyproject.toml + pip install -e "python[all_musa]" + ``` + + + + **Platform:** Ascend NPU + + For Ascend NPU, follow the [NPU installation guide](../hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support). + + Quick test: + + ```bash + sglang generate --model-path black-forest-labs/FLUX.1-dev \ + --prompt "A logo With Bold Large text: SGL Diffusion" \ + --save-output + ``` + + diff --git a/docs_new/docs/sglang-diffusion/performance-optimization.mdx b/docs_new/docs/sglang-diffusion/performance-optimization.mdx new file mode 100644 index 000000000..a578a3bea --- /dev/null +++ b/docs_new/docs/sglang-diffusion/performance-optimization.mdx @@ -0,0 +1,105 @@ +--- +title: "Performance Optimization" +description: "Optimize SGLang diffusion performance with caching, kernels, and profiling." +--- + +SGLang-Diffusion provides multiple performance optimization strategies to accelerate inference. This section covers all available performance tuning options. + +## Overview + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      OptimizationTypeDescription
      Cache-DiTCachingBlock-level caching with DBCache, TaylorSeer, and SCM
      TeaCacheCachingTimestep-level caching using L1 similarity
      Attention BackendsKernelOptimized attention implementations (FlashAttention, SageAttention, etc.)
      ProfilingDiagnosticsPyTorch Profiler and Nsight Systems guidance
      + +## Caching Strategies + +SGLang supports two complementary caching approaches: + +### Cache-DiT + +[Cache-DiT](https://github.com/vipshop/cache-dit) provides block-level caching with advanced strategies. It can achieve up to **1.69x speedup**. + +**Quick Start:** +```bash +SGLANG_CACHE_DIT_ENABLED=true \ +sglang generate --model-path Qwen/Qwen-Image \ + --prompt "A beautiful sunset over the mountains" +``` + +**Key Features:** +- **DBCache**: Dynamic block-level caching based on residual differences +- **TaylorSeer**: Taylor expansion-based calibration for optimized caching +- **SCM**: Step-level computation masking for additional speedup + +See [Cache-DiT documentation](./cache-dit) for detailed configuration. + +### TeaCache + +TeaCache (Temporal similarity-based caching) accelerates diffusion inference by detecting when consecutive denoising steps are similar enough to skip computation entirely. + +**Quick Overview:** +- Tracks L1 distance between modulated inputs across timesteps +- When accumulated distance is below threshold, reuses cached residual +- Supports CFG with separate positive/negative caches + +**Supported Models:** Wan (wan2.1, wan2.2), Hunyuan (HunyuanVideo), Z-Image + +See [TeaCache documentation](./tea-cache) for detailed configuration. + +## Attention Backends + +Different attention backends offer varying performance characteristics depending on your hardware and model: + +- **FlashAttention**: Fastest on NVIDIA GPUs with fp16/bf16 +- **SageAttention**: Alternative optimized implementation +- **xformers**: Memory-efficient attention +- **SDPA**: PyTorch native scaled dot-product attention + +See [Attention backends](./attention-backends) for platform support and configuration options. + +## Profiling + +To diagnose performance bottlenecks, SGLang-Diffusion supports profiling tools: + +- **PyTorch Profiler**: Built-in Python profiling +- **Nsight Systems**: GPU kernel-level analysis + +See [Profiling guide](./profiling) for detailed instructions. + +## References + +- [Cache-DiT Repository](https://github.com/vipshop/cache-dit) +- [TeaCache Paper](https://arxiv.org/abs/2411.14324) diff --git a/docs_new/docs/sglang-diffusion/profiling.mdx b/docs_new/docs/sglang-diffusion/profiling.mdx new file mode 100644 index 000000000..767a6cfab --- /dev/null +++ b/docs_new/docs/sglang-diffusion/profiling.mdx @@ -0,0 +1,139 @@ +--- +title: "Profiling" +description: "Profile SGLang diffusion workloads with PyTorch Profiler and Nsight Systems." +--- + +This guide covers profiling techniques for multimodal generation pipelines in SGLang. + +## PyTorch Profiler + +PyTorch Profiler provides detailed kernel execution time, call stack, and GPU utilization metrics. + +### Denoising Stage Profiling + +Profile the denoising stage with sampled timesteps (default: 5 steps after 1 warmup step): + +```bash +sglang generate \ + --model-path Qwen/Qwen-Image \ + --prompt "A Logo With Bold Large Text: SGL Diffusion" \ + --seed 0 \ + --profile +``` + +**Parameters:** +- `--profile`: Enable profiling for the denoising stage +- `--num-profiled-timesteps N`: Number of timesteps to profile after warmup (default: 5) + - Smaller values reduce trace file size + - Example: `--num-profiled-timesteps 10` profiles 10 steps after 1 warmup step + +### Full Pipeline Profiling + +Profile all pipeline stages (text encoding, denoising, VAE decoding, etc.): + +```bash +sglang generate \ + --model-path Qwen/Qwen-Image \ + --prompt "A Logo With Bold Large Text: SGL Diffusion" \ + --seed 0 \ + --profile \ + --profile-all-stages +``` + +**Parameters:** +- `--profile-all-stages`: Used with `--profile`, profile all pipeline stages instead of just denoising + +### Output Location + +By default, trace files are saved in the ./logs/ directory. + +The exact output file path will be shown in the console output, for example: + +```bash +[mm-dd hh:mm:ss] Saved profiler traces to: /sgl-workspace/sglang/logs/mocked_fake_id_for_offline_generate-5_steps-global-rank0.trace.json.gz +``` + +### View Traces + +Load and visualize trace files at: +- https://ui.perfetto.dev/ (recommended) +- chrome://tracing (Chrome only) + +For large trace files, reduce `--num-profiled-timesteps` or avoid using `--profile-all-stages`. + + +### `--perf-dump-path` (Stage/Step Timing Dump) + +Besides profiler traces, you can also dump a lightweight JSON report that contains: +- stage-level timing breakdown for the full pipeline +- step-level timing breakdown for the denoising stage (per diffusion step) + +This is useful to quickly identify which stage dominates end-to-end latency, and whether denoising steps have uniform runtimes (and if not, which step has an abnormal spike). + +The dumped JSON contains a `denoise_steps_ms` field formatted as an array of objects, each with a `step` key (the step index) and a `duration_ms` key. + +Example: + +```bash +sglang generate \ + --model-path \ + --prompt "" \ + --perf-dump-path perf.json +``` + +## Nsight Systems + +Nsight Systems provides low-level CUDA profiling with kernel details, register usage, and memory access patterns. + +### Installation + +See the [SGLang profiling guide](../developer_guide/benchmark_and_profiling#profile-with-nsight) for installation instructions. + +### Basic Profiling + +Profile the entire pipeline execution: + +```bash +nsys profile \ + --trace-fork-before-exec=true \ + --cuda-graph-trace=node \ + --force-overwrite=true \ + -o QwenImage \ + sglang generate \ + --model-path Qwen/Qwen-Image \ + --prompt "A Logo With Bold Large Text: SGL Diffusion" \ + --seed 0 +``` + +### Targeted Stage Profiling + +Use `--delay` and `--duration` to capture specific stages and reduce file size: + +```bash +nsys profile \ + --trace-fork-before-exec=true \ + --cuda-graph-trace=node \ + --force-overwrite=true \ + --delay 10 \ + --duration 30 \ + -o QwenImage_denoising \ + sglang generate \ + --model-path Qwen/Qwen-Image \ + --prompt "A Logo With Bold Large Text: SGL Diffusion" \ + --seed 0 +``` + +**Parameters:** +- `--delay N`: Wait N seconds before starting capture (skip initialization overhead) +- `--duration N`: Capture for N seconds (focus on specific stages) +- `--force-overwrite`: Overwrite existing output files + +## Notes + +- **Reduce trace size**: Use `--num-profiled-timesteps` with smaller values or `--delay`/`--duration` with Nsight Systems +- **Stage-specific analysis**: Use `--profile` alone for denoising stage, add `--profile-all-stages` for full pipeline +- **Multiple runs**: Profile with different prompts and resolutions to identify bottlenecks across workloads + +## FAQ + +- If you are profiling `sglang generate` with Nsight Systems and find that the generated profiler file did not capture any CUDA kernels, you can resolve this issue by increasing the model's inference steps to extend the execution time. diff --git a/docs_new/docs/sglang-diffusion/supported-models.mdx b/docs_new/docs/sglang-diffusion/supported-models.mdx new file mode 100644 index 000000000..3af2f89ad --- /dev/null +++ b/docs_new/docs/sglang-diffusion/supported-models.mdx @@ -0,0 +1,350 @@ +--- +title: "Supported Models" +description: "Check model compatibility across diffusion optimizations and backends." +--- + +The table below shows every supported model and the optimizations supported for them. + +Key: + +- `Yes` = Compatible +- `No` = Incompatible +- `N/A` = Not applicable + +## Models x Optimization + +The `HuggingFace Model ID` can be passed directly to `from_pretrained()` methods, and sglang-diffusion will use the optimal default parameters when initializing and generating videos. + +### Video Generation Models + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model NameHuggingFace Model IDResolutionsTeaCacheSliding Tile AttnSage AttnVideo Sparse Attention (VSA)Sparse Linear Attention (SLA)Sage Sparse Linear Attention (SageSLA)Sparse Video Gen 2 (SVG2)
      FastWan2.1 T2V 1.3B`FastVideo/FastWan2.1-T2V-1.3B-Diffusers`480pN/AN/AN/AYesNoNoNo
      FastWan2.2 TI2V 5B Full Attn`FastVideo/FastWan2.2-TI2V-5B-FullAttn-Diffusers`720pN/AN/AN/AYesNoNoNo
      Wan2.2 TI2V 5B`Wan-AI/Wan2.2-TI2V-5B-Diffusers`720pN/AN/AYesN/ANoNoNo
      Wan2.2 T2V A14B`Wan-AI/Wan2.2-T2V-A14B-Diffusers`480p, 720pNoNoYesN/ANoNoNo
      Wan2.2 I2V A14B`Wan-AI/Wan2.2-I2V-A14B-Diffusers`480p, 720pNoNoYesN/ANoNoNo
      HunyuanVideo`hunyuanvideo-community/HunyuanVideo`720x1280, 544x960NoYesYesN/ANoNoYes
      FastHunyuan`FastVideo/FastHunyuan-diffusers`720x1280, 544x960NoYesYesN/ANoNoYes
      Wan2.1 T2V 1.3B`Wan-AI/Wan2.1-T2V-1.3B-Diffusers`480pYesYesYesN/ANoNoYes
      Wan2.1 T2V 14B`Wan-AI/Wan2.1-T2V-14B-Diffusers`480p, 720pYesYesYesN/ANoNoYes
      Wan2.1 I2V 480P`Wan-AI/Wan2.1-I2V-14B-480P-Diffusers`480pYesYesYesN/ANoNoYes
      Wan2.1 I2V 720P`Wan-AI/Wan2.1-I2V-14B-720P-Diffusers`720pYesYesYesN/ANoNoYes
      TurboWan2.1 T2V 1.3B`IPostYellow/TurboWan2.1-T2V-1.3B-Diffusers`480pYesNoNoNoYesYesN/A
      TurboWan2.1 T2V 14B`IPostYellow/TurboWan2.1-T2V-14B-Diffusers`480pYesNoNoNoYesYesN/A
      TurboWan2.1 T2V 14B 720P`IPostYellow/TurboWan2.1-T2V-14B-720P-Diffusers`720pYesNoNoNoYesYesN/A
      TurboWan2.2 I2V A14B`IPostYellow/TurboWan2.2-I2V-A14B-Diffusers`720pYesNoNoNoYesYesN/A
      + + +1. Wan2.2 TI2V 5B has known quality issues for some I2V workloads. +2. SageSLA is based on SpargeAttn. Install SpargeAttn first with `pip install git+https://github.com/thu-ml/SpargeAttn.git --no-build-isolation`. + + +### Image Generation Models + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model NameHuggingFace Model IDResolutions
      FLUX.1-dev`black-forest-labs/FLUX.1-dev`Any resolution
      FLUX.2-dev`black-forest-labs/FLUX.2-dev`Any resolution
      FLUX.2-Klein`black-forest-labs/FLUX.2-klein-4B`Any resolution
      Z-Image-Turbo`Tongyi-MAI/Z-Image-Turbo`Any resolution
      GLM-Image`zai-org/GLM-Image`Any resolution
      Qwen Image`Qwen/Qwen-Image`Any resolution
      Qwen Image 2512`Qwen/Qwen-Image-2512`Any resolution
      Qwen Image Edit`Qwen/Qwen-Image-Edit`Any resolution
      + +## Verified LoRA Examples + +This section lists example LoRAs that have been explicitly tested and verified with each base model in the **SGLang Diffusion** pipeline. + + +LoRAs that are not listed here are not necessarily incompatible. +In practice, most standard LoRAs are expected to work, especially those following common Diffusers or SD-style conventions. +The entries below simply reflect configurations that have been manually validated by the SGLang team. + + +### Verified LoRAs by Base Model + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Base ModelSupported LoRAs
      Wan2.2`lightx2v/Wan2.2-Distill-Loras`
      `Cseti/wan2.2-14B-Arcane_Jinx-lora-v1`
      Wan2.1`lightx2v/Wan2.1-Distill-Loras`
      Z-Image-Turbo`tarn59/pixel_art_style_lora_z_image_turbo`
      `wcde/Z-Image-Turbo-DeJPEG-Lora`
      Qwen-Image`lightx2v/Qwen-Image-Lightning`
      `flymy-ai/qwen-image-realism-lora`
      `prithivMLmods/Qwen-Image-HeadshotX`
      `starsfriday/Qwen-Image-EVA-LoRA`
      Qwen-Image-Edit`ostris/qwen_image_edit_inpainting`
      `lightx2v/Qwen-Image-Edit-2511-Lightning`
      Flux`dvyio/flux-lora-simple-illustration`
      `XLabs-AI/flux-furry-lora`
      `XLabs-AI/flux-RealismLora`
      + +## Special requirements + +### Sliding Tile Attention + +- Currently, only Hopper GPUs (H100s) are supported. diff --git a/docs_new/docs/sglang-diffusion/tea-cache.mdx b/docs_new/docs/sglang-diffusion/tea-cache.mdx new file mode 100644 index 000000000..78b4d3714 --- /dev/null +++ b/docs_new/docs/sglang-diffusion/tea-cache.mdx @@ -0,0 +1,143 @@ +--- +title: "TeaCache Acceleration" +description: "Configure TeaCache for temporal similarity-based diffusion acceleration." +--- + +> **Note**: This is one of two caching strategies available in SGLang. +> For an overview of all caching options, see [SGLang diffusion overview](../../sglang-diffusion/intro). + +TeaCache (Temporal similarity-based caching) accelerates diffusion inference by detecting when consecutive denoising steps are similar enough to skip computation entirely. + +## Overview + +TeaCache works by: +1. Tracking the L1 distance between modulated inputs across consecutive timesteps +2. Accumulating the rescaled L1 distance over steps +3. When accumulated distance is below a threshold, reusing the cached residual +4. Supporting CFG (Classifier-Free Guidance) with separate positive/negative caches + +## How It Works + +### L1 Distance Tracking + +At each denoising step, TeaCache computes the relative L1 distance between the current and previous modulated inputs: + +```text +rel_l1 = |current - previous|.mean() / |previous|.mean() +``` + +This distance is then rescaled using polynomial coefficients and accumulated: + +```text +accumulated += poly(coefficients)(rel_l1) +``` + +### Cache Decision + +- If `accumulated >= threshold`: Force computation, reset accumulator +- If `accumulated < threshold`: Skip computation, use cached residual + +### CFG Support + +For models that support CFG cache separation (Wan, Hunyuan, Z-Image), TeaCache maintains separate caches for positive and negative branches: +- `previous_modulated_input` / `previous_residual` for positive branch +- `previous_modulated_input_negative` / `previous_residual_negative` for negative branch + +For models that don't support CFG separation (Flux, Qwen), TeaCache is automatically disabled when CFG is enabled. + +## Configuration + +TeaCache is configured via `TeaCacheParams` in the sampling parameters: + +```python +from sglang.multimodal_gen.configs.sample.teacache import TeaCacheParams + +params = TeaCacheParams( + teacache_thresh=0.1, # Threshold for accumulated L1 distance + coefficients=[1.0, 0.0, 0.0], # Polynomial coefficients for L1 rescaling +) +``` + +### Parameters + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ParameterTypeDescription
      `teacache_thresh`floatThreshold for accumulated L1 distance. Lower = more caching, faster but potentially lower quality
      `coefficients`list[float]Polynomial coefficients for L1 rescaling. Model-specific tuning
      + +### Model-Specific Configurations + +Different models may have different optimal configurations. The coefficients are typically tuned per-model to balance speed and quality. + +## Supported Models + +TeaCache is built into the following model families: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model FamilyCFG Cache SeparationNotes
      Wan (wan2.1, wan2.2)YesFull support
      Hunyuan (HunyuanVideo)YesTo be supported
      Z-ImageYesTo be supported
      FluxNoTo be supported
      QwenNoTo be supported
      + + +## References + +- [TeaCache: Accelerating Diffusion Models with Temporal Similarity](https://arxiv.org/abs/2411.14324) diff --git a/docs_new/docs/supported-models.mdx b/docs_new/docs/supported-models.mdx new file mode 100644 index 000000000..d4f2ea757 --- /dev/null +++ b/docs_new/docs/supported-models.mdx @@ -0,0 +1,87 @@ +--- +title: Supported models +description: See which families of SGLang-compatible models are actively maintained. +mode: wide +--- + +SGLang supports model families across text generation, retrieval, and reward workflows. Browse the sections below for the primary product paths and jump to the detail pages when you are ready to explore a specific class. + +### Text generation + + + + Production-tuned Llama and Qwen families validated for high-throughput + serving. + + + Vision-text hybrids that stay responsive on multi-GPU setups. + + + Score-based and diffusion backbones for structured text generation + workflows. + + + +### Retrieval and ranking + + + + Dense and sparse embeddings optimized with FlashInfer kernels. + + + Low-latency rerankers for multi-stage retrieval pipelines. + + + Lightweight classifiers covering safety, intent, and context filters. + + + +### Specialized models + + + + RLHF and reward scoring pipelines optimized for production latency. + + diff --git a/docs_new/docs/supported-models/classification-models.mdx b/docs_new/docs/supported-models/classification-models.mdx new file mode 100644 index 000000000..510effe2f --- /dev/null +++ b/docs_new/docs/supported-models/classification-models.mdx @@ -0,0 +1,323 @@ +--- +title: Classification Models +--- + +This document describes the `/v1/classify` API endpoint in SGLang, which is compatible with vLLM's classification API format. + +## Overview + +The classification API allows you to classify text inputs using classification models. This implementation follows the same format as vLLM's 0.7.0 classification API. + +## API endpoint + +```text Output +POST /v1/classify +``` + +## Request format + +```json Config +{ + "model": "model_name", + "input": "text to classify" +} +``` + +### Parameters + + + The name of the classification model to use. + + + + The text to classify. + + + + User identifier for tracking. + + + + Request ID for tracking. + + + + Request priority. + + +## Response format + +```json Config +{ + "id": "classify-9bf17f2847b046c7b2d5495f4b4f9682", + "object": "list", + "created": 1745383213, + "model": "jason9693/Qwen2.5-1.5B-apeach", + "data": [ + { + "index": 0, + "label": "Default", + "probs": [0.565970778465271, 0.4340292513370514], + "num_classes": 2 + } + ], + "usage": { + "prompt_tokens": 10, + "total_tokens": 10, + "completion_tokens": 0, + "prompt_tokens_details": null + } +} +``` + +### Response fields + + + Unique identifier for the classification request. + + + + Always `"list"`. + + + + Unix timestamp when the request was created. + + + + The model used for classification. + + + + Array of classification results. + + + + Index of the result. + + + + Predicted class label. + + + + Array of probabilities for each class. + + + + Total number of classes. + + + + + + + Token usage information. + + + + Number of input tokens. + + + + Total number of tokens. + + + + Number of completion tokens (always `0` for classification). + + + + Additional token details (optional). + + + + + +## Example usage + + + + ```bash Command + curl -v "http://127.0.0.1:8000/v1/classify" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "jason9693/Qwen2.5-1.5B-apeach", + "input": "Loved the new café—coffee was great." + }' + ``` + + + ```python Example + import requests + import json + + # Make classification request + response = requests.post( + "http://127.0.0.1:8000/v1/classify", + headers={"Content-Type": "application/json"}, + json={ + "model": "jason9693/Qwen2.5-1.5B-apeach", + "input": "Loved the new café—coffee was great." + } + ) + + # Parse response + result = response.json() + print(json.dumps(result, indent=2)) + ``` + + + + +## Supported models + +The classification API works with any classification model supported by SGLang, including: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelType
      `LlamaForSequenceClassification`Multi-class classification
      `Qwen2ForSequenceClassification`Multi-class classification
      `Qwen3ForSequenceClassification`Multi-class classification
      `BertForSequenceClassification`Multi-class classification
      `Gemma2ForSequenceClassification`Multi-class classification
      + + + The API automatically uses the `id2label` mapping from the model's `config.json` file to provide meaningful label names instead of generic class names. If `id2label` is not available, it falls back to `LABEL_0`, `LABEL_1`, etc., or `Class_0`, `Class_1` as a last resort. + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelType
      `InternLM2ForRewardModel`Single reward score
      `Qwen2ForRewardModel`Single reward score
      `LlamaForSequenceClassificationWithNormal_Weights`Special reward model
      + + + The `/classify` endpoint in SGLang was originally designed for reward models but now supports all non-generative models. The `/v1/classify` endpoint provides a standardized vLLM-compatible interface for classification tasks. + + +
      +
      + +## Error handling + +The API returns appropriate HTTP status codes and error messages: + + + + + + + + + + + + + + + + + + + + + + +
      Status codeMeaning
      `400 Bad Request`Invalid request format or missing required fields
      `500 Internal Server Error`Server-side processing error
      + +Error response format: + +```json Config +{ + "error": "Error message", + "type": "error_type", + "code": 400 +} +``` + +## Implementation details + + + Handles routing and request/response models in + `sgl-model-gateway/src/protocols/spec.rs`. + + + + Implements the actual endpoint in + `python/sglang/srt/entrypoints/http_server.py`. + + + + Handles the classification logic in + `python/sglang/srt/entrypoints/openai/serving_classify.py`. + + +## Testing + +Use the provided test script to verify the implementation: + + +```bash Command +python test_classify_api.py +``` + + +## Compatibility + + + This implementation is compatible with vLLM's classification API format, + allowing seamless migration from vLLM to SGLang for classification tasks. + diff --git a/docs_new/docs/supported-models/diffusion-language-models.mdx b/docs_new/docs/supported-models/diffusion-language-models.mdx new file mode 100644 index 000000000..e3adf769b --- /dev/null +++ b/docs_new/docs/supported-models/diffusion-language-models.mdx @@ -0,0 +1,13 @@ +--- +title: Diffusion language models +--- + +For detailed documentation on diffusion models in SGLang, see the [SGLang Diffusion](/docs/sglang-diffusion/index) section under Docs. + + + Learn about score-based diffusion backbones, supported models, and usage patterns. + diff --git a/docs_new/docs/supported-models/embedding-models.mdx b/docs_new/docs/supported-models/embedding-models.mdx new file mode 100644 index 000000000..1383440f1 --- /dev/null +++ b/docs_new/docs/supported-models/embedding-models.mdx @@ -0,0 +1,173 @@ +--- +title: Embedding models +description: Dense and sparse embedding models with FlashInfer acceleration and SGLang's batching infrastructure. +--- + +SGLang provides robust support for embedding models by integrating efficient serving mechanisms with its flexible programming interface. This integration allows for streamlined handling of embedding tasks, facilitating faster and more accurate retrieval and semantic search operations. SGLang's architecture enables better resource utilization and reduced latency in embedding model deployment. + + + Embedding models must be launched with the `--is-embedding` flag. Some models + may also require `--trust-remote-code`. + + +## Quick start + +1. **Launch the server** + +```bash +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-Embedding-4B \ + --is-embedding \ + --host 0.0.0.0 \ + --port 30000 +``` + +2. **Send a client request** + +```python +import requests + +url = "http://127.0.0.1:30000" + +payload = { + "model": "Qwen/Qwen3-Embedding-4B", + "input": "What is the capital of France?", + "encoding_format": "float" +} + +response = requests.post(url + "/v1/embeddings", json=payload).json() +print("Embedding:", response["data"][0]["embedding"]) +``` + +## Multimodal embedding example + +For multimodal models like GME that support both text and images: + +1. **Launch the server with a multimodal model** + +```bash +python3 -m sglang.launch_server \ + --model-path Alibaba-NLP/gme-Qwen2-VL-2B-Instruct \ + --is-embedding \ + --chat-template gme-qwen2-vl \ + --host 0.0.0.0 \ + --port 30000 +``` + +2. **Send a multimodal request** + +```python +import requests + +url = "http://127.0.0.1:30000" + +text_input = "Represent this image in embedding space." +image_path = "https://huggingface.co/datasets/liuhaotian/llava-bench-in-the-wild/resolve/main/images/023.jpg" + +payload = { + "model": "gme-qwen2-vl", + "input": [ + {"text": text_input}, + {"image": image_path} + ], +} + +response = requests.post(url + "/v1/embeddings", json=payload).json() +print("Embeddings:", [x.get("embedding") for x in response.get("data", [])]) +``` + +## Matryoshka embedding example + +[Matryoshka Embeddings](https://sbert.net/examples/sentence_transformer/training/matryoshka/README.html#matryoshka-embeddings) or [Matryoshka Representation Learning (MRL)](https://arxiv.org/abs/2205.13147) is a technique used in training embedding models. It allows users to trade off between performance and cost. + +1. **Launch a Matryoshka-capable model** + +If the model config already includes `matryoshka_dimensions` or `is_matryoshka` then no override is needed. Otherwise, use `--json-model-override-args` as below: + +```bash +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-Embedding-0.6B \ + --is-embedding \ + --host 0.0.0.0 \ + --port 30000 \ + --json-model-override-args '{"matryoshka_dimensions": [128, 256, 512, 1024, 1536]}' +``` + + + Setting `"is_matryoshka": true` allows truncating to any dimension. Otherwise, the server validates that the specified dimension in the request is one of `matryoshka_dimensions`. Omitting `dimensions` in a request returns the full vector. + + +2. **Make requests with different output dimensions** + +```python +import requests + +url = "http://127.0.0.1:30000" + +# Request a truncated (Matryoshka) embedding by specifying a supported dimension. +payload = { + "model": "Qwen/Qwen3-Embedding-0.6B", + "input": "Explain diffusion models simply.", + "dimensions": 512 # change to 128 / 1024 / omit for full size +} + +response = requests.post(url + "/v1/embeddings", json=payload).json() +print("Embedding:", response["data"][0]["embedding"]) +``` + +## Supported models + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ModelExample HF modelChat templateNotes
      E5 (Llama/Mistral based)`intfloat/e5-mistral-7b-instruct`N/AHigh-quality text embeddings based on Mistral/Llama architectures
      GTE-Qwen2`Alibaba-NLP/gte-Qwen2-7B-instruct`N/AAlibaba's text embedding model with multilingual support
      Qwen3-Embedding`Qwen/Qwen3-Embedding-4B`N/ALatest Qwen3-based text embedding model for semantic representation
      BGE`BAAI/bge-large-en-v1.5`N/ABAAI's text embeddings (requires `--attention-backend triton` or `torch_native`)
      GME (Multimodal)`Alibaba-NLP/gme-Qwen2-VL-2B-Instruct``gme-qwen2-vl`Multimodal embedding for text and image cross-modal tasks
      CLIP`openai/clip-vit-large-patch14-336`N/AOpenAI's CLIP for image and text embeddings
      diff --git a/docs_new/docs/supported-models/large-language-models.mdx b/docs_new/docs/supported-models/large-language-models.mdx new file mode 100644 index 000000000..8af620259 --- /dev/null +++ b/docs_new/docs/supported-models/large-language-models.mdx @@ -0,0 +1,265 @@ +--- +title: Large Language Models +--- + +These models accept text input and produce text output (e.g., chat completions). They are primarily large language models (LLMs), some with mixture-of-experts (MoE) architectures for scaling. + +## Example launch Command + + +```shell Command +python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.2-1B-Instruct \ # example HF/local path + --host 0.0.0.0 \ + --port 30000 \ +``` + + +## Supported models + +Below the supported models are summarized in a table. + +If you are unsure if a specific architecture is implemented, you can search for it via GitHub. For example, to search for `Qwen3ForCausalLM`, use the expression: + +```text Output +repo:sgl-project/sglang path:/^python\/sglang\/srt\/models\// Qwen3ForCausalLM +``` + +in the GitHub search bar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model Family (Variants)Example HuggingFace IdentifierDescription
      **DeepSeek** (v1, v2, v3/R1)`deepseek-ai/DeepSeek-R1`Series of advanced reasoning-optimized models (including a 671B MoE) trained with reinforcement learning; top performance on complex reasoning, math, and code tasks. [SGLang provides Deepseek v3/R1 model-specific optimizations](../basic_usage/deepseek_v3) and [Reasoning Parser](../advanced_features/separate_reasoning.ipynb)
      **Kimi K2** (Thinking, Instruct)`moonshotai/Kimi-K2-Instruct`Moonshot AI's 1 trillion parameter MoE model (32B active) with 128K–256K context; state-of-the-art agentic intelligence with stable long-horizon agency across 200–300 sequential tool calls. Features MLA attention and native INT4 quantization. [See Reasoning Parser docs](../advanced_features/separate_reasoning.ipynb)
      **Kimi Linear** (48B-A3B)`moonshotai/Kimi-Linear-48B-A3B-Instruct`Moonshot AI's hybrid linear attention model (48B total, 3B active) with 1M token context; features Kimi Delta Attention (KDA) for up to 6× faster decoding and 75% KV cache reduction vs full attention.
      **GPT-OSS**`openai/gpt-oss-20b`, `openai/gpt-oss-120b`OpenAI’s latest GPT-OSS series for complex reasoning, agentic tasks, and versatile developer use cases.
      **Qwen** (3, 3MoE, 3Next, 2.5, 2 series)`Qwen/Qwen3-0.6B`, `Qwen/Qwen3-30B-A3B` `Qwen/Qwen3-Next-80B-A3B-Instruct `Alibaba’s latest Qwen3 series for complex reasoning, language understanding, and generation tasks; Support for MoE variants along with previous generation 2.5, 2, etc. [SGLang provides Qwen3 specific reasoning parser](../advanced_features/separate_reasoning.ipynb)
      **Llama** (2, 3.x, 4 series)`meta-llama/Llama-4-Scout-17B-16E-Instruct`Meta's open LLM series, spanning 7B to 400B parameters (Llama 2, 3, and new Llama 4) with well-recognized performance. [SGLang provides Llama-4 model-specific optimizations](../basic_usage/llama4.md)
      **Mistral** (Mixtral, NeMo, Small3)`mistralai/Mistral-7B-Instruct-v0.2`Open 7B LLM by Mistral AI with strong performance; extended into MoE (“Mixtral”) and NeMo Megatron variants for larger scale.
      **Gemma** (v1, v2, v3)`google/gemma-3-1b-it`Google’s family of efficient multilingual models (1B–27B); Gemma 3 offers a 128K context window, and its larger (4B+) variants support vision input.
      **Phi** (Phi-1.5, Phi-2, Phi-3, Phi-4, Phi-MoE series)`microsoft/Phi-4-multimodal-instruct`, `microsoft/Phi-3.5-MoE-instruct`Microsoft’s Phi family of small models (1.3B–5.6B); Phi-4-multimodal (5.6B) processes text, images, and speech, Phi-4-mini is a high-accuracy text model and Phi-3.5-MoE is a mixture-of-experts model.
      **MiniCPM** (v3, 4B)`openbmb/MiniCPM3-4B`OpenBMB’s series of compact LLMs for edge devices; MiniCPM 3 (4B) achieves GPT-3.5-level results in text tasks.
      **OLMo** (2, 3)`allenai/OLMo-3-1125-32B`, `allenai/OLMo-3-32B-Think`, `allenai/OLMo-2-1124-7B-Instruct`Allen AI’s series of Open Language Models designed to enable the science of language models.
      **OLMoE** (Open MoE)`allenai/OLMoE-1B-7B-0924`Allen AI’s open Mixture-of-Experts model (7B total, 1B active parameters) delivering state-of-the-art results with sparse expert activation.
      **MiniMax-M2** (M2, M2.1)`minimax/MiniMax-M2`, `minimax/MiniMax-M2.1`MiniMax’s SOTA LLM for coding & agentic workflows.
      **StableLM** (3B, 7B)`stabilityai/stablelm-tuned-alpha-7b`StabilityAI’s early open-source LLM (3B & 7B) for general text generation; a demonstration model with basic instruction-following ability.
      **Command-(R,A)** (Cohere)`CohereLabs/c4ai-command-r-v01`, `CohereLabs/c4ai-command-r7b-12-2024`, `CohereLabs/c4ai-command-a-03-2025`Cohere’s open conversational LLM (Command series) optimized for long context, retrieval-augmented generation, and tool use.
      **DBRX** (Databricks)`databricks/dbrx-instruct`Databricks’ 132B-parameter MoE model (36B active) trained on 12T tokens; competes with GPT-3.5 quality as a fully open foundation model.
      **Grok** (xAI)`xai-org/grok-1`xAI’s grok-1 model known for vast size(314B parameters) and high quality; integrated in SGLang for high-performance inference.
      **ChatGLM** (GLM-130B family)`THUDM/chatglm2-6b`Zhipu AI’s bilingual chat model (6B) excelling at Chinese-English dialogue; fine-tuned for conversational quality and alignment.
      **InternLM 2** (7B, 20B)`internlm/internlm2-7b`Next-gen InternLM (7B and 20B) from SenseTime, offering strong reasoning and ultra-long context support (up to 200K tokens).
      **ExaONE 3** (Korean-English)`LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct`LG AI Research’s Korean-English model (7.8B) trained on 8T tokens; provides high-quality bilingual understanding and generation.
      **Baichuan 2** (7B, 13B)`baichuan-inc/Baichuan2-13B-Chat`BaichuanAI’s second-generation Chinese-English LLM (7B/13B) with improved performance and an open commercial license.
      **XVERSE** (MoE)`xverse/XVERSE-MoE-A36B`Yuanxiang’s open MoE LLM (XVERSE-MoE-A36B: 255B total, 36B active) supporting ~40 languages; delivers 100B+ dense-level performance via expert routing.
      **SmolLM** (135M–1.7B)`HuggingFaceTB/SmolLM-1.7B`Hugging Face’s ultra-small LLM series (135M–1.7B params) offering surprisingly strong results, enabling advanced AI on mobile/edge devices.
      **GLM-4** (Multilingual 9B)`ZhipuAI/glm-4-9b-chat`Zhipu’s GLM-4 series (up to 9B parameters) – open multilingual models with support for 1M-token context and even a 5.6B multimodal variant (Phi-4V).
      **MiMo** (7B series)`XiaomiMiMo/MiMo-7B-RL`Xiaomi's reasoning-optimized model series, leverages Multiple-Token Prediction for faster inference.
      **ERNIE-4.5** (4.5, 4.5MoE series)`baidu/ERNIE-4.5-21B-A3B-PT`Baidu's ERNIE-4.5 series which consists of MoE with 47B and 3B active parameters, with the largest model having 424B total parameters, as well as a 0.3B dense model.
      **Arcee AFM-4.5B**`arcee-ai/AFM-4.5B-Base`Arcee's foundational model series for real world reliability and edge deployments.
      **Persimmon** (8B)`adept/persimmon-8b-chat`Adept’s open 8B model with a 16K context window and fast inference; trained for broad usability and licensed under Apache 2.0.
      **Solar** (10.7B)`upstage/SOLAR-10.7B-Instruct-v1.0`Upstage's 10.7B parameter model, optimized for instruction-following tasks. This architecture incorporates a depth-up scaling methodology, enhancing model performance.
      **Tele FLM** (52B-1T)`CofeAI/Tele-FLM`BAAI & TeleAI's multilingual model, available in 52-billion and 1-trillion parameter variants. It is a decoder-only transformer trained on ~2T tokens
      **Ling** (16.8B–290B)`inclusionAI/Ling-lite`, `inclusionAI/Ling-plus`InclusionAI’s open MoE models. Ling-Lite has 16.8B total / 2.75B active parameters, and Ling-Plus has 290B total / 28.8B active parameters. They are designed for high performance on NLP and complex reasoning tasks.
      **Granite 3.0, 3.1** (IBM)`ibm-granite/granite-3.1-8b-instruct`IBM's open dense foundation models optimized for reasoning, code, and business AI use cases. Integrated with Red Hat and watsonx systems.
      **Granite 3.0 MoE** (IBM)`ibm-granite/granite-3.0-3b-a800m-instruct`IBM’s Mixture-of-Experts models offering strong performance with cost-efficiency. MoE expert routing designed for enterprise deployment at scale.
      **GPT-J** (6B)`EleutherAI/gpt-j-6b`EleutherAI's GPT-2-like causal language model (6B) trained on the [Pile](https://pile.eleuther.ai/) dataset.
      **Orion** (14B)`OrionStarAI/Orion-14B-Base`A series of open-source multilingual large language models by OrionStarAI, pretrained on a 2.5T token multilingual corpus including Chinese, English, Japanese, Korean, etc, and it exhibits superior performance in these languages.
      **Llama Nemotron Super** (v1, v1.5, NVIDIA)`nvidia/Llama-3_3-Nemotron-Super-49B-v1`, `nvidia/Llama-3_3-Nemotron-Super-49B-v1_5`The [NVIDIA Nemotron](https://www.nvidia.com/en-us/ai-data-science/foundation-models/nemotron/) family of multimodal models provides state-of-the-art reasoning models specifically designed for enterprise-ready AI agents.
      **Llama Nemotron Ultra** (v1, NVIDIA)`nvidia/Llama-3_1-Nemotron-Ultra-253B-v1`The [NVIDIA Nemotron](https://www.nvidia.com/en-us/ai-data-science/foundation-models/nemotron/) family of multimodal models provides state-of-the-art reasoning models specifically designed for enterprise-ready AI agents.
      **NVIDIA Nemotron Nano 2.0**`nvidia/NVIDIA-Nemotron-Nano-9B-v2`The [NVIDIA Nemotron](https://www.nvidia.com/en-us/ai-data-science/foundation-models/nemotron/) family of multimodal models provides state-of-the-art reasoning models specifically designed for enterprise-ready AI agents. `Nemotron-Nano-9B-v2` is a hybrid Mamba-Transformer language model designed to increase throughput for reasoning workloads while achieving state-of-the-art accuracy compared to similarly-sized models.
      **StarCoder2** (3B-15B)`bigcode/starcoder2-7b`StarCoder2 is a family of open large language models (LLMs) specialized for code generation and understanding. It is the successor to StarCoder, jointly developed by the BigCode project (a collaboration between Hugging Face, ServiceNow Research, and other contributors).
      **Jet-Nemotron**`jet-ai/Jet-Nemotron-2B`Jet-Nemotron is a new family of hybrid-architecture language models that surpass state-of-the-art open-source full-attention language models, while achieving significant efficiency gains.
      **Trinity** (Nano, Mini)`arcee-ai/Trinity-Mini`Arcee's foundational MoE Trinity family of models, open weights under Apache 2.0.
      **Falcon-H1** (0.5B–34B)`tiiuae/Falcon-H1-34B-Instruct`TII's hybrid Mamba-Transformer architecture combining attention and state-space models for efficient long-context inference.
      **Hunyuan-Large** (389B, MoE)`tencent/Tencent-Hunyuan-Large`Tencent's open-source MoE model with 389B total / 52B active parameters, featuring Cross-Layer Attention (CLA) for improved efficiency.
      **IBM Granite 4.0 (Hybrid, Dense)**`ibm-granite/granite-4.0-h-micro`, `ibm-granite/granite-4.0-micro`IBM Granite 4.0 micro models: hybrid Mamba–MoE (`h-micro`) and dense (`micro`) variants. Enterprise-focused reasoning models
      diff --git a/docs_new/docs/supported-models/mindspore-models.mdx b/docs_new/docs/supported-models/mindspore-models.mdx new file mode 100644 index 000000000..f94987038 --- /dev/null +++ b/docs_new/docs/supported-models/mindspore-models.mdx @@ -0,0 +1,167 @@ +--- +title: "MindSpore Models" +--- + +MindSpore is a high-performance AI framework optimized for [Ascend NPUs](../hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support). This doc guides users to run MindSpore models in SGLang. + +## Requirements + +MindSpore currently only supports Ascend NPU devices. Users need to first install Ascend CANN software packages. The CANN software packages can be downloaded from the [Ascend Official Website](https://www.hiascend.com). The recommended version is 8.3.RC2. + +## Supported Models + +Currently, the following models are supported: + + + + Dense and MoE models + + + DeepSeek V3 and R1 models + + + Additional models are on the way + + + +## Installation + +Currently, MindSpore models are provided by an independent package `sgl-mindspore`. Support for MindSpore is built upon current SGLang support for Ascend NPU platform. Please first [install SGLang for Ascend NPU](../hardware-platforms/ascend-npus/SGLang-installation-with-NPUs-support) and then install `sgl-mindspore`. + + +```bash Install +git clone https://github.com/mindspore-lab/sgl-mindspore.git +cd sgl-mindspore +pip install -e . +``` + + +## Run Model + +Current SGLang-MindSpore supports Qwen3 and DeepSeek V3/R1 models. This doc uses Qwen3-8B as an example. + +### Offline Infer + +Use the following script for offline infer: + + +```python Offline Infer +import sglang as sgl + +# Initialize the engine with MindSpore backend +llm = sgl.Engine( + model_path="/path/to/your/model", # Local model path + device="npu", # Use NPU device + model_impl="mindspore", # MindSpore implementation + attention_backend="ascend", # Attention backend + tp_size=1, # Tensor parallelism size + dp_size=1 # Data parallelism size +) + +# Generate text +prompts = [ + "Hello, my name is", + "The capital of France is", + "The future of AI is" +] + +sampling_params = {"temperature": 0, "top_p": 0.9} +outputs = llm.generate(prompts, sampling_params) + +for prompt, output in zip(prompts, outputs): + print(f"Prompt: {prompt}") + print(f"Generated: {output['text']}") + print("---") +``` + + +### Start Server + + +```bash Single Node +python3 -m sglang.launch_server \ + --model-path /path/to/your/model \ + --host 0.0.0.0 \ + --device npu \ + --model-impl mindspore \ + --attention-backend ascend \ + --tp-size 1 \ + --dp-size 1 +``` +```bash Multi-Node Distributed +python3 -m sglang.launch_server \ + --model-path /path/to/your/model \ + --host 0.0.0.0 \ + --device npu \ + --model-impl mindspore \ + --attention-backend ascend \ + --dist-init-addr 127.0.0.1:29500 \ + --nnodes 2 \ + --node-rank 0 \ + --tp-size 4 \ + --dp-size 2 +``` + + +## Troubleshooting + +### Debug Mode + +Enable sglang debug logging by log-level argument: + + +```bash Debug Mode +python3 -m sglang.launch_server \ + --model-path /path/to/your/model \ + --host 0.0.0.0 \ + --device npu \ + --model-impl mindspore \ + --attention-backend ascend \ + --log-level DEBUG +``` + + +Enable MindSpore info and debug logging by setting environments: + + +```bash INFO +export GLOG_v=1 +``` +```bash DEBUG +export GLOG_v=0 +``` + + +### Explicitly Select Devices + +Use the following environment variable to explicitly select the devices to use: + + +```bash Select Devices +export ASCEND_RT_VISIBLE_DEVICES=4,5,6,7 +``` + + +### Some Communication Environment Issues + +In case of some environment with special communication environment, users need to set some environment variables: + + +```bash Disable LCCL +export MS_ENABLE_LCCL=off # current not support LCCL communication mode in SGLang-MindSpore +``` + + +### Some Dependencies of Protobuf + +In case of some environment with special protobuf version, users need to set some environment variables to avoid binary version mismatch: + + +```bash Fix Protobuf +export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python +``` + + +## Support + +For MindSpore-specific issues, refer to the [MindSpore documentation](https://www.mindspore.cn/). diff --git a/docs_new/docs/supported-models/modelscope.mdx b/docs_new/docs/supported-models/modelscope.mdx new file mode 100644 index 000000000..b9e20936a --- /dev/null +++ b/docs_new/docs/supported-models/modelscope.mdx @@ -0,0 +1,32 @@ +--- +title: "Use Models From ModelScope" +--- + +To use a model from [ModelScope](https://www.modelscope.cn), set the environment variable `SGLANG_USE_MODELSCOPE`. + + +```bash Set Environment Variable +export SGLANG_USE_MODELSCOPE=true +``` + + +We take [Qwen2-7B-Instruct](https://www.modelscope.cn/models/qwen/qwen2-7b-instruct) as an example. + +## Launch the Server + + +```bash Python +python -m sglang.launch_server --model-path qwen/Qwen2-7B-Instruct --port 30000 +``` +```bash Docker +docker run --gpus all \ + -p 30000:30000 \ + -v ~/.cache/modelscope:/root/.cache/modelscope \ + --env "SGLANG_USE_MODELSCOPE=true" \ + --ipc=host \ + lmsysorg/sglang:latest \ + python3 -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --host 0.0.0.0 --port 30000 +``` + + +ModelScope uses a different cache directory than Hugging Face. You may need to set it manually to avoid running out of disk space. diff --git a/docs_new/docs/supported-models/new-model-support.mdx b/docs_new/docs/supported-models/new-model-support.mdx new file mode 100644 index 000000000..cbaaedfca --- /dev/null +++ b/docs_new/docs/supported-models/new-model-support.mdx @@ -0,0 +1,307 @@ +--- +title: "How to Support New Models" +description: "This document explains how to add support for new language models and multimodal large language models (MLLMs) in SGLang. It also covers how to test new models and register external implementations." +--- + +## How to Support a New Language Model + +To support a new model in SGLang, you only need to add a single file under the [SGLang Models Directory](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/models). You can learn from existing model implementations and create a new file for your model. For most models, you should be able to find a similar model to start with (e.g., starting from Llama). Also refer how to [port a Model from vLLM to SGLang](#port-a-model-from-vllm-to-sglang). + +## How to Support a New Multimodal Large Language Model + +To support a new multimodal large language model (MLLM) in SGLang, there are several key components in addition to the standard LLM support: + +1. **Register your new model as multimodal:** +Extend `is_multimodal_model` in [model\_config.py](https://github.com/sgl-project/sglang/blob/0ab3f437aba729b348a683ab32b35b214456efc7/python/sglang/srt/configs/model_config.py#L561) to return `True` for your model. + +2. **Register a new chat-template:** +Only when your default chat-template is unable to accept images as input, register a new chat template in [conversation.py](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/conversation.py) and the corresponding matching function. + +3. **Add a multimodal data processor:** +Define a new `Processor` class that inherits from `BaseMultimodalProcessor` and register this processor as your model's dedicated processor. See [multimodal\_processor.py](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/multimodal/processors) for more details. + +4. **Handle multimodal tokens:** +Implement a `pad_input_ids` function for your new model. In this function, multimodal tokens in the prompt should be expanded (if necessary) and padded with multimodal-data-hashes so that SGLang can recognize different multimodal data with `RadixAttention`. + +5. **Handle image feature extraction:** +Implement a `get_image_feature` function for your new model, which extracts image features from raw image data and converts them into the embeddings used by the language model. + +6. **Adapt to vision attention:** +Adapt the multi-headed `Attention` of ViT with SGLang's `VisionAttention`. + +You can refer to [Qwen2VL](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/models/qwen2_vl.py) or other mllm implementations. These models demonstrate how to correctly handle both multimodal and textual inputs. + +## Testing and Debugging + +Please note all your testing and benchmarking results in PR description. + +### Interactive Debugging + +For interactive debugging, compare the outputs of Hugging Face/Transformers and SGLang. The following two commands should give the same text output and very similar prefill logits: + + +```bash Get reference output +python3 scripts/playground/reference_hf.py --model-path [new model] --model-type {text,mllm} +``` +```bash Get SGLang output +python3 -m sglang.bench_one_batch --correct --model [new model] +``` + + +### Add the Model to the Test Suite + +To ensure the new model is well maintained, add it to the test suite by including it in the `ALL_OTHER_MODELS` list in the [test\_generation\_models.py](https://github.com/sgl-project/sglang/blob/main/test/srt/models/test_generation_models.py) file, test the new model on your local machine and report the results on demonstrative benchmarks (GSM8K, MMLU, MMMU, MMMU-Pro, etc.) in your PR. + +For VLMs, also include a test in `test_vision_openai_server_{x}.py` (e.g. [test\_vision\_openai\_server\_a.py](https://github.com/sgl-project/sglang/blob/main/test/srt/test_vision_openai_server_a.py), [test\_vision\_openai\_server\_b.py](https://github.com/sgl-project/sglang/blob/main/test/srt/test_vision_openai_server_b.py)). + +This is an example command to run to test a new model on your local machine: + + +```bash Run Test +ONLY_RUN=Qwen/Qwen2-1.5B python3 -m unittest test_generation_models.TestGenerationModels.test_others +``` + + +### Benchmark + + + + Follow the MMMU benchmark [README](https://github.com/sgl-project/sglang/blob/main/benchmark/mmmu/README) to get SGLang vs. HF Transformer accuracy comparison. The accuracy score from SGLang run should not be much lower than that from HF Transformer run. Similarly, follow the [benchmark and profiling guide](../developer_guide/benchmark_and_profiling) to get performance comparison: TTFT and throughput must meet or exceed baselines (e.g., HF Transformer). + + + If you ran other evals, please note the results in PR description. + + + +## Port a Model from vLLM to SGLang + +The [vLLM Models Directory](https://github.com/vllm-project/vllm/tree/main/vllm/model_executor/models) is a valuable resource, as vLLM covers many models. SGLang reuses vLLM's interface and some layers, making it easier to port models from vLLM to SGLang. + +To port a model from vLLM to SGLang: + +- Compare these two files for guidance: + - [SGLang Llama Implementation](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/models/llama.py) + - [vLLM Llama Implementation](https://github.com/vllm-project/vllm/blob/main/vllm/model_executor/models/llama.py) +- The major differences include: + - **Replace vLLM's `Attention` with `RadixAttention`** (ensure you pass `layer_id` to `RadixAttention`). + - **Replace vLLM's `LogitsProcessor` with SGLang's `LogitsProcessor`.** + - **Replace the multi-headed `Attention` of ViT with SGLang's `VisionAttention`.** + - **Replace other vLLM layers** (such as `RMSNorm`, `SiluAndMul`) with SGLang layers. + - **Remove `Sample`.** + - **Change the `forward()` functions** and add a `forward_batch()` method. + - **Add `EntryClass`** at the end. + - **Ensure that the new implementation uses only SGLang components** and does not rely on any vLLM components. + +Make sure you add your new model to the supported models list in the supported models documentation. + +## Registering an External Model Implementation + +In addition to the methods above, you can register your new model with the `ModelRegistry` before launching the server. This allows you to integrate your model without modifying the source code. + +For example: + + +```python Register Model +from sglang.srt.models.registry import ModelRegistry +from sglang.srt.entrypoints.http_server import launch_server + +# For a single model, add it to the registry: +ModelRegistry.models[model_name] = model_class + +# For multiple models, you can imitate the import_model_classes() function: +from functools import lru_cache + +@lru_cache() +def import_new_model_classes(): + model_arch_name_to_cls = {} + # Populate model_arch_name_to_cls with your new model classes. + ... + return model_arch_name_to_cls + +ModelRegistry.models.update(import_new_model_classes()) + +# Launch the server with your server arguments: +launch_server(server_args) +``` + + +## Example: Implementing and Serving a Llama Wrapper Model + +Below is an introductory, step-by-step walkthrough on how to implement a new model end-to-end in SGLang and then run it via the [Offline Engine](../basic_usage/offline_engine_api). + +### Implementing Our Model + +To keep things simple, this new model will be a simple wrapper around [Llama 3.1-8B-Instruct](https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct), and our goal will be just to bias the output logits for each `forward` call by taking the square root of each individual logit. + +Let's start by defining our model in a file called `llama_wrapper.py`. The first step is to import the necessary libraries from SRT, which is SGLang's internal backend. + +```python llama_wrapper.py +import torch +from transformers import LlamaConfig +from typing import Optional +from sglang.srt.layers.logits_processor import LogitsProcessorOutput +from sglang.srt.layers.quantization.base_config import QuantizationConfig +from sglang.srt.model_executor.forward_batch_info import ForwardBatch, PPProxyTensors + +from sglang.srt.models.llama import LlamaForCausalLM +``` + +Next, we declare a new `class` for our model and have it inherit from `LlamaForCausalLM`, which allows our model to access `LlamaForCausalLM`'s predefined modules and layers, such as `LlamaAttention` and `LlamaMLP`. Note that almost all model implementations take in `config` and `quant_config` as arguments for their `__init__` method; `config` and `quant_config` are passed in via [`model_loader/loader.py`](https://github.com/sgl-project/sglang/blob/bf72b80122fd888bf619d17b96fa3e323ab809fc/python/sglang/srt/model_loader/loader.py#L219). Because we have inherited from `LlamaForCausalLM`, we can pass our parameters directly to its constructor, which will set the member variables for us. + + +```python Class Definition +class LlamaWrapper(LlamaForCausalLM): + def __init__( + self, + config: LlamaConfig, + quant_config: Optional[QuantizationConfig] = None, + prefix: str = "", + ) -> None: + super().__init__(config=config, quant_config=quant_config, prefix=prefix) +``` + + +Now, we want to define the `forward` method, which is what will be called at inference time. Note that the signature for `forward` is essentially the same for any model; you can take a look at the other models defined in the [`models` directory](https://github.com/sgl-project/sglang/tree/main/python/sglang/srt/models/) for references. To see where exactly `forward` is called in the SGLang runtime's internals, take a look at [`forward_decode`](https://github.com/sgl-project/sglang/blob/bf72b80122fd888bf619d17b96fa3e323ab809fc/python/sglang/srt/model_executor/model_runner.py#L1705) and [`forward_extend`](https://github.com/sgl-project/sglang/blob/bf72b80122fd888bf619d17b96fa3e323ab809fc/python/sglang/srt/model_executor/model_runner.py#L1724) in the [`ModelRunner` class](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/model_executor/model_runner.py). + + +```python Forward Method Signature + @torch.no_grad() + def forward( + self, + input_ids: torch.Tensor, + positions: torch.Tensor, + forward_batch: ForwardBatch, + pp_proxy_tensors: Optional[PPProxyTensors] = None, + input_embeds: Optional[torch.Tensor] = None, + get_embedding: bool = False, + ) -> LogitsProcessorOutput: +``` + + +We now call the `__call__` method for `self.model` (which is a member variable that `LlamaForCausalLM` defines in its `__init__` method), which eventually calls `LlamaForCausalLM`'s `forward` method. After that, we feed the `hidden_states` into our model's `LogitsProcessor` (again defined in `LlamaForCausalLM`). + + +```python Call Model and LogitsProcessor + hidden_states = self.model( + input_ids, + positions, + forward_batch, + input_embeds, + pp_proxy_tensors=pp_proxy_tensors, + ) + + res: LogitsProcessorOutput = self.logits_processor( + input_ids, + hidden_states, + self.lm_head, + forward_batch, + ) +``` + + +After receiving the logits for the next token, we can finally perform our biasing step. + + +```python Logit Biasing + orig_logits = res.next_token_logits + res.next_token_logits = torch.where( + orig_logits > 0, + orig_logits.sqrt(), + orig_logits + ) + + return res +``` + + +Now, our `LlamaWrapper` model is created and ready to be served! + +### Serving Our Model Via SGLang's Offline Engine + +The next step of this walkthrough involves hosting our new model offline, so that it can be served locally and without an HTTP server. + +First, create a new file called `run.py`. Now, we must ensure that SGLang's `ModelRegistry` can find our model. To do this, we first download the model's configuration and weights from Huggingface. + +```python run.py +import asyncio +from functools import lru_cache +from huggingface_hub import snapshot_download +from llama_wrapper import LlamaWrapper # Make sure to import our new model! +import sglang as sgl +from sglang.srt.models.registry import ModelRegistry + +# Make sure to request access to this model on Huggingface, then export your +# `HF_TOKEN` to download the model snapshot +llama_dir = snapshot_download( + repo_id="meta-llama/Llama-3.1-8B-Instruct", + local_dir="./llama_ckpt", +) +``` + +Now that we have our model on disk, we want to point it to `LlamaWrapper` by changing the `architectures` field in `./llama_ckpt/config.json` to be `LlamaWrapper`. That way, when we pass in the path of our model checkpoint to SGLang, it will know that we want to use "LlamaWrapper" instead of "LlamaForCausalLM" as our model. + +```json ./llama_ckpt/config.json +{ + "architectures": [ + # "LlamaForCausalLM" + "LlamaWrapper" + ], + ... +} +``` + +However, if we don't link our `LlamaWrapper` class to the "LlamaWrapper" registry keyword, then SGLang won't be able to find our model. Thus, to register our `LlamaWrapper`, we want to follow the steps in the above section titled "Registering an External Model Implementation". + + +```python Register LlamaWrapper +@lru_cache() +def import_new_model_classes(): + model_arch_name_to_cls = {"LlamaWrapper": LlamaWrapper} + return model_arch_name_to_cls + +ModelRegistry.models.update(import_new_model_classes()) +``` + + +Lastly, when we create our `Engine`, we just pass in the path to the local model directory. Then, our `LlamaWrapper` is ready to be served; for this walkthrough, we will use SGLang `Engine`'s non-streaming asynchronous generation endpoint. + + +```python Run Model +def main(): + llm = sgl.Engine(model_path="./llama_ckpt") + sampling_params = {"temperature": 0.2, "top_k": 5} + prompts = [ + "Write a short, neutral self-introduction for a fictional character. Hello, my name is", + "Provide a concise factual statement about France's capital city. The capital of France is", + "Explain possible future trends in artificial intelligence. The future of AI is", + ] + + asyncio.run(run_llm(llm, sampling_params, prompts)) + + llm.shutdown() + +async def run_llm( + llm, + sampling_params, + prompts, +) -> None: + outputs = await llm.async_generate(prompts, sampling_params) + + for prompt, output in zip(prompts, outputs): + print(f"\nPrompt: {prompt}") + print(f"Generated text: {output['text']}") + +if __name__ == "__main__": + main() +``` + + +Now, when we call `python run.py`, we will get the outputs of our newly created model! + +## Documentation + +Add to table of supported models in [generative\_models](/docs/supported-models/large-language-models) or [multimodal\_language\_models](/docs/supported-models/vision-language-models). + +--- + +By following these guidelines, you can add support for new language models and multimodal large language models in SGLang and ensure they are thoroughly tested and easily integrated into the system. diff --git a/docs_new/docs/supported-models/rerank-models.mdx b/docs_new/docs/supported-models/rerank-models.mdx new file mode 100644 index 000000000..dab840c6c --- /dev/null +++ b/docs_new/docs/supported-models/rerank-models.mdx @@ -0,0 +1,311 @@ +--- +title: Rerank models +--- + +SGLang offers comprehensive support for rerank models by incorporating optimized serving frameworks with a flexible programming interface. This setup enables efficient processing of cross-encoder reranking tasks, improving the accuracy and relevance of search result ordering. SGLang’s design ensures high throughput and low latency during reranker model deployment, making it ideal for semantic-based result refinement in large-scale retrieval systems. + +Rerank models in SGLang fall into two categories: + +- **Cross-encoder rerank models**: run with `--is-embedding` (embedding runner). +- **Decoder-only rerank models**: run **without** `--is-embedding` and use next-token logprob scoring (yes/no). + - Text-only (e.g. Qwen3-Reranker) + - Multimodal (e.g. Qwen3-VL-Reranker): also supports image/video content + +Some models may require `--trust-remote-code`. + + +## Supported rerank models + +| Model Family (Rerank) | Example HuggingFace Identifier | Chat Template | Description | +|------------------------------------------------|--------------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------| +| **BGE-Reranker (BgeRerankModel)** | `BAAI/bge-reranker-v2-m3` | N/A | Currently only support `attention-backend` `triton` and `torch_native`. High-performance cross-encoder reranker model from BAAI. Suitable for reranking search results based on semantic relevance. | +| **Qwen3-Reranker (decoder-only yes/no)** | `Qwen/Qwen3-Reranker-8B` | `examples/chat_template/qwen3_reranker.jinja` | Decoder-only reranker using next-token logprob scoring for labels (yes/no). Launch **without** `--is-embedding`. | +| **Qwen3-VL-Reranker (multimodal yes/no)** | `Qwen/Qwen3-VL-Reranker-2B` | `examples/chat_template/qwen3_vl_reranker.jinja` | Multimodal decoder-only reranker supporting text, images, and videos. Uses yes/no logprob scoring. Launch **without** `--is-embedding`. | + + +## Cross-Encoder Rerank (embedding runner) + +### Launch Command + +```shell +python3 -m sglang.launch_server \ + --model-path BAAI/bge-reranker-v2-m3 \ + --host 0.0.0.0 \ + --disable-radix-cache \ + --chunked-prefill-size -1 \ + --attention-backend triton \ + --is-embedding \ + --port 30000 +``` + +### Example Client Request + +```python +import requests + +url = "http://127.0.0.1:30000/v1/rerank" + +payload = { + "model": "BAAI/bge-reranker-v2-m3", + "query": "what is panda?", + "documents": [ + "hi", + "The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China." + ], + "top_n": 1, + "return_documents": True +} + +response = requests.post(url, json=payload) +response_json = response.json() + +for item in response_json: + if item.get("document"): + print(f"Score: {item['score']:.2f} - Document: '{item['document']}'") + else: + print(f"Score: {item['score']:.2f} - Index: {item['index']}") +``` + +**Request Parameters:** + +- `query` (required): The query text to rank documents against +- `documents` (required): List of documents to be ranked +- `model` (required): Model to use for reranking +- `top_n` (optional): Maximum number of documents to return. Defaults to returning all documents. If specified value is greater than the total number of documents, all documents will be returned. +- `return_documents` (optional): Whether to return documents in the response. Defaults to `True`. + +## Qwen3-Reranker (decoder-only yes/no rerank) + +### Launch Command + +```shell +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-Reranker-0.6B \ + --trust-remote-code \ + --disable-radix-cache \ + --host 0.0.0.0 \ + --port 8001 \ + --chat-template examples/chat_template/qwen3_reranker.jinja +``` + +Qwen3-Reranker uses decoder-only logprob scoring (yes/no). Do NOT launch it with `--is-embedding`. + +### Example Client Request (supports optional instruct, top_n, and return_documents) + +```shell +curl -X POST http://127.0.0.1:8001/v1/rerank \ + -H "Content-Type: application/json" \ + -d '{ + "model": "Qwen3-Reranker-0.6B", + "query": "法国首都是哪里?", + "documents": [ + "法国的首都是巴黎。", + "德国的首都是柏林。", + "香蕉是黄色的水果。" + ], + "instruct": "Given a web search query, retrieve relevant passages that answer the query.", + "top_n": 2, + "return_documents": true + }' +``` + +**Request Parameters:** + +- `query` (required): The query text to rank documents against +- `documents` (required): List of documents to be ranked +- `model` (required): Model to use for reranking +- `instruct` (optional): Instruction text for the reranker +- `top_n` (optional): Maximum number of documents to return. Defaults to returning all documents. If specified value is greater than the total number of documents, all documents will be returned. +- `return_documents` (optional): Whether to return documents in the response. Defaults to `True`. + +### Response Format + +`/v1/rerank` returns a list of objects (sorted by descending score): + +- `score`: float, higher means more relevant +- `document`: the original document string (only included when `return_documents` is `true`) +- `index`: the original index in the input `documents` +- `meta_info`: optional debug/usage info (may be present for some models) + +The number of returned results is controlled by the `top_n` parameter. If `top_n` is not specified or is greater than the total number of documents, all documents are returned. + +Example (with `return_documents: true`): + +```json +[ + {"score": 0.99, "document": "法国的首都是巴黎。", "index": 0}, + {"score": 0.01, "document": "德国的首都是柏林。", "index": 1}, + {"score": 0.00, "document": "香蕉是黄色的水果。", "index": 2} +] +``` + +Example (with `return_documents: false`): + +```json +[ + {"score": 0.99, "index": 0}, + {"score": 0.01, "index": 1}, + {"score": 0.00, "index": 2} +] +``` + +Example (with `top_n: 2`): + +```json +[ + {"score": 0.99, "document": "法国的首都是巴黎。", "index": 0}, + {"score": 0.01, "document": "德国的首都是柏林。", "index": 1} +] +``` + +### Common Pitfalls + +- If you launch Qwen3-Reranker with `--is-embedding`, `/v1/rerank` cannot compute yes/no logprob scores. Relaunch **without** `--is-embedding`. +- If you see a validation error like "score should be a valid number" and the backend returned a list, upgrade to a version that coerces `embedding[0]` into `score` for rerank responses. + +## Qwen3-VL-Reranker (multimodal decoder-only rerank) + +Qwen3-VL-Reranker extends the Qwen3-Reranker to support multimodal content, allowing reranking of documents containing text, images, and videos. + +### Launch Command + +```shell +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen3-VL-Reranker-2B \ + --trust-remote-code \ + --disable-radix-cache \ + --host 0.0.0.0 \ + --port 30000 \ + --chat-template examples/chat_template/qwen3_vl_reranker.jinja +``` + +Qwen3-VL-Reranker uses decoder-only logprob scoring (yes/no) like Qwen3-Reranker. Do NOT launch it with `--is-embedding`. + + +### Text-Only Reranking (backward compatible) + +```python +import requests + +url = "http://127.0.0.1:30000/v1/rerank" + +payload = { + "model": "Qwen3-VL-Reranker-2B", + "query": "What is machine learning?", + "documents": [ + "Machine learning is a branch of artificial intelligence that enables computers to learn from data.", + "The weather in Paris is usually mild with occasional rain.", + "Deep learning is a subset of machine learning using neural networks with many layers.", + ], + "instruct": "Retrieve passages that answer the question.", + "return_documents": True +} + +response = requests.post(url, json=payload) +results = response.json() + +for item in results: + print(f"Score: {item['score']:.4f} - {item['document'][:60]}...") +``` + +### Image Reranking (text query, image/mixed documents) + +```python +import requests + +url = "http://127.0.0.1:30000/v1/rerank" + +payload = { + "query": "A woman playing with her dog on a beach at sunset.", + "documents": [ + # Document 1: Text description + "A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset.", + # Document 2: Image URL + [ + { + "type": "image_url", + "image_url": { + "url": "https://example.com/beach_dog.jpeg" + } + } + ], + # Document 3: Text + Image (mixed) + [ + {"type": "text", "text": "A joyful scene at the beach:"}, + { + "type": "image_url", + "image_url": { + "url": "https://example.com/beach_dog.jpeg" + } + } + ] + ], + "instruct": "Retrieve images or text relevant to the user's query.", + "return_documents": False +} + +response = requests.post(url, json=payload) +results = response.json() + +for item in results: + print(f"Index: {item['index']}, Score: {item['score']:.4f}") +``` + +### Multimodal Query Reranking (query with image) + +```python +import requests + +url = "http://127.0.0.1:30000/v1/rerank" + +payload = { + # Query with text and image + "query": [ + {"type": "text", "text": "Find similar images to this:"}, + { + "type": "image_url", + "image_url": { + "url": "https://example.com/reference_image.jpeg" + } + } + ], + "documents": [ + "A cat sleeping on a couch.", + "A woman and her dog enjoying the sunset at the beach.", + "A busy city street with cars and pedestrians.", + [ + { + "type": "image_url", + "image_url": { + "url": "https://example.com/similar_image.jpeg" + } + } + ] + ], + "instruct": "Find images or descriptions similar to the query image." +} + +response = requests.post(url, json=payload) +results = response.json() + +for item in results: + print(f"Index: {item['index']}, Score: {item['score']:.4f}") +``` + +### Request Parameters (Multimodal) + +- `query` (required): Can be a string (text-only) or a list of content parts: + - `{"type": "text", "text": "..."}` for text + - `{"type": "image_url", "image_url": {"url": "..."}}` for images + - `{"type": "video_url", "video_url": {"url": "..."}}` for videos +- `documents` (required): List where each document can be a string or list of content parts (same format as query) +- `instruct` (optional): Instruction text for the reranker +- `top_n` (optional): Maximum number of documents to return +- `return_documents` (optional): Whether to return documents in the response (default: `false`) + +### Common Pitfalls + +- Always use `--chat-template examples/chat_template/qwen3_vl_reranker.jinja` for Qwen3-VL-Reranker. +- Do NOT launch with `--is-embedding`. +- For best results, use `--disable-radix-cache` to avoid caching issues with multimodal content. +- **Note**: Currently only `Qwen3-VL-Reranker-2B` is tested and supported. The 8B model may have different behavior and is not guaranteed to work with this template. diff --git a/docs_new/docs/supported-models/reward-models.mdx b/docs_new/docs/supported-models/reward-models.mdx new file mode 100644 index 000000000..0ba8ccf51 --- /dev/null +++ b/docs_new/docs/supported-models/reward-models.mdx @@ -0,0 +1,30 @@ +--- +title: Reward models +--- + +These models output a scalar reward score or classification result, often used in reinforcement learning or content moderation tasks. + +They are executed with `--is-embedding` and some may require `--trust-remote-code`. + +## Example launch Command + + +```shell Command +python3 -m sglang.launch_server \ + --model-path Qwen/Qwen2.5-Math-RM-72B \ # example HF/local path + --is-embedding \ + --host 0.0.0.0 \ + --tp-size=4 \ # set for tensor parallelism + --port 30000 \ +``` + + +## Supported models + +| Model Family (Reward) | Example HuggingFace Identifier | Description | +|---------------------------------------------------------------------------|-----------------------------------------------------|---------------------------------------------------------------------------------| +| **Llama (3.1 Reward / `LlamaForSequenceClassification`)** | `Skywork/Skywork-Reward-Llama-3.1-8B-v0.2` | Reward model (preference classifier) based on Llama 3.1 (8B) for scoring and ranking responses for RLHF. | +| **Gemma 2 (27B Reward / `Gemma2ForSequenceClassification`)** | `Skywork/Skywork-Reward-Gemma-2-27B-v0.2` | Derived from Gemma‑2 (27B), this model provides human preference scoring for RLHF and multilingual tasks. | +| **InternLM 2 (Reward / `InternLM2ForRewardMode`)** | `internlm/internlm2-7b-reward` | InternLM 2 (7B)–based reward model used in alignment pipelines to guide outputs toward preferred behavior. | +| **Qwen2.5 (Reward - Math / `Qwen2ForRewardModel`)** | `Qwen/Qwen2.5-Math-RM-72B` | A 72B math-specialized RLHF reward model from the Qwen2.5 series, tuned for evaluating and refining responses. | +| **Qwen2.5 (Reward - Sequence / `Qwen2ForSequenceClassification`)** | `jason9693/Qwen2.5-1.5B-apeach` | A smaller Qwen2.5 variant used for sequence classification, offering an alternative RLHF scoring mechanism. | diff --git a/docs_new/docs/supported-models/transformers-fallback.mdx b/docs_new/docs/supported-models/transformers-fallback.mdx new file mode 100644 index 000000000..f43708ea3 --- /dev/null +++ b/docs_new/docs/supported-models/transformers-fallback.mdx @@ -0,0 +1,70 @@ +--- +title: "Transformers Fallback in SGLang" +--- + +`sglang` can fall back to using models that are available in `transformers`. This works for most decoder-style language models and support for vision-language models is coming soon! + +## Example Launch Command + +By default, we will use sglang implementation if it is available. Otherwise, we will fall back to transformers one. However, you can switch the implementation by setting `--model-impl` to `transformers`. + + +```shell Launch Server +python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.2-1B-Instruct \ + --host 0.0.0.0 \ + --port 30000 \ + --model-impl transformers +``` + + +## Supported Features + +### Quantization + +Transformers fallback has supported most of available quantization in SGLang (except GGUF). See the [Quantization page](../advanced_features/quantization) for more information about supported quantization in SGLang. + +### Remote Code + +This fallback also means that any model on the hub that can be used in `transformers` with `trust_remote_code=True` that correctly implements attention can be used in production! + +A model just needs the following two things: + + +```python Required Implementation +from transformers import PreTrainedModel +from torch import nn + +class MyAttention(nn.Module): + def forward(self, hidden_states, **kwargs): # <- kwargs are required + ... + attention_interface = ALL_ATTENTION_FUNCTIONS[self.config._attn_implementation] + attn_output, attn_weights = attention_interface( + self, + query_states, + key_states, + value_states, + **kwargs, + ) + ... + +class MyModel(PreTrainedModel): + _supports_attention_backend = True +``` + + +Here is what happens in the background: + +1. **Load the config** + +The config is loaded. + +2. **Load the model class** + +`MyModel` python class is loaded from the `auto_map`, and we check that the model `_supports_attention_backend`. + +3. **Use the TransformersModel backend** + +The `TransformersModel` backend is used. See `/srt/models/transformers`, which leverages `self.config._attn_implementation = "sglang"`, thus the need to use `ALL_ATTENTION_FUNCTIONS`. + +That's it! diff --git a/docs_new/docs/supported-models/vision-language-models.mdx b/docs_new/docs/supported-models/vision-language-models.mdx new file mode 100644 index 000000000..12265f80c --- /dev/null +++ b/docs_new/docs/supported-models/vision-language-models.mdx @@ -0,0 +1,316 @@ +These models accept multi-modal inputs (e.g., images and text) and generate text output. They augment language models with multimodal encoders. + +## Example launch Command + + +```bash Launch Server +python3 -m sglang.launch_server \ + --model-path meta-llama/Llama-3.2-11B-Vision-Instruct \ # example HF/local path + --host 0.0.0.0 \ + --port 30000 \ +``` + + +> See the [OpenAI APIs section](../basic_usage/openai_api_vision) for how to send multimodal requests. + +## Supported models + +Below the supported models are summarized in a table. + +If you are unsure if a specific architecture is implemented, you can search for it via GitHub. For example, to search for `Qwen2_5_VLForConditionalGeneration`, use the expression: + + +```text GitHub Search +repo:sgl-project/sglang path:/^python\/sglang\/srt\/models\// Qwen2_5_VLForConditionalGeneration +``` + + +in the GitHub search bar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model Family (Variants)Example HuggingFace IdentifierDescriptionNotes
      Qwen-VLQwen/Qwen3-VL-235B-A22B-InstructAlibaba's vision-language extension of Qwen; for example, Qwen2.5-VL (7B and larger variants) can analyze and converse about image content.
      DeepSeek-VL2deepseek-ai/deepseek-vl2Vision-language variant of DeepSeek (with a dedicated image processor), enabling advanced multimodal reasoning on image and text inputs.
      DeepSeek-OCR / OCR-2deepseek-ai/DeepSeek-OCR-2OCR-focused DeepSeek models for document understanding and text extraction.Use --trust-remote-code.
      Janus-Pro (1B, 7B)deepseek-ai/Janus-Pro-7BDeepSeek's open-source multimodal model capable of both image understanding and generation. Janus-Pro employs a decoupled architecture for separate visual encoding paths, enhancing performance in both tasks.
      MiniCPM-V / MiniCPM-oopenbmb/MiniCPM-V-2_6MiniCPM-V (2.6, ~8B) supports image inputs, and MiniCPM-o adds audio/video; these multimodal LLMs are optimized for end-side deployment on mobile/edge devices.
      Llama 3.2 Vision (11B)meta-llama/Llama-3.2-11B-Vision-InstructVision-enabled variant of Llama 3 (11B) that accepts image inputs for visual question answering and other multimodal tasks.
      LLaVA (v1.5 & v1.6)e.g. liuhaotian/llava-v1.5-13bOpen vision-chat models that add an image encoder to LLaMA/Vicuna (e.g. LLaMA2 13B) for following multimodal instruction prompts.
      LLaVA-NeXT (8B, 72B)lmms-lab/llava-next-72bImproved LLaVA models (with an 8B Llama3 version and a 72B version) offering enhanced visual instruction-following and accuracy on multimodal benchmarks.
      LLaVA-OneVisionlmms-lab/llava-onevision-qwen2-7b-ovEnhanced LLaVA variant integrating Qwen as the backbone; supports multiple images (and even video frames) as inputs via an OpenAI Vision API-compatible format.
      Gemma 3 (Multimodal)google/gemma-3-4b-itGemma 3's larger models (4B, 12B, 27B) accept images (each image encoded as 256 tokens) alongside text in a combined 128K-token context.
      Kimi-VL (A3B)moonshotai/Kimi-VL-A3B-InstructKimi-VL is a multimodal model that can understand and generate text from images.
      Mistral-Small-3.1-24Bmistralai/Mistral-Small-3.1-24B-Instruct-2503Mistral 3.1 is a multimodal model that can generate text from text or images input. It also supports tool calling and structured output.
      Phi-4-multimodal-instructmicrosoft/Phi-4-multimodal-instructPhi-4-multimodal-instruct is the multimodal variant of the Phi-4-mini model, enhanced with LoRA for improved multimodal capabilities. It supports text, vision and audio modalities in SGLang.
      MiMo-VL (7B)XiaomiMiMo/MiMo-VL-7B-RLXiaomi's compact yet powerful vision-language model featuring a native resolution ViT encoder for fine-grained visual details, an MLP projector for cross-modal alignment, and the MiMo-7B language model optimized for complex reasoning tasks.
      GLM-4.5V (106B) / GLM-4.1V(9B)zai-org/GLM-4.5VGLM-4.5V and GLM-4.1V-Thinking: Towards Versatile Multimodal Reasoning with Scalable Reinforcement LearningUse --chat-template glm-4v
      GLM-OCRzai-org/GLM-OCRGLM-OCR: A fast and accurate general OCR model
      DotsVLM (General/OCR)rednote-hilab/dots.vlm1.instRedNote's vision-language model built on a 1.2B vision encoder and DeepSeek V3 LLM, featuring NaViT vision encoder trained from scratch with dynamic resolution support and enhanced OCR capabilities through structured image data training.
      DotsVLM-OCRrednote-hilab/dots.ocrSpecialized OCR variant of DotsVLM optimized for optical character recognition tasks with enhanced text extraction and document understanding capabilities.Don't use --trust-remote-code
      NVILA (8B, 15B, Lite-2B, Lite-8B, Lite-15B)Efficient-Large-Model/NVILA-8BchatmlNVILA explores the full stack efficiency of multi-modal design, achieving cheaper training, faster deployment and better performance.
      NVIDIA Nemotron Nano 2.0 VLnvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16NVIDIA Nemotron Nano v2 VL enables multi-image reasoning and video understanding, along with strong document intelligence, visual Q&A and summarization capabilities. It builds on Nemotron Nano V2, a hybrid Mamba-Transformer LLM, in order to achieve higher inference throughput in long document and video scenarios.Use --trust-remote-code. You may need to adjust --max-mamba-cache-size [default is 512] to fit memory constraints.
      Ernie4.5-VLbaidu/ERNIE-4.5-VL-28B-A3B-PTBaidu's vision-language models(28B,424B). Support image and video comprehension, and also support thinking.
      JetVLMJetVLM is an vision-language model designed for high-performance multimodal understanding and generation tasks built upon Jet-Nemotron.Coming soon
      Step3-VL (10B)stepfun-ai/Step3-VL-10BStepFun's lightweight open-source 10B parameter VLM for multimodal intelligence, excelling in visual perception, complex reasoning, and human alignment.
      Qwen3-OmniQwen/Qwen3-Omni-30B-A3B-InstructAlibaba's omni-modal MoE model. Currently supports the Thinker component (multimodal understanding for text, images, audio, and video), while the Talker component (audio generation) is not yet supported.
      + +## Video Input Support + +SGLang supports video input for Vision-Language Models (VLMs), enabling temporal reasoning tasks such as video question answering, captioning, and holistic scene understanding. Video clips are decoded, key frames are sampled, and the resulting tensors are batched together with the text prompt, allowing multimodal inference to integrate visual and linguistic context. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Model FamilyExample IdentifierVideo notes
      Qwen-VL (Qwen2-VL, Qwen2.5-VL, Qwen3-VL, Qwen3-Omni)Qwen/Qwen3-VL-235B-A22B-InstructThe processor gathers video_data, runs Qwen's frame sampler, and merges the resulting features with text tokens before inference.
      GLM-4v (4.5V, 4.1V, MOE)zai-org/GLM-4.5VVideo clips are read with Decord, converted to tensors, and passed to the model alongside metadata for rotary-position handling.
      NVILA (Full & Lite)Efficient-Large-Model/NVILA-8BThe runtime samples eight frames per clip and attaches them to the multimodal request when video_data is present.
      LLaVA video variants (LLaVA-NeXT-Video, LLaVA-OneVision)lmms-lab/LLaVA-NeXT-Video-7BThe processor routes video prompts to the LlavaVid video-enabled architecture, and the provided example shows how to query it with sgl.video(...) clips.
      NVIDIA Nemotron Nano 2.0 VLnvidia/NVIDIA-Nemotron-Nano-12B-v2-VL-BF16The processor samples at 2 FPS, at a max of 128 frames, as per model training. The model uses EVS, a pruning method that removes redundant tokens from video embeddings. By default video_pruning_rate=0.7. Change this by providing: --json-model-override-args '{"video_pruning_rate": 0.0}' to disable EVS, for example.
      JetVLMThe runtime samples eight frames per clip and attaches them to the multimodal request when video_data is present.
      + +Use `sgl.video(path, num_frames)` when building prompts to attach clips from your SGLang programs. + +Example OpenAI-compatible request that sends a video clip: + + +```python Complete Example +import requests + +url = "http://localhost:30000/v1/chat/completions" + +data = { + "model": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": "What’s happening in this video?"}, + { + "type": "video_url", + "video_url": { + "url": "https://github.com/sgl-project/sgl-test-files/raw/refs/heads/main/videos/jobs_presenting_ipod.mp4" + }, + }, + ], + } + ], + "max_tokens": 300, +} + +response = requests.post(url, json=data) +print(response.text) +``` + + +## Usage Notes + +### Performance Optimization + +For multimodal models, you can use the `--keep-mm-feature-on-device` flag to optimize for latency at the cost of increased GPU memory usage: + +- **Default behavior**: Multimodal feature tensors are moved to CPU after processing to save GPU memory +- **With `--keep-mm-feature-on-device`**: Feature tensors remain on GPU, reducing device-to-host copy overhead and improving latency, but consuming more GPU memory + +Use this flag when you have sufficient GPU memory and want to minimize latency for multimodal inference. + +### Multimodal Inputs Limitation + +- **Use `--mm-process-config '{"image":{"max_pixels":1048576},"video":{"fps":3,"max_pixels":602112,"max_frames":60}}'`**: To set `image`, `video`, and `audio` input limits. + +This can reduce GPU memory usage, improve inference speed, and help to avoid OOM, but may impact model performance, thus set a proper value based on your specific use case. Currently, only `qwen_vl` supports this config. Please refer to [qwen_vl processor](https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/multimodal/processors/qwen_vl.py) for understanding the meaning of each parameter. + +### Bidirectional Attention in Multimodal Model Serving +**Note for serving the Gemma-3 multimodal model**: + +As mentioned in [Welcome Gemma 3: Google's all new multimodal, multilingual, long context open LLM +](https://huggingface.co/blog/gemma3#multimodality), Gemma-3 employs bidirectional attention between image tokens during the prefill phase. Currently, SGLang only supports bidirectional attention when using the Triton Attention Backend. Note, however, that SGLang's current bidirectional attention implementation is incompatible with both CUDA Graph and Chunked Prefill. + +To enable bidirectional attention, you can use the `TritonAttnBackend` while disabling CUDA Graph and Chunked Prefill. Example launch command: + +```bash Bidirectional Attention +python -m sglang.launch_server \ + --model-path google/gemma-3-4b-it \ + --host 0.0.0.0 --port 30000 \ + --enable-multimodal \ + --dtype bfloat16 --triton-attention-reduce-in-fp32 \ + --attention-backend triton \ # Use Triton attention backend + --disable-cuda-graph \ # Disable Cuda Graph + --chunked-prefill-size -1 # Disable Chunked Prefill +``` + + +If higher serving performance is required and a certain degree of accuracy loss is acceptable, you may choose to use other attention backends, and you can also enable features like CUDA Graph and Chunked Prefill for better performance, but note that the model will fall back to using causal attention instead of bidirectional attention. diff --git a/docs_new/docs_migration_plan.md b/docs_new/docs_migration_plan.md new file mode 100644 index 000000000..6391c6f9b --- /dev/null +++ b/docs_new/docs_migration_plan.md @@ -0,0 +1,133 @@ +# SGLang Documentation Migration Plan + +## Background + +Migrate the new Mintlify-based documentation (currently in the standalone `sgl-docs` repo) into the sglang main repo under `docs_new/`, and point `staging.docs.sglang.io` to it. + +### Current State + +| Item | Location | Stack | Domain | +|------|----------|-------|--------| +| Old docs | `sglang/docs/` | Sphinx + GitHub Pages | `docs.sglang.io` | +| New docs + cookbook | `sgl-project/sgl-docs` repo | Mintlify | `lmsysorg.mintlify.app` (temp preview) | + +- Cookbook is already inside `sgl-docs/cookbook/`, no separate repo needed. +- Old docs CI (`execute-notebook.yml`, `lint.yml`) only watches `docs/**`, will not be triggered by `docs_new/**`. + +--- + +## Phase 1: Git Subtree Merge (Local Experiment) + +> Goal: Merge `sgl-docs` into `sglang` repo's `docs_new/` directory, preserving full commit history and authorship. + +```bash +# 1. Create a new branch (sglang remote is NOT affected) +cd /path/to/sglang +git checkout -b docs-new-migration + +# 2. Add sgl-docs as a remote (sgl-docs repo is NOT affected, read-only fetch) +git remote add sgl-docs git@github.com:sgl-project/sgl-docs.git +git fetch sgl-docs + +# 3. Subtree merge — all sgl-docs content goes into docs_new/, full history preserved +git subtree add --prefix=docs_new sgl-docs main + +# 4. Keep the remote for ongoing sync during migration period +# (remove only after sgl-docs is officially archived) +``` + +### Safety Guarantees + +- `sgl-docs` original repo: **unaffected** (fetch only, no push) +- `sglang` remote: **unaffected** (local branch, no push until ready) +- Rollback: `git checkout main && git branch -D docs-new-migration` + +### Side Effect: Contributors + +`git subtree add` (without `--squash`) imports all original commits. Authors from `sgl-docs` will appear in `sglang`'s git history and GitHub Contributors list. This is intentional — it gives proper credit. + +--- + +## Phase 2: Configure Mintlify for `docs_new/` (on branch) + +> Goal: Make Mintlify read from `sglang` repo's `docs_new/` subdirectory instead of the standalone `sgl-docs` repo. **No need to merge to main first** — Mintlify can point to a specific branch for validation. + +1. Log in to [Mintlify Dashboard](https://dashboard.mintlify.com) +2. Change the project's **GitHub repository** from `sgl-project/sgl-docs` to `sgl-project/sglang` +3. Set **Branch** to `docs-new-migration` (temporarily, for validation) +4. Set **Documentation directory** to `docs_new` (Mintlify supports monorepo subdirectory) +5. `docs.json` (Mintlify config) will be at `docs_new/docs.json` after the subtree merge — paths inside it (e.g., `cookbook/llm/Qwen/Qwen3`) are relative to `docs_new/`, so no changes needed +6. Verify the preview build succeeds on Mintlify + +--- + +## Phase 3: DNS & Custom Domain for `staging.docs.sglang.io` + +> Goal: Make `staging.docs.sglang.io` serve the new Mintlify docs. + +1. **DNS**: Add a CNAME record for `staging.docs.sglang.io` pointing to Mintlify's endpoint (typically `cname.mintlify.dev`) +2. **Mintlify Dashboard**: Settings > Custom Domain > add `staging.docs.sglang.io` +3. Mintlify handles SSL certificate automatically +4. Verify `staging.docs.sglang.io` loads correctly + +--- + +## Phase 4: Ongoing Sync During Migration Period + +> During the transition, `sgl-docs` may still receive updates. Sync them into `docs_new/` as needed. + +```bash +# Pull latest changes from sgl-docs into docs_new/ +git subtree pull --prefix=docs_new sgl-docs main +``` + +Once `sgl-docs` is frozen, this step is no longer needed. + +--- + +## Phase 5: CI/CD (Optional, Post-Migration) + +Current `docs/**` CI workflows will **NOT** trigger for `docs_new/**` changes. This is fine initially since Mintlify has its own GitHub integration for auto-deployment on push to main. + +Optional additions later: +- Link checking (lychee) for `docs_new/**/*.mdx` +- Mintlify broken-link or build validation on PR + +--- + +## Phase 6: Final Cutover + +> Goal: Promote staging to production. + +| Stage | `docs.sglang.io` | `staging.docs.sglang.io` | +|-------|-------------------|--------------------------| +| After Phase 3 | Sphinx (old docs) | Mintlify (new docs) | +| After cutover | Mintlify (new docs) | Keep or remove | + +Cutover steps: +1. Confirm `staging.docs.sglang.io` is stable and content-complete +2. Update DNS: point `docs.sglang.io` CNAME from GitHub Pages to Mintlify (`cname.mintlify.dev`) +3. Update Mintlify Dashboard custom domain to `docs.sglang.io` +4. Remove or archive old resources: + - Delete `sglang/docs/` (old Sphinx docs) + - Delete `.github/workflows/release-docs.yml` and `.github/workflows/execute-notebook.yml` + - Archive `sgl-project/sgl-docs` repo on GitHub + - Remove the `sgl-docs` git remote: `git remote remove sgl-docs` + - Optionally archive `sgl-project/sgl-project.github.io` repo + +--- + +## Execution Order + +> Mintlify supports pointing to a specific branch, so we can validate on `docs-new-migration` **before** merging to main. + +| Step | Action | Who | Dependency | +|------|--------|-----|------------| +| 1 | Phase 1: subtree merge on local branch | Dev | — | +| 2 | Push branch to `sgl-project/sglang` | Dev | Step 1 | +| 3 | Phase 2: configure Mintlify Dashboard to read from `sgl-project/sglang` branch `docs-new-migration` `docs_new/` | Admin (Mintlify access) | Step 2 | +| 4 | Phase 3: DNS CNAME + Mintlify custom domain for `staging.docs.sglang.io` | Admin (DNS access) | Step 3 | +| 5 | Verify staging site | Team | Step 4 | +| 6 | Merge PR to main, switch Mintlify branch back to `main` | Dev + Admin | Step 5 confirmed OK | +| 7 | Phase 4: sync any remaining sgl-docs updates | Dev | As needed | +| 8 | Phase 6: final cutover when ready | Admin | Step 6 done | diff --git a/docs_new/favicon.png b/docs_new/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0fe3eda51977519637fff23717f39a2e9817da GIT binary patch literal 2171 zcmV->2!!{EP)FK?9JJJjpGLdE3$kov4?;kzA zcka38ci%bZo_iz;?s5E&K)Qj`ZNP0rS8@af$e;j%1b`$tjvi*a21JntU}-65m~3O6 z8XXo`2HjL8we|1~(YNDLSZ)d>9*_Q0hQ`C(Ol0^@vHm4r2rnWCX%R&MQ54W>P-C`@ z-pVq{{*A}`dUkiH{l1X25tzUu^O{n94QI(NuUxbo9OEYfMKjQM?J8W@^#-(`sFCus z>5aUO{C;`0yW?M;_L6s-uB`wcLv1x_ep(XfQIeybxRIMBoGiC@N?H zfYHl%0>rQNA0M?gtRU-xMN?(A?R0#+=4Z3I)@cU*X`pdbSfz~yrLsGlczmB8{ z*f7AtBATii!Ln98rX`7}XM3dZu4YN8_1_(l=@x*cdHOd5JyV#U#jdPt^VR?EVkmON zJ@DA1f_R<{>HaX8f8hZmU#EH**R4*fEfS&+J(Mjx^ZFc1&ZbHhvv)zD-VIoZP&4#e z>N29#TU+XqGaizuMrWFkZBefN?;>rfD4H`LOvR<3NMYzWb8^zPn(9eL9%j!gGko93 z_BB3zTI$DB6Jx%O{tBWgn?b;by4|6kbAjZ?Cd@)+3h>%d`f5W_`Ggspeg%#RlVcgf zked(Llcs`oOeI`7dZd`haz=TMwywh!a$g#xJC$ld^Q{8iJ7xo2Z#GbWdi9*Iz1EZL zXB(o$MXYEJdOwS z@>tC;Sj2uKKa2UXO5_vkP6R@c!B{^K0TV-I^N#Gq3TPU1nRd9|A+Knsd~HdtHsE=lmdi|27f^ai5~P#a>rJ1%!~; z&S^2>1FAy2Ep74^gFr2qTWVNWVDg<^QX_`_1YnF7U{)^8K9tElC5rS0nV@jVNO~y+ z@(0fy>T?}(4a#$pBhcbkj~6;pzEd#>VU;a{W&a2=U;0Gc%uP3Sf3vhfhd+`;rplA_0^Wq=NFa(;MYv>!UBA^AL|=*?E~57+3cOY$-fOquZOyj=7nU6lirshAELsHc z^U=E9_6&ARNgn&uhnGE{JYO#3=h5-;=ogF3mgZm#e9c_5rHtvZ$ zD&^JhkWOTM0FX@ZMH6F_^I4uY5pJK?sG(XlEu9KNsHx zhMhoDgme;FZ5P9&SkKdXM~Y`md2`pn0IV!$>9H1;<1kRsK=AjX8&ZVWfnd{HvjuNh zAwUQacSx1@G>hT4+xzc*4uq5jRV--7YJMOv-1CIMot5eB9q_XpgemYlGU?aMM)b-L zkGQVw?HYzsVz4OVP$5rq8^GGbP&lv^wuQkv-aADRx(inx76M_P2Wq#y0QY}y3otq! zt{>V5`LiAa^QcNFn6nT*`N^{>n`>AIaDoxCs%F8}{ci$MRp_d%0mtP32U!e4%Ljjj zQ41EQY_4H*p|XW50CO5}T{r`F=hWD*FYb$Hq3Dq(!RDNDrzjb64o!6siz-8Yt0#5&RDF%x3nqu2h<_SiK-5Dcnh$R%D%2{eV&21St%9$dBf;bi1Z z8Pq|BhWdYYgol(uVK{oD6EXm;t6ut9D&3Y12K~~0|ArI z#{(AH98e!VGnQ!}|T!I}R$u@(5Y#^J1s#A4A z?Jukfm-d#*w|eB3O24Vj|6W(~Dlm4LjaVnDUV7dZbKbuNk_!T>@B;4q@=on?8vS+19g4#7I_-|G#N zFLF92GAG`PeEl!$@#4LF6~oL7Q^PPhRWqASEZWrC_F&0S0-pXU=xhe8d;P3t4{?blf?ys&DS{16tzj#U$hIkwbY}GiA&;(;i zCIIpqLHtjh@0&)A#Sl&m_6L44Dv>3hAU+jn>eQ)zuQPjIeKeA01_{tYw!w+RmqL|N zQC(Lh1Ln$RfjG$$(IJ4UFsEdNt#9Qk^S3gq=DqA|?#pvsHP=}bp5v;yF4NQ;r!j^1 zsyVL02xE-qFohAu7-Nhv#u#CQFa{xv5JCtc5+Q^TMhKCRB!Li#5N2E4zTaPmgFAdb z%BlY|vK^S&m6GOt05}5DN^5B2IOHTQa3sw|c0O9p?IXfU3OuG`+ecK5)SmrLE-`9C zO&AXg&wJV%s=kPdQ#uXvA$U3btW>5=*=Yai@i&r!q?fAiYC6<>Wa5s3K|NDOX z-247CYZIm8@@XQ7XKRIlWB~?R1PMG3zfRq^WYNRxg+du8pdQT)Ir;Z3H6RfZrOxdK z{Qpb8+53_$^S36@U467FOjS6Xd+)xP&AfS;q(k1!mLyw~-+Hn&38hulnnNX_KK zsluT+t5H}i3XMY=j76HFkhZyjHbaK!T9Q11ThrT6C|d00}KT2fk0 z5u-~{D1;hP2twk}@+1hCghNO?+8~h#ZTY{o)ZT;?kxg7|gbQmDE;0^qZx8+f&xJ^l zLq!_^Qh*YnB!O+!8QtgWNYz)Fn<sb(KS|7Jp|k++8d|0pj6^F>ddXN<18OflAaVV0H$BUErWZO2+Y^oMWZu zDumpHkXnUG&((FO(naacZtc!x?pl{_O8H;2n%!)tm-93NBf<)WlRfYMq$m05xqCP= z!*QP7TxZr%xRn?O!h%9*jKN}_#DAT{?>M)M%73D&dXX2!`M=@&m7_Dw>~0Gwr8vKC z2|+>#A|jW|MMOj-gh!V(E9j2XiFQzs1Yg_weeeIZ)x(Km*6pdn=2Hraf^HmcGw*L! zmzK`A{%EnvUB1K)o|00}cN!JJw};NRzK5BUFU zBfx-!v7Hyp349)TgngUb@4XVhti_EKJ_cd$FW~x2!u%b0LfXpq0LB ztc_8Dmmxk`mviN_Y5Q47s}Tek3TmT!w+P%2i3=` zKCkZ(?>?QdOEK4ML1IYoUT*o!?`@c{0QJe*ih3V0V_GMDZaebaFN5qZyYomAcj@V= z;H%anj6%AX=a+3zX;q1=%;*dH>b|QV>7T-1z~91u4mj(qqjVu%LRXVbWGfjd`^zD6 zO6V>1kD(JGH7=LXf+NbC%@@#26v{LlmTDf3q{$GKv>CDza(oK0ij64cp+J~~$ik)3 zGP96*>+^97fMU#s^Np&Jz(~1@f^&6pVV6q524bbop$S}%(yF7|iT=xG$y8a2HN+TY z3UFb>tT3D|9!L#&g2$7LZvOvbPL+I`@k0JcFcG3i9{>u6m1I}A6^kQXi2z`L9+69( z2S!Ore5IT*MnTJ(NcF9(RdTM94=LnP>|Uk%C^Cm*TikUzX(C(!p@48eBp?+F>JZKseEDnz&)LdxX=rum!~u<@e@*0kH{P#L74M#Gnda5jdBD^#Xx>5s`B~r|0H)c^; z8`DjeBPqr!@9Ls)Tu;r8$f3?B^i#NB6muDt0?rblZZceKG*haptZgfem1(QEt&5$Z zVrHeFa%M|KMv+U}qjn&LnZ-R)h#+Lq6lAOO&_1548z~2;fVuA|tyOz}0lF-uP+AOE zj@OoQfFcho%_R-uSf%h(4Px=w*;wyy)lq@Spbmjy9GcKCVwXD5oS`MWwUtm8O7*NP zyBs86xaF-Vct??iBP#CJTug}JEzK{`$3w?vZK4gmW@867^@<(s+u2jntTHLGYUG6M z?FsvP%-f#zzQ=s)3Ez7}AzHDJQVq(LDI}Jv#_qGYRT4028nf!c!pe<5pZ0C9wckOn zdIc4%Hg@HKz5`Pb+0;pdj_LB*^)aWIOGy2xvXGp|Sj1F{FXm9U|4r+l1ZPNhiY#uV2^p@(CbM9u}(!7FUs;>-)n7s_4NQzL0cnF3i-LJ1YK zE2mJfTw($ct59gH4MC7o#9S{$i}B}ONO|M}rgD5GoMAq!;RceOSzAt&3Hc8VnXCy3Izm|dQTK_*e+Mih4_ zFkzcooHi9?wOn-R^sp@HKHp?WU@Suz^LEVtevP@iB_nwmb$?P_VhWu~HKEG4q_9Zl zNXapbNs2Mj<7sJ;fF5qR@C`~0QWzm<@l&R3oY&krrY-=}aackl4lHMkmzNp}%lvCC$ff7_({o<}q7F zZ)Z!S4#M6NF^CJm0_i}&j)RLTWE`MiJ1Bc%E)`)`b_)PQ9u-}L7*&yex>9mtit(b3 zL|lTaOAuhTKs8Aeh}xU!!by!7(11}iFy$Hyv4}px&?3b|U899J)~=9^GK@BgT?=$8 zlG`ZTh5Bej6xZa6KZ}X@7s6zMk?IpK(Bw&O$xf+39*d9`Q3CXYImH1-psY1+w=Y$m zPzpLcPr`2nf~^USd0X>U;}1rv3bmg?FLgU#B2B7Ri@9kTVloI!TuF<}iL6JOTG*cT z7-_>il7JG$ilWZ}0U?R$(w0%Y)vUnMq{-MBk*QaBNW6*!&MFQq0%V;;{X|is7|{UH z^Z=boa5LT=cx$*)a z#?RkzByuAeQG8fFkQ*n#!6l$dC!`+|g~T8Okm-;FyS0$CK^aI^QVw!FWIUu0QVc1D zOoWutIf0JC+bML;qH`Xdi|9tM$5?1QG?9BU&vfpYJPXhwL<5EinbFJXRx5%`$%;73 zilewF2`UR)Bsm5~MB}`@CbNQ+T>uO1M&R>Qb<2uUqp4Bw7^MZ7L?0Aq#NgR8m`{+a(?OKun)%Y08NZku^#aE|OTWV#SIT z>zq5SWzA6eKh`qgc=WBzJ1H1NN=#7Z1PZ4(%XxLN?MSwiaapdhB^+6ieKO~?Vc}gs9VLt3Y*3!V2b8mPCy8Q?gApU(?4LMVb+g^nPCcMW^MUiPt{gVCYd4s(Q~ z(Xn`c%l=)>Km6dI&cFCK|Iz=;_NIonc$;^4m-l$ze~9xjqE9t^&X;`6xAI-?zt{4E z@FPF*Gr#a_d5J;`t_ywW|9wos>vUYCLc?TP*lExR3LHFI5R*igONDp|pDbboW~^dY zaYA=7s?yGlhZ^c=@J)KP-1&BuRDhZ(i+liANPO6b+2k@u8PtdIjp#HQ#Z~geC+w%+ z4TKIQcertcqZ~8kmH(joTMaS{|%5RLT-#<8r1~~Zm%@Gin zFz6P27Md|+E%Ujz>p6f_jM_7=!;K>xRmb9tllw{N_ZyE@$j+_AFO3*WG?kd`b4_LK#{=Cp)wS?VuBh#rI{(tV2V zcc>84RL`KLY*{&?;>Hli>q-htD#~up?I1e`S(4>J+sihqTyud>+u9^5x494l*`*Y0 z&1UR=nLW9^Ni*L~qX1mu}~pTkd&;$TMVK`Q(>>0R#VE$b@!m&`Wx&~BaJrJ;}${ReqgZI-`E3-MFZ^7BA(b1Qz+yL6jd~h z)HeCljwzFPI7J;{Oyvq}5s1Ic_p&)~ldgpUsFkAG)eps9|5Ho^VTxQQO-WK2l5cr_ zdlZ|RBC~?>Un|?y{&p>n@qGnNBb};js4#|Y$J2&nbv7TTsg1XChI6E2!U)07SAeEp z5EMDb+|VF=GFM_{M2rC`?~Ypdj&d4Kby}O~CwY855yI!!6h5pP=8vOBN~WoKL#U5` zepQsE9EH*JueS@crF5~&kfzCO6LI{=J9a-_ow`zda5cOmW{PYTT8e^7xvU;Em89$1 zrU~;N#fa;f;Gayj82%F8x-C%TS6%xhdM;)kL{<&p2)JxS)U8nvgV`11392e(m~pI@ z3)V2|Gq6J6lEcCtQa6pVgTOo9Y^Wv(ag|>Zo-c)!7>AK5G2721k6d33{!&%gFk5zHIK89&9OM5*#0=rmk7gh+^Xdc&ZMrZn~o{CI6TKsSmxPkSa$f#m4gQ{GW- z!uU4H5B_|0KnCW{s^VSb!C1Ee2;E5wQ*t1?dQF)ZoQBn`xsfippQ(7mUTO*_MG?Up zUb|>nY$g!wqMJ}&)4I_*M)YDO$TeQMTJiO%XriA9%iOoK~VTAydZValb zdQ}sf%z{Qztp2zYa?pQNUF8?GCq#r*D#<^yb`!=Kmgsg5#hkl8rhb8+>c9hC!7${X zRj9{s@gU|V7Aa`ELlT5q5LLBj+VEJFb7$lW!myLR7&Jr1eo(Q0m2WY9U?*z9u8n}eS zsi@wz)0y!rthKw-0g7W@<{TF4i9)he+5QNdQs*els5@{Fg@`x*hRZSMMx?Wt%NLoe znwkh`O6U8j{{-=LfSJI(Qta`>z(Ow!Y@iPoyT0Ey^)Zy9^Qe>{Y+D5)g2IGjhYZJe z8kD20E#W<<7{R9glP-g&&AJ(;<}D0KPfu6K3jQQxvT`2H#wy(Szs7j6)`$1F;qcMM6(wCvF`H;{kg;8`d6g`M6a~Q?m zk?TfUS`nMI1U_wv4lQSb1_FjB9fA{#8X!DdE}L>A3<=rEwfU_)Zn~^x5<@x5B=~a| zgQ*nOrsOkw>`v8V>-)l2VMP+HzLrJQQCl%S#Rs>S7um za=&NQoxwJ7udhVoz2qF217X{U4VfpFd{lMhwxec;-B{`~EwdWYj_PP6@^cF}qYD%3 zF_tJjzVU5D;mNThc|y4@X9M2ry;X#2_CdugxSG+$0gw`|K z;eAtJc&JcjIP$J{`83bkz#g&Zeuqwc=3bw9N|_qhp$QDpj5Tdy_XK)X-&D1=&TTe} z@AtOEt#egn^4EJL(Df+!^iI*1(3=7ar=``Aq_nnb&>&}j5t};Rj;55Fs3>YTj2FZv z<`y64m<{;}Td35fM)PAEdsw(3sgu+4NM>B~J*)@0ulCw@+R0*cb5boUp^;40il8%| z?gy_JG8`&<#oL_NQXeS@vzt$4JZ&P zUFxE+vz4oZ^_nzj9ktCUiHh657hG=Yd)Bk}iNeooj03fULZ$ zJmXm;5Kt%|j$Y@bpO9H~7`^=I-j{Eu$~h(H>HTsGL8oL3C6WVAb6FCJ|MVpHMRrk= zyGq20I=M_`k$j}vVfqf=NpVmiLUhY;f6hy;q9lvtdz~N^F_FG{7}rS3jCo3$#9KJs z!OI=sDlE|wjZ(C~GYU^nFB}lP`+^5zZU-t#8rwLooP$ptdZ=_+FR>H+zm3?46#%gv zD;FHAIMIZMsw>Wh0yzt*eGZ{^wMl+lxn$S2winz;ZaEUSv)qx)N+>hxxW;%oVNI zc5RSD6Yn+!?3jTX%bL0V23c+pUan|EjjPRD6x<@BaTyyI+dsI?rh8?xgT6NA{?xxP zHM95hN&fVljK{t%12HSFZ^~;D^nPaM$d^uEY$g3-=yT&CpwXpbE^>+sT{y8ezgz3(-(S^L|L50U3s zM+ZF|t~pf_0AgG3V|0di%-BDvqBeV}Y;4q;p)rUW6!POVVB0dnwUL8!@qG}>VJ%=JM`_+XxBU)lSoRu2)Lo|T;IZ<4Fhw8 zmTTMQ+@>GuHdkvpmV7D$XZ;Rc=(5la%`Kz#$o)#8Qqxjsfa>Ul#cFUvU0t=t(;UA1 zw4jq1=JATP3pu5e-LJo**^nGf<=qDI=8Zn&_SntnUWJrC5+3$LBjJIOlbv`&$NM;^ z@q>z=j@E`gQI z(OZp{7Yp8%_+hLh>;XIS@_QCPv`H|!IrDjYN=s>C)F zj7P)@FJcm#WX$mk;BktV4U`wE!Zbl)cm52@o8qJQBMc3aP z-{W=s9b}5P!*u5C6?5?ciqYama~f2XMq4PrPuA1taO*)C>H$;kmT%@jEJ%xfw z`&tc0b{ZZ(hy_K6wKV_${9JvECpSVfIyN>wG5PD)`zgAq>6zI%rg@fy zMIjylr~^wYs~cO}JI4nHheyZ9Co4CXSJyXXVt<^2{z>diZ^{PZzg2L6`c9e5EWjrKCc3sti zL7j|9tpKonaP%1P8W0;nlw1BDegHN<<+%R1`R2B}%_kKPpiyb6#pW;<4rS7TsKo*R zK*~#F6SDyuNAviMQ&tc^GQt{9BNaBFAy!4uE5jc z6IyrFe?%PUCE|)-7}?nw*h#v&2_*^qw7Xq$l7q0g5fCFgnQU)Rim+N`R|h#WCSFIU zI{A#Kr;)Z4Q!i$dHLq?dCI>e#nr9;s%$uAZG^tK!1PKmGVt;mFW(lpTr{gX?se4ie z9wvUhLFgK>TC~CnD~Y!CTbQb+m$GV}J^nWMkR!W73CxX5PLECW21~0e-TD4mX8{0! zqixsk)$!%U;lcUN{?Xd@-tN}s^617Q0I+mfBOoTCC@0ln!IQ@5ObooonWNzmp_4Fk zP(@7z&l;~SB~~J%`;oE3$oR>#PF!40-bSYHBQuXz?(C}yEpX+!(`=D1Y)7JNj!V3j_Sf;DWzqEWyU;t$>v_L7j0WI)%kgPt;ShqyO+&}P z#Kyt>vVQWxWtF&WU_n!M7W%$o{AESt2KLQa0(UKB1}~#9fdBmo!uiU8L;h{1;JQr2 z@NIRa3V%M^YVh|bb@-=kuHnD=qTLn&;wPguK`DhRR;d-IG>TBPQZaa+J*a^oSsF|@Knf8j z3u#&kFR=SfEWNb|@#$_-zf+{BJm`tuRupu4n$p`t7gTT4dPkUo>uW~8TXd)%Hmi3Q zQ%L>I>Gz5)w1MU?-&I^;4fYfipu-V|U8VT7Z}&i9K$Sr8{{KoJBe1f4+6anGc9&ux z@H|GMmu1FGWR^#u9)ip`nHLJ*^HJaU8qWi3233&f8j*0Cp{xUikmfl2X5c-_Sg5Ta zYdTw~03rw#M67>&8q6rD=@|hP1p)MeIE;+INr(bO-N+$uJcLQRMJqW-2-uTt4rNXH zq41<0$}IU%CP~M#Bp(#_TE!>BZhqQ|pt!l)g)3yip}S1tB&CLyZmrON9i{p3x1N+pYS5F)VMm|JxPP>94V}Gw3Yy0gHs+2`**J1 z)8C%UKaT({JpYF!et*#Kb1Q&Pfczha0Xs-wYW4;QjI^%;vIwCqMr`u>S`F(ogcj?4tMtKPjDNPV=W{ zyOEUho~}AVOBe|voW69FErpKTi?%XSEz}Y3L+$m9F#kQ}pGo7!OqI<3f8wDH)e@m1 z)^7aizM5*PDvAe+2a*Q@uYbS(@%sDgXV?Gd`mGk4ZLGknt5<(tmB7n^l_gz@sL#Co z!rpVXVhf3JUY>`pkLCf0$?Fy>KrW$aK&yBq1)=bh*v7+uz{W1+#)J1WHY$@EFNqdy zI&|sLXTXpVVdC|s8Fj(qh_sI+|ll?4xR3~ zuS>TFdOg&q-=F~_9vL+jqzK-81jJj624RAd1S2pFu!yM@nZ}y_jOA*o5D`pTgs#s^ZGOy!~LMlRjXBSfyb8A`K>6bmRJpMj6aI5%EmcA#k{mBOab!oNL);O`tS5$DE(KLZtB8E&wiM zj;mdQ>dK%_NBMf2A0bHa+C~naINIh7(od}UMer{pfR@OT{}}U0ZZQY%(!tX(;E?YR zz&Par3t+|_QHfB7Sv**xM0So8()fhU)gG!*F;xWm&$O|_BM6flbBu=7x(^T)P3QzE)gI(P|g#mbxfRu(USZjw; z?NJu=9(J4==%cc=5p3XW{SG$RoEQViEV&-doXktXT@eo^&2=a>1qcWah%2pg4YW=67*t5iA0B2IaYkQT zd-H+^j2LL7O(l3rBD`KCmz1bdy4y4#g^<}qH?(jC8qphsF;=LdjEQ>8)B2XR^rR-v z`5nu4yY*>G325LDZRr%2yakmyefo$awJSPg_JP)6odq|471A}E+^@>FYX&!QON=YMeKuP5*B0Gi)^q+-OB>3=QL;k3@xD&BEO~1 zXI@>@8c}2$KQQO6%Y-}Td4FTSFFF9fy``>gXLqZ5hud5taLdj;rHP#8r);)S>Pfg= zV=YELk#eV*$GgG=2(rW&=gSfLz|KK3X_E~s?2j#(PfiBncT&_4w^U6Fd$g|3BdSRq zLXL7%AId;@JE%SZgk>4oq6lkGE=wF%78wHDL=5jqqYKE4OS4SLxnx*RtSTAWYWM2d zCQ&Id$^8WyJH$OXUkj7>-IA9B%oabH;JLQWtW_9}OsJytV1q7(RfSk5o|f&pbI|wu zfsFl-Zf(4~&u*}D5b-Vbcdb%&CBrR&QkT#97<9C!S|ltZ zB$&SDsqw^@W;GK$FamCy7S;SD;^I=V<)%Pc5c(Tyg7f4 zJyTW9j5H!XzRvZ=c|f>xD8-qwWE!O{Z{YS>x)?KMUuc|(IQ4FI4uf~M;N4ri(amZM zv3h8o>qJseL`AfxJRmY>LS2>=1x}xlIh?Pv11S*Wxw9zMD}T>^(R}4azc4k=e8o^{ zt7BEp%nct5hL(>y7FeX6ni#hSqp;AqsM^q7Pbw)75AAJ}j5lJ3VX|($>`ktv(cPOQ zI#Cz(;=C_`tYQ+E>2^VR`jj}f%}Aaq+#J7E)g5jL&4C*4jrN0mB8TG5-QfWZrfLrt zkj#Vc1s`cmb7(G+RFhnOL$Z~Sg-~Xr!eENfIb02?K+Vvsl4+iz0BbJp zF;U$-n{px?eB--}uX7Bx^yWZsY^tq|ppn`)#Bp8Xc{q~zxNriLXdu!qw5E`SP|dNB6XX{3VBT+Pa+7LHsU%{%(I5d(;7`VCG)tsGO7(UKvM~FjXiv( zp8Yq`bdy>`c!sb{-`(JP+MqY7%|Z1^9_zkqTv?pBu3H@z0&Vu}qipPqbdqwuA@1Gw zalShR@ncvi$ZCl`NH4X;gRLyt>vY=&~h!0oD=5?aH!Jw`J4ayU)lLtO&VdDE^qipi> z-rxb%Y%AS%{52$+`VCHiFaYmv65BnHv)&MQoyn^wa0rrRYZW%zxgI~1{qol*bUFJk zn%=lUi`pG-eL5d8mDtWm&|R@u&o#&eUZ^2%=sfn)|+ zmYgn&kKbkwGajuOOWj9*I_Gine)}1}R&V$* z8Oz1XzGE(aqvs!+-RCVIO=wexH=9I#^RFWpG*)|(s@f3vYg&ee=AWmp%POL2K3qCG z>lpt>R8z@9w>}NbT^bt?bd0)R5I6EKN#%muQ{pc$p23#W7PU`Xa+5F@Y-qp)D{i(+ z^-Z({P&^{l&kYi2&YXsGl2N|QGMKOpE-(|F=bc&|!DdU8ao&nxUb7JH=J;0%~sF-tkAy2XLk{S|~7QOrfMjRZV zw$LTBbu9)p#=0R(oHSpYmf4>$fsm;Ja)_?J(!q1kWxc|51E+?G1|jv}dD{0F3ti6RVGG?Yk( z!8Lfw4V!Z~zhSQY`(=!Wg*Xm&y6E6sW8u^+=SVM~KNtQIdlFsLi^;ymKb4P9 z(`ANuzBGNYo;iq2aKHu+1mj@^iH7*DU|1s%2Jk?f=33hv2KX-TcZYa-Q@A$@F-2X1 zJZxdlU@tK+&`f*}XJn8*+90!=VIl^uXo6szz^x=61&u6$6KCj9e)K$jaZW5*OK%&e z)Bj&x%)IjhX+~_3Sf-*OzFX)oJVqlXVUSPUr9x9>2I0x6P&==Eu zL8VE8F`16c7=S!oh|$InYqkRdCXV8x*_nL^mNERUOM?O=U3BKnBwA|3vj9sw;4icA zBfiFc(L~-T2W4>LTlKR%V~FWG8vH4}pzn+6bedi9hH`9U^D`LpJfkx-;~zXmALPUW z0rmR&2G%LsDZp|CzEDr2*dsm6aB?~W6WIoPHe9L)F!xWjsgq$cO6IO402|3L5=qn8 zm;||)#BQQgRQaeGd|WdO(nmD5CkbL;d#NBHkZCJ8Cl19@0WD7@eWG*{m7Q!AdRmQ* z`vC3_GUes3a5a+t)_El>V z<3OP<575khJlUSnps+f`H-p#@HQW7g0ceV*6|k%U@-+J%%)M+Xlz;`WRI(t(5*{Rs zE7&={>g!3N&MPUiZJ>n%d-;kzSp710L0LE~7>$4x8{FAY5$JF;1W26zDOz<-{IH~f zhPyzUvFpIW(=Je;b>LM-~aOl}9`lf(@Wd9c_qVh_yypnbQ+ z#bS+K|ATVVPC0g?A{TRfBG+x1pFGFfXH^{y%2a^|Uap!FCamCb3IlKm>V}mA%$66T z(Yj2GMb28VKve1J_=sskRBc^HI4NUGUgC`1V}^Q;n9*<|*z1OoUK!Purv1@!YE*lA za6!mtL?sBv>HH94JL&K?-ffL1Fd#c2dyv2ui(}YR<6HY^B3rA#gwfKQJgZM9-7*F* zVCH0m8rLpBy&YT=-BQo8J_M;k+B>gL=d(iU%gnc=NT=r6l2X5p%N1LgyAN z&g|mFi6coUO@Sm>ZY(G(zjg)pSYdKfFmQ{N!R}JpN*+1k8p$NW3}K1+cr9X`l7CJf z^U8L(>E0%g{x@vN5{I=i{$>w*uw1?)A^DFqsZ+f(MfqRU=2lTKj9mwN#oL9G|JxN< zat>%%MiMSLN=%xWX4I*~im56q%eL3UVt%&6mT8w5M>0;Lm5NiF3~eWDI$>j4bE;>S zOJ`_(U!%5d6(C`ppYXR@_8`*4w)5`BmiJ*~La7pN9iT7fuuh4>R02mDY%MbW+Quvi zHHH~(;($;eo1Yz-zzsPxfpTj6xL+T5pv5nTgn@{Z=!stmSn1@X9RJ6JR0N8H*(~7Q zI_h(VETOgv1It2N#%P$k$HVaxzGzy4G1}N(2vbM*3hqI2AQr z8R@~O4w?=|%ehhQ^8^Mjo-V2n#C_xn#0rJGX&}WU|80hG5dI-f5nq+r{MAkqdkc@| z*Agd%L*~c-opS(&j7Y5R`88tn=N0^Ms>pfmF;&U^_-hMSe$xKr66&7yhn@IVgu{mu z%En_?YLZy#$1rl@Ri{mk`SkPvL~ck{_s|a3WTz|UUa!c;Uars=T`>NR5Uk%|6w ze^(g3{)A1vg_9(OSNbxnd{|JwJ5yJ?w>M1l`-!VI=GB*UZ68<|7xRRN243pgxjDMk zc0@)-VtAsItgYO9xl0_V5&k^7P+K#{5P??bYo6f%#xK|C;pgUWE~#kDsQXDwrlrD~3Ch z*E7jB!6}+pDk~b`;Ns&84rbfFeRFqQU4qdcR!o3AKOG`A!W)-2OxgXOi{_V+_v>0x zL_*j=Rtco3*j{>g;phCnS+u`T54d%s%Re(LA+;|$ATlNh5gQPcQd$f$o=ZX}@-X=^ zdt1MjyHMV3Zjxw$_`7lQIdQo$?>>}=RYX#ZoQabq5wmhq3NwHV#AdHs#H&IfabaP> z=A>;qcL%uBiJKQEPmgkQb8;?r*k`#qPk5Mp@j+2JrPT$AS=e}|3Ihf0am$b&&;=u{ z@+>3})2-c3O-e~z-zdNq)~zLreNe)pF2z_eDZY zeO!D^Ln0Pmnx0Cm1yWNBD=S}z!0#)MJU%*)os1bwUH}!HOSD*gf653U29NoEQ5c1f z9gR*ML`(XJ_&0@jWCy1QOi`?Ng?QCtp-5cZ$J{ui7dHHBZn*G=@LDWgJvJO&lf_(> z3Do{POHN2h++54gEy~@cVGD2#5h^1eyBOoY|B;6~08Ll_A?N2W;%gc%t5sc5*^yM$ z0rGPiMg=>C3}Bo0Cq<cPoza5QJ8DlpAWh`I)OfPP>st4&Ew6<%@fT)UsoX2 zUi-#q=YLrpgDP9bU}tuSp?hRt0Jd&`tnC#)^le#wDelwe`Fc;9ZRjogMO%GWbJ0Ig zs~u<#x86jGZ9c~!)g**qnqK4h;WQF^*0H~_X|jH2{i~YL;;N(>h4i$-+8BrFy2xkG>c^E zC<=s51BzHZ5sr*P)_5WBIx55n;2uT|B%u?dV0x@hp*~)D)tN|4oauGX%*e35;o*qH zSRh?LSUb}o+47M?;j7KHpY15Toz39v;8R5kYdXolCw$f(28-|5Pu_8W|MdV;qLIPl zk;g+irs<_cuV4S8+;aNswDpe{tl9$OMZ@1_pOv0{5_aWQeDRa}@8^`_H2lUG#yiHhT&8v`mSVTZ#PfrH;_ef> za=T3jy8P_w0~%=J?8T?c5AVMJIZ^&3?pqRxi$#ZJ=Iwx)`a~uSAK~WB_Ta~_@*_^O zX1@wr@^;HERMFQ@fh|LeO;1bac%%m=?EF?`Y{y2R@Qpteh0xjQ>D$u@t%*e$0au$P z%aMggPgPW*Yk1z;BCJzZIpvW#gA?bI&s-~OU${=baIURD`o?xR#-$V_&n*|_t5c||{Q#>)1KG(H#Q=IH4e#IPqiC-CG+ z!x%ofAOS$_iB2m$3#SWxKzp4A_YL=#SW;Db1)#IK?6?2dprO0Jvf^Gp;Qh&?PrQOh zdBE*FF2Ue8Hd5jx{kabPrp`C|V_EtV*>9|Gh~F6Oc!9jWxVXruOJPZIZF6RSox_q` zpBz95&NCF$KFK-hFXx%3GUzTjlGbD9T{7#J)?@j�K%>>mSUS4RhS0EGuo^vR0& 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 L-H+TxM*si-ixlVS literal 0 HcmV?d00001 diff --git a/docs_new/fonts/Approach-Regular.woff2 b/docs_new/fonts/Approach-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2d57a149f126319e81c658f307d4fb6808570a4d GIT binary patch literal 25888 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 Hy#W9K*h~lb literal 0 HcmV?d00001 diff --git a/docs_new/images/dpa.png b/docs_new/images/dpa.png new file mode 100644 index 0000000000000000000000000000000000000000..672e022186e49a47290eaf1c7258556d51f1fa62 GIT binary patch literal 101525 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%0D;!)v%GD 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 + Star + + + Fork + + +

      + + + + Designed for low-latency, high-throughput inference with RadixAttention, prefix caching, and multi-GPU parallelism. + + + + Broad support for Llama, Qwen, DeepSeek, and more. Compatible with Hugging + Face and OpenAI APIs. + + + + Native support across Hardware Platforms + including NVIDIA, AMD, Intel Xeon, Google TPU, and Ascend NPU accelerators. + + + + Open-source with widespread adoption, powering 400k+ GPUs and integrated with major RL frameworks. + + + +SGLang powers large-scale production deployments, generating trillions of tokens each day across more than 400,000 GPUs worldwide. It is hosted under the non-profit open-source organization [LMSYS](https://lmsys.org/about/). + +--- + +## Get Started + +SGLang is an inference framework meant for production level serving. +It is designed to deliver low-latency and high-throughput inference across a wide range of setups, from a single GPU to large distributed clusters. + + + + Install SGLang with pip, from source, or via Docker on your preferred hardware platform. + + + + Launch your first model server and send requests in minutes with OpenAI-compatible APIs. + + + +## News and latest blogs + +{/* BEGIN_LMSYS_SGLANG_BLOG_CARDS */} +

      +{/* END_LMSYS_SGLANG_BLOG_CARDS */} + +--- + +## Learn more and join the community + +
      +
      +

      + Stay connected +

      +
      +
      + + + {" "} + Development roadmap + to follow current priorities and upcoming work. +
      +
      + + + {" "} + Weekly public development meeting + to hear updates and join open discussions. +
      +
      + + + {" "} + Slack + for questions, feedback, and community support. +
      +
      + X Twitter + and + + + {" "} + LinkedIn + for project updates. +
      +
      + + + {" "} + LMSYS blog + for release notes, benchmarks, and technical deep dives. +
      +
      + + + {" "} + Learning materials + for blogs, slides, and videos. +
      +
      +
      +
      diff --git a/docs_new/logo/logo.png b/docs_new/logo/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2a8bc258f6663112f02b40f04843789585d86d68 GIT binary patch literal 402692 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

      U3Wp@(=H?VD41NZCQ>hjA>+p zfYslOvRi-l3bc9fsdetu!{5|#{wRaV+jyhsT4~p0z~an0KdI*<8>+_P=Oq46MUqIO zSKbO>CDkGp!wc-G66%hf5q7}~jp%=uG`A3tp5wM6+;IeaxnNj1?XH0ydyygBVnf;`$| z(~XqIIKaT~6TvT4*=QrM` zp9Nw=OoaS29{=V_Q3oE;{_)R~3K_lsZ!vkjiDX$^aYWeJr+ZKiPC7C|?jMec{-U?C z|F#%^Yqma=^VxReKX9+ZkUpZJ+Me#u^x3u`Sd)JkO$qN=z$H$jg*md-tu2mtr3-mg zx}RRUpKEztWG-mYOilhy_vW4G>khFD$b+GV?@_eX81qLYGP&nE7`ipaL5R_u9?nt;^LTI{`BS?C!|$l8dBQ6)`I=GoF!}=IEHx@S^l*0ZRnuQ+ z9V8OA|J$hBqUIx~*a(B1BPwhjDnFK}PH^;p7j}49|FvL*(EvZ0q-Ou)yAhGi4)er; z;a~?&cI^KrBLXgQ&gTqooTFj|cCx*`M^AJ}z0VA}@1^G0PjY$z>^WMdtjaI!84{qw z^i9N1OMWXBiCcelwb)^R97GKW36h`@4->*goJ@_^jueJUp?e)h)N*SrgW1T9bQGya zMI3!Xft zeVfy-&IzuyYDSLv6r-}IAE~L_{&|1GhZp6xTZBgIGt#83BfT^J9oHw1okZf3)!6E z?!m8mye%1M(}n3d+zpLC-A8I(6UW-EjXO`aj0(M^MWZ3{PTJ)C4C+^GVvkjd`hZw! z029s-;ARS7AA;m-v8ltS8r6w@HJ=Pn)sIrY!d0^2U>~}6vF=azY>Zgoc3$SZX0Nwj zNZy72+u3c2+NTyu^(=Wi)Kzwi6_QrzGo!<;KAb+}wZvFSJTjW|!fIDZ=mEAAEk}Qu+5iqRnk|_0*w2 zp*Pzbg8Dh#diI0w|5|FuVtt3TdtSHyn~xRauZn7Hp}oedzsd6OpE~b<=xP4m=+8J* z1!yniiiX6Sl9P3AtoP|9T*#}V);~%ll_bKmxN2i5EN=SniiW)t^oEdRbH3m(!iO9y zcWOL!)9KineT(hTIpOP^sao35IMK8Bf`0006d=kw^?J=k+fEI`CGk;l<&6&=%1D6z8va3H~aK@3>X58~Y?;kJg|1(}@YK z0~G;wIx#Fcrp*iqQ*mO|`|-!okuYAm@iPnM${>7LQrDAH|BvCu zQz#0#^gQ8T`>FsPtr{U}PL96=864jF(0}-VzdK}x@cjHj`V?OZ-Sdm;blm{f{n&bi zUpuLZNL6ZTA#hO^)bk#hGMYUwiOe&wKz-mf4sq0CsL7>hKd0vb8P$4@^FLTPOnz3g zxjsqUlqvOktv5nn05>!Rd+oSxQxuL=6x=Jlgz>T{P?}}7ke-jZXRt3htc$n#ngnN} z1?Ep+!z8!}){IkWm&Sojd6IR4pJ*HJUQy~)6GIE3m@&~jL(_}o)|+?Snf?j{f1PNA zxhZ4a^c5vh zH}2`z?w5U-eXlom4*n5_V5yGr4vWwD7ea`r2cIFz6|!u zJbjPVwq#d4!>AR`u(Coy_8(!%{r^pLFBRSMRWlOu_lW`+DTgL#r1chdARvq6vjP9q zj7-2sb^Vc15ngbyY4MN)F~Z3GpX4~i3hvu(FC<2nMjKXanulWF&~ME zUj>n-SQ&+T{++i#j3O#g z1RPEvul=C=w2`Ta0* z+|g=7kjKqq9{?T>9_L%pk77n4cIs-Iu+1hqjqG4klULLOn4SB2@g2CN_IHaU;QF(! z<15kQnXW1++)w@|x&!(b4ZJw>*G78FO-hol%rZ;lUeif`L_o#hTrm>6hKhiGYp%@9 zK*Nl}PIHy=OCj71^$-=1Rj$yU!CIjLge6ernjdc0Vo03%9obR&%pTsMTn)U^TiH&m z`{hkSvphj@ndlyH3KU8Zcp7xshJ9NwiTMsWkKX`qT~I%(iseG5!35Rtfg`wU4f0Uk zLgb%9;`j8hw&LyoP}NG*bGVY%Rl8PlZNxF!P~i`X>^!XNJS1xr9;U&r6)Kwwc*;lt zBkPXCd;o}c>DOTkjBs&|MhX8kHQJ}RZmgJJy>Qsh9{6^Tl>=7^w3x6Vo6qztZeYyX zRGo(*?sIiPI3W!BN#wzWl-r@q7fllswv0^Sw9U~@917V^O6!5Sj*9uu>Z;E3^Wo#+ zG{8zxi#P0JCgEv4;R>d;-GW1#oPgt#cO_q9pA-<@dw<3f8aqTXY}=Aooe{J#@Y5em zC3AHkR1vI#%eMP2p9{#uTMFs-UDrcJEuq3xhy5lv7dS zZBp>&`~rni2{xA1{YiN$7<{s;7-WfeKybK(Um@LX*r6GyfJas1o z950;Q*>`_^Z%DHG)rpJ_T(KIOsCB=*weQ}G^ck40)86O2GN29R}MD>GqM z!W~kT{9Q(^Qg3^w>z+N>MGvOcAz1f*_tmEyLwDe-p)7XcS28yyaR^S&yVrxpvpu+J z`8BwjoX)s&ZA%C^97q*dVi8FpPgK%T1_j@gzwMzbeio*7$X7(ez9necNaJA&(TLX< zgTz4BA%$NW#U>b0ebiJ#t6c&@K8C z9N=@xlP5y>C2KdP@`&~rnwI;TDHYo|(DuWf8M+RIzxliozw@^?``<%M(V;dLzn<6p z{qDw6A4x4#6rqly$~VKX{St?570U~m59)s}rD6oa-98#&(}Ab74Yp)1*>t7_+)E~M zlko!=#m7uxi3L50c+5tOM5|9K_Mza-tgUaUW=W8^HJ#}kOX z-!-!bycEPaj}T=@AgBZ(W%38IkJ0{K1?cSncKQFvu-CCaECEldSBdr<`w;vBoy5Ec z=KtWOW1{~0gWF8kpcCDbHGc%B`x(Z{-d$%kEjKcB{TctPj_K?)of+Vy-0wzt-C=6o+H2DN z*q~pda!r9Dc5O+nO<`aKC=aj0d)u}@Ql2m=YnJ-MEINdNhp>Vwevy-gHT+H9V=Z1DL!Q@@gm*RMkVr*Pqg zHVsGV6zz^uLpsL{fU4vjbr{!7UVXHf zb(P?}4w3TVcB)I)>ejE{1gZH&YjZw=h4J&(QXor!+C_x!jiqSH6R#OjlUcc#eD= zxCMPwjuUwe{(!@c&DX>HGoAm#Sg&ikx=hL@11+{pwpAheGbCiqiDk|F^-AAHEAcMs zs~w_EnIPu$QOfST!0iEAOit=o8P7FoJt6e#zbmj(+Wp?6hbOtp~?R1m}9f$u3cBS>ShDh zxv|&Cerk%y?QTcFUIV-z3il+Q7&bo|s`m0$wZN4w?d8~I@zJ&(=%y)P9Vq790gD+_ zJBT?Jilu~XP9}2YM0=LqN@&};B64UZAbA$*VruT zi%M395TLt9OV}#5{7Wt$t$A8rm1Z4M?OnT5+;{5vihuOLxj)X*i=Uv@yqW(}u(Mlk ze&!+JQgGG$LhD{%IuHFeLH!t1KN_*`9%B%W?tq7u>0Oj7+7c_;@=;W0Vcn1QLRRPx zc85)#P6dKb+?<^V*g3$Qo~nDgb;kG@B(!?8_Hx>aO?r%2>vvPi5&M*`mpeSq&)sW$ zweSNiiczWl2Ye+KHGlW$u>vfRtZr8CS)h35|5@oMsE>~vgD;!g>|?Qlo8~==X%}AX zd-bs*$>{dd3$N!mPt(h zYN$TfkT8X@d9i4OZ&K9>+7-BulJ@RwVEUqg;vWDI(FCvvxPWW+gJ}JGHnPK>nGA({ zq&Ov*58)X6lR=X_f|)0heD2D#S<-}2)e;A&r^~~2_MPjq+61q9coArYit9WD3<8>< zQsJ#T;6&?eaI<1$#z`m(Qkj;FWMvx=z5h7UVOoZek7uI@HIOuxGwvfJoX#I5dtR42HE=X&*h*Zzy=bza#-SfQX0ga=>FzP_*Nq?C&o9`d5u0HQi+^Vchk0YQ} z`yh+`jcRl`8gSHLa7Y?Pz-TkE8_nk%pdBZ6&n7}^Ap)p?td~6n)sTL@N)StdD!Qw0 z?hzL@L#{iyz^_^;{K?kHb73f?WEw-8`8wW})+L}vS4jH*N*fmo{WMVJ{#fNtSnj^^(89m zv5RxHMrs#M3-F0aUXQ|;@!nuKT;$~qEHPcp`$I}$V*5D~F4vz8X2%b>) zleI;l_GCdw<)`Of6<_p~%B7;SKZe%Rvo2GXX!QNiZb{#)I9Ids#BRxj9`~KsOv39r zULx;IIIHlemY?FAk!$a3B-bJMF|-ty_o}^=8|iZE0*5X`+jIA$!se)2z1l*TMS$u- z>PRb|R_k?$WT{j}(sda>lK&9X+)wtH(ZaDlghM0wCKwjvk7*)sQHOdaB@Zwl@ZAq8 zylg`VoS?6n6qF~6+PQW7uqO)ry+zep-Zgkr{ZyF>6$?JdNIVHTKUAb0#WrZYSitW% zZTH<8HyRaHk$Cl zL8Ea*&4u@|JldZ_>6cAzuigpMu;+U2BTa@!DE+?=?w--bY|I`zXpG^ zMR^fgyJZex>f(<5j!i`7L%beQ-5T?%LB+;#+U-X^5Ui!fh|J9BUE1O}K%s-RWGTox zGf}*_fX*MjA;iIj_ThaTa!plOa`p2{FlM9`xc;vo+3t zBS!40yC|G!OOf!$L=67J>nR0R5URT@MuI}65O3GG8i@PkyQ`#8NSRHH@IF3bI`e{; z4F@91*R~Ssq0kg~k^<45l5g@^MqaO?ArhT{(y%&ZSDO2grI6BgK&ievqA7&_9Ch9f zO1NIezNC&CeTdN0-dZLo&IrLzU1wUT_Na=?(rC*jS*(83&{8*b>bWH~-lyjW`z`C?r7d9z?huWC=hXtJ3O78bViUM>5XGY+% zbHVsUQ7IlRC;CMixn5aBJHPO|ni}2W(&u42QbSO^PPtfZ+LdCiGuP*Kp`JCiu{Sui zV}RJ}>>2N}c^rR`3?%@E5)DI@(g+70xRI@DHw;}voF)cD2k(D344Tg|Xfrg~vtz&E z_7;BV#Ovn%gO~99y}!*%i{Y>rBujs=6-b6%DRlo3KXFxmDdxTH^yTan(=+AK&5m9T z(U6>eK_Sq8*|zKT3O+ccp=r3;N|#wEp;~3+>uNz`LQsh}O{ds_)GK&x%zbzDx$!Sf zAE<%IS8Xjn_jVNntHVV389S~hmrw@1- z*LRx6U%TBMEQ{oC*}X;3ao*fgHhCUqqoi^9MsroA+=d|BV>jZQFBZrF2U{Wj^l$^C z#{SQfr?VSRuBCE7&u_vx!njZ3G%j)PG7PpG`_cCUKDr5IB`uL{b0(%!%f-^ULA)E0 z0W8_;qweZK&^H*A0u7T}+RMz{xnY^hq^>3Vf?3C!q;zydrBLgUbT_ivk&!WSwROeD(%AcBdv^f7 zWL@@bG#N7iE7t@BqR-F+g5;_SiD zxlfmaM+bZFR?eY|3iWv5DTvKR+J9n%=)}c7p8KF4(iO&2XaICX=;gso_n3O-He0#! zQRW@L0{p-%Tx#ltH|taCmDSgjN+n6CLB-#Bm^iX?Ev{7Sv_DG386NQi#WZXJ!&P(z zcC-fn(#pg8TmqL}X z$r4tB`s$}CXsnUeQKm(@dorbc&`f*kqSb`D&7SaPKWp<^0K-dV+{}!0M!&;^2eOsd zH+TLgk>6y=#bUrl@1*0KM&;HWMg4mZXIRu5*v8J+u@l$OW6^38Dt<4W~4@-I5(O zi9FBN#5akoEqKVSKWY~Kt~hM}q`nSmj~gDnl`(RRx8skM#I7cxr!w(k{o6kdT{J($ zT*C?h0hNE-M;!eP=K05E*LJ7iswC==yqAHzc`urXL}XctIr7&o+tdAXVU|2Rv=EH4 zjM(CcC*%?wjIvhjy8KK{4wRM)RbCQ3QU+s%-x+s|!Q}9h<zd3v zgMcC;0mVuXPz!hW?0(ZcU?rrSPKn4$=?LT8%?h>5%%U?Djb#@M;=Z)6bbfV<&GWeA z6q-a#%rdskqDfK92)_se6cRw07RUT*Ab7PDK{&A8M|tE*)Z3EplGh)H6)->o*xQn| z*PzvquusDS;@`rvBFNRD=t|l^VN^0nBe-tfHLVaWU@YTt25}k2`+>(KRN{eU+R|)z z)nQcXsb4gf-VIfziRWOT0;*CIN@2XXI@G)hC`f-kEZoBuQie8#PV^HCs)CyB#_?zl zSo9#Zt56ycb+Y#_zh5#SBN6&>*lggv&eqa7#&zn|d?b1={s^?Zmp?Yc{ylJAQRCe` zuOXrtdD_$@1>WGPNANJ)JaFeq zckTo0(#Reucnz`7ZgoU8!gY0{;9dNL7uw*@iI4WZ#Ye~8hkCNePD5JGtLQEuBdnY9 zF5KtsAsRUB%0nUxSXtkSZ8vuM%TvLie;R7puL32ig6eJAY>Y@ zsoKpEU5!2=su}Z#0T7}^SXd|@pEU7CWHe-lExch-YHeoB=8kObjnpB-m}1^Hj$8jG z$DyC7=&#^6tY&b}?q>_y!KRQF%I?&;&}t}x-M ziY5zdfjU1GN`?}l;&n-t+$ zcD38Z|BMpMedOdHCvNe4H?c?@T2CJ<;@$uFiW<1Kb4!#;a+fpSlkFMIWKHfHml;rI zeFxY(uAtEQ+k|cT?F|L4)O7xSTiVmQBm%k49A6jOvI+7kzMHS8)ok0cJDzKY*RE4W zisPkE$=IRT5{`V3FinX#ObVe43mOq6wgY92hZcO2X^e-fkfaiZV8hT8tz>*=W$`$Q zGGd35%jKwW z7s`YxTV6F|BQH}$D**72^Yz2c6!zGQw6sG@7QMd$Trh@c;yF6W6BJC@OIR$f)%PW| z!wl}F^nnQ)m5wigCU@CGUK0s#=K<1g7}}bXF13c^D{ap~L^^aSQJ|%5Bu1wK7XNMG z^$L8%Tf2`XWYI_Wq&XZPa?a6jom;7U_uABv`WAh8^BS@cPQ_+!WwXsLOE9{5uv7R< zYZvid2JmU*3MgKQ#IhHeVuPidbGKJr4?H?QbjGt?Q3tsxg`J~~;aaO$ozj&`YHy6C z@=RoJ3$(h{!zF)+4?P%Hfy*xdMB{=bL}rAALMq$QVF)-dIXaVYS%iF>G~C13B9PND zZ`<_aT5bU9uhMsz#vSPu!mV~{%t8KScmk(A%tK1dI0WLUIvF|_50f%A#A;zbjol-v z8d!TYr$f?j-%c*5y35p6xAj*ok@fLGW2vC8;Aq*GEOMp7;02u9N!+7H-p&(i&hpVR z4YBD~rTZWIWcqusg4LBLkX1C!FA&qaLdJV`>2?L`KD}w2eZ?6rG(FJHXa&@Gov+Z0 z>_G+BD0$J5U7A}Q#a_jg5dcG78yXrOTpa@-2V!PGE}no41f57l+UBHgbO1_oa${$XjT4 z&XbMob0e1in%&We;q%DMmzZ$XnE=?JKv9^@tR;%CR$q5Zx)wqM}H@FE8` zN62i9Dn*cWcWD~Ckrc1(Ph`)t7(*Mv^WVFjZG2C<8|oA875Fkaucg(LIA z%q_puL4#}zvj-$`EiCaS)}B|+dxN|K#T?vX@<3oKuR@R3Ef!kn zRh<4-t>cIFyy7Szx``Sb_lG#=zq|l2(vzvE=uT@rG#t-{ga9$A)3QJf%o2h)9-R+B z?go#FKC4-(?E(!J0fObzP@|bY$3?9a;Q<;E`85TXdI!yN{_b_AN4;(@pF2<|bEX=<7|nEgO&&gFccp)b`m!*7SmB+*w^{ zo`x<3)BSnw!&ifmuG*4r2JVJi6a53L6OR5oWYxq!WKIU|Hf%XfxA0q`?n^xhP2VXN zN+JC1=sn5!bbXIM8ZE7S`?FhZNm&Y>JmZr&dFd=on{-IwOI5$Z(r@Nndmfj#`E%8Y zU}Xe+;3}AC$9TN@H~Ed#BV00*rJ4bUf^vY9l_D?J7S8kh0;G6lEW+!3hPM#94}27_ z9eqc})nW=XWvD7^b}RcKVTEKv0x~}ZxcO--skS#hM=`a_v@;m1) z3#%zUpVZ-N%@k8Ipx63`QSrR}QF~>YjBG<@c=!*{D2uXBnP3P)8SpsK!|XiR@*96xT* zA8xyND5FF=ZqRr4b-~XVrVa!>`iN(1|KGfYop)E_pkLOZ8&5eI$VSR$FW+hCT~c<5 z4;(TT&Fetu#L}W0)}O1iET_pW(ZT&BIcS6LcT!B5^^3_Rfo@%y&KPnLNa^`4sASWh zgnUV#=**4wI95s`uuANczS5d@?sln}GBw3WHT0)M7btX%3m(>UYOBGWHdX&Zhc|M# z@E*Nb&K9a^_L6_OPCQ49yYACojGC-ptm(uJ5S8bKHz@e|EXs4X=WRP^9iPxcwV(jH zF&C;l<@tI5Pr#Jy=ZSp9kT!_gtkL3ea!6hkAjVSvi|1g!Il-y4Yglzp@@xylFs{kC zbop3u#^mr$glp2**|uO(+Q{_s68Y*xBJgx@=^Lp};KavOj!uNQ2!vOd#c_@Q@QWsp zty)@`^Iq4J728n2Ch6KT@$C8T+_Ih|LL9`cte)d#J5@;u#&!6hYSFEW@DP~Yg8s!o zUZ?eds?XY7jSI2y1ypSBo3Us@fNBv-*oyHOg2(oe6pkY{_KlC+=k;tQU&Lk9F)GkD z!kJJWu&%gztkBJZ-0-)su{v7H0?@2;CM+CN0y&WG2pn&>>0MC%Rt^T%oB_=0cxQT;$y_2uTH3t`Zn5;?yMU%7N+j2 zo!WP_01#@f`Am;y6(rSQ;PHBy8XUC9H8SYzYERGZcQmT4Dy zXYC2+G9vyZ44zEO#XHYL2y%LYF5&Vb{%$egj9p>_DXxR+)ob|z@d@a|i8frT+uj)# zDg3gVuOCdw_HLObfFl)QtbNpRCQ@9F(zTGHjpNp}_R9;gur_uqfp=QJ&MLqs1!)q{ zeow=H8MC;zPz3Br4*%Zx{=qDUflmg?6)mXtUI=@W?LtqM-S6uIadmQ3f5u9gd>vRD zLJO}Ezw*h`R-d`h*N$~uVNn^ld*Ep)%J7a`E`l>XNw;MCy*uBky!Fd41mR}jX|$;BwFi5a&}~0DV~WN zXhUqVw}cN>l8?3KRapmWs&m;Th3&J?4xIg{Te#Nr58x^we%Xy2%mjWp<7A6g*9q){ zszT(X=B?bE$-7t~JD6Gn*>H$VV5X2VHK1+9um-ri5#x;2CF;OipZg~IqZTx7q5K1B z!bO=7D)jS?=1`B;7+b+E`MBABfRTr2&k7_@mh+6xQ8^vFnvtY`O!>982d9m88TxOx zpUY|UB~<*v{J714xn~-i+()4uC;!6uhxIHr3bNyvPIK=wXrOJ3)X>Ju>wul;+mFFB zVMy&LZuj%$;n50*$I=E-a+Z}~L7K=p#6+^gS#Ui$^%TCevq!t5#j6%iMCr6s-d|zO zjZKRZ*Y>wC_Vuxz$kh+{5Keci#9h0NX^iOKvh3m)j*CE zR9+@dk6{cm{)$aub+c?!4EuI3s1RX$G_DGUY#uJG`UP+Ni@t9qg01UF;>oP*QiS^8 zVgESZZ5!Clz!57nm`h)4l*X-yd|`>aFMiph!DTS zsXmHpqUJMIy{rAjyuphQ?N)H5i$0+#JIWr{ty&wPNSfkd_VK*M((dR3(w8m@F_*98 zaQR3x^1i+!m)BPH{k^ouv+_D2J00{3BbF=JE{eloeOAN?2(W>y2WF0o=t|41v%3L*hZz ziCTi5YXjD9?T-Xh;}r3hoFs%+_D`9Sf1G*S%#xr-$ea){oKrfV+FEf%Ww5E8us|mz zyEpvGEZgHPytb_&mA>^GD;#*?%zi_W_+Tw1)1)L#tOSZQh${nP71%h^v=N&YRE+KrfwQ`z+P$=E5r zzz&8v5KRnrPX(!X&$M5*=RUsyM@$iZ5FCUs*V=J3GkZu_k$Om#;O=6e!!x?6aVZs8 z{LRzm#u8B$Z_G$&h4P!zo6_-ly=_Ktak@2uknd|Y`78j?XKk(;8wmGPJ+NdtXi#n- zn}>L}ZQS!?2!!bHHDHzozTw`2dPVwlTUai;H=Tx6dz`%6Sw$9*Ym)NaKt zV=-B!)Vt-xvnS?K`ouyg_ntj4<GE0%kuRL7k|$`%2^(n+=%?+%#C zaoTh7&%NOl;n=0n$5xrVeo+-yQbI#ab(!YAoVFN z--O~nYvDgDXyf}un!?mmt>Er{ND>J9i`A*2TkbDwvBe74sl2r0NnzZZdfD$f`jy>p z-Zih(`OJo1O~Xo}Y- zDOvP2fVw!gMnRLz>o3vExA}<4T4-NdvqMTM;AOd79_>&Bf@n zNf_05WeW4n?bDAEZxPnluk0MOb9rt@1!^4k@>wvhc1ak?+>=MuI7-QW2@RCRP17W# z!0|3gFH zE0rpahQZG!t4>RecL%1V3p-dk#ws|%`rFIxO_+Ut>8!{AcX2l4Y1lD`d5-zYgpXU&au+FldmEu%gK>iMbn{bT%ez5=)Qo$wCv_h}nC7e4wg1Mgd^;W0Xp%a|)m{np!f=P^F1l+*l~ zCE}%+n=>>{<1G<)Fp_s?SWF-UFo)(qtsGY#em5w|JA=1GV~h74)r#>XGRTq&)2^t; zyXmCw#dbIs2~rQXm|p*tdfDl=N|o&%Ovv>*UAl^I z(=y;A#mZb$Re0fo5h+s*2F!_FI&1paNzn=omC^G2KLv+_nh$EtkQo}ZVuKW;cZSaF z9|d#?aXRI)l=_{!g7#u^oNlFeiuA6<+rKZpyxYG<4~-KJS%GPSvL7xi=L{ai?ex7VS%Ziq6BRN2WS@0^f+{2&OekIx(Z$Y>yegHVq4B*OuTOsaoKeHS#_W<0){X4NUx++^!8-QHP z9JQKqPHMMiu4e;c@z~q^y7!B;81lW^^n5H95WII-N9DwBBt};7acE^D5zj}AyclhR z8qz-X1B6iN1Fa-?2ju)u_XQRu%>55nA>{(2Y-XVIl8+x1))ORfKm_6-MAaOi0R2=l z8MXo{Rk;cxooDqAETOFVPj7WmDUe+*%ri`k%Br&+Wm6_xDTK7Umudy>VL9Lh&@%RJ z;JR)7>+Ec5HrwnkU|ExXXd{`fLJuqQh+p~$NIVtZqOJTJ^7nSNaGqBz+63XAe+t%_ zl?_2Qed`YAr9#)E^V8NzD%Y%2RA8N%VK)Lk7s{>X-C=yWPpbgVksc8J`p9}1xLTnH z6u+TBjp$ocEQlHr9rc^IYQH8`ho)SzuP^*kJ=+6ueZ+}s>0%M4W_8ZJ=UKY64O7;m zWY_1tX1|t(&3cwTTC7ya+N4{xl`!EOX&D z+1Q)$P{?;u^8+zY7aY2U>%?!(Tk8NDfR%2nAZs{KRcb!-%G(25{ZrIRb1+e?&e?iN zH`glZl%#l>IkTxPm4PFAxr7m$Bc(FM81BB?ue8-U@f!uD8~lf|z83-|kYAb(@$Ync z8_aQh-!BZWeP|Bc2jyoGv(fXVcD&eaT(wIqK7MXQB`vplUoGEYPMK~8SMol@mtbTv z!k5sUMtnWL|FKYzQRc-CNCn3LE5%?$Qca}4mnl<-ECLE)t!0d_;sKp!(<}FKMRQJq zDZ2vjc&h_^?j;{qt(%pcQ3S}T=~F27yUZ^!2py%8uk`Qt3%P?4&!5SkP2u(GVo^F(@?L3{ z_f?>O6Hukp44xihJdic(3MKTZ|Fw6C8|`2E{}J|`K;P=b^wskBHqLk!(8fOLo;EhSxwl!72bgd2wExYyO0}*6+L4eSg-yaL+vV z#m3LTYquXe${XP{>30Bww=0(Dj-oH8A;VB}Eh4{1) zKhjv%UB6Z99k_>^YH2H6#T_E^ya6U&)xbmN-hd&C;YLD;)k*55 zJrQk#5QsaKlo8l|(>$-gMm4C)OEn|FB~U7W)J`P;>!kpmF6dp?Vwx7`*9dc8vPGsB zaLknyHI%8$MKgNRO>nzI(wP#!UhqQM#73j)*tm3(O$*C92nRs1rFXez`^wDwJM>5ijsZFlio^@}eHXS47 z+WYt@Jr=1NK9IEZ_A4c?YrnewG7YdQ=KauzDctvoZ0Ig#o(U)AC2bRszr^Fl8-J2N za`sU`PcEG%{B1<3B!Hks*|HACOl3rI#SkuC+8y;?Vn9xOuyJ=zEOvADRxbLAB_4B} z(;nAg(cN*=;kCI^FZtouNFnUyPv4t+_S{~XbH%A@Q}v97L87uacRUwe$ zxan!UN~5WOs1IV{x?H4wyd)W)YDg;8E+wBP8SQ!DQ&`DSx$BVHT|1>BV;@hGRL1d| zLo_?!sWHmW3wYBq$LT-FJuy`e^eqzDe*Q=yKSO=bS%F2t5&*Zdap(`*?N!_vqt{}@ z(qEYm4C2gx7ro&W4JXBq^Ja>6X?s>MbMns`$m*$%$Ls==;9*nCsx6!MimuKx!`?=V@Vuo)n3w z^jL9&Jgp)>F#P;K)}QV4g=d(rok?G=xi37KQt{i5m6Pm9A02^I{eN#g_}|hDFzWZy z|B>QMGmtB&qpF4hv8aN6SBAp8;WoZFLO%j_VFzakFoh<(Ns`&!GDx*jX|jNdm#tYb zgPX~IqcVosnc~+PpXOI8b+^EE8P3^trX30TkUa_^uIB1#2u||YsW>n#<&9mS z@|O_D>2k!Kdz_~Yc-1t%Gj~h-0BFCz5aZMV7y12=4VegWd6G4U-oL3fRt6LUp3Iv` zyx*ndKVhX@?itFjLQSRgQY~ zED**4D~dFgTlTZ>{j|C4k<(~oJ1}fRn1IrHvS2QUPxoD;2&b9#au=mV-q%&)_a-us z&-T|s3ILTi@0w#DmWkHJM}6>ESE{Hpl;6%5NI;R?_4yP9ESJGP1-@MrX6BkVyp!QO zXI5I*g;yBcAlN?H`0Y?cywEqFr+kSVRjrl3^(jfV`h14oF3WE8UDevo4?1_^gsr?( zd?GZFsq=(}Dx3nz%ODhYmkvA|b6B&9g?;*KB_cQJx?aXVzJdrr`DAK482rK#kfKZcCnc?-Y$7wbcxcnh|PWv%Zv$;uC zzw$Hjm%{VHRFs`I2V21%9W&4;8dmlPHC)}=#`EYqz0#kg-(`qB66>cAhlCs2$jbti zWW2)AoTyvkp%&fUHzL*j!nN(i^`@McTtoa@@}eShx63tn+Tl1g=Uhea0cG`-+|=nG zJxPrARo?d^HAPaBQvW^IzBB1e`TX%O;tpaw8LHgVa|BV4UHFAE#hBXuo0MP4mv32; zgEOx1RSN!l4(k(QBfNUj@vXH+5mDc2yaEAoty!L(I8U|tdNBgZjyE) z!tEq>^uBr_PIyBxi6f+GysX-m*mg`LjEQ#*@r_%(B4)%s*%s6IzQb}E)qj*LMLv4~ zpg+xz+P_a5CejuGCQ!Od;OpAV)taq<|}LeaMVSf)kfWpseEwp zybqVJyL_2Gu<`w=oL80~f1E|cH|2SiPXlF))B%?&@3sj<|0+p`C+w_I&Y!uE(NL9E zTxrBcysf)4EAU`U>Zzxl)?;*ZRfrAV2Lqt_c`s4cpYI`#F+bc7&Mz!{ll5@+l5&@irHP%|pVZi0sv%4X8qr+pHND^w z3{Ri1l`kpfliw`Kb&doBpHsnBHcn#4wr-iU1tEsBZ~JOj66zJ1w6kS54!=Y5_$g&i z+J!GZz7l@CTs^U-ATri0Z%1={2$2j>f7Y3&1;*VN)r`FPpx+eXm6nuMYk3|oe-QFK zIAtk$?&2lycbSwgKC{FC-bVy_ve(Z}CdA98i{j|)&h%oK-m#wGk5R$3?bKJ_0i^$-;4fgO_DLEv?e@lhbo1|Ha(b#Zs_MJj@reBN>sVizu`pWiBid;usk zQ?8nG!-#Z!6#hG!7M^g<$5^(Vlt2WPL8(||>YI@~e2fwCkGo=-V50|r*Cvj`vjOKG zPlCoC%zOdseI8=LZwEec>x%ZSZS(XGH`}i3?iiTn9vl(*@I#@xXAz?8+ox*E+E82O z^VcK_-lq!h1HgT_+Qech>&@`3hh6T+Z=bv_MVacOxXaqjXx-mZAt3RPcf)7muh&-Xe{r9`T=@s zMj~&`cf7jSpXIkWe_nDe`&yoPS&Gb>fOx?s<1JKnj=@mmkg}s@M{uBeb||p;CD8B37AiDR^xX+jw)D>sqKx)>%SXV zxV{pLd5%Nf?OAE0RzbhmY306dwAK65oPo0;aLTPDRf6SB`bw-OJ*a7FY03bT8B*x) zC(=aHWK@M%_i_;faD)Tq9h{)c-qc>qa+TK8w`eWrPxt=&M-zz%g@scoGR$Ij4w z79t%XACLk{6m|OoznU;-t`DW`1;U1H@eB&uSDhN~Kd9_4yH(_&SrfO&eWmj=+gp|R z`fBTEJki&rPVI8|;{+^D(QEd+K0!_`v@2ZHp+je)|94wC@6$V+PG6*Udj2v6&;HNJ zzje%izqKGORgwiVh)MHCgrM0Vz9)C96NO6&Y z<1`nIA9bl|fYR}*7058!+0jv71_n{n6Y_^7PV5-y%x9IXpw*@xjL(PR;xY+1c}OKB z+K^cST+X)TWi%Z2a+woBFGQHLWDG<*>)xZXt3-j&uixiV^U1{ZaOKvoMadn0gwi+F zGa#1e%5!tPSxz;6cZ*Ckkr~Xqp)tXqrk}?p*SpK^*P1N%eBRD;@p&(=nptbysgt83 zG9hmK!qkaMm$!^P>LF@a)#R{6bDIn4N+oxmxt|I?fDtssyPH*z)5rE{KN}Ks8W)6J z1b#fH=Bizu@Q^it>O!cMl;D{GvQUcNXT;pmZzs>#PjdH<<;+82zPQJeR-L_}FMNhf! zGQv>wF096}Ls2s#{o??rWOFx0`rAc#%1nRI*b_+xSj8) z@{jjMtW}Tc4d@jt-%m~;ODZev2TbwA3V}oTuOP939+FOgx1LQlcW0ze3RdqeJi-57 zAz`dF*A8Z}$7k24&9>uxI(Zr^;uBJ6zvZV=rFfhH)`OU8L#n?_6DN(UB0_mdZ!Ic8 zLO>yl=V}4IZw0U9boRux8K9lRJ);GX(jy)pZ(wt2K(K|%yq$;-ofiHl>GD&|0hR8$q4asHuhj`?}tT>KVc zN%c3XA*uK73uRvO!fXAWc0raOU;Qm6Qznh8|4uj2HhAgtUDP{ZRQ}n-?&#y4q=Mo2 z9_ue~Ua!@Klj(1@P5Z3v*)#@2Z$k6)B=u5TVhTu`0%AVnqG~r9eCJ&{WI{UtCM?~T z!wzLX&3WqAm|4DP_;Kyzx&1Zk4FW*H6&g==#aMsFZ9Rcx$%uaryhqo?LqbC;yv>9T z!3ub@VI3#&CO^lOqT)`;pAe?D5v|dkf{IcuFX3DiU=R3jm9B=B*c&dOciohT+UTn9Gs-)g-DK^ZhSptmOt*9e?}*#Gbc3ru5(eEDoX$|UwdUAPF~Kfm+!iWuuD0O z_*r`-7E2M6XP{g~>#N`A1`47j}G<<2`Z!(2CQ%pEPZ`qBsDMqR(Vv$d& zsMlxYCp(tmgdluU9)%wC4l$ShRHI*pmntE(R#NDuS4MSh`m_?SOq^{^%+f=a{b_Vy z2#Z2)E&0W~D^tFfZELNeHFpnQjl)t-NzUl|&*Eih{F66}G+9#V%q3FkVD*sNR1wD_ zv#825uqtnWfOblc0KuqW5#8}GA)s@=RH?xy1{MRXP%T897so&`p-h@d6SRfilb^Lc zt!1lY_ak92ib5H|QFz~m00Dl0oeKbjUS>)_GSlv^I}B?wpow3%D=ac8p5E2drfM>E zlks{9P^vffhTTmhM zc5^XC$Nv#@=aZjHTsbP;{%ys@9IZbKC1&F!9-`R(rx5)6Va3yMH<3dWZ~kweU&2R8 z_WS6C5OgDJ*RQes80pVz>X%_Zo(Z;&!aE*%Q%uPJ?jEiE_OKCIgVHXFPX^BbN-e`5 zF3BJ2nXx=@+@5TA6RxHr>?u>@PC^+p-jz2kF7%=AAAp0v>3Z<@#s)#Gg^oHP zpS2g<>sF;U6D@stNn}4n$fMChkyIA_zf%M!RH0!fZU8}GIny_CB2sz^gg`AF5wa(H z$>&2)kex2XZ9{j|41kXPLS=4)r=bQ)Ls9$nEHbQ-eM{{zp?6>)pfYeT_v;$(b1b4l zl9D5vkTO#*a~_Lb^CM-UYx-13o~Zscd*+MM7#+2N$U!4|x%fqZ`V2*Y0M;ZZ@2cc4 z1gjbj;EeU_Cr&GkdL(fADWtTrIi$5&rd@Cd`ApR5?*ox^vpy{R^|BRLBcy%5tTJF@bb8@FNl|75~KA}LPl_Q zIwC;Ox1RJMA(vbhLBuEE_U(+vAo)Q*`BghKK^u-?n}i8V(K+2kzDGhyZnT`r+e^A@ zW9@K9dBn`t4H$_ew%m-aO0UYUHo;;8{&ac-&=%G3@$)L}?$6wV_hGBEzwaLB^TTFa z9_$x1^4BQNhk8 zNg}X`@FFeyOpO&tS*dW>w#`*b8zuF?;xWFsS zCq^^7bB5qlRdNELy!CV&#JFgxN?ywvfZ$F6n#2K6i$aVQ=(I>dhar{n)%$dBz$RLQ z=8hbO6{dr_5QozJy->ghx+XH|>Or+FRg;**_a?QQ$aCBE1>q|BqF;m#5@ewu>U_Elc1_h}!LKBWT`=dJ}K?t#jX=DvUfIl-t8(@z z;2t3BG6aZ_Kc0DGiQMI?{Xu-{myg zBiaTbSX~*!YUfq)ocas>DW7(z0M@lkT=h)|Y+4Yd{XSk?Vd!m{547j$RO0><^Y;!x zPo)dsZ`256cGH)O`W_2m`GAimz_BJO5Y7j~q1nA20v%<_X3SZ$qSHDy{luFOx#NcO+t23Y5iqS@#=5W> zfvd>4V1;uE>!Jb*kYw1miuT^0v&~!85&wXW0-6fRuPOgVfNNvOx>Y^T*Y3q@{dk*7 z6p5+k1!~Wc%7VAOW8fL{p0wtMh+v*SOS40h)BNo3DtZ%IFkFLdoTU$F#)K5G6(Tgi zPa}DptI9+oOyC6_gU;UB2m|#+^#TLDtK|`p3HT}jT$&K0Z3FlL_?~w9)Q!Mt+rx>$ zM>kon5Mbi}EYKhm$<_x)JqMz4RGRv(Gm$SJ4rXsNWTPfxM#5n@p)l5y)J@~tm%lMtoQj{DSyCKn8tacII@&m>(~H7Lb+9uGNI_fB1+cp9cfIA4 z9+3u5!)8QzqG8?Z!ei(5z%Rv)$mzmz^>R5?um3I`C!Jn7+?W(FkWS+tbxO?wXV6*Hh ze~Lar37mC^-DTk0)yH!)4vE*&uG%8 zcyp@bffZvBT$6OCpIMTYRSgFwHUK?emh`ViA_UmqO>nh@!D+(>yP&%dP_UWsuMw=3 zm3y_QSWD;|yFm6YaVFbLs)Wd00SPXJPq_sfKX)}}_x)}R%QwP_@)TXuy&xSzKjUu+ z@yxxg>0*2zGd+BvuIBiN>R~=_3clIQy<%@Dr2}~y{dooW8%Z23 zHd7M}NN>W^<>i9T6P;*a)7V)68k7eX)IP?^SQ2y>SWN#xp(6~$I~j4vxT}trYWd#y z^V(&3K`Z}`{67(o_~(A7A#AB+vA<~Te@VN}|42I(kQLxxr$1-}f)9|)4gRiKsfVXn zmrYOF=C7f)N}ZRGZUY?2vP?l|eP+pzIbu?U)ZK=OMK5SMycXU~F-Z`_rT3zpxZiCS zz*>;Br{jnAJQJ(&`FH1qlFK@ek=f&wQslP3cH|6cD&k-DNQ&uxdHQ#r-&eE;(w9R) z;rnoYgA%WLYB$+QFB$J@%CxUGWzM$RX3X&`#gvE_>43ZYFDx!;<9Mq<{A(;g!ptp( zwKjx=zwBqENNUQBW@?K7MgRbxA+phEd76+DxAZ2@6Xf!BU-MF8MV0wif5P-~Vha7B z{1U1N^_a6GtKC2}Jhf5ctM#WBxE{p6l+G>lmFo>vZ`NZ6uHhc>r!Je96s=u0b4?|S zLz?l8MM`Gt9EV+kybu6`f1m@F#ZOP+@g~>741s%P6|ketFqYMCLNksg71+ix%zHupvtUdy(QRj#Ih8!MK-nIbP@5;UkPzy~T z1o!vG(cz8L`2)<0A88o8q{9l@)kL@8n)fO(+Ycv>NvYcKp1XQ|A8XCE4rtc2N3~64 zF8332qP13fm>D;agAmF;7C95s<;GEHxC}C!*Hn>o8}OKBP3+z6#N%ek^99L$H0PsB zR-K2(R5ouCF6@WdX8+Y~7v4VJJ6O$13>r0cd=RR&X0`7Sns441Mt53qCNaZ~UkRcr zhB=`5kMS0Bwl%lkvsX3(~jLBI_n&lS{&qC!5LpI~sI#Xv;}jKm@SqyH+kFfKsE z^hv)FZw20@;@M#>?RtYth~5Uw2JjM^(&wr<@mjF9*FISEpag zm?lh|%8#r$98);S>%?xg=T8=W-`GE|zFgD;wC%ecn@?}RfQTc4N9C@^t)%4OcZ4qq zR{uu+y|~$#r0e=vZ$^4ro+|rd@3X#47mtFh8;m;90$44ez`fl0Rr%h0qCvzJ%jc-7 zv(0CR1~IlDZ4Iwy5>u!hLuuH$Ia4_{3mnkw+7qjMqqWy?j?<3d6Tbf7y|yBEiAnLKPfp6PZA}9R6xQ zMPcw@fqia`}5O@A%k%=wV#i%>~6nHm@Ppx>2wz0uL8&Igw8t=k)2sZB>W zF1_w-^;8Vx*%8B{S5Bk)e$Iy85XOxc4+fOdJn+3eB95c#s2Jb5U2lxMu{-C@$WbvG zh?u4=d{Hyte(hDI7=<+9WPbLLqrjzr#KZI9Z&O@M4;c*Q#Eq{gcepFYey8oxa75o1lu%A(WuYRZT9QfUlg>bFaUr590Xkc=bFpcEmZQ_w7U7aU(CD}J>R^Kbrv zFGi2;D2(J(H`wX8-r*SnTo7uQ#NIwqfIfAJ5{|ZuBxuNQGg<}=(&E5NKiqL#bZjSm z61_HS8;5idB`iOUnTK0{BW&`}>;`{jbeh2p(vjYdnMg{$1=&gg7gj*;A1Z46R@nxV z9$7@=Xn9ConnIQUaNBZ7h48HkzIrMXDg=o_rN#>dh`oMY-s+GNmusC->d)xYBHN5E zdR=WYyX;DDzdGtGnBE{HU5Kid3<_cC$R{HhMJ>f}RVoLQe~xeXvGHt4)z4jrpN8r| z(2nhK`%8;?u4n3GMFOmZOqNHwAs~kWsrT$rvX9Hvx~E2|5Q0FqxCd7)2*InSoT|Ho zDU=|~R)6865~h>M)%VNHLy2GSC~a-(?f!()vnk0{Ip10a6r!+mQZXEc8wM)HLzodE*7eIz zlO|jcO(*KN&p-c+`PIL?&!LpF?DhX5kTCkhyZsAR?+?gm@AaD&<^D6~!V9u$WX5S) z7!M&nf7WY1ZM}a+6{4zhf}woqcxOWx%K2?^4KpYs__&~}n!aS%lI#If;HJGkqGlg2 zmhf(sjc$L9%Q{f-SMP|xQpAkT+7R!W`d7Brp=a`l^u&Cg|>Y`%o@xexiRR9aAe zC&YgRVw99*nQl{RN&Y-gjke z(TROkFI$np>ks&gfLSO(hc0kHWqSxuR@})9dTl4W;NC#f6#q0Z_<$?iG(7WhJ}A^X zG9KFP6WsoE|8PGnjI#Wl&cuS;Pyhtq@@8TudI!QuxY3NO)J&D8@L#|tS6T-7gl|Q_ zoRN!26-rMLr*$lBH^9( zI6}G>lrIWV6T;-RS+gR7P4jsT%lG!VuqqB8UMbhgR(&8;7y~=z;DbtHQGSOUom_6%0|fKEfCoHHkB`KtQY7?Jc$DINa`6=RL{Yy-L-LnVZ0VWl2aJaT?fR_3I(LwT`-a+$dcyy0W4;-~dHSLv2F!-vVE<tmKjc}p2$2P+crUj&X$euY*=`eR`Ul$?|lzcNi*AQQnNK#wY_kN3vO1J%;Oey)az5 zJ@4Z}{`Vsx57`qBj-BDYlxvRzvj|c?JWdYGM0*h1B1d=e6Qk30pwrI6E6E=f(=BSC z{SHF*U(7QhUm@&)PW_VozdG`Y>x1c58_CE!t^k%tw}k42~aT-Wm8>oXITErY|^;ptwdm}{h$|XM6f>ZWT2?P zuc3SsQFP5aLH0U7Kzq--8$b;zRr6OKIoNXf=Ic|ixp(r;?cNXAUpNWH+s~Zj9O>z| z)9F9et}YyDl%K4(BP+jmQ{f%8yUcqd1%sY=d;=>=V!e2=5IRC{EL+TnN{%Gb23W0~9^2KC zY%J26pAQh4?OiYEk(*lp(dn$eJ+j4{2AH88bm=0A4e|8S-1YQ&v z!VI@F<{qrx;`FH{;WeN6acGBvD5LIJpT?JRBT$0X$)(em8I4xM%`>Ah%!EtI`GIksO(A^f7MBPf_Ghg$mTA~_Bx*tOil zS)L4j&P^w?5E90#$3iO127tm)_ZeXjpA-JB99=Qyg#mPfOOVc~LYtW2*cw(KRVcxLmTyT8N zww_%D8Uw4!R{P$3r2BUB=2G`H-aZ-S?i(h)Jw4997T-09-g?L3Ra!Ml&b8F!HXh0! z+lS1_jZ>bsvjyVwL@#_7ToaJrz#5A|5A61&bbA}XEs4(d#8@G$i4SW62O$-N9}kfU zClVK@Njxf|ZJKUJqM$6^EImF{G#ApKmRfph3WH)CBl0_f6ftw33GD$I!xHcG0^Xih z^+I{Qsw`Knicq6HGSMeKkUL8UnervhzU@ObPhaAN{Hpd*K|6UabZXDMjyewq)@ToU z_|J8!!hYqqT`EoVul2Ly&ujmQMqJwoe@-EbZD7HE`+2Vz?!jx*uAUHGMU4~;vrSw% zv%xSI3`j_+WXJn)+O;IUJwg9mN?ImyvU*~v6mVeU=!kWPx3H4XpYl`{EtjsD-+wUFJsY{| zpm=4CJij;uflL3W0kBDJ2jsVfg>wJq^Z$x0AO$6fQttKTjB3VIB{wG4So&puwC7#R z+~o2n2eU9=4`l}v|MR0yUPk?|3zdbPiy%pw`7t|ayQPjlanT3iZ_$3; z*UQ7%soNK417A8B6C_N3WmofhW4SA#|M(f_Wo`Z`51Za%4|UjlW=9u3}ZTeA(^p3}@{<0*yCbbXYf&s@1o`E8!cH~cX0r}62n zOWtEi^*^dHr9ApsVPL4Cg%}U6JGPHA9>=jON!g@Dh-!fz2unFoV<9NTQ^YU47-?R znFoPyj)k|)R}V?~=LbDzVwbhw6QnMa_zUA1G?scr_k=O|M>Y9UfGi)%*bc`PiOYc5 zJS+ziq?61^XQRnbkfb&=dR)1Rwa1a zfUA&{cud)Y7L*6Ee&C<<2{YcN&s(LxXMCN$9hBS^w$$AMHMMWfKWbbi43T}1teZ78 z9HcMeCj~5Tpa_8$5qI)EyYI-tlC8#nE}|~T^Mz68p@Mc%Mvi7CV?VxmgBq|b_J)<9 zQXBCBBu~jrZ$JsC&!^F4Z4pDV+ybrq0WR;?tHNH$W9L!IzzS`yU{xmmU~5L~g)mi{ z$n|PL5vnIGvIGFh7F-J^KCb(ltk+50T_J-$9iKd4X$j!3=sGM`Y_b*XT+v_;{Rd!p3I)&5`1DPEXocn1aj953b^LYpVD$83$&Nu{ zdyNXG6w0S5?7S@_s?g;755LB7TQ$yu2Nc4ud)LwgrMP~01?Pf?bt2Sv29q$Oz2i#u-VA0$WH!W+{P}`hC^zz+O@;{QG7J|Hwy)V{vmH~ znzNK42@LX%vi{Om@ddr!^9~OxRtyUG3=++V!GAV$KhMjugK*g(84?S2qc(ePfcZlJ zh2(q6t>pP`lQ1p}T6wjG%=Cvic*rGCx;UvTJ7wLS3}q1b6klD_ynq%vM15$qLTz^1 z2JHHZQP{NkBvX99y!nNet#PwhRo>osHiz&fQWIBB0a@(jkgJijc}4%A*28?hALd4? z${Sy2?oO@eWy9Z&TZ6Y)C#7U`2_&7&T(q9#eBCQO-iOfOjQ@-jixOk8-*q?ze8786 z2cL>UZz68#ZHgxHTpUQq?`6Gycp=be>OXmbR}CuUdjxu1!Wq1cB5qx#4PpVoIxos% zLiA>dzsJ{VJ9V&Pv>ga-s%Q*)!z=K{iJu_N!ZMg2la=__(z!xlUa}!33h|*;18|Y zRmf&Vs{+g!|Nf{ZJ<_d!*D{--cKt8(tUn)_M3h!IoZ_DzbxmQzBz#y_VKMdQAM|Cw zKGTq2byou4`6yj|Uj~>|)ma*Lf&I1sFxS~VjhVDjYeoOlk))Rkt?&wm8Q;S~v%-dq z<2bDxz%vjWe=>39qk^YdST*+===;)j3Hhd7b!6{@%eD#bY~UB@GtZaab%gB2%7LLcIH@a+Kw2h3$t2 z$)Ec}+4Fl)CJ0`hlGbWO941QS(OQx4#6;iiPn!Aie@}!mzW+<~4E-Iino$%O(Ksjm z?}7y^(`@8aNX1yEugmbC*z@XN3BCIEGwy#zM@d0or_j>qso?GMIJ)p}_r6{2Ydl;9 zErg`*Q;^?t`RT=Q2vIY!(X5MO4mb<9>Ir*&{6Hiw7T*MZzYEj2DuX*97jCV= zECYPldVKn{K11-IUeiOOFyZl>%u$I%}0xfODKCEHR^HY5>#(T@UFxYCxt?d`|Hqdf?*B$&-VI!NAj z0Kaz~t1tZ;YCd0Nl zWafo863y{v$L#nz@OJ+TOZd7@I$o2jbnk5n2S|xJQI5>gri7UfS!G5(uV#AU`UPy> zNJN%{70txDl|C7drH)-Eaih!6T!D%q9@>_!9gr6n!r!&jlFujpeI^8BVf(V@vNEsP zDtHz0>O7B8l7LntP{xbCG63W#AwzYN9y1Rw4pjPv?^t!GD|F@kvPih~;mOCbVPE)W z=|L%=>dOz$j;BP=xB&Z0pcU9OHhkrvw&MH#T)8G_gK(wr&zMvB_WsL*7hQqw*N2eT zTmL17;qWH2e`#T!4wh>I?*iNoLkvi|ex04X5$^I~2{e1_dF%Mq{pz9v&+#d4?vs8N z_{I9=|8$tjyj)4oSIo}u{9%-?hwnX$OYyv+>{&dGZ2DAxI>QG6g~+3D&)jh7?w^-R z^S=c-4B`kr3hHC;F-Kkg92@ZyI>0ao*&kh#$>P4S50RYsSaFE^qjsY}z#+1>E-lI=y zA-2=C_0G|(jMS}T< zj>GnivA$KKO>W)%UUiMcq?rXEuf`Wv&jm4YJj%uTfRE!)BZFF_Qo!M&9s`+ zx|qDYxmLiSOP}^GkdwtL+G9XmDN~DrIEX6TUDhiz&2T`Z56cfp3Nib9R{YCxdf4P{ zcyckbwtz6?)vXXvG2_Pc5Ssk0KQ0dxQWZAbz<&3n=qHB7AM{Z-=er&$1y!=J0hDGpa}|zq64g zgAmvWxNgcHJcu|fRX6kUopYeQyEVK7FXW`=D=mBVfBnMUivG^;=&39eRQ@I{qfz)gQJ=OCTjqH!I1> z_t@7{M>xsrm?p=P7{~WC{%=~BMn#F*|2M5`p+z*|tYYzx=>OgW`ooxA6Ri7Rp7Ytj zpV5DL&c`&Wpb*cd?A;PX?Q0|9?Gl{L;V*i9KMOn1{P$0ZVyOK0b7HHWL|e|GVGQ^S zNsL}u%{FeLV*BN5^Kmddk(R0S^vXF9*(ng)x$hU(sm;jE7Yo=}qMw~>uF<~f#d$B` z+K6lG^*t;$rkFtDSxV6z9M5B%@zcL)(YhXN_6x| zI3wXmBVGX1T3#}MH71jk^xn1rVKq%C1k{4!We~*HVN6QLTl$VEFxrK#;Ie&Cb;!#f zt@=WP3li&nAI;7QDsd_t$t-HZ5%_WPGI7r_tycR|W>yg~&Vj!YhNgHptoSDPeA9pnltH)RLk+W z+391A4k(?4=D4Wstsh1JYpIY^{V57fQWVNuW?IOxpjdB(9R20k^EED;iYfZGNyyZB zavW*m9uGEQQk7G)A)~Jl7=OEqUy~{CgTNxZ1{uKsyTF=JrFImw+xDG9?(nGkcZi+uQZywF0 zBJ>E6UJLZfG0fW*BLlaM;5tI)1Xymwt%$-ZU!7%Xx5{4x^|rCD-xRDSt$X5A`9dZ( zu)x9;-PM$QpdFro_15xfTa>^3;(UQ>t9Ha0O4WAHAGZ95@8F{j{s-Ubz|+RL5Sfv5 z|1*ho;HAd)YuhrMzOq6>MMGFtUBV9W($II@zouiHpX( z9)HnKgru*gFD!$C9@DcN7g4mwkbIH3h_8p2l8p#qEFwGg@lu_w98Fp)n7!?@5Vg4yGG? z;#NayG}cMN-rgntQp!qhRYC|O*Z%0qnfcwHN{jO@ThSstMq8&m(v(9X3kmVCMBWe8 znPinXPifRvC0cp&xE4x%G76yihOyZ^Bqf~ZW-D5$qNfonEoE30qUOOMD(`S==DB%@ z82Vw|L{j@@NMfF5_yeFXyiJM$U^U={I26Yw5@1L$ak#*&%5E+My$wJSx8R+N4E?-u z2ntr|F3lt{&s2Wy4ygkXH>^pLIvOODT!a_sw`$Q60l=zn* z@Fg8lpYiKIGr2H;#e>@#G4m*u5Q@WZob7cA*@Yp_-{bW7ao#9@A_8FPx>bx@KTi>K zo7&oYZ(jdX)BbeD94 zG{Z172oe&KN=PFm&CnnnGjvLaf`l|99U_PfrKFUc(dU1j_q^vi*Tn}u^5fq3-fOS5 z_PtpOMAUivO_G-2K*kZBhpd2^sfLohL}D{4twyZzMxYy&M&*W6!;(u)SoEZP*~}*~ zLxgQB!H_j_=PtREKl`9F??DZDNXr@hS#Q8u4}lli*xis(EKWWHsq+pKNyhI9m&^yJ zU(6YIk6#n`Y5H}$|M~Ca8pPnglWX4HgQeo6HIPf!7BWXC8n;imVN-!&NHb0peIEF) zidVA^4Ym4DD|VCeK(HROZc(q{vxY^7x17{zN^xt%rIO?V&;@sM!Zt-k;$X?W75BI>Xp>} zeNbKj5l?;&d6SW+2-C556ZHfiex{jt&+iXloBKIbK)X3)$@w%`*z}QVY~0V*UpnOc zzmNm+nr{__&HNHO;Kje>_I*8_qEbgGzp< zk5=!e*1P1iymu~N2Ov;KdwU(?fzKWYW|D?8#${vU1+XkqQz=`#eG$d%5Cg#wDa#^K zI4a#~D5u&xba|m=#lU+{^p?nnU*%1vdC!uG7{`^Pd$tlLmUnUSTgI7444i}aLsTc?iV zWrRZUT|v7W=^IfBOmg0r4#cwQ18yRN6cHP&s2CF5Sy zwUs3aZ2s?IcQ%D5ld~Yy92^~%yfXlk+*fyMES*jILQ)d zz^H*J2X53xu0pP4_#T>?PCwZ)vBrUoYutK6W0)?QBy9XapeRwjpQw-u|K&E$8pSf_ zM^H7S`bj@s3*$>s^S~>((KqUvKlUB2U!}-H({(Vn#c^W z%$0x(c3!7nQOAFN-qQ1-=FG?qovvy_SIz!p{_-W0;`WBkBPjX4C~P~ITXF7r@l+I9 z=+VR$)sL8@M)ZDeH!hJ`d`K#;{iDSx*s{&asbx2r(9Glml(OJhgNo0yxn8nDk3HABLksSUm;@OF$@m9R(Rqj10^ zN<>xOFt}VMVfeSCu%KjIYoB&06n1@j`tOS*6YnY@1oH<@l&=YcW$#mD?II)!@i5yz zsPHARH7ujfEErUvGGLo3)KF9GKxIsda4}lX9V&%+rZ`7mg>>|rC_js7+YUEt7-Kl&V9s~b;=~b zt25d@5l3){%|J0f_Ex~JCBlrV*o@P&(H85bz9W&)uwW3s!KemKhUiRj?i0~0aqLfD z-e&uxQgc$~V2u1G)-|S4mSE>6?OuQPe(^Z$K_drXwaXw#vSpG#DNqY%pXwVBQu~|) z0%m3vS8m&SeqS$(;m*uaR^rS`U>^06l3E2%ERhuZjT>?WV+mg8wxiN^!p?_d*k->< zz+3@9sq+dJvHriDO_E{yYx87nIFloeMt#fT_fzhr|L>S+#u98#WY zUxoQnX$St$~|M@Osd!P^QWp+^Doy~JMW4U11&uuH$IkR z*&&R-P8KF;zg6`SU3%);^k`oO?+m|6=&u+7KdkE!AwNO?LMUTNA7CWWeR@4;uR%U* ztasYHHdUEl?&t)}*95$^^+6z6FP)qV%^2hPC=SIi=~(EV6b$EESjfpQxW+ z^eYk8Ov=3|vLC5_O4;Y%8)4UMW0S>!vxig?fOFfV^-CD}{Go8c2gT*dfPB*5e-IBd z$7zmC1T7e2&~d5-v<&sS2ui&ZG1{TQhSELY2$d`JKuYJr>Ev$e<1GXP`!xfbpix0sX#xbF{dL zTIRe5ytGyr9MdJUg4q8NS`USkFUy%C+yY~P3{m1ml=6vDA+aP^u?6N17m+Nj$7gM7 zAsg;@HE=~~%b)i#C1Lg#VJXA9rp@3IT7$}q`y*VHXj;CwHCs!j;4i5^tybMU4E=IfP`L-bi-ps$7zLiGKTq2RQ{ zAeC%l6Qx@K3B-?SeFe!J?E6(#EN0#IQW9sf2cecUwHpD9pfVKjoVzDy_D`)<_8dqy z@A$1N%VohSY%^nu(pdt9SyHL;+gyY_UMTI#2j8RkKlp=$;MY3GME<_{FG8$F0Kcv`3JPId+a7K%x zwq~T0U6FjJAH8R*$`$oDGZ4UQ2d7AupkVpW@|h^Da%(jqjn|R*TOI^ONEuqczv@_y9_A?ywI`wG^u(d`+V6LNyhOwy&0jgs2UaN9D7Df$1A z<%Ot&R6-nk*p0#PNTUX$tHdAS`-_p(mWoCq*OR#pzf} zBvl8#1+7LM9EvGJj`PLt!@N8E!D~N3$0GUqOm|mcz6hX945H7D2U$U>20xvzt~xeW z^ETpI88PLnKb5O7D)%Vg8TT!evk#1%iXp9UsnZs0KJ0M~cj;@k+GjDXPP&kIhw4Ur z_Uw|#JPaZNYH%~=i*HhNjk5dR`18b|_qtmc)yd$y2>OS0dMuOIc^Dx(R%J$vVXm-D zD=M8_k!f1)-}!;gS}!W0Pr7mfX&i9RoLCGyFtm*Fje4GJgK*dztwc$iR0Exum&E6+ zpIPO}K;vCuH4j?#{KH}sO9EhyqO6fHGlj_S;9P%E5+f=Qgf`u}G9fGHu!5bsrX%tpM$r0=f&r7vEAvAk z`c;qdH~j*nFOCfk3+SMNMvjq}jrWs@Y$Y1&AKHCGddAr-SifHsSXt_aLNpVO;fECG z_*uQu8VzH&8Y#7df~@8ROSDTM)P!;!J`2Qgz;fKj*jX<)(q}QvEtXq^VF|y4YL3H! zk8m5br_ZXf(|(ev@peLqa^}0v?V`#t=-5txZs1SJ$6~%>x1zVP^A%6!?Lq_&Duf-e zBb}P0f!QE-@-ZNcs3|JbwYq(&Z>@yzRg<&NBbx9EoJYB8n|L8E!>h}%g<%9FQQFrg zZ#Wfk0sEC5NycDF-`vrtTUAEa0T=e=|Cas+4X^Z;DOzuY0fZPTww^%l7n^i5h|dgB z@h|~n4&KyP)_;(mt~0Y_%8Ew4P2P`VIiB~wyLUZP8H5lvIc8fgc?l}Rl;!a89~PV% z)v%S(fB*O*B8tpcHD38_^r_6Auu^|pSghf)b?oe97JXESMGj^U{>er6N(W{ajIv|h z2lJW0udPcgryWop4dzp_qGXj)lgh#;Id-TNCg(Tw$$77M3s)oDoCE~lh--gHcc05P zcCzUytw(K_wof<;4#GaOQ<_&g8QgU0$-&lY9`Wf{GHK(TeOGGoewyD*{Y9+Fmr5%$ z>Af#k#6x=JBwc*vngbX7=egVk<+n+ybtvV!T%u;3MNF=YjkxCY_lN3_RerqKd4K)m zZJ2OkrAGkzo}i+5;R@^^MYrOldBN%Hf_NBA2hZG*vr13xIFsGv{1DLUnmFan&rHoY z{(5a9BlL%xM&p=Y3z+d}c?;#jtG}Ysk-+r1x$xZtGbW~rG?{S^F;B4ez*rh93lbjm zPEzOD2G3YfBbLcJ+|$Lp-Uq39SngW&$_Q@PfuT9y?9BcU4#sYb56sp)GU>@Tr=q2X zgT->mu=s(bY&~5vG?qZrQ{Q=3ZuX%Z)ttG53IS>Z$w&@XSw(0_HF4Hlo!)Z66Toi* z!)$*E!=hqqF2`Ka6t0jrA`?q25!umlEP!~gkD%nhJl<0cGUu3#(?Rvou^UX>n-y-% z^T1R+v9uTBniou_lGk|)%yr7@p@`GU-HlkI`^2@BTI>5EpJVj?@Bo3WIbzGuIWP2ke1B(T=7aJo;qirj1GOKrJ!93nnZ!MnZl#+G%JF8Q< z2)y8g(W!#5QKI;K8ggTWl-&MP*A82Z{3p12edXyFs0E~xhY)AG4Fn?KE$K>nX6?& zE@B}5l>oGP~Mz@H%k#~0aJHx{41azrKlx!{t$y;zQGhs;}Q*wAkIGlrwK zO8YbT6WuJ!i;BGSZVSX&hAEmnCTO-++i^0eiuSwHl`#iiRuhep3;BlsPEnfeLBlMg zx`-Dr&heu@hK$-nPg%FY}^p0=iHdX!O62bZ8)tq_}E5{>sf2mkoPX9IoKVk5mH0vE##=%R=?fH0hq)fRwY z9B`1O{nsXgNDU$v#J3@)^Z6m~uOpcYv$V(QbvJr4(!`qV{lD<81J@1(pU&wx_b>Ez^$=6WXrk*e|x1{}8C~BoHbomvF76r*TJ( z&y9aus4@VL6yF?wn_=c z`>N5~xB>+*HGEDV1$NxEDYh=Z)5ga3I~wQ&9XNAWi3^HjuX5U&kGiTmN^OJuR(}~j zT4!hz^=N5c@SDqK>82zL{H0E99iQ(Fe#^fpv;()>hRbl(VTx|cqizl?MWMq&ii(R{_CDIMVwWeGX!IBx8=aCx2N$B8VIKc*v{Z z8cfsSimo~1gpPRJ&-*{<-LQ5e>cI8hD@Yx&nUW<3BOX>ZqVwUzPrxU3U>=WFcPDTdd&-gqu^%6PX#sEt$mM(!}k`b1Vh*65lPq2 z*&uJZW?}T-_%ZX?AXe`$#zt0L;w{x)ySr~|E&ZI_CrBumd@py=<{r{^bG4q-Qc4&; z7xNdZY>2kYO8mnr9GI^2onaWF0BqvVAcKcxsYK5=u2$5W$Z29Sh$Ah}Pi^8txOsWl zM(UngXNG-@)v-|IF)dcqvt87uG26w~A|0hm$rdVu_v@rtOFo%u=^{l8p0Q#Sya-{J zy-~|3=vp4@l!IbTZXbtN%6#vMxAbei&t)c`^*2}9bOB5jHa2X{RWZC1*F``W0p#FH z8|2qdEe7TWyYIg9o`Y6JS%%@CD@Fuj!7t1U>@j64q=)HSy2HYK$Sv&6eva=Y$G!HbwEzeht_Je{NUF$Rtz;ZhJ zEv5_JJ9+F7X=N&U9dD{&yiur}Bi;|-p;&e~6P*uBFt3R!K@(W5&U@Qm!&h+RC=w2a zr^h+(C}qY5Ym(2OsD|lFutJnda-ViYGHyaOP3KW3)>Bi0v%Q&gi9m`1?B%7)LQ;gs zv8K7^3eyu}sO`Gk#eX~n+*wK`2gslRTb!o8iiA4{!en9-&+ap2t! z^Kput?4%#J{vNEgu%z;*zP0s`UBV{=Rl14WptJOo zr8I8B#L%s+*Bz7BG?9L_7qaWY_JY#%Rdd;RUx{xh=okG2nr=3>Ltc=f&+w+Hv`e4Wy3a(N=H8L#nR+O|Zmf|iRV8G)I+|Hiv*lp9CjVCW4meuw% zp)#l+o3XT&R%XNy2WT{{rQd1#{Wc#h8Ez$E$Rz8e={Gq7Kq9d)8A^P%i zehDYTVpOX`%~Z&)s9n`PyZqzHBPc+T-eqW9PiG>G>@kWTJ$Ma?)oLY(XR`b7e1oKU^gpR)OarW3{9uJ z>0c)`Xh`ty(-Gjluz75LGjMG6Dq&>(_1vbx+=!5uqM2&DhGPx;+q8U#ozoMTN|gcY(6Nwkc&+ICE`c z=#d@0Yu}0%9Kuw?jwtcX97Hqpc->v2Zn?r5EdNua>Ur`8=^_=TE_UpbVmnCk*O9~3 zvOuI8@9(NTdedE-f+uRp1sPQF#C?Mm>TB+kW8lcveH0jAO9M*uMGt^us6xk1#2it( zF3T0)1a{MHiKJAV3Nvt?;(Jm88*5lelMg?0nNs+Cw&`9RW749+Ac$LETA5^1*j6mlsVQ% zdqg4enY66s9Xq7@8k|xy9Zr8Cjk3dCRBJ_bqnz1HM^OpelrP_!adPv~V#*@u4M(BXtycM+NOZ%c z^6St-%*!Cchoj8U0fD;+^vINmU>`9xOlB1-lUV{48N@vwGyN%j_aH$jlp2OedqFi> zWV>_TU594seD2cr+$g1T5FKdJ?_K^^F_7dlXZkVf27@}#2-vUd@||&4(zk`*Qshfv z@W%**M8Pxu0wF-GD4(R4js!~=o=Iiit`qZ<4Yn6)f#?k^cnSSl07PP!LV>`m?aZB} zu5^*a2sbjNsOkz1g15HfU{(I+^rXLq{hFffM)Y4{zXUpSWTtodm)3d&hMdiQXip0b z`a@KL<9Q(8)x+qu|L!(Pc3RUk=!54YjZq3KDM`*XSri@h_s9*3j{&>Al(@2v0=5aF-ABwSpFnU4l1QlIRw=1Lr;@G{>@svOv!rG0i-E zSn&E+A_+!8zWEIfgPY||!T&OaZwxdDOUcfP2@hXW;Z^&@JGujdK43)&G77e=cP zy&g~*Ll%lfLIg?^XQCE=%Qt47+ZSQ92 z57~ypZ>@KXP>xc&rrrg#Lp67QfxL=x|7()*<1&F_g|2i#=TN5`dFI(~D|apvbT2Nm zm&m$Q6vv8m(-vNOiyPINcTQi=So2}P6x?wj0JuE3{BRpyv#0?8U4X50&U|lss)V&h z<1ZS&yfPEYf`fBslhtps!qv6x@VI%OA^RLIHL#@B47s#EL|q7v*CaGJ>t$yxKk1*Z zHg)%F&YXYe)OZ=8SuT@9siqd_DX19nsR{b=a*TL7b)zTemNOQ7?A4fLHe|x_3Zfq= zR2*cvQ`)&4PmN;){nB-ZBe7J%`huM7#c|-(de>+}R^NKto&{d!#-s42=S@f*Zj0JS ze;(z<-9P>mx;%PIJ!Z;gA@}3^A5j9*Ixz_xdZpCb-*9%0egf%y%8 z_|%Vf(o^HX-CqNoSWFGyY#TKFm~)cSZ7LL97S5t;bi*jO8-*HiA<+d>S%rH^}o9Z|^&8NUI88Gksvp+%w69etY z)eM)_l5Y7*ch$|YK$=5A2Wxyx{DN)RFYvh!j>(kzP3V$FA{Re6in)-y7h?Y7K$6vh zP=OOGGMXI!E;SQ4aOD=niugg9dm9s^TRlom&zpfPTF;Brgs3LO?>@ICo z6tpGCQ^Y(L_1#qS{SN*T_HH)ya*!|lRSiaZfC(9ca9e|4?aO6DY+-L0Qwpcb<|~%z z`lnPxao@aV{9#>6w%noilC*Ev7HTj)4fEv*c_AnRfEHaXS%Yt30hFuL#!!f(PP@;*neWPuAc@wGqBxGfWYdYX0ZX=qA{V z%H^2V5Fb-(Odg$9CAhpGH>s(iqH?(GbcLZD2*i=_F=B%YYrXI{;W|uXCHt2CV2zb$ z8&52P95st=>QMIrKic?dF)Il%F8^e0U`x_oL}%kKp_s-@*Uy7pO7~w{pLEMCx$e7u zf7xEhWg!>gMir8Clkkv5-=3Cx5UlF?by)qVeH^#E+5{2!#5h#WCM=aR0ycj%tE03Y zSq+B9c|3v;nPKGyB6)(&{krDrMXmo_3l=CdBrotk7kWvtHiQUhSSo4-psE&HYEHE2!K-3v~{FDiNs2-)#4nX)07#1Ga zF1J0^WGG>Gv=MfDykVOcDeE)rQG7&%SiV-eDP2X65nj0`(fe?57Ljd9-~%0VtMCo* zq!o7Xc>kBe#%3&iSS(j2+XUm=wac5|vmyX)3q3jZKEFz%-DC$Hxi1?a~V9jknl z`jsCm;p1nN8<`dDPK}pYN82QJ-iVMOK?i^WdsvJ(%e5(#636$%ud&ol$3=-92JqXy zqx~Y9usEs7_|*|Qnc?`dJa%*JI8V(_bpew3^}{u1VP~*~-Cr~k#wuh5AXe|uMn6-h z$Br4JTen>A3M*XF8v(Ay;+@N-rrJQDmmTVpT zD4lV$*|Fz|e^^#^-sn17YMW{6t?IWMdI+eEECA~Hj z<(R33L20KK%4T4rM!@TPAy83=rDB;BVUC+mFmp({O&g)N7@@!*REbPy$p{-2FYzr_Em zaT#>yn*VmOe%0oA`)Z93^CfZCp$qT~DNls|FAo1I0Hhe=zE+W)gt=Gi3CZi{o;I%% zSYaEqs~vle&4jB8gE5YHW>#0{S{50*N>eZ|N1SKbYJ&vHWufUM?bi5C%EUQkMoO7Z z;DG@hzN0|~f~D-+%uZRYR0I$GQbIg+nu#0w(G**3ZrT1vnPEa3w80tLYoKygetJc^ zY2o_QD*p)!nH=LL)I^FsCXS}sGTBj=S~-K z>~YP=5TsqFy@O#n>nt7k_Rsuk>sG5o9LzHxwu(yxrTs_6M?hZYUOG~T jN-uByR z{e=SSu8m50gN=8~>e|1UtbaQx?;9Qge|ym6{-&Q4@MORh$lW%Ej!ASt6)A?{)XSJ8 z_zN~2H{l1b1pPJ*zKQ6xxQ~e(*5crOU3b4M*^?D|o`?JT`swT559kk9?CPYv`w(xr z!$%5aV0Yz&bN}zR0K#S;K^(1f)tj(54Bp0qm2u_jus!1WZBsthvg{3X%1~UUF=1>G zjerkN^IUG#wj%};P7mEYeB|der4t)o2UXL|NKQ-J04m@KP1URo1b|#4cd4LZ<%F(R zgc`03T!$Do|J*zqZb&k-g31FxS!BbH2PWLi6V;ZP;wIQ8Ar}fGoQkCpV&(3>m~F~3 zm@|fo@hPn#5|M#a*7Z5boVxT#fXwB|68GoZjzqVlNja!ik@^o4^7&Ky|*Hm5BVmT#f2mUb?j?Nrp0N(1DVNncP z1LmiSkjna71IBv}~kyyLH%kSpzGkCfB(%#GVl>KYXTbHZbpi4EIO%DKy` zXcS=SVv|~zair2c>+2%myW4Yv_Ys6M;?|_+`jV;%MuEMr%{P{9S@Evu28XNvT5MOD3Q zE~b44imLNk4z13&WA2v?1cY-E7+b3wPnbX1QRkC1>#DC7F2$bkt1pAHjs2$Uy?J?e z4u8nCIRF{d&`crgnZqb)6)Ou>^s;?vvtKLdYUYe$fNlw^Y0MAU$x{%?CuL7{^SxLT zoTLZSjt)-@p>8~|qsSK4WrY;jE%PD~-Flmp6b@?atx?)NW9&4ckx7q_F}BSF6bmrV zPb?NxX|4NYYMUJXQ$$}V0>#us>TUjj-wN;*$OF*n>>nL?)9OHN*8|tz!_&TM=BVvD z7vBmrtc)$D|UI|Wtu_#)HEJ>_m%TAYuJND`jI!A;~r)ph1-1%%!o zC1m@la8_#x#o*&=h|+@I`nol*W}usK8{Gvqf<$#Mz1CGC!mkOrtf4R9{~Wjk@0mHz z>gGP~j#}Fc-0JH;Vzc6jdsV*IA>^Ia`2I%#RW)eoXSYnF_6_)#)ItSsy%X&Gd>nCs7sc5+b&ek#cdRworvktTnOU@ zMZ+n&;YXVb&&UkEttS>4m6|19Qqhftjt8N&la<|jP*1HV!!Un#F7nkp$qI2pXD6Dm zWVY^TDX`?+0bwUmaZGA^Q=v>r;S6ZYg(4q@v1Juo2BMoIXNXP+_^qsq%2p}52V)yV zX)sHw6Y0aW4gbe~9Nyw=gAy0#fGey@30wadJ^1Chr zW=9;EqXLmt1obk&n~SjJR2b@U8L1!hJG}u?STqN$fG7%7gP~SuulrpzL$8eYwF7&0 z#TuU=646-;YReI z?JJ&-OFZwFp{sQIBQ%O$wRkx*8~r7jIL%TGy`6dOM%hR$6iuG}E@H}cbGZD* zA}eduifTh71hkYd1l)<4xo}HweZP2_ew~wsoWW-}KtGs7iHUZi$c%1g)#+K&skfy? z+rm5)3oW~Be(UoKDm0RH4-hl2pWcqIpWk|Q_^5TymW-I(XYNfEoA~9pl$(~jYqOcU z$TZzf4~sxo>Xf(2^eb&%cHjCL*UO+h6R+8FH6b3iu*M|`wYtt1hp^OL_jt?bozvx! z^ro)`3lFJfPrM7fbKf0?$nWs+%c^XCWJgPE6!)=*I7EL@dp16%D_<8)?(=SyCZp*? z&)%~ikdVuZt57ZD>w3K%zMzqhv8F3ZvY?M3E7%A)^hm+^P82)Uk#&ebRZ{NtPr#di zg0^%-6QPcxf}UZ`i3*@5Skn|rj%%0Qz>4Q3F7-}bi{u==p(+ZH&`#rbL(6!Ubxg&0 zmfut#VniYWec*H>Yp{mL zo$-7${-QOYy%U(NSTguqJc16Pr}Ss&HqRv*`UI-mQTT`(icMc7uK20s?J)u}8n5n( zhnl94Ha*8L4?pQLa|!+T&FCwG9bSP%e5U(pz_efd?yO-HykL`mw;rOjn22V+z$sIV z9oqa)HLA!PwLzvW3Ds^L65cEt3bDp@wS00;BVgZ_U!ODvv`=dYu$+jp&kEZB!Gw*j zA%z%PEimaMQR*+BU1dp(YXi#yX+~4os}j~0Fe72tt|gKa#0Dv7c0LJ+d31xqY^Egd zWl?|3^b`yeMqGK{y`9nYDr~iZPO&?|7@#z{f~xt#^$3 zm}>W(>acbG-uEq1XYC%>G_}nS$?KkgaWCrdymzZE+xhju`zz1CiL4)dF1pbHdyVbU zD_Bb=^z%G*T`CCv>##g|*SJ>v@6H%2DH44R`NkOVThfIe;q_05DX zjc;USfwNymEI5#fAO&H4tG&TaRU>}e=b_!|4qJBT3Pf_DF!lh9UdvlHJ(DNH(xH6hG%y@6bquGg1Yrj&K* z_jS>(RCgg~7|Jar2t9uZT4q1ez$&w7ZZl4!`oYK3JdoB~H{OdA(L=p2DlRFr@(Q94 zpOHnsu7^}XAPX5X*l)Cbl_`umgW1jCX9aIF&*L@jfcaGUsXgO zQ~(X7*}f)T6lxvn+x;rh@u67u-u=+beNPT5{H4t54MiIgP`j~04@LY`5FKf39m^?M1i zrmwdaN4>wRV@6Zhp6jJamjvMhhI#ZB`WtUk5p*gGBJ%&2nWQ2itgJfWjjX8Hv>X&$ zx#=WAW8LEH(;wzJxwUm~S$9=Lsd~+rF0>TGGs#=UaQTK48?#D^?eKLlC(CEn4Q z>@I?PZrz$yc8v5DK8B29<~wugXsQZZacoi&o`l3tw9t{(=Ar zI((#~n2e$26p`qb-f5Pnq_qYeF)a`Z1$4OXq1?WxTtUwTmqZanwKCb?jI&*lqxUCE zjD-#WN<{5!A-bfzH)@BAq@}IdlBdG8sjA`2o~^3}kNm+m-mjBLP5D>O9N4E#Zr%RE zP^NRq-DZ*sPckX39_?(g|AJ8CP=^0{h)#K8*wguhB9I)L?p>@x0CYko!Wc6BXTKY&W*QDC-1=~K zXn(;S$>IKUkbz*sj>BUrwNGdW*yJF_u)rA?t+$0x#yKc=qD%ZAnHn z3W8yQFqz9LS@ifu(uT~+%)gV4R4HLF} zkZ=K2xHKQ8xCoDyY?7H@T{Neyks0O%P0IXmNkCl-pnKlM5f5Ih*NX2AL)VR@>jk<} z4QCYy0B>z7rOnrI*U=q?3SXHgmAVEV#JQEPfb6@zc{Z>agM+G94a}9)LZS!Vg-|t#8w)R1r2;YwWfU%|eyg%z0b_?-qIkYT`^aU?$+N z{NBg}g@x-4%Lh6AjR}kt3|v1yb6a8#=R7Vm8>UY22;3S>sqyaos-nInW6`hN0m=@y zMDCMGsdJUHL9nqqT+>;8%?`U=kZ;3Vg||UHl}Nv(dD2Be%op10*%t(k0K}at#%t(`5E1K4Q&NZ$GaU9#joVDAe$4&= zW2FiA;LR1^7@k!q;~y$Ih}=|{2>o^e_B=u&;nbuc$lS=b_t~-ef$e`G0bclbB!YNv z_@E^wtlusbVa|VCT24^Q%t+Uv{qZc#GCIBKGmO=2hKYJk8_b8pK9ELU9WUWyhgCJ8 zVT7<3BX@UldteAh8-;_cmWMxAdc{V7v!048$I-1QNAYjYWropZoMC5%*?47!wX;HC zaI`#o-CT*G&8AaxVrc2)xY^TiarS_v%^Ap`0Pt69gL~9BQPgB==(fY?CEu+lh^SU? z^zu<39`7k`R=>-5y>YQqpBISiRdSQUI){p-)~(Wbk}aZpz`<6C`nsO+HV75`oLztH z%}Z+=vjgAZ!^U>^ze5(6{$-4gzI4X%1BD|TI+QGUFdb48xnsitc8iAl3aL7Px)q3Qr0g^0g9jJHU z8gB=QB829EtD-50Kqt>#CU(y(JmRj)q=Xm8b^*eH3W$9)&mlwvcvYNPnVP)gB|_?~ z+@n3hkRewz{}BGj5K`m4ui6%&s76w_qE!Yud^gTYb8YgYQo20oCZx~a=?ym+Fd^Rc(#+%c3Iw@X9R^-10IxY!!h%kuOw@<0+ zX0&5IUL_~H1ImDR7n(t|mNRp~W@)wEOo@BwC!8DbsT&?Vk!WH%+%e1y6ExfnOnzRM z@lLnZmCiG2#}3FK3*btth0DS}eS!OR<#Z}~)%JAcJ$3&JOr&~&V&&H2qijFFY8*>q zE=wi!Pv{?sc~3%m&ktL@Xg&R(P2bl(uTEMC+Fj}W_06vtxGHVgR>?Z8fp&?$=5`zY zoA1yxsU)y!X7%{4d-TVryu!;1{;AMYYP6^0VmAbuVk~J7${8 zggppWtC~F*LrNL0±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

      Np=bxq!k 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⩔AKZtHIqj5~3Z^JR8-seM_XE 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

      0ybUymw)5FscP zZr3HVbTS=WK?jI;jf{|`($9H*@>UG_nBWv7eA<4vD)jBd*gK2K2}l}C@K_NPNrXEX z0$sBgE>VjTsK&T;9aBr99k^APPvWinZsUXNdH06S{WkEcDq zgMiPt`H^}tZlFcO1k*AS zv8(yiL*oNYa*dl!W=rBjc0;N)S$Hzrx2?lmxjWZbC2fn=#*-?UcGY*BMkF=r)*VhxKT%)OlWsW zUTB~Nmg^x%(o<0|>CRylS{%inD>P>(wDAjE-a_IL)(w42UDLNo6ZdfZS^3q!g&oR0L%VEJwAF4TwA|>( z1w1~b5KtF=UsmC%9kI<}Gxo49PFNKN$vIGi_0S2%*@T3X%UqV>NB~PP#OF&l3D>0f zi-);&Ye<0GxA~Y1!LaANb@R<4vB@Fsm$RvsL=Wv(WnlV#mcIkTLLeirLPxz(&W!~V zik)y3^r3|+d?vaurYI-y4JQJaec9lP+=Rp6J~!>oMH{8V3y_^;_NzOzd^nSZ*oLQQ zcIJHreNbkI$JWN?r^ajjNuvwD<$a;HK^HoJ1Gz=EXY_=g3aT>(^;6Vx-s!3Hua|=MLV02d5&Urv1f+DAR$fjAK zd4z3)1(~un8}Fv1W9a8+p2`qVkt`Hr4ZX%+J|>dqu}0e9&0cDjEgVl@V^AA9aSG}o z&h>ng=;(8^x1u%o7mQ;L4Fq;GKN#JcSTw`-SmU;}+YC);<^9v050w&tQQtTFmt3w=hcU=5Gz9!Dl=qX6K_>6Ibm zxw1NWQC~A{3L#K<6GMN58JalvZ2ltzaYFQ~eo)P`-GxrUG>E%Vtkr&6ythlDgY9WJ zD&qD`EkDy_6A?*}ja=3rrwH(89s(_@E`~4?bH6FRcck)N15;B0YbA=O`-4 zrzNBhfwJClHMhNov_m&99WDJ(FAMaM>>aRoKNF|%e8)tYwJ3c7THM@7Z#ce@rV+g!miDacZZ4-ui@ayr9&AgOfKh49ynZ2W61&0MURQ(}?uTcxm7d#guEiN#r| z8WV->kD7CFgS(-WiEC1NFR}OoHL7>!!=1Lx&{xxX7azUz2 zEv6WJ)-#}y+U(E!xonPReweV9Rqp9UG8wkj9?Y(vQ2)PTs-vR?D*x!aa1>$`@LulX(WvFTx7$Q}}_U>TWne|87)nnUtXQt~(#|hF`@@E~7 zOY2}nVOgU0GPGq%IW6x`vsy$%9rqA0h<2j}(!5Le zzsJ@O^D>{e7+u<4X^WOKITYhumrv&t#d5vGWT{ON(_7%P0ZinSM^CIBw#4*Su}}Pa z1e0T#yAIg{6bN=2VXIch2r6&C8`{~gjTc1?k_b1M0}kC>)eKPdVN`~A=Q_SEgxoQj zuX%ADjD<;(#lNBPoD0V~gyLT##x5&0J9RZEnM4Gsye7G!_fjJ98~L`3v;Bj&pJ|eV zs^~!Zv`U&QY)2LZc2aI3G<%xoQp&O^lI(ppIgsdxk8Hmu3jngEDA`0Lh|U+)6fiYb zw^N<XP`prNsRWmDTE{#KcWP(t>i`6o~SBCVg<{;LYNmLSzuH z+imKkoeCRZLK!6}^RdTI)?muX=`U?Hcyjsw?p=Zlh>QOY$8K|BY`;=pY)uT0-oTeQ zZH#ILDRhJkpp-@s7?BE(7r*{SIMiOnTR`q zQEyln%dxTRL$(7t`A>5k4dT?jgr@{{6q4_7LI&qRlk!h9mwDOKp^yxv?-|lfkz6J+ z859x^Gt%%GEo4&^fIiYaLZC1G)efFM&{uciah@w@9}?E#(hfIU&?6@q8)BtON`b>5 z#AN}aTLz@70Nx$Jqb%oC2f6MLkObH|EIK{Zu*(_(00Aq}b-%{7jkT^rpk1 zL6YF9k;YU0rpGh~?z95qGJlEa-%Af^+?A?11M#edrIz5tr?^uP zLTLH%PYGYj&S%0kt)s^VkR^1>*0167H2L)WSMONcD^9QL`Lp*{b4>xPV#yU(#Fi)25HBn1BcIkwE(jlri4MHAjIwBQS>(M z7OM!dLPyfpJs?Gc&u0&zbExII+zw-()}9{_Ab8+hCM8f|qiEsAm`ay|Pm1Qs^KcH}lms7b=U2}w{J=TS!7^7qH^JQtBv}aPp`q;07i{xB(?Qp}_WTSyZt^$l z-eDuGQ+w*xxQvJ|poXsw_sL*@tM)#0G2cR%nM@^au;ZTer&0wMlwh& zlOvYbiaDJu3=e$Sio2vclpJE3p8f8{nOF~#Mk}r&8=^GURCx#2`PdclbmIVsk9#Hx zRU{J~IxEH;(^#a|-mQ>;DoJ)AX@(HOZu@)yHdktPF76VCE{YXe}KC#hp` z|Dd7^Fbt%Wn8F&v_|9KQcC}Z*%Tyw?oySl*w2#_Ah?ci^gsPs$)b#k)2GEKks%JdZ zTEI*3>Hdd=pefv^am|pprl>>Pv=F|&h$7kEswd6Cbb6UJfmZ`FJ-E7PO=P7I!a}q^w;+=nUgAwc;h(UKHFiLwD5y4UIS@0D43%hCOu4T#TT{G zA7qi9m&o`AT$7DNyK!=~eDqM6jgroTzPZJbzifm&rtTe{*MZlh_9BH)^ix8*LqlKL zq#xkBz?~8NgTdkG_;d%LI(-iJE_r{07y_L#1W)G z@#F-3w`w0M=BqEZm9P9Ad{m$cuv`h_v$+%q?&|lh9nqkz5q^K9xo35CwZ-EV-KJCZ zdfBTJw6|yZn+~?~71K5y?gu0Yakl?lW&fZ0a#2$q`Ig$8yDe0Ivc#`r&(ye4-K1qD zmPq^%+^bS{Y^tfz-GrY6h(5URP;{H7+YC)hW_hJ{5we_Ql5Zmh>f<{Uv#jbXrWc&Umo6Md%81T-fW_X zr9P6Dj0Xs>4{?osjN9T*@K&Dr=GZTXqVmG%t*k}l`gW#o;xj5?DqKNaIWM@FUl&-s z%A!$|-Ye(N&QU_D4SY~i#qyNum;RcH4NcqiZxLVLp(SoVQK*tI?x+f$6ZGjfSE`a# z#OmkH7_&XUM)qQ>L738yd$Z#vSRdElA`x3XkT?;M3GO1sDZuH znDh2{ebdR|bZAJO_bd>>i9`S=8^YkhU8dVIJO?O#AJtuFQ0>aBue0IV6SS;0#)QaF zKAb>sThg6Dq)(rHTBu{m*zF@eyZ)qxodt5`R{R}0)TYX&s_g5553mk>=Y*<8WymfO zR~)1!|8S}nZcV+}fCs_FIh@UC<=Q}&3&OvX_une8o~ci@k;+zqlVeU_m54VzJ5?JR zd?kS3H}oz*YtRG{&T~R?Pj?Je-#$(`%zPAKrv1Gs;LB@tOauyO;jZORDV=4@KhJjy zaQ(La`2rXK3m(0|_T3>~|KtuXJmNnn;9{~yvyx$-2-HAa%MH5~>CmR zQ^2Y(Bqm2y&XyF*3!WrStpMth5|OsI$zD9NHd7qI?|nX{l1;e|OCn8v#I?uS*HYop zGF(Jp=j75=@bg@{?z*dc!K1%VAzq3A%h~xWoq53#%e(CSA-trn22wp7O*Yk(9GQ@P z{tw68QojkqfMtY3XhhVWX$!dO9x?Cf9j2@zH-I(c6CHsku2U|RtbDJJvC z_EvyuHG_;g&#za?{So>VuIAlPtr6d^b}T>fS4aY<5`wq08jt!z&Y}@C#}@YXNt{7@ zoos>BK6AM6cOA$=u6t&7~s&oy!H>Fy?6q_ zR$4!HfuogHIwicANx9HDu}UVY*w9xoxdLg*O`KdSyKgdno=StGVDH`7x@fsfcI1wIJIV`76`GBJ{s~Q zpMVNg;(M=XoiOZPLptZL8#_DZnTJX(^r-Ql%psbY`LFw2#dcKo-7j;PVrgWEr?uEa z=HoqN66L{GN38+W`m@RNFE1Y?+182XdSx5n4|BzjhNc&0eyY`(4NxNQ<}GU9Zy?qt zE&X4{<3Z8oJ zQg|K{4pzx#`kRVuE!nLa%lwBOx>eHF><-Nan%7+r4eIv)m7u2n)v&#Il&$k%>94>2 z*VbH(33VG^?>V2j?r;wre@}#JScxHBh@*5A6W%3Y&|YWk2NS~ySWouSc- z$aDIM=l6@R3nylOKku?N2`$=%77sgk-r_&tfR<+^Z!{XwoWDB6eE#A?XgzU$Lbz4B z<-CDlP8={00_oM2nKD&w6IhJB2`jU)Br+HS3V+uPxv(XlqZouU>QazVkJz)r%Hj)p zD3It2mYeAAoH+DKeaZbyH+y4Ib(ibudm_avB=#&(oG;!U<#LKGFvr86 zCx^rhX`UoTpawCP?c1XRVX%D^FXQ~^H+SAeo&K`cfSW%98{Lp=r_wpd)lUQvnGX7~ z6g3zyiMkURN*@0B?oX1ITWZF^0g5bybSO8hc1=o7<}eR`LAaqq)mm^y>W>85Pc{&` z$;a!kh=J3sLpHx#H?;IVSZ3CcXD&a7W|o;XxXdH%+?+%HCQezh(7Hn|9T)B@?59d- zFWjpf069CNEiJ#eG#@`+`A~hfJ09YdxU^8)DsZxJU~#sqPU3Bm;KVs3xF-L<;cgfg zmznRv@J-6qB{yu*9-%?N9&75{8My`P>p6u_7ODvL4U&?Y5VA7e+q4#NSqpt*qWYqk zcw>Ra6%?|}>r*g!xer%kntBlbmo^y}Hh)YX-^q6_jY)%GV=-0JE|xai>AUp_=j?A_ZnfIqH% zHX@9#L&5??Y?5S#sNacvGO)p0i~|l^@+mk=yY{(#yI~YX>fNV zd*@J4>9Wj14bO6(C;|Iyb>dG9oun3$||UD*x%n1<|75Yw%X%4*y{>m6J$t)Z*4iE_Bq z(}vfeQ~rh4OJAcY8b6r?A}0KVqBA)_0$<9V;golLmpQ}q;Jdnw>~*#?dfe{oR(JOx zWgnR*-eo5}i_3gjygt(0tfxM=-VK&fsZ{lR?`ex11h!hwi(IsDSC^2z)?W*$m^NYzxWPP`te_%{1-g+xI6N z0~BRb(1{vjEp(sOa~o$Y2BER3j)aA0ZnTD{TcgmN$3MkX4~naGzH~{{v!nL~3g*n5 z0#!^tc5r@g!Q#T$WqmfazB!SybAq(2yaN@4>J5Ge8gwB4&tX&9f}MZ{T(*wG|Hn{L z6XDM`J~nw|QU8tVb@5A4lL!N6qZFZUl1kWPa*N%uB~O01G?)ojUS6^B#p)C1WK~$r49>|VbW-A zzIf1TP|TIExU5i{R!Q}DG#1c06EV{UDCd?hFQqb$`O9|#Zlj0ln6;uWz+QCy#^IB> zFWr-%B_WcA6Dx#y!u(9mCUZ$j^bx+)^v=FCr);1I{4ib+ne*DIDcBCukg zpa*$Uv69YT9^5%<5vNMT=&~1#hUP#eyulBZ^oHfWnLA0LI3rZ#?#wQMV8L$1Sus7n ztjl-DTXzsORG=uK;XBX@BrK$%jLpxXuE|&LJdjS{ao|zFdeL5K164F+*NJ8L4RZc~ zR$%3*VbAPOt@s6=fzU4Vk%0-jTyb0X7At$~5k}2+6rDy{ZH|zZ1F09Abg$oPxaHE2 z7sv@2+ThqFGksqpbBeUx2Criy@F8^ru+h}Z^5Dk1nQTRUD&5efO)k76`y*~Vk2@Z{ z=7EFrX+77YY+oMcdVHcTyCSuFc>k3qWNAm{KG=7)lf}O*g1pwec6Ba*IeQ|}_MnHx zUkf2H3?6)+agvxLFdM*d=gsc60)LtfPBea5Cb`0r=w1&U30Xlh@05xi^+v$edjboYXbMB1md~~pv&D2_@m=$l3v3!Pi=5-%4xdzzWOmJVfB}+7 zAKmP!D{9`B5OSnD_Oz|VW%Li`pLxjpn+quX-?#w2iV__y=5v?O0JAjm6PSMl54^(q z&L$|=Z_o!cN1y&Gi!(1tGxpDp`#19XexK_z~-0vl_IuiOakL`Xs=je7u z8Dj+2>iwFk(F-G5sHkP=B1wJVEXs1EnW?W07CGUFr}gVrys`7oIvaQ02pc;nBaU`s z&MgM*L-8IdN?I(xmBb`%s~C%{pU8Y{FaAvOmE{!DM|WuWr>}X2udj0ydC~P8)2+Pq zn=c(H^{60Tu>)t@#$E&gH@Ia2YXeWLZ%iR?UZu# zPV8*tsK##VC=2<)tnai5*O2&L@O^#A>WKkDc$quQY*51{CF;+-@pWe4f)#2@DK~51H}lAzk`&4y!+*_ z>z0SE5#JYgk`(oSQpQHRP06`_JZ{B>9E5x{s!M*l(R*Xe^@3g8$hnm`aOB~~W&b|u zZ>a9yi#ikjY)1xso31QL6c2ERcDfNT_P1e>Z<5B?V~wpJv8AI6B&9Xe?)7ujkqF5e z;_{vfO~0s{+TUA)z3Hq@Z-(F7{y^;tpA(7~thYQO5cX!7k){f`%OPs~)sE<3Inf(J z8n^|dHRs4DC@6T~ei>O4tmI9bpOhb{lHNI^ic*lnt zA4B6W-t(2qgi~TzbR-ODI>>yRm5mGnybOz)9@c$|#)af@mFd4Ax+605q>$xMoj3zd zLnn{`ryg&!MAWStEk+X&%b0CtCclL!!d+zVcwy&(`636WHzF3YC}y(8iTGhtg|7{d z@;tO%y1DD+-`_jz+u?GxUh4ZGR&Jnf6t5p|{Ns6}UhF(E<8}wP*;mD2TCoLSUT2rj zVs!D!PuLY~)irfkir~IXzMvGkjRvEMFsNFO<|R%SMP+%Y_9mes_nnL8Vw^YJMMT_H z_fw)^&W0_wR^T>h->;?Ad3F-u1ePB*JrZ_6onajRC8Gb)MgXWo^Ojon&f@0bRJeKV zKP2P#_5#?I1n3FLyPo`g0@&(3kpo-H2>9wiD0n6KD-tJ!9T%S+ew_Ygb42=OZtE8E zOPag6Sy_2mn8-e+;4R(?>jF6hWV|}E8{yU5dY-`$xjNX)w9-f$i=zy8|CA#NDn6jU zk0QD^P8#{;I=K-8Rq{`T>Py0HFAK>{ZutG!KjBKNs&QlPbaGT#`~Cr&U6JTCl8R5o z5VW_FDVTe@A{D=8$DOQL#kM=}oI$xZe?>5IV2-3^G|xux+pq)D8=b$cdgByDZuH&)}edXNpl?B;&5;tNR?A)+#XaJ!m>hE*aNMwwt-wOD>Q>? zVQ*3-1DT$`IJT2H?0HRzf|A}3Opo;i*dNyAzY};uLbS^rb|6-p9KJddO^B{3+#aZ4 zE86f`l*1gKTu<{1)b!8y=!G;E@(5e#n#5plW+B#_pQ0WKo9iWvR5baGIsO@p+bWtbwHuAr=!6}!Fyx%dphh$2apZ;anWGQ`sOO0Vkj1$b!(ZyIq_5>ycIS8T`9A@ti^ziX6scDu z^W_a-34IX>1uWTA(Hg zrL_p}6{lbk&NgnbgM7LFX>}~lJQJT?qKInc10#OmZX7L7WCSF*%p&HiRm5uk zW={xL^HL6^VNQB6+inYWPOFrF7fX#GdbO)&{904y$48S+yKa#ni=Pw~(v8Ar_H3HN zDtM)xA8F>}&WxKB$i)^8zw?N^4=MhJ+iHs!&>*o{sdj+a`%v%;w;N=fwz~HKvmF!c znAGpva%b9n$m+@ra^TLk38GcM-;_0$fRow`cqpa}sYxMTIb4sLuPm6!#C6bvfe|%- znCrg=pPvcewd7zS+{*W&1M0uo*#rpzht91VN^pgzOyxEsjM z(-yX~e(5wR@^!$6{DbjGwn_d+TIZj^wU)1`E9nL8d(?=`7k$=oEj8#f>qn4)?arro zJ+7h5NV_R|8F$Ml{o*2Nr1#6q&y$^AbW|)O&4b0`a6D-?xeTd_?SgCV-{OLvHB%}`FY2aNymkNzXtR8R@Y|7-5 zmrLhm9ZoaZxW6Vv%ZHEZp7dd+#1HWB*lwK}W7*VaW8tq84G-p{R)suOs;K6o$C|Qv z3Ul5F=h^QR9^Vd5LFF8tBx-x{ExybVWX$3X4iD1a`K*w|>(P`IiVT7)Kdzc?{`kg*j0Io2&0~`| zY?Y2)oLmsdWYtEH;=P#@-HmzbVUtO1U5LuaV9*Bt*su6e^A%~Awe?@mD&TuGPCIX{ zu%i$<*zk?T=9GAAyg2XWw`PJ6R#IDAxOm)JMkuo{B+}5i^pY;-^an{Gr)c&Zv!c?s zmD|{<6{ySyPSY|NsC%@LNdnw?u_wjWVeA`0g;OJC@=O1)VW0$G0(AS5=~f!t4URQI zl^x3uFBJ$$H=bB2S@wf?yR8=iBO)4Xrc2gfXR5efg!6%+wdXXGwflw0EZdEX zLlH0TxiILII1gMSPbgk^)(Fw$FB*I4XN}q{{3ZU#7WrU;<*Z2b7CT0T!8bP7&nwpo z$w8!e|AX*rRuu2{sD9)=JAzRkQzBet&*ndOEbBBmkihHFt|u{k*-T3&YfJTi9Fp=| z(NZsiGfr__$XZnPYJb_c0HxKCjgtcqD$_u>DAXV=!L%U2Z*P z4klQK4N?V}fcQG}w0S%p4(4Y@49h5|iv^%rOO*wh`e^))))>?=F}9&a`=AzP8q@uO zvgJe%ajo&75y3}n3kp~Xsm*PmA;I=1RXis5o+>sIjmI*6zWioMGH%pL9Csed>puG6(+w542iF#lw=Xd!x)nJd{wDt6<>;=R{Gf-8{X zk^O7x_aEnK3d&6_rVBj=TIPp>UoQqr^CU=R-eLI9UHog<5<;tQu1c9s{$XDK6>+QT(KK~_+Wq$i7k_Er*U(irtxskvdi76lAFPbzAU9@JP3#~cK*)SVZ%#c zBg}B$9Y;E?p+a7U7v5pdCrE%FMN6e%c94grqBIZpzFFh68wzjybV^*ZG zd&8LrnIrw94WCdjabVqpHf{~r66WS0==thm=BfFl>$u9Cy+5EYrUO0C)@##Vmdm(F`O!5DVU2>u#-%p163cq7zkeV@>AQDHqL z!WnK$T~xxpI{FYKgN!M3Kdg~ef3G6Zx@Z;kj(buIYW}da-pVk!i-Th=%`B?=Kb8V_; zPUz-=N3TVrN%wUMDdEc(;?G6u8o773%_N-qy_r%5E8e$MjQ3NaY4@R3pAbnMAdL1@ zjfZ8{lt%lHTeCk`!96V)UD|0sl{Rpv1`LI-nBp&XAb0<7Q2wtg$|DUMIEWCeyI%jN zVCEkW1@xF51C`6Iw-cDJd6W#ic^*NNJb>T74Is~X+myFWxJBGp>pzhGxF} zqfI-rlfxzW(2~1NKC{G=$zx`9P6~Vi5b5u4#wQRHPCPX~iYgn(rMvj4->>*R3X>?^ zcu6D;^s61d0RQdM8rcktmrjT}}?3q!8uK(n7mt%kW2>@MqRWQM^^eT1yF~y8REHYj#P2N*o*vd#->N#_Yf|ACNhp$;GOUEH%k>= z8#@#~E_)@6il<+>7srhIM7ED{C6Tas-2qQ{=vDc5aTlxHR3P|1oi@FcV=nmbvcse< zG25Q4n?&&ZM5T-JHE;VAnrR|)>ncn6x(&?lRlj&p80-)vAY?E1jenx&O@K>6QuaW0 zR-t%t>=y?++aeT5^NUk=Ijs7sAmbxNgJ|bTTLL(xl)^&W=p^UfYBHGYkKD$IbSx*U z1Fe^u{J{C|ukHgYDPi{1H1qG$u6Xt#>BIKAY0vu_aoLbw^@7zjDaiiBCC(1L$1!yC z^6gLGSaJU&5H6+cXr-;-e%m{?|GhF*f_b?Xk-Md_BREOFH3TMSBkkSjfW$qr_qhrs z_s0yfB)v^vxR-2+@>SkD?K#z?f7?^#lw@Vsl;F|nUO&=a7`VIzbN`Z1r1eMm zf$7aZSI&Nj0d@W#Qav>rYOhu`NWL^_B!AoHVj2?q#= zTuCR1^=SW^`<;2y|N3F2nHNf179NGQ0sm2S5UCdE>IOr7k5^!Z)*2J#RYZAt|Ml)F zx72jBC|`qP#Ps7F*jg&ab-SGMna^HVW$$?KpHEx)64)BMA6U)#g^FxlD4^3^tCu|| zm@{uaLCR~?{a`#T-bwrK-ub;>KM-Iae;RWc`_Go*QnGrlw0EkqfB*gbx-86fHGva= ze(TBfJile^$}3K$3*t+t-AGDzQy{9IcYdS#pD%2tC%ZA_p1Dl^8uG6S;}evLehqYe zp7AqeC4Ka&)?VjLocJ`6Ki=52gE{eoqnmaO!B)TRIWkeF!srpxXeVtxA`0{}c| zKdCV74aL4>kuf*xJ};Av{lGelze_(Sh_xQMOi+TQcgC&H4vpLAKlx)L{v+l8DCvLh h`2Sz;*_]*\ssrc=[\"']([^\"']+)[\"']", flags=re.IGNORECASE) +MD_IMG_RE = re.compile(r"!\[[^\]]*]\(([^)]+)\)") + + +@dataclass +class BlogPost: + slug: str + title: str + url: str + image: str + date: str + + +def build_headers() -> dict[str, str]: + headers = { + "Accept": "application/vnd.github+json", + "User-Agent": "sgl-docs-lmsys-blog-sync", + } + token = os.getenv("GITHUB_TOKEN") + if token: + headers["Authorization"] = f"Bearer {token}" + return headers + + +def download_blog_sources() -> list[tuple[str, str]]: + # Fetch the directory listing for /blog only — no need to download the whole repo. + request = urllib.request.Request(LMSYS_BLOG_API_URL, headers=build_headers()) + with urllib.request.urlopen(request, timeout=60) as response: + items: list[dict] = json.loads(response.read()) + + sources: list[tuple[str, str]] = [] + for item in items: + if item.get("type") != "file" or not item.get("name", "").endswith(".md"): + continue + download_url = item.get("download_url") + if not download_url: + continue + raw_request = urllib.request.Request(download_url, headers=build_headers()) + with urllib.request.urlopen(raw_request, timeout=30) as raw_response: + content = raw_response.read().decode("utf-8", errors="replace") + sources.append((item["name"], content)) + + return sources + + +def split_frontmatter(content: str) -> tuple[dict[str, str], str]: + match = FRONTMATTER_RE.match(content) + if not match: + return {}, content + + frontmatter: dict[str, str] = {} + for raw_line in match.group(1).splitlines(): + line = raw_line.strip() + if not line or ":" not in line: + continue + + key, value = line.split(":", 1) + cleaned = value.strip() + if ( + (cleaned.startswith('"') and cleaned.endswith('"')) + or (cleaned.startswith("'") and cleaned.endswith("'")) + ) and len(cleaned) >= 2: + cleaned = cleaned[1:-1] + frontmatter[key.strip()] = cleaned + + return frontmatter, content[match.end() :] + + +def first_image_from_body(body: str) -> str | None: + markdown_match = MD_IMG_RE.search(body) + if markdown_match: + candidate = markdown_match.group(1).strip() + if candidate.startswith("<") and candidate.endswith(">"): + candidate = candidate[1:-1] + if " " in candidate: + candidate = candidate.split(" ", 1)[0] + return candidate + + html_match = HTML_IMG_RE.search(body) + if html_match: + return html_match.group(1).strip() + + return None + + +def to_absolute_url(url_or_path: str | None) -> str: + if not url_or_path: + return DEFAULT_IMAGE_URL + + value = url_or_path.strip() + if value.startswith(("http://", "https://")): + return value + if value.startswith("//"): + return f"https:{value}" + return f"{LMSYS_BASE_URL}/{value.lstrip('/')}" + + +def is_relevant(slug: str, title: str, body: str) -> bool: + searchable = f"{slug}\n{title}\n{body}".lower() + return any(keyword in searchable for keyword in KEYWORDS) + + +def parse_blog_post(filename: str, content: str) -> BlogPost | None: + if not filename.endswith(".md"): + return None + + slug = filename[:-3] + frontmatter, body = split_frontmatter(content) + + title = frontmatter.get("title", "").strip() or slug.replace("-", " ").title() + preview_img = frontmatter.get("previewImg") or first_image_from_body(body) + image = to_absolute_url(preview_img) + url = f"{LMSYS_BLOG_BASE_URL}/{slug}/" + date = frontmatter.get("date", "").strip() or slug[:10] + + if not is_relevant(slug=slug, title=title, body=body): + return None + + return BlogPost(slug=slug, title=title, url=url, image=image, date=date) + + +def render_cards(posts: list[BlogPost]) -> str: + if not posts: + return "No relevant LMSYS blog posts matched the current sync keywords." + + lines = [ + '

      ", + '
      ', + " ", + f" {{{safe_title}}}", + "

      ", + " ", + f" {{{json.dumps(post.date)}}}", + "

      ", + "
      ", + "
      ", + ] + ) + lines.extend([" ", ""]) + return "\n".join(lines) + + +def replace_generated_block(index_text: str, generated_cards: str) -> str: + pattern = re.compile( + rf"{re.escape(START_MARKER)}.*?{re.escape(END_MARKER)}", + flags=re.DOTALL, + ) + replacement = f"{START_MARKER}\n{generated_cards}\n{END_MARKER}" + updated_text, replacements = pattern.subn( + lambda _match: replacement, index_text, count=1 + ) + if replacements != 1: + raise RuntimeError( + f"Could not find exactly one marker block in {INDEX_PATH.name}. " + f"Expected markers: {START_MARKER} ... {END_MARKER}" + ) + return updated_text + + +def write_metadata(posts: list[BlogPost], total_blog_files: int) -> None: + OUTPUT_JSON_PATH.parent.mkdir(parents=True, exist_ok=True) + payload = { + "generatedAt": datetime.now(timezone.utc).isoformat().replace("+00:00", "Z"), + "sourceRepo": "https://github.com/lm-sys/lm-sys.github.io/tree/main/blog", + "keywords": KEYWORDS, + "maxCards": MAX_CARDS, + "totalBlogFilesScanned": total_blog_files, + "cardsPublished": len(posts), + "posts": [asdict(post) for post in posts], + } + OUTPUT_JSON_PATH.write_text(json.dumps(payload, indent=2) + "\n", encoding="utf-8") + + +def main() -> None: + sources = download_blog_sources() + relevant_posts: list[BlogPost] = [] + + for filename, content in sources: + post = parse_blog_post(filename=filename, content=content) + if post is not None: + relevant_posts.append(post) + + relevant_posts.sort(key=lambda post: post.slug, reverse=True) + selected_posts = relevant_posts[:MAX_CARDS] + + generated_cards = render_cards(selected_posts) + current_index = INDEX_PATH.read_text(encoding="utf-8") + updated_index = replace_generated_block( + index_text=current_index, generated_cards=generated_cards + ) + + if updated_index != current_index: + INDEX_PATH.write_text(updated_index, encoding="utf-8") + + write_metadata(posts=selected_posts, total_blog_files=len(sources)) + print( + "Scanned " + f"{len(sources)} blog files, matched {len(relevant_posts)} posts, " + f"published {len(selected_posts)} cards." + ) + + +if __name__ == "__main__": + main() diff --git a/docs_new/sglang-diffusion/intro.mdx b/docs_new/sglang-diffusion/intro.mdx new file mode 100644 index 000000000..c38b7650d --- /dev/null +++ b/docs_new/sglang-diffusion/intro.mdx @@ -0,0 +1,65 @@ +--- +title: SGLang Diffusion +description: Accelerated image and video generation with diffusion models. +--- + +SGLang Diffusion is an inference framework for accelerated image and video generation using diffusion models. It provides an end-to-end unified pipeline with optimized kernels and an efficient scheduler loop. + +## Key features + +* **Broad model support:** Wan series, FastWan series, Hunyuan, Qwen-Image, Qwen-Image-Edit, Flux, Z-Image, GLM-Image, and more +* **Fast inference:** optimized kernels, efficient scheduler loop, and Cache-DiT acceleration +* **Ease of use:** OpenAI-compatible API, CLI, and Python SDK +* **Multi-platform:** NVIDIA GPUs (H100, H200, A100, B200, 4090), AMD GPUs (MI300X, MI325X), and Ascend NPU (A2, A3) + +## Quick start + +1. **Install SGLang Diffusion** + +```bash +uv pip install "sglang[diffusion]" --prerelease=allow +``` + +See the [installation guide](../docs/sglang-diffusion/installation) for more installation methods and ROCm-specific instructions. + +2. **Run a one-off generation** + +```bash +sglang generate --model-path Qwen/Qwen-Image \ + --prompt "A beautiful sunset over the mountains" \ + --save-output +``` + +3. **Serve with the OpenAI-compatible API** + +```bash +sglang serve --model-path Qwen/Qwen-Image --port 30010 +``` + +## CLI quick reference + +### Generate (one-off generation) + +```bash +sglang generate --model-path --prompt "" --save-output +``` + +### Serve (HTTP server) + +```bash +sglang serve --model-path --port 30010 +``` + +### Enable Cache-DiT acceleration + +```bash +SGLANG_CACHE_DIT_ENABLED=true sglang generate --model-path --prompt "" +``` + +## References + +* [SGLang GitHub](https://github.com/sgl-project/sglang) +* [Cache-DiT](https://github.com/vipshop/cache-dit) +* [FastVideo](https://github.com/hao-ai-lab/FastVideo) +* [xDiT](https://github.com/xdit-project/xDiT) +* [Diffusers](https://github.com/huggingface/diffusers) diff --git a/docs_new/src/generated/lmsys_sglang_blogs.json b/docs_new/src/generated/lmsys_sglang_blogs.json new file mode 100644 index 000000000..138a3a287 --- /dev/null +++ b/docs_new/src/generated/lmsys_sglang_blogs.json @@ -0,0 +1,59 @@ +{ + "generatedAt": "2026-04-07T00:14:40.777335Z", + "sourceRepo": "https://github.com/lm-sys/lm-sys.github.io/tree/main/blog", + "keywords": [ + "sglang", + "sgl-project/sglang", + "sgl-kernel", + "sglang-jax", + "sgl diffusion", + "sglang diffusion" + ], + "maxCards": 6, + "totalBlogFilesScanned": 80, + "cardsPublished": 6, + "posts": [ + { + "slug": "2026-03-25-gtc2026", + "title": "Highlights of SGLang at NVIDIA GTC 2026", + "url": "https://lmsys.org/blog/2026-03-25-gtc2026/", + "image": "https://lmsys.org/images/blog/gtc2026/happyhour-crowd.jpg", + "date": "March 31, 2026" + }, + { + "slug": "2026-03-25-eep-partial-failure-tolerance", + "title": "Elastic EP in SGLang: Achieving Partial Failure Tolerance for DeepSeek MoE Deployments", + "url": "https://lmsys.org/blog/2026-03-25-eep-partial-failure-tolerance/", + "image": "https://lmsys.org/images/blog/eep-partial-failure-tolerance/figure.png", + "date": "March 25, 2026" + }, + { + "slug": "2026-03-17-rocm-miles-rl-amd", + "title": "ROCm Support for Miles: Large-Scale RL Post-Training on AMD Instinct\u2122 GPUs", + "url": "https://lmsys.org/blog/2026-03-17-rocm-miles-rl-amd/", + "image": "https://lmsys.org/images/blog/rocm_miles_rl/fig_1.png", + "date": "March 17, 2026" + }, + { + "slug": "2026-03-11-run-nvidia-nemotron-3-super", + "title": "SGLang Adds Day-0 Support for NVIDIA Nemotron 3 Super for building High-Efficiency Multi-Agent Systems", + "url": "https://lmsys.org/blog/2026-03-11-run-nvidia-nemotron-3-super/", + "image": "https://lmsys.org/images/blog/nemotron-3-super/figure_1.svg", + "date": "March 11, 2026" + }, + { + "slug": "2026-02-20-gb300-inferencex", + "title": "Unlocking 25x Inference Performance with SGLang on NVIDIA GB300 NVL72", + "url": "https://lmsys.org/blog/2026-02-20-gb300-inferencex/", + "image": "https://lmsys.org/images/blog/gb300_inferencex/img-1.png", + "date": "February 20, 2026" + }, + { + "slug": "2026-02-19-gb300-longctx", + "title": "Deploying DeepSeek on GB300 NVL72: Big Wins in Long-Context Inference", + "url": "https://lmsys.org/blog/2026-02-19-gb300-longctx/", + "image": "https://lmsys.org/images/blog/gb300_longctx/cover.png", + "date": "February 19, 2026" + } + ] +} diff --git a/docs_new/src/snippets/autoregressive/deepseek-math-v2-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-math-v2-deployment.jsx new file mode 100644 index 000000000..5906d7877 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/deepseek-math-v2-deployment.jsx @@ -0,0 +1,359 @@ +export const DeepSeekMathV2Deployment = () => { + const modelFamily = 'deepseek-ai'; + + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', subtitle: '183GB', default: true }, + { id: 'b300', label: 'B300', subtitle: '275GB', default: false } + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser deepseek-r1' : null + }, + dpattention: { + name: 'dpattention', + title: 'DP Attention', + items: [ + { id: 'disabled', label: 'Disabled', subtitle: 'Low Latency', default: true }, + { id: 'enabled', label: 'Enabled', subtitle: 'High Throughput', default: false } + ], + commandRule: null + } + }; + + // BF16 only, B200/B300 tp=8 + const modelConfigs = { + b200: { bf16: { tp: 8, mem: null } }, + b300: { bf16: { tp: 8, mem: null } } + }; + + const generateCommand = (values) => { + const { hardware } = values; + + const modelName = `${modelFamily}/DeepSeek-Math-V2`; + + const hwConfig = modelConfigs[hardware].bf16; + const tpValue = hwConfig.tp; + const memFraction = hwConfig.mem; + + let cmd = 'sglang serve --model-path'; + cmd += ` ${modelName}`; + + // TP setting + cmd += ` \\\n --tp ${tpValue}`; + + // DP Attention: --dp matches --tp + if (values.dpattention === 'enabled') { + cmd += ` \\\n --dp ${tpValue} \\\n --enable-dp-attention`; + } + + // EP setting (commonly matches tp for MoE models) + cmd += ` \\\n --ep ${tpValue}`; + + // Apply commandRule from all options + Object.entries(options).forEach(([key, option]) => { + if (option.commandRule) { + const rule = option.commandRule(values[key]); + if (rule) { + cmd += ` \\\n ${rule}`; + } + } + }); + + // Memory fraction based on hardware and quantization (skip for 8-card configs) + if (memFraction) { + cmd += ` \\\n --mem-fraction-static ${memFraction}`; + } + + cmd += ' \\\n --host 0.0.0.0 \\\n --port 30000'; + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/deepseek-ocr-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-ocr-deployment.jsx new file mode 100644 index 000000000..ce2b70b64 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/deepseek-ocr-deployment.jsx @@ -0,0 +1,168 @@ +export const DeepSeekOCRDeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'fp16', label: 'FP16', default: true } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', subtitle: 'Tensor Parallel', default: true, required: true }, + { id: 'dp', label: 'DP', subtitle: 'Data Parallel', default: false }, + { id: 'ep', label: 'EP', subtitle: 'Expert Parallel', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode - prioritize page theme over system preference + useEffect(() => { + const checkDarkMode = () => { + // Check Mintlify's theme class on html element + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, quantization, strategy } = values; + const strategyArray = Array.isArray(strategy) ? strategy : []; + + // Validation checks + // Check MI300X compatibility - MI300X + DeepSeek-OCR only supports FP16 quantization + if ((hardware === 'mi300x') && quantization !== 'fp16') { + return '# Error: MI300X + DeepSeek-OCR only supports FP16 quantization\n# Please select FP16 quantization'; + } + + // Model path + let modelPath = 'deepseek-ai/DeepSeek-OCR'; + + let cmd = 'python3 -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelPath}`; + cmd += ` \\\n --dtype float16`; + + // TP strategy + if (strategyArray.includes('tp')) { + cmd += ` \\\n --tp 1`; + } + + // DP strategy + if (strategyArray.includes('dp')) { + cmd += ` \\\n --dp 1 \\\n --enable-dp-attention`; + } + + // EP strategy + if (strategyArray.includes('ep')) { + cmd += ` \\\n --ep 1`; + } + + cmd += ` \\\n --enable-symm-mem # Optional: improves performance, but may be unstable`; + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/deepseek-ocr-v2-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-ocr-v2-deployment.jsx new file mode 100644 index 000000000..caf66e233 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/deepseek-ocr-v2-deployment.jsx @@ -0,0 +1,342 @@ +export const DeepSeekOCR2Deployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false }, + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'fp16', label: 'FP16', default: true }, + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', subtitle: 'Tensor Parallel', default: true, required: true }, + { id: 'dp', label: 'DP', subtitle: 'Data Parallel', default: false }, + { id: 'ep', label: 'EP', subtitle: 'Expert Parallel', default: false } + ] + }, + }; + + const generateCommand = (values) => { + const { hardware, strategy } = values; + + const strategyArray = Array.isArray(strategy) ? strategy : []; + + let modelPath = 'deepseek-ai/DeepSeek-OCR-2'; + + let cmd = 'sglang serve \\\n'; + cmd += ` --model-path ${modelPath}`; + cmd += ` \\\n --enable-multimodal`; + + if (strategyArray.includes('tp')) { + cmd += ` \\\n --tp 1`; + } + + if (strategyArray.includes('dp')) { + cmd += ` \\\n --dp 1 \\\n --enable-dp-attention`; + } + + if (strategyArray.includes('ep')) { + cmd += ` \\\n --ep 1`; + } + + if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd += ` \\\n --attention-backend triton` + ` \\\n --trust-remote-code`; + } + + cmd += ` \\\n --host 0.0.0.0 \\\n --port 30000`; + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/deepseek-r1-advanced-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-r1-advanced-deployment.jsx new file mode 100644 index 000000000..b342d6b84 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/deepseek-r1-advanced-deployment.jsx @@ -0,0 +1,856 @@ +export const DeepSeekR1AdvancedDeployment = () => { +const lookupData = { + "model": "deepseek-r1", + "version": "v0.5.6", + "ui_options": { + "hardware": [ + { + "id": "b200", + "label": "B200", + "default": true + }, + { + "id": "h200", + "label": "H200", + "default": false + }, + { + "id": "mi300x", + "label": "MI300X", + "default": false + }, + { + "id": "mi325x", + "label": "MI325X", + "default": false + }, + { + "id": "mi355x", + "label": "MI355X", + "default": false + } + ], + "quantization": [ + { + "id": "fp8", + "label": "FP8", + "default": true + }, + { + "id": "fp4", + "label": "FP4", + "default": false + } + ], + "scenario": [ + { + "id": "low-latency", + "label": "Low Latency", + "subtitle": "Concurrency 4-8", + "default": true + }, + { + "id": "high-throughput", + "label": "High Throughput", + "subtitle": "Concurrency 16-128", + "default": false + } + ], + "gpu_count": [ + { + "id": 4, + "label": "4 GPUs", + "default": false + }, + { + "id": 8, + "label": "8 GPUs", + "default": true + } + ] + }, + "configs": [ + { + "hardware": "b200", + "quantization": "fp4", + "gpu_count": 4, + "scenario": "low-latency", + "parameters": { + "model_path": "nvidia/DeepSeek-R1-0528-FP4-v2", + "tensor_parallel_size": 4, + "cuda_graph_max_bs": 256, + "max_running_requests": 256, + "mem_fraction_static": 0.85, + "ep_size": 4, + "scheduler_recv_interval": 10, + "enable_symm_mem": true, + "stream_interval": 10 + } + }, + { + "hardware": "b200", + "quantization": "fp4", + "gpu_count": 4, + "scenario": "high-throughput", + "parameters": { + "model_path": "nvidia/DeepSeek-R1-0528-FP4-v2", + "tensor_parallel_size": 4, + "cuda_graph_max_bs": 256, + "max_running_requests": 256, + "mem_fraction_static": 0.85, + "ep_size": 4, + "scheduler_recv_interval": 30, + "enable_symm_mem": true, + "stream_interval": 10 + } + }, + { + "hardware": "b200", + "quantization": "fp4", + "gpu_count": 8, + "scenario": "low-latency", + "parameters": { + "model_path": "nvidia/DeepSeek-R1-0528-FP4-v2", + "tensor_parallel_size": 8, + "cuda_graph_max_bs": 256, + "max_running_requests": 256, + "mem_fraction_static": 0.85, + "kv_cache_dtype": "fp8_e4m3", + "chunked_prefill_size": 16384, + "ep_size": 8, + "scheduler_recv_interval": 10, + "enable_symm_mem": true, + "stream_interval": 10 + } + }, + { + "hardware": "b200", + "quantization": "fp4", + "gpu_count": 8, + "scenario": "high-throughput", + "parameters": { + "model_path": "nvidia/DeepSeek-R1-0528-FP4-v2", + "tensor_parallel_size": 8, + "cuda_graph_max_bs": 256, + "max_running_requests": 256, + "mem_fraction_static": 0.85, + "kv_cache_dtype": "fp8_e4m3", + "chunked_prefill_size": 16384, + "ep_size": 8, + "scheduler_recv_interval": 30, + "enable_symm_mem": true, + "stream_interval": 10 + } + }, + { + "hardware": "b200", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "low-latency", + "parameters": { + "env_vars": "SGLANG_ENABLE_JIT_DEEPGEMM=false", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "tensor_parallel_size": 8, + "cuda_graph_max_bs": 128, + "max_running_requests": 128, + "mem_fraction_static": 0.82, + "kv_cache_dtype": "fp8_e4m3", + "chunked_prefill_size": 32768, + "max_prefill_tokens": 32768, + "scheduler_recv_interval": 10, + "stream_interval": 30, + "fp8_gemm_backend": "flashinfer_trtllm" + } + }, + { + "hardware": "b200", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "high-throughput", + "parameters": { + "env_vars": "SGLANG_ENABLE_JIT_DEEPGEMM=false", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "tensor_parallel_size": 8, + "cuda_graph_max_bs": 128, + "max_running_requests": 128, + "mem_fraction_static": 0.82, + "kv_cache_dtype": "fp8_e4m3", + "chunked_prefill_size": 32768, + "max_prefill_tokens": 32768, + "scheduler_recv_interval": 30, + "stream_interval": 30, + "fp8_gemm_backend": "flashinfer_trtllm" + } + }, + { + "hardware": "h200", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "low-latency", + "parameters": { + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "disable_radix_cache": true, + "max_running_requests": 256, + "cuda_graph_max_bs": 256, + "chunked_prefill_size": 32768, + "max_prefill_tokens": 32768, + "mem_fraction_static": 0.82, + "attention_backend": "flashinfer", + "stream_interval": 10, + "decode_log_interval": 1 + } + }, + { + "hardware": "h200", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "high-throughput", + "parameters": { + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "disable_radix_cache": true, + "max_running_requests": 512, + "cuda_graph_max_bs": 512, + "chunked_prefill_size": 32768, + "max_prefill_tokens": 32768, + "mem_fraction_static": 0.82, + "attention_backend": "flashinfer", + "stream_interval": 10, + "decode_log_interval": 1 + } + }, + { + "hardware": "mi300x", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "low-latency", + "parameters": { + "env_vars": "SGLANG_USE_AITER=1 SGLANG_AITER_MLA_PERSIST=1", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "mem_fraction_static": 0.8, + "cuda_graph_max_bs": 128, + "chunked_prefill_size": 131072, + "num_continuous_decode_steps": 4, + "max_prefill_tokens": 131072, + "kv_cache_dtype": "fp8_e4m3", + "attention_backend": "aiter", + "disable_radix_cache": true + } + }, + { + "hardware": "mi300x", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "high-throughput", + "parameters": { + "env_vars": "SGLANG_USE_AITER=1 SGLANG_AITER_MLA_PERSIST=1", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "mem_fraction_static": 0.8, + "cuda_graph_max_bs": 512, + "chunked_prefill_size": 131072, + "num_continuous_decode_steps": 4, + "max_prefill_tokens": 131072, + "kv_cache_dtype": "fp8_e4m3", + "attention_backend": "aiter", + "disable_radix_cache": true + } + }, + { + "hardware": "mi325x", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "low-latency", + "parameters": { + "env_vars": "SGLANG_USE_AITER=1 SGLANG_AITER_MLA_PERSIST=1", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "mem_fraction_static": 0.8, + "cuda_graph_max_bs": 128, + "chunked_prefill_size": 131072, + "num_continuous_decode_steps": 4, + "max_prefill_tokens": 131072, + "kv_cache_dtype": "fp8_e4m3", + "attention_backend": "aiter", + "disable_radix_cache": true + } + }, + { + "hardware": "mi325x", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "high-throughput", + "parameters": { + "env_vars": "SGLANG_USE_AITER=1 SGLANG_AITER_MLA_PERSIST=1", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "mem_fraction_static": 0.8, + "cuda_graph_max_bs": 512, + "chunked_prefill_size": 131072, + "num_continuous_decode_steps": 4, + "max_prefill_tokens": 131072, + "kv_cache_dtype": "fp8_e4m3", + "attention_backend": "aiter", + "disable_radix_cache": true + } + }, + { + "hardware": "mi355x", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "low-latency", + "parameters": { + "env_vars": "SGLANG_USE_AITER=1 RCCL_MSCCL_ENABLE=0 ROCM_QUICK_REDUCE_QUANTIZATION=INT4", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "mem_fraction_static": 0.8, + "disable_radix_cache": true, + "chunked_prefill_size": 196608, + "num_continuous_decode_steps": 4, + "max_prefill_tokens": 196608, + "cuda_graph_max_bs": 128, + "attention_backend": "aiter", + "kv_cache_dtype": "fp8_e4m3" + } + }, + { + "hardware": "mi355x", + "quantization": "fp8", + "gpu_count": 8, + "scenario": "high-throughput", + "parameters": { + "env_vars": "SGLANG_USE_AITER=1 RCCL_MSCCL_ENABLE=0 ROCM_QUICK_REDUCE_QUANTIZATION=INT4", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "mem_fraction_static": 0.8, + "disable_radix_cache": true, + "chunked_prefill_size": 196608, + "num_continuous_decode_steps": 4, + "max_prefill_tokens": 196608, + "cuda_graph_max_bs": 512, + "attention_backend": "aiter", + "kv_cache_dtype": "fp8_e4m3" + } + }, + { + "hardware": "mi355x", + "quantization": "fp4", + "gpu_count": 8, + "scenario": "low-latency", + "parameters": { + "env_vars": "SGLANG_USE_AITER=1 ROCM_QUICK_REDUCE_QUANTIZATION=INT4", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "mem_fraction_static": 0.8, + "disable_radix_cache": true, + "chunked_prefill_size": 196608, + "num_continuous_decode_steps": 4, + "max_prefill_tokens": 196608, + "cuda_graph_max_bs": 128, + "attention_backend": "aiter", + "kv_cache_dtype": "fp8_e4m3" + } + }, + { + "hardware": "mi355x", + "quantization": "fp4", + "gpu_count": 8, + "scenario": "high-throughput", + "parameters": { + "env_vars": "SGLANG_USE_AITER=1 ROCM_QUICK_REDUCE_QUANTIZATION=INT4", + "model_path": "deepseek-ai/DeepSeek-R1-0528", + "trust_remote_code": true, + "tensor_parallel_size": 8, + "mem_fraction_static": 0.8, + "disable_radix_cache": true, + "chunked_prefill_size": 196608, + "num_continuous_decode_steps": 4, + "max_prefill_tokens": 196608, + "cuda_graph_max_bs": 512, + "attention_backend": "aiter", + "kv_cache_dtype": "fp8_e4m3" + } + } + ], + "validation": [ + { + "hardware": "h200", + "quantization": "fp4", + "error": "FP4 is only available for B200 hardware. Please select FP8 quantization." + } + ] +}; + +const fieldToFlag = { + model_path: 'model-path', + trust_remote_code: 'trust-remote-code', + tensor_parallel_size: 'tp', + data_parallel_size: 'dp', + ep_size: 'ep-size', + cuda_graph_max_bs: 'cuda-graph-max-bs', + max_running_requests: 'max-running-requests', + mem_fraction_static: 'mem-fraction-static', + kv_cache_dtype: 'kv-cache-dtype', + chunked_prefill_size: 'chunked-prefill-size', + max_prefill_tokens: 'max-prefill-tokens', + enable_flashinfer_allreduce_fusion: 'enable-flashinfer-allreduce-fusion', + scheduler_recv_interval: 'scheduler-recv-interval', + enable_symm_mem: 'enable-symm-mem', + disable_radix_cache: 'disable-radix-cache', + attention_backend: 'attention-backend', + moe_runner_backend: 'moe-runner-backend', + stream_interval: 'stream-interval', + quantization: 'quantization', + decode_log_interval: 'decode-log-interval', + fp8_gemm_backend: 'fp8-gemm-backend', + num_continuous_decode_steps: 'num-continuous-decode-steps', +}; + +const findConfig = (hardware, quantization, gpuCount, scenario) => { + const match = lookupData.configs.find((entry) => { + const hardwareMatch = entry.hardware === hardware; + const quantizationMatch = entry.quantization === quantization; + const gpuCountMatch = !entry.gpu_count || entry.gpu_count === Number.parseInt(gpuCount, 10); + const scenarioMatch = entry.scenario === scenario; + return hardwareMatch && quantizationMatch && gpuCountMatch && scenarioMatch; + }); + return match ? match.parameters : null; +}; + +const getAvailableGpuCounts = (hardware, quantization) => { + const entries = lookupData.configs.filter( + (entry) => entry.hardware === hardware && entry.quantization === quantization + ); + const gpuCounts = [...new Set(entries.map((entry) => entry.gpu_count))].filter(Boolean); + return gpuCounts.length > 0 ? gpuCounts.sort((a, b) => a - b) : [8]; +}; + +const generateCommandFromConfig = (config) => { + if (!config) { + return '# Error: Configuration not found'; + } + + let command = ''; + if (config.env_vars) { + command = `${config.env_vars} `; + } + + command += 'python3 -m sglang.launch_server \\\n'; + command += ` --model-path ${config.model_path}`; + + for (const [key, value] of Object.entries(config)) { + if (key === 'model_path' || key === 'env_vars') { + continue; + } + + const flagName = fieldToFlag[key]; + if (!flagName) { + continue; + } + + if (typeof value === 'boolean') { + if (value) { + command += ` \\\n --${flagName}`; + } + continue; + } + + command += ` \\\n --${flagName} ${value}`; + } + + return command; +}; + +const validateSelection = (hardware, quantization) => { + for (const rule of lookupData.validation || []) { + const hardwareMatch = Array.isArray(rule.hardware) + ? rule.hardware.includes(hardware) + : rule.hardware === hardware; + const quantizationMatch = Array.isArray(rule.quantization) + ? rule.quantization.includes(quantization) + : rule.quantization === quantization; + if (hardwareMatch && quantizationMatch) { + return rule.error; + } + } + return null; +}; + +const resolveItems = (option, values) => + typeof option.getDynamicItems === 'function' ? option.getDynamicItems(values) : option.items; + + const uiOptions = lookupData.ui_options; + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: uiOptions.hardware + .filter((option) => + ['b200', 'h200', 'mi300x', 'mi325x', 'mi355x'].includes(option.id) + ) + .map((option) => ({ + id: option.id, + label: option.label, + default: option.id === 'b200', + })), + }, + quantization: { + name: 'quantization', + title: 'Quantization', + getDynamicItems: (values) => + uiOptions.quantization.map((option) => { + const fp4Disabled = ['h200', 'mi300x', 'mi325x'].includes(values.hardware) && option.id === 'fp4'; + return { + id: option.id, + label: option.label, + default: + ['h200', 'mi300x', 'mi325x'].includes(values.hardware) + ? option.id === 'fp8' + : option.default, + disabled: fp4Disabled, + disabledReason: fp4Disabled ? 'FP4 not supported on H200, MI300X, MI325X' : '', + }; + }), + }, + gpuCount: { + name: 'gpuCount', + title: 'GPU Count', + getDynamicItems: (values) => { + const availableGpuCounts = getAvailableGpuCounts(values.hardware, values.quantization); + const allGpuCounts = uiOptions.gpu_count.map((option) => + typeof option.id === 'number' ? option.id : Number.parseInt(option.id, 10) + ); + const defaultGpuCount = Math.max(...availableGpuCounts); + + return allGpuCounts.map((count) => ({ + id: String(count), + label: `${count} GPUs`, + default: count === defaultGpuCount, + disabled: !availableGpuCounts.includes(count), + disabledReason: availableGpuCounts.includes(count) + ? '' + : `${count} GPUs not available for ${values.hardware.toUpperCase()} ${values.quantization.toUpperCase()}`, + })); + }, + }, + scenario: { + name: 'scenario', + title: 'Scenario', + items: uiOptions.scenario.map((option) => ({ + id: option.id, + label: option.label, + subtitle: option.subtitle, + default: option.default, + })), + }, + }; + + const getInitialState = () => { + const initialState = {}; + for (const [key, option] of Object.entries(options)) { + const items = resolveItems(option, initialState) || []; + const fallback = + items.find((item) => item.default && !item.disabled) || + items.find((item) => !item.disabled) || + items[0]; + initialState[key] = fallback ? fallback.id : ''; + } + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => { + const next = { ...prev, [optionName]: value }; + for (const [key, option] of Object.entries(options)) { + if (typeof option.getDynamicItems !== 'function') { + continue; + } + const items = option.getDynamicItems(next); + const current = items.find((item) => item.id === next[key]); + if (!current || current.disabled) { + const fallback = + items.find((item) => item.default && !item.disabled) || + items.find((item) => !item.disabled); + if (fallback) { + next[key] = fallback.id; + } + } + } + return next; + }); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const generateCommand = (vals) => { + const validationError = validateSelection(vals.hardware, vals.quantization); + if (validationError) { + return `# Error: ${validationError}`; + } + + const config = findConfig( + vals.hardware, + vals.quantization, + vals.gpuCount || '8', + vals.scenario + ); + if (!config) { + return `# Error: No configuration found for: +# Hardware: ${vals.hardware} +# Quantization: ${vals.quantization} +# GPU Count: ${vals.gpuCount} +# Scenario: ${vals.scenario} +# This combination is not yet supported.`; + } + + return generateCommandFromConfig(config); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} + +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/deepseek-r1-basic-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-r1-basic-deployment.jsx new file mode 100644 index 000000000..d95ca5a2d --- /dev/null +++ b/docs_new/src/snippets/autoregressive/deepseek-r1-basic-deployment.jsx @@ -0,0 +1,394 @@ +export const DeepSeekR1BasicDeployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h100', label: 'H100', default: false }, + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: true }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false }, + ], + }, + quantization: { + name: 'quantization', + title: 'Quantization', + getDynamicItems: (values) => { + const fp4Disabled = values.hardware === 'h100' || values.hardware === 'mi300x'; + return [ + { id: 'fp8', label: 'FP8', default: true }, + { + id: 'fp4', + label: 'FP4', + default: false, + disabled: fp4Disabled, + disabledReason: 'H100 and MI300X only support FP8 quantization', + }, + ]; + }, + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', subtitle: 'Tensor Parallel', default: true, required: true }, + { id: 'dp', label: 'DP', subtitle: 'Data Parallel', default: false }, + { id: 'ep', label: 'EP', subtitle: 'Expert Parallel', default: false }, + { id: 'mtp', label: 'MTP', subtitle: 'Multi-token Prediction', default: false }, + ], + }, + thinking: { + name: 'thinking', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false }, + ], + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false }, + ], + }, + }; + + const resolveItems = (option, values) => + typeof option.getDynamicItems === 'function' ? option.getDynamicItems(values) : option.items; + + const getInitialState = () => { + const initialState = {}; + for (const [key, option] of Object.entries(options)) { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + continue; + } + + const items = resolveItems(option, initialState) || []; + const fallback = + items.find((item) => item.default && !item.disabled) || + items.find((item) => !item.disabled) || + items[0]; + initialState[key] = fallback ? fallback.id : ''; + } + return initialState; + }; + + const generateCommand = (values) => { + const { hardware, quantization, strategy, thinking, toolcall } = values; + const strategyValues = Array.isArray(strategy) ? strategy : []; + + if ((hardware === 'h100' || hardware === 'mi300x') && quantization === 'fp4') { + return '# Error: H100 and MI300X only support FP8 quantization'; + } + + const modelPath = + quantization === 'fp4' + ? 'nvidia/DeepSeek-R1-0528-FP4-v2' + : 'deepseek-ai/DeepSeek-R1-0528'; + + let command = 'python3 -m sglang.launch_server \\\n'; + command += ` --model-path ${modelPath}`; + + if (strategyValues.includes('tp')) { + command += ' \\\n --tp 8'; + } + if (strategyValues.includes('dp')) { + command += ' \\\n --dp 8 \\\n --enable-dp-attention'; + } + if (strategyValues.includes('ep')) { + command += ' \\\n --ep 8'; + } + if (strategyValues.includes('mtp')) { + command = 'SGLANG_ENABLE_SPEC_V2=1 ' + command; + command += + ' \\\n --speculative-algorithm EAGLE' + + ' \\\n --speculative-num-steps 3' + + ' \\\n --speculative-eagle-topk 1' + + ' \\\n --speculative-num-draft-tokens 4'; + } + + command += ' \\\n --enable-symm-mem # Optional: improves performance, but may be unstable'; + + if (hardware === 'b200' || (hardware === 'mi355x' && quantization === 'fp8')) { + command += + ' \\\n --kv-cache-dtype fp8_e4m3 # Optional: enables fp8 kv cache and fp8 attention kernels to improve performance'; + } + + if (thinking === 'enabled') { + command += ' \\\n --reasoning-parser deepseek-r1'; + } + if (toolcall === 'enabled') { + command += + ' \\\n --tool-call-parser deepseekv3' + + ' \\\n --chat-template examples/chat_template/tool_chat_template_deepseekr1.jinja'; + } + + return command; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => { + const next = { ...prev, [optionName]: value }; + if (optionName === 'hardware') { + const quantizationItems = resolveItems(options.quantization, next); + const current = quantizationItems.find((item) => item.id === next.quantization); + if (!current || current.disabled) { + const fallback = + quantizationItems.find((item) => item.default && !item.disabled) || + quantizationItems.find((item) => !item.disabled); + if (fallback) { + next.quantization = fallback.id; + } + } + } + return next; + }); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} + +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/deepseek-v3-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-v3-deployment.jsx new file mode 100644 index 000000000..8615b01be --- /dev/null +++ b/docs_new/src/snippets/autoregressive/deepseek-v3-deployment.jsx @@ -0,0 +1,186 @@ +export const DeepSeekV3Deployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h100', label: 'H100', default: false }, + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: true }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'fp8', label: 'FP8', default: true }, + { id: 'fp4', label: 'FP4', default: false } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', subtitle: 'Tensor Parallel', default: true, required: true }, + { id: 'dp', label: 'DP', subtitle: 'Data Parallel', default: false }, + { id: 'ep', label: 'EP', subtitle: 'Expert Parallel', default: false }, + { id: 'mtp', label: 'MTP', subtitle: 'Multi-token Prediction', default: false } + ] + }, + thinking: { + name: 'thinking', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode - prioritize page theme over system preference + useEffect(() => { + const checkDarkMode = () => { + // Check Mintlify's theme class on html element + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, quantization, strategy, thinking, toolcall } = values; + const strategyArray = Array.isArray(strategy) ? strategy : []; + + // Validation - H100/H200/MI300X/MI325X only supports FP8 + if (['h100', 'h200', 'mi300x', 'mi325x'].includes(hardware) && quantization === 'fp4') { + return '# Error: This hardware only supports FP8 quantization\n# Please select FP8 quantization or use B200/MI355X hardware'; + } + + const modelPath = quantization === 'fp4' ? 'nvidia/DeepSeek-V3-0324-NVFP4' : 'deepseek-ai/DeepSeek-V3'; + + let cmd = 'python3 -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelPath}`; + + if (strategyArray.includes('tp')) cmd += ' \\\n --tp 8'; + if (strategyArray.includes('dp')) cmd += ' \\\n --dp 8 \\\n --enable-dp-attention'; + if (strategyArray.includes('ep')) cmd += ' \\\n --ep 8'; + if (strategyArray.includes('mtp')) { + cmd = 'SGLANG_ENABLE_SPEC_V2=1 ' + cmd; + cmd += ' \\\n --speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4'; + } + + cmd += ' \\\n --enable-symm-mem # Optional: improves performance, but may be unstable'; + + if (hardware === 'b200') { + cmd += ' \\\n --kv-cache-dtype fp8_e4m3 # Optional: enables fp8 kv cache and fp8 attention kernels'; + } + + if (thinking === 'enabled') cmd += ' \\\n --reasoning-parser deepseek-v3'; + if (toolcall === 'enabled') cmd += ' \\\n --tool-call-parser deepseekv3 \\\n --chat-template examples/chat_template/tool_chat_template_deepseekv3.jinja'; + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/deepseek-v31-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-v31-deployment.jsx new file mode 100644 index 000000000..b09fa61f8 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/deepseek-v31-deployment.jsx @@ -0,0 +1,197 @@ +export const DeepSeekV31Deployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelname: { + name: 'modelname', + title: 'Model Name', + items: [ + { id: 'v31', label: 'DeepSeek-V3.1', default: true }, + { id: 'v31terminus', label: 'DeepSeek-V3.1-Terminus', default: false } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', default: true, required: true }, + { id: 'dp', label: 'DP attention', default: false }, + { id: 'ep', label: 'EP', default: false }, + { id: 'mtp', label: 'Multi-token Prediction', default: false } + ] + }, + reasoningParser: { + name: 'reasoningParser', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode - prioritize page theme over system preference + useEffect(() => { + const checkDarkMode = () => { + // Check Mintlify's theme class on html element + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, modelname, strategy, reasoningParser, toolcall } = values; + const strategyArray = Array.isArray(strategy) ? strategy : []; + + // Model name mapping + const modelMap = { + 'v31': 'DeepSeek-V3.1', + 'v31terminus': 'DeepSeek-V3.1-Terminus' + }; + + const modelName = `deepseek-ai/${modelMap[modelname]}`; + + let cmd = 'python3 -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelName}`; + + // TP is mandatory + cmd += ` \\\n --tp 8`; + if (strategyArray.includes('dp')) { + cmd += ` \\\n --dp 8 \\\n --enable-dp-attention`; + } + if (strategyArray.includes('ep')) { + cmd += ` \\\n --ep 8`; + } + // Multi-token prediction (MTP) configuration + if (strategyArray.includes('mtp')) { + cmd += ` \\\n --speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4`; + } + + // Add tool-call-parser if enabled + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser deepseekv31`; + } + + // Add reasoning-parser when enabled + if (reasoningParser === 'enabled') { + cmd += ` \\\n --reasoning-parser deepseek-v3`; + } + + // Add chat-template if tool calling is enabled + if (toolcall === 'enabled') { + cmd += ` \\\n --chat-template ./examples/chat_template/tool_chat_template_deepseekv31.jinja`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/deepseek-v32-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-v32-deployment.jsx new file mode 100644 index 000000000..870e5d1df --- /dev/null +++ b/docs_new/src/snippets/autoregressive/deepseek-v32-deployment.jsx @@ -0,0 +1,318 @@ +export const DeepSeekV32Deployment = () => { + // Config mirrors sgl-cookbook src/components/autoregressive/DeepSeekConfigGenerator/index.js. + // + // Model variants: + // DeepSeek-V3.2, V3.2-Exp, V3.2-Speciale → deepseek-ai/ family, TP=8 + // DeepSeek-V3.2-NVFP4 → nvidia/ family, B200 only, TP=4 + // DeepSeek-V3.2-MXFP4 → amd/ family, MI300X/MI355X only, TP=8 + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelname: { + name: 'modelname', + title: 'Model Name', + getDynamicItems: (values) => { + const hw = values.hardware; + const isB200 = hw === 'b200'; + const isAMD = hw === 'mi300x' || hw === 'mi355x'; + return [ + { id: 'v32', label: 'DeepSeek-V3.2', default: !isB200 && !isAMD }, + { id: 'v32speciale', label: 'DeepSeek-V3.2-Speciale', default: false }, + { id: 'v32exp', label: 'DeepSeek-V3.2-Exp', default: false }, + { id: 'v32nvfp4', label: 'DeepSeek-V3.2-NVFP4', default: isB200, disabled: !isB200, disabledReason: 'NVFP4 requires B200 (Blackwell)' }, + { id: 'v32mxfp4', label: 'DeepSeek-V3.2-MXFP4', default: isAMD, disabled: !isAMD, disabledReason: 'MXFP4 requires AMD MI300X/MI355X' } + ]; + } + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + condition: (values) => values.modelname !== 'v32nvfp4' && values.modelname !== 'v32mxfp4', + items: [ + { id: 'tp', label: 'TP', default: true, required: true }, + { id: 'dp', label: 'DP attention', default: false }, + { id: 'ep', label: 'EP', default: false }, + { id: 'mtp', label: 'Multi-token Prediction', default: false } + ] + }, + reasoningParser: { + name: 'reasoningParser', + title: 'Reasoning Parser', + condition: (values) => values.modelname !== 'v32nvfp4' && values.modelname !== 'v32mxfp4', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + condition: (values) => values.modelname !== 'v32nvfp4' && values.modelname !== 'v32mxfp4' && values.modelname !== 'v32speciale', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + const resolveItems = (option, vals) => { + if (typeof option.getDynamicItems === 'function') return option.getDynamicItems(vals); + return option.items; + }; + + const getInitialState = () => { + const initialState = {}; + for (const [key, option] of Object.entries(options)) { + if (option.type === 'checkbox') { + const items = resolveItems(option, initialState); + initialState[key] = items.filter(i => i.default).map(i => i.id); + } else { + const items = resolveItems(option, initialState); + const def = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled) || items[0]; + initialState[key] = def.id; + } + } + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + // When hardware changes, re-resolve model name defaults (NVFP4→B200, MXFP4→AMD). + useEffect(() => { + setValues(prev => { + const next = { ...prev }; + for (const [key, option] of Object.entries(options)) { + if (typeof option.getDynamicItems !== 'function') continue; + const items = option.getDynamicItems(next); + const current = items.find(i => i.id === next[key]); + if (!current || current.disabled) { + const fallback = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled); + if (fallback) next[key] = fallback.id; + } + } + return next; + }); + }, [values.hardware]); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + const generateCommand = () => { + const { hardware, modelname, strategy, reasoningParser, toolcall } = values; + + const isNvfp4 = modelname === 'v32nvfp4'; + const isMxfp4 = modelname === 'v32mxfp4'; + const isAMD = hardware === 'mi300x' || hardware === 'mi355x'; + + // Validation: NVFP4 requires B200 + if (isNvfp4 && hardware !== 'b200') { + return `# Error: DeepSeek-V3.2-NVFP4 requires NVIDIA B200 (Blackwell) hardware\n# Please select "B200" for Hardware Platform or choose a different model`; + } + + // Validation: MXFP4 requires AMD MI300X/MI355X + if (isMxfp4 && !isAMD) { + return `# Error: DeepSeek-V3.2-MXFP4 requires AMD MI300X/MI355X hardware\n# Please select "MI300X" or "MI355X" for Hardware Platform or choose a different model`; + } + + // Validation: Speciale doesn't support tool calling + if (modelname === 'v32speciale' && toolcall === 'enabled') { + return `# Error: DeepSeek-V3.2-Speciale doesn't support tool calling\n# Please select "Disabled" for Tool Call Parser or choose a different model`; + } + + // Model name mapping + const modelMap = { + 'v32': 'DeepSeek-V3.2', + 'v32exp': 'DeepSeek-V3.2-Exp', + 'v32speciale': 'DeepSeek-V3.2-Speciale', + 'v32nvfp4': 'DeepSeek-V3.2-NVFP4', + 'v32mxfp4': 'DeepSeek-V3.2-mxfp4' + }; + + let modelFamily; + if (isNvfp4) modelFamily = 'nvidia'; + else if (isMxfp4) modelFamily = 'amd'; + else modelFamily = 'deepseek-ai'; + + const modelName = `${modelFamily}/${modelMap[modelname]}`; + + // NVFP4: fixed config + if (isNvfp4) { + let cmd = 'sglang serve \\\n'; + cmd += ` --model ${modelName}`; + cmd += ' \\\n --tp 4'; + cmd += ' \\\n --quantization modelopt_fp4'; + cmd += ' \\\n --moe-runner-backend flashinfer_trtllm'; + return cmd; + } + + // MXFP4: fixed config for AMD + if (isMxfp4) { + let cmd = 'sglang serve \\\n'; + cmd += ` --model ${modelName}`; + cmd += ' \\\n --tp 8'; + cmd += ' \\\n --trust-remote-code'; + return cmd; + } + + let cmd = 'sglang serve \\\n'; + cmd += ` --model ${modelName}`; + + // Hardware platform specific parameters + if (isAMD) { + cmd += ' \\\n --trust-remote-code'; + cmd += ' \\\n --nsa-prefill-backend tilelang'; + cmd += ' \\\n --nsa-decode-backend tilelang'; + cmd += ' \\\n --cuda-graph-max-bs 64'; + } + + // Strategy configurations + const strategyArray = Array.isArray(strategy) ? strategy : []; + const tpSize = 8; + const dpSize = 8; + const epSize = 8; + cmd += ` \\\n --tp ${tpSize}`; + if (strategyArray.includes('dp')) { + cmd += ` \\\n --dp ${dpSize} \\\n --enable-dp-attention`; + } + if (strategyArray.includes('ep')) { + cmd += ` \\\n --ep ${epSize}`; + } + + // Multi-token prediction (MTP) configuration + if (strategyArray.includes('mtp')) { + cmd += ' \\\n --speculative-algorithm EAGLE'; + cmd += ' \\\n --speculative-num-steps 3'; + cmd += ' \\\n --speculative-eagle-topk 1'; + cmd += ' \\\n --speculative-num-draft-tokens 4'; + } + + // Add tool-call-parser if enabled (not supported for Speciale) + if (toolcall === 'enabled' && modelname !== 'v32speciale') { + if (modelname === 'v32exp') { + cmd += ' \\\n --tool-call-parser deepseekv31'; + } else if (modelname === 'v32') { + cmd += ' \\\n --tool-call-parser deepseekv32'; + } + } + + // Add reasoning-parser when enabled + if (reasoningParser === 'enabled') { + cmd += ' \\\n --reasoning-parser deepseek-v3'; + } + + // Add chat-template if tool calling is enabled (only for v32exp) + if (toolcall === 'enabled' && modelname === 'v32exp') { + cmd += ' \\\n --chat-template ./examples/chat_template/tool_chat_template_deepseekv32.jinja'; + } + + return cmd; + }; + + // Styles + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.4 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (typeof option.condition === 'function' && !option.condition(values)) return null; + const items = resolveItems(option, values); + return ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required || !!item.disabled; + return ( + + ); + }) + ) : ( + items.map(item => { + const isChecked = values[option.name] === item.id; + const isDisabled = !!item.disabled; + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/devstral-2-deployment.jsx b/docs_new/src/snippets/autoregressive/devstral-2-deployment.jsx new file mode 100644 index 000000000..a3a66a415 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/devstral-2-deployment.jsx @@ -0,0 +1,182 @@ +export const Devstral2Deployment = () => { + // Config options based on Devstral2ConfigGenerator + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + model: { + name: 'model', + title: 'Model', + items: [ + { id: 'small', label: 'Devstral Small 2 (24B)', default: true }, + { id: 'large', label: 'Devstral 2 (123B)', default: false } + ] + }, + weights: { + name: 'weights', + title: 'Weights / Precision', + items: [ + { id: 'fp8', label: 'FP8', default: true } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Model configurations + const modelConfigs = { + small: { + modelId: 'mistralai/Devstral-Small-2-24B-Instruct-2512', + tpByHardware: { h100: 1, h200: 1, b200: 1, mi300x: 1, mi325x: 1, mi355x: 1 }, + allowedWeights: ['fp8'] + }, + large: { + modelId: 'mistralai/Devstral-2-123B-Instruct-2512', + tpByHardware: { h100: 4, h200: 2, b200: 2, mi300x: 2, mi325x: 2, mi355x: 2 }, + allowedWeights: ['fp8'] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, model, weights, toolcall } = values; + + const modelCfg = modelConfigs[model]; + if (!modelCfg) return `# Error: Unknown model selection: ${model}`; + + if (!modelCfg.allowedWeights.includes(weights)) { + const allowed = modelCfg.allowedWeights.map(w => w.toUpperCase()).join(', '); + return `# Error: ${modelCfg.modelId} only supports: ${allowed}\n# Please change "Weights / Precision" to a supported value.`; + } + + const tp = modelCfg.tpByHardware[hardware]; + if (!tp) return `# Error: Unknown hardware platform: ${hardware}`; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelCfg.modelId}`; + + if (tp > 1) { + cmd += ` \\\n --tp ${tp}`; + } + + // Add tool-call-parser if enabled + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser mistral`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/ernie-45-deployment.jsx b/docs_new/src/snippets/autoregressive/ernie-45-deployment.jsx new file mode 100644 index 000000000..9adf1adf4 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/ernie-45-deployment.jsx @@ -0,0 +1,345 @@ +export const Ernie45Deployment = () => { + const options = { + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '21b', label: '21B', subtitle: 'A3B', default: true }, + { id: '300b', label: '300B', subtitle: 'A47B', default: false } + ] + }, + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', subtitle: 'Tensor Parallel', default: true, required: true }, + { id: 'dp', label: 'DP', subtitle: 'Data Parallel', default: false, disabledWhen: (values) => values.modelsize === '21b' }, + { id: 'ep', label: 'EP', subtitle: 'Expert Parallel', default: false, disabledWhen: (values) => values.modelsize === '21b' } + ] + } + }; + + const generateCommand = (values) => { + const { modelsize, hardware, strategy } = values; + + const strategyArray = Array.isArray(strategy) ? strategy : []; + + let modelPath; + if (modelsize === '21b') { + modelPath = 'baidu/ERNIE-4.5-21B-A3B-PT'; + } else if (modelsize === '300b') { + modelPath = 'baidu/ERNIE-4.5-300B-A47B-PT'; + } else { + modelPath = 'baidu/ERNIE-4.5-21B-A3B-PT'; + } + + let cmd = 'python3 -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelPath}`; + + const tpValue = modelsize === '300b' ? 8 : 1; + const dpValue = modelsize === '300b' ? 8 : null; + const epValue = modelsize === '300b' ? 8 : null; + + if (strategyArray.includes('tp')) { + cmd += ` \\\n --tp ${tpValue}`; + } + + if (strategyArray.includes('dp') && modelsize === '300b') { + cmd += ` \\\n --dp ${dpValue} \\\n --enable-dp-attention`; + } + + if (strategyArray.includes('ep') && modelsize === '300b') { + cmd += ` \\\n --ep ${epValue}`; + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/gemma4-deployment.jsx b/docs_new/src/snippets/autoregressive/gemma4-deployment.jsx new file mode 100644 index 000000000..c78d4c6ad --- /dev/null +++ b/docs_new/src/snippets/autoregressive/gemma4-deployment.jsx @@ -0,0 +1,376 @@ +export const Gemma4Deployment = () => { + const options = { + modelSize: { + name: 'modelSize', + title: 'Model Variant', + items: [ + { id: 'e2b', label: 'E2B (~2B)', default: false }, + { id: 'e4b', label: 'E4B (~4B)', default: true }, + { id: '31b', label: '31B (Dense)', default: false }, + { id: '26b-a4b', label: '26B-A4B (MoE)', default: false }, + ] + }, + hardware: { + name: 'hardware', + title: 'Hardware Platform', + getDynamicItems: (values) => { + const size = values.modelSize; + const showMI300X = size === '31b' || size === '26b-a4b'; + return [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false, disabled: !showMI300X }, + ]; + } + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser gemma4' : null + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser gemma4' : null + }, + }; + + const modelConfigs = { + h200: { + e2b: { tp: 1, mem: 0.85 }, + e4b: { tp: 1, mem: 0.85 }, + '31b': { tp: 2, mem: 0.85 }, + '26b-a4b': { tp: 1, mem: 0.85 }, + }, + b200: { + e2b: { tp: 1, mem: 0.9 }, + e4b: { tp: 1, mem: 0.9 }, + '31b': { tp: 1, mem: 0.9 }, + '26b-a4b': { tp: 1, mem: 0.9 }, + }, + mi300x: { + '31b': { tp: 1, mem: 0.80 }, + '26b-a4b': { tp: 1, mem: 0.80 }, + }, + }; + + const generateCommand = (values) => { + const { hardware, modelSize } = values; + + const hwConfig = modelConfigs[hardware]?.[modelSize]; + if (!hwConfig) return `# Error: Unknown hardware/model combination`; + + const { tp, mem } = hwConfig; + + const modelNames = { + 'e2b': 'google/gemma-4-E2B-it', + 'e4b': 'google/gemma-4-E4B-it', + '31b': 'google/gemma-4-31B-it', + '26b-a4b': 'google/gemma-4-26B-A4B-it', + }; + + let cmd = `sglang serve --model-path ${modelNames[modelSize]}`; + if (tp > 1) { + cmd += ` \\\n --tp ${tp}`; + } + + Object.entries(options).forEach(([key, option]) => { + if (key === 'modelSize' || key === 'hardware') return; + if (option.commandRule) { + const rule = option.commandRule(values[key]); + if (rule) cmd += ` \\\n ${rule}`; + } + }); + + cmd += ` \\\n --mem-fraction-static ${mem}`; + cmd += ` \\\n --host 0.0.0.0 --port 30000`; + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-45-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-45-deployment.jsx new file mode 100644 index 000000000..90ee08ffe --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-45-deployment.jsx @@ -0,0 +1,197 @@ +export const GLM45Deployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', subtitle: 'Tensor Parallel', default: true, required: true }, + { id: 'dp', label: 'DP', subtitle: 'Data Parallel', default: false }, + { id: 'ep', label: 'EP', subtitle: 'Expert Parallel', default: false }, + { id: 'mtp', label: 'MTP', subtitle: 'Multi-token Prediction', default: false } + ] + }, + thinking: { + name: 'thinking', + title: 'Thinking Capabilities', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, quantization, strategy, thinking, toolcall } = values; + const strategyArray = Array.isArray(strategy) ? strategy : []; + + const modelSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `zai-org/GLM-4.5${modelSuffix}`; + + // Determine TP value based on hardware and quantization + let tpValue = 4; // Default for MI300X/MI325X + if (hardware === 'mi355x') { + tpValue = quantization === 'fp8' ? 2 : 4; // MI355X: TP=2 for FP8, TP=4 for BF16 + } + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + // TP is mandatory + cmd += ` \\\n --tp ${tpValue}`; + + // MI300X/MI325X BF16 requires extra flags + if ((hardware === 'mi300x' || hardware === 'mi325x') && quantization === 'bf16') { + cmd += ` \\\n --max-context-length 8192 \\\n --mem-fraction-static 0.9`; + } + + // Strategy-specific parameters + if (strategyArray.includes('dp')) { + cmd += ` \\\n --dp 8 \\\n --enable-dp-attention`; + } + if (strategyArray.includes('ep')) { + cmd += ` \\\n --ep 8`; + } + if (strategyArray.includes('mtp')) { + cmd = 'SGLANG_ENABLE_SPEC_V2=1 ' + cmd; + cmd += ` \\\n --speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4`; + } + + // Add tool call parser if enabled + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser glm45`; + } + + // Add thinking parser if enabled + if (thinking === 'enabled') { + cmd += ` \\\n --reasoning-parser glm45`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-45v-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-45v-deployment.jsx new file mode 100644 index 000000000..8fb67ad25 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-45v-deployment.jsx @@ -0,0 +1,175 @@ +export const GLM45VDeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h100', label: 'H100', default: false }, + { id: 'h200', label: 'H200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command + const generateCommand = () => { + const { hardware, quantization, reasoning, toolcall } = values; + + // Model configuration + const config = { + baseName: 'GLM-4.5V', + b200: { tp: 4 }, + h100: { tp: 4 }, + h200: { tp: 4 }, + mi300x: { tp: 4 }, + mi355x: { tp: 4 } + }; + + const hwConfig = config[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `zai-org/${config.baseName}${quantSuffix}`; + + // Check if AMD hardware + const isAMD = ['mi300x', 'mi325x', 'mi355x'].includes(hardware); + + let cmd = ''; + if (isAMD) { + cmd = 'SGLANG_USE_AITER=0 python3 -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelName}`; + cmd += ` \\\n --tp-size ${hwConfig.tp}`; + } else { + cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + } + } + + // Add reasoning parser + if (reasoning === 'enabled') { + cmd += ' \\\n --reasoning-parser glm45'; + } + + // Add tool call parser + if (toolcall === 'enabled') { + cmd += ' \\\n --tool-call-parser glm45'; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-46-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-46-deployment.jsx new file mode 100644 index 000000000..2c55fdbba --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-46-deployment.jsx @@ -0,0 +1,207 @@ +export const GLM46Deployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h100', label: 'H100', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', subtitle: 'Tensor Parallel', default: true, required: true }, + { id: 'dp', label: 'DP', subtitle: 'Data Parallel', default: false }, + { id: 'ep', label: 'EP', subtitle: 'Expert Parallel', default: false }, + { id: 'mtp', label: 'MTP', subtitle: 'Multi-token Prediction', default: false } + ] + }, + thinking: { + name: 'thinking', + title: 'Thinking Capabilities', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, quantization, strategy, thinking, toolcall } = values; + const strategyArray = Array.isArray(strategy) ? strategy : []; + + // Check for H100 + BF16 error + if (hardware === 'h100' && quantization === 'bf16') { + return '# Error: GLM-4.6 in BF16 precision requires more VRAM than 8*H100\n# Please use H200/B200 or select FP8 quantization'; + } + + const modelSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `zai-org/GLM-4.6${modelSuffix}`; + + // Determine TP value based on hardware and quantization + let tpValue = 8; // Default for NVIDIA GPUs + if (hardware === 'mi300x' || hardware === 'mi325x') { + tpValue = 4; // MI300X/MI325X: TP=4 for both BF16 and FP8 + } else if (hardware === 'mi355x') { + tpValue = quantization === 'fp8' ? 2 : 4; // MI355X: TP=2 for FP8, TP=4 for BF16 + } + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + // TP is mandatory + cmd += ` \\\n --tp ${tpValue}`; + + // MI300X/MI325X BF16 requires extra flags + if ((hardware === 'mi300x' || hardware === 'mi325x') && quantization === 'bf16') { + cmd += ` \\\n --max-context-length 8192 \\\n --mem-fraction-static 0.9`; + } + + // Strategy-specific parameters + if (strategyArray.includes('dp')) { + cmd += ` \\\n --dp 8 \\\n --enable-dp-attention`; + } + if (strategyArray.includes('ep')) { + cmd += ` \\\n --ep 8`; + } + if (strategyArray.includes('mtp')) { + cmd = 'SGLANG_ENABLE_SPEC_V2=1 ' + cmd; + cmd += ` \\\n --speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4`; + } + + // Add tool call parser if enabled + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser glm45`; + } + + // Add thinking parser if enabled + if (thinking === 'enabled') { + cmd += ` \\\n --reasoning-parser glm45`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-46v-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-46v-deployment.jsx new file mode 100644 index 000000000..237fc307e --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-46v-deployment.jsx @@ -0,0 +1,196 @@ +export const GLM46VDeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h100', label: 'H100', default: false }, + { id: 'h200', label: 'H200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '106b', label: '106B', subtitle: 'GLM-4.6V', default: true }, + { id: '9b', label: '9B', subtitle: 'GLM-4.6V-Flash', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command + const generateCommand = () => { + const { hardware, modelsize, quantization, reasoning, toolcall } = values; + + // Model configurations + const modelConfigs = { + '106b': { + baseName: 'GLM-4.6V', + h100: { tp: 8 }, + h200: { tp: 8 }, + b200: { tp: 8 }, + mi300x: { tp: 8 }, + mi355x: { tp: 8 } + }, + '9b': { + baseName: 'GLM-4.6V-Flash', + h100: { tp: 1 }, + h200: { tp: 1 }, + b200: { tp: 1 }, + mi300x: { tp: 1 }, + mi355x: { tp: 1 } + } + }; + + const config = modelConfigs[modelsize]; + if (!config) { + return `# Error: Unknown model size: ${modelsize}`; + } + + const hwConfig = config[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `zai-org/${config.baseName}${quantSuffix}`; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + if (hwConfig.tp === 8) { + cmd += ` \\\n --mm-enable-dp-encoder`; + } + } + + // Add reasoning parser if enabled + if (reasoning === 'enabled') { + cmd += ` \\\n --reasoning-parser glm45`; + } + + // Add tool call parser if enabled + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser glm45`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-47-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-47-deployment.jsx new file mode 100644 index 000000000..f90b33c40 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-47-deployment.jsx @@ -0,0 +1,197 @@ +export const GLM47Deployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', subtitle: 'Tensor Parallel', default: true, required: true }, + { id: 'dp', label: 'DP', subtitle: 'Data Parallel', default: false }, + { id: 'ep', label: 'EP', subtitle: 'Expert Parallel', default: false }, + { id: 'mtp', label: 'MTP', subtitle: 'Multi-token Prediction', default: false } + ] + }, + thinking: { + name: 'thinking', + title: 'Thinking Capabilities', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, quantization, strategy, thinking, toolcall } = values; + const strategyArray = Array.isArray(strategy) ? strategy : []; + + const modelSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `zai-org/GLM-4.7${modelSuffix}`; + + // Determine TP value based on hardware and quantization + let tpValue = 4; // Default for MI300X and MI325X + if (hardware === 'mi355x') { + tpValue = quantization === 'fp8' ? 2 : 4; // MI355X: TP=2 for FP8, TP=4 for BF16 + } + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + // TP is mandatory + cmd += ` \\\n --tp ${tpValue}`; + + // MI300X/MI325X BF16 requires extra flags + if ((hardware === 'mi300x' || hardware === 'mi325x') && quantization === 'bf16') { + cmd += ` \\\n --max-context-length 8192 \\\n --mem-fraction-static 0.9`; + } + + // Strategy-specific parameters + if (strategyArray.includes('dp')) { + cmd += ` \\\n --dp 8 \\\n --enable-dp-attention`; + } + if (strategyArray.includes('ep')) { + cmd += ` \\\n --ep 8`; + } + if (strategyArray.includes('mtp')) { + cmd = 'SGLANG_ENABLE_SPEC_V2=1 ' + cmd; + cmd += ` \\\n --speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4`; + } + + // Add tool call parser if enabled + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser glm47`; + } + + // Add thinking parser if enabled + if (thinking === 'enabled') { + cmd += ` \\\n --reasoning-parser glm47`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-47-flash-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-47-flash-deployment.jsx new file mode 100644 index 000000000..afdcdf46c --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-47-flash-deployment.jsx @@ -0,0 +1,191 @@ +export const GLM47FlashDeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h100', label: 'H100', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', subtitle: 'Tensor Parallel', default: true, required: true }, + { id: 'dp', label: 'DP', subtitle: 'Data Parallel', default: false }, + { id: 'mtp', label: 'MTP', subtitle: 'Multi-token Prediction', default: false } + ] + }, + thinking: { + name: 'thinking', + title: 'Thinking Capabilities', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, quantization, strategy, thinking, toolcall } = values; + const strategyArray = Array.isArray(strategy) ? strategy : []; + + const modelName = `zai-org/GLM-4.7-Flash`; + + // GLM-4.7-Flash is a 30B-A3B MoE model, lighter than GLM-4.7 + const tpValue = 1; // Default for single GPU + + let cmd = 'python -m sglang.launch_server \\\n '; + cmd += ` --model ${modelName}`; + + // TP is mandatory + cmd += ` \\\n --tp ${tpValue}`; + + if (hardware === 'b200') { + cmd += ` \\\n --attention-backend triton`; + } + + // Strategy-specific parameters + if (strategyArray.includes('dp')) { + cmd += ` \\\n --dp 1 \\\n --enable-dp-attention`; + } + if (strategyArray.includes('mtp')) { + cmd = 'SGLANG_ENABLE_SPEC_V2=1 ' + cmd; + + if (hardware === 'b200') { + cmd += ` \\\n --speculative-draft-attention-backend triton`; + } + cmd += ` \\\n --speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4`; + } + + // Add tool call parser if enabled + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser glm47`; + } + + // Add thinking parser if enabled + if (thinking === 'enabled') { + cmd += ` \\\n --reasoning-parser glm45`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-5-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-5-deployment.jsx new file mode 100644 index 000000000..1a7c8f274 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-5-deployment.jsx @@ -0,0 +1,266 @@ +export const GLM5Deployment = () => { + // Config mirrors sgl-cookbook src/components/autoregressive/GLM5ConfigGenerator/index.js. + // + // Supported quantization per hardware: + // H100 / H200 / MI300X / MI325X / MI355X → BF16 (AMD only) + FP8 (NV only) + // B200 → NVFP4 (default), FP8, BF16 + // + // BF16 always needs 2x GPUs compared to FP8. AMD only supports BF16. + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi300x', label: 'MI300X/MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + getDynamicItems: (values) => { + const hw = values.hardware; + const isAMD = hw === 'mi300x' || hw === 'mi355x'; + const isB200 = hw === 'b200'; + return [ + { id: 'bf16', label: 'BF16', subtitle: 'Full Weights', default: isAMD }, + { id: 'fp8', label: 'FP8', subtitle: 'High Throughput', default: !isAMD && !isB200, disabled: isAMD, disabledReason: 'FP8 not verified on AMD' }, + { id: 'nvfp4', label: 'NVFP4', subtitle: 'Highest Throughput', default: isB200, disabled: !isB200, disabledReason: 'NVFP4 only on B200' } + ]; + } + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + condition: (values) => values.quantization !== 'nvfp4', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + condition: (values) => values.quantization !== 'nvfp4', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + dpattention: { + name: 'dpattention', + title: 'DP Attention', + condition: (values) => values.quantization !== 'nvfp4', + items: [ + { id: 'disabled', label: 'Disabled', subtitle: 'Low Latency', default: true }, + { id: 'enabled', label: 'Enabled', subtitle: 'High Throughput', default: false } + ] + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding', + condition: (values) => values.hardware !== 'mi300x' && values.hardware !== 'mi355x' && values.quantization !== 'nvfp4', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + } + }; + + // BF16 always 2× the GPUs of FP8. + const modelConfigs = { + h100: { fp8: { tp: 16, mem: 0.85 }, bf16: { tp: 32, mem: 0.85 } }, + h200: { fp8: { tp: 8, mem: 0.85 }, bf16: { tp: 16, mem: 0.85 } }, + b200: { nvfp4: { tp: 4, mem: 0.9 }, fp8: { tp: 8, mem: 0.9 }, bf16: { tp: 16, mem: 0.9 } }, + mi300x: { bf16: { tp: 8, mem: 0.80 } }, + mi355x: { bf16: { tp: 8, mem: 0.80 } } + }; + + const resolveItems = (option, values) => { + if (typeof option.getDynamicItems === 'function') return option.getDynamicItems(values); + return option.items; + }; + + const getInitialState = () => { + const initialState = {}; + for (const [key, option] of Object.entries(options)) { + const items = resolveItems(option, initialState); + const def = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled) || items[0]; + initialState[key] = def.id; + } + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + // When hardware changes, re-resolve quantization (and downstream) defaults to + // stay consistent (AMD→BF16, B200→NVFP4, etc.). + useEffect(() => { + setValues(prev => { + const next = { ...prev }; + for (const [key, option] of Object.entries(options)) { + if (typeof option.getDynamicItems !== 'function') continue; + const items = option.getDynamicItems(next); + const current = items.find(i => i.id === next[key]); + if (!current || current.disabled) { + const fallback = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled); + if (fallback) next[key] = fallback.id; + } + } + return next; + }); + }, [values.hardware]); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const generateCommand = () => { + const { hardware, quantization } = values; + const isAMD = hardware === 'mi300x' || hardware === 'mi355x'; + const isNVFP4 = quantization === 'nvfp4'; + const effectiveQuant = isAMD ? 'bf16' : quantization; + + let modelName; + if (isNVFP4) { + modelName = 'nvidia/GLM-5-NVFP4'; + } else { + const suffix = effectiveQuant === 'fp8' ? '-FP8' : ''; + modelName = `zai-org/GLM-5${suffix}`; + } + + const hwConfig = modelConfigs[hardware][effectiveQuant]; + const tpValue = hwConfig.tp; + const memFraction = hwConfig.mem; + + let cmd = 'sglang serve \\\n'; + cmd += ` --model ${modelName}`; + cmd += ` \\\n --tp ${tpValue}`; + + // NVFP4 B200: trtllm NSA backends, flashinfer fusion, FP8 KV cache. + if (isNVFP4) { + cmd += ' \\\n --trust-remote-code'; + cmd += ' \\\n --quantization modelopt_fp4'; + cmd += ' \\\n --kv-cache-dtype fp8_e4m3'; + cmd += ' \\\n --nsa-decode-backend trtllm'; + cmd += ' \\\n --nsa-prefill-backend trtllm'; + cmd += ' \\\n --moe-runner-backend flashinfer_trtllm'; + cmd += ' \\\n --enable-flashinfer-allreduce-fusion'; + cmd += ' \\\n --enable-dp-lm-head'; + cmd += ' \\\n --disable-radix-cache'; + cmd += ' \\\n --max-prefill-tokens 32768'; + cmd += ' \\\n --chunked-prefill-size 32768'; + cmd += ` \\\n --mem-fraction-static ${memFraction}`; + cmd += ' \\\n --scheduler-recv-interval 10'; + cmd += ' \\\n --tokenizer-worker-num 6'; + return cmd; + } + + // AMD-specific: NSA tilelang backend. + if (isAMD) { + cmd += ' \\\n --trust-remote-code'; + cmd += ' \\\n --nsa-prefill-backend tilelang'; + cmd += ' \\\n --nsa-decode-backend tilelang'; + cmd += ' \\\n --chunked-prefill-size 131072'; + cmd += ' \\\n --watchdog-timeout 1200'; + } + + if (values.dpattention === 'enabled') { + cmd += ` \\\n --dp ${tpValue} \\\n --enable-dp-attention`; + } + if (values.reasoning === 'enabled') cmd += ' \\\n --reasoning-parser glm45'; + if (values.toolcall === 'enabled') cmd += ' \\\n --tool-call-parser glm47'; + if (values.speculative === 'enabled') { + cmd += ' \\\n --speculative-algorithm EAGLE'; + cmd += ' \\\n --speculative-num-steps 3'; + cmd += ' \\\n --speculative-eagle-topk 1'; + cmd += ' \\\n --speculative-num-draft-tokens 4'; + } + + // B200 FP8: consolidated optimized flags. + if (hardware === 'b200' && effectiveQuant === 'fp8') { + cmd += ' \\\n --ep 1'; + cmd += ' \\\n --quantization fp8'; + cmd += ' \\\n --attention-backend nsa'; + cmd += ' \\\n --nsa-decode-backend trtllm'; + cmd += ' \\\n --nsa-prefill-backend trtllm'; + cmd += ' \\\n --moe-runner-backend flashinfer_trtllm'; + cmd += ' \\\n --enable-flashinfer-allreduce-fusion'; + } + + cmd += ` \\\n --mem-fraction-static ${memFraction}`; + return cmd; + }; + + // Styles + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.4 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (typeof option.condition === 'function' && !option.condition(values)) return null; + const items = resolveItems(option, values); + return ( +
      +
      {option.title}
      +
      + {items.map(item => { + const isChecked = values[option.name] === item.id; + const isDisabled = !!item.disabled; + return ( + + ); + })} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-51-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-51-deployment.jsx new file mode 100644 index 000000000..7b9489bd7 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-51-deployment.jsx @@ -0,0 +1,228 @@ +export const GLM51Deployment = () => { + // Config mirrors sgl-cookbook src/components/autoregressive/GLM51ConfigGenerator/index.js. + // + // Supported quantization per hardware: + // H100 / H200 / B200 → BF16 + FP8 + // GB300 → FP8 only + // MI300X/MI325X/MI355X → BF16 (FP8 not verified on AMD) + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'gb300', label: 'GB300', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi300x', label: 'MI300X/MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + getDynamicItems: (values) => { + const hw = values.hardware; + const isAMD = hw === 'mi300x' || hw === 'mi355x'; + const isGB300 = hw === 'gb300'; + return [ + { id: 'bf16', label: 'BF16', subtitle: 'Full Weights', default: isAMD, disabled: isGB300, disabledReason: isGB300 ? 'BF16 is not recommended on GB300 for GLM-5.1' : '' }, + { id: 'fp8', label: 'FP8', subtitle: 'High Throughput', default: !isAMD, disabled: isAMD, disabledReason: isAMD ? 'FP8 not verified on AMD' : '' } + ]; + } + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + dpattention: { + name: 'dpattention', + title: 'DP Attention', + items: [ + { id: 'disabled', label: 'Disabled', subtitle: 'Low Latency', default: true }, + { id: 'enabled', label: 'Enabled', subtitle: 'High Throughput', default: false } + ] + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding', + condition: (values) => values.hardware !== 'mi300x' && values.hardware !== 'mi355x', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + } + }; + + const modelConfigs = { + h100: { fp8: { tp: 16, mem: 0.85 }, bf16: { tp: 32, mem: 0.85 } }, + h200: { fp8: { tp: 8, mem: 0.85 }, bf16: { tp: 16, mem: 0.85 } }, + b200: { fp8: { tp: 8, mem: 0.9 }, bf16: { tp: 16, mem: 0.9 } }, + gb300: { fp8: { tp: 4, mem: 0.9 } }, + mi300x: { bf16: { tp: 8, mem: 0.80 } }, + mi355x: { bf16: { tp: 8, mem: 0.80 } } + }; + + const resolveItems = (option, values) => { + if (typeof option.getDynamicItems === 'function') return option.getDynamicItems(values); + return option.items; + }; + + const getInitialState = () => { + const initialState = {}; + for (const [key, option] of Object.entries(options)) { + const items = resolveItems(option, initialState); + const def = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled) || items[0]; + initialState[key] = def.id; + } + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + useEffect(() => { + setValues(prev => { + const next = { ...prev }; + for (const [key, option] of Object.entries(options)) { + if (typeof option.getDynamicItems !== 'function') continue; + const items = option.getDynamicItems(next); + const current = items.find(i => i.id === next[key]); + if (!current || current.disabled) { + const fallback = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled); + if (fallback) next[key] = fallback.id; + } + } + return next; + }); + }, [values.hardware]); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const generateCommand = () => { + const { hardware, quantization } = values; + const isAMD = hardware === 'mi300x' || hardware === 'mi355x'; + const isGB300 = hardware === 'gb300'; + const effectiveQuant = isAMD ? 'bf16' : (isGB300 && quantization === 'bf16' ? 'fp8' : quantization); + const suffix = effectiveQuant === 'fp8' ? '-FP8' : ''; + const modelName = `zai-org/GLM-5.1${suffix}`; + + const hwConfig = modelConfigs[hardware][effectiveQuant]; + if (!hwConfig) return '# Configuration not available for the selected hardware and quantization.'; + + const tpValue = hwConfig.tp; + const memFraction = hwConfig.mem; + const enableSpec = values.speculative === 'enabled'; + + let cmd = ''; + if (enableSpec) cmd += 'SGLANG_ENABLE_SPEC_V2=1 '; + cmd += 'sglang serve \\\n'; + cmd += ` --model-path ${modelName}`; + cmd += ` \\\n --tp ${tpValue}`; + + if (isAMD) { + cmd += ' \\\n --trust-remote-code'; + cmd += ' \\\n --nsa-prefill-backend tilelang'; + cmd += ' \\\n --nsa-decode-backend tilelang'; + cmd += ' \\\n --chunked-prefill-size 131072'; + cmd += ' \\\n --watchdog-timeout 1200'; + } + + if (values.dpattention === 'enabled') { + cmd += ` \\\n --dp ${tpValue} \\\n --enable-dp-attention`; + } + if (values.reasoning === 'enabled') cmd += ' \\\n --reasoning-parser glm45'; + if (values.toolcall === 'enabled') cmd += ' \\\n --tool-call-parser glm47'; + if (enableSpec) { + cmd += ' \\\n --speculative-algorithm EAGLE'; + cmd += ' \\\n --speculative-num-steps 3'; + cmd += ' \\\n --speculative-eagle-topk 1'; + cmd += ' \\\n --speculative-num-draft-tokens 4'; + } + + cmd += ` \\\n --mem-fraction-static ${memFraction}`; + return cmd; + }; + + // Styles + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.4 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (typeof option.condition === 'function' && !option.condition(values)) return null; + const items = resolveItems(option, values); + return ( +
      +
      {option.title}
      +
      + {items.map(item => { + const isChecked = values[option.name] === item.id; + const isDisabled = !!item.disabled; + return ( + + ); + })} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-glyph-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-glyph-deployment.jsx new file mode 100644 index 000000000..62162a944 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-glyph-deployment.jsx @@ -0,0 +1,372 @@ +export const GLMGlyphDeployment = () => { + const modelFamily = 'zai-org'; + + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h100', label: 'H100', default: false }, + { id: 'h200', label: 'H200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser glm45' : null + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser glm45' : null + } + }; + + const modelConfig = { + baseName: 'Glyph', + b200: { tp: 4, bf16: true, fp8: true }, + h100: { tp: 4, bf16: true, fp8: true }, + h200: { tp: 4, bf16: true, fp8: true }, + mi300x: { tp: 4, bf16: true, fp8: true }, + mi325x: { tp: 4, bf16: true, fp8: true }, + mi355x: { tp: 2, bf16: true, fp8: true } + }; + + const generateCommand = (values) => { + const { hardware, quantization } = values; + + const hwConfig = modelConfig[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `${modelFamily}/${modelConfig.baseName}${quantSuffix}`; + + const isAMD = ['mi300x', 'mi325x', 'mi355x'].includes(hardware); + + let cmd = ''; + if (isAMD) { + cmd = 'python3 -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelName}`; + cmd += ` \\\n --tp ${hwConfig.tp}`; + } else { + cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + } + } + + for (const [key, option] of Object.entries(options)) { + if (key === 'hardware' || key === 'quantization') continue; + + if (option.commandRule) { + const rule = option.commandRule(values[key]); + if (rule) { + cmd += ` \\\n ${rule}`; + } + } + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/glm-ocr-deployment.jsx b/docs_new/src/snippets/autoregressive/glm-ocr-deployment.jsx new file mode 100644 index 000000000..773a922a0 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/glm-ocr-deployment.jsx @@ -0,0 +1,140 @@ +export const GLMOCRDeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h100', label: 'H100', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: false } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'mtp', label: 'MTP', subtitle: 'Multi-token Prediction', default: true } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode - prioritize page theme over system preference + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { strategy } = values; + const strategyArray = Array.isArray(strategy) ? strategy : []; + + const modelName = 'zai-org/GLM-OCR'; + + let cmd = 'SGLANG_USE_CUDA_IPC_TRANSPORT=1 python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + if (strategyArray.includes('mtp')) { + cmd += ` \\\n --speculative-algorithm EAGLE`; + cmd += ` \\\n --speculative-num-steps 3`; + cmd += ` \\\n --speculative-eagle-topk 1`; + cmd += ` \\\n --speculative-num-draft-tokens 4`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/gpt-oss-deployment.jsx b/docs_new/src/snippets/autoregressive/gpt-oss-deployment.jsx new file mode 100644 index 000000000..6740554b9 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/gpt-oss-deployment.jsx @@ -0,0 +1,237 @@ +export const GPTOSSDeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '120b', label: '120B', subtitle: 'MOE', default: true }, + { id: '20b', label: '20B', subtitle: 'MOE', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'mxfp4', label: 'MXFP4', default: true }, + { id: 'bf16', label: 'BF16', default: false } + ] + }, + reasoningParser: { + name: 'reasoningParser', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command + const generateCommand = () => { + const { hardware, modelsize, quantization, reasoningParser, toolcall, speculative } = values; + + // Model configurations + const modelConfigs = { + '120b': { + baseName: '120b', + h100: { tp: 8 }, + h200: { tp: 8 }, + b200: { tp: 8 }, + mi300x: { tp: 8 }, + mi325x: { tp: 8 }, + mi355x: { tp: 8 } + }, + '20b': { + baseName: '20b', + h100: { tp: 1 }, + h200: { tp: 1 }, + b200: { tp: 1 }, + mi300x: { tp: 1 }, + mi325x: { tp: 1 }, + mi355x: { tp: 1 } + } + }; + + const config = modelConfigs[modelsize]; + if (!config) { + return `# Error: Unknown model size: ${modelsize}`; + } + + const hwConfig = config[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const quantSuffix = quantization === 'bf16' ? '-bf16' : ''; + const orgPrefix = quantization === 'bf16' ? 'lmsys' : 'openai'; + const modelName = `${orgPrefix}/gpt-oss-${config.baseName}${quantSuffix}`; + + let cmd = ''; + + // MI30x GPUs with speculative decoding: Work In Progress + if ((hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') && speculative === 'enabled') { + return '# MI30x GPUs Speculative Decoding: Work In Progress'; + } + + // MI300X/MI325X MXFP4: Work In Progress (only MI355X with gfx950 supports MXFP4) + if ((hardware === 'mi300x' || hardware === 'mi325x') && quantization === 'mxfp4') { + return '# MI300X/MI325X GPUs with MXFP4 quantization: Work In Progress'; + } + + // AMD MI30x requires SGLANG_USE_AITER=0 due to YaRN RoPE precision issues + if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd += 'SGLANG_USE_AITER=0 '; + } + + if (speculative === 'enabled') { + cmd += 'SGLANG_ENABLE_SPEC_V2=1 SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 '; + } + + cmd += 'python -m sglang.launch_server \\\n'; + + cmd += ` --model ${modelName}`; + + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + } + + // Add reasoning parser if enabled + if (reasoningParser === 'enabled') { + cmd += ` \\\n --reasoning-parser gpt-oss`; + } + + // Add tool call parser if enabled + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser gpt-oss`; + } + + // Add speculative decoding if enabled (MI30x handled above) + if (speculative === 'enabled') { + cmd += ` \\\n --speculative-algorithm EAGLE3 \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4`; + + if (modelsize === '120b') { + cmd += ` \\\n --speculative-draft-model-path nvidia/gpt-oss-120b-Eagle3`; + } else if (modelsize === '20b') { + cmd += ` \\\n --speculative-draft-model-path zhuyksir/EAGLE3-gpt-oss-20b-bf16`; + } + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/kimi-k2-deployment.jsx b/docs_new/src/snippets/autoregressive/kimi-k2-deployment.jsx new file mode 100644 index 000000000..425ae3a97 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/kimi-k2-deployment.jsx @@ -0,0 +1,373 @@ +export const KimiK2Deployment = () => { + const modelFamily = 'moonshotai'; + + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelname: { + name: 'modelname', + title: 'Model Name', + items: [ + { id: 'instruct', label: 'Kimi-K2-Instruct', default: true }, + { id: 'thinking', label: 'Kimi-K2-Thinking', default: false } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', default: true, required: true }, + { id: 'dp', label: 'DP attention', default: false }, + { id: 'ep', label: 'EP', default: false } + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + const generateCommand = (values) => { + const { hardware, modelname, strategy, reasoning, toolcall } = values; + + if (modelname === 'instruct' && reasoning === 'enabled') { + return `# Error: Kimi-K2-Instruct doesn't support reasoning parser\n# Please select "Disabled" for Reasoning Parser or choose Kimi-K2-Thinking model`; + } + + const modelMap = { + 'instruct': 'Kimi-K2-Instruct', + 'thinking': 'Kimi-K2-Thinking' + }; + + const modelName = `${modelFamily}/${modelMap[modelname]}`; + + let cmd = 'python3 -m sglang.launch_server \\\n'; + + if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd = 'SGLANG_ROCM_FUSED_DECODE_MLA=0 ' + cmd; + } + + cmd += ` --model-path ${modelName}`; + + const strategyArray = Array.isArray(strategy) ? strategy : []; + cmd += ` \\\n --tp 8`; + if (strategyArray.includes('dp')) { + cmd += ` \\\n --dp 4 \\\n --enable-dp-attention`; + } + if (strategyArray.includes('ep')) { + cmd += ` \\\n --ep 4`; + } + + cmd += ` \\\n --trust-remote-code`; + + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser kimi_k2`; + } + + if (reasoning === 'enabled') { + cmd += ` \\\n --reasoning-parser kimi_k2`; + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/kimi-k25-deployment.jsx b/docs_new/src/snippets/autoregressive/kimi-k25-deployment.jsx new file mode 100644 index 000000000..7376cb955 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/kimi-k25-deployment.jsx @@ -0,0 +1,264 @@ +export const KimiK25Deployment = () => { + // Config mirrors sgl-cookbook src/components/autoregressive/KimiK25ConfigGenerator/index.js. + // + // GPU requirements: + // H200: tp=8 + // B300: tp=8 + // MI300X: tp=4 (64 heads / 4 = 16 heads per GPU, AITER MLA requires heads_per_gpu % 16 == 0) + // MI325X: tp=4 (same constraint as MI300X) + // MI350X: tp=4 (same constraint as MI300X) + // MI355X: tp=4 (same constraint as MI300X) + // + // NVFP4 quantization is only supported on NVIDIA Blackwell (B300). + // Speculative decoding is only supported on H200 and B300. + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b300', label: 'B300', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi350x', label: 'MI350X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + getDynamicItems: (values) => { + const hw = values.hardware; + const isB300 = hw === 'b300'; + return [ + { id: 'int4', label: 'INT4', subtitle: 'initial model', default: true }, + { id: 'nvfp4', label: 'NVFP4', subtitle: 'Blackwell only', default: false, disabled: !isB300, disabledReason: 'NVFP4 only on B300' } + ]; + } + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + dpattention: { + name: 'dpattention', + title: 'DP Attention', + items: [ + { id: 'disabled', label: 'Disabled', subtitle: 'Low Latency', default: true }, + { id: 'enabled', label: 'Enabled', subtitle: 'High Throughput', default: false } + ] + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding', + condition: (values) => values.hardware === 'h200' || values.hardware === 'b300', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + const modelConfigs = { + h200: { tp: 8 }, + b300: { tp: 8 }, + mi300x: { tp: 4 }, + mi325x: { tp: 4 }, + mi350x: { tp: 4 }, + mi355x: { tp: 4 } + }; + + const resolveItems = (option, values) => { + if (typeof option.getDynamicItems === 'function') return option.getDynamicItems(values); + return option.items; + }; + + const getInitialState = () => { + const initialState = {}; + for (const [key, option] of Object.entries(options)) { + const items = resolveItems(option, initialState); + const def = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled) || items[0]; + initialState[key] = def.id; + } + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + // When hardware changes, re-resolve quantization defaults (NVFP4 only on B300). + useEffect(() => { + setValues(prev => { + const next = { ...prev }; + for (const [key, option] of Object.entries(options)) { + if (typeof option.getDynamicItems !== 'function') continue; + const items = option.getDynamicItems(next); + const current = items.find(i => i.id === next[key]); + if (!current || current.disabled) { + const fallback = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled); + if (fallback) next[key] = fallback.id; + } + } + return next; + }); + }, [values.hardware]); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command - mirrors sgl-cookbook's config.generateCommand(values) exactly. + const generateCommand = () => { + const { hardware, quantization, speculative } = values; + const isAMD = hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi350x' || hardware === 'mi355x'; + + // NVFP4 is only supported on NVIDIA Blackwell (B300) + if (quantization === 'nvfp4' && hardware !== 'b300') { + return '# NVFP4 quantization is only supported on NVIDIA Blackwell GPUs (B300)'; + } + + // Speculative decoding only supported on H200 and B300 + if (speculative === 'enabled' && hardware !== 'h200' && hardware !== 'b300') { + return '# Speculative Decoding for Kimi-K2.5 is only supported on H200 and B300'; + } + + // Model path depends on quantization + const modelName = quantization === 'nvfp4' + ? 'nvidia/Kimi-K2.5-NVFP4' + : 'moonshotai/Kimi-K2.5'; + + const hwConfig = modelConfigs[hardware]; + const tpValue = hwConfig.tp; + + let cmd = ''; + + // AMD ROCm environment variables + if (isAMD) { + cmd += 'SGLANG_USE_AITER=1 SGLANG_ROCM_FUSED_DECODE_MLA=0 '; + } + + // Speculative decoding env var + if (speculative === 'enabled') { + cmd += 'SGLANG_ENABLE_SPEC_V2=1 '; + } + + // If we added any env vars above, break to a new line for readability + if (isAMD || speculative === 'enabled') { + cmd += '\\\n'; + } + + cmd += 'sglang serve \\\n'; + cmd += ` --model-path ${modelName}`; + cmd += ` \\\n --tp ${tpValue}`; + cmd += ' \\\n --trust-remote-code'; + + // DP Attention: --dp matches --tp + if (values.dpattention === 'enabled') { + cmd += ` \\\n --dp ${tpValue} \\\n --enable-dp-attention`; + } + + // Reasoning parser + if (values.reasoning === 'enabled') { + cmd += ' \\\n --reasoning-parser kimi_k2'; + } + + // Tool call parser + if (values.toolcall === 'enabled') { + cmd += ' \\\n --tool-call-parser kimi_k2'; + } + + // Speculative decoding (EAGLE3) + if (speculative === 'enabled') { + cmd += ' \\\n --speculative-algorithm EAGLE3 \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4 \\\n --speculative-draft-model-path lightseekorg/kimi-k2.5-eagle3'; + } + + // AMD: FP8 KV cache for memory efficiency + if (isAMD) { + cmd += ' \\\n --kv-cache-dtype fp8_e4m3'; + } + + cmd += ' \\\n --host 0.0.0.0 \\\n --port 30000'; + + return cmd; + }; + + // Styles + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.4 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (typeof option.condition === 'function' && !option.condition(values)) return null; + const items = resolveItems(option, values); + return ( +
      +
      {option.title}
      +
      + {items.map(item => { + const isChecked = values[option.name] === item.id; + const isDisabled = !!item.disabled; + return ( + + ); + })} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/kimi-k26-deployment.jsx b/docs_new/src/snippets/autoregressive/kimi-k26-deployment.jsx new file mode 100644 index 000000000..be2ccb6b4 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/kimi-k26-deployment.jsx @@ -0,0 +1,181 @@ +export const KimiK26Deployment = () => { + // Config mirrors sgl-cookbook src/components/autoregressive/KimiK26ConfigGenerator/index.js. + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b300', label: 'B300', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi350x', label: 'MI350X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false }, + ], + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true }, + ], + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true }, + ], + }, + dpattention: { + name: 'dpattention', + title: 'DP Attention', + items: [ + { id: 'disabled', label: 'Disabled', subtitle: 'Low Latency', default: true }, + { id: 'enabled', label: 'Enabled', subtitle: 'High Throughput', default: false }, + ], + }, + }; + + const modelConfigs = { + h200: { tp: 8 }, + b300: { tp: 8 }, + mi300x: { tp: 4 }, + mi325x: { tp: 4 }, + mi350x: { tp: 4 }, + mi355x: { tp: 4 }, + }; + + const resolveItems = (option, values) => + typeof option.getDynamicItems === 'function' ? option.getDynamicItems(values) : option.items || []; + + const getInitialState = () => { + const initialState = {}; + for (const [key, option] of Object.entries(options)) { + const items = resolveItems(option, initialState); + const def = items.find((item) => item.default && !item.disabled) || items.find((item) => !item.disabled) || items[0]; + initialState[key] = def.id; + } + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const generateCommand = () => { + const { hardware, reasoning, toolcall, dpattention } = values; + const isAMD = hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi350x' || hardware === 'mi355x'; + const hwConfig = modelConfigs[hardware]; + const tpValue = hwConfig.tp; + + let cmd = ''; + + if (isAMD) { + cmd += 'SGLANG_USE_AITER=1 SGLANG_ROCM_FUSED_DECODE_MLA=0 \\\n'; + } + + cmd += 'sglang serve \\\n'; + cmd += ' --model-path moonshotai/Kimi-K2.6'; + cmd += ` \\\n --tp ${tpValue}`; + if (isAMD) { + cmd += ' \\\n --mem-fraction-static 0.8'; + } + cmd += ' \\\n --trust-remote-code'; + + if (dpattention === 'enabled') { + cmd += ` \\\n --dp ${tpValue} \\\n --enable-dp-attention`; + } + + if (reasoning === 'enabled') { + cmd += ' \\\n --reasoning-parser kimi_k2'; + } + + if (toolcall === 'enabled') { + cmd += ' \\\n --tool-call-parser kimi_k2'; + } + + if (isAMD) { + cmd += ' \\\n --kv-cache-dtype fp8_e4m3'; + } + + cmd += ' \\\n --host 0.0.0.0 \\\n --port 30000'; + return cmd; + }; + + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.4 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + const items = resolveItems(option, values); + return ( +
      +
      {option.title}
      +
      + {items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = !!item.disabled; + return ( + + ); + })} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/kimi-linear-deployment.jsx b/docs_new/src/snippets/autoregressive/kimi-linear-deployment.jsx new file mode 100644 index 000000000..74e4d11ef --- /dev/null +++ b/docs_new/src/snippets/autoregressive/kimi-linear-deployment.jsx @@ -0,0 +1,358 @@ +export const KimiLinearDeployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300x', default: false }, + { id: 'mi325x', label: 'MI325x', default: false }, + { id: 'mi355x', label: 'MI355x', default: false } + ] + }, + modelname: { + name: 'modelname', + title: 'Model Name', + items: [ + { id: 'instruct', label: 'Kimi-Linear-48B-A3B-Instruct', default: true }, + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', default: true, required: true }, + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + const generateCommand = (values) => { + const { hardware, modelname, strategy, reasoning, toolcall } = values; + + if (modelname === 'instruct' && reasoning === 'enabled') { + return `# Error: Kimi-Linear doesn't support reasoning parser\n# Please select "Disabled" for Reasoning Parser or choose Kimi-Linear-Thinking model`; + } + + const modelMap = { + 'instruct': 'moonshotai/Kimi-Linear-48B-A3B-Instruct', + }; + + const modelName = modelMap[modelname]; + + let cmd = 'python3 -m sglang.launch_server \\\n'; + + if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd = 'SGLANG_ROCM_FUSED_DECODE_MLA=0 ' + cmd; + } + + cmd += ` --model-path ${modelName}`; + + cmd += ` \\\n --tp 4`; + + cmd += ` \\\n --trust-remote-code`; + + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser kimi_k2`; + } + + if (reasoning === 'enabled') { + cmd += ` \\\n --reasoning-parser kimi_k2`; + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/ling-25-1t-deployment.jsx b/docs_new/src/snippets/autoregressive/ling-25-1t-deployment.jsx new file mode 100644 index 000000000..f69c81e67 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/ling-25-1t-deployment.jsx @@ -0,0 +1,189 @@ +export const Ling251TDeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'gb200', label: 'GB200', default: false }, + { id: 'gb300', label: 'GB300', default: false } + ] + }, + parallelism: { + name: 'parallelism', + title: 'Parallelism Strategy', + items: [ + { id: 'tp4pp2', label: 'TP4 + PP2', default: true }, + { id: 'tp8', label: 'TP8', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, parallelism, toolcall } = values; + + const isGB = hardware === 'gb200' || hardware === 'gb300'; + const envPrefix = isGB ? 'NCCL_IB_DISABLE=1 ' : ''; + + let tp, pp; + if (isGB && parallelism === 'tp8') { + tp = 8; + pp = null; + } else if (isGB) { + tp = 4; + pp = 2; + } else { + tp = 8; + pp = 2; + } + + const needMemFrac = hardware === 'h200' || (isGB && parallelism !== 'tp8'); + + const generateNodeCmd = (rank) => { + let cmd = `${envPrefix}python3 -m sglang.launch_server \\\n`; + cmd += ` --model-path inclusionAI/Ling-2.5-1T \\\n`; + cmd += ` --trust-remote-code \\\n`; + cmd += ` --tp-size ${tp} \\\n`; + if (pp) { + cmd += ` --pp-size ${pp} \\\n`; + } + cmd += ` --nnodes 2 \\\n`; + cmd += ` --node-rank ${rank} \\\n`; + if (rank === 0) { + cmd += ` --host 0.0.0.0 \\\n`; + cmd += ` --port \${PORT} \\\n`; + } + cmd += ` --dist-init-addr \${MASTER_IP}:\${DIST_PORT}`; + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser qwen`; + } + if (needMemFrac) { + cmd += ` \\\n --mem-frac 0.95`; + } + return cmd; + }; + + let output = `# MASTER_IP is Node 0 IP. PORT and DIST_PORT can be assigned by yourself.\n\n`; + output += `# Node 0:\n`; + output += generateNodeCmd(0); + output += `\n\n\n# Node 1:\n`; + output += generateNodeCmd(1); + + return output; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + const isGB = values.hardware === 'gb200' || values.hardware === 'gb300'; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + // Only show parallelism for GB200/GB300 + if (key === 'parallelism' && !isGB) return null; + return ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isItemDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/llada-21-deployment.jsx b/docs_new/src/snippets/autoregressive/llada-21-deployment.jsx new file mode 100644 index 000000000..025bf8247 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/llada-21-deployment.jsx @@ -0,0 +1,338 @@ +export const LLaDA21Deployment = () => { + const modelFamily = 'inclusionAI'; + + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h100', label: 'H100', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: 'mini', label: 'Mini (16B)', subtitle: 'MoE', default: true }, + { id: 'flash', label: 'Flash (100B)', subtitle: 'MoE', default: false } + ] + } + }; + + const generateCommand = (values) => { + const { hardware, modelsize } = values; + + const modelName = modelsize === 'mini' ? 'LLaDA2.1-mini' : 'LLaDA2.1-flash'; + const modelPath = `${modelFamily}/${modelName}`; + + let tpSize; + if (modelsize === 'mini') { + tpSize = 1; + } else { + if (hardware === 'b200') { + tpSize = 2; + } else { + tpSize = 4; + } + } + + const args = []; + args.push(`--model-path ${modelPath}`); + args.push(`--dllm-algorithm JointThreshold`); + args.push(`--tp ${tpSize}`); + args.push(`--trust-remote-code`); + args.push(`--mem-fraction-static 0.8`); + args.push(`--max-running-requests 1`); + if (hardware === 'h100' || hardware === 'h200' || hardware === 'b200') { + args.push(`--attention-backend flashinfer`); + } + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` ${args.join(' \\\n ')}`; + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/llama31-deployment.jsx b/docs_new/src/snippets/autoregressive/llama31-deployment.jsx new file mode 100644 index 000000000..d319b9cc9 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/llama31-deployment.jsx @@ -0,0 +1,252 @@ +export const Llama31Deployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h100', label: 'H100', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '8b', label: '8B', default: false }, + { id: '70b', label: '70B', default: true }, + { id: '405b', label: '405B', default: false } + ] + }, + category: { + name: 'category', + title: 'Category', + items: [ + { id: 'base', label: 'Base', default: false }, + { id: 'instruct', label: 'Instruct', default: true } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + optimization: { + name: 'optimization', + title: 'Optimization Mode', + items: [ + { id: 'basic', label: 'Basic', default: true }, + { id: 'throughput', label: 'Throughput Optimized', default: false }, + { id: 'latency', label: 'Latency Optimized', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command + const generateCommand = () => { + const { hardware, optimization, modelsize, category, toolcall, quantization } = values; + + const isAMD = hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x'; + + // Model size mapping + const sizeMap = { + '8b': '8B', + '70b': '70B', + '405b': '405B' + }; + const sizeToken = sizeMap[modelsize] || '70B'; + const categorySuffix = category === 'instruct' ? '-Instruct' : ''; + + // Determine model path + let modelPath; + if (quantization === 'fp8' && category === 'instruct') { + if (modelsize === '405b') { + // Meta official FP8 for 405B + modelPath = `meta-llama/Llama-3.1-${sizeToken}${categorySuffix}-FP8`; + } else if (isAMD) { + // AMD FP8-KV variants for 70B/8B on AMD GPUs + modelPath = `amd/Llama-3.1-${sizeToken}${categorySuffix}-FP8-KV`; + } else { + modelPath = `meta-llama/Llama-3.1-${sizeToken}${categorySuffix}`; + } + } else { + modelPath = `meta-llama/Llama-3.1-${sizeToken}${categorySuffix}`; + } + + // Determine TP size + let tpSize; + if (isAMD) { + // AMD GPU TP configuration + const amdTpConfig = { + 'mi300x': { + '405b': { bf16: 8, fp8: 4 }, + '70b': { bf16: 1, fp8: 1 }, + '8b': { bf16: 1, fp8: 1 } + }, + 'mi325x': { + '405b': { bf16: 8, fp8: 4 }, + '70b': { bf16: 1, fp8: 1 }, + '8b': { bf16: 1, fp8: 1 } + }, + 'mi355x': { + '405b': { bf16: 4, fp8: 2 }, + '70b': { bf16: 1, fp8: 1 }, + '8b': { bf16: 1, fp8: 1 } + } + }; + tpSize = quantization === 'fp8' + ? amdTpConfig[hardware][modelsize].fp8 + : amdTpConfig[hardware][modelsize].bf16; + } else { + // NVIDIA GPU TP configuration + if (modelsize === '405b') { + tpSize = 8; + } else if (modelsize === '70b' && (hardware === 'h100' || hardware === 'h200')) { + tpSize = 2; + } + } + + // Build command args + const args = []; + args.push(`--model-path ${modelPath}`); + + if (tpSize) { + args.push(`--tp ${tpSize}`); + } + + // Add quantization flag only if not using FP8 variant model + if (quantization === 'fp8' && category !== 'instruct') { + args.push(`--quantization fp8`); + } + + // NVIDIA-specific optimizations + if (!isAMD) { + if (optimization === 'throughput') { + args.push(`--enable-dp-attention`); + args.push(`--mem-fraction-static 0.85`); + } else if (optimization === 'latency') { + args.push(`--speculative-algorithm EAGLE3`); + args.push(`--speculative-num-steps 3`); + args.push(`--speculative-eagle-topk 1`); + args.push(`--speculative-num-draft-tokens 4`); + if (modelsize === '8b' && category === 'instruct') { + args.push(`--speculative-draft-model-path yuhuili/EAGLE3-LLaMA3.1-Instruct-8B`); + } else { + args.push(`--speculative-draft-model-path \${EAGLE3_MODEL_PATH}`); + } + args.push(`--disable-shared-experts-fusion`); + args.push(`--max-running-requests 64`); + args.push(`--mem-fraction-static 0.85`); + args.push(`--kv-cache-dtype fp8_e4m3`); + args.push(`--context-length 32768`); + } + } + + if (toolcall === 'enabled') { + args.push(`--tool-call-parser llama3`); + } + + let cmd = 'sglang serve \\\n'; + cmd += ` ${args.join(' \\\n ')}`; + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/llama33-70b-deployment.jsx b/docs_new/src/snippets/autoregressive/llama33-70b-deployment.jsx new file mode 100644 index 000000000..ca53bb394 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/llama33-70b-deployment.jsx @@ -0,0 +1,138 @@ +export const Llama33Deployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Calling', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command + const generateCommand = () => { + const { hardware, quantization, toolcall } = values; + + // Select model based on quantization + const modelPath = quantization === 'fp8' + ? 'amd/Llama-3.3-70B-Instruct-FP8-KV' + : 'meta-llama/Llama-3.3-70B-Instruct'; + + // Build command + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelPath} \\\n`; + cmd += ` --tp 1`; + + // Add tool calling parser + if (toolcall === 'enabled') { + cmd += ' \\\n --tool-call-parser llama3'; + } + + cmd += ' \\\n --host 0.0.0.0 \\\n'; + cmd += ' --port 30000'; + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/llama4-maverick-deployment.jsx b/docs_new/src/snippets/autoregressive/llama4-maverick-deployment.jsx new file mode 100644 index 000000000..b93fb6ed9 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/llama4-maverick-deployment.jsx @@ -0,0 +1,347 @@ +export const Llama4MaverickDeployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300x', default: true }, + { id: 'mi325x', label: 'MI325x', default: false }, + { id: 'mi355x', label: 'MI355x', default: false } + ] + }, + host: { + name: 'host', + title: 'Host', + type: 'text', + default: '0.0.0.0', + placeholder: '0.0.0.0' + }, + port: { + name: 'port', + title: 'Port', + type: 'text', + default: '8000', + placeholder: '8000' + } + }; + + const generateCommand = (values) => { + const { hardware, quantization, toolcall, speculative, host, port } = values; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model-path meta-llama/Llama-4-Scout-17B-16E-Instruct`; + + if (hardware === 'h100' || hardware === 'h200') { + cmd += ` \\\n --tp 8`; + } else if (hardware === 'b200') { + cmd += ` \\\n --tp 8`; + } else if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd += ` \\\n --tp 8`; + } + + if (quantization === 'fp8') { + cmd += ` \\\n --quantization fp8`; + } + + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser pythonic`; + } + + if (speculative === 'enabled') { + cmd += ` \\\n --speculative-algorithm EAGLE3 \\\n`; + cmd += ` --speculative-draft-model-path lmsys/sglang-EAGLE3-Llama-4-Scout-17B-16E-Instruct-v1 \\\n`; + cmd += ` --speculative-num-steps 3 \\\n`; + cmd += ` --speculative-eagle-topk 1 \\\n`; + cmd += ` --speculative-num-draft-tokens 4 \\\n`; + cmd += ` --mem-fraction-static 0.75 \\\n`; + cmd += ` --cuda-graph-max-bs 2`; + } + + cmd += ` \\\n --enable-multimodal`; + cmd += ` \\\n --context-length 65536`; + cmd += ` \\\n --dtype bfloat16`; + cmd += ` \\\n --trust-remote-code`; + cmd += ` \\\n --host ${host || '0.0.0.0'}`; + cmd += ` \\\n --port ${port || '8000'}`; + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/llama4-scout-deployment.jsx b/docs_new/src/snippets/autoregressive/llama4-scout-deployment.jsx new file mode 100644 index 000000000..14d4029f1 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/llama4-scout-deployment.jsx @@ -0,0 +1,374 @@ +export const Llama4ScoutDeployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: false }, + { id: 'h100', label: 'H100', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'mi300x', label: 'MI300x', default: false }, + { id: 'mi325x', label: 'MI325x', default: false }, + { id: 'mi355x', label: 'MI355x', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding (EAGLE3)', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enable EAGLE3', default: false } + ] + }, + host: { + name: 'host', + title: 'Host', + type: 'text', + default: '0.0.0.0', + placeholder: '0.0.0.0' + }, + port: { + name: 'port', + title: 'Port', + type: 'text', + default: '8000', + placeholder: '8000' + } + }; + + const generateCommand = (values) => { + const { hardware, quantization, toolcall, speculative, host, port } = values; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model-path meta-llama/Llama-4-Scout-17B-16E-Instruct`; + + if (hardware === 'h100' || hardware === 'h200') { + cmd += ` \\\n --tp 8`; + } else if (hardware === 'b200') { + cmd += ` \\\n --tp 8`; + } else if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd += ` \\\n --tp 8`; + } + + if (quantization === 'fp8') { + cmd += ` \\\n --quantization fp8`; + } + + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser pythonic`; + } + + if (speculative === 'enabled') { + cmd += ` \\\n --speculative-algorithm EAGLE3 \\\n`; + cmd += ` --speculative-draft-model-path lmsys/sglang-EAGLE3-Llama-4-Scout-17B-16E-Instruct-v1 \\\n`; + cmd += ` --speculative-num-steps 3 \\\n`; + cmd += ` --speculative-eagle-topk 1 \\\n`; + cmd += ` --speculative-num-draft-tokens 4 \\\n`; + cmd += ` --mem-fraction-static 0.75 \\\n`; + cmd += ` --cuda-graph-max-bs 2`; + } + + cmd += ` \\\n --enable-multimodal`; + cmd += ` \\\n --context-length 65536`; + cmd += ` \\\n --dtype bfloat16`; + cmd += ` \\\n --trust-remote-code`; + cmd += ` \\\n --host ${host || '0.0.0.0'}`; + cmd += ` \\\n --port ${port || '8000'}`; + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/mimo-v2-flash-deployment.jsx b/docs_new/src/snippets/autoregressive/mimo-v2-flash-deployment.jsx new file mode 100644 index 000000000..985d1a285 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/mimo-v2-flash-deployment.jsx @@ -0,0 +1,194 @@ +export const MiMoV2FlashDeployment = () => { + // Config mirrors sgl-cookbook src/components/autoregressive/MiMoConfigGenerator/index.js. + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelname: { + name: 'modelname', + title: 'Model Name', + items: [ + { id: 'mimo-v2-flash', label: 'MiMo-V2-Flash', default: true } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP 8 (Required)', default: true, disabled: true }, + { id: 'dp', label: 'DP Attention (DP 2)', default: true }, + { id: 'mtp', label: 'Multi-token Prediction (MTP)', default: true }, + { id: 'optimization', label: 'Performance Optimizations', default: true } + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning & Tools', + type: 'checkbox', + items: [ + { id: 'reasoning', label: 'Reasoning Parser (Qwen3)', default: true }, + { id: 'toolcall', label: 'Tool Call Parser', default: true } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command — mirrors sgl-cookbook's config.generateCommand(values) exactly + const generateCommand = () => { + const { hardware, strategy, reasoning } = values; + const isMI355X = hardware === 'mi355x'; + + const modelPath = 'XiaomiMiMo/MiMo-V2-Flash'; + const strategyArray = Array.isArray(strategy) ? strategy : []; + const reasoningArray = Array.isArray(reasoning) ? reasoning : []; + + if (isMI355X && strategyArray.includes('mtp')) { + return '# MI355X Speculative Decoding (EAGLE): Work In Progress\n' + + '# Uncheck "Multi-token Prediction (MTP)" to view the validated non-speculative MI355X command.'; + } + + const commandPrefix = isMI355X + ? 'PYTHONPATH=/sgl-workspace/aiter SGLANG_USE_AITER=0 USE_ROCM_AITER_ROPE_BACKEND=0' + : 'SGLANG_ENABLE_SPEC_V2=1'; + const tpSize = isMI355X ? 4 : 8; + + let cmd = `${commandPrefix} sglang serve \\\n`; + cmd += ` --model-path ${modelPath} \\\n`; + cmd += ` --trust-remote-code \\\n`; + cmd += ` --tp-size ${tpSize}`; + + // DP settings + if (!isMI355X && strategyArray.includes('dp')) { + cmd += ` \\\n --dp-size 2 \\\n --enable-dp-attention`; + } + + // Performance Optimizations + if (strategyArray.includes('optimization')) { + cmd += ` \\\n --mem-fraction-static 0.75 \\\n --max-running-requests 128 \\\n --chunked-prefill-size 16384 \\\n --model-loader-extra-config '{"enable_multithread_load": "true","num_threads": 64}'`; + cmd += isMI355X + ? ` \\\n --attention-backend triton \\\n --prefill-attention-backend triton \\\n --decode-attention-backend triton \\\n --disable-custom-all-reduce` + : ` \\\n --attention-backend fa3`; + } + + // MTP/Speculative settings + if (!isMI355X && strategyArray.includes('mtp')) { + cmd += ` \\\n --speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4 \\\n --enable-multi-layer-eagle`; + } + + // Reasoning Parser + if (reasoningArray.includes('reasoning')) { + cmd += ` \\\n --reasoning-parser qwen3`; + } + + // Tool Call Parser + if (reasoningArray.includes('toolcall')) { + cmd += ` \\\n --tool-call-parser mimo`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = item.disabled; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/minimax-m2-deployment.jsx b/docs_new/src/snippets/autoregressive/minimax-m2-deployment.jsx new file mode 100644 index 000000000..420199f52 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/minimax-m2-deployment.jsx @@ -0,0 +1,353 @@ +export const MiniMaxM2Deployment = () => { + const modelFamily = 'MiniMaxAI'; + + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelname: { + name: 'modelname', + title: 'Model Name', + items: [ + { id: 'M2.1', label: 'MiniMax-M2.1', default: true }, + { id: 'M2', label: 'MiniMax-M2', default: false } + ] + }, + strategy: { + name: 'strategy', + title: 'Deployment Strategy', + type: 'checkbox', + items: [ + { id: 'tp', label: 'TP', default: true, required: true }, + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + const generateCommand = (values) => { + const { hardware, modelname, strategy, reasoning, toolcall } = values; + + const modelMap = { + 'M2.1': 'MiniMax-M2.1', + 'M2': 'MiniMax-M2' + }; + + const modelName = `${modelFamily}/${modelMap[modelname]}`; + + let cmd = 'sglang serve \\\n'; + cmd += ` --model-path ${modelName}`; + + cmd += ` \\\n --tp 4`; + + cmd += ` \\\n --trust-remote-code`; + + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser minimax-m2`; + } + + if (reasoning === 'enabled') { + cmd += ` \\\n --reasoning-parser minimax-append-think`; + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/minimax-m25-deployment.jsx b/docs_new/src/snippets/autoregressive/minimax-m25-deployment.jsx new file mode 100644 index 000000000..a0aa95740 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/minimax-m25-deployment.jsx @@ -0,0 +1,390 @@ +export const MiniMaxM25Deployment = () => { + const modelFamily = 'MiniMaxAI'; + + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'a100', label: 'A100', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + gpuCount: { + name: 'gpuCount', + title: 'GPU Count', + getDynamicItems: (values) => { + const isAMD = values.hardware === 'mi300x' || values.hardware === 'mi325x' || values.hardware === 'mi355x'; + return [ + { + id: '2gpu', + label: '2', + default: isAMD, + disabled: !isAMD + }, + { + id: '4gpu', + label: '4', + default: !isAMD, + disabled: false + }, + { + id: '8gpu', + label: '8', + default: false, + disabled: false + } + ]; + } + }, + thinking: { + name: 'thinking', + title: 'Thinking Capabilities', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser minimax-append-think' : null + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser minimax-m2' : null + } + }; + + const generateCommand = (values) => { + const { hardware, gpuCount, thinking, toolcall } = values; + + const isAMD = hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x'; + if (gpuCount === '2gpu' && !isAMD) { + return '# Please select compatible hardware\n# 2-GPU requires AMD MI300X/MI325X/MI355X'; + } + + const modelName = `${modelFamily}/MiniMax-M2.5`; + + let cmd = ''; + cmd += 'python -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelName}`; + + if (gpuCount === '8gpu') { + cmd += ` \\\n --tp 8`; + cmd += ` \\\n --ep 8`; + } else if (gpuCount === '4gpu') { + cmd += ` \\\n --tp 4`; + if (isAMD) { + cmd += ` \\\n --ep 4`; + } + } else if (gpuCount === '2gpu') { + cmd += ` \\\n --tp 2`; + if (isAMD) { + cmd += ` \\\n --ep 2`; + } + } + + if (toolcall === 'enabled') { + cmd += ` \\\n --tool-call-parser minimax-m2`; + } + + if (thinking === 'enabled') { + cmd += ` \\\n --reasoning-parser minimax-append-think`; + } + + cmd += ` \\\n --trust-remote-code`; + cmd += ` \\\n --mem-fraction-static 0.85`; + + if (isAMD) { + cmd += ` \\\n --kv-cache-dtype fp8_e4m3`; + cmd += ` \\\n --attention-backend triton`; + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/minimax-m27-deployment.jsx b/docs_new/src/snippets/autoregressive/minimax-m27-deployment.jsx new file mode 100644 index 000000000..198f4ca5b --- /dev/null +++ b/docs_new/src/snippets/autoregressive/minimax-m27-deployment.jsx @@ -0,0 +1,203 @@ +export const MiniMaxM27Deployment = () => { + // Config options. `getDynamicItems(values)` is evaluated at render time so that + // e.g. the 2-GPU option is only enabled on AMD or GB300 hardware. + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'gb300', label: 'GB300', default: false }, + { id: 'a100', label: 'A100', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + gpuCount: { + name: 'gpuCount', + title: 'GPU Count', + getDynamicItems: (values) => { + const hw = values.hardware; + const isAMD = hw === 'mi300x' || hw === 'mi325x' || hw === 'mi355x'; + const isGB300 = hw === 'gb300'; + const canUse2GPU = isAMD || isGB300; + return [ + { id: '2gpu', label: '2', default: canUse2GPU, disabled: !canUse2GPU }, + { id: '4gpu', label: '4', default: !canUse2GPU, disabled: false }, + { id: '8gpu', label: '8', default: false, disabled: isGB300 } + ]; + } + }, + thinking: { + name: 'thinking', + title: 'Thinking Capabilities', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + } + }; + + // Helper: resolve an option's items (static or dynamic) given current values + const resolveItems = (option, values) => { + if (typeof option.getDynamicItems === 'function') { + return option.getDynamicItems(values); + } + return option.items; + }; + + const getInitialState = () => { + const initialState = {}; + // Resolve hardware first so gpuCount's dynamic items can see it + for (const [key, option] of Object.entries(options)) { + const items = resolveItems(option, initialState); + const defaultItem = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled) || items[0]; + initialState[key] = defaultItem.id; + } + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + // When hardware changes, re-evaluate gpuCount so disabled/default shifts apply + useEffect(() => { + setValues(prev => { + const next = { ...prev }; + for (const [key, option] of Object.entries(options)) { + if (typeof option.getDynamicItems !== 'function') continue; + const items = option.getDynamicItems(next); + const current = items.find(i => i.id === next[key]); + if (!current || current.disabled) { + const fallback = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled); + if (fallback) next[key] = fallback.id; + } + } + return next; + }); + }, [values.hardware]); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command mirrors sgl-cookbook src/components/autoregressive/MiniMaxM27ConfigGenerator/index.js + const generateCommand = () => { + const { hardware, gpuCount, thinking, toolcall } = values; + + const isAMD = hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x'; + const isGB300 = hardware === 'gb300'; + const canUse2GPU = isAMD || isGB300; + + if (gpuCount === '2gpu' && !canUse2GPU) { + return '# Please select compatible hardware\n# 2-GPU requires AMD MI300X/MI325X/MI355X or GB300'; + } + + const modelName = 'MiniMaxAI/MiniMax-M2.7'; + + let cmd = 'sglang serve \\\n'; + cmd += ` --model-path ${modelName}`; + + if (gpuCount === '8gpu') { + cmd += ' \\\n --tp 8'; + cmd += ' \\\n --ep 8'; + } else if (gpuCount === '4gpu') { + cmd += ' \\\n --tp 4'; + if (isAMD) cmd += ' \\\n --ep 4'; + } else if (gpuCount === '2gpu') { + cmd += ' \\\n --tp 2'; + if (isAMD) cmd += ' \\\n --ep 2'; + } + + if (toolcall === 'enabled') cmd += ' \\\n --tool-call-parser minimax-m2'; + if (thinking === 'enabled') cmd += ' \\\n --reasoning-parser minimax-append-think'; + + cmd += ' \\\n --trust-remote-code'; + cmd += ' \\\n --mem-fraction-static 0.85'; + + if (isAMD) { + cmd += ' \\\n --kv-cache-dtype fp8_e4m3'; + cmd += ' \\\n --attention-backend triton'; + } + + return cmd; + }; + + // Styles + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.4 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + const items = resolveItems(option, values); + return ( +
      +
      {option.title}
      +
      + {items.map(item => { + const isChecked = values[option.name] === item.id; + const isDisabled = !!item.disabled; + return ( + + ); + })} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/ministral-3-deployment.jsx b/docs_new/src/snippets/autoregressive/ministral-3-deployment.jsx new file mode 100644 index 000000000..94f007ab5 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/ministral-3-deployment.jsx @@ -0,0 +1,348 @@ +export const Ministral3Deployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300x', default: true }, + { id: 'mi325x', label: 'MI325x', default: false }, + { id: 'mi355x', label: 'MI355x', default: false } + ] + }, + model: { + name: 'model', + title: 'Model', + items: [ + { id: 'small', label: 'Ministral-3-8B-Instruct-2512', default: true }, + { id: 'large', label: 'Ministral-3-14B-Instruct-2512', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'enabled', label: 'enabled', default: true }, + { id: 'disabled', label: 'disabled', default: false } + ], + commandRule: (value) => (value === 'enabled' ? '--tool-call-parser mistral' : null) + } + }; + + const modelConfigs = { + small: { + modelId: 'mistralai/Ministral-3-8B-Instruct-2512', + tpByHardware: { mi300x: 1, mi325x: 1, mi355x: 1 } + }, + large: { + modelId: 'mistralai/Ministral-3-14B-Instruct-2512', + tpByHardware: { mi300x: 1, mi325x: 1, mi355x: 1 } + } + }; + + const generateCommand = (values) => { + const { hardware, model } = values; + + const modelCfg = modelConfigs[model]; + if (!modelCfg) return `# Error: Unknown model selection: ${model}`; + + const tp = modelCfg.tpByHardware[hardware]; + if (!tp) return `# Error: Unknown hardware platform: ${hardware}`; + + let cmd = 'sglang serve \\\n'; + + cmd += ` --model ${modelCfg.modelId}`; + + if (tp > 1) { + cmd += ` \\\n --tp ${tp}`; + } + + cmd += ` \\\n --trust-remote-code`; + + for (const [key, option] of Object.entries(options)) { + if (option.commandRule) { + const rule = option.commandRule(values[key]); + if (rule) cmd += ` \\\n ${rule}`; + } + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/mistral-small-4-deployment.jsx b/docs_new/src/snippets/autoregressive/mistral-small-4-deployment.jsx new file mode 100644 index 000000000..d70f47b58 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/mistral-small-4-deployment.jsx @@ -0,0 +1,365 @@ +export const MistralSmall4Deployment = () => { + const modelId = 'mistralai/Mistral-Small-4-119B-2603'; + + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + getDynamicItems: (values) => { + const isNvfp4 = values.quantization === 'fp4'; + return [ + { id: 'h100', label: 'H100', default: !isNvfp4, disabled: isNvfp4 }, + { id: 'h200', label: 'H200', default: false, disabled: isNvfp4 }, + { id: 'b200', label: 'B200', default: isNvfp4, disabled: false }, + { id: 'b300', label: 'B300', default: false, disabled: false }, + ]; + } + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'fp8', label: 'FP8', default: true }, + { id: 'fp4', label: 'NVFP4', subtitle: 'Blackwell only', default: false }, + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser mistral' : null + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser mistral' : null + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding (EAGLE)', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--speculative-algorithm EAGLE \\\n --speculative-draft-model-path mistralai/Mistral-Small-4-119B-2603-eagle \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4' : null + }, + }; + + const modelConfigs = { + h100: { fp8: { tp: 2 } }, + h200: { fp8: { tp: 2 } }, + b200: { fp8: { tp: 1 }, fp4: { tp: 1 } }, + b300: { fp8: { tp: 1 }, fp4: { tp: 1 } }, + }; + + const generateCommand = (values) => { + const { hardware, quantization } = values; + + const hwConfig = modelConfigs[hardware]?.[quantization]; + if (!hwConfig) return `# Error: Unknown hardware/quantization combination`; + + const { tp } = hwConfig; + + const modelName = quantization === 'fp4' + ? 'mistralai/Mistral-Small-4-119B-2603-NVFP4' + : modelId; + + let cmd = `sglang serve --model-path ${modelName}`; + cmd += ` \\\n --tp ${tp}`; + + Object.entries(options).forEach(([key, option]) => { + if (key === 'quantization' || key === 'hardware') return; + if (option.commandRule) { + const rule = option.commandRule(values[key]); + if (rule) cmd += ` \\\n ${rule}`; + } + }); + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/nemotron3-nano-deployment.jsx b/docs_new/src/snippets/autoregressive/nemotron3-nano-deployment.jsx new file mode 100644 index 000000000..421bcb46e --- /dev/null +++ b/docs_new/src/snippets/autoregressive/nemotron3-nano-deployment.jsx @@ -0,0 +1,371 @@ +export const Nemotron3NanoDeployment = () => { + const modelFamily = 'nvidia'; + + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: true } + ] + }, + modelVariant: { + name: 'modelVariant', + title: 'Model Variant', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false }, + { id: 'nvfp4', label: 'NVFP4', default: false } + ] + }, + tp: { + name: 'tp', + title: 'Tensor Parallel (TP)', + items: [ + { id: '1', label: 'TP=1', default: true }, + { id: '2', label: 'TP=2', default: false }, + { id: '4', label: 'TP=4', default: false }, + { id: '8', label: 'TP=8', default: false } + ] + }, + kvcache: { + name: 'kvcache', + title: 'KV Cache DType', + items: [ + { id: 'fp8_e4m3', label: 'fp8_e4m3', default: true }, + { id: 'bf16', label: 'bf16', default: false } + ] + }, + thinking: { + name: 'thinking', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser nemotron_3' : null + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser qwen3_coder' : null + } + }; + + const generateCommand = (values) => { + const { hardware, modelVariant, tp, kvcache, thinking, toolcall } = values; + + // Default to FP8 if not selected + const variant = modelVariant || 'fp8'; + const baseName = 'NVIDIA-Nemotron-3-Nano-30B-A3B'; + + const modelName = `${modelFamily}/${baseName}-${variant.toUpperCase()}`; + + let cmd = 'python3 -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelName} \\\n`; + cmd += ` --trust-remote-code \\\n`; + cmd += ` --tp ${tp} \\\n`; + cmd += ` --kv-cache-dtype ${kvcache} \\\n`; + + // Add thinking parser and tool call parser if enabled + for (const [key, option] of Object.entries(options)) { + if (option.commandRule) { + const rule = option.commandRule(values[key]); + if (rule) { + cmd += ` ${rule} \\\n`; + } + } + } + + // Remove trailing backslash from last option + cmd = cmd.trimEnd(); + if (cmd.endsWith('\\')) { + cmd = cmd.slice(0, -1).trimEnd(); + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/nemotron3-super-deployment.jsx b/docs_new/src/snippets/autoregressive/nemotron3-super-deployment.jsx new file mode 100644 index 000000000..c9c623695 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/nemotron3-super-deployment.jsx @@ -0,0 +1,381 @@ +export const Nemotron3SuperDeployment = () => { + const MODEL_PATHS = { + bf16: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16', + fp8: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8', + nvfp4: 'nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4', + }; + + const options = { + model: { + name: 'model', + title: 'Model', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false }, + { id: 'nvfp4', label: 'NVFP4', default: false }, + ] + }, + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: true } + ] + }, + tp: { + name: 'tp', + title: 'Tensor Parallel (TP)', + items: [ + { id: '2', label: 'TP=2', default: false }, + { id: '4', label: 'TP=4', default: true }, + { id: '8', label: 'TP=8', default: false } + ] + }, + mtp: { + name: 'mtp', + title: 'Multi-token Prediction (MTP)', + items: [ + { id: 'enabled', label: 'Enabled', default: false }, + { id: 'disabled', label: 'Disabled', default: true } + ], + commandRule: (value) => value === 'enabled' ? '--speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4 \\\n --disable-radix-cache' : null + }, + kvcache: { + name: 'kvcache', + title: 'KV Cache DType', + items: [ + { id: 'none', label: 'None', default: true }, + { id: 'fp8_e4m3', label: 'fp8_e4m3', default: false }, + { id: 'bf16', label: 'bf16', default: false } + ] + }, + thinking: { + name: 'thinking', + title: 'Reasoning Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser nemotron_3' : null + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser qwen3_coder' : null + } + }; + + const generateCommand = (values) => { + const { tp, kvcache, model } = values; + + const modelPath = MODEL_PATHS[model] || MODEL_PATHS['bf16']; + + let cmd = 'python3 -m sglang.launch_server \\\n'; + cmd += ` --model-path ${modelPath} \\\n`; + cmd += ` --trust-remote-code \\\n`; + cmd += ` --tp ${tp} \\\n`; + + if (kvcache && kvcache !== 'none') { + cmd += ` --kv-cache-dtype ${kvcache} \\\n`; + } + + for (const [key, option] of Object.entries(options)) { + if (option.commandRule) { + const rule = option.commandRule(values[key]); + if (rule) { + cmd += ` ${rule} \\\n`; + } + } + } + + cmd = cmd.trimEnd(); + if (cmd.endsWith('\\')) { + cmd = cmd.slice(0, -1).trimEnd(); + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/qwen25-vl-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen25-vl-deployment.jsx new file mode 100644 index 000000000..4c686cb42 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/qwen25-vl-deployment.jsx @@ -0,0 +1,364 @@ +export const Qwen25VLDeployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '72b', label: '72B', subtitle: 'Dense', default: true }, + { id: '32b', label: '32B', subtitle: 'Dense', default: false }, + { id: '7b', label: '7B', subtitle: 'Dense', default: false }, + { id: '3b', label: '3B', subtitle: 'Dense', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true } + ] + } + }; + + const modelConfigs = { + '72b': { + baseName: '72B', + mi300x: { tp: 8, ep: 0 }, + mi325x: { tp: 8, ep: 0 }, + mi355x: { tp: 8, ep: 0 } + }, + '32b': { + baseName: '32B', + mi300x: { tp: 2, ep: 0 }, + mi325x: { tp: 2, ep: 0 }, + mi355x: { tp: 2, ep: 0 } + }, + '7b': { + baseName: '7B', + mi300x: { tp: 1, ep: 0 }, + mi325x: { tp: 1, ep: 0 }, + mi355x: { tp: 1, ep: 0 } + }, + '3b': { + baseName: '3B', + mi300x: { tp: 1, ep: 0 }, + mi325x: { tp: 1, ep: 0 }, + mi355x: { tp: 1, ep: 0 } + } + }; + + const generateCommand = (values) => { + const { hardware, modelsize: modelSize } = values; + + const modelSizeConfig = modelConfigs[modelSize]; + if (!modelSizeConfig) { + return `# Error: Unknown model size: ${modelSize}`; + } + + const hwConfig = modelSizeConfig[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const modelName = `Qwen/Qwen2.5-VL-${modelSizeConfig.baseName}-Instruct`; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + } + + if ((hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') && modelSize === '72b') { + cmd += ` \\\n --context-length 128000`; + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/qwen3-coder-480b-a35b-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen3-coder-480b-a35b-deployment.jsx new file mode 100644 index 000000000..a24985464 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/qwen3-coder-480b-a35b-deployment.jsx @@ -0,0 +1,139 @@ +export const Qwen3CoderDeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + } + }; + + // Model configurations + const modelConfigs = { + '480b': { + baseName: '480B-A35B', + mi300x: { tp: 8, ep: 0 } + } + }; + + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command + const generateCommand = () => { + const { hardware, quantization } = values; + + const config = modelConfigs['480b']; + const hwConfig = config[hardware]; + + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + // Build model name + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `Qwen/Qwen3-Coder-${config.baseName}-Instruct${quantSuffix}`; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + // TP is always 8 for this model + cmd += ` \\\n --tp ${hwConfig.tp}`; + + // FP8 requires EP=2 for MoE dimension alignment + if (quantization === 'fp8') { + cmd += ` \\\n --ep 2`; + } + + // Context length verified on MI300X + cmd += ` \\\n --context-length 8192`; + + // Page size for MoE models + cmd += ` \\\n --page-size 32`; + + // FP8 requires trust-remote-code + if (quantization === 'fp8') { + cmd += ` \\\n --trust-remote-code`; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.items.map(item => { + const isChecked = values[option.name] === item.id; + const isDisabled = item.disabled; + return ( + + ); + })} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/qwen3-coder-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen3-coder-deployment.jsx new file mode 100644 index 000000000..1ceccbf42 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/qwen3-coder-deployment.jsx @@ -0,0 +1,426 @@ +export const Qwen3CoderDeployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false }, + { id: 'b200', label: 'B200', default: false }, + { id: 'gb200', label: 'GB200', default: false } + ] + }, + modelSize: { + name: 'modelSize', + title: 'Model Size', + items: [ + { id: '480b', label: '480B', subtitle: 'MOE', default: true }, + { id: '30b', label: '30B', subtitle: 'MOE', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false }, + { id: 'nvfp4', label: 'NVFP4', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser qwen3_coder' : null + } + }; + + const modelConfigs = { + '480b': { + baseName: '480B-A35B', + mi300x: { tp: 8 }, + mi325x: { tp: 8 }, + mi355x: { tp: 8 }, + b200: { tp: 8 }, + gb200: { tp: 8 } + }, + '30b': { + baseName: '30B-A3B', + mi300x: { tp: 1 }, + mi325x: { tp: 1 }, + mi355x: { tp: 1 } + } + }; + + const generateCommand = (values) => { + const { hardware, modelSize, quantization } = values; + + const isNvidia = hardware === 'b200' || hardware === 'gb200'; + + const modelConfig = modelConfigs[modelSize]; + const hwConfig = modelConfig[hardware]; + + if (!hwConfig) { + return `# Configuration not available: ${modelSize.toUpperCase()} model has not been verified on ${hardware.toUpperCase()}.`; + } + + // NVFP4 is only available on NVIDIA hardware + if (quantization === 'nvfp4' && !isNvidia) { + return `# NVFP4 quantization is only available on NVIDIA B200/GB200 hardware.`; + } + + // BF16 not verified on NVIDIA + if (quantization === 'bf16' && isNvidia) { + return `# BF16 deployment on ${hardware.toUpperCase()} has not been verified yet. Please use FP8 or NVFP4.`; + } + + // Build model name + let modelName; + if (quantization === 'nvfp4') { + modelName = `nvidia/Qwen3-Coder-${modelConfig.baseName}-Instruct-NVFP`; + } else { + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + modelName = `Qwen/Qwen3-Coder-${modelConfig.baseName}-Instruct${quantSuffix}`; + } + + let cmd = ''; + if (!isNvidia) { + cmd += 'SGLANG_USE_AITER=0 '; + } + cmd += 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + // TP setting + cmd += ` \\\n --tp ${hwConfig.tp}`; + + // EP and DP attention settings + if (quantization === 'nvfp4') { + cmd += ` \\\n --ep 1`; + cmd += ` \\\n --enable-dp-attention`; + } else if (modelSize === '480b' && quantization === 'fp8') { + // FP8 requires EP=2 for 480B model due to MoE dimension alignment + // moe_intermediate_size=2560, with tp=8 ep=1: 2560/8=320, 320%128!=0 + // with tp=8 ep=2: 2560/4=640, 640%128=0 ✓ + cmd += ` \\\n --ep 2`; + } + + // MOE runner backend for NVIDIA + if (isNvidia) { + if (quantization === 'nvfp4') { + cmd += ` \\\n --moe-runner-backend flashinfer_cutlass`; + cmd += ` \\\n --quantization modelopt_fp4`; + } else if (quantization === 'fp8') { + cmd += ` \\\n --moe-runner-backend triton`; + } + } + + // Apply commandRule from all options + Object.entries(options).forEach(([key, option]) => { + if (option.commandRule && values[key]) { + // Pass the full values object so commandRule can access other option values + const additionalCmd = option.commandRule(values[key], values); + if (additionalCmd) { + cmd += ` \\\n ${additionalCmd}`; + } + } + }); + + // AMD-specific flags + if (!isNvidia) { + // Context length verified on MI300X/MI325X/MI355X + cmd += ` \\\n --context-length 8192`; + + // Page size for MoE models + cmd += ` \\\n --page-size 32`; + + // FP8 requires trust-remote-code + if (quantization === 'fp8') { + cmd += ` \\\n --trust-remote-code`; + } + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/qwen3-coder-next-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen3-coder-next-deployment.jsx new file mode 100644 index 000000000..700768c9a --- /dev/null +++ b/docs_new/src/snippets/autoregressive/qwen3-coder-next-deployment.jsx @@ -0,0 +1,370 @@ +export const Qwen3CoderNextDeployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'h100', label: 'H100', default: false }, + { id: 'b200', label: 'B200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'enabled', label: 'Enabled', default: true }, + { id: 'disabled', label: 'Disabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser qwen3_coder' : null + }, + mambaCache: { + name: 'mambaCache', + title: 'Mamba Radix Cache', + items: [ + { id: 'v1', label: 'V1', default: true }, + { id: 'v2', label: 'V2', default: false } + ], + commandRule: (value) => value === 'v2' ? '--mamba-scheduler-strategy extra_buffer \\\n --page-size 64' : null + } + }; + + const modelConfigs = { + default: { + baseName: 'Qwen3-Coder-Next', + h100: { bf16: { tp: 4 }, fp8: { tp: 2 } }, + h200: { bf16: { tp: 2 }, fp8: { tp: 1 } }, + b200: { bf16: { tp: 2 }, fp8: { tp: 1 } }, + mi300x: { bf16: { tp: 2 }, fp8: { tp: 1 } }, + mi325x: { bf16: { tp: 2 }, fp8: { tp: 1 } }, + mi355x: { bf16: { tp: 2 }, fp8: { tp: 1 } } + } + }; + + const generateCommand = (values) => { + const { hardware, quantization } = values; + + const hwConfig = modelConfigs.default[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const quantConfig = hwConfig[quantization]; + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `Qwen/${modelConfigs.default.baseName}${quantSuffix}`; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + // TP setting + if (quantConfig.tp > 1) { + cmd += ` \\\n --tp ${quantConfig.tp}`; + } + + // Apply commandRule from all options + Object.entries(options).forEach(([key, option]) => { + if (option.commandRule && values[key]) { + const additionalCmd = option.commandRule(values[key], values); + if (additionalCmd) { + cmd += ` \\\n ${additionalCmd}`; + } + } + }); + + // AMD GPUs require triton attention backend + if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd += ` \\\n --attention-backend triton`; + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/qwen3-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen3-deployment.jsx new file mode 100644 index 000000000..ee99a5793 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/qwen3-deployment.jsx @@ -0,0 +1,330 @@ +export const Qwen3Deployment = () => { + // Model configurations + const modelConfigs = { + '235b': { + baseName: '235B-A22B', + hasThinkingVariants: true, + h100: { tp: 8, ep: 0, bf16: true, fp8: true }, + h200: { tp: 8, ep: 0, bf16: true, fp8: true }, + b200: { tp: 8, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 4, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 4, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 4, ep: 0, bf16: true, fp8: true } + }, + '30b': { + baseName: '30B-A3B', + hasThinkingVariants: true, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '32b': { + baseName: '32B', + hasThinkingVariants: false, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '14b': { + baseName: '14B', + hasThinkingVariants: false, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '8b': { + baseName: '8B', + hasThinkingVariants: false, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '4b': { + baseName: '4B', + hasThinkingVariants: true, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '1.7b': { + baseName: '1.7B', + hasThinkingVariants: false, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '0.6b': { + baseName: '0.6B', + hasThinkingVariants: false, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + } + }; + + // Base options + const baseOptions = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h100', label: 'H100', default: false }, + { id: 'h200', label: 'H200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '235b', label: '235B', subtitle: 'MOE', default: true }, + { id: '30b', label: '30B', subtitle: 'MOE', default: false }, + { id: '32b', label: '32B', subtitle: 'Dense', default: false }, + { id: '14b', label: '14B', subtitle: 'Dense', default: false }, + { id: '8b', label: '8B', subtitle: 'Dense', default: false }, + { id: '4b', label: '4B', subtitle: 'Dense', default: false }, + { id: '1.7b', label: '1.7B', subtitle: 'Dense', default: false }, + { id: '0.6b', label: '0.6B', subtitle: 'Dense', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + category: { + name: 'category', + title: 'Categories', + items: [ + { id: 'base', label: 'Base', default: true }, + { id: 'instruct', label: 'Instruct', default: false }, + { id: 'thinking', label: 'Thinking', default: false } + ] + }, + reasoningParser: { + name: 'reasoningParser', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Get dynamic options based on current values + const getDisplayOptions = (values) => { + const options = { ...baseOptions }; + const currentModelConfig = modelConfigs[values.modelsize]; + + // If model doesn't have thinking variants, disable non-base category options + if (currentModelConfig && !currentModelConfig.hasThinkingVariants) { + options.category = { + ...baseOptions.category, + items: baseOptions.category.items.map(item => ({ + ...item, + disabled: item.id !== 'base' + })) + }; + } + + // Only show reasoningParser when category is not 'instruct' + if (values.category === 'instruct') { + delete options.reasoningParser; + } + + return options; + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(baseOptions).forEach(([key, option]) => { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => { + const newValues = { ...prev, [optionName]: value }; + + // Auto-switch to 'base' category for models without thinking variants + if (optionName === 'modelsize') { + const modelConfig = modelConfigs[value]; + if (modelConfig && !modelConfig.hasThinkingVariants) { + if (newValues.category !== 'base') { + newValues.category = 'base'; + } + } + } + + // Reset reasoningParser when switching to 'instruct' category + if (optionName === 'category' && value === 'instruct') { + newValues.reasoningParser = 'disabled'; + } + + return newValues; + }); + }; + + // Generate command + const generateCommand = () => { + const { hardware, modelsize, quantization, category, reasoningParser, toolcall } = values; + const displayOptions = getDisplayOptions(values); + + // Special error handling + const commandKey = `${hardware}-${modelsize}-${quantization}-${category}`; + if (commandKey === 'h100-235b-bf16-instruct' || commandKey === 'h100-235b-bf16-thinking') { + return '# Error: Model is too large, cannot fit into 8*H100\n# Please use H200 (141GB) or select FP8 quantization'; + } + + const config = modelConfigs[modelsize]; + if (!config) { + return `# Error: Unknown model size: ${modelsize}`; + } + + const hwConfig = config[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + + // Build model name based on model category + let modelName; + if (config.hasThinkingVariants) { + if (category === 'base') { + modelName = `Qwen/Qwen3-${config.baseName}${quantSuffix}`; + } else { + const thinkingSuffix = category === 'thinking' ? '-Thinking' : '-Instruct'; + const dateSuffix = '-2507'; + modelName = `Qwen/Qwen3-${config.baseName}${thinkingSuffix}${dateSuffix}${quantSuffix}`; + } + } else { + modelName = `Qwen/Qwen3-${config.baseName}${quantSuffix}`; + } + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + } + + let ep = hwConfig.ep; + if (quantization === 'fp8' && hwConfig.tp === 8) { + ep = 2; + } + + if (ep > 0) { + cmd += ` \\\n --ep ${ep}`; + } + + // Add reasoning parser + if (reasoningParser === 'enabled' && category !== 'instruct') { + cmd += ' \\\n --reasoning-parser qwen3'; + } + + // Add tool call parser + if (toolcall === 'enabled') { + cmd += ' \\\n --tool-call-parser qwen25'; + } + + return cmd; + }; + + // Get current display options + const displayOptions = getDisplayOptions(values); + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(displayOptions).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.items.map(item => { + const isChecked = values[option.name] === item.id; + const isDisabled = item.disabled; + return ( + + ); + })} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/qwen3-next-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen3-next-deployment.jsx new file mode 100644 index 000000000..87dee3ee2 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/qwen3-next-deployment.jsx @@ -0,0 +1,409 @@ +export const Qwen3NextDeployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '80b', label: '80B', subtitle: 'MOE', default: true }, + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', subtitle: 'Full Weights', default: true }, + { id: 'fp8', label: 'FP8', subtitle: 'High Throughput', default: false } + ] + }, + thinking: { + name: 'thinking', + title: 'Thinking Capabilities', + items: [ + { id: 'instruct', label: 'Instruct', subtitle: 'General Purpose', default: true }, + { id: 'thinking', label: 'Thinking', subtitle: 'Reasoning / CoT', default: false } + ], + commandRule: (value) => value === 'thinking' ? '--reasoning-parser qwen3' : null + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser qwen' : null + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4' : null + }, + mambaCache: { + name: 'mambaCache', + title: 'Mamba Radix Cache', + items: [ + { id: 'v1', label: 'V1', default: true }, + { id: 'v2', label: 'V2', default: false } + ], + commandRule: (value) => value === 'v2' ? '--mamba-scheduler-strategy extra_buffer \\\n --page-size 64' : null + } + }; + + const modelConfigs = { + '80b': { + baseName: '80B-A3B', + isMOE: true, + h100: { tp: 4, ep: 0, bf16: true, fp8: true }, + h200: { tp: 2, ep: 0, bf16: true, fp8: true }, + b200: { tp: 2, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 2, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 2, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 2, ep: 0, bf16: true, fp8: true } + } + }; + + const generateCommand = (values) => { + const { hardware, modelsize: modelSize, quantization, thinking } = values; + const commandKey = `${hardware}-${modelSize}-${quantization}-${thinking}`; + + const modelSizeConfig = modelConfigs[modelSize]; + if (!modelSizeConfig) { + return `# Error: Unknown model size: ${modelSize}`; + } + + const hwConfig = modelSizeConfig[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const thinkingSuffix = thinking === 'thinking' ? '-Thinking' : '-Instruct'; + const modelName = `Qwen/Qwen3-Next-${modelSizeConfig.baseName}${thinkingSuffix}${quantSuffix}`; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + } + + let ep = hwConfig.ep; + if (quantization === 'fp8' && hwConfig.tp === 8) { + ep = 2; + } + + if (ep > 0) { + cmd += ` \\\n --ep ${ep}`; + } + + for (const [key, option] of Object.entries(options)) { + if (option.commandRule) { + const rule = option.commandRule(values[key]); + if (rule) { + cmd += ` \\\n ${rule}`; + } + } + } + + // AMD GPUs require triton attention backend + if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd += ` \\\n --attention-backend triton`; + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/qwen3-vl-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen3-vl-deployment.jsx new file mode 100644 index 000000000..06137bd0c --- /dev/null +++ b/docs_new/src/snippets/autoregressive/qwen3-vl-deployment.jsx @@ -0,0 +1,245 @@ +export const Qwen3VLDeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h100', label: 'H100', default: false }, + { id: 'h200', label: 'H200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '235b', label: '235B', subtitle: 'MOE', default: true }, + { id: '30b', label: '30B', subtitle: 'MOE', default: false }, + { id: '32b', label: '32B', subtitle: 'Dense', default: false }, + { id: '8b', label: '8B', subtitle: 'Dense', default: false }, + { id: '4b', label: '4B', subtitle: 'Dense', default: false }, + { id: '2b', label: '2B', subtitle: 'Dense', default: false } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + thinking: { + name: 'thinking', + title: 'Thinking Capabilities', + items: [ + { id: 'instruct', label: 'Instruct', default: true }, + { id: 'thinking', label: 'Thinking', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + // Model configurations + const modelConfigs = { + '235b': { + baseName: '235B-A22B', + isMOE: true, + h100: { tp: 8, ep: 0, bf16: true, fp8: true }, + h200: { tp: 8, ep: 0, bf16: true, fp8: true }, + b200: { tp: 8, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 8, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 8, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 8, ep: 0, bf16: true, fp8: true } + }, + '30b': { + baseName: '30B-A3B', + isMOE: true, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '32b': { + baseName: '32B', + isMOE: false, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '8b': { + baseName: '8B', + isMOE: false, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '4b': { + baseName: '4B', + isMOE: false, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + }, + '2b': { + baseName: '2B', + isMOE: false, + h100: { tp: 1, ep: 0, bf16: true, fp8: true }, + h200: { tp: 1, ep: 0, bf16: true, fp8: true }, + b200: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi300x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi325x: { tp: 1, ep: 0, bf16: true, fp8: true }, + mi355x: { tp: 1, ep: 0, bf16: true, fp8: true } + } + }; + + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command + const generateCommand = () => { + const { hardware, modelsize, quantization, thinking, toolcall } = values; + const commandKey = `${hardware}-${modelsize}-${quantization}-${thinking}`; + + // Special error handling + if (commandKey === 'h100-235b-bf16-instruct' || commandKey === 'h100-235b-bf16-thinking') { + return '# Error: Model is too large, cannot fit into 8*H100\n# Please use H200 (141GB) or select FP8 quantization'; + } + + const config = modelConfigs[modelsize]; + if (!config) { + return `# Error: Unknown model size: ${modelsize}`; + } + + const hwConfig = config[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const thinkingSuffix = thinking === 'thinking' ? '-Thinking' : '-Instruct'; + const modelName = `Qwen/Qwen3-VL-${config.baseName}${thinkingSuffix}${quantSuffix}`; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + } + + let ep = hwConfig.ep; + if (quantization === 'fp8' && hwConfig.tp === 8) { + ep = 2; + } + + if (ep > 0) { + cmd += ` \\\n --ep ${ep}`; + } + + if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + if (modelsize === '32b' && quantization === 'bf16') { + cmd += ` \\\n --context-length 65536`; + } + } + + if (thinking === 'thinking') { + cmd += ' \\\n --reasoning-parser qwen3'; + } + + if (toolcall === 'enabled') { + cmd += ' \\\n --tool-call-parser qwen'; + } + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.items.map(item => { + const isChecked = values[option.name] === item.id; + const isDisabled = item.disabled; + return ( + + ); + })} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/qwen35-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen35-deployment.jsx new file mode 100644 index 000000000..68b074ce2 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/qwen35-deployment.jsx @@ -0,0 +1,442 @@ +export const Qwen35Deployment = () => { + // Qwen3.5 Configuration Generator + // + // MoE models (Gated Delta Networks + sparse MoE, hybrid architecture): + // 397B-A17B, 122B-A10B, 35B-A3B + // + // Dense models (standard transformer): + // 27B, 9B, 4B, 2B, 0.8B + // + // GPU requirements (BF16): + // 397B-A17B: H100 tp=16, H200 tp=8, B200 tp=8, B300 tp=4, MI300X tp=8, MI325X tp=4, MI355X tp=4 + // 122B-A10B: H100 tp=4, H200 tp=2, B200 tp=2, B300 tp=1, MI300X tp=2, MI325X tp=1, MI355X tp=1 + // 35B-A3B: H100 tp=1, H200 tp=1, B200 tp=1, B300 tp=1, MI300X tp=1, MI325X tp=1, MI355X tp=1 + // 27B/9B/4B/2B/0.8B: tp=1 on all hardware (including MI300X, MI325X, MI355X) + // + // GPU requirements (FP8, where available): + // 397B-A17B: H100 tp=8, H200 tp=8 ep=8, B200 tp=4, B300 tp=2, MI300X tp=4, MI325X tp=2, MI355X tp=2 + // 122B-A10B: H100 tp=2, H200 tp=1, B200 tp=1, B300 tp=1, MI300X tp=1, MI325X tp=1, MI355X tp=1 + // 35B-A3B: H100 tp=1, H200 tp=1, B200 tp=1, B300 tp=1, MI300X tp=1, MI325X tp=1, MI355X tp=1 + // 27B: tp=1 on all hardware (including MI300X, MI325X, MI355X) + // + // FP4 (397B only, Blackwell required): B200 tp=4, B300 tp=2 + + const MOE_MODELS = new Set(['397b', '122b', '35b']); + const FP8_MODELS = new Set(['397b', '122b', '35b', '27b']); + + // Maps model id -> HuggingFace model name suffix + const MODEL_SUFFIX = { + '397b': '397B-A17B', + '122b': '122B-A10B', + '35b': '35B-A3B', + '27b': '27B', + '9b': '9B', + '4b': '4B', + '2b': '2B', + '0.8b': '0.8B', + }; + + const options = { + model: { + name: 'model', + title: 'Model Variant', + items: [ + { id: '397b', label: '397B', subtitle: 'MoE', default: true }, + { id: '122b', label: '122B', subtitle: 'MoE', default: false }, + { id: '35b', label: '35B', subtitle: 'MoE', default: false }, + { id: '27b', label: '27B', subtitle: 'Dense', default: false }, + { id: '9b', label: '9B', subtitle: 'Dense', default: false }, + { id: '4b', label: '4B', subtitle: 'Dense', default: false }, + { id: '2b', label: '2B', subtitle: 'Dense', default: false }, + { id: '0.8b', label: '0.8B', subtitle: 'Dense', default: false }, + ] + }, + hardware: { + name: 'hardware', + title: 'Hardware Platform', + getDynamicItems: (values) => { + const isNvfp4 = values.quantization === 'fp4'; + return [ + { id: 'h100', label: 'H100', default: !isNvfp4, disabled: isNvfp4 }, + { id: 'h200', label: 'H200', default: false, disabled: isNvfp4 }, + { id: 'b200', label: 'B200', default: false, disabled: false }, + { id: 'b300', label: 'B300', default: isNvfp4, disabled: false }, + { id: 'mi300x', label: 'MI300X', default: false, disabled: isNvfp4 }, + { id: 'mi325x', label: 'MI325X', default: false, disabled: isNvfp4 }, + { id: 'mi355x', label: 'MI355X', default: false, disabled: isNvfp4 } + ]; + } + }, + quantization: { + name: 'quantization', + title: 'Quantization', + getDynamicItems: (values) => { + const hasFp8 = FP8_MODELS.has(values.model); + const hasFp4 = values.model === '397b'; + return [ + { id: 'bf16', label: 'BF16', default: !hasFp8 }, + { id: 'fp8', label: 'FP8', default: hasFp8, disabled: !hasFp8, + disabledReason: 'No FP8 variant available for this model' }, + { id: 'fp4', label: 'FP4', default: false, disabled: !hasFp4, + disabledReason: 'FP4 is only available for Qwen3.5-397B-A17B' } + ]; + } + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding (MTP)', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true } + ] + }, + mambaCache: { + name: 'mambaCache', + title: 'Mamba Radix Cache', + condition: (values) => MOE_MODELS.has(values.model), + getDynamicItems: (currentValues) => { + const amdGpus = ['mi300x', 'mi325x', 'mi355x']; + const isAmdGpu = amdGpus.includes(currentValues.hardware); + const mtpEnabled = currentValues.speculative === 'enabled'; + + // MTP requires V2 mamba radix cache + if (mtpEnabled && !isAmdGpu) { + return [ + { id: 'v1', label: 'V1', default: false, disabled: true }, + { id: 'v2', label: 'V2', default: true } + ]; + } + + // Show V2 as disabled for AMD GPUs (V2 requires FLA backend, NVIDIA only) + if (isAmdGpu) { + return [ + { id: 'v1', label: 'V1', default: true }, + { id: 'v2', label: 'V2', default: false, disabled: true } + ]; + } + + // Show both V1 and V2 enabled for NVIDIA GPUs + return [ + { id: 'v1', label: 'V1', default: true }, + { id: 'v2', label: 'V2', default: false } + ]; + } + } + }; + + const modelConfigs = { + '397b': { + h100: { bf16: { tp: 16, mem: 0.8 }, fp8: { tp: 8, mem: 0.8 } }, + h200: { bf16: { tp: 8, mem: 0.8 }, fp8: { tp: 8, ep: 8, mem: 0.8 } }, + b200: { bf16: { tp: 8, mem: 0.8 }, fp8: { tp: 4, mem: 0.8 }, fp4: { tp: 4, mem: 0.85 } }, + b300: { bf16: { tp: 4, mem: 0.8 }, fp8: { tp: 2, mem: 0.8 }, fp4: { tp: 2, mem: 0.8 } }, + mi300x: { bf16: { tp: 8, mem: 0.8 }, fp8: { tp: 4, mem: 0.8 } }, + mi325x: { bf16: { tp: 4, mem: 0.8 }, fp8: { tp: 2, mem: 0.8 } }, + mi355x: { bf16: { tp: 4, mem: 0.8 }, fp8: { tp: 2, mem: 0.8 } } + }, + '122b': { + h100: { bf16: { tp: 4, mem: 0.8 }, fp8: { tp: 2, mem: 0.8 } }, + h200: { bf16: { tp: 2, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + b200: { bf16: { tp: 2, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + b300: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + mi300x: { bf16: { tp: 2, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + mi325x: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + mi355x: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } } + }, + '35b': { + h100: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + h200: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + b200: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + b300: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + mi300x: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + mi325x: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + mi355x: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } } + }, + '27b': { + h100: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + h200: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + b200: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + b300: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + mi300x: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + mi325x: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + mi355x: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } } + }, + '9b': { + h100: { bf16: { tp: 1, mem: 0.8 } }, + h200: { bf16: { tp: 1, mem: 0.8 } }, + b200: { bf16: { tp: 1, mem: 0.8 } }, + b300: { bf16: { tp: 1, mem: 0.8 } }, + mi300x: { bf16: { tp: 1, mem: 0.8 } }, + mi325x: { bf16: { tp: 1, mem: 0.8 } }, + mi355x: { bf16: { tp: 1, mem: 0.8 } } + }, + '4b': { + h100: { bf16: { tp: 1, mem: 0.8 } }, + h200: { bf16: { tp: 1, mem: 0.8 } }, + b200: { bf16: { tp: 1, mem: 0.8 } }, + b300: { bf16: { tp: 1, mem: 0.8 } }, + mi300x: { bf16: { tp: 1, mem: 0.8 } }, + mi325x: { bf16: { tp: 1, mem: 0.8 } }, + mi355x: { bf16: { tp: 1, mem: 0.8 } } + }, + '2b': { + h100: { bf16: { tp: 1, mem: 0.8 } }, + h200: { bf16: { tp: 1, mem: 0.8 } }, + b200: { bf16: { tp: 1, mem: 0.8 } }, + b300: { bf16: { tp: 1, mem: 0.8 } }, + mi300x: { bf16: { tp: 1, mem: 0.8 } }, + mi325x: { bf16: { tp: 1, mem: 0.8 } }, + mi355x: { bf16: { tp: 1, mem: 0.8 } } + }, + '0.8b': { + h100: { bf16: { tp: 1, mem: 0.8 } }, + h200: { bf16: { tp: 1, mem: 0.8 } }, + b200: { bf16: { tp: 1, mem: 0.8 } }, + b300: { bf16: { tp: 1, mem: 0.8 } }, + mi300x: { bf16: { tp: 1, mem: 0.8 } }, + mi325x: { bf16: { tp: 1, mem: 0.8 } }, + mi355x: { bf16: { tp: 1, mem: 0.8 } } + } + }; + + const resolveItems = (option, vals) => + typeof option.getDynamicItems === 'function' ? option.getDynamicItems(vals) : option.items; + + const getInitialState = () => { + const initialState = {}; + for (const [key, option] of Object.entries(options)) { + const items = resolveItems(option, initialState); + const def = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled) || items[0]; + initialState[key] = def.id; + } + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + // When hardware or model changes, re-resolve dynamic selections to stay consistent. + useEffect(() => { + setValues(prev => { + const next = { ...prev }; + for (const [key, option] of Object.entries(options)) { + if (typeof option.getDynamicItems !== 'function') continue; + const items = option.getDynamicItems(next); + const current = items.find(i => i.id === next[key]); + if (!current || current.disabled) { + const fallback = items.find(i => i.default && !i.disabled) || items.find(i => !i.disabled); + if (fallback) next[key] = fallback.id; + } + } + return next; + }); + }, [values.hardware, values.model]); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command — must produce byte-identical output to sgl-cookbook's + // config.generateCommand(values) for every valid combination. + const generateCommand = () => { + const { model, hardware, quantization, speculative, mambaCache } = values; + + const hwConfig = modelConfigs[model]?.[hardware]?.[quantization]; + if (!hwConfig) { + if (quantization === 'fp4') { + return '# FP4 requires B200/B300 (Blackwell) and is only available for Qwen3.5-397B-A17B'; + } + return '# Please select a valid hardware and quantization combination'; + } + + let modelName; + if (quantization === 'fp4') { + modelName = 'nvidia/Qwen3.5-397B-A17B-NVFP4'; + } else { + const suffix = MODEL_SUFFIX[model]; + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + modelName = `Qwen/Qwen3.5-${suffix}${quantSuffix}`; + } + + const tpValue = hwConfig.tp; + const epValue = hwConfig.ep; + const memFraction = hwConfig.mem; + + // Initialize the base command + let cmd = `sglang serve --model-path ${modelName}`; + if (tpValue > 1) { + cmd += ` \\\n --tp ${tpValue}`; + } + if (epValue) { + cmd += ` \\\n --expert-parallel-size ${epValue}`; + } + + // Force Mamba V1 for AMD GPUs (V2 requires FLA backend) + // Force Mamba V2 when MTP is enabled + const amdGpus = ['mi300x', 'mi325x', 'mi355x']; + const actualMambaCache = amdGpus.includes(hardware) ? 'v1' : (speculative === 'enabled' ? 'v2' : mambaCache); + + // Apply commandRules from options (reasoning, toolcall, speculative, mambaCache) + // Skip quantization and model (handled via model name) + const commandRules = { + reasoning: (value) => value === 'enabled' ? '--reasoning-parser qwen3' : null, + toolcall: (value) => value === 'enabled' ? '--tool-call-parser qwen3_coder' : null, + speculative: (value) => value === 'enabled' ? '--speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4' : null, + mambaCache: (value) => value === 'v2' ? '--mamba-scheduler-strategy extra_buffer' : null, + }; + + // Iterate options in order, applying commandRules + for (const [key, option] of Object.entries(options)) { + if (key === 'quantization' || key === 'model') continue; + // Skip options that don't pass their condition + if (option.condition && !option.condition(values)) continue; + const rule = commandRules[key]; + if (rule) { + const adjustedValue = key === 'mambaCache' ? actualMambaCache : values[key]; + const result = rule(adjustedValue); + if (result) { + cmd += ` \\\n ${result}`; + } + } + } + + // Chunked prefill tuning for H200 FP8 + MTP (validated on H200 only) + if (hardware === 'h200' && quantization === 'fp8' && speculative === 'enabled') { + cmd += ` \\\n --max-running-requests 128`; + cmd += ` \\\n --chunked-prefill-size 16384`; + cmd += ` \\\n --tokenizer-worker-num 6`; + } + + // Enable allreduce fusion for all Qwen3.5 configs (skip for FP4: benchmark only enables this for TP>=8). + if (quantization !== 'fp4') { + cmd += ` \\\n --enable-flashinfer-allreduce-fusion`; + } + + // H200 FP8-specific optimizations + if (hardware === 'h200' && quantization === 'fp8') { + cmd += ` \\\n --attention-backend flashinfer`; + if (MOE_MODELS.has(model)) { + cmd += ` \\\n --mamba-ssm-dtype bfloat16`; + } + } + + // Append backend configurations + if (hardware === 'b200' || hardware === 'b300') { + cmd += ` \\\n --attention-backend trtllm_mha`; + } + + // Append AMD GPU-specific backend configurations + if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd += ` \\\n --attention-backend triton`; + } + + // Tokenizer workers for H200 and B200/B300 + if (hardware === 'h200' || hardware === 'b200' || hardware === 'b300') { + if (speculative === 'disabled') { + cmd += ` \\\n --tokenizer-worker-num 6`; + } + } + + // FP4-specific backend settings + if (quantization === 'fp4') { + cmd += ' \\\n --quantization modelopt_fp4'; + cmd += ' \\\n --fp4-gemm-backend flashinfer_cutlass'; + cmd += ' \\\n --kv-cache-dtype fp8_e4m3'; + cmd += ' \\\n --moe-runner-backend flashinfer_trtllm'; + cmd += ' \\\n --chunked-prefill-size 32768'; + cmd += ' \\\n --max-prefill-tokens 32768'; + cmd += ' \\\n --max-running-requests 128'; + cmd += ' \\\n --stream-interval 30'; + cmd += ' \\\n --disable-radix-cache'; + } + + // Add memory fraction last + cmd += ` \\\n --mem-fraction-static ${memFraction}`; + + return cmd; + }; + + // Styles + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.4 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (typeof option.condition === 'function' && !option.condition(values)) return null; + const items = resolveItems(option, values); + return ( +
      +
      {option.title}
      +
      + {items.map(item => { + const isChecked = values[option.name] === item.id; + const isDisabled = !!item.disabled; + return ( + + ); + })} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/qwen36-deployment.jsx b/docs_new/src/snippets/autoregressive/qwen36-deployment.jsx new file mode 100644 index 000000000..af23db105 --- /dev/null +++ b/docs_new/src/snippets/autoregressive/qwen36-deployment.jsx @@ -0,0 +1,219 @@ +export const Qwen36Deployment = () => { + // Config mirrors sgl-cookbook src/components/autoregressive/Qwen36ConfigGenerator/index.js. + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h100', label: 'H100', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'b200', label: 'B200', default: false }, + ], + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'fp8', label: 'FP8', default: true }, + { id: 'bf16', label: 'BF16', default: false }, + ], + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true }, + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser qwen3' : null, + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true }, + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser qwen3_coder' : null, + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding (MTP)', + items: [ + { id: 'disabled', label: 'Disabled', default: false }, + { id: 'enabled', label: 'Enabled', default: true }, + ], + commandRule: (value) => value === 'enabled' ? '--speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4' : null, + }, + mambaCache: { + name: 'mambaCache', + title: 'Mamba Radix Cache', + getDynamicItems: (values) => { + const mtpEnabled = values.speculative === 'enabled'; + if (mtpEnabled) { + return [ + { id: 'v1', label: 'V1', default: false, disabled: true }, + { id: 'v2', label: 'V2', default: true }, + ]; + } + return [ + { id: 'v1', label: 'V1', default: true }, + { id: 'v2', label: 'V2', default: false }, + ]; + }, + commandRule: (value) => value === 'v2' ? '--mamba-scheduler-strategy extra_buffer' : null, + }, + }; + + const modelConfigs = { + h100: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + h200: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + b200: { bf16: { tp: 1, mem: 0.8 }, fp8: { tp: 1, mem: 0.8 } }, + }; + + const resolveItems = (option, vals) => + typeof option.getDynamicItems === 'function' ? option.getDynamicItems(vals) : option.items; + + const getInitialState = () => { + const initialState = {}; + for (const [key, option] of Object.entries(options)) { + const items = resolveItems(option, initialState); + const def = items.find((item) => item.default && !item.disabled) || items.find((item) => !item.disabled) || items[0]; + initialState[key] = def.id; + } + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + useEffect(() => { + setValues((prev) => { + const next = { ...prev }; + for (const [key, option] of Object.entries(options)) { + if (typeof option.getDynamicItems !== 'function') continue; + const items = option.getDynamicItems(next); + const current = items.find((item) => item.id === next[key]); + if (!current || current.disabled) { + const fallback = items.find((item) => item.default && !item.disabled) || items.find((item) => !item.disabled); + if (fallback) next[key] = fallback.id; + } + } + return next; + }); + }, [values.speculative]); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const generateCommand = () => { + const { hardware, quantization, speculative } = values; + const hwConfig = modelConfigs[hardware]?.[quantization]; + if (!hwConfig) { + return '# Please select a valid hardware and quantization combination'; + } + + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `Qwen/Qwen3.6-35B-A3B${quantSuffix}`; + + let cmd = ''; + if (speculative === 'enabled') { + cmd += 'SGLANG_ENABLE_SPEC_V2=1 '; + } + + cmd += `sglang serve --model-path ${modelName}`; + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + } + + const adjustedValues = { + ...values, + mambaCache: speculative === 'enabled' ? 'v2' : values.mambaCache, + }; + + for (const [key, option] of Object.entries(options)) { + if (key === 'quantization' || key === 'hardware') continue; + if (!option.commandRule) continue; + const rule = option.commandRule(adjustedValues[key]); + if (rule) { + cmd += ` \\\n ${rule}`; + } + } + + if (hardware === 'b200') { + cmd += ` \\\n --attention-backend trtllm_mha`; + } + + cmd += ` \\\n --mem-fraction-static ${hwConfig.mem}`; + return cmd; + }; + + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.4 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + const items = resolveItems(option, values); + return ( +
      +
      {option.title}
      +
      + {items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = !!item.disabled; + return ( + + ); + })} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/ring-25-1t-deployment.jsx b/docs_new/src/snippets/autoregressive/ring-25-1t-deployment.jsx new file mode 100644 index 000000000..6ffa5169e --- /dev/null +++ b/docs_new/src/snippets/autoregressive/ring-25-1t-deployment.jsx @@ -0,0 +1,217 @@ +export const Ring251TDeployment = () => { + // Config mirrors sgl-cookbook src/components/autoregressive/Ring25ConfigGenerator/index.js. + // + // GPU requirements: + // H200 / B200 / GB200 / GB300 / MI355X: single-node (tp per platform) + // MI300X / MI325X: two nodes, tp-size 8, pp-size 2 (multi-node scripts) + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'b200', label: 'B200', default: false }, + { id: 'gb200', label: 'GB200', default: false }, + { id: 'gb300', label: 'GB300', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ] + } + }; + + const modelConfigs = { + h200: { fp8: { tp: 8 } }, + b200: { fp8: { tp: 8 } }, + gb200: { fp8: { tp: 4 } }, + gb300: { fp8: { tp: 4 } }, + mi300x: { fp8: { tp: 8, pp: 2, nnodes: 2 } }, + mi325x: { fp8: { tp: 8, pp: 2, nnodes: 2 } }, + mi355x: { fp8: { tp: 8 } } + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = option.items.filter(item => item.default).map(item => item.id); + } else { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues(prev => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } else { + return { ...prev, [optionName]: currentValues.filter(id => id !== itemId) }; + } + }); + }; + + // Generate command — byte-identical to sgl-cookbook Ring25ConfigGenerator + const generateCommand = () => { + const { hardware, reasoning, toolcall } = values; + const modelName = 'inclusionAI/Ring-2.5-1T'; + const amdMultiNode = hardware === 'mi300x' || hardware === 'mi325x'; + + // Extra flags from reasoning / toolcall + const extraFlags = []; + if (reasoning === 'enabled') extraFlags.push('--reasoning-parser deepseek-r1'); + if (toolcall === 'enabled') extraFlags.push('--tool-call-parser qwen'); + + if (amdMultiNode) { + const hwConfig = modelConfigs[hardware].fp8; + const tpSize = hwConfig.tp; + const ppSize = hwConfig.pp; + + const buildAmdNodeCmd = (nodeRank) => { + let cmd = 'sglang serve \\\n'; + cmd += `--model-path ${modelName} \\\n`; + cmd += '--trust-remote-code \\\n'; + cmd += `--tp-size ${tpSize} \\\n`; + cmd += `--pp-size ${ppSize} \\\n`; + cmd += `--nnodes ${hwConfig.nnodes} \\\n`; + cmd += `--node-rank ${nodeRank} \\\n`; + if (nodeRank === 0) { + cmd += '--host 0.0.0.0 \\\n'; + cmd += '--port 30000 \\\n'; + } + cmd += '--dist-init-addr ${MASTER_IP}:${DIST_PORT} \\\n'; + cmd += '--attention-backend triton \\\n'; + cmd += '--model-loader-extra-config \'{"enable_multithread_load": "true","num_threads": 64}\' \\\n'; + cmd += '--mem-frac 0.95'; + extraFlags.forEach((flag) => { + cmd += ` \\\n${flag}`; + }); + return cmd; + }; + + const envBlock = + 'export MASTER_IP= # Replace with the IP of Node 0\n' + + 'export PORT=30000\n' + + 'export DIST_PORT=20000\n' + + '# Replace with your actual NIC interface name\n' + + 'export GLOO_SOCKET_IFNAME=\n' + + 'export TP_SOCKET_IFNAME=\n'; + + let out = envBlock + '\n'; + + out += '\n# Node 0:\n'; + out += buildAmdNodeCmd(0); + + out += '\n\n\n# Node 1:\n'; + out += buildAmdNodeCmd(1); + + return out; + } + + // Single-node path (H200, B200, GB200, GB300, MI355X) + const hwConfig = modelConfigs[hardware].fp8; + const tpValue = hwConfig.tp; + + let cmd = 'sglang serve \\\n'; + cmd += ` --model-path ${modelName}`; + cmd += ` \\\n --tp ${tpValue}`; + cmd += ' \\\n --trust-remote-code'; + + extraFlags.forEach((flag) => { + cmd += ` \\\n ${flag}`; + }); + + return cmd; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const disabledStyle = { cursor: 'not-allowed', opacity: 0.5 }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.type === 'checkbox' ? ( + option.items.map(item => { + const isChecked = (values[option.name] || []).includes(item.id); + const isItemDisabled = item.required; + return ( + + ); + }) + ) : ( + option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + }) + )} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/step-35-deployment.jsx b/docs_new/src/snippets/autoregressive/step-35-deployment.jsx new file mode 100644 index 000000000..9e633b64c --- /dev/null +++ b/docs_new/src/snippets/autoregressive/step-35-deployment.jsx @@ -0,0 +1,393 @@ +export const Step35Deployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'h200', label: 'H200', default: true }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi350x', label: 'MI350X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '196b', label: '196B', subtitle: 'MOE', default: true }, + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + reasoningParser: { + name: 'reasoningParser', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser step3p5' : null + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser step3p5' : null + }, + speculative: { + name: 'speculative', + title: 'Speculative Decoding', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => { + if (value !== 'enabled') return null; + + let cmd = '--speculative-algorithm EAGLE \\\n --speculative-num-steps 3 \\\n --speculative-eagle-topk 1 \\\n --speculative-num-draft-tokens 4 \\\n --enable-multi-layer-eagle '; + + return cmd; + } + } + }; + + const modelConfigs = { + '196b': { + baseName: '196b', + isMOE: true, + h200: { tp: 4, bf16: true }, + mi300x: { tp: 4, bf16: true }, + mi325x: { tp: 4, bf16: true }, + mi350x: { tp: 4, bf16: true }, + mi355x: { tp: 4, bf16: true }, + }, + }; + + const generateCommand = (values) => { + const { hardware, modelsize: modelSize, quantization, reasoningParser } = values; + const isAMD = hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi350x' || hardware === 'mi355x'; + + const modelSizeConfig = modelConfigs[modelSize]; + const hwConfig = modelSizeConfig[hardware]; + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `stepfun-ai/Step-3.5-Flash${quantSuffix}`; + + let tpValue = hwConfig.tp; + + let cmd = ''; + + cmd += 'sglang serve \\\n'; + cmd += ` --model-path ${modelName}`; + + if (tpValue > 1) { + cmd += ` \\\n --tp ${tpValue}`; + } + // EP required for FP8, and for AMD BF16 (AITER CK GEMM N=320 crash without EP) + if (quantSuffix === '-FP8' || isAMD) { + cmd += ` \\\n --ep ${tpValue}`; + } + + // Trust remote code for custom architecture + cmd += ' \\\n --trust-remote-code'; + + for (const [key, option] of Object.entries(options)) { + if (option.commandRule) { + const rule = option.commandRule(values[key], values); + + if (rule) { + cmd += ` \\\n ${rule}`; + } + } + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/autoregressive/step-3vl-10b-deployment.jsx b/docs_new/src/snippets/autoregressive/step-3vl-10b-deployment.jsx new file mode 100644 index 000000000..d6e80970a --- /dev/null +++ b/docs_new/src/snippets/autoregressive/step-3vl-10b-deployment.jsx @@ -0,0 +1,383 @@ +export const Step3VL10BDeployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h100', label: 'H100', default: false }, + { id: 'h200', label: 'H200', default: false }, + { id: 'a100', label: 'A100', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '10b', label: '10B', subtitle: 'Dense', default: true } + ] + }, + quantization: { + name: 'quantization', + title: 'Quantization', + items: [ + { id: 'bf16', label: 'BF16', default: true }, + { id: 'fp8', label: 'FP8', default: false } + ] + }, + reasoning: { + name: 'reasoning', + title: 'Reasoning Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--reasoning-parser deepseek-r1' : null + }, + toolcall: { + name: 'toolcall', + title: 'Tool Call Parser', + items: [ + { id: 'disabled', label: 'Disabled', default: true }, + { id: 'enabled', label: 'Enabled', default: false } + ], + commandRule: (value) => value === 'enabled' ? '--tool-call-parser hermes' : null + } + }; + + const modelConfigs = { + '10b': { + baseName: '10B', + isMOE: false, + b200: { tp: 1, bf16: true, fp8: true }, + h100: { tp: 1, bf16: true, fp8: true }, + h200: { tp: 1, bf16: true, fp8: true }, + a100: { tp: 1, bf16: true, fp8: true }, + mi300x: { tp: 1, bf16: true, fp8: true }, + mi325x: { tp: 1, bf16: true, fp8: true }, + mi355x: { tp: 1, bf16: true, fp8: true } + } + }; + + const generateCommand = (values) => { + const { hardware, modelsize: modelSize, quantization } = values; + + const modelSizeConfig = modelConfigs[modelSize]; + if (!modelSizeConfig) { + return `# Error: Unknown model size: ${modelSize}`; + } + + const hwConfig = modelSizeConfig[hardware]; + if (!hwConfig) { + return `# Error: Unknown hardware platform: ${hardware}`; + } + + const quantSuffix = quantization === 'fp8' ? '-FP8' : ''; + const modelName = `stepfun-ai/Step3-VL-10B${quantSuffix}`; + + let cmd = 'python -m sglang.launch_server \\\n'; + cmd += ` --model ${modelName}`; + + if (hwConfig.tp > 1) { + cmd += ` \\\n --tp ${hwConfig.tp}`; + } + + cmd += ' \\\n --host 0.0.0.0 \\\n --port 30000'; + if (hardware === 'mi300x' || hardware === 'mi325x' || hardware === 'mi355x') { + cmd += ' \\\n --attention-backend triton'; + } + cmd += ' \\\n --trust-remote-code'; + + for (const [key, option] of Object.entries(options)) { + if (option.commandRule) { + const rule = option.commandRule(values[key]); + if (rule) { + cmd += ` \\\n ${rule}`; + } + } + } + + return cmd; + }; + + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = generateCommand(values); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + return ( + + ); + }) + )} +
      +
      + ); + })} +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/diffusion/flux-deployment.jsx b/docs_new/src/snippets/diffusion/flux-deployment.jsx new file mode 100644 index 000000000..2a004865c --- /dev/null +++ b/docs_new/src/snippets/diffusion/flux-deployment.jsx @@ -0,0 +1,335 @@ +export const FluxDeployment = () => { + const config = { + modelFamily: 'FLUX', + + options: { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi355x', label: 'MI355X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + ] + }, + version: { + name: 'version', + title: 'Model Version', + items: [ + { id: 'flux1-dev', label: 'FLUX.1-dev', subtitle: '12B', default: true }, + { id: 'flux2-dev', label: 'FLUX.2-dev', subtitle: '32B', default: false } + ] + } + }, + + modelConfigs: { + 'flux1-dev': { repoId: 'black-forest-labs/FLUX.1-dev' }, + 'flux2-dev': { repoId: 'black-forest-labs/FLUX.2-dev' } + }, + + generateCommand: function(values) { + const { version } = values; + const config = this.modelConfigs[version]; + + return `sglang serve \\ + --model-path ${config.repoId} \\ + --ulysses-degree=1 \\ + --ring-degree=1`; + } + }; + + if (!config || !config.options) { + return
      Error: Invalid configuration provided
      ; + } + + const getInitialState = () => { + const initialState = {}; + Object.entries(config.options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(config.options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = config.generateCommand ? config.generateCommand.call(config, values) : ''; + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(config.options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + + return ( + + ); + }) + )} +
      +
      + ); + })} + +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/diffusion/mova-deployment.jsx b/docs_new/src/snippets/diffusion/mova-deployment.jsx new file mode 100644 index 000000000..aabd6284e --- /dev/null +++ b/docs_new/src/snippets/diffusion/mova-deployment.jsx @@ -0,0 +1,115 @@ +export const MOVADeployment = () => { + // Config options + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'a100', label: 'A100', default: false } + ] + }, + resolution: { + name: 'resolution', + title: 'Resolution', + items: [ + { id: '360p', label: '360p', subtitle: 'Fast inference, lower VRAM', default: true }, + { id: '720p', label: '720p', subtitle: 'Higher resolution', default: false } + ] + } + }; + + // Initialize state + const getInitialState = () => { + const initialState = {}; + Object.entries(options).forEach(([key, option]) => { + const defaultItem = option.items.find(item => item.default); + initialState[key] = defaultItem ? defaultItem.id : option.items[0].id; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues(prev => ({ ...prev, [optionName]: value })); + }; + + // Generate command + const generateCommand = () => { + const { resolution } = values; + const modelPath = resolution === '720p' + ? 'OpenMOSS-Team/MOVA-720p' + : 'OpenMOSS-Team/MOVA-360p'; + + return `export SG_OUTPUT_DIR=/root/output_mova +mkdir -p "$SG_OUTPUT_DIR" + +sglang serve \\ + --model-path ${modelPath} \\ + --host 0.0.0.0 \\ + --port 30002 \\ + --adjust-frames false \\ + --num-gpus 8 \\ + --ring-degree 2 \\ + --ulysses-degree 4 \\ + --tp 1 \\ + --enable-torch-compile \\ + --save-output \\ + --output-dir "$SG_OUTPUT_DIR"`; + }; + + // Styles - with dark mode support + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; + const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + })} +
      +
      + ))} +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/diffusion/qwen-image-deployment.jsx b/docs_new/src/snippets/diffusion/qwen-image-deployment.jsx new file mode 100644 index 000000000..1328c819d --- /dev/null +++ b/docs_new/src/snippets/diffusion/qwen-image-deployment.jsx @@ -0,0 +1,316 @@ +export const QwenImageDeployment = () => { + const config = { + modelFamily: 'Qwen-Image', + + options: { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + } + }, + + generateCommand: function(values) { + return `sglang serve \\ + --model-path Qwen/Qwen-Image \\ + --ulysses-degree=1 \\ + --ring-degree=1`; + } + }; + + if (!config || !config.options) { + return
      Error: Invalid configuration provided
      ; + } + + const getInitialState = () => { + const initialState = {}; + Object.entries(config.options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(config.options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = config.generateCommand ? config.generateCommand.call(config, values) : ''; + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(config.options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + + return ( + + ); + }) + )} +
      +
      + ); + })} + +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/diffusion/qwen-image-edit-deployment.jsx b/docs_new/src/snippets/diffusion/qwen-image-edit-deployment.jsx new file mode 100644 index 000000000..866cbd70e --- /dev/null +++ b/docs_new/src/snippets/diffusion/qwen-image-edit-deployment.jsx @@ -0,0 +1,319 @@ +export const QwenImageEditDeployment = () => { + const config = { + modelFamily: 'Qwen-Image-Edit', + + options: { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'h100', label: 'H100', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false } + ] + } + }, + + generateCommand: function(values) { + return `sglang serve \\ + --model-path Qwen/Qwen-Image-Edit-2511 \\ + --ulysses-degree=1 \\ + --ring-degree=1`; + } + }; + + if (!config || !config.options) { + return
      Error: Invalid configuration provided
      ; + } + + const getInitialState = () => { + const initialState = {}; + Object.entries(config.options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(config.options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = config.generateCommand ? config.generateCommand.call(config, values) : ''; + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(config.options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + + return ( + + ); + }) + )} +
      +
      + ); + })} + +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/diffusion/wan21-deployment.jsx b/docs_new/src/snippets/diffusion/wan21-deployment.jsx new file mode 100644 index 000000000..e1f44a60e --- /dev/null +++ b/docs_new/src/snippets/diffusion/wan21-deployment.jsx @@ -0,0 +1,337 @@ +export const Wan21Deployment = () => { + const MODELSIZE_DEFS = [ + { + id: '14b', + label: '14B', + subtitle: 'High-quality, 480P/720P', + default: true, + validTasks: ['t2v', 'i2v'], + }, + { + id: '1_3b', + label: '1.3B', + subtitle: 'Lightweight, 480P', + default: false, + validTasks: ['t2v'], + }, + ]; + + const modelConfigs = { + 't2v-14b': { + repoId: 'Wan-AI/Wan2.1-T2V-14B-Diffusers', + supportedLoras: [ + { id: 'general', label: 'General Wan2.1 LoRA', path: 'NIVEDAN/wan2.1-lora' }, + ], + }, + 't2v-1_3b': { + repoId: 'Wan-AI/Wan2.1-T2V-1.3B-Diffusers', + supportedLoras: [], + }, + 'i2v-14b': { + repoId: 'Wan-AI/Wan2.1-I2V-14B-720P-Diffusers', + supportedLoras: [ + { id: 'fight', label: 'Fight Style LoRA', path: 'valiantcat/Wan2.1-Fight-LoRA' }, + ], + }, + }; + + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [{ id: 'mi300x', label: 'MI300X/MI325X/MI355X', default: true }], + }, + task: { + name: 'task', + title: 'Task Type', + items: [ + { id: 't2v', label: 'Text-to-Video (T2V)', default: true }, + { id: 'i2v', label: 'Image-to-Video (I2V)', default: false }, + ], + }, + modelsize: { + name: 'modelsize', + title: 'Model Variant', + items: MODELSIZE_DEFS.map(({ validTasks, ...rest }) => rest), + }, + bestPractice: { + name: 'bestPractice', + title: 'Sequence Parallelism', + items: [ + { id: 'off', label: 'Standard', default: true }, + { id: 'on', label: 'Best Practice (4 GPUs)', default: false }, + ], + }, + }; + + function modelSizeItemsForTask(task) { + return MODELSIZE_DEFS.filter((item) => item.validTasks.includes(task)).map( + ({ validTasks, ...rest }) => rest + ); + } + + const getInitialState = () => { + const task = 't2v'; + const sizes = modelSizeItemsForTask(task); + const modelsize = sizes.find((size) => size.default)?.id || sizes[0].id; + const configKey = `${task}-${modelsize}`; + const supported = modelConfigs[configKey]?.supportedLoras || []; + return { + hardware: 'mi300x', + task, + modelsize, + bestPractice: 'off', + selectedLoraPath: supported[0]?.path ?? '', + }; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, itemId) => { + setValues((prev) => { + let next = { ...prev, [optionName]: itemId }; + + if (optionName === 'task') { + const sizes = modelSizeItemsForTask(itemId); + if (!sizes.some((size) => size.id === next.modelsize)) { + next.modelsize = sizes.find((size) => size.default)?.id || sizes[0].id; + } + } + + if (optionName === 'task' || optionName === 'modelsize') { + const configKey = `${next.task}-${next.modelsize}`; + const supported = modelConfigs[configKey]?.supportedLoras || []; + if (supported.length === 0) { + next.selectedLoraPath = ''; + } else if ( + next.selectedLoraPath && + !supported.some((lora) => lora.path === next.selectedLoraPath) + ) { + next.selectedLoraPath = supported[0].path; + } + } + + return next; + }); + }; + + const handleLoraToggle = (path) => { + setValues((prev) => ({ + ...prev, + selectedLoraPath: prev.selectedLoraPath === path ? '' : path, + })); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const generateCommand = () => { + const { task, modelsize, selectedLoraPath, bestPractice } = values; + const configKey = `${task}-${modelsize}`; + const config = modelConfigs[configKey]; + + if (!config) { + return '# Error: Invalid configuration'; + } + + let command = `sglang serve \\\n --model-path ${config.repoId} \\\n --dit-layerwise-offload true`; + + if (bestPractice === 'on') { + command += ` \\\n --num-gpus 4 \\\n --ulysses-degree 2 \\\n --enable-cfg-parallel`; + } + + if (selectedLoraPath) { + command += ` \\\n --lora-path ${selectedLoraPath}`; + } + + return command; + }; + + const modelSizeItems = modelSizeItemsForTask(values.task); + const loraConfigKey = `${values.task}-${values.modelsize}`; + const availableLoras = modelConfigs[loraConfigKey]?.supportedLoras || []; + const command = generateCommand(); + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(options).map(([key, option]) => ( +
      +
      {option.title}
      +
      + {(key === 'modelsize' ? modelSizeItems : option.items).map((item) => { + const isChecked = values[option.name] === item.id; + return ( + + ); + })} +
      +
      + ))} + + {availableLoras.length > 0 && ( +
      +
      Select LoRA Model (Only some of the supported LoRAs are listed here)
      +
      + {availableLoras.map((lora) => { + const isChecked = values.selectedLoraPath === lora.path; + return ( + + ); + })} +
      +
      + )} + +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/diffusion/wan22-deployment.jsx b/docs_new/src/snippets/diffusion/wan22-deployment.jsx new file mode 100644 index 000000000..fe749d531 --- /dev/null +++ b/docs_new/src/snippets/diffusion/wan22-deployment.jsx @@ -0,0 +1,216 @@ + + export const Wan22Deployment = () => { + const options = { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'b200', label: 'B200', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'mi300x', label: 'MI300X', default: false }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false }, + ], + }, + task: { + name: 'task', + title: 'Task Type', + items: [ + { id: 'i2v', label: 'Image-to-Video (I2V)', default: false }, + { id: 't2v', label: 'Text-to-Video (T2V)', default: true }, + { id: 'ti2v', label: 'Text/Image-to-Video (TI2V)', default: false }, + ], + }, + modelsize: { + name: 'modelsize', + title: 'Model Size', + items: [ + { id: '14b', label: 'A14B', subtitle: 'Diffusers (A14B)', default: true, validTasks: ['i2v', 't2v'] }, + { id: '5b', label: '5B', subtitle: 'Diffusers', default: false, validTasks: ['ti2v'] }, + ], + }, + bestPractice: { + name: 'bestPractice', + title: 'Sequence Parallelism', + items: [ + { id: 'off', label: 'Standard', default: true }, + { id: 'on', label: 'Best Practice (4 GPUs)', default: false }, + ], + }, + }; + + const modelConfigs = { + 'i2v-14b': { + repoId: 'Wan-AI/Wan2.2-I2V-A14B-Diffusers', + supportedLoras: [{ id: 'distill', path: 'lightx2v/Wan2.2-Distill-Loras' }], + }, + 't2v-14b': { + repoId: 'Wan-AI/Wan2.2-T2V-A14B-Diffusers', + supportedLoras: [{ id: 'arcane', path: 'Cseti/wan2.2-14B-Arcane_Jinx-lora-v1' }], + }, + 'ti2v-5b': { + repoId: 'Wan-AI/Wan2.2-TI2V-5B-Diffusers', + supportedLoras: [], + }, + }; + + const getInitialState = () => ({ + hardware: 'b200', + task: 't2v', + modelsize: '14b', + bestPractice: 'off', + selectedLoraPath: 'none', + }); + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + const availableLoras = (() => { + const configKey = `${values.task}-${values.modelsize}`; + return modelConfigs[configKey]?.supportedLoras || []; + })(); + + const handleRadioChange = (optionName, itemId) => { + setValues((prev) => { + const next = { ...prev, [optionName]: itemId }; + if (optionName === 'task') { + next.modelsize = itemId === 'ti2v' ? '5b' : '14b'; + } + + const configKey = `${next.task}-${next.modelsize}`; + const nextSupported = modelConfigs[configKey]?.supportedLoras || []; + const isValid = nextSupported.some((lora) => lora.path === prev.selectedLoraPath); + if (!isValid) { + next.selectedLoraPath = 'none'; + } + return next; + }); + }; + + const handleLoraToggle = (path) => { + setValues((prev) => ({ + ...prev, + selectedLoraPath: prev.selectedLoraPath === path ? 'none' : path, + })); + }; + + const generateCommand = () => { + const { task, modelsize, selectedLoraPath, bestPractice } = values; + const configKey = `${task}-${modelsize}`; + const config = modelConfigs[configKey]; + if (!config) { + return '# Error: Invalid configuration'; + } + + let command = `sglang serve \\\n --model-path ${config.repoId} \\\n --dit-layerwise-offload true`; + if (bestPractice === 'on') { + command += ` \\\n --num-gpus 4 \\\n --ulysses-degree 2 \\\n --enable-cfg-parallel`; + } + if (selectedLoraPath && selectedLoraPath !== 'none') { + command += ` \\\n --lora-path ${selectedLoraPath}`; + } + return command; + }; + +const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; +const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'center', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; +const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '140px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit' }; +const itemsStyle = { display: 'flex', rowGap: '2px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center', flex: 1 }; +const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', flex: 1, background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; +const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; +const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; +const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + return ( +
      + {Object.entries(options).map(([key, option]) => { + const itemsToDisplay = key === 'modelsize' + ? option.items.filter((item) => item.validTasks.includes(values.task)) + : option.items; + + return ( +
      +
      {option.title}
      +
      + {itemsToDisplay.map((item) => { + const isChecked = values[option.name] === item.id; + return ( + + ); + })} +
      +
      + ); + })} + +
      +
      Select LoRA Model (Only some of the supported LoRAs are listed here)
      +
      + {availableLoras.length === 0 && ( +
      + No LoRA models available for this model. +
      + )} + {availableLoras.map((lora) => { + const isSelected = values.selectedLoraPath === lora.path; + return ( + + ); + })} +
      +
      + +
      +
      Run this Command:
      +
      {generateCommand()}
      +
      +
      + ); + }; diff --git a/docs_new/src/snippets/diffusion/zimage-turbo-deployment.jsx b/docs_new/src/snippets/diffusion/zimage-turbo-deployment.jsx new file mode 100644 index 000000000..71d9d80f8 --- /dev/null +++ b/docs_new/src/snippets/diffusion/zimage-turbo-deployment.jsx @@ -0,0 +1,319 @@ +export const ZImageTurboDeployment = () => { + const config = { + modelFamily: 'Z-Image-Turbo', + + options: { + hardware: { + name: 'hardware', + title: 'Hardware Platform', + items: [ + { id: 'mi300x', label: 'MI300X', default: true }, + { id: 'mi325x', label: 'MI325X', default: false }, + { id: 'mi355x', label: 'MI355X', default: false }, + { id: 'b200', label: 'B200', default: true }, + { id: 'h200', label: 'H200', default: false }, + { id: 'h100', label: 'H100', default: false } + ] + } + }, + + generateCommand: function(values) { + return `sglang serve \\ + --model-path Tongyi-MAI/Z-Image-Turbo \\ + --ulysses-degree=1 \\ + --ring-degree=1`; + } + }; + + if (!config || !config.options) { + return
      Error: Invalid configuration provided
      ; + } + + const getInitialState = () => { + const initialState = {}; + Object.entries(config.options).forEach(([key, option]) => { + if (option.type === 'checkbox') { + initialState[key] = (option.items || []) + .filter((item) => item.default) + .map((item) => item.id); + return; + } + + if (option.type === 'text') { + initialState[key] = option.default || ''; + return; + } + + let items = option.items || []; + if (option.getDynamicItems) { + const defaultValues = {}; + Object.entries(config.options).forEach(([innerKey, innerOption]) => { + if (innerOption.type === 'checkbox') { + defaultValues[innerKey] = (innerOption.items || []) + .filter((item) => item.default) + .map((item) => item.id); + } else if (innerOption.type === 'text') { + defaultValues[innerKey] = innerOption.default || ''; + } else if (innerOption.items && innerOption.items.length > 0) { + const defaultItem = innerOption.items.find((item) => item.default); + defaultValues[innerKey] = defaultItem ? defaultItem.id : innerOption.items[0].id; + } + }); + items = option.getDynamicItems(defaultValues); + } + + const defaultItem = items && items.find((item) => item.default); + initialState[key] = defaultItem ? defaultItem.id : items && items[0] ? items[0].id : ''; + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = + html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { + attributes: true, + attributeFilter: ['class', 'data-theme', 'style'], + }); + + return () => observer.disconnect(); + }, []); + + const handleRadioChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const handleCheckboxChange = (optionName, itemId, isChecked) => { + setValues((prev) => { + const currentValues = prev[optionName] || []; + if (isChecked) { + return { ...prev, [optionName]: [...currentValues, itemId] }; + } + return { + ...prev, + [optionName]: currentValues.filter((id) => id !== itemId), + }; + }); + }; + + const handleTextChange = (optionName, value) => { + setValues((prev) => ({ ...prev, [optionName]: value })); + }; + + const command = config.generateCommand ? config.generateCommand.call(config, values) : ''; + + const containerStyle = { + maxWidth: '900px', + margin: '0 auto', + display: 'flex', + flexDirection: 'column', + gap: '4px', + }; + const cardStyle = { + padding: '8px 12px', + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + gap: '12px', + background: isDark ? '#1f2937' : '#fff', + }; + const titleStyle = { + fontSize: '13px', + fontWeight: '600', + minWidth: '140px', + flexShrink: 0, + color: isDark ? '#e5e7eb' : 'inherit', + }; + const itemsStyle = { + display: 'flex', + rowGap: '2px', + columnGap: '6px', + flexWrap: 'wrap', + alignItems: 'center', + flex: 1, + }; + const labelBaseStyle = { + padding: '4px 10px', + border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, + borderRadius: '3px', + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + fontWeight: '500', + fontSize: '13px', + transition: 'all 0.2s', + userSelect: 'none', + minWidth: '45px', + textAlign: 'center', + flex: 1, + background: isDark ? '#374151' : '#fff', + color: isDark ? '#e5e7eb' : 'inherit', + }; + const checkedStyle = { + background: '#D45D44', + color: 'white', + borderColor: '#D45D44', + }; + const disabledStyle = { + cursor: 'not-allowed', + opacity: 0.5, + }; + const subtitleStyle = { + display: 'block', + fontSize: '9px', + marginTop: '1px', + lineHeight: '1.1', + opacity: 0.7, + }; + const textInputStyle = { + flex: 1, + padding: '8px 10px', + borderRadius: '4px', + border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, + background: isDark ? '#111827' : '#fff', + color: isDark ? '#e5e7eb' : '#111827', + fontSize: '13px', + }; + const commandDisplayStyle = { + flex: 1, + padding: '12px 16px', + background: isDark ? '#111827' : '#f5f5f5', + borderRadius: '6px', + fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", + fontSize: '12px', + lineHeight: '1.5', + color: isDark ? '#e5e7eb' : '#374151', + whiteSpace: 'pre-wrap', + overflowX: 'auto', + margin: 0, + border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, + }; + + return ( +
      + {Object.entries(config.options).map(([key, option]) => { + if (option.condition && !option.condition(values)) { + return null; + } + + const items = option.getDynamicItems ? option.getDynamicItems(values) : option.items || []; + + return ( +
      +
      {option.title}
      +
      + {option.type === 'text' ? ( + handleTextChange(option.name, event.target.value)} + style={textInputStyle} + /> + ) : option.type === 'checkbox' ? ( + (option.items || []).map((item) => { + const isChecked = (values[option.name] || []).includes(item.id); + const isDisabled = + item.required || + (typeof item.disabledWhen === 'function' && item.disabledWhen(values)); + + return ( + + ); + }) + ) : ( + items.map((item) => { + const isChecked = values[option.name] === item.id; + const isDisabled = Boolean(item.disabled); + + return ( + + ); + }) + )} +
      +
      + ); + })} + +
      +
      Run this Command:
      +
      {command}
      +
      +
      + ); +}; diff --git a/docs_new/src/snippets/specbundle/specbundle-deployment.jsx b/docs_new/src/snippets/specbundle/specbundle-deployment.jsx new file mode 100644 index 000000000..aa40caa43 --- /dev/null +++ b/docs_new/src/snippets/specbundle/specbundle-deployment.jsx @@ -0,0 +1,214 @@ +export const SpecBundleDeployment = () => { + // Config options based on SpecBundleConfigGenerator - matching original structure exactly + const baseConfig = { + options: { + mode: { + name: 'mode', + title: 'Launch Mode', + renderType: 'radio', + items: [ + { id: 'with-server', label: 'With Server', subtitle: 'Launch SGLang server & Benchmark concurrently', default: true }, + { id: 'without-server', label: 'Without Server', subtitle: 'Connect to an existing server (--skip-launch-server)', default: false } + ] + }, + common: { + name: 'common', + title: 'Common Configuration', + renderType: 'inputs', + items: [ + { id: 'modelPath', label: 'Model Path', type: 'text', placeholder: 'e.g., meta-llama/Llama-3.1-8B-Instruct', default: 'meta-llama/Llama-3.1-8B-Instruct', description: 'Path to the target model.' }, + { id: 'port', label: 'Port', type: 'number', default: 30000, description: 'Port to launch/connect the SGLang server.' }, + { id: 'configList', label: 'Config List', type: 'text', default: '1,3,1,4', description: 'Format: ,,,' }, + { id: 'benchmarkList', label: 'Benchmark List', type: 'textarea', default: 'mtbench:5 ceval:5:accountant', description: 'Format: ::. Supported: aime, ceval, financeqa, gpqa, gsm8k, humaneval, livecodebench, math500, mmlu, mmstar, mtbench, simpleqa' } + ] + }, + server: { + name: 'server', + title: 'Server Configuration', + renderType: 'inputs', + requiredMode: 'with-server', + items: [ + { id: 'draftModelPath', label: 'Draft Model Path', type: 'text', placeholder: 'Path to draft model', default: '', description: 'Path to the speculative draft model.' }, + { id: 'tpSize', label: 'TP Size', type: 'number', default: 1, description: 'Number of GPUs for Tensor Parallelism.' }, + { id: 'memFraction', label: 'Memory Fraction Static', type: 'number', step: '0.1', default: 0.9, description: 'The memory fraction for the static memory.' }, + { id: 'attentionBackend', label: 'Attention Backend', type: 'text', default: '', description: 'The attention backend used in sglang' }, + { id: 'trustRemoteCode', label: 'Trust Remote Code', type: 'checkbox', default: true, description: 'Whether to trust remote code.' } + ] + } + } + }; + + // Initialize state - matching original logic + const getInitialState = () => { + const initialState = {}; + Object.values(baseConfig.options).forEach(option => { + if (option.renderType === 'radio') { + const defaultItem = option.items.find(item => item.default); + initialState[option.name] = defaultItem ? defaultItem.id : option.items[0].id; + } else if (option.renderType === 'inputs') { + option.items.forEach(item => { + initialState[item.id] = item.default; + }); + } + }); + return initialState; + }; + + const [values, setValues] = useState(getInitialState); + const [isDark, setIsDark] = useState(false); + + // Detect dark mode + useEffect(() => { + const checkDarkMode = () => { + const html = document.documentElement; + const isDarkMode = html.classList.contains('dark') || + html.getAttribute('data-theme') === 'dark' || + html.style.colorScheme === 'dark'; + setIsDark(isDarkMode); + }; + checkDarkMode(); + const observer = new MutationObserver(checkDarkMode); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme', 'style'] }); + return () => observer.disconnect(); + }, []); + + // Get display options based on current mode + const getDisplayOptions = () => { + const options = {}; + const currentMode = values.mode; + Object.entries(baseConfig.options).forEach(([key, option]) => { + if (option.requiredMode && option.requiredMode !== currentMode) { + return; + } + options[key] = option; + }); + return options; + }; + + const handleRadioChange = (optionName, itemId) => { + setValues(prev => ({ ...prev, [optionName]: itemId })); + }; + + const handleInputChange = (itemId, value) => { + setValues(prev => ({ ...prev, [itemId]: value })); + }; + + const handleCheckboxChange = (itemId, checked) => { + setValues(prev => ({ ...prev, [itemId]: checked })); + }; + + // Generate command - matching original logic + const generateCommand = () => { + const { mode, modelPath, port, configList, benchmarkList, draftModelPath, tpSize, memFraction, attentionBackend, trustRemoteCode } = values; + + let cmd = 'python bench_eagle3.py'; + if (modelPath) cmd += ` \\\n --model-path ${modelPath}`; + if (port) cmd += ` \\\n --port ${port}`; + if (configList) cmd += ` \\\n --config-list ${configList}`; + if (benchmarkList) cmd += ` \\\n --benchmark-list ${benchmarkList.replace(/\n/g, ' ')}`; + + if (mode === 'without-server') { + cmd += ' \\\n --skip-launch-server'; + } else { + if (draftModelPath) cmd += ` \\\n --speculative-draft-model-path ${draftModelPath}`; + if (tpSize) cmd += ` \\\n --tp-size ${tpSize}`; + if (memFraction) cmd += ` \\\n --mem-fraction-static ${memFraction}`; + if (attentionBackend) cmd += ` \\\n --attention-backend ${attentionBackend}`; + if (trustRemoteCode) cmd += ` \\\n --trust-remote-code`; + } + + return cmd; + }; + + // Styles + const containerStyle = { maxWidth: '900px', margin: '0 auto', display: 'flex', flexDirection: 'column', gap: '4px' }; + const cardStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}`, borderLeft: `3px solid ${isDark ? '#E85D4D' : '#D45D44'}`, borderRadius: '4px', display: 'flex', alignItems: 'flex-start', gap: '12px', background: isDark ? '#1f2937' : '#fff' }; + const titleStyle = { fontSize: '13px', fontWeight: '600', minWidth: '180px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit', paddingTop: '4px' }; + const contentStyle = { flex: 1 }; + const itemsStyle = { display: 'flex', rowGap: '4px', columnGap: '6px', flexWrap: 'wrap', alignItems: 'center' }; + const labelBaseStyle = { padding: '4px 10px', border: `1px solid ${isDark ? '#9ca3af' : '#d1d5db'}`, borderRadius: '3px', cursor: 'pointer', display: 'inline-flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', fontWeight: '500', fontSize: '13px', transition: 'all 0.2s', userSelect: 'none', minWidth: '45px', textAlign: 'center', background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit' }; + const checkedStyle = { background: '#D45D44', color: 'white', borderColor: '#D45D44' }; + const subtitleStyle = { display: 'block', fontSize: '9px', marginTop: '1px', lineHeight: '1.1', opacity: 0.7 }; + const inputGroupStyle = { display: 'flex', flexDirection: 'column', gap: '8px' }; + const inputRowStyle = { display: 'flex', alignItems: 'flex-start', gap: '12px' }; + const inputLabelStyle = { fontSize: '13px', fontWeight: '500', minWidth: '180px', flexShrink: 0, color: isDark ? '#e5e7eb' : 'inherit', paddingTop: '8px' }; + const inputContentStyle = { flex: 1, display: 'flex', flexDirection: 'column' }; + const inputStyle = { padding: '8px 12px', border: `1px solid ${isDark ? '#4b5563' : '#d1d5db'}`, borderRadius: '4px', fontSize: '13px', background: isDark ? '#374151' : '#fff', color: isDark ? '#e5e7eb' : 'inherit', width: '100%', boxSizing: 'border-box' }; + const textareaStyle = { ...inputStyle, minHeight: '60px', resize: 'vertical' }; + const descStyle = { color: isDark ? '#9ca3af' : '#666', marginTop: '4px', fontSize: '11px' }; + const commandDisplayStyle = { flex: 1, padding: '12px 16px', background: isDark ? '#111827' : '#f5f5f5', borderRadius: '6px', fontFamily: "'Menlo', 'Monaco', 'Courier New', monospace", fontSize: '12px', lineHeight: '1.5', color: isDark ? '#e5e7eb' : '#374151', whiteSpace: 'pre-wrap', overflowX: 'auto', margin: 0, border: `1px solid ${isDark ? '#374151' : '#e5e7eb'}` }; + + const displayOptions = getDisplayOptions(); + + return ( +
      + {Object.entries(displayOptions).map(([key, option]) => ( +
      + {/* Render Radio Group - title on left */} + {option.renderType === 'radio' && ( +
      +
      {option.title}
      +
      + {option.items.map(item => { + const isChecked = values[option.name] === item.id; + return ( + + ); + })} +
      +
      + )} + + {/* Render Input Group - each input has label on left */} + {option.renderType === 'inputs' && ( +
      + {option.items.map(item => ( +
      +
      {item.label}
      +
      + {item.type === 'textarea' ? ( +
      + License + PRs Welcome +

    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%0D(b|B33NWVs_8RT;(q@?%|6Z`44{*ZM zgbKhs+wYYxfGof=oRv5)#Vb4ex;OhCL8ZzEVB=-boz_iT{UJsHM(ngG)@X)fLaeY`z14Zom$#_WZN>C+A5E2@wT7}hF=3+A@8 z%F0RCziA*_2j4305iL^cC*;aN({-g12zuqFli>J$``&57%#bvb!|nHQc&!pIT(eCi zo1C!6_syPZ>2Tgr2I6sY=SG=>SVsn%jVBxfUOOXu8!yud<8m;ln%#*fk?=+Jb!M+b zY)n`&4xQ#Nw#ux*@>x$!Wi3|F>kPhi{dM2;vNMoGj_}a?bK<$ZApuKo6A7EcR8nt? zxzY9wCA?{Ot(+#yevzK8$j~QZvKTEzdPdrPE-9Oiw%cS8BTEldYJC#4nu7*{JWOve z9|asHA`v5)R;s-n&(J(+@HIpv4eQLk_1MEJnZcl(1XC!)^!VIl27yYoc4e9ec$Hug<6fsej9D4}_?4$A4*H!Qj#`5)i$7m# z&+0KFYED7BPp$SEBNeg`K9edz0X$fhkQja)cR&czFm6dkhmULFP>->X!w)tWJl0IQ zBbp);Ay5AFFmG!tSd(0|=Tv8H&Ych;Bl9fP`&~nvDBCq*XmG36?eFEWZRYvT@$|Ze zm*v6k)kjcdIabEt-8QOHGkW~|koMrk*!aW`g7@%EHd9Z75DzS?!GZ;f*PIk22`pQW zeuxRZXqNfm@NX+{BhbgQQb8De0=;Hrpi=>6wRJIh=*ac;jSXNHID%e{0{pTT-U*cOU2yzrab8DxB@7kj>{uhjJEc31ASC#(ehRH-S1P_Dee{DH z8f3Taqla{~pjc)ss7}3-!J131-sDWUrQ}mXW)DsmnoP493DGT(c-rGuNmG4)B zvA5ynKFh5lc^NFM^8hIXg;aHiSZ!2xEu%;UlW_as4 zSBJht(y4?@j{e1lEWf%J7KuT*P*XI5-E7CO-iT>7}ooF*Ns#b?#Y6`#ronc=x6l|MxJ_8tC0_u z_<3Ac2=N8e5q2xwmx`L(V5bu8uk@hRbWEwHTlN0*9BRTr$J-cB2db{xU#aa4fd&zW z`m4`1g8_7A|9u`9b+Lx4_%Dqu25F_k68$kIS_B0XJQMpCZH<-^0i-hGYOg%2n>uF7 z{22B1TB3SJf^UtON_}4&`*O1RuMIx!n0GIdwuskC1?Ie>MLdCHV`r2Fg zw=+2&q;_8!pTkx)eGZ#!k=YA7Llrw$P9Yor6&$pVpcu|o7xe!1%ZBt zO}hVV1(ru6QM5g08{M$a6>`gZZ+apFbIPmZ9W97y=wThiM4wxeYYOSM(Rs83L;Irb z3|dAi^hiYz7G#V$38glo*h&N{k|eqE6(Eu7?K;lN@9W2Y>t%rRPup3@y<JDC0eHin9bC*r`2TQ69*1|HzQ^+&gqG!lT`-G zM$72osdHrQP5D0FTg7DjGTQaz`7G;?5@CS^qz~vziRytrp;xY&Y2SBR?(zQPBGO@G zT(^{Do!MI}GN?m?LcE3}C(<)jR73?q;%uZh9&}oBbuEB_$go~e z5Yn@=PnPJbfA^o`8QL44ot?P?SV}i2W`8@JN$*XEHUIMWU#&Owxx$g*6wRpU(Ri`1 zqgPM3){t8SU-~fj_6hU7ylSWW7r5hNBfLsu3A2&h<>PQ;Y*I_tlB3<=vQg1z!H?}ktV zJ_|CJ?0qdsRt~QjszD+5UyOf-Ht6C=ZybhQ<;uy!9GbobExRVs2uHSpKi3bJ@DUxF zZLgi^L42L`d}t*>f7WW5aWBE(s}-V$J9Cr#^AIcw5GD)A)@-(@f1<*G0!@HKXqCD; zXUux@+(%_sJh0S$J`M6_a~N-1weYCFx0LQ$l|g1i2KnsHHP@MeXa6ew%*7_BCwtQW z81t*@plI*24;ELQ6nuxnWndTZY#Ow@08CZj#`tp+-kSQGYgd{bmIl%v3m`i@(+H8; z&(*p9Kh9s9b3k&S)ir7l`Yk9{(xlnPbm0T|7h?jh@%rLw0==dBl_v&jMEUrq>8LIH z+ApimUcu@SOlZ~T#mSl6+`V(&fO!s`Do8LWnAZZd_A@2IP&Rob%{WUPvA|wFKJF(& z8HqV|+et!i@hd%nP%AWSkACiMgA;ctP<-HB@cC4Ksvb2EJ7oc%YY9mFU0@e2SSmGGuZ8TOOQJo`DBT<^<3@IrpTaYy$9T1qlgzv z=(8{xwzF7*`QECz)n|{V9$dLxcoM{jtLmX6{xAc(Ds`nn_4RpJCahTO73Mh;fsVQU5=#A>LO3Oh`6-l!EbpAGjS=rL7V z;uPv21sv9p2-%6X%=GyM;CCdsyuY)A35!Ph0&795Igag8I-K5QTK}BV%H~lAk1>X) zr+eEF7g6oUzyJBq^6vL{^2~}KGUyt}&J&*$H{A8U1-LTk;3ubcbr$@+A6j7gtm#cA zYiKjI$M@>-Augexdphmp<8os`>m$Y^x^L}!bJ-GhmztDlKRVwWwzyG=1Q$y-$H{J= ztBG5#gqq`c|aG9-^24n=0cl@7qI*0VvZcMJ>E#}hi@6+7vmS9 zb$U4I29 zpvnveUQ`fpZod9X{rWbi$;JfW@Db7pg)!qm$)I?JiU`5C{!iy5-PK1q&xf{GKOCK7 zeflOjX#v*RK4%e%#Dn7Q^A!7%k_5yn4$@$hnXTp;O}P&{cBg$A?8{&nOLumnBMN(L zndmwDilV8XaAG~v?8##Png*f=hX*#B&O{HeZ+q_HaBEfdU;q5G+~3|?*2pqYNup<% zhdk!(8ceDyIVa?CXTt~_TJ=B!RvoAwACVey1WwqW7Q!>x_5vHldTyz14aQ67A@qF1LU5q9*|34}g0E42p+g#TuLDnHk= z1xfbl)dR=P>`bKraaIJ46{h>J+MW_{;jXk5i)}_rx#Z^Z>yKftK(PF z(JOe3F>4Xxt=H^G4wTjeROKieR+THq%si@NZ3-n=r@}q`I7FeEyiaRC#&A^-aG&T zVOzV-$A=rA(Fb^~eKPgAX0%Il`qL7@g>M&}VVu=YDuEv5_UHN5lPqd43H?o2JB11A zSgr+nRGs8`NGgvG5d$&P>mhp{*w8o8f0KiPHe7$Nkk-3aHBuSX3PI{0Ab<1~WQ`(& zPL-8YH?}A6e389%{9-_2_NU3|W~iQVJ|U}xdKuHV?RARWa3>wJ2nXG+73B$h2K;Od z)K)%}Ilf*IT=pF%%DvTH&u72*U;j~3t`3@WRxbZuvn9$LA=k4iwx zB_o{DVvXLf{U)#X6ia3HWQIH?>L*;UCnbDieMYWZK4XZL9uQPJE7^3stz{{r`U&5J zvef-ALSCsUy1MoX{T832dKVFh4F0WM!UJ0)<8dqN0b=!u8X7!ClLq}fw7)2X*rtO# zq8eMATu9$%qUGX^y~PzteWGOOA5*e19V^kCbr9 zNr_~JzuA0|%ey=I<@0;_?!`-aad-|wC2`~oYfIwfr9LXnW!v|XMYI&H#eo74%EQ2L z%r%zY#&LdrCja@r{$KeY|MD+Q|LqLoUD3K}t%GRUDY?%WCi#*Ka^z?fy?3vF61HE* zptrr{`St+Q4XTVYibsOzLC4wHlBFC(Z;oormORz?MX_=nV$J*UbGj(+ zgubSB-8O5v-x=BZ@Y^&PNE(-?l3-ki>N%Pu~&|16`2YEKwy zg}uRP)zK%Ua3U+_1ab825{xmT1pf>;Lw-Y2yScQ#GZ@bhPGu>?xeMqX`)m)=960*O z406>JPrly=+|G5a3&MM+A=~n*FJtmJV-1U?{L_}D)$E+^@pV(G>cHM(PTxtZI%?%g9ZZE^ z9vcx34199MajNjE_VWiF;ezaGka|Gyj2+ix9W#L2zgAg-#xfNk#zUOW8Xf z$xQ2h2%)8}EOq}Bp1D9DXbR-(Fdo2%GdDWk7bI4cn;GF&GcNl3EZFUuTP&*0mP z+U!*O;e;py^aOZ&bDS-B!x)0g7F;~r9C$Baa)w$N#+O9URXw4QT%=^2i#=A0oDny9 z0!jPVo1HkCCp#Yu!0RTQ zm71;DASS4c0lfIwAxBmeL zK#td8g-rFXow?m?>)+B$GWN+kbkF$;Eb)dmiD`Cw<}AV@z3MJ29eR&3QoELDN=qG1 zURwJTnvAv?kjeDHct*OzRl`Z;Z!&PTWcnX`V1EVVJq;HM__DYTQO8}cO`<1Xe`N%8crAS$MT?Lbb~kTAe!3&t z`9@5R7oT=-i4O|8`f1r)e~92&*n3vHk7!P4K?PA&*}UTN#61gIl~O;0wG(2oYHG75 zDw1Q9tn?n&#riyvxKQ>~o>glP8G4-`(RSvn+g{mL9bsp>I$FrlJQIl7dNG5EGLx|k znC%cqnr}9Fvj5@XA)wuPEN4oW8TQ+bsHjogD&&a)TN)C3W1lwtA3krKiR$YXawI)j zAcM|RJCiA6lNX6B2*f_5(i6}|dJ3C2l_?5ECV|ySSluT-wBB_em*t5j4iZc&->4dD z^U+4_ERMpVU+~0F)^GMjsvazA>sDk`NXUiFMd35KZYaeOqH0^_RHL0*2Kkr*|agT)NyxVv$wkhS@mtVT?%l+9~ zbs9-gp?_a(3d>#ddrwbKZ6%F6K-WS2c@RF4JZh}un=UWzqnm9p`&XP(Xz5c7JkeK$ zx>VQS6t$oCI*lR%0`vcHt9%{6DZ0WLSa2B?LE&9jvyO(-FHxX2AZgz?jfL} z9gdwFfV<|%efjiJzI**jMn$3iY`_2zNTff9dtNL{fyG-q0wLKs0~J?jPZoc)vOL9 z&qn^?@AIUGI}lpM#bd4Zb>jL`w#4N#WAu_bmYVpRb5HmgdoJOu(h&l|WG+1jO$cCk zHklo_fK|^!_VX%I!iVow zx;_@@D2aXWO28tXzkm+I%sG9gxA#|;U{NDy2@~|JoXU*xD3opJ893k-LD$4Yi1fExF7m!)h(*CY`n-k z$L!-b=g-W3?5$@I*TQ*NpLIG-Rh}y;k&YPH!}&x~P;4$|Cq7}!!LZu&?c%5a7icBI zaO9D`PMrbmEmEdu{k!hbx#@a$pp1kkI~kTHt`cny>}N*sv|pB${Tvh8_FD7`k3>6M zvGL4SdWf+Eem!MYRYDJ2!y29e5env<*vJS!`@y^dJwV%7hN(CaSuvxJSp@;cA z;R~fMSNmlTcya$(f0Ut8HVV~nZz~BzzaiVRwi};utbtdo9s__h$|&d3hd1XAcJ0ol zAIL%Od3IBd-`o8^2@*|bj(b<1?wk7usv{4RM9-+sruO82w%}QRzL~dheET}+7a`64 zy6bhbv)AnWPT`0x31|$}iO8ZH_Ez8VfYDxiIQZTx+RrJ^t@B-YkZo~Xox@LkM6bO5 zg6$!!s*kq5CpFji&U4M5I^4Dgvnlj4_r1Tj$RHEptI}8SUTyuUvj39%MPfOL>Kg75 zwo2E16UYibA2$9-+W{BIRD~~T`!f=^!N;D+@!>(f&H9C08LA+meMrEElGr!hgLCyW z^m<40ZtcfQmrMTe2qS=wG+_mONgp-rwA2Vx!xV8XD|+#hSASixcETjn0hu$|{Z1Du z(vOt>KDhXVQ{Z7*xXypO)Hw5B#bU=d-dDp7b}=NZ+75sm!IU{PhSAtR)%w)i_N@!w zgapCk*vf)EBPz>B0H%R~-}RaLo4f3~BmhzRc|NGTz_IVWszuhpD!=xaziRPb23dif z_{p=|tgN77`fzs}hr}XieZBZ_X3jp7(&srD^B*(XrFO_>>NAF1=lJ`4VZ6+**SfvG zi$S;gHDmBR*@KmIDU>+pqtOwrp6%8R_Uu}#G#qU`D`-wnQyBL*)_^`uy^ls${~DjW znWye3jIL2ieS?Hde`39WG6+Nj`K{Z+8&;zEsI4f8V;-9DTLMPbESn7b-Ttt(# z3G@53=R+X_xRV5et>PI`U5jVhINlDY!7dE~*!Nv!M61X@{^?I(0PK#pk@8H*NI2|X z+y39(Rhv7;HLmCb(&6z64}k~f%8|YS`ftDc&9PQJoeFr0EU;zI;p`bS(@2_}NXeD} zBSD;Lc$Cv&j-zE11dtskMACj-XFp6~{5lF{9ki8_WP~zi%ynF4l`+FB4J^*aTL{B* zqK;7NJ$MN{be6!=ib6BWHhN*oAWL$1neEr&XV&_}bzgx#(ceF7f$E6`LGIkXIyjXt z_bqwU?r~$&Y;&|DOewDnWjMB>8Is+%+zIJ}>^ZndDqMbvl^!ImrIXyW+PuSpO z3iP6ygjBl3EEzL>YXqJtDnxZ9WBk(K??p>)eRFbdqZt(0uveR)=uHh+V;>xO^6u)w z`hw_Cy8$0$7eSW3-t435EWLjXV%oDE&dx|qmf!-W&JWE_y=iOAz1I1+x?al2c-9gU zcdg?4>&+J5gnIJKb$m&#*j8veSV0wo4eAcJmk9}4JT2OsfB!_1d z0~myGgGPui10(yp`BE!E3BRltZ*u4Y0n$U~xVkOzC-9_r8F(aywx8MsUK0j--?tC9 zrdt&vKEc0q)spZQKfhL8wlmGfw{{D&x73+0tyF5&Q5?E<+D5YhI!22&x*s-Q-TcRF zP;{hiJ4Y$T6ybD|I+?O24N(0wKZJ|biT_^mYxVO)B$~bo2lAIrRj@o zA_ZWl8uO%yuv@W&yUEP#3CI8Q)psory>EK+*6h`%=BNDYoA2cN({s_~u}Ztapf~dA z;|F;Sz7#_|81$$=i*ps=TnJiv#OG3f_suunS_wU)!SKNk-^!OSU(7cp^2?J66)2q~ z|MufgvfMxTXh>~^(nRT`DcfdK(%v{H?jLUaQ!Vxq>leL#cxbjG89Gg?u$oNP!iu)6 zy>3M;&yWndSv2t6%d7Ug=UTYfJF>07zB-y@?FnD*?<_H@0qfRS=Y9R7Es$qw@n`bZ ztYZG*W_BCCu+W10m|mT{_zw!dSjMo}7z37ot?#P1Q`%Wu(KoU1=ZixPCl?;ldOtR! zSbcK53&@-!6T*mlV{Eg46YGF*Nx+j&!JeAo$f=*U2Sj(uJ{VYGXH(`_5-)%2VaX6k z!$L29fXva_&i$aHS)512Vly0k%cQ_Dah`*w0Pi2IdZUh5!eQ50aoTt02QWtu?gWUn z!f`Z168(sJZ%}M@&x8T+06 z6IH1l?hee^QCYDbR5)!0b*KeS7qc&7uhrmH+5QM2FtDdp=RF9~c~$3U=gx+?LBhp? zA%|9IK&1+&G-a>rcX@r`6_6&EN)ndQJ9&S1FTb}e){$nc#Nq@~I$FKeBnLbn94t65 z)z{wG60@(pD(k514u;F`rWl)MRDGmIkgdO;Co&_Vf``Cik6tb{^pE%VjQ=c&an{!6 zRL4XZn_7viVcaVXAf%eif^OuX{OxbeIh;D%;wHIEr_6xXo2miz{@$v(8O{v#0t3fU zU8U}+*(X2lJ%ICsSApDkVnv^GYs7CDrd>-wKN)PfW2eg910k*vpU&87(NFFHh*s0@ zO`qu+Y;}Nk_AGy`f^(v}2ToM`+1>437{*#@{E)zlfZrWt>ru{~rBT4VXT=IQqWYQ* z=4nc;m>I}ak{G+{eM@wC-?3K=7Gn+eo@=rh)5-4Ny@GB|R&nND{kg7<$v0k1hd5*3 zt)BiSey+Of3}SE z#vB;cqlaL`J&w^_y}CpPmI);W7dfZUDr8T!Y7~sR=~S>s+PTA+8kJSeEWd8L!g?!} z;7UBmuqML*$drpw!uOiODMO9gm8eCH{P@o5SU@K_s2y+HvoZ zT%uy)WGnsrnSQ}DFyX6?y0dJQe#4AvmJ?FC9Pl0zxEBhbei>&oK{syZ zDO!4ZOOv-aBvfU$Ga;Ft!1Xo8J#ep(fGg;$UC>je`gnpbF!5R1Gw5DxP%_c4fo%xb zakB@UW>AHRT_>%xy)bk|idF&k>PO21uCv%^FAo@Vre6Y`S;S9GtoU>DEMX3rc*_$aVnee6xPo!0>#Sf=g$a|zrw`~TuibWlx7N_Tx`$KlJ+Op}Zmc(XV|(EJ zxVBjM3`|351}}!1Lft zE91q_h0ha(1t)s0cmg0ZfsuSYGm>=$*XEgYh`s;a&ducK=B~Iuq`{y~$JlO>a481a zH8^wIFXa^}OYP{0p{gK7eDQdTg#p zLoq1tKH@VbcidK2Ica{lCJu5w4TPGco+QWV+NRheT^wN<*@#vKSa)jPRrw zZhU}>gd>qU+&6loYKJ$n!ott%5FqIemw09i?~b{t3#$^Td%#hdtZ?0+Iriuwbmwld zz@)OVm=YXLbH8VOpRofMREjI+G6{qbir%v?-RSWk^18go3WGg5|5R?%prC^>tv>?Z zmV|ReA4;*F!Y?h8z0}ej{)Fw)0A(Js@eKThFT;IRhxOVxAHgV@A%n+*Yguk6dcDlE z7OegA<^tFCZ@tcceST*dd5-)D7bFRks|(fEdSwdjnh^TBsxGJQbnu0gpU*A3^Z)$i zFT%b^{qNc7DJoo1ce)#xFK7Rfp zfB)sz7Np+VwR8l<;cgcn%1R>p#UzRJ>Q0`eve6`rmuGi>%!2g2Iy=WCYbyzJiuzxVZ8yXpdFtfX)k~9R5h|AuzJ-jo>-Xs?q zjHI+WFWh|n?0?)|%6I`nt$f|P!xuVv=|-G-z(QN}bqdz??{D7*p;$kz**}Ae41oX!YIn?I8IB3XW5bmf$M~|W|cVhH`bSl*QxjR znXglP^w!>qc9!U$^|O_cp!A?2IWgVRM^Ev7xMop}mGwPP#;C?#N>8L&fL;0- z9RI)1%kJmKbzOh-SZ!AZw*Kr+eZV~EWhwDK`XAQgx_>lzCDMe1O<`wckR727AMT0U z3z=2NUz6kaV54XCyWsCK$R2$#&LJKXJ3T;0K%1pkGA9rIGlF`5o*G)H!VcE~(o2a+ zE9(kfpL_&QE!}STd31CDpL=0If;HAwo+BF@G`ZhCd>+CNK8&wNK>?%=&nQd|#!I~t z-0nxAr}t>%Dex&YsQc~qv;6h?qw#2P4;Y^WlY6^AMZ>Y$9{MkPkN(HI8@aGOlJFmN zyh@eY{SN$YiM9v&+a5H<6cIeP24#on_1=(7FOsbi=cI;@;i$O?$YS4WpvshBlxIX_ zKvq=ugXjmk3!g3cwi(y$=hqsz)+%F#l;?+Q9mfVXVp{e1vJjS|aPs5vxr~St=i_h| zWj8nOhq6E1l5OGZI*xNe1$&{Ms3WHkd_W>Z(}Z@dzW%d*m^vUVH>;7ld31-cwzBVx zkte2D#WTWm=;lg{GhtL>i>80sVIcgTf@NNl^i`^5z(nwx9iv7q5qF)s|IxXCnUi@aXqxmfD?m z&3qH4VOc8iCU?E2jvzUlIw?Q`v~mw9mk~J(2T0fURx{(iHj`zoG=p~A+rTCplKO&{Dn{k&+-^3Qhjd zf?TbDXm!pGZ>{05xnihYh^^syRh+i*0%MV9q@!tMDJP=-QMwPvFsl%|W z<)^q(%m8Q!6fKKD?;ft@wq>8+>`r_2z4-jnG{`g276uK5oZLy1QBdKFR4~9Yq2G6K1x?DGULPLhnC}KM^kO?D_~5)t^T#C{<1vojbdZ1whbZ}Z)L zdi{+#;(vYryX%@H){`%QX&oKZtJD@^^A5|p`3W~a-I%Wj*RxhfBE=DUOzvV zo2x51KRmYeoM61oVHwW3AONz8wAlnW3R>aSX9t5jdlJ>=PKF48W}76c4OxvDcXc z4O^bpFn;g%_BAZHPajRf1ZGDm*t}Rp7(5mPpWdR8C(rO(Mjv)WhO=*Q<{?;}F|(CU zkOwrWC%EuaRs?1Cb2}0$If+-5n-(XU ztv-{rAt0%vXVUr#oA0%mHV8t{bD5kq-+qqg(f4V<@n~$W$$nRBuMqbtvd`00zeibi zBY3Y~fk(6u>!AO%3Y5*z-PyR6l6&=RlVy{MgGL2@ZVGK02|LJIBV_ovSAbY3~!>i*_RYw-YlxqH;{;+hS|3FEIiq!JJF@ zx=Ki9_LH!6Rzj1Hx8k%2zfblHqTL1dj!u0K7kUCkqz74)BKGj9URJqqQcOpzD6??E zII(#?lrcF+;zt>hAPW;+Sj+gc4!zSkuk5GVCFeLu7}4SyLFd5U-#^H)2B)*PSeZTd zd2sFQJ^FR4C+IX;sqD+=yCaJqv|T|_gS8!j!)ZInN^fyUISqN8WW|v?4k?e!P?yFy!EH=XT1_9Sm_ zujPl6^YGtp?(YrVaNl&#`Fw=?X29mi8Er?h{@7`eKfihn-8(>#b&K1tKVE#1?ctHZ zdpSS8;>(gN|dn=kW%A>Pi)c4UW6876htm3@#sL*{sb#h0NYo%do9 z|Gr22iCFy<@2SNZ_4N1N2v5jYdx(9F(zPDeF)J!`!-uG&AjlQ;I3{km9YkN`aPk0` z1qhoRKoKE*v^m2|JIH`~cx7q~ ze5(f>)!{CB&263{fL8;fYj9-nE?1g_){Ip&&X0=R2poM?mtRx?w$FIEIrg5m>Plj> z+eUUZGNVnwq?yjCX0Rvu?(BsfTAei|iI6IR10dl%5YFjvyg3363M1F8XLxFdTOs4L zYXQdVmoMe;=+JxThJN3IiZkI_8SJY|S}R}4y^l|C_Pzy@`i$F|^Xzc%Hh5m-*SGKF z+xD3{SMi${FXa0AMy{`}h1GhYL4e#%_#6ck{_^`(R;d3 zVkkBC*?YiJ?NuPXC#7TG+_7MIZf?L$rFs& zDKiP@irj;8`Fal{2m+MJe2Z)|qxWFkwqzFq|AcCuY0f61$9I<7;Bpq&>`J- zh3OT8(`%m!5|lXe=DegXe>-EVP3BBgu!i_Lrf^hcK#W**g8@c+-LVGql|*UMbzA%U zv)zI9Wo}X@q_Jv)2LEl(58;^Wn*8naM?(O-I6aM^{!h(lYo=a}>VES3Qr7XepFcSn zMC$CGHO^4(x=VThPF<^;@y}m>m5a+uJO7*Z`AXQ7P2VpulwJEkl?7Z;F(&5*1%tiN zOuX8<$7FC|TO%evlgs2c$EVtN5jx#?fuP%m8e}#~@$eyaednZboxM1nMY4q;a)974@u}fM;GK66UY8mY9LJj>N~VLX>AxH)`#luZ35wq z7_lE)g6QqJFXZyVp4lL}M4)5ORXbvZ{s8bP5jgK3m(VF@gHwleyIx}T(G#EiohR7c z?@`wN`$y+sP{(zfH$EyXjlIq|hfuUmxH5IQW``X9k%3J$hiP5h|g0pq%_Fn_#F(w_3NZ#%AWjF zyKbl)jL4x6yGob?k%vq9?*_z!wuSTsk#0Py07l(px_T;G?`Q`yti&@@J*%zz$XTsj zzEh7aD*Oa|8PQu2vn_^5LJ#6eTdxi59@`u_LBiBtiu$nGKJBAdKlI+XMyQ1RoSimZ zdQ>+!|JnSQTZJYs&X=G`6_eZSM0?6;t1S{f;lYtMKkm-#_wOHWArrL)uRFQMI8GA7 z>b)u%(OuKWr-z4@lyhX6#69_%bj}Uq`IslLT_Z?Cv1nqPQM~1b0&1vI6v-s7`7K8I zVSu=Ax=D5A-+ujF&JPadr#IgUtE49B?J|G<_B$UeSW4Ke&)1ihSl&d?z%%2rth#(o z7>x$MhM#$^M5RY3(TB}=h4NQ%uFR)Tp5P?^0yV3~e;3W?IollLekJ7A(O?Vw(LG?) zvYHL7|8H1JRY(fvR0m0emMzGaa-x#(%)h2t_F$3+lunxdZi;@T+MMQW)tq=AZp$0>9S5F} zVb+7EnYY8~K*+|E5G++1AuDb9wJSa1oI<(56~ZG_s~((ecOZg+g9~+kra@3eMJ_WN zVs8IxK|I*N;LTwfc0nvsV@{qac)&<9sN6%L!y)jBlV`Q{j$a<1xRa7(XzowLT6d*L zL$2Ryn8r=4GP?ZzGwIywpPHRfN8#}JaD9F5PD+C_Bw$092-Nz$x$J#xS*Z8#KghRl zUd#6U6bBdUkbIQV_uqcwRUjl8jt+J<54FOXmOr>}udHYJ=KQ(!0$6Z)d@SF!e?PYS z-()bf@f_d^+TUQ6z}hpNQoDnvFv)2e`XXyQxxbpqYrLVA@sJ_7@lRDY*27_Lo*C7q zwElGP%t?(>pOYnAOT7Oc;}oXsJ&P|i(+MZY7-1_Hl+GNLc!dnkeeIIN82Os0JVAkv z$qea_1SiPX-R3MRgY~>w1(bTdrTY2Q4r(2}qhA3nPbr+R6!$41CkYO%ISq@GMg(JU zVQ-VKs3p_}S@3H}BxFq2J0sPLe@ie9r)KfHWHc-ts=L#gMgdQ#3eZU^U5{^q4-ns;4oM~n{cO?#xzm2-nnxY(?!FN$Al$I5o>4DvhzRAl07?QkzP3#DG;w8^>>#qFl`=r(=tHj}F)$@5mpeNlG^uyKac6t+V3k0#U>AkfsFX);&k z>W8CKBU>fNYnNM2^-;`Yviw~%N2`kLLb=9upkNBuJi1fJfgpz zJ)t(UHT!z%zG}es;oW=rw)vz5TsVPL0BqiUjcg+xPg}({g99g}zJ4rh2?A-g*P6`# zttE7SeD<=#bVZ`F?{Q!TJ3nl}pck!h*3SRk;$zvuDNSp5GU4Dg)`Yv8Y+WBy4SVM? zvmaV>!AmDTbMzpV-M8KTob6%-iobNlQ;`81m9u^;+#|$29+o%0pnA%s^TE_g3YTjI zF%2L@HLWTaUZu$vv^-#&kke`yED43IeqgM%&I>G<{2N4dPal|O&~gVIuqA3!)v zgtWH*yH;2&dhM*rU)|WaB0vTz4MDQsp8VD-o!ZO#tSJR%dvt!`+uz?|KUp!O67boc zHsgqkG{gI|oS!Cbs2Vk`ovkN94~I2Usb zl3nlZ#TSFWdBprfl_9Mhnl70gR`2rW3%Z#%k+t40{f^ujn8NX3@4CUB1p6?%M1=EE zIkbF&pmbrhx`tpWzXGy&mKk z{CHr{O~Zb~yg1!pmYl$U;Pj5ibX9hCIv*_1BOKg4L-ftDq3f4(+@+xC~o_)>U zUwoE7H76mVQmDSx#nqLMNod!;y1$dZ{{FlCaCjoeHWRTE<0w)?E0bDPu*9#yeO<== z^CTQx!e0+t^}!(e7TxiD!}(xOVGePKmG!^{KTIw&3!D|J5>(%_nnyXx=r6?x6G5dq z`~6JlzcP8K9K@DPr!UzG*mj)^}0~W~<{Zgk??`5KNCWlZv zT1xfLESx(p;<`sGmI|rW#KyS4`ZdSckhOpDHQX}G=*NuJRx`Pl)OH(gNH*zbviJCQ zWEwd=_{DL9y5~D2A8mW#5?IiOa}MrQprpyv@fNB3+3^w8Q=ED1PA8yBBLEOEC9 zT-3_9rUm z6@{e&LQ>abK81sjer1)NrvXO2fFMbIe48Lp%$W`QlWGVnYj?RasBxcy@s?>35FRPo zaAE<>HXhzs>IggcD<=1$+;wX{&)$;odZM)`qzE34R|qO7r@aTHz4fHVnGXdaHG0miC69^l0%EN(juTnQBnd{H z{XNO2R+Uy+f8Jt>Eye*p-aXpS-re8GmzFR+YiB@vh&7OPDQfTBIF;-xZFhTgl!%Xe zno!6Pmt&wS_NemfIvbY(dSYh_;KGql(Wl`(iGC3FU_a|U9E1hosAum#F^Xsi01q1# zw|-fMFn5BNo(W2UWmn_jOZzgYW@7GsyadAxOJdQ&Y+!yeKUj(s(_gZ^DJ zm^QAZfXz4cp0UhXV}jn*QiJG5U;A1I>e3MrIR1e3Y2{UeBPBFYA^T=N5fUcp^B>PX z?3lfE>)YSVNu<-wJo$jJo!*S?6ovnQ(qI~ntAMr#8Cq$km_F(lG?0DQ2M;z;NP ze!htSs-G*p!yo}V$oi;;EIor)o@alN*bL1AIH(~!l;VH0u_PcJ_+X@NUwS@`<-9KF zFLM1m2RV(u&>_-u5C}aWS!JPGSy5mNPL%XaxjCdhZixo&_OTgy?Xv~DpE-1J_E<52 zKPcXJP7eR}zH{aJoUOMw6BMw(oD7!*p_b zfOdm5G|>7q(bwczX*_SOp)c>tW4zWGM4flREn^a<2Gov)B~3Zz-c`cup{rSKR|nSv zLDySE-{{>KOmBbhYm+*0;UdG{LeJ>6XN$<{p zLGi{MJ@0$^5CX3Twj}~LT}y2p;Jn#^Adfbk$Q!#GBqKaPbgAy+tHRtoa!Gb;{Gr0DaIAUTHiHBl3_CEL)SnVHmY#hh%llk`% zU6g~(`T=B5`=)>FER{Uiimo&8QNlpW^b&Mz9sL%`v5y78mmxEZ-8Td57nY?3;rGTm zp2XYX67DyAJ)9R3sH#k8+^HN21fXZA_=P@XLPA(8!P%kOlo>;Rh!;xs@OO01$W8Uc z_BYKx)}oQKjk^y%C3??;%Z9V)WQ?ryR*h?)dmfj*bqUkaU(vcJwv&Ymi^ViVr4V!Y&f{uh?&J z+-UJceWO1$f7k+LjhT?_x55e;n+sx$3B^l?v)FSob~$Wvb=7|HkDE`nzB}!0hdMiG zMW&Nx_bgYh#mD4iwh6(e`gc~hSJFwGeYQ$k0!jTQGuA*VVNJai&yl4w9qO9u%E9C! zg|dT^WdPclO8w_Ny!}v#)KMYJ(+oftbbh}6dDDU`eZMNcu7&Z=+ON$6I1(%H_Z2UQ z1Cx4&YrkJ&<2heX1EiS@6;yI?ygTOJ@1Yy1Y6^j5QF<*U{m|-|Dj`-ZqF1I8GT;~7 zSnww{te3$=5Gth}kcWC||4^*{woZK?q*oyP@BXhl^cON?b^}H<4@~M1Ujbs!-gnWQ z=3C7s9i0FMvaTpl(e~r+U+fWjeRk%st}v(-$)_ae$0zdhw^{!4*MG?MT~lgDM>42j z=@DO-HTzduS6CieHF`5ZjVtc|`T28T-MdU_PvDzxzqPf>sRttzS##JbKR?N!z7W5T zYdd^F&}I-VjPDttx|er%^7-;YzBxU2*0|K4k{8s9qE^~YrtK;lHr|fir#k(rgxjBI zs61Aw5eUh^Y8o;&8ol8xcO@tW@A&8aMXS)C2IFOy46o4AdEohv#BQt_WGEa~IyHT5 zdk+1nbJr{1Zty3NOgO6HsyRXW4ugEbk@PV;Q^<)^(0d|EKW;btK8#51X^}1=9fE9? zPsu}XUJbadCyz#FflgqDX<34;`W~zE+jR^-sb7muq`q#-!;rS>44N9Sj(V8YQ0^=F z1b8oWJT|lUvKg$tIAd=vC1iqnBmrd+@?g9Hp7|a3M=RWvZz5qzA*oUq{R(-#2M+?r zGIa+_0!cvG3!@rNC4$dUvEUNCQi4O(`3d@qnOIG^8|%;|S}DM_>sKF8tp%XkNVM7# zYQM_a^K+SZTRBl!F+4lZ1ozKW5|Y3F`m6lw&p(E!(}~jeD4~<~wg1@kPf}u#o7*@) zwpT`~-|CfnPuXoqkyabn9smnN?}SwHh&WB9BQ^l^3Q7a?HN z0J6ZY+a4_?{2spEE7rwP6ikMOju7m3_qpmIKM+`}gtFk_g^L5?ST6RBiS7Y{e`suekADn;0je>r{@>!#cu1vZYdlqjI=zXhY}mz!%j zYsHxY^dKC}!7r?X>?J!#tTZM(nDOLHQ|Qe!?2)10(g3=R_zU~YxTMx_4HI`Qd4bKV z@7($R`i>+)Y=`fV7s$+cD;k_Pz4@>|Fa(gIunzOq_T#Aeu}kvvXO(o*W8ILeUiO8 z_=6s|fY1mMEESus6%}tuF+-~V-l7t<$piMP($Fkcg*~*&>m~>dtbaAJveO0F-k!Zj zso>dHD_2J~>Az9z|G%HUYMJgw%Y15y-d;x-L}WMnmGoZkt3#0O^FiL>_A*(fKnp?m=$PJS<= z^RR)E7Rvdg{ecGt=?U4@^NR$S5qKn5dV8!_MRqz`0G_Z|N?os15(eeSpzfEBz`zUc zG>Al{s9&Z^hwgd8Cq6R`0j{KQa+6z(2so(+sf)DoznlB4HCDr?s0P~MeG%TZWw}iP1h>Z`SnVO=_3oYr~e); zr2m+F6-Z2F!Cn$T_Z-6Y)9DK!d^}*V{Z>TILXsq}X4rS}(N21gn$5mV#RBJ(R+YRr zcIskwgbuOx`z}%>Jv}2p$ArD363|4Dem0%P;`hV09IssZ3}>r!8>+-*(pVp>^D`_% z1(4^-o+ou(!SO5lIfP?sfT>WqT6(JnbxGe<2?+A)v83A^lcnlww+GzPWvV-d-H-Bn z3}o17c;MX8o^fmp(E+UN^8ImEa$W@z7D$`EQqc13)tEdqa8Yj+543%~d|ZqB9yBVl zS_^lR+=duWL2~l7o)E95+eoar3bGKmggoHN3s5lqoWhoDy}vd+3EI-|tYM<@T;|u< zbI*Y5*7(!(`080wj6G7@s<)(TRiEr{LbW}o?mub8Y6hXz$PwYHaqu=2&9X;e_6Pfh z)DGmO-lt$o&DQX}x3fWhHmy5?H#2{pXa5t*6q+70rhRcK$Ly=@GnlXRU`aS7wxKxMcfaHa3KAehaS{?3?C_vDl6 zy^9C0oPT$C>U%fkmA%EL!#<1YduyLT4g&Y#l*#+H9s10lH5_d+TS-pLt)rFMreCwVT$&y4Ev|XZ7~Pg6rTp z0^!!~^VRY5{~$&21S7?VoH2-94Ga~w(JceQqgZzeLS}`glKHO=g6Ami3I(eFaSm(Z zB2+-sayMdqAT`#;~`23ZM*80&y~g)jc9tZ7Yo zX)vMdHg7k<_?X-4wbG(Oe{V3&2~blHj`cuuc)T5=%%D~L5Cit-fjRHj6`V41Ufs0p zdaHgM>wGF0o)v_JL0(OO8o0a!)UkTM$zT8a536KZMGyLu@n?h=b%;qLdtX+rkm|)Gzm^>FnhpUUv(hiltQB`8zDHJN2i(@NJ;$$~KUo%B5D?i#X4gCFa0!g8*(^BR6PVDcA5zHSs3&UA zsO#tNtM#{ALbKK&uM$AlEGSD3amzU4tk{tynrD_eMruFdJ`}!2pS9lH&GI0>++P^% z>f`>_{%yo5O@1GiKDUqu;cB^;5BJyh_pQwtmXPmoW~xM=py_flX-l<0pv$%dQOHuL zClkp1GWv4iXjV@srU+Q$Sjt$5Qk#>Y|IMC5w)d#4n#~E_Aeh%(V@|WS891|U>4zWd zsE}U$y#-9QN~dPP-qs3xoM4aLnSE5aJ@m4rY0Zbo(F)Od7GT42ukP^dN0lYP&ZEDX z2^Y3D@r$iIT{rt0ai*c?KZfKlHkmzl34hnN0v`vs82Ml5tMRk&vqX7?O%S}UrK60s zc#32oD>^<;RedA#{ig}AUj$Dng`QMh^tksiDm+ILCVE}*Ne~RJu5+9ZUqcTmlDjel zu9Ao30@+=`pOP{H`4l!vkxoWPg=^;AZ7Hjw(MzaorpDHc0Fe6?``LB2u9u;LV8>F< z!Q^hYhThybcV!LxAA?iw$tWB2ofFQ&X85c;%ptX2?MJsc(?Dz{A!{|(l}IO(xwxNX zNhkVL-Oq%4p>O=iMy2)E3r0M>O6UPwpcVK>O2!U*fN_)k`ffwG9|9f5=hDB-@L~OZ zS!7`AS836fxKGWV93WWpQE*;RQe=_Mm!5~SS?OE(4eFXQ0Q8EVp9_D_6z60E(kYWn zki}_hLITmNrp7*BT^dKkY*RP<`H6b!UK!+vC{MI<@D7TeUD)mfgr~`1DLr5kpn}@HHQ!Lj(PeR6|Nj2U#{o8(tHYU}!{9`32?O*Lo79z{MCDcgwXr7NJ!t6T zm7!#+ut!Y5UN`|(;c`4?O*lp*kChCmg8~7RjlLTdE2LL@@^0Eg>(BU*IRRG8XkK7M zAQVAD5%)}C=}?{mVkY)-L?uxq2xs`#O2;HgIFNLx4(53U8GY(d(vQg9Z5s}!|5Tl~ zFAq1eZwKsIJ~Y^s-no|7)e$_L$VRF{;5~*JhaH<3it(4b3u8drrU@D89@P7Duo48} zOinnY!gO(WBc}%k=J>gjP|P9HoBaFxcb0+I{*s@*eIv*D$PRVI+S*!IhbX=Od?Dwj zC!WDdYbD|TL!Y54or?>b)B5~5iIoQVtnn7~zG9d$FNkxg*V}HqN3aYEn;Sp_VMmOa zsDxmVkTEC~!X+4Vg`Cw21Oh7V_s`^- zNt~5%=Is|HUf>3(KX%3%(HWwHDx(8gMhAi)S=UQ%0jV4EYt34UKsIZeVBixR zl#~aDsQ8|++BHWt6BTyohLGo_JCPQU2J{flJe?-&t-#UMuW@MkQwM{xIy@D!(J7>X zXNcpKw3@O(pWvvUG8U;rYP%ebx+n`;FsdictUm_VQ77ot!LjSG$qk?CBn_H0!KFcy zuBjTP0}X@;b56tkVy)E%e0Oka*H*nWN2ev`uO1vZ19crz9HoRD+-c=loK#I@8uWFQ zLv<7?k9=RlG<;XA2YXM`g89-|T{8V%US7#jOWa*uU)xN)ncJ>tfrm%otmLux)d|`> zkPY&V!VqxSXId#ZE>I>br=DMQ95o@hd6*1gbI}4dWsg5HWJZyz{k@Hg7{%j!(<-lZ zACTFYfyi%^ky-xm4tK0h1Ad2KFGuEp{%Ny()ZAP%&{+&pAHGfIm-iTYZ_sn zHM|&Eon04ZKTAVv!T9lGf~#Lk!tRXFwSB=1-IUjMLH&@8S8o^d1(*m;tLCDLYwWeR zdY`TJOA}_)1G)yfRu)`Gub|lcR+SxPn_j5Dfc%T+t*o4O)PNNQ=yP&~AaCOubDS8f z$KLBIPu3HApw;T~V97j9HtMrTN`t2KHCEf8ts>)o#{BeQ?UIa=FzBKoV0Dy1jurv3 z^D@|!@sUKrkM~<~U1QMYRdv6A9s?$w1FNjM2iB4|+NxeG3h1z{qbH2?Y}_|puSwpM zCg(Pv(-IO1#Urdw&e5|8*jC)=vz_;gvZ^}avnzJa&M;Ou4~n}!d3g6{d=E4ZP?X7o zEPa+)QmDN>D z>(;!doYAoeqwtSS@$=M)OYT|~!m>Go!V?B}*zD!Ooi059q(`^xY|Hj+0{h<;a^E}z zlFUBl97avEgUm*y`ZP0*$`F`9M@Wa%o?Ws90ZEB|sqs{@65S+a;-eEcG7NKWWDey- z;sXeJaXS5k_X-YJt|bok1VR7*_<9osM{Xob&;WNb7ssQr0iYhwgO}#H=0E? zXovko0AZ|mIV?{DAz#mp9FloWN5v$$wvxFRmv@0Vh}boHw-R_-#L7BRu4 zh3iy`9*A*b5Mgk@m7oeICFZcE+zNRo?8?>$?`V7tkoFtAl9bkuz`Z=&Zin-fvgM9IuAc}{b==G#7YmVDK zzi-O>h!NxU9lad`vpU71i!pV14Mp}SwYTTMU<|!r5m_aXqD(`U&ka!+)pj0yNl2bU zA|yD?4-1%lcX24Z4bWpK+sW40D?KxX|LC{|nB7E3lx7r}CfA&f>aN7v#MfRe}DzvVFlLitncQDkHow(PquOzPmA$ZM{m#VB1>WeNzxfhm} zC=5(VWJLGc?=3p}#ia$dyl=81H~_65ve^-oMbK{4VU#5bRYEiyYd9D#6OkFnk^}zw z&mVu1uReRFBvp`g80USxS7;c6(VNPx>6SlTGQc{H)=9qFDB5wj0}* zx{ConFstwGx0(h2*RvOa5YXCpuwF_fA33W4+x4Fxof#uO4D4!I<&tv*mV7*gWBk;z z6=zDULbx==kMk_R7@hf9r|VIt9sR#6Swxc=DnRZi!f5VB{T_XPsdo#5C~3|;AdymJ znH2RMVdoRCbBO)oJyTJ7M4wX;M|qSFWvoxH%t|_Y{rsmT6rFw6Gr?Ke z#58b80~hjSJ0A_f6$#y}>vV7f)DL}^DPz_xg8CC#>z4zwvUPRl`*+3aqjR6beyt%H zfETkj_if&`lEyfMUh!CK@2z()$R=~@Xp)INurcRGT-p0zyP=OP5b8JUw234D);u}m zs6w<;FuljUX*=Ojti=%rHuOl{m3(YD@TCv6ldW+9K z8tSN@MF3UpIJfzRwW@Fob}#4XpDnui z6~dasj!y#$!TkY$c>6kv>ePDTrmPGTknZ7x2mm$(hszY zgiZOpC7E`U`9>1gwRv%Pw~?>%Js@)q2Gc)~uug3Uv3}Tij=jo?NnM;N=P3KSM~PKk zSOc6GJYr37S=)Pd2D9p?ZPR1ZLc2uIuCYBUKgl;Qzxa0uY&bR_ZazljAZJ$sH89<- zWIW;nBMXrgZF?}_+GA627y1S@_AL9z(Y%onvSHAxNp4yOQ6p2##=2pFT9bu_U6n4p z-Cd^Se|P!uWd2q&#oh0y@kMkQlF^pNm2+xwXiOf!U?;vE9>9;|rG zfH?c*L`L9D<9R0JR^fGZ%zZGvg!vRFV(5%+nHdNdUfvc5kcp?$PM&U#P0{OSGpK2j z4hiu()S{8K&h(bZ+UxKKgQ(cJwb;A;`v`|h>E30i3(E@k#plj;$MWp#-0=FkUkMcz z+wk{ojlO#EQl34zl3#FZ<$TT?n|p=vWn+uB_CqwXQ_pT9 zGCmKG*ifQF2*52hTc-PB^F8{RF&TBnIqVD~yDT0Y@65y2h`4Z_4t1JGAG_9GeneMDs zMmZP4uaDYUv$`RB?wRmhGcv5FVh#h=nm5lCbb&hgwH1aXBtQQler#XjK3 zn{d=rrkNaoy#&KagN`Y6k}A)JR+J=cRS8`jnS-N{c$^<$Eo(NyC-LBgn4D81ghm(~ zOc;^sOt)wExw2lH)^-W9LCZ2|5CQoCa<)yAKY26jXAs5x@xy!h{K-?>e^U;FMx8XF zQ`gDJ9?F{zzjLTt(wZi;f-`&YC)Y03)$yjKhzP`Is$Mdo|&Xekbo`F*d-4^Y- zWrmhLGeXl8bwZfCn>!;s%nV35+_*|5jBIPYB3BL@>-QW&nL2!5YsGwDv-S;!KITki z=~8;2;gJ*W0c-K`R0Db!mc=9n`)0z|g#i_36-PiEGCTs1NvQYj@2i?p?m=7|XV>Ab z82dzL8fyV~G473hA3PI}oL9G3Qd&bd6Cw8QhN|kClAfOp`$}tl+#tv8T(-nO+ZP^) zh0dH9v~!*05Y9|HVePDTXHkuPLYo7kt0e(@)pbkU-^-0$RwmUA*a?u2V=Z}pbS;b% zLB1g6tTh-~@!$(ugpsSk(J7vR%W9L&TCQ_6KwBqwaC~2sE`P=CW`92kcs_CpV}L>CC!m0o_A z=ONfyO4N_4ElfD>VX;grRM0d{e+W#tenV?T4_xl|)}tHuK#i^kOx?azhmwgHK)PYu zY&MfRlxFMKkO$caE8H59MD_y6$c-WvHZ9?^;XX5a&G(gu!)qi@{9p9H>BC?>ky+DD z8VD|-CSH=b^N?s)TUpRRq)J`rWq$VzHqI%<+0Z)i-1&Kqs82=p*&Jl3_1&0LyK6EJ1VyhueX!Ptv)SHywvzA7ylM?OCX|F_P>^}( z9)L4}y>30X&3@hAJ(z9m4xu}wP0pfS+v|@X<*O&p^qF3)|!1xUQ*~-l`5_*p73M25-^|d|=YN-DHkAH;X#!HB*`5`st&NX(`rP2Ctt! zzL)Rczme;Qd)-qpS*6c^7>4dnxbw9X8gVhXD|n>Pfbsf2U*6yEuNBJSXW5_8)+G%= zp%J2QFYC{kV$~$(M~1!D|LZsQ0GLDc?E3Z@Gc1-q7B?)@07Y8*hIeJ@>tVt~A{uEl z?MeIH-5|JB78!f-UEkg4nKzl&jjwV3@}oWA^Jxy?L~}xPtzi;yB-R%`?6NjjMjinvlm#D2oB=_9=61pQO?Gld`eu~?|)A+ zo|uaoe-T;CF7KpUO0|D4u0%sW4MwK-j`lWSV}Dm4FJ3TGI;5@7f2dL) z1HX$P;2n%q>F2v&x5_`R-pi*Zt6#UX8^OfX^~0^!RUbmR_qjFMr-lGntQ}Yf!xqkQ z1mw(dog4|pfauJC=FGY$4R9R}gP}HzvJNtVf7W3x)983O`ULx|=|>nbebrK+kkr}F z?r6D=laMDaFMLC;vRkG6sZ$wDvLYDR|u0)gJ`!)+L)Da3vWIk>P->}uco&mc!j*d6PAGwu;M00;J}_E*=f?x;>{TcQ{D z%A>`WM@n7yijBWAh-&kX_AUK>3}*7XqXXUT{`!YIgl!s5a<@}8aO(1%y54ms)*g?xWT_p&(x1it(fJartVhy#&-IV?#HGQGKfTpbU7YK}WUp)3 zGU#PR2$r%sSDC>8AFq`~#j?cMYVFzkRQv3@?K9EoOsl=q=USoAwe(;ObrHVo&gzE2 z-#R#={a;;gLsDZ}e%-Z)|4>VcW_WAqe&RTUPmLG-X zFY(-dbMN*so+}%F>gU#N7Rsh1W^X#2+@0J}{^+$9Ra`9~cqbn|ebVwaD+7~1zS?(w z{q6VoJ_hyX%{zJf_FaEgpA(Mf`u0}-{_`*LfB*2GEm?8@=yIITwl0t(Z?CV!>$yi? zKpr1&&c&}cpXBxJwf%Y}0~oCE;F{}x+72MJLf!C(gO!LycM`XYDc7Ni-nY-8WaSWK zy%PJ&&%GxxXU)RT&%1q9lUQ0 zb<`~Cd(7x?|C}i$uvvzX8tzq9aSj*#FJ8*lHd~6>H-bHf4Ggsu4y~YNq}jtfL}L;k z0#T@we56W8d%sDF&8*RxYN>S?dvz`vVfVhCh#`Qz7X&0=el7bw6<*f+Z`+^y+5-Z4 zhz1&?9u*{)R3R@EwEmN6WaTtRZH`H_z83a=i=ea(_2T%<1U;fE#p+@)@4q)A^=f&L z&(5E;sQrawlS5A7zYw}VeR!vH`l&epzkmE7&o3|8tBc0QWQ0l%7jV%+X&2l7&tB$~ zn4;P@#rN~CzsgNJpdetnI6qf|>py?^LH_#Jzv#2$aKC&1UcUS4D~;qs0iZA0FYSA` zw|Da0*I#N>8{yB84hGzKRY>B2%jp)Wial2o4MbX zoRQn1=~Py(j1r+}Z72WwaHY!oSho7_k8Gb%hu}iUZ#oW$GOdC(G>X?+CB7exy!SV-qtv++*7T9B;t< z5h)IbuDT(3hzPeT(8>Pp5pp+zop7Z`$_aYUy(@^gW~=D|)OSN7 zr$Xmcv)b*mJM zXvJ2yw3kBUszv9OnY5bBQP`h23c&iWA^>-~F=(${p;*fRvA~D^HP>KbOzigt=+`Nu z@;=Wxp2|k`OK)CI=03gF@jQ}Y6*2+~$tVmumc)(u_Lrt&6bi4b-Zj=Ru_B5Rx3&ez%z{Qwk>t5L?#?QbyvKK`qyTKqvw=qRy&jU~7#4 zndyoeP7`X9!ONgbl7swpIUQ`hVosPRZQbY>q0Zz!RCkK>t3^6o63@03BYp|OH>|`| z71sP`GG7KnNtdT$5c)(Jwe)feC0%Q0)e$LsW}rNKzZ^RB-j42~G7K*xmMopvvO0To zjfu|8a$^*lz2*BSd8g}n)q-_+UX%&sp@c&9g|lH(u7+Pi#j{QZP!827vDT08NuGmu z(YocpTIAhq@_!z#fwgpGN_W2fUJ~Onr`t+cgaH*l*FZp7p+#B+7_AN09PIVA^gw_) zXcOfqv!DFlJP`22I7i*)PHQnV&_SW%leV7I_H*r5TiT2Pt*o@Fs>yY2rwBQbMVZ^N zKlU1!=wox;g!jdHJ~;2Av#3jy2lR(Xl(9IOs+D?ig^IX^Ab69hO={r%U7)e|E+}_CL<&$XR{4EDW-Fa( zQ!X=%W``xj=EG*7BCe%pkH%yb`xL#O7OU&16J-b618pbc^6GP( zSl??3%K8rG5Z=8npQu1_q8Bgh{^rT^m^;O#Q-CAW_oiipvH9M$KcAqLOg8wO^!=m< z^slcz(@ppHx3A^h^(T3D37T*_6ms?PfQ_VvoCr$;JD!DNppx_ zzIdUG!50@7^6~0g68FLL=g;KnlS`xjX2kwzx1qvXlBo9 zq$%{b%~-sBsB+#MIT-9P^sZZw1MO~3ca!yNiSuR<64c`O6j?pUWM@fX;aFP|9Hbu2 zde@xhBh+)X3qqZ0-`Dot4UHgi#gq6P$%@@!h%IGkH{eT^CK`D(Drpkxo~Q9)t+0v; z8HN96BflsvGx!W(-SlU~cXJqo%$_V>pE}7F%+zX#q=BW!@ z6cnj#Yi!RQZ>*N$cyrXVvLfOw9HyKHL#e-V@|tEgM^A}L(&xL6$w)kAwdMe`^0EoM zr_Zeh>!j^G=ItEK=hbj2PE;{ztrVUmBL0;6l?J2+&8k6k-FY_I=clL}fqg&OGXiWi zg;y~e9QNF&TKmetn503TmOh^Lotq|40WpVxc$zzL$${kpGi85bzi-zykg2C+$yWLA zR_{3LzF!!W@n0D!1(65Ij9CkYxQtApKtn|ogU9B{5H1dV6q4y#UMPofa(y^v{46Gv zwix)i_Vh;so_6uX7uXB zxUxb6KqXPeVFIL>(NI$U+N zmN=MWkm*#(7-XxS;hg)1=Xgv{rZ@|UPVow9r82qOJW{(cZW-P7yJp;_#rB+KksM`` zg7`75to1Go%o$2y3c(>dERzxmx$UAH73eG4?*C99I7fs$AD_o#xvk;P+>ZvcSX#DU z!x@e?GCn2-SG08!lMz8sDDL3*AE`AS<)%3+m@~AfvvZ$}PeB}gW;)KEoFoZs_JJ3l0Z_p zecWpjw(KZ3oCL!S^S^;{TiMUAeL+Z8fB7&Nm+P(ZV}vpJ#8#A;`yCx4>F z8a;*NN?ix(^`wU&$?JnD{XNgd8=&=xvk|Wu(Ut8g=VlSkliye2-{f>qM_Yrk z?LIS0bE?%&+U}{`n}&vQgjocIIoDZwHeY1zB3K5u8eLsozg(nQb3JkpSh9$-ZP zv9!a9EZx*X^5!TdecuIwR~|rzjdScTW56~j_+_3P=q#QQM~R2_iq)QJMLkfpC&XkP zWGTg#>7il))aAYy(NeqTlan(!w7)8Oq)6x^ua8wq*8o~TrN8!k=V#}-$FG|$ecO^V zkPFYAJ?)uy`a+k@S;bnNpPtBhOU_Je!D-`28X!l2@`w(%Ih4$9XCu5Tx9@eY+9b?Ov@Hy*m(UGvW7rwSd*D&PKYqG-FLzDG@3NDm z*&)Ae4!cj+{1`qm!khd;*j9?OTZ>&W&9|yNIN9RVAaPr5W|lbPJ#24|M0c+KQA*V6`tzI7W}j9PCLTO9XtNsO z)h(dBeh@vNtV_ckcGHG6q;@?pVeJqckQ|X_Cl$#YSn_B@8YU+)(dI;`(^SlWfRPwk z;aVdq8juS{o~u6}HC$wie460QN7~ckOD|zrsf_5R}*kgx2L+-&Q zS)Wx~F znATz=3_=(UAO$MYo%$M!UZp!;oj{?(uI$`JG&fJ{9?#Ncf!*Gt%v6@`ob2YEMgNnp zb&c9wS}Ac2pf%hn%3%?81EAl>f=FsCu#RS28>_`KM^9@K9j4~1QoCUpvS&C85fJ2F zhGEMC9M=F61#72u^;Kjf%<{m*FAm_T{*}v8QJJ(CzMh{XBv*u(tGhyaVXx!3IM740YMFWnc*qCsq+%v>P_M86tYBWg2!45JK+ zeG$(&*b}aU+(1vZ-!+I{&XL(+z&l4Am%E=-2oER_cQhdhIXIE+SAl z=S|d=^3d7$BfzuXr;2hZgoD;U2zxOk6oX}{+fzK;MzST5-fAd?p6R!&aqB7_Z{f0XV#ZyDXH-O1wv092 znuhFbCr2DsiT8#qcwp-ehm_k|Co3f@OAmCo9ThUu^bgPpK-EmK7y8=7ey^5kUxJOf z4)e!zVJEHY-9Zi*1Fl_bJ2S}Q_CO9vDP!k^>Q0>$bLRN{#pkqkjcId~!=Z7*&Ff~z zi`MvNN(}lJ+yQ9`^`s99Ds}|^i8!|drK^3E%Q6h zTjvUtAe6-4i3Z9{PH1q{j~0UL;D6Z6u_nGq5mb}@!mpnxMLZg!8CwJo*}-hcQY z%R|$WO-Fv-vad4OX|6}y4t=&ekwdd5_w;Ahig>u|u-7o2w=HpUCR3CsI6;={9VE48 z*0GL(f+hIcY=@(`8crus2bSY zjjRYKWH5SCKm2$w>&==6Lz0jhc-xCJ03Ldj#l9*|vUGiStx*OumHF_aBh5eH0OMX$ znk|cwENkddQ5SG-nE50}jVhI@DTZkG=Cplo%UrZnn5F$X?%p;S8C)=Wq#?gNK) zOJOuo2~Bi(ycilvaPs15(`@m%$qTLBFavB%A9_@Ibd^ zFF^F4C~P5XgJ`49PK1P5k-VK?o2Sc@6FF{KE!1K;QH)I(>qxYhD{DVV=ychlL&^~7 z#7NiGz+u=ZC31}OMdnG9qUl|)poWHuye zLbgF+$|Z7ObV?{qFfmV(Is{ry9H))?_hY{Ouk^Lm6rA+;D$*X8cm_C(HW zAtm-%Kwc(oaP8B|!%29l!-1n_hmMIWhJfpE?TviIV8M5+?^B2(g-7&Fr9rIyQ~~c3 zgAILL?k&pbFgQfus5Gp8F-22oRkp=yv$qNvA@Nc;z7l)M?Fo~Q6jsS)g2CBv|J&sd z>#45zFkLEtP=vpfu1KpXMrYo|XHZv&Yom=;)S#vz!$Kq77_JRI<8?!TPu`b(^s;mL zQC1Mg6vEfmd5VbnSi9}06?ec~(0gzLus>JX9`*O^!Qs%eZN}VdPKB2SxC0Hjw{b>a z?gw{>R)Gf*8J$&US5%^+;WO^0c_zW?2B)Dc!TLW#QAPh%W^wR4v{N~SvZuVl+yWlB zuX{U($&A-eXq`ZZ#*G*3`Pt=kb*P-HI!arH%L9^|f5x-M7rqgFL;wv`j+#4r-0S^r*OwDU*C>4*7~mGoZA; zzkV%We*U?5X4Yi9J@=14|El^0P1S`pOe*&ei@3LqdHU4kjS|=qdabfQcS0BtAx+dt zlj}0CQydIV%;%P8&zaRVTbNTkgPKJ=ySlz$uq=ys&qlm|({$=JTH+A)hlfGE^g<_a z+DrlK2gA0bCq^U14Mla<-7!qE)}ezOkVi(gksq3DbEth7>??=18|fPIrIBi9c`x2B z$lG^WkkKPD|o8*1-H1DWVA56rp$(dARG4R*PQI(hv46g?|f5Kns^ z1ox+*O_$WVl6Nk%qK{|pw+dyr-z%5(Nz z|9njzNbWVlk~*)!_>6u|ocQpuQ>=6U*e>RIjO=Xc>krmw9TVlT*NNkEaJ=>G^L~!p zlhmD7br@^uBuIm9i1Sp}eZjS3gQQge)n%3|YD@tTA4U?E`kttrKy3^djEdUDlA9TE z4(w?3y`$624_8*3Wh;x@L?C6{V>y`oO{aF9Z2HlzXu5_;%CJ-`s_<>j}oY?uXsqFcg zaisBsZG<)qcptEdZYZU2SiNpmjme4MbBDzzLwFF{Vj@Bpn>9^-RHBwoCxR2EhGg!r z--$}w2_3`*mlfsdr*^YJ`8H%}%MnrV16nop9|mD1{4T)S(jC^6x&u#xGFvD~9Vg$A zcyG&%stn9I1=FEAUdaT&c^jKKpuKk0oZTr55_L`$l8}u3jq~ah<*1Ky@n_j)GB9Ri zZHD6pLlLvLUl?Vbjnyj*a?k1|svUJ;>6khjr|+Gd`_E(<5usCopOe#Lxj;(_k%-Ps z;oO?wG66o5c!Wx8GQ%3pvGF=>+0qS-%-fsm=6v28JYu(1c2B&2cYC8sQ}cxC{B z$uoM4a5qaqFy7{&yLQo8&|nAA$F%$dTp5yRyiOB!eWpvpT@nKCqGYi zUJTM+LYZUk&6rHFk3Cw9{S7DO7IkTDPEMM0s%*DDw#p#KQW>kTKDxW6KX!AMpZNO+ z)GfCE9TCp1**XR}OokYs_51fRwHfF1bnZ(i%*@mb98{$NBb|NG6a@}W7<+M4F* zcwE^2*Y@+S%_o9X$Md{$1Wi8`ZD0@9c4U$PDfX6Js4FR%o`A2#!+RQBL7F##3<4W+iNdQmyZ_M+5{mAdO3Spk^4MYZtZhfo|($W4o0Uve8Xd4Q`=r zS-bY0B%9Ne!`7FSRyLO>Frr4EzcWVvMV%6NL|y+TCIB#oM5o0{PU^~`_F&!0!Azqb zE}B>Y-+_&xXMkKU)nTtxSv#_psm^+iz_a1Dw(1#_J)us$oihzwL=qvzvyZ_5yf%d7 z_W*WxTr;8Hm~RAgz1+qVRC*TX)b|Vb4`$_oZ1uKB3@xQ|$8}A#W8Fr#+VRRR6+PI= z%_WX*usvP1H}g~n94+%_4w*T6d%>JfZ<*WQB; z*(ujf3LWDuFx`d#DbZ)A7n-G|wG?_4X9YI!vFZhhvLE_Otf1rlYFaS1}t|8LFM7-`9GulYIZ{QnWez@cx6mdhuNC&dZZiMcS#OTF5S6 zIz#YOZP0-I{@!d^JRuNK%l$r*Ee4tAciqgTyZIoZ3N^q%YhZxrE&ncAEpfDm^#|avo)lpcl4iPt(8eY}w zZ)7F>@q24XOc;*C*l1&^0M0X^w(G1&&qmZyKE=d(Bu^uu! zPa@vWs%Me=I1)F8icO~Zcat56cuqRVm6&t8m92?JKGSFr*?0c_{!KGj_VRCEeNv1hXrH-0SH98xmzCS!{w{+lBQ6%H{G=~@O2a?6-r4u5!`2Bwbs;}E zdWjO!$*p{F5b8n$1HuDF=aaLO$e@oeI7Zja8NP2>nisp%*gu)~@G7T{x=3L#$+&k$ zdTG;?qNd$~DL_UDVViQA>s!Lhs70ZOWMy;@&+VC^u@O%BB& z+=D`xCq8qg&g%GdCE)p$lCR3R&OUgT6+RA8Lk*E#K%5jxMmX@O{4pY&vCU*>%C4GX zo!yy-5=UDLukYr?r$(9=~Aj?bQGgKM;0dc@lA>4uX!TayO}`uF3}Q|$qz zAtN!~SDj@B2gIM<|5rP_(+QY7Gf{nBU0(N%qVu3mUfTE}48^ZR4xGb-_I5q6&Zo;b zGdAq=Fb2=(Bk6>0Db`bHU_`LRWssOM!5l(izB)Qn;-E{`x4FThvapuOVl1p-_S0@H zh*F<_KCflBEHHAmLEZ8T`OpmSzrTAUUp;-^?m08#XvQnP_QkVj^5y(W>h@8Y3a<}& z{;8dBIH{OB)VljQd-CLok*zcb5hx4CVPDc~BLkJtLMBf#7zts>$tYR)EZCD< zB@{8jDYQtLNv^}Mce}!eWRt{30bf)C}0^R&^(|Ycey8C+k1# zGFN-v8m9#265~{Io%%>-)+%EwCEb^jSns$E{oyhujC@Xy+8o*2pY%+eO6qDX;MU`v zHJ6kv(d(6G0U3A8mMj5L7N1X9>n7v-n0Vw_TfX{2N4zDjH~wK=7baale|F!0Ihkz3 z*Lu%uw;ZSw+xf;gx2z4$KCZHs=UyjUSPs*-XYTf{Z?81U(;DM~e%Z5UtxU3(AHIII z28=o~pQ&@J;L$X|UTuC|&O^VzPWGUww@-AP8!{b;B4#gx%#yM#)pfSDQ2q#Eog;~; z|7k5OO&G=7)m=jdxrr9Uk?Zl)_ z4GR#@0@(nka}#@++yk}qsN_KpV81;-Iu(>(?3c>+lCxYKAF0h-TjCelU zt%Wt-Z*Oko>2{}n0D?!y^kSrxPzM~LeBj)fL!ay8h3*7DTfXI-dkiI)pb#+i9nkvjJPBYcvfBo{s8AZpR zy>KAV3k?TiwZXYC_k=PP7V!JYnpps!=B|LJB$2h$eMb+zFq7a>q!3htqoAA0v#=CE z8o~4kzSv=k2ItA5_1A6g5K#i*4irQ;&??~)c8|{7m*TLSkwNGL>Nut$^T46>sq4}L z-wFzIbttW9+_F9f5zQp9`EY+LKY#ile|hp;nc#+**Z;maJ(a7b;EHBtEqmz>1zwi+ zHzlv*Lgu&T4jJ=J8{_2qi4Yngk6t#Dp*Q|;bbE|8zDk&h_g`I#344q7<53nfa%&9; z@xofH7@jHtGc4Y;Ov>}i3l&0891iWq>urlxfwB0D%cqf{()IH-!F39iY@6?^mc6=Y z25hX?AW#t5Mi^?N(Xg=~Tf)Gt%)TB%36_AsS+n*&JD`Ps-XefXSdxdi4adJnFuh%X zghDQ%=-p|udS9zEaRr0VyR#p9ol2LX72c=F%BYR)kTi&-*+$QlS7bRl#Okr&fK$8K zZS{WWDHq07?Z$+kN$>CFG7f%$pD{PE?3iU4c^F37<_c=c+t??g0*C+tAIl(PeIu{s zqXc|d4HIYdmVUh)a5E#lu(cozJlpJ#*X<5?cRs>l9PW*4D@r7HB|pw>%0~PHmUWaVTcw((t1OlZiGi39>++Aqa(SC%inB6#B*jF>2 zvwg^irh!T77Jq3rOsu8E+%k#Jno|5w_v#F2prcr{S)r!w`(RN#TGeFPGmP>R&gwT` zeW{RJp|LhI;{MH7U&&8D{UR@(vW93dCgI4uZ0{@6V1SnH=SK_29l(!?i6B$=;YB4!0 zX->f{QBsLsqByU}FvT>R+*r2X284ZZ3vxU-q4<>(OV#>lJ_)C7fs&h+J=%fkmo;u-cW7XU zwuBf0qUd|WzQH~KXb(ZGyp8)DBU@FgjLfc;kWOSAy-8lp1KS(Qit>Fx=g|#py&$OSk2&y=W?BuqVxjDgNHa5D46Na zdmq2H+Q_|ZBt2RubFhp-c6J!Cm~8+A2lU%fJ+d=5PaRUs2M%OmmC)0|Ki%z{2J$f( zAl%*~R`=#Kv1G>9V&Ag+nrWX%7OEL#VSiTYk!*n<9e0R-dtb$42{A3<3hF#e+Rek) zWo4LE|7-U*PFkR6)#hk055Y1GMAH%KkyS35PJX6iRYPtzVJB#t&uYPMC2A8ZftX8qbkKOimC?pS0izl} z4iWMJ_KeUV5Nj7Z9=R(#IQpGYQEE+;!PB-mhmj+NLXlZQ+}lVZN*6S<-4ityJBLgS z<1wLW**?d}E3^-E=eY~fG#Y#^gfO9Dun}G;#)3Dqt_)*>f#=yyhcGGxOnMXuQSv7( z0<>Y{Wslq{R$ec@gu&{{5Lj|--q-gxa^HmX=gk1qp(KlNXC4A`W=n^t8t#EGp&lJK zW=~P4)$3MWI6{EEySddvxSg3@5%2#vSxx4AY&BV%SvRf00O*wP2g_OpAyo)}`R)Dt zwnq0lZ(tlgJ3S30qaS6#YCy>JeQ#GHE2C0%4x`*U%G#xiQrLst`Sw;n3BkMDnU(vW z-~U~{{`_UM3j)jV!`*{k@3v)0Pj|<5C{fGU#`@1@jABloU7W|ci1X0q_7z}+=NDQ# zu%JBzKf_gtjDK=t89|HtI~4?JSpsH>UL*g{@4v}WvPk#KqZ2&``gGXpO9`kgUV!bP zrN<9f@04T(d+?$K7%mV+xA)PbQ`KR~d#ZGcy67 z_Dy~_V}34Xm^krFsvV8dvt-s3{>{g?^6mLk&01gWZGBPmT9|o;ta-INUhQ?ge=&Kf z&T8mCTDf)uGdNi*-Sx;I>lowt{MAci3uhzw*!9WSRK@ErWmuMBePVAIO=R3R0xFr~ zE;VX^J~Ul-N^+$UEtAb6p!2t|26|FRCwe?DrISAC`^XCKAA*Q#S$c+3gTm0cZEf*g z-TQC?k9GkShAi{QIT$)m!1j!XA7qt{&z@K__gWurljo%uxG%N73G#9B`#I-(1meCiQl5FBUz!1aQ|gCkgn zebXI;ZXCO<UJDzckQ`l<0UH=e7O2$p$Y{BE)LWVvRL+VT{*8!)9$!3gdwM_=B{N#BH&9moPmZEi}nRZ*MEVmId zu^W1zbgCG$$9;bB-6kCN4|}tBc1LkMTs~`dpI>wmTC$7qTuI19&(3OVG}VV$F1E+! z2qrHF;MuBnqH&HiA*I)GEJls`Z!55)2> zN~5otTX#l7f!Suw>@kWK4hqFcb*S+(#}Bm^hyuE_^Qg^~`cA)V%2&saD4Hatd{$Ub z>dvJMPLoG~V6++Swi%p&nBnh$E?|6TWc?Fv0yho|Pk`}X^dfzqFYj^X43*ts=-0r( zy=@Wq-yUw1$mzsM1AMLOAmEem8nzD38ry~Hu+GUpFY@m8Mw{0E>$4X|64XCQr+3mK zan0V)F!1!f{fER5Y5f_oeXn!=>E=eS`TqJ!{_VT(WOH=Xry_M|Wl-~(Km7AY`R>av6&hIL=}_}}(oxVtrxr zscax_nH(3J2WEF-4up%#Y;~nDLg1pZZ4O=<)z{C`!4@hF$-xq?ZJ|)tGYypRuFSIC zBO>RvopcNypwf0$#TvHb1Czq(Y6xCGyJc`z{90j{P(hoKV7o`*OQ^?$d@2T$S0PQ( zC@0+La<#4v3+|t&(WDXOvN4UBUy-$eSgj5S#u$i+j9j8S@8fGcE0JxGqBV&p?4dbp z0Ib)As*%&iiN18tj!&D!+lG~pat?XrGCXKS9$6XL&PZ68f{?%3mIz6V_Md{Op)f;AB}=%sn9Cg>cerM00p8*0;qqv8-o! zoF_4YnmmPd5$otWYM5*5(JB_mu^uS4CwposYxyJ zh0dZEa51Q8qJeuL3>Ni-oTnUN6MQ2P3~eZ_=V9rTwEB`h-~C$R>+aNKpyYER`PgIh7!vJ&NL;kd?r;8~#asdMi7QVeEoBxy;;9@aW# z!`!&vlBLUP?0qY1$ePTVwV2hNA2ge-sKMMYGE!w!;tFSInHs=HcBXwXqT$vko%%5OosFB(H_61_Pg?p^5BX$ zX+{@L+L^;mlE~O=OE)&5yJ;~`Un$|8prIOcL7_twCThcT9=!3evO6-X;L5?BOvAyi zb6?@Ga^s_6d`%Xq1)CY_mAr2*wT?2ZqH+A>kVHzJ6}vC*ug?if*iyjy{snr0ZnxI6 zX$)EOGshT#dwLrMYjvdjXr%VY$u?ywT4kD=T)ClfE!fk_%Nm4g)vL+j&*kMiur zv&bU55jrXC$r(CZR{Jasf-=QEjX=Z3GF+}^|M}yOB%Xfk`GRE`z_w zVg?_afS-Q-RrlFnzW7pWIzcgipT^C^@82A*^?qB_S0)m-AcMpj zO?9#rPT#Ltr3-s;fm^LkRw$41&_}K-Te2KiGbR?!qZ6fJ|5&fy!g>~wLC3pzw6|SO zrHNU>ZHIBiNgU*Gc9^!op2}p|dW9|x%DEf6T?65_4&w$K8_qlkDUvpsGiTARVQvHn z-=4IXwRDoHWRdASJWUyf zxPN$%|MV(FvoAk`^H`k-!(DlB%L;dx=JX= z8O`QWfr0z`53ie3YD6FkWTXDXIX_eK8=s35au8QX&sD8eQ`jfoS(JMKWgd{xThuYL zd_@gsi!#cN^|ttdTv-@EI@(N@p&&xZkw$RhfRaGAuhv0ljEn3#c`$qwzFJ*AxUuDq%Hh|9fok+SLsEE(F0i0?O|KRP3L22>%_mU+s zoqjwW=^QC>6OC98EIyRIok_JyJ@Z&ZeXZ>9Y}WN>yF*!qKH!#eR9g^#8Xrl^Ubldu zXN?z6c$7Y;n&jY)37Zn;E|^CvW!|Cldl*x%>8O+4iHywrJqSI8r&b30ZER@+azG?B z0BH}DMZwv+5j9N3fX?c z`x~;~Zrk|pXhWNspN)*ObV5Tdg-Ij^)GW1D9qPPQk6dw6=3#H9ZkXu{y*AK`_g=e$ zz=m{oc%dE4&t|KSPs~Va&A2@V+u_jBR1>7Hhn~S&Y4ej?g^3^ux$82b|L8MLNk(I! z)<+6TEWn8Xw=vZ>dBEfWbRiN*AY;OQ{f{@lYFCYKoquoxNq&9P1oJC$U?1^nWtLs5A@-3{JTlH6)ezY z_Mmn&PeMjsw%x>#+6K`xMO##LYwgKMUAE@T8>F0NJamRZGF7-PUbbc#**QMbU-X^0 zUo!0<1Ou*@d%2vBRnASHJ^Ae4ovK^2n92J<`5{c4C-bZ!ywIS2CIvk0SA{;{FhGf^ z5G*tr7OSIya9P;$2H!hY2q3cwLsTgTyIapfcqRw+cvrW#T-YNyIX=<%Tv+P^5#DOb z!?HdP`-f1p5MD5Vpj7au!jdMd3GuAKxU*fUdOdDrHd!-*b~rQZdhnWZ_<$-1=S)^k zUzTD`g7KdAwDOGxLCHWt*)IVphA_jZQ22b>l)=TuU;>4Lt+0>V(L4?Htk%{AS>X-H zIwVWa4hau|9RwGQRu|*7MW)=njs=?(QGFO?3UkV2806=5zSWqq2sB7T)W8W@Q04UO zM5D%N1M&RHr3%ABB@BZSa0)nt+IMy8eQGBa_F1Dtcm_bO&zn)G)ZrA!dWN&H8YhY} zb3m5B@1LKZ>e{1D=CV1>Q}Pxew4_)(o-|luY-zu|eyvc|)8kz*FG}suQCIi~NX(Pd zx5L{l5sc76eK?SdkvnPd0%xXJ6KfU1>{sXnE2o5mf^AXflftT2&zhKU!2Mvj;=32^ zI|tU-+IcMjw=kA9XUewCsWm&ZIafte2qINpWOu#?l7LwkZN)+;psFptcTj<64x!FJ zrU;7nur~-6u0EM#>wRxwa6s_ywp%KG~l zosNB?@Gv^)7=tsESHr|x)ExVbn9ec6r}2u#_Ib20NG9XP)(j4}5$S(-BQ)A6c;IB} z#;GbNZ@yjVIE4Wu;vvnAGV2BA~ zP-4k;ma#vSWjHdR41Cq9fl5g4s&c*r-2X{){t;vl$~nNJbDVn%f_Zaz%Yd7KsY_Ux zxnND0%3Wl!+w~5-4`i09 zZJ%`|=#cEnJvQk%1WUDMIOjQPH4|;A9yF9VU-ru4M03R*QDP2V*KZVRZT5qhSRwPX zIRg*K`U*3eF_*TVeCv%#hbhnp)tKs|TLVjG#N?}Ixo6stR+HCZxA+XsfYyPo>E!ZY}B89ck4AMU3|WbC8H-DqebJwW-!NE*n=usp_a+w0(lkANs5e zY#K*`J?oF3-YL(D-m~ow*c4-@1?vxdAoqyLj)@H6F4KA~uJNsC?JwSky@|EW5-8S6 z(W+;bXH@N)Y-coUYdg*rgBB{ZP{8ky$}j|Z!hA6Cr%EBee;by zdg?VEIhIDodIR{}e(>Gch+_3AljT!-)YXkUujyoMPo*#&$00F-!4R%Yf0LYuBN|5d zD00KOKDRqO*7etK= z_N|Px|DbpicZw^k`(~*8=li$%=ck8^`}SKM&xTO0cs9RwbpwQFp-{MJ9Sofj)~N;wPVuwB zvHQp9V074pgpuXFWWx@nNA1URXp@tb>fM7G zrqpHF_dUbp%GTTBWH%fG3d#HTgB?eQIz?}Jtl8PRI#T`>Cn!2;nTnaUK2_GnjYqe~ z8Xk8RLoCri9>?P66Iax1u{zII!xrr-YQI-ps}eHhu)pL1BR?BSx{qdS7THu7SzYr{8{+H}Bue7oWZQ1B_|>d*Zxmxk}r=KyP@z zPtVS~@msjR3gPqaq%G{1r(__kr_x~5(a{i`@N?4jiOvi3&9aYiMPSlr+p}%MygUBR zjsJKq21zFx&2yeQ$xb!Bdc(G1@qIV?rNhz2!|j0?^VchTWZF_8`*a(`P4=F{L1Vu= z>6Yu|K}PyM^&E}sRI?ixY+|O&kJxCU_-8FUx2_w;p9qfmJi6ZQGJid{qyG05@VU@4 zIORc>nsWpeWN>d_FWj`u2Y#ICImQ`ha)1vD>jwRNaYH&PMSt&Eztneap)OVgR7#!b zFiDKfbq>aKjW!{NhgB(8kidEHk}Zn7pQ-Ovx4C@8u8$PPTSxa>Vt=WOsofFu2lHA( zbK<73&-P_m@Au(=>RBtxifj;%H%(sW>himG9pv^RpMQU_mT}b~kY%l#ye4zJci2X} zW(2y&7w6dDU+HU+m7|x2-;aNHblnJ1_CKcq?mybtZVUT8l$9UoytW55*-&ktN$UH^ z_Wr;n!ZD2{X=b+`G}FCT`8=He&?89+#c-aNq5e^6^|*!yX7zlW)%9jI{ttvXJP3;x zcW>`+vCjL0P-U6)l zV3O8^GuY^e4-ZBHYXAG)mE0C)-n(VxN2JSL21MsVuLGM10tz=mmep#&YAlL=EGHJf zlL#P;7%E~Yyo^*i6-%`UrS_ZBSaFI;cLju3G?R9$e=-=V@bGEm5z&}slCzWZ=sS5x zb~wBNt@kTLRKWYXZb+Qq{VNYkXSA}cNQbxxjW>m+9gJ>VYjYSuq1p&1G4?uNcc_)C zn-Fe@7HO)z-Q(T<#-LEkgFJ0nga_?Sgc=XeQrn!oZW{q({PO6mMS|FKH4&OmCQ^)W&o zD?(Q&LQWx2ef@k+omL;2Q)Jq||NB4XyRW`b=mp|WsB`nW5o^a&L$JVUebF3Tcb;Xa zM-WE;#T^Scs2ERk^c6r_+QNJ=*~@onP(WnYM9F&yc#}AMX{4 zgaIrS%B$7})e+Wxnjk~kpNDL<>Up-lb(Tq>fmo;*i^~eDy@zAFEC$O{s90UyYH%=% z!OfACIt-lqrf9C3vG8PjYC#H=h_nxDjZ!kSfytrqK3voBnn@z_SJQgmnmn^$ z>JQiNs0*_7SJcUuL4Qc_1JL(SbVWdrX*76WOc=zwd}PK{wn#r9b@(|~+;LhaN6yrRXTs!@?wf4uIhRhthBs1UZ_eG)dlH`%I;d9D} zzn)dE0V>@&8{ngmD?mxrng*la<))~-T!vBy)ajq@PAuqG>x!o$0?#ryD9i?L#fSy9 zR=+wDVHQVXSdT>R+LbZwmF5imWGCf0=)8GW6;^;dO`XA=V{#d#Ghp|vi|sq_$*9Cn zDrYSC>qIxsF78$Wrf#oowNU%o`-+N^>sk2##s+w?&TYyoG9C>yw9N8>HKGWDZnbAS zKU34n0S|{_s0%b_4rgErD5K3>4ugLh*xudlFylIh;q4hsJ*TTyK)w3c9j7`tpLQ>| zyGxYG)j?lGHg@g=sQx_KM>;WxlX{@TZA9~VOlB$9LX-{&ITL6%k?|H#;O%6bEr9mU z)L-6T9rJL%*m_tO5i+5>T|ae%A8d2jY^N=->3!3&##Xm|Czq((rlUI|{EXPo76`UE zl0x9_u#N%?16vj-)XorMSwu^bu;BlVzd5`}!-* zMB;o*UX#lcLaFEmRIIrMOWQv9baUJM6-QKBU;tTH54z~nDZHDg3hC_|ldj<+|M>J? zzTBSD*0X#3eEZRKK%3rwJ$BYsff5+cvZKQ5B26G;2AkqMPqEL(G^W1FF(0el6 z^oCH;i4F=3KZi^BE|^H=?U6!{*o?;8=+OFMvq@OOP_Ru;Z=Axk(hAA}iLxk-^*T)v zX~+Y4kqM9*td#hl_M_DIWMDWGZc^#j%0{XL$SW2Hkrw>;JQ^f8sc_ZWBVGqku1)H2 zLS$XQAdB}-S#LBG77z!65ssWXly@57Up_X6@Qg-%X0vb=AaugUteW5B+3|_it(h=1 zf(}4xKZ2bSP=$F47_hh!bYd0rtOuA(9$kHfc2){cZI;|-=IN75g@|5Wo?Ax3`+Z@p z3C940#n($@$o5b%Sb!o&|0#pd4Mt^Km%sn>N4dSd)B07@yj5X)+UM}}R7Y4T44h8> z>iR}us_tpUyeGm=@b_8+&inmuzsb{+Q$mCZQEuOR)12}%D$mGHR3k#zB*NeWB3cy& zoT)+U;E;M&%BH=O1jRBAd-6dRRY)*4-yUvtPkPPLU2{4bfZMWWME9(YJLnRG@Ja%9^CPa2IWm2^ZT<#{z`aq3^jHDYf)-n9S^B_O&xdntn00Tn1)c4H&e;_@Wu{U$kK5MvZ8P zT#|2qWdyNDvMFIL8<>W`#%$#-6Je=B!-&O`QGbv3p|b$h0-O;8*&ym2ddB4g_b+9` zZIcyO*H`ik@=Rql=XtTr>3{tAPYp_)X=|$#kY_!=j>y1u=>zJzwKe+w{TrQ`_cu4q zNH{S$df1C+{6o%*MCpV(OaAN!>RCXj5j<7BBWvdHd-TDi!M89nUI^)O5)FagPKH>~ z001GDX87eWQiZ$_UR#JUKQx(xdOknH9-ux@&yE=@;a)L2Vh%lDq#JSW2>CpeIuNK; z=+_5>JkFbyT=a2rsv;YV{k>r+p9hf4`xbee0fkS1IsT<(9&fc*a8?^xOB)Dp?QOz{ z-eR%_!BB)d)aIsbt8iePBkG;JovE*8h4gz+8_;YGTq-oYpIr_1a4*94#EHCUHs|H; zxbx?b*h>>uzJ{Jis+LgPgIC67rS{vc3KKqIYb`uG+HgMI8ovp2&k;-4p0c0R> zNwLG?m{@I>7Us{YjO$83^wZ=~rBy1t{_(RT%&n)YQ^4kYvy9mO5cYjokv*_^w@=JN zMAccf@O#8zybfWEc7_b0AhCMYwt)^tGBM2#Riq}U>&H$!NXW)cWweXUV8Fe=co_*~ zJxp270dI_%v30=s0H>2Q%oqpvd&|ClespZd0Czx$zdT8-Q>C#F2LukU*SS7+Sbaq- zI>tvyR-hfvG8jKu*57}6dZvaCqHM`)06pAa(;u#ZKi^+n%W2Ct_?o}{@KGI9n+I;x z_I#IU9g|W74f-@!kwJ*|ec7XP{^Lv3vsXT|gq*a)iGQufFh`P+=QH3r0a#bo{B+&e)*v$DV#; zL^u_PwlATS{rns$L_>}uzn`310aBqoX*yF)}#AoG}<-x+GKoe5n=b5Cy&s&BJXlyJf|rzr&KyL4)Dc! zMU-Uw5zOGIck=x;Y}meU#cHBFsy-SlkE7s1IpTHtm}?lxfacDrUppL|WK74szL58> zj|9r_0xZ!XzF`Byu9&-T5`9bXR^f{-&MTjnBjyx5yBo;;N!*6RuldNt7D zknI;4nHNV{_Ls|N+LQFzbQE%SB)$lOj$HfPie*!uZBDHYofkx);hQE44rLko=h-#i z?{8bg{M3S4A$PjrX-igP9XwMMY@6H$eSh`+gK0W%5qZ6wDxa+K0=2%%9=xKE9)xmS zqeFjX(DgkiQe{wM@w+ucci-z(y3)^#=-b%rSq#=b_u5mjj8SB_#JDRSma>uy6Uwb1A{9d-31tLWttWCMj65)=uk7+(>x$rpJ3IavYl}EV&?(vpt>%E4 zIkCix*#|B+4N_w+9_?2S)X|gzIkMU(VZ_*&@i&Dye|Rr1Kl_aKV~tI{TGzp_MEjd5yKbtF z&H|HkigI1QD(~-sKKvXhSHWJMw!rXIQjkbKL7!*nL%^NMdk}k=FAuJ1@TnL<7S7zB z?TH}g4z%44B;Inrg60~Zfa57O5|7?-fPf*HMY@o+f_i3+#u0^bNOIGZ+PoMHL8Bq1 zXEuB@RvyT3#cEyQ|Mek5p`D$@1cNr}B8ealH~Kx8X2dwQuD$wS1k8qD}&-o=-U zbc3|-wGL3D95z;5zy1CxdZv~Bi}-!9h~`y`qP=U$`lB`nJ4RnKGY5%T6paKSYHlYn zScE;YY1I5FGCFE-XCu9W&e(2D*F|WQ%aG+^=D61vb4!` zuK`|oR}SIOjf~B1cz9O9iI#d?g2uLHhf~1H4{=`YGdG7j&Fm)jXTjKSTVUm`{b&Sl z+DR2xq8#(|$VeI%l4^tj7(25iF$+|Uv_y?GCnXUHB?~7muIbP0MmMhynWU_PgTYoj zSeNH;H0}P~xk|a8Sj&uyov++s{CP>5(TCHzV=JH0U>vgyP#E_I%bcKYQ)O*(V=hPC z&zJ#MgU6v>ll7}cUpF%#O)y(ul%j(%a=_ZgPP2BjNm4(LE7z#q<2<#0U!#>%yZpz)yQPGZjdLk^V)v+=Z`

    o0O)@5M<)fcTDS=t{%BnD+*g0s&WP75`VN)@SYnsnXs@808$vveAQy4-|P$*q) z*x=%pfyMh|gm#VT%ki9xwF~O3yko;^Hg1`IAQDMac9|>G?q}(JXCIK2?1--|A}fd~WHbw<^yX^Q$^U8v_;(^SN;wwJKS}2$6e# zq_bZ3G@C3pCM$`TQXo9KdB*~vk<+AI{q z$jzbmiiAYDuN(_0xLt`SX&F?+yK)I|tvL&@x1r1aCcaX3&*C&39?GSXLUXG zw)GUU(0^O4txakK^=XdxL1hn#E(ZRR7C^N8!vUMBJ(?f6s3KAnJff_RX8ql(_X zsppC4@6Cy0K$*YXqv9Yr6T)pXZG8wKr`oD3{-D2-rZQ%g z3jze6?_7i5fBT)+`|+-d<-h%Z{)evPKp_A8@uv_Z&ii}tbHd@Vn!oDvrPwKB_x;;< zQf!#i`Z?gdd=haKb>#YTQNRgjethQVqx0ubZhOWvtTrq~4vceN9VCHV_kv`0plw}a zCGO>6WZgFGxJLXAMLgD(bP>#eL(=qmoICW%feCTHeWs!u=gcjtpl*j51J!i)ZT(_fC4N*m7<|NR;!?6ALiF*X)`He9W^pJ;P*7kc z$yH-47$6^?^K>Bh@2GGb-@K-(Y67UhL?b~@J6?dQGZydWN)v-v3a1HtdRmvHZ;FQ2 zbGZ5aF7;|u2oiY&NaD7Gouf%UTN0dmUEL6b%{XhO)0Y#M(@DI?7k9#3A z!7PuZNs;$lX^3iORPR7nRb^6v!?BYb=+0!6}L%1%)VFeB_%pfuI%jgS;2@P=xIlX0E1|BfCEwebh`rsi3pqB;2VM5 zC=n>Pza+c1qwdAzdaZN+O<&-59^nT@Cb{%!t^#)NgG_{rlie06w5zZee}cM z$r8f4<7coH*auLTrk}uP9ee%*bo|k|A0p5$u6)Jk%YW|$8PH3LO{B>S+&;;W{m)YZQP3JgWK3s=tp2&Wg7z%-64^epulQovNSKi zs0qb>2D|Pd!~KAL!C-NW^jV~Sx>~nBUC2(s=ih#Pa6OUut+e~!%Jbpt(1#q%9@rw> zKMHx+SE#JBzyRBO*dcr->HC~Op#98V;Y(C>_dGi>9zf${D^=blmUZ0MP2x+tMX5-w zUL+F58PNN2#h;C92CWmd_zWk40lIhwD`rqKK~OzyrLY`YtxU&MT27J0^@49gj74o` zuCBIDrVqzrA&z3kP}mj{{_?&bvD#rz(VoM(n`I0e&qVu(n&22*R3j{6Q(iLor)s@u*xc5CNpOO6I zyx#723rG%DO9O~wHIcEz@%(RY;lUaG+@{c-=bBPYc)g^ZWEFF0??1?})3_~MC(jC7 z0X}VKMKgxT)2-cdazny{0VKATHcIV53r9X@OyI;?32wyr`(G@)g+0Oe*wsUd$pg{q z63KB?W}mOG&b67*2+$cd!4k0{S^}RcjGSOi?|T6tz-XT)!p8* zIJP>;cF@B0q+Uu9{gy(hyq?B?>uy63C@CO>x0;2h`6V7R)evmwhIDVtC(-3Zp$$dT%wou`e>xsl_jMWrDXQyEo&}j zv*8Mb+~^+z#fVkKc)YG)N%707l5VEf>^@au)n6f`PDn`5t_(FGp;_F3`{+Uz+EmS3 zE>-^yH8vv?Ou{&Z27%#{eDvsnQoqf^n^_$Eb6;f%u?Qn5KuQ8hEkyxPBu#L>1=ST+ z1}^N+dsrGB#%HY>kt2jrbd9JkGWg&;G@~I!a}!%vH3of-(Qm^<5yyyVkotKj76a?u z3Z3PoT`bu{)A`^<(PlDrd_OIhN$c(AjyLsh1i*mg;&}*>VqoXQiSpU*N#&Rk{#|I? z9U}%FN>o`Pz#(>!-+h=jSA3eA`4O38Pobx-`JmQay_`(c599RX*U!Vz+_>J)7VW_r zqd#zUMFu^ULBT?z%^tqvI-u-(cXH4ijEgqX41Nf>V1MfICumz2Dj{Qk+<6)=rZn(! z9oRl@@1=j-dB{JmFYE`btWt{h8j6(&kU#bhQgOSl1IgBgy}Zh}d^4p}4nb6pP}SQ# z<8E`;&2i@I25v+Fc2OQAU8YZ3-;c z+bx5gXfYtwxwu#RVU*O>dn5xCbX(CE^;ZU-pBDWBfJAEl6zcc`qqjEnQw;(Iq*$#0 z1PNR5%wkA-sKNrcLr{bB@r)$dLB;L%;);pv-_iy0JWQ*lkjYaD%KNsTeYNOT_55sC%pnBD`J5L$Q$qrM{mt}1fyoA6mUEwD|Km3B4B1a!YVMcK>Xbphqwr=^QiDMH;eC#C05CB| zEnP<;#H>grlJ@DdomG$s;<@%-m`<2l^>VtVYcuN`oQ&>7M)rpNc>#EL^bv+Xv{?kUf2~T1l@p{0iT=~{?K)A9N)E{%Jx(CP~*vt>*=nT(!VVf z*FMqA z!XzyExZxK#&Y~jSi{M!!Fdk!5AE8-r#W7ULq!q!t=Bn3Su*9^D+^5IkP0undHH!+n zuZ?q6ms7b;d5-_%aV&8t}<1oAi|dN_W1&xCXJ1cRO6%!k3e zl0aJ|eZg*uB;V!I<99wwsJtT4Y*mbbm;f@pZ-$dECFnPe{ewTWe?RllC~6h^rtY-i zv;kKZh_pr&C#|6JQW;w@aGB+juUy(t{3YQ|w*{Hi7c}EyuuiNa)vJTOKsd{KBeO+8 zE+&)|QGK0c?;f2LK(vzFM%uB~u_Xn4n$bmllQHwYQ02{aF9PQz7!}uOO_$otoUquD zn(-4%6`M(8YQ|*^Ki)qT8<*zlx0xD^6Xgw>3glj0ltZGA__1AS>s?wih@$}dzoJED z71;lLY(9rt0|MZ|Zj0*#BMfU*JXHWiwhUanIV3dDOYkwGi5Y1&J}3v;`#_v-U9`J0 zM+sq^+I#x_aYYkKJiieUfyca5(piM~ghc(BR9185@xYkWsqUW%AO3NeniSU^s#r|i z=GlJ|!CFw^nyDg&S2N(4KA^*uIBn`sKQ38eD0yc!D>n-2+-urSN^2;~Q$DBQ^&0EbH5!KSzW7Wsf!Coq`(aAd~+RmO5 zQpU=KVxH)J&tRC(o3ruiHD*l5%6nFpMFW8fTM(jAX%BTiR;m111bUlQBLg^bKM4#s zgZj%}hI3PZxyz`#y7B4zsW%xR(056b-zBfF^;M;Z1_66yo`DuAy6)Gx5m{5h%H(j$ zSYnPU`hY@EWcMB=rFN6^ZdD0R_Oghs0u;j%}L0W0@9|8cm%Mj zFp;?N+TYyX9^RGxWC1!!utKsq&djN%Ah%&SGah{h95OAIr z+hmKn#BlkR&hvku%9j9RI%uISaK$p%IN8U#oI%#p>e%_Z3k69O{-D*Bytf&jKhNYM z+YaWbv>3rl1~HeUHECOO&;45 z<5=rRh?gXTYX5%Kfl<`3*rt9w#H?seI ziajwR;q>dP?2k(xtzcnD>?yjl3^vxmHtNPqp~? z-MMcDmx`27ov<TNF-hNiPXfx(? z%f()zJ#4ig7c0mBw;wJ0Yi9(erUIv$det7{7#)n%u&*0l&)Libh^T7D{g#sLK2ub4 zIDwyVNQw+ngXkNCUO^)=Rwi}LJW}I&(mT`UV zA%)MgZINhM$#qOS(G{<#CCxnV6xS&ZnL|jkWU`(~+vPi`w8P@2Mjmv%!}Gh3|1qtw zt>H85!5*8rmb4E}cvBQJsJhdi;{H(j;8{{fC74>-YSKo8{%XbY98>NGCfoCpcwT$~ zKPXrm(K6#cVEeMT?_`v4AL%fLPo3BIW7WHP@=?5(CWmS*qx`y_IHgVA0 zxu<(g-Hpv-jm92gRkg%eD_(=`0NpT+jMxl|4u=B2=0ptDt3;uG{-9BY@W9)*uSAKW zVL$sBbKx5)8X?RC2k`4k_{wwwNQh@A{0W z4CHmqOTbZ1+wLq!VjAt_!=DsLRcJe_xVIy)ZK+(m8+FNfP!U|kOp#vy1qW%5* z;S`Tb?o>sA#t=e2Eex!MN}4JZPm2Q}Sw)qY*R<=%Ls$e=J%m(v{uJ9e-s3x*F3#6& zV^SfpBT-BL{P({dTvnp>^tfYjqH4qt6&P$mC=s)#bW@^dL7@j}Lhq!}R8VzGYIQIca5hl=*1e0aJN>y&Cq?K&yWfPC?i5LQ@EVYey{z{XN?=be*32|l zth+?fJW?pC{@Pq}tN>T$If8`6krGI~dT@F;_UYb{05?l@HAXA~2ptU!89!{vr`ZaM zrEA(8cE(Ln@In2>b)qW#InKQ^O=nSp9sMCE4fJVBIjTww_$}zA%B1>_L$x))Bs_0c zuWTm+%v>b>?S-YJImh)HC8UJ|| z72@OY^Wb^+9KG}GmjtM)1HKSbh_7);c%vtucHQgF(H?bX($BuzU7$`gU7W&xr6y8c z>e&Jj!JsPq0g%qqRvRD~W*7aRzH%Srf2;ETe|&8*%I;nz3IHM4d1y^?{E%5kS*79q zm%MkZ8>e3pRX)cS;Y;I+V&=KPre>Nqm??3FS0@?#9SYnicm!y%*)Q-p7wuE3+cpIl zYHL_I19qCOg?HNK8RXt5-l08;v&#E`ZEX+r-&+?VgrkCXC;^?tw6T_eS@;-@bvfgS z3~j4Or1Zm0iJLPK|Lg>Mc`uu&jZXswIF&%@*&49#CrCP5CanEZwaug@;tMBK+Doe9 zqH3|>oCUzU_N@G{T00&59>4o$)nB|XRX<@%P+{1%3|@aeBzl6DAs$Ve$OXTPYd{?Hd)zyKFGDGNknn6>hgJ zA>OOKoW+i-PpMAM8}B#z$@eWN<%RJJ_W_u09~q3O1~0Ok&|PNE_dkusT1A9#mEKE7^+E z>``J6^yMCnXkT!nhJl2;e*W0fKd+dt94#AV8c>)XTPa#TLDkKoZ}>#V0Ko!PYBv0o zgv!JgT1XLvFiteUwsxvVvKeBie_#sXR3Fez!x3L$lnPP6HOI-Yl7S3-L@((yQWH)) zGU&a;7@gi8KA+^fEYX&P4DzLMTq}7f!D#9{0 zClXECo_hn(qw)--%!fW3)`POP$!ICL6VewI8qthOi4i(M4+a%B5^B5|hYqizo(9zu zYh6nqBTpupQIUy5Crr7>sI*hHIluun`0tj8zr6@e-BdyP^g!#zMsICk?uXXs_&KMv z)?c{%6$;Fzgfpo@GGP=IbQ8giT8j{cLXRVZx%m6xhy&Ha=mk)9p|lH%3Z5JGL~m zS3CdYwR|3l<4)|=EHBl*%;7*mxW9^p|Hh^$T~|JOhNMYUkkoVMwpTmMd3`{^2~ zlUt0q!rt9Nh-$U4K%E@B!@jm%sCCd(Pb{p_iSQna<|DEavP-P(g^H}paeuE)uE(X? zW78LXhpvXhS%OURTp#SaD}G;|ty*)QBMufu9y~vPSh(m(TJ37%|NML=^MHLu92RJU zYyKca#n`jHbocXUjX$31jYm?4Q6xCC2r`g-&Uq$VtnM1wN3spTMm>OsBVFCwiOMQ} zE)`9UBU#GZ5!iivepn0OcuoB*QNg2qK;m$Vs;Hc5B#%r|?zapwR0V%f^|QD_(hYv7 z2k1i6ir{3F5;GUWMpll4xRpS-8HlgT2`<{vq4y2}>Tnf;&mGTa4Nm@(W^ z!E(7&-opPzKoh}DR*`E|o|^^ab}5pYF1EX+Bi^55&YT>Akwhh1P;d|X6Yt3pPwb_a zZ%(D$-qWV;j1Md@L}8oay&%e^JeFv2;KanJjM8n30BoW~3W)@E``pCTXhXEcV7>5o8O(@^om!braWV9>Dw(s; zlSPKGZ=cm;{*Yr%GZfBKCx9d4z2O8wuWR)@Q$cHG&JL&YKz#nhD>n+#TkRcQz9uo-a>sOim$@)~c~ zlBqSFv`+3(smekSR534;kzkh8b23F%#)p&t85PONR-QF9Esis`-=xhE0OAsA;V(-cQ3mNmxH>FkN8J$(;_d#qj(e~!9*m_>6Jh^CgEougW~$2eZn z?35wjA3}%N?-4Vzl0Ll;ub|{LN%h`{wg8Elnn^@ZR`*6b>Pm25m0YT~Q%xYU)is|7 z{aw|5*`8a1_fc2UEe%tery2Yr@A1Vw!@db3M$ zH7F!elWVSKWa)j^%+ZrVd)}`$L?I%34I~g?Dv#8?Hj9DWj1049$LQV3rPt>NsulkW zWji{(dLrjaTuK@RDXsd_e0|1m&gOd_!l8lR-H9-M#%r3Cuntr(s9`}T;}L5$E8w9F z8KW06;0b4K+FbL73R>@|>Q{;@oJOpwsV3Dw%{^sDjtXz=kEEzHRdp8&zw8#9D)m=H zit}ZuY`a_8^752mivI!WeQbzhOq-`%F9>0Tt5{8+`;zQJ5T;<(jL~te? zAwiow+20*XdgFN}mZ3O5on$NyzR{l}(WaK8nPUA|Ii+!u!K&VTI@hiO75AAPhqVb0 zP;yt|b?tl>L`${TGz-xPofD76eJl8q0FRY;LGyw!9S%6`AXT+Tj;l5FL9PrMNy_fpGk@`6TpWOw^DOXW&{)ZO#ZC9 zpT{(<>f|-{h5GCCJhI1<_Y^c$C%e%DR^*S6OvG3eCQU=?u({XrHVmTlp7(M6QX4~O zm4xfMN8jnN9*_O7|5K`x8ch(Rs028eau~@oY)IWxrIepFyuY%NVY^sGL+kS-odw_# ztwi(-BbZ&f7~JR6Njh7BVn1L_dP|zW3KunQSVqf!Ap)nX{|f43EMin3MLYMxI)14^ zQFf~ee-1nC{UEU-B^lMdt-=0DMa**UVa-$>382WP&0k(a_M2N`K;4eO8x^HtF*&}n zEorxD3*($vu{_S(d2X75du4wabBSVIW8#V!EUjnIU*=_3&6%P*VtO4m0X|~FU$||9 zJ*=_bQ8a+hni4~(Rz7vFET`FaRrbcJXQh!Gm}y;8xi#9Jrq60nH>;JB;-2Ha6fG)o zuV%-M@KFYnaY;xtW&qo$%5yK9{nz#WY>81SQ{2)>JrnfxX&jB$C)ajnp<|97@si1B?4PN;Q)DUI7=nI#$xuJmJmWt9 zUQ`3GLV@vlGd{i6-1nurN80;7s=Wbx15|Ie$2Ah(QZvRcX-TT9@Veh^SV)Wa-?Mcj z{=JmA&dYU838M1(c^>dE4Ig5w09khARr_uthWD%4Dv|un8UL;CC>ri#`~rrKTr2%7 z=;KiY(HYTROx0%lVT~T$|A!q@?uSA~2aL74h-rH#LX`D}*l%5nl)~lfSkS<}HFGu? zoA_hlVH+|Y=?piOky(OA51*;L>V*pDYR72Xo`E?LM5{m^!NJXFE`x;K&EQ3%E~2#* z&nem&Ohn%o3>pP%99-jaI0MKB?Da*+E<(JRd&Wb8q07FOr7xKj5oLaeQYT)$9soCI zInmW9ZSSO-zNvT2v|Fjc-g90k(W>oKq}<0DoJQc$e9S`}g7gbNSW>!1I6ntZb0+F8 zbXrsZ2@E~md*k5i7V4AQ=+VzZ+FUI;2IYEfK!k2ae1XuiQgHkaijNTl4j;5DB1t>k zv|i^QV$okEp@@ zA`!(r(q;J~WSxuz(U0)^k))tP8iGJbJ~Az`dXm5fqxb2m!@hL#^*(A+JHDaMIyjoso!0J(ZMsMl?Vi z;8?FGMXiQ4pMl^@i4#8!byrfQp+4=ZA#IC=fvAq_swJ<@;!nK(#bYmIs7lPPR8>TV zh$OvG1s%J`%6QC73FYun7Ox?$Qa#S@owg&6kv}^X9Ur9h{^$SxUpb?0_q@VX$u(6q zD3`dtpkdc@0y87oVQ|z32YA73wSLnzn>CM z>t;5DIxev>fG{Wytj%C%dT%>G&xPC``QF8LFxVZmQLJ#D6!vyW7O7ym#eXYV4VxFv zf8)rZUakO_!;KPROqvH-t-@Zi_fRyxEkVk1Nt%^dnWDePtlTA&mq=Cvyyf0m?tBK% z=Vd&YlZ@~c3a0e;oijHd^aEf^u*%QZKC^1x-DX3_k2B?Y&YG>a=UPQol%MAyVw&z< z?9006fXk;pq~vL;v({D>4$XjlYVI>^BmDM|?+b*aclEks58iHTRsE{HCm#oj+sNnRa8zU@YwMAKi3+Uyw99}xvt0kSFw6{ zp0OuAifi|0VV&42=3%y_Z$zx9#|(>0%s+H^JG7MKSi0a&&MT3DAT@I z&k72|p;Z65ORR-Ei$_;17IyYIn4AVXc@0%|oH5)rVW|=;yFwg<6C#H(s8VBG1(+74 zW~Bw|#>ei&6rxJ5LG!tBN&#EP6s&f3*Z^FBm6l)^H3+J}R)V$n3eGz}9>SGijWp1M z-Cr8?RootR6ngX$pZgjW)SP2KclkT`qtshbT*f(+xW_5Mxezx3y3f0!$K} zxC0cfv;i6!LXCzC&<|jN`nvA((+paD4OY*W^9(n|a^QQ8Zm@uFea=Oue_6XLUY+|# zqm=}-?xxP(?jF|$Ahc=IFOIEf^S}adycdOxu+Jg>q!lvQIybTO{5#Fn>HwNTY*iV2 z$yj>k+d2^=P|?UH3s8{lbwf1UU}^!lAbZaVZ(=$ev!`dEI9nrFNH+_h&@qG3niDL! z_JgCEj&PtcZ`vR{I>KVtt$ z5g*TfGtE0%-C{l}$0SJ#w4HU=ZS~?aC5rs<2P{H^lqU%f)rQ;M#`eMR@LNQky$voKK4U$m@DWRSj3_H#a4a9GX28Tnrc2SIn19ceI-Soo1Afnm3S#XC2 zVc$%-d8S%k$W-IHNU>tMIz~#|%jf&23~dqRXmkHco8jA^8RVeyMHN(!CJ6LoE2_A~ z!0pCxoCJ`v?7~|NQ4aOVAymJc!RiB1+0Q9Qv^#SvketJ>KX2NF*Nn zIc^1s5rmfh@#VMj_9C^+XFVKp6|3Rr-{0BW6rv?S*g&N!5NvAwg1}Wj=S8$UfB>le zwpGbqmD1{m`>$YT-i|~VXddWMtf=oN`dM9x@3*@}uPTF0_FL`l3G?%QVKrJT23CF< z7bZeB_D70v2$_%Ix|J_qM03U7e?sli>+@y(!axVrmkofK?MNgk&N{h+SWHl;M}-T;D(^!kr`8fpb9kwN_WZ1qz@Sxtj)0 zh2Z@Z!-@c-kWzJ40{eyH`LOL-$4H8AfMnU97>SSDDRdN@#+6LX*Tp@C2t|Gk?SU8f zJ;R2ArU@z)5{T6r01GKPulZSj{r$Jj@22Eqr=-8DHts8dYlZ`VqQ7|CE)M=q5d>Vv z_a8raZFmOk`C+fW7#e7GjQ;=i%SlK5`SG5pZXnkIG{PpTXKiDTVDuJAarr^ly_`s{`nxvSbUMS9iNh~|VJ#MdIT7e&@K}yNm@@JHu^wk-b4tw-&j_~K z?3Zy#Sh+WxK*F9sxR(ywb6XR{Avou8OEH#<{mJMH@1AE{gBFWBzPT+z_k$kzr1Tlo z<>-&kzj^lXG50TD$n0S6KGcDaJ;T7LpKA`VtT`xC%Z>Irp3z&5ty6puHZ|@qz`vkq z<9l_~d zZ~)23bGKN}ZaZ3NpUWnnIkJT6X9XHKBCob^^iOdzI=4L&%IwiYe28u9Y72tXjmhSu zpJ{E_7y7xe3h7Z()8cls=W~X(fT;eHw8-0+8`~Dflrl9E-4#?yS8N!!d2A1rNN;O` z*8ow}2Rd8`QmhdD8*+ zT#fgbEvtukP7m8(-pgtQ|BbGK_jL0_ifX`^y~+TcF@>Xwfr$}1nS)HVHAPa%fms@qC3S2t4jpBCXW^R(#m2q^b+92sm$CLd01kRrEXc$+3lw1sTZ=J&DTVTiqVRh$cYX`OQYR} zlFq2IL0)<>x+_k%`aFZyHa(6c5aLjPBzi-nt>-uZRyNU;?C}%3`-=EbTTqQfEp=3( zB#8*enudY(tUup1V>QysRkmFy4kefxZeBBeyBkCHG69@iYV$PlZ_)#LXsL3 zzPOj@3&Z6;+LPCbFI2Y_plD49u5bfscH-vBR!}A8ro`gmDki>21FljdWW^6?bd_NM zDtV<#<9?RAoD*B*QTer_qo`PHGE??&&uiD*SJ7}JZb3(cB*DKCy>X<>RtcpnUMo0@ zZVDYf^BI-RImv<3!?y@r+t2$+x}u)rbjIGZqOHVu zu`Qq)>d=3qN1y$7A$m6UJk!I87QxLHJ(^OSjoHR*AJ|1R4`x8zyHvqFo(VRvwX-r| zAh`D>gXm@uZAL}LYY?9mZ49bRD>&4ch6|O@px39@7VklIQ*$R;2&pT zsV$RH(d#x=n!1y!>XxO&AV;&!%(~Awg|8^?H`T(y0C`xy1WYgbNA2V0nYR>AslkN6 zdQXiDL`>l7%ZgyT4^seD3DmTMA(X!>&`#Su70^~D;e!Q%X&bY=+>*8SASyNuOjNbD zun@D;cLzl@SZC~o1u)RGCxb;1iA3~OGOlt3SNGL-V(n%d(<2o=7Bv?x?w@~0+*h_hvH$D%FN7>Fky*|~2c6QG~xsn+fK+L<<=V9!!>jNmkgqPg#n z^uIcLBcEI7AUwyjlw)F_Vs#&cDn_+477ynpF#6A&lJ0Z*a*v!&2jlV0t*h~*5 z2;gy))WBF*vyP?;eAC|G5~Jf|Hi%*sDOrbFI^#0J%%)t{{VBMM7euyb|$>|hD7lIcs0HWL-r^s@ko9DWP*K@RXxuCpv+Fv#xcT9;(O zE#;&)SF#G9E($!|`iAw4aaD}b0Zh+Xf|fn)C-J`byvCMOWEN5{yM%B;&Ygevj4z_m z4$iY@Yo1Oxf-r8ZKD~yWsB$3FEfHDGFRfd3AFI^~)A8Cs)MSBD`?v4MlSp*!C$hUB8)d?jq=~Dq{*M{nj@#5H&!%KCAhbw zfb!l;%m8zh(+8VqGL5V!8<(0vN{seUWkB?y=TR~0NAlHIRabcrMNaT2#qoDTL?jGR zR5T*#!XXoKa|X;a4zsC#tf(xaYbHX8`}Kkl2yxJf`+9jXGDm9brw_zPWIn4-5tNu# za8h`Kax^no0{X(4aeMR;uc;pPNi|Fbx^K(sJ=>W$h<0a3;d{ihiTjO8KC7ppFlrS0 z+C+~%AsVDWoRCq+!0-2WQFLFalq+$U`>_W693MJ}lfdX>+(?~g1?B-2H&a5EDlsdp zEs*Q#o={X+0Ab8U^WH=Y5$#q1GMfHXi%-MSQnzuaHa*8JQgWKtvGT0AS-$T8BfBlD0%45BL{P?cwGU~FXCM#im$#Wo8>rV$5 z>IVfX%SycG`$4b^=LJ9<_L|rZb{ls7L62ARw+cjYqQ=UO85y6P5xXU_A2YL40K+yX zE1W*tVPAE29aNk#yg{pCisZt*kAM(K`}P5`k^><=eg>hkXdPg}S}qBzlcmxv?qTIe z&U*}RI?n{zjjFENn|6JzM$;dBrk5T~`yhH>g1(E29p7h>c*jQd$9VxIBbjk)L9UJd z41W>Wch6_6;=+J|5{)qPib}%o6)`Xq?s3qnd30ZA!H$=L&ZAc?uWRNd5sNZVv^|26N(T z+cg(8=bM(2)Z~56{2bbls%pku6o-UTZ{agjV9GsK)Hfcq?`T=sU72OFN1O9a2_9@} zv)V8~tFK=KfEgTNweE=0_RlA6-`tfzfBEgV-1`u$Vxj_7V%Qve)nNu11Y5w+VPrhr z!qHAPlzQ6zgfHd>*Q!~{yLEUz%oD*8cN&Q6unxl}-hG+&%tE))DeKoRIo;Iwg-yiE*@t zCDdl{hQe!`MEh`GWJdsu+@jyHI!Uyd3vkMDPYv+elN?ezrMSp3&!n|EP68;kFHgos zY#|sLf0r!*uB1kLgs9v*tB{O$7Ps<^Xi+(Vx5Z+zWsWoMN!wk{H688)M$$Od3P}LN zEmBZIR!nYDPZ!jRfnycxT=21L4VFMPu>b6<)UA*2Wv-&XuL2&J2)E*7{!AL5);ak` z?GhDo9`li6WW)&-@G>qGRb6d#(>=7I5fnZ(@84fxPc@_26FSnzX?>>mI!8D)fl^B; znXKY`h?$@mhB3}1VMUuK1VSOSR4{8AaZhO_dg|9BVI}j-0PZw!vO8}nj_pDOw!Z%J zpM=5Ca~C~i_==v?$76GBQ&XgeJtGu&Id7hWtDBU5AEq$?MFE|HN^+oQy27flB{LT_ zZk7TJKp(B<_~&1L@pX9bFNYyVph#zSY^J}Cf74iuwR}4a*9Yl@pE-&KPFRa~I@vpE znMwry_~Q>6zB zU%q|yma667M=;+n3F^mjZ+Mn)tY44!#U8+V4)?|aIYMF*J*%MA2K{$u@7{yPIw&uA zc0bsYr(pWa@y!4H^A8&68|3Xh%M;J{$M^62jNgC%-2jMacYhq$$U|nMiNq6>w%@+} zMi2sP@z?Ph&IWZ)X?Jjs1mMr(8RGN5efw7adAv6c-1i@UYgA0rb53RJs##jGe{j7~ z&GB4V3e+jy>}2^-Bp>0%&)OdtsO)`PtxS zn<+zSvx^46HwSb~UN3@Wcy5b-_bo>9Y&&JtF`OHp|LsV&6sWo9qJ%KUAPB;$0rbWh z7|1w%LO7@p*4=cY`LA^nCVNVeE(d&}m%VPlEsBC^#ntVT7?K5M&Us z+%;H!w*$i&ieC0u11XFO(vKjzuVM>;7WMbf@5jFWU_d$i9vpS!iW~O^M#~(}7C-yX z|NIa2^c{N;NI3w7>X9!$koX?ofBf<1u}}YDJ5+g2B2cDX33^wPC>Op#>HhxxZvkgc zDDb;b?ps~e57kz&Q6B7dEki1&e;)xZo*5LdVfTOj{K0R|be#e~zWnQ-0!)s5fOGh8 zbvxP=0@e$~cm&KyIB~9DsC!VepY=MoFYaxc`GGSC&_s!^?Dr>wCINoWx&4w5p5k^h zlLk>wZ|T2cYz(P;q?HZ_O0J|j1COe#o_Eh6J`#8NrzHWwDXU$Z&*o{PYkh?{=C|2V0=#mUW1o|zaXP%HoPY6_mJ^5{v$vOpo0K-Ti> zoOGNIw85|kd|fz}E5HueqNo;*p*-=*Q3}DFWh$=e|5wGKdF!| zU-$t(^eJjSga%&^Tgtd)Mh~nPMD2>3x zZ7^sDijiKvzL(I^z;njle@b_wAJ6S8)*WZ}_@L*5CGP3E&bS&D6K5m6ysFAE!GwB7(P_j862ac zYEeN^D67Y6Xht#YAxFAwY8k^i{PyLyGj26I1pDg8`*(?Gt*UB2FSP!diTgbK!h3=( zU%z~DJlmNtOMtK%#CUj2({Wy3R|y{-$@~-IGe(IcseC5jsGizVs#S><%-@jo^;`M& z@})eEeTg&2N~+apamF;BP(JR*VP}G!@b>jpHfgiJG{A)Y$R1i&7B>O_h$o?OqPTdl z9pmvKKoy<<=Q1e4m~N0gq_f*TWA`=Ejkhf{9b_Bv3~ug`N8Cn*+)`~zTpXJE zGvl+}b5AAL+i8}4aUw{2g|G(f~t9?^h zvQ390^V}YXHmdiJpS%tfPyli%_QL-CFbGu%A}?mHf$zhDj*W{2~5C6BKX{w<4m9^fp`T>k-rZcLPnl}Y%-Y06q2)z5kSGH zq&+9_<>c-f5QM`ncKc^IJrfZP1>Qi8OH?mR2?$l##Z(?9cXlFIG*88kvw|>;K1Fao zUB!*fm{mcFqu}RFLIqn;gf{{5qxial?i0VQ4$dk#)z>jfh_uA;>9KFWP~;+L33w)v z_F6N5!8e_zs{qx3Q1O}xb?JIYy_woKvue#sbK8mfAutcR1spto|B`&GVy1^3@1?#u zBX(3F(3-+vkUDKTrHqCsXWf*)%|Z>eoT^-0yQ0lQwN%gZd`1Fr80k0wLIv^MHU=Lr zFK@gz8hN0c&-bJu;9k`SIjlL=6cC&KfeK9@qS8cy@{C>((-pE`kNrHVYGdHQ>Z(vA zdQbNa&Y>A~TsIH7Uo402dXoZz)@{TzTzLjv5x;L?s5Qj0n$>$t&0d*MKjo~;p`O{9 zPN0&aw!6<7d*OB+!Qsj$)$&S7O0SB>t_WvUSl7Fnau;*VqJrA}v!D|ZBMwA#i00+( zD_YugZZM)X!Pc@*`S<{s~b*PG@%o?D`tK*`DWXsRq16|hvn?yf?? zAwhI)6Ri+y!fNZT>2B=FZK~vsE4{n44ElVVp8e*ko9TRU{?udYec!uPgNx6gt(>Wf zaqo-mAsA-}09Pj)4_98e)_8_B_JC%{Vl2YGoq&-N+LH7mRwx(E3=9N6>6PvirmA)^ z{j3BH=hOqJJ$h^ukO5t{Ed|JCpG@X{nBL_S-`E@;)+ zhx)}q(e6Wl+{1!k`2E!^kO&APetGzLvMTJ#JH=qQPNwwwzA!L`RZ#=jkyvn@%QU#= ziZm;YyJx4j+<7DEx*k7PYT6ognZ|k2>)H3u9=C-*qg{ue>xI?UI7cz-wb&l)d}gi( zS{)wM%b<7ednM4xN<8BW$5RGLqP&UN&XVS~Zvag|vcEIISgAovheN`6m8`v?ZKYni z=Uzg5MwLNV0eNx9Gdbc$h1Y)WQ)fj2R{~NvGURe*k}@tN%j~trYa;-4>1*dL290#q z9Ie9ZDAS)clj<5mqZG>V7%u9ZjG5H_>3;1z;Z00CfV^x|+xI*dv1a@%Q2dYo1EV3v zym1zB8Rd-pwJ(De)_fgqHul`kk`>DA5jRkLGQM^ugcLy|04VT9W>{?*VXs&_7t1>Ch|o30sGH)v!v8jvq$>Ss1|t_13PNOXI{#4{PEV!{+Cgd=8ONzg zulV`Y`f>GqKLJ;Qw|?L1Sajb!X@nH@p~|xT#0VQHV}HbD5z~r=TRXlLXGT&S`Ub^+ zW-ChXRwN#bKU&v##TY+{Exzl*3?3f)e(jNHB|}U_DpP``A{FYYGe5YLOQM&_TFHfA z1!e^Iee?P8XpEu<1q9$8$V~Jtm6;poOiWE(b<)%4Jj>EfSeayvnVEM4=Io!!gw@7u zKdCsaoqZ|O?;As!YdDZ`Cas}H$V!cqa@vu0QD}8=8cMW_5hASRn^E4FMHGppDpszN zd9&P%gfJLvLc1p^Rx)POPDV7p$$*);f{{Wv>K2umK~$GILG}Dy zAaEmH`Ke|WROg`RvUKm>A*tPduu(-ln@?~jU^M!wwnGkiMGK&n1Z z8OC_NxPjY?kRYLoR`4x*QZRyQhs!m<9&g|W5_$uIJ_r*2Bky_O+Y1h@z7@& z^v}(-xrM(U0b|D2IA77Jk<`Y*YSUh8CM7ZkMgLYKvrB|`Y2B}XgK%8;$b-|48j%(PNemWz%^^&O?0{5u(_3-QKDvBScVBGS8e9xVwAfa$f?0I0pl{+? z+^o7B!iILsc@D$=b-!l>jRf6_fZNr&6%&Du6Zv4_Xx6fI8|+V&{GQ2kByQCs?IJ0P zz`R{(hWJq^bi;R2_zO1X*!!=pzSSe}{9rHl88C(#Z0sY(0G{JZcFP#KFSs{+-Us_W z)usc1t$Lwh5}dS1Qqq}=7;$7>O$Cf$=d(4dc!sqD-vIyl`Bm)@RR+eDF9D|rTz4Ij z@&@5azvpIwH31og00ydw-Fu?5SG9QpL6PX4fvpfBilT@9Z6|dQ#-G7)RXh?^RRVS% zBUPH)J#44SMNxcws7jRT)1uS(45*c()tUX{j2kV^gZ)|Ut3s43+eIQSDgmr$Z!Y(j zOK>f_qiY@pV$PVlIrwButWT#sC{@J)je3iO^`u5J^^X4ic>AvC zZqI~O2P39Xpp}SBJ1D(-bPq;k34oV?B>nt!QsZ}Kd!EnOX8oG#lX2SN=r6v286}>L zso!mJ{LRI4+`cF1!-Ui^@vtovXlDSKHnh6mbP}A!zi)ehjm@-ZweT=@uDe-Y=QI?m zypLgk%wy*$=`$Q-m5kGi?LKphv6q++eVgsfrDn01uEfWxgGJK8<8!J&VOE@nL^!(z zNMRFj-<>Se{ro(Ni&p*#aEdWW6Fco%1*YHe)Bug)D%mQ=C(zV4%*3~N#2U_nE=sKe zF%CitUX4O64h(SkXD&>P;lR5^wTf>Y_5(rTf*!XI4ZMX?-H)F-U`_p=a99eaq+&@$ z)t~Rmz?0tg#k9{a473!WYTSPtE)P)k~iDyCFVixD?1m)2`N5~nysxIPU*{v?%_RNLb|Uf#Zx1qns_U=kIt z6$JtZav0HyM01faKu6UU>ZE4{;_Us@W?>KBq6Yk|h?tgvYx&Z@xDW4@&OwT~n`geM z#|<=uX3A1s#x3`g?_sTMpfl}S|wKMvBR5?YNk#`MfH5sbH?X-&%_81 zTafbp{ikT6uV0va#(n?ex8LpXNBR5Dzo@>;_K|JU$i3cQ%m42`|2Gv&vHlnzgQif@ znU9L+m)BPw90UtQ_^O;YCH^<5AF^U;ItP`HixM~_mR~@nUepr?dht(CAVDYk?Kk#s zf7A~K1dwM3RR@9&LZ+=`jiB^M65wEvY=g$l*A>&SQuL>&?`1ZRGqAHd_V(>%rJA$^ zG>(L|sA@>{UeGU_DhHq?Nq}lz`bg{;<`tNd6KXcj>{sHT>AjewRDL_2g97r(erm28 z&T~hy{Y?5|+m#HjHF{=`ecgwWye0%3biQfhw9JzcP%ix{H&dJ;nt=D`8O1XiuHr_O z#UgRouaAd}+wEpbt<_XPGo{iwsvwJ~qPW&AsE-INnnqbHrrK=1mr&r%u~6G&EJdIR zMi*+Hrljt6)>zd0Dz#3ikxIO(XuUw&!{;HOEJJgLTjx2VO)YX1QWrd{d=bQivm~7g z@4xSfBCZ|}qLCw?4%(Ik?PMy{1BSqZD$$sgiuL*O#`8fNfS#}jp@!xhMgSiP>$IQ@ z_bcgK=kMzbPukr`Mv4JBsA}R2a}>mKp>ertoB~rbG=3+YAQ>S0DW1oQl>xN~jHau8 z0YnZv^HNVW>3RVh*<;r(0u|x({WZ>fH3J~VIK5^PXGnoWIqu$M0;1Kqry&wT1A@dZEa;2Pl6YU%?x4SQ|mQw@-YZc?N zu>S9%)LhL}xNDDtz7>`3cpp_oTov$ohHe8HFg&{}zZry40XG8Lb4>xP;P=*lN;$m` zjnN9C7q=_!c~c^D?@LL%-0TuozO2Ma#q%o02kiuAUoMr&6MGIHF;h`hLi|1ws@Efi z2oWT;OGKadnLHM2QlJ8YwR(XM0QLU(T+sSSpZgr;w}1XF2Gp}1Ki7E%zyS(>DA3n- z3RrzQVI|vQX<2cjAFZ-&3-`f1M{)!sVcSzsk}V&131qSVy;iGV?~F^jgGBt^>dH`x zOkLJAd_AAD_bPi+89*Mf8pn)DE0>iqSG&0{hu9~4t7#Q?1&s=dOUY_5ZBsR%&;e>| z%nhr!R4h~`OV2g%(bl4+;|*5c{fv$>;lk`mD8p&t=a~}1VsFHTh+>fflOj= zXz7P2j?{$_=DhP7cKdeSpKNSsLxB5@XH+dlDMfnZ2i*lJ#oajb)M+M%wxH+IZ@vIYR9HUZ#_WUQ77J zo`7j*>W%(*66}fk>Ft}s$yT!BuHIYOev^Zn9WF7R3@dAYE;NPYRO@X(in+t z@uqz~TRL+tnh|66;<)O_{sVtKDKz2vK2OQv!}xH+haC~5&U0Z_Xr zl|StSiO6}4{TTS(k-VZ`qkG0xck(WDmjnfI!@d5+rF;gY4#ee)hMkG-4-WSqN1`S* zXD#F1oOX)xxJf?x$#D44cii2Vg!^JIp!sB!W;aUn;r{*4{G!uSBHuU0e-Vnv6pm3l00?*GIPl6=`A6s5JXY zVIZ&qfIPGEhd4)`(A3|mKx<0D@a1?{oZCYzrX=JLx!2xLyWvbCgi+#S-E3 zw|A-I#yMpV;^R>Q$LBp)jZX?CR-UPGitJ(i!-m8DvM|2NH-W5qD+CWq#$3gdrYS*8dWQ&o)kwVU)8oVk`RDEbd>#9;igPdF4 zS32y-N^bPf&hl&Zl-nV|4vT)BS+D5B(R)}nf0Xx?7)U(>tTS~lznooy7d_LBtj6y~ zx5KT8damI7X1_>v`u9hz2~ie|w+OZ3mr%R0my#(;N&JR0k&UZdjP<8t~VuVINQ z&m;D}_6Df+_)NABxs4(EH-ptd4Tk3NdrzshRtv0+)-y5cjs+yfXLshRZF8K{+sQUb z-)j}(5J}P64cl@vxo}R7vjcb$qAzT9!4pEywMRKk_duh!z0`9Kyp(mf63Wn`I?IuT zGJk*=VT)2c&Y#b7W9^Ix^oQGgV(k_Os`6vDuT_F_#me^#a?1(caIe(MzBW)qKmXja znjJJ?_<&Fkj# zpVlQ`>sZ@1Lv~>%J#}L;%Cp;=Rl=pZPK^^MW3>j8PstP$+)eg@OpvLf$3SZjlGZJ@ zwJGAPda26EO05A#y8i6R9UgmLNrwE zY6_xJ%zHVCDna4>WXn(Cex>ax5;?-SDvBgpP$?Crk+cm5uCWf0_myd8%<-(Su3e1G z7~LlZtE-?zy{aq}G*xoRqA)=B*kV-Qq~CyVN3n`bDm-t`AJ$szI`dVr7@j3(yB}); z=IfO65KAwn8_cr`KkD@J&=@1M4;I@K>K;`y3GAzs4NNDd>3qXk+2Q!l6l(D%(<0C8 zot$1Y1r|zJX@i2QV*mnGQ;;uVW92Z&NQx?92!@ z7*Op>j??{n1D=09lU6#El&DM3vo(sSXMQUrnq z1w4+gCbG9@ML6l$r6g6XI0+!xWGF~z{#kJ_7fs{km*-eA;blp`fr8-iHV)Kj@XJgi zJ2Eiy`??2G4*wentno`$km0v;;6^&#Vr zgNJH@9c>ORw_#5eUhl2pXFRM9mq}P(vN4=Up6P2XeBTUWsu%-G%qop~^u&tpI!f@O znvpT~JJCR>3d`O`_it6NOC*F5jDYg`au_crhLWz;eJv4Km88EZxD^#%;L71#ox_px z=HFG7zGXnd_i?ftiAb5{7sqt2pPtXHYHx7G4~O5zgR>0QfEwg$YiY~sIDpx&1;7XY`PL|s=s#;Ou zqg^rhf#?5pKQ|MyqR)zzOi+9l1%LId)XmsyLp^_x_=_MUA`pUZ-k&|_WPCqUi#-0P zT#_L=8+_L0#4suzQ;6s0N)oe5%G*ZH$+((1iodz%rG z?W)v7=PwBYM!;Rgq#~)+IXSNL0^~^=7RYj-R_a?40PtA#Fr=XbE5l94ss^+@t zUV@(5`iYv?3>xY$3BHcVOl_20K7SYQYx&uD|J}f&64ob0_nw+9yK1~$y{s|C2oW>5 z`X$hD$XyWWd!AT=2>V?=;&U6dJ#^~}B6+@jL< znrp65a(4nVO|tWR>>6DLO8TN2$KKak()z@iXt5EUr7JegE?!+WW~sZ1S1$%qwS$pV zd{V|Y%_dzTbj28Mme{q|HVKKzHCM}PzPHxod;}pz$Iq}kql)$AT2x$74BzXiEKa|7 z>_c8l4WYS_%n!m2Gi;nG&|_wN9xBVSF~td=giKQyY@QTpF}7>k7{;r+fB-2lmLgDJ z=O@lXi2W&KpV~1Qbe(oH1fFC=TRzM9J;I4oElFVjNok)N9mO+mO0$%NC2q7tPkX+X z+8X;UVikkB?zN31GZJ<6C9CH)9B9qBM3WFU&nvCVsRdEIA0q}7mA7!-vDQ=Pdkau@ z3e2ZX+gl2=?g8@F>OAC}SsOWx*sxL?)^vi-!b&%zY4g0?ea1wTanh&D%)J<&Q!e{? z;rZ#37Y@|=Y30_S#VI*N<~&5>=<3&86Zv+f6I}PF&=eeMD1AZ|Fbr@|JBiS-S4t{f zp@bMpv~Z{oit>1-pVfKS+c~c;s(&)9f#Me>VD9UzjzsYDClMplrI1*a=HOA4H3bSK zuOC4>1eBsW0F+@maHw6>1iUYYAyY7DlrNyk;X&E?g8SI{qqRmKxt;5+l?C> z!RmAS)Y=}u1j-PVML{cz%1IT!9RuX!bJa(NkLXMw%M4UMdXFa2GxW2*zN(kwS-TbJ zI`<9k>0kf)&+^ZI{DXS|s+BA0zCzuhJO)L{uU|W>w5YQF_kaDjs$!;y{=@+9T`H2G z|J;1-nBfU&|HseI^2h)4Zyww}q5SuaRbTe9f(HFi(>Fw{aA!0FNYr9P%1udaR1n$c z)J5<7JRH*JUq6qkqlP)(K~Fgr8Z)*iTtCIJZ$oSIM1Sv1Nhv9OQ-VPE8|KHoWe^o; zcl3dUgWl&RO72u*288rU+4`T7FE@4jwMr5niST{8zZL%u3fCApswxaNQCJVTW>1KX zGp-M5M#r<-ALSL}Xt1Y_@4x=|OZ~o31OCVFx@Pn+fBrNbm~DJQ!plt2jWLy6HBhzO zv-$?=`cO5P`+^A(l4Vy*ISl@Aa_?=?3T&orE`pUcD%%biPyD;k#)k+L zdeET4hPOeYmzs($G;dyEV*O<2MECDCG_KWq~t=`U&>Z~zyt%j$i( zex&-k$^|fp9h8tex)28;`=21 zkzm*-*Z}EWGzmsEs~8voAZqTJCB5>>=Qi=zf#l z0B4O(kJ$_RNuN&zNwrrL0d{SdKWjWIX3i}A^j{V}O1iWY!0_kvYl~)HvVG(2#g%~L zY+}S3){p?rq8_d0u|ZMw0sZ>(Bb9bBf0XuMb=A{VY>5i0M;X59X6=U_?4_p9A(gM5 zGb}^tn8#++lOeA1jrY$OP&^W7Z3+6S=isA&Oa>dSaagWm$z5$ z5vj+1lzBTxKjH|JBFvbv(ZBsXe53SRZYeq%3cxYjx?Ie^Vx#8!(M;W!x35+{KK8=j z->rPSv(GYH?I_}A`^xEg23lDSb%hoGRt0dX-NshkfV7@jV-ZC_Zp}ngNuJm%tW!B} zU{2wdKbie*{6tk>P1xAsn(j>TkfBIJe33+9O9f@#%0I3IO4+R zl;|Uvp^Hb(y}f>=((vsz%j09`*}#aIPcvQU%Rm_(q5I*{YqjP~U7Vla(emI42RHYy z4vr!^_WNGlDv7aCH!5Cl9?3~uz7|iS*qx(I(fv(h4;B}4kvD@Xd<^3RIO1ywgkazH zbm-cgPFSPYZ_$ND0>@+|dnrq9v}-`X$`p~)g@F<`uIYMFm6h{Gu!aj?cmSBh+1Uje zEg_FjZ5mQ^^>m4n70(bl-Ul4&#f`n2MIf#QI#2)#rQp5l@XS&L`r$nBI`k}pPRoZF z_g6&UjgTeie8Y6CKxl}6XMe3W@)_i)R1Zf*=Lmz3>cn9LK)qQ)jKb&>V}8hRl)~VN0yY%< zQC}&0Ed_uHA| zif~B*9*SxJQNsZ}4BVZ4na8^zQE#4!CJzZ+A36D^3N7Ay_sl_x^wcnLgJ(*~t7s_^ zfKaSxSLH9np@^DwiB8ZZ0wsQKDTuPz3iEtzQX<9+mv#nZ#e0I)zoOZ@(|s!w;{c4t z-TE5?!1cJ;PteUMvUIGolWJTf)?nw*zoDv$lRk2%g33Qm5JWvQ3M?fE@}x7x)?(GT zDd4?hRK!qlktqKZ# zXQvjgt3eK&<4DL+(N(L$nP4$FFoidIF=ws6B!LoNIFm!(>o_UIl(}!Fy_cDYJx7bx znu$xPrwB>SYG(Q6tGXhPl}fWPVh(4Bf5f%Sc+EVM-E)3wyoPs|&u#Y}RIIX;D}y9{ zk@k04@*X2kFZ1+!b|i^1clTGKy0nLlrahSDIvNJgJb>ZPs$hIG?KaL5g2Y^0 zS)8s2lLYN+AYcXn+Vfxg;y|>RVqKgRN8lfO(n0y$YqB*MEkzJp!cU1kMVex;WMVJO zneiFk06`vG5o$}IO`Jka}op65YJWm{OY!b?WU;a|35CS0^1dBbvqp#xq_ z52rHm*yN}E-T`<~jI+CCgcYC%eFW#LdSU}z*dkjn*jj=<%IUvH2chgksZm^-PP&Ws zR8-qW#BdSp){HZX1!soA-LN4jl612=5R@-oYb8?R9gC4u~`XEzq{NJS#jF zE|d{$U!vC+*By^oD#g3|N-=Z0_LkMWmrS-;&3VT4;Z~?WV>NU1@Ww1wCbKcthB3<1z5xm4PlAjAq{KPF$UTC4 zrqAO3C&k7L5)O+b?lTL7Z0YecD*3FJ93>P2g(WRbIK?V~s$^Cc>(2;WA)~1l1I$nP zm-S?vHn*WMmYJ%KQaI6j8Ly?SjA;=?z#Z}x>3%3?5Z!vv_RBBoe&>a4luTY7_!4)l zYT`Q|MZ%9obCBIh_zvaHB6dL_OA)bDFHu*4&Rqu>}iBMG3ww z=YZ-MtnOG`RovrwAz)qHtGGKU!`*a?nK0*YPpCaW@!gu5pui4D{=RP|=pu1=!WecR z2C0OpV!!};(|j=;1k8oP_26Fq{_Ai4e#}i&lfEe4H-jCb@m8y6Dj7!L4S@~329+Gl zCY$Ub9GT#9U7^NnL9I@BM@SaY_kE~mi0JQR^>z%a7JG&k=H_*b2HQm^?nce97jM14s^U-6h2BIta!N>(K#()nTI zsRWUMSGNP^B`A=Yc5Dm`tE;H3Y1D!P-R@qqX|5M2RVQFg&f8+X`Im zYZmKE58?j~AXNX2-*JU!)L)Xms5lP?_+eY4&qWkepP|d=%yLqL{lcs^WrE$>rA@?D z(7l|=bNpU86Krl910lRVBhT7DJ?}A+WcESXCgqv*IE8sxi(H>lep##9PKx>To&}?a zXEqcV>5qfvr3-&NA9q`8k}67^R1cFXPcWfHKazJU*LX-2&4%PcUf48X0tm zpBI6cj3t~rG|xyBT~SHT&7<3jeQ6|T@C7ecLT81vMl>-q0gU~y)sfFNMtUge(C0!J z@1*;Q#gJ`B_RT?Io~GWr9?AD2Tcznap+BolD-+{>RCvn7D%OPS%01ODz{gBRLY^1= zEdWacHhb7o(^o~8o!R0LRjO+HS)33kATO>I8GNnPy}e$y6Ls;eSKntm(wXfRTx|m+ z@s(nfejm972fX!6mdLtkO2nHD$Kdn?i7IK|IfujAb|S3&69N0wEFbQweMGEvj%gy( z%+)qdXr1TCsA)T>sG~|dobQ&5$w=k3@K5v@PxZ8_zmQ%`ws{nTW@2>I7PG=D zzhm4O_wqJ=>0>SVEYCw8mBHq=o_PP6ebcd+Pq&sPONn$ee7DWBKX!7lS7uKG*2$z)W~4A6_Zo2gftig{hslB?>nlTYyZv|^U&l$%-Ee5iH&57Vr zvOjr75v*CPP5L9O%EzkDa!IrrtV2+w0}@&$0M60=vbNCYshRiijMFqlZlwP3>LOXFb}#X0K1>I~ zUy=P|zE~;xrDpznt=*eu<_LnYbtpTlEW8MH8QNI4FJE%wZQEJBTo#|)Dz(3$<$w~m zxyK4g)CP*2hhooN6w`@n%JfVk&we$J;If*5Zc`i;Te#XUTCRaz+i;>}y8c=g$Q zymmjJn)8vM=7HNJZ8`cG@fnd=!O&4gTnRH8rgxXaF;tvYD$wlK)z#QZq$Ivb3nX8( zTn?%Z{60lNlnSb5g5q9RSB-+(&V(M<{ZxZDkjW1Z3=TE0pmHIAyxpUUE5%^^{;j_n zNs{p(4FXT!0RgXTspYIHm{C{FlkcZM#M84NTSBJ_iZ)ltA8s}$(!@mbR(|{KA32Nh z`}ZGARR8(=zo@_)&S`%>v$qGY{rAVGD4>T!`S$fI8``nn4<~#$Nc*wY2$Dfx+`Hy< zg&G}Il#kau#wW#M44UNG(1x^JSbBfN#f|1QGyPhPP5mD1#$uls8wP7K*h5r<^R(sXB?{8Qh+k=mWq2jch$Y7!1LdpoeHl z8a32NIs5tZCjpSgp!_aSWa%DJqhuEIPXqK?`YBrD&O|w2g9bt-Mdu+}S?R&K#y5_( zl7qr$gQ6d)&7dg9k+_1s_K zZsEERzYB_KR0q=*@xFhO@bu zB8e6gC$vus^H9h!l5q!Cu|L?70GqxRfzDH^sY{43wsX#>>}qV0nR|}aQ6vYhLD+>NBf*Hoezl4^|_S-bbXKp%aJ0>5WL zV|TS%_Da2n@D4YQL)tUBVxM1~uF$p&5l~&5AVh&owHO@0vpL=iwrf0ws^~?n8ysKP z9QYQ+Vw;6>*5$5e$NRZZ@wvZ4b=Q5a&EibBM`}daUhV1!)Shgt5=YjKd!&#SiwMVi zy{K)WhgnhssC;^t=wXXqnPOmLmb4{{!SopSLQRwLWct}nC&jxzEwZ&etrA)86;Ye zcm7m@93zn83+Iyi%E0|%a9cuMTB?QA4g^7;ANf#G3G1fceL69N)8fLq%p9nB^nTLr zyGLXgQFwfg?C*ku#KjaNK7Bcbhmd64oKXJw{xgkU(oyl=>|?wsu|0nO7hJ*`g00%ea%6dst}TT#Kx<@&q&9`G>mCmt5o1&Ne;>pW{PhQ>QU z6{@9*<5k@%6OtPAtAz&~rFo1aff0K5$RJ!B`ZJ^IfWu9yz{}mezzStISCiS_+x|I$~T>%V^6EMM}}8(M2l2>k(goR z0M_2%PBEqCX6KLBSbHdwJUSLTeDrL>cw=lr7+;JH3iY+q1RwW>-~)oN<=3hm64upd zV=(2xnE=E?ILuNfZev48PP6t(*%rFCzTb#Osgxai+XgS zEE)kGX?>S#2^waM73riN-}!uCFQhCgQ4|Eto0EE+p)y4g!)#*M6nCg;2C@-bv=?CM zIby)z4@P#}-OJe6AJZB54hu!ia4geQASV!8wot?}E17`bAlQg&c#+&cMq1%oYX$~0 z|GT)#5KfaldsP(tEks`YEaP=CGdpN}fzI}*w$_r*gP%iFVx;_%_y*lK{*12(=&A*N zn%6Ia^ls`Eox0CmB<)cd5Mbzv-Z*DX@0TR`3jBs3mRc%Iv!52ZGaZYqIj{&*$>HvR zh72V8B3u{y_kE9l|M;HI1_^=04~J=KCC};8i~#C9+-~-JFP?d;80+CG0iMz8VS9P< zj)VgKMR|dkKm=D8u?o~L+ski<-EV$&0kWVM3-`4DlnOmTGt5XO*f%s+GM=F~OEuUw znrILNSd2399pr zwU<_+vKr@si5dLOQ*0v%N1c7o-TPg8X3(xjGBP9i_a0G4Vu;A z48AlU1hyY&FR=~6D&-uBRmvHp#sq>P8{QlzjOWuW8iRh4z{Hf!2yH7yGwr#00wUn| z=@WvTF;XB&Y>`61TRsWZU(Z-Y_SM`8fEl!1$q4S1{oTgFo5z~ba}J$v&hT6T@Q-A& zRrhCV?kmLF#fH)AO4$37!sykbZ`_Gme$fQ#!O=DFO1K_zER?(QHK=0 zVf&fe$ckbXce9=wY|I>$62f>9H)4+YkVEyyI z{+ohA?Ie*FO)`MJmI$YOgXg7M7)i;2<0Om4ox*8KZmab+*vGrR-ZnWBWiTnRzjF*8eEU$ z_4(*&FX7`cHt+HNkgB>_Aa7rOBk)Xp7uZ1RTWCLWpBsq9b?^~5H^Ud%1F$oLbDn!5 ze5W#HN$KTihz)d^N^qW|G)&jsj)jlFvl}TI4lufr+K>;|Db~S_p}G9c-t16>Bru3I zQWP$uud#7UiGG?04rBv@g3}Y}C+cbBp+uhtk*1v@DWrdx-c71!?TM_g3gT}ZnxOOT zrc|WTmg&Otaxfx!Z*ecXdQ!shENO#x3wr?m8@7_eFDV^$^`x;5BDo zk`Eu~0|5*yu@*3dI1KEsl8X?1xM@ZdHqf#-c%P>dD}yE@pryH=bnzN5Nf(T3iLpBz z>oQ9QbvdW82iLy2Z`vwpR_?_Y`|NI-(HDJA+?O_(cpU<8&P+vcbJM-gcvg$95oSD_8^qFUZ8;Ga(BCBnSSQasUisPns1+Uz%rU>WAt4&TJ zht$`z!Ww`V5nDJBS96OIY}$$;L_A_6e9;yT2{VN%JN}jI75Bg1EIY6J7#aL8M#_g( zoTH+`bK+o`3eWy9+Q#TLHGMq30>tB%iHarGH(8ly@E(eu0rrJ$J@;bCfJ>;kgJQo~ zo#8zcbd5y7&p(6mc&(O}{Cn}<2o(D~_kqCAi!I26F!~|K$mBNn@U+99#d-jh3e5F< z+kCIs^TEuS4oEorcNEj!r}ZXg@F)BxJIAlYef56!0hdUqSQQu^|EC~ix4L5`>qesp z?go<;u%7!GU)%pswI0DP!r$$yw2z!Hpb{U+eF+M@!DjczXR_x#tRs5fN2qN6f53$j zl`u~nFmOHt@NBB+DNbm47TK@u_8roJNtq2=ZYiNo&5;mZr|!`_qy^Ututku_w$7EO z7}XQ~rT7ZrDkkVooXPg`Gm03Z$YrS*6IFIs+_K+z1dY4o9wsd|TR&8-_iE>!4|Qh( zZtmF|1{`9~pGn4fej>pPxJe>E+WW(HRAyVRWUvdSlK(-;na`7&ZTXN<$#LmL;&;Lw zX=`()F!zc!NmeOqInQe`$QDeBqUx3UI6>{ieyvFp6`RZe5k9cWZjse6O!ueZ@;)qz z^%w&e(^HTl&xg?fB?RbsHw86-=998yZ1&j_@kMk&HJV1 zI@pZznk58fyErbu0gZ*80fn;S^L?IGz!9Z8SSzVc?0Bt5Ea=#dVC2;K5%5(?XafWd zS>mE+!lU!voItzpw*-YX5c~Se{*Dn_({Xj|O^q2VJkJ2t?){#*f%d%Z3AeZXLVUhe z#+fjWX>8PU3&u$HPd&?9uD;r2JEn+zDf?rJt3D*Jy_x1ZW}I97Zcx~RLc5Lqq@7RO zP=oP!Zx*aXo@xycp<4nQlQD2i$b`1x3S zJR_>}9@qW&Ku_n!e}@63u*BnO1KSU@I{0i?+mV!h z;oxUg*f>A$Q{UKg?{;XYlHQzf;_s-8hq7VLnLR${>z8jnWR*1F?I|Ic-@pBXMij>L z@9*Dp#@xowd+_JCe=I2=6@n8~p}aRY`U|y3m4CN--~ILOu{zo_016h;uW#;yJSxb? zny(;*f!bN6qAO7*&AOzGhoLydRSeC|!jB-R=zGK91q7J1k_mI?{VQDKqHJt*##3XVj$ zo2n5sdB;9`Vej*#q8;}p0ECM=C^pgql^Ppyp!u6Y4LU^JYm;i{Hl0+H|!&oQZ%c0bAEW=GAl^sUO!&3K%HSrbS?&;ID9&Wg%)AAQdZA z$J%~{y;^i#&(EFx^--N%+ARS#Fh@QQgc7#t6^sfeswXu_w)iK9#gFnI|LZ?>zPp0r zVfzE5axvP?K4z%L63u;dl|+GZ{aj{+!jm$ljWgDF%7Ajd&$kHy`f?V5-L#xysI*(O}8%zyHql zemt}{m%E+=RZ{)g^wric2%wt4L|0H8Uo?U4)x|zh@FG=x&L1z2tcVl`!Lc^GD?A#n zBQX?JYVM-jTGWh;2KTM9y6?|;`|@V$-{7?eCZXPYopbnkD3+qaAB-T0Qmw9dmjsPM zJ@$TFd-P>)sEUMuT9b0>V&=wnQChx};x84|Kh08QZM`S|%)`S!YK9(rF407$Qaj69s#hPjQO0+SEl`f^mRD2RD@z@P6w7<}WNQNaPL z3AX0*sEF=U$rGxKc%EPdK~?(g?KdUj$7dj>3m-}5SCg7yD8J&)P;Fwd<@ni82tv|l zDKTZNz{0N&WmT^sfvH`sK3HF}ZjN^YJBed>*w;9$_^fu9S}#Qf(|9!=Oa%+XVE~1& z*KcIS2*}5NuAW>#<=v%PPiEIRMAMs@uX_5QO1r41#aK0yjA-M}(=d77IGR@!@4n-KB{`T*xfj1{_C1W_5^ z%%;H^;9OnxJJQxsIM23^z3>paMIL28GjyW@77_0tc01w$#6;y6FH-1NU^AlFx9_GN zAMXP;+4kJhXZ^4L{l6KrEKe&-lI}2zo!BGG|LE0v_07G%D`4Q}^>OYhO1$s2cI7NPr&;08!l2{-d zqPxec{P_99$)2ije;fz#{_)^-aWMjU9im(5?}32mUX&!tIl*uvknBHYTv+CQdn;K9 zos&T(Xm!{Sq(a;2J*}3-905+^<3R+9V{6#3-?N98xXx4ng#I{=nOK*sQU*63*Lml> zLm^*u(54>1$fBRK8;O1goz<#-ug5ck0cVfdkYVhgVIGFEJF#6%!D66=-aQ{O?AsU1 zp8q)3JSby$4GyUG%#-~-G5UmkEVU(FlZTe$b)Gy-Y|sZ4WL08ZjlymF(>4sxHNXItZpn zNmk&FpTj_Kc3i2RV@Jrn#B5|AO=^yz#z+HwtmC(1&o-ar zQT7vwKYsLS>O@7*)oYF^5Ch>ntA_H9Ahh}np8+OmcP(c7nrh*D<@`PeDtGL+A;F4{ zK8sB=YvXeS9SS9F5wN{_2(}MmC}Ag3X83XSTH)NHKNioR*P&}Ssu?|x_}b>4m1G21 zq_9N^$_-CUnBuy+Fg(_^w_*B-D$0xZVYOU4DQ;DOiv*u2wUG#@D&uj#Ck1aY+DOux ztIowixP)vg&&}=jrNpefzrX*@;DKxUA-ZHJno~)S^82FbK0lw*4nXpJd=3=KQP~QC zi)A0#t9aXP<*_`O%wfa?1eglcm5XQKnI8JFfAHD?(0vfZQeW8aBp($0&Ce`)UyGNy z)OZ>*`!+k38}GDn_~*}${j6FRq50YGUJV>I_2dTKFz0O>U4@M!YXbsz`<_~cLaeK1 zd6xh^&(Eq+Z7d}fl&e7_y#!T+nqntWjg^wH|598%^|k4BuBgnYEQs-f=e2p%%k*9j zg?J@hvz#=wvu}{Tq*(OG3GeMlWHwG+Q9X->7fz41|JCc)Q(B zigBr#INwYU-c9AZE$8fW1$?3ice8A2?|CoS%K)%r&7zvf_o^*@Q_c{rn)}*)zfm2D z^$D$lp!(zaVH5(ycql3|LxfT5-1f7|u66>W^Sz~AP*1lieFWFD@~i$Vj?Dw*y(x&| zNR=Tr49*Ci4=99WB|&X@kxmADI%aF*o1p3EXVOC1V`cjeA4IDxUZs4%@%}&l{#4>m zR@dfAhMv`vAbw5ICRF)DsAkOWiq5sVq~{(p-tjEfCG;aErz8{${3Tu$1F_P)Qp?Ko!TJ|u`Hnd5E2{zI^SBM7{U zvxKTNY*ftRhN$Tj*-EOu7U@$$r7AW*e}?T5T^sfm6nFk_lTaplyjKf~etrAOR-CEg zy?3k16joIucIJQ)c>J7Eqn}9Gjn?dq78c%9+otnO0q!RpL$KpZ1ry3$%CzP>0_M zHVRw&b|r}2?Mb)?04T-&<=q8D7L#BH?4N%7{kP)aru_SlKU~pn*>V+{5@M#BGA)Ca zu|U`pwpo@K&!u(>_SY7%N*5vmOfbR`D8Mi23}Yj@!PzBjprd_}(IXmCN>T%2L(n;F zyMvv@XncGbZNSC*6bnVSf?3u3P<6_byi_-<#m;?R0-;riR96BFhe`^uuZ7jd^2jFf zkm2r}rDVt3)H{jyhtXM@?j6DO^lUa%VY@|2C`wQz+_Z1%JD9#e-23A=jl;7_<2t7M zfsgF@IyL;fXfr2OJ*6FbF=iCW1MISVBrjt?|!aN^`qojCOk(%xj zy&Ue3Vg(Tno%AIc(HJFwzCQ?1^eHE~npUH+C@tq~tyYkJ00~}q$Gp`jxv0BLprc|v zTp{5B?WTS<3T)JD{6XOfG%YgV(K*g%Rxm~fX|krBC0Qvqs8kPYf^VTWBl!f z6gdS@IFRclVcnf5P#}ViR0;B8N2f!qx z{n{^RAMTrw6Fl!N_M{xB9_MxK{Ogfmm3Ulo-eW&S1BYJ_;!NfI6o2&0gp3IS>06aS z=FQbjftFiVI0KN4_hrZBh@|+uCVWv~3+oz4oqe|QI=lafX)gODD9YD9*$}duK|6P^ zY$R8xFl!dBz#>%52-Y>JxHbb)!)Ic(ke(PdofW?jwuvfo&{0A7>_IY2iUP!T5gto>QZL^=DGA(+kzjGtMj-gWmaASF{G$@f4&Y&0 ziuWYOm#L4{G+?;{R$Hj*Tr~^V(-#xGA~4!i>6D0)=0pc@v-C3=5g22ju~vgAxJQh| zb32aT9IL?j)T0`-Dz21HQI@&JlYOCJ`9$IqBUfVfq&Rv4GeYdIToS^tyBCX*dpJPr z04^eFjL#Qf0#=CaPA%D*6^ukVhY@bgNyALAWIDk>EEEhhQnzc2_nMkp-!wf!(+K?J zXDIy&D35FG28^O5k89>cSUvDd_FmIUIZ=)GV?*FxG9d;ip~`1TKTwR_6@$OQ7G@D- zijrJSnZGhe!k6NAx|OGO#&u62N?LvY6dkp_!Lu$FxMO@1Ha2Ok?ooDYpdYTE>ST;d zW!@?lU_6tNy23%L*WZSV4&mcMJ(|__p*hph6PuvourD?fZ+OoUR1Kg}21PM=Q0Wf-Zf4sjdFY2e*d)gWFy08pU2!1 zT_G*b0SV}|n}4R{4u;xeA8J%r=OuaAd7y&sGxq3bG?)81jE-1j;z-gsBEkvla=T}M zwVEmg=L-s}41#DEtneAZEmQP1R4k!RN5PXs>%`5U2I-m1`tbKYL~U@D5ojvDCEZ

TmpnDF9akCLoDBl6P{8O!I7$EFI`DsyW3M}-vulsEYleT@C8hf#kHYAl~xsae&b zHj_+M*h3XO5FbC1y;bGUJ*)WHLl50!au1F+dPYpYAiaW({R534hVEL-0LTJo)lwCB z3N(1GfvSvjY73zhQd`s?cC7~SCAg;X4h29bki51?Z08s`R1@M*1H*Ib>n4)pmoi_Q z+v+*0_?{QL=^sY!QmVGB&imTLW*MUwxAvSwe=K^A*uONkgxIsxw4pUz8DmytRKuV~ zHGPUck3N#iDa>)1Zd4!25wphS&GuOvZUy zCCV}MHsx@_Tk`Frm=x0WGHf)q^T<8K(H^~+0up1AVjzZ6yQd)W_jg353G(a{lj@m$ zP7{MB^_OJ!!y?%mk$|CB3>DX7ABH9>vq|(!o|}|~c;2EehvSJ}bPl!7JBlAcwU}!k z13V|KDg1}04~cXHB0GwM^gM4kjKeh7g{F6tNB<&GU-faKKbU~{JoMx~jQlPXB%&kza-pXOI zdxu*E-}jc!dw6*cRMK4bC8~e!yW)(>K|qLvb|n7BWNWFqzW$AGI{kC*-AjM_#eY5h zrN8!9(;MG}9{od5-Y&U+00fwN^@$(<3F*K4)BkO{?Sa4?w5!AQK7x!~LDJhKtRMe7 zerNjTZ~xY%%KB>Bas=9WCCcO8(ZC02)1LXh&qyEf>p$$I_kaDH-dIKQtisFT?|^yM ziuETP2I~+Q*5E7&j6@9fFQwEer1r9JQGI`&Ya6M<#S zlO?I69pg}NQB~3sJWmF^;u(?Pq0f27RCkOiQy1F>6G%1`k z2yDi=D*>@s64h~04GV!NCl=R;$r$@d5mr5z7VT5P-n&@ghD^^wf8c!|&0bC}9B)gUycub&^D}w<3J*FX1 zIOwTHoC&_*dN{8*wL*^W&4XI(ahyOVUN=-*(=#WLA40Dvef&HI%P!YsR!RA`GCox) z-YB1l#9r*tj_)@bi0E74s3qWiJy$2(O;2L3V~yaS(L#aOpoP&ruwZ|)kDOJ}p|V$D z`^j1v+x^G6R;BW+J@0GU$Bc69t$Ry8^u!a7tFXgyG%*!qcFd}HF6G8Z^z$dJJHRl; z^I`MQj)r*EG;FF%18j#uf#HDC*a7qf*v;WAUG4QSONx;Y2ueE5l7m1C7X`-IEZ;*T zxfDl*Mk5f|z)4fVaZk|&T)@M3?vcu5$!lcSL-cI8N|PdKICPQVls1EOjvf+t<@4Q^ zH_)7F{Ql)-xxwkS!_XkwhEAAn!GtCmnHg#5WNd`A^mYJQ{ceY2tLU);8_DUKKG5Y> zecNs~v4}=JlqgRH zl|LJDtGpRGQBR>!$7-GG#_1vnCOz*`vv*B9G+GA(L#l6}?Q{^UDwXK0Qyq=uKms3U z6~|g#O`_ZtCc<-d_y8y*-k{2)Dh@4rVB@c9(Pw=mZm~!eB&(Iv4f z=y?QxNQieK{sKV=JK$3eJX2Q2b{g=F{pDa+LA7XCro`FNvm(FgMT1`q zj8=#p)@ratG~j;E1p4agf&d_N4Jc}~m*B;}`u1;6f9-$#ODBKU3!eA<^m$7a?n_?w zW$6cg@CVbs|G9rJFl)J%r#<>;dj9hBKmO^Tkv{UnUzC0!hXW_vlU-2a@q7T#eeVx^ zA1S-{?!I@$TpWMp&;7;p|M~2{k>2?4e}@0Q4jXUQ2N^*JshB@)u`hq`ubn=2=~b_L zt%BRxBN8k&roOK_Kl8mD4j5gnr60~h(uYuw?v`iv@>jlc`FchAh!=kNN$>mYCGq^{ zU;TCIi@yA&>07_!JJMrse@wL2sDkW6f%TC`A4z}YQ~%4Qdj1DbQX=;8E&uA<(#v1< zO1>ZB83Wh24;nF}iXi&_hEwOGW+jqWS4#qLRKhA-SZbfI+5#r_ct8E=Pp1%0rRCm2 z>4p4VeU6bB3p%AvfAA&B_g zJ})-ytRoAE(*@Xqp?0I|i^JlpH1gu!0z&nnae(0bVzCvl|NARZMt1>Xk}(prSR~W1 zDfjN(mET6i|4I~X^w6@8eN@6@)l&;O;SeJu*IB+213IWzmGQ_B_qha+pLnnE{_yv^ z^BrlJ28*pbkW!-p<4@RN(=P!sn*j(QV2Mt3FVOeOX%u&pXR+dSj4R?kn+A*c0PU*`om!Bx+O6jKAhEWj@lRrXZt7=S zZ0TL^dKdqVpTVx+dpIYERGCtY>!$Ls&m{@Wg?@z8k;BHt`T5>aO?$a_j#qHF@(Ful zu_OyBc|IxZBWweng~guSH!C1eZHmxRIRt~lhuIZ$c!&?&hac=5OdLT{jeX$zz~1a& znBx8M8e9|X2P>hyuO7o=80OW2pYU+w~ z{f?jwf$MP{Vm%EWX_=S5>N`Jpk<1<1|+e zHPUbNtD-_QLS~!-8$ekz6VT&zVRbdl4aK>*zEFvHj&eUxr0Wrxa6Ap2GAgM=Mo?+n z3k~zg6dQ6jRWCONH`J9?48p`k@TLX=wx&O**Hsi)(}{)TmU=^QYSq4z3?l=BTz1I=on3Yp{WLX} zQPIOSPhIy<_Z=wU&~GXwnThb#KE#AHW(bRX9wi+;Pi<_5dQUU&J)Q6n^VkA0q#?t? z$p8C+EGwy=S(@X%n#z+>9Vyd$BLoE`nGz9~Xav(XqPYyvS(#8D+l`aTkRK4u-6zX%AG=@aca|{cInqc&Nl1|YHAlU9C zii78R#JDPK!!Br}ozzu<22w~TD%Y&oQw?@2>anTJKmgM*koUz<&&xhc2T_QV6ztCL zo=fz2F{qjewycHgYn~&LBL`mwL=afQ5yO!a0R-rT{fhO}tJi^SfE@rOA(pJBJ#v=* zuXMcR>%TUA!?%8GVg+|<^!iOOJF28g?Ceaxvno31m-LHl93U*GUe|15p_r+(T=Zv~3$7k~EWrGNRI-=6;E zzxnp`13&V^wBxJ@W%Y_-M(ihj>?fp8{iNT&y#D=9df&G`_E`Gv@B7|JT!NaIlE#w} z5pQ$5-|GQ8=cEVYsHQe&8v&8&x_G}A|9}7I^i^N-rMF5fKkL8wqx^dP8{UxK`nI>F zpM1klk?{nvkrzDgdFex5@ImRe2d@9~U-}XPGFZ@eJGBXPrn$xb#J&a4aGQQ?JQuu| z)u9PsEI_0;a;cD>tM={%QLx4KSuDajPxxjA~2Xjl4rCx&}rWCUkCdoz% z@R-t57f%KNp%|%+$5bA{5mEcd4~p7Xa*VDTM+>|LrFS`RC+E%quCAL%U88R2s+bK1 z5kAM$Df*~#V+~@oC|O9on6J2(1Y8!|V;c3k{lM*UN|sBF;hpTJSpWWPjzbz!rF^^H z2zecgQUJ?SN)BCcZmZ4Oasp1TSzPL4$9xcGozWmOY6Z%%1_ zYQ2l@9m-Cu`DM2rIA*zL}E(}gB1 ziQst6Ac>oQg%E85HMTRcG&*SjxpBd{sY39ln>A~d1CdvhV^MepKA_su5(bg9>o6={ zyf)qxteQ&n+Hq)Z3eH2lZ#`){T}>LD$eYg8M`E}~axipt@k*h$#F&K~k1MLMt6r7& z>`Bv1wI+O#0wGCZ(0uQC&$=$n^_m)2-U+Yig&x%08Px5)hKxeeP*@(eoz zAEIT9wUTL>Zz*KY^&I8kW+@(;=bK|_b|8V35DB2yqtl@5Er5uAm;SGE{JocaN&4Dv{w5{pd(n;D!>yk5 z6nmG^mk?yUsHD0+PEHU~VnB2VP-KjLY`#}+bik}EDTdb{Pk!%GQVkF|4>#;vr5KU9 zGSq#c>b~atVIOUR0yN&DVhq8G2?-ectCzL31iKl*@GS5uqjlhVC#A3c#;;GG{E44LVWm@#kNfQ(!!I0fT`G-l zf9Kn&ER4$YT3z_m<6FMt+o~u=N^4QVOqNL>Z8WDHG0G%-A1g3f>hiAOkv_Qm{jHC^ zEq(D)G5v*5t&yDK>$iUNN2g!x@x?Fuawfkwz|aWn@SS;`7_9mX-|LZc1x=?};wi9o z5;k=V#0635eF7hvX2Yq+6e3hP;tH{n8DYll&WdWrJg0^${G;K27uQhnDZ*0 z?St`xHG8!bHLSK=;#xfu*i|&g$bB$=uI9Ok-VB=xxN6PH+2FmZUP~lhR6)1Us;h=c zF;!?W-l*bMRgt2KXP-qqZ7pVzT&C3Gx7AokCyshvx!wnX7iYEY%g<$CW~<<2zsn|=8_?~bsP=<)MZ3v{&|GT1v))(_Zf7&#|En+o6;2zgTx7Y+UxL9={8 z!8RYcsfn67VeMr=uvuwf5SWjX9(2i784kfK6U#udR4GzLZi?{%DS~BJ-|A4|5|ZMs zK&F_f8T4UR;n1%T50zzkd@qbl>YGZh`%~9V#}2YU2{En5v<@R1xk^pP0u5mz-FYES ztR@icTUZ2)v{bnl(irU+iWhI}8fIoa&a>+h>!(30upbmAV~sF=p)v?1rl zDyh=uc+Mfz+4J1vz1h%UtD zr%|U34@1;*1cgd>c+S}T3);9F7$6|)WrB!Qx>v=1T$18Lca%_0M~f5JBoGR7Ua>_x zKA1Tupn9J@X%syvXOLEh0xE#1ZLb-9hw&J_3(>3YU@1z>zTdUa1g{0qwFyIy^^~qk#0P;YQ`~Kh@(c?|4Ug@#lU{dc|vB%k>BwfEjA;v1VUOvdVd>fze?;*5FOH zr<@)XC$G=ph7beIQ!nO=7z1+r=TRw2`Lv3s*Z$x&T_mnCRlra|sS{fqNFGg1=Nvh- zh1{YlMM)RjhhF_jV~R0KJB^JXZGJ(IQ{UB!0Y2w&x#xX<<*Q$nUjB+#q>uRU)99wZ zoJR%ba%0kPgnNKt?|S#UNk{(kfAas4ejx`E)L%%F>H|sR*Zk9O;F|O-zeCWg`w0HM zc27IPzNeT!9$@Vh_hCKX8}|f#qtATC`=w9&ls}aI&p5u|%f2-I^KbnYZU-eDxq_S1 zv;r+liR$p}S`$o#bEa&}2PY^`@ujieUn_eHbk+Dc z__i_BhNl?KXP}tvODkHc`tU0SO}@KGvqNJ+Qt}DW*5WfGxx#fTo{XMHe1+dvJQZne z6k0r!TMGNjYnjA}Zs`IE*g!l-WfB5f!KR5=cbw;1_4K}AB{ky9CZI&8T&v)`pJbo) zRd=P#P2F|yGmK(~M-&MhbCq8Gqp0rAF{00HXsRTaU>r7J6;(X2sjQ_SdhBX~MM^;# z&b3PBQ7XgEuW5?mV+gRB>g`x_o|`YUNRlRv%r$l#qLNw|({5|5UY~8zyzar^MivDe z$695$G9I&m*c2m*_Ph?ateLiNMPEI$RDbTIRMq5MldpB0OQ33YtQbH`#6vo-4gIL* z!OG9!dsx3yi~!PlSS5!=iR9>nc5D+rOk-E_8!>p;60<58*KeHEM&%l@d#vwcfN|?W zkN}Q3n5cPGoey9j;^^ep7jL@;hQ!6x{?$1qX|y6*QENZ)(h%@2Z!3!0QGIS)tYMr1hG7;f z{>}NUSS(9W2kH=RBl!20!C)d&;^`(K}N}6-9yq;iJRq zeMLpq!d>&%A*>)yeX2Lu38?#3QH26!q*6+AzA-wa>!mF09!(oWCX~^1t%h{Z(YofK z?Gh@?R>K0l#Hb9AIxI-M#+z=fq~!{1i3*JshqY{E1W|=il|vhbgO8Vg--+HbD+b~j zf;M5K&)jyr)8VkMbJA?YXhb3iaT2YK)41mrfm$QjU7(6|jG%4=rPo#6IjSX8YxI4L zUWy#g9FIvNDO%ip7^-VmX1k_@MrGWgXAi>^b4TZ>?s?S5u`2Z~iQ=7hO@5A;*|@Rt zT3j3Y5t~$b$jry$;xkwhJyPMODXo=~H>4$9kSbP=>JgY@q|iY0O^yq;;_CW>NhF1; zz=R-5KXYF)>BIEo0VsMVI;L?<%WG1MXJ9k^;-v5F7zpea1G+hrc*QOx!_{}2G#W@5 zER7Km^fZgrfDBwcgJ4adYN~my0&kSWpevm04fNm~)w}0jI3&5C-K+oR5Ke5_yWO3j ziUGyW9Gyj4&$Q$GE)WPH)Bd0G@q@2@P5K*O_`k8Yjtb1PJfhWgjnZ;`0Nlw<=@Rn; z&(7}N=!IVQ{k*rsz?_l_1)i3VU-vtKmZt<{bMkw`PI-Rg8dTF58|e!4eG{VCQn`1- zFZcVeo!m*Exva0<-SadY)e8eq1pTn=iRI6i>p0uStlUENZA#{Y78#Y9zy7!XPWs9( z{-R&fYU%oT>s#NNo^=9cnDZKs0xzx3Y?V;_8$bV=fAS6K1D^ft^eLb8`_q5yh-j^WmB0JHWJlK>V(d$<71}cA5P(x6h3Yh73-y!&jGUvtRxCbzZ(wU03NA=2B;1H& z2r)J!?FX|FlVXOm^L{0YX_nr^XJr8>7Zw<+u-`G)RuEBVC7PF3iMA-xT}>>Yonm0c zAh8Mrx#|=!Ig9wv{f%SLjjdGA^Nh7=e`cX3R^L~JC9Eq|)nq%Mi(xSL?&1eIrMPBi9?!(#O*Hx+$TXGW} zWyLZ#9UZ)0dOh1vr(T{l?7^_9)N0PO-DuW4Y_Zm+=C@nfSMRL`g8fpYkh*uY1uSa^ zd6U+AugYyv9Kd#iU=$dvM9U51;@m3N&{R?NSg}9O4WGZ;b$m~P`b+GH*n2=v(qZnX zes#GZ)Ccz7Ev59`lE`#=SeVVq0nun`9#uI)u*}B#gI;sCJrmfq1nAf-M<{~ANM;SP zpo0qWA3Cm3>Vq;=LM*p|F(|vDJ(28@&PoS-9R^YJb$t#(e5T~NwZ6|?*WIY3 z@Avx^c#!Hsp64dHKSs~x`A+l5jDTB)+yRlPKsD&kqC(<*01n_>OwXDp(R(N?GS7hm z3Q@yz*Y|bKckkR`#SFhQgbE?xMm-vym9Y38KH_k2C_&OPYH zy+%$z(tj*RR&z<6S(1dQXa;O@5P$&Vc&Mludz_~|MKUmMr(fq=0s@odgks+D~(0G?dd0c;{@ov>SN z2H$%>AiOcecmj)I5JZbavJc8E1uPBSoQ0ZI?wHRE)UV#1I#^>R+ z?1bYHY^T}o3P>2ix(cJHO8SHZezHfQ!Thd?n z%YP+(;phH?^hF*kGZ_wZYYFYId#teg=92HFF;D~Hcu#zxUzmx<=wwTK9{)yMboZgVT-SNbF%dz+ zZ6nTaw~Yk4Fp*>syHhoVl_exP?D-486U>aG)KATLQi9}4S;t`3^k976;dm8Q(Ivq+ z-_j30xVYkTC2MT?{09%7qMdZ5&PuKn6y4~&F~=M}>FN@~q1TK3+%O)|tknaPMKOOi z45n3K^cr8{q!8m&Y>;Y_Wnj;10mpuSza}ZiSZ`B+#8@j9FT?XetVqUIBoS=Y2msQR zT8M|bI!BJzO8M0Z7=GvM>`nzpT{YCR=_>%LSgogzF~fk*p%XQiz9dI=d3g^2gr44^ z&ztDebS63^!r9kxE<~8yCcs0Bv3D_v1=j?2Db}egvfK~%C4MGg zZDJ0WBbUN??N@5c6z80S!j5GHT^5LzGBMVE_h?OnStZug<#Npyf@JFf0K8rb*GyWI z*r3xqRgj_YTaT*}{vOqyP1=u99`1I_8Er{5#Bg?2`cP3#(Sw0eHe;%Nao2mxmk)Hz z%($O;QZyIxp{L5Zw{d2rY59F8s*;$Vwb6oNFhu~XWFa?^kC;(JdRovZ{9xJ~PoYP4 zHtTt#DWy7>REA^|iLng6RrQ3PNfO<2x>$e;Po~3r5Az z&GF*mYewIiCad2oRfX6_m=v2ZB&--OYlT8p3oE~^q+TJGUBfUuM_I;)eImMG^_rG}z9@UC|~ zPN2Xb5x_q7)d!7+RmH>MdUFlDK=4btqo$vqN@s`IPOaITm`j^ws{M^spI8*kN=e)9W zLj<;GCs*Zh-?1*RCigMQ$0G}@H12>MpJ6Z$>-CGj{L7aF`pxN2eEMfl2#RtB!CL~e+&9fylUFtO-EFjc^{ZX3l?Y64R!tpr?4O$0p|!?CAhbRT8_HL)!xof0IKU}f}AX0`hj z12_>+9^yR>&K+ayixb`BvCU^?wRwY4e#aQEiQkpIv}mNC0g_bMi>qZFAt@txl*GKL zz*6i}s~T6vUw~tC%x)!9E_y&W!%$g*wl&;iWv=s${e2|IsdyrX;^Z;*dJ489X!L1r z`-m-(5yO@cx5XNEwU_Z)Rt0oA9#(6x5P0vqzNt;e8bFe7sxLl;>yR;n6Y!bqtdH1x zzxbhPBW4mZM)>vtCyyC%d4O#AKw~n-hCpfb5D9C~-n9r^l4%7~%wm)w@_(uRImh5_ zjR_%NzYBWk7(J_S6s3gh_)rJ;Iw|40ipF>M3?x>vc0^0)0Ale~G_+Sj=BnFN6RVVN z_F}d{&wjX_tCFJz_YQ}l(pCHTLU1-utvcx0M;%NXAdN2e9SnEPAz&#_Lj~5hamPm!>&NtI5YQ3lKl~s_4A-iYEy-8HG;qeELu;mQm63@7?1P2a(J$B&JoO zI!OeTYJfc}nGE!x5LY(wdq}=D8Uu+ZXeLYThBI8tJl1s%+Xh1Te+q7T?EhlF->D@s@gjX$6O(|BTq=a=z#?46IL?|J$6ryqLVtJ4qv#E%lls7eya^9`dv zd=4Qm>#X~0NuyKdet2j8U2+p+^^flb$F{mfXiIf9&@k>rkVf%K+Crn(ZLY_3y^|VlWAG=+p{hI&9)Qt zRYR3MR7N3=hSwpfrBGms3SX~QjBomv|04a!lDK}s=Y8%kDhYb?Ti%lX%3ptRdfkuy zXwc(N{KWtay1un1@Y^veiprXQs`SkP&AM>&4m-=|gSG_EK z#n*ienH@&yjbvBKU`i`+*VUWT_n(8lbzo`6&k$fS*I}1hl`H6(|Ki*KReHs%UY$Pc zkN(m0yMNa&-SyvJDpOzckH0>>^sBxyT`iRc*fFc5)4Spxq}EasHzEGW6PGIQ%RrGx~Mfo?tN87n?p= z$l}^mVB3{)yaqnVRoGNY%u8)EEuDOncv#u^yIlqt-;y^`fdf%^H7()3E~j_;6QSRY1tA z^^{hzZ1fL?((77tLshaa-J}q=J=%p@H1;mzz$jiQPQBT`3Xw=}6BimvEr6t`yygJ@ zhv-MnOcrnIEtED^&)GARa}MfNO=+bokR(vG zX8UzfRj&W;@{P}Mf^S=)&uj53`*;DmM$GO}J2gg3VOPsdt%@~s)O%VZ<)Wo9es^#W zZ)w*&1*>zOZq99WOAzl%2*l!;*M+yPjr(li+C)3SYfRHB=Tq$OIDW3;UGQNN4nvI7 zg?Q|eVa8sWDGH@MWfo|TQIujuDaH_sYYJs-GAshP8&!>$q1&Brma0rg%I$zaS?v}as3O0PHG8ig@p=vha08d?Nnpj(^fa3iX^ znF!9c@jC^LRnJ%VR@bIvdx+=bX7QGcH*uzVZoQ1Oo866~O%6tql2i6frb>QBxT$h8o-!7uZs`1`8^J>)^7zbBs*3b%<5$uRB+wh) zG+)vf1I?|pLqT2(v$a}Oh5KhKe<#?U!AU&b59U`IKRgPjLA0c@7M%8NHv;dKe!g- zP7%0+?b=8fq7UcK-nOG=^X3)JsXH+!#$j+r3fLRT+E1bd;ve|r^m~8zC#KK(%+I`4;);IDulPq_m0tR?FDGpqdI-@Sa?)Wm zntrYd__c~u-!+v*&kBF+9dA#6^RxeU`ofpKBz@{9|H1UzKl-<%XFc;5o@|3gh(6hG z_@;lFo_z8tj;xTfcd255DcQa&U^RN*MW8oNCyEV4g3eJsSd*Kf0=>1*Y`aOVk~u^x zO#^S=_V&lp-}t+KCwZQ(kou`s`S<0_zmgFr=Ak{>}0Ss z@Wl+G+=BnoG6BsJ=7f1RTj(!U}T1pDVQ5OMb0qyyNR zIUgK8&nz?8F~taT*a^`@WwW4=uOfvMOUtNa9NPeuPpYpIL=83VqW<2li#f9f&^xK1 za*9MJyX^H(mE$tR8gs%Kg^B1Rbj4i?&I0pPNnH13n&npFc})Q#_sML*F%m1!gLfN; zU(4qbwuo(OLCvk>D&5D(d)~x5YkOKLH%8hJ7>Q?HwPsR^#A>@#C+8bUcs3=c(E< z3sA9bG75R5>26!m!$6vCK}$;KW*-0?^|@-|kU=^3L*fvq*;JSjUtByO9hgMlIkEbQ%$r}6hS;MNj#9Cef_Ixum1|}n zD0*q3sJZ+d)ZjU+8#mDMy~~*C*k#e^@V@4sZ(=sp<#HZwjJCmd^1DX28Ng3t?OQZe zwF?0rA%_Q|Tj0QZ)QUI5Hs-N5%Ec^^lfLzW`n(P?+*f^%eWm@4A&1Up<)ofHKCGcN zT-!OU5fnFC^ZHV*)Im{El6p))&j^Lxb(1-M<{q~-RoK-bQGHsH=6h&Ip*d}-(otL~ zR%L0Z3rvePKBMa@4Xi}7HJ`zJbJUP#!w$9a-RL*ygyh|iV@;A}BzEBtrxmru6qboe zZ#ZT zBHSv{iF2y3u5pewnr>j<1_B34()k_Ja0l)!h*|(hdFrVr>8y7<(1y`ZisyEuV@_Ga z+SPAZA^}Cvwd_A={&WHU3=u%4W}IZV=0KfOtcyv&QI@f-!4wfwi47>&ks>0T`T5!1 z<^3UWv0=5B*UoWRBk3Mj=-s{^nZ))&94N=0ORhl5Km#_=@n2kB*5TKxf-l#8zSS`6 zJLk)N(P)$1`I%^;?zdTf`Ob3BaIdwNrrPtOnR#Pnkz8Lc&;R0Txo-5ipdUV^r!M#D zp+}#d&L4g>o!xyT?e0CC_RH-%fB2E*e0H4w`QX7N0}u4{B5A{CVZEK#`HhF@k=jt; zzzA&)Ck~biXYAGLY!@>yo7y30;}4#?uh*qUU&5PMwb#n7Rv#T#bSl^c^~z0k&l(it znoJ5}P!R=JfHsv2Wwm;=3*`Nx_2;I$T~y_4Po% za<^v&oAib^ zzG+Exo~(hu)1Usn>4_(v5I_ml<2D3leO2s@eNY`4PaCWS)=!r@E<_)aXk)99GtkPh;}*FnSE0Vn&bKQj5-tc zdwh@M*wpH+J{rC=hxkkDadNxFT&pirFu3ru5B{JJO3#1JbJB;r;Db5N=2`Fm%yjSW zy-J-1uzjU2)GKJC#*mS_5aAPW-6d&~X?71MNGQ%4cEj!YtzV3J)>lQ;>> z?KV657Cf&x5@q@RCR#*FFIgvQA7Y=~Fa#K#xE@qk(6t|<6{t9XM?OP^*zQK$>KL@z ze)sPlT$v2<(Ye(249BJv@?3y5E6-PD?kojxi}Yb#1H58<9GWtwmbxcWg_pEa` z{oJhL0BU?JpXrLDdTG@!3f+(GN+J2);y<5!@`;+fa*WR9RgH(ci1CV9X>;o_CYU*F zYBG-lzmGLTFmV+tm)H*yk18SDrJ@g$T=WD#cu;$6eV=hHu<>GGs)rKib8q$j5=@Kf z1zGn*@6i)(TtVBC%#UyIXjB1eJW+}Xz$wGf`) zIjepF@gm|3`re#F4EmshASrXRc^5^xjTawm^71oCz zdK!~c1)53XDEo;4Ci-6Q?9N!}d4NId+Ph3z5wrn{V&BoM26$9du!HflEr-V*8MqNK z3$#Uuvk)F8G7<0`A~D4VU}JJ1AU4pwE0IByXvw6g1#Vo%_uV&Z$FoLhOasus>cqqu zzw_|oyi9MwqUS@6XANGg(o^<$Jc!#LgwsW+q zn~`a7!fn*%7p5m=VN`$|^Ab4kF|1tu6hM`Q1mf8o8Qct;Oc3Vm4uTq-ivnpH zP~3+l!9|bYmTI!_SSOj>I0035V201j`!-0LenSJP7 zL-8!8Kx*;csBWV7^m<8fVBgU8fF6C0L1OR75{xfND%ej~u!~Fb{q$!%Gi~oY#Gc;) z3WLiRrcmP=kG4B=6YZi63zhPFckYIGnw&44dnoqNR(6_`hV%1ljk0>JGk}_=2(Y#l zb#>r^KS{$)!ODoB4#BxuEOtU>4OB*ik?NeQt--!yg1c4=Ei6=FBr zN)={O8i^Wy)`chpXQ}q;s|Pp(0K)4I3X!19J+)N1@r?0o5!B*+L7nG3@JUMCxXLR8 z#Vk=_=CSBXhXqL3FTv1;YOiWF;rwZ=*AT|Q7i>Iy!xZBOV1w~lWQ|1PB46-mD7dTL zfFd9}B^zZ$#k#Wu%HFR8ES7b4cX^)2pgM^X+B0B>zZ)a)SW`h=m4*MxU0ipEJu#SA8o62b4o*CD{c`{9~-&*JW>2vPS9e;-B>-CPkf%Oa_Jt(6Zyw;xRR*CymgEY4)!9NICotU7xnm~qC zv_?=|YB40681Zpr3x|9v)&cc0j<}x(f`M57Ogbv)J=Da8d-K==bd9^Qu0VIAGNgbs zGZFFHb3fjlbBQMsG;piVJlB>k&;N8#i}PCdyyF?ur`F^nRr{u%xH;H49(hud+nB(S zxxBijzu0Zh*oTTF#rNCbDu7f~rPVS*)*P;JGF4P_jj6J{{QchDhiVeab-u(YYVR?v zbXO=Yvy9_gSv3ryXmcfb4Hikm`M6@TJ>t&1YI9j^GY$hDmB)1Llx`T~mx zdL*4J_hR_cP3YjH@YlnjIQ?>2m&e1g#;jhiOwxi)N*_MA)&tu& zvOYp^)zoXe$1&*mW>2lb179Djy3_Fn=;3w^-zQaU_doABxq@z{Bz^*sK!6ps#}^a zL01718JmH@{#H6ZfoefSWj>0+$c1seuNJQPCQ@uF@u1ts6Z^UL|P{ zl(ssis}ZJ1xYBhUN~ym2l}6yw@ia=fDUe7B-!$29++;f@C2E^MgFU0v++!m&_LzMcU_YXR-++;sw?yTB!!>77B2Z)Xl2EI@3Z}B-81@-0>*x^3ot{OWBDDE|tLSv&r`7rIn!Azye#ksoDCB&-# zc~x8W>a;4WdI_eOx28&j&abOf2qK+9!|=06;T%2B)T405ajMk|h(};gplUdWxR{)< zf{1Q~urapnq-IDe2S(#;wlRRZt7^yl!!dd}f*BDF_w6nrs4<$Xdr5(TWXkIls@JM! zY$K>lu22sWgQBCEHEIXJ5Y{#g@X)cUiAr;iY8Zg6#Q|jiO*j{<`KXpsk^+fk(OGF< z^t4q1whn4-2;<*}T)IT8V(52{S%X1Yq^jU%SLXP)Xb8a!YZ7@HqNQ1vk0ZX zy8ha4Qtc3F!Lo7=z+DhKMUqm_5 z9_A8)*Bb(Q; z-6S(9cHlG3uB=FvFsHP#L+%Ajl|smXHpKMkhk^w}N`35Y+AFNj!y!=Tm^K1c=~j3D2eaW3B7f&J!#v&?Mvedd)H@%{PNC`yY>cGRSDkHe-`%4!T}x z!DS?^7Rhr^+cAk%oH50-Ak}qLwQoJn%`-1m1=|tbm!FD+ID~8{7PRUuHUPDz!iSc9lgR^pI_LpDrS>&oo0X_@UT+-G$YB|zF+lPPp)kidGtIhdmEblzxx^lrrv|!eP>!hfd8=T59H+JX+o+=*ig2^c1IOI2u z-w!PCoaq^LT}%m3AM|kr=J~Vj1F)7bN(TTv&n3Xd9BidZcaFX63h?A&NmkOYnYCK? zn~3eLs7?PHfb%}8?*^q6!?%Kie3j|(yS>q28+$@gV`F<=U8_ zR|ZyVhZ{re&Cg<5Yn5|yQ?}D+eqUL+eEm-Vw>yve|SL44~ zsFW9hsdSq_{e2!aAdJN}twzE4f#=*13s%Rbb`N|FM1dk%H4_a>wZhCqA`E#2Lb7c?@+94`_L`7l8dhc9Oz)1H3 zs{*%q2BrCOsSNKIy9huI?GepEanIza!f%J5Bo+zQRluTAAho9=P|Tuk*)dgh$($?A z$*PH6ILZnsyhmS<&&5iumi_lHc%N7S*7P#mNB7H{F;E#1DFUsi_T{L?G6>79$ECB_ zNYRk1K6PwV?8!$qwjy{O*xSELFKX0COBGhpSx9Md>rZ z2=*5TyP`y;#}qlLM+QnRfUv6oT-SHiPOODNa7SG|G$^^QBsAMs>h;+co7(CG-yj^5 z>{Z_v$Do7?qo3mt;Miu>av}RY*0Cdvfm2AI^lM6p6{fj~(#??&tdsS4__d8BN05de zp&EDyYPeOyP4}$rFa6EYC$`a8KL*qM)l}x2h!g!uC=}b)d#<4SubK31H#bm5-&YHZ zbSqK6_U4VjQ!5ai=Y)54Z*k297+@dmd+)?sAb7b6SZvz7ake<+ywXQ#_t|@Qt{|lO zH^H0$fH_TdCM=HQc&vWb=jecL{r(17t8WWqSQEzpqg_GuGxF!JD?Dq)Mau4HD>aF; z4vG5HOWh+~ObBTEW(t6^wd#nm;Fcd13>1{l^*HMEuMZwK;6FY^s8ER_cPqWE-8G zD5eG?Deg)kc-b}k6l>9KPi#Hdh{bjsTMVZdFGOvs&rX$+?LK)kN|b<$D(fT#?^9J^ zL;b%*tY5LrlBx~!z0mu*5uOt!j}!09}BV1gnO|Wb1zHVg${Ybl16vv0D`v#pl>(AQ?OUF8tb!<3~)Vv^IXeu@-z!{TU8$ zZN$Ct&!nnOg)9;OCgM9#z0CH$+NO`iu0{QzN0#mVvmC2(*;N}#5174 z0qOp_H>MhQA;7`i--$vDQ3i?-(Khro5M<>-1~==xgr*b$5e4o#d>n01e?t2O01VDsGtVr z=2+|O1CD@>y^Tjxk8-^huW|SZ24ewYamL&7y;^;bgmH*!aSHpAbF0+WJF+tX|s ze}GoOa=>9nyarqiV5(xasrT5GP^&g;t;r6Xl0~}{0coxHhP`o>p!%U%6j28rWd&3~ zr=a#K7WwHK_?A{Rq`h+@6z8J3czsP;@UuJ7FYhF0sLHQXO>j(cW(!bCHv;QQJ=<;q z7#iArSplv16MMrxrHU~1LrpY>O&d?=$`9L*QcGT)46mP!!50a41PIl&z%Z|#hu5UR z4cZw4L~*TC1W~weuoteFIrv)#^V?0RqehUeHUm*-r>I8R?-Jze8^zK9iQ8-#*bPo* zwWpo1+b3K2#=?pC-f=Zgmd|X6`KS>Wta|}#f&{hF?WP8>4QO3Y2FS_6YNYcGQWq1CN!>gf(|U3)aEuS%*!iqQO`(0zijBuHk(`%R-HpsM!P;* zxEeKI)wGBzbK5g+FY?cn^!LpsL^XG)g$=Da-TPE&{tE0%O&t5Kt3?s(gE-dWjLcP) zoy@#go9vSxRK-88=VS7;1#;?h0-P~e6gJHQYG!Nc9_#hEC!nu7vou&*V~gUunkt~x z;>(s~Il-4ul)#Cpf`29Aju7NYrGixk#c7|C);%Y3c#iC9%EBQSDF(_85qm^PTkl<| zAZ)3xbu8_5d|1sU$9n>x>Z7MrAXsZX@QhLI2@6|xbv-CvjHG*|YAot-^M`Ir>8kB$ z_suo{SF;TO%j_Dweiu4DE~q#*SOdbs`J5o<8*9m+mb1~FK&VZXeTc2Uu9CY{9VoAMuYUb_&Gjf z6BI!wX;W0eas(8O_BvN8p&i4`Ii8{iY=e$$6v(vPd5$5^`)gb8x*44STR?@4%qvu- zCVD|VwW6D8(4Z--6L8b4O}$p2p+#R(k7HQYeZe0a2vot2;E zx`%1q+t3`J8t`XR_d*1t1(uOentIn89h~djI5nSJ39h6&OLahYyR3kO@rIgo2?Jaa z@3>!1Rx5pC+hqOIs!Fo66E=7=PEj4#KB9ryoym{|BY{RbjGrBcK^0eMY0Lw`9yXq< zruXI0>JU+J5LiM~1k@s;<~$cAYMg~SX+*#j)Ibe8Po&Q3y?Xu}ug54Ipx*v`CP+MY zRe*6{@j2-EL{&!MR4^WrX(dWH@oaXS4JQimS@e^ES}Al{jrPY#c94*QmNhf^+$e$V zIKY?+&N_{b-$PPxetwtVXE0)fzLR`DDLx3al7i0t^?`y)48S3Tb-rT)#IO0tUJqA& z5r|6s=bR3#z+PZv1NZTPqH!1@G>waWTM}1PT;JzukJ8pn(}C;h?ma2Wf;z+**IXG z=Nm}^`V85V&w=g(0|cBW1$v^#@&C`(pEgO7Bw2!(h#qF{5gD0P)zx$L40abYw4fmz zyO?8%01*CL{#g+17tB;;W<_tZZ}C#ECIZQCZ#h z5RC|-x|m@Z0nd))HG1IYIc#(UF(06od#nKbn)=k5k}mEV(oyF+B|Z!~W9@;1>tXjH z==S}^{n|E%Pr_`u__q?&IHR_|LGQYWlJAxd*v5q*kcHsl-^)<33O^C1Cw|7(8wQrB zek%9_)oxv7gFKq042k(lAX5p1!7_u6aUE7=2lY_NbkOTKYn}$UvD@4yX4u1Iy$I> zU2SzijPo@s*|UdONZSl2lmn|EUC05V5Zw!c_C;v{Z4Db2yue+Eoq&?G@MISU{39grWoV^BlN3AIV zQ=vjSH^5)f~^>{{%dLwk6dJYKT5 ztGJqGnyIPC24>8DvK=v4fg+clo2jx{Tp09Hyx)CqINPE|TTs#tM7fcVU5 zegU7l#kF%_d0t|2 z?OPUpT=;ODT!&&Jg%)oKh%OdgRhvW6Gcj;Ei+PfDMwxk{9R&`@kaj z3rg^@(Qri4is1KoB;{*#e4*5LllW1jT@e^IA5?7$QisIVE;W1PvXn35^14a5kQCw( z^^YDc5ql$5@$WYwGDf{XgS)*cDLe8IxN^W=*sgTus$o2kXc!KI^w+=sH8*$|&*=GL z-`_3KM)bW^s*X9~ScQT)u)&5D{g<2kNa}Q`*txOU72ya_eiYfU0;e}AA3D(~hzSLX zqr)^Fp!iy)Eb64ohQxtLRbUg>@O}k(rqbeGbgxeGJR|I(>xs_}RXQZPLshv574Amp zNZ}PHX+ZVv_w11!tB}LxC+&yyqd9{^SAQHVRZ(5go1jGY6yN|vOTE&h{C4`0KhJ>> zL60W&PbT&5ucG5+a1hV@O+kQXi8+8BjpiwZd22xw4+(Ly$-&~B(yJ`a7L zd*=Drk*xY`e~*Fca@040A$K`#0|l`T5RN)|Jruv9@~a(WIODevB)I~=sH#RK6`fF^ z56@Qu_@&IDIu}kpD8ixQ_(o>PvUd8)euxzUw7Ftvcc^s2p^0`C>-+5jsJ?yumUO=W z+8jvox%Em9>EK~d1KbG;*nz-hMV0p2N7prey%N7;3uAtrsq63fZ}uE5*)wPw)*IA2 zi7KKe>H6;oGGZ<(l9k&H!3>kVQwn^vpGcrfOXpy_n!TD*1YNT&fc7ocKWvC;nx8Mb z9gfFUFf#}?D5!r70qh$R*+^7OLq*UF8Y8cl0UhTR?uX_NtIum26}Kw`*m$20QRxu4 zU3(n8M5lnCa^%^=*nlE`fWEc~N$NBo_!B*@@uyr#>usF?HiU54+b04gkz5BByG6g? z_54Cz7PeUoAfGkckl5oPwI5#w;LHG7HJp7H6+hMt0O-llW)Q-_pmX;4ECOm`JxJ5H zxF8j!qXPH5_G1Xp1Pf^qBMG)m;!f^Mt*T<;*)D@HVN-QofN1RLCb7ftIaY0?NK)5W zV1U+g_Ib=TUj#fq1wa@WwQ6Ym`|W;L|M_0Jk|+UMx67;o9}KF}22*W103%dE<|&bX zE6H2<3*ud0zvW&HwfJ~$T}wc$68CMZcMM>`IZ(>fI|=3G#=cq$Ik~4DB1Sr24*CI} z->B#rX9NO4%~aW{UdH1EppHa?s=iyU@i=?j3Yr0i1Rc;ximMJ36?>x^?@UlT+dp7` zN(TIB!T_<%} zz>HBJtt+26vj@Sic-CjqXDe*03qe-@51`3ae8-@pj*1i9$uY^<3nlx0WP!%(7{Y;oIWeI*ufewqzW^V$aY%pakB4c+>kW5>?7v<0X!o zQ^XPLE3F_Fdv=KP2Cxs1ZWilE@d5VoKmFH#_3L)bNLU%5#qnVO8!D`k5!V@itjHLp zVOwbjcH&%%xixpP&PkzQ&05VxPC;B3^Wucf@eqO{I#q4 z&VL^YbSJ4uYfy3Nv*Zk9nEva}9(zH~G?0^an*xXPRP~@{1;m4njnXEq@a*$gJ#vJ- z2Aw{=%%1gHMFpKR+4Hl=A=`svo+eUp63v{* zZ>v2x-(}kvG!k*11iD3ka9pd!xI9W>na6;IqkMV~Pp^LZed9Bq3X(DQM6&&0d`LXX zN~x#LkcEwWep8r6y<4U*ktMJv{ijZyj<@F-DWcV}KW$m6#(Fd=asmO1a}zK$t5S_ z_xn2>E$qvnU{3K62IL_|m}4qrJ6!FxkBC?OA_Zfh+G3!@nnVDGUO^=u@mT?WI+$>8 zaSygNTCA0h$O~nzvDAZzYX?6J4fZwPT92$^!E%@Iq9*lf=Js< zir^=!0uFer20T)Sb>xcGf(-!pJ>$A4UgeQFq!P04`kB{`piiuX4&wGz89HK_%tQoR3(lzc2YN~e=gW79{+J3?sJ=706YUtK3@i-89S~ShG+}nED}jZrOdf^Qf#sUMg0YXsu+SeO23Vywo9sxpvMB*n zPT*otj}xXbQEY4b;{?dnSD)9S#2jO> z_D#O$nYPu19;p2)IgGU*`{G^IUd3u~y9jeOwwoCouzt{?b~4BF1_!~an@PuyAO+9X zeZZ4+W*kcw{?k60pwA}#6$uBHo-d@{gN5((T72fe{xARf*R!n{W5dnHMUARTP@=A_ zhYR0#m)1*`k>l^TKtaxquv8iKrBc|yftr>_gc>}>XrOY}_nK;py)|V;`UaLhI zXF%~rk4#vdSh{!4lv8hLCs9UgSqUqg19l7)86{_%0uFDAGdJ5gB#TpVh1Sj9Hc+M) z2OpimNUt8+`T3rZ;0S^0higiTvmKGCspzpeyHm0H<~h(5vdVY%M)ffQ~2@jjWDmtvY#R$xm>8j|;n z=_EFAR>Je4Cw)W}&(hMNkzPYrV=!b~J0QdAf0>5slf8LaYX^@;-Efb`E=9afk2_B* zOLi3ARaXKqQ;uu!`+?PMk7QiW+V?@B3L=@<&qAmD+?Jtd!+mpe1~Hl+ zyelEd{m*6fITNs(6=nBn?wUo5#7YX99*N>}bt-VpD*VKmuvN1PLD!8$e`TNm8-t`$ zeKO}MSbHqr(A)6b6(?w0HY)1 zI0?8vBu>$bHFLHsL`~wEDX0NLTsozc%E_nbprWD)EE@MZ&WQG$XP=r%h4pp?x3%nL zH9gQa!Q;2aKYo}5i&O=T-c*Z}DcJCwJ}0NPb^e;B+V|U3Q#~=y5fTV}zrIT6`}uh; z;*?bn_O#AZOdMB=gMD&f?*O35)=^n_&kC-MmY<8OQkYGN{z8pU@Y!0HtV+7)&i;)4 zs@r~77}{v}k0UF74*onmo_??kyI`K|vcA|iKZ_J`nz~3~QVLZ)?G*5mOsWwy&fu$* z?$0XESN2h#UD$67BJp{eCzv$L(&>Zvy}`D6-Yb0UL=Y%hT>`0hwQpDu#b?q?Dce`K z@8G@WIg>h%$LQC)2wWNNwXvtO2rx_rjhI3_V>4}h*a}s2TnQViSqAz{vquuH*O^5$ zjwEroNJd*%N77d-UfXT}Y{wl3FG75A@e$ zkT3>xWgTOJnzca|&HQFkZ8|Dw-k}B3B!1OO?&Ey`^=;ca-M72|CvMF;vO@jLI0OJ# z8O3;N2Htg`q`Ly=xs(QpOzSS%qb&Xq0F9O{w%|0a$06I+CnvCS+ee4Fk~=1T$H6{! z>J_Lmr?cCs;R0<8gzD+l(nTsqfWyoIpSiIhVbyZeN}bdicx8e6$8-T;hy zRpWI5&UlQN#V!4QH|<3$h1)Keks0R~x)9mxf2R7d?=L~x=H$O*LB`V=ntGi*>$K%{ zm#$r+bLjUZup*E{V3wLxuYbG&E_|i%Jy;{dUQH8N0 z&Ri?`Svevz_8ud`3B6-RS&EDb4Jk8cimUKpVZNansfkqfi-pmQU|0QaR<^pyIAJjw zsSZ=^n`hQRk1rylWf**XFMs_0d(tUb5iGr;doY<=CiPKhqv6nQejvS?Iyx*;&Tbj# zzb1sG_ss~calr2bP=%mIP~jd{s~axonN`?IKTzC!A72*kFeMM0=QvV!K2N$3q#t`m z9bn>lMaS3KD|Oz~u2Po4K>6^vdRfz0icWi;X-JIV<4RN+Z3A**`c-@(a8{6N$2jf_ z&J7(E8|#b1C_Fag(e4vK7N7hwp8l(dYK4szQ&6`0}dl*xcAw4GAK|915^V51Bc;(E`T zh_BycY9)I-ssawobSq8C4FzX*jUpg=PPN_$Eu-2vAu$u;2Zh!n_mHb^rcU7!r=}{Y zu0Ph7J23?Z&eD}p3voe_92B^im3T+5BFAhr35#C=&Q&!DCdf96Qq>j! zYB*y-p^QX-sD#%@wiQUmQ+i^~W>h3sE;<6HD( zPTXHOD~-=ZTO4a$Cni$2w>c9Zs!mR+;_2#Hs=4liGH)Fa+}bNjmDyvWx@#S%=dES1 zlt^v>2h04zAZYn>wQUF^%3gz{Yd4HZTU4c?$Wqwom}N>zYa}1WfcjI|SaO~NWrqyEq?XSx2 z9w(QTN&|WVP%8wzxF69jpvrLzP_DU3HK{*%O`qji^U8(zeusOW6^J&)FY<$~_Q&@E zyoi19()QErHmU$X_9jv^h4Gx91KU#+5UT1#f8WL2iYS3(!c3VgTIdODt>VI&LNgMH zn@Ax?!aq}ZFuu1v_GI!{0FgdA_ErJaf4$A3WvXvgF~THud9~K%x#7O=tS82IbD@CX z`2rlgRG(`X%JDOZD&KAOK08st!W>rld$-9LSTR$A#S=1dLSJF79395w<*8(~0x-th zT?=!C4=9|75RW8mmVG#MTcTa%+>*8&;3|cqY(L0I*)_t7X178thgu0A8Ka!%k=4s+ zVF3su23DzEn}F5Yo^U!o+RXSXLlMZm+?CInBBca!pl!1-xA3#}vv7QcwvnR?P4YSG zamh9=>l+dHeO9=*NJiFkZJ zuH)14uJg&mo0A>>r~miA|MlY$)sXwOfzR^s{fRz|Wxj!~6tq8=Z9%1(h)w~4OT@yo zr;-Re2IyW!>)2V!{Q_Fk2jZC3vmk}OmC?|iRQ%eHqX)XBr0~O}L*?pcI7vIo7>N*D z2z{)3S8KCzV{`BaOXE{N#L+hr4(0bNDfT9g2lQR@`n>UcC?I35_g*FFWIp;xJMn|$ z=kIcKJ>hYZvPnF_4#+c-ydmQIU;p?@WW2IG&I-};T1ge{7FDy-vOmeojgnjUv&Oap-(ftPUz8yXORR=~6Me zD}|9)za+rosy73^k@BHAsBK&$j<;EUM39~6%L)4MC(*I;uKe0#8&z`}^aE+?M_n>CZ3KoOPIYANhRK;1sTJ_4-qQC==vpCt81i6v}^e`xi z44P0hOaZE@l1>ngYg2`12A~z!b=M3v?4?Y?JL*Yl zXdj2+nSX(@$B_Fo623DkY1cZ}gTXS`2ODP5K0Y>7SUv0=^wT@%v+kMHkY0?vr+pd~ z*Y}uh7OaxX0UXa0!BhxQ?W(kf5K=oB9a(7@eTlPzv~r5>dWU!ufQ)rcs@px*HiF~t zU&}qtNTl&s01@I$w>9Q4&X_yvkuvebc)lxDcnbwdwnNmIGNtev1%6l&tU_biFGOb? z_x9AhX$!Z-v$u$d$7oEV2{}1fSI_qC!ELD}fifV+3jW>e7GrvrwX45I-&37?RoFJi z6wd@LVUHgJz(k#aNc2MBhT=b^eEs&vbq|$5i01c(g6O&$K`!V|j^`La#|pLk2y%kW zVl~VK32jtnL!p|EP;+gswfuS|00DfUe^7Q8;z=PWwooaSw({(X?8U$+`|zUYDZbuB zx%QshHPY)%wCHo#=W*W@0^ztL1bxwCE`cBSdeJ7INuiDprXM4d2-Waqeo>vIz3np* zr>Tp6gxz9aT~|VNs|D>(NkEa>3E$I~j?9xWaWJ#Twlo9DX?{r>EQmA)ux3;^5b}P= zelyubCyTCB6EIl*nZ2}6b;TL|boItJAoiCFTu( zQQRsD>&a^Ti)wduJU=BX&Hjv4;l4)=j>3k?ab*_5I=24Ug*C;F@aI$Wvldwk7)`S7WCx1{Zimp8TE z;5jH+M7(-^?~kv46jM(D;?*+r8Sk<~uYI#97-;O=Xe)4z%Sg*VVUMGSwyE{Ut#%RL zV?Oad=-+5B`!hhPzkbh@WSc3VB`3k@6%`9no;6d-oH08OiXcQ4$_jwZ69f{ z(7H8@i^W(HJC!}$cf@KD$7DWKdIfkau#kx~!&b~TDQT z8k1k&v;B}k^ZDQW*MItTUOtuI|Nb?bsxLDRmAF_y2jX~;Wzw){2KF9d12kC44G-I= z>kxfIr3r>c>STTBI3GT4HY=nwUPk;p$1dLQ`?s&@Q142X<2~H(64x9(4M3)rrT559 zQ#SQ_6S}E>nryh)OArm;?rn%e_n~AY0^lc0Vttm6R>1EawA!gZkkU*8yQ44L9~?!l7B_Y!YWLO|PgP>fN+aMXCKbv$r6w z&2sM+8j0WaET*KCotpeM5`;`Vugw(BPJwh#Vp=qV z4$1zDx=gi4Qt7Z>>zb;XURMMZ?#r3yuF89JuMQo}O(Q(|VLvm_b`bKEK#cFfUsNl$ zv21Cat*{FRd@|VzAZC;3)K6c2f+{t|Gl;l5uo`LbPwWpGF^d>DNPGnkNGH#c7Nu%* z%Zl~dk3Ncl6@#&7g3ltv(tzNeC<)>Go?=Q+kcn!%41n&OrFoEBV})uAK0i&@E0jiu z{a~q(<8<89+VB~)HT>EAz9LcPSc45oMpQ38eYztKS!N28e7+2Eo!O5ZsP)HoC4<`o z>q9!S0<}nHZ|oI&JXoHsGqX;V-T0j!hS{kRb9SmFqZBAAP_b~(}C{{FXX|9(RtvczoBLxN+aba16|bj7Nk z-d$Bp)0Y@@R8@K=RF@A?lOhNUd+3D2LLjb477{&R8r z2$Pltdy0ZxEBDv+>_YJ7e*etsN{jvWey#C|ed>9SJnIXp7BSB?_E!A+xc*+IH`w5) zF1mLMcJ1U|dYAg~fB)Ox<$ts`m!Hd#5N{NUIF$THV@Gn^t9ZB5qonTUZt)DzN?P)dV;$`}(fFaW8biroNW4vNxndc&iPv`q;2r8WTDhT`V|*nfZ_V*#j9rI}!|+a0Xs;7UCU zEfe-z>}3nkOlqU?C`2Y{TUMIsV|xn*&vaCxKCpJQw_T}~_rd3nb8*?ixVCtIYN2fK zA&X*$eLu6%WAKM9DXi9dP2JW|d@t!=C}4Qk$P`zR>B}D+tyK%vTIJ*1zwJM%(Gt%$ zv?5elb22!I0Wl2}RTqN{dO?9d;*?PB50;^->|}*a83Qsges(s=V!Oh)$?bXoIhA-MwRxO;4LPLoV{RVUuj?iF<|4FU*#Wd zlf#xxQdkD~8L>>*y%3hWzG96mgqbn5fXw^to&e#g1dbCgx=xJufOCya|Gf-$!sDIz zJm;h{d*X-B?2kpMkv&S4{;u2{-w)pvK8msDGc|Oc68($c4VxH1$Ovl3y_3PR-BOUMS8ih+1K^(j<$wOSzwSqDu(cHR{+Oy6!2l4W$ovDfd~Qh( zFsImbnbKM!pEo55NkLI{)6@}`_dBN=&Dpn`C?K5zl(YlA4`?C_6Avu*!9?I@p&2Qn zy5zknp+?n0&dB`-4uDKKiJ#q;dlx^MXuwaso}6(>^~XA>ingp=HzwDb6;^8^G=C3@1!-5G?+smxML?0qFAgPuHCr3r{J-@YYZoetUSKng(i!qk!!Hly$ifcbw$ zaUFm%kPw1-s)tzbe;6%0yZpFOlBEC10FGaDtg3F7j+Q%N)pkk)mPx;^X_O21>+}u0 z4#=z$Z}&ASU*dJ1y%*N>u`#J8nyTUMN(z(qaJ~L+HQuw&K#iV~JqLK50b6H_na&6%fg-dhoAf{QmhJ4(y0Z9;&W4Rvaf% z&>}!Pj{uoslV3>j<179|Aml2!g)$aZ>Oh?;9H}z7?<)4s&MM_B7Q!TYYldIz$8hBQ^9mG)dhd#NaANO!~2QBD}y`Fdc z?zwltnOW3LB!AcYMl!xG^miYk(M~!S^mn>{F&AKS28CP%FoUR(1OE83I9vog@!Sl$ zR)N_OWXImIcoELO_Uc&Si2FPSF+i^go=s^f?vZ{*y@Q^aT1CHfPgtyzMP?W@vKsTt zFMpE15#uDN@DS;m^O`JpWq)O6%h-Pg|EJ)s)v>oubi~=BH|I+Q%D?Bti2lk|E3zsW zBds|W&%JX5un8=gS`2Zu5Xd{v1W4wA@@(di_mGogpM_+}s1n0xTr%!5-4k|kd1XVn z{lmgKWO%rmTC{E&rE`)ovyL3PX+A~#`~cUb{fRtJR21tuGR&@VRIK}+K)rk z&j;YhhFJ}UMBfdjPhw5|$#>KVWk(Huz$e|}+GIPo_n7b9s5j3|~e4VL0{HRF<0 za-KSnG|yc~)q5cYctq>8*py>YGfpPO2Sw)#3DitK2C=7k5LcbL5SvE{x-Z#)9P$yJ zx=0M&uIKpPv7_(Z2^{Q~`Yp4%s(t9To1|nPOzI4{;;hKlMetz;rm4!MdSXP&ahFa4 zE%4;To&u+Oc(uo^P4?Shq2F&;F@$!3K7W>Pt)v=Aq0Mpl2@U5|_LfphUJ?JlcGD$6@wL&>qsG*&NMTkyONWJ2iJA~x7Zx+mM6tyN% zwrT49SKiEekVY|@HltN8xsmmmx#mioYE^^tflV~eeYR9A6lN7!C}DD<)!fL02R;tG zp7ju%92tG%1D4~F@#r*NCVQUC$NrD5>g#LvT(3pK8{Syqyns$@`wN2Y-VKjtFgopi zO&SFCHb}VXP;U;ChuV#pdOBvQ@{LsEtQxl70PX|Cs!gYJ8#$wKaFR)&!lNM;SKLYu zp8Xu{*jwooj?p>lHcJ`SVU-%15qhqr`*dvPs^}0mp`%A$JE`FVwM#F|JUF*h&1$`o zMHRr&rE{W82BCZO&e%JWv~gdx3O+|R+}IQreGIM;jiNMR+Nmo#frI)(lT zS)Q|kVjEE<>+YcQEbf8Cb%>7EqQ`TtNk^Vl#hWFwALDNzjSgC0&5<0F&Q7QRpX!rz zV(-y77}Et&x(R=?3e9Vo1dm5WI6iw;H9wNb<;J;iL7Rr4KvZZx0*MZTAL|?U@x=FG z4`f#-(cu;)d=A9tM5KGg{5X&7d&*uXQSM>Gm8{sVbfJbi1UXCYLxUov_F?fvqe}{T z&>fs|ny*UesQlEDPPHfjD0MvDQYf5hb9^S;JI0`_B{FNNG9;~Pj&0|&RP6^=LonOYUFmQB_ zrGsqmt8DXVt<&{nTkl8|DtoBUGXrje!v?ar?@W&sQ^tA+xz?m^!v@LEr#OlPx@?#4 zs;E>Wq#5L!fzwB#_16*9wb)Dgxz_J_q*OBTZUZxc&&6QHD0G&|W$l$(+~eVC3MCWP zE_TLyH?=)M;>L68=gh>z{!IaAQa!u+c(2%-j^D?2WQ?OYCmC!4n>{$_hE0Q zdGNC>Thxl;sv=Ou@uI=%L-8t~r~5m{e!-? z$AG+#d9u)DOXkFp0#{W@?2^|*Af;q=&{flAXx~flMZL`fM`<95Jmt90P7Qs#-DFf|Asl-qmrjo2?{J1VSe1#39bhg>^IX!cq*<>-0E&(H zapXa5&57fZ6kIDXI{6x9*b|Y`1MopGH5C6nAS*@7lfjbuK~a&qzopYK8d1{VmXx=) z5gZ+j4dkh6W>6*;^%+!E@Vbg4H@sEPY;3%a*gQi8lRcF~BI%8v9R1f#3A*7i3TP}Z zo7+R|e{_(E7<)6<9#mC1dcVH|RsXILJO{tUfoki$0E;TAG%)=jPL?&VHJ!5qA>W_r z0+=GW}{;eWl_LnGy$weBqN$I#W<{j=h?F(Wreh-LBUZK;$AHj0xIDw)1C1=l<1hY%lWTC z?|IiVX}Pu-5WXxq_l^`gsd-A#_fWe44OFid0L|B2v03a2&((9U3k}|!y}5L3G-NrC zto1dDgabXhNSH;XIX9{J&Zq>UNBz2&+xrdw-C|vs;bC59o7h8Ioa_x1n%v)o$*XQs z38MN;PExy2>4Zb4BJ-+bBob+>3CF$Og0^!D^q%5Y08k=mj7mUM>d8k&<+vzebVW2# zSXZ}}C1+9B0U)vyqdlX;90fIU-=x}bDV`N<8kH;DK7Xdd`up6k7WI;7gdP28>nrzv zel-G|yPWYfR60Tp+JJ^p=Kwhvd$>mn@KeFOTO^e96R4U8gfMZYc!>a0K&-#{;dNmj z9fW{p&FJ-*qaM&q^_IQ=*yAf_6YuAd`8@~Rm(C7yrLX>TgnA7Ay`EKxUDLUC_36}l z`gy$s4wZqi!OBBGaM;WMU<}IIc9@M}|6>N!D%D&AfbJ)>UG;u4Z7bf<)HlDMsisbn z!HQCX82}Xk7M&SavvB`Qr>~95=iTP>K5vdKYS&SKjTr#bS^nGVxPD*zaMPtZ7qF#b zGANBxS7SHB$ZItAPi;@nDx`h&HSLN=?A*+3GKv$xH<=3R>pGcqC~C`Ow+h%apbB6_ z^v)j>RwsEQXu$iK1jcnSD$o$?E4Uk9Y=fe(NwSHm?D^D3Y`na#wb#U1wShW~eTD)~ z)R*SO*6|_V)3%^wHJD)Z^b)r?W|&f6wfW zu|vDwTr=5oVsDD4?fsZYAW^QadaY&bv-Wy$G>%nxTLQ_x4}&O7(vH`-EkXYMCDHbO zJ09I6BI;{4K!g}pw*UFu`Us#>23yyp;hULJcRMpS^BufTPAmjmnj~+i}r5?Xg{lNSNmCy7jqQOlzr>7W)m|%Su^%zoJGbF zUkfb`nQ)vXA7cwf8}p#?qbDD^(XxNCI4AaP;y=&d7+ozyHi} zKm1%9G6!bS|6tb!>Fy_{Uy06tl<9uLuh>{%d8NH{`bI3mNpxSQ5a_~57njseywn!O^E2)*E zP17o*>mHxS4*!%*>?U2DtaUspKn)C&I*{TK?>SYF>Ioq&uoL)K$oM< z2>TR0@zHbiloGFJG_LMRt~I|m_82>Wh}Xng`#GJmt>3gqY?D(YsT3s!r}PcxP6e$D zuH$+(^`xauF6G5{K>X@{OAs)=@0sQacAmX=ZXW_<@7)ZDimOQS*`@c>w$^8E+rN5$ zTePVZ&(G8x!B&Q(wg+R@o&X3XRzRt}<-qMT*$OfwdfTAt%Kl3R;EO6&hlE@R)|MCG zIL;c+o!Y1Z(0MS%8RH21WP=Vji;20qr%G8o`FLZ?UV}pYk8RwxaNdd$el|(6@I1DEsqMiGauDnLT5wri(kIY&P44IMXLdH2LU7NAN!@#%>GfXQJz-^}v3g@Z!8LkwY+ERza6kQ9( zIhF*#8gcFrPsZ71-k@2`Dv;QwEOQ@wNgI2*j;PnrrkDw{LKN;(u`WXV&J&~7YVl0; zoK~UxM%=U6=FYe#1JhMN>q|T<=HVvh=(>!01hvP!0;o#=c5!}$#8$S)g~T7h0jSqk zYCNzVgUl7=Tt)s^2j-`re!^Mis40GK#J%%B{@?!(zlK6Ez!xP^7-4g=Clrdb=rdu4 zzdyUk#vvs!XTot{kc<^Jv#(N0g-YzcYmj=$1Y|>>+_$Wh#o_(!@4sX|9*W8%pi8s|c|F{@ZWj zlkbUQJs!`j%y~10gEbOpM5-sbO^R6y0)j|t_JO+|{~eCVgOkTuZdo1GLpJ@`2z4O3 z2qt7GT@|!it&OP1W!TB%;9nacULWh^u|5Md1B2&^sge3q$p<&P`U;(_ww5AS4!ROu z5h7_&Ba#`=6}8#pdtbi%oIy$*kV2!*4mSD>wKIF@+;42oyVay=u$SDU=)G3s{HkiQ zK?5qE&FW3LcUoiVN~t3n9PjlU_CkFBPrv+9e*XDq9@3;!%(-uk%yv|GD$e(989nU$0=*%EZ&usTASJ9ZaKdPEz(1O*D(>mrGa*7?9QSZv*ju)6mMelpDQyOt_dVYCy8m!|djw(E zHGldkdS5@4pa1md@|S=3Yk9vC>qu0-K@t2)q+$)L=*e=@Zb1kz?sf%D`}4$~a!ybn zetds|P8`oK?mZk21OExMU{F~@aOq?(?Hc!fB}^rPnk#7yRpBWrt$}3LLSZo}tjC(( zMXk4*qAO;xe=Mc~AuOFk?wvbLJgpNzBZdt)NhpL;yJ@D+!uUGPh1pSR6qs<$&ZxCG6A9!8BV zy>dat(mne}$1hg^?F+J^sDQEqhez&lBuWYfIX+=euw)nI*vVV1y?4#_y;pxYl4V!G zXM68`Y*v!NLClVvJF{jSr{m`lK!PhEasHgp_h9bCUX3{Gw=3R=&#wZvsn|+@z@LkI zQ2$uiNLD#l_L-HEF_zao_FVu(c!mdQ&>0u#Isk;jPVQs@$j`>LSZJ%sw>~q7oK!Kn ziS5G5%-PCIfnl7tJ+DlvtPJ}N{-6stKD5`F7_?q>pQaqA6zlTe|J#3q2o%<$)SN2u z?b{#PA1!T!!KU=zO4wriE>f9~z4H4XziR>npWPFB17uhreu4JFdVR)+iVzepJhj%) zZ;-vfy*}{mk?*O?t{eo)jpIAt$Y|n!-_w%7-rz`h=(`(ru%@~7;L>HPeYXgO? z>$w21mtFHzky(JMN6Ua+<2JljN*9@`=rKlu|J;V(p?$X{Y7&4zuqkvq*MmR={>d5$kS&#}AwxCTUeVJ1sQ{ zLR1jB!qQcYBPKG-ab1_8>e;m@;txQk0NHCv+ihk||YYz-10qXM19fPYVe18J%zaqP;LC|=V=V-r{Rh%)iH zEBNxJot0RPHyU3acJ4#zd2==}k$61^!|H+QaVTBs1KL_^Rw`}SoFGK-?h?2a=AM#O zC$e}Gb+l=~b<4SOOxmo{H}y(b<;Lb*FFmY4N^ke9@G^&%b}AEN)D(OV$IK+^7)K`2Nif-4e9shYw#t$XRzDJr4T5mwFYV)7o2#=+@asWiB2cH&LQCGFCxq-mrN#y>%#FQ{ z#2La&j{|G*5rS4H#WUi3eg5=@V4~Cm_AUhNK#Pe0K-I%YSU;}d>xruCQ}bmDs-~t3 zan_^nS#u(1(#;7_)kKytlE?s9ePum>Nb5jO6z)W0Yb{nG9I3Ak`p3YR$=Z~`tAB@p zOdmuKYU~lp=l9}1C_B$s2PT$%M(-}chin%qO-hflwS_&_u38bQr69?2dso0}z;ETq zq7p&ZN!suANblOi@l0wk2&kopz>F2(P^f26pZ%3A% z=8AHjNvD!&1l(s2jFN>!tNfB=Iq@^YDZWs}u$F@Sl)(?bm#ZEQlnwBruXXCGrP*Vr zYeCW!cF{nCMBd^aKLgZWUhMcbB>hws?y9f;-K_KtRb~UxRldVuXi}l0`nf&JNUep< zTdjl96R6ve^u_ZU)l9S6e)K+Oe5Tr#tm0p4zfOpmEY|L5881OeR|0IM))c*QAD_p= z(Z_H=E4*xD%}9_k&I08LNy7N+zrJg{$_DY1ZtA zn*h|#s)8Tq>%92Y0DbKsJx2q%g^RuH(e~m*!28as#0kxbRQanAOls+q*Kmb`iq1wMH$q75=Ne=+Q zAoeNtks`QwuT8}x#y+#eDSLln2p(D-(Xs3AQf$WNFRz{)^(0*A}JlnNj$W%DHIF)P_ zpVw`8E!j0WZ&=R;m`-ci_s=-=O#cb(6fqqPHZA(MZNU65|MUO!Yt?+!Ndv<{gNhqy zym{g8Nf&lK82xJ#jmG4Ir9KaG&e`PaS#+qV#6#Z>(1zn;If|rjs3{Z6KJ(GZ8WKwN z@HhaD8^@tpsKSVa6yG5GZETmq|@}p z9Iv$RLvT&UgV&4728zSpMKsPq$+%^qxzop8Ddi7Ju8Wgzqd^W>P37Twt!WH$@O zr+1_Q0vuMYXDT93Q}!z2xeb*LS2FNcwJ#ZbQLLk>&zSo&UKE7dsJvoDA|Ya?s9>$aII}v` zD^XCV-A@ECF~>F7BOyu$z^h33Xg~5?1qz8#H%cTo$@fEKDxO^t$a84+=)NVTt_=xA zd?6^Fsh(+NUMG)8s$>hPOsdsl30~Du3%{J%bM31Bq`qg0V)a0d`-lNef?l$p?xAlw zOr*xQJZl`(z5@s_NCv=A!^z>KWy4QZ6W|$keq_T{ZR|d%jQ^5lCiX6at7A zw6rE?YNNii?!5*z*jO4zlR*^3+ud#?Blq9vUt!a>;!_?a_wt-&D zxv9_eMd=Sju|tc+(uGLIAj?&TaWul1^u?Fg&y_hR#RR3_2Vd0v#i?g!|7lSo*s!yY zdgyk)6)S|&#*)ntul0z!HPx|qyse(-&EB#|qkUfAXRAQmPCM)^0!8{07TFOPbF$(- zvN5<1mtuw6Gr)}k6GQ?FiXNsCFmc7)I<2&jX)Z!q&?*T9b587kLtRqNQRfI_` zhSC(*bwGSpVvsSR>E7kX{cOYNp1Tm_!7NlBKfn$H;`p+tp$w1SeqPTF3Ne+Pm zldhvUHV>xDqZfy~|7!Zm>E(Ih85txNtIi2DlD1>-wAD&b40~&udVAKej;6P|U_+bJ zQd=bpDw#yhNlSNssgp(CPn9s!l%h(rb#gP4R#QNO#WITvkt?P3h#IrVa+dFmb4#!@u2zl*%hT`5hzq@AK zHG(T+GH3unHJ9R1F`Gt-j-Z+2?Bf`Ku=a!KQtg^7E^N8g!q3(Dkbxfix~|FKi6q1H zkFZT*@QmQM6Z?61Pq$L?ebnX>j<^}ojyJvTWp8`-&QKhM0ZY(1thTrFMck14-V?+| z#B?$RQ%-v-rrJv3aUXokpx#d`ij45RkY^yYD_^w=^P|RLkgD36{a0g^gsegnU|cuPJCJFMU_=X^Hc$ zRObzDh1_x$8Omu86Y*6v9hM^#(=)4&=Sx+krIYlbY%h)HUN0htXZ8zuyao?Sc?qJ5 zzVF^$ItwSjQyN9@k8YSwR=E^pOl`_!a+>B8l4?rku-{M8OhDh5rW^(j%C;;G44L=d zOQoJhB}R=A@X+IUu?+7-R9EmmYAB@d2NbNGp=K z`1?ZqjwdUkX8~$mPqqV`LQTQMfI?z85CUvS3e{iN@T^%Km_v}Kv^4Ul@J8||Fe56S zGqbm{yi@S4-LEwcTL83tWuGaW^A6N^E|X|vmG=;p)$4Pj+PVb*aNXZo_bbT0mD}5j zN-wF{RvVr4%IjXD0*k#ZYV=iUMKXT-bgj{+s}g+eDqu?Es^(|D95#QLBXfiZ)Ay#G}iGMYC(%zBqjwtrVxi6 zisy7F_(S5Nm*EJ+_tcW(1cV7j*K9~TD-gp%fnYXFO#l;rhSs5}f+l8rRZ4jQ2s7~< z*jD!6{z`GMql>&GU~>u(tG!2?blV=7SuoGvi|5Xsb@~HW^_`U1o{@d^6rdvzQRB?c z!GFG^kH5zkXv?_n86q)5(vE7oz&0o186fIDTJ1tK5eCiGeQ+&jeY>LQ3c7u)t07h^ z9l>q`B&Bv{mq!(Wd7>hLd+~jpaUH0H=^3_GikUWimS^b3y0c@nb!~iWB9GJ)r_^mZ!l+U z=`W+OGi!X51Nmr)nJ3Xh1q8%1MS*5a@JsJAtkrZ_`d9-WnWR>Y0I?cx*)tA;9bQz$ z#FUH6PTiR_L2bA6@rP>`a|%G!80Y1YZQPgbvdx=R_|-13vNea`^F!JPoykWg!~#&T zB^WXni)5lQsfsi!!y!D#=i%7QXSHOZYlqhZ7*)$lBIU72V@x(qbr|iBnL3?1KP9{f zc8JfWKp6|28MNr4q*IQVGGKF);<3N7Z}wE1ii$Gve~!-@SW`SRz8?c1ILD1=Etwq2 z$kEwE8_Kif!&j2dHYtG@o{3y7TGi6#_&R%0$osS8`2c`qp}Y9sY*3eCh0DTyYkOzG zH&^?;4;>dcR(Bjvf3>Dhu+171ZpWpz3-P{BRQB0w;(p@!&;Pf7`zrg zQgZ1;Fa%rh*z_%~I{OQWyuHTI+%F5oMG8k9K#t6)oTlSnpZ~xqQo|&U?p4cp~CjymN3y(_z zRu%ydbOBCKgiR--B>tWwczEWn=U4C7?`;sM3Ps#-THEvcl>moGQ(V}A1Sg)yCk*%Q z!YH88HT82g*KWGF+jz#HyjQ0jM|Be;!~rRtOwB+e&%1hESM4VQP(isI0it-n_v?FR zK(GqhGC7C+RSyk%Qlkg@ejjLd6$!YJeo({rErst`rC3w}B}jT|tW>Pg?N$-6#+Unt z!U|wtUVGpkf1>{{()L(uskcH5Y>9-By{lCfqqvTs?|C-0eG-B|1)&l1zTep^>6BpdeahG)jWPA@50-wNHmlm-=O@`YM>ctL0|& zSF6P0yngW>VdFrLl)vzZCV%t91Ne|@D z)>Ttou{9uWD&1|RedU-9o`tyPuyc-mDmMzj$(4I@OmHdKr}!(L#r^hSH@28L9^rE#`vJgJ0Csb4QzE4>m^&;O#G^Y72K&9hV86=% zK0YHv3F)KGRL9-521)0y1QBB2xu14f<~#>(XL1EIr*0@A2TMNke0%%*1L*EXe@m`>d$4zf z@4$eHJtS28h2c;i&#AyZ#0_@MSwmmjV&z5OxVZb*hWzyYNj|xp6>tINCsw z!vICnlXBkI&nyDr8BZ7@t)2r{A>%WC`Q;ZFsXoquPT2wpehBe@*@R` z4th&N6t6$@oOIstJIuNQ)wTlQ?2&Vs~QAcs-i?0-GGGF_MACq*-^C-y=1 zjg?Nha8Sazta}DZ*xNR|5}@)m#6F3=<16-<)n z!I4@`&mx4DKK=9wfeX(wg(etiQyDbu5Hr+jpZf_BkH~V?<&Hng^&V|6QgIB*WCZXbOm#Vq=IuzQ95x3@sW zqXM%tC?+Z`lw5t7cUAZ3dbU_rIt8SS5TD=fR_gV4pTtj}IjPhcpFN=?yr6eIj^d636NRMP965;DPIL ziA&fk^a6inQgc$+Xu2w7_xplMS+D~h@hmU!b3V$G> z4cdG3a<|eeSw6clZ+DY3kM#}FlStkdC2euOAZBvACqw3;zNu04$M!w^+E|SZU?Bef z^5qN8@x!AdeyBVU{FF$Gp6`f$<6M@KHpIi`A=o5!{ZMSo5eqZ>>RFjIU2;j=w5sy^ zx4-=j@BQVcFPVJDeZ_OPDz0r!oU638`a+CQORAv5Pal2Oy92b5(tC>0V(`r%N9?y) zFDI7Xiw?-jV2|VP5J4O(HgVnYdL$%L1kUj@)#IQ_o+SerR%8D2pZyS`R|&5iMZlBTQvn(gGCQ;rPmecN}5P0{}L76}6*P5!~Lh^gnBfO5}T zcWX)XzsK(dz=gdmF{x?lvw_hM8qeS<3g|4sx*JuI$8lgNz`6xZY!z1v$FmfmXN)C0 z6%XDZfJ53QSp$^Kg+2N}EZXVAWLJgngsACbQ)QGOKSnN1 zN|d9}F;6)y0(%9zD2z1?9=I5};O>=- zV_<)GvXAZ(fr{7hc`=rV&kGfF3j)U83f-G;*BPPMtorhG_V#2W67+LF@M)Vn{M$26 z;d>!$+Udt(&*NTh5^Xc3H_p0sc^pfc0W$tsb-p|JQ!*#8%CTc$`quvJ94lI3**4M% zGwg3Xvk=*Idtu@E4)zJ2;Z9+$9E(>8pOPuuDtO7Az2fJ_fk` zny+D(|Mma&KmR&SbReLxHKCFlOZ0X~P@^qE#ZPmU-IzXQrd;80A4oRP>*z9iD^lj| zq7m$y^^n~qg*D(9>`07=l`gFu?{$;2Vu0RfV)nU#R7HG~`k^;%9Gp{|DP_Lp5J7#K zEjeA%@ytrLXH_9MqwkrCs27xukB`IjT=p!*&(EYP6$=g2nnFxI;GE0Udr@Z@_wH<8 zDZT!;Q41%u{=N|#S1|0H-8<~6ol&;25|VvarjY5mj7f7=H;2PghyB2wjXkf?ocL1> z?EV}cq%$j~)HPjg4)s~)1608LSpoti6G z91Wy~{?hwo$Lf-UyrMPCzQC+5bkw#~i$Ha;EbqS}$89Nk2bx7^!q04;`gj4aV?6tF z=uf7?+`HyF@~m%~h0H2h&HjU@6t!)z;xZ!vY^C?3nEH!R4Z)(_uH@rmzd#o<1RS7X zcd4pQ;R4cf7#wdx%}>y3!%0Unu;(BN?%1{=cp!P&yeY@I6Djs$d`LXhbo z=!hbCnH6N%k(X8y<#iAd`zHd8sAjH8JQ~jV^}Z2!ogAa$Ue`#G0ko)R=hR+`bMo!7 zOA&-bvIAzz9O&Z$0gmtA9{>PuAue?f72H*nW>+YLdKS{5zy1EV>wZ73AgUIs=8>Lc zif|8N-;uPKBDz7=pGvaD=&jBzfR?D>C>h_hzgAJKe0HpkDg>r@rndWFZKJs6b3QMh z5uakyv?8#6e5lGZbKFMQkKcd)<64&wfEV$-aPs&_u?D)@xGQbk_whU1*Wa-prkQB- z{e4As{R~=XJ+r#Cq0$$ZC^9*!+_9!Jo)IhU0R+T|rvv*X=!3_}zE1Q>PCnZQsKFFw z5#3XJ=*2GI`16~<&ZzjFn%!x8?*MC2AY+PE?1f0Ikqj%~GDy}(z16HtMAA78m5I?F zjPrGE50{~0VSAOnL&*6_C$=`PSM^#|^9tT^ob6j1Wr%q)vXlTSA z_o`7io||g`Fur2XJGdMxlcuzqHRRyjAXm|vxpHH6Ppq92Nc#lPFEx<>Ap6W`&v>PF z3iMPpgSn3?Ngr0bK%(t-shxG>%JH^yyaxRt=Q?}tB>G~vrxG{K@>GR&Po>YIQG!%~ zca@mWWGU8^@UuzZJMo&#;6W0n%2O(hD$pJUs;bt}l;%iyf}v*6<0e+wUF@_|K`KXN zl?1M`1!tOv&**vzrqv>roXA*nQah8UDFCY_%@OD3U=?y#96Kv{ifS;0my|r?K3R2- zN+$Q)0`S!FuE7{keuwIjd$;YMLnXe8dv0Jh-BWP1)`V=lbyAy<>5!$aGq}GJChCILPTf&mE1=o?HczrO*y7%Y%MTowkfg7 z8ML+L8fJlEs#!$i`6w?12GjW6AM03kE( z=h9xBDwxeyKCWrgEoA6Im$g%}fA?Sg*Z=TqR1KikIcqLz)66GTb2vw7N$FzKe9h5L zs#sNTPN74!JU=(plxRh1o;!KV1*5a+bJ9jJk0R#<3Yuxet!3HY8_Bc_H-aB3amRI= zu3Ky8RXf?pYpS)Ep_}_q=hBr85J*K`+J69)Qi|D^j)_@wEE$OWIJh45V67(wQ*Q+K{bb2oBVK#oJ|-3;z8S4@lc7K8uZ+h^zB*I(2(J=;=B2KZF3<9Ei_St*r599jz* z);`D5fK3^c9How1dULyx|E9$B(Aqosuz_dqm}ePQRI_64Fnwg~SIU`lwYgA-oErLco#|WV1`V)YjK&Z1&K@gNY?Irv> zUbm9&%pvRywr*Edm4Z!0tr)D*%rk>E&VTP}t^mBCR287W14%m81eFT*=FmY;qCoaQ z#OrB$W$}{koVkz3q()qr4D1gDRbhvp?s03J`)WZMViWz$T3wdU_#Es&pEqj9J1L1= z#G3e!et}0h%~L<4r2di-;Xtw5kHRrQ%?is*NGozs3#pYn8?%!Bb5|1ZJk-Nx@GX9y zV<`yo@(h3(1K%lo7Jg|V09YEq$pCy4U9O#GW;TY^B2j@{RwYmjJjm!dQ5`F#B^cM| zb#}U(!BqPce4gyvsX!0wA{v~12@@Twz)xjVhqpcLc1YCQ45nz~qEfRDZ6_FAG|)?r zfnJz2yxK>NnO5gy(w{k2QA;T=KG${`fzFU@xf)r12p$c-<=(d6ul8d-A@&*Yo<$YU zB1xxIEZxo{JKoi4YsM39KeCxR)Y>uv)u&iuNhK~d0impzUq45s7XTTnk`DR`-r~6XK%tIG$@?53B4o{q>kNc!Zh73|*1;8=RV>`2rf3mTPaHY|zeaVFqQr?oCzP zNm>a-_GSUq_Eg-{KiA{2{GPCH68ni{zBo{a*rb%pMbEZ)r1e;Qz6}t!!8hIXxs%qC zVu5G2R`}dF24T`!)E*#Bf~@?y>f8kfEi5$+u~chq*vCqsCyt6d&MrC{i7)5VGB&J( zFI-f4$9`x>&M@|V1Mtweejeunw!ooY=-MYIG%?EDpS;RGp(U!iwS&}fi2j{t79%+C zeUY2)Eg_`fp6UxfUce@r@PUa|`q~6b=+HGb#i{m9KUN|gqgt>MEmn``OHrnab#^Al zI4Q$4;`oZsZo~dR1Z<5hhm$_X^mSAtHwnZJNi=7*AE|dSwo5uMG2rFTG9x6_n6*B9 zJ|)jg|BORzYxPCcD=WaI$9lW$GknuvgDq6oM;C4RY`oh%R>*$T50NoJFDi^Sc(flb zd{v#NQ~mh;4EX2QzK#bT+3@mtNyKP+i|DYSN4+TdG5YQxXRcHlEwv`n(v;xXh`S<& z*GM#CSG8l-CUWL)N)>1ZDZ$LDtjFh6^|PV(=Yy1*OvHwS(T+aFmWBuD=HQ^i9XV>H zQ(Dq#mx}5OjY}zG0ufZM(b@a&vA5_2=|G}dUeqC-q#0d9xg4sVt5DuPG};E$2BX$t zzeO>J?Er`h`Yb<835^awfH69zXL48TGm>+ zT5px(X;~$$&BM)GRuC+v*59P0)4^*_su@ARtZeErlOn7us%_};IwN?CcP1ToSv z;7o3qt4XjT(EKCq)@7+m+k<|iQ8#k_+`deVw}U;mwNZI;o=;Vduk{GlLQu@2|1Qqh z`$u_PwjpN4q8DnTfCK{lCYDINb=VG_{ZJBySi`RI9-s>E<+qQoK(vDjyo!z+K`MlT z)+v+D>(cbI)Y#iw`Yo9f4O#XgQl419+pKVecEqxAT_Q5D|FFNbdKOBnjrvmh>cFBI& zfySQNRe{;n-ZAk3BNz+NzuXC;7{J&Rl-^LiZg}o3s!->|q&0lnLUF6@N@{PKi;F&I zaM~;SjZX>8p%3XEK8+%1LB&3(%XKY4#oXQV5dd!G{e>8rdZJfVhdgr`0k9Bo2L=XG z<4*)elLGK=Z|R3@2ll-KVP&wv4yY0w)W0!weOc6l*RtmetQq+(`|)J4wDyu@!#~UJ zLr0*}cKI3;_?#KM}Qn-?xoKwoGqZL}Sq7#}Im%Uov zC5kdh#lIBMb-N0$Kb!XzzSa5@^8j$W)rl0{s&xpv^RE8p*ji!RI3ssg0KRH}J+mUm zpmoZ9>9(**+8<~MdLC$LS;U&DU{~-t<19>7ElmUnOL5;^Z!2r9E3gK$hdz?*8dSWG zQhFhwz_tg|2$}@VNd#y9nw}c>zD!+^)4}){tT$9)cQRKL*Ez<9m?3N!!BuK8oJm{7 z_%qpcSKg_f-f){>zgOK)BG z0PT_O%)~YXB@HM|YSBa z-%fb!jNa8#nzP7pXH}&1fXTG4q;pq_H^lWM1x2)- zF}WWN`b!nP+Oc#r$OrJHnmk;?B!R0b9c@RUjPhBnc?2d(f(9*}R~6cGD7XTJTEUFP zl^`N;Qi#k{p6Kz6f8W*b@vboy3Gxi0P^J@^g6C?iL7{n>U(h=D2&H_uW?*%L&vRik z*OiL++9XUvA&Vu~IzDhym88~^phy57%S_5C4dB{G-+0_r8PIU3^A^%5iz}xLG9YGi zkKV$|u?Ma79($yre?8Xq?VTb_5!8FgI>egptNPohSR0hsd96qu<7emF1t;4JTcv>B>Xr`Ds6Qnez;s>rUs1SZ&VD=x z;;wFmZAZm%whFLRR-=tVfF$=jeFFNA!gsvg(5D>x@cY-_p!^F8B9d=|bWHv+J|U{z z5rhZb>0pH#fNEh7h>X85sJ@;Ssi+am1pT~4b%iR_1|k_Su1Gp3Rc%2F3vrsTn=HY= zHpJdUuheP9a#Q)&GEJ|_xmlHzy|BH3Up?91TZY8f0NEtw#hV1RcG3LCS}CNw&t;HP*rmn>`sp!}z$R2gLBn0$7qJzbr4YPgY`=-uD$j8UZ`n_}J5({@oIk z36)@u>0=MRueAtNjL(nvStV}cb7F9#)b{f1%$o5tBC~7CO8cpEgE2tYo?)N#o@aZt z(AU{=-u0<7yrwn>``+Rn5yMFl92J(?nCh| ze8zg?d5HKsl5AEO?L+7@OkbbpF5>2dfaj|KL@=ving~Q$`P*^Qnv~PtEB)JVzh&I# zGw(e-R?IfBe>`!+AdR+q#+UA6_Bl@-7L4;bvTxV)ThG;X5y)T)!FjUlc2s~ntvAj* zT6%P?@%^vgzV)-G_#y5kGzYw1@w%U`*SR;8mH%#!+z;;RtmAR-*?3?P*N@dtzYf&k zjjcIZxqfah?Uw!dOqqSIIAh=HvQR@=}2=YR8S zZB!$hhoIo=?_Wi|Vvrk7Jybe9{|#mNpaNcR{s@VG(HzRDxn70Cu;0}01+k2ibT+D; zalYeCPQrY2D55r^kiJkH%Da%S3= z6~B3)8%{&DEK#r1s3p}N>pY5Jh>QrB@mr7-?{l2r3 zPX-tr{r7y$bD+B&$37&Ky}tl~zo?Ou46^$_oxJbgm1Yzk9HJer>qXr>S-TulECDN)H8ZtY8*hPXJsF&aFJl z-dgs<24Wv9gc!%NaPkP&?)&#AD3}HX2!s^v8`74HZhrasCsalwvHj_%&oFFfJEb^$ z<6PEOQn-PAWVck^r7ACtU5J>Ge*ZyL$?Nmq-|tWXx1o%Cd2SyFP9ms@wfcB|;CkYF zUw--Bu6l0cdJa_y)sgav1Jo&ppXtYswG5unC?h(1W%_qwJa9(vHgKp>(W zuNg&Rgd=4CW_xkuQvw~K7~ce-aF1?Doit$NKTIsBCjXQO2>_=Hfe!jGX|@ac+W4kb zc4{iWUxC*1TATN4Uj>^Wz=9&QIsT3(5fxeY`^7$s>Ivq&o?NSjaz(HQBJp@f;J2wK z4c8kiA<@H|lCB6!!d^otM*+TBBE@LD=xs)p4KSH*2M~6evif8@7H2I2tXP`>WruEl+}A<4d>4|!GPk)LhhrZ^)|j&1A@-6W`&?L+X3_f$X~`_Q6r zFzy-m3C|vDp~Pa_*sBkP?DNQqDH88?roD2Dj&qfV6!0A^$NBjA=bzIr$GHXdHT`a{ zn1{cB0yTv12;AR6&phP=xi`OkrGTY106gg;sL*T*V zXu(AQCr4%-8UHqc;!av(|Hg9+TZnZioh5ch0f-5L6|Y&WdLWT|JcqGeF6QhO7~{PK zK=?V<2YYLK=_y5P!pfN0)jphyNGPA1D*XiN0i+i94fDLv26lDZuzlfQ&t%>#xhG@% zABtlGsOGbb#96)mu}5P6Ka`I^(<6TO?GD@Ff4f`{m0|32GI^YVYs&jEgNA<EHi~3W}tVkpuu)K&HQ3i}ZFQiW;TqUFwM>8;X7- zq%49N%PYHIAXXBU5FtrUux4@HDf7H$aN^47DupmteeC$cNGyq#o}!q1=>2HKZUZ&g z@5z#SRndlb|RU*2on=CJDK=`e7%CSqEyJnzqV04 zhzE~|kmuah7c|lh>?w?(4QaaPn%78Un~l<{DmbwpDO)f)_c#4_KWy%Y;97T3U>& z44@IGon(X5q}T%xRcCZZ%WX>RykstcYyVAXRog|vaTwn6RDiq+4- zAiBq*Qz9$rdRL_lz*tn5LJcu0ry=eTN$H2BAFe?u_M9wH_@k?01M`5q4O3SQfFPhZ1e#~umVR@^fVQPr%@1)@w5 zT*Tio?k0q-B6tW}!oWe}tw0|Ok(TTIVkFU3ou0s;I6zSY(k;7)YUXWCrC%TB2tst2 z2!^;fF?*dl`srRB>m3wPa^1JyRhEx*);?2suBpUG5GbBeya$8iGi_86s1P3?&Yy_A zlc|O^`1zNgQF-EdAh`Gb7RlQif=`1-(Pd0p@CjApnALj6?@*itz|6i0+!D%*AU4iI zFerF-gF+sl2LUM3@Zxzz(oEw)UuR$e{$XZtZPCAYh8`Ccd!P1$YeZG*r+RtS^BPGJ zl8{G&#|G^d1z)aWI4K)JJ0w0Ell(F8o0lb-8>3BfAMw~9hUcdQ)bD8#AA^mycYLm$ z`sSX?5sbF&O@C8*kZgP80MslaU$+D4vDz7HPIdn7M_`W!pOUt?^?v`XtSZ1W$Z1vk zVmMR(7ti2Of1pP~IDm69V^)FLPOxj|DD=nuYQTS7V?Rez>72ae7^GT;>+bp>7PV~W z0BGLH0D4MzZ4pq}v>vmb=PU*UnNrUbUNN2eE>^>;D*6~#c)dE%F{qA)Et;rp;@-YP zB8UJ1CW`Y!Oa&@oC6L+LDC+4%k#V035A@lL2e9v>%Dx@Y5s07tF?TW_`0G(a2Y{ep5RK;!y zs9QDGajVxjE`}h5d`<1~Q6%9HiC1#U0huASxQ&dXogAYwK3HUz7BLLD-`IyqEf|gx z;@%$xdaUM)XC$y>RPc37@$?8p`BNk(2L440jkVqs``A`O;HkI(*84LzjoP!{GH~bf zkp+vPIMI|?(*CM?IJ3ax>vO&_vLH*XFV#&yL)($u|3lnlHpirV!E?uvo9umda88aW zC1XTVwmD-pe6z3VumD-@z0uvS7d;z(j@gs(^8m-r+&?w_j6orcu$d^Vi-b_?mx7~b zr#IIu^aTLU0!OwLY)`ckbkH@v=V#i)(10zJD4gR02sxc+@qE{P0I0|K9nbb({HOop zuUVd+NZqJXW@<-op5`SmfOUXw#b7v*0actz&!pQx)tmHs8#fGFKf3Cx533vfO({jt zd|T5AK84QUeM`yerAyg%oLROny$=(@9dB=0HBS2G)MuIIW>XT_`SM3rPTPwpjFYI| zFX{eCH`Dv`#|ndu(7G~Vb>PNBv<(iokm+X_$O)eaO5~eMo)O{4VWP98DuyH}~zTix1ALhe1A&-~=QO`?054sr;s^?9(tD*_zK z5DXHf62*Dyv(NS17wdH zX;rGg8BkgJyx}So4^*P~Sp+UhSYhZY=c2lLOu?2V_kpW&Oqw)I-NEkRK9w%t9u;4H zF3)h$b-3?{GyVFkP|K?u&5cB(wBB=WN+AlM9E@oa(`6Y~ngam5+EasLuPs-T?4ywM0ip4*|o z;t&l~;$UJFfc6afTEsv{;q2QJ&*cyWaTWk%X2ke~(I`fab#C^v+se{fcObGcuFmI~ zX)RkV;`>IUz22kK_aevMde?}EQ??_1ylRA1M{Lgo3M~c^4+Z^%pn-R_#m}FA#@lcE zDIjQKA8_+%nkT5eclBFN6Bz*~m;;?2%fKf-hSbBUvSJf-MX*TXk9w=gH0q$EE2RcR z_aT|LVj{(2j_h0YeVU$VG#hC1gFVMlx$yb(@85rznOFx#6PN1arqJ+sFW=lEbBXR>7`2YhF?F4;z*{YWKW zQmGlNMN)FRzs{^Y(|)`P?%9_bP)60Q^*QR<7goIgdw;9f1Z(ece7bLFN~jWMssWSr zA_ZiN2)49uBaIoAs2mB_+dk3{%sr^f(H?q+em(|0m$?gE#q;w#c>8QC=j%#gSLy&R z;kElP*H>Rw_V<1{QiQW6sL_hsTS@{T+-I+WIKS0n4<f=|V!KK2O$_*k!xOIP0;S6CWqPdHvV>LRoyaFqC}zd8$&@+pN6*_$6PgXB1ar z$|)F?-bebrM_}O@)G83UCg@j&_`-g}?6XBI9gC&LULHYc$3J6C;yvc-UfSl?tDIdp zsVDh<4%KIU?!}i(ikyQ?oyC*aooAr-n4vo7a8Y8;xY54NugOB0_JObexpg*Tx4%4r z?)xO&w-@o^D*=JYK#s*tJ(qWgbxX-ub`i7H>*F>^+c3XZQJz*6i}~NPddGc64*@`k z{~lY$_y#W{A#bg(zkOXVtV}8XInUh>S!sPN{IG>E64w9x?|(&ra5OoQA{1oP*?Mhq z20|os0t?q|S3dZ8GOgBQDNa>n8B8GHIZvtjwU>)ax|j|UhX*ft_>N;wbuu>9n-1o~ zCn}zhxP(=UX-ecmBlF*QkKUZwbgT#I0Kxa}rr`VSrfO2j!<&g|>s6YLKs9}Tmy;e0 zaA9I?WDn>W<`jN(#Xcqcb)Nct)H)!0Q&xtJhK&dloSy_ql14Ezfep%Z4`%ibTqr5B zI-g7UxL)zvJ*0d@viITj<8!sx5}kBS<=t-Fd+(Juv?;k3r&@-A@a)-`QpxtUKcMHN zV^WeyVy#Kf^(wmzOI3r=|e$DqK^U=aY|v*DhDM9vh<+d=a>M4vwPM6Ud-kgV2D z9WJd0Sa~1IJOrgh$Q)^qgS$v0ya>>s;p%FLrh0krdoB8jY1xNB8Wsn*uQyhGQ^~h5 zada~6KGs-8B&N8J3M4zevVU6YUh#T3QX#OQmAF5(_FfzsQz!j{8fEQ(&@!k@I%(N7 zVv2#DE=QCa0|>Q>)+6=fX|Q_~D7)nz1_%_4h?8ed@&;Fc{DyT|MS*+ sWM(MA#) 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%0ASiFSXyK1l2 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

2%>0v(8#^L3NuL_ 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 =9Wx;U<+)N|E{W1#EIf&rFAKUQQ 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 literal 0 HcmV?d00001 diff --git a/docs_new/cards/Diffusion-benchmark-card.png b/docs_new/cards/Diffusion-benchmark-card.png new file mode 100644 index 0000000000000000000000000000000000000000..7799bbd2a9a6c6cf9a9472d1c4e5d1a89b58fef4 GIT binary patch literal 718444 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%0Ac^OyoVD4@+-2DDS5Z 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