잠시 시간을 내서 이 멋진 도표를 보세요 모든 걸 배치한 거죠 그런 다음 넘어가죠
이제 제가 말씀드리고 싶었던 세부적인 부분으로 넘어가죠
제가 비트를 좀 느슨하게 표현했는데요 모델이 다음 토큰을 예측한다고 했었죠 그렇게 생각할
수도 있겠네요
간단하게 생각해 보죠
종종 그런 표현을 쓰지만 실제로는 그렇지 않아요
변압기 구조가 있는 것도 아니고 맨 아래 계층에서 나오는 건 단일 토큰이
아니죠 예측 가능한 다음 토큰이요
그렇게 되는 게 아니에요
마지막 층에서 나오는 건 확률이에요
모든 토큰을 갖고 있고 그 모든 토큰에 대해 알고 있죠
그게 다음 토큰이 될 확률은 얼마나 될까요?
일련의 확률을 내놓죠
신경망 아래에서 나오는 거예요
프린트할 때 마지막으로 봤던 레이어가 있었죠
LM 헤드라는 모델이에요
그게 가장 마지막 단계예요
숫자의 벡터인 로그잇을 가지고 나타납니다 확률을 나타내는
것들이죠
그걸 함수에 넣어야 해요 Put it up
너무 자세하게 설명하는 것 같지만 이미 알고 계실지도 몰라요
소프트맥스라는 함수가 있는데 이 숫자들을 확률로 변환할 수 있습니다 각각의
토큰은 0에서 1 사이일 것이고 그 다합이 1이기 때문이죠
따라서 모델의 결과를 가능한 다음 토큰의 확률로 해석할 수 있는 방법을 제공하죠
이게 포워드 패스에서 나오는 거예요
추론 모드에서 이걸 실행하면 get-ference 모드에서 얻는 건
이 모든 확률이에요
이걸로 뭘 할 수 있을까요?
다음 토큰이 뭘 예언하는지 어떻게 알죠?
대부분은 아주 간단한 접근법이에요
가장 가능성이 높은 토큰을 선택하면 돼요
가능성이 높은 토큰을 선택하세요
개연성이 아주 다양해요
누가 최대인지 알아봐요
다음 글자는 이거로 해요
좀 더 세련된 비트도 있어요
이런 확률을 체중으로 삼아 무작위로 샘플을 채취할 수 있어요
비트가 좀 더 다양해지죠
몇 개의 글자를 연속해서 샘플링할 수 있는 다른 기술도 있어요 그리고 그 경로를
선택할 수 있죠
추론할 때 다양한 전략을 쓸 수 있어요 이런 확률을 바탕으로 최선의 결과를
낼 수 있죠
잠시 후 우리 프로젝트를 보면 약간 비표준 전략을 사용할
겁니다 각각의 토큰은 비용, 숫자를 나타내니까요
비트를 좀 더 영리하게 바꿀 수도 있지만 그럴 필요는 없어요
아니면 가장 가능성이 높은 걸 선택해도 되고요
모델 출력이 잘 설명했고요
이제 확실히 아셨길 바라요
그리고 상실 함수요
지난 영상에서는 살짝 얼버무렸어요
손해 보는 것도 모르시네요
얼마나 심각했어요?
실제론 어떤 의미일까요?
놀랍도록 간단해요
가능한 다음 토큰의 모든 가능성을 갖고 있죠
그래서 다음 토큰이 무엇이었는지 알고 있다고 하는 거죠
99개라고 가정해 보죠
이 모든 확률을 살펴보고 모델에서 99의 확률을 계산해 올바른 다음 토큰이
무엇인지 알아내는 거죠
그게 가장 중요하죠
중요한 건 정확한 결과를 낼 확률이 얼마냐는 거죠
만약 그게 100%의 확률이라면 완벽한 거죠
좋은 결과를 낼 거라고 100% 확신했어요
다른 건 다 0이어야 해요 확률은 1이 되니까요
그러니 정말 완벽하죠
만약 100% less라면 잘 안 된 거예요
확률이 낮을수록 더 안 좋은 결과가 나왔어요
그 확률을 따져보면 잘 되는 것 같은 공식은 그 숫자의
로그를 반증하는 거예요
1을 그 숫자의 로그에 곱해요
이것을 계산하면, 만약 1이라면, 100%의 확률이라면, 0이
되겠죠.
손해 볼 게 없으니 좋은 거죠
완벽하다면 패배는 아무것도 아니죠
확률이 낮을수록 손실률도 높아지는 거죠
확률을 부정적으로 기록하는 건 손실 함수를 잘 활용하는 방법이죠
거창한 명칭도 있죠
이 손실 함수를 교차 엔트로피 손실이라고 해요
그렇게 부르더군요
다음 토큰의 참일 확률의 마이너스 로그일 뿐이죠
그걸 사용했어요
훈련을 계속한다면 지금 그걸 이용하는 거예요 각 예측의
교차 엔트로피 손실을 계산하는 거죠
그리고 덧붙일 말이 있어요
이것에 대한 해석이 있어요 특히 데이터 과학자들에겐요
이건 분류에 사용되는 계산입니다 뭔가를 다른 빈으로 분류하려고 할 때요
예전에 이미지를 4-5가지 다른 범주로 분류하려고 했던 때가
있었죠 교차 엔트로피 손실요 확률을 생각해내고 교차 엔트로피
손실을 이용해서 분류를 잘했는지 아닌지 알아내요
사실, 말이 되는 것이 다음 토큰을 예측하는 전체 프로세스는 분류 문제이기
때문이죠
다음 토큰이 될 수 있는 카테고리는 아주 많다는 거죠?
사실, 가능한 모든 다음 패가 거기 있어요
어떤 버킷이 다음 토큰에 가장 잘 맞을지 예측하는 거죠.
따라서 인공지능이 생성되는 과정은 사실 분류 문제일 뿐이에요
다음 토큰을 분류하고 다음 토큰이 무엇인지 밝혀질 확률을 계산하는
거죠
흥미롭게도 우리 프로젝트의 가격 예측은 몇 년 전에 말씀드렸듯이 정말
퇴보하고 있어요
숫자를 예측하려 하고 분류 문제로 취급하는 거죠 그건 괜찮아요
왜냐하면 0과 999 사이의 숫자가 될 테니까요 죄송합니다 1과 999
사이 가능한 999개의 양동이들이죠
모든 제품을 이 999개의 양동이에 효과적으로 분류하려는 거예요
그래서 분류 문제로서 꽤 효과적인 거죠
그래서 개척 모델들이 잘 되고 있고 우리의 오픈 소스 모델도
잘 되길 바라는 거죠
이 모든 걸 종합해 보면 유용한 이론이 뒷받침되겠죠
하지만 지금은 다시 연습할 때예요 get get it
그걸 염두에 두고 오픈 소스 미세 조정은 어떻게 돼가는지 얘기해보죠