Goekdeniz-Guelmez/mlx-lm-lora
Train Large Language Models on MLX.
MLX-LM-LoRA
它是什么 一个 Python 库,允许你在 Apple 芯片 Mac 上使用 MLX 框架微调大型语言模型(LLM)。它添加了一套高效的训练方法——LoRA、DoRA、全精度和量化训练(QLoRA、QAT)——以及大量基于偏好的优化算法(DPO、ORPO、RLHF、PPO 等)。
为什么重要 训练 LLM 通常需要强大的 GPU。MLX-LM-LoRA 使得在 MacBook 或 Mac Studio 上也能做到这一点,利用 Apple GPU 和 MLX 内置的低内存技巧。它还捆绑了许多最新的对齐训练技术,因此研究人员和爱好者可以在不离开 Apple 生态系统的情况下,尝试基于人类反馈的强化学习、偏好优化和量化感知训练。
主要特性(根据 README 描述)
- 模型支持:适用于上游 MLX-LM 项目支持的任何模型(Llama、Mistral、Qwen、Gemma、OLMo、MiniCPM 等)。
- 训练方法:
- LoRA(低秩适配器)和 DoRA(权重分解 LoRA)
- 全精度微调
- 量化训练(4、6、8 位 QLoRA)
- 用于 SFT、DPO、ORPO、DSLA 的量化感知训练(QAT)
- 优化算法:
- 监督微调(SFT)
- 直接偏好优化(DPO)
- 比值比偏好优化(ORPO)
- 方向与相似性感知潜在对齐(DSLA)
- 对比偏好优化(CPO)
- 组相对策略(GRPO、GSPO、Dr. GRPO、DAPO)
- 基于人类反馈的强化学习变体(RLHF-Reinforce、PPO、KL-PO)
- 自定义偏好模型:你可以训练自己的偏好模型用于在线训练循环。
- 内存技巧:梯度累积、检查点、循环训练保护、编译优化器更新,以保持 Apple 芯片上的 RAM 使用率低。
- 配置:所有选项通过命令行标志或 YAML 配置文件暴露;标志覆盖配置。
安装
pip install -U mlx-lm-lora
该包发布在 PyPI 上,并采用 Apache 2.0 许可证。
快速开始
mlx_lm_lora.train \
--model <model-id> \
--train \
--data <dataset-id> \
--iters 600
将 <model-id> 替换为 MLX-LM hub 中的模型(例如,Goekdeniz-Guelmez/Josiefied-Qwen2.5-0.5B-Instruct-abliterated-v1),将 <dataset-id> 替换为 mlx-community hub 上的数据集。
如何使用
- 选择训练模式 –
--train-mode sft、dpo、orpo、dsla、grpo等。 - 选择适配类型 –
--train-type lora(默认)、dora或full。 - 可选量化 – 添加
--qat-enable并设置--qat-bits(2-16)用于 QAT,或使用--quantize 4用于 QLoRA。 - 提供数据集 – 库接受 JSONL 文件,包含提示/完成对(SFT)或偏好三元组(
prompt、chosen、rejected)。 - 运行 – CLI 流式显示进度并自动写入检查点。
示例:LoRA SFT
mlx_lm_lora.train \
--model Goekdeniz-Guelmez/Josiefied-Qwen2.5-0.5B-Instruct-abliterated-v1 \
--train \
--train-mode sft \
--train-type lora \
--data mlx-community/hermes-3 \
--batch-size 4 \
--learning-rate 1e-5 \
--iters 1000
示例:启用 QAT 的 DPO
mlx_lm_lora.train \
--model <model> \
--train \
--train-mode dpo \
--data <pref-dataset> \
--qat-enable \
--qat-bits 4
在哪里找到更多
所有笔记本、示例 YAML 配置和逐步演练都位于配套仓库:Goekdeniz-Guelmez/mlx-lm-lora-example-notebooks。
谁可能使用它
- 在 Mac 上原型设计新对齐目标的研究人员。
- 希望为特定任务微调小型 LLM 而无需租用 GPU 云的开发者。
- 在普通硬件上演示 LLM 训练流程的教育工作者。
TL;DR:MLX-LM-LoRA 是一个功能齐全、专注于 Apple 芯片的库,用于微调 LLM,支持 LoRA、量化以及广泛的基于偏好的训练算法,全部可通过简单的 CLI 运行。
相关
- 项目
- 项目
- 项目
- 项目
- 项目