AI

AI 연산의 정체는 결국 행렬 곱셈입니다: LLM·추천시스템·벡터검색 핵심 연산 완전 정복

marvin-jung 2026. 5. 15. 21:44
반응형
SMALL
AI 연산의 정체는 결국 행렬 곱셈입니다
AI 연산의 정체는 결국 행렬 곱셈입니다: LLM·추천시스템·벡터검색 핵심 연산 완전 정복
Matrix Multiplication: The Hidden Engine of AI (Transformers, DLRM, Vector Search)
ChatGPT가 사람처럼 답변을 만들어내고, 유튜브가 신기하게 다음 영상을 추천하고, 쿠팡이 살 만한 물건을 귀신같이 띄워주는 일. 사실 이 모든 것의 정체는 고등학교 수학책 첫 장에 나오는 그 "행렬"입니다. 마법 같은 AI의 본질을 한 번에 정리해 보겠습니다.
1. AI는 사실 "거대한 곱셈기"입니다

AI라고 하면 어딘가 신비롭고, 의식이 있는 듯한 느낌을 받으시는 분들이 많습니다. 그런데 막상 그 안을 열어 보면 의외로 평범한 수학 연산의 반복일 뿐입니다. 정확히 말씀드리면, 숫자가 잔뜩 들어 있는 표(행렬)를 서로 곱하고 더하는 작업이 끊임없이 반복되는 것입니다.

GPT-5도, Claude도, Gemini도, 추천 알고리즘도, 자율주행의 인식 모델도 본질은 똑같습니다. 입력을 숫자 행렬로 바꾼 뒤, 학습된 또 다른 행렬과 곱하고, 그 결과를 다시 다른 행렬과 곱하는 과정의 연속입니다. 이걸 수십, 수백 층으로 쌓아 올린 것이 바로 "딥러닝"입니다.

왜 NVIDIA 주가가 하늘을 뚫었을까요?

AI 연산의 99%가 행렬 곱셈이고, GPU는 행렬 곱셈을 병렬로 처리하는 데 최적화되어 있기 때문입니다. AI 호황은 곧 행렬 연산 호황이고, 이는 곧 GPU 호황입니다. 결국 AI 시대의 기축통화는 "초당 행렬 곱셈 횟수(TFLOPS)"라고 봐도 무방합니다.

2. 행렬이 뭐였더라? (5분 복습)

행렬(Matrix)은 숫자를 직사각형 모양으로 늘어놓은 것입니다. 가로줄을 "행", 세로줄을 "열"이라고 부릅니다. 예를 들어 [2, 3, 1] 같은 줄을 위아래로 두 개 쌓으면 2×3 행렬이 됩니다.

2 × 3 행렬 예시
2
3
1
5
0
4

핵심 연산은 두 개의 행렬을 곱하는 "행렬 곱셈(Matrix Multiplication)"입니다. 규칙은 단순합니다. 왼쪽 행렬의 한 행과 오른쪽 행렬의 한 열을 짝지어, 같은 자리끼리 곱한 뒤 모두 더합니다. 이 작업을 모든 행과 모든 열에 대해 반복하면 새로운 행렬이 만들어집니다.

A × B = C (행렬 곱셈)
1
2
×
5
6
=
17
1×5 + 2×6 = 17

딱 이거 하나만 기억하시면 됩니다. AI 모델이 학습한다는 것은 결국 이 행렬 안의 숫자들(가중치, Weights)을 미세하게 조정해 나간다는 의미입니다. 학습이 끝난 후에는 이 거대한 행렬과 입력을 곱해서 답을 뽑아내는 것이 "추론(Inference)"입니다.

3. LLM 안에서 일어나는 일: Q·K·V 행렬 댄스

ChatGPT나 Claude 같은 LLM의 심장은 "Transformer"라는 구조이고, Transformer의 핵심은 "Self-Attention" 메커니즘입니다. 이름만 들으면 어렵지만, 풀어 보면 결국 세 가지 행렬의 곱셈일 뿐입니다.

단어를 숫자로 바꾸는 첫 단계: 임베딩

"행복"이라는 단어를 컴퓨터가 직접 이해할 수는 없습니다. 그래서 단어를 숫자 벡터(예: [0.21, -0.45, 0.88, ...]처럼 4096개 또는 그 이상의 숫자 묶음)로 바꿉니다. 이 벡터들의 모음이 바로 "임베딩 행렬"입니다. 비슷한 의미의 단어는 비슷한 위치의 벡터를 갖게 됩니다.

Q, K, V: Attention의 3대 행렬

입력된 문장의 각 단어 벡터에서 세 종류의 새로운 벡터를 만들어 냅니다. 각각 Query(질문), Key(열쇠), Value(값)라고 부르며, 모두 단순한 행렬 곱셈으로 얻어집니다.

Q = X × W_q
K = X × W_k
V = X × W_v

여기서 X는 입력된 단어들의 벡터 묶음(행렬)이고, W_q, W_k, W_v는 학습으로 결정된 가중치 행렬입니다. 사실상 X에 서로 다른 행렬 세 개를 곱한 것일 뿐입니다.

Attention 공식, 결국 행렬 곱 두 번
Attention(Q,K,V) = softmax(QKᵀ / √d) × V

겁먹지 마시기 바랍니다. 풀어 보면 매우 단순합니다.

1Q × Kᵀ, "각 단어가 다른 단어와 얼마나 관련 있는가?"
Query 행렬과 Key 행렬을 곱해서 단어 간 관련도 점수표를 만듭니다. 이 자체가 행렬 곱셈입니다.
2√d로 나누고 softmax
점수가 너무 커지지 않도록 스케일을 조정한 뒤, 합계가 1이 되도록 확률 분포로 변환합니다.
3결과 × V, "관련도에 따라 정보를 가중 평균"
앞서 만든 관련도 점수에 Value 행렬을 곱합니다. 이것도 행렬 곱셈입니다.

즉, 한 번의 Attention 안에서만 이미 최소 5번의 거대한 행렬 곱셈이 일어납니다. 그리고 GPT-4급 모델은 이런 Attention 블록이 96층, 120층씩 쌓여 있습니다. 토큰 하나를 만들어 낼 때마다 이 행렬 곱셈이 수천억 번씩 일어나는 것입니다.

96층
GPT-3급 Transformer 깊이
12,288
한 토큰당 차원 수(예시)
4. 추천 시스템(DLRM)에서의 행렬 연산

인스타그램 피드, 유튜브 다음 영상, 쿠팡 상품 추천. 이 모든 것의 뼈대가 바로 Meta가 공개한 DLRM(Deep Learning Recommendation Model) 계열의 모델입니다. LLM과는 결이 조금 다르지만, 여기서도 행렬 연산이 핵심 엔진입니다.

임베딩 테이블, "사용자와 상품을 좌표로 표현하기"

DLRM에서는 사용자(User)와 상품(Item)을 각각 거대한 임베딩 테이블의 한 행으로 표현합니다. 예를 들어 사용자 1억 명, 상품 1천만 개가 있다면, 사용자 임베딩 테이블은 1억 행 × 128열짜리 거대한 행렬이 됩니다.

임베딩이 곧 "취향 좌표"입니다

"맥주를 좋아하는 30대 남성"의 좌표는 비슷한 위치에 모이고, "유아용품을 자주 사는 30대 여성"의 좌표는 또 다른 곳에 모입니다. 학습이 끝난 임베딩 테이블은 사람들의 취향 지도이자, 상품의 의미 지도가 됩니다. 이 테이블만 잘 만들어도 추천 모델의 절반은 완성된 셈입니다.

내적(Dot Product), "이 사용자가 이 상품을 좋아할까?"

사용자 벡터와 상품 벡터를 가져와 같은 자리끼리 곱하고 모두 더합니다. 이것이 바로 "내적"이며, 사실 행렬 곱셈의 가장 단순한 형태입니다. 결과값이 클수록 "이 사용자는 이 상품에 관심이 클 것이다"라고 해석할 수 있습니다.

score = user_vec · item_vec
       = u₁×i₁ + u₂×i₂ + ... + u₁₂₈×i₁₂₈

실제 서비스에서는 한 명의 사용자에 대해 수백만 개 상품과 한꺼번에 내적을 계산해야 합니다. 이때 사용자 벡터 1개와 "전체 상품 행렬"을 한 번의 행렬 곱셈으로 계산합니다. 사용자가 늘면 사용자 행렬과 상품 행렬을 통째로 곱합니다. 결국 또 행렬 곱셈입니다.

5. 벡터 유사도 검색: RAG와 의미검색의 비밀

요즘 자주 들리는 RAG(Retrieval-Augmented Generation), 의미검색(Semantic Search), 이미지 검색의 작동 원리도 본질은 행렬 연산입니다. 핵심은 "두 벡터가 얼마나 비슷한가?"를 빠르게 계산하는 것입니다.

코사인 유사도(Cosine Similarity)

가장 많이 쓰이는 유사도 측정 방식입니다. 두 벡터의 방향이 얼마나 비슷한지를 -1과 1 사이 값으로 나타냅니다. 1에 가까울수록 의미가 비슷하고, 0에 가까울수록 무관하며, -1에 가까울수록 반대 의미입니다.

similarity = (A · B) / (‖A‖ × ‖B‖)

분자는 또 내적, 즉 행렬 곱셈입니다. 분모는 단순히 벡터의 크기를 구해 곱한 값입니다.

실전 예시: RAG의 검색 단계
1문서를 벡터로 변환
사내 문서, 매뉴얼, 위키를 임베딩 모델에 통과시켜 각 문서를 벡터로 변환한 뒤 벡터 DB(Pinecone, Milvus, FAISS 등)에 저장합니다.
2사용자 질문도 같은 방식으로 벡터화
"우리 회사 휴가 규정이 어떻게 되나요?"라는 질문을 같은 임베딩 모델로 벡터로 변환합니다.
3행렬 곱셈으로 가장 비슷한 문서 찾기
질문 벡터 1개 × 전체 문서 행렬을 곱한 뒤 코사인 유사도를 계산합니다. 점수가 높은 상위 5~10개 문서를 LLM에 함께 넘기면 RAG가 완성됩니다.

FAISS, ScaNN, HNSW 같은 벡터 검색 알고리즘은 이 과정을 더 빠르게 하기 위한 다양한 최적화 기법일 뿐, 본질은 똑같이 "행렬 곱으로 유사도 계산"입니다.

6. 왜 GPU여야만 할까요?

여기까지 읽으시면 자연스러운 의문이 드실 것입니다. "행렬 곱셈은 CPU도 할 수 있을 텐데, 왜 굳이 GPU여야 하는가?" 답은 한 줄로 정리됩니다. CPU는 똑똑한 직원 한 명, GPU는 단순 작업 가능한 직원 수천 명입니다.

CPU
~16 코어
복잡한 분기와 논리 연산에 강함. 직렬 작업 최적화.
GPU
~16,000 코어
단순 연산을 동시에 수천 개씩 처리. 행렬 연산 최적화.

행렬 곱셈은 같은 종류의 곱셈/덧셈이 수억 번 반복되는 단순 작업입니다. 이런 일에는 똑똑한 한 명보다, 단순한 일을 동시에 처리할 수 있는 수천 명이 압도적으로 유리합니다. 그래서 NVIDIA의 H100 같은 AI GPU는 행렬 곱셈에 특화된 Tensor Core까지 별도로 탑재해 행렬 곱셈 속도를 극단적으로 끌어올렸습니다.

핵심 통찰: AI 산업의 경쟁력은 "더 큰 행렬을, 더 빠르게, 더 적은 전력으로 곱하는 능력"으로 수렴합니다. NVIDIA, AMD, Google TPU, 그리고 국내의 사피온·리벨리온까지 모두가 이 한 문제를 풀고 있는 셈입니다.
7. 한눈에 정리하는 비교 표
분야 입력 행렬 핵심 연산 출력
LLM (GPT, Claude) 토큰 임베딩 행렬 X Q·Kᵀ, ·V (행렬곱 ×N층) 다음 단어의 확률 분포
추천시스템 (DLRM) User × Item 임베딩 내적 (Dot Product) 관심도 점수
벡터 검색 (RAG) Query × Doc 임베딩 코사인 유사도 유사 문서 Top-K
이미지 인식 (CNN) 이미지 픽셀 행렬 합성곱(=행렬곱의 변형) 분류 결과

표를 보시면 분야는 달라도 결국 모두 같은 종류의 연산을 하고 있다는 사실을 확인하실 수 있습니다. 그래서 같은 GPU로 LLM도 학습하고, 추천 모델도 학습하고, 영상 모델도 학습할 수 있는 것입니다.

마치며: AI의 본질을 알면 두려움이 사라집니다

AI는 절대 마법이 아닙니다. 거대한 숫자 표(행렬) 사이의 곱셈과 덧셈, 그리고 그 결과에 적당한 비선형 함수를 한 번 씌우는 작업의 반복입니다. 이 작업이 수십억, 수조 번 쌓이면서 마치 사람처럼 말하고, 추천하고, 인식하는 결과가 만들어질 뿐입니다.

이 사실을 알고 나면 두 가지 변화가 생깁니다. 첫째, AI에 대한 막연한 두려움이 사라집니다. 둘째, 기술 뉴스를 읽을 때 "왜 NVIDIA가 중요한지", "왜 메모리 대역폭이 중요한지", "왜 모델이 커지면 비용이 폭증하는지"가 자연스럽게 이해되기 시작합니다. 이 모든 것이 결국 "더 많은 행렬 곱셈을 어떻게 효율적으로 처리할 것인가"라는 하나의 질문으로 귀결되기 때문입니다.

📌 오늘의 핵심 정리
  • AI 연산의 본질은 거대한 행렬의 곱셈과 덧셈 반복입니다.
  • LLM의 Attention은 Q·Kᵀ와 ·V, 두 번의 행렬 곱이 핵심입니다.
  • 추천 시스템(DLRM)은 사용자/상품 임베딩의 내적으로 점수를 만듭니다.
  • RAG·의미검색은 코사인 유사도(=행렬 곱)로 비슷한 문서를 찾습니다.
  • GPU가 AI 시대의 주인공인 이유는 행렬 곱셈을 병렬화하기 좋은 구조이기 때문입니다.
🔍 검색 태그
#AI행렬연산 #행렬곱셈 #LLM원리 #트랜스포머구조 #어텐션메커니즘 #DLRM추천시스템 #벡터유사도 #코사인유사도 #RAG원리 #GPU연산
반응형
LIST