LLM 推理(可运行)¶
本指南展示如何用 Pulsing 跑通 router + worker 架构,并对外暴露 OpenAI 兼容 HTTP API。
推荐架构¶
- Router:接入 HTTP 请求,选择 worker,转发
GenerateRequest/GenerateStreamRequest - Worker:承载模型副本
0)前置条件¶
pip install pulsing- 选择一种或两种后端:
- Transformers:安装
torch+transformers - vLLM:安装
vllm
1)启动 Router(终端 A)¶
Router 需要指定 actor system 地址,以便其它进程启动的 workers 加入同一集群:
pulsing actor pulsing.serving.Router \
--addr 0.0.0.0:8000 \
--name my-llm \
-- \
--http_port 8080 \
--model_name gpt2 \
--worker_name worker
2)启动 Worker¶
你可以启动 一个或多个 worker。每个 worker 通过 --seeds 加入 Router 节点。
方案 A:Transformers Worker(终端 B)¶
pulsing actor pulsing.serving.TransformersWorker \
--addr 0.0.0.0:8001 \
--seeds 127.0.0.1:8000 \
--name worker \
-- \
--model_name gpt2
方案 B:vLLM Worker(终端 C)¶
pulsing actor pulsing.serving.vllm.VllmWorker \
--addr 0.0.0.0:8002 \
--seeds 127.0.0.1:8000 \
--name worker \
-- \
--model Qwen/Qwen2.5-0.5B
3)验证集群与 worker¶
列出 actors(观察者模式)¶
巡检集群¶
4)调用 OpenAI 兼容 API¶
非流式¶
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "gpt2", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'
流式(SSE)¶
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "gpt2", "messages": [{"role": "user", "content": "讲个笑话"}], "stream": true}'
排障¶
- 如果出现
No available workers,请检查: - Router 已用
--addr启动,Worker 已用--seeds <router_addr>加入 - 名字一致:Worker 用
--name worker(--前)启动,或 Router 用--worker_name <名字>(--后)与 Worker 一致 - 执行
pulsing inspect actors --seeds 127.0.0.1:8000,确认能看到 Router 在找的名字(默认worker)
更多: