본문 바로가기
TIL

패스트캠퍼스 김기현의 딥러닝을 활용한 자연어생성 자연어 챌린지 참여 후기

by 코푸보이 2021. 5. 28.
반응형

자연어처리

지난 몇 주간 패스트캠퍼스 강의 중 하나인 김기현의 딥러닝을 활용한 자연어 생성 올인원 패키지 강좌를 수강 하였습니다. 해당 강의는 자연어 관련 다양한 연구 분야 중에 하나인 자연어 생성(NLG, Natural Language Generation)에 촛점을 둔 강의로 자연어 연구의 꽃이라고 할 수 있는 번역기를 만들어 봄으로써 자연어 처리/생성에 대해서 배워보는 강의 였습니다.

 

NLG, Natural Language Geration 은 이전에 나온 문장의 단어들을 보고 이후에 나오는 단어를 예측하고 생성하는 문제라고 정의 할 수 있습니다. 패스트캠퍼스의 자연어 생성 강의에서는 NLG 를 기초부터 하나씩 차근차근 가르쳐 주는 강의였습니다. 물론, 코딩을 하나도 할 줄 모르거나 파이토치(PyTorch)에 익숙하지 않을 경우 강의를 따라가기에는 조금 벅차다고 생각 했습니다. NLG 에 대한 기초를 알려주는 것이지 NLP 에 대한 기초나 파이썬 기초 등을 가르쳐주는 강의는 아니기 때문 입니다.

 

강의의 구성 요소를 살펴보자면 크게 이론과 실습으로 나누어 볼 수 있습니다. 저는 개인적으로 이론 부분이 실습 부분 보다 더 좋았습니다. 탄탄한 이론이 뒷받침 되어야 자신이 작성하는 코드가 무엇을 하는지 알고, 또 자신이 가져다가 쓸 라이브러리를 어떻게 효율적으로 사용할지 알게 되며 동시에 어떤 라이브러리를 사용해야 할지에 대한 감이 잡히기 때문 입니다. 그런 면에서 상세한 이론을 바탕으로 실습을 진행하는 본 강좌는 제 취향에 맞는 강좌였습니다. 강좌에서 다루는 모델은 seq2seq with attention 모델 부터 시작하여 transformer 를 주로 다루고 있습니다. 또한 모델과 함께 beam search 를 다루기도 하며 advanced 한 주제를 위한 RL, Reinforcement Learning 과 DSL, Dual Supervised Learning 그리고 기능적인 관점에서의 Multilingual Translaotr 의 구현도 다루고 있습니다. 결론적으로 BERT 나 GPT 로 대표되는 PLM, Pretrained Language Model 로 넘어가기 전의 NLG에 대해서 전반적으로 다루고 있다고 보셔도 될 것 같습니다. 

 

Sequence2Sequence with Attention
Transformer

이론적인 부분에서 무엇보다 좋았던 점은 수학적인 관점에서 모델들에 대한 해석을 해주었다는 것이였습니다. 위의 그림의 seq2seq 모델과 transformer 모델의 구현은 사실 이제 공개된 소스가 많아서 최소한의 노력을 가지고 동작하는 모델을 만들기에는 어렵지 않게 되었습니다. Keras 에서는 지난 업데이트에서 MultiHeadAttention layer를 keras 의 layer 중 하나로 제공하기도 해서 transformer 를 구현하는 수고도 많이 줄어 들었습니다. 하지만 구현과 별도로 깊이 있는 이론적 해설을 하는 강좌를 찾기는 어려웠습니다. 모델에 대한 논문 리뷰를 해주는 강좌들은 많지만 1시간 내외의 시간으로는 모델 자체에 대한 설명에만도 시간이 촉박하여 NLG 에 대해 전반적인 이론을 다루는 풀코스 강좌는 정말 찾기 어려웠습니다. 다시 말해 인터넷에 이미 공개되어 있는 강좌 중에 훌륭한 강좌들도 많지만 수학적인 관점에서 모델들을 상세히 다룬 강좌는 찾기 어려웠습니다. 물론, 해외 대학이나 국내 대학에서 공개된 NLP 관련 강좌들 중에서 수학을 사용해서 이론을 다루는 강의들은 종종 찾을 수 있었으나 직접 참여하는 강좌가 아닌만큼 지속력을 가지고 학습하기에는 다소 어려움이 따랐습니다.

 

그에 반해 패스트 캠퍼스 강의 같은 경우 강의 구성이 이론과 실습이 학습에 알맞게 구성되어 있어 지속적으로 학습하기에 좋았습니다. 경험 상 일부 유료 강의들은 유료임에도 불구하고 유튜브나 인터넷에서 손 쉽게 찾기 쉬운 내용들이 제공되는 경우가 종종 있었습니다. 하지만 자연어 생성 강의는 영-한 번역기를 만든다는 내용 자체가 해외 무료 강좌는 물론 유료 강좌에서도 찾을 수 없는 내용이고, 강의의 질도 매우 높았습니다. 더 좋은 번역기를 만든다는 하나의 목표를 가지고 seq2seq 부터 시작해서 다양한 시도를 해 가면서 성능을 올리는 다양한 방법을 배우는 과정에서 자연어 생성에 대해서 깊게 이해할 수 있었습니다.

GPT 구조 (출처: https://paul-hyun.github.io/)

강의를 마친 후 지금은 Pretrained LM 에 대해서 하나씩 살펴보고 있으며 확실히 강의 전에 비해서 이해도가 많이 높아 진 것 같습니다. 이제 막 딥러닝에 대해서 강의를 한번 마치시고 난 후 NLP 에 대해서 관심이 생기신 분들이라면 꼭 한번 들어볼만 한 강의 입니다. 해외에서도 국내 어디에서도 찾아볼 수 없는 강의라는 점은 확실 합니다.

 

김기현의 딥러닝을 활용한 자연어생성 올인원 패키지 Online

강좌링크: https://bit.ly/3pFI7r5

반응형