분류 전체보기

    차근차근 이해하는 Transformer(3): Multi-Head Attention과 Encoder

    차근차근 이해하는 Transformer(3): Multi-Head Attention과 Encoder

    지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수 많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. 이번 글에서는 Transformer의 Encoder를 이해하기 위한 마지막 요소인 Multi-Head Attention에 대해 알아보겠습니다. Multi-Head Self Attention 사실 Multi-Head (Self) Attention은 지난 글에서 다룬 Single-Head (Self) Attention을 여러 개 이용하는 것에 불과합니다. 하나의 Attention Value를 이용하는 대신 여러 개의 Attenti..

    [PyTorch] model.train() vs. model.eval() vs. torch.no_grad()

    PyTorch 코드를 보면 자주 나오는 model.train(), model.eval(), 그리고 torch.no_grad()에 대해서 간단히 정리해봤습니다. model.train() 학습할 때와 추론할 때 다르게 동작하는 Layer들을 Training mode로 바꿔줍니다. 예를 들어 Batch Normalization Layer는 Batch Statistics를 이용하게 되고, Dropout Layer가 주어진 확률에 따라 활성화됩니다. model.eval() 학습할 때와 추론할 때 다르게 동작하는 Layer들을 Evaluation(Inference) mode로 바꿔줍니다. 예를 들어 Batch Normalization Layer는 학습할 때 사용된 Batch Statistics를 통해 결정된 Run..

    차근차근 이해하는 Transformer(2): Single-Head Attention으로 이해하는 Encoder

    차근차근 이해하는 Transformer(2): Single-Head Attention으로 이해하는 Encoder

    지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수 많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. Transformer에서 사용하는 Attention을 다룬 지난 글에 이어 이번에는 Transformer의 Encoder가 어떻게 구성되었는지 정리해보겠습니다. Transformer의 전체 구조 Transformer는 Encoder, Decoder Layer가 Attention과 Feed-Forward Network로 구성된 Encoder-Decoder 구조를 따르고 있습니다. Transformer를 이해하는데 가장 병목이 되..

    차근차근 이해하는 Transformer(1): Scaled Dot-Product Attention

    지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수 많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. Transformer 이전의 Sequential Modeling에는 주로 Recurrent, Convolutional Neural Network 기반의 Encoder-Decoder 구조와 Attention Mechanism이 사용되고 있었습니다. 하지만 논문이 발표된 이후 Transformer는 Sequential Modeling을 완전히 평정한 것은 물론, Computer Vision 등 다양한 도메인에서도 사용되는 등 딥러..

    [Linux] ps 명령어

    [Linux] ps 명령어

    Process Status의 약어를 이름으로 사용한 ps 명령어를 사용하면 현재 구동 중인 프로세스 정보를 확인할 수 있습니다. 명령어와 함께 사용되는 주요 옵션들은 다음과 같습니다. -e: 현재 사용자뿐만 아니라 다른 사용자들이 구동시킨 모든 프로세스를 보여줍니다. (즉, -e 옵션이 없다면 ps 명령어는 현재 사용자(Shell)이 실행 중인 프로세스만 보여줍니다.) -f: 보다 상세한 정보를 보여줍니다. (Full format) -l: -f 보다 더 상세한 정보를 보여줍니다. (Long format) ps -efl 명령어를 통해 출력되는 결과의 각 필드의 의미는 다음과 같습니다. (실행 환경마다 필드의 이름 혹은 출력 순서가 다를 수 있습니다.) F: 프로세스 플래그. 4: used super-use..

    [DL] 쉽게 풀어쓴 Attention Mechanism (2): Luong Attention

    [DL] 쉽게 풀어쓴 Attention Mechanism (2): Luong Attention

    2017년에 등장한 Transformer(Vaswani et al. 2017)는 어느덧 딥러닝의 기본적인 Building Block으로 사용된다고 해도 과언이 아닐 정도로 대중화되었습니다. Transformer를 이해하기 위해 사전 지식으로 필요한 Attention Mechanism의 기본적인 내용을 기록해두고자 Bahdanau, D., Cho, K., & Bengio, Y. (2014)와 Luong, M. T., Pham, H., & Manning, C. D. (2015)를 읽고 정리해보았습니다. 이번 글에서는 지난번 글에 이어 여러 방법을 통해 Bahdanau Attention을 개선할 수 있는 방법에 대해 알아보겠습니다. (지난 글: 2022.04.23 - [Data Science/Maching L..

    [Git] Squash and Merge 후 Rebase를 할 때 발생하는 문제

    [Git] Squash and Merge 후 Rebase를 할 때 발생하는 문제

    Squash and Merge(이하 Squash Merge) 이후 Branch간 충돌로 인해 Rebase가 불가능한 경우가 있습니다. 충돌이 일어나는 이유와 해결 방법을 알아보겠습니다. 문제 상황 우선 Branch1에서 B, C commit 이후 다른 작업을 위해 Branch2를 만든 후 Branch 별로 각기 다른 작업을 진행했다고 가정하겠습니다. Branch1의 작업이 끝나 Squash Merge 후 Main 브랜치를 Fast-Forward했습니다. Branch2도 작업이 끝났습니다. 깔끔한 Commit history를 위해 Rebase를 진행하려고 합니다. git checkout branch2 git rebase main 이렇듯 의식의 흐름대로 Rebase를 진행하면 여러분은 빨간색 글씨로 적힌 충..

    [Linux] 리눅스의 기본 구조: kernel, shell, process and shell session

    평소에 리눅스 계열의 OS를 사용하며 항상 궁금했던 커널, 쉘, 프로세스, 그리고 쉘 세션에 대해서 알아보았습니다. 커널(Kernel) 커널이란 리눅스 운영 체제의 주요 구성 요소 중 하나로 하드웨어와 프로세스를 연결하고 하드웨어의 주요 기능을 제어하는 역할을 합니다. 커널은 주로 메모리 관리, 프로세스 관리, 장치 드라이버, 시스템 호출 및 보안을 수행하고, 사용자에게는 직접적으로 보이지 않습니다. 쉘(Shell) 쉘은 커널과 유저가 Interactive할 수 있도록 만들어진 Interface입니다. 대표적인 쉘로는 bash shell, Z shell(Zsh)이 있으며 이외에도 다양한 CLI(Command-Line Interface)과 GUI(Graphical User Interface)가 존재합니다...

    [DL] 쉽게 풀어쓴 Attention Mechanism (1): Bahdanau Attention

    [DL] 쉽게 풀어쓴 Attention Mechanism (1): Bahdanau Attention

    2017년에 등장한 Transformer(Vaswani et al. 2017)는 어느덧 딥러닝의 기본적인 Building Block으로 사용된다고 해도 과언이 아닐 정도로 대중화되었습니다. Transformer를 이해하기 위해 사전 지식으로 필요한 Attention Mechanism의 기본적인 내용을 기록해두고자 Bahdanau, D., Cho, K., & Bengio, Y. (2014)와 Luong, M. T., Pham, H., & Manning, C. D. (2015)를 읽고 정리해보았습니다. Attention Mechanism의 등장 배경 Attention이 등장하기 이전에는 Encoder와 Decoder로 이루어진 Sequence-to-Sequence(Seq2Seq) 모델을 통해 Sequenti..

    [Github] workflow scope 오류 해결하기

    [Github] workflow scope 오류 해결하기

    Github actions workflows와 관련된 파일을 수정할 때 다음과 같이 without workflow scope 오류가 발생할 수 있습니다. refusing to allow a Personal Access Token to create or update workflow `.github/workflows/some_file.yaml` without `workflow` scope 위 에러는 Token authentication을 위해 Personal access token을 이용할 때 사용중인 Access Token에 workflow를 수정할 수 있는 권한이 없을 경우 발생합니다. 해당 토큰에 workflow 수정 권한을 부여하는 방법은 다음과 같습니다. Settings → Developer Set..