분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
데이크루 5기
GPT4가 알려주는 Transformer_2(기초부터 심화까지)
Transformer_1 : https://dacon.io/competitions/official/236091/talkboard/408068?page=1&dtype=recent
저번 시간
우리는
Transformer의 핵심 개념인 Self-Attention과
쿼리, 키, 밸류 그리고 임베딩까지 알아보았어요.
코드를 보며 이해하면 더 쉽겠죠?
이번 시간에는
코드를 통해 저번 시간에 배운 내용들을
이해해볼까요?
"I love AI"라는 문장으로
예시를 들어볼게요.
"I love AI"를 토크나이징을 해 봅시다.
토크나이징을 한다면 'I', 'love', 'AI' 로 분리가 됩니다.
그 후 분리된 각 단어에 ID를 할당해 줍니다.
그 다음 입력 시퀀스를 생성해 줍시다.
4,64 짜리 임베딩 레이어를 정의해줍니다.
embed_dim은 임베딩 벡터의 차원 수를 결정하는데,
임베딩 차원이 클수록 각 토큰을 표현하는 벡터가 더 많은 정보를 담을 수 있지만,
그만큼 모델의 파라미터 수가 증가하여 학습과 추론에 더 많은 계산이 필요합니다.
반면, 임베딩 차원이 작으면 모델의 파라미터 수가 줄어들어 계산 효율성이 향상되지만,
표현력이 감소할 수 있습니다.
따라서 embed_dim 설정은 표현력과 계산 효율성 사이의 균형을 찾는 것이 중요합니다!
embed_dim이 작은 경우:
장점 : 모델의 전체 크기가 작아지므로, 학습과 추론 시간이 빨라집니다.
메모리 사용량이 줄어듭니다.
단점 : 각 토큰을 표현하는 벡터의 정보가 제한되어, 복잡한 문제를 해결하는 데 어려움이 있을 수 있습니다.
모델의 표현력이 줄어들어 성능이 저하될 수 있습니다.
embed_dim이 큰 경우:
장점 : 각 토큰을 표현하는 벡터가 더 많은 정보를 담을 수 있어, 복잡한 문제를 해결하는 데 더 유리합니다.
모델의 표현력이 높아져 성능이 향상될 수 있습니다.
단점 : 모델의 전체 크기가 커지므로, 학습과 추론 시간이 느려집니다.
메모리 사용량이 증가합니다.
그렇게 임베딩 벡터로 변환을 하면
다음과 같은 값들이 텐서로 저장됩니다.
GPT가 알려주는
지금까지의 코드 요약입니다!
그 후 가장 중요한 Self-Attention 클래스를 정의해봅시다.
이곳에서 쿼리, 키, 밸류 값도 함께 생성해요!
코드에 대해 간단한 설명을 하자면
쿼리, 키, 밸류 선형 레이어를 정의하고, 순전파 함수에서 이들 레이어를 사용하여 입력 시퀀스 내 단어 간의 관계를 반영한 어텐션 출력을 계산합니다.
스케일드 닷 프로덕트 어텐션 계산:
attn_scores=torch.matmul(q, k.transpose(-2, -1))/(embed_dim ** 0.5)는 쿼리와 키 행렬의 내적(dot product)을 계산 후, 임베딩 차원의 제곱근으로 나눠 스케일링
이렇게 스케일링하는 이유는 큰 값의 닷 프로덕트가 softmax 함수에서 큰 차이를 발생시키지 않도록 하여 학습의 안정성을 높이기 위함입니다.
어텐션 확률 계산:
attn_probs = F.softmax(attn_scores, dim=-1)는 계산된 어텐션 점수를 이용해 어텐션 확률을 계산합니다.
이 확률은 각 단어 간의 상대적인 관계를 나타냅니다.
어텐션 출력 계산:
attn_output = torch.matmul(attn_probs, v)는 어텐션 확률과 밸류 행렬을 곱하여 어텐션 출력을 계산합니다.
이 출력은 입력 시퀀스 내 각 단어의 가중치가 반영된 결과물입니다.
임베딩 레이어를 거친 값은
self-attention을 통해
이러한 텐서들로 변환이 됩니다!
이번 시간을 통해
이론으로만 알고 있었던
에 대한 이해가 더 높아졌을 거라고
믿어요!
혹시라도 이해가 안 되는 부분이나
궁금한 부분은 댓글 부탁드립니다!
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved