한 곳의 전체 파이프라인
다섯 레슨의 조각들; 그것들을 함께 두는 한 레슨. 작은 도메인 데이터셋에 7B instruct base 를 fine-tune, adapter 를 배포 가능 모델에 merge, mlx-lm 의 HTTP server 통해 서빙, openai-python 에서 호출. 단일 32 GB Mac 의 end to end, GPU 빌릴 필요 없음.
전체 시퀀스
- Base 골라.
mlx-community/Mistral-7B-Instruct-v0.3-4bit— 7B Q4, ~5 GB unified memory 에 fit, 괜찮은 instruction following baseline. - 데이터 준비. Chat 형식 (lesson 2) 의 작은
train.jsonl+valid.jsonl빌드. 100-300 예제가 demo 엔 충분. - 학습. Lesson 3 의 sane 기본으로
mlx_lm lora --train실행. Val loss 봐; plateau 되면 멈춤. - Merge. Adapter 를 base 에 fold 위해
mlx_lm fuse실행, 새 모델 디렉토리 생산. - 서빙. 한 터미널에서
mlx_lm server --model ./my-fused시작. - 사용. 다른 터미널에서
openai-python에서 server hit — fine-tune 된 모델이 이제 도메인의 voice 로 답.
이 운동이 너에게 남길 것
세 가지. 첫째, 다시 참고할 수 있는 동작 artifact — 파일 레이아웃, YAML config, 학습 명령, fuse 명령, server 명령. 둘째, 이 전체 파이프라인이 오후에 한 사람 한 Mac 이지, 팀-과-클라우드 프로젝트 아니라는 muscle memory. 셋째, iterate 할 수 있는 baseline — 다음 fine-tune 은 이 walkthrough 의 변주이지 처음부터의 rebuild 아냐.
Walkthrough 가 생산하는 artifact
./my-data/{train,valid}.jsonl— 큐레이트 된 데이터셋../my-lora.yaml— 학습 config (한 source of truth)../my-adapter/— 학습된 LoRA adapter (작은 파일, 실제 학습된 correction)../my-fused/— merged 배포 가능 모델 디렉토리.- OpenAI-호환 어떤 거에든 fine-tune 서빙하는
http://localhost:8080/v1의 HTTP endpoint.
여기서 어디로
다른 사람들이 pull 할 수 있게 하고 싶으면 --upload-repo 로 fused 모델을 자기 mlx-community-style HF repo 에 push. 또는 계속 iterate — 도메인의 다른 슬라이스에 두 번째 adapter 학습하고 추론에서 비교. 또는 내장 server 가 한계 hit 했을 때 worker 관리 가진 진짜 FastAPI 서비스에 fine-tune wrap 하려고 prod.lesson1 로 jump.