用mindie工具benchmark测试大模型性能时,发现它要用Triton接口,原本用vllm部署的openai接口用不了。尝试用triton+vllm来部署大模型。
原理就是使用triton做代理,用vllm做backbend推大模型。
按照官网的指引做:
1、创建相关目录及文件
创建目录结构,如果使用已下载的权重,则需要复制相关权重到目录内(后续在model.json中引用):
model_repository/ └── qwen72b ├── 1 │ └── model.json
├── Qwen2.5-72B-Instruct
│ └── 权重文件... └── config.pbtxt
- 其中qwen72b目录放模型相关文件,也是客户端调用时的模型名称,等同于model_name。
- model.json内容为:
{ "model":"/work/model_repository/qwen72b/Qwen2.5-72B-Instruct", "disable_log_requests": true, "gpu_memory_utilization": 0.5, "enforce_eager": true, "tensor_parallel_size": 8 }
-
- model为模型权重位置,/work为容器内的工作目录;Qwen2.5-72B-Instruct按实际情况调整;
- tensor_parallel_size为使用的显卡数量
config.pbtxt内容为:
backend: "vllm" # The usage of device is deferred to the vLLM engine instance_group [ { count: 1 kind: KIND_MODEL } ]
2、启动docker:在model_repository同级目录下执行(会引用${PWD}变量):
docker run --gpus all -it --net=host --rm -p 8001:8001 --shm-size=1G --ulimit memlock=-1 --ulimit stack=67108864 -v ${PWD}:/work -w /work nvcr.io/nvidia/tritonserver:24.12-vllm-python-py3 tritonserver --model-store ./model_repository
因为使用了--net=host,服务器实际暴露了8000、8001、8002端口。注意--rm会在模型退出后删除容器。
3、客户端访问:通过8000端口访问服务器
curl -X POST localhost:8000/v2/models/vllm_model/generate -d '{"text_input": "What is Triton Inference Server?", "parameters": {"stream": false, "temperature": 0}}'
标签:Triton,repository,--,work,model,vllm From: https://www.cnblogs.com/mar/p/18662513