[Kohya_ss] M2 에서 GPU 사용하여 학습하기 (+ 환경설정, 세팅값)

Juhyang·2023년 9월 9일
0

나는 Macbook M2를 사용중인데, CPU로 학습해서 시간이 오래걸렸다.

GPU로 학습하기 위해선 별도의 설정이 필요하고, 바꿔야 할 설정이 많았다 ㅠㅠ
kohya 는 macos 에서 너무 별로 인듯 하다..
자료도 많이 없고 ;ㅅ;
설정할것도 디게 많다....
여러번의 삽질을 통해서 결국 GPU로 학습할 수 있었다....

열일중인 GPU 선생님..
30개의 사진을 1500번 학습하는데에 40분정도가 걸렸다.
흠 .. 근디 빠른거 맞나요?
느린거같은데..ㅠㅠ 뉴비라 잘모름.

1. Anaconda 설치

일단 가상환경을 activate 해준 상태에서 모든 설치를 시작해야된다.

sorce venv/bin/activate 

파이토치 설치를 위해 아나콘다를 설치해주자.

conda install -n base conda=23.1.0

2.Pytorch 설치

파이토치를 설치해주자.

# 최신버전 자동 설치 
conda install -c pytorch pytorch

설치되었다면,
1. 파이토치가 잘 설치되었는지
2. mps가 현재 환경에서 지원되는지 확인해보자.

>>> python
>>> import pytorch
>>> print(torch.backends.mps.is_built())
>>> True
>>> print(torch.backends.mps.is_available()) 
>>> True

이렇게 둘 다 True 가 나오면 1,2번 조건을 만족하여 GPU를 사용 가능하다.

3. Kohya_ss 에서 MPS 활성화 해주기

파이토치 설치했다고 냅다 학습시키면 그냥 CPU로 학습하는걸 볼 수 있다.
답답해죽음

이유는 기본설정이 CPU로 되어있기 때문에 ㅎ_ㅎ!
설정을 MPS로 바꾸어줘야한다.

accelerate config

여기서 나오는 물음에 차례대로 이렇게 선택해주자.

1. this machine
2. MPS
3. NO
4. NO

자 근데!!!!!!
여기서 두번째 물음에서 MPS 옵션 자체가 없는 경우가 있다.
그게 바로 나 ㅠㅠ

No distributed training
multi-CPU
multi-GPU
TPU

이렇게만 나오는 경우가 있다.
이럴때는 직접 설정 파일을 찾아서 수정해주자.

/.cache/huggingface/accelerate/default_config.yaml 파일을 찾아서 들어가준다.

아래는 내 설정인데, 이렇게 바꿔주면 된다.
distributed_type: "MPS" 로 바꾸는게 뽀인트

command_file: null
commands: null
compute_environment: LOCAL_MACHINE
deepspeed_config: {}
distributed_type: "MPS"
downcast_bf16: "no"
dynamo_backend: "no"
fsdp_config: {}
gpu_ids: all
machine_rank: 0
main_process_ip: null
main_process_port: null
main_training_function: main
megatron_lm_config: {}
mixed_precision: "no"
num_machines: 1
num_processes: 1
rdzv_backend: static
same_network: true
tpu_name: null
tpu_zone: null
use_cpu: false

이제 학습해보러 갈 시간~ Kohya_ss 를 띄워주자.

./gui.sh

근데 기본 설정으로 돌리면 이거안된다 저거안된다 에러 엄청뜬다.
그래서 M2 환경에 맞게 트레이닝 세팅을 좀 바꿔주어야함
다음편에...

profile
kurly - commerce web development

0개의 댓글