빠른 시작: SageMaker 샌드박스 도메인을 만들어 Studio에서 Amazon EMR 클러스터 시작 - Amazon SageMaker

빠른 시작: SageMaker 샌드박스 도메인을 만들어 Studio에서 Amazon EMR 클러스터 시작

이 섹션에서는 Amazon SageMaker Studio에서 전체 테스트 환경을 빠르게 설정하는 방법을 안내합니다. 사용자가 Studio에서 직접 새 Amazon EMR 클러스터를 시작할 수 있는 새 Studio 도메인을 만듭니다. 이 단계에서는 Amazon EMR 클러스터에 연결하여 Spark 워크로드 실행을 시작할 수 있는 예시 노트북을 제공합니다. 이 노트북을 사용하여 Amazon EMR Spark 분산 처리 및 OpenSearch 벡터 데이터베이스를 사용하여 검색 증강 생성(RAG)을 구축합니다.

참고

시작하려면 AWS Management Console에 관리자 권한이 있는 AWS Identity and Access Management IAM 사용자로 로그인합니다. AWS 계정에 가입하고 관리 액세스 권한이 있는 사용자를 만드는 방법에 대한 자세한 내용은 Amazon SageMaker 사전 조건 충족 섹션을 참조하세요.

1단계: Studio에서 Amazon EMR 클러스터를 시작하기 위한 SageMaker 도메인 만들기

아래 단계에서 AWS CloudFormation 스택을 적용하여 새 SageMaker 도메인을 자동으로 만듭니다. 또한 스택은 사용자 프로필을 만들고 필요한 환경 및 권한을 구성합니다. SageMaker 도메인은 Studio에서 Amazon EMR 클러스터를 직접 시작할 수 있도록 구성됩니다. 이 예에서 Amazon EMR 클러스터는 인증 없이 SageMaker와 동일한 AWS 계정에 만들어집니다. getting_started GitHub 리포지토리에서 Kerberos와 같은 다양한 인증 방법을 지원하는 추가 AWS CloudFormation 스택을 찾을 수 있습니다.

참고

SageMaker는 기본적으로 AWS 계정 및 AWS 리전당 5개의 Studio 도메인을 허용합니다. 스택을 만들기 전에 계정에 리전에 도메인이 4개 이하인지 확인하세요.

Studio에서 Amazon EMR 클러스터를 시작하기 위한 SageMaker 도메인을 설정하려면 다음 단계를 따르세요.
  1. sagemaker-studio-emr GitHub 리포지토리에서 이 AWS CloudFormation 템플릿의 원시 파일을 다운로드합니다.

  2. AWS CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation)로 이동합니다.

  3. 스택 만들기를 선택한 다음 드롭다운 메뉴에서 새 리소스 사용(표준)을 선택합니다.

  4. 1단계에서:

    1. 템플릿 준비 섹션에서 기존 템플릿 선택을 선택합니다.

    2. 템플릿 지정 섹션에서 템플릿 파일 업로드를 선택합니다.

    3. 다운로드한 AWS CloudFormation 템플릿을 업로드하고 다음을 선택합니다.

  5. 2단계에서 스택 이름SageMakerDomainName을 입력한 후, 다음을 선택합니다.

  6. 3단계에서 모든 기본값을 유지하고 다음을 선택합니다.

  7. 4단계에서 확인란을 선택하여 리소스 만들기를 확인하고 스택 만들기를 선택합니다. 이렇게 하면 계정 및 리전에 Studio 도메인이 만들어집니다.

2단계: Studio UI에서 새 Amazon EMR 클러스터 시작

아래 단계에서는 Studio UI에서 새 Amazon EMR 클러스터를 만듭니다.

  1. SageMaker 콘솔(https://console.aws.amazon.com/sagemaker/)로 이동한 후 왼쪽 메뉴에서 도메인을 선택합니다.

  2. 도메인 이름(GenerativeAIDomain)을 클릭하여 도메인 세부 정보 페이지를 엽니다.

  3. 사용자 프로필 genai-user에서 Studio를 시작합니다.

  4. 왼쪽 탐색 창에서 데이터로 이동한 다음 Amazon EMR 클러스터로 이동합니다.

  5. Amazon EMR 클러스터 페이지에서 만들기를 선택합니다. AWS CloudFormation 스택에서 만든 SageMaker Studio 도메인 인증 없음 EMR 템플릿을 선택한 후, 다음을 선택합니다.

  6. 새 Amazon EMR 클러스터의 이름을 입력합니다. 선택적으로 코어 및 마스터 노드의 인스턴스 유형, 유휴 제한 시간 또는 코어 노드 수와 같은 다른 파라미터를 업데이트합니다.

  7. 리소스 만들기를 선택하여 새 Amazon EMR 클러스터를 시작합니다.

    Amazon EMR 클러스터를 만든 후 EMR 클러스터 페이지의 상태를 따릅니다. 상태가 Running/Waiting으로 변경되면 Amazon EMR 클러스터를 Studio에서 사용할 준비가 된 것입니다.

3단계: JupyterLab 노트북을 Amazon EMR 클러스터에 연결

아래 단계에서는 JupyterLab의 노트북을 실행 중인 Amazon EMR 클러스터에 연결합니다. 이 예에서는 노트북을 가져와 Amazon EMR Spark 분산 처리 및 OpenSearch 벡터 데이터베이스를 사용하여 검색 증강 생성(RAG) 시스템을 구축합니다.

  1. JupyterLab 시작

    Studio에서 JupyterLab 애플리케이션을 시작합니다.

  2. 프라이빗 공간 만들기

    JupyterLab 애플리케이션을 위한 공간을 만들지 않은 경우 JupyterLab 공간 만들기를 선택합니다. 공간의 이름을 입력하고 공간을 프라이빗으로 유지합니다. 다른 모든 설정은 기본값으로 두고 공간 만들기를 선택합니다.

    아니면 JupyterLab 공간을 실행하여 JupyterLab 애플리케이션을 시작합니다.

  3. 추론을 위한 LLM 및 임베딩 모델 배포
    • 상단 메뉴에서 파일을 선택한 다음 새로 만들기터미널을 차례로 선택합니다.

    • 터미널에서 다음 명령을 실행합니다.

      wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb mkdir AWSGuides cd AWSGuides wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/AmazonSageMakerDeveloperGuide.pdf wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/EC2DeveloperGuide.pdf wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/S3DeveloperGuide.pdf

      그러면 Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb 노트북이 로컬 디렉터리로 검색되고 3개의 PDF 파일이 로컬 AWSGuides 폴더에 다운로드됩니다.

    • lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb를 열고 Python 3 (ipykernel) 커널을 유지한 다음 각 셀을 실행합니다.

      주의

      계속하기 전에 Llama 2 라이선스 계약 섹션에서 Llama2 EULA를 수락해야 합니다.

      노트북은 추론을 위해 Llama 2all-MiniLM-L6-v2 Models이라는 두 모델을 ml.g5.2xlarge에 배포합니다.

      모델을 배포하고 엔드포인트를 만드는 데 시간이 걸릴 수 있습니다.

  4. 기본 노트북 열기

    JupyterLab에서 터미널을 열고 다음 명령을 실행합니다.

    cd .. wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb

    JupyterLab 의 왼쪽 패널에 추가 Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb 노트북이 표시됩니다.

  5. PySpark 커널 선택

    Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb 노트북을 열고 SparkMagic PySpark 커널을 사용하고 있는지 확인합니다. 노트북의 오른쪽 상단에서 커널을 전환할 수 있습니다. 현재 커널 이름을 선택하여 커널 선택 모달을 연 다음 SparkMagic PySpark를 선택합니다.

  6. 클러스터에 노트북 연결
    1. 노트북 오른쪽 상단에서 클러스터를 선택합니다. 이 작업을 수행하면 액세스 권한이 있는 실행 중인 모든 클러스터가 나열된 모달 창이 열립니다.

    2. 클러스터를 선택하고 연결을 선택합니다. 새 자격 증명 유형 선택 모달 창이 열립니다.

    3. 자격 증명 없음을 선택한 다음 연결을 선택합니다.

      JupyterLab 노트북에 대한 Amazon EMR 자격 증명 선택을 보여주는 모달입니다.
    4. 노트북 셀이 자동으로 채워지고 실행됩니다. 노트북 셀은 Amazon EMR 클러스터에 연결하는 기능을 제공하는 sagemaker_studio_analytics_extension.magics 확장을 로드합니다. 그런 다음 %sm_analytics 매직 명령을 사용하여 Amazon EMR 클러스터 및 Spark 애플리케이션에 대한 연결을 시작합니다.

      참고

      Amazon EMR 클러스터에 대한 연결 문자열에 인증 유형이 None으로 설정되어 있는지 확인합니다. 이는 다음 예에서 --auth-type None 값으로 표시됩니다. 필요한 경우 필드를 수정할 수 있습니다.

      %load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --verify-certificate False --cluster-id your-cluster-id --auth-type None --language python
    5. 연결을 성공적으로 설정하면 연결 셀 출력 메시지에 클러스터 ID, YARN 애플리케이션 ID, Spark 작업을 모니터링하기 위한 Spark UI 링크를 포함한 SparkSession 세부 정보가 표시됩니다.

Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb 노트북을 사용할 준비가 되었습니다. 이 예시 노트북은 LangChain 및 OpenSearch를 사용하여 RAG 시스템을 구축하기 위해 분산 PySpark 워크로드를 실행합니다.

4단계: AWS CloudFormation 스택 정리

완료 후에는 두 엔드포인트를 종료하고 AWS CloudFormation 스택을 삭제하여 요금이 지속적으로 발생하는 것을 방지해야 합니다. 스택을 삭제하면 스택에서 프로비저닝한 모든 리소스가 정리됩니다.

AWS CloudFormation 스택 작업을 마쳤을 때 스택을 삭제하는 방법
  1. AWS CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation)로 이동합니다.

  2. 삭제할 스택을 선택합니다. 이름으로 검색하거나 스택 목록에서 찾을 수 있습니다.

  3. 삭제 버튼을 클릭하여 스택 삭제를 완료한 다음 삭제를 다시 클릭하여 스택에서 만든 모든 리소스가 삭제됨을 확인합니다.

    스택 삭제가 완료될 때까지 기다립니다. 몇 분 정도 걸릴 수 있습니다. AWS CloudFormation은 스택 템플릿에 정의된 모든 리소스를 자동으로 정리합니다.

  4. 스택에서 만든 모든 리소스가 삭제되었는지 확인합니다. 예를 들어 남은 Amazon EMR 클러스터가 있는지 확인합니다.

모델의 API 엔드포인트를 제거하는 방법
  1. SageMaker 콘솔(https://console.aws.amazon.com/sagemaker/)로 이동합니다.

  2. 탐색 창에서 추론을 선택하고 엔드포인트를 선택합니다.

  3. hf-allminil6v2-embedding-ep 엔드포인트를 선택한 다음 작업 드롭다운 목록에서 삭제를 선택합니다. meta-llama2-7b-chat-tg-ep 엔드포인트에 대해 단계를 반복합니다.