• Turing Post Korea
  • Posts
  • Topic #34: AI 추론 (Inference)에 대해 알아두어야 할 것들

Topic #34: AI 추론 (Inference)에 대해 알아두어야 할 것들

AI의 '추론 (Inference)' 이해를 위해 중요한 개념, 추론의 과정, 그리고 중요 과제

글을 시작하며

‘Reasoning’과 ‘Inference’가 모두 ‘추론’이라는 단어로 혼용되고 있는 상황이라서 헷갈릴 수 밖에 없는데요. 이 글의 맥락 안에서는, ‘Reasoning’이라는 의미로 ‘추론’이라는 단어가 사용될 경우에는 반드시 영어를 병기하도록 하겠습니다.

편집자

‘깊은 생각의 결과’로 응답을 만들어내는, 강력한 ‘추론 (Reasoning)’ 모델, 지금 AI 커뮤니티에서 아주 핫한 관심을 받고 있죠. 다른 모델들을 뛰어넘는 SOTA 성능을 달성하기 위해서 이런 모델들은 Test-Time Scaling 기법을 적극적으로 활용하지만, 그 대가로 응답의 속도가 느려지게 됩니다.

튜링 포스트 코리아에서 작성한 ‘Test-Time Compute’는 무엇이고, 어떻게 스케일링할까 라는 글이 구독자분들의 많은 관심을 받았는데요, 그 덕분에 이와 밀접하게 연관된 주제, AI의 ‘추론 (Inference)’에 대해서 좀 더 파고들어보자 결정하게 되었습니다.

‘추론 (Inference)’에 의존하지 않는 AI 시스템은 사실상 없다고 봐야겠죠 - 그게 챗봇이든, 이미지 생성기이든, 음성 비서든, 추천 시스템이든 간에요. ‘추론 (Inference)’ 단계야말로, 시스템의 최종적인 사용자가 시스템과 실제로 상호작용을 하는 단계이기 때문에, ‘추론 (Inference')’의 핵심, 그리고 이 과정을 이해하는 것은 개발자 뿐 아니라 모든 사람들에게 의미가 있다고 할 수 있습니다.

Training vs. Inference. Image Credit: NSCALE

‘추론’은, 모델이 학습한 이후 학습에서 얻은 지식을 보여주는 단계라고 할 수 있겠죠. 그리고 더 빠르게 추론을 하도록 하고 모델이 여러 개의 입력값을 동시에 처리할 수 있도록 하는 것, AI의 최적화에서 가장 중요한 과제 중 하나입니다.

오늘은 이 ‘추론 (Inference)’의 기본적인 내용에 대해서 다시 한 번 찬찬히 짚어보려고 합니다 - 추론이라는 토픽에 대해서 자신감을 갖고 이야기하기 위해 알아야 할 전반적인 것들, 핵심 개념, 워크플로우, 추론 유형, 최적화 기술, 최신 트렌드 등에 대해서 전반적으로 다뤄보겠습니다.

물론, 이 글 하나로 ‘추론의 모든 것’을 커버할 수는 없겠지만, 일단 AI에서 지금 추론이 왜 그렇게 중요한지를 명확하게 이해만 해도 소기의 성과를 거둔 거라고 생각합니다.

오늘 AI 101 에피소드에서는 아래와 같은 내용을 다룹니다:

AI의 ‘추론 (Inference)’이란 무엇인가?

학습하는 - 트레이닝 - 과정에서, 모델은 대량의 데이터를 통해서 핵심적인 패턴을 배우게 되죠. 모델이 제대로 학습되었다면, 이제 실제 작업에서 배운 ‘지식’을 보여줘야겠죠? 프롬프트를 입력하는 걸로 시작해서 모델이 쿼리에 대한 답변을 생성해서 마무리되는 전 과정, 이걸 ‘추론 (Inference)’이라고 하면 될 것 같습니다. 다시 말해서, 추론은 학습된 모델을 사용해서 예측을 하거나 출력을 생성하는 과정입니다.

추론을 효율적으로 한다는 건 아주 중요한 일인데요. IBM이 실시한 한 조사 자료에 따르면, AI 모델이 그 라이프사이클 전체에 걸쳐서 소비하는 컴퓨팅 자원의 최대 90%가 학습이 아닌 ‘추론 단계’에서 소비된다고 하니까요.

최근에는, ‘추론 영역의 스케일링 법칙’에 대해서 이야기도 시작되었죠. 올 초에 열렸던 CES에서, 엔비디아의 CEO 젠슨 황이 ‘현대의 AI를 구성하는 세 가지 스케일링 법칙’을 이야기했다는 건, 뭐 AI에 관심 가지신 분이면 다 들어보셨을 겁니다:

  • 사전 학습 스케일링 (Pre-training Scaling): 대규모 데이터셋으로 학습

  • 사후 학습 스케일링 (Post-training Scaling): 모델의 파인튜닝

  • 테스트 시간 스케일링 (Test-time Scaling): 추론 시간 컴퓨팅

CES2025에서 젠슨 황. Image Credit: CES

젠슨 황은 특히 ‘추론의 스케일링 (Inference Scaling)’이 점점 더 중요해지고 있다고 강조했죠. 모델들이 점점 더 ‘추론 (Inference)’ 단계에서 복잡한 다단계의 작업을 수행 - 이런 접근을 ‘테스트 시간 컴퓨팅 (Test-time Compute)’ 또는 ‘추론 스케일링 (Inference Scaling)’이라고 하기도 하죠 - 합니다. 이 단계에 할당하는 컴퓨팅 자원을 크게 늘려서, AI 시스템이 ‘신중하게 생각’하게 하거나 ‘미묘한 추론이 필요한 까다로운 작업’을 더 잘, 더 정확하게, 더 신뢰성있게 할 수 있게 합니다.

AI의 추론 (Inference)이라는 개념에 익숙해지고, 어떤 토픽이 중요한지 판단하려면, 우선 여러 가지 관점에서 추론의 효과를 측정하는데 사용하는 개념들, 그리고 모델 안에서 추론 프로세스가 작동하는 방식 같은 것들을 이해해야겠죠. 우선 ‘개념’부터 시작해 보겠습니다.

핵심 개념: 지연시간 (Latency), 처리량 (Throughput) 등

‘추론 (Inference)’과 관련해서 알아둘 만한 핵심적인 개념은 다음과 같습니다:

  • 추론 시간 (Inference Time) = ‘모델이 순수하게 출력을 계산하는 데 걸리는 시간’을 측정한 겁니다.

  • 총 생성 시간 (Total Generation Time) = ‘프롬프트를 입력했을 때부터 완전한 답변이 생성될 때까지의 전체 시간’. 이 개념은, ‘추론 (Inference)’과 관련한 가장 중요한 개념 중 하나인 ‘지연 시간 (Latency)’와 직접적으로 연관됩니다.

  • 지연 시간 (Latency) = ‘하나의 완전한 결과를 얻는 데 걸리는 시간’입니다. ‘프롬프트가 전송될 때 시작해서, 첫 번째 출력 토큰이 나올 때, 또는 전체 응답이 수신될 때 끝나게 되는 개념인데, 시간 계산은 보통 밀리세컨드 (ms)로 하게 됩니다:

    • 첫 응답 토큰이 만들어질 때까지의 시간 (TTFT; Time to First Token)
      모델이 응답을 시작하는 데까지 걸리는 시간을 측정합니다. 프롬프트를 모델에 보낸 후부터 첫 번째 생성된 토큰이 반환될 때까지의 시간입니다.

    • 출력 토큰 당 시간(TPOT; Time Per Output Token): 첫 번째 토큰이 생성된 이후 각각의 출력 토큰을 생성하는 데 걸리는 시간을 평균낸 값입니다. 이 수치는 모델이 일단 응답을 시작하면 얼마나 빠르게 답변을 생성하는지 보여줍니다.

따라서, 대략적으로 계산하면: 지연 시간 = TTFT + (TPOT × 출력 토큰 수)가 되겠지요.

이 지표는, 모델이 생성하자마자 토큰을 하나씩 또는 작은 묶음으로 보내기 시작하는 스트리밍 설정(Streaming Settings)에서 사용됩니다. 비 스트리밍 설정 (Non-Streaming Settings)에서라면, 모델이 먼저 전체적인 응답을 생성한 다음에 사용자에게 보내니까, TTFT = 전체 지연 시간이 됩니다. 즉, 비 스트리밍 설정에서는 총 생성 시간이 보통 지연 시간과 같습니다.

  • 처리량 (Throughput) = 시스템이 초당 완료할 수 있는 성공적인 추론 (또는 생성된 토큰)의 수를 의미합니다. 시스템의 전체적인 처리 용량을 보옂는 수치로, 보통 초당 요청 수(RPS; Requests per Second) 또는 초당 토큰 수(TPS; Tokens per Second)로 측정합니다.

이 수치들 사이에는 트레이드오프가 있을 수 있습니다. 지연 시간을 최적화하면 처리량이 감소한다든가,그 반대의 상황이 발생한다든가 할 수 있다는 겁니다. 따라서, 개발자들에게 중요한 건 이 수치들의 균형을 잘 잡아서, 지연 시간을 최소화하는 가운데 처리량을 최대화하는 것 같은 과제가 되겠죠.

또 주목할 만한 ‘추론’의 다른 중요한 개념들도 있는데요:

  • 추론당 비용 (Cost per Inference) – 이건 ‘추론의 효율성’을 논할 때 핵심 개념인데요. 단일한 추론을 실행하는데 드는 컴퓨팅 비용을 나타냅니다. 대규모로 모델을 운영해야 하는 기업들은, 이 수치에 많은 관심을 기울여야겠죠. 전반적으로, 추론당 비용은 총 비용, 지연 시간, 확장성 등과 밀접한 관계에 있습니다.

  • 확장성 (Scalability)은, 추론의 부하가 증가해도 그 성능을 유지할 수 있는 능력이라고 하겠습니다.

  • 정확도 (Accuracy)는, 입력이 주어졌을 때 모델의 출력이 얼마나 정확하거나 유용한지 보여주는 수치 중 하나입니다. 모델이 이미 잘 학습된 것이더라도, 새로운 데이터에 대한 추론 성능에는 여전히 신경을 써야 합니다.

  • 엔트로피 (Entropy)는, 다음 토큰을 생성할 때 모델이 얼마나 ‘확신’을 하거나 ‘불확실’하다고 판단하는지를 알려주는 수치입니다. 엔트로피가 높다면 더 무작위성이 크다는 걸 의미하고, 엔트로피가 낮다면 더 확실하다는 걸 의미합니다.

위에서 이야기한 개념들이, 추론 (Inference)의 과정을 추정하기 위해서 모델의 외부에서 관찰해 볼 만한 지표들이라고 할 수 있는데요. 좀 더 추론 (Inference) 과정 자체에 대한 기술적인 탐색을 해 보면 좋을 것 같습니다.

트랜스포머 (Transformer)에서 ‘추론’의 작동 방식

LLM에서 일어나게 되는 전체 추론 과정을 잘 설명해 준 유튜브 비디오가 있으니 한 번 보시면 좋겠구요:

이 흐름을 단순화해서 단계별로 살펴보자면 다음과 같습니다:

  1. 입력값의 토큰화(Tokenizing Input)
    먼저, 쿼리의 원시 텍스트를 모델이 이해할 수 있는 숫자 표현인 토큰 ID로 변환합니다. 이 숫자들은 모델의 어휘 사전에 있는 항목들에 대응하는 값들입니다.

  2. 토큰 임베딩(Embedding the Tokens)
    각 토큰 ID를, 의미론적 의미를 인코딩하는 밀집 벡터(임베딩이죠)에 매핑합니다. 이 벡터들은 임베딩 매트릭스에서 검색됩니다. 모델이 토큰의 순서를 이해하는 데 도움이 되도록 RoPE나 학습된 위치 임베딩을 통해서 위치 정보가 추가되구요. 이 단계의 출력값은, 각 토큰에 대한 임베딩 시퀀스입니다.

  3. 트랜스포머 레이어 통과
    이 단계에서 핵심적인 계산이 시작되는데요. LLM은 셀프 어텐션과 피드 포워드 네트워크(MLPs)를 포함하는 여러 개의 트랜스포머 레이어를 통해서 시퀀스를 처리, 맥락과 의미를 추출합니다. 모델은 각 레이어에서 학습된 파라미터(가중치)를 적용해서 예측을 생성해 냅니다.

  4. 로짓(Logits) 생성
    모델은 어휘 사전에 존재하는, 가능한 (Possible) 다음 토큰 예측값들에 대해서, 정규화되지 않은 점수라고 할 수 있는 ‘로짓 (Logit)’을 생성해 냅니다.

  5. 다음 토큰 디코딩
    넥스트 토큰 (다음 토큰, 즉 예측값)을 선택하는데, 샘플링, 탐욕적 디코딩 (Greedy Decoding), 탑-k(Top-k), 또는 빔 서치(Beam Search) 등 다양한 생성 전략을 사용해서 로짓을 기반으로 선택합니다.

  6. 종료 또는 최대 토큰까지 반복
    이제 새로 생성된 토큰을 입력의 일부로 포함해서, 3단계부터 과정을 다시 반복합니다. 이 과정은 정지 토큰이 생성되거나, 최대 토큰 제한에 도달하거나, 다른 종료 조건이 충족될 때까지 계속됩니다.

  7. 출력 생성
    최종 출력 토큰을 최종 사용자나 시스템을 위해서 사람이 읽을 수 있는 형식으로 다시 변환합니다.

이 각각의 단계들이 비록 사용자에게 보이지는 않지만, 추론이 빠르게 이루어지고, 신뢰할 수 있는 값을 만들어내는데 중요한 역할을 수행하는 단계들입니다. 물론, 모든 추론 시나리오가 동일하지는 않지요.

디퓨전 (Diffusion; 확산) 모델에서 ‘추론’의 작동 방식

위에서 트랜스포머 아키텍처에서 진행되는 추론 (Inference)의 각 단계를 살펴봤는데요. 디퓨전 (Diffusion; 확산) 모델에서는 조금 다른 양상으로 ‘추론 (Inference)’ 과정이 진행됩니다.

디퓨전 모델의 초기 입력은, 아시다시피 ‘무작위 (Random) 노이즈’죠. 프롬프트는 특정한 이미지 등 사용자가 원하는 출력값을 타겟으로 한 생성 활동을 가이드하는데 사용되구요. 디퓨젼 모델의 생성 과정은, 반복적인 디노이징 (Denoising) 단계를 포함하는데, 모델이 점진적으로 ‘노이즈’에서부터 ‘일관된 데이터’로 변환을 하게 됩니다. 디노이징 단계의 수는, 샘플링 전략과 Quality-Speed 간의 트레이드오프에 따라서 25에서 1,000까지 다양하게 세팅할 수 있구요.

DDPM (Denoising Diffusion Probabilistic Models), DDIM (Denoising Diffusion Implicit Models) 또는 점수 기반 샘플링 (Score-based Sampling) 같은 기술은, 시간이 흐르면서 노이즈를 어떻게 제거할 건지 결정하는 기법들입니다. 디퓨젼 모델에서 수많은 순방향 패스 (Forward Pass)가 진행되기 때문에, 디퓨젼 모델의 출력은, 더 직접적으로 생성 과정을 진행하는 트랜스포머에 비해서 좀 더 느린 경향이 있습니다.

먼저 발표된 DDPM, 그리고 추론 시간 (Inference Time)을 가속화해주는 DDIM 논문에 대해 설명하고 있는 아래 유튜브도 한 번 참고해 보시면 좋겠습니다:

추론 (Inference)의 유형

그럼, 여기서는 주로 사용되는 몇 가지 ‘추론 (Inference)의 유형’을 살펴보겠습니다 - 실제 상황에서는, 시스템의 목적에 따라서 몇 가지 유형을 조합해서 사용하기도 합니다.

  • 실시간 추론(Real-time Inference)
    이 유형은, 실시간 데이터나 사용자 행동에 대응해서 온-디맨드 방식으로 예측을 합니다. 이 경우 지연 시간은 낮은 편이고, 예를 들어 Fraud Detection (사기 탐지), 의료 경보 등 시간에 민감한 작업에는 반드시 필요합니다. 음성 비서나 자율주행 자동차에서도 사용할 수 있고, 즉각적 피드백과 다이나믹한 업데이트를 하지만, 항상 인프라가 구동 상태여야 하고, 동시 사용자 처리를 위해서 확장성있고 신뢰성있는, 즉 ‘비싼’ 시스템이 필요합니다.

  • 배치 추론(Batch Inference)
    실시간 추론의 반대되는 개념이라고 할까요? 대규모의 입력값을 모아서 일괄적으로 처리하기 때문에, 보통 정해진 일정에 맞춰 실행합니다. 처리량과 효율성이 극대화되지만, 당연하게도 쿼리를 즉시 처리하기는 힘듧니다.

  • 클라우드 추론(Cloud Inference)
    클라우드 추론은, 중앙 집중식 서버를 사용해서 사용자 디바이스에서 데이터를 클라우드로 보내서 처리하는 구조입니다. 고성능 GPU와 TPU 등을 클라우드에서 사용하지, 강력하고 스케일링이 용이한 연산을 할 수 있고, 사이즈가 크거나 복잡한 모델을 운용할 때 잘 맞겠죠. 그리고 중앙 집중식이라서 업데이트도 쉽고, 효율적으로 자원을 공유할 수 있습니다. 그렇지만, 네트워크 지연 시간, 상대적으로 높은 비용, 개인정보 보호 우려 등 조심해야 할 부분들도 있습니다. 최적의 성능을 위한 조합으로서 가끔 엣지 추론 형태와 함께 사용될 수도 있구요.

  • 엣지 추론(Edge Inference)
    엣지 추론은 AI 모델을 휴대폰, IoT 센서, 드론 같은 로컬 디바이스에서 직접 실행해서, 데이터를 클라우드로 보내지 않고 데이터가 발생하는 소스에서 실시간 처리를 하게끔 합니다. 이 구조는 빠르고 프라이빗한 AI 운용을 원한다면 반드시 고려해야 할 구조입니다. 문제는, 엣지 디바이스들이 보통 계산 능력이 제한적이라서, 최적화를 많이 하지 않고서는 큰 모델을 실행하기 어렵습니다. 그리고, 여러 개의 디바이스에서 개별적으로 모델을 업데이트한다거나 하는 복잡성도 올라가고, 확장을 위해서 더 많이 하드웨어를 배포해야 할 수도 있습니다.

앞서 말씀드렸듯이, 이런 여러 가지 유형의 추론 형태를 함께 혼합할 수 있습니다. 예를 들어, 엣지에서 빠른 초기 추론을 수행하고 더 심도있는 분석을 위해서 데이터를 클라우드로 보내거나, 여러 지역에 서버를 배포해서 클라우드에서 실시간 추론을 수행하거나 하는 구조를 생각해 볼 수 있겠죠.

자, 위의 추론 유형에서 살짝 느끼셨겠지만, 추론은 실제 운용의 관점에서는 많은 제약 사항이 있을 수 밖에 없습니다 - 물론 이를 해결하기 위해서, 다양한 최적화 기법이 널리 제안되고 사용되고 있습니다.

추론의 최적화 기법

추론 (Inference) 작업을 더 빠르게, 더 효율적으로 하도록 도와주는 최적화 기법 7가지를 아래에 살펴봅니다:

  1. 배칭(Batching)
    여러 개의 요청을 하나의 행렬 연산으로 그룹화해서, 배치로 하드웨어에서 여러 개의 추론을 함께 한꺼번에 실행할 수 있게 하는 최적화 기법입니다. 결과적으로 처리량 자체는 훨씬 커지지만, 물론 지연 시간이 증가할 수 있다는 리스크도 있습니다.

  2. 양자화(Quantization)
    양자화 기법은, 모델의 가중치와 연산의 수치 정밀도를 32비트 부동소수점(float32)에서 8비트 정수나 float16과 같은 더 낮은 정밀도로 줄이는 기법인데요. 이렇게 하면 (당연히) 메모리에서 모델의 크기가 극적으로 줄어들어 계산량이 감소하고, 정확도를 조금 잃는 대신 추론 속도를 크게 향상시킬 수 있습니다.

  3. 모델 증류(Model Distillation)
    큰 모델의 예측과 행동을 모방하도록, 더 작은 모델을 훈련시켜서 사용하는 기법인데요. 모델의 사이즈가 훨씬 작으므로, 추론 시간이 효율적이 될 뿐 아니라 운용에 있어서 유연성이 높아질 겁니다.

  4. 추측적 디코딩(Speculative Decoding)
    작은 모델을 사용해서 여러 개의 토큰을 미리 추측한 다음, 큰 모델로 이 결과를 검증합니다. 검증할 수 있습니다. 여러 개의 토큰을 더 적은 숫자의 단계로 검증할 수 있어서, 추측적 디코딩 기법을 사용하면 생성 과정을 가속화하는 효과를 낳게 되고, 어떤 경우는 지연 시간을 30% 이상 줄일 수 있습니다.

  5. 가지치기(Pruning)
    이건 예측을 하는 데 불필요하거나 중복되는 모델의 일부를 제거하는 거라고 생각하면 될 것 같은데요, 모델이 압축되어 더 실행을 빠르게 할 수 있습니다.

  6. 하드웨어 가속(Hardware Acceleration)
    그래픽 처리 장치(GPUs), 텐서 처리 장치(TPUs), 다양한 AI 가속기나 NPU 같은 적절한, 그러면서도 강력한 하드웨어를 사용하면, (당연하게도) 추론 속도를 크게 높일 수 있습니다.

  7. KV 캐싱(Key/Value Caching)
    트랜스포머에서 어텐션 레이어는 모든 이전 토큰에 대해서 어텐션값을 계산합니다. 추론 과정 중에 모델이 재계산을 피하기 위해서 과거 토큰에서 키와 값을 캐시하는데, 이렇게 되면 당연히 계산의 부하가 줄고 속도는 빨라질 수 있겠죠.

이런 여러 가지 최적화 기법들 중 상당수는, 이미 현재 AI 시스템들에서 널리 사용되면서 더 추론 속도를 빠르게 하는데 기여하고 있습니다. 아마 여러분들도 대부분 많이 들어보신 용어들일 거라고 생각합니다.

그렇다면, 현재 AI의 추론 (Inference) 영역에서 그래도 좀 새로운 트렌드는 어떤 게 있을까요?

추론 속도 개선을 위한 최근 트렌드

앞에서도 이야기했지만, 오픈AI의 o1, DeepSeek R1 출시 이후에, 많은 사람들이 ‘테스트 시간의 연산량’을 더 많이 필요로 하고, 최종 응답을 만드는데 더 많은 시간이 걸리는, ‘더 사려깊은’ 추론 (Reasoning) 과정에 큰 관심을 가지고 초점을 맞추기 시작했죠.

그러다보니, 가끔은 AI 커뮤니티 - 개발 커뮤니티든 사용자 커뮤니티든 - 가 추론 시간을 단축하는데는 더 이상 관심이 없어진 것처럼 보일 수도 있는데요. 사실은 그 반대입니다. 고급의 추론(Reasoning) 모델일수록 그 추론(Inference) 속도를 높이는 문제는 그 중요성이 점점 커지고 있습니다.

예를 들어보죠.

Cerebras Systems는 최근 소프트웨어 업데이트를 통해서 CS-2 플랫폼의 추론 속도를 3배 늘렸습니다. 70B 파라미터 Llama 3.2 모델에서 초당 2,100 토큰을 생성하는 수준에 도달했는데, 이 숫자는 일반 GPU보다 16배 빠르고 보통 기업에서 활용하게 되는 클라우드 서비스보다는 68배 빠른 속도입니다. 이런 엄청난 차이는, 물론 새로운 하드웨어 때문만은 아니고, Cerebras의 웨이퍼 스케일 엔진에서 병렬성과 메모리 접근 속도를 개선한 알고리즘 및 컴파일러 최적화에 일부 그 효과를 기대고 있습니다. ‘인스턴트 추론(Instant Inference)’이라고 불리는 이 혁신적인 개선은, 음성 비서라든가 챗봇 같은 실시간 애플리케이션이 이전보다 훨씬 더 빠르게 사용자 요청에 응답하고 상호작용을 할 수 있게 해 줍니다. 초기 사용자들의 반응만 봐도, 지연 시간이 최대 60배 감소했다고 답하고 있는데, 바로 소프트웨어적인 혁신만으로도 엄청난 수준의 추론 속도 이득을 얻어낼 수 있다는 하나의 증거라고 하겠습니다.

엔비디아와 같은 경우는, 당연하게도 하드웨어 관점의 혁신을 통해서 큰 발전을 이뤄내고 있습니다. 바로 지난 달인 3월, 양자화라든가 더 빠른 커널 등 소프트웨어 최적화와 결합해서, 4비트 정밀도를 갖춘 Blackwell GPU36배 더 높은 추론 처리량, 토큰당 약 32배 낮은 비용을 큰 강점으로 자랑합니다. 낮은 지연 시간을 유지하면서도, 거대 모델에서도 사용자당 초당 250개 이상의 토큰을 생성해서 제공할 수 있습니다.

Image credit: NVIDIA 블랙웰 블로그

엔비디아에서 보여주고 있는 또 다른 하나의 중요한 혁신은, 바로 다이나모 분산 추론 프레임웍(Dynamo Distributed Inference Framework)입니다. 이 프레임웍은 특히 저지연(low-latency) 시나리오를 위해서 설계된 것으로, 추론 워크로드를 GPU와 노드 간에 어떻게 나누고 스케줄링할지를 스마트하게 조율해서, 추론 처리량을 최대 30배까지 향상시켜 줍니다. Dynamo는 프리필 단계(Prefill Phase, 프롬프트를 모델을 통해 임베딩하는 과정)와 디코드 단계(Decode Phase, 출력을 생성하는 단계)를 분리하고 이 두 가지 단계를 다른 GPU에서 동시에 실행할 수 있습니다. 또한 시시각각 변화하는 요청의 볼륨을 잘 처리하기 위해서 GPU를 다이나믹하게 할당하고, 비슷한 요청이라면 재계산을 하지 않고도 응답을 하도록 Key/Value Cache를 재사용하기도 합니다.

Image Credit: NVIDIA Dynamo 블로그

이런 여러가지 혁신을 살펴보면, 현재 우리가 손에 넣을 수 있는 고도의 하드웨어를 통해서 높은 요구사항의 최고의 모델을 어떻게 운용할 수 있는지 보여줍니다. 하지만, 물론 이것이 추론 효율성의 한계는 아닐 겁니다 - 모델의 개선과 함께, 해당 모델의 성능을 극대화할 수 있는 더 강력한 하드웨어가 개발될 거라고 전망합니다.

기타 주목할 만한 동향

하드웨어 관점의 도약 외에도, 가장 큰, 그리고 상당히 재미있는 방향의 혁신이 소프트웨어 계층에서 일어나고 있는데요 - 바로, 추론 (Inference)의 속도 문제가 아니라, 얼마나 ‘똑똑해질 수 있는가’ 하는 부분입니다.

예를 들어서, 위에서 잠깐 언급한 추측적 디코딩(Speculative Decoding)도 이런 방향의 고민을 한 결과라고 볼 수 있겠죠. 한 번에 하나의 토큰을 생성하는게 아니라, 더 작은 모델을 사용해서 여러 개의 토큰을 미리 추측하고 나중에 대형 모델이 한 번에 검증하는 구조로 생성 시간 자체를 절반 정도로 줄이는 기법이라고 이야기했죠. 이 기법 덕분에 GPT-4의 응답도 빠르게 되고, Whisper 같은 모델에서 실시간으로 전사 (Transcription)가 가능해지는 겁니다.

또 다른 거 하나 살펴볼까요? vLLM이라는, 버클리의 연구자들이 개발한 새로운 추론 엔진이 있습니다. 이 엔진은, 메모리를 재사용하고 요청을 다이나믹하게 배치하는 기법, ‘PagedAttention’을 도입해서 구현한 엔진인데요, 동일한 GPU에서도 표준 트랜스포머 라이브러리에 대비해서 최대 24배 높은 처리량을 달성합니다. 게다가 오픈소스네요.

이 모든 혁신과 발전상을 보며 흥미로운 점은, 추론의 속도가 빨라진다는게, 그저 속도의 문제가 아니라, 결과적으로 모델이 런타임에 - 테스트 타임에 - 더 깊이 추론할 여유가 생긴다는 겁니다. 예를 들어, Cerebras는 최근에 극단적인 속도의 향상으로 400B 파라미터 모델이 실시간으로 수백 개의 추론 경로를 평가할 수 있어서, 첫 번째 발견한 솔루션으로 급하게 넘어가는 대신 답변의 품질을 크게 향상시킬 수 있다는 것을 보여주기도 했습니다.

모델의 추론 (Reasoning) 능력을 극적으로 끌어올려주는, Cerebras의 CePO (Cerebras Planning & Optimization) 프레임웍의 성능. Image Credit: Cerebras

지금까지의 추론 (Inference) 최적화라면 항상 ‘속도’에 관한 이야기였지만, 모델이 시스템 1, 시스템 2 사고를 모두, 때로는 섞어서 할 수 있게 된 새로운 시대에는 전략적 숙고를 어떻게 더 효과적으로, 스마트하게 할 것이냐에 관한 것이기도 하게 되었습니다. 더 빠른 시스템은 두 가지를 모두 잘 하게 된다는 것이죠: 응답도 더 빠르게, 생각 자체도 더 스마트하게요.

맺으며

오늘 에피소드에서는, 사용자를 대하는 모든 AI 시스템의 "얼굴" 역할을 한다고도 할 수 있는, AI의 ‘추론 (Inference)’에 대해서 살펴봤습니다.

우리는 지금 ‘양면적인’ 과제에 직면해 있습니다: DeepSeek R1 같은 추론 (Reasoning) 모델은 추론 (Inference) 시간을 증가시키기 마련인데, 연구자들은 이런 상황을 뒤집어 오히려 추론 (Reasoning)을 가속화할 수 있는, 더 발전된 방법들을 찾고 있습니다. 우리 모두, 이런 새로운 혁신, 끝없는 진보의 혜택을 볼 수 있는 날, 이미 우리 앞에 와 있는 것 같기도 하네요.

보너스: 참고자료

  1. What is AI inferencing? - IBM 블로그

  2. Mastering LLM Techniques: Inference Optimization – NVIDIA 블로그

  3. Cerebras Triples its Industry-Leading Inference Performance, Setting New All Time Record - Cerebras 블로그

  4. NVIDIA Blackwell Delivers World-Record DeepSeek-R1 Inference Performance - NVIDIA 블로그

  5. Introducing NVIDIA Dynamo, A Low-Latency Distributed Inference Framework for Scaling Reasoning AI Models - NVIDIA 블로그

  6. Inference Optimization of Foundation Models on AI Accelerators (논문)

  7. Trustworthy AI Inference Systems: An Industry Research View (논문)

  8. Designing explainable artificial intelligence with active inference: A framework for transparent introspection and decision-making (논문)

  9. Real-time Neural Network Inference on Extremely Weak Devices: Agile Offloading with Explainable AI (논문)

  10. The Case for Hierarchical Deep Learning Inference at the Network Edge (논문)

  11. Fast Inference from Transformers via Speculative Decoding (논문)

  12. Efficient Memory Management for Large Language Model Serving with PagedAttention (논문)

  13. vLLM – 깃헙 페이지

읽어주셔서 감사합니다. 친구와 동료 분들에게도 뉴스레터 추천해 주세요!

Reply

or to participate.