이 튜토리얼에서는 vLLM 제공 프레임워크와 함께 Google Kubernetes Engine(GKE)에서 Tensor Processing Unit(TPU)을 사용하여 대규모 언어 모델(LLM)을 제공하는 방법을 보여줍니다. 이 튜토리얼에서는 Llama 3.1 70b를 제공하고, TPU Trillium을 사용하고, vLLM 서버 측정항목을 사용하여 수평형 포드 자동 확장을 설정합니다.
이 문서는 AI/ML 워크로드를 배포하고 제공할 때 관리형 Kubernetes의 세밀한 제어, 확장성, 복원력, 이동성, 비용 효율성이 필요한 경우 좋은 출발점이 될 수 있습니다.
배경
GKE에서 TPU Trillium을 사용하면 효율적인 확장성 및 더 높은 가용성을 비롯하여 관리형 Kubernetes의 모든 이점을 활용하여 프로덕션에 즉시 사용 가능한 강력한 제공 솔루션을 구현할 수 있습니다. 이 섹션에서는 이 가이드에서 사용되는 주요 기술을 설명합니다.
TPU Trillium
TPU는 Google에서 자체 개발한 ASIC(application-specific integrated circuit)입니다. TPU는 TensorFlow, PyTorch, JAX와 같은 프레임워크를 사용하여 빌드된 머신러닝 및 AI 모델을 가속화하는 데 사용됩니다. 이 튜토리얼에서는 Google의 6세대 TPU인 TPU Trillium을 사용합니다.
GKE에서 TPU를 사용하기 전에 다음 학습 과정을 완료하는 것이 좋습니다.
vLLM
vLLM은 LLM을 제공하기 위한 고도로 최적화된 오픈소스 프레임워크입니다. vLLM은 다음과 같은 기능을 통해 TPU의 제공 처리량을 늘릴 수 있습니다.
- PagedAttention으로 최적화된 Transformer 구현
- 전체 제공 처리량을 개선하기 위한 연속적인 작업 일괄 처리
- 여러 TPU에서 텐서 동시 로드 및 분산 제공
자세한 내용은 vLLM 문서를 참조하세요.
지원되는 모델 및 기능
TPU에서 vLLM으로 LLM을 배포하기 전에 모델 호환성과 지원되는 기능을 확인하여 배포 문제를 방지하는 것이 좋습니다. vllm-project/tpu-inference 라이브러리는 vLLM이 TPU에서 실행되는 데 필요한 백엔드를 제공합니다.
지원되는 모델 및 기능의 전체 목록은 공식 문서를 참고하세요.
Cloud Storage FUSE
Cloud Storage FUSE는 GKE 클러스터에서 객체 스토리지 버킷에 있는 모델 가중치에 대한 Cloud Storage에 액세스할 수 있도록 지원합니다. 이 튜토리얼에서는 생성된 Cloud Storage 버킷이 처음에 비어 있습니다. vLLM이 시작되면 GKE가 Hugging Face에서 모델을 다운로드하고 가중치를 Cloud Storage 버킷에 캐싱합니다. 포드 재시작 또는 배포 수직 확장 시 후속 모델 부하는 Cloud Storage 버킷에서 캐시된 데이터를 다운로드하여 최적의 성능을 위해 병렬 다운로드를 활용합니다.
자세한 내용은 Cloud Storage FUSE CSI 드라이버 문서를 참조하세요.
목표
이 튜토리얼은 LLM 제공을 위해 GKE 조정 기능을 사용하려는 MLOps 또는 DevOps 엔지니어나 플랫폼 관리자를 대상으로 합니다.
이 튜토리얼은 다음 과정을 다룹니다.
- 모델 특성에 따라 권장되는 TPU Trillium 토폴로지를 사용하여 GKE 클러스터 만들기
- 클러스터의 노드 풀에 vLLM 프레임워크 배포
- 부하 분산기를 사용하여 Llama 3.1 70b를 제공하도록 vLLM 프레임워크 사용
- vLLM 서버 측정항목을 사용하여 수평형 포드 자동 확장 설정
- 모델 제공
시작하기 전에
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the