LoRA에 Serverless Inference를 사용하는 이유
LoRA용 Serverless Inference는 다음과 같은 이점을 제공합니다.- 한 번 업로드하면 서버를 관리할 필요 없이 배포할 수 있습니다.
- 아티팩트 버전 관리로 현재 서비스 중인 버전을 추적할 수 있습니다.
- 전체 모델 가중치 대신 크기가 작은 LoRA 파일만 교체하여 모델을 업데이트할 수 있습니다.
워크플로
커스텀 LoRA 서빙은 크게 세 단계로 이루어집니다.- LoRA 가중치를 Weights & Biases 아티팩트로 업로드합니다.
- API에서 아티팩트 URI를 모델 이름으로 지정합니다.
- CoreWeave가 가중치를 동적으로 로드하여 추론에 사용합니다.
사전 요구 사항
다음이 필요합니다.- CoreWeave Forge API 키
- Weights & Biases 프로젝트
openai및wandb패키지가 설치된 Python 3.8 이상:pip install wandb openai
LoRA 추가 및 사용
다음 방법으로 CoreWeave Forge 계정에 LoRA를 추가하고 바로 사용할 수 있습니다. LoRA를 트레이닝한 위치에 맞는 탭을 선택하세요.- 다른 곳에서 트레이닝한 LoRA 업로드
- Serverless RL로 새 LoRA 트레이닝
- 지도 파인튜닝으로 새 LoRA 트레이닝
직접 만든 커스텀 LoRA 디렉터리를 Weights & Biases 아티팩트로 업로드하세요. 로컬 환경, 클라우드 제공업체, 파트너 서비스 등 다른 곳에서 LoRA를 트레이닝했다면 이 방법을 사용하세요.다음 Python 코드는 로컬에 저장된 LoRA 가중치를 버전 관리되는 아티팩트로 Weights & Biases에 업로드합니다. 필수 메타데이터(기본 모델 및 저장소 리전)를 포함한
lora 유형의 아티팩트를 생성하고, 로컬 디렉터리의 LoRA 파일을 추가한 다음, 추론에 사용할 수 있도록 Weights & Biases 프로젝트에 로깅합니다.기존 LoRA 사용을 위한 주요 요구 사항
Serverless Inference에서 자체 LoRA를 사용하려면 다음 사항을 확인하세요.- LoRA는 지원되는 기본 모델 섹션에 나열된 모델 중 하나로 트레이닝되어야 합니다.
- LoRA rank는 지원되는 기본 모델 표에 명시된 해당 기본 모델의 최대 LoRA 랭크를 초과할 수 없습니다.
- LoRA는 PEFT 형식으로 저장되어 CoreWeave Forge 계정에
lora유형의 아티팩트로 등록되어 있어야 합니다. - 지연 시간을 줄이려면 LoRA를
storage_region="coreweave-us"에 저장해야 합니다. - 업로드할 때 LoRA를 트레이닝한 기본 모델의 이름(예:
meta-llama/Llama-3.1-8B-Instruct)을 포함하세요. 그래야 Serverless Inference가 올바른 모델로 LoRA를 로드할 수 있습니다.
지원되는 기본 모델
LoRA는 다음 기본 모델 중 하나를 기반으로 트레이닝되어야 합니다. 추론 시 Serverless Inference가 어댑터를 올바른 기본 모델과 연결할 수 있도록wandb.base_model을 설정할 때 정확한 모델 ID 문자열을 사용하세요.
최대 LoRA 랭크 열은 Serverless Inference가 각 기본 모델에 대해 로드할 수 있는 어댑터의 최대 크기를 나타냅니다. 이는 트레이닝 설정이 아니라, 다른 곳에서 트레이닝한 후 업로드하는 어댑터에 적용되는 한도입니다. Serverless SFT 및 Serverless RL에서 생성된 어댑터는 항상 이 한도 내의 고정 rank를 사용합니다. 자세한 내용은 LoRA rank 및 alpha를 참조하세요.