LLM Compressor 与 Alauda AI
本文档介绍如何使用 LLM Compressor 与 Alauda AI 平台集成来执行模型压缩工作流。LLM Compressor 在 Alauda AI 的集成提供了两个示例工作流:
- 一个工作台镜像和 data-free-compressor.ipynb,演示如何压缩模型。
- 一个工作台镜像和 calibration-compressor.ipynb,演示如何使用校准数据集压缩模型。
目录
支持的模型压缩工作流创建工作台创建模型仓库并上传模型(可选)准备并上传数据集(可选)上传数据集到 S3 存储(可选)使用 S3 存储中的数据集在 JupyterLab 中克隆模型和数据集创建并运行压缩 Notebook上传压缩后的模型到仓库部署并使用压缩模型进行推理支持的模型压缩工作流
在 Alauda AI 平台上,您可以使用 Workbench 功能对存储在模型仓库中的模型运行 LLM Compressor。以下工作流概述了压缩模型的典型步骤。
创建工作台
按照创建工作台中的说明创建新的 Workbench 实例。创建工作台时,请确保选择镜像 odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9,该镜像包含所需的 LLM Compressor 环境。模型压缩目前仅支持在 JupyterLab 中进行。
如果您的环境中没有该镜像,请参考链接文章了解如何同步镜像并修补 WorkspaceKind 资源,使该镜像出现在工作台创建选项中。
创建模型仓库并上传模型
请参阅使用 Notebook 上传模型获取创建模型仓库和上传模型文件的详细步骤。本指南中的示例 notebook 使用的是 TinyLlama-1.1B-Chat-v1.0 模型。
- 要压缩的模型。如果您想使用自己的模型,可以修改此行。
- 此配方将对除
lm_head之外的所有 Linear 层进行量化,lm_head通常对量化较为敏感。W4A16方案将权重量化为4-bit整数,同时保持激活为16-bit。
(可选)准备并上传数据集
如果您计划使用 data-free compressor notebook,可以跳过此步骤。
若使用 calibration compressor notebook,必须准备并上传校准数据集。请按照使用 Notebook 上传模型中描述的相同步骤准备数据集。示例校准 notebook 使用的是 ultrachat_200k 数据集。
- 使用 Huggingface datasets API 创建校准数据集。如果您想使用自己的数据集,可以修改此行。
- 选择样本数量。512 个样本是一个不错的起点,增加样本数量可以提升准确度。
- 加载数据集。
- 打乱数据并选取所需数量的样本。
- 预处理并将数据转换为模型使用的格式。
(可选)上传数据集到 S3 存储
如果您希望将数据集上传到 S3,可以在 JupyterLab 中运行以下代码。
- 如果您想使用自己的数据集,可以修改此行。
- 配置分块上传,使用 100 MB 分块,最多 10 个并发线程。
(可选)使用 S3 存储中的数据集
如果您希望使用 S3 中的数据集,可以先安装 s3fs 工具,然后按照以下代码修改示例中的数据集加载部分。
- 设置环境变量(作为备份,一些底层组件会使用它们)。
- 定义存储配置;必须显式指定 endpoint_url 以连接 MinIO。
- 如果数据集被拆分,这相当于示例中的
split="train_sft"。
在 JupyterLab 中克隆模型和数据集
在 JupyterLab 终端中,使用 git clone 将模型仓库(以及数据集,如适用)下载到您的工作空间。data-free compressor notebook 不需要数据集。
建议在网络允许的情况下,使用 Hugging Face (hf) 命令行工具直接下载模型和数据集。此方法通常比手动克隆仓库更快、更简单。
如果您处于受限网络环境,可以使用 Hugging Face 镜像加速访问:
您可以使用 hf 命令行工具直接下载模型和数据集。例如,下载 TinyLlama 模型:
校准数据集同理下载:
创建并运行压缩 Notebook
根据您的使用场景下载相应的示例 notebook:如果使用数据集,则下载 calibration compressor notebook,否则下载 data-free compressor notebook。在 JupyterLab 页面点击上传按钮,将下载的 notebook 文件上传。
上传压缩后的模型到仓库
压缩完成后,将压缩后的模型上传回模型仓库。详细步骤请参见使用 Notebook 上传模型。
- 保存模型和 tokenizer。如果您想修改输出名称,可以修改此行。
部署并使用压缩模型进行推理
您使用 LLM Compressor 创建的量化和稀疏模型是通过 compressed-tensors 库(Safetensors 的扩展)保存的。压缩格式与模型的量化或稀疏类型相匹配。这些格式在 vLLM 中原生支持,能够通过 Alauda AI Inference Server 使用优化的部署内核实现快速推理。
请按照创建推理服务中的说明完成此步骤。