이잉간이 또 병 도졌네 싶은데
궁금한데 설명이 없으니 해봐야지

예~~~~엣날에 Gradient checkpointing 관련 글을 한 번 본 적이 있었는데
그러고나서인가 걍 끄고 살았음
동작 원리를 설명한 gif도 봤던거 같은데 별 차이 없네 라고 생각하고 또 고려 안했고

근데 LoRA에서 LoCon으로 바꾸니까 상황이 달라짐
램을 한계까지 줄다리기 해대면서, 어쩔땐 16에포치에 4시간 쓰고 추가 4에포치에 6시간을 쓰는 거지같은 일도 벌어지고 해서 랭크를 내릴까 배치를 내릴까 하다가
이 옵션이 다시 언급되니 한 번 비교를

모아서 이야기할거니까 일단 스샷부터 좌라랔

언급한 요소 외에는 모두 동일. 재료부터 해상도까지. 배치를 바꿈으로 총스텝수만 달라짐

Gradient checkpointing - on/off
배치 - 1/2/4/8

옵션 off 배치 1


옵션 off 배치 2


옵션 off 배치 4


옵션 off 배치 8


휴식시간

이 아니고 스크립트만 켜두었을 때


옵션 on 배치 1


옵션 on 배치 2


옵션 on 배치 4


옵션 on 배치 8


특별히 스샷타이밍을 지정한건 아니고
비램사용량을 볼려고 했던거라 작업관리자 그래프가 꽉 차면 대충 찍었음

당연한 소리지만 이 스샷만 찍고 학습은 중단해뜸 ㅋ

학습중 아닐때 - 

옵션 off 배치 1 - 10.6GB

옵션 off 배치 2 - 14.5GB

옵션 off 배치 4 - 23.5GB + 4GB

옵션 off 배치 8 - 23.5GB + 16GB

옵션 on 배치 1 - 6.7GB

옵션 on 배치 1 - 7.2GB

옵션 on 배치 1 - 9.6GB

옵션 on 배치 1 - 14.4GB


옵션을 꺼 두었을 땐 배치 4부터 터져서 메인램까지 침범하는데
옵션을 켜 놓으면 배치 8도 램이 남음
그러면 그만큼 느려질거 같은데...

실제로 Cuda 항목을 봐도 꺼 놓은쪽이 풀로드 지속하면서 존나 열일하는 것 처럼 보이는데
이게 비램이 터지면 아~~~무 쓸모없음. 조빠지게 일은 하는데 존나느림

8배치는 비교가 불가능할 정도로 속도차이를 보여줌. 8배치 할 생각은 없긴 하지만


그리고, 작업관리자에서 VGA 사용율은 그래프상의 3D항목을 대표값으로 보여주는 거라서
(흔히들 하는 질문중에 학습을 하는데 VGA는 노는데요? - 이 착각의 원인)
Cuda를 보라 라고 답을 하는데
역으로, 겜안하고 학습만 돌리는데 사용율이 치솟으면 조진거임
비램이 넘치면 뭣때문인지 3D 사용율이 덩달아 오르는데 이걸로도 확인가능하니까 3D가 올라가면 새로해라


동봉된 매뉴얼상에는 Gradient checkpointing의 적용 유무와 학습 결과는 아무 연관이 없다고 하니

... 믿어야게찌?

비램이 딸리거나, 다른 이유로 배치를 존나 높이고 싶으면 켜는걸 추천

나도 켜고 써야지


Gradient accumulate steps 값과 뭔 관련이 있는건지는 모르게뜸

일단 저 실험중에는 이 값은 1로 통일