Amazon Bedrock으로 구축한 자가 학습 생성형 AI: 카탈로그 팀의 대규모 시스템 아키텍처
Amazon 카탈로그 팀이 Amazon Bedrock을 활용하여 비용을 절감하면서 정확도를 지속적으로 개선하는 자가 학습 생성형 AI 시스템을 구축한 방법을 상세히 알아봅니다.
3줄 요약
- Amazon 카탈로그 팀이 Amazon Bedrock을 활용해 비용 절감과 정확도 향상을 동시에 달성하는 자가 학습 생성형 AI 시스템을 구축했습니다.
- 여러 소형 모델의 불일치(disagreement)를 학습 신호로 활용하고, 감독자 에이전트가 이를 해결하며 재사용 가능한 지식을 축적하는 아키텍처를 설계했습니다.
- 동적 지식 베이스와 생성자-평가자 패턴을 통해 수동 개입 없이 도메인 특화 전문성을 자동으로 축적합니다.
📌 주요 내용
Amazon Bedrock 기반 자가 학습 시스템의 혁신
Amazon.com 카탈로그는 모든 고객의 쇼핑 경험의 기반으로, 검색, 추천, 발견을 지원하는 속성들이 포함된 제품 정보의 결정적 소스입니다. 판매자가 새 제품을 등록할 때, 카탈로그 시스템은 치수, 재질, 호환성, 기술 사양과 같은 구조화된 속성을 추출해야 하며, 동시에 고객 검색 방식에 맞는 제목과 같은 콘텐츠를 생성해야 합니다.
Amazon 카탈로그 팀은 Amazon Bedrock을 활용하여 대규모로 비용을 절감하면서 정확도를 지속적으로 개선하는 자가 학습 시스템을 구축했습니다. 이 시스템은 전통적인 수동 개입 방식의 한계를 극복하고, 실제 사용을 통해 도메인 지식을 자동으로 축적합니다.
해결해야 할 과제
생성형 AI 배포 환경에서 모델 성능을 개선하려면 지속적인 관심이 필요합니다. 모델이 수백만 개의 제품을 처리하면서 필연적으로 엣지 케이스, 진화하는 용어, 정확도가 저하될 수 있는 도메인별 패턴을 만나게 됩니다.
전통적 접근 방식은 응용 과학자들이 실패 사례를 분석하고, 프롬프트를 업데이트하며, 변경 사항을 테스트하고 재배포하는 방식이었습니다. 이는 효과적이지만 리소스 집약적이며, 실제 환경의 대규모 데이터와 다양성을 따라잡기 어렵습니다.
Amazon 카탈로그 팀이 직면한 트레이드오프는 다음과 같았습니다:
- 대형 모델: 정확도는 높지만 대규모 처리에 비효율적
- 소형 모델: 비용 효율적이지만 복잡하고 모호한 케이스 처리에 어려움
혁신적인 솔루션 아키텍처
돌파구는 비전통적인 실험에서 나왔습니다. 단일 모델을 선택하는 대신, 여러 개의 소형 모델을 배포하여 동일한 제품을 처리하게 했습니다.
핵심 인사이트:
- 모델들이 속성 추출에 합의하면 결과를 신뢰할 수 있습니다
- 모델들이 불일치할 때, 이는 복잡성의 지표이자 학습 기회입니다
- 불일치는 항상 오류는 아니지만, 거의 항상 복잡성을 나타냅니다
자가 학습 시스템의 작동 원리
시스템의 핵심 구성 요소는 다음과 같습니다:
- 워커 모델 (Worker Models): 여러 경량 모델이 병렬로 작동
- 생성자(Generator): 속성 추출
- 평가자(Evaluator): 추출 내용 평가
- Amazon Nova Lite와 같은 효율적인 모델 사용
- 감독자 에이전트 (Supervisor Agent):
- Anthropic Claude Sonnet과 같은 더 강력한 모델
- 불일치 해결 및 원인 조사
- 재사용 가능한 학습 내용 생성
- 동적 지식 베이스:
- 학습 내용을 계층적으로 구조화
- LLM 기반 메모리 관리자가 지식 트리 탐색
- 워커 프롬프트에 관련 학습 내용 자동 주입
생성자-평가자 패턴의 장점
생성자-평가자 패턴은 GAN(Generative Adversarial Networks)의 생산적 긴장과 개념적으로 유사하지만, 학습이 아닌 추론 시점에 프롬프팅을 통해 작동합니다.
평가자는 명시적으로 비판적이 되도록 프롬프트되며, 다음을 정밀 조사합니다:
- 모호성
- 누락된 컨텍스트
- 잠재적 오해석
생성자와 평가자가 합의하면:
- 결과에 대한 높은 신뢰도 확보
- 최소 계산 비용으로 처리
- 대부분의 제품 속성 처리
생성자와 평가자가 불일치하면:
- 조사할 가치가 있는 케이스 식별
- 감독자 트리거
- 재사용 가능한 학습 내용 추출
AWS 서비스를 활용한 구현
시스템은 다음 AWS 서비스를 활용하여 구축됩니다:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
┌─────────────────────────────────────────────────┐
│ 제품 데이터 입력 │
└──────────────┬──────────────────────────────────┘
↓
┌──────────────────────────────────────────────────┐
│ 생성자-평가자 워커 │
│ (Amazon EC2 / Amazon Bedrock Runtime) │
│ - Amazon Nova Lite (소형 모델) │
└──────┬───────────────────────┬───────────────────┘
│ 합의 │ 불일치
↓ ↓
┌──────────┐ ┌─────────────────────────┐
│ 직접 저장 │ │ 감독자 에이전트 │
└──────────┘ │ (Bedrock AgentCore) │
│ - Claude Sonnet │
└──────┬──────────────────┘
↓
┌─────────────────────────┐
│ 학습 집계 및 메모리 관리자 │
│ (Amazon DynamoDB) │
└──────┬──────────────────┘
↓
┌─────────────────────────┐
│ 워커 프롬프트에 주입 │
└─────────────────────────┘
핵심 AWS 서비스:
- Amazon Bedrock: 다양한 기초 모델 액세스 제공
- Amazon EC2: 오픈소스 소형 모델 배포 (비용 효율성)
- Bedrock AgentCore: 감독자 에이전트 런타임, 메모리 관리, 관찰성
- Amazon DynamoDB: 지식 베이스 저장
- Amazon SQS: 인간 검토 큐
- Amazon CloudWatch: 관찰성 및 모니터링
불일치를 기회로 전환하는 핵심 인사이트
디버깅 세션 중 관점의 전환이 일어났습니다. 여러 소형 모델이 제품 속성에 대해 불일치할 때, 처음에는 이를 실패로 여겼습니다. 하지만 데이터는 다른 이야기를 말해주었습니다.
데이터가 보여준 패턴:
- 소형 모델들이 불일치한 제품 = 더 많은 수동 검토가 필요한 케이스와 상관관계
- 불일치 = 추가 조사가 필요한 제품
- 불일치 = 학습 기회
불일치의 세 가지 소스:
- 추론 시점: AI 워커 간 불일치
- 판매자 피드백: 리스팅 업데이트 및 이의 제기
- 고객 피드백: 반품 및 부정적 리뷰
모든 불일치 신호는 동일한 학습 파이프라인에 입력되며, 감독자가 패턴을 조사하고 유사한 문제를 예방하는 학습 내용을 생성합니다.
최적의 불일치율 찾기
적정 불일치율 (Sweet Spot):
- 의미 있는 패턴을 나타낼 만큼 높음
- 해결 가능한 모호성을 나타낼 만큼 낮음
불일치율이 너무 낮을 때:
- 노이즈 또는 근본적인 모델 한계 반영
- 학습 가능한 패턴보다는 잡음
- 더 강력한 워커 고려 필요
불일치율이 너무 높을 때:
- 워커 모델 또는 프롬프트가 아직 성숙하지 않음
- 과도한 감독자 호출 발생
- 아키텍처의 효율성 이득 저해
계층적 지식 베이스의 확장성
감독자는 개별 제품 수준에서 불일치를 조사합니다. 수백만 개의 항목을 처리하기 위해, 제품별 인사이트를 재사용 가능한 학습 내용으로 변환하는 확장 가능한 방법이 필요합니다.
집계 전략:
- 대량 패턴 → 광범위한 학습으로 합성
- 고유하거나 중요한 케이스 → 개별적으로 보존
계층적 구조:
1
2
3
4
5
6
7
루트
├── 카테고리 A
│ ├── 서브카테고리 A1
│ │ └── 학습 내용
│ └── 서브카테고리 A2
└── 카테고리 B
└── 학습 내용
LLM 기반 메모리 관리자는 지식 트리를 탐색하며 각 학습을 배치합니다:
- 기존 경로 계속 진행
- 새 분기 생성
- 기존 지식과 병합
- 오래된 정보 교체
추적 가능성의 장점:
- 추출이 잘못된 것처럼 보일 때, 어떤 학습이 영향을 미쳤는지 정확히 파악
- 수백만 개의 출력 샘플 검토 대신 지식 베이스 자체를 감사
- 인간의 노력이 규모에 비례하지 않고 일정하게 유지
- 도메인 전문가가 항목을 추가하거나 개선하여 직접 기여 가능
👨💻 개발자에게 미치는 영향
자가 학습 아키텍처의 적용 시나리오
이 아키텍처가 가장 효과적인 경우:
- 대량 추론: 입력 다양성이 복합적 학습을 유도
- 품질 중심 애플리케이션: 합의가 자연스러운 품질 보증 제공
- 진화하는 도메인: 새로운 패턴과 용어가 지속적으로 등장
부적합한 경우:
- 저용량 시나리오 (학습을 위한 불일치 부족)
- 고정되고 변하지 않는 규칙이 있는 사용 사례
성공을 위한 핵심 요소
1. 불일치 정의하기
1
2
3
생성자-평가자 쌍: 평가자가 추출에 개선이 필요하다고 플래그 지정할 때 불일치 발생
여러 워커: 임계값을 적절히 조정
핵심: 워커 간 생산적 긴장 유지
2. 학습 효과 추적
- 핵심 건강 지표: 불일치율이 시간 경과에 따라 감소해야 함
- 불일치율이 평평하게 유지되면: 지식 검색, 프롬프트 주입, 평가자 비판성 확인
3. 지식 구성
- 학습 내용을 계층적으로 구조화
- 실행 가능하게 유지
- 추상적 가이드는 도움이 되지 않음
- 구체적이고 명확한 학습이 미래 추론을 직접 개선
일반적인 함정 피하기
비용 대신 지능에 집중:
- 비용 절감은 부산물이지 목표가 아닙니다
- 시스템의 학습 능력이 핵심입니다
고무도장 평가자 피하기:
- 생성자 출력을 단순히 승인하는 평가자는 의미 있는 불일치를 나타내지 못합니다
- 평가자가 적극적으로 도전하고 비판하도록 프롬프트해야 합니다
학습 추출 부실:
- 감독자는 개별 케이스를 수정하는 것이 아니라 일반화 가능한 패턴을 식별해야 합니다
지식 부패 (Knowledge Rot):
- 구성 없이는 학습이 검색 불가능하고 사용 불가능해집니다
- 지속적인 관리와 구조화 필요
배포 전략: 두 가지 접근법
1. 학습 후 배포 (Learn-then-Deploy)
1
2
3
4
5
6
7
8
9
10
단계:
1. 기본 프롬프트로 시작
2. 사전 프로덕션 환경에서 적극적으로 학습
3. 도메인 전문가가 지식 베이스 감사
4. 검증된 학습으로 배포
적합한 경우:
- 새로운 사용 사례 (무엇이 '좋은지' 아직 모를 때)
- 불일치가 올바른 패턴을 발견하는 데 도움
- 프로덕션 전에 패턴을 형성할 수 있음
2. 배포 후 학습 (Deploy-and-Learn)
1
2
3
4
5
6
7
8
단계:
1. 개선된 프롬프트와 좋은 초기 품질로 시작
2. 프로덕션에서 지속적으로 학습하며 개선
적합한 경우:
- 잘 이해된 사용 사례
- 품질을 사전에 정의할 수 있음
- 도메인별 뉘앙스를 시간 경과에 따라 포착하고자 할 때
두 접근법 모두 동일한 아키텍처를 사용하며, 선택은 새로운 영역을 탐색하는지 익숙한 영역을 최적화하는지에 따라 달라집니다.
Amazon Bedrock AgentCore의 주요 기능
프로덕션 환경에서 이 아키텍처를 구현하려는 팀을 위해 Amazon Bedrock AgentCore는 다음과 같은 목적별 기능을 제공합니다:
1. AgentCore Runtime
- 일상적인 케이스에 대한 빠른 합의 결정 처리
- 감독자가 복잡한 불일치를 조사할 때 확장된 추론 지원
2. AgentCore Observability
- 어떤 학습이 영향을 미치는지에 대한 가시성 제공
- 팀이 지식 전파를 개선하고 대규모 신뢰성 유지에 도움
핵심 성공 지표
북극성 지표 (North Star Metric):
1
2
3
4
5
6
7
8
감소하는 불일치율 = 시스템이 진정으로 학습하고 있음
시간 경과에 따른 기대 패턴:
초기: 높은 불일치율
→ 학습 축적
→ 불일치율 감소
→ 감독자 호출 감소
→ 비용 절감 + 정확도 향상
이 자가 학습 아키텍처는 단순히 AI를 확장하는 것이 아니라, AI 시스템에 제도적 지식을 구축하는 것입니다. 개발자들은 이 패턴을 활용하여 재훈련 없이 실제 사용을 통해 도메인 전문성을 자동으로 축적하는 시스템을 구축할 수 있습니다.
