Olive 微调

准备开发环境

  1. 执行命令 source "${HOME}/conda/etc/profile.d/conda.sh"

  2. 执行命令 conda activate hfdev

  3. 完成后你的命令提示符将从 mgyslm@A100-01:~$ 变成 (hfdev) mgyslm@A100-01:~$.
    (hfdev) 表明已经进入了安装好 olive 工具链的环境, 否则无法执行 olive 相关命令

上传数据集文件

将需要用来训练的数据集上传到 /home/mgyslm/zhihu/datasets 目录下, 并重命名为 datasets.json

检查 olive 微调配置文件

配置文件路径 /home/mgyslm/zhihu/fine-tuning/olive-config.json

微调基本参数已设置完成, 除非特殊情况否则不需要修改配置文件

检查原始模型

原始模型路径 /home/mgyslm/zhihu/models/microsoft/Phi-3-mini-4k-instruct

原始模型已下载完成, 除非特殊情况否则不需要修改原始模型

删除旧的缓存文件

/home/mgyslm/zhihu/models-cache

/home/mgyslm/zhihu/fine-tuning/cache

启动微调

  1. 切换到微调工作目录 cd /home/mgyslm/zhihu/fine-tuning

  2. 启动微调 olive run --config olive-config.json

微调根据数据集尺寸不同, 可能需要 5~10 分钟. 如果你无聊的话可以创建一个新终端, 输入命令 watch -n1 nvidia-smi 监控 A100 有没有在卖力干活

检查成果

微调模型的输出路径在 /home/mgyslm/zhihu/models-cache/microsoft/phi3-mini-finetuned/lora-merge_adapter_weights-builder/gpu-cuda_model

由于 Olive 微调输出格式为微软 onnx 格式, 因此需要使用配套的 onnxruntime-genai 运行, 不支持使用 ollama 直接运行

  1. 将文档包中的 phi3-qa.py 程序上传到服务器

  2. 执行程序 python ./phi3-qa.py -m /home/mgyslm/zhihu/models-cache/microsoft/phi3-mini-finetuned/lora-merge_adapter_weights-builder/gpu-cuda_model
    现在和你对话的就是微调后的 AI

  3. 如果你还想更换数据集对比微调结果, 请将 gpu-cuda_model 移动到其它地方并重命名, 避免被下次微调结果覆盖