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 ハブのデータセットに置き換えます。

使用方法

  1. トレーニングモードを選択 – --train-mode sft、dpo、orpo、dsla、grpo など。
  2. 適応タイプを選択 – --train-type lora(デフォルト)、dora、または full。
  3. オプションの量子化 – QAT の場合は --qat-enable を追加し --qat-bits(2-16)を設定、QLoRA の場合は --quantize 4 を使用。
  4. データセットを提供 – ライブラリは、プロンプト/完了ペア(SFT)または嗜好トリプル(prompt、chosen、rejected)を含む JSONL ファイルを受け入れます。
  5. 実行 – 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 で実行できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト