跳到内容

转换

包含内容

本文档将教会你

  1. 如何将使用外部投机解码仓库训练的模型转换为 Speculators 格式。
  2. 分别如何使用 CLI 和 Python API 的 convert/convert_model 入口点。
  3. 使用各种选项转换 Eagle 和 HASS 模型的逐步示例。

在阅读本文档之前,你应该熟悉

  • Speculators CLI 和 Python 入口点约定(参见 入口点)。
  • 你正在转换的投机解码仓库的基本结构。
  • 与你的 Speculator 关联的基础模型。

概述

convert 入口点使用户能够将使用 Eagle 或 HASS 等格式训练的投机解码模型转换为标准化的 Speculators 格式。这种转换可以无缝集成到更广泛的 Speculators 生态系统中,包括 vLLM 推理部署。

支持的转换格式

转换可通过 CLI 和 Python API 进行。

用法

CLI

speculators convert MODEL \
  --algorithm ALGORITHM \
  --algorithm-kwargs KWARGS \
  --verifier VERIFIER \
  --output-path OUTPUT_PATH \
  --validate-device DEVICE

位置参数

  • MODEL: Speculator 模型来源(本地路径、Hugging Face ID 或 URL)。

必需参数

  • --algorithm: 用于转换的算法:eagleeagle3
  • --verifier: 用于验证和完成 Speculator 的基础模型(本地路径、Hugging Face ID 或 URL)。

可选参数

  • --output-path: 保存转换后模型的目录(默认值:converted)。
  • --validate-device: 用于进行转换后验证的设备(默认值:cpu)。
  • --algorithm-kwargs: 转换算法的附加参数,作为键值对的 JSON 字符串传递。常见参数包括
  • layernorms: 添加层归一化层(Eagle v1/v2、HASS)
  • fusion_bias: 为融合的全连接层添加偏置(Eagle v1/v2、HASS)
  • norm_before_residual: 在残差块之前进行归一化(Eagle v3)

Python API 用法

from speculators.convert import convert_model

convert_model(
    model=MODEL,
    algorithm=ALGORITHM,
    verifier=VERIFIER,
    output_path=OUTPUT_PATH,
    validate_device=DEVICE,
    **algorithm_kwargs
)

必需参数

  • model: 要转换的源模型(本地路径、Hugging Face ID 或 URL)。
  • algorithm: 要使用的转换算法(例如,eagleeagle3)。
  • verifier: 用于附加验证的基础模型(本地路径、Hugging Face ID 或 URL)。

可选参数

  • output_path: 保存转换后模型的目录(默认值:converted)。
  • validate_device: 用于进行转换后验证的设备(默认值:cpu)。
  • algorithm_kwargs: 转换算法的附加参数,作为键值对的 JSON 字符串传递。常见参数包括
  • layernorms: 添加层归一化层(Eagle v1/v2、HASS)
  • fusion_bias: 为融合的全连接层添加偏置(Eagle v1/v2、HASS)
  • norm_before_residual: 在残差块之前进行归一化(Eagle v3)

示例

敬请期待!本节将提供使用 CLI 和 Python API 转换模型的详细示例,包括各种配置和选项。

其他说明

  • 为了成功转换,请确保 verifier 模型与 Speculator 模型期望的架构相匹配。
  • 如果在转换过程中遇到问题,请尝试使用 -validate 运行以触发形状和结构检查。
  • 转换后的模型可以直接使用 vLLM 等工具加载和提供服务。