Amazon Web Services 한국 블로그

Amazon Bedrock Model Distillation 출시: 더 빠르고 비용 효율적이며 매우 정확한 모델 구축 (미리보기)

오늘 Amazon Bedrock Model Distillation의 출시를 미리 보기로 발표합니다. 이를 통해 교사(Teacher)모델이라고 하는 큰 파운데이션 모델(FM)의 응답을 생성하여 구체적인 사용 사례에 대한 증류된 모델을 만드는 프로세스를 자동화하는 동시에 생성된 응답을 통해 학생(Student) 모델이라고 하는 더 작은 FM을 미세 조정합니다. 데이터 합성 기법을 사용하여 교사 모델의 응답을 개선합니다. 그런 다음 Amazon Bedrock에서는 추론용 최종 증류 모델을 호스팅하여 사용자의 사용 사례에 맞게 교사 모델에 유사한 정확도로 더욱 빠르면서도 비용 효율이 뛰어난 모델을 제공합니다.

고객은 자신의 생성형 AI 애플리케이션에 Amazon Bedrock의 가장 강력하고 정확한 FM을 사용하게 되어 기대 만발입니다. 하지만 사용 사례 중에서 이러한 모델과 관련된 지연 시간이 생각보다 긴 경우도 있습니다. 또한, 고객은 생성형 AI 애플리케이션을 사용자 상호 작용 수십억 건에 적용하면서 가격 대비 성능이 더 나아지길 원하고 있습니다. 사용 사례의 지연 시간을 줄이면서도 가격 효율성은 제고하기 위해 고객들은 소규모 모델에 눈을 돌리고 있습니다. 하지만 사용 사례 중에는 소규모 모델로는 최적의 정확도를 확보할 수 없는 경우도 있습니다. 모델을 미세 조정하려면 고객의 사용 사례에 맞춰 모델 정확도를 높일 고품질의 레이블 지정 데이터 세트를 만들 수 있는 추가 기술이 필요합니다.

Amazon Bedrock Model Distillation을 사용하면 소규모 학생 모델의 정확도를 높여 지식 이전 프로세스를 통해 더 높은 성과를 내는 교사 모델을 모방할 수 있습니다. 특정 사용 사례에 대해 기존 대형 모델에 비해 최대 5배 빠르면서도 최대 75% 저렴한 증류 모델을 만들 수 있으며, 선택한 교사 모델의 지식을 한 가족에 속한 학생 모델에 이전함으로써 검색 증강 생성(RAG) 등의 사용 사례에서도 정확도 손실을 2% 미만으로 유지할 수 있습니다.

작동 방식
Amazon Bedrock Model Distillation은 교사 모델에서 응답을 생성하고, 전용 데이터 합성을 추가하여 교사 모델의 응답 생성을 개선하며, 학생 모델을 미세 조정합니다.

Amazon Bedrock은 다양한 데이터 합성 기술을 사용하여 교사 모델의 응답 생성을 개선하고 고품질의 미세 조정 데이터 세트를 생성합니다. 이러한 기술은 구체적인 사용 사례에 맞게 조정됩니다. 예를 들어 Amazon Bedrock은 유사한 프롬프트를 생성하여 학습 데이터 세트를 보강하면서 미세 조정 데이터 세트의 양을 효과적으로 늘릴 수 있습니다.

아니면, 제공된 프롬프트-응답 쌍을 모범 사례로 사용하여 고품질 교사 응답을 생성할 수 있습니다. 미리 보기에서 Amazon Bedrock Model Distillation은 Anthropic 모델, Meta 모델, 아마존 모델을 지원합니다.

Amazon Bedrock Model Distillation 시작하기
시작하려면 Amazon Bedrock 콘솔로 이동하여 왼쪽 탐색 창에서 사용자 지정 모델을 선택합니다. 이제 미세 조정, 증류, 지속적인 사전 학습이라는 세 가지 사용자 지정 방법이 있습니다.

증류 작업 생성을 선택하여 모델 증류를 사용해 모델 미세 조정을 시작합니다.

증류된 모델 이름과 작업 이름을 입력합니다.

그런 다음 교사 모델을 선택하고 선택한 교사 모델에 기반하여 사용 가능한 학생 모델 목록에서 학생 모델을 선택합니다. 교사와 학생 모델은 같은 가족에 속해 있어야 합니다. 예를 들어 교사 모델로 Meta Llama 3.1 405B 수업 모델을 선택한 경우 학생 모델로는 Llama 3.1 70B 또는 8B 수업 모델만 선택할 수 있습니다.

합성 데이터를 생성하려면 교사 모델에서 생성된 응답을 확인하기 위한 추론 파라미터인 최대 응답 길이 값을 설정합니다. Amazon Simple Storage Service(Amazon S3) 버킷의 증류 입력 데이터 세트를 선택합니다. 이 입력 데이터 세트는 사용 사례에 맞는 프롬프트 또는 모범 프롬프트-응답 쌍을 제공합니다. 입력 파일은 모델에 따른 데이터셋 형식이어야 합니다. 자세한 내용은 Amazon Bedrock 설명서의 데이터 세트 준비를 참조하세요.

그런 다음 증류 출력 메트릭 데이터와 사용자를 대신하여 Amazon S3에 쓸 수 있는 권한을 저장할 Amazon S3 위치를 설정한 후 증류 작업 생성을 선택합니다.

증류 작업이 제대로 생성되면 작업 탭의 학습 진행 상황을 추적할 수 있고 해당 모델을 모델 탭에서 사용할 수 있게 됩니다.

Amazon Bedrock Model Distillation으로 프로덕션 데이터 사용
프로덕션 데이터를 증류에 재사용하여 교사 응답을 다시 사용하는 과정을 생략하려면 Amazon Bedrock에서 사용되는 AWS 계정으로 모든 호출에 대한 호출 로그, 모델 입력 데이터, 모델 출력 데이터를 수집하는 모델 호출 로그를 활성화하면 됩니다. 요청 메타데이터를 추가하면 나중에 호출 로그 필터링이 쉬워집니다.

request_params = {
    'modelId': 'meta.llama3-1-405b-instruct-v1:0',
    'messages': [
        {
            'role': 'user',
            'content': [
                {
                    "text": "생성형 AI의 모델 증류가 무엇인가요?"
                }
            ]
        }
    },
    'requestMetadata': {
    "ProjectName": "myLlamaDistilledModel",
    "CodeName": "myDistilledCode"
    }
}
response = bedrock_runtime_client.converse(**request_params)
pprint(response)
---
'output': {'message': {'content': [{'text': '\n''\n'
    '모델 증류한 생성형 AI의 기술 가운데 더 작고'
    '더 효율적인 모델('"학생")을 학습시켜 더 크고 '
    '더 복잡한 모델'("교사")의 행동을 모방하게 하는 것과 관련 있습니다. 모델 증류의 목표는'
    '교사 모델의 지식과 기능을 학생 모델로 이전함으로써'
    '학생이 주어진 작업을 동일하게 잘 수행하면서도 더 적은 연산'
    '리소스와 메모리를 사용할 수 있도록 하는 것입니다.\n'
    '\n'}]
    }
}

다음으로, Amazon Bedrock Model Distillation을 사용할 때는 사용 사례에 적당한 정확도를 갖춘 교사 모델과 미세 조정하려는 학생 모델을 선택합니다. 그런 다음 호출 로그를 읽기 위한 Amazon Bedrock 액세스 권한을 부여합니다. 여기서는 요청 메타데이터 필터를 지정하여 사용 사례에 유효한 특정 로그만 읽고 학생 모델을 미세 조정할 수 있습니다. Amazon Bedrock이 호출 로그의 응답을 재사용하도록 하려면 증류를 위해 선택한 교사 모델과 호출 로그에 사용되는 모델이 동일해야 합니다.

증류된 모델을 통한 추론
증류된 모델을 사용하기 전에 Amazon Bedrock의 프로비저닝된 처리량을 구매한 다음, 그 결과 증류된 모델을 추론에 사용해야 합니다. 프로비저닝된 처리량을 구매하는 경우 약정 기간을 선택하고 모델 유닛 수를 선택하면 시간당, 일별, 월별 추정 비용을 확인할 수 있습니다.

AWS API, AWS SDK, AWS Command Line Interface(AWS CLI) 중 하나를 사용하여 모델 증류 작업을 완료할 수 있습니다. AWS CLI 사용에 대해 자세히 알아보려면 AWS 설명서의 모델 사용자 지정을 위한 코드 샘플을 참조하세요.

알아야 할 사항
다음은 알아두어야 할 몇 가지 주요 사항입니다.

  • 모델 증류의 목표는 학생 모델의 정확도를 높여 특정 사용 사례에 맞는 교사 모델의 성능에 부합하도록 하는 것입니다. 모델 증류를 시작하기 전에 사용 사례에 따른 다양한 교사 모델을 평가한 다음 사용 사례에 적합한 교사 모델을 선택하는 것이 좋습니다.
  • 교사 모델 정확도가 수용 가능한 것으로 판단되는 사용 사례에 맞게 프롬프트를 최적화하는 것이 좋습니다. 이러한 프롬프트를 증류 입력 데이터로 제출합니다.
  • 미세 조정할 해당 학생 모델을 선택하려면 사용 사례에 맞는 다양한 학생 모델 옵션의 지연 시간 프로파일을 평가하세요. 최종 증류된 모델의 지연 시간 프로파일은 선택한 학생 모델의 그것과 동일합니다.
  • 특정 학생 모델이 이미 사용 사례에 적합하다면 증류된 모델을 만드는 대신 해당 학생 모델을 그대로 사용하는 것이 좋습니다.

평가판 사용해 보기
Amazon Bedrock Model Distillation은 미국 동부(버지니아 북부)와 미국 서부(오리건) AWS 리전에서 사용할 수 있습니다. 향후 업데이트 여부는 전체 리전 목록을 확인하세요. 자세한 내용은 Amazon Bedrock 설명서의 모델 증류를 참조하세요.

교사 모델별로 합성 데이터를 생성하는 데 드는 비용과 모델 증류 중에 학생 모델을 미세 조정하는 데 드는 비용을 지불합니다. 증류된 모델을 만든 후에는 증류된 모델을 보관하는 데 드는 비용을 매월 지불합니다. 증류된 모델의 추론에 대해서는 모델 단위별로 시간당 프로비저닝된 처리량에 따라 요금이 부과됩니다. 자세한 내용은 Amazon Bedrock 요금 페이지를 참조하세요.

지금 바로 Amazon Bedrock 콘솔에서 Amazon Bedrock Model Distillation을 사용해 보고, Amazon Bedrock용 AWS re:Post에 피드백을 보내거나 일반적인 AWS Support 문의를 통해 피드백을 보내 주세요.

Channy