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로 실행할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트