跳转到主要内容

为LLM提供高吞吐量和内存高效的推理和服务引擎

项目描述

这是一个基于 vLLM 支持xfastertransformer后端的分支。此版本基于官方 vllm v0.4.2

注意

🎉🎉🎉支持连续批处理和分布式。 🎇🎇🎇

  • BeamSearch 目前不支持。(进行中)
  • LORA 目前不支持。(进行中)

安装

来自 PyPI

pip install vllm-xft

来自源

python3 setup.py bdist_wheel --verbose

使用

Python 线下

python examples/offline_inference_xfastertransformer.py

服务(兼容 OpenAI 服务器)

python -m vllm.entrypoints.openai.api_server \
        --model /data/llama-2-7b-chat-cpu \
        --tokenizer /data/llama-2-7b-chat-hf \
        --dtype fp16 \
        --kv-cache-dtype fp16 \
        --served-model-name xft \
        --port 8000 \
        --trust-remote-code \
  • --max-num-batched-tokens:最大批处理令牌数,默认值为 max(MAX_SEQ_LEN_OF_MODEL, 2048)。
  • --max-num-seqs:最大序列批处理数,默认值为 256。

更多参数请参阅 vllm 官方文档

查询示例

  curl http://localhost:8000/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
  "model": "xft",
  "prompt": "San Francisco is a",
  "max_tokens": 512,
  "temperature": 0
  }'

分布式(多等级)

使用 oneCCL 的 mpirun 运行工作负载。主节点(rank 0)与上述单等级相同,而从节点(rank > 0)应使用以下命令

python -m vllm.entrypoints.slave --dtype fp16 --model ${MODEL_PATH} --kv-cache-dtype fp16

请确保从节点的参数与主节点一致。

服务(兼容 OpenAI 服务器)

下面是一个在 2Socket 平台上的示例,每个插槽 48 个核心。

OMP_NUM_THREADS=48 mpirun \
        -n 1 numactl --all -C 0-47 -m 0 \
          python -m vllm.entrypoints.openai.api_server \
            --model ${MODEL_PATH} \
            --tokenizer ${TOKEN_PATH} \
            --dtype bf16 \
            --kv-cache-dtype fp16 \
            --served-model-name xft \
            --port 8000 \
            --trust-remote-code \
        : -n 1 numactl --all -C 48-95 -m 1 \
          python -m vllm.entrypoints.slave \
            --dtype bf16 \
            --model ${MODEL_PATH} \
            --kv-cache-dtype fp16

vLLM

为每个人提供简单、快速且经济的LLM服务

| 文档 | 博客 | 论文 | Discord | Twitter/X |


vLLM & NVIDIA Triton 用户聚会(周一,9月9日,下午5点-晚上9点PT)在旧金山Fort Mason

我们很高兴地宣布,我们将与NVIDIA Triton团队合作举办第六次vLLM聚会。加入我们,了解vLLM的最新性能更新。现在注册并成为活动的一部分!


最新动态 🔥


关于

vLLM是一个快速且易于使用的LLM推理和部署库。

vLLM快速,具有

  • 最先进的部署吞吐量
  • 使用高效管理注意力键和值内存
  • 连续批处理传入请求
  • 使用CUDA/HIP图快速模型执行
  • 量化:GPTQAWQ,INT4,INT8和FP8。
  • 优化CUDA内核,包括与FlashAttention和FlashInfer的集成。
  • 投机解码
  • 分块预填充

性能基准:我们包含一个性能基准,比较了vLLM与其他LLM部署引擎(TensorRT-LLMtext-generation-inferencelmdeploy)的性能。

vLLM灵活且易于使用,具有

  • 无缝集成流行的Hugging Face模型
  • 使用各种解码算法(包括并行采样beam search等)进行高吞吐量部署
  • 支持分布式推理的Tensor并行和流水线并行
  • 流式输出
  • 兼容OpenAI的API服务器
  • 支持NVIDIA GPU,AMD CPU和GPU,Intel CPU和GPU,PowerPC CPU,TPU和AWS Neuron。
  • 支持前缀缓存
  • 支持多LoRA

vLLM无缝支持HuggingFace上大多数流行的开源模型,包括

  • Transformer-like LLMs(例如,Llama)
  • Mixture-of-Expert LLMs(例如,Mixtral)
  • 嵌入模型(例如E5-Mistral)
  • 多模态LLM(例如,LLaVA)

在此处找到支持的模型完整列表 这里

入门指南

使用 pip 安装 vLLM 或从 源码构建

pip install vllm

访问我们的 文档 了解更多信息。

贡献

我们欢迎并重视任何贡献和合作。请查阅 CONTRIBUTING.md 了解如何参与。

赞助商

vLLM 是一个社区项目。我们的开发和测试计算资源由以下组织支持。感谢您的支持!

  • a16z
  • AMD
  • Anyscale
  • AWS
  • Crusoe Cloud
  • Databricks
  • DeepInfra
  • Dropbox
  • Google Cloud
  • Lambda Lab
  • NVIDIA
  • Replicate
  • Roblox
  • RunPod
  • Sequoia Capital
  • Skywork AI
  • Trainy
  • UC Berkeley
  • UC San Diego
  • ZhenFund

我们还在 OpenCollective 上有一个官方筹款场所。我们计划使用这笔资金来支持 vLLM 的开发、维护和采用。

引用

如果您在研究中使用了 vLLM,请引用我们的 论文

@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}
}

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅 生成分发存档的教程

构建分发

vllm_xft-0.5.5.0-py3-none-any.whl (1.1 MB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面