AI

LLM API에서 스트리밍(streaming)과 비스트리밍(Non-Streaming, Blocking)의 차이

Alex Han 2024. 8. 25. 21:48
반응형

 

 

 

LLM API에서 스트리밍(streaming)과 비스트리밍(non-streaming, blocking)의 차이는 주로 응답을 제공하는 방식과 그에 따른 사용자 경험에 있습니다. 이 두 가지 접근 방식은 데이터를 클라이언트에 전달하는 방법과 시점에서 차이가 있습니다.

1. 스트리밍(Streaming)

스트리밍 방식은 응답을 실시간으로, 점진적으로 전송하는 방식입니다. LLM API가 텍스트를 생성할 때, 부분적으로 생성된 텍스트를 클라이언트에게 즉시 전송합니다. 이를 통해 사용자는 전체 응답이 준비될 때까지 기다리지 않고, 생성된 텍스트를 즉시 볼 수 있습니다.

특징:

  • 실시간 피드백: 사용자는 응답이 준비되는 대로 실시간으로 결과를 받습니다. 예를 들어, 긴 텍스트 생성이 필요할 때 스트리밍 방식은 사용자가 전체 텍스트가 완성되기 전에 점진적으로 결과를 볼 수 있게 해줍니다.
  • 반응성: 스트리밍은 전체 응답이 준비될 때까지 기다릴 필요가 없기 때문에 사용자 경험이 더 반응적입니다. 특히, 네트워크 지연이 있는 경우나 긴 응답이 필요한 경우에 유용합니다.
  • 네트워크 활용: 스트리밍은 네트워크 연결을 지속적으로 유지하며 데이터를 보내기 때문에 클라이언트와 서버 간의 연결을 유지하는 데 적합합니다.

사용 예시:

  • 채팅 애플리케이션에서 사용자 입력에 대한 빠른 응답이 필요한 경우.
  • 실시간 번역 서비스나 고객 지원 챗봇 등.

2. 비스트리밍(Non-Streaming, Blocking)

비스트리밍 방식은 전체 응답이 준비될 때까지 클라이언트가 기다리도록 하는 방식입니다. LLM API는 모든 텍스트를 완전히 생성한 후 클라이언트에게 한꺼번에 전송합니다. 이 방식에서는 응답을 받기 전까지 클라이언트가 기다려야 합니다.

특징:

  • 완전한 응답: 클라이언트는 전체 텍스트가 생성된 후에야 응답을 받기 때문에 부분적인 텍스트가 제공되지 않습니다. 즉, 결과를 보기 위해 전체 생성 과정을 기다려야 합니다.
  • 단순한 처리: 비스트리밍 방식은 클라이언트와 서버 모두에 대해 처리와 상태 관리가 더 간단합니다. 한 번의 응답으로 모든 데이터를 전달하므로 상태를 지속적으로 업데이트할 필요가 없습니다.
  • 대기 시간: 전체 응답이 준비될 때까지 기다려야 하므로, 긴 응답의 경우 대기 시간이 길어질 수 있습니다.

사용 예시:

  • 데이터 분석 작업처럼 응답이 길고 복잡하지만, 중간 결과가 중요하지 않은 경우.
  • 요청에 대한 즉각적인 응답이 필요하지 않은 비동기 프로세스.

결론

스트리밍과 비스트리밍 방식의 선택은 주로 애플리케이션의 요구 사항과 사용자 경험에 따라 달라집니다. 스트리밍은 실시간 응답과 즉각적인 피드백이 중요한 경우에 유리하며, 비스트리밍은 전체 응답이 한 번에 필요하거나 응답 지연이 사용자 경험에 큰 영향을 미치지 않는 경우에 더 적합합니다.

 


 

간단히 얘기하면 Chat-GPT를 생각해볼 수 있다. 응답메세지가 "따다다다닥" 마치 인간이 실시간으로 말하는 것처럼 나온다. 이는 스트리밍이다. 한편, 카카오톡 플러스 친구 또는 카카오톡 챗봇을 생각해보자. 한번에 몇 줄의 응답이 한 번에 "딱" 나온다. 이는 비스트리밍이다. 무엇이 더 효율적가에 대한 비교는 의미가 크게 없다. 사용자가 어떻게 느끼는가가 중요할 것이다. 즉, 서비스의 성격마다 무엇이 더 효과적일지는 다르다.

반응형