딥러닝7 [딥러닝] Layer Normalization과 Batch Normalization 정리 이번 포스팅에선 Neural Network에서 자주 사용되는 두 정규화 기법인 Layer Normalization과 Batch Normalization에 대해 정리해보고자 한다. 우선 Normalization이 왜 필요한지는 다소 직관적으로 느껴진다. Neural Network, 즉 인공신경망 모델에서 모델을 학습시키는 과정은 역전파다. 역전파를 위해선 경사하강법이 사용되고, 경사하강법이란 정답과 모델의 예측치의 차이를 바탕으로 구해진다. 그런데 만약 학습시키는 데이터마다 스케일이 다르다면? 정답과 예측치의 차이가 들쑥날쑥할 것이고, 그러면 역전파로 인해 모델의 가중치도 들쑥날쑥 바뀔 것이다. 또한 인공신경망이 사용하는 활성화함수에 따라서 Gradient 소실/폭발 문제가 발생할 수도 있다. 역전파에 대.. 2025. 2. 17. [딥러닝] 역전파를 단 한 줄로 가능하게 해주는 backward() 함수 탐구 많은 사람들이 딥러닝 이론을 공부할 때 가장 열심히 공부하는 부분이 역전파 부분일 것이다.그 이유는 단순한데, 역전파가 있어야 딥러닝이고 또 그 과정이 만만치 않게 복잡하기 때문이다.https://www.youtube.com/watch?v=tIeHLnjs5U8&ab_channel=3Blue1Brown 내가 공부하면서 본 유튜브 채널 중 하나인데, 간단한 예제로 역전파 계산 방법에 대해서만 10분짜리 영상이 나올 정도로 그 계산이 쉽지 않다. 미분이 떡칠되어 있기 때문이다. 그래서 이 부분으로 필기시험을 본다면 아마 그 시험에서 가장 계산량이 많은 파트일 것이다. 그런데 코딩을 하게 되면 말이 다르다. 가장 어려운 부분인 기울기 계산은 pytorch 기준으로는 backward() 함수 한 줄이면 끝나고, .. 2024. 11. 20. [딥러닝] 생성형 AI (LLM) 에서 Loss는 어떻게 계산될까 LLM을 그래도 1년 남짓 공부하면서 종종 들었던 의문이 하나 있다. LLM(트랜스포머 아키텍처) 특정 단어 뒤에 어떤 단어가 오는지 확률로 계산한다. 대강 이런 식으로. 그래서 LLM은 가장 확률이 높은 단어를 반환하거나, top_k, top_p 샘플링과 temperature 같은 파라미터를 통해 더욱 다양한 답변을 내놓거나 그렇지 않도록 설정할 수 있다. 하지만 LLM을 훈련, 특히 QA 데이터셋 (질문 - 답변)으로 LLM을 훈련시키고 있는 상황을 생각해보자. 질문 : 나는 오늘 기분이 정말 별로였어. 내가 무엇을 하면 좋을지 추천해줘.답변 : 기분을 좋게 만드는 방법엔 음악 듣기, 게임하기, 운동하기 등이 있습니다. 위와 같은 형식으로 훈련을 시킨다고 치면, LLM은 가장 자연스러운 답변을 생성.. 2024. 6. 22. [딥러닝] 활성화 함수 정리 (ReLU, softmax) 오늘은 딥러닝의 인공신경망에서 활용되는 활성화 함수 중 가장 많이 사용되는 ReLU와 Softmax 함수에 대해서 정리해보고자 한다.참고자료:https://wikidocs.net/24987 07-02 인공 신경망(Artificial Neural Network) 훑어보기인공 신경망에 대한 기본적인 내용들을 정리합니다. ## 1. 피드 포워드 신경망(Feed-Forward Neural Network, FFNN)  이번 포스팅도 에러 관련 짧은 포스팅이 될 것이다. 나는 딥러닝을 코랩에서만 돌리기 때문에 코랩에서의 오류라고 정리했지만, 구글링을 해보면 로컬 gpu를 사용하시는 분들도 이런 오류를 겪으신 분들이 많은 것 같다. 나는 trainer API에서 train을 사용할 때 오류가 발생했는데, 또 신기한 게 실행할 때마다 미세하게 다른 오류가 발생했다. 발생한 오류들은 다음과 같다. CUDA error: device-side assert triggered CUBLAS_STATUS_NOT_INITIALIZED Error 대충 이런 식의 Runtime Error 였는데, 워낙 많은 이유로 에러가 발생하다보니 사람마다 말하는 해결법도 아주 다양했다. 하지만 여러 깃헙과 사이트들을 뒤져본 결과 대략적인 가닥을 잡을 수.. 2023. 9. 30. Trainer API 에서 compute_metrics 사용할 때 CUDA out of memory 해결법 간밤에 KoGPT 를 사용해서 Colab에서 koGPT 를 파인튜닝하고 있었는데, 자꾸만 아래 오류가 발생했다. 처음에는 배치 사이즈나 tokenizer 과정에서 문제가 생겼나 싶어서 이 부분을 고쳐봤으나 인터넷에서 찾을 수 있는 모든 자료를 다 시도해봐도 오류를 벗어날 수 없었다. 내가 시도해본 방법은 1) 커널 재시작 2) batch_size 1까지도 줄여서 적용 3) Garbage Collect import gc gc.collect() 4) 캐시 청소 torch.cuda.empty_cache() 5) import os os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:" 이 정도 방법들이었는데 한국어로 찾아볼 수 있는 거의 모든 방법을 시도해봤.. 2023. 9. 5. 이전 1 2 다음