Goekdeniz-Guelmez/mlx-lm-lora

Train Large Language Models on MLX.

해결하는 문제

MLX-LM-LoRA는 Apple Silicon에서 로컬로 대규모 언어 모델(LLM)을 미세 조정하기 위한 포괄적인 툴킷을 제공합니다. Llama, Mistral, Qwen, Gemma와 같은 모델을 다양한 효율적인 학습 방법과 선호도 최적화 알고리즘을 사용해 사용자 정의할 수 있으며, 비용이 많이 드는 클라우드 GPU 인프라의 필요성을 줄입니다.

작동 방식

이 프로젝트는 MLX 프레임워크를 활용하여 Mac 하드웨어에서 학습을 최적화합니다. LoRA(저랭크 적응), DoRA(가중치 분해 저랭크 적응), 전체 정밀도 학습, 양자화 학습(QLoRA)을 포함한 여러 학습 유형을 지원합니다.

다양한 학습 알고리즘을 구현했습니다:

  • 지도된 미세 조정(SFT): 표준 명령어 튜닝.
  • 선호도 최적화: DPO, CPO, ORPO, 온라인 DPO를 포함하며, 별도의 보상 모델이 반드시 필요하지 않아 인간의 선호에 모델을 일치시킵니다.
  • 강화 학습: GRPO, GSPO, Dr. GRPO, DAPO, RLHF Reinforce, PPO를 구현했습니다.
  • 양자화 인식 학습(QAT): 학습 중에 양자화 효과를 시뮬레이션하여 최종 양자화 모델의 성능을 향상시킵니다.

대상 사용자

  • AI 개발자: Apple Silicon에서 LLM을 실행하고 미세 조정하고 싶은 사람.
  • ML 엔지니어: 다양한 선호도 최적화 및 RLHF 기법을 로컬에서 실험하고 싶은 연구자.
  • 모델 커스터마이저: 양자화 후 모델 품질을 유지하기 위해 양자화 인식 학습을 통합하고 싶은 사용자.

주요 특징

  • Apple Silicon 최적화: MLX 프레임워크에 특화되어 설계되었습니다.
  • 광범위한 알고리즘 지원: 기본적인 SFT부터 고급 GRPO 및 PPO까지 모두 포함합니다.
  • QAT 통합: SFT, DPO, ORPO 학습 중 4~16비트 양자화 프로젝션을 지원합니다.
  • 유연한 구성: 명령줄 플래그와 YAML 구성 파일 둘 다 지원합니다.
  • 사용자 정의 보상 함수: GRPO 학습용으로 Python 기반의 사용자 정의 보상 함수를 정의할 수 있습니다.

관련

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