3장 - 딥러닝 프로젝트의 전체 사이클

🏷️ cs230 딥러닝 book

3장. 딥러닝 프로젝트의 전체 사이클

AI 프로젝트가 전통적 소프트웨어 프로젝트와 다른 가장 큰 이유는 코드뿐 아니라 데이터도 포함하기 때문이다. 코드는 100% 통제할 수 있지만, 데이터에 어떤 기이하고 놀라운 것들이 들어있는지는 거의 알 수 없다. — Andrew Ng


3.1 AI 프로젝트는 왜 다른가

전통적 소프트웨어 엔지니어링에서는 코드를 작성하고 컴파일하면 코드가 지시한 대로 동작한다. 그러나 AI 프로젝트는 코드 + 데이터 두 축으로 구성된다. 코드는 원하는 대로 쓸 수 있지만, 데이터에 무엇이 들어있는지 사전에 예측하기 어렵다.

얼굴 인식 시스템을 예로 들면: - 조명이 좋은가? - 긴 머리 vs 짧은 머리에서 성능 차이가 나는가? - 이상한 표정을 짓는 사람이 시스템을 혼란스럽게 하는가? - 안경 착용자에서 실패하는가?

이 모든 것은 시스템을 만들어보기 전에는 알 수 없다. 그래서 머신러닝 개발은 전통적 소프트웨어보다 훨씬 더 **반복적(iterative)**인 프로세스다. 구축하고, 동작을 관찰하고, 데이터에서 무엇을 발견했는지를 바탕으로 코드를 수정하는 사이클을 돈다.

이는 LLM 기반 에이전트 애플리케이션에서도 마찬가지다. LLM이 수조 개의 토큰으로 훈련되었기 때문에, 그 모든 데이터를 인간이 볼 수 없고, 따라서 모델이 정확히 어떻게 행동할지 알 수 없다.


3.2 프로젝트 라이프사이클

딥러닝 시스템 구축의 전체 흐름은 다음과 같다.

문제 정의 → 데이터 수집 → 모델 설계 → 모델 훈련 → 오류 분석 → (반복) → 배포 → 모니터링/유지보수

많은 강좌가 "모델"이라는 작은 상자에만 집중하지만, 실제 시스템에는 그 바깥의 작업이 훨씬 더 많다. 이 강의에서는 모델 상자 밖의 전체 그림을 다룬다.

실습 예제: 얼굴 인식 도어 잠금 시스템

구체적인 사례로 다음 시스템을 설계한다. - 문 앞에 카메라가 설치되어 있다 - 접근하는 사람의 얼굴을 촬영한다 - 등록된 사람인지 확인하여 문을 열거나 잠근다 - 기업 건물의 키카드 도용 방지에도 사용된다

이 시스템의 핵심 아키텍처는 **시아미즈 네트워크(Siamese Network)**로, 두 장의 사진을 입력받아 같은 사람인지 판별한다. 등록 사진 몇 장만 있으면 새로운 장소에 재훈련 없이 배포할 수 있다는 장점이 있다.


3.3 데이터 수집: 속도가 핵심이다

가장 중요한 원칙

데이터 수집에서 가장 중요한 판단 기준은 속도다.

스타트업이든 대기업의 소규모 혁신 팀이든, 성공 확률을 가장 잘 예측하는 변수는 실행 속도(speed of execution)다. 데이터 수집도 예외가 아니다.

접근법

속도

품질

판단

동료에게 사진 찍어달라고 부탁

매우 빠름 (시간 단위)

낮음

먼저 시작하기에 적합

카메라 설치 후 자발적 참여

빠름 (일 단위)

중간

좋은 선택

학교 학생증 사진 요청

느림 (주 단위)

중간

창의적이지만 느림

대규모 데이터 구매

매우 느림 (월 단위)

불확실

권장하지 않음

Andrew Ng는 팀에게 항상 "48시간 안에 데이터를 모으는 가장 창의적인 방법은 무엇인가?"라고 묻는다. 열등하고 작고 품질이 낮은 데이터셋이라도 빠르게 확보하는 것이 중요하다. 왜냐하면 데이터의 가치는 사전에 알 수 없기 때문이다.

실화로, 한 CEO가 데이터를 위해 회사를 인수하는 데 1억 달러 이상을 썼지만, 그 데이터가 실제로 유용한지는 써보기 전까지 알 수 없었다.

반복 주기 맞추기

모델 훈련에 하루가 걸린다면, 데이터 수집에도 비슷한 시간을 쓰는 것이 합리적이다. 최고 속도의 팀은 하루에 한 바퀴씩 데이터→모델→분석 루프를 돈다. 대형 파운데이션 모델처럼 훈련에 몇 주가 걸리는 경우에만 데이터 수집에 더 많은 시간을 투자한다.


3.4 데이터 품질과 관련성

데이터 품질

품질이 중요하다는 것은 자명하지만, 첫 번째 시도에서는 여전히 속도를 우선한다. 품질 개선은 오류 분석 이후에 집중한다.

데이터 분포 일치 문제

"훈련 데이터의 분포가 테스트 데이터와 정확히 같아야 한다"는 것은 10~15년 전의 통념이다. 오늘날의 대규모 신경망은 약간 관련 있는 데이터를 넣어도 해가 되지 않고 오히려 도움이 될 수 있다.

핵심은 신경망이 충분히 크면, 인간의 뇌처럼 관련 없는 것을 학습해도 핵심 과제 성능이 떨어지지 않는다는 것이다. 셜록 홈즈의 "다락방 이론"(뇌 용량이 한정되어 무언가를 잊어야 새로운 것을 배운다)은 소형 모델에서는 어느 정도 맞지만, 대형 모델에서는 해당하지 않는다.

단, 잘못된 데이터(incorrect data)는 문제가 된다. 무관한 데이터(irrelevant data)는 대형 모델에서는 훨씬 덜 해롭다.


3.5 오류 분석과 데이터 중심 AI

모델이 잘 안 될 때 할 수 있는 일은 크게 두 가지다.

  1. 모델 아키텍처 변경: 시아미즈 네트워크를 다른 구조로 바꾸거나, 문헌을 참고하여 새 아키텍처를 도입
  2. 데이터 변경: 모자 쓴 사람을 잘 인식하지 못한다면, 모자 쓴 사람 데이터를 집중 수집

이것이 데이터 중심 AI(Data-Centric AI)의 핵심이다. 데이터를 체계적으로 엔지니어링하여 성공적인 AI 시스템을 구축하는 방법론이다.

무턱대고 모든 종류의 데이터를 더 수집하는 것은 매우 비효율적이다. 어떤 하위 범주의 데이터에 투자할지를 아는 것이 핵심이다.

LLM 코딩 성능을 높이려면 무작위 인터넷 데이터가 아니라 고품질 코딩 관련 데이터에 집중해야 한다. 이것이 프론티어 모델 팀들이 실제로 하는 일이다.


3.6 배포 아키텍처: 얼굴 인식 시스템

모델을 훈련한 후에는 클라우드 또는 로컬 서버에 호스팅하여 추론(inference)을 수행하는 소프트웨어 엔지니어링 작업이 필요하다.

VAD(Visual Activity Detection) 문제

24시간 비디오를 클라우드로 스트리밍하여 매 프레임을 분류하는 것은 비용상 불가능하다. 따라서 실제 시스템은 다단계 파이프라인을 사용한다.

카메라 → VAD (활동 감지) → 얼굴 인식 신경망 (클라우드)

VAD의 두 가지 옵션을 비교해보자.

옵션 1: 픽셀 변화 감지

옵션 2: 소형 신경망

구현 시간

20분 (Python 5줄)

수시간 이상

정확도

낮음 (나무 흔들림, 고양이, 지나가는 차에 반응)

높음

데이터 분포 변화 대응

매우 강건 (파라미터 1개)

취약 (과적합 가능)

판단

먼저 시작

옵션 1의 한계를 확인한 후 전환

핵심 교훈: 옵션 1을 먼저 구현하고, 실패 사례를 관찰하고, 그 학습을 바탕으로 옵션 2를 설계한다.

고해상도 프레임 선택

실전에서 발견한 중요한 인사이트 하나. 카메라에 다가오는 사람의 영상에서 어떤 프레임은 선명하고 어떤 프레임은 흐릿하다. 걸을 때 얼굴의 속도가 달라지기 때문이다. 선명하고 초점이 맞는 프레임 5장을 골라서 얼굴 인식 모델에 전달하면 정확도가 크게 향상된다. 이런 종류의 발견은 시스템을 실제로 만들어보기 전에는 알 수 없다.


3.7 모니터링과 유지보수

모델이 테스트셋에서 잘 작동한다고 끝이 아니다. 세상은 변한다.

데이터 드리프트와 개념 드리프트

유형

설명

예시

데이터 드리프트 (Data Drift)

입력 데이터의 분포가 변함

겨울이 되면 스카프와 우비를 착용하는 사람이 늘어남

개념 드리프트 (Concept Drift)

X→Y 매핑 자체가 변함

캘리포니아에서 훈련한 자율주행차가 텍사스에서 신호등을 인식하지 못함 (수평 vs 수직 배치 차이)

캘리포니아와 텍사스의 교통 신호등이 다르게 생겼다는 것은 실제로 자율주행 프로젝트에서 발견한 사실이다. 텍사스는 강풍 때문에 신호등 설치 방식이 달랐다.

ML 엔지니어의 자세

"테스트셋에서 잘 됩니다"는 답이 아니다. 작동하는 시스템을 만드는 것이 목표다.

테스트셋 성능과 실제 성능 사이의 간극을 발견하면, "내 일은 테스트셋에서 좋은 결과를 내는 것"이라고 방어하는 대신, 왜 실환경에서 작동하지 않는지 파고들어야 한다.

대시보드 설계 원칙

  1. 브레인스토밍: 팀을 모아 잘못될 수 있는 모든 것을 나열한다. 실제로 문제가 된 것 중 사전에 식별하지 못한 것은 거의 없었다.
  2. 풍부한 대시보드 구축: 20~50개의 지표를 추적한다.
    • 재인증 빈도 (사용자 불편의 신호)
    • 승인 vs 거부 비율
    • 시스템 지연 시간
    • 시간에 따른 추세 그래프
  3. 가지치기: 몇 주 뒤 지루한(변화 없는) 대시보드를 제거하고, 의미 있는 소수의 지표만 남긴다.
  4. 알람 설정: 정상 범위의 상한/하한을 벗어나면 자동으로 담당자에게 알린다.

어떤 대시보드가 유용할지는 사전에 알기 어렵다. 많이 만들고 나서 가치 없는 것을 쳐내는 방식이 실무에서 가장 효과적이다.


3.8 단순 모델의 장점: 분포 변화에 대한 강건성

흥미로운 역설이 있다. 옵션 1(픽셀 변화 감지, 파라미터 1개)은 너무 단순해서 데이터 분포 변화에 매우 강건하다. 여름에 선글라스를 쓰는 사람이 늘어도, 픽셀 변화 비율은 크게 달라지지 않는다.

반면 수천~수만 개 파라미터를 가진 신경망은 "선글라스 없는 사람" 데이터에 과적합할 가능성이 높아, 분포가 변하면 업데이트가 필요하다. 비ML 기반의 단순 시스템이 ML 시스템보다 유지보수가 쉬울 수 있다는 것을 기억해야 한다.


핵심 정리

개념

핵심

AI vs 전통 SW

코드는 통제 가능하지만 데이터는 통제 불가 → 반복적 개발 필수

데이터 수집

속도 우선, 48시간 내 첫 데이터셋 확보

오류 분석

맹목적 데이터 확장이 아닌, 실패 유형별 집중 수집

배포 아키텍처

단순한 필터(VAD) → 고비용 모델의 다단계 파이프라인

모니터링

풍부한 대시보드 → 가지치기 → 알람 설정

데이터 드리프트

세상이 변하면 모델도 업데이트해야 한다

단순 모델의 강건성

파라미터가 적을수록 분포 변화에 강하다


이전 장: 2장 - 지도, 자기지도, 약지도 학습 다음 장: 4장 - 적대적 견고성과 생성 모델