유용한 사고 모델

학습은 모델이 학습한 수치 설정을 정합니다. 추론에서는 이러한 설정을 고정한 채 사용합니다.

모델을 이미 준비된 답변을 저장해 둔 데이터베이스가 아니라 저장된 계산으로 생각해 보세요. 추론 중에 시스템은 계산의 입력에 값을 제공하고 계산을 실행하여 출력에서 값을 얻습니다. 결과는 학습된 동일한 관계를 특정 입력에 적용하여 만들어집니다.

이 구분이 중요한 이유는 모델이 일반적으로 학습 중 저장된 완성된 답변을 검색하지 않기 때문입니다. 모델은 받은 입력에 대해 결과를 계산합니다.

추론의 작동 방식

정확한 계산은 AI 모델에 따라 다르지만, 기본적인 흐름은 일관됩니다.

  1. 입력을 모델이 예상하는 형식으로 변환합니다.이미지는 크기를 조정할 수 있습니다. 텍스트는 수치 조각으로 나눌 수 있습니다. 테이블의 행은 정규화할 수 있습니다. 이러한 준비 과정은 모델 외부에서 수행되지만 흔히 “추론 파이프라인”에 포함됩니다.
  2. 모델이 학습한 계산을 실행합니다.데이터는 모델의 입력에서 여러 계층을 거쳐 출력으로 이동합니다. 이러한 계산 방향을 순방향 패스라고 합니다.
  3. 모델이 수치 출력을 생성합니다.분류기는 여러 레이블에 대한 점수를 생성할 수 있습니다. 예측 모델은 숫자나 범위를 생성할 수 있습니다. 언어 모델은 처리할 수 있는 텍스트 조각인 가능한 다음 토큰에 대한 점수를 생성합니다.
  4. 소프트웨어가 해당 출력을 해석하거나 그중에서 선택합니다.임계값을 적용하거나, 가장 높은 점수의 레이블을 선택하거나, 토큰을 샘플링하거나, 결과 형식을 지정할 수 있습니다. 이 단계는 주변 추론 파이프라인의 일부이지만 항상 모델의 일부인 것은 아닙니다.
  5. 서빙 시스템이 결과를 반환하거나 저장합니다.서빙은 모델을 로드하고, 작업을 수락하며, 작업을 예약하고, 출력을 전달하는 인프라입니다. 추론은 서빙 시스템이 수행하는 모델 사용 과정입니다.

“추론”의 좁은 의미는 2단계와 그 단계에서 생성되는 모델 출력입니다. 실제로 엔지니어들은 준비된 입력을 사용 가능한 결과로 바꾸는 더 넓은 흐름을 가리킬 때도 이 단어를 사용합니다. 세부 사항이 중요할 때는 어떤 경계를 의미하는지 확인해야 합니다.inference is step 2 and the model output it produces. In practice, engineers also use the word for the wider path from prepared input to usable result. When details matter, ask which boundary is intended.

raw input
    |
    v
input preparation
    |
    v
fixed trained model  ---->  numeric model output
                                  |
                                  v
                         selection or policy
                                  |
                                  v
                           usable result

이 흐름의 어느 지점에서도 모델이 학습한 설정을 일반적으로 업데이트하지 않습니다. 향후 학습에 사용할 수 있도록 상호작용을 기록하는 것은 해당 추론 중에 학습하는 것과 다릅니다.

예제로 살펴보기

스팸 분류기가 이메일 한 통을 받는다고 가정해 보겠습니다. 이메일이 모델에 맞게 준비된 후 순방향 패스에서 다음과 같은 결과가 생성됩니다.

spam:     0.82
not spam: 0.18

이 점수들이 추론 출력입니다. 점수는 사용 가능한 레이블에 대한 모델의 상대적인 지지를 나타낼 뿐이며, 해당 이메일이 스팸임을 증명하지는 않습니다.

이제 이메일 서비스에 스팸 점수가 0.70 이상이면 메시지를 스팸으로 이동하는 규칙이 있다고 가정해 보겠습니다. 스팸 점수 0.82가 해당 임계값을 넘으므로 서비스가 이 메시지를 이동합니다.

이 구분은 쉽게 확인할 수 있습니다. 서비스가 임계값을 0.90으로 높이면 동일한 모델이 동일한 0.82 점수를 생성하면서도 메시지는 받은편지함에 남을 수 있습니다. 추론은 변하지 않았습니다. 애플리케이션 정책이 변한 것입니다.

이러한 분리는 다양한 시스템에서 나타납니다. 위험 모델은 점수를 생성하고, 은행은 어떤 점수에서 검토를 시작할지 결정합니다. 의료 모델은 이미지에서 영역을 표시하고, 임상의는 이를 해석합니다. 추천 모델은 항목의 순위를 매기고, 제품은 몇 개를 표시할지 결정합니다.

텍스트 생성에 반복적인 추론이 필요한 이유

분류기의 경우 순방향 패스 한 번으로 모델의 전체 출력이 생성될 수 있습니다. 자기회귀 언어 모델은 다르게 작동합니다.

프롬프트가 주어지면 모델은 먼저 다음에 올 수 있는 항목에 대한 점수를 생성합니다. 그런 다음 디코딩 규칙이 토큰 하나를 선택합니다. 선택된 토큰을 텍스트에 추가하고, 모델은 더 길어진 시퀀스를 사용해 다시 실행됩니다. 이 루프는 모델이 종료 마커를 선택하거나 다른 중지 조건에 도달할 때까지 계속됩니다.

prompt
  -> forward pass
  -> next-token scores
  -> select one token
  -> append it
  -> repeat
  -> stop

디코딩 규칙이 중요합니다. 가장 높은 점수의 토큰을 선택하면 안정적인 조건에서 프로세스가 결정론적으로 진행될 수 있습니다. 여러 후보에서 샘플링하면 동일한 프롬프트에서도 다른 텍스트가 생성될 수 있습니다. 두 경우 모두 모델 자체는 변경되지 않을 수 있으며, 차이는 소프트웨어가 출력 점수에서 선택하는 방식에서 발생합니다. Hugging Face의 생성 문서에서는 이러한 방식을 별도의 생성 선택 사항으로 제공합니다.

따라서 “추론은 순방향 패스 한 번이다”라는 말은 유용한 지름길일 뿐 보편적인 정의는 아닙니다. 한 번의 패스로 하나의 예측, 하나의 점수 집합 또는 더 긴 생성 결과를 향한 한 단계가 생성될 수 있습니다.

추론이 중요한 이유

추론은 학습된 모델이 실제 입력과 만나는 단계입니다. 추론의 동작은 AI 기능이 유용하고, 경제적이며, 반응성이 높고, 신뢰할 수 있는지에 영향을 줍니다.

모델은 그 결과를 구성하는 여러 요소 중 하나일 뿐입니다. 입력 준비는 모델의 예상과 일치해야 합니다. 출력 선택은 작업에 적합해야 합니다. 런타임은 사용 가능한 하드웨어에서 계산을 실행해야 합니다. 서빙 계층은 요청 패턴을 처리해야 합니다.

이러한 선택은 다음과 같은 절충을 만듭니다.

  • 응답 시간:대화형 작업에서는 빠른 결과가 중요합니다.
  • 처리량:배치 작업과 사용량이 많은 서비스에서는 시스템이 시간에 따라 얼마나 많은 작업을 완료하는지가 중요합니다.
  • 비용과 에너지:모든 추론은 컴퓨팅 리소스를 소비하며, 반복적인 생성은 각 단계마다 리소스를 소비합니다.
  • 출력 품질:낮은 정밀도 숫자를 사용하는 것처럼 속도를 높이는 일부 변경은 출력이 달라질 수 있으므로 검증이 필요합니다.
  • 개인정보 보호와 연결성:추론은 데이터 센터나 로컬 장치에서 실행될 수 있습니다. 위치에 따라 네트워크를 통해 전송해야 하는 데이터가 달라집니다.

모든 상황에 적합한 단 하나의 추론 설정은 없습니다. 적절한 균형은 모델, 워크로드, 하드웨어 및 애플리케이션의 요구 사항에 따라 달라집니다. Google의 프로덕션 ML 가이드는 한 가지 기본적인 선택을 설명합니다. 출력을 배치로 미리 계산할지, 필요할 때 계산할지를 선택하는 것입니다.

흔한 오해

“추론은 모델이 나에게서 학습한다는 뜻이다”

대개 그렇지 않습니다. 일반적인 추론은 학습된 설정을 고정하여 사용합니다. 제품이 사용자의 상호작용을 저장했다가 나중에 별도의 학습 과정에서 사용할 수는 있지만, 이는 추론에 자동으로 포함되는 과정이 아닙니다.

일부 시스템은 사용 시점의 계산을 적응 또는 외부 메모리와 의도적으로 결합합니다. 이러한 경우에는 무엇이 언제 변경되는지 시스템이 설명해야 합니다. 추론이라는 단어만으로 학습을 의미하지는 않습니다.

“추론은 예측과 같다”

두 용어가 서로 바꿔 사용되는 경우가 많지만, 유용한 구분은 추론이 과정이고 예측은 출력이라는 점입니다. 출력은 더 넓은 표현입니다. 생성 모델은 사람들이 항상 예측이라고 부르지는 않는 텍스트, 이미지 또는 오디오를 생성하기 때문입니다.

“추론은 항상 실시간으로 수행된다”

추론은 온라인 또는 오프라인으로 수행될 수 있습니다. 온라인 추론은 요청이 도착할 때 실행됩니다. 오프라인 또는 배치 추론은 여러 입력을 함께 처리하고 나중에 사용할 수 있도록 결과를 저장합니다.

“동일한 입력은 반드시 동일한 출력을 생성한다”

항상 그런 것은 아닙니다. 일부 모델과 선택 규칙은 결정론적입니다. 다른 모델과 규칙은 가능한 출력에서 샘플링합니다. 런타임 세부 사항으로 인해 작은 수치 차이가 발생할 수도 있습니다. 반복 가능성은 “추론”이라는 단어의 속성이 아니라 전체 설정의 속성입니다.추론.

“추론 모드라는 것은 모델이 올바른 예측을 할 준비가 되었다는 뜻이다”

프레임워크 용어는 일반적인 개념보다 좁은 의미를 가질 수 있습니다. 예를 들어 PyTorch의 inference_mode는 그래디언트 계산에 사용되는 기록을 비활성화하지만, 모든 모델 계층을 평가 동작으로 자동 전환하지는 않습니다. 프레임워크의 전환 기능은 구현 도구이지 AI 추론의 정의가 아닙니다.

“추론은 AI 제품 전체를 의미한다”

추론은 하나의 구성 요소입니다. 애플리케이션은 데이터를 검색하고, 안전 규칙을 적용하고, 도구를 호출하고, 상태를 저장하고, 인터페이스를 표시할 수도 있습니다. 이러한 단계는 모델의 추론 계산 외부에 있지만 결과에 큰 영향을 줄 수 있습니다.

AI 시스템에서 추론이 작동하는 방식

학습과 추론은 서로 다른 역할을 합니다. 학습은 모델 출력을 목표와 반복적으로 비교하고 모델을 업데이트합니다. 추론은 그 결과로 얻은 고정된 모델을 사용하여 입력을 처리합니다.

배포된 시스템에는 또 다른 계층이 추가됩니다.

training -> saved model -> deployment and serving -> inference -> application action
                                                        |
                                                        v
                                              logs for later review

로그는 결국 다른 학습 실행에 기여할 수 있습니다. 이는 시스템 수준에서 피드백 루프를 만들지만, 각각의 일반적인 추론은 여전히 특정 저장 버전의 모델을 사용합니다.

다음 단계

추론에 사용되는 학습 모델을 생성하거나 업데이트하는 과정을 알아보려면 AI 학습이란 무엇인가요?를 읽어 보세요. 직접적인 구분은 학습과 추론의 비교에서 확인한 다음, 배포 속도를 측정하는 방법을 이해하려면 추론 지연 시간이란 무엇인가요?로 이어서 읽어 보세요.