Los sistemas publicitarios tradicionales están diseñados para responder a unidades discretas de intención del usuario. Un usuario busca o ve algo en línea, el sistema de anuncios recibe esas consultas y páginas vistas como eventos, y el sistema busca anuncios que coincidan según esos eventos. Construir una pila publicitaria para ChatGPT fue diferente: la intención del usuario se desarrolla a lo largo de las conversaciones y cambia en múltiples turnos de una conversación, a veces sin un momento publicitario apropiado. Para admitir este nuevo paradigma, construimos un sistema de entrega de anuncios a medida. Este nuevo tipo de pila publicitaria se basa en un LLM frontera personalizado con post-entrenamiento que realiza llamadas a herramientas para la recuperación (identificar las mejores opciones), la clasificación (predecir la interacción del usuario), la relevancia (evaluar la utilidad del anuncio) y ejecutar subastas para la selección y fijación de precios final de los anuncios.
Nuestro sistema publicitario admite el matiz de los objetivos del usuario en evolución mediante tres decisiones de diseño clave: 1) implementar sesiones publicitarias con estado, lo que significa que la información se recuerda a lo largo de los turnos de una conversación y a través de múltiples conversaciones, 2) confiar en un LLM personalizado con post-entrenamiento que utiliza una arquitectura de llamadas a herramientas para interpretar el contexto y la intención subyacente de una conversación, y luego seleccionar, clasificar y entregar anuncios de manera efectiva, y 3) ejecutar el proceso de selección de anuncios por separado de la generación de respuestas de ChatGPT, en su propio servicio, para evitar que los anuncios influyan en las respuestas y mantener la voz neutral de ChatGPT. Usamos nuestro LLM con post-entrenamiento para orquestar todo el flujo publicitario, determinando el anuncio correcto a mostrar en el momento adecuado según el turno actual del usuario y el historial de la conversación. Mientras que iniciar un sistema publicitario auto-mejorable como este solía tomar años, ChatGPT Ads alcanzó los $1 mil millones en tasa de ingresos anualizada menos de 200 días después del lanzamiento; ahora, más de 100,000 anunciantes han publicado anuncios en ChatGPT desde su lanzamiento.
¿Cómo deberían funcionar los anuncios en el chat agéntico?
Una solicitud publicitaria convencional generalmente comienza con un evento bien definido. Un usuario envía una consulta de búsqueda o abre una página web y el sistema de anuncios recibe una solicitud. Este tipo de sistema es bastante simple: recupera candidatos potenciales de anuncios, los clasifica, ejecuta una subasta para fijar el precio adecuado de la oportunidad y muestra el anuncio resultante al usuario. ChatGPT no produce de forma natural un momento tan concreto.
En una conversación de ChatGPT, las personas llegan con objetivos en lugar de una consulta de búsqueda de una sola respuesta. Podrían estar planificando un viaje, eligiendo software para su negocio, amueblando una casa o aprendiendo un nuevo pasatiempo. Esto no sucede todo en un turno de una conversación. ChatGPT a menudo ayuda al usuario a aclarar qué es importante a lo largo del camino.
Como ejemplo, nuestro equipo de ingeniería le preguntó a ChatGPT cómo entrenar para una carrera: la conversación comienza con una pregunta general sobre correr. Varios turnos después, preguntan sobre zapatos para ayudar a entrenar. El significado comercial de la conversación cambia a medida que llega cada restricción, y este contexto personalizado evoluciona a lo largo de múltiples sesiones. Un sistema que actuara sobre el primer mensaje podría recuperar una intención completamente errónea, degradando potencialmente la experiencia del usuario e interponiéndose en su camino.
Construir nuestro sistema publicitario requirió ir más allá de la arquitectura publicitaria de solicitud-respuesta y construir una pila publicitaria desde cero para encontrar oportunidades económicas potenciales mientras se prioriza la confianza y el valor del usuario.
Memoria de conversación, sin influir en las respuestas de ChatGPT
Convertir cada mensaje en una solicitud independiente, como un sistema de anuncios tradicional, habría conllevado algunos riesgos en nuestro caso de uso de chat: 1) malinterpretar el objetivo del usuario al simplificarlo en exceso, 2) iniciar el flujo publicitario demasiado pronto, antes de que la necesidad real del usuario se haya aclarado, 3) mostrar anuncios que interrumpan el recorrido del usuario en lugar de apoyarlo, y 4) reejecutar de manera ineficiente el flujo publicitario cada vez que cambia la solicitud, creando ruido y desperdiciando costos. En lugar de construir en torno a eventos individuales, el sistema de anuncios (compuesto por recuperación, clasificación y entrega) mantiene una sesión con estado, lo que significa que la sesión publicitaria se ejecuta durante la duración de un turno elegible, recordando y actualizando la información a medida que evoluciona. ChatGPT envía el contexto de la solicitud inicial al servidor de anuncios. El sistema de anuncios sigue y se adapta al intercambio en desarrollo en lugar de depender de una única consulta aplanada.
El proceso de selección de anuncios se ejecuta junto con la generación normal de respuestas de ChatGPT para garantizar que el flujo publicitario no influya en las respuestas de ChatGPT. Los anuncios se filtran y seleccionan a través de un sistema separado que consume la conversación bajo sus propias restricciones de elegibilidad, calidad y entrega. Esta importante frontera arquitectónica: servicios diferentes que usan modelos separados y código separado, permite que los servidores principales de ChatGPT se encarguen de generar la respuesta orgánica; mientras tanto, el sistema de anuncios evalúa de forma independiente si existe una oportunidad publicitaria apropiada y, de ser así, prepara una ubicación patrocinada a través de un proceso de servicio separado.
La publicidad se ejecuta junto con la ruta de respuesta de ChatGPT.
Más allá de proteger la experiencia del usuario, esta separación tiene algunas consecuencias prácticas. ChatGPT no tiene dependencia del sistema de anuncios; los servicios no están entrelazados de ninguna manera y no comparten un modelo de generación de contenido. Así que si el sistema de servicio de anuncios no está disponible o es lento, la respuesta orgánica de ChatGPT continúa sin verse afectada. Esto significa que el sistema de anuncios no puede derribar ni retrasar el producto ChatGPT. El otro beneficio de esta separación es que mantiene el estándar muy alto para anuncios valiosos. No devolver ningún anuncio es un resultado ordinario y exitoso. El sistema solo entrega un anuncio si es claramente beneficioso para los usuarios y los anunciantes.
Un LLM interpreta las conversaciones y llama a herramientas
El otro componente arquitectónico clave de nuestra pila de anuncios es el LLM post-entrenado que interpreta las conversaciones y ejecuta todo el flujo de anuncios en un bucle agéntico—haciendo llamadas a herramientas a las funciones centrales del sistema de anuncios, desde la etapa de recuperación hasta el ranking, la subasta y, finalmente, la entrega. A este LLM lo llamamos el orquestador.
La primera parte de un flujo de anuncios es comprender la intención del usuario para iniciar el proceso de recuperación, que es un abastecimiento rápido y deliberadamente amplio de anuncios potenciales para filtrarlos más adelante. Recibir la conversación de forma incremental crea un problema de recuperación más rico pero más ambiguo, porque el sistema de anuncios necesita distinguir la intención actual del contexto obsoleto. El orquestador debe interpretar las referencias a mensajes anteriores, reconocer cuándo un usuario habla de forma hipotética y evitar tratar cada mención de un producto o servicio como una solicitud de compra.
El orquestador de anuncios utiliza la conversación disponible y el contexto del usuario, iterando para encontrar buenos anuncios y eligiendo repetidamente cuándo llamar a qué herramienta con el objetivo subyacente de encontrar el anuncio más apropiado (el anuncio que equilibra un alto valor para el usuario y un alto valor para el anunciante) para esa conversación y contexto. Si el usuario elige personalizar los anuncios, el orquestador también considera la información no sensible disponible sobre las conversaciones pasadas del usuario para encontrar las mejores coincidencias de anuncios.
El orquestador de anuncios llama iterativamente a las herramientas de entrega de anuncios para encontrar anuncios valiosos.
A medida que la conversación avanza y el orquestador de anuncios obtiene información más actualizada, el orquestador puede ejecutar un nuevo conjunto de llamadas a herramientas con el contexto actualizado para encontrar mejores anuncios y devolverlos al cliente, que luego puede usar estos nuevos anuncios si llegan a tiempo.
El orquestador está diseñado para equilibrar el valor del usuario y el valor del anunciante, anteponiendo siempre a los usuarios.
Cómo llama el orquestador a las herramientas de anuncios en un bucle agéntico
El sistema de anuncios consta de herramientas individuales, y el orquestador las llama iterativamente para encontrar los mejores anuncios para una conversación. A grandes rasgos, el orquestador convierte las conversaciones en breves resúmenes de texto, que luego se convierten en embeddings semánticos (significados almacenados que son más fáciles de examinar para un sistema de anuncios), recupera candidatos de anuncios usando esos embeddings semánticos, filtra esos candidatos por elegibilidad (según el presupuesto, la configuración del usuario y otras comprobaciones preliminares), evalúa su calidad y relevancia, y realiza un ranking final para identificar oportunidades de alto valor para su colocación al final de una respuesta del chat. Por lo tanto, cada anuncio debe cumplir un alto estándar de elegibilidad y relevancia para poder ser colocado.
Preparación de consultas de recuperación que capturan la intención
El LLM del orquestador primero prepara una o más consultas que representan la intención comercial relevante. Esto puede incluir reescribir el contexto de la conversación para ampliar las posibilidades comerciales más allá de las consultas de búsqueda 1:1 y luego crear representaciones semánticas, donde el orquestador destila una conversación de múltiples turnos en una versión resumida para el sistema de recuperación—recuperando anuncios de nuestra base de datos de manera enfocada.
Las colocaciones de anuncios serán mejores tanto para los usuarios como para los anunciantes si solo aparecen cuando hay una comprensión profunda de la intención del usuario. Múltiples consultas pueden preservar diferentes aspectos de la intención. Una conversación sobre la planificación de un viaje, por ejemplo, puede contener necesidades distintas relacionadas con el transporte, el alojamiento o las actividades. El sistema de recuperación puede preservar estas distinciones en lugar de comprimir toda la conversación en una única cadena literal.
Como ejemplo, veamos una posible secuencia de conversación sobre zapatos de senderismo:
¿Qué debería cubrir en un viaje de dos días a Yosemite?
¿Hará frío la próxima semana?
¿Nuevas líneas de productos de [insertar marca]?
Aunque el usuario no ha conectado la pregunta sobre la marca de zapatos con el viaje a Yosemite, esta conversación podría representarse en nuestro sistema de anuncios mediante dos consultas, como [shoes appropriate for hiking trip] y [new [brand] product lines good for travel]. Esta podría ser solo la primera tentativa; el orquestador está diseñado para iterar sobre estas representaciones hasta que encuentre anuncios en nuestro inventario que sean altamente valiosos para el usuario.
Recuperación de posibles anuncios
La recuperación es el proceso de crear un conjunto deliberadamente amplio de opciones de anuncios. Los candidatos pueden provenir de diferentes estrategias de recuperación y pueden competir más tarde bajo las mismas restricciones de servicio. Construimos múltiples índices que optimizan para diferentes restricciones del sistema y del producto (por ejemplo, el índice para anuncios de feeds de productos está diseñado para tener en cuenta las reseñas positivas o negativas de los productos a medida que busca los mejores anuncios posibles. Esto no es relevante para otros anuncios que pueden no tener reseñas asociadas). Cada índice está optimizado para alguna versión de la búsqueda aproximada de vecinos más cercanos (ANN), utilizando embeddings que representan la intención del usuario. Esta búsqueda ANN es un algoritmo de aproximación para la recuperación sobre grandes índices semánticos, lo que significa que los anuncios se recuperan muy rápidamente, acercándose a una buena solución en lugar de buscar la solución «correcta», mientras se retiene la mayoría de los candidatos relevantes.
El sistema de anuncios utiliza consultas reescritas para crear embeddings semánticos durante el proceso de recuperación de anuncios y producir un amplio conjunto de candidatos de anuncios.
Filtrado de candidatos no elegibles
El objetivo del filtrado es eliminar de la consideración todos los candidatos de anuncios que no cumplen el estándar para su ubicación en cuanto a relevancia, pujas y presupuesto. Dependiendo del candidato y la configuración, las comprobaciones de filtrado pueden incluir la disponibilidad del creativo y de la campaña (si la campaña o los creativos del anuncio están activos), la orientación de la campaña (por ejemplo, en qué configuraciones regionales se permite operar a una campaña), las restricciones de políticas (requisitos de cumplimiento sobre lo que se puede anunciar), la disponibilidad de presupuesto (si una campaña aún tiene presupuesto disponible para gastar), el ritmo de gasto (si una campaña debería gastar presupuesto ahora o en otro momento del día), la compatibilidad de ubicación (en qué tipos de conversaciones es elegible este anuncio) y la deduplicación a nivel de anunciante y de campaña (elegir un número adecuado de anuncios por anunciante para garantizar una participación equitativa entre las empresas).
Evaluación de la relevancia y la calidad
Los candidatos que superan las verificaciones de elegibilidad pasan a una fase de puntuación, en la que el orquestador realiza llamadas a herramientas a diversos sistemas de puntuación, para atender consideraciones como la relevancia semántica (¿es el anuncio relevante para el objetivo del usuario?), la participación prevista (¿es probable que el anuncio sea visto, clicado y convertido en el resultado deseado por el anunciante?) y el rendimiento histórico (¿ha funcionado bien el anuncio cuando se ha mostrado a los usuarios hasta ahora?). El orquestador también filtra los anuncios para garantizar la relevancia y la seguridad antes de la subasta. Estos sistemas reducen el campo a un grupo de candidatos más pequeño listo para la subasta, pero todavía no determinan el anuncio final que se entrega.
Ejecutando la subasta de anuncios
El orquestador evalúa los candidatos preparados en el contexto de la conversación y elige qué candidatos de anuncios son lo suficientemente plausibles para entrar en la subasta final. El orquestador no decide directamente qué anuncio se servirá, ni establece un precio. Nombra candidatos contextualmente apropiados para que la herramienta de subasta los evalúe.
La subasta aplica las mecánicas finales de servicio, incluida la admisión a la subasta (superar un umbral mínimo de relevancia y valor), el ritmo de gasto (distribuir el presupuesto publicitario de manera más uniforme), el cálculo de pujas y características de la subasta, la clasificación ajustada por calidad, la fijación de precios y la selección final.
Comprobaciones finales de elegibilidad
Después de la subasta, hay dos maneras en que un anuncio podría no entregarse, ambas específicas del medio conversacional de ChatGPT.
El anuncio podría no resultar apropiado en el chat: Aunque la conversación en sí fue considerada segura para la colocación de anuncios por los modelos de integridad (los modelos que deciden cuándo es apropiado mostrar un anuncio), y el anuncio en sí fue considerado conforme a las políticas, a veces el anuncio puede parecer inapropiado en el contexto de ciertas conversaciones. El orquestador bloquea estos anuncios para que no se muestren.
Es posible que la solicitud de anuncio no llegue a tiempo: Si el modelo de ChatGPT está listo para responder, pero el anuncio aún no está listo para colocarse, la solicitud del anuncio agota el tiempo de espera y el anuncio no se entrega. Por lo tanto, uno de los objetivos del sistema de anuncios es funcionar lo más rápido posible. El tiempo de respuesta del modelo de ChatGPT es dinámico, y no retrasamos las respuestas del chat para esperar a que se carguen los anuncios.
Si se cumplen todas las comprobaciones anteriores, enviamos el anuncio al frontend para su renderizado. Consideramos que este es un anuncio del lado del servidor. entrega, pero es posible que aún no le mostremos el anuncio al usuario, y esto es intencionado.
El paso final: mostrar los anuncios al usuario
En un producto conversacional como ChatGPT, la entrega en el servidor de una creatividad publicitaria no garantiza que el anuncio se muestre; el anuncio también debe llegar a tiempo para incluirse en el turno actual. La creatividad publicitaria incluye el título, la descripción, el enlace de destino y cualquier llamada a la acción. Además, el sistema de anuncios también devuelve un preámbulo generado por el modelo, que es una breve introducción neutral que explica cómo se relaciona el anuncio con la conversación. Mantener el preámbulo separado de la creatividad preserva el mensaje del anunciante mientras se mantiene neutral la voz de ChatGPT.
El frontend de ChatGPT recibe el preámbulo y la creatividad publicitaria como un paquete. Si llega antes de que la respuesta de ChatGPT se haya generado por completo, el frontend muestra el anuncio debajo de la respuesta de ChatGPT, claramente etiquetado como patrocinado. Si llega demasiado tarde, el anuncio no se muestra en ese turno. Esta es la diferencia entre la entrega de anuncios en el servidor y una impresión de anuncio visible para el usuario.
La selección del ganador y la entrega son eventos separados. Un anuncio seleccionado se convierte en una entrega solo después de que ChatGPT aprueba y muestra el espacio publicitario y se confirma la entrega.
Qué sucede después de que se muestra el anuncio
Nuestra pila publicitaria utiliza registros y canalizaciones de datos tradicionales, lo que tiene tres beneficios principales: los anunciantes pueden integrar más fácilmente sus sistemas existentes con nuestra pila, los anunciantes pueden mejorar sus estrategias con los datos de informes y nuestro equipo puede encontrar áreas del sistema para mejorar. Más allá de estas herramientas de informes y optimización, desplegamos un modelo de alta calidad para evaluar nuestra entrega y entrenar otros modelos de anuncios, creando un poderoso ciclo de auto-mejora.
Los desgloses detallados de lo que sucedió nos ayudan a comprender y mejorar cada parte del sistema de anuncios de forma aislada. El sistema de procesamiento de registros también registra resultados granulares como:
El turno no era elegible para publicidad.
Comenzó una sesión de anuncios pero no se solicitó ninguna recuperación.
La recuperación no devolvió candidatos.
Se recuperaron candidatos pero fallaron la hidratación o la elegibilidad.
Se entregó un anuncio y posteriormente recibió una interacción.
Estos desgloses detallados nos ayudan a mejorar cada parte del sistema de servicio de anuncios de forma aislada. Mejorar la detección de oportunidades requiere evidencia diferente a la de mejorar la recuperación, la calidad de los candidatos, la participación en la subasta o la fiabilidad de la entrega.
Los sistemas de entrega, servicio y calidad observan una parte diferente del ciclo de vida. El procesamiento con controles de privacidad determina qué se puede usar para mediciones y mejora de modelos.
Modelos de alta potencia evalúan y mejoran toda la pila
La idea detrás de la evaluación basada en modelos es que nuestros modelos más potentes y de mayor razonamiento observan y juzgan los resultados de nuestro sistema y luego mejoran el LLM post-entrenado al entrenarlo para que rinda mejor. Por ejemplo, podemos usar modelos más pequeños y eficientes o modelos de menor razonamiento para la orquestación o la recuperación si nuestro modelo más potente recopila retroalimentación y entrena a estos pequeños trabajadores para que hagan el mejor trabajo posible.
La retroalimentación humana orienta el rumbo con buen gusto
Recopilamos y actuamos según la retroalimentación humana (clics y ocultamientos de los usuarios), así como encuestas para los usuarios y retroalimentación directa de los anunciantes a través de nuestro Ads Manager. También ponemos a nuestro equipo a disposición para dar retroalimentación durante la construcción, y escuchamos directamente lo que tanto los usuarios de ChatGPT como los anunciantes desean. Esta fuente de retroalimentación informa nuestra dirección incluso más que la retroalimentación observacional del modelo y es parte de lo que nos permitió iterar rápidamente hacia las decisiones de producto correctas. El modelo puede ser capaz de entender la intención del usuario y pensar críticamente para entregar algo valioso, pero las personas moldean el gusto.
Próximos pasos
Hace un año, no teníamos sistema de anuncios y solo unas pocas personas pensaban en este espacio del problema. Ahora tenemos un sistema de anuncios robusto que impulsa más de $1 mil millones en tasa anualizada, con un orquestador basado en LLM que dirige el flujo de anuncios. Codex fue un multiplicador de fuerzas fundamental que nos permitió impulsar nuestro sistema para lograr este gran hito de uso con una velocidad sin precedentes. Desde el principio, configuramos el equipo y los flujos de trabajo de desarrollo para usar Codex y construir y escalar el sistema rápidamente. Creamos salvaguardas para que Codex publicara código de manera confiable y segura. En paralelo, configuramos complementos de infraestructura de datos para Codex para cerrar enormemente el ciclo de recopilación de información y aterrizaje de mejoras al sistema, incluyendo nuevas funciones de producto, mejoras de calidad y un mejor rendimiento del sistema.
La combinación de los límites de nuestro sistema (basados en nuestros principios de publicidad) y nuestro orquestador basado en LLM nos permite hacer que la publicidad sea útil sin tratar cada conversación como una solicitud de anuncio. De cara al futuro, seguiremos experimentando con formatos de anuncios más dinámicos para aumentar el valor para los usuarios (por ejemplo, dar a los usuarios la capacidad de hablar directamente con las empresas a través de los anuncios) y el valor para los anunciantes. La arquitectura de automejora de la stack, construida sobre modelos de OpenAI con bucles de retroalimentación continuos, acelerará nuestra capacidad de seguir mejorando la relevancia y la personalización con el tiempo.