딥러닝6 [딥러닝] 역전파를 단 한 줄로 가능하게 해주는 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) ![](https://wikid…wikidocs.net ReLUReLU는 대표적인 활성화함수다. ReLU는 엄밀히 따지면 비선형함수긴 하지만 양수에 대해선 선형인 함수다. https://pytorch.org/docs/stable/generated/torch.nn.ReLU.html ReLU — PyTo.. 2024. 5. 5. Colab 에서 cuda error: device-side assert triggered 등 CUDA error 해결 (huggingface 관련) 이번 포스팅도 에러 관련 짧은 포스팅이 될 것이다. 나는 딥러닝을 코랩에서만 돌리기 때문에 코랩에서의 오류라고 정리했지만, 구글링을 해보면 로컬 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. 딥러닝 - Pytorch 의 Sampler 정리 서론 프로젝트를 진행하면서 구글의 BERT를 사용하여 쇼핑 리뷰의 감성을 이진 분류하는 작업을 하고 있었다. https://yonghee.io/bert_binary_classification_naver/ BERT로 네이버 영화 리뷰데이터 분류하기 사전학습된 BERT 모델만 이용하여 다른 전처리 없이 문장 긍부정 분류를 할 수 있을지, 귀추가 주목됩니다. yonghee.io 작업에 굉장히 많은 도움을 받은 코드이다. 영화 리뷰데이터를 쇼핑 리뷰데이터로 바꾸고 필요한 부분만 가져다가 쓰면서 열심히 작업을 하였고, 결과까지 원활하게 도출해낼 수 있었다. 그런데 가장 중요한 부분에서 내가 무언가 착각을 하였는지 내 생각과는 다르게 전개되었다. 모델을 훈련하고 테스트한 결과 0.94의 정확도를 보였으나, 긍정-부.. 2023. 8. 11. 이전 1 다음