URL: https://www.youtube.com/watch?v=31GUkCBD-Uc 날짜: 2026-07-24 채널: aiDotEngineer
📌 핵심 질문 / 이 영상이 다루는 핵심 논점
Uber Eats의 대규모 멀티모달 에이전트 시스템에서 ==어떻게 "폐쇄 루프 평가(closed-loop evals)"를 설계해, 생성형 AI의 창의성과 안전·신뢰 간 균형을 지속적으로 유지하는가?==
- 에이전트는 단순한 결정론적 시스템이 아니라, 자윭적으로 이미지를 이해하고 편집하며 QA 피드백을 반복 학습하는 구조로 동작한다.
- 모든 평가는 인간 라벨러의 골든 데이터셋, 내부 도그푸딩, 생산 지표라는 세 가지 피드백 루프를 통해 지속적으로 재정렬된다.
- 스위스 치즈 모델(Swiss cheese model)처럼 여러 QA 게이트를 겹쳐 단일 실패가 사용자에게 노출될 확률을 낮추는 방어 설계를 따른다.
- 시스템 전체의 로깅은 평가의 출발점이자 자기 학습의 연료이며, 비기술직과 기술직 모두가 같은 JSON 트레이스로 사례를 진단할 수 있게 한다.
이 발표는 Uber Eats의 음식 사진 향상 파이프라인을 사례로, 멀티모달 에이전트를 평가·진단·개선하는 실전 프레임워크를 공유한다.
1. 배경: Uber Eats에서 왜 멀티모달 에이전트가 필요한가
1.1. Uber Eats의 규모와 비주얼 콘텐츠의 영향력
-
거대한 마켓플레이스 규모
- Uber Eats는 현재 연간 900억 달러 규모의 거래(run rate)를 기록 중이다.
- 매월 수백만 개의 신규 메뉴 아이템이 마켓플레이스에 추가된다.
- 연간 성장률은 20%이며, 전 세계 10,000개 도시에서 운영된다.
- Uber의 모빌리티 사업 못지않게 딜리버리 사업이 매우 큰 비중을 차지한다.
-
비주얼 콘텐츠가 사용자 경험의 첫인상
- 사진은 고객이 가게나 메뉴를 처음 보는 시각적 신호다.
- 좋은 사진은 피드 스크롤에서 클릭, 장바구니 추가로 이어지는 핵심 전환 요인이다.
- 최근에는 사진뿐 아니라 동영상 콘텐츠 같은 다양한 모달리티가 늘어나고 있다.
1.2. 사진 품질 문제와 소상인 상권의 제약
-
소규모 독립 상점의 사진 한계
- 시간 부족, 노하우 부족, 전문 촬영 비용 등 세 가지 장벽이 반복적으로 언급된다.
- 메뉴를 지속적으로 업데이트할 때마다 새 사진이 필요해 비용 문제가 더욱 커진다.
- 결과적으로 선명도, 구도, 색감, 중심 배치 등에서 품질이 낮은 사진이 다수 존재한다.
-
AI 생성 콘텐츠에 대한 사용자 불신
- 상당수 소비자가 AI 생성 이미지를 본능적으로 불신한다.
- Uber Eats 앱이 AI가 만든 음식 사진처럼 보이면 브랜드 신뢰가 손상될 수 있다.
- 따라서 원본 이미지에 충실하면서도(faithful) 품질을 향상시키는 "바늘구멍" 같은 균형이 필요하다.
1.3. 에이전트 설계 목표
-
진정성과 신뢰 보존
- 원본 메뉴 사진의 맥락, 상점 브랜드, 음식 정체성을 유지해야 한다.
- 모든 사진을 동일한 프롬프트로 처리하면 마켓플레이스 다양성이 붕괴되므로 개별화가 필수다.
-
선택적 품질 개선과 글로벌 최적화
- 모든 이미지를 무조건 향상시키는 것이 아니라 향상이 필요한 경우에만 개입한다.
- 특정 상점만 과도하게 개선해 다른 상점을 잠식하지 않도록 전체 마켓플레이스 관점에서 최적화한다.
-
안전한 배포와 지속적 학습
- 가드레일 메트릭을 만족해야만 배포할 수 있다.
- 비용 효율적으로 대규모를 운영하면서도 생산 데이터에서 꾸준히 학습해야 한다.
2. 에이전트 아키텍처: 결정론과 창의성 사이의 균형
2.1. 에이전트 스펙트럼과 설계 원칙
-
규칙 기반과 창의적 에이전트 사이의 긴장
- 한쪽 끝은 결정론적·규칙 기반 시스템으로 제어가 쉽지만 깨지기 쉽고(brittle) 전체 마켓플레이스 확장에는 한계가 있다.
- 다른 쪽 끝은 에이전트에게 지나친 자윭성을 주면 시각적 다양성은 높아지지만 안전과 정책 위반 위험이 커진다.
- Uber는 이 두 극단 사이의 균형점(balancing act)을 찾는 것을 핵심 설계 원칙으로 삼았다.
-
안전·신뢰·다양성을 동시에 충족하는 구조
- 원본 이미지에 충실하면서도 필요할 때만 품질을 개선한다.
- 상점 브랜드와 지역적 특성을 보존한다.
- 글로벌 롱테일 품질 분포를 감안한 적응형 처리가 가능해야 한다.
2.2. 단계별 에이전트 오케스트레이션
-
이미지 이해 및 라우팅 에이전트(Image Understanding & Routing Agent)
- 멀티모달 LLM이 이미지를 보고 묘사(description)를 생성한다.
- 생성된 설명을 바탕으로 구조화된 출력(structured output)을 만든다.
- 라우터(router)는 해당 이미지를 향상(enhance)할 것인지 건너뛸 것인지 결정한다.
- 향상이 필요 없으면 원본을 그대로 유지한다.
-
이미지 편집 에이전트(Image Editing Agent)
- 라우터가 향상으로 보낸 이미지가 여기로 전달된다.
- QA 에이전트로부터 피드백을 받으며 루프를 반복해 자가 수정(self-correct)한다.
- K번 반복 후에도 QA를 통과하지 못하면 해당 이미지는 게시하지 않는다.
-
최종 후처리 및 게시 준비 QA(Post-processing & Publish-ready QA)
- 편집 에이전트를 통과한 이미지가 최종 게이트를 통과해야 실제 메뉴에 노출된다.
- 정책 검사와 추가 품질 검사를 수행한다.
- 스위스 치즈 모델처럼 중복된 방어선을 두어 단일 실패가 사용자에게 전달되지 않도록 한다.
-
전체 로깅(Logging)
- 모든 에이전트의 입출력은 단일 JSON 트레이스에 플랫 구조로 기록된다.
- 엔지니어뿐 아니라 프로덕트·디자인·정책 등 비기술직도 동일한 사례를 보고 진단할 수 있다.
- 로깅은 최적화와 자기 학습 루프의 출발점이므로 처음부터 설계해야 한다.
3. 라우팅 에이전트 평가: 분류기 관점의 정밀도와 재현율
3.1. 라우터의 동작과 혼동 행렬
-
입력과 출력 구조
- 입력은 이미지, 텍스트 메타데이터, 이미지에 대한 멀티모달 설명이다.
- 루브릭(rubric)에 따라 합격/불합격 기준을 적용한다.
- 최종적으로 향상(enhance) 또는 스킵(skip) 중 하나를 선택한다.
-
혼동 행렬(Confusion Matrix) 기반 평가
- 전통적인 2×2 행렬로 정밀도(precision)와 재현율(recall)을 측정한다.
- 참 양성(true positive)은 품질이 낮은 이미지를 정확히 향상으로 보낸 경우다.
- 거짓 음성(false negative)은 품질이 낮은 이미지를 놓쳐 원본 그대로 남기는 경우다.
- 거짓 양성(false positive)은 이미 품질이 높은 이미지를 굳이 향상으로 보내는 경우다.
-
n×n 라우팅 확장 가능성
- 실제 운영에서는 향상/스킵 이진 분류를 넘어 다양한 모델 경로로 라우팅할 수 있다.
- 예를 들어 저지연·저비용 경량 모델로 보낼지, 고품질 대형 모델로 보낼지 선택할 수 있다.
- 이때 혼동 행렬도 n×n으로 확장해 각 경로별 라우팅 정확도를 측정한다.
3.2. 가드레일 메트릭: 재현율 우선
-
라우팅의 핵심 가드레일은 재현율(recall)
- 나쁜 이미지가 시스템을 빠져나가 사용자에게 노출되지 않도록 하는 것이 최우선이다.
- 따라서 재현율이 낮은 모델은 배포 불가능하다.
-
실패 사례의 비용
- 거짓 양성 사례: 이미 훌륭한 치즈버거 사진을 향상으로 보내면 불필요한 연산 비용이 발생하고, 오히려 품질을 떨어뜨릴 위험이 있다.
- 거짓 음성 사례: "8조각 치킨윙" 메뉴명에 실제로는 6조각만 담긴 사진을 통과시키면, 향상 에이전트가 2개를 환각으로 추가해 진정성을 해칠 수 있다.
- 두 사례 모두 비용과 브랜드 신뢰에 직접적인 영향을 준다.
4. 인간 정렬과 드리프트 대응: 지속적인 모델 새로 고침
4.1. 골든 데이터셋 구축과 오프라인 평가
-
인간 라벨을 골든 트루스로 삼는 이유
- Uber는 인간 라벨러(human labelers)의 판단을 가장 신뢰할 수 있는 정답으로 간주한다.
- 라벨링 가이드라인은 객관적이고 명확하게 작성해 라벨러 간 주관적 편향과 노이즈를 제거한다.
- 데이터셋은 다양한 지역, 음식 종류, 이미지 품질, 상점 유형을 대표하도록 샘플링한다.
-
오프라인 튜닝 루프
- 에이전트로부터 출력을 받아 골든 데이터셋과 비교한다.
- 가드레일 메트릭을 충족하면 배포하고, 그렇지 않으면 다시 튜닝한다.
- 이 과정을 반복해 초기 모델을 생산 수준으로 끌어올린다.
4.2. 생산 데이터 기반 자동 재학습
-
드리프트와 롱테일 실패의 불가피성
- 오프라인 데이터셋으로는 모든 실제 사례를 커버할 수 없다.
- 시간이 지나면 메뉴 트렌드, 촬영 환경, 지역적 특성이 변해 모델 성능이 서서히 떨어진다.
- 정적 모델만으로는 시스템이 살아있지 못하므로 지속적인 적응 메커니즘이 필요하다.
-
생산 샘플링과 자동 진단 파이프라인
- 정해진 주기로 생산 데이터를 샘플링해 동일한 라벨러 가이드라인으로 재라벨링한다.
- 에이전트 출력과 인간 라벨 간 불일치를 탐지한다.
- 우산(Umbrella) 진단 에이전트(Diagnosis Agent)가 불일치를 받아 문제가 발생한 모듈을 국소화(localize)한다.
- 국소화된 모듈을 자동 튜닝 파이프라인(Auto-tuning Pipeline)에 연결한다.
-
안전 장치
- 튜닝된 새 에이전트는 먼저 골든 데이터셋에 대해 벤치마크를 통과해야 한다.
- 가드레일 메트릭을 만족해야만 에이전트 저장소(agent store)에 등록된다.
- 관찰 가능성(observability)과 빠른 롤백(quick rollback)이 함께 구비되어 있다.
- 전체 프로세스는 설정(config) 기반이며 인간 개입 없이도 실행 가능하다.
4.3. 프롬프트 옵티마이저 에이전트(Prompt Optimizer Agent)
-
Reflect Agent와 Synthesize Agent의 역할 분리
- Reflect Agent는 불일치 사례를 살펴보며 데이터셋의 노이즈를 제거하고 체계적(systemic) 문제를 도출한다.
- Synthesize Agent는 Reflect Agent의 피드백과 기존 에이전트 설정을 받아 새로운 설정을 생성한다.
- 생성된 설정은 다시 벤치마크에 투입되고, 통과하면 새 버전으로 등록된다.
-
폐쇄 루프(closed-loop)의 실현
- 생산 데이터 → 불일치 탐지 → 진단 → 자동 튜닝 → 골든 데이터셋 검증 → 새 버전 등록의 사이클이 반복된다.
- 이 루프 안에서 에이전트는 인간 정렬을 유지하면서 시간이 지나도 성능을 유지할 수 있다.
5. 이미지 향상과 QA 루프: Pass@K로 측정하는 품질
5.1. 향상 파이프라인의 3단계
-
프롬프트 생성(Prompt Generation)
- 라우터로부터 받은 이미지 설명과 향상 지시를 입력으로 받는다.
- 이미지별로 어떤 부분을 개선해야 하는지 특화된 프롬프트를 생성한다.
- 동일한 프롬프트를 모든 이미지에 적용하지 않는다.
-
이미지 향상(Enhancement)
- 생성된 프롬프트를 바탕으로 이미지를 편집한다.
- 사용 모델은 최신 멀티모달 이미지 생성·편집 모델이다.
-
QA 게이트와 재시도 루프
- QA 게이트는 플레이팅(plating), 충실성(faithfulness), 색감 등 여러 차원을 동시에 평가한다.
- 통과하지 못하면 QA 피드백을 프롬프트 생성 단계로 되돌려 다시 향상한다.
- K번 반복 후에도 실패하면 해당 이미지는 향상되지 않고 원본이 유지된다.
5.2. Pass@K 메트릭과 향상 사례
-
Pass@K의 정의
- Pass@K는 K번째 반복까지 시도했을 때 최종 QA를 통과하는 비율을 의미한다.
- 반복 횟수가 늘어날수록 피드백이 축적되어 통과율이 상승할 것으로 기대한다.
- 반면 반복 횟수가 늘어날수록 지연 시간과 비용도 증가하므로 트레이드오프가 있다.
-
고구마 튀김 사례
- 첫 번째 반복에서는 양이 부족하고 플레이팅이 비현실적이라고 QA가 거부했다.
- QA 피드백을 반영해 두 번째 반복에서 통과했다.
- 이 예시는 단순히 한 번에 끝나지 않고 피드백 루프가 실제 품질 향상으로 이어짐을 보여준다.
5.3. Pairwise 비교 기반 평가
-
비교 평가의 원리
- 입력 이미지와 출력 이미지를 짝(pair)으로 비교해 출력이 더 나은지 판단한다.
- 결과는 "예(yes)", "아니오(no)", "불확실(unsure)" 세 가지로 분류된다.
-
"더 나은"의 기준 내재화
- Uber는 프로덕트, 디자인, 정책, 법무팀의 기대치를 모아 플랫폼에서 정의하는 "좋은 사진"을 평가 기준에 녹인다.
- 주요 기준으로 충실성(faithfulness), 완전성(completeness), 자연스러움(natural), 사실감(realistic) 등이 언급된다.
- 단순한 픽셀 차이가 아니라 비즈니스·정책 관점에서 의미 있는 향상인지를 평가한다.
6. 향상 에이전트의 실패 모드와 근본 원인
6.1. 충실성과 완전성 위반
-
원본에 없는 요소 추가
- 입력 사진에는 새우가 없었는데 출력 사진에 새우가 추가된 사례가 있다.
- 이는 faithfulness 메트릭에서 실패한 것이며, 사용자에게 잘못된 기대를 심어줄 수 있다.
-
원본 요소 누락
- 입력 초밥 사진 하단에 소스가 있었는데 출력에서 제거된 사례가 있다.
- 이는 completeness 메트릭에서 실패한 것이며, 메뉴에 대한 정보 손실을 의미한다.
6.2. 보상 해킹과 모델 한계의 유출
-
과도하게 보수적인 보상 해킹(Reward Hacking)
- 첫 번째 반복에서 창의적 편집을 시도했으나 QA가 거절했다.
- 두 번째 반복에서 에이전트는 너무 보수적으로 돌아서 일반적인 도자기 그릇으로 되돌렸다.
- 픽셀 차이는 크지만 실제 비즈니스 의미는 거의 없는 "무의미한 변경(nugatory change)"이다.
- 이는 QA 피드백을 "이기는" 방향으로 학습한 보상 해킹의 한 예시다.
-
프론티어 모델의 한계가 실제 서비스로 전파되는 경우
- 출력에서 접시가 소스를 가려버린 사례가 있다.
- 이는 이미지 생성 모델 자체의 물리적 일관성·물체 일관성(object coherence, physics plausibility) 문제가 상위 파이프라인에 그대로 드러난 것이다.
- Uber는 이런 문제를 프론티어 모델 팀과 공유해 모델 개선에 기여한다.
6.3. 멀티모달 카운팅의 어려움
- ** wonton(완탕) 개수 불확실 사례**
- 입력 사진에 8개의 완탕이 있는지 명확히 보이지 않았다.
- 모델이 확신할 수 없는 경우에는 메뉴에 게시하지 않고 원본을 유지한다.
- 이는 멀티모달 이해가 단순 이미지 품질 개선을 넘어 개수·텍스트·맥락을 모두 정확히 이해해야 함을 보여준다.
7. 최종 게시 QA와 다층 피드백 루프
7.1. Publish-ready QA: 스위스 치즈 모델
-
왜 마지막 단계에서 한 번 더 QA를 하는가
- 이전 단계에서 이미 QA를 수행했지만, 단일 게이트만으로는 실패가 빠져나갈 수 있다.
- 스위스 치즈 모델처럼 여러 겹의 방어선을 두어 단일 실패가 사용자에게 노출될 확률을 기하급수적으로 낮춘다.
- 마지막 QA는 더 포괄적(holistic)이며, 정책 위반과 상위 단계에서 놓친 품질 문제를 추가로 검출한다.
-
게시 QA의 범위
- 정책(policy) 검사를 수행한다.
- 시각적 품질, 충실성, 브랜드 일관성 등을 추가로 확인한다.
- 상위 게이트에서 놓쳤을 수 있는 문제를 다시 한번 잡아낸다.
7.2. 세 가지 피드백 루프의 통합
-
모델 루프(Model Loop)
- 인간 라벨러의 골든 데이터셋과 정기적으로 재정렬한다.
- 드리프트와 롱테일 실패를 자동 진단·자동 튜닝으로 해결한다.
-
내부 도그푸딩 루프(Internal Dogfooding Loop)
- Uber 직원들이 실제 앱에서 기능을 사용해보며 엄지척/엄지down과 자유 형식 피드백을 남긴다.
- 상인, 디자인팀, 다른 프로덕트팀의 피드백도 수집한다.
- 피드백은 진단 에이전트로 들어가 설정 튜닝의 입력이 된다.
- 긍정/부정 사례를 모두 재생(replay)해 새 설정의 메트릭을 벤치마크한 뒤 배포한다.
-
생산 지표 루프(Production Metrics Loop)
- 실제 마켓플레이스에서 전환율(conversion), 장바구니 추가, 주문 완료율 등을 추적한다.
- 지역, 기기 유형, 음식 종류 등으로 세분해 어떤 세그먼트에서 효과가 있는지 분석한다.
- 세그먼트별 개선점을 발견하면 해당 부분을 집중적으로 튜닝한다.
7.3. 상위 진단 에이전트(Diagnoser)의 추상화
-
통합된 진단 계층
- 모델 루프, 도그푸딩, 생산 지표 등 다양한 피드백 소스를 한 곳에서 받는다.
- Diagnoser는 어떤 에이전트(들)가 최적화되어야 하는지 판단한다.
- 하나의 에이전트일 수도, 여러 에이전트일 수도 있다.
-
일반화된 개선 사이클
- 다양한 피드백을 동일한 진단·튜닝 인프라로 처리할 수 있도록 추상화했다.
- 이를 통해 새로운 피드백 소스가 추가되더라도 시스템 전체를 다시 설계할 필요가 없다.
주요 발언 모음
"We do about 90 billion run rate per year at the moment." "Visual content actually plays a really important role for the user experience. A photo is quite often the first signal that a customer gets." "We need to be able to stay faithful to the original image, preserve the brand of the merchant, and avoid everything looking the same." "We want to find a balancing act." "You want to start with your logging because if you don't start with it, you have nothing to optimize for, let alone set up a self-learning loop." "For routing, our guardrail metric is recall. We don't want any bad image to slip through our system." "This is completely config driven and doesn't require human in the loop. Your diagnoser agent can write your config and trigger the auto-tuning pipeline here." "Pass at K is essentially the pass rate at Kth iteration." "We think of this like a Swiss cheese model. We want to try and optimize for reducing the chance of a failure getting into production." "We can slice by geos, by device type, by dish type, etc., and we can look at where things are improving in different segments."
핵심 데이터 & 수치
- 연간 거래 규모: Uber Eats는 현재 연간 900억 달러 run rate를 기록 중이다.
- 메뉴 증가 속도: 매월 수백만 개의 신규 아이템이 마켓플레이스에 추가된다.
- 성장률 및 범위: 연간 20% 성장, 전 세계 10,000개 도시 운영.
- 라우팅 가드레일: 재현율(recall)을 최우선 메트릭으로 설정해 불량 이미지가 빠져나가지 않도록 한다.
- 향상 반복 한도: K번의 QA-향상 루프 후에도 통과하지 못하면 원본을 유지한다.
- 평가 분류: pairwise 비교 결과를 yes/no/unsure 세 범주로 나눈다.
결론 및 시사점
- 멀티모달 에이전트를 운영 환경에 배포하려면 단순히 모델 성능뿐 아니라 평가(eval), 진단(diagnosis), 학습(loop) 인프라를 함께 설계해야 한다.
- 라우터·편집·QA·후처리 단계마다 명확한 메트릭과 가드레일을 두고, 특히 재현율과 충실성 같은 신뢰 관련 메트릭을 우선해야 한다.
- 인간 라벨 기반 골든 데이터셋, 내부 도그푸딩, 생산 지표라는 세 가지 피드백 루프를 하나의 진단 계층으로 통합하면 시스템이 시간이 지나도 스스로 정렬할 수 있다.
- 로깅은 최적화와 학습의 전제조건이며, 처음부터 플랫하고 누구나 읽을 수 있는 구조로 설계해야 한다.
- 스위스 치즈 모델처럼 중복된 QA 게이트를 두는 것은 AI 생성 콘텐츠의 위험을 관리하면서도 창의성을 살리는 실용적인 방어 전략이다.
