Skip to content

Split View: LLM이 못 하는 것은 증명이 아니라 전제를 세우는 일입니다

✨ Learn with Quiz
|

LLM이 못 하는 것은 증명이 아니라 전제를 세우는 일입니다

모델을 세 번 갈아 끼웠는데 결과가 같았던 프로젝트

로그에서 이상 패턴을 찾아 원인 가설을 세우는 내부 도구를 만든 적이 있다고 해 봅시다. 모델을 최신으로 바꿀 때마다 문장은 좋아지는데, 나오는 가설의 목록은 거의 그대로입니다. 배포 시각, 트래픽 급증, 캐시 미스, 의존 서비스 지연. 여섯 달 전에 뽑히던 목록과 같습니다.

이걸 프롬프트 문제로 보고 몇 주를 쓰기 전에, 다른 가능성을 한 번 검토할 가치가 있습니다. 모델이 게으른 게 아니라, 목록에 없던 항목을 새로 만들어 내는 일 자체가 지금 구조에서 나오지 않는 종류의 작업일 수 있다는 것입니다.

귀납, 연역, 그리고 빠져 있는 한 칸

Google DeepMind의 Tom Zahavy가 ICML 2026에 낸 입장 논문 Position: LLMs can not jump은 추론을 세 갈래로 나눕니다. 데이터에서 규칙을 뽑는 귀납, 전제에서 결론을 끌어내는 연역, 그리고 관찰을 설명할 새 가설을 세우는 귀추입니다.

논문의 주장은 앞의 둘과 나머지 하나를 명확히 갈라 놓습니다. 생성형 AI는 통계적 패턴 매칭, 곧 귀납을 이미 마스터했고, 형식적 증명에 해당하는 연역도 빠르게 정복하는 중입니다. 그런데 새로운 설명 가설을 만들어 내는 귀추에 대해서는 그런 메커니즘 자체가 없다는 것이 논문의 입장입니다. 제목의 점프는 경험에서 공리로 건너뛰는 이 동작을 가리킵니다.

이 구분이 유용한 이유는 실무에서 두 실패가 완전히 다르게 보이기 때문입니다. 연역이 약한 모델은 틀린 답을 내놓습니다. 귀추가 없는 모델은 틀리지 않는데 매번 같은 목록을 내놓습니다. 후자는 성능 지표에서 잘 보이지 않습니다.

아인슈타인 사례가 논문에서 하는 일

논문은 일반 상대성 이론의 정식화를 사례 연구로 씁니다. 이 선택은 장식이 아니라 논증의 핵심입니다.

당시 관측 데이터는 희박했습니다. 수성 근일점의 세차 정도가 전부에 가까웠고, 그 데이터에서 통계적으로 뽑아낼 수 있는 것은 뉴턴 역학의 작은 보정 정도였습니다. 등가 원리라는 전제는 데이터를 압축해서 나온 것이 아니라, 데이터 바깥에서 세워진 뒤 데이터로 검증된 것입니다.

논문이 지적하는 대목은 여기입니다. 그 전제가 일단 주어지면, 거기서 장 방정식으로 가는 연역 구간은 현대 LLM이 그럴듯하게 수행할 수 있습니다. 못 하는 것은 그 전제를 세우는 쪽입니다.

압축으로서의 창의성이 무너지는 지점

이 사례는 널리 쓰이는 한 가지 관점을 직접 겨냥합니다. 창의성이란 결국 데이터를 더 짧게 설명하는 능력이고, 그러니 더 크고 더 잘 압축하는 모델이 결국 발견도 하게 된다는 관점입니다.

논문은 이 관점이 관측 데이터가 희박한 발견에서 성립하지 않는다고 봅니다. 압축은 압축할 대상이 있어야 작동합니다. 데이터가 얇은 지점에서 새 설명을 세우는 일은 압축과는 다른 연산이고, 그래서 모델을 키우는 방향으로는 자동으로 따라오지 않는다는 것입니다.

논문이 병목으로 지목하는 것은 시뮬레이션을 형식 공리로 번역하는 구간이고, 제안하는 방향은 물리적으로 일관된 멀티모달 월드 모델로 감각적 근거를 공급하는 것입니다. 텍스트만으로 학습한 모델은 세계가 어떻게 작동하는지를 세계에 대해 쓰인 문장들로부터 배웁니다. 아직 아무도 쓰지 않은 설명을 세워야 할 때, 그 학습 신호에는 기댈 곳이 없다는 것이 논지의 핵심입니다.

이건 결과 논문이 아니라 입장 논문입니다

읽는 방식에 대해 한 가지를 분명히 해 둘 필요가 있습니다. ICML의 Position 트랙은 새 실험 결과를 싣는 자리가 아니라 분야가 어느 방향으로 가야 하는지에 대한 주장을 싣는 자리입니다. 제목의 접두어가 그 사실을 명시합니다.

그래서 이 논문은 "LLM이 귀추를 못 한다"를 실험으로 증명하지 않습니다. 하나의 역사적 발견을 계산적 사례 연구로 삼아, 지금의 학습 목표로는 그 구간에 도달할 근거가 없다고 논증합니다. 이건 약점이 아니라 형식의 성격이고, 반대 입장도 같은 트랙에서 나올 수 있습니다. 저자 개인의 입장 표명이지 소속 기관의 공식 견해로 읽을 근거도 없습니다.

실무자에게 유용한 독법은 이겁니다. 참인지 거짓인지 판정하려 들기보다, 참이라고 가정했을 때 내 설계의 어디가 바뀌는지를 보는 것입니다.

가설 공간을 모델 바깥에서 공급하기

첫 번째 변화는 역할 배치입니다. 가설 목록을 LLM에게 "생각해 내라"고 시키는 대신, 열거 가능한 공간을 시스템이 만들고 LLM에게는 그 공간을 훑고 번역하고 순위를 매기게 합니다.

앞의 로그 분석 예로 돌아가면, 원인 가설을 자유 서술로 받는 대신 서비스 의존 그래프, 최근 배포 목록, 설정 변경 이력, 인프라 이벤트를 곱집합으로 펼쳐 후보를 만듭니다. 후보 수는 수백 개가 되고, 사람이 다 볼 수 없습니다. 여기서 LLM은 제안자가 아니라 필터이자 번역기로 일합니다. 이건 모델을 낮춰 쓰는 게 아니라, 잘하는 구간에 배치하는 것입니다.

"""가설은 열거 가능한 공간에서 나오고, 모델은 훑고 순위를 매긴다."""
from dataclasses import dataclass
from itertools import product


@dataclass(frozen=True)
class Hypothesis:
    subject: str      # 무엇이
    change: str       # 어떻게 바뀌어서
    mechanism: str    # 어떤 경로로 증상을 만드는가

    def as_claim(self) -> str:
        return f"{self.subject}{self.change}이(가) {self.mechanism}을(를) 통해 증상을 만든다"


def enumerate_space(services, changes, mechanisms):
    """가설 공간의 크기와 경계를 코드가 소유한다."""
    return [Hypothesis(*t) for t in product(services, changes, mechanisms)]


def refutable(h: Hypothesis, evidence: dict) -> bool:
    """반증 가능성 검사: 확인할 관측이 실제로 존재하는가."""
    return h.subject in evidence and h.mechanism in evidence[h.subject]


space = enumerate_space(
    services=["payment-api", "session-cache", "search-index"],
    changes=["배포", "설정 변경", "용량 축소"],
    mechanisms=["연결 풀 고갈", "캐시 미스 급증", "타임아웃 전파"],
)
evidence = {"payment-api": {"연결 풀 고갈", "타임아웃 전파"}}

testable = [h for h in space if refutable(h, evidence)]
print(len(space), "개 후보 중 관측으로 검증 가능한 것", len(testable), "개")
for h in testable[:3]:
    print("-", h.as_claim())

여기서 중요한 것은 enumerate_space가 코드라는 사실입니다. 시스템이 무엇을 발견할 수 있는지의 상한이 프롬프트가 아니라 이 함수에 적혀 있고, 리뷰할 수 있고, 늘릴 수 있습니다.

제안과 반증을 같은 모델에 맡기지 않기

두 번째 변화는 역할 분리입니다. 가설을 내는 쪽과 그 가설을 깨는 쪽을 같은 호출에 두면, 스스로 통과할 수 있는 가설 쪽으로 기울기 쉽습니다. 이건 모델의 부정직함이 아니라 목적 함수의 문제입니다. 한 번에 좋은 답을 요구하면 반증 가능성이 낮은 답이 더 좋은 답처럼 보입니다.

그래서 파이프라인을 이렇게 끊습니다. 제안 단계는 후보를 넓게 뽑고 점수를 매기지 않습니다. 반증 단계는 각 후보에 대해 "이게 참이라면 반드시 보여야 하는 관측"과 "참이라면 절대 보이면 안 되는 관측"을 각각 쓰게 하고, 그 관측을 실제 데이터에서 조회합니다. 사람은 마지막에 살아남은 소수만 봅니다.

반증 단계를 별도 호출로 두면 부수 효과가 하나 더 생깁니다. "참이라면 절대 보이면 안 되는 관측"을 쓰지 못하는 가설이 자동으로 걸러집니다. 그런 가설은 대체로 반증 불가능한 서술, 즉 무엇을 관측해도 살아남는 문장입니다. 사람이 읽으면 그럴듯하고 아무 정보가 없는 그 문장들이 실무에서 가장 많은 시간을 잡아먹습니다.

이 배치의 좋은 점은 논문의 주장이 틀렸을 때도 손해가 없다는 것입니다. 만약 다음 세대 모델이 정말로 귀추를 하게 된다면, 제안 단계의 후보 품질이 그냥 올라갑니다. 구조는 그대로 둡니다.

어디까지가 우리 문제이고 어디부터가 논문의 문제인가

마지막으로 범위를 정리해 둘 필요가 있습니다. 논문이 다루는 것은 과학적 발명, 즉 새 공리를 세우는 수준의 도약입니다. 우리가 매일 만드는 시스템 대부분은 그 층위의 도약을 요구하지 않습니다.

그래서 이 논문을 "LLM은 창의적이지 않다"로 요약하는 것은 지나칩니다. 더 정확한 요약은 이쪽입니다. 알려진 가설 공간 안에서의 탐색과, 그 공간 자체를 넓히는 일은 다른 작업이며, 지금의 도구는 앞의 것에 훨씬 강하다. 그러니 우리 시스템이 후자를 필요로 하는지부터 물어야 하고, 필요하다면 그 부분은 사람이나 시뮬레이터가 맡도록 설계에 명시해야 합니다.

처음의 로그 도구로 돌아가면, 여섯 달째 같은 목록이 나온 이유는 모델이 아니라 그 목록을 정의한 곳이 아무 데도 없었다는 데 있었을 가능성이 높습니다.

참고 자료

What LLMs Cannot Do Is Not the Proof, It Is Setting Up the Premise

The Project Where We Swapped the Model Three Times and Got the Same Answer

Suppose you once built an internal tool that finds anomalous patterns in logs and proposes causal hypotheses. Every time you swap in the newest model the sentences get better, but the list of hypotheses that comes out stays almost identical. Deploy timing, traffic spike, cache miss, dependency latency. The same list you were getting six months ago.

Before you spend a few weeks treating this as a prompt problem, it is worth examining another possibility. The model may not be lazy. Producing an item that was not on the list may simply be a kind of work that does not come out of the current structure.

Induction, Deduction, and the Missing Slot

Position: LLMs can not jump, the position paper Tom Zahavy of Google DeepMind submitted to ICML 2026, splits reasoning into three branches. Induction, which extracts rules from data; deduction, which draws conclusions from premises; and abduction, which erects a new hypothesis to explain an observation.

The paper's claim draws a clear line between the first two and the remaining one. Generative AI has already mastered statistical pattern matching, which is to say induction, and it is rapidly conquering deduction, which corresponds to formal proof. But for abduction, the making of new explanatory hypotheses, the paper's position is that no such mechanism exists at all. The jump in the title refers to this move, from experience across to axiom.

This distinction is useful because in practice the two failures look completely different. A model weak at deduction gives you wrong answers. A model without abduction is not wrong and hands you the same list every time. The latter barely shows up in performance metrics.

What the Einstein Case Does for the Paper

The paper uses the formulation of general relativity as a case study. That choice is not decoration, it is the core of the argument.

The observational data of the time was sparse. The precession of the perihelion of Mercury was close to the whole of it, and what could be statistically extracted from that data was roughly a small correction to Newtonian mechanics. The premise called the equivalence principle did not come out of compressing data. It was erected outside the data and then verified against data.

Here is the point the paper makes. Once that premise is given, the deductive stretch from there to the field equations is something a modern LLM can perform plausibly. What it cannot do is the side that erects the premise.

Where Creativity as Compression Falls Apart

This case aims directly at one widely held view: that creativity is ultimately the ability to explain data more briefly, and therefore that a bigger, better-compressing model will eventually make discoveries too.

The paper holds that this view does not survive in discoveries where the observational data is sparse. Compression works only when there is something to compress. Erecting a new explanation at a point where the data is thin is a different operation from compression, and so it does not automatically follow from scaling the model.

What the paper identifies as the bottleneck is the stretch that translates simulation into formal axioms, and the direction it proposes is to supply sensory grounding from a physically consistent multimodal world model. A model trained on text alone learns how the world works from sentences written about the world. When it has to erect an explanation nobody has written yet, that training signal has nothing to lean on. That is the core of the thesis.

This Is a Position Paper, Not a Results Paper

One thing about how to read it needs to be made explicit. The ICML Position track is not a venue for new experimental results but a venue for claims about which direction the field should go. The prefix in the title states that fact.

So this paper does not prove "LLMs cannot do abduction" experimentally. It takes one historical discovery as a computational case study and argues that current training objectives give no grounds for reaching that stretch. This is not a weakness but a property of the format, and an opposing position could come out of the same track. It is also an individual author expressing a position, and there is no basis for reading it as the official view of their institution.

For a practitioner, the useful way to read it is this. Rather than trying to adjudicate whether it is true or false, look at what changes in your design if you assume it is true.

Supplying the Hypothesis Space from Outside the Model

The first change is the placement of roles. Instead of telling an LLM to "come up with" a list of hypotheses, the system builds an enumerable space and the LLM sweeps it, translates it, and ranks it.

Back to the log analysis example: instead of accepting causal hypotheses as free-form prose, you expand the service dependency graph, the recent deploy list, the configuration change history, and infrastructure events into a cross product to produce candidates. The candidate count runs into the hundreds and no human can read them all. Here the LLM works not as a proposer but as a filter and a translator. This is not using the model beneath its abilities, it is placing it where it is strong.

"""Hypotheses come from an enumerable space; the model sweeps and ranks."""
from dataclasses import dataclass
from itertools import product


@dataclass(frozen=True)
class Hypothesis:
    subject: str      # what
    change: str       # changed how
    mechanism: str    # and produces the symptom by which path

    def as_claim(self) -> str:
        return f"{self.change} in {self.subject} produces the symptom via {self.mechanism}"


def enumerate_space(services, changes, mechanisms):
    """The size and the boundary of the hypothesis space are owned by code."""
    return [Hypothesis(*t) for t in product(services, changes, mechanisms)]


def refutable(h: Hypothesis, evidence: dict) -> bool:
    """Falsifiability check: does an observation that would confirm it actually exist?"""
    return h.subject in evidence and h.mechanism in evidence[h.subject]


space = enumerate_space(
    services=["payment-api", "session-cache", "search-index"],
    changes=["a deploy", "a config change", "a capacity reduction"],
    mechanisms=["connection pool exhaustion", "a cache miss spike", "timeout propagation"],
)
evidence = {"payment-api": {"connection pool exhaustion", "timeout propagation"}}

testable = [h for h in space if refutable(h, evidence)]
print(len(space), "candidates, of which", len(testable), "are checkable against observations")
for h in testable[:3]:
    print("-", h.as_claim())

What matters here is that enumerate_space is code. The ceiling on what the system can discover is written in this function rather than in a prompt, which means it can be reviewed and it can be raised.

Do Not Hand Proposal and Falsification to the Same Model

The second change is the separation of roles. Put the side that produces hypotheses and the side that breaks them in the same call, and it tilts easily toward hypotheses that can pass on their own. This is not dishonesty on the model's part but a problem with the objective function. Demand a good answer in a single shot and an answer with low falsifiability looks like the better answer.

So you cut the pipeline like this. The proposal stage draws candidates broadly and does not score them. The falsification stage makes the model write, for each candidate, both "the observation that must be visible if this is true" and "the observation that must never be visible if this is true," and then queries that observation against real data. Humans only look at the few that survive at the end.

Putting falsification in a separate call brings one more side effect. Hypotheses for which no "must never be visible" observation can be written get filtered out automatically. Such hypotheses are usually unfalsifiable statements, sentences that survive no matter what you observe. Those sentences, plausible to a human reader and carrying no information, eat the most time in practice.

The nice thing about this arrangement is that you lose nothing if the paper turns out to be wrong. If the next generation of models really does perform abduction, the candidate quality at the proposal stage simply goes up. The structure stays as it is.

Where Our Problem Ends and the Paper Problem Begins

Finally the scope needs pinning down. What the paper addresses is scientific invention, jumps at the level of erecting new axioms. Most of the systems we build every day do not require a jump at that level.

So summarizing this paper as "LLMs are not creative" goes too far. The more accurate summary is this one. Searching within a known hypothesis space and widening the space itself are different jobs, and current tools are far stronger at the former. So the first question is whether our system needs the latter at all, and if it does, the design has to state explicitly that a human or a simulator owns that part.

Returning to the log tool from the beginning, the reason the same list came out for six months is quite likely not the model but the fact that there was nowhere at all that defined that list.

References