피드 포워드 네트워크

숫자 768개를 왜 3,072개로 늘렸다가 다시 줄일까요?

어디에 있나

어텐션 다음에 오는 부품입니다

어텐션이 다른 토큰에서 정보를 모아 오면, 피드 포워드가 토큰 하나하나를 따로 다듬습니다.

피드 포워드는 값이 앞으로만 흘러간다는 뜻입니다. 네트워크는 층을 이어 놓은 것을 말합니다.

속을 보면

넓히고, 굽히고, 좁힙니다

층 하나로 숫자의 개수를 늘리고, 앞 편의 GELU로 굽힌 다음, 층 하나로 다시 줄입니다.

여기서 층은 숫자 묶음에 표를 곱하고 더해 새 묶음을 만드는 계산입니다. 코드에서의 이름은 nn.Linear입니다.

얼마나 넓히나

가운데는 4배입니다

768개가 3,072개로 늘어납니다. 768의 4배입니다.

왜 넓히나

자리가 많으면 더 세밀하게 가려냅니다

넓힌 자리마다 GELU가 값을 통과시키거나 줄입니다. 자리가 많을수록 만들 수 있는 조합이 많아져 토큰의 뜻을 더 세밀하게 다듬을 수 있습니다.

켜지는 자리는 예시입니다.

왜 다시 좁히나

들어온 크기로 나가야 쌓을 수 있습니다

나갈 때 다시 768개여야 다음 블록에 그대로 넣을 수 있습니다.

실습에서 문장 2개, 토큰 3개, 숫자 768개짜리 입력을 넣었더니 같은 모양 그대로 나왔습니다.

다음 편

부품은 모였는데, 깊이 쌓으면 문제가 생깁니다

8편깊이 쌓으면 신호가 사라진다 6강 목록