LMDeploy 的量化和部署
课程内容
课程作业
3.2.2 TurboMind 推理+命令行本地对话
按笔记记录将模型转换完成后,尝试本地对话(Bash Local Chat),进行模型推理。
执行命令如下。
# Turbomind + Bash Local Chat
lmdeploy chat turbomind ./workspace
启动后就可以和它进行对话了,如下图所示。
image.png输入后两次回车,退出时输入exit 回车两次即可。此时,Server 就是本地跑起来的模型(TurboMind),命令行可以看作是前端。
3.2.3 TurboMind推理+API服务
接下来尝试运用 lmdepoy 进行服务化。
通过下面命令启动服务。
# ApiServer+Turbomind api_server => AsyncEngine => TurboMind
lmdeploy serve api_server ./workspace \
--server_name 0.0.0.0 \
--server_port 23333 \
--instance_num 64 \
--tp 1
上面的参数中 server_name 和 server_port 分别表示服务地址和端口,tp 参数我们之前已经提到过了,表示 Tensor 并行。还剩下一个 instance_num 参数,表示实例数,可以理解成 Batch 的大小。执行后如下图所示。
image然后,我们可以新开一个窗口,执行下面的 Client 命令。如果使用官方机器,可以打开 vscode 的 Terminal,执行下面的命令。
# ChatApiClient+ApiServer(注意是http协议,需要加http)
lmdeploy serve api_client http://localhost:23333
同样是在Client端提问
image.png
本地做一下 ssh 转发直接访问API Server的接口
image.png
这里一共提供了 4 个 HTTP 的接口,任何语言都可以对其进行调用。
v1/chat/completions 接口:
image.png
请求结果如下。
image3.2.4 网页 Demo 演示
3.2.4.1 TurboMind 服务作为后端
API Server 的启动和上一节一样,直接启动作为前端的 Gradio。
# Gradio+ApiServer。必须先开启 Server,此时 Gradio 为 Client
lmdeploy serve gradio http://0.0.0.0:23333 \
--server_name 0.0.0.0 \
--server_port 6006 \
--restful_api True
结果如下图所示。
image3.2.4.2 TurboMind 推理作为后端
Gradio 也可以直接和 TurboMind 连接,如下所示。
# Gradio+Turbomind(local)
lmdeploy serve gradio ./workspace
直接启动 Gradio,此时没有 API Server,TurboMind 直接与 Gradio 通信。如下图所示。
image.png
网友评论