하루종일 튜닝방법 찾고 고생하다가 nvidia gpu가 없으면 안되는 이슈를 겪고 포기하던 찰나
애플의 mlx 프레임워크를 사용하고 해결했다. 진짜 애플님들께 감사드린다. 라마 튜닝은 맥북에서 정말 미치도록 쉽다
mlx는 대충 애플실리콘 잘돌아가게 만든 pytorch라고 생각하면 된다. 사용법은 파이토치와 완전 똑같다. 함수이름만 다름.
1. 초간단 개념 정리
llm을 파인튜닝할 때 보통 lora라는놈을 이용한다
이 lora는 모델 자체를 변형시키지 않고, 모델이 어떻게 변해야되는지에 대한 데이터를 내놓는다. 그걸 adapter라고 한다
그리고 adapter와 기존 모델을 fuse 하면 새로운 모델이 나온다.
2. 설치
pip install mlx mlx-lm
3. config.yaml 파일 작성
아래링크를 따라 참고해서 작성한다.
https://github.com/ml-explore/mlx-examples/blob/main/llms/mlx_lm/examples/lora_config.yaml
config 파일 안에 다운받은 llama 폴더 경로와, dataset 폴더 경로를 입력해준다.
llama는 어떻게 다운받고 dataset은 어떻게 작성해야 하는지 모르겠다?
둘다 huggingFace 라는걸 이용해서 다운받자. 인공지능의 깃허브 같은 곳이다.
사이트 들어가서 가입하고 토큰이라는걸 만들자. 토큰만들 때 옵션 이것저것 체크해줘야 다운된다.
다운받는법은 허깅페이스에 잘 나와있으니 참고
4. fine tuning 시작
mlx_lm.lora --config config.yaml
한줄이면 끝이다. 진짜 미쳣다.
5. Fuse 모델 만들기
튜닝을 시작하면 시작한 폴더안에 adapters라는 폴더가 만들어진다.
mlx_lm.fuse --model 모델경로 --adapter-path 어댑터경로
--model 경로 디폴트값은 mlx_model이다.
adapter-path도 기본값이 adapters인듯? 파인튜닝 너무 오래걸려서 테스트는 못해봄.
퓨즈가 성공되면 lora_fused_model로 저장된다
출저 :
https://github.com/ml-explore/mlx-examples/blob/main/lora/README.md
https://medium.com/@anchen.li/fine-tune-llama3-with-function-calling-via-mlx-lm-5ebbee41558f
'Python' 카테고리의 다른 글
파이토치 큰그림 정리 (3) | 2024.09.05 |
---|---|
파이썬에서 fft를 출력할때 고려해야할 사항 (0) | 2024.05.16 |
ImportError: attempted relative import with no known parent package (0) | 2023.12.14 |
댓글