5 篇文章带有标签 “model-conversion”

在 MLX 上使用 LoRA / QLoRA 微调 Text2SQL(七):MLX 微调的模型转换为 GGUF 模型

将 MLX 微调的模型转换为 GGUF 模型最大的意义是可以融入 GGUF 的生态系统,可以在更多的平台上使用。

LoRA 微调

大模型 Mistral-7B-v0.1

数据集 WikiSQL

修改脚本 mlx-examples/lora/data/wikisql.py

if __name__ == "__main__":
    # ......
    for dataset, name, size in datasets:
        with open(f"data/{name}.jsonl", "w") as fid:
            for e, t in zip(range(size), dataset):
                t = t[3:]
                json.dump({"text": t}, fid)
                fid.write("\n")

执行脚本 data/wikisql.py 生成数据集。

data/wikisql.py

安装 mlx-lm

pip install mlx-lm

微调

ONNX Simplifier

onnxsim 本身只提供 constant folding/propagation(即消除结果恒为常量的算子)的能力,而图变换(即合并 conv 和 bn 等等)的能力是由 onnxsim 调用 onnx optimizer 的各种 pass 实现的。constant folding 和图变换同时使用时,很多隐藏的优化机会会被挖掘出来,这也是 onnxsim 优化效果出色的原因之一。例如 add(add(x, 1), 2) 在变换为 add(x, add(1, 2)) 之后就可以通过 constant folding 变为 add(x, 3),而 pad(conv(x, w, padding=0), add(1, 1)) 在经过 constant folding 变为 pad(conv(x, w, padding=0), 2) 后,就可以进一步融合成 conv(x, w, padding=2)。

安装

pip install -U pip
pip install onnx-simplifier

使用

命令

onnxsim input_onnx_model output_onnx_model

脚本集成 import onnx from onnxsim import simplify # load your predefined ONNX model model = onnx.

OpenVINO 目标检测

目标检测

激活 OpenVINO 开发环境

source openvino_env/bin/activate

预训练模型

  • ssd300 来自 PASCAL VOC2007 的 20 个类别:<omz_dir>/data/dataset_classes/voc_20cl_bkgr.txt

下载模型 $ omz_downloader --name ssd300 ################|| Downloading ssd300 ||################ ========== Downloading /home/wjunjian/openvino/openvino/samples/python/hello_reshape_ssd/public/ssd300/ssd300.tar.gz ... 100%, 95497 KB, 3917 KB/s, 24 seconds passed ========== Unpacking /home/wjunjian/openvino/openvino/samples/python/hello_reshape_ssd/public/ssd300/ssd300.tar.

OpenVINO 图像分类

同步推理

激活 OpenVINO 开发环境

source openvino_env/bin/activate

预训练模型

  • alexnet
  • googlenet-v1 来自 ImageNet 的 1000 个类别:<omz_dir>/data/dataset_classes/imagenet_2012.txt

下载模型 $ omz_downloader --name googlenet-v1 ################|| Downloading googlenet-v1 ||################ ========== Downloading /home/wjunjian/openvino/openvino/samples/python/hello_classification/public/googlenet-v1/googlenet-v1.prototxt ... 100%, 35 KB, 41370 KB/s, 0 seconds passed ========== Downloading /home/wjunjian/openvino/openvino/samples/python/hello_classification/public/googlenet-v1/googlenet-v1.caffemodel ...

OpenVINO 的工作原理

OpenVINO 工作流程

OpenVINO 包含一整套开发和部署工具,本工作流研究从设置和计划解决方案到部署的关键步骤。

🎃 0 计划和设置1 训练模型2 转换和优化3 调整性能4 部署应用程序

0 先决条件:计划和设置

选择您的主机和目标平台,然后选择型号。

确定环境和配置

该工具套件支持 Linux*、Windows*、macOS* 和 Raspbian* 等操作系统。虽然表示形式和代码与目标设备和操作系统无关,但是您可能需要在特定环境中创建部署程序包。

支持的开发平台

  • 开发平台
    • 处理器
      • 第 6 代至 12 代智能英特尔® 酷睿™ 处理器
      • 第 1 代至第 3 代英特尔® 至强® 可扩展处理器
    • 操作系统
      • Ubuntu 18.04 LTS(64 位)
      • Ubuntu 20.04 LTS(64 位)
      • Windows® 10(64 位)
      • Windows* 11(建议用于第 12 代智能英特尔® 酷睿™ 处理器)
      • Red Hat* Enterprise Linux* 8(64 位)
      • macOS* 10.15(64 位)
  • 目标平台
    • 处理器 CPU GPU VPU GNA
    • 操作系统

支持的部署设备 Supported Model Formats 优先选用 FP16,它是最普遍的且性能最佳。 Supported Input Precision 优先选用 U8,它是最普遍的。