FastDeploy部署ERNIE-4.5实战:Docker镜像、环境依赖与推理服务搭建

权重文件

ERNIE 4.5 - a baidu Collection
0、前提条件

1
2
3
4
5
GPU Driver >= 535
CUDA >= 12.3
CUDNN >= 9.5
Python >= 3.10
Linux X86_64

1、拉取镜像

1
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/fastdeploy-cuda-12.6:2.0.0

2、启动服务

1
2
3
4
5
6
7
python -m fastdeploy.entrypoints.openai.api_server \
--model baidu/ERNIE-4.5-0.3B-Paddle \
--port 8180 \
--metrics-port 8181 \
--engine-worker-queue-port 8182 \
--max-model-len 32768 \
--max-num-seqs 32
参数名称类型描述
portint仅服务部署时需要,HTTP服务端口号,默认:8000
metrics_portint仅服务部署时需要,metrics监控端口号,默认:8001
engine_worker_queue_portintFastDeploy内部引擎通信端口,默认:8002
max_model_lenint推理支持的默认最大上下文长度,默认值:2048
tensor_parallel_sizeint模型默认张量并行度,默认值:1
data_parallel_sizeint模型默认数据并行度,默认值:1
max_num_seqsintDecode阶段最大并发数,默认:8
enable_prefix_cachingbool是否启用前缀缓存,默认:False
limit_mm_per_promptdict[str]限制每个提示的多模式数据量,例如:{“image”:10,”video”:3},默认值:全部为 1
gpu_memory_utilizationfloatGPU内存利用率,默认值:0.9
enable_chunked_prefillbool启用分块预填充,默认值:False
guided_decoding_backendstr指定要使用的引导解码后端, 默认:off

3、服务调用

  • curl调用

    1
    2
    3
    4
    5
    6
    7
    curl -X POST "http://0.0.0.0:8180/v1/chat/completions" \
    -H "Content-Type: application/json" \
    -d '{
    "messages": [
    {"role": "user", "content": "Write me a poem about large language model."}
    ]
    }'
  • openai方式调用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import openai
    host = "0.0.0.0"
    port = "8180"
    client = openai.Client(base_url=f"http://{host}:{port}/v1", api_key="null")

    response = client.chat.completions.create(
    model="null",
    messages=[
    {"role": "system", "content": "I'm a helpful AI assistant."},
    {"role": "user", "content": "Write me a poem about large language model."},
    ],
    stream=True,
    )
    for chunk in response:
    if chunk.choices[0].delta:
    print(chunk.choices[0].delta.content, end='')
    print('\n')
本文结束 感谢您的阅读