트랜스포머
이 페이지는 AI 에이전트 문맥에서 자주 쓰이는 트랜스포머의 뜻과 쓰임을 중급 난이도 기준으로 정리한 AI 용어사전 항목입니다. 정의와 맥락, 관련 용어 11개, 관련 글 2개 순서로 묶었으니, 아래 설명을 먼저 읽고 연결된 개념과 글까지 이어서 보면 이해가 빨라집니다.
트랜스포머(Transformer)는 어텐션, 위치 정보, 피드포워드 층과 잔차 연결을 쌓아 토큰 표현을 처리하는 신경망 구조입니다. 학습에서는 많은 위치를 병렬로 계산할 수 있지만, 생성형 디코더는 답을 한 토큰씩 순서대로 만듭니다.
인코더와 디코더가 일을 나눕니다
2017년 논문 Attention Is All You Need가 제안한 원래 트랜스포머는 기계 번역을 위한 인코더·디코더 구조였습니다. 인코더는 원문 토큰을 여러 층에 통과시켜 문맥 표현을 만들고, 디코더는 지금까지 만든 번역과 인코더 출력을 바탕으로 다음 토큰을 예측합니다. 순환 신경망처럼 이전 은닉 상태를 한 칸씩 넘기는 계산을 핵심 경로에서 제거해, 학습 시 주어진 입력 위치를 병렬로 처리할 수 있게 설계했습니다.
인코더 전용 모델은 보통 입력의 앞뒤 문맥을 함께 봅니다. 문장 분류, 개체명 인식, 입력에서 답 구간을 찾는 작업처럼 전체 내용을 읽고 판단할 때 알맞습니다. 디코더 전용 모델은 인과 마스크를 사용해 현재 위치보다 뒤의 토큰을 보지 못하며, 다음 토큰을 이어 쓰는 생성 작업에 맞습니다. 인코더·디코더 모델은 원문을 읽는 인코더와 결과를 생성하는 디코더를 결합합니다. 번역, 요약처럼 입력과 출력이 서로 다른 시퀀스인 작업이 대표적입니다.
세 구조를 구분하면 "트랜스포머가 문장 전체를 동시에 처리한다"는 말을 정확히 읽을 수 있습니다. 인코더의 입력 처리와 디코더 훈련 중 각 위치의 계산은 넓게 병렬화할 수 있습니다. 그러나 디코더의 실제 생성은 앞서 만든 토큰에 다음 토큰이 의존합니다. Hugging Face의 트랜스포머 구조 안내는 인코더 전용, 디코더 전용, 인코더·디코더를 작업 방식과 함께 구분합니다.
어텐션 밖의 층도 표현을 다듬습니다
어텐션만 놓고 보면 토큰의 순서가 저절로 표현되지 않습니다. 모델은 토큰 임베딩에 위치 정보를 더하거나, 어텐션 점수 계산에 상대적 위치 관계를 반영해야 "개가 사람을 물었다"와 "사람이 개를 물었다"를 구별할 수 있습니다. 원 논문은 사인과 코사인 함수로 만든 위치 인코딩을 사용했습니다. 이후 구조에서는 학습형 위치 임베딩, 상대 위치 편향, 회전 위치 표현 등 여러 방식이 쓰입니다. 방식마다 긴 길이로 확장할 때의 동작과 학습 범위가 다르므로 이름만 보고 같은 특성을 기대하면 곤란합니다.
각 블록의 피드포워드 네트워크는 어텐션으로 문맥을 섞은 뒤 토큰별 표현을 같은 변환 규칙으로 가공합니다. 어텐션이 "어디에서 정보를 가져올지" 정한다면 피드포워드 층은 모인 특징을 비선형적으로 바꾸고 확장한 뒤 다시 모델 차원으로 돌려보냅니다. 같은 가중치를 모든 위치에 적용하되 토큰별 계산은 독립적으로 수행하므로 병렬 처리하기 좋습니다.
잔차 연결은 하위층 입력을 변환 결과에 더해 정보와 기울기가 깊은 층을 지나갈 경로를 마련합니다. 층 정규화는 각 토큰 표현의 통계적 크기를 조절해 학습을 안정시키는 데 기여합니다. 원래 구조는 각 하위층 뒤에 잔차 연결과 층 정규화를 두었고, 이후 모델은 정규화 위치를 앞에 두는 등 배치를 바꾸기도 합니다. 같은 트랜스포머 계열에서도 층의 순서와 정규화 방식은 구현마다 확인해야 합니다.
멀티헤드 자기 어텐션은 토큰 사이 정보를 섞고, 피드포워드 층은 각 토큰 안의 특징을 변환합니다. 이 두 하위층을 반복해 얕은 단어 표현을 문맥에 맞는 표현으로 바꿉니다. 디코더가 인코더 출력을 읽는 구조에서는 자기 어텐션 외에 교차 어텐션이 들어갑니다. 원 논문의 모델 구조 절은 인코더와 디코더 블록의 하위층, 잔차 연결, 층 정규화 배치를 함께 보여 줍니다.
완성된 학습 문장에서는 인과 마스크를 씌운 채 여러 위치의 다음 토큰 손실을 한꺼번에 계산할 수 있습니다. 실제 생성에서는 방금 만든 토큰이 다음 입력에 포함되므로 토큰 순서를 건너뛸 수 없습니다. [키·밸류 캐시](https://huggingface.co/docs/transformers/main/cache_explanation)는 이전 계산을 재사용하지만 생성 의존성 자체를 없애지는 않습니다.
긴 입력에서는 계산 범위를 선택합니다
기본 밀집 자기 어텐션은 모든 토큰 쌍을 비교하므로 길이가 n일 때 점수 행렬 크기가 n²에 비례합니다. 긴 문서, 고해상도 이미지 토큰, 긴 오디오 구간에서는 이 비용이 병목이 됩니다. Hugging Face의 어텐션 백엔드 문서는 전체 행렬을 저장하는 기본 구현과, 같은 계산을 재배치해 메모리 이동을 줄이는 최적화 구현을 설명합니다. 최적화 커널은 메모리 사용과 속도를 개선할 수 있지만 모든 쌍을 비교하는 구조적 비용을 희소하게 바꾸지는 않습니다.
슬라이딩 윈도와 블록 희소 어텐션은 가까운 토큰이나 정해진 블록만 비교해 쌍의 수를 줄입니다. 긴 로그에서 최근 구간이 핵심일 때는 효율적일 수 있습니다. 문서 앞의 정의를 끝부분에서 정확히 참조해야 하는 작업이라면 지역 범위만 쓰는 구조가 정보를 놓칠 수 있습니다. 일부 모델은 제한된 지역 창에 전역 토큰이나 층별 누적 범위를 더해 이 문제를 완화합니다.
모델을 고를 때는 "트랜스포머인가"보다 필요한 입출력 방식과 길이 조건을 먼저 보는 편이 낫습니다. 고정 문서 분류에는 양방향 인코더가 효율적일 수 있고, 자유로운 글 생성에는 인과 디코더가 자연스럽습니다. 원문을 충실히 읽고 출력을 만드는 번역·요약에는 인코더·디코더가 잘 맞습니다. 긴 입력에서는 최대 길이 표기만 확인하지 말고 실제 어텐션 범위, 위치 정보의 확장 방식, 캐시 메모리, 하드웨어가 지원하는 커널, 먼 문맥 정확도를 함께 점검해야 합니다.
관련 용어
트랜스포머와 함께 자주 언급되는 개념들입니다. 비슷한 말처럼 보여도 역할과 쓰임은 다를 수 있습니다.
관련 글
glossary에서 개념을 잡고 관련 글로 넘어가면 실제 문맥 이해가 쉬워집니다.
