Skip to main content

A high-throughput and memory-efficient inference and serving engine for LLMs

Project description

vLLM

Easy, fast, and cheap LLM serving for everyone

| Documentation | Blog | Paper | Twitter/X | User Forum | Developer Slack |

🔥 We have built a vllm website to help you get started with vllm. Please visit vllm.ai to learn more. For events, please visit vllm.ai/events to join us.


About

vLLM is a fast and easy-to-use library for LLM inference and serving.

Originally developed in the Sky Computing Lab at UC Berkeley, vLLM has evolved into a community-driven project with contributions from both academia and industry.

vLLM is fast with:

  • State-of-the-art serving throughput
  • Efficient management of attention key and value memory with PagedAttention
  • Continuous batching of incoming requests
  • Fast model execution with CUDA/HIP graph
  • Quantizations: GPTQ, AWQ, AutoRound, INT4, INT8, and FP8
  • Optimized CUDA kernels, including integration with FlashAttention and FlashInfer
  • Speculative decoding
  • Chunked prefill

vLLM is flexible and easy to use with:

  • Seamless integration with popular Hugging Face models
  • High-throughput serving with various decoding algorithms, including parallel sampling, beam search, and more
  • Tensor, pipeline, data and expert parallelism support for distributed inference
  • Streaming outputs
  • OpenAI-compatible API server
  • Support for NVIDIA GPUs, AMD CPUs and GPUs, Intel CPUs and GPUs, PowerPC CPUs, Arm CPUs, and TPU. Additionally, support for diverse hardware plugins such as Intel Gaudi, IBM Spyre and Huawei Ascend.
  • Prefix caching support
  • Multi-LoRA support

vLLM seamlessly supports most popular open-source models on HuggingFace, including:

  • Transformer-like LLMs (e.g., Llama)
  • Mixture-of-Expert LLMs (e.g., Mixtral, Deepseek-V2 and V3)
  • Embedding Models (e.g., E5-Mistral)
  • Multi-modal LLMs (e.g., LLaVA)

Find the full list of supported models here.

Getting Started

Install vLLM with pip or from source:

pip install vllm

Workspace Ascend Plugin (vllm-ascend)

For this multi-root workspace, you can install local vllm-ascend as a platform plugin for vllm-hust with:

cd /home/shuhao/vllm-ascend-hust
bash scripts/install_local_ascend_plugin.sh

If your vllm-ascend repo is in a different location:

bash /home/shuhao/vllm-ascend-hust/scripts/install_local_ascend_plugin.sh /path/to/vllm-ascend

This script installs vllm-ascend in editable mode and verifies that entry points under vllm.platform_plugins are discoverable. It defaults to lightweight mode (COMPILE_CUSTOM_KERNELS=0, --no-deps) so you can wire the plugin in workspace even when Ascend custom-op toolchain is not fully configured.

Avoid Mixed Ascend Runtime (Recommended)

To avoid mixing multiple CANN/Ascend toolkit trees in one shell session, always source a single runtime first:

cd /home/shuhao/vllm-ascend-hust
source scripts/use_single_ascend_env.sh /usr/local/Ascend/ascend-toolkit.bak.8.1/latest

The script now also loads /usr/local/Ascend/nnal/atb/set_env.sh to ensure ATB operator runtime variables are configured. If this file is missing, install NNAL/ATB package first.

Then run the benchmark through the wrapper (it sources the same environment script internally):

bash /home/shuhao/vllm-ascend-hust/scripts/run_ascend_latency_bench.sh /usr/local/Ascend/ascend-toolkit.bak.8.1/latest

If you omit the path, scripts use a default toolkit root suitable for this workspace.

One-Click Ascend Bootstrap

To make local Ascend deployment closer to a one-command flow, use:

cd /home/shuhao/vllm-ascend-hust
bash scripts/bootstrap_ascend.sh Qwen/Qwen2.5-1.5B-Instruct

Separate Local OpenAI Server Command

If you only want to start the local vllm-hust OpenAI-compatible server on Ascend, use the native vllm-hust serve command directly instead of going through workstation:

By default, vllm-hust now auto-injects minimal Ascend runtime paths at import time (ASCEND_HOME_PATH, LD_LIBRARY_PATH, PATH) so pip-installed users can start directly without manually sourcing set_env.sh in common single-toolkit setups.

If you prefer strict manual environment control, disable this behavior with:

export VLLM_ASCEND_AUTO_ENV=0

For multi-toolkit or customized runtime setups, manual sourcing is still recommended:

cd /home/shuhao/vllm-ascend-hust
source scripts/use_single_ascend_env.sh /usr/local/Ascend/ascend-toolkit.bak.8.1/latest
export PYTHONPATH="/usr/local/Ascend/ascend-toolkit.bak.8.1/latest/python/site-packages:${PYTHONPATH:-}"
vllm-hust serve Qwen/Qwen2.5-1.5B-Instruct \
  --host 0.0.0.0 \
  --port 8080 \
  --enforce-eager \
  -cc.cudagraph_mode=0 \
  --enable-auto-tool-choice \
  --tool-call-parser pythonic \
  --no-enable-prefix-caching \
  --no-enable-chunked-prefill

If you are serving a local snapshot, replace the model argument directly:

vllm-hust serve /path/to/local/model \
  --host 0.0.0.0 \
  --port 8080 \
  --enforce-eager \
  -cc.cudagraph_mode=0 \
  --enable-auto-tool-choice \
  --tool-call-parser pythonic \
  --no-enable-prefix-caching \
  --no-enable-chunked-prefill

Manager integration defaults:

  • manager repo path: /home/shuhao/vllm-hust-dev-hub/ascend-runtime-manager
  • manager PyPI package: hust-ascend-manager
  • disable manager: HUST_DISABLE_ASCEND_MANAGER=1
  • manager strict mode: HUST_MANAGER_STRICT=1
  • manager system install steps: HUST_MANAGER_APPLY_SYSTEM=1
  • manager PyPI override: HUST_ASCEND_MANAGER_PYPI_SPEC='hust-ascend-manager==0.1.0'

If you need strict npugraph_ex validation, set HUST_REQUIRE_NPUGRAPH=1 before running the script.

Visit our documentation to learn more.

Contributing

We welcome and value any contributions and collaborations. Please check out Contributing to vLLM for how to get involved.

Citation

If you use vLLM for your research, please cite our paper:

@inproceedings{kwon2023efficient,
  title={Efficient Memory Management for Large Language Model Serving with PagedAttention},
  author={Woosuk Kwon and Zhuohan Li and Siyuan Zhuang and Ying Sheng and Lianmin Zheng and Cody Hao Yu and Joseph E. Gonzalez and Hao Zhang and Ion Stoica},
  booktitle={Proceedings of the ACM SIGOPS 29th Symposium on Operating Systems Principles},
  year={2023}
}

Contact Us

  • For technical questions and feature requests, please use GitHub Issues
  • For discussing with fellow users, please use the vLLM Forum
  • For coordinating contributions and development, please use Slack
  • For security disclosures, please use GitHub's Security Advisories feature
  • For collaborations and partnerships, please contact us at collaboration@vllm.ai

Media Kit

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vllm_hust-0.17.2rc1.dev98.tar.gz (5.2 MB view details)

Uploaded Source

File details

Details for the file vllm_hust-0.17.2rc1.dev98.tar.gz.

File metadata

  • Download URL: vllm_hust-0.17.2rc1.dev98.tar.gz
  • Upload date:
  • Size: 5.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for vllm_hust-0.17.2rc1.dev98.tar.gz
Algorithm Hash digest
SHA256 ee42ec04cdd6392af132a60e16bf176f054aa29eb9bee642b1add14aa65a6096
MD5 28274cb99564fae96a15f37474b26556
BLAKE2b-256 c3c2d57c35724839c1e9f42d3f325385d4bf5b5af37d6e0589cd1ed7af908feb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page