다음을 통해 공유


프로비전된 처리량의 초당 토큰 범위는 무엇을 의미합니까?

이 문서에서는 Databricks가 Foundation Model API프로비전된 처리량 워크로드에 대해 초당 토큰을 측정하는 방법과 이유를 설명합니다.

LLM(대규모 언어 모델)의 성능은 종종 초당 토큰 측면에서 측정됩니다. 엔드포인트를 제공하는 프로덕션 모델을 구성할 때 애플리케이션이 엔드포인트에 보내는 요청 수를 고려하는 것이 중요합니다. 이렇게 하면 대기 시간에 영향을 주지 않도록 크기를 조정하도록 엔드포인트를 구성해야 하는지 이해하는 데 도움이 됩니다.

프로비저닝된 처리량으로 배포된 엔드포인트에 대한 스케일 아웃 범위를 구성할 때 Databricks는 토큰을 사용하여 시스템에 입력되는 입력을 더 쉽게 추론할 수 있습니다.

토큰이란?

LLM은 토큰용어로 텍스트를 읽고 생성합니다. 토큰은 단어 또는 하위 단어일 수 있으며 텍스트를 토큰으로 분할하는 정확한 규칙은 모델마다 다릅니다. 예를 들어 온라인 도구를 사용하여 Llama의 토큰 변환기가단어를 토큰으로 변환하는 방법을 확인할 수 있습니다.

다음 다이어그램에서는 Llama 토케나이저가 텍스트를 구분하는 방법의 예를 보여줍니다.

Llama-tokenizer-example

초당 토큰 측면에서 LLM 성능을 측정하는 이유는 무엇인가요?

일반적으로 서비스 엔드포인트는 RPS(초당 동시 요청 수)에 따라 구성됩니다. 그러나 LLM 유추 요청은 전달되는 토큰 수와 생성되는 수에 따라 다른 시간이 소요되며, 요청 간에 불균형이 발생할 수 있습니다. 따라서 엔드포인트의 규모를 어느 정도로 확장할지 결정하는 것은 요청의 내용, 즉 토큰을 기준으로 엔드포인트 규모를 측정해야 하는 것입니다.

다른 사용 사례는 서로 다른 입력 및 출력 토큰 비율을 특징으로 합니다.

  • 입력 컨텍스트의 다양한 길이: 일부 요청에는 몇 개의 입력 토큰만 포함될 수 있습니다 (예를 들어, 짧은 질문). 반면에 요약을 위한 긴 문서와 같이 수백 또는 수천 개의 토큰이 포함될 수도 있습니다. 이러한 가변성 때문에 RPS를 기반으로 하는 서비스 엔드포인트를 구성하는 것은 다양한 요청의 다양한 처리 요구를 고려하지 않기 때문에 어려운 일입니다.
  • 사용 사례따라 출력 길이가 다양합니다. LLM에 대한 사용 사례가 다르면 출력 토큰 길이가 크게 다를 수 있습니다. 출력 토큰 생성은 LLM 유추에서 가장 시간이 많이 걸리는 부분이므로 처리량에 큰 영향을 줄 수 있습니다. 예를 들어 요약에는 더 짧은 응답이 포함되지만 문서 또는 제품 설명 작성과 같은 텍스트 생성은 훨씬 더 긴 답변을 생성할 수 있습니다.

내 엔드포인트에 대한 초당 토큰 범위를 선택하려면 어떻게 해야 하나요?

엔드포인트를 제공하는 프로비전된 처리량은 엔드포인트에 보낼 수 있는 초당 토큰 범위로 구성됩니다. 엔드포인트가 확장 및 축소되어 프로덕션 애플리케이션의 부하를 처리합니다. 엔드포인트가 조정된 초당 토큰 범위에 따라 시간당 요금이 청구됩니다.

사용 사례에 대해 작동하는 프로비전된 처리량 서비스 엔드포인트에서 초당 토큰 범위를 파악하는 가장 좋은 방법은 대표적인 데이터 세트를 사용하여 부하 테스트를 수행하는 것입니다. 고유한 LLM 엔드포인트 벤치마킹수행을 참조하십시오.

고려해야 할 두 가지 중요한 요소가 있습니다.

  • Databricks가 LLM의 초당 토큰 성능을 측정하는 방법입니다.
  • 자동 크기 조정의 작동 방식.

Databricks가 LLM의 초당 토큰 성능을 측정하는 방법

Databricks는 검색을 강화한 생성 사용 사례에서 공통적인 요약 작업을 나타내는 워크로드에 대해 엔드포인트의 성능을 측정합니다. 특히 업무량은 다음으로 구성됩니다.

  • 입력 토큰 2048개
  • 256개의 출력 토큰

표시되는 토큰 범위 은 기본적으로 입력 및 출력 토큰 처리량을 결합하여 처리량과 대기 시간의 균형을 잡기 위해 최적화한다.

사용자는 Databricks 벤치마크에 따라 초당 그만큼 많은 토큰을 요청당 1개의 배치 크기로 엔드포인트에 동시에 보낼 수 있습니다. 이렇게 하면 엔드포인트에 동시에 도달하는 여러 요청이 시뮬레이트되며, 이는 프로덕션 환경에서 엔드포인트를 실제로 사용하는 방법을 보다 정확하게 나타냅니다.

  • 예를 들어 프로비전된 처리량 서비스 엔드포인트의 초당 2304 토큰(2048 + 256)의 설정된 속도가 있는 경우 2048 토큰의 입력과 256 토큰의 예상 출력이 있는 단일 요청은 실행하는 데 약 1초가 소요될 것으로 예상됩니다.
  • 마찬가지로 속도가 5600으로 설정된 경우 위의 입력 및 출력 토큰 개수와 함께 단일 요청이 실행되는 데 약 0.5초가 걸릴 것으로 예상할 수 있습니다. 즉, 엔드포인트는 약 1초 안에 두 개의 유사한 요청을 처리할 수 있습니다.

워크로드가 위와 다른 경우 나열된 프로비전된 처리량 속도와 관련하여 대기 시간이 달라질 것으로 예상할 수 있습니다. 앞에서 설명한 것처럼 더 많은 입력 토큰을 포함하는 것보다 더 많은 출력 토큰을 생성하는 것이 시간이 더 많이 걸립니다. 일괄 처리 유추를 수행하고 완료하는 데 걸리는 시간을 예측하려는 경우 평균 입력 및 출력 토큰 수를 계산하고 위의 Databricks 벤치마크 워크로드와 비교할 수 있습니다.

  • 예를 들어 행이 1000개인 경우 평균 입력 토큰 수가 3,000개, 평균 출력 토큰 수가 500개이고 프로비전된 처리량이 초당 3,500개인 경우 평균 토큰 수가 Databricks 벤치마크보다 때문에 총 1,000초(행당 1초)보다 더 오래 걸릴 수 있습니다.
  • 마찬가지로, 행이 1000개이고 평균 입력 토큰 수가 1,500개이며 평균 출력 토큰 수가 100개이고, 프로비전된 처리량이 초당 1,600개인 경우, 평균 토큰 수가 Databricks 벤치마크보다 작기 때문에 총 1,000초(행당 1초)보다 더 적은 시간이 걸릴 수 있습니다.

일괄 처리 유추 워크로드를 완료하는 데 필요한 이상적인 프로비전된 처리량을 예측하려면 일괄 처리 LLM 유추 수행에서 ai_query Notebook을 사용할 수 있습니다.

자동 크기 조정 작동 방식

모델 서비스 기능은 애플리케이션의 초당 토큰 수요를 충족하도록 기본 컴퓨팅의 크기를 조정하는 신속한 자동 크기 조정 시스템을 제공합니다. Databricks는 프로비전된 처리량을 초당 토큰 청크로 확장하므로 프로비전된 처리량의 추가 단위는 사용하는 경우에만 요금이 청구됩니다.

다음 처리량 대기 시간 그래프는 병렬 요청 수가 증가하는 테스트된 프로비전된 처리량 엔드포인트를 보여 줍니다. 첫 번째 지점은 1개의 요청, 두 번째, 2개의 병렬 요청, 세 번째, 4개의 병렬 요청 등을 나타냅니다. 요청 수가 증가하고 초당 토큰 수요가 증가하면 프로비전된 처리량도 증가하는 것을 볼 수 있습니다. 이 증가는 자동 크기 조정이 사용 가능한 컴퓨팅을 증가한다는 것을 나타냅니다. 그러나 처리량이 점점 평탄해지기 시작하여 더 많은 병렬 요청이 수행됨에 따라 초당 최대 8000개의 토큰에 도달하게 되는 것을 볼 수 있습니다. 할당된 컴퓨팅이 동시에 사용되므로 처리되기 전에 더 많은 요청이 큐에서 대기해야 하므로 총 대기 시간이 증가합니다.

메모

크기 조정을 0으로 해제하고 서비스 엔드포인트에서 최소 처리량을 구성하여 처리량을 일관되게 유지할 수 있습니다. 이렇게 하면 엔드포인트가 확장되기를 기다릴 필요가 없습니다.

Throughput-Latency 그래프

또한 엔드포인트를 제공하는 모델에서 수요에 따라 리소스가 어떻게 스펀업 또는 다운되는지 확인할 수 있습니다.

할당된 동시성 도표

GPU 사용량 수치를 제공하는 모델