为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
为每个人提供简单、快速且经济的LLM服务
| 文档 | 博客 | 论文 | Discord | Twitter/X |
vLLM & NVIDIA Triton 用户聚会(周一,9月9日,下午5点-晚上9点PT)在旧金山Fort Mason
我们很高兴地宣布,我们将与NVIDIA Triton团队合作举办第六次vLLM聚会。加入我们,了解vLLM的最新性能更新。现在注册并成为活动的一部分!
最新动态 🔥
- [2024/07] 我们与AWS共同举办了第五次vLLM聚会!请在此处找到聚会幻灯片这里。
- [2024/07] 与Meta合作,vLLM正式支持Llama 3.1,包括FP8量化和支持流水线并行!请查看我们的博客文章这里。
- [2024/06] 我们与Cloudflare和BentoML共同举办了第四次vLLM聚会!请在此处找到聚会幻灯片这里。
- [2024/04] 我们与Roblox共同举办了第三次vLLM聚会!请在此处找到聚会幻灯片这里。
- [2024/01] 我们与IBM共同举办了第二次vLLM聚会!请在此处找到聚会幻灯片这里。
- [2023/10] 我们与a16z共同举办了第一次vLLM聚会!请在此处找到聚会幻灯片这里。
- [2023/08] 我们衷心感谢安德森·霍洛维茨(a16z)慷慨捐赠以支持vLLM的开源开发和研究。
- [2023/06] 我们正式发布了vLLM!自4月中旬以来,FastChat-vLLM集成已为LMSYS Vicuna和Chatbot Arena提供动力。查看我们的博客文章。
关于
vLLM是一个快速且易于使用的LLM推理和部署库。
vLLM快速,具有
- 最先进的部署吞吐量
- 使用
高效管理注意力键和值内存 - 连续批处理传入请求
- 使用CUDA/HIP图快速模型执行
- 量化:GPTQ,AWQ,INT4,INT8和FP8。
- 优化CUDA内核,包括与FlashAttention和FlashInfer的集成。
- 投机解码
- 分块预填充
性能基准:我们包含一个性能基准,比较了vLLM与其他LLM部署引擎(TensorRT-LLM,text-generation-inference和lmdeploy)的性能。
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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 65a120bdfa8e581ed45218b8bf5cbd75f317e56bd5610fa3a938cdbe0bb386fb |
|
MD5 | d67854c57e0fbce6ca79d7ac730ebd97 |
|
BLAKE2b-256 | 65a7ba9d06d827320dbb07d5bff91d02420dfd4138dc89992c80b3af79fe6a09 |