OpenAI가 2026년 10월 21일(현지시간) 엔지니어링 글을 통해 ChatGPT 광고 시스템을 어떻게 만들었는지 공개했다. 이 시스템은 후속 학습(모델 학습)한 최신 대규모 언어 모델이 검색, 순위 예측, 관련성 평가, 경매를 도구로 호출해 최종 광고를 정하고 가격을 매기는 구조라고 회사는 밝혔다.
OpenAI에 따르면 ChatGPT 광고는 출시 후 200일이 안 되어 연환산 매출 런레이트 10억 달러에 도달했다. 스스로 개선하는 광고 시스템을 처음부터 세우는 데는 보통 수년이 걸렸다는 것이 회사 설명이다. 출시 이후 광고를 집행한 광고주는 10만 곳을 넘었다.
세 가지 설계 결정
기존 광고 시스템은 검색어 입력이나 페이지 조회 같은 하나의 사건을 받아 맞는 광고를 찾는다. 반면 ChatGPT에서는 여행 계획, 업무용 소프트웨어 선택, 집 꾸미기처럼 목표를 가지고 대화가 시작되고, 그 목표가 여러 차례 주고받는 동안 달라진다. OpenAI는 광고에 적합한 순간이 없는 경우도 있다고 설명했다.
회사가 든 사례는 달리기 훈련이다. 엔지니어링 팀이 경주 준비 방법을 물었더니 처음에는 달리기 일반을 묻다가 몇 차례 뒤 훈련용 신발로 질문이 옮겨 갔고, 조건이 붙을 때마다 대화의 상업적 의미가 바뀌었다. 첫 메시지만 보고 움직이는 시스템은 의도를 잘못 읽어 사용자 경험을 해칠 수 있다고 OpenAI는 짚었다.
이를 위해 OpenAI는 세 가지를 택했다. 첫째는 대화 여러 턴과 여러 대화에 걸쳐 정보를 기억하는 상태 유지형 광고 세션이다. 둘째는 대화 맥락과 숨은 의도를 해석해 광고를 고르고 순위를 매기고 내보내는 후속 학습 LLM이다. 셋째는 광고가 답변에 영향을 주지 않고 ChatGPT가 중립적인 어조를 지키도록, 광고 선택을 답변 생성과 별도 서비스로 운영하는 것이다.
광고 세션은 광고를 받을 수 있는 턴이 이어지는 동안 유지되며, 정보가 바뀌면 갱신한다. 모든 메시지를 독립된 요청으로 처리하면 사용자 목표를 지나치게 단순하게 읽거나, 필요가 분명해지기 전에 광고 절차를 시작하거나, 대화 흐름을 방해하는 광고를 보이거나, 요청이 바뀔 때마다 절차를 다시 돌려 비용을 낭비하는 위험이 있다는 것이 회사 설명이다.
광고 시스템은 ChatGPT의 일반 답변 생성과 나란히 돌아가며, 별도의 자격·품질·전달 조건 아래 대화를 받아 처리한다. 서비스, 모델, 코드가 분리돼 있어 핵심 ChatGPT 서버는 일반 답변 생성을 담당하고, 광고 시스템은 적절한 광고 기회가 있는지 독립적으로 판단한다. 광고 서버가 멈추거나 느려도 답변은 영향을 받지 않으며, 적절한 광고가 없으면 광고를 내지 않는 것이 정상적이고 성공적인 결과라고 OpenAI는 밝혔다.
오케스트레이터가 광고를 고르는 과정
전체 광고 흐름을 에이전트 루프로 돌리는 후속 학습 LLM을 OpenAI는 오케스트레이터라고 부른다. 오케스트레이터는 지난 메시지를 가리키는 표현을 해석하고, 사용자가 가정해서 말하는 경우를 알아보며, 제품이나 서비스를 언급했다고 해서 모두 구매 요청으로 보지 않도록 설계됐다. 사용자가 광고 개인화를 선택했다면 과거 대화의 민감하지 않은 정보도 참고한다.
먼저 대화를 짧은 글 요약으로 바꾸고, 이를 의미 임베딩으로 만들어 광고 후보를 찾는다. 질의는 하나가 아니라 여러 개일 수 있다. 회사의 예에서는 요세미티 2박 3일 여행 준비, 다음 주 날씨, 특정 브랜드 신제품을 차례로 물은 대화가 '등산 여행에 맞는 신발'과 '여행에 좋은 해당 브랜드 신제품'이라는 두 질의로 표현될 수 있다. 사용자가 신발 질문과 여행을 직접 잇지 않아도 그렇다. 오케스트레이터는 가치 있는 광고가 나올 때까지 이 표현을 반복해 고친다.
검색 단계는 후보를 일부러 넓게 모으는 과정이다. OpenAI는 제약이 서로 다른 색인을 여러 개 만들었고, 예를 들어 상품 피드 광고용 색인은 제품 리뷰의 긍정·부정을 반영한다. 각 색인은 근사 최근접 이웃(ANN) 검색을 쓰며, 정답을 끝까지 찾기보다 관련 후보 대부분을 남기면서 빠르게 가져오는 방식이다.
이어 부적격 후보를 걸러낸다. 확인 항목은 캠페인과 광고 소재의 활성 여부, 캠페인이 허용된 지역 같은 타기팅, 광고 가능 대상에 대한 정책 제한, 남은 예산, 하루 중 예산 집행 시점을 조절하는 페이싱, 어떤 대화에 붙을 수 있는지 보는 배치 호환성, 광고주별 노출 수를 조절하는 중복 제거다. 설정에 따라 일부만 적용되기도 한다.
남은 후보는 점수 단계로 넘어간다. 오케스트레이터가 여러 점수 시스템을 호출해 사용자 목표와의 의미 관련성, 조회·클릭·전환 가능성을 보는 예상 참여, 지금까지 노출됐을 때의 과거 성과를 평가한다. 경매 전에 관련성과 안전성을 걸러내는 일은 오케스트레이터가 직접 맡는다. 이 단계는 후보를 줄일 뿐 최종 광고를 확정하지 않는다.
오케스트레이터는 대화 맥락에서 경매에 올릴 만한 후보를 추려 넘기지만, 어떤 광고를 낼지 직접 정하거나 가격을 매기지 않는다. 경매 도구가 최소 관련성·가치 기준 통과, 페이싱, 입찰과 경매 변수 계산, 품질을 반영한 순위, 가격 책정, 최종 선택을 맡는다.
경매 이후 노출까지
경매 뒤에도 광고가 나가지 못하는 경로가 둘 있다. 하나는 무결성 모델이 대화의 광고 배치 안전성을 판단하고 광고 자체도 정책에 부합한다고 별도로 판단됐는데도, 해당 대화에서 광고가 어색하게 느껴지는 경우다. 이런 광고는 오케스트레이터가 막는다. 다른 하나는 ChatGPT 답변이 먼저 준비돼 광고 요청이 시간 안에 도착하지 못하는 경우다. OpenAI는 광고를 기다리느라 답변을 늦추지 않는다고 밝혔다.
광고 소재에는 제목, 설명, 이동 링크, 행동 유도 문구가 들어간다. 광고 시스템은 모델이 만든 짧고 중립적인 도입 문구도 함께 돌려주는데, 이를 소재와 분리해 광고주의 메시지를 보존하면서 ChatGPT의 어조를 중립으로 유지한다. 프런트엔드는 두 가지를 묶어 받아, 답변 생성이 끝나기 전에 도착하면 답변 아래에 '스폰서'로 분명히 표시해 보여 주고 너무 늦으면 그 턴에는 보이지 않는다. 서버 쪽 전달과 사용자 화면의 노출이 다른 이유다.
노출 후에는 기존 방식의 로깅과 데이터 파이프라인을 쓴다. 광고주가 기존 시스템과 연동하기 쉽고, 보고 데이터로 전략을 개선할 수 있으며, OpenAI 팀도 개선할 지점을 찾을 수 있다. 로그에는 광고 대상이 아닌 턴, 세션은 시작했으나 검색 요청이 없던 경우, 검색 결과가 없던 경우, 후보가 있으나 검증이나 자격 단계에서 탈락한 경우, 광고가 전달된 뒤 상호작용을 받은 경우가 구분되어 기록된다. 측정과 모델 개선에 쓸 수 있는 데이터는 개인정보 통제 처리가 정한다고 회사는 설명했다.
성능이 가장 높은 추론 모델이 시스템 결과를 평가하고, 그 피드백으로 후속 학습 LLM을 더 잘하도록 학습시킨다. 이렇게 하면 오케스트레이션이나 검색에는 작고 효율적인 모델이나 추론 수준이 낮은 모델을 쓸 수 있다고 OpenAI는 설명했다. 사용자의 클릭과 숨기기, 사용자 설문, 광고주가 Ads Manager로 보내는 의견을 모으고, 개발 중에도 팀이 사용자와 광고주의 의견을 직접 듣는다. 회사는 이런 사람의 피드백이 모델의 관찰 피드백보다 방향 설정에 더 큰 영향을 준다고 밝혔다.
OpenAI는 1년 전만 해도 광고 시스템이 없었고 이 문제를 고민하는 인원도 몇 명뿐이었다고 돌아봤다. 초기부터 Codex로 개발 흐름을 짰고, 코드를 안전하게 배포하도록 가드레일을 만들었으며, 데이터 인프라 플러그인을 붙여 개선 사항을 반영하는 주기를 줄였다고 한다. 앞으로는 사용자가 광고를 통해 기업과 직접 대화하는 기능 같은 더 동적인 광고 형식을 실험할 계획이다.
출처
이 기사는 아래 자료를 바탕으로 정리했습니다. 제목을 누르면 원문이 새 창으로 열립니다.