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

힘센캥거루
2025년 12월 19일(수정됨)
2
15

오늘은 12월 14일이다.

사실 챌린지 기간은 이미 2주나 지나 버렸지만, 그렇다고 후기를 포기할 순 없었다.

이렇게 남기는 TIL이 나중에 피와 살이 되기 때문.

코드 자체보다는 의미에 집중해서 적어보려고 한다.

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

1. 모델의 손실 계산

GPT 모델을 만든 후에 어떤 방식으로 손실을 계산할지에 대한 내용이다.

GPT는 입력된 토큰을 바탕으로, 다음에 출력할 토큰의 확률을 계산한다.

이렇게 나온 확률들 중, 최상위의 확률을 가진 몇개의 토큰을 남기고 로그, 양수화 등을 거친 크로스 엔트로피 손실을 구한다.

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

크로스엔트로피 손실은 정답을 얼마나 확신했는지를 그대로 음수로 측정한 값이기 때문에, 평균 로그확률이 0에 가까워질수록 손실은 감소한다.

여기서 궁금했던 것은 로짓, 확률, 타깃 토큰확률, 로그 확률, 평균로그확률, 음의 평균 로그확률을 했는데 왜 모델의 정확도가 올라가는지였다.

이게 정답의 확률을 어떻게 높여줄 수 있을까?

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

알고보니 내가 로짓함수가 뭔지 잘 모르고 있었다.

쉽게 말하자면 모델은 실수 벡터인 로짓(logits)을 출력하고, softmax를 통해 이 점수들의 상대적 차이를 강조하여 확률 분포로 변환한다.

이 과정에서 큰 점수는 더 큰 확률을, 작은 점수는 거의 0에 가까운 확률을 갖게 된다.

그리고 확률은 0~1 사이의 값이고 log1 = 0 이므로 로그확률이 0에 가까울수록 정답에 가까운 토큰을 선택하게 된다.

따라서 손실(loss)은 정답 토큰의 로그확률이 0에 가까워지도록 모델 파라미터를 업데이트하게 만드는 신호다.

2. LLM 훈련과 디코딩 전략

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

이제 앞에서 했던 모든 과정을 통해 손실을 평가하고, 가중치를 업데이트 하는걸 반복하면 LLM을 훈련시킬 수 있다.

이때 정답에 가까운 토큰을 추론하기 위한 두 가지 전략이 인상적이었다.

만약 모델이 토큰을 선택할 때, 그리디 디코딩으로 확률이 높은 토큰만 선택한다면 응답의 다양성이 없어진다.

따라서 각 로짓을 숫자값(온도)로 나누어 응답의 다양성을 준다.

이것을 온도 스케일링이라고 한다.

또 하나는 탑-k 샘플링인데, 확률이 높은 k개의 토큰을 선택한 뒤 그 안에서 응답을 출력하도록 하는 것이다.

3. 후기

코드를 보면 파이토치와 함께 수학적 개념을 익혀야 하기에 눈이 자꾸 돌아갔는데, 이해하니 그리 어렵지 않다.

예전에 배웠던 손실 공식과 LLM에서의 손실 계산 방식이 조금 달라 배우는데 애먹기도 했다.

그래도 정말 깊이 알게 되어서 아이들에게 한번 가르칠만 한 것 같다.

아이들에게도 공식 자체보다는, 이해를 더할 수 있도록 하면 좋을 것 같다.

관련 글

밑바닥부터 만들면서 배우는 LLM 7장 독서 후기 및 챌린지 후기
밑바닥부터 만들면서 배우는 LLM 7장 독서 후기 및 챌린지 후기
7장 내용은 지시를 따르도록 미세 튜닝하는 과정이다.어떤 질문에 대해 기대하는 응답을 하도록 하는 것.역시나 필요한 것은 데이터이다.1. 지시 미세 튜닝 절차여기서의 핵심은 질문-응답 데이터 셋을 준비하여 입력-출력 쌍으로 훈련시키는 것.이걸 프롬프트 스타일이라고 한다...
밑바닥부터 만들면서 배우는 LLM 6장 독서 후기
밑바닥부터 만들면서 배우는 LLM 6장 독서 후기
6장은 분류를 위한 미세 튜닝하기이다.예제로 나오는 것은 스팸 분류기 만들기.스팸 분류기는 이것이 스팸인지, 스펨이 아닌지를 분류하는 것이므로 출력의 결과가 0, 1과 같은 값으로 나와야 한다.1. 미세튜닝의 순서미세 튜닝의 과정은 모델을 훈련시키는 과정과 비슷하다.데...
밑바닥부터 만들면서 배우는 LLM 4장 독서 후기
밑바닥부터 만들면서 배우는 LLM 4장 독서 후기
오늘이 11월 26일이니, 매일 1장식 독파하면 챌린지 성공이다.첫째와 둘째의 방해 속에서 가능할지 모르겠다.1. 더미 트랜스포머GPT 모델을 만들면서 파이토치에서 트랜스포머 더미 블록을 가져오는 것을 봤다.찾아보니 pytorch의 nn 안에는 이미 여러 트랜스포머 모...
밑바닥부터 만들면서 배우는 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이 없었다.그런데 최근에 맥북에 있는 라이브 텍스트 기능을 래핑한 파이썬 라이...

댓글을 불러오는 중...