golansformer / golansformer

Apache License 2.0
2 stars 1 forks source link

[FEATURE] Residual Connection + (Optional)Layer Normalization #6

Open maxseats opened 2 months ago

maxseats commented 2 months ago

Feature Description

Transformer의 Attention 이후 수행되는 Residual Connection 기능을 구현하고자 합니다. 추가적으로 이 단계에서 Layer Normalization도 함께 수행되기에, 시간이 된다면 이 부분도 같이 맡아보겠습니다.

Motivation and Context

이 단계를 거치면 Attention의 output을 그대로 쓰지 않고, input을 추가적으로 더해줌으로써 Back Propagation 도중 발생할 수 있는 Gradient Vanishing 문제를 방지하며 학습을 안정화할 수 있습니다. Transformer 구조에서 다음 단계로 값을 넘겨주기 위한 필수적인 과정이라고 생각했습니다.

Proposed Solution

Residual Connection : attention의 출력 f(x)에 입력 x를 더해주어야 합니다. y=f(x)를 y=f(x) + x로 변경하는 것으로 구현할 예정입니다. Layer normalization : attention의 출력 f(x)에 평균 m을 빼주고, 표준편차로 나누는 부분을 구현할 예정입니다.

Optional

Alternatives Considered

Additional Information

이 단계를 수행하기 위해서는 Attention의 입력 및 출력 차원이 동일해야 한다는 주의 점이 있습니다. Attention에서의 value 벡터의 차원을 조정함으로써 입력과 출력 차원 수를 동일하게 맞춰줄 수 있습니다.

kwanok commented 2 months ago

안녕하세요, 구현하느라 정말 고생 많으셨습니다!

추가로 요청드리고 싶은 건 작성해주신 코드를 팀에서 리뷰를 하기 위해선 PR을 등록해주셔야 해요 ㅎㅎ

Github Repository > Pull Requests > New Pull Request > compare branch의 feature/add_norm 선택 > Create pull request

이 순서대로 클릭 후 PR을 작성해주시면 다른 분들이 코드를 보고 리뷰할 수 있어요!

고생 많으셨습니다! 감사합니다 🙇‍♂️

maxseats commented 2 months ago

리뷰 감사합니다 관옥님~! 등록된 양식으로 PR 올렸습니다!