Goekdeniz-Guelmez/mlx-lm-lora
Train Large Language Models on MLX.
MLX-LM-LoRA
それは何か Apple シリコン Mac 上で MLX フレームワークを使用して大規模言語モデル(LLM)をファインチューニングできる Python ライブラリです。効率的なトレーニング手法(LoRA、DoRA、全精度、量子化トレーニング(QLoRA、QAT))と、多数の嗜好ベースの最適化アルゴリズム(DPO、ORPO、RLHF、PPO など)を追加します。
なぜ重要か LLM のトレーニングには通常、強力な GPU が必要です。MLX-LM-LoRA は、Apple GPU と MLX に組み込まれた低メモリのテクニックを活用して、MacBook や Mac Studio で同じことを可能にします。また、最新のアライメントトレーニング技術の多くをバンドルしているため、研究者や愛好家は 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 ハブのモデル(例:Goekdeniz-Guelmez/Josiefied-Qwen2.5-0.5B-Instruct-abliterated-v1)に置き換え、<dataset-id> を mlx-community ハブのデータセットに置き換えます。
使用方法
- トレーニングモードを選択 –
--train-mode sft、dpo、orpo、dsla、grpoなど。 - 適応タイプを選択 –
--train-type lora(デフォルト)、dora、またはfull。 - オプションの量子化 – QAT の場合は
--qat-enableを追加し--qat-bits(2-16)を設定、QLoRA の場合は--quantize 4を使用。 - データセットを提供 – ライブラリは、プロンプト/完了ペア(SFT)または嗜好トリプル(
prompt、chosen、rejected)を含む JSONL ファイルを受け入れます。 - 実行 – 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 で新しいアライメント目的をプロトタイプする研究者。
- GPU クラウドをレンタルせずに特定のタスク用に小さな LLM をファインチューニングしたい開発者。
- 一般的なハードウェアで LLM トレーニングパイプラインをデモする教育者。
TL;DR: MLX-LM-LoRA は、Apple シリコンに焦点を当てたフル機能のライブラリで、LoRA、量子化、および幅広い嗜好ベースのトレーニングアルゴリズムを使用して LLM をファインチューニングでき、すべてシンプルな CLI で実行できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト