Saltar al contenido

RAG vs. fine-tuning para chatbots de empresa

Última actualización:

Dos formas de darle tu conocimiento a un chatbot

Un modelo de lenguaje generalista sabe mucho del mundo, pero nada de tu horario, tu política de devoluciones o el producto que lanzaste el mes pasado. Para que un chatbot responda preguntas sobre tu negocio, tu propia información tiene que llegar de alguna forma a la conversación.

Hay dos enfoques habituales. La generación aumentada por recuperación, conocida como RAG por sus siglas en inglés, mantiene tu contenido fuera del modelo y le pasa las partes relevantes en el momento de la pregunta. El fine-tuning modifica el propio modelo entrenándolo más con ejemplos. Resuelven problemas distintos, y confundirlos es uno de los motivos más comunes por los que los proyectos de chatbot decepcionan.

Qué es la generación aumentada por recuperación

RAG funciona en dos fases. Primero se prepara tu contenido: páginas web, documentos y preguntas frecuentes se dividen en pasajes cortos, a menudo llamados chunks. Cada pasaje se convierte en un embedding, una serie de números que representa su significado, y se guarda en un índice en el que se puede buscar.

Después, cuando un visitante hace una pregunta, el sistema busca en ese índice los pasajes que con más probabilidad contienen la respuesta. Esos pasajes se incluyen en el prompt junto con la pregunta y unas instrucciones, y el modelo de lenguaje redacta la respuesta a partir de ellos. El modelo no se ha aprendido tu contenido de memoria. Lee las partes relevantes cada vez, igual que un empleado que consulta el manual antes de responder.

Como los datos están en el índice y no en el modelo, actualizar una respuesta es un cambio de contenido, no un trabajo de entrenamiento. Editas la página, la vuelves a indexar y la siguiente respuesta ya refleja el cambio. Y como el sistema sabe qué pasajes ha usado, puede indicar de dónde sale una respuesta, o decir que no ha encontrado nada relevante.

Qué es el fine-tuning

El fine-tuning, o ajuste fino, toma un modelo existente y continúa su entrenamiento con un conjunto de ejemplos, normalmente pares formados por una entrada y la salida que quieres. El entrenamiento ajusta los pesos internos del modelo, de modo que el nuevo comportamiento pasa a formar parte del propio modelo.

El fine-tuning sirve para enseñar a un modelo cómo responder: un tono coherente, un formato de salida fijo, un esquema de clasificación o una tarea concreta que se repite muchas veces. Es mucho menos fiable como forma de enseñarle datos. Un modelo ajustado no guarda tu lista de precios como un documento que pueda consultar. Absorbe patrones de los ejemplos y, si le preguntas por un detalle que vio solo una o dos veces, puede mezclarlo con otra cosa o rellenar el hueco con una suposición verosímil.

El fine-tuning también necesita datos de entrenamiento preparados: un conjunto de ejemplos buenos y coherentes que muestren exactamente el comportamiento que buscas, además de una nueva ronda de entrenamiento y evaluación cada vez que cambia algo importante. Eliminar un dato que el modelo ha aprendido no es tan sencillo como borrar una página; por lo general hay que volver a entrenar con datos corregidos.

RAG y fine-tuning de un vistazo

La tabla compara los dos enfoques en los puntos que más importan para un chatbot que responde preguntas sobre tu negocio.

Generación aumentada por recuperación (RAG)Fine-tuning
Qué cambiaLo que el modelo lee antes de responderLos pesos del modelo y, por tanto, su comportamiento por defecto
Mantener los datos al díaEditar o volver a indexar la fuente; la siguiente respuesta ya la usaHacen falta nuevos datos de entrenamiento y otro entrenamiento
Esfuerzo para actualizarBajo: un cambio de contenidoMayor: preparar datos, entrenar y probar
Rastrear la fuente de una respuestaPosible, porque se conocen los pasajes recuperadosNo es posible de forma directa; el conocimiento está repartido en los pesos
Controlar las alucinacionesLas instrucciones pueden limitar las respuestas al contenido recuperado y permitir «no lo sé»Más difícil; el modelo puede responder con seguridad a partir de patrones
Datos necesariosTus páginas, documentos y preguntas frecuentes actualesEjemplos de entrada y salida seleccionados con cuidado
Eliminar contenidoBorrar la fuente del índiceVolver a entrenar sin esos datos
Ideal paraRespuestas basadas en datos de un contenido que cambiaTono, formato y tareas concretas y repetitivas

Búsqueda por palabras clave, semántica e híbrida

La calidad de un chatbot RAG depende mucho del paso de búsqueda. Si no se recupera el pasaje correcto, ni el mejor modelo puede dar la respuesta correcta. Hay dos formas principales de buscar.

La búsqueda por palabras clave compara las palabras de la pregunta con las de tu contenido. Es precisa con términos exactos: referencias de producto, números de modelo, nombres, mensajes de error y abreviaturas. Le cuesta cuando el visitante usa palabras distintas a las de tu página, por ejemplo si pregunta cómo «mandar de vuelta un paquete» y la página se titula «Política de devoluciones».

La búsqueda semántica compara embeddings en lugar de palabras, así que encuentra pasajes con un significado parecido aunque la redacción sea distinta. Maneja bien las preguntas reformuladas o coloquiales, pero puede pasar por alto identificadores exactos, porque un número de pieza, por ejemplo, apenas tiene significado por sí solo.

La búsqueda híbrida ejecuta las dos y combina los resultados. Una pregunta como «¿El X200 sirve para mi bici de 2019?» se beneficia de la búsqueda por palabras clave para «X200» y de la semántica para el resto. Para el contenido de una empresa, que mezcla lenguaje cotidiano con nombres y códigos, la búsqueda híbrida suele ser la opción más sólida.

Cuándo tiene sentido el fine-tuning

El fine-tuning no es la herramienta equivocada, es una herramienta distinta. Los dos enfoques también se pueden combinar: un modelo ajustado para un tono o un formato puede seguir obteniendo los datos mediante recuperación.

Merece la pena plantearse el fine-tuning si se da uno o varios de estos casos:

  • Necesitas un formato de salida muy constante, por ejemplo datos estructurados para otro sistema.
  • La tarea es concreta y se repite en grandes volúmenes, como clasificar los mensajes entrantes en categorías fijas.
  • Quieres un estilo o un tono concreto que las instrucciones por sí solas no consiguen de forma fiable.
  • Tienes muchos ejemplos de calidad y capacidad para volver a entrenar y probar cuando algo cambia.

Cómo preparar tu contenido para un chatbot RAG

En la mayoría de los chatbots web, unas instrucciones claras hacen el trabajo que se esperaría del fine-tuning, y la recuperación aporta el conocimiento. Pero la búsqueda solo encuentra lo que está en tu contenido, y funciona mejor cuando ese contenido es claro. Algunos hábitos ayudan:

  • Empieza por las páginas escritas para clientes: preguntas frecuentes, páginas de productos y servicios, precios, envíos, políticas y artículos de ayuda.
  • Deja fuera las páginas que solo añaden ruido, como archivos, páginas de etiquetas, páginas de inicio de sesión y anuncios antiguos.
  • Elimina o actualiza los documentos viejos. Si dos fuentes se contradicen, el chatbot puede recuperar la equivocada.
  • Escribe pares de Q&A para los casos en que importa la redacción exacta, como las condiciones de cancelación o de garantía.
  • Siempre que puedas, trata un solo tema por página o sección, para que cada pasaje se entienda por sí mismo.
  • Vuelve a indexar después de cambios importantes, como nuevos precios u horarios.
  • Antes de publicarlo, prueba con las preguntas que hacen tus visitantes de verdad, incluidas las vagas y las que tu contenido no responde.

Cómo lo hace intoCHAT

intoCHAT se basa en la recuperación. Cuando creas un agente, lo entrenas con tu propio contenido: pegas la URL de tu web y eliges qué páginas leer, subes archivos como PDF, documentos de Word, hojas de cálculo o presentaciones, y añades textos o pares de Q&A. intoCHAT divide ese contenido en pasajes y crea sus embeddings.

Cuando un visitante hace una pregunta, intoCHAT ejecuta una búsqueda híbrida, que combina búsqueda semántica y por palabras clave en tu contenido, y pasa los mejores pasajes al modelo de IA junto con tus instrucciones. Unas reglas integradas mantienen las respuestas basadas en tus fuentes y resisten la inyección de prompts, y el agente dice cuándo no sabe algo en lugar de inventárselo.

intoCHAT no hace fine-tuning de modelos con tu contenido. En intoCHAT, entrenar un agente significa indexar tu contenido para la búsqueda, no modificar el modelo. El modelo de IA es un modelo de OpenAI que intoCHAT elige y gestiona, y los pasajes de tu contenido se envían a OpenAI para crear los embeddings y generar las respuestas. Por eso las actualizaciones son rápidas: tu conocimiento está en fuentes que controlas tú, no dentro de un modelo.

  • Las respuestas de los pares de Q&A tienen prioridad sobre otras fuentes, así que puedes fijar la redacción de las respuestas importantes.
  • Si marcas una fuente con una estrella, sube en la búsqueda sin necesidad de volver a entrenar.
  • Puedes editar, previsualizar, descargar, eliminar o volver a entrenar cada fuente. El reentrenamiento es manual, así que vuelve a entrenar una fuente cuando cambie su contenido.
  • El Playground te permite probar el agente con preguntas reales antes de publicarlo.

Cómo elegir el enfoque adecuado

Si tu chatbot tiene que responder preguntas de clientes con la información que publicas, empieza por la recuperación. Usa el contenido que ya tienes, se mantiene al día cuando lo actualizas y mantiene las respuestas ligadas a tus fuentes. Plantéate el fine-tuning solo si necesitas un comportamiento concreto que las instrucciones no consiguen y tienes los datos y el tiempo para mantenerlo.

La forma más rápida de ver la recuperación en acción es probarla con tu propia web: la herramienta de vista previa gratuita crea un agente temporal a partir de cinco de tus páginas, y cuando quieras ir más allá puedes crear gratis tu agente de intoCHAT.

Preguntas frecuentes

¿Es mejor RAG que el fine-tuning para un chatbot de atención al cliente?

En la mayoría de los casos, sí. Las respuestas de atención al cliente dependen de datos como políticas, precios y procedimientos que cambian con el tiempo, y con la recuperación el chatbot responde a partir de la versión actual de tu contenido. El fine-tuning es más adecuado para dar forma al tono o al formato que para mantener los datos correctos.

¿El fine-tuning evita que un chatbot alucine?

No. El fine-tuning puede hacer que un modelo suene más a tu marca, pero no le da un registro fiable de tus datos, y puede seguir dando respuestas incorrectas con total seguridad. Basar las respuestas en pasajes recuperados, con la instrucción de decir cuándo falta información, es una forma más directa de reducir las respuestas inventadas.

¿Se pueden combinar RAG y fine-tuning?

Sí. Un modelo puede estar ajustado para un estilo o formato concreto y seguir usando la recuperación para buscar datos en el momento de la pregunta. En la mayoría de los chatbots web, unas instrucciones claras ya resuelven el tono, así que la recuperación sola suele bastar.

¿Qué es la búsqueda híbrida en un chatbot RAG?

La búsqueda híbrida combina la búsqueda semántica, que compara significados, con la búsqueda por palabras clave, que compara palabras exactas. Ayuda cuando las preguntas mezclan lenguaje cotidiano con nombres, referencias de producto u otros términos exactos. Los resultados de ambas búsquedas se combinan para que al modelo lleguen los pasajes más relevantes.

¿intoCHAT hace fine-tuning de modelos de IA con mi contenido?

No. intoCHAT no hace fine-tuning de modelos con tu contenido. Cuando intoCHAT habla de entrenar un agente, se refiere a indexar tu contenido para la búsqueda: se divide en pasajes, se convierte en embeddings y se consulta cuando un visitante hace una pregunta. Los pasajes se envían a OpenAI, cuyo modelo elige y gestiona intoCHAT, para crear los embeddings y generar las respuestas.

¿Cómo actualizo lo que sabe un agente de intoCHAT?

Edita o sustituye la fuente y vuelve a entrenarla; es un paso manual. También puedes añadir pares de Q&A, que tienen prioridad sobre otras fuentes, o marcar una fuente con una estrella para que suba sin volver a entrenar. intoCHAT no vuelve a sincronizar tu web automáticamente, así que vuelve a entrenar después de cambios importantes.

Míralo responder con tu propia web

Pega la dirección de tu web y chatea con un agente creado a partir de tus páginas. Tarda alrededor de un minuto.

Crea tu agente gratis

Plan gratuito, sin tarjeta de crédito.