来自 Hugging Face 排行榜与评估团队的,用于闪电般快速、灵活评估大语言模型的一站式工具包。
Lighteval 是您评估大语言模型的一站式工具包,支持多种后端——无论您的模型是部署在别处还是已加载到内存中。通过保存和探索详细的、逐样本的结果来深入分析模型性能,进行调试并了解模型的排名情况。
触手可及的自定义能力:您可以浏览我们所有的现有任务和指标,也可以轻松创建符合您需求的自定义任务和自定义指标。
Lighteval 支持跨多个领域和语言的 1000+ 个评估任务。您可以使用这个空间来查找所需内容,或者,这里是一些热门基准测试的概览:
注意:lighteval 目前尚未在 Windows 上进行任何测试,我们暂不支持 Windows 系统。(在 Mac/Linux 上应该可以完全正常运行)
pip install lighteval
Lighteval 在安装时支持许多额外选项,请参阅此处获取完整列表。
如果您想将结果推送到 Hugging Face Hub,请将您的访问令牌设置为环境变量:
hf auth login
Lighteval 提供以下入口点用于模型评估:
lighteval eval:使用 inspect-ai 作为后端评估模型(推荐)。lighteval accelerate:使用 🤗 Accelerate 在 CPU 或一个/多个 GPU 上评估模型。lighteval nanotron:使用 ⚡️ Nanotron 在分布式环境中评估模型。lighteval vllm:使用 🚀 VLLM 在一个/多个 GPU 上评估模型。lighteval sglang:使用 SGLang 作为后端评估模型。lighteval endpoint:使用各种端点作为后端评估模型。lighteval endpoint inference-endpoint:使用 Hugging Face 的 Inference Endpoints API 评估模型。lighteval endpoint tgi:使用本地运行的 🔗 Text Generation Inference 评估模型。lighteval endpoint litellm:使用 LiteLLM 在任何兼容的 API 上评估模型。lighteval endpoint inference-providers:使用 HuggingFace 的推理提供商 作为后端评估模型。没找到您需要的?您始终可以按照本指南创建您的自定义模型 API。
- lighteval custom:评估自定义模型(可以是任何模型)。
这里是一个使用远程推理服务进行评估的快速命令:
lighteval eval "hf-inference-providers/openai/gpt-oss-20b" gpqa:diamond
或者使用 Python API 来运行一个已加载到内存中的模型!
from transformers import AutoModelForCausalLM
from lighteval.logging.evaluation_tracker import EvaluationTracker
from lighteval.models.transformers.transformers_model import TransformersModel, TransformersModelConfig
from lighteval.pipeline import ParallelismManager, Pipeline, PipelineParameters
MODEL_NAME = "meta-llama/Meta-Llama-3-8B-Instruct"
BENCHMARKS = "gsm8k"
evaluation_tracker = EvaluationTracker(output_dir="./results")
pipeline_params = PipelineParameters(
launcher_type=ParallelismManager.NONE,
max_samples=2
)
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME, device_map="auto"
)
config = TransformersModelConfig(model_name=MODEL_NAME, batch_size=1)
model = TransformersModel.from_model(model, config)
pipeline = Pipeline(
model=model,
pipeline_parameters=pipeline_params,
evaluation_tracker=evaluation_tracker,
tasks=BENCHMARKS,
)
results = pipeline.evaluate()
pipeline.show_results()
results = pipeline.get_results()
Lighteval 从以下出色的框架中汲取了灵感:Eleuther 的 AI Harness 和斯坦福的 HELM。我们感谢他们的团队在 LLM 评估方面的开创性工作。
我们还要感谢所有为这个库做出贡献的社区成员,他们添加了新功能,报告或修复了错误。
有想法? 发现了错误? 想要添加一个任务或指标? 我们热烈欢迎您的贡献!
如果您要添加新功能,请先开一个 issue。
如果您提交了 PR,别忘了运行代码风格检查!
# 用于基础开发(代码质量、测试)
pip install -e ".[dev]"
# 或用于 GPU/vllm 开发和慢速测试
pip install -e ".[dev-gpu]"
pre-commit install
pre-commit run --all-files
@misc{lighteval,
author = {Habib, Nathan and Fourrier, Clémentine and Kydlíček, Hynek and Wolf, Thomas and Tunstall, Lewis},
title = {LightEval: A lightweight framework for LLM evaluation},
year = {2023},
version = {0.11.0},
url = {https://github.com/huggingface/lighteval}
}