자신만의 LLM 엔드포인트를 벤치마킹하세요.
이 문서에서는 LLM 엔드포인트를 벤치마킹하기 위한 Databricks 권장 Notebook 예제를 제공합니다. 또한 Databricks가 LLM 유추를 수행하고 대기 시간 및 처리량을 엔드포인트 성능 메트릭으로 계산하는 방법을 간략하게 소개합니다.
Databricks에서 LLM 추론은 파운데이션 모델 API에 대해 프로비전된 처리량 모드로 초당 토큰 수를 측정합니다. 프로비전된 처리량의 초당 토큰 범위는 무엇을 의미합니까? 참조하세요..
벤치마킹 예제 노트북
다음 Notebook을 Databricks 환경으로 가져오고 LLM 엔드포인트의 이름을 지정하여 부하 테스트를 실행할 수 있습니다.
LLM 엔드포인트 벤치마킹
LLM 추론 소개
LLM은 2단계 프로세스에서 유추를 수행합니다.
- 미리 채우기, 입력 프롬프트의 토큰이 병렬로 처리됩니다 where.
- 디코딩, where 텍스트는 자동 회귀 방식으로 한 번에 하나의 토큰을 생성합니다. 생성된 각 토큰은 입력에 추가되고 모델에 다시 공급되어 다음 토큰을 generate. LLM이 특수 중지 토큰을 출력하거나 사용자 정의 조건이 충족되면 생성이 중지됩니다.
대부분의 프로덕션 애플리케이션에는 대기 시간 예산이 있으며, Databricks는 대기 시간 예산을 고려할 때 처리량을 최대화하는 것이 좋습니다.
- 입력 토큰의 수는 요청을 처리하는 데 필요한 메모리에 상당한 영향을 줍니다.
- 출력 토큰 수가 전체 응답 대기 시간을 지배합니다.
Databricks는 LLM 유추를 다음 하위 메트릭으로 나눕니다.
- TTFT(Time to First Token): 이 방법은 사용자가 쿼리를 입력한 후 빠르게 모델의 출력을 볼 수 있게 해줍니다. 응답 대기 시간이 짧다는 것은 실시간 상호 작용에서 필수적이지만 오프라인 워크로드에서는 덜 중요합니다. 이 메트릭은 프롬프트를 처리한 다음 첫 번째 출력 토큰을 generate 데 필요한 시간에 따라 결정됩니다.
- 출력 토큰당 시간(TPOT): 시스템을 쿼리하는 각 사용자에 대해 출력 토큰을 생성하는 데 걸리는 generate의 시간입니다. 이 메트릭은 각 사용자가 모델의 "속도"를 인식하는 방식에 해당합니다. 예를 들어 토큰당 100밀리초의 TPOT은 초당 10개의 토큰 또는 분당 최대 450단어로 일반적인 사람이 읽을 수 있는 것보다 빠릅니다.
이러한 메트릭에 따라 총 대기 시간 및 처리량을 다음과 같이 정의할 수 있습니다.
- 대기 시간 = TTFT + (TPOT) * (생성할 토큰 수)
- 처리량 = 모든 동시성 요청에서 초당 출력 토큰 수
Databricks에서 LLM 서빙 엔드포인트는 여러 동시 요청이 있는 클라이언트에서 유발된 부하에 맞춰 확장할 수 있습니다. 대기 시간과 처리량 사이에는 장차가 있습니다. 이는 LLM 서비스를 제공하는 엔드포인트에서 동시 요청이 동시에 처리되기 때문입니다. 낮은 동시 요청 로드에서 대기 시간은 가능한 가장 낮습니다. 그러나 요청 부하를 늘리면 대기 시간이 증가할 수 있지만 처리량도 증가할 수 있습니다. 초당 두 개의 요청 가치가 있는 토큰을 두 배 미만의 시간 안에 처리할 수 있기 때문입니다.
따라서 시스템에 대한 병렬 요청 수를 제어하는 것이 대기 시간과 처리량의 균형을 맞추는 핵심입니다. 짧은 대기 시간 사용 사례가 있는 경우 대기 시간을 낮게 유지하기 위해 엔드포인트에 더 적은 동시 요청을 보내려고 합니다. 처리량이 많은 사용 사례가 있을 때는, 더 많은 동시성 요청을 통해 엔드포인트를 포화시키는 것이 중요합니다. 이 경우, 처리량을 높이는 것이 대기 시간을 희생할 가치가 있습니다.
- 높은 처리량 사용 사례에는 일괄 추론 및 사용자와 직접 관련되지 않은 작업이 포함될 수 있습니다.
- 짧은 대기 시간 사용 사례에는 즉각적인 응답이 필요한 실시간 애플리케이션이 포함될 수 있습니다.
Databricks 벤치마킹 도구
이전에 공유한 벤치마킹 예제 Notebook은 Databricks 벤치마킹 도구입니다. 이 노트북은 모든 요청과 처리량 메트릭에서 총 대기 시간을 표시하며, 다양한 병렬 요청 수에 따른 처리량 대 대기 시간 곡선을 그립니다. Databricks 엔드포인트 자동 크기 조정 전략은 대기 시간과 처리량 간의 균형을 조정합니다. 노트북에서 동시 사용자가 엔드포인트를 쿼리할수록 지연 시간과 처리량이 증가하는 것을 관찰합니다.
그러나 병렬 요청 수가 증가함에 따라 처리량이 초당 약 8,000개의 토큰 limit에 도달하면서 점차 안정됩니다. 이 고원은 엔드포인트에 대해 프로비전된 처리량이 수행할 수 있는 작업자 및 병렬 요청 수를 제한하기 때문에 발생합니다. 엔드포인트에서 동시에 처리할 수 있는 것 이상으로 더 많은 요청이 이루어지면 큐에서 추가 요청이 대기함에 따라 총 대기 시간이 계속 증가합니다.
LLM 성능 벤치마킹에 대한 Databricks 철학에 대한 자세한 내용은 LLM 추론 성능 엔지니어링: 모범 사례 블로그에 설명되어 있습니다.