AI个人学习
和实操指南
讯飞绘镜

LitServe:快速部署企业级通用AI模型推理服务

综合介绍

LitServe 是 Lightning AI 推出的一款开源 AI 模型服务引擎,基于 FastAPI 构建,专注于快速部署通用 AI 模型的推理服务。它支持从大型语言模型(LLM)、视觉模型、音频模型到经典机器学习模型的广泛场景,提供批量处理、流式传输和 GPU 自动扩展等功能,性能比普通 FastAPI 提升至少 2 倍。LitServe 易于使用且高度灵活,用户可自托管或通过 Lightning Studios 实现完全托管,适用于研究人员、开发者和企业快速构建高效的模型推理 API。官方强调其企业级特性,如安全性、可扩展性和高可用性,确保生产环境开箱即用。

LitServe:快速部署企业级通用AI模型推理服务-1


 

功能列表

  • 快速部署推理服务:支持 PyTorch、JAX、TensorFlow 等框架的模型快速转为 API。
  • 批量处理:合并多个推理请求成批次处理,提升吞吐量。
  • 流式传输:支持实时推理结果流输出,适合连续响应场景。
  • GPU 自动扩展:根据推理负载动态调整 GPU 资源,优化性能。
  • 复合 AI 系统:允许多个模型协同推理,构建复杂服务。
  • 自托管与云托管:支持本地部署或通过 Lightning Studios 云端管理。
  • 与 vLLM 集成:优化大型语言模型的推理性能。
  • OpenAPI 兼容:自动生成标准 API 文档,便于测试和集成。
  • 全模型支持:覆盖 LLM、视觉、音频、嵌入等各种模型的推理需求。
  • 服务器优化:提供多工作进程处理,推理速度比 FastAPI 快 2 倍以上。

 

使用帮助

安装流程

LitServe 的安装简单,通过 Python 的 pip 工具即可完成。以下是详细步骤:

1. 准备环境

确保系统安装了 Python 3.8 或以上版本,建议使用虚拟环境:

python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

2. 安装 LitServe

运行以下命令安装稳定版:

pip install litserve

若需最新功能,可安装开发版:

pip install git+https://github.com/Lightning-AI/litserve.git@main

3. 检查安装

验证是否成功:

python -c "import litserve; print(litserve.__version__)"

成功输出版本号即完成安装。

4. 可选依赖

若需 GPU 支持,安装对应框架的 GPU 版本,例如:

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

如何使用 LitServe

LitServe 通过简洁代码将 AI 模型转为推理服务。以下是详细操作流程:

1. 创建简单推理服务

以下是一个复合推理服务示例,包含两个模型:

import litserve as ls
class SimpleLitAPI(ls.LitAPI):
def setup(self, device):
# 初始化,加载模型或数据
self.model1 = lambda x: x ** 2  # 平方模型
self.model2 = lambda x: x ** 3  # 立方模型
def decode_request(self, request):
# 解析请求数据
return request["input"]
def predict(self, x):
# 复合推理
squared = self.model1(x)
cubed = self.model2(x)
return squared + cubed
def encode_response(self, output):
# 格式化推理结果
return {"output": output}
if __name__ == "__main__":
server = ls.LitServer(SimpleLitAPI(), accelerator="auto")
server.run(port=8000)
  • 运行:保存为 server.py,执行 python server.py
  • 测试:用 curl 发送推理请求:
    curl -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"input": 4.0}'
    

    输出:{"output": 80.0}(16 + 64)。

2. 启用批量推理

修改代码支持批量处理:

server = ls.LitServer(SimpleLitAPI(), max_batch_size=4, accelerator="auto")
  • 操作说明max_batch_size=4 表示最多同时处理 4 个推理请求,自动合并提升效率。
  • 测试方法:多次发送请求,观察吞吐量提升:
    curl -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"input": 5.0}'
    

3. 配置流式推理

适用于实时推理场景:

class StreamLitAPI(ls.LitAPI):
def setup(self, device):
self.model = lambda x: [x * i for i in range(5)]
def decode_request(self, request):
return request["input"]
def predict(self, x):
for result in self.model(x):
yield result
def encode_response(self, output):
return {"output": output}
server = ls.LitServer(StreamLitAPI(), stream=True, accelerator="auto")
server.run(port=8000)
  • 操作说明stream=True 启用流式推理,predict 使用 yield 逐个返回结果。
  • 测试方法:使用支持流式响应的客户端:
    curl --no-buffer -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"input": 2}'
    

4. GPU 自动扩展

若有 GPU,LitServe 自动优化推理:

  • 操作说明accelerator="auto" 检测并优先使用 GPU。
  • 验证:运行后查看日志,确认 GPU 使用。
  • 环境要求:确保安装 GPU 版本框架(如 PyTorch)。

5. 部署复杂模型推理(以 BERT 为例)

部署 Hugging Face 的 BERT 模型推理服务:

from transformers import BertTokenizer, BertModel
import litserve as ls
class BertLitAPI(ls.LitAPI):
def setup(self, device):
self.tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
self.model = BertModel.from_pretrained("bert-base-uncased").to(device)
def decode_request(self, request):
return request["text"]
def predict(self, text):
inputs = self.tokenizer(text, return_tensors="pt").to(self.model.device)
outputs = self.model(**inputs)
return outputs.last_hidden_state.mean(dim=1).tolist()
def encode_response(self, output):
return {"embedding": output}
server = ls.LitServer(BertLitAPI(), accelerator="auto")
server.run(port=8000)
  • 运行:执行脚本后,访问 http://127.0.0.1:8000/predict
  • 测试
    curl -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"text": "Hello, world!"}'
    

6. 集成 vLLM 部署 LLM 推理

为大型语言模型提供高效推理:

import litserve as ls
from vllm import LLM
class LLMLitAPI(ls.LitAPI):
def setup(self, device):
self.model = LLM(model="meta-llama/Llama-3.2-1B", dtype="float16")
def decode_request(self, request):
return request["prompt"]
def predict(self, prompt):
outputs = self.model.generate(prompt, max_tokens=50)
return outputs[0].outputs[0].text
def encode_response(self, output):
return {"response": output}
server = ls.LitServer(LLMLitAPI(), accelerator="auto")
server.run(port=8000)
  • 安装 vLLMpip install vllm
  • 测试
    curl -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"prompt": "What is AI?"}'
    

7. 查看 API 文档

  • 操作说明:访问 http://127.0.0.1:8000/docs,交互式测试推理服务。
  • 功能提示:基于 OpenAPI 标准,包含所有端点详情。

8. 托管选项

  • 自托管:本地或服务器运行代码。
  • 云托管:通过 Lightning Studios 部署,需注册账户,提供负载均衡、自动扩展等功能。

操作小贴士

  • 调试:设置 timeout=60 避免推理超时。
  • 日志:启动时查看终端日志,排查问题。
  • 优化:参考官方文档启用认证、Docker 部署等高级功能。

LitServe 通过快速部署和优化推理服务,支持从原型验证到企业级应用的全流程需求。

CDN1
未经允许不得转载:首席AI分享圈 » LitServe:快速部署企业级通用AI模型推理服务

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文