RNN 계열의 sequence model에 attention을 적용하여 비약적인 성능향상을 확인한 이후, attention만을 사용하면 과연 어떤 성능을 보여줄지에 대한 연구가 Attention is All you need 논문이다. 1. Introduction RNN, LSTM, GRU 등의 sequence modelling approach들은 long sequence에 취약하다는 한계점이 있다. 하지만 attention mechanism이 적용되면서 sequence에서의 위치와 관계없이 dependency를 반영할 수 있게 되었다. Transformer 모델은 recurrence라는 특성(과거의 output의 현재의 input으로 사용되는 점)을 없애고 attention mechanism만을 적용하여..
기존 Transformer 기반 모델(BERT, GPT 등..) 보다 훨씬 더 긴 sequence 데이터를 입력으로 받을 수 있는 연구가 공개되어 정리하고자 합니다. 논문은 글의 제목이며 여기서 확인할 수 있습니다. 0. 핵심 아이디어: Graph Sparcification 본 연구의 핵심 아이디어 sparse random graph이며, 다음과 같은 흐름으로 연구되었습니다. self-attention → fully-connected graph: self-attention을 각 token들의 linking으로 본다면 fully-connected graph로 표현할 수 있음 fully-connected graph → sparse random graph: self-attention graph를 훨씬 더 크게..
PyCharm은 디버깅 세션을 통해 각 변수를 추적할 수 있는 기능을 제공합니다. 더 이상 매번 print문 찍으면서 에러 트래킹 할 필요가 없어요. 한가지 단점은 iterative에서의 트래킹은 어렵다는 부분입니다. 하지만 한 instance가 담고 있는 모든 변수, tensor 모양 등을 추적하기엔 굉장히 편리합니다. PyCharm에서 어떻게 디버깅 세션을 실행시킬 수 있는지 정리해보도록 하겠습니다. 1. 실행파일에 디버깅 argument 추가 디버깅 세션을 사용하기 위해서는 argparse 모듈을 통해 디버깅 실험세팅을 해두는게 좋습니다 import argparse parser = argparse.ArgumentParser() parser.add_argument('--debug', action='s..
딥러닝 서버 구축 및 PyCharm에서의 개발환경 세팅을 위해 거쳤던 과정들을 정리하고자 한다. 목차는 다음과 같다 1. Docker 기반의 딥러닝 환경 구축 2. PyCharm에서 서버 환경 접속 및 세팅 1번 글대로 환경을 구축하고 있었다면 다음과 같이 2개의 terminal이 띄워져있을 것입니다. ① Container를 실행시킨 terminal (서버) ② 실행중인 Container에 접속한 terminal (클라이언트) ②를 실행하는 유저 머신에서 PyCharm 개발환경 세팅하는 부분을 설명드리겠습니다. 2. PyCharm에서의 서버 환경 접속 및 세팅 (1) PyCharm 개발 환경 세팅 PyCharm은 VSCode 처럼 서버 환경에 직접 접속하는 것이 아니라 로컬 개발환경에 폴더를 따로 만들어..