딥러닝 A to Z · 3-8

어텐션·트랜스포머 — 기억 대신 다시 찾아본다

3-7의 순서 모델은 지나온 모든 것을 은닉 상태 하나에 눌러 담고 한 칸씩 걸었다. 어텐션은 발상을 바꾼다. 필요할 때마다 앞의 모든 칸을 다시 찾아보고, 관련 있는 칸에 더 많이 주의를 준다. 질의(Q)·키(K)·값(V)의 숫자를 손으로 따라가고, 이 부품을 쌓은 트랜스포머가 오늘날 언어 모델의 뼈대가 된 이유와 그 비용까지 본다.

2015번역에 어텐션을 더한 논문 [R1]
2017트랜스포머 발표 [R2]
√dk점수를 나누는 수: 소프트맥스가 한쪽으로 쏠리지 않게
8 × 64원 논문의 헤드 수 × 헤드 폭 (= 512) [R2]
n²길이 n일 때 주의 점수의 개수
2개Colab에서 바로 돌리는 코드
1남은 문제

순서 모델에 남은 두 문제 — 병목과 줄 서기

인코더–디코더 RNN은 문장 전체를 고정 길이 벡터 하나에 담고, 칸을 하나씩 차례로 처리한다. 문장이 길어지면 두 가지가 문제가 된다.

문장 길이

초보자를 위한 풀이

병목: 인코더–디코더 번역 모델은 원문을 고정 길이 벡터 하나로 줄인 뒤 거기서 번역문을 만든다. Bahdanau 등은 이 고정 길이 벡터가 성능의 병목이라고 보고, 번역문의 단어를 만들 때마다 원문에서 관련 있는 부분을 스스로 찾아보게 하는 방법을 제안했다 [R1]. 이것이 어텐션이다. 줄 서기: RNN은 ht를 알아야 ht+1을 계산할 수 있어서 칸들을 동시에 계산할 수 없다. 트랜스포머는 순환을 아예 빼고 어텐션만으로 모든 칸을 한꺼번에 계산해 학습을 크게 빠르게 했다 [R2].

2어텐션

어텐션의 아이디어 — 단어를 만들 때마다 원문을 다시 본다

"초파리가 사과를 먹었다"를 "The fly ate the apple"로 옮긴다. 영어 단어 하나를 만들 때마다 한국어 단어들에 주의를 나눠 준다. 굵은 선일수록 주의가 크다.

만드는 단어

초보자를 위한 풀이

한국어는 "초파리가 · 사과를 · 먹었다", 영어는 "The fly · ate · the apple" 순서다. 동사의 자리가 다르다. 그래서 "ate"를 만들 때는 맨 끝의 "먹었다"를 크게 봐야 한다. 이 그림의 주의 값은 설명을 위해 정한 숫자다. 실제 번역 모델은 이런 대응을 학습으로 스스로 찾으며, Bahdanau 등은 학습된 주의가 사람의 직관과 잘 맞는다고 보고했다 [R1]. 주의는 모두 0~1이고 합이 1이다(소프트맥스).

3Q·K·V

Q·K·V 숫자 예시 — 도서관에서 책 찾기

어텐션(Q, K, V) = softmax(Q·Kᵀ / √dk) · VVaswani 외, 2017

질문 (Q)
기호도서관에서는신경망에서는
Q 질의내가 찾는 것을 적은 쪽지지금 칸이 "무엇이 필요한가"를 나타낸 벡터. 입력 × WQ
K 키책마다 붙은 색인 카드각 칸이 "나는 이런 정보다"를 나타낸 벡터. 입력 × WK
V 값책의 실제 내용각 칸이 실제로 건네줄 정보. 입력 × WV
Q·K쪽지와 카드가 얼마나 맞나두 벡터의 내적. 방향이 비슷할수록 크다
÷ √dk—벡터가 길어질수록 내적이 커져 소프트맥스가 한 칸에만 쏠리는 것을 막는다 [R2]
softmax읽을 시간을 책마다 나눠 주기점수를 합이 1인 주의로 바꾼다
× V읽은 시간만큼 내용을 섞어 정리주의를 가중치로 값들을 더한다. 이것이 출력이다
4셀프 어텐션

셀프 어텐션 — 문장이 자기 자신을 찾아본다

섹션 3에서는 질문과 책이 따로 있었다. 셀프 어텐션에서는 문장의 모든 단어가 질의이자 키이자 값이다. 단어마다 다른 모든 단어에 주의를 나눠 준다.

질의 단어

이 예시의 숫자는 어디서 왔나

단어 벡터는 [동물, 음식, 동작, 지시어] 네 칸으로 손으로 정했다. 질의 변환 WQ는 "지시어는 음식을 찾고, 동작은 동물을 찾는다"가 되도록 정했다. 키·값 변환은 그대로 둔다. 실제 트랜스포머는 단어 벡터도, WQ·WK·WV도 모두 학습으로 정하고, 폭도 수백 칸이다. 계산식은 이 예와 똑같다. 코드 1이 같은 숫자를 낸다.

5멀티헤드

멀티헤드 — 여러 관계를 동시에 본다

한 문장에는 관계가 여러 겹 있다. "누가 먹었나"와 "무엇을 먹었나"는 서로 다른 질문이다. 헤드마다 다른 WQ·WK·WV를 써서 다른 관계를 보고, 결과를 이어 붙인다.

질의 단어
모델 폭 (파라미터 계산)
6위치 정보

위치 정보 — 어텐션은 순서를 모른다

어텐션은 모든 칸을 한꺼번에 비교한다. 그래서 단어 순서를 섞어도 각 단어의 결과가 똑같다. 순서를 알려 주려면 자리마다 다른 "위치 부호"를 단어 벡터에 더한다.

위치 부호
문장 순서

사인·코사인 위치 부호

원 논문은 위치 pos의 짝수 칸에 sin(pos / 100002i/d), 홀수 칸에 cos(…)을 넣었다 [R2]. 앞쪽 칸은 빠르게, 뒤쪽 칸은 느리게 출렁여서 자리마다 다른 무늬가 생긴다. 시계의 초침·분침·시침을 함께 보면 시각이 하나로 정해지는 것과 같다. 위치 부호를 학습으로 정하는 방법도 널리 쓴다. 코드 2의 작은 트랜스포머는 학습하는 위치 임베딩을 썼다.

7블록

블록 조립 — 어텐션 + 피드포워드, 그리고 지름길

트랜스포머의 블록 하나는 멀티헤드 어텐션과 피드포워드 신경망(3-2의 MLP)으로 이루어진다. 각각에 입력을 그대로 더하는 지름길(잔차 연결)과 정규화를 붙이고, 이 블록을 여러 층 쌓는다.

블록 크기
8인코더·디코더

인코더·디코더와 GPT형 — 무엇을 볼 수 있게 하느냐

같은 블록도 "어느 칸이 어느 칸을 볼 수 있나"(마스크)를 바꾸면 쓰임이 달라진다.

구조
9기반과 한계

오늘날의 기반이 된 이유와 한계

트랜스포머가 널리 쓰이게 된 이유는 세 가지로 정리된다. 그만큼의 비용도 있다. 가장 큰 비용은 길이의 제곱으로 늘어나는 주의 계산이다.

길이 n
기반이 된 이유
  • 한꺼번에 계산: 순환이 없어 모든 칸을 동시에 계산하므로, 같은 시간에 훨씬 많은 데이터로 학습할 수 있다 [R2].
  • 먼 칸을 바로 연결: 첫 칸과 마지막 칸이 어텐션 한 번으로 이어진다. RNN처럼 칸 수만큼 거쳐 가며 흐려지지 않는다. 코드 2에서 3-7의 과제로 직접 확인한다(섹션 9 아래).
  • 같은 블록을 크게: 블록을 여러 층으로 쌓고 폭을 넓히는 방식으로 규모를 키우기 쉽다. 인코더만 쓴 BERT [R4], 디코더만 쓴 GPT-3(파라미터 1,750억 개) [R5]가 이 블록을 쌓았다.
한계와 비용
  • 길이의 제곱: 길이 n이면 주의 점수가 n²개다. 문장이 2배 길어지면 주의 계산과 메모리는 약 4배가 된다. 그래서 한 번에 다룰 수 있는 길이에 한도가 있고, 이를 줄이는 연구가 계속되고 있다.
  • 데이터와 계산: 순서나 이웃 관계에 대한 가정(CNN의 지역성, RNN의 순차성)이 약한 만큼, 그것을 데이터로 배워야 한다. 작은 데이터에서는 RNN·CNN이 더 나을 수 있다.
  • 학습 범위 밖의 길이: 학습 때보다 훨씬 긴 입력에서는 위치 부호가 낯설어 성능이 떨어질 수 있다.
  • 주의 = 설명은 아니다: 주의 그림은 "어디를 보고 계산했나"를 보여 줄 뿐, 그 판단이 옳은 이유를 보장하지 않는다.

코드 2의 실험 — 3-7에서 LSTM이 실패한 과제를 트랜스포머로

3-7 코드 2와 같은 과제(모든 칸이 ±1, 정답은 첫 칸)와 같은 학습 설정(Adam 0.005, 30에폭, 학습 2,000개·시험 1,000개, 시드 2개). 트랜스포머는 셀프 어텐션 블록 하나(폭 16, 헤드 2개)와 학습하는 위치 임베딩을 썼다. "첫 칸에 주는 주의"는 모든 칸이 첫 칸에 준 주의의 평균이다.

이 시리즈의 범위

이 편은 트랜스포머의 구조까지 다룬다. 그 구조로 글·그림을 만들어 내는 생성 모델(대규모 언어 모델의 사전 학습, 지시 따르기 학습, 확산 모델 등)은 이 시리즈의 범위 밖이다. 다음 편들(3-4 음성, 3-6 시계열·주가, 3-5 텍스트)은 데이터를 숫자로 바꾸는 과정에 집중한다.

Colab 코드 — 이 페이지를 직접 실행해 보기

두 코드 모두 Colab에 기본으로 설치된 라이브러리만 쓴다. "노트북(.ipynb) 내려받기" 후 Colab에서 파일 → 노트북 업로드로 열거나, 복사해서 새 노트북 칸에 붙여 넣는다.

코드 1 · 어텐션을 넘파이로 손계산하기섹션 3~6과 연결 · numpy, matplotlib · CPU 1초 미만

도서관 예시, 다섯 단어 셀프 어텐션, 헤드 두 개, 순서 섞기와 위치 부호를 같은 숫자로 계산한다. 내 데이터로 바꾸려면 BOOK_K·BOOK_V·QUERIES 또는 단어 벡터 X를 바꾼다.

실행 결과 (2026-10-03 실행, numpy 2.4 · matplotlib 3.10 · CPU). 계산에 난수가 없어 언제 실행해도 같다.
코드 2 · Keras로 작은 트랜스포머 대 LSTM — 3-7의 "첫 신호 기억하기"섹션 9와 연결 · tensorflow(Keras), numpy, matplotlib · CPU 약 8분

3-7에서 LSTM이 긴 길이에서 실패한 과제를 셀프 어텐션 블록 하나짜리 트랜스포머로 다시 푼다. 학습한 트랜스포머가 정답이 있는 첫 칸에 주의를 얼마나 주는지도 잰다. 섹션 9 아래의 표가 이 출력에서 바로 만들어진다.

실행 결과 (2026-10-03 실행, TensorFlow 2.21 · Keras 3.15 · CPU). 시드·버전·하드웨어에 따라 숫자가 바뀔 수 있다.

AI 응용 프롬프트 — 이 코드를 출발점으로 삼기

ChatGPT, Qwen, Claude 같은 AI 도우미에 붙여 넣는 프롬프트다. "복사"를 누르면 프롬프트 뒤에 고른 코드가 함께 붙는다. 〔 〕 안을 내 상황으로 바꿔 쓰면 된다.

함께 붙일 코드

AI의 답은 출발점일 뿐이다. 제안된 논문·수치·라이브러리 함수는 반드시 원문과 공식 문서로 확인한다. 공모전·논문에 AI 도움을 받았다면 주최 측과 학술지의 규정에 따라 사용 사실과 범위를 밝힌다.

용어 정리

본문의 노란 점선 밑줄과 같은 사전이다. 시리즈 전체에서 같은 표기를 쓴다. 섹션 이름을 누르면 처음 나온 곳으로 간다.

비유 모음 — 그리고 비유가 틀리는 지점

비유는 이해의 첫걸음이지만 오해의 씨앗도 된다. 초파리·뇌 비유에는 강도를 표시했다. 직접 실제로 같은 일을 한다는 근거가 있음 · 부분 일부 성질만 닮음 · 없음 대응하는 것이 알려지지 않음

개념일상 비유초파리·뇌 비유비유가 틀리는 지점
어텐션시험 공부할 때 중요한 쪽에 형광펜 칠하기부분 사람의 선택적 주의(시끄러운 곳에서 한 목소리에 집중하기)뇌의 주의는 감각·의도·피로 등이 얽힌 현상이다. 모델의 어텐션은 내적과 소프트맥스로 정한 가중 평균일 뿐이다
Q·K·V도서관의 질문 쪽지·색인 카드·책 내용없음도서관은 책 한 권을 골라 오지만, 어텐션은 모든 책을 비율대로 섞는다
소프트맥스 주의읽을 시간을 책마다 나눠 주기없음시간은 아무리 나눠도 다 쓰지만, 주의 0.01인 칸도 계산은 빠짐없이 한다(그래서 n²이 든다)
멀티헤드같은 문서를 편집자 여러 명이 다른 관점으로 읽기없음헤드의 "관점"은 사람이 정하지 않는다. 학습 뒤 해석해 보면 뚜렷한 역할이 보이지 않는 헤드도 많다
위치 부호시계의 초침·분침·시침을 함께 보면 시각이 정해진다없음시계는 하루가 지나면 되돌아오지만, 위치 부호는 학습한 길이 안에서만 익숙하다
잔차 연결고친 원고 옆에 원본을 늘 함께 붙여 두기없음원본을 "그대로 더한다"는 점이 핵심이다. 고친 정도가 작으면 원본이 거의 그대로 다음 층으로 간다
마스크 (GPT형)답안지를 가리고 앞 문제만 보며 다음 문제 풀기없음학습할 때는 모든 칸을 한꺼번에 계산한다. 가리는 것은 "볼 수 있는 범위"뿐이다

저자 소개와 레퍼런스

E-1 저자 소개 · E-2 학술 레퍼런스 · E-3 그림 참고 자료

E-1 저자 소개

안상선 ((주)M-Robo 대표)

한국전기안전공사, 매일경제신문을 거쳐 현재 매일경제 사외벤처 (주)M-Robo를 창업해 대표로 재직하고 있다. (주)M-Robo는 언론사 사내 벤처로 시작한 미디어 벤처로, 국민일보에 로봇기자(스톡봇)을 서비스 했으며, 한국인터넷진흥원, 한국언론진흥재단, 한국방송통신전파진흥원 등에서 다수의 프로젝트를 진행했다. 이후 자체 A.I 뉴스 신문인 Money-Robo를 서비스 중이다. 대표 재직 중 아시아오픈 데이터 해커톤 우승, 데이터창업 분야 공로로 행정안전부 장관상을 2회 수상했으며, 인공지능 및 블록체인 분야에 대한 5개 특허 발명 및 등록자이다. 저서로는 “AI범죄와 자기방어”가 있으며, 핀테크분야, 통계학, 인공지능 분야에 대해서 한국기술교육대학교 온라인평생교육원 이러닝 콘텐츠 개발을 진행했다. 최종학위는 경제학 박사(동국대, 미시수리경제학)이다. 국민대학교, 호서대학교 등 여러 대학교에서 데이터 및 인공지능과 관련한 과목을 강의하고 있다. 자세한 프로필

강의

  • 안상선 (2025). 「비즈니스를 위한 데이터 과학」 강의안. 한국열린사이버대학교 인공지능융합학과.
  • 안상선 (2025). [K-디지털] 인공지능 자연어 처리. STEP(스마트직업훈련플랫폼), 한국기술교육대학교 온라인평생교육원.
  • 안상선 (2024). [K-디지털] 핀테크 데이터 분석 기초. STEP(스마트직업훈련플랫폼), 한국기술교육대학교 온라인평생교육원.

STEP 강의 바로가기: link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
사이트 개편으로 접속이 원활하지 않을 경우에는 www.step.or.kr로 접속 바랍니다.

논문과 발표

  • 안상선 (2025). 국민노후보장패널데이터를 활용한 가구지출 예측 모델 연구: 인공지능 모델 기반 접근. 「미래사회」, 16(2). 원문
  • 안상선 (2025). 국민노후보장패널데이터를 활용한 가구지출 예측 모델 연구: 인공지능 접근. 국민노후보장패널 학술대회 발표자료(2025.05.13), 국민연금공단 국민연금연구원. 발표자료
  • 안상선 (2025). SNS 텍스트 기반 마약 의심 거래 탐지 알고리즘에 대한 연구: 패턴 및 맥락 분석을 중심으로. 「미래사회」, 16(1). 원문
  • 안상선 (2024). 금융분야의 이상탐지 모델 보안을 위한 통계 기반의 적대적 데이터 대응 방안: 실증적 분석과 시뮬레이션 결과. 「미래사회」, 15(3). 원문
  • 안상선 (2024). 인공지능을 활용한 가상 캐릭터 특성 기반 SNS 포스팅 탐지 솔루션. 2024 Summer Newmedia Party 포스터 발표(2024.06.19), 서울미디어대학원대학교.
  • 안상선 (2024). 산업재해 패널 데이터를 활용한 머신러닝 모델. 제10회 산재보험패널 학술대회 포스터 발표(2024.05.17), 근로복지공단 근로복지연구원.
  • 안상선 (2024). 가상 자산 시계열 데이터의 분석과 예측: 시계열 모델 및 인공지능 모델의 비교, 개선점 제시. 「미래사회」, 15(1). 원문

E-2 학술 레퍼런스

  1. [R1] Bahdanau, D., Cho, K., & Bengio, Y. (2015). Neural machine translation by jointly learning to align and translate. ICLR 2015. arXiv:1409.0473 — 히어로, 섹션 1·2
  2. [R2] Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is all you need. Advances in Neural Information Processing Systems 30. arXiv:1706.03762 — 히어로, 섹션 1·3·5·6·7·8·9 (d_model 512, 8헤드 × 64, d_ff 2048, √d_k 나누기, 사인·코사인 위치 부호)
  3. [R3] Cho, K., van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder–decoder for statistical machine translation. EMNLP 2014, 1724–1734. doi:10.3115/v1/D14-1179 — 섹션 1 (인코더–디코더 RNN)
  4. [R4] Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of deep bidirectional transformers for language understanding. NAACL 2019, 4171–4186. doi:10.18653/v1/N19-1423 — 섹션 8·9
  5. [R5] Brown, T. B., Mann, B., Ryder, N., … Amodei, D. (2020). Language models are few-shot learners. Advances in Neural Information Processing Systems 33. arXiv:2005.14165 — 섹션 8·9 (GPT-3, 파라미터 1,750억 개)
  6. [R6] Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation, 9(8), 1735–1780. doi:10.1162/neco.1997.9.8.1735 — 섹션 9의 비교 실험

E-3 그림 참고 자료

  • 섹션 2의 번역 주의 값은 설명을 위해 정한 숫자다(학습된 값이 아니다)
  • 섹션 7의 블록 구조는 [R2]의 그림 1(인코더 쪽)을 따른다

교육자를 위한 TIP

강사, 실무 OJT 담당자, 튜터를 위한 운영 안내다. 시간은 예상치이므로 실제 수업에 맞춰 조정한다.

대상3-7을 마친 대학생·직장인. 언어 모델이 "어떤 부품으로 만들어졌는지" 알고 싶은 실무자
선수 지식벡터의 내적(같은 자리끼리 곱해 더하기), 3-2의 소프트맥스와 MLP, 3-7의 인코더–디코더
학습 목표① 어텐션 식 softmax(QKᵀ/√d_k)V를 숫자로 계산한다 ② 셀프 어텐션·멀티헤드·위치 부호가 각각 왜 필요한지 설명한다 ③ 트랜스포머가 기반이 된 이유와 n² 비용을 함께 설명한다
예상 시간읽기 45~55분 · 애니메이션 시연 25분 · Colab 실습 30분 (코드 1 10분, 코드 2 실행 8분 + 해석 12분)

운영안 세 가지

강의형 50분

개념 중심

도입 5분(섹션 1 병목) → 섹션 2·3 도서관 15분 → 섹션 4·5 10분 → 섹션 6 순서 섞기 10분 → 섹션 9 n²과 코드 2 결과 5분 → 확인 문제 5분.

실무 OJT 90분

업무 적용 중심

섹션 1·3 15분 → 섹션 8 세 구조를 업무 사례(분류·요약·번역)에 연결 20분 → 섹션 9 비용 계산(우리 문서 길이로) 15분 → 코드 2 실행·해석 25분 → 프롬프트 카드 15분.

1:1 튜터링

수준별 진도

입문자는 섹션 1·2·3·9만. 중급자는 섹션 3의 결과 벡터를 손으로 계산하게 한 뒤 코드 1과 대조하고, 섹션 7의 4d² + 4d를 직접 유도하게 한다.

섹션별 운영 포인트

섹션멈춰서 물어볼 질문조작 팁
1 남은 문제"40단어 문장을 8칸 벡터에 담으면 단어 하나당 몇 칸일까?"5 → 40단어로 바꿔 숫자 변화를 본다
2 어텐션"ate를 만들 때 왜 맨 끝 단어를 볼까?""ate" 버튼에서 멈춘다
3 Q·K·V"주의가 가장 큰 책만 가져오면 안 될까?""둘 다 궁금하다"에서 결과가 [5.5, 5.5]로 섞이는 것을 본다
4 셀프 어텐션"'그것은'은 무엇을 가리킬까? 모델은 어떻게 알았을까?"그것은 → 달았다 순서로 눌러 손으로 정한 규칙의 한계도 본다
5 멀티헤드"헤드를 8개로 늘리면 파라미터가 8배가 될까?"모델 폭 512에서 파라미터 숫자를 확인한다
6 위치 정보"순서를 섞어도 결과가 같다면 무엇이 문제일까?"위치 부호 없음 → 섞은 순서 → 더하기 순서로 누른다
7 블록"블록 파라미터의 대부분은 어텐션일까, 피드포워드일까?"기본형에서 "피드포워드의 몫"을 읽는다
8 인코더·디코더"GPT형은 왜 미래 칸을 가려야 할까?"디코더만을 눌러 마스크의 × 칸을 짚는다
9 기반과 한계"문서 길이가 2배가 되면 주의 계산은 몇 배가 될까?"4,096 → 32,768로 바꿔 메모리를 비교하고, 아래 실험표로 넘어간다

흔한 오해 Top 5

오해바른 설명보여 줄 장면
어텐션은 가장 중요한 단어 하나를 고른다모든 단어를 비율대로 섞는다. 주의가 작은 단어도 결과에 들어간다섹션 3 "둘 다 궁금하다"
트랜스포머는 순서를 저절로 안다위치 부호가 없으면 순서를 섞어도 결과가 같다섹션 6
헤드마다 사람이 역할을 정해 준다역할은 학습으로 생긴다. 이 페이지의 두 헤드는 설명을 위해 손으로 정했다섹션 5와 그 아래 설명
트랜스포머가 RNN보다 모든 면에서 낫다긴 연결과 병렬 계산에 강하지만, 길이의 제곱 비용이 들고 작은 데이터에서는 불리할 수 있다섹션 9
주의 그림이 모델이 판단한 이유다어디를 보고 계산했는지일 뿐, 판단이 옳은 이유를 보장하지 않는다섹션 4의 "달았다"

확인 문제 (해설은 눌러서 펼치기)

Q1. q = [2, 0.4], k = [2, 0], d_k = 2일 때 점수 q·k / √d_k는?

q·k = 2×2 + 0.4×0 = 4. 4 / √2 ≈ 2.828. 섹션 3의 책 A 점수와 같다.

Q2. 점수가 [1.98, 1.98, 2.772]일 때 소프트맥스 주의와, 값 V = [10,0], [0,10], [6,6]을 섞은 결과는?

주의 ≈ [0.238, 0.238, 0.525]. 결과 = 0.238×[10,0] + 0.238×[0,10] + 0.525×[6,6] ≈ [5.53, 5.53]. 코드 1의 출력은 [5.525, 5.525]다.

Q3. 위치 부호 없이 셀프 어텐션만 쓰면, 단어 순서를 섞었을 때 각 단어의 출력은 어떻게 되나? 왜인가?

똑같다. 각 단어의 출력은 "다른 모든 단어와의 비교"로만 정해지고, 비교 대상의 집합은 순서와 상관없이 같기 때문이다. 코드 1에서 차이는 1e-16(계산 오차 수준)이었다.

Q4. 모델 폭 d = 512인 멀티헤드 어텐션 층의 파라미터 수는? 헤드를 8개에서 16개로 바꾸면?

W_Q·W_K·W_V·W_O 네 개가 각각 512 × 512, 편향 512개씩: 4 × 262,144 + 4 × 512 = 1,050,624개. 헤드 수를 바꿔도 헤드 폭이 줄 뿐 행렬 크기는 같아서 그대로다.

Q5. 문서 길이가 4,096에서 8,192로 늘면 주의 점수 개수는 몇 배가 되나?

4배. (2n)² = 4n². 4,096² = 16,777,216개에서 8,192² = 67,108,864개가 된다.

Colab 과제

기본

코드 1에서 √d_k로 나누지 않으면 도서관 예시의 주의가 어떻게 바뀌는지 계산한다. 벡터를 10배로 키웠을 때 나누기의 효과가 어떻게 커지는지 두 문장으로 설명한다.

도전

코드 2에서 트랜스포머의 위치 임베딩(AddPosition)을 빼고 다시 학습한다. 결과와 "첫 칸에 주는 주의"가 어떻게 바뀌는지 시드 3개 이상으로 보고하고, 섹션 6과 연결해 이유를 쓴다.

난이도 조절과 더 배우기

입문자섹션 5·7은 건너뛰어도 흐름이 끊기지 않는다. 섹션 3의 도서관 하나만 확실히 손으로 계산해 본다
심화섹션 9의 n² 비용을 줄이는 방법(구간을 나눠 보기, 저차원 근사 등)을 조사해 발표하게 한다. 조사한 논문은 원문으로 확인한다
더 배우기안상선, 「비즈니스를 위한 데이터 과학」 강의안 (데이터 과학 전반) · STEP [K-디지털] 인공지능 자연어 처리 (3-5·3-8과 연결) · STEP [K-디지털] 핀테크 데이터 분석 기초 (3-6과 연결)
강사용 자료확인 문제의 채점 기준과 과제 예시 답안은 교육자용 정답 페이지 (3-8)에서 볼 수 있다

수고하셨습니다!

「3-8 어텐션·트랜스포머」 편을 끝까지 읽었어요. 연구실 식구들이 한마디씩 정리해 드립니다.

박사
박사기억 대신 다시 찾아보는 방법으로 시리즈를 마쳤어요.
  • 어텐션은 필요할 때마다 앞의 모든 칸을 다시 찾아본다
  • Q·K·V는 질문, 색인 카드, 책 내용
  • 길이가 2배가 되면 주의 계산은 4배가 된다
조수
조수트랜스포머는 첫 칸을 바로 찾아갔어요!
초파리 연구원
초파리 연구원완주 축하! 처음 화면에서 다시 골라 봐.