CertNote/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
SCS-C03 · SpecialtySecurity - Specialty
MLA-C01 · AssociateMachine Learning Engineer - Associate
  • Week 1
    • 1.ML 수명주기와 ML 엔지니어의 역할
    • 2.ML 문제 유형과 평가 지표 기초
    • 3.AWS ML 스택 한눈에 보기
    • 4.SageMaker 개요: Studio, 학습/추론, 빌트인 알고리즘
    • 5.Week 1 종합 — ML 기초·AWS 스택 복습
  • Week 2
  • Week 3
  • Week 4
    • 1.SageMaker 학습 작업(Training Job): Estimator, 입력 채널, 인스턴스, Spot
    • 2.빌트인 알고리즘: XGBoost, Linear Learner, 이미지·텍스트, 입력 포맷
    • 3.하이퍼파라미터 튜닝(AMT): 베이지안·랜덤·그리드, 조기 종료, 워밍 스타트
    • 4.JumpStart·사전학습 모델·전이학습 + 학습 비용 최적화
    • 5.Week 4 종합: 모델 개발 1 — SageMaker 학습 복습
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← MLA-C01/Week 4/Day 4

기준: MLA-C01 시험 가이드·오류 제보

MLA-C01· AssociateWeek 4 · Day 4읽기 약 11분
핵심 정리
  • JumpStart는 사전학습 모델 허브다. 쓰는 법은 두 갈래 — 그대로 deploy하거나, 내 데이터로 fit → deploy(미세조정).
  • 전이학습은 대규모로 학습된 모델의 일반 특징을 물려받아 적은 데이터·짧은 시간·낮은 비용으로 높은 성능을 낸다.
  • "라벨 데이터가 적은데 정확한 분류기가 필요하다" → 답은 밑바닥 학습이 아니라 전이학습(미세조정).
  • 학습 비용은 두 축으로 갈라 본다 — 단가 낮추기(Spot+체크포인트, 적절한 인스턴스, 입력 모드/RecordIO)와 작업량 줄이기(전이학습, 조기 종료).
  • 가장 강력한 두 수단인 Spot과 전이학습은 축이 달라 함께 적용할 수 있다.

Day 4 - JumpStart·사전학습 모델·전이학습 + 학습 비용 최적화

JumpStart: 사전학습 모델 허브

이미지 분류기나 텍스트 생성 모델을 매번 밑바닥부터 학습하는 건 데이터·시간·비용 모두 막대하다. JumpStart는 수백 개의 사전학습 모델과 솔루션 템플릿을 모아둔 허브로, 이미지 분류, 객체 탐지, 텍스트 분류, 요약, 텍스트 생성(LLM 포함) 등 검증된 모델을 몇 줄로 배포하거나 내 데이터로 미세조정(fine-tune)할 수 있다.

from sagemaker.jumpstart.model import JumpStartModel
 
# 사전학습 모델을 그대로 배포
model = JumpStartModel(model_id='huggingface-text2text-flan-t5-base')
predictor = model.deploy()
 
response = predictor.predict({'inputs': '이 문장을 요약해줘: ...'})
from sagemaker.jumpstart.estimator import JumpStartEstimator
 
# 사전학습 모델을 내 데이터로 미세조정(fine-tune)
estimator = JumpStartEstimator(model_id='huggingface-text2text-flan-t5-base')
estimator.fit({'training': 's3://my-bucket/my-data/'})
fine_tuned = estimator.deploy()

JumpStart의 두 가지 사용 방식으로 나뉜다.

사용 방식호출 흐름필요한 것고르는 상황
그대로 배포JumpStartModel(...).deploy()없음범용 과제에 모델 성능이 이미 충분할 때
미세조정 후 배포JumpStartEstimator(...).fit() → .deploy()내 도메인 라벨 데이터전문 용어·사내 데이터 등 도메인 특화가 필요할 때

시험에서 "검증된 모델을 코드 거의 없이 빠르게 시작"이면 JumpStart를 떠올린다. 여기에 "내 도메인 데이터로 특화"가 붙으면 fit → deploy다.

JumpStart의 가치는 "표현 학습의 재사용"에 있다. 대규모 데이터로 학습된 모델은 일반적 특징(이미지의 모서리·질감, 언어의 문법·의미)을 이미 안다. 이 지식은 대부분의 다운스트림 작업에 공통으로 유용하다. 그래서 처음부터 배우게 하는 대신 이미 아는 모델을 가져오는 게, 적은 데이터와 비용으로도 높은 성능을 내는 핵심 이유다.

전이학습(Transfer Learning)

전이학습은 한 작업에서 학습한 지식을 다른 관련 작업에 옮겨 쓰는 기법이다. JumpStart 미세조정이 바로 전이학습의 구현이다. 전형적으로 사전학습 모델의 앞부분(일반 특징 추출기)은 그대로 두고, 뒷부분(작업별 분류 계층)만 내 데이터로 다시 학습한다.

[사전학습 모델]  대규모 데이터로 이미 학습됨
   하위 계층 : 선·모서리·질감 같은 일반 특징   → 동결(freeze)
   중간 계층 : 부분 형태·구조                  → 동결 또는 일부 해제
   출력 계층 : 원래 과제의 클래스              → 잘라내고 교체
                                                    │
                                                    ▼
[내 과제]  내 클래스 수에 맞는 새 출력 계층 ── 내 데이터로 학습
                                                    │
                                                    ▼
                             적은 데이터·짧은 시간으로 높은 성능

핵심 이점은 세 가지다.

  • 적은 데이터로 충분: 밑바닥 학습은 수십만 장이 필요해도, 전이학습은 수백~수천 장으로 괜찮다.
  • 학습 시간·비용 절감: 일부 계층만 학습하므로 빠르고 싸다.
  • 높은 성능: 대규모 사전학습의 지식을 물려받아 작은 데이터셋에서도 잘 작동한다.

얼마나 깊이 미세조정할지는 내 데이터 양과 도메인 유사성 두 가지로 갈린다.

라벨 데이터 양사전학습 도메인과의 유사성권장 접근
적음(클래스당 수백)높음특징 추출기는 동결하고 출력 계층만 학습
적음낮음상위 일부 계층까지 함께 미세조정 + 데이터 증강 병행
많음높음낮은 학습률로 전체 계층 미세조정
많음낮음깊은 미세조정, 경우에 따라 밑바닥 학습도 후보

하위 계층을 동결하는 이유는 그 부분이 배우는 지식이 과제와 무관하게 재사용 가능하기 때문이다. 이미지의 모서리·질감, 언어의 문법 구조는 어떤 과제에서도 필요하다. 반대로 출력 계층은 "원래 과제의 정답 목록"에 직접 묶여 있어 재사용할 수 없고, 그래서 잘라내고 새로 붙인다. 데이터가 적을수록 새로 학습하는 부분을 좁혀야 과적합을 피할 수 있다.

세 가지 접근을 비용·데이터 요구로 놓고 보면 선택 기준이 분명해진다.

접근필요한 라벨 데이터학습 비용·시간도메인 특화
사전학습 모델 그대로 배포없음학습 비용 0(추론 비용만)없음
미세조정(전이학습)수백 ~ 수천낮음 ~ 중간높음
밑바닥 학습수만 ~ 수십만높음데이터가 충분할 때만 최고

⚠️ 함정: "라벨이 붙은 학습 데이터가 적은데(예: 클래스당 수백 장) 정확한 이미지 분류기가 필요하다"는 시나리오의 답은 전이학습(사전학습 모델 미세조정)이다. 처음부터 CNN을 학습하려면 데이터가 턱없이 부족하다. 반대로 "데이터가 매우 풍부하고 도메인이 기존 모델과 완전히 다르다"면 밑바닥 학습이나 더 깊은 미세조정을 고려한다. 데이터 양과 도메인 유사성이 판단 기준이다.

학습 비용 최적화 종합

이번 주에 흩어져 나온 비용 절감 수단을 한자리에 모은다. 시험은 "학습 비용을 줄이는 방법"을 종합적으로 묻는다.

학습 비용  =  (자원 단가)  ×  (해야 할 작업량)
                  │                  │
                  │                  └─ 작업량 줄이기
                  │                       ├─ 전이학습 / JumpStart  (처음부터 안 배움)
                  │                       ├─ 조기 종료(AMT)        (가망 없는 시도 중단)
                  │                       └─ max_run 상한          (폭주 학습 차단)
                  │
                  └─ 단가 낮추기
                       ├─ Managed Spot Training (+ 체크포인트)
                       ├─ 알고리즘에 맞는 인스턴스 (CPU / GPU)
                       ├─ 입력 모드 (Pipe / Fast File)
                       └─ RecordIO-protobuf 포맷
수단효과핵심 조건
Managed Spot Training최대 90% 절감중단 가능 → 체크포인트 필수
전이학습 / JumpStart학습량 자체를 줄임사전학습 모델 활용
조기 종료(튜닝)가망 없는 학습 중단AMT에서 early stopping
적절한 인스턴스 선택과대 프로비저닝 방지알고리즘에 맞는 CPU/GPU
분산 학습 효율화시간 단축I/O 병목 시 FSx
입력 모드 최적화시작 지연·디스크 절감대용량은 Pipe/Fast File
데이터 포맷(RecordIO)I/O 효율대용량 스트리밍

가장 강력한 두 수단은 Spot 학습(인프라 단가 절감)과 전이학습/JumpStart(학습량 자체 감소)다. 이 둘은 서로 다른 축이라 함께 쓸 수 있다 — 사전학습 모델을 Spot 인스턴스에서 미세조정하면 양쪽 절감이 겹친다.

# 전이학습 + Spot을 결합한 비용 최적화 예
estimator = JumpStartEstimator(
    model_id='huggingface-text2text-flan-t5-base',
    use_spot_instances=True,
    max_run=3600,
    max_wait=7200,
    checkpoint_s3_uri='s3://my-bucket/checkpoints/',
)

⚠️ 함정: "비용을 줄이려면?"에 인스턴스를 더 작은 것으로 바꾸는 선택지가 자주 섞여 나온다. 하지만 학습이 그만큼 오래 걸리면 총비용은 거의 그대로거나 더 늘 수 있다. 비용은 단가 × 시간이므로, 단가만 보고 고르면 틀린다. 반대로 GPU 사용률이 낮은 상태에서 더 큰 GPU로 올리는 것도 돈만 쓰고 시간이 안 줄어드는 대표적 오답이다.

비용 최적화는 두 갈래로 나눠 생각하면 명확하다. ① 단가를 낮추기: 같은 일을 더 싼 자원으로 — Spot, 적절한 인스턴스 크기, 입력 모드. ② 일의 양 줄이기: 애초에 계산을 덜 하기 — 전이학습(처음부터 안 배움), 조기 종료(가망 없는 시도 중단). 시험 문제가 "단가"를 묻는지 "작업량"을 묻는지 구분하면 답이 빨리 보인다.

추가 비용 관점: 모니터링과 자동 종료

학습 비용에서 의외로 흔한 낭비는 "끝났는데 안 꺼진 자원"과 "잘못된 설정으로 끝없이 도는 학습"이다. 몇 가지 안전장치가 있다.

  • max_run 설정: 학습이 일정 시간을 넘으면 강제 종료해 폭주 비용을 막는다.
  • 노트북 자동 종료: SageMaker Studio/노트북 인스턴스의 유휴 자동 종료(lifecycle config)로, 켜두고 잊은 노트북 과금을 방지한다.
  • 학습 작업의 자동 인스턴스 종료: Training Job은 끝나면 인스턴스를 자동으로 내리므로(어제 본 흐름), 엔드포인트와 달리 방치 과금 위험이 작다.

오래 도는 학습 작업은 코드로 주기 점검할 수 있다.

import boto3
from datetime import datetime, timedelta, timezone
 
sm = boto3.client('sagemaker')
 
# 24시간 넘게 진행 중인 학습 작업 = 폭주 비용 후보
resp = sm.list_training_jobs(StatusEquals='InProgress', MaxResults=100)
cutoff = datetime.now(timezone.utc) - timedelta(hours=24)
 
for job in resp['TrainingJobSummaries']:
    if job['CreationTime'] < cutoff:
        print('장시간 실행:', job['TrainingJobName'], job['CreationTime'])

한 팀이 GPU 노트북 인스턴스를 띄워 실험하다 금요일 저녁에 꺼두는 걸 잊고 주말 내내 켜뒀다. 학습 작업은 끝나면 자동 종료되지만 노트북 인스턴스는 사람이 끄기 전까지 계속 과금되어, 한 번의 부주의로 수십만 원이 날아갔다. 이후 유휴 자동 종료 lifecycle config를 적용해 일정 시간 활동이 없으면 노트북이 스스로 꺼지게 하여 재발을 막았다.

비용·성능이 어긋날 때: 증상 → 원인 → 조치

증상흔한 원인조치
라벨이 적은데 밑바닥 학습해서 정확도가 안 나온다데이터 부족으로 과적합사전학습 모델 미세조정(전이학습)으로 전환
미세조정했는데 오히려 성능이 떨어졌다적은 데이터로 전체 계층을 크게 흔듦하위 계층을 동결하고 학습률을 낮춘다
학습 비용이 계속 예산을 넘는다단가만 손보고 작업량은 그대로전이학습으로 학습량 자체를 줄이고 조기 종료를 병행
Spot을 켰는데 총 소요 시간이 크게 늘었다회수 후 매번 처음부터 재학습checkpoint_s3_uri 지정 + 스크립트의 재개 로직 확인
아무도 안 쓰는데 요금이 계속 나온다노트북 인스턴스를 켜둔 채 방치유휴 자동 종료 lifecycle config 적용
학습이 며칠째 끝나지 않는다설정 오류로 수렴하지 않는 학습이 계속 돎max_run으로 상한을 걸고 진행 중 작업을 주기 점검

다음 글에서는 이번 주(모델 개발 1 — SageMaker 학습) 전체를 종합 복습한다.

📖 용어

  • JumpStart : 검증된 사전학습 모델과 솔루션 템플릿을 모아 둔 SageMaker의 모델 허브.
  • 사전학습 모델 : 대규모 데이터로 이미 학습을 마친 모델. 가져다 쓰거나 조금 더 학습시켜 쓴다.
  • 미세조정(fine-tuning) : 사전학습 모델을 내 데이터로 조금 더 학습시켜 내 과제에 맞게 다듬는 것.
  • 전이학습 : 한 과제에서 배운 지식을 다른 관련 과제로 옮겨 쓰는 기법. 미세조정이 그 대표적 구현이다.
  • 동결(freeze) : 사전학습 모델의 일부 계층을 학습 대상에서 빼 값이 바뀌지 않게 고정하는 것.
  • 특징 추출기 / 출력 계층 : 특징 추출기는 입력에서 일반적인 특징(모서리·질감·문법 구조 등)을 뽑아내는 모델의 앞부분이고, 출력 계층은 그 특징을 실제 정답 클래스로 바꾸는 마지막 부분이다. 과제가 바뀌면 교체 대상은 출력 계층이다.
  • 데이터 증강 : 회전·자르기·잡음 추가 등으로 같은 데이터에서 변형본을 만들어 학습 데이터를 불리는 기법.
  • lifecycle config : SageMaker 노트북·Studio가 시작하거나 유휴 상태가 될 때 자동 실행되는 설정 스크립트.
  • 유휴 자동 종료 : 일정 시간 사용이 없으면 노트북 인스턴스를 스스로 끄게 하는 설정. 방치 과금을 막는다.
  • max_run : 학습 작업이 돌 수 있는 최대 시간. 넘으면 강제 종료되어 폭주 비용을 차단한다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

검증된 텍스트 요약 모델을 거의 코드 작성 없이 빠르게 추론 엔드포인트로 배포하고 싶다. 가장 적합한 SageMaker 기능은?

문제 2

클래스당 수백 장 수준의 적은 라벨 이미지로 정확한 이미지 분류기를 만들어야 한다. 가장 적합한 접근은?

문제 3

사전학습 LLM을 내 도메인 데이터로 미세조정하면서 학습 비용을 최대한 줄이고 싶다. 학습이 중단되어도 재개 가능하다. 가장 효과적인 조합은?

문제 4

학습 비용 최적화 수단을 "단가를 낮추는 것"과 "작업량 자체를 줄이는 것"으로 나눌 때, 작업량을 줄이는 쪽에 해당하는 것은?

문제 5

실험용으로 띄운 GPU 노트북 인스턴스를 끄는 것을 잊어 사용하지 않는 동안에도 과금이 계속되는 문제를 막으려 한다. 가장 적합한 조치는?

이전하이퍼파라미터 튜닝(AMT): 베이지안·랜덤·그리드, 조기 종료, 워밍 스타트Week 4 · Day 3다음 Week 4 종합: 모델 개발 1 — SageMaker 학습 복습Week 4 · Day 5

참고 공식 자료

  • MLA-C01 공식 시험 안내(새 탭에서 열림)
  • Amazon SageMaker AI 공식 문서(새 탭에서 열림)

이 페이지

  • JumpStart: 사전학습 모델 허브
  • 전이학습(Transfer Learning)
  • 학습 비용 최적화 종합
  • 추가 비용 관점: 모니터링과 자동 종료
  • 비용·성능이 어긋날 때: 증상 → 원인 → 조치
  • 용어
  • 연습 문제