밑바닥부터 만들면서 배우는 LLM 4장 독서 후기

힘센캥거루
2025년 11월 26일
2
14

오늘이 11월 26일이니, 매일 1장식 독파하면 챌린지 성공이다.

첫째와 둘째의 방해 속에서 가능할지 모르겠다.

1. 더미 트랜스포머

밑바닥부터 만들면서 배우는 LLM 4장 독서 후기-1

GPT 모델을 만들면서 파이토치에서 트랜스포머 더미 블록을 가져오는 것을 봤다.

찾아보니 pytorch의 nn 안에는 이미 여러 트랜스포머 모델들이 구현되어 있었다.

이 트랜스포머 모델을 더미(dummy)라고 부르는 건, 모델의 구조는 같지만 아직 학습되지 않았기 때문이다.

2. 정규화

트랜스포머 블록 안으로 들어온 값들 중, 하나의 차원이 너무 크다면 해당 방향으로 데이터가 치중된다.

따라서 평균이 0이고 분산이 1이 되도록 값을 변환해준다.

그리고 Feed Forward Network에서는 Liner로 차원을 확장한 뒤 비선형 변환을 한다.

이때 ReLU나 GELU라는 비선형 활성화 함수를 이용한다.

밑바닥부터 만들면서 배우는 LLM 4장 독서 후기-2

ReLU보다 GELU가 선형적이기에 파라미터가 더 잘 조정된다고 한다.

그리고 각 블록에서는 Liner 함수를 이용해 차원을 늘렸다가 다시 감소시킨다.

차원을 늘리면 더 풍부한 비선형적 탐색이 가능해진다.

예를들어 사과, 오렌지, 당근이 있다면 해당 요리들을 데치고, 굽고, 다지고, 섞는 등 다양한 방식으로 요리해보는 것이다.

그리고 완성된 요리들을 모아 핵심만 원래 차원에 함께 담아내는 것이다.

밑바닥부터 만들면서 배우는 LLM 4장 독서 후기-3

3. 숏컷

학습은 손실이 일어난 곳에서부터 일어나기 때문에 역으로 추적해 들어간다.

예를들어 2층에서 물이 떨어진다고 해보자.

그럼 3층, 4층, 5층으로 올라가면서 물이 새는 곳을 역으로 찾아보는 것.

그래서 이 과정을 역전파라고 한다.

밑바닥부터 만들면서 배우는 LLM 4장 독서 후기-4

하지만 위처럼 만들어진 모델은 선형층을 지날 때 마다 그레디언트의 소실이 일어난다.

그레디언트가 소실된다는 것은, 역전파 과정에서 깊은 층에서는 학습이 사실상 일어나지 않기에 여러 층을 쌓는 의미가 없어진다는 것이다.

따라서 각 선형층에서 입력값과 출력값을 더하면서 gradientdml 소실을 막기 위한 우회 경로를 제공한다.

이건 수학적으로 이해하는게 더 편할 것 같다.

Residual 과정 : y = x + F(x)
backward 과정 : dL/dx = dL/dy * (1 + dF/dx)
최종 gradient : dL/dy * (1 + dF/dx)

백워드 과정에서 각 층의 gradient에 더해주는 1의 값이 항상 보장되기에, 각 층의 gradient는 소실되지 않는다.

이에 효과적인 훈련 과정을 도울 수 있다.

4. GPT 모델 만들기

이제 이렇게 만들어진 더미 모델에 어텐션 모델을 연결한다. 

마지막으로는 이 어텐션 모델이 여러번 반복할 수 있도록 하고, 출력된 토큰을 다시 디코딩하는 과정을 거치면 된다.

밑바닥부터 만들면서 배우는 LLM 4장 독서 후기-5

5. 후기

처음에는 가볍게 시작했던 내용이 뒤로 가면 갈수록 벅차다.

코드로 보면 어렵지만, 막상 비유와 상징을 통해서 배우면 그리 어렵지 않기도 했다.

이제 시대가 변해서 내용 자체의 암기 보다는 이해가 더 중요하다.

암기하면 새로운 것을 만들 수 없지만, 이해하면 인공지능의 도움으로 GPT를 완성할 수 있다.

남은 시간이 얼마 없지만, 그래도 최대한 이해할 수 있도록 노력해보려고 한다.

관련 글

밑바닥부터 만들면서 배우는 LLM 7장 독서 후기 및 챌린지 후기
밑바닥부터 만들면서 배우는 LLM 7장 독서 후기 및 챌린지 후기
7장 내용은 지시를 따르도록 미세 튜닝하는 과정이다.어떤 질문에 대해 기대하는 응답을 하도록 하는 것.역시나 필요한 것은 데이터이다.1. 지시 미세 튜닝 절차여기서의 핵심은 질문-응답 데이터 셋을 준비하여 입력-출력 쌍으로 훈련시키는 것.이걸 프롬프트 스타일이라고 한다...
밑바닥부터 만들면서 배우는 LLM 6장 독서 후기
밑바닥부터 만들면서 배우는 LLM 6장 독서 후기
6장은 분류를 위한 미세 튜닝하기이다.예제로 나오는 것은 스팸 분류기 만들기.스팸 분류기는 이것이 스팸인지, 스펨이 아닌지를 분류하는 것이므로 출력의 결과가 0, 1과 같은 값으로 나와야 한다.1. 미세튜닝의 순서미세 튜닝의 과정은 모델을 훈련시키는 과정과 비슷하다.데...
밑바닥부터 만들면서 배우는 LLM 5장 독서 후기
밑바닥부터 만들면서 배우는 LLM 5장 독서 후기
오늘은 12월 14일이다.사실 챌린지 기간은 이미 2주나 지나 버렸지만, 그렇다고 후기를 포기할 순 없었다.이렇게 남기는 TIL이 나중에 피와 살이 되기 때문.코드 자체보다는 의미에 집중해서 적어보려고 한다.1. 모델의 손실 계산GPT 모델을 만든 후에 어떤 방식으로 ...
밑바닥부터 만들면서 배우는 LLM 3장 독서 후기
밑바닥부터 만들면서 배우는 LLM 3장 독서 후기
맥북에 물을 한바가지 쏟은 후, 멘붕이 와서 3~4일 정도를 허비했다.지금 생각해보니 그냥 어차피 맥북은 나간거고, 수리 맡긴다고 생각하고 뭐라도 할걸 그랬나 싶다.어쨌든 조금 늦었지만, 그래도 끝까지 달려봐야 한다는 생각에 3장 후기를 남긴다.1. 어텐션 메커니즘3장...
밑바닥부터 만들면서 배우는 LLM 2장 독서 후기
밑바닥부터 만들면서 배우는 LLM 2장 독서 후기
벌써 챌린지 참여 2주차.어제 까지만 해도 2장을 못 끝냈는데, 1박 2일 연수를 온 김에 12시까지 코딩해보면서 겨우 진도를 맞췄다.1. 내용2장의 내용은 단어의 토큰화, 인코딩, 디코딩, 임베딩 벡터가 중심이었다.원핫 인코더를 만들어봐서 다른건 익숙했지만, 임베딩 ...
맥북 유저를 위한 파이썬 OCR 추천
맥북 유저를 위한 파이썬 OCR 추천
학생들 진료 확인서 인식을 위해 안써본 OCR이 없는 것 같다.Tesseract, EasyOCR, PaddleOCR 등 다양한 OCR들을 써보았는데, 한글에 대해 만족할만한 성능을 가진 OCR이 없었다.그런데 최근에 맥북에 있는 라이브 텍스트 기능을 래핑한 파이썬 라이...

댓글을 불러오는 중...