01 AI의 큰 그림·10 min read

왜 AI는 같은 질문에도 결과가 달라질까확률적 출력과 결정론적 실행의 차이

같은 질문에도 AI의 표현이나 결론이 달라지는 이유를 설명합니다. 다음 토큰의 확률분포와 샘플링, 실행 문맥과 모델 버전, Temperature·Top-k·Top-p·Seed가 재현성에 미치는 영향을 정리합니다.

하나의 동일한 입력이 투명한 확률 선택 장치를 지나 서로 다른 세 개의 출력 경로로 나뉘는 모습을 보여주는 어두운 편집형 이미지
생성형 AI는 같은 입력에서도 여러 가능한 결과의 확률분포에서 다른 경로를 선택할 수 있습니다. · DECHIVE

안녕하세요, DECHIVE입니다.

AI에게 같은 질문을 두 번 했는데 첫 번째와 두 번째 답이 조금 달랐던 적이 있을 겁니다. 핵심 내용은 비슷해도 문장 순서가 바뀌고, 추천 목록이 달라지거나, 때로는 결론까지 달라집니다.

질문을 제대로 기억하지 못한 걸까요? 아니면 답을 내는 순간마다 새로 학습한 걸까요?

대부분은 그렇지 않습니다. 생성형 AI의 출력 방식과 그때의 실행 조건을 함께 보면 이유가 훨씬 선명해집니다.

한 문장으로 먼저 정리하면

결정론적 실행은 동일한 입력과 조건에서 같은 결과를 내도록 설계된 실행이고, 확률적 출력은 여러 가능한 결과의 확률분포에서 하나를 선택해 생성하는 방식입니다.

쉽게 말해 계산기에서 27 × 14를 여러 번 입력하면 언제나 378이 나와야 합니다. 입력과 계산 규칙이 같기 때문입니다.

하지만 생성형 AI에게 “퇴근 후 읽기 좋은 책 세 권을 추천해줘”라고 물으면 매번 완전히 같은 세 권을 고를 필요는 없습니다. 문맥에 맞는 후보가 여럿이고, 그중 어떤 표현과 내용을 선택할지가 생성 과정에 포함되기 때문입니다.

이 차이를 이해할 때 중요한 전제가 하나 있습니다.

모든 AI가 확률적으로 답하는 것도 아니고, AI 시스템의 모든 단계가 확률적인 것도 아닙니다. 규칙 기반 시스템, 계산기, 정렬 코드처럼 조건이 같으면 같은 값을 내는 단계도 있습니다. 반면 생성형 모델의 문장·이미지 생성 단계는 여러 가능성 중 하나를 선택하도록 구성될 수 있습니다.

생성형 AI는 정답 문장을 통째로 꺼내지 않습니다

대규모 언어 모델은 보통 한 문장을 미리 저장해 두었다가 그대로 꺼내는 방식으로 답하지 않습니다. 지금까지 주어진 문맥을 바탕으로 다음에 올 토큰의 가능성을 계산하고, 토큰을 하나 선택한 뒤, 그 결과를 다시 문맥에 포함해 다음 토큰을 이어갑니다.

토큰은 단어나 글자와 정확히 같지는 않습니다. 모델이 문장을 처리하기 위해 나눈 텍스트 단위라고 이해하면 충분합니다.

예를 들어 회의를 시작하기 전에라는 문장 뒤에는 다음처럼 여러 후보가 있을 수 있습니다.

  • 자료를 34%
  • 참석자를 27%
  • 일정을 18%
  • 그 밖의 후보 21%

이 수치는 실제 모델을 측정한 값이 아니라 원리를 보여주기 위한 DECHIVE의 단순화된 예시입니다. 중요한 점은 다음 후보가 하나만 존재하는 것이 아니라는 사실입니다.

첫 실행에서 자료를이 선택되면 이후 문장은 준비 자료에 관한 방향으로 이어질 수 있습니다. 두 번째 실행에서 참석자를이 선택되면 출석 확인 이야기로 흘러갈 수 있습니다. 초반의 작은 선택 하나가 다음 후보들의 확률을 다시 바꾸고, 이 차이가 문장 전체로 누적됩니다.

그래서 같은 질문에서도 표현, 예시, 순서, 길이가 달라질 수 있습니다.

확률적이라는 말은 ‘아무 말이나 찍는다’는 뜻이 아닙니다

확률적 출력을 무작위 추측과 같다고 생각하기 쉽습니다. 하지만 후보마다 가능성이 똑같은 것은 아닙니다.

모델은 질문, 앞서 나온 문장, 학습에서 얻은 패턴을 바탕으로 각 후보에 서로 다른 확률을 부여합니다. 문맥에 잘 맞는 후보는 높은 확률을 받고, 어울리지 않는 후보는 낮은 확률을 받습니다. 생성 설정은 이 분포에서 얼마나 보수적으로 또는 다양하게 선택할지를 조절합니다.

즉 확률적 생성은 문맥이 만든 선택지와 가능성 안에서 이루어지는 선택입니다. 아무 근거 없이 주사위를 던지는 것과는 다릅니다.

다만 확률이 높다고 사실이라는 뜻도 아닙니다. 언어적으로 자연스러운 문장이 사실과 다를 수 있고, 낮은 확률의 표현이 더 정확할 수도 있습니다. 확률적 생성은 문장의 생성 방식을 설명할 뿐, 진실을 보증하지 않습니다.

결정론적 실행은 무엇이 다를까요?

결정론적 실행에서는 같은 입력과 같은 규칙, 같은 환경이 주어졌을 때 같은 결과를 기대합니다.

다음과 같은 작업이 대표적입니다.

  • 정해진 공식으로 세금이나 합계를 계산하기
  • 파일 이름을 가나다순으로 정렬하기
  • 점수가 80점 이상이면 통과로 분류하기
  • 데이터베이스에서 같은 조건으로 같은 행을 조회하기
  • 모델이 만든 JSON이 정해진 스키마를 지키는지 검사하기

AI 제품 안에서도 이런 결정론적 단계와 확률적 단계가 함께 작동합니다. 모델은 이메일 초안을 여러 방식으로 만들 수 있지만, 발송 버튼을 눌렀을 때 수신자를 확인하는 규칙은 고정할 수 있습니다. 모델은 숫자를 설명하는 문장을 만들 수 있지만, 최종 합계는 계산 코드로 다시 확인할 수 있습니다.

따라서 실무에서는 “AI니까 결과가 달라도 된다”와 “소프트웨어니까 언제나 같아야 한다” 중 하나만 선택하지 않습니다.

다양성이 필요한 부분은 확률적 생성에 맡기고, 정확히 반복되어야 하는 부분은 결정론적 규칙과 검증으로 감쌉니다.
같은 입력이 결정론적 실행에서는 하나의 고정 결과로 이어지고 확률적 생성에서는 여러 후보 확률을 거쳐 서로 다른 결과로 이어지는 과정을 비교한 도식
결정론적 실행은 조건이 같으면 같은 결과를 목표로 하지만, 확률적 생성은 후보 분포에서 선택하는 과정 때문에 결과가 달라질 수 있습니다. · DECHIVE

같은 질문처럼 보여도 실제 입력은 같지 않을 수 있습니다

화면에 입력한 문장만 같다고 해서 AI가 받은 전체 입력까지 같다는 뜻은 아닙니다.

실제 AI 시스템에는 사용자가 쓴 질문 외에도 여러 조건이 함께 들어갈 수 있습니다.

  • 앞에서 주고받은 대화 내용
  • 저장된 메모리나 사용자 설정
  • 서비스가 제공하는 시스템 지침
  • 첨부한 파일과 프로젝트 자료
  • 검색이나 연결 도구가 가져온 최신 정보
  • 사용 중인 모델과 모델 버전
  • 안전 정책과 요청을 처리하는 라우팅 방식
  • 날짜, 언어, 지역처럼 실행 시점의 정보

예를 들어 새 채팅에서 묻는 질문과 열 번 대화한 뒤 묻는 같은 문장은 문맥이 다릅니다. 검색 결과를 사용한 답변이라면 검색 시점과 검색 순위가 달라질 수도 있습니다. 서비스가 모델을 업데이트했다면 이름이 같아 보여도 내부 버전이 달라졌을 수 있습니다.

따라서 결과 차이는 두 층에서 생깁니다.

  1. 모델 생성 안의 선택: 토큰 후보의 확률분포에서 무엇을 선택했는가
  2. 시스템 전체의 조건 차이: 모델이 어떤 문맥, 도구 결과, 설정, 버전에서 실행되었는가

같은 결과를 재현하려면 질문 한 줄만 복사하는 것이 아니라 이 조건들도 가능한 범위에서 함께 고정해야 합니다.

Temperature, Top-k, Top-p는 무엇을 바꿀까요?

생성형 AI의 설정에서 자주 만나는 용어가 Temperature, Top-k, Top-p입니다.

Temperature는 후보 확률분포를 얼마나 보수적으로 또는 평평하게 사용할지 조절합니다. 낮추면 확률이 높은 후보에 더 집중해 결과가 예측 가능해지는 경향이 있고, 높이면 상대적으로 다양한 후보가 선택될 가능성이 커집니다.

하지만 Temperature는 ‘창의력 점수’나 ‘정확도 조절 버튼’이 아닙니다. 값을 높인다고 반드시 더 창의적이거나 좋은 답이 나오는 것도 아니고, 낮춘다고 사실 오류가 사라지는 것도 아닙니다.

Top-k는 확률이 높은 상위 k개의 후보 안에서만 선택하게 합니다. Top-p는 확률을 높은 순서로 더했을 때 일정 누적 확률에 도달하는 후보 집합 안에서 선택하게 합니다. 제품과 API에 따라 이 설정들을 함께 사용하거나 일부만 제공하기도 합니다.

이 설정들은 결과의 다양성을 조절하지만, 내용이 맞는지 검증해 주지는 않습니다.

Seed를 고정하면 완전히 같은 답이 나올까요?

Seed는 난수를 만드는 과정의 시작점을 정하는 값입니다. 같은 모델, 같은 입력, 같은 생성 설정, 같은 실행 환경에서 Seed까지 같다면 선택 경로를 더 비슷하게 재현하는 데 도움이 됩니다.

그러나 Seed는 모든 환경에서 완전히 같은 결과를 보장하는 마법의 번호가 아닙니다.

  • 모델이나 API의 내부 버전이 바뀔 수 있습니다.
  • 서버의 실행 환경이나 병렬 처리 방식이 달라질 수 있습니다.
  • CPU와 GPU, 라이브러리 버전에 따라 부동소수점 계산 결과가 미세하게 달라질 수 있습니다.
  • 검색과 외부 도구가 매번 다른 결과를 돌려줄 수 있습니다.
  • 서비스가 Seed 설정을 제공하지 않거나, 최선 노력 수준의 재현성만 제공할 수 있습니다.

작은 수치 차이가 후보의 순서를 바꾸면 이후 생성 경로도 달라질 수 있습니다. 특히 여러 서비스와 도구를 거치는 AI 시스템에서는 모델 하나의 Seed만 고정해서 전체 결과를 동일하게 만들기 어렵습니다.

Temperature를 0으로 만들면 언제나 같은 답이 나온다는 말도 같은 이유로 조심해야 합니다. 낮은 Temperature는 높은 확률의 후보에 집중하게 만들지만, 시스템 전체의 문맥과 실행 환경까지 고정하지는 않습니다.

‘같은 결과’도 세 단계로 나눠서 봐야 합니다

재현성을 이야기할 때는 무엇을 같게 만들고 싶은지부터 정해야 합니다. 다음은 공식 표준이 아니라 실무 판단을 돕기 위한 DECHIVE의 구분입니다.

  • 정확한 텍스트 일치 — 글자와 순서까지 완전히 같음 (예: 회귀 테스트용 고정 응답)
  • 의미의 일관성 — 표현은 달라도 핵심 내용이 같음 (예: 같은 정책을 다른 문장으로 안내)
  • 기능·결정의 일관성 — 최종 분류나 실행 결과가 같음 (예: 환불 가능 여부, 승인 단계, 파일 형식)

일반적인 글쓰기에서는 문장까지 똑같을 필요가 없습니다. 오히려 여러 초안을 비교하는 편이 도움이 될 수 있습니다.

반대로 자동화에서는 표현보다 최종 결정이 같아야 할 때가 많습니다. 이런 경우 모델에게 모든 책임을 맡기기보다 구조화된 출력, 스키마 검사, 허용 값 목록, 계산 코드, 업무 규칙을 함께 사용해야 합니다.

반복 가능한 결과가 필요하다면 무엇을 고정해야 할까요?

AI를 실험하거나 서비스에 넣을 때는 다음 항목을 기록하고 고정할수록 결과를 비교하기 쉬워집니다.

  • 모델 이름과 가능한 경우 모델 버전
  • 시스템 지침과 사용자 프롬프트의 정확한 문장
  • 대화 기록, 파일, 검색 결과 등 모델에 들어간 전체 문맥
  • Temperature, Top-k, Top-p, 최대 출력 길이 같은 생성 설정
  • 서비스가 지원한다면 Seed
  • 호출한 도구의 입력과 반환값
  • 실행 시각, API 버전, 주요 라이브러리와 하드웨어 환경

그리고 중요한 작업일수록 모델 출력 뒤에 결정론적 검사를 붙여야 합니다.

  • 숫자는 계산 코드로 다시 계산합니다.
  • 날짜와 형식은 규칙으로 검사합니다.
  • 허용되지 않은 값은 스키마 검증으로 막습니다.
  • 사실은 신뢰할 수 있는 출처와 대조합니다.
  • 자동 실행 전에는 권한, 대상, 금액 같은 핵심 값을 다시 확인합니다.
  • 한 번의 성공이 아니라 여러 번 반복해 실패 범위를 확인합니다.

결과를 같게 만드는 것만큼 중요한 것은 틀린 결과가 실제 행동으로 이어지지 않게 만드는 것입니다.

흔한 오해

“답이 달라졌다면 AI가 그사이 학습한 것이다.” 일반적인 대화 한 번이 즉시 모델의 매개변수를 바꾸는 것은 아닙니다. 같은 모델에서도 생성 선택이나 문맥 차이 때문에 답이 달라질 수 있습니다.

“확률적 출력은 무작위로 아무 답이나 고른다는 뜻이다.” 아닙니다. 후보는 문맥에 따라 서로 다른 확률을 받습니다. 다만 높은 확률이 사실이나 품질을 보증하지는 않습니다.

“Temperature가 0이면 언제나 완전히 같은 답이 나온다.” 결과의 변동을 줄일 수는 있지만 모델 버전, 실행 환경, 숨은 문맥, 외부 도구까지 같다는 보장은 아닙니다.

“같은 답이 반복되면 맞는 답이다.” 일관성과 정확성은 다릅니다. 모델이 같은 오류를 안정적으로 반복할 수도 있습니다.

“AI는 모두 확률적으로 작동한다.” AI라는 범위 안에는 규칙 기반 시스템과 고정된 의사결정 규칙도 포함될 수 있습니다. 하나의 AI 제품 안에서도 확률적 모델과 결정론적 코드가 함께 사용됩니다.

그래서 무엇을 기억해야 할까요?

같은 질문인데 답이 다른 것은 고장이라기보다 생성 방식과 전체 실행 조건의 결과일 수 있습니다.

생성형 AI는 여러 가능한 다음 토큰에 확률을 부여하고 그중 하나를 선택해 출력을 이어갈 수 있습니다. 작은 선택 차이는 다음 확률을 바꾸며 문장 전체의 차이로 커집니다. 여기에 대화 기록, 모델 버전, 검색 결과, 생성 설정이 달라지면 결과는 더 쉽게 달라집니다.

중요한 것은 모든 출력을 억지로 같게 만드는 일이 아닙니다.

탐색과 창작에는 변화를 활용하고, 계산·판정·실행에는 고정된 규칙과 검증을 더해야 합니다.

그리고 같은 답이 나왔다는 사실을 정확성의 증거로 받아들여서는 안 됩니다. 반복 가능성은 품질의 한 조건일 수 있지만, 사실 확인과 안전한 실행을 대신하지는 못합니다.

확률적 생성과 결정론적 실행의 역할을 나누면 AI의 변화는 통제하기 어려운 결함이 아니라, 필요한 곳에서는 활용하고 중요한 곳에서는 제한할 수 있는 시스템 설계 요소가 됩니다.

확인한 자료

KEYWORDS

  • 확률적 출력
  • 결정론적 실행
  • 생성형 AI
  • 토큰 확률
  • 샘플링
  • Temperature
  • Seed
  • 재현성
← Knowledge 목록