전체 글 128

LLM / 딥러닝 모델 훈련에 필요한 메모리 적당히 추론하기

모델 파라미터 개수를 Ψ 개라고 하면, fp16으로 훈련 끝난 가중치가 저장되니까 2Ψ byte의 메모리가 든다.훈련할때는 얼마나 들까?훈련시 peak memory를 계산해야 한다.Model States(Optimizer States, Gradients and Parameters)  + Residual Memory Consumption 로 계산된다.훈련할 때는 대충 총 10배정도 메모리가 더 든다고 보면 될듯?

WHERE DID ALL THE MEMORY GO?

참고: ZeRO: Memory Optimizations Toward Training Trillion Parameter Models 공부한거 나중에 보기 편하게 적는다.어떤 특정 딥러닝 모델을 학습시킬 때 매우 많은 메모리가 필요하다 그래서 요즘엔 32bit 실수 FP32 를 FP16으로의 mixed-precision training을 이용한 최적화가 많이 진행된다. 1.5B 딥러닝 모델은 파라미터(가중치 행렬)은 FP16으로 3gb의 메모리를 필요로 한다. 32gb의 single gpu에서 이 모델을 학습 시킬 수 없다. 어떤 부분에서 이러한 메모리 누수(라고 표현하는게 옳은지는 모르겠지만)가 발생하는 것일까?(밑에 내용은 GPT로 번역시킨 것을 적당히 수정) 1. Model States: Optimiz..

o3는 codeforce live 문제를 도와줄까

2월 1일 기준 gpt o3가 나왔고 open ai 자기들 말로는 코드포스 2700점이라고 한다.내가 낸 플레4 constructive 문제 4분컷하더라https://www.acmicpc.net/source/share/998cd3f7568d4ebbaea56fc9f0a280ad어쨌든 이제 잘하는거 같은데...마침 오늘 라이브 코포가 있었고 live문제들에 관한 질문은 무시하거나 답변하지 않도록 내부 로직짜면 좋을거 같아서 물어봤다.말은 잘하는데 실제로 긁어서 물어보니까 별 검증 안하는거 같더라근데 딥2 A번도 꽤 오래 걸리던데... 그냥 에디토리얼 학습시켜서 잘한다고 뻥친건가 싶기도 하고.아니 근데 라이브 코포 시간대에 링크 들어가서 문제 매칭시켜서 유사도 높으면 답변 거절하게 만드는거 엄청 쉬울거 같은데..

Pipeline Parallelism - Weight Stashing / Vertical Sync

PP -> layer 단위로 모델을 쪼개서 적당히 컴퓨팅 자원을 나눠서 분산 학습을 하자. layer로 나눠봤자, layer별로 종속성이 있어서 분산 학습을 하는게 의미가 있을까 싶은데, batch로 쪼개고 학습한다고 생각하면 아이디어를 얻을 수 있다. 높은 Machine으로 갈 때마다 다음 layer로 생각하면 편하다. 이렇게 하면 layer끼리의 종속성도 해결하고, forward pass와 backward pass의 순서도 맞춰지면서 분산 컴퓨팅의 효과를 볼 수 있다. 세부적인 구현 방식인 Weight Stashing / Vertical Sync에 대해 생각해보자.(둘 다 옛날 방식이라 요즘엔 안 쓴다고 한다.) scheduling의 관점에서는 위의 그림이 최적이다. 저걸 잘 구현해야 하는데, 순차적..

Non-Autoregressive (NAR)

Attention / Transformer의 등장으로 엄청난 발전이 있었는데, 그러한 autogressive한 것들의 몇 가지 단점들을 처리하고자 나온 개념인거 같다.  https://nar-tutorial.github.io/acl2022/NAR-ACL%202022.pdf위 글을 보고 공부한 내용이다.  대충 입력에서 출력으로 생성할 때 출력에서 생성된 부분들도 recursive / repetitive하게 이용하여 다음 출력을 이용한다는 느낌이다.Question: What type of food do you like? Answer: I -> I like -> I like spicy -> I like spicy food like를 만들 때 이전 문장인 I가 영향을 주고, 마찬가지로 spicy를 만들 때 이..

kmo 2024 중등 1차 예선 풀이

https://www.kmo.or.kr/kmo/sub07.html 기하 빼고 풀어봤다.경시문제라 뇌깨는 용도로 좋은거 같다.중학교꺼라 쉬운거 같은데 제일 어려운 문제도 수능 준킬러 4점 정도 난이도고 대부분 수능 쉬운 4점 난이도인 것 같다. 아 물론 이건 내 지식수준에서 기준이고 (날먹한게 몇 개 있다.)  발상 난이도만 말한 것 이다.    아래는 재밌는 문제들 후기더보기정답:16번사이드로 날먹하면 0번 돌려서 같은 것 44개, 1,2 번돌려서 같은 것 2개씩이라48/3 =16으로 날먹할 수 있다.      더보기(x+y)^2+(y+z)^2+z^2=2n으로 바꾸고x+y=A,y+z=B,z=C로 두면(1,1,0) (0,1,1) (0,0,1)은 너무 당연하게도 linearly independent한 vet..

Math 2025.01.13