주요 컨텐츠로 이동

문맥 기반 콘텐츠 배치를 위한 광고 속 AI 에이전트

Databricks를 사용하여 문맥에 맞는 콘텐츠 배치를 지원하는 AI 에이전트 생성하기

AI Agents In Advertising for Contextual Content Placement

Published: October 22, 2025

솔루션8분 소요

Summary

  • 키워드 방식에서 벗어나기. Databricks의 AI 에이전트가 콘텐츠 배치를 위한 완벽한 문맥적 순간을 찾는 방법을 알아보세요.
  • 더 스마트한 광고 파이프라인 구축. 멀티모달 모델, Unity Catalog, 벡터 검색을 사용하여 콘텐츠 코퍼스를 분석하는 아키텍처를 알아보세요.
  • 실용적인 실제 사례. 영화 대본을 활용하여 더 나은 광고 경험을 제공하는 이 접근 방식이 어떻게 작동하는지 확인해 보세요.

소개

기존의 키워드 기반 문맥 콘텐츠 게재 방식은 풍자와 같이 미묘한 의미나 명확하지 않은 연관성을 놓치는 경우가 많기 때문에 광고를 게재할 적절한 위치를 찾는 것은 매우 어려운 일입니다. 이 블로그에서는 Databricks를 기반으로 구축된 AI 에이전트가 이러한 한계를 넘어 매우 미묘하고 깊이 있는 문맥적 콘텐츠 배치를 달성하는 방법을 보여줍니다.

영화 및 TV 스크립트의 맥락에서 콘텐츠가 가장 큰 영향력을 발휘할 특정 장면과 순간을 파악하여 이를 수행하는 방법을 살펴보겠습니다. 이 특정 예시에 초점을 맞추고 있지만, 이 개념은 TV 스크립트, 오디오 스크립트(예: 팟캐스트), 뉴스 기사 또는 블로그를 포함한 더 광범위한 미디어 데이터 카탈로그에 일반화하여 적용될 수 있습니다. 또는 프로그래매틱 광고를 위해 이를 재구성할 수도 있습니다. 이 경우 입력 데이터에는 광고 콘텐츠 코퍼스와 관련 메타데이터 및 배치가 포함되며, 에이전트는 직접적인 프로그래매틱 또는 광고 서버 기반 배치를 통해 최적화된 배치를 위해 사용할 적절한 태그를 생성합니다.

솔루션 개요

이 솔루션은 Agent Framework, Vector Search, Unity Catalog 및 MLflow 3.0을 사용한 에이전트 평가를 포함한 Databricks의 최신 AI 에이전트 툴링 기술을 활용합니다. 아래 다이어그램은 아키텍처의 개요를 보여줍니다.

콘텐츠 게재 솔루션 아키텍처 다이어그램
Figure 1. content placement Solution Architecture
  1. 데이터 소스: 클라우드 스토리지 또는 외부 시스템에 저장된 영화 대본 또는 미디어 콘텐츠
  2. 데이터 전처리: 비정형 텍스트를 수집, 파싱, 정제 및 청킹합니다. 그런 다음 처리된 텍스트 청크에서 임베딩을 생성하고 리트리버 도구로 사용하기 위해 Databricks Vector Store에 인덱싱합니다.
  3. 에이전트 개발: 콘텐츠 배치 에이전트는 Unity Catalog 함수, LangGraph, MLflow 및 선택한 LLM(이 예시에서는 Claude 모델 사용)으로 래핑된 벡터 검색 리트리버 도구를 활용합니다.
  4. 에이전트 평가: LLM 심사위원, 사용자 지정 심사위원, 사람의 피드백 및 반복적인 개발 루프를 통해 에이전트 품질이 지속적으로 향상됩니다.
  5. 에이전트 배포: Agent Framework는 에이전트를 Databricks 모델 서빙 엔드포인트에 배포하며, AI Gateway를 통해 거버넌스, 보안 및 모니터링이 이루어집니다.
  6. 앱 사용: Databricks Apps, 맞춤형 앱 또는 기존 광고 기술 스택을 통해 최종 사용자에게 Agent를 노출하고, 모든 사용자 피드백과 로그를 Databricks에 기록하여 지속적인 품질 개선을 위해 사용합니다.

실용적인 관점에서 이 솔루션을 통해 광고 판매자는 설명을 기반으로 콘텐츠 코퍼스 내에서 광고 콘텐츠를 삽입하기에 가장 좋은 위치를 자연어로 질문할 수 있습니다. 따라서 이 예시에서는 데이터세트에 대량의 영화 대본이 포함되어 있으므로 에이전트에게 “반려동물 사료 광고를 어디에 배치할 수 있나요? 광고는 그릇에서 밥을 먹는 비글의 이미지입니다”라고 질문하면, 에이전트가 '에어 버드' 또는 '말리와 나'와 같은 유명한 강아지 영화의 특정 장면을 반환할 것으로 기대할 수 있습니다.

다음은 에이전트의 실제 예시입니다.

Databricks 에이전트의 쿼리 및 응답
Figure 2. Example query & response from agent in Databricks Playground environment

이제 솔루션에 대해 개괄적으로 이해했으니 에이전트를 빌드하기 위해 데이터를 준비하는 방법을 자세히 살펴보겠습니다.

데이터 전처리

문맥 기반 배치를 위한 영화 데이터 전처리
에이전트에 검색 증강 생성(RAG)이라는 기법인 검색 도구를 추가할 때 데이터 처리 파이プ라인은 높은 품질을 달성하기 위한 중요한 단계입니다. 이 예시에서는 강력한 비정형 데이터 파이프라인을 구축하기 위한 모범 사례 를 따르며, 여기에는 일반적으로 네 가지 단계가 포함됩니다.

  1. 파싱
  2. 청킹
  3. 임베딩
  4. 인덱싱

이 솔루션에 사용하는 데이터 세트에는 1,200개의 전체 영화 대본이 포함되어 있으며, 이를 개별 텍스트 파일로 저장합니다. 광고 콘텐츠를 가장 문맥에 맞는 방식으로 삽입하기 위해, 전처리 전략으로 영화 자체가 아닌 영화의 특정 장면을 추천합니다.

사용자 지정 장면 파싱

먼저 원본 대본을 파싱하여 각 대본 파일을 개별 장면으로 분할하며, 표준 시나리오 작성 형식을 장면 구분 기호(예: 'INT', 'EXT' 등)로 사용합니다. 이를 통해 관련 메타데이터를 추출하여 데이터 세트를 보강하고 원본 대본과 함께 Delta 테이블에 저장할 수 있습니다(예: 제목, 장면 번호, 장면 위치).

장면 인식 고정 길이 청킹 전략

다음으로, 짧은 길이의 장면을 검색하는 것은 이 사용 사례에서 큰 가치를 제공하지 않으므로, 이러한 장면은 필터링하면서 정제된 장면 데이터에 고정 길이 청킹 전략을 구현합니다.

참고: 처음에는 전체 스크립트보다 나을 수 있는 고정 길이 청크를 고려했지만, 장면 구분 기호로 분할하자 응답의 관련성이 크게 향상되었습니다.

Vector Search 리트리버 생성

다음으로, 배포 및 사용 편의성을 위해 내장된 Delta-Sync 및 Databricks 관리형 임베딩을 활용하여 장면 수준 데이터를 Vector Search Index에 로드합니다. 이는 대본 데이터베이스가 업데이트되면 데이터 새로고침을 수용하기 위해 해당 Vector Search 인덱스도 업데이트된다는 의미입니다. 아래 이미지는 한 편의 영화('내가 널 사랑할 수 없는 10가지 이유')가 장면별로 나뉘어 있는 예시를 보여줍니다. Vector Search를 사용하면 정확히 일치하는 키워드가 없더라도 에이전트가 광고 콘텐츠의 설명과 의미상으로 유사한 장면을 찾을 수 있습니다.

장면별로 나눈 전처리된 영화 대본
Figure 3. Example of preprocessed movie scripts, broken down into scenes


엔드포인트, 소스 테이블, 임베딩 모델, Unity Catalog 위치를 정의하는 몇 줄의 코드만으로 고가용성의 거버넌스가 적용된 Vector Search 인덱스를 간단하게 생성할 수 있습니다. 이 예시의 인덱스 생성에 대한 내용은 아래 코드를 참조하세요. 

이제 데이터가 정리되었으니 콘텐츠 배치 에이전트 구축을 진행할 수 있습니다.

에이전트 개발

Databricks의 Agentic AI의 핵심 원칙은 LLM에 기업 데이터에 대해 효과적으로 추론하는 데 필요한 도구를 갖추게 하여 데이터 인텔리전스를 실현하는 것입니다. LLM에 전체 엔드투엔드 프로세스를 수행하도록 요청하는 대신, 특정 작업을 도구와 함수에 오프로드하여 LLM을 지능형 프로세스 오케스트레이터로 만듭니다. 이를 통해 사용자의 시맨틱 의도를 이해하고 문제 해결 방법을 추론하는 강점에만 집중하여 사용할 수 있습니다.

이 애플리케이션에서는 벡터 검색 인덱스를 사용하여 사용자 요청에 따라 관련 장면을 효율적으로 검색합니다. 이론적으로는 LLM의 자체 지식 기반을 사용해 관련 장면을 검색할 수도 있지만, Vector Search 인덱스 접근 방식을 사용하는 것이 Unity Catalog에서 관리되는 엔터프라이즈 데이터로부터의 검색을 보장하므로 더 실용적이고 효율적이며 안전합니다.

참고로 에이전트는 함수 정의의 주석을 사용하여 사용자 문의 시 함수를 호출할 시기와 방법을 식별합니다. 아래 코드는 Vector Search 인덱스를 표준 Unity Catalog SQL 함수로 래핑하여 에이전트의 추론 프로세스에서 사용할 수 있는 도구로 만드는 방법을 보여줍니다. 

이제 에이전트가 정의되었으니 다음 단계는 무엇일까요?

에이전트 평가: MLflow로 에이전트 품질 측정하기

팀이 에이전트 애플리케이션을 프로덕션에 도입하는 데 있어 가장 큰 장애물 중 하나는 에이전트의 품질과 효율성을 측정하는 것입니다. 프로덕션 배포에서는 주관적인 '분위기' 기반의 평가는 허용되지 않습니다. 팀은 애플리케이션이 예상대로 작동하는지 확인하고 반복적인 개선을 유도하기 위해 정량적인 방법이 필요합니다. 이 모든 질문은 제품팀과 개발팀의 밤잠을 설치게 할 것입니다. Databricks의 MLflow 3.0으로 에이전트 평가를 시작합니다. MLflow 3.0은 모델 추적, 평가, 모니터링, 프롬프트 레지스트리를 포함하여 엔드투엔드 에이전트 개발 수명 주기를 관리하기 위한 강력한 도구 모음을 제공합니다. 

Databricks의 LLM Judges 개요

평가 기능을 통해 기본 제공 LLM-judges 를 활용하여 사전 정의된 메트릭에 대한 품질을 측정할 수 있습니다. 그러나 저희와 같은 특수한 시나리오의 경우 맞춤형 평가가 필요한 경우가 많습니다. Databricks는 사용자가 자연어로 Judge 기준을 제공하고 Databricks가 Judge 인프라를 관리하는 자연어 "가이드라인" 정의, 사용자가 프롬프트와 사용자 지정 평가 기준을 제공하는 프롬프트 기반 Judge 또는 간단한 휴리스틱이나 사용자가 완전히 정의한 LLM Judge일 수 있는 사용자 지정 Scorer 에 이르기까지 다양한 수준의 사용자 지정을 지원합니다.

이 사용 사례에서는 응답 형식에 대한 사용자 지정 가이드라인과 장면 관련성을 평가하는 프롬프트 기반 사용자 지정 심사위원을 모두 사용하여 제어와 확장성 사이의 강력한 균형을 이룹니다.

합성 데이터 생성

에이전트 평가의 또 다른 일반적인 과제는 에이전트를 구축할 때 평가 기준으로 삼을 사용자 요청의 ground truth 데이터가 없다는 것입니다. 우리의 경우, 가능한 고객 요청에 대한 견고한 집합이 없었기 때문에 우리가 구축한 에이전트의 효과를 측정하기 위해 합성 데이터를 생성해야 했습니다. 이 작업을 수행하기 위해 내장된 `generate_evals_df` 함수를 활용하여 고객 요청과 일치할 것으로 예상되는 예시를 생성하도록 지침을 제공합니다. 이 합성 생성 데이터를 평가 작업의 입력으로 사용하여 데이터 세트를 부트스트랩하고, 이를 통해 고객에게 에이전트를 제공하기 전에 성능을 명확하고 정량적으로 파악할 수 있습니다.

MLflow 평가

데이터 세트가 준비되면 평가 작업을 실행하여 에이전트의 품질을 정량적으로 확인할 수 있습니다. 이 경우, 내장된 평가 기준(관련성 및 안전성), 에이전트가 올바른 형식으로 데이터를 반환했는지 평가하는 사용자 지정 가이드라인, 그리고 사용자 쿼리에 비해 반환된 장면의 품질을 1-5점으로 평가하는 프롬프트 기반 사용자 지정 평가 기준을 혼합하여 사용합니다. 다행히도 LLM 평가 피드백에 따르면 저희 에이전트는 훌륭한 성능을 보이는 것 같습니다!

에이전트 평가 보고서
Figure 4. Agent Evaluation results

MLflow 3 내에서 추적을 더 자세히 살펴보고 모델의 성능을 파악하고 모든 응답에 대한 심사위원의 논리를 이해할 수 있습니다. 이러한 관찰 수준의 세부 정보는 엣지 케이스를 자세히 살펴보고, 에이전트 정의를 적절히 변경하며, 이러한 변경이 성능에 미치는 영향을 확인하는 데 매우 유용합니다. 이러한 빠른 반복 및 개발 루프는 고품질 에이전트를 구축하는 데 매우 강력합니다. 이제 더 이상 어림짐작으로 작업하는 것이 아니라, 애플리케이션의 성능을 명확하고 정량적으로 파악할 수 있습니다.

Databricks 검토 앱

Judge로서의 LLM은 매우 유용하고 확장성을 위해 종종 필요하지만, 프로덕션으로 전환하는 데 확신을 갖고 에이전트의 전반적인 성능을 개선하기 위해서는 주제 전문가의 피드백이 필요한 경우가 많습니다. 주제 전문가는 에이전트 프로세스를 개발하는 AI 엔지니어가 아닌 경우가 많으므로, 피드백을 수집하여 제품과 Judge에 다시 통합할 방법이 필요합니다.

Agent Framework를 통해 배포된 에이전트에 포함된 Review App은 이 기능을 기본적으로 제공합니다. 주제 전문가는 에이전트와 자유롭게 상호작용하거나, 엔지니어가 주제 전문가에게 특정 예시를 평가하도록 요청하는 맞춤형 레이블링 세션을 만들 수 있습니다. 이는 까다로운 케이스에서 에이전트가 어떻게 수행되는지 관찰하거나, 최종 사용자 요청을 잘 나타내는 일련의 테스트 케이스에 대한 '단위 테스트'로서 매우 유용할 수 있습니다. 긍정적이든 부정적이든 이러한 피드백은 평가 데이터 세트에 직접 통합되어, 향후 미세 조정(fine-tuning) 및 자동화된 평가자 개선에 사용될 수 있는 '골드 스탠다드'를 생성합니다.

에이전트 평가는 분명히 까다롭고 시간이 많이 걸릴 수 있습니다. 또한 파트너 팀 간의 협력과 투자가 필요하며, 이는 일반적인 직무 범위를 벗어나는 것으로 여겨질 수 있는 주제 전문가의 시간 투입을 포함합니다. Databricks에서는 평가를 에이전트 애플리케이션 구축의 기반으로 여기며, 조직에서는 에이전트 개발 프로세스의 핵심 구성 요소로서 평가의 중요성을 인식하는 것이 매우 중요합니다.

Databricks Model Serving 및 MCP를 사용한 에이전트 배포

Databricks에서 에이전트를 구축하면 배치 및 실시간 사용 사례 모두에서 배포를 위한 유연한 옵션을 제공합니다. 이 시나리오에서는 Databricks Model Serving 을 활용하여 확장 가능하고 안전하며 REST API를 통해 다운스트림에 통합되는 실시간 엔드포인트를 생성합니다. 간단한 예로, 사용자 지정 MCP(Model Context Protocol) 서버로도 작동하는 Databricks 앱을 통해 이를 노출하여 Databricks 외부에서 이 에이전트를 도구로 활용할 수 있습니다.  

핵심 기능의 확장으로, Databricks 앱에 이미지-투-텍스트(image-to-text) 기능을 통합할 수 있습니다. 아래는 LLM이 인바운드 이미지를 파싱하고, 텍스트 캡션을 생성하며, 원하는 타겟 고객을 포함하여 콘텐츠 배치 에이전트에 맞춤형 요청을 제출하는 예시입니다. 이 경우, 저희는 다중 에이전트 아키텍처를 활용하여 Pet Ad Image Generator로 광고 이미지를 개인화하고 배치를 요청했습니다:
 

에이전트와 상호 작용하기 위한 Databricks 앱 및 MCP 서버
Figure 5. Databricks App & MCP Server for interacting with agent

이 에이전트를 사용자 지정 MCP 서버로 래핑하면 광고주, 게시자, 미디어 플래너를 위한 통합 옵션이 기존 애드테크 생태계로 확장됩니다. 

결론

확장 가능하며 실시간으로 심층적인 컨텍스트를 파악하는 배치 엔진을 제공함으로써 이 AI 에이전트는 단순 키워드 방식을 넘어 훨씬 높은 광고 관련성을 제공하고, 캠페인 성과를 직접 개선하며 광고주와 게시자 모두의 광고 낭비를 줄입니다.

Databricks의 AI 에이전트에 대해 자세히 알아보기: Databricks Lakehouse Platform에서 대규모 언어 모델 및 AI 에이전트를 구축하고 배포하는 방법에 대한 전용 리소스를 살펴보세요.
전문가와 상담: 귀하의 비즈니스에 이를 적용할 준비가 되셨나요? 저희 팀에 문의 하여 Databricks가 차세대 광고 솔루션을 구축하고 확장하는 데 어떻게 도움이 되는지 논의해 보세요.

 

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

게시물을 놓치지 마세요

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