Google Cloud Vertex AI에서 Meta Llama 3.1 405B 배포
Meta Llama 3.1 405B는 Hugging Face의 Deep Learning Containers(DLCs)와 Text Generation Inference(TGI)를 사용하여 Google Cloud Vertex AI에 배포할 수 있습니다. 이를 통해 사용자는 Meta의 가장 큰 오픈 LLM을 관리형 환경에서 실행하고, 고성능 추론을 위해 A3 가속기 최적화 머신을 활용할 수 있습니다.
하드웨어 요구사항 및 메모리 관리
Meta Llama 3.1 405B를 배포하려면 모델 가중치의 정밀도에 따라 달라지는 상당한 GPU VRAM이 필요합니다. 모델 체크포인트를 로드하기 위한 대략적인 메모리 요구량은 다음과 같습니다:
| 모델 크기 | FP16 | FP8 | INT4 |
|---|---|---|---|
| 8B | 16 GB | 8 GB | 4 GB |
| 70B | 140 GB | 70 GB | 35 GB |
| 405B | 810 GB | 405 GB | 203 GB |
단일 H100 노드(8 x 80GB GPU)는 약 640GB의 VRAM을 제공하므로, 405B 모델은 FP8과 같은 낮은 정밀도로 실행하거나 다중 노드 설정에서 실행해야 합니다. 이 배포를 위해서는 8 x NVIDIA H100 80GB GPU, 208 vCPU, 1872 GB 메모리를 제공하는 A3 High GPU 머신 타입을 권장합니다.
Vertex AI에서 배포 과정
모델 배포는 Vertex AI Model Registry에 모델을 등록하고 이를 Vertex AI Endpoint에 배포하는 과정을 포함합니다.
모델 등록
등록은 google-cloud-aiplatform Python SDK를 사용하여 수행됩니다. 이 과정에는 Meta Llama 3.1 아키텍처를 지원하는 Hugging Face TGI DLC가 필요합니다(이는 Llama 3과 다른 RoPE 스케일링 방식을 사용합니다). 주요 구성 환경 변수는 다음과 같습니다:
MODEL_ID:meta-llama/Meta-Llama-3.1-405B-Instruct-FP8로 설정합니다.HUGGING_FACE_HUB_TOKEN: 제한된 Meta Llama 저장소에 대한 읽기 전용 토큰입니다.NUM_SHARD: A3 인스턴스의 모든 GPU를 활용하기 위해 8로 설정합니다.HF_XET_HIGH_PERFORMANCE: 약 400 GiB 모델 가중치 다운로드를 가속화하기 위해1로 설정하는 것이 권장됩니다.
엔드포인트 배포
등록이 완료되면 모델은 a3-highgpu-8g 머신 타입과 8개의 NVIDIA H100 80GB 가속기를 사용하여 Vertex AI Endpoint에 배포됩니다. 전체 배포 과정은 일반적으로 25-30분 정도 소요되며, 리소스 할당, 가중치 다운로드(10분), TGI 로드(2분)를 포함합니다.
온라인 예측 실행
Vertex AI는 TGI DLC를 통해 텍스트 생성을 제공하는 /predict 경로를 노출합니다. /generate 엔드포인트가 사용되므로, 입력은 엔드포인트에 전송되기 전에 적절한 채팅 템플릿으로 포맷되어야 합니다.
입력 포맷팅
사용자는 transformers 라이브러리의 apply_chat_template 메서드를 사용하여 대화가 Meta Llama 3.1에 맞게 올바르게 포맷되었는지 확인해야 합니다. 일반적인 포맷된 프롬프트는 <|begin_of_text|>, <|start_header_id|>, <|eot_id|>와 같은 특정 토큰을 포함합니다.
예측 방법
예측은 세 가지 주요 방법을 통해 실행할 수 있습니다:
- Same-session Python: 배포 직후
deployed_model.predict메서드를 사용합니다. - Different-session Python: 리소스 이름(
projects/{PROJECT_ID}/locations/{LOCATION}/endpoints/{ENDPOINT_ID})을 통해aiplatform.Endpoint를 인스턴스화합니다. - Vertex AI UI: 포맷된
inputs와 생성parameters(예:max_new_tokens,temperature,top_p)를 포함하는 JSON 페이로드를 제공하여 온라인 예측 UI를 사용합니다.
리소스 관리
불필요한 비용을 방지하기 위해 사용 후 리소스를 정리해야 합니다. 이는 deployed_model.undeploy_all()을 사용하여 모든 엔드포인트에서 모델을 언디플로이하고, deployed_model.delete()로 엔드포인트를 삭제한 뒤, model.delete()를 사용해 레지스트리에서 모델을 제거하는 과정을 포함합니다.
SUMMARY: Hugging Face는 Text Generation Inference(TGI)와 A3 머신 시리즈를 사용하여 Google Cloud Vertex AI에 Meta Llama 3.1 405B의 FP8 양자화 버전을 프로그래밍 방식으로 배포하는 가이드를 제공합니다.
TITLE: Google Cloud Vertex AI에서 Meta Llama 3.1 405B 배포