본문 바로가기

대화형 AI의 지연 시간(latency)을 어떻게 최적화하나요?

지연 시간은 좋은 대화형 AI와 뛰어난 대화형 AI를 가르는 핵심 요소입니다

Diagram of a speech processing system showing data flow from user input to output speech, including components like telephone network, ASR, VAD, LLM, TTS, and latency indicators.

대부분의 애플리케이션에서는 지연 시간이 큰 문제가 되지 않습니다. 하지만 대화형 AI에서는 지연 시간이 좋은 애플리케이션과 훌륭한 애플리케이션을 구분 짓는 요소입니다.

우선, 대화형 AI의 목표는 꽤 높습니다. 인간과 같은 대화의 느낌, 터치, 목소리를 제공하면서도 인간보다 더 똑똑해야 하죠. 이를 위해서는 긴 침묵 없이 자연스럽게 대화가 이어져야 합니다. 그렇지 않으면 현실감이 깨집니다.

대화형 AI의 지연 시간 문제는 여러 단계로 나뉘어 있다는 점에서 더 복잡해집니다. 대화형 AI는 각 분야에서 최첨단 기술로 이루어진 여러 중간 과정을 거칩니다. 이 과정마다 지연 시간이 누적됩니다.

ElevenLabs는 생성형 음성 기술 회사로서, 대화형 AI의 지연 시간을 최소화하는 방법을 오랫동안 연구해왔습니다. 오늘은 저희가 얻은 인사이트를 공유하고자 합니다. 대화형 AI 애플리케이션을 만들고자 하는 분들께 도움이 되길 바랍니다.

네 가지 핵심 구성 요소

모든 대화형 AI 애플리케이션에는 최소한 단계가 포함됩니다: 음성 인식(음성→텍스트), 턴테이킹, 텍스트 처리(예: LLM), 그리고 텍스트 음성 변환입니다. 이 단계들은 병렬로 실행되지만, 각각의 단계가 지연 시간에 영향을 줍니다.

특히, 대화형 AI의 지연 시간 공식은 독특합니다. 많은 프로세스의 지연 시간 문제는 하나의 병목으로 귀결되는 경우가 많습니다. 예를 들어, 웹사이트가 데이터베이스 요청을 할 때는 네트워크 지연이 전체 지연 시간의 대부분을 차지하고, 백엔드의 VPC 지연은 미미합니다. 하지만 대화형 AI의 각 지연 요소는 크게 차이나지 않습니다. 다소 차이는 있지만, 각 요소의 지연 기여도가 비슷한 수준입니다. 즉, 전체 지연 시간은 각 부분의 합으로 결정됩니다.

자동 음성 인식

시스템의 '귀'

자동 음성 인식(ASR)은 때때로 음성→텍스트(STT)라고도 불리며, 음성 오디오를 텍스트로 변환하는 과정입니다.

ASR의 지연 시간은 텍스트를 생성하는 데 걸리는 시간이 아니라, 사용자가 말하는 동안 백그라운드에서 음성→텍스트 처리가 진행되기 때문에, 실제로는 말이 끝난 시점부터 텍스트 생성이 완료될 때까지의 시간입니다.

Flowchart showing user input speech processed by ASR system.

따라서, 짧은 말과 긴 말 모두 비슷한 ASR 지연 시간이 발생할 수 있습니다. ASR 구현 방식에 따라 지연 시간은 달라질 수 있습니다(일부 경우에는 모델이 브라우저에 내장되어 있어 네트워크 지연이 전혀 없기도 합니다. 예: Chrome/Chromium). 대표적인 오픈소스 모델인 Whisper는 300ms 이상의 지연이 추가됩니다. 저희의 커스텀 구현은 100ms 미만입니다.

턴테이킹 / 인터럽션

시스템의 '직감'

턴테이킹/인터럽션(TTI)은 사용자가 말을 끝냈는지 판단하는 중간 과정입니다. 이때 사용하는 모델을 음성 활동 감지기(VAD)라고 합니다.

턴테이킹에는 복잡한 규칙이 필요합니다. 짧은 추임새(예: '음', '응')에 바로 턴이 넘어가면 대화가 너무 끊기는 느낌이 들 수 있습니다. 실제로 사용자가 모델의 주의를 끌려고 하는지, 생각을 다 전달했는지 등을 잘 판단해야 합니다.

좋은 VAD는 무조건 침묵이 감지될 때마다 새로운 턴을 신호하지 않습니다. 단어(혹은 구) 사이에도 침묵이 있기 때문에, 사용자가 정말로 말을 끝냈는지 확신이 필요합니다. 이를 위해 일정 수준의 침묵(정확히는 음성의 부재)을 감지해야 하며, 이 과정에서 약간의 지연이 발생해 전체 지연 시간에 영향을 줍니다.

Flowchart showing the process of speech recognition and language modeling, with steps including input speech, ASR, VAD, and LLM.

기술적으로, 만약 다른 대화형 AI 구성 요소의 지연이 모두 0이라면, TTI의 지연은 오히려 자연스러운 대화에 도움이 됩니다. 사람도 대답 전에 잠깐 멈추기 때문이죠. 하지만 이미 다른 요소에서 지연이 발생하므로, TTI의 지연은 최소화하는 것이 이상적입니다.

텍스트 처리

시스템의 두뇌

다음으로, 시스템은 응답을 생성해야 합니다. 현재는 주로 GPT-4, Gemini Flash 1.5와 같은 대형 언어 모델(LLM)로 이 작업을 수행합니다.

어떤 언어 모델을 선택하느냐에 따라 지연 시간은 크게 달라집니다. Gemini Flash 1.5와 같은 모델은 350ms 미만으로 매우 빠르게 결과를 생성합니다. 더 복잡한 쿼리를 처리할 수 있는 GPT-4 계열이나 Claude와 같은 모델은 700~1000ms가 걸릴 수 있습니다.따라서, 대화형 AI의 지연 시간을 줄이려면 적합한 모델을 선택하는 것이 가장 쉬운 방법입니다.

하지만 LLM의 지연 시간은 토큰을 생성하기 시작하는 데 걸리는 시간입니다. 이 토큰들은 바로 다음 단계인 텍스트 음성 변환 프로세스로 스트리밍할 수 있습니다. 텍스트 음성 변환은 사람의 말 속도에 맞춰 진행되기 때문에, LLM이 항상 더 빠릅니다. 즉, 가장 중요한 것은 첫 토큰이 생성되는 시간(첫 바이트까지의 시간)입니다.

Flowchart of speech processing system showing input speech, ASR, VAD, LLM, and TTS components with data flow and latency indicated.

LLM의 지연 시간에는 모델 선택 외에도 프롬프트 길이, 지식 베이스 크기 등이 영향을 줍니다. 둘 중 하나라도 크면 지연 시간이 길어집니다. 즉, LLM이 고려해야 할 것이 많을수록 시간이 더 걸립니다. 따라서 적절한 맥락을 제공하되, 모델에 과부하가 걸리지 않도록 균형을 맞추는 것이 중요합니다.

텍스트 음성 변환

시스템의 '입'

대화형 AI의 마지막 단계는 텍스트 음성 변환(TTS)입니다. 텍스트 음성 변환의 순수 지연 시간은 텍스트 처리 단계에서 토큰을 받은 후 실제로 음성을 내기 시작할 때까지 걸리는 시간입니다. 추가 토큰은 사람의 말 속도보다 더 빠르게 처리되기 때문에, 텍스트 음성 변환의 지연은 첫 바이트까지의 시간만 고려하면 됩니다.

Diagram of a speech processing system showing input speech, ASR, VAD, LLM, TTS, and output speech with data flow and latency indicators.

과거에는 텍스트 음성 변환이 특히 느려서 음성 생성에 2~3초가 걸리기도 했습니다. 하지만 저희의 Turbo 엔진과 같은 최신 모델은 300ms의 지연만으로 음성을 생성할 수 있고, 새로운 플래시 TTS 엔진은 더 빠릅니다. Flash는 모델 처리 시간이 75ms에 불과하며, 오디오 첫 바이트까지 e2e 135ms의 지연만으로 업계 최고 성능을 자랑합니다(자랑 좀 해야겠네요!).

추가적인 영향 요소

네 가지 구성 요소 외에도, 대화형 AI의 전체 지연 시간에 영향을 주는 추가 요소들이 있습니다.

네트워크 지연

데이터를 한 위치에서 다른 위치로 전송할 때는 항상 지연이 발생합니다. 일부 대화형 AI 애플리케이션에서는 ASR, TTI, LLM, TTS 프로세스가 이상적으로는 같은 위치에 있어야 하며, 이 경우 네트워크 지연의 주요 원천은 화자와 전체 시스템 간의 경로뿐입니다.저희는 자체 TTS와 내부 전사 솔루션을 보유하고 있어 서버 호출을 두 번 줄일 수 있기 때문에, 지연 시간 측면에서 이점이 있습니다.

Diagram of a speech processing system showing input speech, ASR, VAD, LLM, TTS, and output speech with latency and network latency indicators.

함수 호출

많은 대화형 AI 애플리케이션은 함수 호출(즉, 도구 및 서비스와의 연동)을 위해 존재합니다. 예를 들어, AI에게 음성으로 날씨를 확인해 달라고 요청할 수 있습니다. 이때 추가적인 API 호출이 텍스트 처리 단계에서 발생하며, 필요에 따라 상당한 지연이 생길 수 있습니다.

예를 들어, 음성으로 피자를 주문해야 한다면 여러 번의 API 호출이 필요할 수 있고, 일부는 처리 지연이 클 수 있습니다(예: 신용카드 결제 처리).

Diagram of a speech processing system showing input speech, ASR, VAD, LLM/function calling, TTS, and output speech with data flow and latency indicated.

하지만 대화형 AI 시스템은 함수 호출이 끝나기 전에 LLM이 사용자에게 먼저 응답하도록 프롬프트를 활용해 지연을 줄일 수 있습니다(예: '날씨를 확인해드릴게요'). 이렇게 하면 실제 대화처럼 사용자가 기다리는 시간을 줄일 수 있습니다.

Flowchart of a speech synthesis system showing user input, system processing, and output speech, with components like ASR, VAD, TTS, and LLM.

이런 비동기 패턴은 주로 웹훅(webhook)을 활용해 장시간 요청을 피하는 방식으로 구현됩니다.

전화 통신

또 다른 일반적인 대화형 AI 플랫폼의 기능은 사용자가 전화를 통해 접속하거나(혹은 경우에 따라 사용자를 대신해 전화를 거는 것)입니다. 전화 통신은 추가적인 지연을 발생시키며, 이 지연은 지역에 따라 크게 달라질 수 있습니다.

Diagram of a speech processing system showing data flow and latency between components.

기본적으로, 같은 지역 내에서 전화 통신을 할 경우 200ms의 추가 지연이 발생합니다. 글로벌 통화(예: 아시아 → 미국)에서는 이동 시간이 크게 늘어나 500ms에 달할 수 있습니다. 사용자의 전화번호가 거주 지역과 다를 경우, 해당 국가의 전화망을 거쳐야 하므로 이런 현상이 자주 발생할 수 있습니다.

마무리 생각

이번 대화형 AI 에이전트에 대한 여정이 흥미로우셨길 바랍니다. 요약하자면, 애플리케이션은 1초 미만의 지연 시간을 목표로 해야 하며, 이를 위해 적합한 LLM을 선택하는 것이 중요합니다. 또한, 백그라운드에서 복잡한 처리가 진행될 때도 사용자가 기다리지 않도록 계속 상호작용해야 합니다.

결국 목표는 현실감을 만드는 것입니다. 사용자는 사람과 대화하는 듯한 편안함과 컴퓨터 프로그램의 이점을 동시에 느껴야 합니다. 각 하위 프로세스를 최적화하면 이제 이것이 가능합니다.

ElevenLabs는 최첨단 STT와 AI 음성 에이전트 시스템의 모든 부분을 최적화하고 있습니다. 각 단계를 개선함으로써 자연스러운 대화 흐름을 구현할 수 있습니다. 이런 전체적인 관점의 오케스트레이션을 통해, 모든 단계에서 1ms라도 지연을 줄이고 있습니다.TTS 모델. 각 프로세스별로 개선을 거듭해, 매끄러운 대화 흐름을 실현할 수 있습니다. 이런 전체적인 접근 방식 덕분에, 모든 단계에서 1ms라도 지연을 줄이고 있습니다.

ElevenLabs 팀의 다른 글 보기

최고 품질의 AI 오디오로 창작하세요