本文為您介紹如何利用PAI自主研發的BladeLLM引擎進行高效部署,以實現更低延遲和更高輸送量的大語言模型(LLM)推理。
前提條件
已開通PAI並建立預設工作空間,具體操作,請參見開通PAI並建立預設工作空間。
如果您有部署自訂模型的需求,需要完成以下準備工作:
準備自訂模型檔案及相關設定檔,需要準備的模型檔案範例如下:
說明僅支援部署Qwen和Llama全系列文本模型,且不允許改變模型結構。

其中設定檔中必須包含config.json檔案,您需要按照Huggingface或的模型格式配置Config檔案。樣本檔案詳情,請參見config.json。
建立Object Storage Service儲存空間(Bucket)並上傳自訂模型檔案。具體操作,請參見控制台快速入門。
使用限制
使用BladeLLM引擎部署服務時,有如下限制:
限制類型 | 說明 |
模型限制 | 僅支援部署Qwen和Llama全系列文本模型,包括開源版本、微調版本以及量化後的版本。 |
資源限制 |
|
部署服務
在使用BladeLLM引擎部署服務時,PAI提供了以下三種部署方式供您選擇。您可以通過情境化部署,使用PAI平台預置的公用模型或自行微調的模型實現快速一鍵部署。此外,對於有特殊配置需求的使用者,PAI還支援自訂部署和JSON獨立部署方式,您可以根據具體需求更靈活地一鍵部署自行微調後的模型。
情境化部署(推薦)
登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS。
在模型在线服务(EAS)頁面,單擊部署服务,然後在场景化模型部署地區,單擊LLM大语言模型部署。
在部署LLM大语言模型頁面,配置以下關鍵參數。
參數
描述
樣本值
基本信息
服务名称
自訂服務名稱。
blade_llm_qwen_server
版本选择
選擇高性能部署,表示使用PAI自研的BladeLLM進行快速部署。
高效能部署
镜像版本
選擇BladeLLM引擎版本。
blade-llm:0.9.0
模型配置
支援部署以下兩種模型:
公共模型:PAI平台預置了多種常用模型。您可以在下拉式清單中單擊
,查看每種模型的詳細介紹。自定义模型:如果公用模型不能滿足您的需求,您可以選擇自行微調的模型。並通過OSS、通用型NAS、極速型NAS、智算CPFS或PAI模型方式進行掛載。
公共模型 > qwen2.5-7b-instruct
资源信息
资源类型
支援使用以下三種資源類型:
公用資源
部署资源
請參照使用限制選擇部署服務使用的資源規格。
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。這些序列會被目標模型驗證和篩選。
開關關閉
其他参数
添加选项参数:通過參數值來指定某種配置,需要輸入參數名和參數值。
添加标志参数:布爾類型的參數,用於啟用或禁用某個功能,只需輸入參數名。
無需配置
运行命令预览
系統根據鏡像及參數配置自動產生的運行命令,預設不允許修改。您可以通過單擊切换为自由编辑模式,來修改運行命令。
使用預設配置,無需修改
參數配置完成後,單擊部署。
自訂部署
登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS。
在模型在线服务(EAS)頁面,單擊部署服务,然後在自定义模型部署地區,單擊自定义部署。
在自定义部署頁面,配置以下關鍵參數。更多參數配置說明,請參見自訂部署。
參數
描述
基本信息
服务名称
自訂服務名稱。
环境信息
部署方式
選擇镜像部署。
镜像配置
選擇官方镜像 > blade-llm > blade-llm:0.8.0。
存储配置
單擊OSS,通過OSS掛載自行微調的模型配置,並配置以下參數:
Uri:選擇自訂模型檔案所在的OSS路徑。例如
oss://examplebucket/bloom_7b。挂载路径:表示模型配置掛載到服務執行個體中的目標路徑。例如
/mnt/model/bloom_7b。
运行命令
配置為
blade_llm_server --port 8081 --model /mnt/model/bloom_7b/。端口号
配置為8081,需要與運行命令中的連接埠號碼一致。
资源信息
部署资源
請參照使用限制選擇部署服務使用的資源規格。
共享内存
使用多卡推理時,需要配置共用記憶體。預設情況下,當您選擇多卡資源時,共用記憶體為64 GB,否則為0,您也可以手動進行修改。
參數配置完成後,單擊部署。
JSON獨立部署
登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS。
在模型在线服务(EAS)頁面,單擊部署服务,然後在自定义模型部署地區,單擊JSON独立部署。
在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 } }
調用服務
當服務成功部署並處於運行中狀態時,您可以調用該服務來進行模型推理。
查看服務訪問地址和Token。
在模型線上服務(EAS)頁面,單擊目標服務名稱,然後在基本信息地區,單擊查看调用信息。
在调用信息對話方塊,查看服務訪問地址和Token。
在終端中執行以下代碼調用服務,流式地擷取產生文本。
# 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]