본문 바로가기
AWS/AWS Market Place로 쉽게 Solar-Mini 사용하기

AWS Market Place로 쉽게 Solar-Mini 사용하기 - 3부: API로 모델 사용

by Pacloud 2024. 9. 23.
반응형

안녕하세요!

Solar-Mini 사용 가이드 시리즈의 세 번째 파트입니다. 이번에는 AWS CloudShell을 이용하여 배포한 Solar-Mini 모델을 API로 호출하는 방법을 알아보겠습니다

AWS CloudShell 소개

AWS CloudShell은 브라우저에서 직접 사용할 수 있는 클라우드 기반 셸 환경입니다. 별도의 설치 없이 AWS 리소스를 관리할 수 있어, 빠르게 스크립트를 실행하거나 API를 테스트하는 데 매우 유용합니다.

요약: API로 Solar-Mini 모델 사용하기

  1. 모델에 전송할 입력 데이터를 준비합니다.
  2. AWS CLI를 사용하여 모델의 엔드포인트를 호출합니다.
  3. 모델의 응답을 확인합니다.

본문: API로 Solar-Mini 모델 사용하기

1. CloudShell로 이동

  • AWS Console 검색 창에서 cloudshell을 검색 후 클릭합니다.
    • 화면 오른쪽 상단은 서울입니다.

  • CloudShell은 빠르게 AWS 리소스를 관리하거나 스크립트를 실행해야 할 때 매우 유용합니다.

  • 이제 Solar Mini Chat 모델을 호출합니다.
    • 호출 과정은 크게 세 가지로 나뉩니다.
      • 입력 데이터 준비
      • 모델 호출
      • 응답 확인
  • [입력 데이터 준비] 호출에 필요한 정보를 입력해야겠죠?
    • 아래 내용 전체를 복사해서 붙여넣기해 주세요. 아래는 예시 프롬프트입니다.
input_data=$(cat <<EOF
{
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "두 개의 정렬된 리스트를 병합하는 파이썬 코드를 작성해. 각 라인마다 자세한 설명을 함께 제공해"
      }
    ],
    "temperature": 0.7
}
EOF
)

 

  • 혹시 모를 악성 스크립트 때문에 확인창이 열리는 것을 볼 수 있습니다. 붙여넣기 버튼을 클릭하고 엔터를 입력하세요.

  • [모델 호출하기] 이어서 아래 전체를 복사해서 붙여넣기 해주세요.
    • aws cli를 통해 앞서 만든 인스턴스의 엔드포인트를 호출합니다. AWS CloudShell에 aws cli가 이미 설치되어 있어 바로 사용할 수 있습니다. 엔드포인트 이름(Endpoint-Solar-Mini-Chat-1)과 리전(ap-northeast-2, 서울)이 제대로 입력되어 있습니다. 마지막으로 결과는 result.out이라는 파일에 저장됩니다.
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name Endpoint-Solar-Mini-Chat-1 \
  --cli-binary-format raw-in-base64-out \
  --body "$input_data" \
  --content-type application/json \
  --region ap-northeast-2 \
  result.out

  • 실제로 LLM을 호출하기 때문에 모델이 답변할 때까지 약간의 시간이 소요됩니다. 아래 메시지가 출력되면 모델의 답변이 도착했다는 의미입니다.

  • [응답 확인하기] 깔끔한 출력을 위해서 아래 명령어를 복사하여 입력합니다.
    • 모델의 응답뿐만 아니라 여러 메타데이터(토큰 수, 타임스탬프 등)도 함께 출력되는 걸 확인할 수 있습니다.
 cat result.out | jq '.'

  • 응답 내용 자체만 확인하려면 아래 명령어를 복사하여 입력합니다.
cat result.out | jq -r '.choices[0].message.content'

함수 시작하자마자 result = [ ] 을 추가해줘야 하지만, 그 외에는 훌륭한 코드

추가 테스트

다양한 프롬프트로 모델을 테스트해보세요. 입력 데이터의 'content' 부분을 수정하여 다른 질문을 해볼 수 있습니다.

1. 입력 데이터 준비: 아래 두 번째 content를 수정하세요.

input_data=$(cat <<EOF
{
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "여기에 프롬프트를 입력합니다."
      }
    ],
    "temperature": 0.7
}
EOF
)

2. 모델 호출

aws sagemaker-runtime invoke-endpoint \
  --endpoint-name Endpoint-Solar-Mini-Chat-1 \
  --cli-binary-format raw-in-base64-out \
  --body "$input_data" \
  --content-type application/json \
  --region ap-northeast-2 \
  result.out

3. 결과 확인

cat result.out | jq -r '.choices[0].message.content'

 

다음 단계

이렇게 해서 AWS Marketplace를 통해 Solar-Mini를 구독하고, 배포하고, 사용하는 전체 과정을 살펴보았습니다. 이 강력한 AI 모델을 여러분의 프로젝트에 활용해 보세요!

다음 포스트에서는 Streamlit을 활용하여 간단한 챗봇을 구현해 보겠습니다.

AWS Market Place로 쉽게 Solar-Mini 사용하기 - 4부: Streamlit Chatbot 구현

 

혹시 여기서 실습을 중단하고 싶으시면 불필요한 과금 방지를 위해 배포한 모델을 꼭 삭제해야 합니다. 아래 포스트를 참고해 주세요.

AWS Market Place로 쉽게 Solar-Mini 사용하기 - 정리: 엔드포인트 삭제