AI VIDEO BRIEFING
스탠퍼드 CME295 트랜스포머와 LLM 1강 정리: 토큰화, 워드투벡, RNN, 셀프 어텐션
스탠퍼드 CME295 강의 첫 시간이 텍스트를 숫자로 바꾸는 토큰화에서 출발해 워드투벡 임베딩과 RNN·LSTM의 한계를 거쳐 트랜스포머의 셀프 어텐션과 인코더·디코더 구조에 이르는 개념의 흐름을 차례로 짚는다.

핵심 메시지
쉽게 이해하기
강의를 맡은 두 사람은 쌍둥이 형제로, 프랑스에서 같은 학교를 나온 뒤 각각 MIT와 스탠퍼드로 갔고 우버와 구글을 거쳐 지금은 둘 다 넷플릭스에서 대규모 언어 모델을 다룬다. 2020년부터 자연어 처리를 파고들며 매년 워크숍 형태로 가르치던 내용이 ChatGPT 이후 관심이 폭발하면서 정식 스탠퍼드 과목이 되었고, 목표는 트랜스포머라는 기반 구조를 이해하는 것과 LLM이 어떻게 학습되고 어디에 쓰이는지 아는 것 두 가지다. 그래서 첫 시간은 자연어 처리 과제의 지형도부터 짚는다. 강의는 과제를 문장 하나에 하나를 예측하는 분류, 문장 안 여러 단어에 각각 라벨을 붙이는 다중 분류, 그리고 길이를 알 수 없는 텍스트를 만들어 내는 생성으로 나눈다. 정확도만 보면 클래스가 한쪽으로 쏠린 데이터에서 다수 클래스만 찍는 모델이 좋아 보이므로 정밀도와 재현율, 둘의 조화 평균인 F1이 필요하다는 설명이 뒤따른다. 번역처럼 정답이 여러 개인 과제에는 BLEU와 ROUGE가 쓰였지만 이런 지표는 항상 참조 텍스트, 곧 비싼 라벨을 요구하며, 강사는 LLM 발전 덕에 참조 없는 평가로 넘어갈 수 있게 된 이야기를 뒤 강의로 예고한다.
본론은 모델이 숫자만 이해한다는 사실에서 시작한다. 그래서 텍스트를 어떤 단위로 자를지 정하는 토큰화가 첫 관문이다. 단어 단위로 자르면 bear와 bears처럼 뿌리가 같은 말이 완전히 다른 토큰이 되고 학습 때 보지 못한 단어는 미등록 토큰으로 버려야 하며, 문자 단위는 오타에 강한 대신 시퀀스가 훨씬 길어지고 글자 하나의 표현이 무엇을 뜻하는지 알기 어렵다. 서브워드는 어근을 공유해 미등록 위험을 낮추는 절충안이고, 어휘 크기는 단일 언어면 수만, 다국어와 코드까지 포함하면 수십만 규모라고 강사는 말한다.
자른 다음에는 표현이다. 토큰마다 1이 하나뿐인 원-핫 벡터는 간단하지만 모든 벡터가 서로 직교해 코사인 유사도가 항상 0이 되는데, 의미가 비슷한 토큰끼리 유사도가 높아야 한다는 목표와 정반대다. 그래서 데이터에서 임베딩을 학습하는 워드투벡이 등장한다. 주변 단어로 가운데 단어를 맞히거나 그 반대로 맞히는 대리 과제를 두되 진짜 목표는 예측이 아니라 그 과정에서 얻어지는 표현이며, 어휘 크기보다 훨씬 작은 은닉 차원, 예컨대 768 같은 크기의 벡터가 그 단어의 표현이 된다.
다음은 순서를 다루는 모델이다. RNN은 지금까지 읽은 문장을 은닉 상태에 담고 토큰을 하나씩 처리해 순서를 반영하지만, 의미가 은닉 상태 하나에 전부 압축되기 때문에 멀리 떨어진 정보를 기억하지 못한다. LSTM은 셀 상태를 하나 더 두어 기억할 것을 추리려 했지만 완전한 해법은 아니었다. 강사는 이를 기울기 소실로 설명하는데, 마지막 단어를 예측하려면 앞선 모든 은닉 상태를 거슬러 올라가야 하고 이때 1보다 작은 값을 계속 곱하면 0으로 수렴해 가중치를 갱신할 수 없게 된다. 게다가 순차 계산이라 학습도 느리다.
이 문제를 정면으로 겨냥한 것이 어텐션이다. 2014년에 등장한 이 발상을 2017년 트랜스포머 논문은 끝까지 밀어붙여, 순차 처리를 버리고 모든 토큰을 한 번에 직접 연결하는 셀프 어텐션만으로 간다. 어떤 토큰을 쿼리로 삼아 다른 토큰들의 키와 비교해 가중치를 구하고 그 가중치로 값을 섞는 이 계산은 쿼리와 키 전치의 곱을 키 차원의 제곱근으로 나눈 뒤 소프트맥스를 씌워 값에 곱하는 행렬 연산이 되고, 강사의 말대로 GPU는 행렬을 좋아한다. 인코더가 입력 토큰들의 표현을 만들면 디코더는 지금까지 생성한 토큰만 보는 마스크드 셀프 어텐션과 인코더를 참조하는 크로스 어텐션을 거쳐, 위치 인코딩과 순전파 신경망을 지나 마지막 소프트맥스로 다음 토큰을 고른다.
주요 인사이트
- LLM 이해의 출발점은 모델 구조가 아니라 표현이다. 텍스트를 어떤 단위로 자르고 어떻게 벡터로 만들 것인가라는 질문이 이후 모든 설계를 규정한다.
- 토큰화 방식 선택은 정확도 문제가 아니라 비용 구조 문제다. 미등록 단어 위험을 줄이려 단위를 잘게 쪼갤수록 시퀀스가 길어지고 추론 비용이 오른다.
- 워드투벡의 진짜 목표는 다음 단어 예측이 아니라 그 과정에서 얻어지는 표현이었다. 대리 과제라는 개념은 지금의 사전학습 방식으로 그대로 이어진다.
- 트랜스포머가 순차 처리를 버린 것은 성능뿐 아니라 하드웨어 때문이기도 하다. 어텐션을 행렬 연산으로 쓸 수 있다는 점이 GPU 병렬화와 맞물렸다.
- 같은 단어가 문맥에 따라 다른 표현을 갖는다는 성질은 셀프 어텐션에서 자연히 따라 나온다. 워드투벡이 풀지 못한 문맥 문제가 구조 변경으로 해결된 셈이다.
자주 묻는 질문
서브워드 토큰화를 주로 쓰는 이유는 무엇인가?
단어 단위는 학습 때 보지 못한 단어를 미등록 토큰으로 버려야 하는 위험이 크고, 문자 단위는 시퀀스가 너무 길어지며 글자 하나의 표현이 무엇인지 알기 어렵다. 서브워드는 어근을 공유해 미등록 위험을 낮추면서 시퀀스 길이도 감당할 만한 절충점이다.
원-핫 인코딩의 문제는 무엇인가?
토큰마다 1이 하나뿐인 벡터를 주면 모든 벡터가 서로 직교해 코사인 유사도가 항상 0이 된다. 의미가 비슷한 토큰끼리 높은 유사도를 갖게 하려는 목적과 정반대이므로, 데이터에서 임베딩을 학습하는 방식이 필요해진다.
RNN이 긴 문맥에 약한 이유는 무엇인가?
문장의 의미가 은닉 상태 하나에 압축되고, 마지막 단어를 예측하려면 앞선 모든 은닉 상태를 거슬러 갱신해야 한다. 이때 1보다 작은 값이 계속 곱해지면 값이 0으로 수렴해 가중치를 갱신할 수 없게 되는데 이것이 기울기 소실이다.
디코더의 두 어텐션 층은 어떻게 다른가?
첫 번째는 마스크드 셀프 어텐션으로 지금까지 생성한 토큰만 보고 다음 토큰에 필요한 정보를 찾는다. 두 번째는 크로스 어텐션으로, 디코더에서 나온 쿼리가 인코더가 만든 키와 값을 참조해 입력 문장의 어떤 부분이 중요한지 판단한다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗