菜单

评估与量化

相关源文件

本文档详细介绍了评估 LLM 性能的方法和模型量化技术,以优化推理。这两个组成部分对于 LLM 的开发生命周期至关重要——评估为模型改进提供反馈,而量化则能够有效地在资源受限的硬件上进行部署。

有关训练 LLM 的信息,请参阅 训练管道。有关部署策略,请参阅 部署与优化

1. LLM 评估

评估大型语言模型是一项重要但复杂的任务,它指导着数据生成和训练过程。有效的评估提供了需要改进的方面的反馈,可以利用这些反馈来修改数据混合、质量过滤器和训练参数。

1.1 评估方法

来源: README.md248-253

自动化基准测试

自动化基准测试使用经过精心策划的数据集和预定义指标来评估模型在特定任务上的表现

  • 常识:MMLU、AGIEval、GPQA
  • 推理:GSM8K、MATH、BBH
  • 编程:HumanEval、MBPP
  • 安全:ToxiGen、Advbench

优点

  • 可复现的结果
  • 易于进行定量比较
  • 易于大规模运行

局限性

  • 容易受到数据污染的影响
  • 对创造性能力的评估有限
  • 侧重于狭隘的技能

来源: README.md250

人工评估

人工评估涉及人们直接评估模型输出

  • 氛围检查:非正式评估模型响应
  • 结构化标注:使用特定标准进行系统性评分
  • 竞技场比较:社区投票模型(例如,聊天机器人竞技场)

优点

  • 更适合主观质量评估
  • 更全面的评估
  • 检测自动化测试遗漏的细微问题

局限性

  • 成本高且耗时
  • 可复现性较低
  • 可能存在人类偏见

来源: README.md251

基于模型的评估

使用其他模型来评估输出

  • 裁判模型:根据特定标准对输出进行评分
  • 奖励模型:根据学习到的人类偏好对输出进行评分
  • 交叉评估:多个模型相互评估

优点

  • 可扩展且高效
  • 与人类偏好高度相关
  • 可自定义的评估标准

局限性

  • 偏向于自身的输出风格
  • 评分不一致
  • 受评估模型质量的限制

来源: README.md252

1.2 评估工作流程

来源: README.md253

1.3 评估工具和框架

一些框架有助于简化评估过程

框架描述用例
EleutherAI 的评估工具包支持 200 多个任务的综合框架自动化基准测试
LightEval具有基于模型的指标的快速评估框架在有限硬件上进行高效评估
聊天机器人竞技场LLM 输出的人工比较平台大规模人工评估
LLM AutoEval使用 RunPod 进行自动评估基于云的评估
Ragas专门用于 RAG 系统评估检索和生成质量

来源: README.md257-261

2. LLM 量化

量化是将模型参数和激活转换为较低精度格式的过程。这项技术可以减少计算和内存需求,从而使 LLM 能够在消费者硬件上运行,而性能损失极小。

2.1 量化基础

来源: README.md267-268

精度格式

不同的精度格式在模型大小和准确性之间提供了不同的权衡

格式比特尺寸缩减质量影响典型用例
FP3232基线训练,参考
FP16162 倍可忽略GPU 推理
BF16162 倍最小训练,推理
INT884 倍轻微服务器部署
INT448 倍中等消费级硬件
INT33~10.7 倍显著移动设备
INT2216 倍重大超轻量级

来源: README.md267-268

2.2 量化方法

来源: README.md269-272

基本量化技术

最简单的量化方法包括

  • Absmax 量化:按最大绝对值缩放权重
  • 零点量化:添加偏移量以中心化量化范围

这些技术在 8 位量化时效果良好,但在没有额外优化的情况下,在较低的位宽会导致准确性显著下降。

来源: README.md269

高级量化方法

已经开发出几种先进的方法,以在较低精度下实现更好的性能

  1. GGUF & llama.cpp

    • 最初为 CPU 推理设计
    • 支持各种量化级别(4 位到 8 位)
    • 包含词汇表和元数据的独立格式
    • 适用于消费者硬件部署
  2. GPTQ & EXL2

    • 逐层校准,可保留准确性
    • 采用最优脑量化原理
    • 减少灾难性异常值
    • 在 4 位精度下实现良好性能
  3. AWQ(激活感知权重量化)

    • 根据激活模式缩放权重
    • 保留每个神经元的重要权重
    • 选择性量化参数
  4. SmoothQuant & ZeroQuant

    • 在量化前转换模型以处理异常值
    • 引入量化友好的操作
    • 优化特定硬件的数据流

来源: README.md269-272

2.3 量化工作流程

来源: README.md267-272

2.4 量化工具

该存储库提供了多种量化工具和笔记本

工具描述用例
AutoQuant将 LLM 量化为 GGUF、GPTQ、EXL2、AWQ 和 HQQ 格式各种格式的一键量化
量化入门8 位量化原理教程学习基本的量化概念
使用 GPTQ 进行 4 位量化使用 GPTQ 算法进行量化的指南高效的 4 位量化
GGUF 和 llama.cpp将模型转换为 GGUF 格式CPU 友好型量化
ExLlamaV2用于运行 LLM 的快速库高性能量化推理

来源: README.md34 README.md53-56

3. LLM 开发生命周期的集成

评估和量化在 LLM 的整体开发生命周期中发挥着至关重要的作用

来源: README.md248-253 README.md267-272

3.1 以评估指导训练

评估结果有助于识别

  • 需要更多训练数据的知识差距
  • 需要更好偏好对齐的推理缺陷
  • 需要改进安全护栏的安全问题
  • 需要针对性微调的任务特定弱点

来源: README.md253

3.2 量化用于部署

量化使得

  • 在消费级硬件上运行模型
  • 降低推理成本
  • 更快的文本生成
  • LLM 技术更广泛的可访问性

来源: README.md267

4. 最佳实践

4.1 评估最佳实践

  • 结合多种方法:使用自动化基准测试进行基本能力评估,人工评估进行主观质量评估,以及基于模型的评估进行可扩展性评估
  • 避免数据污染:确保评估数据集未在训练中使用
  • 跟踪进度:在模型迭代过程中保持一致的评估方法
  • 超越汇总指标:分析具体的失败案例和错误模式
  • 考虑古德哈特定律:“当一个衡量标准成为目标时,它就不再是一个好的衡量标准”

来源: README.md248

4.2 量化最佳实践

  • 彻底基准测试:比较困惑度、下游任务准确性和推理速度
  • 使用合适的校准数据:目标分布的代表性样本
  • 考虑硬件目标:不同的量化方法在不同的硬件上效果更好
  • 权衡质量与大小:根据应用需求选择量化级别
  • 测试边缘情况:确保稀有 token 和特殊输入仍然正常工作

来源: README.md267-272

5. 工具和资源

5.1 评估工具

  • LLM AutoEval:使用 RunPod 自动评估 LLM
  • Open LLM Leaderboard:在标准基准测试上比较开源 LLM
  • Language Model Evaluation Harness:标准化 LLM 评估框架
  • Lighteval:具有基于模型的指标的高效评估框架
  • Chatbot Arena:社区驱动的比较评估

来源: README.md31 README.md257-261

5.2 量化工具

  • AutoQuant:一键量化 GGUF、GPTQ、EXL2、AWQ 和 HQQ 格式
  • llama.cpp:在 CPU 和 GPU 上运行量化模型
  • ExLlamaV2:用于运行量化 LLM 的高性能库
  • AutoGPTQ:GPTQ 量化框架
  • AWQ:激活感知权重量化的实现

来源:README.md34 README.md273-279

6. 结论

评估和量化是 LLM 开发生命周期中的两个关键阶段。有效的评估提供了指导数据和训练方法改进所需的反馈,而量化则通过降低计算和内存需求,使得部署成为可能。通过掌握这些技术,LLM 科学家可以开发出更强大的模型,并高效地部署到各种硬件上。

来源: README.md248-253 README.md267-272