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é cambia | Lo que el modelo lee antes de responder | Los pesos del modelo y, por tanto, su comportamiento por defecto |
| Mantener los datos al día | Editar o volver a indexar la fuente; la siguiente respuesta ya la usa | Hacen falta nuevos datos de entrenamiento y otro entrenamiento |
| Esfuerzo para actualizar | Bajo: un cambio de contenido | Mayor: preparar datos, entrenar y probar |
| Rastrear la fuente de una respuesta | Posible, porque se conocen los pasajes recuperados | No es posible de forma directa; el conocimiento está repartido en los pesos |
| Controlar las alucinaciones | Las 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 necesarios | Tus páginas, documentos y preguntas frecuentes actuales | Ejemplos de entrada y salida seleccionados con cuidado |
| Eliminar contenido | Borrar la fuente del índice | Volver a entrenar sin esos datos |
| Ideal para | Respuestas basadas en datos de un contenido que cambia | Tono, 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.