전체 글
[NLP] Google의 BERT 이해하기
BERT란 무엇인가 BERT(Bidirectional Encoder Representation from Transformer) : Google에서 만든 문맥을 고려한 Transformer 기반 고성능 텍스트 임베딩 모델. 임베딩 모델이 문맥을 고려할 때의 장점 👉🏻 다의어∙동음이의어를 구분할 수 있다. A: He got bit by Python(파이썬이 그를 물었다). B: Python is my favorite programming language(내가 제일 좋아하는 프로그래밍 언어는 파이썬이다). Word2Vec: 정적 임베딩, A에서의 'Python' 임베딩 == B에서의 'Python' 임베딩 BERT: 동적 임베딩, 트랜스포머 모델 기반이므로 문장의 각 단어를 문장 내 모든 단어들과 연결시켜 문..
[NLP] Transformer 알아보기 - (1) Encoder
* 이 글은 구부정.. 스터디의 일환으로, '구글 BERT의 정석' 책을 읽고 정리한 글입니다. 트랜스포머 소개 NLP의 다양한 문제들을 해결하기 위해 주로 사용되었던 RNN과 LSTM 네트워크에는 장기 의존성 문제(long-term dependency)가 있다. 이런 RNN의 한계점을 극복하기 위해서 「Attention Is All You Need」 논문에서 '트랜스포머'라는 아키텍처를 제안했다. 트랜스포머는 RNN의 순환 방식 대신 순수하게 어텐션만 사용한 모델이다. 트랜스포머는 셀프 어텐션(self attention)이라는 특수한 형태의 어텐션을 사용한다. 기계번역에서의 사용 예시를 통해 트랜스포머의 작동 원리를 살펴보자. 트랜스포머는 인코더-디코더로 구성된 모델로, 인코더에 원문을 입력하면 인코더..
2021년 연말정산
이 글을 읽는 당신에게 2021년은 어떤 해였나요? 저에게는 슬럼프와 성장의 해였습니다. 코로나의 영향 때문인지 2학년 2학기 말부터 시작된 무기력함이 3학년 1학기가 끝날 때까지 사라지지 않았고, 목표도 없이 당장 눈 앞에 놓인 일들만 집중하며 살았습니다. 정신적으로 많이 약해졌던 시기를 지나 여름방학에 좋은 동기와 선배들을 만나며 방향을 잡기 시작했고, 잘 하고 싶은 것이 생겨서 진로를 점점 구체화하고 있습니다. 그리고 GDSC Sookmyung Lead 일로 정말 많이 힘들었기도 했지만 다양한 유형의 인간관계들을 경험해 보고, 동아리 하나를 하나부터 열까지 설계하고 운영하다보니 스스로가 많이 성장했다는 게 느껴졌습니다. 그래서 그런지 올 한 해는 꼭 1년 회고를 통해서 다시 되돌아보고 싶었습니다. ..
텐서플로우 자격증(TensorFlow Developer Certificate) 준비 과정과 취득 후기, 미응시 시 환불 방법
🤷🏻♀️ 서론 계기 작년 DSC의 ML 담당 Core Member 분께서 슬랙에 텐서플로우 자격증 취득 후기와 공부 방법에 대해 자세하게 적어주신 적이 있었다. 그 때는 머신러닝에 관심이 1도 없을 시절이라 그냥 신기하고 대단하다고 생각하며 넘어갔지만, 머신러닝을 공부하고 있는 지금 한 번 ML 관련 자격증에 도전해 보면 좋을 것 같았다. 또, 나는 PyTorch만 쓸 줄 알고 TensorFlow는 하나도 모르는데, 이번에 자격증 취득을 목표로 텐서플로우를 한 번 공부해 보고 싶었다. 머신러닝 엔지니어를 대상으로 최근에 한 설문조사 결과를 보니 약 70% 정도가 PyTorch를 사용하고, 나머지 30% 정도가 TensorFlow를 사용한다고 답변했지만, 현업에서 머신러닝 엔지니어로 일하고 계신 분들의 ..
Stanford cs224n (Winter 2019) | Lecture 2: Word Vectors and Word Senses
Stochastic Gradient Descent 경사하강법(Gradient Descent)을 사용해 10억개의 단어를 가진 말뭉치에 크기 5의 윈도우를 사용해서 word2vec 모델을 만든다고 하면, 10억개의 중심 언어와 100억개의 주변 언어를 가질 것이다. softmax를 100억번이 넘게 계산해야 기울기를 구할 수 있는데, 그래이디언트 계산에서 작은 부분을 차지하는 연산에 어마어마한 시간이 걸리므로 학습이 느리게 진행될 거다. 따라서 사람들은 모든 파라미터를 한 번에 다 업데이트하는 경사하강법 대신 윈도우를 반복적으로 샘플링하고 업데이트하는, mini-batch를 사용하는 확률적 경사하강법(Stochastic Gradient Descent, SGD)를 사용한다. 보통 32 혹은 64개의 작은 묶..
Stanford CS224N (Winter 2019) | Lecture 1: Introduction and Word Vectors
2021.11.29-31 @청파맨션 이 강의의 학습 목표 딥러닝을 위한 효과적이고 현대적인 방법에 대한 이해 인간의 언어에 대한 큰 그림과 언어를 이해하고 생산하는 것에 대한 난관들 이해 PyTorch로 대부분의 NLP 문제를 해결할 수 있는 능력 우리가 언어의 의미를 표현하는 방법 언어학자들이 '의미'에 대해 생각하는 일반적인 방식은 denotational sementics, 표시론적 의미론으로, 의미를 사물이 나타내는 것으로 생각한다는 것이다. '의자'라는 단어는 의자와 같은 모든 것을 가리킨다. '달리기'라는 단어를 생각했을 때 떠오르는 일련의 행동이 '달리기'의 의미다. 이 '의미'에 대해 계산적으로(컴퓨터 상으로) 접근하는 ..
2021년 11월 회고
맥주를 쪼매 마셨다 그래서 읽다가 이게 뭔 소린겨? 할 수도 있다. 이번 달에는 기회가 많이 들어왔다. 작은 기회들도 들어왔고 인생의 방향이 바뀔 수도 있는 큰 기회도 들어왔다. 이 기회를 선택함으로써 더 좋은 기회를 놓치는 일이 없도록 신중하게 고민하고 생각할 때다. 그리고 체력이 부족해서 잡을 수 있었던 기회를 흘려보내는 일이 없도록 운동 뭐라도 해야겠다. Devfest University 2021 진행 10월 30일부터 11월 12일까지 GDG Campus Korea의 주최로 Devfest University 2021 행사를 진행했다. 감사하게도 이번 Devfest에는 GDSC Korea도 함께할 수 있게 되어 운영진 자격으로 행사를 기획하고 운영할 수 있었다. 행사 준비와 구체적인 진행 사항, 행..
FastAPI 시작하기 + API 내에서 다른 API로 요청하는 방법
FastAPI FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크입니다. (FastAPI 공식 문서) 공식 문서에 따르면 FastAPI의 주요 특징으로는 빠름, 빠른 코드 작성, 적은 버그, 직관적, 쉬움, 짧음, 견고함, 표준 기반이 있는데, 공식 문서를 읽어보며 조금 사용해 본 입장에서 가장 매력적으로 느껴졌던 특징은 빠른 코드 작성과 쉬움이었다. 그리고 엄청 가벼웠다. 추가로, FastAPI는 비동기 방식으로 요청을 처리한다. Python은 파이썬 스크립트(웹 어플리케이션)가 웹 서버와 통신하기 위한 인터페이스인 WSGI(Web Server Gateway Interface)를 사용한다. 하지만 WSGI는 동기 방식..
Devfest University 2021 종강을 기념하며
안녕하세요! GDSC Sookmyung 2기 Lead 남수연입니다. GDG Campus Korea와 GDSC Korea가 함께 주최한 Devfest University 2021이 성황리에 마무리되었습니다. 개발자라면 누구나 관심을 가질만한 유익한 세션과 다양한 행사, 그리고 상시 모각코 덕분에 정말 많은 지식과 좋은 사람들을 얻어갈 수 있었습니다. 저희 GDSC Sookmyung의 Core Team은 11월 1일에 특별 테마 맵에서 진행한 '비어 모각코(부제: 후회없는 월요일 알콜코딩 🍻)'의 기획을 맡아 네트워킹과 OX퀴즈 행사를 진행했습니다. 그리고 추가로 저는 운영진으로서 Devfest University 게더 맵 꾸미기 담당이었는데, 특별 테마 맵과 운동장 피크닉 구역이 제 작품이랍니다 (〃⌒▽⌒..
[파이토치로 배우는 자연어처리] 레스토랑 리뷰 감성 분류하기 - (3) 감성 분류 모델 만들기
이 글은 한빛미디어의 '파이토치로 배우는 자연어처리' 글을 읽고 정리한 것입니다. 저번 포스트까지 텍스트 데이터를 정제하고, 단어-인덱스를 매핑하는 사전을 만들고, 사전을 바탕으로 리뷰 문장을 벡터화하는 과정을 마쳤다. 이번 포스트에서는 이렇게 가공해 둔 문장을 가지고 모델을 만들어 학습시키고 성능을 측정해 보도록 하겠다. GitHub - mori8/NLP-Pytorch-practice: PyTorch Zero To All(by Sung Kim) 강의와 '파이토치로 배우는 자연어 처리' 책 PyTorch Zero To All(by Sung Kim) 강의와 '파이토치로 배우는 자연어 처리' 책을 읽고 정리하기 위한 저장소 - GitHub - mori8/NLP-Pytorch-practice: PyTorch ..