部署简单示例
from vllm import LLM, SamplingParams
prompts = [
"Hello, my name is",
"The president of the United States is",
"The capital of France is",
"The future of AI is",
]
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
llm = LLM(
model="qwen/Qwen-7B-Chat", revision="v1.1.8", trust_remote_code=True)
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
SamplingParams()重要传参
-
temperature
:Temperature 参数是文本生成模型中用于控制生成文本的随机性和创造性的一个重要的超参数。Temperature参数通常设置为 0.1 到 1.0 之间。 -
top_k
:模型预测的前k个最可能的下一个词。 -
max_tokens
:模型生成的最大长度。 -
stop_token_ids
:生成模型停止生成的token id。如:GLM-4的停止token id为:[151329, 151336, 151338]
LLM()中重要传参
-
model
:LLM模型路径。 -
tensor_parallel_size
:并行处理的大小。 -
gpu_memory_utilization
:默认为0.9, cpu_swap_space默认4个G。若gpu_memory_utilization参数过小(分配的内存大小低于模型使用内存)或者过大(接近1.0)时,代码会崩溃。 -
request_rate
:请求速率 -
max_num_seqs
:一次推理最多能处理的sequences数量,默认值是256。max_num_seqs越大,能处理的请求数量就会越大,但提升也会有上限,不一定是越大越好: -
2卡时,max_num_seqs设置为1024,相较于256,速度提升19%。 -
4卡时,max_num_seqs设置为2048,相较于256,速度提升35%;max_num_seqs设置为4096,相较于256,速度提升33%。 -
max_model_len
:模型的最大生成长度,包含prompt长度和generated长度。这个值需要根据实际情况输入。 -
max_num_batched_tokens
:一次推理最多能处理的tokens数量,默认值是2048。max_num_batched_tokens越大,能处理的tokens数量也就越大,但vllm内部会根据max_model_len自动计算max_num_batched_tokens,所以可以不设置这个值。
参考文献
-
https://github.com/vllm-project/vllm -
https://docs.vllm.ai/en/latest/index.html
原文始发于微信公众号(大模型自然语言处理):【推理加速】vLLM加速部署LLM重要参数