無料のColab T4と24GB MacでAppleのオンデバイス3Bモデル用LoRAアダプタを学習する

Reddit r/LocalLLaMA / 2026/4/21

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical UsageModels & Research

要点

  • 著者は、Appleのオンデバイス3Bモデルに対するLoRAアダプタ学習を通じて精度向上を検証しつつ、Appleの学習ツールキットがどれだけ一般的なPCで動かせるかを理解しようとしています。
  • 通常のLoRAはメモリ負荷が大きく24GB MacではOOMになったため、メモリマップ読み込みと4ビット量子化を組み合わせた独自のQLoRAパイプラインを構築し、無料のColab T4やローカルMacでも約1GB RAM・約5GB GPUで動くようにしました。
  • A100、T4(QLoRA)、24GB Mac(QLoRA)で学習したLoRAは同等の精度を示し、最小の学習データでも精度を約40%から約75%へ改善し、リトリーバルと組み合わせると約86%まで到達しました。
  • バグとして、CLIツール呼び出しのたびにアダプタフレームワークが約160MBのコピーをSIP保護キャッシュに無言で書き込み、後片付けをしない問題を報告しています。約300回のベンチマークで不可視の269GBのディスク増加が発生し、Recovery Modeでのみ確認できました(Appleが確認)。
  • 再現用の学習ノートブックやMPSセットアップ手順は、GitHubリポジトリで公開されています。

最近、Appleのオンデバイス3Bモデルを使ってシェルアシスタントを作り、精度をベンチマークすることについて投稿しました。ベアモデルと動的リトリーバルを使いました。

次のステップとして、モデル用のLoRAアダプタを学習してみたいと思いました。精度が向上するかを確かめたかったのはもちろんですが、それ以上に、Appleの学習ツールキットがどんなものかを理解し、アクセス可能なハードウェアで動かせるのかを確認したかったのです。興味がある人がいれば共有したいと思いまして。

Appleは12GBのチェックポイント付きのPython学習ツールキットを提供しています。通常のLoRAは、モデルを読み込むだけで約24GB必要で、学習にはさらに15GBのGPUが必要です。手元の24GB MacはOOM(メモリ不足)になりました。そこで、カスタムのQLoRAパイプラインを作りました。メモリマップ読み込み+4-bit量子化により、RAMを約1GB、GPUを約5GBにまで削減します。無料のColab T4で動き、また24GB Macでもローカルで動作します。

Macでの学習に関しては特に:bitsandbytesはネイティブのMetalカーネルをマージするようになりました(PR #1875、まだリリースには入っていないのでgitからインストール)。CPUへのフォールバックよりもローカル学習が約2倍速くなります。それでもT4よりは約4倍遅いですが、完全にローカルで、アップロード不要です。

3つの経路はいずれも同等のアダプタを生成します。A100 LoRA、T4 QLoRA、Mac QLoRAで、ノイズの範囲内で同じ精度になります。学習データを最小限にしても、アダプタはベアモデルを約40%から約75%に改善し、リトリーバルと組み合わせると約86%になります。まだ学習データを最適化していないので、さらに余地があるはずです。

**知っておく価値のあるバグ:** アダプタの仕組みが、CLIツールから呼び出すたびに、SIPで保護されたキャッシュへ約160MBのアダプタのコピーを黙って書き込みます。クリーンアップはありません。私は約300回のベンチマーク実行で、見えないディスク使用量が269GBまで増えました。Recovery Modeでのみ確認できます。Appleはこのバグを認めています。

学習ノートブック、QLoRAスクリプト、MPSセットアップ手順はすべて、興味がある人向けにリポジトリにあります。https://github.com/es617/hunch/tree/main/training

詳細はこちら:https://es617.dev/2026/04/19/training-apple-on-device-llm.html

submitted by /u/es617_dev
[リンク] [コメント]