Amazon Web Services 한국 블로그

업스테이지 Solar 모델, Amazon SageMaker JumpStart 정식 출시

Amazon SageMaker JumpStart를 사용하는 고객은 이제 Upstage에서 개발한 Solar 파운데이션 모델을 사용할 수 있습니다. Solar 모델은 Amazon SageMaker로 100% 사전 훈련된 대규모 언어 모델(LLM)입니다. 이 모델은 작은 크기지만, 강력하며 언어, 도메인 및 작업 전반에 걸쳐 다용도로 사용할 수 있도록 목적에 맞게 훈련되었습니다.

이제 SageMaker JumpStart 내에서 Solar Mini ChatSolar Mini Chat – Quant 등의 사전 훈련 모델을 사용할 수 있습니다. SageMaker JumpStart는 기계학습(ML)을 빠르게 시작하는 데 도움이 되는 기본 제공 알고리즘, 파운데이션 모델에 대한 액세스를 제공하는 SageMaker의 기계 학습(ML) 허브입니다.

이 글에서는 SageMaker JumpStart를 통해 Solar 모델을 검색하고 배포하는 방법을 안내합니다.

Solar 모델 소개

Solar는 영어와 한국어를 지원하는 경량의 강력한 모델입니다. 특히 다중 턴 채팅 목적에 맞게 미세 조정되어 광범위한 자연어 처리 작업에서 향상된 성능을 보여줍니다.

Solar Mini Chat 모델은 Solar 10.7B 모델을 기반이며, 이 모델은 32층 Llama 2 구조를 기반으로 하는 언어 모델로서, 이는 Llama 2 아키텍처와 호환되는 Mistral 7B의 사전 훈련된 가중치로 초기화됩니다. 이러한 미세 조정을 통해 확장된 대화를 보다 효과적으로 처리할 수 있는 기능을 갖추게 되므로, 특히 대화형 응용 프로그램에 적합합니다. 깊이별 스케일링과 지속적인 사전 학습으로 구성된 Depth up scaling (DUS)이라는 스케일링 방법을 사용합니다. DUS를 사용하면 Mixture of experts (MoE) 같은 다른 확장 방법보다 작은 모델을 훨씬 더 간단하고 효율적으로 확대할 수 있습니다.

2023년 12월, Solar 10.7B 모델은 Hugging Face의 Open LLM Leaderboard 정상에 도달하여 반향을 일으켰습니다. 눈에 띄게 더 적은 매개변수를 사용하는 Solar 10.7B는 GPT-3.5에 필적하는 응답을 제공하지만 2.5배 더 빠릅니다. Open LLM 리더보드 1위를 차지한 것 외에도 Solar 10.7B는 특정 도메인 및 작업에 대한 목적에 맞게 훈련된 모델을 통해 GPT-4보다 성능이 뛰어납니다.

다음 그림에서는 이러한 지표 중 일부를 보여 줍니다.

출처: https://www.upstage.ai/solar-llm

Amazon SageMaker JumpStart를 사용하면 Solar 10.7B 기반의 사전 훈련된 모델인 Solar Mini Chat과 Solar Mini Chat의 경량(Quant) 버전을 배포할 수 있으며, 이는 영어와 한국어의 채팅 애플리케이션에 최적화되어 있습니다. Solar Mini Chat은 한국어 뉘앙스에 대한 고급 이해를 제공하여 채팅 환경에서 사용자 상호 작용을 크게 향상시킵니다. 사용자 입력에 대한 정확한 응답을 제공하여 영어 및 한국어 채팅 애플리케이션에서 보다 명확한 의사소통과 보다 효율적인 문제 해결을 보장합니다.

SageMaker JumpStart에서 Solar 모델 시작하기

Solar 모델을 시작하려면 완전관리형 ML 허브 서비스인 SageMaker JumpStart를 사용하여 사전 구축된 ML 모델을 프로덕션에 바로 사용할 수 있는 호스팅 환경에 배포할 수 있습니다. 웹 기반 통합 개발 환경(IDE)인 Amazon SageMaker Studio에서 SageMaker JumpStart를 통해 Solar 모델에 액세스할 수 있습니다. 이 환경에서는 데이터 준비부터 모델 구축, 훈련 및 배포에 이르기까지 모든 ML 개발 단계를 수행하기 위해 특별히 제작된 도구에 액세스할 수 있습니다.

SageMaker Studio용 AWS Management Console의 왼쪽 창에서 JumpStart를 선택하고 Upstage를 선택합니다. Upstage의 Solar 모델을 찾으려면 검색창에 ‘Solar’를 입력하세요.


이제 Soar Mini Chat – Quant 모델을 배포해 보겠습니다. 모델 카드를 선택하면 라이선스, 학습에 사용되는 데이터, 모델 사용 방법 등 모델에 대한 세부 정보를 볼 수 있습니다. 또한 예제 페이로드로 추론을 테스트할 수 있는 랜딩 페이지로 이동하는 배포(Deploy) 버튼도 있습니다.

모델을 배포하려면, AWS Marketplace 구독이 필요합니다. 이미 이 모델을 구독하고 제품 사용 승인을 받은 경우, 모델을 직접 배포할 수 있습니다.

이 모델을 구독하지 않은 경우 구독(Subscribe)을 선택하고 AWS Marketplace로 이동하여 가격 조건과 최종 사용자 라이선스 계약(EULA)을 검토하고 제안 수락(Accept Offer)을 선택합니다.

모델을 구독한 후 인스턴스 유형 및 초기 인스턴스 수와 같은 배포 리소스를 선택하여 SageMaker 엔드포인트에 모델을 배포할 수 있습니다. Solar Mini Chat – Quant 모델을 추론하는 더 저렴한 옵션으로 ml.g5.2xlarge 인스턴스를 선택할 수 있습니다.  배포(Deploy)를 선택하고 모델 추론을 위한 엔드포인트가 생성될 때까지 기다립니다.

SageMaker 엔드포인트가 성공적으로 생성되면 다양한 SageMaker 애플리케이션 환경을 통해 간단히 테스트할 수 있습니다.

SageMaker Studio JupyterLab에서 Solar 모델용 코드 실행

Amazon SageMaker Studio는 완전 관리형 노트북 제품을 강화하는 기능 세트인 JupyterLab을 비롯한 다양한 애플리케이션 개발 환경을 지원합니다. 여기에는 몇 초 만에 시작되는 커널, 널리 사용되는 데이터 과학, ML 프레임워크 및 고성능 프라이빗 블록 스토리지로 사전 구성된 런타임이 포함되어 있습니다. 자세한 내용은 SageMaker JupyterLab을 참조하십시오.

JupyterLab 애플리케이션을 실행하는 데 필요한 스토리지 및 컴퓨팅 리소스를 관리하는 JupyterLab 공간을 Studio 내에 생성합니다.

JumpStart에서 Solar 모델 배포를 보여주는 코드와 배포된 모델을 사용하는 방법은 GitHub 노트북에서 찾을 수 있습니다. 이제 SageMaker JumpStart를 사용하여 모델을 배포할 수 있습니다. 다음 코드는 Solar Mini Chat – Quant 추론 엔드포인트에 기본 인스턴스 ml.g5.2xlarge를 사용합니다.

Solar 모델은 OpenAI의 채팅 완료 엔드포인트와 호환되는 요청/응답 페이로드를 지원합니다. Python을 사용하여 단일 턴 또는 다중 턴 채팅 예제를 테스트할 수 있습니다.

# Get a SageMaker endpoint
sagemaker_runtime = boto3.client("sagemaker-runtime")
endpoint_name = sagemaker.utils.name_from_base(model_name)

# Multi-turn chat prompt example
input = {
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Can you provide a Python script to merge two sorted lists?"
      },
      {
        "role": "assistant",
        "content": """Sure, here is a Python script to merge two sorted lists:

                    ```python
                    def merge_lists(list1, list2):
                        return sorted(list1 + list2)
                    ```
                    """
      },
      {
        "role": "user",
        "content": "Can you provide an example of how to use this function?"
      }
    ]
}

# Get response from the model
response = sagemaker_runtime.invoke_endpoint(EndpointName=endpoint_name, ContentType='application/json', Body=json.dumps (input))
result = json.loads(response['Body'].read().decode())
print result

이제 Solar Mini Chat 모델을 사용하여 실시간 추론을 성공적으로 수행할 수 있습니다.

리소스 정리하기

엔드포인트를 테스트한 후에는 SageMaker 추론 엔드포인트를 삭제하고 모델을 삭제하여 요금이 발생하지 않도록 하십시오.

또한 SageMaker Studio Jupyter Lab의 노트북에서 엔드포인트와 모드를 삭제하는 코드를 실행합니다.

# Delete the endpoint 
model.sagemaker_session.delete_endpoint(endpoint_name)
model.sagemaker_session.delete_endpoint_config(endpoint_name)

# Delete the model
model.delete_model()

자세한 내용은 엔드포인트 및 리소스 삭제를 참조하세요. 또한 더 이상 필요하지 않은 SageMaker Studio 리소스를 종료할 수 있습니다.

결론

이 게시물에서는 SageMaker Studio에서 Upstage의 Solar 모델을 시작하고 추론을 위해 모델을 배포하는 방법을 보여주었습니다. 또한 SageMaker Studio Jupyter Lab에서 Phtyon 샘플 코드를 실행하는 방법도 보여 주었습니다.

Solar 모델은 이미 사전 훈련되어 있으므로 훈련 및 인프라 비용을 낮추고 생성 AI 애플리케이션에 대한 사용자 정의를 가능하게 할 수 있습니다.

바로 SageMaker JumpStart console 또는 SageMaker Studio console을 사용해서 직접 시도해 보시기 바랍니다. 아래 동영상인 Amazon SageMaker로 Solar LLM 사용하기에서 자세한 설명을 보실 수 있습니다.

이 지침은 정보 제공의 목적으로만 제공됩니다. 귀하는 여전히 독자적인 평가를 수행해야 하며, 귀하가 고유한 특정 품질 관리 관행 및 표준과 귀하, 귀하의 콘텐츠 및 콘텐츠에 적용되는 현지 규칙, 법률, 규정, 라이선스 및 이용 약관을 준수하도록 조치를 취해야 합니다. 본 지침에 AWS는 본 지침에 언급된 타사 모델에 대한 통제권이나 권한이 없으며, 타사 모델이 안전하고, 바이러스가 없으며, 작동 가능하거나 귀하의 운영 환경 및 표준과 호환된다는 진술이나 보증을 하지 않습니다. AWS는 본 지침의 정보가 특정 결과 또는 결과를 초래할 것이라는 어떠한 진술, 보증 또는 보장도 하지 않습니다.

– Channy(윤석찬), AWS 수석 테크에반젤리스트
– 이활석, 업스테이지 최고 기술 임원 (CTO)
– 이성혁, AWS 퍼블릭섹터 시니어 솔루션즈 아키텍트