Stanford CME295 Transformers & LLMs
Quick Summary
스탠퍼드 CME295 1강은 토큰화부터 자기 어텐션과 인코더·디코더까지 연결해 트랜스포머가 LLM의 기반이 되는 원리를 설명한다.
영상 보기
클릭 전까지는 가벼운 미리보기만 먼저 불러옵니다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 결론
스탠퍼드 CME295 1강은 토큰화부터 자기 어텐션과 인코더·디코더까지 연결해 트랜스포머가 LLM의 기반이 되는 원리를 설명한다.
📌 핵심 요점
- 트랜스포머의 전환점은 확장성이다. 용도별 모델을 따로 사용하던 자연어 처리에서, 데이터·계산 자원·매개변수를 늘려 성능을 높이는 구조로 발전했다. 강의는 2017년 트랜스포머를 출발점으로 현대 LLM의 구조를 이해하도록 안내한다.
- 토큰화는 어휘 크기와 처리 길이의 절충이다. 단어 단위는 어휘와 미등록 단어 문제가 크고, 문자 단위는 시퀀스가 길어진다. 서브워드 방식인 BPE는 빈번한 토큰 쌍을 반복 병합해 길이를 줄인다. 실제 효율은 토크나이저 학습 데이터가 사용 언어와 입력을 얼마나 잘 대표하는지에 달려 있다.
- 의미 표현에는 문맥과 순서가 필요하다. Word2Vec은 단어의 동시 등장 관계로 의미 있는 벡터를 학습하지만, 같은 단어의 문맥별 의미와 문장 순서를 고정된 표현만으로 구별하지 못한다. RNN은 누적 은닉 상태로 순서를 반영하지만 장기 정보 유지, 기울기 소실, 순차 계산의 제약을 갖는다.
- 자기 어텐션은 토큰 사이의 관련성을 직접 계산한다. 학습 가능한 투영으로 쿼리·키·값을 만들고, 쿼리와 키의 유사도를 softmax 가중치로 바꾸어 값을 결합한다. 여러 헤드는 서로 다른 관계를 학습하며, 자기 어텐션만으로 알 수 없는 순서는 위치 표현으로 전달한다.
- 원래 트랜스포머는 입력 이해와 출력 생성을 연결한다. 인코더는 전체 입력을 반영한 표현을 만들고, 디코더는 과거 출력과 인코더 정보를 참조해 다음 토큰을 생성한다. 인과적 마스킹은 미래 토큰 참조를 차단하며, 생성은 종료 토큰에서 멈춘다. 피드포워드 신경망은 표현 학습을 담당하고, 잔차 연결·층 정규화·드롭아웃·레이블 스무딩은 학습과 일반화를 돕는다.
🧩 배경과 문제 정의
- 이 강좌는 대규모 언어 모델(LLM)의 구조, 학습 방법, 활용 방식과 강점·약점을 이해하는 것을 목표로 한다. 연구, 개인 프로젝트, 직무에서 필요한 AI 이해를 함께 다룬다.
- 자연어 처리는 용도별로 별도 모델을 사용하는 방식에서, 확장성이 높은 트랜스포머와 범용 LLM을 활용하는 방식으로 발전했다.
- 모델이 텍스트를 처리하려면 숫자 표현으로 변환해야 한다. 토큰화에서는 어휘 크기, 시퀀스 길이, 미등록 단어 처리와 계산 효율 사이의 절충이 핵심 문제다.
🕒 시간순 섹션별 상세정리
1. LLM의 작동 원리와 활용 한계를 이해하는 강좌
- 강사진은 2010년대 초부터 관련 분야에서 일했으며, 2021년부터 여러 형태로 강좌를 운영했다. 강좌의 목표는 트랜스포머 구조와 LLM의 학습·사용 방법, 강점과 약점을 연결해 이해하는 것이다. [01:02]
- 연구자는 기술과 응용의 시야를 넓힐 수 있고, 개인 프로젝트를 수행하는 사람은 도구의 적합성을 판단할 수 있다. 직무와 관계없이 AI 도구의 작동 방식을 이해해야 할 필요성도 커지고 있다. [02:04]
2. 빠른 기술 변화에 따른 강의 내용 갱신
- 전년도 이후의 발전을 반영해 사후 학습, 정책 증류, AI 에이전트와 코딩 에이전트 등을 강의 내용에 포함한다. [04:01]
- 토큰을 하나씩 예측하는 기존 방식 외에 확산 관점 등 다른 방식으로 텍스트를 다루는 모델도 늘고 있다. 올해 강의는 내용과 구성이 달라지므로 시험 준비에는 올해 자료를 사용해야 한다. [04:33]
3. 수업 일정과 수강 방식
- 수업은 매주 금요일 오후 3시 30분부터 5시 20분까지 진행하는 2학점 강좌이며, 문자 성적 또는 비문자 성적 방식으로 등록할 수 있다. [05:08]
- 모든 강의는 녹화하며 강의 후 최대 이틀 안에 공개할 예정이다. 대면 참석과 원격 시청 모두 가능하지만 강사진은 대면 참석을 선호한다. [05:28]
4. 두 시험으로 구성되는 평가
- 숙제는 없으며 중간고사와 기말고사로 평가한다. 중간고사는 첫 네 강의를 대상으로 10월 23일에 치르고, 기말고사는 마지막 다섯 강의를 대상으로 한다. 전체 강의는 아홉 번이다. [05:50]
- 웹사이트의 2025년 탭에서 기존 중간·기말 시험을 확인할 수 있다. 시험은 객관식과 일부 서술형 문항으로 구성된다. [06:23]
5. 학습 자료와 질문 채널
- 공식 오피스아워는 없지만 강사진이 매 강의 후 남아 질문을 받는다. 별도의 온라인 질문 플랫폼도 이용할 수 있다. [07:00]
- 웹사이트에는 강의 계획, 이전 시험과 녹화 자료가 있으며, 필기를 준비할 수 있도록 슬라이드를 강의 하루 전에 공개한다. 교재는 도서관과 온라인에서 이용할 수 있고, 최근 갱신한 요약 자료는 시험 전 복습에 활용할 수 있다. [07:32]
6. 현업 적용과 시험 준비의 기준
- 강좌 후반부는 다양한 환경에서 LLM을 적용하는 방법을 다룬다. 지난해에는 강의 도중 출시된 기술을 내용에 반영했으며, 올해도 새로운 발전에 맞춰 내용을 갱신할 계획이다. [10:05]
- 중간고사와 기말고사의 비중은 같으며, 꾸준한 학습과 수업 내용에 대한 집중이 권장된다. 교재에 있어도 수업에서 다루지 않은 내용은 출제 대상으로 예상하지 않지만, 수업에서 다룬 내용은 시험에 나올 수 있다. [10:38]
7. 제한된 수업 시간과 개념 연결의 필요성
- 주당 약 1시간 50분의 수업만으로 모든 내용을 상세히 다루기는 어렵다. 대부분의 슬라이드 하단에 있는 출처를 활용하면 짧게 다룬 주제의 세부 내용을 더 공부할 수 있다. [11:33]
- 자연어 처리 분야의 많은 약어는 입문자에게 혼란을 줄 수 있다. 강좌는 약어를 대응하는 개념과 연결해 전체적인 개념 지도를 만드는 것을 목표로 한다. [12:11]
8. 용도별로 분리되어 있던 자연어 처리 모델
- 과거에는 하나의 모델로 모든 요구를 해결하기보다 각 사용 사례에 맞는 모델을 따로 사용했다. 순환 신경망(RNN)이 당시의 주요 모델 중 하나였다. [12:53]
- 감성 분석은 문장이나 리뷰의 긍정·부정·중립을 판별하는 모델을, 번역은 번역 전용 모델을, 이름과 장소 추출은 해당 작업에 특화된 모델을 사용하는 방식이었다. [13:17]
9. 트랜스포머의 등장과 확장성
- 2017년 논문 「Attention Is All You Need」는 트랜스포머 구조를 제시했다. 데이터, 계산 자원과 매개변수를 늘렸을 때 이전보다 큰 성능 향상을 얻을 수 있는 확장성이 주요 전환점이었다. [13:55]
- 이후 연구는 모델 크기뿐 아니라 학습에 사용하는 토큰의 양도 확대했다. 이러한 확장을 통해 텍스트와 코드를 효과적으로 생성하는 현대의 LLM이 등장했다. [14:48]
10. 대화형 제품에서 에이전트로의 발전
- 2022년 ChatGPT 출시는 사용자에게 챗봇과의 상호작용을 널리 알린 제품상의 전환점이었다. 출시 월은 11월로 추정하며, 출시 주체가 확산 규모를 예상하지 못했을 가능성도 추측으로 드러난다. [15:19]
- 2026년에는 수강생 다수가 코딩 에이전트를 거의 매일 사용할 것으로 추정한다. 대화형 언어 모델과 보조 도구에서 실제 에이전트 행동으로 발전하는 과정은 강좌 후반부의 주요 주제다. [16:19]
11. 텍스트를 토큰과 숫자로 변환하는 과정
- 모델은 텍스트 자체보다 숫자 표현을 처리하므로, 입력 텍스트를 모델이 이해할 수 있는 형태로 바꿔야 한다. 토큰화는 텍스트를 처리의 기본 단위로 나누는 과정이다. [17:03]
- 나뉜 각 단위가 토큰이며, 각 토큰을 숫자로 이루어진 벡터로 표현하는 것이 목표다. 토큰화하려면 사용할 수 있는 모든 토큰의 집합인 어휘가 먼저 정해져 있어야 한다. [18:19]
12. 단어 단위 토큰화의 단순함과 한계
- 공백을 기준으로 단어를 나누는 방식은 특히 영어에서 구현이 간단하고 해석하기 쉽다. 그러나 단어의 여러 형태를 각각 토큰으로 취급하면 어휘가 매우 커질 수 있다. [19:54]
bear와bears처럼 의미와 어근이 가까운 단어라도 각각 표현을 학습하면 유사한 벡터를 얻는다는 보장이 없다. 관련 단어 사이의 지식을 공유하고 표현의 유사성을 확보하기 어렵다. [21:09]
13. 문자 단위 토큰화의 어휘 절감과 계산 비용
- 문자 단위로 나누면 어휘를 작게 유지할 수 있다. 사용하는 문자들을 학습 데이터에서 확보한다는 전제 아래 미등록 단어 문제를 줄일 수 있고, 오타나 철자 오류에도 더 강하다. [23:28]
- 문자 단위 분할은 시퀀스를 크게 늘린다. 모델의 계산 복잡도는 시퀀스 길이에 영향을 받으므로 처리가 느려질 수 있으며, 문자 임베딩은 단어 임베딩보다 의미를 해석하기 어렵다. [24:48]
14. 서브워드 토큰화의 절충과 데이터 의존성
- 서브워드 토큰화는 단어와 문자 사이의 단위를 사용하며, 학습 데이터에서 자주 나타나는 문자 묶음을 토큰으로 만든다.
bear와bears가bear토큰을 공유하는 식으로 어근 정보를 활용할 수 있다. [25:42] - 분할 방법을 데이터에서 학습하므로 공백 기반 분할보다 추가 작업이 필요하다. 결과는 토크나이저 학습 데이터의 종류에 크게 의존하므로, 그 데이터가 최종 사용 목적에 맞아야 한다. [26:39]
15. BPE의 반복 병합과 시퀀스 단축
- BPE는 초기 토큰 집합에서 출발해 학습 데이터에 가장 자주 나타나는 토큰 쌍을 찾고, 그 쌍을 합친 새 토큰을 만든다. [28:22]
- 초기 어휘를 알파벳 문자로 구성한 예에서는 함께 자주 등장하는
a와n을 합친 토큰을 추가한다. 이 과정을 원하는 최종 어휘 크기에 도달할 때까지 반복한다. [28:44]
16. 토크나이저의 학습 데이터가 토큰 길이를 결정한다
- 실제 입력에 자주 등장하는 단어가 토크나이저의 학습 데이터에 충분히 포함되면, 해당 텍스트를 더 짧은 토큰 시퀀스로 표현할 수 있다. 다국어 프로젝트에서는 필요한 모든 언어를 대표하는 데이터로 토크나이저를 학습해야 한다. [30:00]
- BPE는 학습 데이터에서 가장 빈번한 토큰 쌍을 반복적으로 병합해 목표 어휘 크기에 도달한다. 토큰 목록을 만드는 과정과 각 토큰의 의미를 표현하는 과정은 별개의 문제다. [30:54]
17. 특수 토큰이 미등록 입력과 생성의 경계를 표시한다
- 어휘에 포함되지 않은 텍스트 부분은 미등록 토큰인 unknown으로 표현할 수 있다. 이는 일반적인 텍스트 토큰과 별도로 특정 상황을 나타내는 특수 토큰이다. [32:09]
- BOS는 시퀀스의 시작을, EOS는 끝을 나타낸다. 텍스트 생성에서는 BOS를 입력해 생성을 시작하고, 모델이 EOS를 출력하면 생성이 완료된 것으로 처리한다. [33:08]
18. 패딩과 역할 토큰이 처리 형식과 추가 정보를 전달한다
- 패딩 토큰은 서로 다른 길이의 시퀀스를 일정한 길이로 맞춘다. 벡터·행렬·텐서로 입력을 표현할 때 차원을 통일하면 하드웨어 처리 효율에 도움이 될 수 있다. [33:54]
- BOS·EOS·패딩의 표기 방식은 보편적으로 통일되어 있지 않다. 사용자와 어시스턴트 같은 역할도 특수 토큰으로 표현할 수 있으며, 이러한 토큰은 모델이 이해해야 할 추가 정보를 전달한다. [34:29]
19. 다국어 어휘는 처리 효율과 언어 간 공유의 이점을 함께 가진다
- 현재 토크나이저의 어휘 크기는 수십만 개 수준이며, 20만 개 같은 규모가 예로 드러난다. 이러한 토크나이저는 영어와 다른 언어들을 함께 처리한다. [35:31]
- 고정된 어휘 크기를 여러 언어가 나누어 쓰면, 특정 언어만 처리할 때 토큰 시퀀스가 더 길어질 수 있다. 따라서 단일 언어의 처리 효율에서는 차이가 생길 가능성이 있다. [36:29]
20. 원핫 인코딩은 토큰의 의미적 관계를 표현하지 못한다
- 원핫 인코딩은 각 토큰을 서로 다른 위치에만 1이 있는 벡터로 표현한다. 서로 다른 토큰의 벡터는 내적이 0이므로, 이 표현만으로는 토큰 간 관계를 알 수 없다. [37:49]
- 의미 있는 표현에서는 teddy bear와 soft처럼 관련된 토큰이 유사하게 표현되어야 한다. 이러한 관계는 다음 단어 생성이나 분류처럼 텍스트의 내용을 활용하는 작업에 필요하다. [38:41]
21. Word2Vec은 보조 예측 과제로 단어 표현을 학습한다
- Word2Vec은 최종적으로 수행하려는 작업 대신, 의미 있는 단어 표현을 얻기 위한 보조 과제를 학습한다. [39:40]
- CBOW는 주변 문맥 단어들로 가운데 단어를 예측하고, Skip-Gram은 주어진 단어로 주변 단어들을 예측한다. 두 방식 모두 단어가 함께 등장하는 관계를 학습 신호로 사용한다. [40:11]
22. 예측 오차를 줄이는 과정에서 저차원 표현이 만들어진다
- 기본 신경망은 원핫 입력을 행렬 곱으로 크기 D의 은닉 표현으로 바꾸고, 다시 행렬 곱으로 어휘 크기 V에 해당하는 출력을 만든다. 예시에서는 어휘 크기를 6, 은닉 표현의 크기를 2로 설정한다. [40:40]
- softmax는 출력을 합이 1인 단어별 확률로 정규화한다. ‘a’로 ‘cute’를 예측하는 예시에서는 정답 단어에 부여된 확률 0.4를 1에 가깝게 만드는 것이 목표다. 교차 엔트로피 같은 손실을 이용해 예측 오차에 따라 가중치를 조정한다. [41:59]
23. 학습된 은닉 표현이 의미적 유사성과 관계를 담는다
- 예측 과제를 학습한 뒤 얻은 은닉 표현에서는 의미가 비슷한 토큰들의 표현도 비슷해진다. 학습된 벡터 사이의 유사도를 계산해 이러한 관계를 확인할 수 있다. [44:33]
- teddy bear와 soft의 연관성, 파리와 프랑스 및 베를린과 독일의 관계처럼 단어 사이의 의미 있는 연결이 표현에 반영된다. [45:05]
24. 고정된 단어 표현은 문맥과 순서의 차이를 구별하지 못한다
- 학습 중 만나지 못한 항목을 처리하는 문제와 어휘 크기에 따른 차원 증가가 제약으로 제기된다. 다만 어휘의 각 항목에 표현을 마련해야 하는 부담은 Word2Vec만의 문제가 아니라 다른 방법에도 적용된다. [45:57]
- 같은 단어는 문장이 달라도 같은 표현을 갖는다. ‘cute’의 진심 어린 표현과 비꼬는 표현, ‘bank’의 강둑과 금융기관 의미처럼 문맥에 따라 달라지는 뜻을 구별하지 못한다. [46:58]
25. RNN은 누적 은닉 상태로 순서와 문맥을 반영한다
- RNN은 현재 토큰과 함께 지금까지의 시퀀스 정보를 담은 은닉 상태를 사용한다. 이전 단계에서 만든 상태를 다음 단계의 입력으로 전달해 다음 단어의 예측을 돕는다. [48:53]
- 토큰 자체의 임베딩뿐 아니라 앞서 처리한 시퀀스의 표현도 사용하므로, 문장 안에서 단어가 등장하는 순서를 반영할 수 있다. [49:59]
26. 오래된 정보의 손실을 줄이기 위해 LSTM이 도입된다
- RNN은 시퀀스의 의미를 계속 갱신되는 하나의 벡터에 담기 때문에 먼 과거의 단어를 기억하기 어렵다. 앞서 언급한 대상을 나중에 다시 지칭할 때 필요한 정보를 현재 은닉 상태에서 꺼내기 어려워질 수 있다. [51:11]
- LSTM은 은닉 상태에 더해 셀 상태를 유지해 정보를 더 오래 전달하도록 설계되었다. 그러나 이러한 변형에도 장기 정보 유지의 한계는 남는다. [52:41]
27. 기울기 소실과 순차 계산이 RNN의 학습을 제한한다
- RNN의 장기 의존성 문제는 역전파 과정에서 발생하는 기울기 소실과 연결된다. 순서를 반영하는 구조만으로는 멀리 떨어진 정보의 학습 문제를 해결하기 어렵다. [54:01]
- 다음 토큰을 예측하려면 이전 토큰들을 처리한 은닉 상태가 필요하므로, 토큰을 하나씩 순서대로 처리해야 한다. 이 의존성은 학습 속도를 크게 제한한다. [54:31]
28. 어텐션은 필요한 토큰에 직접 접근해 예측을 돕는다
- 어텐션은 과거 정보를 은닉 상태에만 의존해 복원하는 대신, 이전에 등장한 토큰들과 직접 연결한다. 다음 토큰을 예측할 때 관련 있는 입력 정보를 활용할 수 있게 한다. [55:24]
- 번역에서는 다음 출력 단어를 예측할 때 대응하는 원문 단어에 접근하는 것이 유용하다. 어텐션은 원문 토큰들과 연결하고, 그중 어떤 토큰이 중요한지를 모델이 학습하도록 한다. [56:08]
29. 자기 어텐션은 시퀀스 전체를 활용하지만 위치 정보가 필요하다
- 2017년의 「Attention Is All You Need」는 높은 확장성과 좋은 결과를 보여준 전환점으로 제시되며, 자기 어텐션을 핵심 개념으로 사용한다. [57:28]
- 자기 어텐션은 특정 토큰의 표현을 같은 시퀀스에 있는 다른 모든 토큰의 함수로 계산한다. 각 토큰이 다른 토큰들과 직접 상호작용하며 문맥을 반영하는 방식이다. [58:24]
30. 쿼리·키·값으로 문맥 정보를 가중 결합한다
- 쿼리(Q)는 자신이 담당하는 토큰의 의미 있는 표현을 만들기 위해 관련 토큰을 찾는다. 각 토큰의 키(K)와 비교해 관련성을 계산하고, 그 결과를 값(V)의 가중 결합에 사용한다. [1:00:08]
- ‘곰’의 표현은 시퀀스의 다른 토큰들을 반영하는 가중 평균으로 구성된다. 쿼리와 각 키의 유사도는 가중치를 정하고, 실제로 결합되는 정보는 각 토큰의 값 벡터에 담긴다. [1:01:14]
31. 학습 가능한 투영 행렬로 Q·K·V를 만든다
- 쿼리·키·값은 학습 가능한 투영 행렬을 통해 얻는다. 입력 토큰의 표현을 각각의 공간으로 투영한 뒤, 만들어진 Q·K·V로 문맥을 반영한 표현을 계산한다. [1:03:18]
32. 어텐션의 가중합을 행렬 연산으로 표현한다
- 수식의 T는 행렬의 전치를 뜻한다. 쿼리와 키의 전치를 곱해 얻은 유사도에 softmax를 적용하고, 그 결과를 값 행렬과 곱하는 방식으로 어텐션을 표현한다. Softmax는 가중치의 합이 1이 되도록 만든다. [1:04:04]
- 모든 토큰의 쿼리와 키를 행렬에 모으면 QKᵀ의 각 원소는 특정 쿼리와 특정 키의 내적이다. 첫 번째 행에는 첫 토큰의 쿼리와 모든 키 사이의 유사도가 들어간다. [1:05:43]
33. 반복 구조를 대신하는 인코더·디코더 트랜스포머
- 당시 널리 쓰이던 RNN은 토큰을 순차적으로 처리하며 은닉 상태를 유지했다. 트랜스포머는 자기 어텐션으로 토큰들이 직접 상호작용하게 한다. [1:10:05]
- 원래 트랜스포머는 기계번역을 위해 제안됐다. 인코더는 원문 입력의 의미 있는 표현을 계산하고, 디코더는 그 표현과 자신이 계산한 내부 표현을 이용해 번역을 생성한다. [1:10:47]
34. 토큰 임베딩에 위치 정보를 더한다
- 입력 텍스트를 토큰으로 나누고 각 토큰에 학습 가능한 임베딩을 연결한다. 이 임베딩 자체는 문맥을 반영하지 않으므로, 시퀀스에서의 위치를 나타내는 임베딩을 더한다. [1:12:54]
- 위치 표현은 학습하거나 서로 다른 주파수의 함수로 만들 수 있다. 학습 방식으로 위치 500까지의 표현만 익혔다면, 1,000개 토큰이 들어오는 경우 그 범위를 넘는 위치를 표현할 수 없다는 한계가 있다. [1:13:48]
35. 인코더가 전체 입력을 반영한 토큰 표현을 만든다
- 인코더의 자기 어텐션은 각 토큰을 다른 모든 토큰의 함수로 표현한다. 학습한 투영 행렬로 Q·K·V를 만들고, 어텐션 연산을 통해 토큰 사이의 정보를 결합한다. [1:16:27]
- 피드포워드 신경망은 표현을 더 높은 차원의 공간으로 투영하고 활성화 함수를 통해 비선형성을 학습한다. 인코더의 최종 출력은 시퀀스 전체를 반영한 각 토큰의 표현이다. [1:17:40]
36. 시작 토큰과 생성 이력으로 디코딩을 시작한다
- 번역 생성은 시퀀스 시작 토큰을 디코더에 넣으면서 시작한다. 이 토큰에도 첫 번째 위치에 해당하는 위치 인코딩을 더한다. [1:18:20]
- 디코더의 자기 어텐션은 현재 토큰과 지금까지 생성한 토큰을 이용해 표현을 계산한다. 생성 시작 시점에는 시작 토큰만 있으므로 참조할 생성 이력도 그 토큰 하나뿐이다. [1:19:02]
37. 원문을 참조해 다음 토큰의 확률을 계산한다
- 디코더의 두 번째 어텐션은 생성된 토큰의 표현과 인코더의 원문 표현을 연결한다. 쿼리는 디코더에서 오고, 키와 값은 인코더에서 오므로 생성 중인 토큰이 원문 전체의 정보를 참조할 수 있다. [1:19:28]
- 이어지는 피드포워드 신경망을 거쳐 디코더 입력 토큰의 의미 있는 표현을 얻는다. 생성 첫 단계에서는 시작 토큰에 대한 표현이 만들어진다. [1:20:27]
38. 잔차 연결로 입력을 유지하면서 수정한다
- 잔차 연결은 입력 특징이 하위 층을 우회해 직접 전달되도록 하며, 깊은 구조의 학습을 돕는다. [1:22:24]
- 층의 출력을 F(x)만으로 구성하는 대신 F(x)+x로 구성한다. 입력 전체를 새로 바꾸기보다 기존 입력에 수정분을 더하는 방식이며, 역전파와 학습에 도움이 된다. [1:23:13]
39. 층 정규화로 학습의 수렴을 돕는다
- 층 정규화는 활성값을 정규화하는 기법이며, 모델의 학습이 수렴하는 데 도움을 준다. [1:23:58]
40. 마스킹으로 아직 생성하지 않은 토큰의 참조를 막는다
- 디코더의 자기 어텐션에는 마스크를 적용한다. 각 토큰이 지금까지 생성된 토큰하고만 상호작용하도록 제한해, 아직 생성되지 않은 토큰을 참조하지 못하게 한다. [1:24:12]
41. 여러 어텐션 헤드가 서로 다른 관계를 학습한다
- 다중 헤드 어텐션은 서로 다른 투영 행렬로 Q·K·V를 만드는 여러 어텐션을 사용한다. 같은 입력에서도 서로 다른 방식으로 정보를 결합할 수 있다. [1:24:31]
- 합성곱 신경망의 여러 필터가 입력을 서로 다른 방식으로 처리하듯, 여러 어텐션 헤드도 각자의 투영을 통해 다른 관계를 학습한다. 헤드의 수는 h로 표현된다. [1:24:54]
42. 드롭아웃으로 특정 특징에 대한 의존을 줄인다
- 드롭아웃은 학습 중 일부 유닛을 일정 확률로 제거한다. 모델이 특정 특징에 지나치게 의존하지 않도록 해 일반화를 돕고, 트랜스포머 외의 모델에서도 널리 사용된다. [1:25:25]
43. 레이블 스무딩으로 정답 확률을 완화한다
- 다음 단어 예측에서 정답 하나에 확률 100%를 요구하지 않는다. ‘아름다운 날’ 외에도 ‘아름다운 계절’이나 ‘아름다운 저녁’처럼 유효한 표현이 가능하다는 점으로 레이블 스무딩의 취지를 보여준다. [1:26:00]
- 예시에서는 정답 토큰에 90%를 배정하고, 남은 10%를 어휘의 다른 단어들에 배정한다. 정답 레이블을 완화해 모델이 하나의 답에 지나치게 확신하도록 학습되는 것을 줄인다. [1:26:49]
44. 번역 예제의 입력을 토큰과 특수 토큰으로 구성한다
- 구체적인 번역 예제는 ‘귀여운 곰이 책을 읽는다’는 영어 문장을 다른 언어로 옮기는 작업이다. 먼저 문장을 기본 단위로 나누는 토큰화를 적용한다. [1:27:55]
- 서브워드 분할을 적절한 방식으로 설명하되, 이 예제에서는 설명을 위해 다른 분할을 사용한다. 시퀀스의 경계를 표시하는 시작·종료 특수 토큰도 포함한다. [1:28:19]
45. 임베딩 조회와 위치 벡터의 합으로 입력 표현을 구성한다
- 각 토큰의 임베딩은 학습 가능한 가중치로 이루어진 조회 테이블에서 얻는다. 토큰 위치를 고려하는 어텐션을 위해 위치 정보도 필요하며, 원래 트랜스포머는 이를 입력 단계에서 더한다. [1:29:06]
- 토큰 임베딩의 차원을 d_model이라고 하면 위치 표현도 같은 길이의 벡터로 구성한다. 서로 다른 주파수로 만든 위치 벡터를 학습 가능한 토큰 임베딩에 원소별로 더해 입력 표현을 만든다. [1:29:43]
46. 입력 임베딩을 쿼리·키·값으로 투영한다
- 토큰 임베딩의 조회 테이블은 학습 가능하며, 위치 표현도 학습 가능한 형태일 수 있다. 각 토큰의 표현을 행렬로 구성해 인코더에 입력한다 [1:30:26]
- 인코더의 자기 어텐션은 같은 입력 표현에 각각 학습하는 투영 행렬을 적용해 쿼리 Q, 키 K, 값 V를 만든다 [1:31:08]
47. 어텐션과 인코더 적층이 문맥을 반영한 표현을 만든다
- Q와 K의 전치 행렬을 곱하면 각 쿼리와 키의 내적을 담은 n×n 유사도 행렬이 나온다. softmax로 합이 1인 가중치를 만들고 V를 가중합하며, 키 차원이 내적의 분산에 미치는 영향을 보정하기 위해 표준편차에 해당하는 값으로 나눈다 [1:35:23]
- 이 어텐션 계산을 여덟 개 헤드에서 병렬로 수행하고 결과를 결합한다. 최종 투영 행렬 W_O는 결합한 표현을 d_model 차원으로 되돌려, 어텐션 전후의 임베딩 차원을 유지한다 [1:36:22]
48. 디코더는 과거 출력과 인코더 정보를 함께 활용한다
- 번역을 시작하는 토큰의 임베딩에 위치 표현을 더해 디코더에 입력한다. 마스킹된 자기 어텐션에서는 각 토큰이 자신과 앞선 토큰만 참조한다 [1:38:07]
- 교차 어텐션의 쿼리는 디코더의 토큰 표현에서 나오고, 키와 값은 인코더에서 나온다. 각 디코더 층은 인코더의 최종 출력 표현을 키와 값으로 사용한다 [1:38:40]
49. 다음 토큰을 다시 입력하며 번역을 완성한다
- 디코더의 표현에 선형층과 softmax를 적용하면 어휘 전체에 대한 확률분포가 만들어지며, 이를 통해 다음 토큰을 예측한다 [1:39:07]
- 가장 높은 확률의 토큰을 선택한다고 가정하면, 선택한 토큰을 디코더의 입력으로 다시 넣어 같은 계산을 반복한다. 이는 다음 토큰을 선택하는 방법의 한 예다 [1:39:29]
50. 어텐션과 피드포워드 신경망이 핵심 역할을 나눈다
- Transformer를 작동시키는 핵심 요소는 어텐션이다. 이후 다룰 모델에서는 일부 구성요소를 덜어내고 남은 구성요소를 반복하는 구조를 사용한다 [100:50] [1:40:14]
- 피드포워드 신경망에는 모델 파라미터의 대부분이 들어 있어 학습 용량의 큰 부분을 담당한다. 나머지 구성요소는 학습을 개선하는 역할을 하며, 데이터 품질도 별도의 중요한 요소다 [101:17] [1:40:29]
51. 인과적 마스킹은 참조할 수 없는 연결의 가중치를 없앤다
- 삼각형 형태의 마스크로 자기 어텐션의 일부 연결을 차단한다. 학습 중에도 현재 토큰이 알아서는 안 되는 뒤쪽 토큰의 정보를 참조하지 못하게 한다 [101:42] [1:40:44]
- 차단할 위치에 음의 무한대 값을 넣으면 softmax를 거친 해당 위치의 가중치가 0이 된다. 따라서 그 위치의 정보가 어텐션 결과에 반영되지 않는다 [101:59] [1:40:59]
52. softmax와 시작·종료 토큰은 위치에 따라 역할이 다르다
- 자기 어텐션과 교차 어텐션의 softmax는 쿼리가 여러 키에 부여할 가중치를 만든다. 마지막 출력층의 softmax는 다음 토큰을 예측하기 위한 어휘 확률분포를 만든다 [103:06] [1:41:14]
- 시작 토큰은 다음 토큰을 예측하기 위한 디코더의 입력이다. 디코더 출력에서 확인해야 하는 종료 신호는 종료 토큰이며, 이 토큰이 나오면 생성을 멈춘다 [103:36] [1:41:30]
53. 원래 Transformer에서 모델 학습과 시스템 활용으로 확장한다
- 여기까지의 구조는 2017년 Transformer를 출발점으로 삼는다. 이후 이 기술의 활용 범위가 넓어졌으며, 현재 사용하는 챗봇을 구동하는 기반이 되었다 [104:00] [1:42:29]
- 후속 강의에서는 이러한 모델을 훈련하는 방법과, 사람들이 사용하는 시스템 및 여러 시스템에 모델을 적용하는 방법을 다룰 예정이다 [104:16] [1:43:28]
🧾 결론
- 트랜스포머를 이해하려면 토큰화, 임베딩, 위치 정보, 어텐션, 다음 토큰 예측을 하나의 처리 흐름으로 연결해야 한다.
- 토큰 목록을 만드는 과정과 토큰의 의미 표현을 학습하는 과정은 별개다. BPE의 병합 규칙만으로 문맥 이해가 만들어지는 것은 아니다.
- 어텐션 내부의 softmax는 참조할 정보의 가중치를 만들고, 최종 출력층의 softmax는 다음 토큰의 어휘 확률분포를 만든다. 두 역할을 구별하는 것이 구조 이해의 핵심이다.
- 이번 강의의 기준 구조는 2017년 인코더·디코더 트랜스포머다. 후속 강의는 모델 훈련과 실제 시스템 적용으로 범위를 넓힐 예정이다.
📈 투자·시사 포인트
- AI 처리 효율을 볼 때 토큰 길이를 확인해야 한다. 같은 텍스트라도 어휘와 학습 데이터에 따라 토큰 수가 달라진다. 다국어 활용에서는 언어별 시퀀스 길이가 효율을 판단하는 점검 항목이 된다.
- 모델 역량은 어텐션만으로 평가하기 어렵다. 강의는 데이터·계산 자원·매개변수의 확장을 강조하며, 피드포워드 신경망이 파라미터 대부분과 학습 용량의 큰 부분을 담당한다고 설명한다. 기술 평가에서는 데이터 품질과 전체 구조를 함께 살펴야 한다.
- 현업 도구 선택에는 작동 원리와 한계에 대한 이해가 필요하다. 토큰화의 데이터 의존성, 위치 표현의 범위, 생성 과정의 정보 참조 방식을 알면 프로젝트에 맞는 도구를 판단하는 데 도움이 된다.
- 에이전트 활용은 후속 학습 주제다. 강좌는 대화형 모델에서 실제 에이전트 행동으로의 발전을 다룰 예정이지만, 이번 자료에는 에이전트의 성능이나 사업성을 비교할 근거가 제시되지 않는다.
⚠️ 불확실하거나 확인이 필요한 부분
- 강의에서 제시한 여덟 개 어텐션 헤드와 여섯 번의 인코더 반복은 원래 트랜스포머의 설명이다. 이를 모든 현대 LLM의 공통 사양으로 일반화하면 안 된다.
- 다국어 어휘 공유가 특정 언어의 표현 능력을 낮추는지는 자료에서도 단정하지 않는다. 토큰 길이에 따른 효율 차이와 모델의 표현 능력은 구분해 확인해야 한다.
- 가장 높은 확률의 토큰을 선택하는 방식은 생성 예제의 가정이다. 모든 모델이나 서비스가 같은 선택 방식을 사용한다고 볼 근거는 없다.
- 자막 기반 정리: 타임스탬프가 있는 자막을 기준으로 정리했으며, 고유명사·수치·인용은 원문 확인 필요 시 별도 검증한다.
- 영상 속 주장: 발표자의 해석·전망·비교는 확인된 외부 사실이 아니라 영상 속 주장으로 분리해 읽는다.
- 검증 필요: 수치, 기업 실적, 정책·시장 전망은 발행 전 최신 자료로 별도 검증이 필요하다.
✅ 액션 아이템
- 토큰화 → 임베딩과 위치 표현 → 인코더 → 디코더의 자기·교차 어텐션 → 다음 토큰 예측 → 종료 토큰의 흐름을 직접 그려 본다.
- 같은 문장을 단어·문자·서브워드 단위로 나누어 어휘 규모, 토큰 수, 미등록 입력 처리의 차이를 비교한다. 다국어 프로젝트라면 실제 사용할 언어도 포함한다.
- 작은 행렬 예제로 QKᵀ, softmax, V의 가중합을 계산하고, 마스크를 적용한 위치의 가중치가 0이 되는지 확인한다.
- 자기 어텐션과 교차 어텐션에서 Q·K·V의 출처를 표시하고, 어텐션 가중치와 최종 어휘 확률분포의 차이를 설명해 본다.
❓ 열린 질문
- 실제 사용할 한국어·영어 입력에서 토크나이저의 학습 데이터와 어휘 구성이 토큰 길이에 어떤 차이를 만드는가?
- 학습 가능한 위치 표현과 사인·코사인 기반 위치 표현은 학습 범위를 넘는 긴 입력에서 각각 어떤 제약을 보이는가?
- 후속 강의에서 다룰 모델들은 원래 인코더·디코더 구조의 어떤 구성요소를 유지하거나 덜어내며, 그 선택은 활용 방식과 어떻게 연결되는가?