LitServe - 闪电般快速服务AI模型⚡
文章目录
- 一、关于 LitServe
- 二、快速启动
- 定义服务器
- 测试服务器
- LLM 服务
- 小结
- 三、特色示例
- 功能特点
- 四、性能表现
- 五、托管选项
一、关于 LitServe
LitServe是一个易于使用、灵活的服务引擎,适用于基于FastAPI构建的AI模型。批处理、流式传输和GPU自动缩放等功能消除了为每个模型重建FastAPI服务器的需要。
LitServe至少比普通FastAPI快2倍。
- github : https://github.com/Lightning-AI/LitServe
- 官方文档:https://lightning.ai/docs/litserve
- 快速启动• 例子• 特点• 性能• 托管• 文档
- Discord
特点:简单、灵活、企业规模
✅ (2x)+ faster serving ✅ Easy to use ✅ Batching, Streaming
✅ Bring your own model ✅ PyTorch/JAX/TF/... ✅ Built on FastAPI
✅ GPU autoscaling ✅ Multi-modal ✅ Self-host or ⚡️ managed
二、快速启动
通过pip安装LitServe(更多选项):
pip install litserve
定义服务器
这个2模型玩具示例(AI复合系统)展示了LitServe的灵活性(参见真实示例):
# server.py
import litserve as ls
# (STEP 1) - DEFINE THE API (compound AI system)
class SimpleLitAPI(ls.LitAPI):
def setup(self, device):
# setup is called once at startup. Build a compound AI system (1+ models), connect DBs, load data, etc...
self.model1 = lambda x: x**2
self.model2 = lambda x: x**3
def decode_request(self, request):
# Convert the request payload to model input.
return request["input"]
def predict(self, x):
# Easily build compound systems. Run inference and return the output.
squared = self.model1(x)
cubed = self.model2(x)
output = squared + cubed
return {"output": output}
def encode_response(self, output):
# Convert the model output to a response payload.
return {"output": output}
# (STEP 2) - START THE SERVER
if __name__ == "__main__":
# serve with advanced features (GPUs, etc...)
server = ls.LitServer(SimpleLitAPI(), accelerator="auto", max_batch_size=1)
server.run(port=8000)
现在通过命令行运行服务器
python server.py
- LitAPI可以完全控制构建可扩展的复合AI系统(1个或多个模型)。
- LitServer处理优化,如批处理,自动GPU缩放等。
测试服务器
使用自动生成的LitServe客户端:
python client.py
或使用此终端命令:
curl -X POST http://127.0.0.1:8000/predict -H "Content-Type: application/json" -d '{"input": 4.0}'
LLM 服务
LitServe不仅仅适用于像vLLM或Ollama这样的LLM;它为任何AI模型提供完全控制内部的服务(了解更多信息)。
为了方便LLM服务,集成vLLM与LitServe,或使用LitGPT(基于LitServe构建)。
litgpt serve microsoft/phi-2
小结
- LitAPI让您可以使用一个或多个模型(文档)轻松构建复杂的AI系统。
- 将设置方法用于连接模型、数据库和加载数据(文档)等一次性任务。
- LitServer处理优化,如批处理、GPU自动缩放、流式传输等(文档)。
- 在您自己的机器上自行托管或使用Lightning Studios进行完全托管的部署(了解更多信息)。
了解如何使此服务器快200倍。
三、特色示例
使用LitServe部署任何模型或AI服务:(Gen AI、经典ML、嵌入服务器、LLM、视觉、音频、多模态系统等……)
演示视频: https://private-user-images.githubusercontent.com/884798/360682715-5e73549a-bc0f-47a9-9d9c-5b54389be5de.mp4
例子:
Featured examples
Toy model: Hello world
LLMs: Llama 3 (8B), LLM Proxy server
NLP: Hugging face, BERT, Text embedding API
Multimodal: OpenAI Clip, MiniCPM, Phi-3.5 Vision Instruct
Audio: Whisper, AudioCraft, StableAudio, Noise cancellation (DeepFilterNet)
Vision: Stable diffusion 2, AuraFlow, Flux, Image super resolution (Aura SR)
Speech: Text-speech (XTTS V2)
Classical ML: Random forest, XGBoost
Miscellaneous: Media conversion API (ffmpeg)
浏览100多个社区构建的模板
功能特点
最先进的功能:
✅(2x)+比普通FastAPI更快
✅带上你自己的模特
✅构建复合系统(1个以上模型)
✅GPU自动缩放
✅配料
✅流媒体
✅工人自动缩放
✅在您的机器上自托管
✅主机在闪电AI上完全管理
✅服务于所有模型:(LLM ,视觉等)
✅缩放到零(无服务器)
✅支持PyTorch、JAX、TF等…
✅符合OpenAPI标准
✅开放AI兼容性
✅认证
10+功能…
注意:我们优先考虑可扩展的企业级功能而不是炒作。
四、性能表现
LitServe专为AI工作负载而设计。专门的多工作者处理可提供比FastAPI至少2倍的加速。
批处理和GPU自动缩放等附加功能可以将性能提高到2倍以上,有效地扩展以处理比FastAPI和TorchServe更多的同时请求。
在这里复制完整的基准(越高越好)。
这些结果适用于图像和文本分类ML任务。性能关系适用于其他ML任务(嵌入、LLM服务、音频、分割、目标检测、摘要等…)。
*💡关于LLM服务的注意事项:*对于高性能LLM服务(如Ollama/VLLM),请使用LitGPT或使用LitServe构建自定义的类似VLLM的服务器。需要使用LitServe进行kv缓存等优化以最大限度地提高LLM性能。
五、托管选项
LitServe可以独立托管在您自己的机器上,也可以通过Lightning Studios进行完全管理。
自托管非常适合黑客、学生和DIY开发人员,而完全托管托管非常适合需要轻松自动缩放、安全性、发布管理以及99.995%正常运行时间和可观察性的企业开发人员。
Feature | Self Managed | Fully Managed on Studios |
---|---|---|
Deployment | ✅ Do it yourself deployment | ✅ One-button cloud deploy |
Load balancing | ❌ | ✅ |
Autoscaling | ❌ | ✅ |
Scale to zero | ❌ | ✅ |
Multi-machine inference | ❌ | ✅ |
Authentication | ❌ | ✅ |
Own VPC | ❌ | ✅ |
AWS, GCP | ❌ | ✅ |
Use your own cloud commits | ❌ | ✅ |
2025-01-27(一)