综合介绍
LightLLM 是一个基于 Python 的大语言模型(LLM)推理和服务框架,以其轻量级设计、易于扩展和高效性能而著称。该框架利用了多种知名的开源实现,包括 FasterTransformer、TGI、vLLM 和 FlashAttention 等。LightLLM 通过异步协作、动态批处理和张量并行等技术,显著提高了 GPU 利用率和推理速度,适用于多种模型和应用场景。
功能列表
- 异步协作:支持异步的分词、模型推理和去分词操作,提高 GPU 利用率。
- 无填充注意力:支持多种模型的无填充注意力操作,处理长度差异较大的请求。
- 动态批处理:支持请求的动态批处理调度。
- FlashAttention:通过 FlashAttention 提高速度并减少 GPU 内存占用。
- 张量并行:在多个 GPU 上利用张量并行加速推理。
- Token Attention:实现了基于 token 的 KV 缓存内存管理机制,零内存浪费。
- 高性能路由器:与 Token Attention 协作,优化系统吞吐量。
- Int8KV 缓存:增加 token 容量,几乎翻倍。
- 支持多种模型:包括 BLOOM、LLaMA、StarCoder、ChatGLM2 等。
使用帮助
安装流程
- 使用 Docker 安装 LightLLM:
docker pull modeltc/lightllm
docker run -it --rm modeltc/lightllm
- 安装依赖:
pip install -r requirements.txt
使用方法
- 启动 LightLLM 服务:
python -m lightllm.server
- 查询模型(控制台示例):
python -m lightllm.client --model llama --text "你好,世界!"
- 查询模型(Python 示例):
from lightllm import Client
client = Client(model="llama")
response = client.query("你好,世界!")
print(response)
主要功能操作流程
- 异步协作:LightLLM 通过异步执行分词、模型推理和去分词操作,显著提高了 GPU 的利用率。用户只需启动服务,系统会自动处理这些操作。
- 无填充注意力:在处理长度差异较大的请求时,LightLLM 支持无填充注意力操作,确保高效处理。用户无需额外配置,系统会自动优化。
- 动态批处理:LightLLM 支持动态批处理调度,用户可以通过配置文件设置批处理参数,系统会根据请求动态调整批处理策略。
- FlashAttention:通过集成 FlashAttention 技术,LightLLM 提高了推理速度并减少了 GPU 内存占用。用户可以在配置文件中启用此功能。
- 张量并行:LightLLM 支持在多个 GPU 上进行张量并行,用户可以通过配置文件设置 GPU 数量和并行参数,系统会自动分配任务。
- Token Attention:LightLLM 实现了基于 token 的 KV 缓存内存管理机制,确保零内存浪费。用户无需额外配置,系统会自动管理内存。
- 高性能路由器:LightLLM 的高性能路由器与 Token Attention 协作,优化系统吞吐量。用户可以在配置文件中设置路由参数,系统会自动优化路由策略。
- Int8KV 缓存:LightLLM 支持 Int8KV 缓存,增加 token 容量,几乎翻倍。用户可以在配置文件中启用此功能,系统会自动调整缓存策略。
支持的模型
LightLLM 支持多种模型,包括但不限于:
- BLOOM
- LLaMA
- StarCoder
- ChatGLM2
- InternLM
- Qwen-VL
- Llava
- Stablelm
- MiniCPM
- Phi-3
- CohereForAI
- DeepSeek-V2
用户可以根据需求选择合适的模型,并在配置文件中进行相应设置。