MLP는 "Multi-Layer Perceptron(다층 퍼셉트론)"의 약자입니다. 쉽게 말해 여러 개의 층(Layer)으로 구성된 신경망의 일종입니다. 하나의 층이 입력을 받아 계산한 결과를 다음 층으로 넘겨주는 형태로 작동하며, 마치 여러 명이 릴레이 경주를 하듯 서로 연결되어 최종 결과를 만들어 냅니다. 위 그림에서 보면 MLP가.. 없죠? 😄 이전 글에서 attention까지 했으니까... 그다음 블록에 MLP가 있어야 할 것 같은데 Feed Forward가 있네요. 흔히 MLP를 "Feed-forward Network(전방향 신경망)"라고 부르기도 합니다. 그 이유는 데이터가 항상 한 방향으로만 흐르기 때문입니다. 즉, 입력층에서 시작하여 은닉층을 거쳐 출력층까지 앞으로만 흐르고 다시 이전 층으로 돌아가지 않기 때문입니다.
LLM에 MLP는 어떻게 쓰이는 걸까요?
LLM은 텍스트에서 다음 단어를 예측하거나 문장의 의미를 이해해야 한다고 지난 글들에서 이야기 했었습니다. 이를 위해서 복잡한 의미와 문맥을 파악하는 능력이 필요한데, 바로 이 복잡한 관계를 학습하고 처리하기 위해 MLP가 쓰입니다. MLP는 LLM이 문장을 더 깊이 이해하고, 복잡한 패턴을 인식할 수 있게 도와줍니다.
MLP는 그럼 어떻게 동작할까요? MLP의 핵심은 크게 세 가지입니다:
- 입력층 (Input Layer)
- 은닉층 (Hidden Layers)
- 출력층 (Output Layer)
예를 들어, 간단한 문장 "나는 밥을 먹는다"를 LLM이 이해한다고 가정해 보겠습니다.
- 입력층은 "나는", "밥을", "먹는다"와 같은 단어들을 숫자 형태로 변환하여 받아들입니다.
- 이 입력된 숫자는 중간의 은닉층을 여러 차례 통과하면서 AI가 문장 내의 단어들이 어떻게 연결되어 있고 어떤 의미를 가지고 있는지 점점 더 깊이 이해하게 됩니다.
- 마지막으로 출력층에서 다음에 올 단어를 예측하거나, 이 문장이 어떤 의미를 갖고 있는지 판별하는 결과를 만들어 냅니다.
이 과정에서 MLP의 각 레이어는 다음과 같은 수학적 계산을 수행합니다:
- x는 입력으로 들어온 숫자(데이터)를 의미합니다.
- W는 가중치로, 각 입력 값이 얼마나 중요한지 나타냅니다.
- b는 편향(bias)으로, 결과값을 미세하게 조정해 주는 역할을 합니다.
- f()는 활성화 함수(activation function)로, 다음 레이어로 값을 전달하기 전 결과를 변환하여 복잡한 패턴을 포착할 수 있게 만들어줍니다.
- y는 이 계산을 통해 다음 레이어로 넘어가는 출력 값입니다.
이러한 계산을 레이어마다 반복하면서 각 레이어는 이전 레이어에서 전달받은 정보를 다시 새로운 형태로 변환합니다. 수학적으로 보면, 각 레이어에서 수행하는 연산은 입력된 정보를 단순한 선형 계산(Wx + b)으로 변환한 뒤, 이를 활성화 함수(f)를 통해 비선형적으로 변환하여 다음 레이어에 전달합니다. 그래서 이 활성화 함수의 역할이 중요한 것입니다. 이를 통해 AI는 입력 정보의 선형적인 한계를 벗어나 더 다양한 패턴과 복잡한 상호작용을 학습할 수 있게 되는 것이죠. A->B로 가는 단순한 선형 계산에서 A가 B, C, D, E, F 로 다양한 패턴으로 변환 될 수 있다는 것입니다. 이 덕분에 AI는 단순한 직선 형태 이상의 복잡한 관계를 파악할 수 있게 되는 것입니다.
MLP는 어텐션에 비해서 훨씬 간단하죠?
끝
'Tech' 카테고리의 다른 글
vLLM의 PagedAttention 방식이 L1/L2 캐시 히트율 저하시키는 이유 (0) | 2025.03.16 |
---|---|
PyTorch CUDA 메모리 관리 (0) | 2025.03.08 |
GEMM (General Matrix to Matrix Multiplication)과 GPU 아키텍처의 이해 (4) | 2025.03.01 |
[AI 상식] LLM은 어떻게 동작할까 - Attention (5) | 2025.02.08 |
[AI상식] LLM은 어떻게 동작할까 - Positional Encoding (6) | 2025.02.02 |