주요 컨텐츠로 이동

광고 분야의 생성형 AI: 세분화를 통한 맞춤형 광고 이미지 제작

Generative AI In Advertising: Custom Ad Images from Segmentation

Published: November 6, 2025

산업5분 소요

Summary

  • 광고 크리에이티브 개인화: Databricks가 시드 이미지, 멀티모달 RAG, GenAI를 결합하여 맞춤형 광고 이미지를 생성하는 방법을 알아보세요.
  • 브랜드 자산에 기반: 사용자 지정 임베딩 및 벡터 검색 기능이 있는 시드 이미지를 사용하여 생성된 크리에이티브가 일관되고 사실적이며 실제 예시와 부합하도록 합니다.
  • 실용적인 데모: 모델 서빙과 AI 에이전트로 구동되는 Databricks 앱에서 엔드투엔드 솔루션을 확인하세요.

오늘날의 광고는 단순히 눈길을 끄는 이미지 그 이상을 요구합니다. 타겟 고객의 취향, 세그먼트, 기대에 실제로 부합하는 크리에이티브가 필요합니다. 이는 고객을 이해한 후의 자연스러운 다음 단계로, 세그먼트의 선호도에 대한 지식을 활용하여 진정으로 공감을 얻는 이미지를 만드는 것입니다(고객에게 맞춤화).

멀티모달 검색 증강 생성(RAG) 은 이를 대규모로 수행할 수 있는 실용적인 방법을 제공합니다. 이는 타겟 세그먼트(예: '야외 활동을 좋아하는 반려견 주인')에 대한 텍스트 기반 이해와 의미상 관련된 실제 이미지의 빠른 검색 및 조회를 결합하는 방식으로 작동합니다. 이렇게 조회된 이미지는 새로운 크리에이티브를 생성하기 위한 컨텍스트 역할을 합니다. 이는 고객 데이터와 고품질 콘텐츠 사이의 격차를 해소하여 결과물이 타겟 고객의 공감을 얻도록 보장합니다.

이 블로그 게시물에서는 최신 AI가 이미지 검색 및 멀티모달 RAG를 통해 광고 크리에이티브를 어떻게 더 현실적이고 관련성 있게 만들 수 있는지 Databricks로 엔드투엔드로 구동되는 전체 과정을 시연합니다. 펫 테마 캠페인을 진행하는 'Bricks'라는 가상의 반려동물 사료 브랜드를 예로 들어 이것이 실제로 어떻게 작동하는지 보여드리겠습니다. 하지만 이와 동일한 기법은 개인화와 시각적 품질이 중요한 모든 산업에 적용할 수 있습니다.

솔루션 개요

이 솔루션은 Unity Catalog, Agent Framework, Model Serving, 배치 Inference, Vector Search, Apps를 활용하여 잠재고객에 대한 이해를 관련성 있고 브랜드에 맞는 시각 자료로 전환합니다. 아래 다이어그램은 아키텍처에 대한 대략적인 개요를 제공합니다.

광고 이미지 생�성 아키텍처
Figure 1: Ad Image Generation architecture
  1. 스토리지 및 거버넌스(Unity Catalog): 모든 원본 이미지와 생성된 광고는 Unity Catalog(UC) 볼륨에 저장됩니다. 또한 배치 처리를 위해 원본 이미지를 Delta 테이블로 수집합니다.
  2. Bring-your-own 임베딩: 경량 CLIP 이미지 인코더 서빙 endpoint 는 이미지를 벡터로 변환합니다. Delta 테이블에 대해 배치 추론 을 실행하여 임베딩을 대규모로 생성한 다음 UC Volume 경로와 함께 다시 저장합니다.
  3. Vector Search 검색: 임베딩은 소스 Delta 테이블에서 자동으로 동기화되어 지연 시간이 짧은 시맨틱 조회를 지원하는 Databricks Vector Search에 인덱싱됩니다. 짧은 텍스트 프롬프트가 주어지면 인덱스는 상위 K개의 UC 경로를 반환합니다.
  4. RAG 에이전트: 도구를 사용하는 챗 에이전트가 텍스트 입력을 받아 반려동물 설명을 제안하고, 텍스트 임베딩을 compute하며, 벡터 검색을 호출해 시드 이미지를 조회한 후, 이미지 생성 모델에 시드를 전달하는 워크플로를 조정합니다.
  5. Databricks 앱: 사용자 친화적인 앱은 사용자에게 에이전트를 노출하고, 사용자가 자신의 세그먼트에 맞는 개인화된 광고 이미지를 생성하도록 안내합니다.

모든 것이 UC를 통해 처리되므로 시스템은 default로 안전하고, (검색 및 생성에 대한 MLflow 추적을 통해) 관찰 가능하며, (모델 교체, 프롬프트 조정으로) 쉽게 발전시킬 수 있습니다. 더 자세히 알아보겠습니다.

스토리지 및 거버넌스(Unity Catalog)

모든 반려동물 이미지 자산(시드 반려동물 이미지, 브랜드 이미지, 최종 광고)은 UC Volume에 저장됩니다. 예:

UC Volumes 는 FUSE 마운트 지점을 통해 이미지 데이터에 효율적인 스토리지 솔루션을 제공하며, 단일 거버넌스 평면을 허용하므로 유용합니다. 노트북, 서빙 Endpoint 또는 Databricks 앱에서 파일에 액세스하는 경우 모두 동일한 ACL이 적용됩니다. 이는 또한 코드에 blob 키가 없다는 것을 의미합니다. 서비스 간에 (바이트가 아닌) 경로를 전달합니다.

빠른 인덱싱과 거버넌스를 위해 Volume을 Delta 테이블로 미러링하여 원시 이미지 바이트(BINARY 열)를 메타데이터와 함께 로드합니다. 그런 다음 이를 모델 서빙 endpoint에 필요한 base64 인코딩 문자열로 변환합니다. 이렇게 하면 임베딩과 같은 다운스트림 배치 Job이 간단하고 효율적으로 처리됩니다.

이제 쿼리 가능한 테이블이 하나가 되었으며, 사람이 읽고 앱에서 사용할 수 있도록 원본 Volume 경로도 보존했습니다.

Bring-your-own 임베딩

CLIP 은 대조 학습을 통해 훈련되어 제로샷 분류 및 검색을 위한 정렬된 이미지-텍스트 임베딩을 생성하는, 트랜스포머 텍스트 인코더 모델을 갖춘 경량 이미지 인코더입니다. 빠르고 재현 가능한 검색을 위해, 온라인 조회와 오프라인 배치 추론 모두에 사용할 수 있는 Databricks Model Serving endpoint 를 통해 CLIP 인코더를 노출합니다. 인코더를 MLflow pyfunc 함수로 간단히 패키지하고, UC 모델로 등록 및 log하고, 사용자 지정 모델 서빙으로 제공한 다음, SQL에서 ai_query 로 호출하여 Delta 테이블의 임베딩 열을 채웁니다.

1단계: CLIP을 MLflow pyfunc로 패키지하기

CLIP ViT-L/14 를 base64 이미지 문자열을 받아 정규화된 벡터를 반환하는 작은 pyfunc로 래핑합니다. 로깅 후, 서빙을 위해 모델을 등록합니다.

2단계: 모델 등록 및 UC에 로깅

MLflow를 사용하여 모델을 로깅하고 UC 모델 레지스트리에 등록합니다.

3단계: 인코더 서빙

등록된 모델에 대한 GPU 서빙 엔드포인트를 생성합니다. 이를 통해 호출할 수 있는 지연 시간이 짧고 버전이 관리되는 API를 얻게 됩니다.

4단계: ai_query를 사용한 배치 추론

이미지가 Delta 테이블에 저장되면 SQL을 사용하여 바로 임베딩을 compute합니다. 그 결과 Vector Search에 사용할 수 있는 image_embeddings 열이 포함된 새 테이블이 생성됩니다.

Vector Search 검색

이미지 임베딩을 Delta에 구체화한 후에는 Databricks Vector Search로 검색할 수 있도록 합니다. 패턴은 자체 관리형 임베딩으로 Delta Sync 인덱스를 생성한 다음, 런타임에 CLIP을 사용하여 텍스트 프롬프트를 임베딩하고 상위 K개 유사성 검색을 실행하는 것입니다. 이 서비스는 작고 구조화된 결과(경로 + 선택적 메타데이터)를 반환하며, 원시 바이트가 아닌 UC Volume 경로를 전달하여 나머지 파이프라인을 가볍고 통제된 상태로 유지합니다.

1단계: 임베딩 테이블 인덱싱하기

벡터 인덱스를 한 번 생성합니다. 임베딩 테이블에서 지속적으로 동기화하며 지연 시간이 짧은 query를 제공합니다.

인덱스가 Delta와 동기화되므로 새로운 임베딩 테이블 행(또는 업데이트된 임베딩 행)은 자동으로 인덱싱됩니다. 테이블과 인덱스 모두에 대한 액세스는 Unity Catalog ACL을 상속하므로 별도의 권한이 필요하지 않습니다.

2단계: 런타임에 상위 K개 후보 쿼리하기

추론 시 텍스트 프롬프트를 임베딩하고 유사도 검색을 통해 상위 3개의 결과를 쿼리합니다.

나중에 에이전트에 결과를 전달할 때 응답을 최소화하고 실행 가능하도록 유지할 것입니다. 사용자가 초기 시드 이미지를 거부하는 경우 에이전트가 인덱스를 다시 쿼리하지 않고 순환할 수 있도록 순위가 매겨진 UC 경로만 반환합니다.

RAG 에이전트

1단계: 이미지 생성 서빙 endpoint(검색 + 생성)

여기서는 짧은 텍스트 프롬프트를 받아 두 단계를 오케스트레이션하는 endpoint를 생성합니다.

  1. 조회: 텍스트를 임베딩하고, Vector Search Index를 쿼리하여 순위 순으로 시드 이미지에 대한 상위 3개의 UC 볼륨 경로를 반환합니다.
  2. 생성: 선택된 시드를 로드하고, 이미지 생성 API를 호출하며, 최종 이미지를 UC 볼륨에 upload한 후 경로를 반환합니다.

이 두 번째 부분은 선택 사항이며, 이미지 생성을 실행할지 또는 조회만 실행할지에 따라 토글로 제어됩니다.

생성 단계에서는 Kontext multi-image max 모델을 사용하여 Replicate를 호출합니다. 이 선택은 실용적입니다.

  • 다중 이미지 조건화: Kontext는 시드 반려동물 사진과 브랜드 이미지를 받아 사실적인 광고를 구성할 수 있습니다.
  • 포토리얼리즘 + 배경 유지: Kontext는 반려동물의 원래 자세와 환경을 유지하면서 제품을 자연스럽게 배치합니다.
  • 품질과 지연 시간: Kontext는 품질과 지연 시간 간의 적절한 균형을 제공합니다. 약 7~10초 만에 비교적 고품질의 이미지를 생성합니다. 우리가 테스트한 gpt-image-1 API를 통한 gpt-4o와 같은 다른 고품질 이미지 생성 모델은 약 50초에서 1분 만에 더 높은 품질의 이미지를 생성합니다.

생성 호출:

UC 볼륨에 다시 쓰기 - 생성기에서 base64를 디코딩하고 Files API를 통해 쓰기:

원하는 경우 Kontext/Replicate를 외부 이미지 API(예: OpenAI) 또는 Databricks에서 제공되는 내부 모델로 파이프라인의 나머지 부분을 변경하지 않고 쉽게 교체할 수 있습니다. _replicate_image_generation 메서드의 내부를 교체하고 입력 계약(반려동물 시드 바이트 + 브랜드 바이트)과 출력(PNG 바이트 → UC upload)을 동일하게 유지하기만 하면 됩니다. 채팅 에이전트, 검색, 앱은 이미지 페이로드가 아닌 UC 경로에서 작동하기 때문에 동일하게 유지됩니다.

2단계: 챗 에이전트

챗 에이전트는 대화 정책을 보유하고 이미지 생성 엔드포인트를 도구로 호출하는 최종 서빙 엔드포인트입니다. 이는 반려동물 유형을 제안하고, 이미지 시드 후보를 검색하며, 사용자가 확인한 후에만 최종 광고 이미지를 생성합니다.

도구 스키마는 최소한으로 유지됩니다.

그런 다음 에이전트가 이미지 생성(image-gen) endpoint를 호출할 수 있는 도구 실행 함수를 만듭니다. 이 endpoint는 구조화된 JSON 응답을 반환합니다.

replicate_toogle 매개변수가 이미지 생성을 제어합니다.

엔드포인트를 분할하는 이유는 무엇인가요?

이미지 생성 엔드포인트와 챗 에이전트 엔드포인트를 분리하는 데에는 몇 가지 이유가 있습니다.

  • 관심사 분리: 이미지 생성 endpoint는 결정론적 서비스입니다(상위 K개 검색 → 선택적으로 하나 생성 → UC 경로 반환). 챗 에이전트 엔드포인트는 정책 및 사용자 경험을 담당합니다. 두 가지 모두 작고 테스트 가능하며 교체 가능하게 유지됩니다.
  • 모듈식 확장성: 에이전트는 나중에 동일한 인터페이스 뒤에 도구를 추가하여(예: 카피 또는 CTA 제안, 구조화된 데이터 검색) 이미지 생성 서비스를 변경하지 않고도 성장할 수 있습니다.

위 내용은 모두 Databricks Agent Framework를 기반으로 구축되었으며, 이 프레임워크는 검색과 생성을 신뢰할 수 있고 통제된 에이전트로 전환하는 데 필요한 도구를 제공합니다. 첫째, 이 프레임워크를 사용하면 이미지 생성 서비스(Vector Search 포함)를 도구로 등록하고 정책/프롬프트에서 결정적으로 호출할 수 있습니다. 또한 프로덕션 스캐폴딩을 즉시 사용할 수 있도록 제공합니다. 채팅 루프에는 ResponsesAgent 인터페이스를 사용하며 모든 단계에서 MLflow 추적 을 사용합니다. 이를 통해 프로덕션 환경에서 다단계 워크플로를 디버깅하고 운영할 때 완전한 관찰 가능성을 확보할 수 있습니다. MLflow 추적 UI 를 통해 이를 시각적으로 탐색할 수 있습니다.

추적 UI의 에이전트
Figure 2: Agent in Tracing UI

Databricks 앱

Streamlit 앱은 사용자가 채팅 에이전트와 대화하고 이미지를 렌더링할 수 있는 단일 대화형 환경을 제공합니다. 이는 우리가 구축한 모든 요소를 결합하여 단일의 통제된 제품 환경으로 만듭니다.

작동 방식:

  • 거버넌스 및 권한: 앱은 Databricks 작업 공간에서 실행되며 채팅 에이전트 엔드포인트와 직접 통신합니다. on-behalf-of 자격 증명을 사용하면 앱이 뷰어의 권한에 따라 Files API를 통해 UC 경로별로 시드/최종 이미지를 download할 수 있습니다. 이를 통해 사용자별 액세스 제어 및 명확한 감사 추적을 제공합니다.
  • 코드로 구성: 앱 설정(예: AGENT_ENDPOINT)은 환경 변수/비밀을 통해 전달됩니다.
  • 명확한 인터페이스: 채팅 화면은 에이전트에게 간결한 응답(Responses) 페이로드를 보내고, UC 볼륨 경로가 포함된 작은 JSON 포인터를 다시 받습니다. 그 다음 UI가 이미지를 다운로드하여 사용자에게 렌더링합니다.

아래는 앱 코드의 두 가지 주요 터치포인트를 보여줍니다. 먼저 에이전트 엔드포인트를 호출합니다.

그리고 UC 볼륨 경로로 렌더링:

엔드투엔드 예시

전체 시스템을 하나로 묶는 단일 흐름을 살펴보겠습니다. 마케팅 담당자가 '젊은 도시 전문가'를 위한 맞춤형 반려동물 광고 이미지를 생성하고 싶어한다고 상상해 보세요.

1. 제안

채팅 에이전트가 세그먼트를 해석하고 프렌치 불독과 같은 반려동물의 종류를 제안합니다.

앱 반려동물 제안
Figure 3: App pet proposal

2. 검색(도구 호출, 생성 안 함)

'예'라고 답하면 에이전트는 검색 모드에서 이미지 생성 endpoint를 호출하고 Vector Search에서 유사도 순으로 순위가 매겨진 상위 3개 이미지(볼륨 경로)를 반환합니다. 앱은 후보 #0을 시드 이미지로 표시합니다.

반려동물 이미지 조회
Figure 4: Pet image retrieval

3. 확인(또는 반복)

사용자가 '괜찮아 보이네요'와 같은 취지의 말을 하면 다음 단계로 진행합니다. 만약 사용자가 “아직 부족해요”라고 말하면, 에이전트는 seed_index 를 1(그다음 2)로 증가시키고 동일한 상위 3개 세트를 재사용하여(추가 벡터 query 없음) 다음 옵션을 보여줍니다. 세 개의 이미지를 본 후에도 사용자가 여전히 만족하지 못하면 에이전트는 새로운 반려동물 설명을 제안하고 다른 Vector Search를 트리거합니다. 이를 통해 UX를 빠르고 결정적으로 유지할 수 있습니다.

4. 생성 및 렌더링

확인 시 에이전트는 replicate_toggle=true 및 동일한 seed_index로 endpoint를 다시 호출합니다. endpoint는 UC에서 선택한 시드 이미지를 읽고 브랜드 이미지와 결합한 다음 Replicate에서 Kontext multi-image-max 생성기를 실행한 후 최종 PNG를 다시 UC 볼륨에 upload합니다. UC 경로만 반환됩니다. 그러면 앱이 이미지를 다운로드하여 사용자에게 다시 렌더링합니다.

반려동물 광고 이미지 생성
Figure 5: Pet ad image generation

결론

이 블로그에서는 멀티모달 RAG가 어떻게 고급 광고 개인화를 가능하게 하는지 보여드렸습니다. 실제 이미지 검색으로 생성을 구체화하는 것은 일반적인 비주얼과 특정 잠재고객의 공감을 얻는 크리에이티브의 차이를 만듭니다. 이를 통해 다음이 가능해집니다.

  • 향상된 시각적 품질: 사진 시드는 텍스트 전용 프롬프트로는 재현하기 어려운 미세한 디테일을 보존합니다.
  • 컨텍스트 정렬: 검색을 통해 장면과 반려동물을 대상 컨텍스트에 고정하여 메시지와 이미지의 일관성을 향상시킵니다.
  • 더 예측 가능한 생성: 다중 이미지 조건 설정(시드 + 브랜드 이미지)은 모델을 제약하여 환각(hallucination)을 줄이고 브랜드 안전성을 개선합니다.
  • 빠른 반복: 상위 3개의 시드를 반환하면 에이전시가 다시 쿼리하지 않고도 순환하며 작업할 수 있습니다. 마케팅 담당자는 프로세스에 계속 참여하여 최종 광고 이미지의 방향을 결정합니다.

Databricks는 확장 가능하고 거버넌스가 적용되는 고성능 애플리케이션을 보장합니다. 이 아키텍처는 플랫폼 내에서 모든 단계가 엔드투엔드로 실행되므로 프로덕션 준비 상태를 유지합니다.

  • Unity Catalog 는 소스 및 생성된 이미지, 테이블, 에이전트 등 모든 것을 관리합니다. 액세스, 감사, 리니지가 일관됩니다.
  • Delta 테이블 + 벡터 검색 은 임베딩을 트랜잭션으로 유지하고 query 지연 시간을 짧게 유지합니다. 다운스트림을 변경하지 않고도 메타데이터별로 다시 임베딩하거나, 다시 인덱싱하거나, 필터링할 수 있습니다.
  • Model Serving + Mosaic AI Agent Framework 는 역할을 분리합니다. 즉, 이미지 생성 endpoint는 결정적 서비스이고 채팅 에이전트는 정책과 도구를 오케스트레이션합니다. 각각 독립적으로 확장, 버전 관리 및 롤백됩니다.
  • Databricks Apps 는 UI를 데이터 및 서비스 옆에 배치하고 MLflow tracing 은 턴 바이 턴(turn-by-turn) 관측 가능성을 제공합니다.

그 결과 고객 인사이트를 고품질의 브랜드에 맞는 크리에이티브로 대규모로 전환하는 모듈식의 거버넌스가 적용된 RAG 에이전트가 탄생합니다.

 

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요