GitHub ↗
CHAPTER 02 OF 10
🆚

Generative vs Predictive AI

LeCun의 LLM 비판 — 정확한 두 가지 이유

LeCun이 'LLM 스케일링은 막다른 길'이라고 단언하는 두 가지 정확한 이유를 본다. 토큰화 SSL의 한계 + 추상 잠재 변수의 부재. 이 두 비판이 JEPA가 왜 '비생성(non-generative)'인지의 근거다.

Generative vs Predictive AI cheatsheet
🍌 NANO BANANA CHEATSHEET · CH 02

Overview

개관

1장에서 "World Model이 중요하다"는 LeCun의 비전을 봤다. 그렇다면 자연스러운 질문 — 그러면 현재 잘 굴러가는 LLM·Diffusion은 World Model이 아닌가? LeCun의 답은 단호하다: "아니다". 그리고 그가 그렇게 보는 정확한 두 가지 이유가 있다.

이번 장은 LeCun의 vision paper §8.3.1 "Scaling is not enough"(스케일링만으론 충분하지 않다)의 두 가지 prong을 정확히 짚는다. 이 두 비판을 이해해야 4장에서 JEPA가 왜 "비생성(non-generative)" 아키텍처로 설계됐는지가 보인다.

🎯 Learning Goals
  • 'Generative'와 'Predictive'의 정확한 차이를 안다
  • LeCun이 LLM을 비판하는 두 가지 이유를 외운다
  • 왜 '토큰화 SSL'이 비디오 같은 연속 신호에서 문제인지 이해한다
  • 'Abstract latent variable'이 무엇이고 왜 없으면 추론이 안 되는지 안다
  • 이 두 비판이 JEPA의 'non-generative' 설계와 어떻게 연결되는지 본다

Sections

본문

2.1 Generative AI와 Predictive AI의 정확한 구분

두 단어가 자주 혼용되니 먼저 정확히 구분.

Generative AI(생성형 AI): 입력으로부터 새로운 데이터 자체(픽셀·토큰·오디오)를 만들어내는 AI. 예: GPT-4(텍스트 토큰 생성), Stable Diffusion(픽셀 생성), Sora(비디오 픽셀 생성), DALL-E(이미지 생성).

Predictive AI(예측형 AI): 입력으로부터 무언가의 표현(representation)을 예측하지만, 그 표현이 사람이 보는 픽셀이나 토큰일 필요는 없다. 예측 대상이 추상적인 "내부 임베딩"일 수 있다.

핵심 차이: "무엇을 예측하는가". Generative는 데이터 자체. Predictive는 데이터의 표현.

LeCun의 입장: World Model은 Predictive여야 하지 Generative일 필요 없다. 왜 그런가가 다음 두 섹션의 주제다.

주의: "Generative"와 "Predictive"는 학계에서 항상 엄밀히 구분되는 단어가 아니다. 어떤 사람은 LLM도 "next-token prediction이니까 predictive다"라고 말한다. LeCun의 용법에서는 "픽셀/토큰을 만드느냐"의 기준이다. 이 코스도 그 용법을 따른다.

2.2 LeCun의 첫 번째 비판 — 토큰화 SSL의 한계

LeCun의 글 §8.3.1에 그대로 쓰여 있는 첫 번째 이유:

> *"Tokenized generative SSL cannot represent uncertainty in continuous high-dimensional signals like video as a proper distribution."* > (토큰화된 생성형 SSL은 비디오 같은 연속 고차원 신호에서 불확실성을 적절한 분포로 표현하지 못한다.)

풀어 쓰면: LLM은 텍스트를 이산적인 토큰(discrete token) — "안녕", "하세요" 같은 단어 단위 — 으로 다룬다. 그래서 "다음 토큰이 뭘까"의 불확실성을 "단어 5만 개 중 어느 것"의 확률 분포로 표현 가능하다.

그러나 비디오나 실제 세계는 연속적(continuous)이다. "3초 뒤 컵이 어디 있을까"의 답은 "위치 5만 개 중 하나"가 아니라 무한히 많은 실수 좌표 중 어느 영역. 토큰화로는 이 연속 불확실성을 자연스럽게 표현 못 한다.

구체적 예: 카펫 위 텍스처, 바람에 흔들리는 잎, 연못의 잔물결. 픽셀 단위로 정확히 예측하라면 불가능 — 모든 픽셀이 "무한히 많은 가능한 값" 중 하나. 그러나 사람은 "카펫이 거기 있고, 잎이 움직이고 있다"는 추상 수준에선 쉽게 예측한다.

LeCun의 결론: 생성형 모델은 픽셀 모두를 예측해야 하니까 unpredictable detail에서 실패. JEPA는 표현 공간에서만 예측하니까 unpredictable detail을 자연스럽게 버릴 수 있다(discard). 이 발상이 JEPA의 본질.

출처: LeCun 2022, §8.3.1, p.46. Meta AI 블로그도 동일 논거.

2.3 LeCun의 두 번째 비판 — 추상 잠재 변수의 부재

두 번째 이유. 같은 §8.3.1:

> *"Current LLMs lack abstract latent variables, so they cannot search through multiple interpretations of a percept, set goals dynamically, or search for optimal action sequences."* > (현재 LLM은 추상 잠재 변수가 없어, 한 지각에 대한 여러 해석을 탐색하거나, 동적으로 목표를 지정하거나, 최적 행동 시퀀스를 탐색할 수 없다.)

잠재 변수(latent variable, z): 모델 안에 있는 "숨은 변수". 사람이 직접 보진 못하지만 내부에서 계산에 쓰는 값.

사람의 예: 어두운 골목에서 "저 그림자가 사람인가 나무인가"를 한 번에 안 정하고 여러 가설을 머릿속에서 동시에 굴린다. 한 "지각(percept)"에 "여러 해석"이 가능하다는 의미. 이때 "사람이라면 / 나무라면"이 잠재 변수.

LeCun이 보기에 LLM은 이런 잠재 변수가 없다. 토큰 자동완성을 한 줄로 흘릴 뿐. 그래서: - 다중 해석 불가: "이 상황은 A일 수도 B일 수도"의 여러 가설을 동시에 못 굴림 - 목표 동적 지정 불가: "내가 지금 이걸 해야겠다"는 목표를 스스로 만들 수 없음 - 행동 탐색 불가: "이 행동 vs 저 행동, 어느 게 더 좋은가"의 머릿속 시뮬레이션 안 됨

JEPA는 처음부터 잠재 변수 z를 갖도록 설계됐다 (4장에서 다룬다). E(x,y,z) = D(sy, Pred(sx,z))의 그 z가 바로 LeCun이 말한 추상 잠재 변수.

2.4 그래서 JEPA가 '비생성(non-generative)'으로 설계된 이유

두 비판을 합치면 JEPA의 설계 결정이 자연스럽게 따라온다.

픽셀을 만들면 안 된다 (첫 번째 비판). 픽셀은 unpredictable detail 투성이고 토큰화로도 잘 안 됨. 그래서 JEPA는 픽셀이 아니라 임베딩(embedding) 공간에서 예측. 임베딩은 추상화된 표현이라 무의미한 디테일이 이미 빠져 있음.

잠재 변수 z를 처음부터 가져야 한다 (두 번째 비판). 그래서 JEPA는 "x로부터 y를 그냥 예측"이 아니라 "x와 z가 주어졌을 때 y의 표현을 예측". z가 다중 해석·목표 탐색의 통로.

이 두 결정이 JEPA를 LLM/Diffusion 같은 generative 모델과 다른 카테고리에 놓는다. 정확한 정의는 4장.

주의 — caveat: LeCun의 두 비판은 position(견해)이지 경험적 증명이 아니다. LLM 진영(OpenAI, Anthropic, Karpathy 등)은 "스케일을 더 키우면 결국 추론까지 갈 수 있다"고 본다. 누가 옳은지는 향후 2-3년의 실험이 결정. 9장에서 양쪽 입장을 자세히 본다.

2.5 한 표로 정리

| 차이점 | Generative AI (LLM·Sora·Diffusion) | Predictive AI (JEPA) | |---|---|---| | 예측 대상 | 픽셀·토큰 (사람이 보는 데이터) | 임베딩 (추상 표현) | | 불확실성 표현 | 이산 토큰 분포 | 임베딩 공간의 거리 | | Unpredictable detail | 모두 예측 필수 → 실패 | 무시 가능 → 강점 | | 잠재 변수 z | 없거나 약함 | 처음부터 z 명시 | | 추론·계획 | 토큰 자동완성으로 흉내 | 임베딩 공간에서 시뮬레이션 | | 대표 예 | GPT-4, Sora, Stable Diffusion | I-JEPA, V-JEPA, V-JEPA 2 |

이 표를 머릿속에 박아두면 4장 이후 모든 JEPA 디테일이 "왜 그렇게 설계됐는지"가 자동으로 풀린다.

한 줄: Generative는 픽셀까지 만든다. Predictive(JEPA)는 표현 공간에서 끝난다.

💡 Analogy · 비유
지도 vs 사진

한국 전국을 손에 들고 가야 한다. 두 가지 선택지가 있다.

(A) 모든 위성 사진을 다 들고 다닌다 — 픽셀 단위로 정확하지만 너무 무겁고, 사진 안의 모든 디테일(나뭇잎·차량·구름)을 다 들고 다녀야 함. 그런데 "어디서 좌회전해야 부산 가는 길이지?"라는 질문엔 사진이 별로 도움 안 됨. 정보가 너무 많고 불확실한 디테일(구름·차량 위치)이 잡음.

(B) 지도를 들고 다닌다 — 도로·도시·교차로만 추상화. 픽셀 단위론 부정확하지만 "어디서 좌회전"의 질문엔 즉답. 무의미한 디테일(나뭇잎)은 처음부터 없음.

Generative AI(LLM·Sora)는 (A)다. 픽셀·토큰 단위로 정확하게 만든다. 디테일이 살아 있지만 추상 추론은 약함.

Predictive AI(JEPA)는 (B)다. 픽셀은 안 만든다. 임베딩 = 지도. "부산 가는 길은 어디?"를 잘 답한다 — 무의미한 디테일은 처음부터 제거됐기 때문에.

LeCun의 베팅: 진짜 지능엔 사진보다 지도가 필요하다.

Generative와 Predictive의 차이를 가장 단순한 토이로 보여준다. 둘 다 "다음 프레임 예측"이지만 한 쪽은 픽셀을, 다른 쪽은 임베딩만 예측.

python
import torch
import torch.nn as nn

# ============== Generative: 다음 프레임의 픽셀 자체를 예측 ==============
class GenerativePredictor(nn.Module):
    def __init__(self, img_size=64):
        super().__init__()
        self.encoder = nn.Sequential(
            nn.Conv2d(3, 32, 3, padding=1), nn.ReLU(),
            nn.Conv2d(32, 64, 3, padding=1), nn.ReLU(),
        )
        # 픽셀 공간으로 되돌리는 디코더 (Generative)
        self.decoder = nn.Sequential(
            nn.Conv2d(64, 32, 3, padding=1), nn.ReLU(),
            nn.Conv2d(32, 3, 3, padding=1),
        )

    def forward(self, x_curr):
        h = self.encoder(x_curr)
        next_pixels = self.decoder(h)   # 다음 프레임의 모든 픽셀 R,G,B
        return next_pixels

# ============== JEPA-style: 다음 프레임의 임베딩만 예측 ==============
class PredictiveJEPA(nn.Module):
    def __init__(self, embed_dim=128):
        super().__init__()
        # 두 인코더 (가중치 공유 안 함)
        self.encoder_x = nn.Sequential(
            nn.Conv2d(3, 32, 3, padding=1), nn.ReLU(),
            nn.AdaptiveAvgPool2d(1), nn.Flatten(),
            nn.Linear(32, embed_dim),
        )
        self.encoder_y = nn.Sequential(
            nn.Conv2d(3, 32, 3, padding=1), nn.ReLU(),
            nn.AdaptiveAvgPool2d(1), nn.Flatten(),
            nn.Linear(32, embed_dim),
        )
        # Predictor: x의 임베딩 + 잠재 z → y의 임베딩
        self.predictor = nn.Linear(embed_dim + 16, embed_dim)

    def forward(self, x_curr, y_next, z):
        sx = self.encoder_x(x_curr)     # 현재 프레임의 임베딩
        sy = self.encoder_y(y_next)     # 다음 프레임의 진짜 임베딩
        sy_pred = self.predictor(torch.cat([sx, z], dim=-1))
        # 에너지: 표현 공간의 예측 오차 (픽셀 비교 X)
        energy = ((sy_pred - sy) ** 2).mean()
        return energy

# 핵심 차이:
# Generative는 64*64*3 = 12,288개 픽셀을 모두 예측해야 함
# JEPA는 128차원 임베딩만 비교. 무의미한 디테일은 처음부터 인코더가 버림.

두 함수의 출력 차원을 보면 차이가 즉시 드러난다. Generative는 (3, 64, 64) = 1만 2천 개 숫자를 다 예측해야 한다 — 그 중 카펫 텍스처·잎의 미세 움직임 같은 unpredictable한 것도 포함. JEPA는 128개 임베딩만 비교. 인코더가 이미 "중요한 것만" 압축. 그래서 "카펫 미세 무늬" 같은 노이즈는 처음부터 학습 신호에 안 들어옴. 이게 LeCun이 말한 "discard irrelevant details"의 실제 구현.

🏭 현업에서의 평가
Generative vs Predictive 구분이 "AI를 안다"와 "단어만 안다"를 가르는 새 기준. 두 진영의 비판·반박을 양쪽 입장으로 풀어내는 능력이 시니어의 차별점.

✅ 시니어가 보는 것

  • Generative와 Predictive를 정확히 정의·구분
  • LeCun의 두 비판을 외우고 각각의 의미 설명 가능
  • Tokenized SSL의 한계를 비디오·연속 신호 예시로 풀 수 있음
  • Latent variable z의 역할(다중 해석·목표 탐색)을 설명 가능
  • 양쪽 진영 입장을 객관적으로 정리 가능 (LeCun vs OpenAI 식)

⚠️ 레드 플래그

  • Generative를 '큰 모델'과 동일시
  • LeCun의 두 비판 중 하나만 알고 다른 하나 모름
  • Position paper와 peer-reviewed 결과를 같은 무게로 다룸
  • 한 쪽 진영의 입장만 외움 (균형 부재)

🎤 예상 인터뷰 질문

  1. LeCun이 LLM 스케일링을 비판하는 두 가지 정확한 이유는?
  2. Tokenized SSL이 비디오에서 안 통하는 이유를 예시와 함께 설명해 주세요
  3. JEPA의 'z'가 LLM에 없는 게 왜 추론에 영향을 주나요?
숙달 vs 익숙함: Familiar는 'LeCun이 LLM 비판한다'를 안다. Mastery는 §8.3.1의 두 prong(이산 토큰 + abstract latent 부재)을 정확한 단어로 즉답하고, 각각이 JEPA의 설계 결정으로 어떻게 흘러갔는지 매핑한다. 동시에 LLM 진영의 반박도 객관적으로 정리할 수 있다.

Key Takeaways

핵심 정리

Generative ≠ Predictive

픽셀·토큰을 만드냐, 임베딩만 비교하냐.

LeCun의 두 비판

토큰화 SSL의 한계 + abstract latent 부재.

비판 1: 이산 토큰

비디오 같은 연속 신호의 불확실성 표현 불가.

Unpredictable detail

카펫·잎·잔물결. Generative는 다 예측해야 함.

비판 2: latent z 부재

다중 해석·목표 탐색·행동 시뮬레이션 불가.

JEPA의 답

픽셀 안 만듦 + z를 처음부터 포함.

Discard irrelevant

임베딩 공간이라 무의미한 디테일 자동 제거.

Position ≠ Proof

LeCun의 비판은 견해. 정답은 향후 실험이 결정.