인공지능/트랜스포머 이해 6

TR-06. 트랜스포머 디코더(Decoder)

트랜스포머의 인코더(Encoder)가 입력 문장 전체를 읽고 문맥적 의미를 풍부하게 담은 '표현(representation)'을 생성하는 역할이라면, 디코더(Decoder)는 이 표현을 참조하여 우리가 원하는 출력 문장을 한 단어씩 순차적으로 생성하는 '생성기' 역할을 합니다. 디코더 역시 인코더와 마찬가지로 동일한 구조의 여러 개 레이어(논문에서는 6개)를 쌓아 올린 형태입니다. 하나의 디코더 레이어는 크게 세 부분으로 구성됩니다.1. 디코더 레이어의 핵심 구성 요소각 디코더 레이어는 다음과 같은 세 개의 하위 레이어(sub-layer)로 이루어져 있습니다.마스크드 멀티-헤드 어텐션 (Masked Multi-Head Attention)역할: 디코더가 '지금까지 생성한' 출력 단어들 간의 관계를 파악합니..

TR-05. 트랜스포머 인코더(Encoder)

트랜스포머 모델의 인코더는 입력 시퀀스(예: "나는 학생이다")를 받아, 각 단어(토큰)의 문맥적 의미를 풍부하게 담은 벡터 시퀀스로 변환하는 역할을 합니다. 이 벡터 시퀀스는 디코더가 번역이나 요약과 같은 작업을 수행하는 데 필요한 핵심 정보를 담고 있습니다. 인코더는 동일한 구조의 '인코더 레이어(Encoder Layer)'가 N개(오리지널 논문에서는 6개) 쌓여 있는 형태입니다.1. 인코더의 시작: 입력 처리본격적으로 인코더 레이어에 들어가기 전에, 입력 텍스트는 두 단계를 거칩니다.입력 임베딩 (Input Embedding):입력 문장의 각 단어(토큰)는 고유한 벡터로 변환됩니다. 예를 들어 "I", "am", "a", "student"라는 단어들이 각각 512차원의 벡터가 됩니다. 이 벡터는 단..

TR-04. 멀티-헤드 인코더-디코더 어텐션(Multi-head Encoder-Decoder Attention)

멀티-헤드 인코더-디코더 어텐션은 트랜스포머 디코더의 "두 번째 어텐션 층"에 위치하며, 디코더가 출력 단어를 생성할 때 인코더의 입력 문장 전체를 참고할 수 있게 해주는 핵심 다리 역할을 합니다. 이는 "크로스-어텐션(Cross-Attention)"이라고도 불립니다. 앞서 설명한 '셀프 어텐션'은 문장 내부의 관계를 파악하는 것이 목적이었다면, 이 '인코더-디코더 어텐션'은 서로 다른 두 문장(입력 문장과 출력 문장) 간의 관계를 파악하는 것이 목적입니다.핵심 차이점: Q, K, V의 출처가장 큰 차이점은 Query(Q), Key(K), Value(V)를 가져오는 위치입니다.Query (Q): 디코더의 이전 층(Masked Self-Attention 층)에서 옵니다. 의미: "내가 지금 번역/생성하려는..

TR-03. 멀티-헤드 마스크드 셀프 어텐션(Multi-head Masked Self Attention)

멀티-헤드 마스크드 셀프 어텐션은 트랜스포머 디코더의 첫 번째 하위 계층에서 사용되는 메커니즘입니다. 핵심 기능은 문장을 생성할 때, 모델이 "미래의" 정답 단어를 미리 훔쳐보지 못하도록(cheating) 방지하는 것입니다.1. 왜 "Masked"가 필요한가?트랜스포머의 디코더는 자기회귀적(Autoregressive) 방식으로 작동합니다. 즉, 한 단어씩 순차적으로 문장을 생성합니다.예: "나는" $\rightarrow$ (다음 단어 예측) $\rightarrow$ "학생" $\rightarrow$ (다음 단어 예측) $\rightarrow$ "이다""학생"이라는 단어를 예측해야 하는 시점(Time Step 2)에서, 모델이 정답인 "학생"이나 그 뒤에 올 "이다"라는 정보를 미리 본다면, 그건 예측이 ..

TR-02. 멀티-헤드 셀프 어텐션(Multi-head Self Attention)

멀티-헤드 어텐션은 트랜스포머의 핵심 부품으로, "여러 개의 다른 관점에서" 문장을 동시에 바라보는 메커니즘입니다. '어텐션 헤드' 하나가 스케일드 닷-프로덕트 어텐션 계산기 한 세트라고 생각하시면 됩니다. 멀티-헤드는 이 계산기를 여러 개(예: 8개) 복제하여 병렬로 실행하는 방식입니다.왜 '멀티-헤드'가 필요한가?'싱글-헤드' 어텐션(어텐션을 한 번만 계산)은 문장 내 단어 간의 한 가지 종류의 관계만 학습하는 경향이 있습니다. 예를 들어, "그녀는 강아지에게 밥을 주었다"라는 문장에서 어텐션이 '주어-동사' 관계(그녀는-주었다)에만 집중하도록 학습될 수 있습니다. 하지만 문장에는 다양한 관계가 존재합니다.주어-동사 관계 (그녀는 - 주었다)동사-목적어 관계 (주었다 - 밥을)수식 관계 (강아지 - ..

TR-01. 어텐션(Attention) 함수

트랜스포머의 어텐션(Attention) 함수는 문장이나 데이터 시퀀스 내의 여러 요소(예: 단어) 중 "지금 이 순간 어떤 요소에 집중(attention)해야 하는지"를 계산하는 메커니즘입니다.간단히 말해, 특정 단어를 처리할 때 문장 내의 다른 모든 단어와의 연관성 점수(relevance score)를 계산하고, 이 점수를 가중치로 사용하여 문맥을 파악하는 방식입니다.트랜스포머에서 사용하는 어텐션의 핵심은 "스케일드 닷-프로덕트 어텐션 (Scaled Dot-Product Attention)"입니다.스케일드 닷-프로덕트 어텐션의 3가지 핵심 요소어텐션 함수는 3가지 주요 벡터(혹은 행렬)를 입력으로 받습니다.Query (Q): 현재 처리 중인 요소(단어)를 나타냅니다. "내가 지금 찾고 싶은 것" 또는 ..