SkyPilot: 모든 클라우드에서 AI 및 배치 작업을 효율적으로 실행하기 위한 오픈 소스 프레임워크

최신 AI 리소스6개월 전 업데이트 AI 공유 서클
11.1K 00

일반 소개

SkyPilot은 사용자가 모든 클라우드 인프라에서 AI 및 일괄 처리 작업을 효율적으로 실행할 수 있도록 캘리포니아 버클리 대학교의 스카이 컴퓨팅 연구소에서 시작한 오픈 소스 프레임워크입니다. 14개 이상의 클라우드 서비스(AWS, GCP, Azure 등)와 Kubernetes를 지원하는 SkyPilot은 통합 실행 인터페이스, 상당한 비용 절감, 높은 GPU 가용성을 제공하며, 간단한 YAML 또는 Python API를 통해 구성되어 사용자가 코드 수정 없이 클라우드에 작업을 배포하고 최적의 리소스를 자동으로 선택하며 장애 허용을 활성화할 수 있도록 해줍니다. SkyPilot을 사용하면 코드를 수정하지 않고도 클라우드에 작업을 배포할 수 있으며, 최적의 리소스를 자동으로 선택하고 내결함성을 활성화할 수 있습니다. 이 프로젝트는 2022년 출시 이후 GitHub에서 100만 건 이상의 다운로드와 7천 개 이상의 별점을 받았으며 머신 러닝 모델 학습, 하이퍼파라미터 튜닝, 생물 정보학 분야에서 널리 사용되고 있습니다.

SkyPilot:在任何云端高效运行AI与批处理任务的开源框架

 

기능 목록

  • 멀티 클라우드 미션 배포단일 클라우드 공급업체에 종속되지 않도록 AWS, GCP, Azure, Kubernetes 등 14개 이상의 클라우드에서 작업을 실행할 수 있도록 지원합니다.
  • 비용 최적화가장 저렴한 클라우드 지역 또는 인스턴스(예: 온디맨드 또는 스팟 인스턴스)를 자동으로 선택해 최대 3~6.5배의 비용 절감을 실현합니다.
  • GPU/TPU 지원GPU(예: NVIDIA A100) 및 TPU 리소스를 원활하게 예약하고 관리하여 컴퓨팅 효율성을 개선합니다.
  • 자동 장애 복구용량 부족 또는 선점 시 다른 클라우드 또는 리전으로 자동 전환하여 작업이 중단되지 않도록 합니다.
  • 코드 및 데이터 동기화로컬 코드와 데이터를 클라우드 클러스터에 자동으로 동기화하여 배포 프로세스를 간소화합니다.
  • 작업 대기열 관리하이퍼 파라미터 튜닝과 같은 시나리오에서 대규모 동시 작업(예: 2000개 이상의 작업)을 지원합니다.
  • 서비스 배포(SkyServe): AI 모델 서비스를 쉽게 배포할 수 있도록 HTTPS 지원 및 로드 밸런싱 정책을 제공합니다.
  • 예약 인스턴스 지원AWS 용량 블록, GCP 동적 워크로드 스케줄러 등과 같은 온프레미스 리소스를 통합합니다.

 

도움말 사용

SkyPilot은 개발자, 연구자 및 비즈니스 사용자가 쉽게 설치하고 사용할 수 있습니다. 다음은 SkyPilot의 핵심 기능을 설치, 구성 및 작동하는 방법에 대한 자세한 설명입니다.

설치 프로세스

  1. 환경 준비
    Python 3.8 이상이 로컬에 설치되어 있는지 확인하고 pip 패키지 관리 도구. 종속성 충돌을 피하려면 가상 환경을 사용하는 것이 좋습니다:

    python3 -m venv skypilot_env
    source skypilot_env/bin/activate
  1. SkyPilot 설치
    통과(청구서 또는 검사 등) pip 최신 버전을 설치합니다:

    pip install -U "skypilot[all]"
    

    여기에는 다음이 포함됩니다. [all] 모든 클라우드 지원 종속성이 설치되었음을 나타냅니다. 특정 클라우드(예: AWS)만 필요한 경우, 다음과 같이 대체합니다. skypilot[aws].

  2. 클라우드 인증
    대상 클라우드에 대한 자격 증명을 구성합니다. AWS를 예로 들어 보겠습니다:

    • AWS CLI를 설치합니다:pip install awscli
    • 자격 증명을 구성합니다:aws configure액세스 키와 비밀 키를 입력합니다.
      다른 클라우드(예: GCP, Azure)의 경우 공식 문서를 참조하여 유사한 구성을 완료하세요.
  3. 설치 확인
    다음 명령을 실행하여 설치가 성공했는지 확인합니다:

    sky check
    

    출력에는 활성화된 클라우드 서비스의 상태가 표시됩니다.

주요 기능

1. 미션 프로필 생성

SkyPilot은 YAML 파일을 사용하여 작업을 정의합니다. 예를 들어 PyTorch 모델을 훈련하려면 다음과 같이 train.yaml::

resources:
accelerators: A100:1  # 使用 1 个 A100 GPU
num_nodes: 1         # 单节点
workdir: ~/my_project  # 同步本地项目目录
setup: |               # 安装依赖
pip install torch torchvision
run: |                 # 运行任务
python main.py --epochs 10
  • resourcesGPU의 유형 및 수와 같은 계산 리소스를 지정합니다.
  • workdir클라우드에 자동 동기화되는 로컬 코드 카탈로그.
  • setup실행 전 준비 명령입니다.
  • run임무 실행 명령.

2. 권한 부여 시작

터미널에서 실행됩니다:

sky launch -c my-cluster train.yaml
  • -c my-cluster이후 관리가 용이하도록 클러스터에 이름을 지정합니다.
  • SkyPilot은 최적의 클라우드 리소스를 자동으로 선택하고 작업을 시작합니다.

위임 상태 보기 3.

클러스터 상태를 확인합니다:

sky status

실행 중인 모든 클러스터와 해당 클러스터의 리소스 사용량을 표시합니다.

4. 비용 최적화 및 스팟 예시

스팟 인스턴스를 사용하여 비용을 절감하세요:

sky launch -c my-spot-cluster train.yaml --use-spot

SkyPilot은 스팟 인스턴스 중단을 자동으로 관리하고 작업을 재개합니다.

5. 배포 서비스(SkyServe)

LLaMA 모델 배포의 예로, 다음과 같이 serve.yaml::

resources:
accelerators: A100:1
service:
replica: 2          # 2 个副本
ports: 8080         # 服务端口
run: |
python serve.py --model llama

서비스를 시작합니다:

sky serve up serve.yaml -n llama-service

생성된 HTTPS 엔드포인트에 액세스하여 서비스를 이용하세요.

6. 대규모 동시 미션

2000개 이상의 작업(예: 하이퍼파라미터 튜닝)을 실행합니다:

sky jobs launch -c my-jobs train.yaml --num-jobs 2000

SkyPilot은 자동으로 리소스를 할당하고 대기열을 관리합니다.

주요 기능

멀티 클라우드 전환

AWS에서 A100을 사용할 수 없는 경우 다른 클라우드를 지정하세요:

sky launch -c my-cluster train.yaml --cloud gcp

또는 Sky파일럿이 자동으로 가장 저렴한 클라우드를 선택하도록 설정하세요:

sky launch -c my-cluster train.yaml --cloud cheapest

GPU 스케줄링

사용 가능한 GPU 리소스를 확인합니다:

sky show-gpus

수요에 따라 동적으로 조정 resources 정곡을 찌르세요 accelerators 매개변수.

로깅 및 디버깅

실시간으로 작업 로그를 확인하세요:

sky logs my-cluster

디버그 모드를 활성화합니다:

export SKYPILOT_DEBUG=1
sky launch -c my-cluster train.yaml

주의

  • 자격 증명 보안클라우드 자격 증명 파일(예 ~/.aws) 권한을 올바르게 설정하여 유출을 방지하세요.
  • 리소스 릴리스작업이 완료되면 클러스터를 수동으로 종료합니다:
    sky down my-cluster
    
  • 문서 지원고급 사용법은 공식 SkyPilot 문서를 참조하세요.

이러한 단계를 통해 사용자는 SkyPilot을 빠르게 시작하고 AI 및 배치 작업을 효율적으로 실행할 수 있습니다.

© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...