Lighteval 文件

使用 VLLM 作為後端

Hugging Face's logo
加入 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,而不管預設定義的數量是多少。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.