AWS 기술 블로그

Amazon Bedrock에서 DeepSeek-R1 Distilled Llama 모델 배포하기

오픈 파운데이션 모델(Open Foundation Models, FM)생성형AI 혁신의 초석이 되어, 조직들이 비용과 배치 전략을 통제하면서 AI 애플리케이션을 구축하고 맞춤화할 수 있도록 해줍니다. AI 커뮤니티는 공개적으로 이용 가능한 고품질의 모델을 제공함으로써, 개발자와 최종 사용자 모두에게 이익이 되는 신속한 반복, 지식 공유, 비용 효율적인 솔루션을 촉진합니다. AI 기술 발전에 주력하는 연구 회사인 DeepSeek AI는 이 생태계에 크게 기여하는 기업으로 부상했습니다. DeepSeek AI의 DeepSeek-R1 모델은 경쟁력 있는 성능과 효율성을 유지하면서 코드 생성부터 일반 추론에 이르기까지 광범위한 작업을 처리하도록 설계된 대규모 언어 모델(LLM) 제품군을 대표합니다.

Amazon Bedrock 사용자 지정 모델을 사용하면 단일 서버리스 통합 API를 통해 기존 FM과 함께 사용자 정의 모델을 가져와서 사용할 수 있습니다. 기본 인프라를 관리할 필요 없이 필요할 때 사용자 정의 모델을 가져와서 사용할 수 있습니다. 지원되는 사용자 정의 모델을 네이티브 Bedrock 도구 및 지식 기반, 가드레일, 에이전트와 같은 기능과 통합하여 생성형 AI 애플리케이션 개발을 가속화 할 수 있습니다.

이번 게시글에서는 Amazon Bedrock 사용자 지정 모델을 통해 DeepSeek-R1의 정제된 버전을 배포하는 방법을 살펴봅니다. 이를 통해 안전하고 확장 가능한 AWS 인프라 내에서 최첨단 AI 기능을 사용하고자 하는 조직이 효과적인 비용으로 액세스할 수 있도록 합니다.

DeepSeek-R1 distilled 변형

DeepSeek-R1을 토대로, DeepSeek AI는 Meta의 Llama와 Qwen 아키텍처를 기반으로 1.5~700억 개의 파라미터에 이르는 일련의 정제된 모델을 만들었습니다. 추출 과정은 더 작은 효율적인 모델을 훈련시켜서 더 큰 DeepSeek-R1 모델의 행동과 추론 패턴을 모방하는 과정을 포함합니다. 이때, 더 큰 모델을 학습자(Teacher Model)로 활용하여 6,710억 개의 매개변수 모델의 지식과 기능을 보다 간결한 구조로 이전하는 것입니다. 그 결과로 탄생한 모델들, 예를 들어 DeepSeek-R1-Distill-Llama-8B(Llama-3.1-8B를 기반 모델로 함)와 DeepSeek-R1-Distill-Llama-70B(Llama-3.3-70B-Instruct를 기반 모델로 함)는 성능과 자원 요구 사항 사이에서 서로 다른 절충안을 제공합니다. 추상화된 모델은 원래의 671B 모델에 비해 추론 능력이 약간 떨어질 수 있지만, 추론 속도를 크게 향상시키고 계산 비용을 줄여줍니다. 예를 들어, 8B 버전과 같은 작은 추상화 모델은 요청을 훨씬 더 빠르게 처리하고 더 적은 자원을 소비할 수 있으므로 생산 배포에 더 비용 효율적입니다. 반면, 70B 모델과 같은 큰 추상화 버전은 원래의 성능에 가깝게 유지하면서 의미 있는 효율성 향상을 제공합니다.

솔루션 개요

이 게시글에서는 Amazon Bedrock 사용자 지정 모델을 사용하여 DeepSeek-R1 모델의 정제된 버전을 배포하는 방법을 보여줍니다. 성능과 리소스 효율성 간의 최적의 균형을 제공하는 현재 지원되는 DeepSeek-R1-Distill-Llama-8B 및 DeepSeek-R1-Distill-Llama-70B 변형을 가져오는 데 중점을 둡니다. Amazon Simple Storage Service (Amazon S3) 또는 Amazon SageMaker AI 모델 저장소에서 이러한 모델을 가져와서 Amazon Bedrock을 통해 완전 관리형 서버리스 환경에 배치할 수 있습니다. 다음 다이어그램은 엔드투엔드 흐름을 보여줍니다.


이 워크플로에서, Amazon S3에 저장된 모델 아티팩트는 Amazon Bedrock으로 가져오기 되고, 그 다음에 Amazon Bedrock이 모델의 배치와 확장을 자동으로 처리합니다. 이 서버리스 접근 방식은 인프라 관리의 필요성을 제거하는 동시에 기업 수준의 보안과 확장성을 제공합니다.

Amazon Bedrock 콘솔을 사용하여 그래픽 인터페이스(GUI)를 통해 배치하고 이 포스팅의 지침을 따르거나, 또는 다음의 Jupyter Notebook파일을 활용하여 Amazon Bedrock SDK를 통해 프로그래밍 방식으로 배치할 수 있습니다.

솔루션 사전 조건

이 솔루션을 위해선 다음과 같은 사전 조건이 충족되어야 합니다.

모델 패키지 준비

모델 패키지를 준비하려면 다음 단계를 완료하십시오.

  1. 배포하려는 모델에 따라 다음 링크 중 하나에서 Hugging Face에서 DeepSeek-R1-Distill-Llama 모델 아티팩트를 다운로드하세요.
    1. https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-8B/tree/main
    2. https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-70B/tree/main

더 자세한 정보를 원하시면, Hugging Face의 모델 다운로드 또는 허브에서 파일 다운로드 방법을 참고하시기 바랍니다.

모델 패키지 준비를 위해선 일반적으로 아래와 같은 파일이 필요합니다.

  • 모델 구성 파일: config.json
  • 토큰화 파일: tokenizer.json, tokenizer_config.json, tokenizer.mode
  • 모델 가중치 파일(.safetensors 형식)

2. Amazon Bedrock을 사용하려는 AWS 리전과 동일한 AWS 리전에 있는 S3 버킷의 폴더에 이 파일들을 업로드합니다. 사용하는 S3 경로를 기록해 놓으세요.

모델 등록

모델을 등록하려면 아래의 단계를 완료하세요.

  1. Amazon Bedrock 콘솔의 탐색 창에서 Foundation Models(파운데이션 모델) 아래에 있는 Imported Models(가져온 모델)을 선택합니다.
  2. Import Model(모델 가져오기)를 선택합니다.
  3. Model name(모델 이름)에 모델의 이름을 입력합니다(가져온 모델을 추적하기 위해 이름에 버전 관리 체계를 사용하는 것이 좋습니다).
  4. Import job name에 가져온 작업의 이름을 입력합니다.
  5. Model import settings(모델 가져오기 설정)에 가져오기 소스로 Amazon S3 Bucket(Amazon S3 버킷)을 선택하고 앞서 기록한 S3 경로를 입력합니다(전체 경로를 s3://<사용자 버킷 이름>/folder-with-model-artifacts/ 형식으로 입력하세요).
  6. Encryption의 경우, 선택적으로 암호화 설정을 사용자 정의하도록 선택합니다.
  7. Service access(서비스 액세스) 역할의 경우, 새 서비스 역할 생성 및 사용을 하거나 기존 서비스 역할 사용하도록 선택합니다.
  8. Import model(모델 가져오기)를 선택합니다.


모델을 가져오는 데 걸리는 시간은 가져오는 모델에 따라 달라집니다(예를 들어, Distill-Llama-8B 모델은 완료하는 데 5-20분이 걸릴 수 있습니다).
단계별 가이드를 보려면 이 데모 영상을 참고하세요.

가져온 모델 테스트

모델을 가져온 후에는 Amazon Bedrock Playgrounds(플레이그라운드) 를 사용하거나 Amazon Bedrock API를 통해 직접 테스트할 수 있습니다. 플레이그라운드를 사용하려면 다음 단계를 완료하십시오.

  1. Amazon Bedrock 콘솔의 탐색 창에서 Playgrounds(플레이그라운드) 아래의 Chat / Text를 선택합니다.
  2. 모델 선택기에서 가져온 모델 이름을 선택합니다.
  3. 필요에 따라 추론 매개변수를 조정하고 테스트 프롬프트를 작성합니다. 예를 들면 다음과 같습니다.
    <|begin▁of▁sentence|><|User|>Given the following financial data: - Company A's revenue grew from $10M to $15M in 2023 - Operating costs increased by 20% - Initial operating costs were $7M Calculate the company's operating margin for 2023. Please reason step by step, and put your final answer within \\boxed{}<|Assistant|>

Playgrounds(플레이그라운드)에서 가져온 모델을 사용하기 때문에 DeepSeek 모델의 문맥을 적절하게 구성하기 위해 “beginning_of_sentence”와 “user/assistant” 태그를 포함해야 합니다. 이 태그는 모델이 대화의 구조를 이해하고 보다 정확한 응답을 제공하도록 도와줍니다. Jupyter Notebook파일에서 프로그래밍 방식을 따르고 있다면, 모델 구성으로 이 작업이 자동으로 처리됩니다.

4. 제공된 모델 응답과 지표를 검토합니다.

참고: 모델을 처음 호출할 때 ModelNotReadyException 오류가 발생하면 SDK가 자동으로 지수 백오프를 통해 요청을 재시도합니다. 복구 시간은 온디맨드 인스턴스 플릿 크기와 모델 크기에 따라 다릅니다. AWS SDK for Python(Boto3) Config 객체를 사용하여 재시도 동작을 사용자 지정할 수 있습니다. 자세한 내용은 ModelNotReadyException 처리하기를 참조하십시오.

모델을 가져올 준비가 되면 이 단계별 가이드 데모 영상를 통해 시작하는 데 도움을 받으십시오.

비용

사용자 지정 모델 가져오기를 사용하면 지원되는 아키텍처 내에서 사용자 지정 모델 가중치를 Amazon Bedrock 내에서 사용할 수 있으며, 온디맨드 모드를 통해 Amazon Bedrock에서 호스팅되는 FM과 함께 완전 관리 방식으로 제공됩니다. 사용자 지정 모델 가져오기는 모델 가져오기에 대한 요금을 부과하지 않으며, 두 가지 요소(활성 모델의 복제본 수, 활동 기간)에 따라 추론에 대한 요금이 부과됩니다.

청구는 각 모델 복제본의 첫 번째 성공적인 호출부터 5분 단위로 이루어집니다. 분당 모델 복제본당 가격은 아키텍처, 컨텍스트 길이, 리전, 컴퓨팅 단위 버전 등의 요인에 따라 달라지며, 모델 복제본 크기에 따라 계층화됩니다. 호스팅에 필요한 사용자 지정 모델 단위는 모델의 아키텍처, 매개변수 수, 컨텍스트 길이에 따라 달라지며, Llama 3.1 8B 128K 모델의 경우 2 Unit 부터 Llama 3.1 70B 128K 모델의 경우 8 Unit까지 다양합니다.

Amazon Bedrock은 사용자의 사용 패턴에 따라 기본적으로 0~3개의 모델 복제본을 유지하는 스케일링을 자동으로 관리합니다(서비스 할당량을 통해 조정 가능함). 5분 동안 호출이 없으면 0으로 축소되고 필요할 때 다시 확장되지만, 이 과정에서 수십 초의 콜드 스타트로 인한 지연이 발생할 수 있습니다. 추론 볼륨이 지속적으로 단일 복사본 동시성 제한을 초과하면 추가 복사본이 추가됩니다. 복사본당 최대 처리량과 동시성은 입력/출력 토큰 혼합, 하드웨어 유형, 모델 크기, 아키텍처, 추론 최적화 등의 요소를 기반으로 가져오기 과정에서 결정됩니다.

다음은 가격 측정의 예시 입니다. 한 애플리케이션 개발자가 8B 파라미터 크기의 사용자 지정 Llama 3.1 유형 모델을 us-east-1 지역에서 128K 시퀀스 길이로 가져온 후 1개월 후에 모델을 삭제합니다. 이 경우 2개의 사용자 지정 모델 Unit이 필요합니다. 따라서 분당 가격은 $0.1570이고, 그 달의 모델 저장 비용은 $3.90입니다.

자세한 정보는 Amazon Bedrock 요금을 참고하세요.

벤치마크

DeepSeek은 모델 저장소에서 사용할 수 있는 원본 DeepSeek-R1과 기본 Llama 모델에 대한 DeepSeek의 정제된 모델을 비교하는 벤치마크를 발표했습니다. 벤치마크에 따르면 DeepSeek-R1-Distill-Llama-70B는 작업에 따라 원본 모델의 추론 기능의 80-90%를 유지하는 반면, 8B 버전은 리소스 요구 사항이 크게 감소한 상태에서 59-92%의 성능을 달성합니다. 두 가지 버전 모두 특정 추론 작업에서 해당 기본 라마 모델보다 개선된 모습을 보여줍니다.

기타 고려 사항

Amazon Bedrock에 DeepSeek 모델을 배치할 때는 다음 측면을 고려하십시오.

  • 모델 버전 관리는 필수적입니다. 사용자 지정 모델 가져오기는 가져올 때마다 고유한 모델을 생성하기 때문에, 모델 이름에 명확한 버전 관리 전략을 적용하여 다양한 버전과 변형을 추적할 수 있도록 하십시오.
  • 현재 지원되는 모델 형식은 Llama 기반 아키텍처에 중점을 두고 있습니다. DeepSeek-R1 정제된 버전은 뛰어난 성능을 제공하지만, AI 생태계는 계속해서 빠르게 진화하고 있습니다. 새로운 아키텍처와 더 큰 모델이 플랫폼을 통해 제공됨에 따라 Amazon Bedrock 모델 카탈로그를 사용하여 지속적으로 관리하세요.
  • 사용 사례 요구 사항을 신중하게 평가하십시오. DeepSeek-R1-Distill-Llama-70B와 같은 더 큰 모델이 더 나은 성능을 제공하지만, 8B 버전은 더 낮은 비용으로 많은 응용 프로그램에 충분한 기능을 제공할 수 있습니다.
  • 모니터링 및 관찰 가능성을 구현하는 것을 고려하십시오. Amazon CloudWatch는 가져온 모델에 대한 메트릭을 제공하여 사용 패턴과 성능을 추적하는 데 도움이 됩니다. AWS Cost Explorer를 사용하여 비용을 모니터링할 수 있습니다.
  • 낮은 동시 작업 할당량으로 시작해서 실제 사용 패턴에 따라 확장하세요. 계정당 동시 작업 모델 복제본 3개로 설정된 기본 제한은 대부분의 초기 배포에 적합합니다.

결론

Amazon Bedrock 사용자 지정 모델을 사용하면 기업들은 엔터프라이즈급 인프라의 이점을 누리면서, DeepSeek-R1 정제 버전과 같은 강력한 공개 모델 등을 사용할 수 있습니다. Amazon Bedrock의 서버리스 특성은 모델 배포와 운영을 관리하는 복잡성을 제거하여, 팀들이 인프라가 아니라 애플리케이션 구축에 집중할 수 있도록 해줍니다. 자동 확장, 사용량에 따른 요금제, AWS 서비스와의 원활한 통합과 같은 기능을 갖춘 Amazon Bedrock은 AI 작업에 적합한 생산 준비 환경을 제공합니다. DeepSeek의 혁신적인 증류 방식과 Amazon Bedrock 관리 인프라의 결합은 성능, 비용, 운영 효율성의 최적의 균형을 제공합니다. 조직은 더 작은 모델로 시작하여 필요에 따라 확장할 수 있으며, 모델 배포에 대한 완전한 통제권을 유지하고 AWS 보안 및 규정 준수 기능을 활용할 수 있습니다.

독점형과 개방형 FM 중에서 선택할 수 있는 기능을 보유한 Amazon Bedrock은 조직이게 특정 요구에 맞게 유연하게 최적화할 수 있는 능력을 제공합니다. 개방형 모델은 모델 아티팩트를 완벽하게 제어할 수 있는 비용 효율적인 배포를 가능하게 해주기 때문에, 사용자 정의, 비용 최적화 또는 모델 투명성이 중요한 시나리오에 이상적입니다. 이러한 유연성과 Amazon Bedrock의 통합 API 및 엔터프라이즈급 인프라를 결합하면 조직은 요구 사항이 변화함에 따라 적응할 수 있는 탄력적인 AI 전략을 구축할 수 있습니다.

자세한 내용은 Amazon Bedrock 사용자 가이드를 참고하세요.

Sewoong Kim

Sewoong Kim

김세웅 Solutions Architect는 MFG SA팀의 일원으로서 컨테이너와 서버리스를 중심으로 AWS 기반 서비스를 구성하는 고객들에게 최적화된 아키텍처를 제공하고, GenAI Application Architect를 보다 고도화 하기 위한 여러 기술적인 도움을 드리고 있습니다.