AI Briefing

LLM 추론의 비결정성 깨부수기

·2026.04.14 09:00

핵심 내용

LLM 추론의 비결정성은 단순한 GPU 동시성이 아니라 요청 스케줄링에 더 가깝다.

1 / 2

자세히 보기

대형 언어 모델은 temperature=0처럼 이론상 결정적인 설정에서도, 실제로는 같은 입력에 다른 출력을 내는 경우가 있다. 흔히 GPU의 동시 실행과 floating-point 비가환성이 원인으로 지목되지만, 저자는 이것만으로는 설명이 부족하다고 본다.

핵심 출발점은 floating-point non-associativity다. 같은 숫자라도 더하는 순서가 달라지면 결과가 달라질 수 있고, 큰 값과 작은 값을 섞어 더할 때 정보가 잘리면서 오차가 누적된다. 그래서 덧셈 순서가 바뀌면 서로 다른 결과가 나올 수 있다.

하지만 저자는 여기서 곧바로 "그래서 LLM 추론이 비결정적이다"라고 결론 내리지 않는다. 실제로는 GPU matmul처럼 같은 입력을 반복 실행하면 비트 단위로 동일한 결과가 나오는 경우가 많고, LLM 전방 계산 경로의 핵심 커널들도 대체로 deterministic하다고 설명한다. 즉, 문제의 원인을 단순히 "GPU라서"라고 보는 해석은 지나치게 거칠다.

동시성이 진짜 비결정성을 만드는 경우는 보통 atomic add처럼 여러 스레드가 같은 위치에 누적할 때다. 이때는 어떤 스레드가 먼저 끝나느냐에 따라 누적 순서가 달라질 수 있다. 그러나 저자에 따르면 LLM의 일반적인 forward pass에는 이런 atomic add가 거의 없고, 대부분의 연산은 배치 차원이나 tree reduction, semaphore 같은 방식으로 결정적으로 구현된다.

그래서 저자는 "커널 자체는 결정적일 수 있지만, 전체 시스템은 여전히 비결정적"이라는 관점을 제시한다. 즉, inference server 수준에서 요청이 어떻게 묶이고, 어떤 순서로 처리되고, 어떤 배치에 합쳐지는지가 최종 출력을 흔들 수 있다. 같은 요청을 넣어도 서버가 내부적으로 다른 실행 경로를 택하면 사용자 입장에서는 결과가 달라진다.

결국 이 글의 메시지는, LLM 추론의 비결정성을 해결하려면 floating-point 오차만 볼 게 아니라 서버 스케줄링과 배치 구성 방식까지 포함해 봐야 한다는 것이다. 진짜 원인을 이해해야만, 실행 환경을 통제하고 재현 가능한 추론을 만들 수 있다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.