Lighteval 文档
使用 VLLM 作为后端
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
使用 VLLM 作为后端
Lighteval 允许您使用 vllm
作为后端,从而实现极大的速度提升。要使用它,只需更改 model_args
以反映您想传递给 vllm 的参数。
有关 vllm 引擎参数的文档可以在这里找到。
lighteval vllm \
"model_name=HuggingFaceH4/zephyr-7b-beta,dtype=float16" \
"leaderboard|truthfulqa:mc|0|0"
vllm
能够使用数据并行、流水线并行或张量并行将模型分布在多个 GPU 上。您可以通过在 model_args
中设置来选择并行方法。
例如,如果您有 4 个 GPU,您可以使用 tensor_parallelism
将其拆分
export VLLM_WORKER_MULTIPROC_METHOD=spawn && lighteval vllm \
"model_name=HuggingFaceH4/zephyr-7b-beta,dtype=float16,tensor_parallel_size=4" \
"leaderboard|truthfulqa:mc|0|0"
或者,如果您的模型适合单个 GPU,您可以使用 data_parallelism
来加速评估
lighteval vllm \
"model_name=HuggingFaceH4/zephyr-7b-beta,dtype=float16,data_parallel_size=4" \
"leaderboard|truthfulqa:mc|0|0"
使用配置文件
对于更高级的配置,您可以为模型使用配置文件。配置文件的示例如下所示,可以在 examples/model_configs/vllm_model_config.yaml
中找到。
lighteval vllm \
"examples/model_configs/vllm_model_config.yaml" \
"leaderboard|truthfulqa:mc|0|0"
model_parameters:
model_name: "HuggingFaceTB/SmolLM-1.7B-Instruct"
revision: "main"
dtype: "bfloat16"
tensor_parallel_size: 1
data_parallel_size: 1
pipeline_parallel_size: 1
gpu_memory_utilization: 0.9
max_model_length: 2048
swap_space: 4
seed: 1
trust_remote_code: True
use_chat_template: True
add_special_tokens: True
multichoice_continuations_start_space: True
pairwise_tokenization: True
subfolder: null
generation_parameters:
presence_penalty: 0.0
repetition_penalty: 1.0
frequency_penalty: 0.0
temperature: 1.0
top_k: 50
min_p: 0.0
top_p: 1.0
seed: 42
stop_tokens: null
max_new_tokens: 1024
min_new_tokens: 0
在出现内存不足(OOM)问题的情况下,您可能需要减小模型的上下文大小,并降低 gpu_memory_utilization
参数。
动态更改指标配置
对于特殊类型的指标,如 Pass@K
或 LiveCodeBench 的 codegen
指标,您可能需要传递特定的值,例如生成的数量。这可以在 yaml
文件中通过以下方式完成
model_parameters:
model_name: "HuggingFaceTB/SmolLM-1.7B-Instruct"
revision: "main"
dtype: "bfloat16"
tensor_parallel_size: 1
data_parallel_size: 1
pipeline_parallel_size: 1
gpu_memory_utilization: 0.9
max_model_length: 2048
swap_space: 4
seed: 1
trust_remote_code: True
use_chat_template: True
add_special_tokens: True
multichoice_continuations_start_space: True
pairwise_tokenization: True
subfolder: null
generation_parameters:
presence_penalty: 0.0
repetition_penalty: 1.0
frequency_penalty: 0.0
temperature: 1.0
top_k: 50
min_p: 0.0
top_p: 1.0
seed: 42
stop_tokens: null
max_new_tokens: 1024
min_new_tokens: 0
metric_options: # Optional metric arguments
codegen_pass@1:16:
num_samples: 16
可以在 yaml 文件中传递一个可选键 metric_options
,使用 Metric.metric_name
中定义的指标名称。在这种情况下,我们任务中定义的 codegen_pass@1:16
指标的 num_samples
将更新为 16,而不管默认定义的数量是多少。