LitServer.run()的函数介绍
LitServer.run()的函数签名
1 | def run( |
1.run()参数详解
1.1 host 监听地址
默认:
1 | host="0.0.0.0" |
说明:
| 配置 | 含义 |
|---|---|
| 127.0.0.1 | 仅本机访问 |
| 0.0.0.0 | 所有网卡访问 |
| 指定IP | 绑定指定网卡 |
示例:
1 | server.run( |
1.2 port 监听端口
默认:
1 | port=8000 |
示例:
1 | server.run(port=8080) |
访问:
1 | http://localhost:8080/predict |
1.3 num_api_servers API Server实例数
默认:
1 | None |
作用:LitServe底层使用FastAPI + Uvicorn。
该参数控制:
1 | API Frontend Server 数量 |
架构:
graph LR A[Client] A --> B1[API Server 1] A --> B2[API Server 2] A --> B3[API Server 3] B1 --> C[Inference Workers] B2 --> C B3 --> C
例如:
1 | server.run( |
会启动:
1 | 4个FastAPI入口进程 |
适用于:
- 高QPS
- 多CPU核心
- API层成为瓶颈
1.4 log_level 日志级别
1 | log_level="info" |
可选:
1 | "critical" |
示例:
1 | server.run( |
生产环境:
1 | server.run( |
1.5 generate_client_file 是否自动生成测试客户端
默认:
1 | True |
启动后生成:
1 | client.py |
目录:
1 | . |
关闭:
1 | server.run( |
生产环境通常关闭。
1.6 api_server_worker_typeAPI服务工作模式
默认:
1 | process |
可选:process thread
process模式
1 | server.run( |
特点:
- 多进程
- 隔离性好
- CPU利用率高
- 推荐生产
thread模式
1 | server.run( |
特点:
- 多线程
- 内存占用低
- 启动快
- 适合轻量任务
1.7 pretty_logs 美化日志
默认:False
开启:
1 | server.run( |
效果:
- 时间戳
- 颜色
- 格式化输出
适合:
- 本地开发
- 调试
1.8 **kwargs 透传给底层(uvicorn)
- Uvicorn
- FastAPI
- Starlette
例如:
1 | server.run( |
启用HTTPS
1 | server.run( |
2.真正影响性能的参数其实在LitServer()
很多人关注:server.run(…),实际上吞吐量主要由:ls.LitServer(…)
2.1 accelerator
硬件类型:accelerator=”auto”
可选:
- cpu
- cuda
- gpu
- mps
- auto
示例:
1 | server = ls.LitServer( |
2.2 devices设备数
1 | devices=4 |
例如:
1 | server = ls.LitServer( |
表示:4张GPU,也支持:devices=[0,1,3]
2.3 workers_per_device
每个设备启动多少Worker。workers_per_device=2
例如:
1 | server = ls.LitServer( |
实际:4 GPU × 2 Worker = 8个推理Worker
2.4 timeout队列超时时间
timeout=30请求在队列中等待超过30秒返回504
例如:
1 | server = ls.LitServer( |
3.生产推荐配置
单机CPU
1 | server.run( |
单GPU
1 | server = ls.LitServer( |
多GPU LLM服务
1 | server = ls.LitServer( |
4.run()参数汇总表
| 参数 | 默认值 | 说明 |
|---|---|---|
| host | 0.0.0.0 | 监听地址 |
| port | 8000 | 服务端口 |
| num_api_servers | None | API Server数量 |
| log_level | info | 日志等级 |
| generate_client_file | True | 自动生成client.py |
| api_server_worker_type | process | process/thread |
| pretty_logs | False | 美化日志 |
| **kwargs | - | 透传给Uvicorn/FastAPI |