在使用BladeLLM引擎部署服务时,通过命令行语句blade_llm_server
来启动服务。本文将为您介绍blade_llm_server
支持的各项配置参数及其说明。
使用示例
在部署服务时配置以下运行命令,表示从指定目录加载HuggingFace格式的Qwen3-4B模型,默认监听8081端口接收请求。如何部署服务,请参见BladeLLM快速入门。
blade_llm_server --model /mnt/model/Qwen3-4B/
参数说明
blade_llm_server
支持配置的参数如下:
usage: blade_llm_server [-h] [--tensor_parallel_size int] [--pipeline_parallel_size int] [--pipeline_micro_batch int] [--attention_dp_size int] [--host str] [--port int]
[--worker_socket_path str] [--log_level {DEBUG,INFO,WARNING,ERROR}] [--max_gpu_memory_utilization float]
[--preempt_strategy {AUTO,RECOMPUTE,SWAP}] [--ragged_flash_max_batch_tokens int] [--decode_algo {sps,look_ahead,normal}] [--gamma int]
[--disable_prompt_cache] [--prompt_cache_enable_swap] [--decoding_parallelism int] [--metric_exporters None [None ...]] [--max_queue_time int]
[--enable_custom_allreduce] [--enable_json_warmup] [--enable_llumnix] [--llumnix_config str] [--model [str]] [--tokenizer_dir [str]]
[--chat_template [str]] [--dtype {half,float16,bfloat16,float,float32}]
[--kv_cache_quant {no_quant,int8,int4,int8_affine,int4_affine,fp8_e5m2,fp8_e4m3,mix_f852i4,mix_f843i4,mix_i8i4,mix_i4i4}]
[--kv_cache_quant_sub_heads int] [--tokenizer_special_tokens List] [--enable_triton_mla] [--disable_cuda_graph] [--cuda_graph_max_batch_size int]
[--cuda_graph_batch_sizes [List]] [--with_visual bool] [--use_sps bool] [--use_lookahead bool] [--look_ahead_window_size int]
[--look_ahead_gram_size int] [--guess_set_size int] [--draft.model [str]] [--draft.tokenizer_dir [str]] [--draft.chat_template [str]]
[--draft.dtype {half,float16,bfloat16,float,float32}]
[--draft.kv_cache_quant {no_quant,int8,int4,int8_affine,int4_affine,fp8_e5m2,fp8_e4m3,mix_f852i4,mix_f843i4,mix_i8i4,mix_i4i4}]
[--draft.kv_cache_quant_sub_heads int] [--draft.tokenizer_special_tokens List] [--draft.enable_triton_mla] [--draft.disable_cuda_graph]
[--draft.cuda_graph_max_batch_size int] [--draft.cuda_graph_batch_sizes [List]] [--draft.with_visual bool] [--draft.use_sps bool]
[--draft.use_lookahead bool] [--draft.look_ahead_window_size int] [--draft.look_ahead_gram_size int] [--draft.guess_set_size int]
[--temperature [float]] [--top_p [float]] [--top_k [int]] [--cat_prompt [bool]] [--repetition_penalty [float]] [--presence_penalty [float]]
[--max_new_tokens [int]] [--stop_sequences [List]] [--stop_tokens [List]] [--ignore_eos [bool]] [--skip_special_tokens [bool]]
[--enable_disagg_metric bool] [--enable_export_kv_lens_metric bool] [--enable_hybrid_dp bool] [--enable_quant bool] [--asymmetry bool]
[--block_wise_quant bool] [--enable_cute bool] [--no_scale bool] [--quant_lm_head bool] [--rotate bool] [--random_rotate_matrix bool]
[--skip_ffn_fc2 bool]
...
blade_llm_server参数详细说明如下:
参数 | 取值类型 | 是否必选 | 默认值 | 描述 |
--tensor_parallel_size(-tp) | int | 否 | 1 | 张量并行数。 |
--pipeline_parallel_size(-pp) | int | 否 | 1 | 流水线并行数。 |
--pipeline_micro_batch(-ppmb) | int | 否 | 1 | 流水线并行的微批次。 |
--attention_dp_size(-dp) | int | 否 | 1 | 数据并行数。 |
--host | str | 否 | 0.0.0.0 | 服务器主机名。 |
--port | int | 否 | 8081 | 服务器端口号。 |
--worker_socket_path | str | 否 |
| 工作进程的socket路径。 |
--log_level | 枚举 | 否 | INFO | 打印的日志级别,取值如下:
|
--max_gpu_memory_utilization | float | 否 | 0.85 | 连续批处理调度器的最大GPU内存利用率。 |
--preempt_strategy | 枚举 | 否 | AUTO | KV缓存空间不够时,处理被抢占请求的策略。取值如下:
|
--ragged_flash_max_batch_tokens | int | 否 | 2048 | 稀疏闪存中的最大批处理Token数。 |
--decode_algo | 枚举 | 否 | normal | 高效解码算法。取值如下:
|
--gamma | int | 否 | 0 | 用于推测解码的Gamma步长。 |
--disable_prompt_cache | 无 | 否 | False | 禁用提示词前缀缓存。 |
--prompt_cache_enable_swap | 无 | 否 | False | 将提示词缓存从GPU显存交换到CPU内存。 |
--decoding_parallelism | int | 否 | min(max(get_cpu_number() // 2, 1), 2) | 解码并行度设置。 |
--metric_exporters | None [None ...] | 否 | logger | 监控指标导出方式。
|
--max_queue_time | int | 否 | 3600 | 请求在队列中最大的等待时长(秒)。 |
--enable_custom_allreduce | 无 | 否 | False | 不使用nccl的all reduce,使用框架自定义的all reduce。 |
--enable_json_warmup | 无 | 否 | False | 为JSON Schema开启有限状态机编译。 |
--enable_llumnix | 无 | 否 | False | 开启llumnix。 |
--llumnix_config | str | 否 | 无 | llumnix配置文件路径。 |
以下为模型加载参数。 | ||||
--model | [str] | 是 | 无 | 包含模型文件的目录。 |
--tokenizer_dir | [str] | 否 | 无 | 分词器路径,默认为模型目录。 |
--chat_template | [str] | 否 | 无 | Chat模板配置。 |
--dtype | 枚举 | 否 | half | 模型和激活没有量化的部分使用的数据精度
|
--kv_cache_quant | 枚举 | 否 | no_quant | 启用KV缓存量化。取值为no_quant、int8、int4、int8_affine、int4_affine、fp8_e5m2、fp8_e4m3、mix_f852i4、mix_f843i4、mix_i8i4、mix_i4i4。 |
--kv_cache_quant_sub_heads | int | 否 | 1 | kv cache量化的sub head数。 |
--tokenizer_special_tokens | List | 否 | [] | 指定Tokenizer的特殊Token,如 |
--enable_triton_mla | 无 | 否 | False | 开启Triton,否则使用Bladnn MLA。 |
--disable_cuda_graph | 无 | 否 | False | 禁用CUDA Graph。 |
--cuda_graph_max_batch_size | int | 否 | 64 | CUDA Graph的最大批处理大小。 |
--cuda_graph_batch_sizes | [List] | 否 | 无 | 需要CUDA Graph捕获的批大小。 |
--with_visual, --nowith_visual | bool | 否 | True | 启用对视觉模型的支持。 |
--use_sps, --nouse_sps | bool | 否 | False | 启用推测解码。 |
--use_lookahead, --nouse_lookahead | bool | 否 | False | 启用LookAhead解码参数。 |
--look_ahead_window_size | int | 否 | 2 | LookAhead窗口大小。 |
--look_ahead_gram_size | int | 否 | 2 | LookAhead元组大小。 |
--guess_set_size | int | 否 | 3 | LookAhead猜测集大小。 |
以下为草稿模型加载参数,仅在开启了推测解码(speculative decoding)的情况下生效。 | ||||
--draft.model | [str] | 否 | 无 | 包含模型文件的目录。 |
--draft.tokenizer_dir | [str] | 否 | 无 | 分词器路径,默认为模型目录。 |
--draft.chat_template | [str] | 否 | 无 | Chat模板配置。 |
--draft.dtype | 枚举 | 否 | half |
|
--draft.kv_cache_quant | 枚举 | 否 | no_quant | 启用KV缓存量化。取值为no_quant、int8、int4、int8_affine、int4_affine、fp8_e5m2、fp8_e4m3、mix_f852i4、mix_f843i4、mix_i8i4、mix_i4i4。 |
--draft.kv_cache_quant_sub_heads | int | 否 | 1 | kv cache量化的sub head数。 |
--draft.tokenizer_special_tokens | List | 否 | [] | 特殊的分词器标记。 |
--draft.enable_triton_mla | 无 | 否 | False | 开启Triton,否则使用Bladnn MLA。 |
--draft.disable_cuda_graph | 无 | 否 | False | 启用CUDA Graph。 |
--cuda_graph_max_batch_size | int | 否 | 64 | CUDA Graph的最大批处理大小。 |
--draft.cuda_graph_batch_sizes | [List] | 否 | 无 | CUDA Graph的批处理大小。 |
--draft.with_visual, --draft.nowith_visual | bool | 否 | True | 启用对视觉模型的支持。 |
--draft.use_sps, --draft.nouse_sps | bool | 否 | False | 启用推测解码。 |
--draft.use_lookahead, --draft.nouse_lookahead | bool | 否 | False | 启用LookAhead解码参数。 |
--draft.look_ahead_window_size | int | 否 | 2 | LookAhead窗口大小。 |
--draft.look_ahead_gram_size | int | 否 | 2 | LookAhead元组大小。 |
--draft.guess_set_size | int | 否 | 3 | LookAhead猜测集大小。 |
以下为lora相关参数。 | ||||
--max_lora_rank | int | 否 | 16 | 用于设置LoRA权重的Rank的最大值。 |
--max_loras | int | 否 | 2 | 用于设置LoRA最大值。 |
--max_cpu_loras | int | 否 | 无 | 用于设置CPU资源使用上限。 |
--lora_dtype | str | 否 | 无 | 用于指定LoRA数据类型。 |
以下为服务采样参数。这些参数与服务调用参数配置项中的选项一一对应。如果您在发起请求时没有特别指定某些参数值,则会使用服务启动时设置的默认值。 | ||||
--temperature | [float] | 否 | 无 | 用于改变logits分布的温度参数。 |
--top_p | [float] | 否 | 无 | 保留概率加起来达到top_p的最可能的tokens。 |
--top_k | [int] | 否 | 无 | 保留概率最高的前top_k个tokens。 |
--cat_prompt | [bool] | 否 | 无 | 启用输出ID与提示词ID的反标记化。 |
--repetition_penalty | [float] | 否 | 无 | 指定模型在生成文本时避免重复词语出现的程度,值越大表示越严格地避免重复词语。 |
--presence_penalty | [float] | 否 | 无 | 用于指定在生成文本时对出现在原始输入文本中的标记进行惩罚的程度。值越高,模型就会更加关注生成文本与原始文本的一致性,但可能会降低生成文本的多样性。 |
--max_new_tokens | [int] | 否 | 无 | 限制最大生成的token数量。 |
--stop_sequences | [List] | 否 | 无 | 在某些文本上停止生成,例如:“–stop_sequences a b c”。 |
--stop_tokens | [List] | 否 | 无 | 在某些token ID或token序列上停止生成,例如:“–stop_tokens 1 2 3”。 |
--ignore_eos | [bool] | 否 | 无 | 生成时不在eos token处停止。 |
--skip_special_tokens | [bool] | 否 | 无 | 在解码阶段将token_id转换为token时跳过特殊tokens。 |