BladeLLM快速入门

更新时间:2025-03-28 03:18:52

本文为您介绍如何利用PAI自主研发的BladeLLM引擎进行高效部署,以实现更低延迟和更高吞吐量的大语言模型(LLM)推理。

前提条件

  • 已开通PAI并创建默认工作空间,具体操作,请参见开通PAI并创建默认工作空间

  • 如果您有部署自定义模型的需求,需要完成以下准备工作:

    • 准备自定义模型文件及相关配置文件,需要准备的模型文件样例如下:

      说明

      仅支持部署QwenLlama全系列文本模型,且不允许改变模型结构。

      image.png

      其中配置文件中必须包含config.json文件,您需要按照HuggingfaceModelscope的模型格式配置Config文件。示例文件详情,请参见config.json

    • 创建对象存储OSS存储空间(Bucket)并上传自定义模型文件。具体操作,请参见控制台快速入门

使用限制

使用BladeLLM引擎部署服务时,有如下限制:

限制类型

说明

限制类型

说明

模型限制

仅支持部署QwenLlama全系列文本模型,包括开源版本、微调版本以及量化后的版本。

资源限制

  • 卡型:仅支持A系列、H系列和L系列的GPU卡型。不支持P100、P4 、V100、T4等旧卡型。

  • 显存。以7B FP16模型为例,模型占用的显存通常约为,但由于推理过程还需要额外的空间用于KV Cache,您可以选择24 GB显存的资源规格。

部署服务

在使用BladeLLM引擎部署服务时,PAI提供了以下三种部署方式供您选择。您可以通过场景化部署,使用PAI平台预置的公共模型或自行微调的模型实现快速一键部署。此外,对于有特殊配置需求的用户,PAI还支持自定义部署和JSON独立部署方式,您可以根据具体需求更灵活地一键部署自行微调后的模型。

场景化部署(推荐)
自定义部署
JSON独立部署
  1. 登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS

  2. 模型在线服务(EAS)页面,单击部署服务,然后在场景化模型部署区域,单击LLM大语言模型部署

  3. 部署LLM大语言模型页面,配置以下关键参数。

    参数

    描述

    示例值

    基本信息

    服务名称

    自定义服务名称。

    blade_llm_qwen_server

    版本选择

    选择高性能部署,表示使用PAI自研的BladeLLM进行快速部署。

    高性能部署

    镜像版本

    选择BladeLLM引擎版本。

    blade-llm:0.9.0

    模型配置

    支持部署以下两种模型:

    • 公共模型:PAI平台预置了多种常用模型。您可以在下拉列表中单击image,查看每种模型的详细介绍。

    • 自定义模型:如果公共模型不能满足您的需求,您可以选择自行微调的模型。并通过OSS、通用型NAS、极速型NAS、智算CPFSPAI模型方式进行挂载。

    公共模型 > qwen2.5-7b-instruct

    资源部署

    资源类型

    支持使用以下三种资源类型:

    • 公共资源:建议在任务量相对较少、对任务时效性要求不高的场景下使用。

    • EAS资源组:适合于对安全性要求高,或者需要独立资源的场景。如何购买EAS资源组,请参见使用EAS资源组

    • 资源配额:适合于需要强大计算能力和高效数据处理能力的应用场景。如何准备资源配额,请参见灵骏智算资源配额

    公共资源

    部署资源

    请参照使用限制选择部署服务使用的资源规格。

    ecs.gn7i-c16g1.4xlarge

    服务功能

    共享内存

    配置实例的共享内存,可以直接对内存进行读写操作,无需进行数据的复制和传输。默认情况下,当您选择多卡资源时,共享内存为64 GB,否则为0,您也可以手动进行修改。

    使用默认配置

    高级配置

    张量并行数

    BladeLLM支持在多卡上进行分布式推理。通常设置为资源规格的卡数。

    1

    端口号

    镜像启动后监听的本地HTTP端口。

    说明

    由于EAS引擎监听固定的8080端口,因此端口需要避开8080。

    8001

    最大显存占有率

    表示KV Cache的显存与GPU总显存减去模型占用显存之间的比例,默认为0.85。当您的显存不足时,可适当减小该参数;当您的显存充足时,可适当增大该参数。

    0.85

    分块预填充块大小

    BladeLLM内置的优化策略,能够在预填充(prefill)阶段将输入数据分割为若干数据块(chunks)(数据块大小是指一次输入到模型中的数据量,单位为token。),从而更有效地利用计算资源,并降低时延。

    2048

    推测解码

    使用更小更快的草稿模型(draft model)来加速目标模型的推理过程。草稿模型可以推测未来多步的生成token,目标模型再通过并行验证进行筛选,从而在精度无损的情况下,加速token的生成速度。

    重要

    推测解码功能会部署一个草稿模型,需要使用更大显存的资源规格。如果您开启了推测解码,请结合主模型和草稿模型的参数量,重新计算所需的资源显存大小。

    • 草稿模型:通常是与目标模型架构相似的小规模模型。您可以使用PAI预置的公共模型,或根据特定任务或数据集微调的模型。

    • 推测步长:草稿模型在每次推测中生成的token序列长度,默认值为4。这些序列会被目标模型验证和筛选。

    开关关闭

    其他参数

    • 添加选项参数:通过参数值来指定某种配置,需要输入参数名和参数值。

    • 添加标志参数:布尔类型的参数,用于启用或禁用某个功能,只需输入参数名。

    无需配置

    运行命令预览

    系统根据镜像及参数配置自动生成的运行命令,默认不允许修改。您可以通过单击切换为自由编辑模式,来修改运行命令。

    使用默认配置,无需修改

  4. 参数配置完成后,单击部署

  1. 登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS

  2. 模型在线服务(EAS)页面,单击部署服务,然后在自定义模型部署区域,单击自定义部署

  3. 自定义部署页面,配置以下关键参数。更多参数配置说明,请参见控制台自定义部署参数说明

    参数

    描述

    基本信息

    服务名称

    自定义服务名称。

    环境信息

    部署方式

    选择镜像部署

    镜像配置

    选择官方镜像 > blade-llm > blade-llm:0.8.0

    模型配置

    单击OSS,通过OSS挂载自行微调的模型配置,并配置以下参数:

    • OSS:选择自定义模型文件所在的OSS路径。例如oss://examplebucket/bloom_7b

    • 挂载路径:表示模型配置挂载到服务实例中的目标路径。例如/mnt/model/bloom_7b

    运行命令

    配置为blade_llm_server --port 8081 --model /mnt/model/bloom_7b/

    端口号

    配置为8081,需要与运行命令中的端口号一致。

    资源部署

    部署资源

    请参照使用限制选择部署服务使用的资源规格。

    共享内存

    使用多卡推理时,需要配置共享内存。默认情况下,当您选择多卡资源时,共享内存为64 GB,否则为0,您也可以手动进行修改。

  4. 参数配置完成后,单击部署

  1. 登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS

  2. 模型在线服务(EAS)页面,单击部署服务,然后在自定义模型部署区域,单击JSON独立部署

  3. JSON编辑框中配置以下JSON内容,然后单击部署

    {
        "name": "blade_llm_bloom_server",  // 服务名称
        "containers": [
            {
                // 镜像和命令,请使用“-vpc”后缀的URL,其中<region_id>配置为区域ID,例如华东1(杭州)为cn-hangzhou
                // 请正确填写版本号
                "image": "eas-registry-vpc.<region_id>.cr.aliyuncs.com/pai-eas/blade-llm:0.8.0",
                "command": "blade_llm_server --port 8081 --model /mnt/model/bloom_7b/",
                // 端口号需要与"command"中的"--port"参数配置一致
                "port": 8081
            }
        ],
        "storage": [
            {
                // 模型挂载地址
                "mount_path": "/mnt/model/bloom_7b/",
                "oss": {
                    "endpoint": "oss-<region_id>-internal.aliyuncs.com",
                    // 模型配置所在的OSS存储路径
                    "path": "oss://examplebucket/bloom_7b/"
                }
            },
            {
                // 共享内存, 多卡推理时务必配置
                "empty_dir": {
                    "medium": "memory",
                    "size_limit": 64
                },
                "mount_path": "/dev/shm"
            }
        ],
        "metadata": {
            "instance": 1,
            "memory": 64000, // 内存,单位是 MB
            "cpu": 16,
            "gpu": 1,
            "resource": "eas-r-xxxxxx" // 资源组ID
        }
    }

调用服务

当服务成功部署并处于运行中状态时,您可以调用该服务来进行模型推理。

  1. 查看服务访问地址和Token。

    1. 模型在线服务(EAS)页面,单击目标服务的服务方式列下的调用信息

    2. 调用信息对话框,查看服务访问地址和Token。

  2. 在终端中执行以下代码调用服务,流式地获取生成文本。

    # Call EAS service
    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: AUTH_TOKEN_FOR_EAS" \
        -d '{"prompt":"What is the capital of Canada?", "stream":"true"}' \
        <service_url>/v1/completions

    其中:

    • Authorization:配置为上述步骤获取的服务Token。

    • <service_url>:替换为上述步骤获取的服务访问地址。

    返回结果示例如下:

    data: {"id":"91f9a28a-f949-40fb-b720-08ceeeb2****","choices":[{"finish_reason":"","index":0,"logprobs":null,"text":" The"}],"object":"text_completion","usage":{"prompt_tokens":7,"completion_tokens":1,"total_tokens":8},"error_info":null}
    
    data: {"id":"91f9a28a-f949-40fb-b720-08ceeeb2****","choices":[{"finish_reason":"","index":0,"logprobs":null,"text":" capital"}],"object":"text_completion","usage":{"prompt_tokens":7,"completion_tokens":2,"total_tokens":9},"error_info":null}
    
    data: {"id":"91f9a28a-f949-40fb-b720-08ceeeb2****","choices":[{"finish_reason":"","index":0,"logprobs":null,"text":" of"}],"object":"text_completion","usage":{"prompt_tokens":7,"completion_tokens":3,"total_tokens":10},"error_info":null}
    
    data: {"id":"91f9a28a-f949-40fb-b720-08ceeeb2****","choices":[{"finish_reason":"","index":0,"logprobs":null,"text":" Canada"}],"object":"text_completion","usage":{"prompt_tokens":7,"completion_tokens":4,"total_tokens":11},"error_info":null}
    
    data: {"id":"91f9a28a-f949-40fb-b720-08ceeeb2****","choices":[{"finish_reason":"","index":0,"logprobs":null,"text":" is"}],"object":"text_completion","usage":{"prompt_tokens":7,"completion_tokens":5,"total_tokens":12},"error_info":null}
    
    data: {"id":"91f9a28a-f949-40fb-b720-08ceeeb2****","choices":[{"finish_reason":"","index":0,"logprobs":null,"text":" Ottawa"}],"object":"text_completion","usage":{"prompt_tokens":7,"completion_tokens":6,"total_tokens":13},"error_info":null}
    
    data: {"id":"91f9a28a-f949-40fb-b720-08ceeeb2****","choices":[{"finish_reason":"","index":0,"logprobs":null,"text":"."}],"object":"text_completion","usage":{"prompt_tokens":7,"completion_tokens":7,"total_tokens":14},"error_info":null}
    
    data: {"id":"91f9a28a-f949-40fb-b720-08ceeeb2****","choices":[{"finish_reason":"stop","index":0,"logprobs":null,"text":""}],"object":"text_completion","usage":{"prompt_tokens":7,"completion_tokens":8,"total_tokens":15},"error_info":null}
    
    data: [DONE]
  • 本页导读 (1)
  • 前提条件
  • 使用限制
  • 部署服务
  • 调用服务
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等