Conexión a tierra de los LLM con datos web nuevos para reducir las alucinaciones

Existe una suposición cada vez mayor de que si conecta un modelo de lenguaje grande (LLM) a su sistema de producción o aplicación, simplemente “sabrá” cómo responder sus preguntas. Desafortunadamente, no es así como funciona. Por muy impresionantes que puedan ser los LLM, necesitan acceso a los datos como cualquier otro modelo. La mayoría de los LLM tienen un límite de conocimiento inherente, el momento en el que terminan sus datos de capacitación. Cuando los usuarios hacen preguntas sobre información después de esa fecha, el modelo aún puede producir respuestas, pero no correctas.

A estas respuestas deficientes las llamamos alucinaciones LLM, pero en realidad son el resultado esperado de una falta de coincidencia de información. Los LLM se capacitan con instantáneas estáticas de Internet, pero los clientes que interactúan con robots de soporte, los gerentes que aprovechan los asistentes internos de IA y los equipos de ventas que dependen de los copilotos de productos esperan conocimiento en tiempo real y datos actualizados. Su LLM no conoce de forma nativa las últimas noticias, las actualizaciones de políticas, los cambios en los precios de la competencia o los cambios en la documentación de la API. Debe fundamentarlo con datos externos nuevos para asegurarse de que sus respuestas (entregadas con confianza inquebrantable) sean realmente correctas.

¿Qué es la puesta a tierra de LLM?

La conexión a tierra de LLM significa agregar información externa y actualizada en el momento de su generación. Los LLM listos para usar y sin conexión a tierra se basan principalmente en sus datos de capacitación y en las indicaciones del usuario. Esto funciona en muchos escenarios, pero no cuando la pregunta requiere información nueva, como las últimas regulaciones fiscales o requisitos de informes financieros. Los sistemas LLM de producción fundamentada tienen acceso a fuentes de conocimiento actuales. Alucinan menos y producen resultados más fiables.

Piense en ello como tener un motor de razonamiento sin acceso a Internet (un LLM sin conexión a tierra) frente a uno que puede buscar información en tiempo real (un LLM con conexión a tierra). Para lograr esto, un LLM con base en tierra puede utilizar fuentes de datos dinámicas externas, sistemas de recuperación o incluso datos web en vivo. La forma más común de implementar esto hoy en día es mediante recuperación de generación aumentada (RAG), pero como pronto verá, incluso RAG tiene sus limitaciones.

Por qué RAG se queda corto en producción

La generación aumentada de recuperación, o RAG, normalmente funciona seleccionando el contexto relevante de almacenes de vectores precalculados (a menudo implementados como bases de datos de vectores) y proporcionándolo al LLM en el momento de la consulta. Esto mejora la respuesta del LLM al basarlo en fuentes de conocimiento externas, como los documentos internos de una empresa o las especificaciones de productos. Si bien son muy eficaces para bases de conocimiento estables, los sistemas RAG son tan actualizados como los datos que recuperan. Deberá actualizar constantemente sus almacenes de vectores para asegurarse de que RAG tenga acceso a datos actualizados. Cualquier retraso en la ingestión conduce una vez más a alucinaciones en forma de respuestas obsoletas.

Los datos web en vivo cambian el juego por completo. Con los almacenes de vectores RAG, su LLM obtiene una instantánea del tiempo; Con información web en vivo, su LLM recibe una visión continuamente actualizada de la realidad. Los datos en tiempo real de la web ayudan a resolver el problema de la actualización, pero también brindan a su LLM cobertura adicional para información de cola larga o no indexada. Es posible que RAG no tenga un vector para la redacción exacta que necesita, pero si le brinda a su LLM acceso a resultados de búsqueda en tiempo real, puede brindarle una respuesta precisa. Los datos web en vivo parecen una gran adición, pero configurar y mantener el marco necesario para vincularlos con su LLM rápidamente se vuelve complicado. Ahí es donde entra en juego la infraestructura de búsqueda gestionada.

Cómo se ve la infraestructura de búsqueda administrada para LLM

La infraestructura de búsqueda administrada proporciona una manera de obtener resultados de búsqueda en vivo sin la molestia de crear sus propios raspadores. Estos servicios abstraen la recuperación de datos de búsqueda, lo que le permite concentrarse en sus sistemas LLM de producción. En la práctica, hacen que sea mucho más fácil conectar su LLM con datos en tiempo real de la web, ya sea solo o junto con un sistema RAG.

La mayoría de las herramientas de búsqueda administradas se clasifican en una de varias categorías: API de búsqueda tradicional, API de páginas de resultados de motores de búsqueda (SERP), plataformas de búsqueda nativas de LLM y herramientas de búsqueda web integradas de LLM. Las API de búsqueda tradicionales ofrecen una forma sencilla de obtener un subconjunto seleccionado de resultados de búsqueda. Las API SERP brindan un acceso más completo y estructurado a las SERP. Por ejemplo, SerpApi es una API de búsqueda web que los desarrolladores pueden utilizar para combinar fácilmente resultados de búsqueda en vivo de más de cien API con cualquier aplicación. Las herramientas nativas de LLM más nuevas, como Tavily y Exa, se centran en simplificar la integración de LLM al devolver resultados reclasificados o resumidos. Las herramientas de búsqueda contenidas en los LLM permiten una integración perfecta, pero normalmente brindan resultados condensados ​​con control limitado sobre las fuentes de datos.

Cada uno de estos enfoques ofrece un equilibrio de control, transparencia y facilidad de integración, pero todos tienen el mismo propósito: conectar los LLM con datos web en tiempo real. Con esta capa implementada, el siguiente paso es integrar los resultados de búsqueda en su proceso de LLM.

Patrones para integrar la búsqueda web en vivo en los canales de LLM

Al agregar datos de búsqueda en vivo a su proceso de LLM, querrá considerar cuánto control le otorga al LLM, cuánta latencia puede tolerar y cuánta complejidad se siente cómodo manejando. Hay tres patrones de arquitectura principales para incorporar datos externos en vivo en sistemas de LLM de producción, cada uno con diferentes compensaciones en esas dimensiones.

Canalizaciones de búsqueda primero

Los canales de búsqueda primero hacen exactamente lo que parecen: buscan primero. Cuando un usuario envía una consulta, el sistema llama inmediatamente a una API de búsqueda e inyecta los resultados en el mensaje, brindando al LLM contexto en tiempo real para generar su respuesta. Esta configuración refleja fielmente RAG, excepto que el contexto adicional proviene de datos web en vivo en lugar de un almacén de vectores estático.

Este patrón funciona bien cuando necesita constantemente resultados de búsqueda, especialmente si ya cuenta con un canal estilo RAG. Es sencillo de implementar, determinista y con una latencia relativamente baja, ya que cada solicitud sigue el mismo paso de búsqueda. Sin embargo, también es rígido: siempre realiza una consulta de búsqueda, sea necesaria o no, y no hay oportunidad de refinar las consultas o ajustar la recuperación en función de resultados intermedios.

Uso de herramientas

En una configuración de uso de herramientas, el LLM llama dinámicamente a una API de búsqueda solo cuando el LLM determina que necesita información externa. Un usuario hace una pregunta; el LLM decide si tiene suficiente contexto; y si no, activa una llamada a la API de búsqueda. Luego, los resultados se retroalimentan al modelo, que los utiliza para generar una respuesta final. En algunos sistemas, el LLM puede realizar múltiples llamadas a herramientas para refinar o ampliar su consulta.

Considere este patrón para su proceso de LLM cuando solo algunas indicaciones requieran datos web en vivo. Los sistemas de uso de herramientas son más flexibles y eficientes que los canales de búsqueda primero porque evitan llamadas de búsqueda innecesarias. Sin embargo, introducen una complejidad adicional y pueden ser más difíciles de depurar, ya que el LLM tiene más control sobre cuándo y cómo se realiza la recuperación.

En comparación con los canales de búsqueda primero, este enfoque transfiere el control del sistema al modelo, pero sigue siendo típicamente un proceso de decisión de un solo paso en lugar de iterativo.

Bucles agentes

Los bucles agentes son sistemas LLM en los que el modelo razona, llama a herramientas y refina su enfoque de forma iterativa hasta completar una tarea. Estos sistemas suelen estar dirigidos a tareas más complejas, como análisis de la competencia o resolución de problemas de productos, donde una única búsqueda no es suficiente. El agente LLM puede realizar múltiples búsquedas web según sea necesario, explorando, validando y refinando progresivamente su respuesta.

Esta configuración se adapta mejor a las tareas que requieren planificación y estrategia, donde el modelo funciona más como un agente de investigación que como un chatbot. A diferencia de los dos patrones anteriores, la recuperación no es una decisión única sino un ciclo iterativo continuo de razonamiento y búsqueda. Sin embargo, esta flexibilidad no es gratuita. Las llamadas a múltiples herramientas aumentan la latencia y el costo por el uso adicional de API, y estos sistemas también son generalmente más complejos de construir, depurar y controlar.

Ejemplo de código: conexión a tierra de un LLM con datos de búsqueda en vivo

Aquí hay un ejemplo simple de Python de una canalización de búsqueda que basa un LLM con datos web en vivo a través de SerpApi:

import serpapi import openai # Búsqueda web en vivo (SerpApi) def get_search_results(query): client = serpapi.Client(api_key=”YOUR_SERPAPI_API_KEY”) resultados = client.search({“q”: query}) # Extraer fragmentos principales snippets = []
para r en resultados.get(“resultados_orgánicos”, [])[:5]: snippets.append({ “title”: r.get(“title”), “snippet”: r.get(“snippet”), “link”: r.get(“link”) }) devuelve fragmentos # Crear mensaje LLM, basado en contexto en vivo def build_prompt(user_question, search_results): context = “\n\n”.join( f”{r[‘title’]}\n{r[‘snippet’]}” for r in search_results ) return f””” Eres un asistente útil basado en datos web en vivo. Utilice el contexto siguiente para responder la pregunta. Contexto: {contexto} Pregunta: {user_question} Respuesta: “”” # Llame a LLM (ejemplo con OpenAI) def Ask_llm(prompt): cliente = openai.OpenAI(api_key=”YOUR_OPENAI_KEY_HERE”) respuesta = client.chat.completions.create( model=”gpt-4o-mini”, mensajes=[{“role”: “user”, “content”: prompt}]
) devolver respuesta.opciones[0].message.content # Canal completo def respuesta_pregunta(pregunta): resultados_búsqueda = get_search_results(pregunta) solicitud = build_prompt(pregunta, resultados de búsqueda) return ask_llm(prompt) # Ejemplo de uso print(answer_question(“¿Cuáles son las últimas tendencias en la conexión a tierra de LLM?”)) # Ejemplo de resultado esperado, que cambiará naturalmente durante # tiempo: # # Las últimas tendencias en la conexión a tierra de LLM incluyen: # 1. **Capacitación previa sobre datos disponibles públicamente**: los desarrolladores # se están enfocando en utilizar conjuntos de datos de acceso público para mejorar el # conocimiento fundamental de los LLM. # 2. **Generación de recuperación aumentada (RAG)**: esta técnica # combina la recuperación de información relevante con capacidades # generativas, lo que permite que los modelos produzcan respuestas más precisas y # contextualmente fundamentadas al acceder a datos externos. # 3. **Ajuste de datos específicos del dominio**: Adaptar los modelos a # campos específicos garantiza que comprendan mejor los matices # y los requisitos de aplicaciones particulares, lo que conduce a un # rendimiento mejorado. Estas tendencias tienen como objetivo mitigar problemas como # las alucinaciones y mejorar la precisión y relevancia de las respuestas # generadas por los LLM.

¿No eres usuario de Python? Ningún problema. SerpApi funciona con muchos otros lenguajes, incluidos JavaScript, Ruby, Rust e incluso Google Sheets.

Tenga en cuenta que deberá instalar el cliente SerpApi Google Search (pip install serpapi) y el cliente OpenAI (pip install openai) para acceder a estas bibliotecas. También necesitará claves API tanto para su proveedor de LLM (por ejemplo, OpenAI, precios basados ​​en el uso) como para su infraestructura de búsqueda administrada (por ejemplo, SerpApi, nivel gratuito disponible). SerpApi también proporciona tutoriales adicionales y guías de integración para comenzar rápidamente a crear aplicaciones LLM basadas en búsquedas.

Conclusión

Para evitar alucinaciones sobre eventos, precios o políticas recientes, debe basar su LLM con información actualizada. RAG proporciona un contexto útil para las consultas de los usuarios, pero sus almacenes de vectores preexistentes pueden quedar obsoletos rápidamente. La incorporación de datos de búsqueda web en vivo ayuda a cerrar esta brecha de actualización y mejora la confiabilidad en dominios que cambian rápidamente.

La infraestructura de búsqueda administrada ayuda a abstraer las complejidades de obtener datos web en tiempo real y, una vez que estén disponibles, puede integrar estos datos en sus canales de LLM a través de una de tres arquitecturas principales: búsqueda primero, uso de herramientas o bucles agentes. Cada enfoque conlleva compensaciones en control, latencia y complejidad.

Entre ellos, los canales de búsqueda primero son la forma más sencilla de basar su LLM con datos en vivo. Siempre activan una llamada a la API de búsqueda antes de la generación del LLM. El ejemplo de código anterior demuestra este patrón utilizando SerpApi como capa de búsqueda administrada.

Si desea explorar más a fondo, SerpApi Playground es un punto de partida útil para experimentar con datos de búsqueda reales. Proporciona acceso a una amplia gama de API de búsqueda, incluida la Búsqueda de Google y las descripciones generales de IA.