AI/ML

[re:Invent 2024] Amazon Bedrock Model Distillation 출시 및 소개

안녕하세요. GS네오텍 AI Center 박수현입니다.

2024년 AWS re:Invent 에서 소개된 Amazon Bedrock Model Distillation 에 대해서 소식을 공유하고 저의 생각을 설명드리고자 합니다.

서비스에 대해 간략하게 얘기하자면 교사 모델에서 응답을 생성하고 이를 기반으로 학생 모델을 조정하여 특정 사용 사례에 대한 증류 모델을 만드는 프로세스를 자동화하는 과정입니다. 여기서 교사 모델은 대규모 데이터셋으로 학습된 FM 모델이고, 학생 모델은 이와 상응하는 소규모 FM을 의미합니다.

대규모 FM 모델의 핵심 성능을 유지하면서도, 더 적은 컴퓨팅 리소스로 운영 가능한 경량화된 모델을 생성합니다. 이 기술은 특정 도메인이나 태스크에 최적화된 모델을 만들어, 더 빠른 추론 속도와 낮은 운영 비용을 실현합니다. 이러한 기술을 활용하여 기업과 고객은 자신들의 특정 요구사항에 맞는 효율적이고 경제적인 AI 솔루션을 구축할 수 있습니다.

Knowledge Distillation


Distillation이라는 개념이 쉽게 와닿지 않을 수 있기 때문에 Model Distillation의 기본 아이디어라고 생각하는 Knowledge Distillation에 대한 설명을 하도록 하겠습니다.

연구 배경

해당 연구가 나오게 된 배경은 무엇일까요? 딥러닝 모델은 종종 크고 계산 비용이 많이 들기 때문에 모바일 폰이나 임베디드 시스템과 같이 리소스가 제한된 장치에 배포하기 어렵습니다. 또한 모델을 처음부터(Scratch) 학습하는 것은 일반적인 학교 레벨이나 대부분의 연구자들에게는 리소스적인 측면에서 상당한 부담이 됩니다. 이러한 문제를 해결하고자, 모델을 압축하면서도 효율성을 향상시키기 위한 학습 방법으로 Distillation 기술이 개발되었습니다.

Knowledge Distillation란 무엇인가?


Knowledge Distillation은 2015년 Hinton et al, 에서 소개한 혁신적인 기술로, 복잡하고 큰 신경망(Teacher Model)의 ‘지식’을 더 작고 단순한 신경망(Student model)에 효과적으로 전달하는 방법입니다. 이 프로세스에는 교사 네트워크의 동작을 모방하도록 학생 네트워크를 훈련하여 예측이나 내부 표현에서 학습하는 것이 포함됩니다.

Knowledge Distillation의 주요 목표는 모델의 성능을 유지하면서 메모리 사용량과 계산 요구사항을 크게 줄이는 것입니다. 이는 현대 딥러닝 모델의 크기와 복잡성 증가로 인한 실제 환경 배포 어려움을 해결하는 데 중요한 역할을 합니다.

이 기술의 핵심은 교사 네트워크의 ‘지식’을 학생 네트워크로 효과적으로 전달하는 것입니다. 학생 모델은 교사 모델의 예측과 자신의 예측 간 차이를 최소화하는 방향으로 훈련되어, 교사 모델의 복잡한 의사결정 과정을 모방합니다. Knowledge Distillation은 신경망이 단순히 정확한 예측을 학습하는 것을 넘어, 데이터의 의미 있는 표현을 포착하는 능력도 전수받는다는 개념에 기초합니다. 즉, 교사 네트워크의 예측이 입력 데이터의 풍부하고 복잡한 표현을 기반으로 하며, 학생 네트워크는 이 과정을 통해 이를 효과적으로 학습할 수 있습니다.

Knowledge Distillation 유형

앞서 설명한 대로, 지식 증류는 교사 모델에서 학생 모델로 지식을 전달하는 과정입니다. 이때 교사 모델에서 전달할 정보, 즉 ‘지식’을 수집하는 방법에 따라 여러 유형의 지식 증류 기법으로 분류할 수 있습니다. 일반적으로 지식 증류는 세 가지 주요 유형으로 나뉘며, 각 유형은 지식을 전달하는 고유한 접근 방식을 가지고 있습니다. 이 세 가지 유형은 각각 다른 측면의 ‘지식’을 전달하며, 때로는 이들을 조합하여 사용하기도 합니다. 적용하는 태스크나 모델의 특성에 따라 가장 적합한 방식을 선택하거나 여러 방식을 함께 활용할 수 있습니다.

Feature-Based Knowledge Distillation

특징 기반 지식 증류는 교사 모델의 내부 표현을 학생 모델로 효과적으로 전달하는 방식입니다. 교사 모델이 학습한 Feature(내부 표현 또는 특징)을 모방하도록 훈련됩니다. 해당 Feature는 모델의 하나 이상의 hidden layer에서 추출되며, 이를 목표로 학생 모델은 교사 모델의 내부 표현과 자신의 표현 간의 차이를 최소화하는 방향으로 학습됩니다. 이 과정에서 주로 평균 제곱 오차(MSE)나 Kullback-Leibler 발산과 같은 거리 측정 함수를 손실 함수로 사용하여 두 모델의 특징 표현 간의 차이를 줄여나갑니다.

주요 장점:

  • 풍부한 지식 전달: 교사 모델의 내부 표현을 직접 전달하여 학생 모델이 처음부터 학습하는 것 보다 유익하고 견고한 표현을 학습하는데 도움이 됨
  • 성능 향상: 단순 출력 모방보다 모델의 Feature 자체를 학습하기 때문에 더 나은 성능 개선 가능
  • 유연성: 다양한 테스크와 모델 구조에 적용 가능

주요 한계:

  • 계산 비용: 반복해서 교사 모델의 중간 층에서 특징을 추출해야 하기 때문에 상대적으로 높은 계산 비용
  • 구조적 제약: 교사와 학생 모델 구조 차이가 클 경우 내부 표현이 이전 가능하지 않기 때문에 관련이 없는 작업에 적합하지 않음

Response-Based Knowledge Distillation

응답 기반 지식 증류는 Knowledge Distillation의 가장 기본적인 형태로, 학생 모델이 교사 모델의 최종 출력, 즉 소프트맥스 층의 확률 분포를 모방하도록 학습하는 방법입니다. 이 과정에서 교사 모델은 각 입력에 대해 클래스별 확률인 ‘소프트 라벨’을 생성하고, 학생 모델은 이를 목표로 삼아 학습합니다. 학생 모델은 자신의 예측과 교사 모델의 예측 간의 차이를 최소화하는 손실 함수를 통해 훈련되며, 이를 통해 교사 모델의 복잡한 결정 경계를 직접 학습하지 않고도 그 행동을 효과적으로 모방할 수 있게 됩니다.

이 방법은 이미지 분류, 자연어 처리, 음성 인식 등 다양한 인공지능 분야에서 널리 활용되며, 특히 모델 경량화와 성능 향상에 효과적입니다.

주요 장점:

  • 구현의 용이성: 교사 모델의 최종 출력만을 사용하므로 구현이 간단합니다.
  • 광범위한 적용성: 다양한 모델과 데이터셋에 쉽게 적용할 수 있습니다.
  • 모델 압축 효과: 큰 모델을 작고 효율적인 모델로 압축하여 계산 요구사항을 줄일 수 있습니다.

주요 한계:

  • 제한된 지식 전달: 교사 모델의 최종 출력만을 전달하므로, 내부 표현이나 중간 특징은 전달되지 않습니다.
  • 복잡한 태스크에 대한 제한: 더 복잡한 의사 결정이나 특징 추출이 필요한 태스크에는 적합하지 않을 수 있습니다.
  • 정보 손실: 소프트 라벨만으로는 교사 모델의 모든 지식을 전달하기 어려울 수 있습니다.

Relation-Based Knowledge Distillation

관계 기반 지식 증류(Relation-Based Distillation)는 입력 예제와 출력 레이블 간의 관계를 학생 모델에 전달하는 데 중점을 둡니다. 이 방법에서는 교사 모델이 먼저 입력과 출력 간의 종속성을 포착하는 관계 행렬 또는 텐서를 생성합니다. 그 후 학생 모델은 이 관계 구조를 학습하도록 훈련됩니다. 학생 모델은 자신이 예측한 관계 구조와 교사 모델이 생성한 관계 구조 간의 차이를 최소화하는 방향으로 학습을 진행합니다. 이 접근 방식은 단순히 최종 출력이나 중간 특징을 전달하는 것을 넘어, 데이터의 구조적 관계를 학습하는 데 초점을 맞춥니다.

주요 장점:

  • 견고한 관계 학습: 학생 모델이 입력과 출력 간의 더 일반화 가능한 관계를 학습할 수 있습니다.
  • 구조적 지식 전달: 데이터의 내재된 구조와 관계를 효과적으로 전달할 수 있습니다.
  • 성능 향상: 특정 태스크에서 다른 증류 방법보다 더 나은 성능을 보일 수 있습니다.

주요 한계:

  • 계산 비용: 관계 행렬이나 텐서 생성에 많은 계산 비용이 들 수 있습니다.
  • 적용 제한: 입력과 출력 간의 관계가 명확하지 않거나 복잡한 태스크에는 적용이 어려울 수 있습니다.
  • 구현 복잡성: 적절한 관계 구조를 정의하고 구현하는 것이 복잡할 수 있습니다.

Model Distillation 사용 사례


Knowledge Distillation의 개념을 앞서 설명했습니다. 인공지능 분야에서의 증류 개념이 이해되셨나요? 이제 본격적으로 모델 증류에 대해 설명하도록 하겠습니다.
사실상 모델 증류와 지식 증류는 동일한 개념이라고 볼 수 있습니다. 인공지능 분야에서 지식 증류라는 연구가 존재했고, 최근 LLM의 급격한 발전으로 인해 이를 LLM 모델에 활용하면서 모델 증류라는 표현이 생겼습니다.

모델 증류는 더 유능한 모델의 출력을 활용하여 더 작고 비용 효율적인 모델을 미세조정함으로써, 특정 도메인에서 훨씬 낮은 비용으로 고급 모델의 성능에 근접할 수 있게 하는 기술입니다. 이는 지금까지 설명드린 내용의 핵심입니다. 이제 Model Distillation이 실제로 어떻게 활용되고 적용되는지 구체적인 예시와 함께 설명해 드리겠습니다.

1. 스탠포드대, 600달러로 챗 GPT와 비슷한 AI챗봇 개발

2023년 스탠퍼드 대학교는 메타의 LLaMA 중 매개변수가 가장 작은 버전(7B)을 기반으로 한 소형 언어 모델 ‘알파카 7B’를 선보였습니다. 알파카는 5만 2000개의 데이터를 토대로 AI 반도체를 탑재한 컴퓨터 8대를 통해 단 3시간 만에 훈련을 끝냈고, 개발에 소요된 비용은 OpenAI의 API 사용 비용 약 500달러와 라마 7B 사용 비용 100달러 안팎으로 총 600달러(약 77만 원)에 불과했습니다. 그럼에도 연구진에 따르면 알파카가 GPT-3.5와 질적으로 비슷한 성능을 보였다고 합니다. 메일 작성, 소셜 미디어의 글 작성, 생산성 도구 등 다양한 분야에서 GPT와 비교해 보았을 때 알파카는 90개 항목에서, GPT는 89개 항목에서 성능이 상대보다 앞섰다고 연구팀은 밝혔습니다.

그림 5. ‘알파카 7B’ 개발 흐름도 (스탠포드대 기초모델연구센터)

Alpaca는 대형 LLM의 지식을 작은 모델로 효과적으로 전달하는 Model Distillation 기법을 활용했습니다.
이 방식은 기존의 RLHF와 달리 인간의 수동 작업을 크게 줄여, 저비용으로 고성능의 소형 Instruction-following 모델을 만들어냈습니다. Alpaca의 사례는 Model Distillation이 AI 모델 개발의 효율성을 높이고 성능 향상을 가속화할 수 있음을 보여줍니다.

2. 아르시, LLM 지식을 온디바이스 모델로 전달하는 ‘증류’ 도구 출시

AI 스타트업 아르시 AI가 모델 증류 기술 기반의 오픈 소스 도구 ‘디스틸킷’을 출시했습니다. 이 도구는 대형언어모델(LLM)의 지식을 소형언어모델(sLM)로 효과적으로 전달하여 sLM의 성능을 향상시킵니다. 이를 통해 노트북이나 스마트폰과 같은 제한된 하드웨어에서도 대형 모델에 준하는 성능과 정교함을 유지하면서 다양한 온디바이스 AI 모델 배포를 가능하게 합니다.

성능 평가를 위해 교사 모델로는 ‘아르시-스파크’를 활용해서 오픈소스 모델 ‘큐원2’를 증류했고, 그 결과 증류된 모델(1.5B Distilled)는 BBH, MUSR 및 MMLU-PRO와 같은 주요 벤치마크에서 이전보다 성능이 향상됨을 확인할 수 있습니다. 특히 일반 성능 뿐만 아니라, 특정 도메인별 성능 향상이 두드려졌고 이는 교사 모델과 동일한 데이터 셋을 사용해 증류하면 성능 향상이 더 크다는 뜻입니다.

3. OpenAI DevDay 2024

OpenAi는 데브데이2024에서 다음과 같은 기술 및 서비스를 출시했습니다.

  • ‘실시간 API(Realtime APi)’ 베타버전 공개
  • 이미지와 텍스트로’GPT-4o’를 비전 미세조정(Vision FIne-Tuning)
  • 대형 프론티어 모델 출력으로 작은 모델을 미세조정하는 모델 증류
  • 사용자 입력을 재사용하는 프롬프트 캐싱(Prompt Caching)

여기서 우리는 대형 프론티어 모델 출력으로 작은 모델을 미세조정하는 모델 증류에 대해서 설명하도록 하겠습니다. LLM은 뛰어난 성능을 자랑하지만, 그만큼 모델이 무겁고 비용이 많이 든다는 단점이 있습니다. 하지만 모든 상황에서 이런 뛰어난 모델이 필요한건 아닙니다. 간단한 테스크에 있어서 너무 뛰어난 LLM은 오히려 고스팩이며 비용적인 측면에서 비효율적입니다. 간단한 서비스를 만들 때는 모델의 크기를 줄여 비용을 절감가하는 것이 필요합니다. 그래서 OpenAI가 제안한 기능이 바로 Distillation 입니다.

증류를 활용해 작은 모델을 만드는 방법은 다음과 같습니다.

  1. OpenAI에서 제공하는 Large모델 중 하나를 Teacher model로 선택합니다.
  2. 어떻게 Distillation할 것인지 세팅합니다.
  3. Teacher model을 사용해 생성된 요청-답변 세트를 저장합니다.
  4. 저장된 세트를 기반으로 Student model을 파인튜닝합니다.
  5. 파인 튜닝된 Student model과 Teacher model의 성능을 비교합니다.
  6. 필요에 따라 위 과정을 반복하며 모델의 성능을 개선합니다.

또한 OpenAI는 이 모든 과정을 플랫폼화하여 개발자는 자신에게 필요한 모델들을 직접 파인 튜닝하고, 원하는 만큼 모델 크기를 줄여 추론 시간과 비용을 절감할 수 있게 되었습니다.

Model Distillation 뿐만 아니라 다른 내용이 궁금하시다면 OpenAI DevDay를 참고하세요! 도움이 될만한 좋은 내용들이 많습니다.

이 뿐만 아니라 개인적으로 모델 증류는 다양한 분야에서 광범위하게 적용될 수 있으며, 다음과 같은 도메인에서 큰 잠재력을 보여준다고 생각합니다.

  • 모바일 및 엣지 컴퓨팅 : 하드웨어 제한으로 인해 경량 모델을 배포해야 하는 경우, 예를 들어 스마트폰에서 실시간 음성 인식이나 이미지 처리를 수행할때 경량화된 모델이 필요합니다.
  • 실시간 시스템 : 자율 주행차나 대화형 시스템, 로봇 공학 등에서는 의사결정 속도가 매우 중요합니다.
  • 대규모 산업 응용 분야 : 운영 비용을 절감하는 동시에 모델 성능을 유지하는 것이 중요한 경우. 제조업, 에너지 관리, 금융 서비스 등에서 AI 모델을 대규모로 배포할때, 운영 비용 절감과 성능 유지 사이의 균형이 중요합니다.

이처럼 다양한 응용 분야에서 모델 증류는 AI 기술의 실용성과 접근성을 크게 향상시키는 핵심 기술로 자리 잡고 발전하고 있습니다.

Fine-tuning vs Model Distillation


빠르게 진화하는 대규모 언어 모델(LLM) 분야에서 모델 성능과 효율성을 최적화 하는 것은 중요한 과제입니다. 가장 인기 있는 접근 방법인 모델 증류와 미세조정입니다. 두 접근 방식 모두 모델의 유용성을 향상시킨다는 공통점이 있지만 기술 간의 미묘한 차이가 존재합니다. 이를 간단하고 명확하게 짚고 넘어가도록 하겠습니다.

목적 : 미세 조정은 특정 작업에 맞게 모델을 조정하는 반면, 증류는 효율성을 개선하기 위해 모델을 압축합니다.
데이터 활용 : 미세 조정에는 대상 작업에 대한 레이블이 지정된 데이터가 필요한 반면, 증류는 광범위한 레이블이 지정된 데이터 세트가 필요하지 않고도 더 큰 모델의 지식을 활용할 수 있습니다.

측면DistillationFIne-Tuning
주요 목적일반화 및 효율성특수화 및 정밀도
계산 요구사항낮은 자원 사용 및 지연 시간작업별 최적화로 인해 더 높음
이상적 사용 사례다양한 도메인에 걸친 광범위한 작업 가능전문지식, 특정 도메인에 특화된 작업, 업무별 최적화
훈련 데이터셋일반적으로 원래의 광범위한 데이터셋도메인에 특화된 데이터셋으로 미세조정됨
그림 8. Distillation vs Fine-Tuning 비교

어떤 접근 방식을 적용할지 여부는 위와 같이 사용자에 맞는 작업 복잡성, 리소스 제약, 도메인 특이성을 포함한 여러 요인을 고려하여 결정합니다. 모델 증류와 미세 조정 중에서 선택하는 것은 효율성과 전문화의 균형을 맞추는 것입니다. 광범위하고 다중 도메인 기능이 필요한 작업의 경우 증류는 리소스 효율성과 확장성 측면에서 상당한 이점을 제공합니다. 반면, 정확한 도메인 지식이 필요한 고도로 전문화된 문제를 해결하려는 경우 미세 조정이 가장 좋은 선택입니다.

Amazon Bedrock Model Distillation


지금까지 우리는 Model Distillation의 개념과 다양한 사용 사례에 대해 살펴보았으며, 이를 Fine-tuning과 비교하여 설명했습니다. 이제 이론적 배경에서 한 걸음 더 나아가, Amazon에서 제공하는 Bedrock 플랫폼에서 Model Distillation을 어떻게 활용할 수 있는지 그 구체적인 방법과 절차에 대해 상세히 설명하도록 하겠습니다.

Amazon Bedrock의 Model Distillation은 교사 모델에서 학생 모델로의 지식 전달 과정을 자동화합니다. 이 과정은 합성 데이터 생성, 학생 모델 훈련 및 평가, 최종 모델 호스팅을 포함합니다. Bedrock은 다양한 데이터 합성 방법을 활용하여 특정 사용 사례에 최적화된 경량 모델을 만듭니다. 예를 들어, 유사 프롬프트 생성으로 훈련 데이터를 확장하거나, 고객 제공 프롬프트-응답 쌍을 기반으로 고품질 합성 응답을 생성할 수 있습니다. 이를 통해 고급 모델에 근접한 성능의 증류된 모델을 효율적으로 만들 수 있습니다.

Inline-image-2024-12-18 15.00.57.089.png
그림 9. Supported models and Regions for Amazon Bedrock Model Distillation

Amazon Bedrock Model Distillation이 교사 및 학생 모델에 대해 지원하는 모델과 AWS 지역을 보여주는 표입니다.

  • 정제된 모델에서 추론을 수행하려면 프로비저닝된 처리량을 구입해야 합니다.
  • Claude 및 Llama 모델의 경우 증류 작업은 미국 서부(오리건)에서 실행됩니다. 미국 서부에서 프로비저닝 처리량을 구매하거나 증류된 모델을 다른 지역으로 복사한 다음 프로비저닝 처리량을 구매할 수 있습니다.
  • Nova 모델의 경우, 미국 동부에서 증류 작업을 실행합니다. 추론의 경우, 미국 동부에서 프로비저닝된 처리량을 구매해야 합니다. Nova 모델을 다른 지역으로 복사할 수 없습니다.

어떻게 작동하나요?

위 그림은 Amazon Bedrock Model Distillation은 교사 모델에서 응답을 생성하고, 독점적인 데이터 합성을 추가하여 교사 모델에서 응답 생성을 개선하고, 학생 모델을 미세 조정하는 과정을 설명하는 그림입니다. Amazon Bedrock Model Distillation은 증류된 모델은 만드는 과정을 자동화하는 단일 워크플로이며, 훈련 데이터 세트의 데이터만 사용하여 학생 모델을 미세 조정합니다.

Amazon Bedrock Model Distillation 시작하기

Amazon Bedrock 콘솔에서 Model Distillation을 사용하는 방법을 설명하도록 하겠습니다. 작업은 미국 서부(오레곤)에서 진행합니다. 먼저 Amazon Bedrock 콘솔로 가서 왼쪽 탐색 창에서 사용자 지정 모델을 선택합니다. Customizaiton 방법들 중에 Distillation을 선택합니다.

그림 11. 사용자 지정 모델

모델 이름과 작업 이름을 입력하세요.

그런 다음 교사 모델을 선택하고, 교세 모델 선택에 따라 사용 가능한 학생 모델 목록에서 학생 모델을 선택합니다. 현재 AWS에서는 교사 모델과 학생 모델은 동일한 모델 형식이어야 합니다. 예를 들어 교사 모델로 Claude 3.5 Sonnet, Llama 3.1 405B Instruct 모델을 선택한 경우 각각 학생 모델로 Claude 3 Haiku, Llama 3.1 70B 또는 8B Instruct 모델만 선택할 수 있습니다. 리전에 따른 교사, 학생 모델 지원은 그림 9.을 참고하시면 됩니다.

합성 데이터를 생성하려면 교사 모델에서 생성된 응답을 결정하는 최대 응답 길이의 값을 설정합니다. S3 버킷에 있는 증류 입력 데이터 세트를 선택하고 해당 데이터세트는 사용 사례에 대한 프롬프트를 나타냅니다. 입력 데이터 세트 준비에 대해 부연 설명을 더하자면, 옵션이 두가지가 있습니다.

옵션 1: 나만의 프롬프트 제공
프롬프트를 수집하여 JSON Line(JSONL) 형식으로 저장합니다.

위와 같은 구조를 사용해야 합니다. schemaVersion구조에는 값이 있어야 하는 필수 필드가 포함되어야 합니다 bedrock-conversion-2024. 모델에 할당된 역할을 나타내는 시스템 프롬프트를 선택적으로 포함할 수 있습니다. 메시지 필드에서 사용자 역할은 모델에 제공된 입력 프롬프트를 포함하는 필수이고, 원하는 응답을 포함하는 보조 역할은 선택 사항입니다.

TIP: 입력 데이터셋을 준비할 때는 위 그림에 제시된 JSON 형식을 참고하여 JSONL 파일을 생성해야 합니다. 최소 데이터셋 요구사항으로, 100개 이상의 JSON 객체가 필요하며 각 객체는 예시와 동일한 구조를 따라야 합니다. 이렇게 생성된 JSONL 파일이 Input 데이터셋으로 사용됩니다.

옵션 2: 호출 로그 사용
모델 증류에 호출 로그를 사용하려면 모델 호출 로깅을 켜고 모델 호출 작업 중 하나를 사용하고 로그의 대상으로 S3 버킷을 설정합니다. 이 옵션을 사용하면 Amazon Bedrock에서 프롬프트만 사용할지, 아니면 로그 호출 로그의 프롬프트-응답 쌍을 사용할지 지정할 수 있습니다. 프롬프트만 사용하려는 경우 교사 모델에서 다양하고 더 높은 품질의 응답을 생성하기 위해 독점적인 데이터 합성 기술을 추가할 수 있습니다.

Amazon Bedrock에 최대 15K개의 프롬프트 또는 프롬프트-응답 쌍을 제공하여 학생 모델을 미세 조정할 수 있습니다. 학생 모델이 귀하의 특정 요구 사항을 충족하도록 미세 조정되었는지 확인하려면 다음을 적극 권장합니다.

  • Amazon Bedrock에서 프롬프트만 사용하려면 모든 모델에서 최소 100개의 프롬프트-응답 쌍이 생성되어야 합니다.
  • Amazon Bedrock에서 호출 로그의 응답을 사용하려면 호출 로그의 모델에서 생성된 프롬프트-응답 쌍이 최소 100개 있어야 하며, 이는 선택한 교사 모델과 정확히 일치해야 합니다.

어렵게 설명했지만 간단합니다. 모델 증류를 위해서는 프롬프트-응답 쌍이 필요하고 둘다 있으면 기존의 데이터를 위 JSON 양식에 맞게 구성하고 JSONL 파일을 S3에 업로드해서 사용하면 됩니다. 또한 이전의 모델 호출 로그가 있을 경우 해당 로그를 사용하고 싶으면 옵션 2로 로그의 대상으로 S3 버킷으로 대상하고 프롬프트에 대한 응답이 없을 경우 프롬프트를 이용해 Amazon Bedrock에서 생성한 응답을 활용합니다. 이때 당연히 추론 호출에 대한 추가 요금이 부과됩니다.

그런 다음 Amazon S3 위치를 설정한 후 Distillation 출력 메트릭 데이터와 사용자를 대신하여 Amazon S3에 쓸 수 있는 권한을 저장하기 위해 Distillation 작업 생성을 선택합니다. 이때 서비스 역할에 Bedrock과 S3에 대한 권한이 존재해야 합니다.

작업이 성공적으로 생성된 후에는 학습 진행 상황을 추적할 수 있으며, 모델 탭에서 모델을 사용할 수 있습니다.

Amazon Bedrock Model Distillation을 사용할 때는 먼저 목표 정확도를 가진 교사 모델과 미세 조정할 학생 모델을 선택합니다. 그 다음, Amazon Bedrock에 접근하여 호출 로그를 읽고, 요청 메타데이터 필터를 사용해 사용 사례에 적합한 로그만 선별합니다. 이렇게 선별된 로그를 이용해 학생 모델을 미세 조정합니다. 이 과정에서 주의할 점은 증류에 사용할 교사 모델과 호출 로그에 사용된 모델이 반드시 동일해야 한다는 것입니다. 이러한 단계를 따르면 효율적인 모델 증류를 수행할 수 있습니다.

비용

  • 증류된 모델을 사용하기 전에 Amazon Bedrock에 대한 Provisioned Throughput을 구매한 다음, 그 결과로 나온 증류 모델을 추론에 사용해야 합니다. 구매 후, 커밋먼트 기간, 모델 단위 수를 선택하고 추정 시간당 일당, 월당 비용을 확인할 수 있습니다.

AWS 콘솔에서 했던 Model Distillation 작업은 AWS API, AWS SDK 또는 AWS CLI 사용하여 작업을 완료할 수 있습니다. AWS CLI 사용에 대한 자세한 내용은 AWS 설명서의 모델 사용자 지정을 위한 코드 샘플을 참조하세요.

마치며…


모델 증류는 AI 배포에서 고성능을 유지하고 리소스 제약을 관리하는 두 가지 과제를 해결하는 정교한 기술입니다. 더 작지만 매우 효과적인 모델을 만들 수 있도록 함으로써 증류는 AI 기술의 접근성을 넓힐 뿐만 아니라 일상적인 응용 프로그램에서의 실용성을 향상시킵니다.

그렇다면 Amazon에서는 왜 Model Distillation 이라는 서비스를 런칭할까요?

이에 대한 제 생각을 간단히 적으면서 글을 마무리하려고 합니다. 지금까지 많은 빅테크 기업들은 너도나도 뛰어난 FM 모델을 개발하고 출시했습니다. 이를 상품화하고 많은 기업이나 고객들이 모델을 사용하면서 수익이 창출되고 있죠. 그런데 모든 기업과 고객들이 항상 SOTA 성능을 가진 모델이 필요할까요? 아마 아닐겁니다. 간단한 문제를 해결하는데 복잡하고 뛰어나면서 비용이 많이 드는 모델은 필요하지 않습니다. 어떤 고객은 Claude Sonnet 3.5, Llama 3.3 70B, Llama 3.2 90B가 아닌 Haiku, Llama 3.2 3B 같은 작은 모델로도 문제 해결하는 데 충분할 수 있습니다. 하지만 여기서 고객들의 추가적인 요구사항이 있는거죠. 특정 데이터나 도메인에 맞추면서도 더 범용적이고, 기존의 작은 모델보다 성능이 좋으면서 적은 리소스와 비용으로 문제를 해결할 수 있는 방법이 필요한겁니다. 이런 고객의 니즈가 Amazon에서 Model Distillation 서비스를 프리뷰한 이유라고 생각합니다. 앞으로 AI 기술이 더욱 일상화되고 가볍게 보편적으로 다가오면서, 다양한 산업 분야에 깊이 통합됨에 따라 모델 증류의 중요성은 더욱 커질 것으로 예상됩니다.

Reference


https://blog.roboflow.com/what-is-knowledge-distillation/
https://medium.com/stream-zero/understanding-the-essentials-of-model-distillation-in-ai-1e97403bee8a
https://openai.com/index/api-model-distillation/
https://labelbox.com/guides/model-distillation/
https://www.aitimes.com/
https://docs.aws.amazon.com/ko_kr/bedrock/
https://aws.amazon.com/ko/blogs/aws/build-faster-more-cost-efficient-highly-accurate-models-with-amazon-bedrock-model-distillation-preview/

5/5 - (평가 개수 : 3)

필자: 박 수현

전체 게시물수 : 1

전체 조회수 : 216

게시물 공유하기