LLM의 내부 동작 원리를 단계별로 시각화
텍스트를 의미 있는 조각(토큰)으로 분해하고 각 조각에 고유 ID 번호를 부여한다.
단어 전체가 아니라 BPE 방식으로 자주 붙어 나오는 조각 단위로 쪼갠다.
토큰 ID로 임베딩 행렬에서 해당 행을 꺼내온다.
행 = 토큰, 열 = 차원(벡터값). 이 숫자 배열이 공간상의 좌표가 된다.
비슷한 의미일수록 벡터 위치가 가깝다. 값은 학습으로 결정된다.
| 토큰 | ID | 차원1 | 차원2 | 차원3 | 차원4 | 차원5 | 차원6 | ... (×8000) |
|---|
모든 토큰이 서로 "나 이 단어랑 얼마나 관련 있어?"를 계산한다.
관련도를 반영해 각 토큰의 벡터를 업데이트한다. 이 과정을 수십 레이어 반복한다.
어텐션으로 변환된 벡터와 전체 어휘 벡터들의 유사도(내적)를 계산한다.
가장 가까운(유사도 높은) 토큰을 선택하고, 이를 누적하며 반복한다.
토큰 하나가 출력될 때마다 아래 과정을 처음부터 반복한다.
텍스트를 의미 있는 조각으로 분해 → 각 조각에 ID 부여
"개발자" → "개발"|"자" → [45231, 891]
토큰 ID로 임베딩 행렬에서 해당 행(벡터)을 꺼내온다.
ID 45231 → [0.5, -0.2, 0.8, ...] (8000차원)
토큰끼리 관련도 계산 → 문맥 반영해 벡터 업데이트
"먹었다" 벡터 → "밥을 먹은 행위" 벡터로 변환
변환된 벡터와 전체 어휘 유사도(내적) 계산 → 가장 가까운 토큰 선택
선택된 토큰을 누적 → 1번으로 돌아가 반복