Como funciona un RAG y alternativas nocode al retrieval de asistentes

PuntoIA
1 Apr 202421:26

Summary

TLDREl video ofrece una visión detallada sobre la creación de asistentes de inteligencia artificial que funcionan con una base de conocimientos específica. Se discute la técnica de 'retrieval' y sus desafíos, como la inconsistencia y el costo elevado,对比 con otras técnicas como 'fine-tuning'. Se explora el uso de GPṬ personalizado y su acceso limitado a usuarios de GPṬ Plus. El video también calcula el costo de las consultas y sugiere alternativas para reducir gastos. Luego, se profundiza en el funcionamiento de un esquema de 'retrieval', desde la división de documentos en 'chunks' hasta la búsqueda semántica y la generación de respuestas finales. Se presentan herramientas no-code como Voiceflow y WordPress para implementar sistemas de 'retrieval' y se analizan sus ventajas y desafíos en términos de eficiencia y coste. El contenido es una guía para aquellos interesados en la construcción de asistentes de IA personalizados, destacando la importancia de la elección de estrategias y herramientas que se ajusten al caso de uso específico.

Takeaways

  • 🤖 La creación de asistentes con conocimientos específicos puede no ser consistente cuando se utiliza la opción de retrieval, ya que puede ser costosa o generar alucinaciones.
  • 📚 Las bases de conocimiento para los bots generalmente consisten en documentos en formatos como PDF, Word, texto, etc., y se utilizan para otorgar información nueva al asistente.
  • 🔄 La técnica de 'fine tune' es una alternativa a retrieval que puede ser utilizada en ciertos casos, pero es más compleja de implementar.
  • 🚀 Los 'GPT Custom' son una opción para los asistentes, pero solo disponibles para quienes paguen la suscripción GPT Plus.
  • 💰 El uso de GPT para el retrieval puede ser costoso, especialmente cuando se consideran los tokens utilizados por las respuestas a las preguntas.
  • 📈 Se puede calcular el costo de usar GPT para el retrieval, y este puede variar dependiendo de la versión de GPT utilizada.
  • 📝 La técnica de 'splitter' se utiliza para dividir documentos en fragmentos de texto llamadas 'chunks', que son procesados para su uso en retrieval.
  • 🔗 El 'overlap' entre chunks es importante para asegurar que la información relevante para responder una pregunta esté incluida.
  • 📐 Los chunks son vectorizados usando modelos de embeddings, los cuales son vectores multidimensionales que representan la semántica de una frase o palabra.
  • 🔍 La búsqueda semántica en la base de datos vectorial se realiza para encontrar chunks semánticamente similares a la consulta del usuario.
  • 🛠️ Las herramientas no-code como Voiceflow y WordPress ofrecen implementaciones de retrieval y son flexibles en cuanto a la configuración de la base de conocimiento y el modelo de respuesta.
  • 🔧 Es posible optimizar el uso de tokens y reducir costos al crear bases de conocimiento separadas para temas específicos y clasificar las preguntas antes de buscar en ellas.

Q & A

  • ¿Qué problemas pueden surgir al utilizar la opción de 'retrieval' en un asistente?

    -Los problemas pueden incluir inconsistencia en las respuestas, costos elevados y la posibilidad de errores o 'alucinaciones' en la información proporcionada.

  • ¿Qué alternativa a la técnica de 'retrieval' se menciona en el script?

    -Se menciona la técnica de 'fine tune', que puede ser empleada dependiendo del caso de uso, aunque es más compleja de implementar.

  • ¿Qué son los 'chunks' en el contexto de la generación de conocimientos para un asistente?

    -Los 'chunks' son fragmentos de texto creados a partir de documentos, que son utilizados para proporcionar información semántica al modelo de lenguaje.

  • ¿Cómo se calcula el costo de una pregunta utilizando el modelo GPT 4?

    -Se divide el número total de tokens utilizados por la pregunta entre un millón y se multiplica por el costo por token, lo que da el costo por pregunta.

  • ¿Qué es la función del 'splitter' en el proceso de generación de chunks?

    -El 'splitter' es el módulo encargado de descomponer los documentos en chunks, pudiendo tomar estrategias como dividir por cantidad de caracteres, tokens, o mantener oraciones completas.

  • ¿Qué es el 'overlap' y por qué es útil en la generación de chunks?

    -El 'overlap' es una parte de texto que se repite en los chunks adyacentes, lo que es útil para asegurar que la información relevante para responder una pregunta abarque varias oraciones o párrafos.

  • ¿Qué son los 'embeddings' y cómo se relacionan con el proceso de búsqueda semántica?

    -Los 'embeddings' son vectores que representan palabras o frases en un espacio vectorial multidimensional según su semántica. Se utilizan en búsquedas semánticas para encontrar chunks similares a la consulta del usuario.

  • ¿Cómo se determina la similitud entre dos vectores en una búsqueda semántica?

    -Se calcula el coseno del ángulo formado entre los vectores; cuanto más cercano al 1 sea el valor, más similares serán los vectores y, por tanto, los chunks que representan.

  • ¿Qué factores complican el uso de un esquema de 'retrieval' cuando se incorporan cientos de archivos con temas distintos?

    -La cantidad de chunks similares que pueden surgir, la elección del modelo de embeddings, el almacenamiento de estos en la base de datos, y la determinación de la relevancia de un chunk son factores que pueden complicar el esquema de 'retrieval'.

  • ¿Qué es la generación aumentada con recuperación correctiva (SERAC) y cómo funciona?

    -La SERAC es una técnica que analiza la calidad de los chunks devueltos por la búsqueda. Si son ambiguos, se realiza una búsqueda en internet para mejorar los resultados. Si son incorrectos, se toman solo los datos de internet.

  • ¿Cómo se pueden reducir los costos asociados al uso de un asistente con la función de 'retrieval'?

    -Se pueden crear bases de conocimiento separadas para temas específicos, lo que reduce la cantidad de chunks que se consideran para cada pregunta y, por tanto, el número de tokens utilizados.

Outlines

00:00

🤖 Creación de asistentes con bases de conocimiento específica

Se discute la creación de asistentes que trabajan con conocimientos específicos y los problemas encontrados cuando la opción de 'retrieval' no es suficiente, como la inconsistencia, el costo y las alucinaciones. Se menciona la técnica de 'fine tune' como una alternativa más compleja. Las bases de conocimiento generalmente incluyen documentos en formatos como PDF, Word, texto, etc. y se explora el uso de GPG Personalizado y sus limitaciones, especialmente en relación con la suscripción a GPG Plus. Se calcula el costo de usar GPG para respuestas basadas en la información de los documentos, destacando los posibles problemas económicos a gran escala.

05:00

📚 Funcionamiento del esquema de 'retrieval' y alternativas

Se profundiza en cómo funciona el esquema de 'retrieval', desde la división de documentos en 'chunks' de texto con estrategias como el número de caracteres o tokens, hasta la inclusión de 'overlap' para capturar información relevante. Se describe el papel del 'splitter' y se exploran diferentes métodos de división de texto, incluyendo el uso de 'lang Chain', un framework para JavaScript y Python. Se habla de la importancia de los 'embeddings' en la búsqueda semántica y se menciona la necesidad de almacenar estos vectores en bases de datos para evitar cálculos lentos. Además, se presentan diferentes opciones de bases de datos vectoriales y se discute el proceso de búsqueda semántica y la comparación de similitud entre vectores.

10:03

🔍 Desafíos y soluciones en la búsqueda semántica

Se abordan los desafíos de la búsqueda semántica, especialmente cuando se incorporan múltiples archivos con temas distintos, lo que puede generar una gran cantidad de 'chunks' similares y posibles resultados no deseados. Se discuten los componentes y variables involucradas en el proceso, como el selección del 'splitter', el modelo de 'embeddings', la base de datos de almacenamiento y la determinación de la relevancia de un 'chunk'. Se mencionan estrategias y soluciones investigadas por empresas y organizaciones, incluyendo la generación aumentada con recuperación correctiva (SERAC) y búsquedas jerárquicas. Se enfatiza la importancia de estar atentos a las novedades y la falta de un esquema ideal actualmente.

15:04

🛠️ Herramientas prácticas para implementar 'retrieval'

Se presentan herramientas prácticas para implementar el 'retrieval', destacando a 'Voiceflow' y 'WordPress' como plataformas que permiten construir chatbots con funciones de 'retrieval'. Se explora la configuración de estas herramientas, incluyendo la carga de bases de conocimiento, la selección de modelos de análisis, la personalización de la respuesta final y la inclusión de orígenes adicionales de conocimiento, como sitios web. Se comparan los costos en términos de tokens utilizados entre estos sistemas y los asistentes de OpenAI, y se sugieren estrategias para reducir estos costos, como la creación de bases de conocimiento separadas para diferentes temas.

20:06

📈 Optimización de costos y consideraciones finales

Se muestra una planilla que compara el costo de tokens en diferentes plataformas y se destaca la alta cantidad de tokens utilizados por WordPress en comparación con otros asistentes. Se sugiere que la subida de múltiples archivos en una sola base de conocimiento puede ser innecesaria y costosa. Se propone una variante para reducir costos, creando bases de conocimiento separadas para diferentes juegos de mesa y clasificando las preguntas antes de buscar en la correspondiente base. Se finaliza con un mensaje de motivación para investigar, probar y no frustrarse si los resultados no son inmediatamente satisfactorios.

Mindmap

Keywords

💡Retrieval

Retrieval es una técnica utilizada en sistemas de inteligencia artificial que permite al asistente obtener nueva información de una base de conocimientos específica para responder a consultas. En el video, se discute cómo el uso de la técnica de retrieval puede llegar a ser costoso o inconsistente, y se exploran alternativas cuando no es la mejor opción.

💡Fine-tune

Fine-tune es un método más complejo de implementar en comparación con el retrieval, donde se entrena un modelo de lenguaje específicamente para un caso de uso o dominio de conocimiento. Aunque no se profundiza en el video, se menciona como una alternativa a considerar.

💡GPT (Generative Pre-trained Transformer)

GPT es un modelo de lenguaje pre-entrenado que se utiliza en la creación de asistentes virtuales. En el video, se habla sobre cómo los GPT personalizados requieren una suscripción a GPT Plus, y cómo este modelo se puede emplear para responder a consultas basadas en la información de la base de conocimientos.

💡Costo de tokens

Los tokens son las unidades utilizadas para medir el uso de lenguaje en los modelos de GPT. El video aborda cómo el número de tokens utilizados por una pregunta puede variar significativamente, lo que afecta directamente al costo de operación del asistente.

💡Splitter

Un splitter es una herramienta que divide los documentos en fragmentos de texto llamadas chunks para su posterior análisis y vectorización. En el video, se describe cómo diferentes estrategias de splitting, como por cantidad de caracteres o tokens, afectan la calidad de los chunks y, por ende, la eficacia del modelo de respuesta.

💡Overlap

El overlap se refiere a una sección de texto que se repite en los chunks adyacentes para asegurar que la información relevante para responder una pregunta no se pierda. Se menciona en el video como una técnica para mejorar la calidad de los chunks al permitir que abarquen varias oraciones o párrafos.

💡Embeddings

Los embeddings son vectores que representan palabras o frases en un espacio vectorial multidimensional según su semántica. En el video, se explica cómo estos vectores son fundamentales para la búsqueda semántica y cómo se comparan usando la función trigonométrica del coseno para determinar la similitud.

💡Base de datos vectorial

Una base de datos vectorial es un tipo de almacenamiento de datos donde los elementos se guardan en forma de vectores para permitir búsquedas semánticas eficaces. En el contexto del video, se utiliza para almacenar los embeddings de los chunks y realizar búsquedas de información relevante.

💡Recuperación correctiva

La recuperación correctiva es una técnica donde se analizan los chunks devueltos para determinar su calidad y, en caso de ser ambiguos o incorrectos, se realiza una búsqueda adicional en internet para mejorar la respuesta. Se menciona en el video como una estrategia emergente para mejorar la precisión de los sistemas de asistentes.

💡Herramientas no-code

Las herramientas no-code son plataformas que permiten a los usuarios crear aplicaciones o sistemas sin necesidad de escribir código. En el video, se discuten herramientas como Voiceflow y WordPress, que ofrecen capacidades de desarrollo de chatbots con funciones de inteligencia artificial y retrieval incorporadas.

💡Estrategias de chunking

Las estrategias de chunking son métodos para dividir el texto en partes más pequeñas que luego pueden ser procesadas por un modelo de lenguaje. En el video, se exploran diferentes estrategias, como el chunking por caracteres, tokens, o manteniendo la integridad de párrafos, y cómo estas afectan la eficacia de la búsqueda y respuesta del sistema.

Highlights

La importancia de crear asistentes con bases de conocimientos específicas para su eficiencia.

El uso de la técnica de 'retrieval' para otorgar nuevo conocimiento al asistente a través de documentos y manuales.

La complejidad y limitaciones de la técnica de 'fine tune' en comparación con 'retrieval'.

El costo asociado con el uso de GPlates para el procesamiento de consultas en asistentes.

La posibilidad de usar 'GPT Plus' para acceder a asistentes personalizados, pero su limitación por ser una suscripción de pago.

La estrategia de 'chunks' y 'overlap' para dividir documentos en partes relevantes para el modelo de lenguaje.

La utilidad del 'splitter' para descomponer documentos en chunks según diferentes estrategias.

La capacidad de incorporar orígenes de conocimiento adicionales, como sitios web, en la base de datos del asistente.

El uso de diferentes modelos de embeddings para vectorizar y comparar similitudes semánticas entre textos.

La eficiencia de la búsqueda semántica y cómo se determina la similitud entre vectores utilizando la función coseno.

Los desafíos de manejar grandes volúmenes de conocimiento y la necesidad de estrategias avanzadas para la búsqueda de información.

La exploración de nuevas técnicas y enfoques, como 'SERAC', para mejorar la calidad y precisión de las respuestas del asistente.

La importancia de la personalización y adaptabilidad en la implementación de esquemas de 'retrieval' para diferentes casos de uso.

La evaluación de herramientas no-code y la integración de IA en plataformas como Voiceflow y WordPress para el desarrollo de asistentes.

La flexibilidad de Voiceflow y WordPress en la configuración de asistentes, incluyendo la elección de modelos de lenguaje y ajustes de respuesta.

La consideración de factores como la longitud de los chunks, el modelo de embeddings y la cantidad de chunks para optimizar el rendimiento y los costos.

La creación de bases de conocimiento separadas para diferentes temas para mejorar la eficiencia de la búsqueda y reducir los costos.

La importancia de la experimentación y la adaptación continua para encontrar las mejores soluciones en el desarrollo de asistentes de IA.

Transcripts

play00:00

muchas veces queremos crear asistentes

play00:03

que trabajen con una base de

play00:04

conocimientos específica y cuando

play00:06

creemos que la opción de retrieval no

play00:08

soluciona todo nos encontramos con que

play00:11

no es consistente puede llegar a ser muy

play00:13

costosa o tiene alucinaciones y muchas

play00:16

veces hasta da error para empezar a

play00:19

resolver esos problemas los primeros

play00:21

saber cómo trabaja un retrieval o rack Y

play00:24

qué alternativas

play00:27

tenemos antes de empezar quiero

play00:30

comentarte que en el canal vas a

play00:31

encontrar mucho material no solo sobre

play00:33

asistentes y automatizaciones así que te

play00:36

invito a recorrerlo por último si te

play00:38

gustan los videos No te olvides de

play00:40

suscribirte o dar like para apoyar al

play00:42

Canal Ahora sí las bases de conocimiento

play00:45

que incorporamos a nuestro Bot consisten

play00:47

Por lo general de documentos en formato

play00:49

pdf archivos de word archivo de texto o

play00:52

similares la idea de retrieval es

play00:54

otorgar conocimiento nuevo al asistente

play00:57

ya sea por ejemplo manuales de Nuestra

play00:59

Empresa

play01:00

o algún estudio reciente preguntas

play01:02

frecuentes sobre nuestro sitio y demás

play01:05

en fin es información que la ia no

play01:07

conoce existe otra técnica denominada

play01:10

fine tune que a veces dependiendo del

play01:12

caso de uso se podría emplear pero es

play01:15

mucho más compleja de implementar si

play01:17

quieren aprender de ese tema tengo un

play01:18

video les muestro el link aquí arriba

play01:21

volviendo al retrib a los rack openen

play01:24

Nos otorga la posibilidad de subir

play01:26

archivos y emplearlos en los gpt

play01:28

personalizados y también en los

play01:31

asistentes el tema de los gpt

play01:33

personalizados Es que solo los van a

play01:36

poder usar aquellos que paguen gpt Plus

play01:39

es decir si nuestro Bot está orientado a

play01:42

nuestros clientes no podemos pedirles

play01:44

que se suscriban a gpt Plus y por eso

play01:47

van a verlo cómo lo hago en los

play01:48

asistentes cuando habilitamos el

play01:51

retrieval en asistente el mismo va a

play01:53

poder responder en base a esa

play01:55

información pero todo tiene un costo

play01:58

observamos la cantidad de para una

play02:00

simple pregunta puede llegar fácilmente

play02:02

a los 5000 o más y eso puede ser un

play02:05

problema hagamos un cálculo de costos

play02:08

según la web de Open si usamos gpt 4

play02:11

tendríamos por ejemplo 5000 por 30

play02:14

dividido 1 millón eso es igual a 15

play02:18

centavos la pregunta ese costo comprende

play02:21

resolver solamente la parte interna

play02:23

luego está el output que le agregaría

play02:25

100 token no más en promedio podemos

play02:28

probar el cálculo en el gpt 3.5 y

play02:32

suponiendo que nos da un buen resultado

play02:34

sin alucinaciones el valor pasa a ser

play02:38

5000 por 0,5 di 1 millón o sea

play02:43

0.0025 60 veces menor parece poco pero

play02:47

imaginen que acceden a nuestro Bot unas

play02:49

300 personas por día si hacen solamente

play02:52

dos preguntas tendremos un costo de .

play02:55

Med en gpt

play02:57

3.5 lo que sería al mes

play03:00

$45 además existe un costo adicional que

play03:04

es mucho menor pero lo deben tener en

play03:06

cuenta que es el almacenamiento de 0,2

play03:10

gb por día de los archivos que vayamos

play03:12

subiendo con estos valores vale la pena

play03:15

analizar si hay alguna alternativa

play03:17

dentro o fuera de Open Ey para entender

play03:20

Por qué de tantos token debemos aprender

play03:22

Cómo funciona un esquema rack Y a partir

play03:25

de ahí investigar y evaluar opciones les

play03:28

adelanto que en este video Vamos a

play03:30

abordar herramientas no code y en un

play03:32

futuro les mostraré una o varias

play03:34

opciones en donde el costo baja

play03:37

considerablemente pero tendrán que saber

play03:39

o animarse a programar vamos a explicar

play03:41

cómo funciona un esquema rack con el

play03:43

siguiente diagrama lo primero que

play03:45

tenemos es nuestro conocimiento en uno o

play03:48

más documentos ya sean archivo de texto

play03:50

PDF Word Jason python etcétera En

play03:54

definitiva todo se resume a texto que

play03:56

queremos que tenga en cuenta el modelo a

play03:58

la hora de hacer una pregunta

play04:00

en un esquema rack sencillo lo que se

play04:02

hace con estos documentos es dividirlos

play04:05

en fragmentos de texto llamado chuns hay

play04:08

varios criterios o estrategias para

play04:10

estas partes una de ellas consiste por

play04:13

ejemplo en fijar una cantidad de

play04:15

caracteres otra en fijar la cantidad de

play04:18

token y muchas más aparte de eso cada

play04:21

chunk Podría tener un pedazo del

play04:24

anterior o sea un texto que se repite Y

play04:26

esa sección se la llama overlap este es

play04:29

útil porque porque a menudo la

play04:30

información relevante para responder una

play04:32

pregunta puede abarcar varias oraciones

play04:35

o párrafos adyacentes a un documento al

play04:39

permitir el solapamiento de chuns se

play04:41

aumenta la probabilidad de que la

play04:42

información relevante se capture en los

play04:45

chunks recuperados el módulo que se va a

play04:48

encargar de desarmar los documentos en

play04:50

chunks se llama splitter aparte del

play04:53

estrategia de cantidad de caracteres o

play04:55

token el splitter puede tomar oraciones

play04:57

completas o párrafos completos

play05:00

voy a mostrarles esta web la misma sirve

play05:03

para entender un poco de todo esto de

play05:05

los chance viene con un texto por

play05:07

defecto pero pueden pegar el propio aquí

play05:11

se menciona a lang Chain que para el que

play05:13

no lo conoce es un framework para

play05:15

javascript y python bastante popular que

play05:18

permite armar circuitos y trabajar con

play05:20

distintos llm por ejemplo cambiemos el

play05:24

texto completo por el siguiente como

play05:26

método vamos a seleccionar splitter por

play05:29

cantidad de caracteres la longitud del

play05:31

chun será de 50 y por ahora cero de

play05:34

solapamiento como pueden ver con valores

play05:37

tan chicos quedan frases totalmente

play05:40

sueltas que lo más probable es que no

play05:41

sirvan para nada aumentemos el

play05:43

solapamiento a cinco lo que es grises

play05:47

nos van a indicar el texto que va a

play05:48

estar en ambos chuns el de la izquierda

play05:50

y derecha de ese

play05:52

solapamiento ahora vamos a cambiar el

play05:54

método para que cuente token en vez de

play05:57

caracteres tener un límite por token es

play06:00

más conveniente especialmente porque al

play06:02

vectorizar existe un límite del que si

play06:05

nos pasamos cierta información no se va

play06:08

a incluir por ejemplo el modelo de

play06:10

embedding de Open Ey tiene un máximo de

play06:13

8192 token veamos otro método de

play06:17

splitting de l Chain llamado recursive

play06:19

chac text que lo que intenta hacer es

play06:22

que los párrafos queden Unidos Voy a

play06:25

aumentar el tamaño del Chan a 80 porque

play06:27

50 puede ser muy poco para marcar un

play06:30

párrafo vean como aquí está definido que

play06:33

sean los dobles saltos o saltos simples

play06:36

los que separan los chuns Por ejemplo si

play06:39

definimos un largo muy pequeño

play06:41

Igualmente los párrafos se van a

play06:43

terminar dividiendo es decir lo que

play06:45

ocurra primero va a provocar un Chan El

play06:48

Salto de línea o o la longitud máxima

play06:51

También tenemos otros presos por ejemplo

play06:53

el de python Si queremos tener una base

play06:55

de conocimiento con código de

play06:57

programación y no queremos que las

play06:59

funciones o clases se corten podemos

play07:02

usar este para este caso Les recomiendo

play07:04

subir la cantidad de token porque si no

play07:06

se van a cortar Así que lo vamos a

play07:08

setear en 200 y voy a pegar el siguiente

play07:11

código También tenemos un preseo para

play07:13

texto en markdown Y si vamos a la web de

play07:16

l Chain vamos a encontrar que también

play07:19

existen splitter por ejemplo para Jason

play07:21

o html y para una gran cantidad de

play07:23

lenguaje de programación vamos a volver

play07:26

al diagrama una vez que tenemos los

play07:28

chunks debemos vor realizarlos o lo que

play07:30

se llama crear en vedios tengo un video

play07:33

que explica qué son estos vectores la

play07:35

búsqueda semántica el origen y demás

play07:38

incluso explico las bases matemáticas

play07:40

para emplear la función trigonométrica

play07:42

del coseno que es la que compara estos

play07:44

vectores el que esté interesado el link

play07:47

lo voy a dejar aquí arriba a modo de

play07:49

resumen Les comento que estos embedding

play07:51

son vectores que ubican una palabra o

play07:53

una frase en base a su semántica en un

play07:56

espacio vectorial pero los mismos no son

play07:59

como los que pudimos haber visto en

play08:01

álgebra en donde tenemos dos o tres

play08:04

dimensiones sino que será un espacio

play08:07

multidimensional aquí podemos tener un

play08:09

ejemplo en el modelo de Open ad b2 con

play08:12

1536 dimensiones para uno nuevo

play08:15

publicado hace poco las dimensiones

play08:17

pueden llegar a

play08:19

372 pero no son los únicos modelos de

play08:21

embeddings si vamos a esta web y

play08:24

queremos probar Tenemos muchos modelos

play08:26

Es decir para vectorizar chunks no

play08:28

dependemos de pen que nos va a cobrar

play08:30

por ese trabajo de vectorizar podríamos

play08:33

hacerlo con algún método de código

play08:34

abierto el siguiente paso consiste en

play08:37

que a todos estos env o vectores debamos

play08:40

guardarlos en una base de datos porque

play08:42

calcularlos cada vez que hacemos una

play08:44

pregunta sería muy lento por ahora les

play08:46

voy a nombrar alguna de las bases de

play08:48

datos más conocidas F que está

play08:51

desarrollada por Facebook es SP tag de

play08:54

Microsoft mbus es una base de código

play08:56

abierto chroma una base de datos

play08:58

vectorial en memoria wib otra base de

play09:01

datos vectorial de código abierto

play09:03

elastic Search y pinec que es tal vez

play09:06

una de las más conocidas y funciona en

play09:09

la nube una vez que tenemos todo esto

play09:11

guardado Cómo funciona el retrieval Por

play09:13

eso tengo este otro diagrama todo

play09:16

arranca con la persona que es una

play09:17

consulta al llm de esa consulta se

play09:21

calcula también el vector con el mismo

play09:23

modelo de embedding que se usó para los

play09:25

chunks y luego se hace una búsqueda en

play09:27

la base de datos vectorial de de los

play09:29

cuales vamos a tomar los c changs que

play09:32

semánticamente son similares y se

play09:35

devuelven con esos fragmentos de texto

play09:38

sumado a la consulta original Se invoca

play09:40

al llm que podría ser el gpt 4 Cloud 3 o

play09:44

el que estén usando Y lo bueno es que

play09:46

ahora el llm tiene disponible mucha más

play09:49

información para responder Así que con

play09:52

eso va a poder elaborar la respuesta

play09:53

final y se la devuelve al usuario ahora

play09:57

bien cómo fue esa búsqueda semántica Y

play09:59

cómo sé que dos vectores son similares

play10:02

vamos a pensar por un momento que

play10:04

podemos reducir las dimensionalidad de

play10:06

esos vectores a Solo dos como muestro en

play10:09

la siguiente imagen todos los vectores

play10:11

tendrán un punto de origen en común

play10:13

entre ellos se va a formar un ángulo y

play10:16

para determinar la similaridad semántica

play10:19

se compara el coseno del ángulo que se

play10:21

forma entre ellos Cuanto más cercano sea

play10:24

uno el valor entonces Esas palabras o

play10:27

frases serán más parecidas por por eso

play10:29

en este ejemplo los animales están cerca

play10:31

y la palabra auto está alejada ya que

play10:34

estamos Les comento que el uso de la

play10:36

función de coseno está en debate si

play10:39

realmente es la forma correcta a la hora

play10:41

de comparar pero por ahora es la más

play10:43

utilizada lo interesante de todo esto es

play10:45

que estos vectores van a representar

play10:48

toda la semántica del chun y no

play10:50

solamente una palabra por ejemplo las

play10:53

oraciones el gato persigue al ratón y el

play10:56

felino persigue al roedor pueden tener

play10:58

diferentes

play11:00

superficiales pero Su contenido

play11:02

semántico es bastante similar parece

play11:05

sencillo pero no lo es tanto

play11:06

especialmente cuando el volumen de

play11:08

nuestra base de conocimientos aumenta si

play11:10

tenemos un único PDF que habla de un

play11:13

solo tema este esquema probablemente

play11:15

funcione bien Pero qué tal si empezamos

play11:18

a incorporar cientos de archivos con

play11:20

temas distintos la búsqueda podría no

play11:22

funcionar en estos casos debido a los

play11:24

miles de Chan que pueden llegar a ser

play11:27

similares y podrían tener as no deseadas

play11:30

repasemos los componentes y cantidad de

play11:32

variables que ya

play11:34

mencioné hay que decidir qué splitter

play11:36

emplear también el modelo de embeddings

play11:39

luego tenemos la base de datos donde hay

play11:41

que almacenar esos embedding hay que ver

play11:43

también Cuántos chunks pueden ser

play11:45

relevantes para una consulta y Cómo

play11:48

determinamos que un Chan es relevante

play11:50

por el valor de su coseno luego hay que

play11:53

decidir el modelo a utilizar para

play11:55

respuesta final Una mala elección puede

play11:57

afectar a todo el conjunto muchas

play11:59

empresas organizaciones y personas de

play12:02

forma particular están dedicando tiempo

play12:04

a investigar las mejores soluciones o

play12:06

estrategias por ejemplo esquemas donde

play12:08

se realizan embeddings de no solo los

play12:11

chunks sino de los resúmenes de cada

play12:12

documento también otra alternativa es

play12:15

realizar resúmenes de secciones de cada

play12:17

uno de estos documentos e incluirlos en

play12:20

los chunks e incluso también los

play12:22

metadatos que por ejemplo existen en los

play12:25

archivos PDF o archivos de word una de

play12:28

las técnicas que estuve estudiando que

play12:31

es bastante nueva se llama ser rac

play12:34

generación aumentada con recuperación

play12:36

correctiva y en esta se agrega un

play12:38

componente adicional que analiza los

play12:40

chunks de vueltos para ver qué tan

play12:42

buenos son en calidad si son correctos

play12:45

sigue por el camino normal si son

play12:47

ambiguos se hace una búsqueda de

play12:48

internet y esa búsqueda suma a los

play12:50

chunks dev vueltos Y si son incorrectos

play12:53

se hace una búsqueda de internet y

play12:55

solamente se toman los datos de internet

play12:57

también hay alternativa de búsquedas

play13:00

jerárquicas y así podemos seguir creo

play13:02

que a futuro la lógica indica que si

play13:04

queremos realmente obtener la respuesta

play13:06

que necesitamos debemos considerar ir

play13:08

por un retrial compuesto por etapas algo

play13:11

así debería resolver la lentitud y

play13:13

también la precisión tiene que surgir

play13:16

nuevos métodos para que un esquema rack

play13:18

sea eficiente Así que hay que estar

play13:20

atentos a las novedades en este momento

play13:22

no existe el esquema ideal y

play13:25

probablemente va a depender en gran

play13:27

medida de nuestro caso de uso a resolver

play13:29

como mencioné antes no sabemos

play13:31

internamente qué hace Open Ai cuando

play13:33

ejecuta el retrieval pero por la

play13:35

cantidad de tokens que emplea en cada

play13:37

prom no me parece que realice una simple

play13:39

búsqueda de chun similares y nada más de

play13:42

hecho lo que me llama más la atención Es

play13:45

que a una misma pregunta la cantidad de

play13:47

token siempre es diferente puede

play13:49

responder con solo 1000 token o 5000 es

play13:52

como que metiera una cierta aleatoriedad

play13:55

en los chuns usados o algo más ahí por

play13:58

detrás desconocido tal vez en un futuro

play14:00

nos permitan parametrizar ya sea

play14:02

cantidad de chuns longitud de los mismos

play14:04

el modelo de vectores etcétera Pero por

play14:06

ahora no tenemos nada de eso pasemos un

play14:09

poco a la parte práctica para no aburrir

play14:12

tanto lo siguiente son simples pruebas

play14:15

en algunos casos aplico un poco de

play14:17

creatividad Pero no quiero que crean que

play14:19

algo de lo que voy a mostrar es la mejor

play14:20

opción son alternativas las herramientas

play14:23

que ya vimos en el canal como ser

play14:25

wordpress y voiceflow implementan

play14:27

retrial propio y vamos a ver qué tan

play14:29

flexibles son casi todos los chatbot

play14:32

comerciales que ya tiene incorporada

play14:34

Inteligencia artificial también tiene la

play14:36

función de retrieval o la están

play14:38

implementando y no solo los chatbots

play14:41

sino también otras herramientas para

play14:43

hacer desarrollos con ea Como por

play14:45

ejemplo Flow wide lm Studio y otras

play14:48

primero veamos a voiceflow que permite

play14:50

construir chatbot y la que tenga un par

play14:53

de videos en el canal en este caso tengo

play14:55

armado este minic circuito en donde acá

play14:57

pregunta el sistema va a buscar en la

play14:59

base de conocimiento si de casualidad no

play15:02

se encuentra la respuesta me responde un

play15:04

texto generado por una ia Dónde se

play15:07

encuentra esta base de conocimiento

play15:09

Bueno vamos a la sección de contenido y

play15:11

luego en la parte de agentes están todos

play15:14

los archivos Por ejemplo si subimos un

play15:17

archivo desde la siguiente opción txt

play15:20

PDF o Word una vez que lo termina de

play15:23

vectorizar podemos ver los Chan

play15:25

generados si bien no podemos

play15:27

parametrizar la longitud de los mismos

play15:29

el overlap etcétera por lo menos de aquí

play15:32

podemos verlos luego también podemos

play15:34

hacer pruebas presionando el siguiente

play15:36

botón por ejemplo voy a preguntar lo

play15:38

siguiente Lo bueno es que nos aparecen

play15:40

los Chan seleccionados en este caso tres

play15:43

que es un valor por defecto desde este

play15:46

otro botón se pueden también cambiar el

play15:48

modelo que va a analizar la unión de los

play15:50

Chan resultantes con la preguntas del

play15:52

usuario para alguno de estos modelos

play15:54

debemos pagar por la versión Pro otra

play15:57

cosa que se puede configurar es la

play15:58

temperatura que la creatividad del Bot

play16:00

para la respuesta final también la

play16:03

longitud de esta respuesta y la cantidad

play16:05

de chunks a considerar que como máximo

play16:08

son 10 este valor es muy distinto al que

play16:11

ya van a ver que tiene wordpress también

play16:13

podemos establecer la definición del Bot

play16:16

similar a la definición del asistente de

play16:18

Open Ai en mi caso puse el siguiente

play16:21

texto el que estaba por defecto no era

play16:24

malo pero no me gustaba que este siempre

play16:27

hacía un resumen para la respuesta final

play16:29

voiceflow tiene algo que a mi parecer

play16:32

está muy bueno Y es que existen otros

play16:34

orígenes para la base de conocimiento

play16:36

por ejemplo Podemos agregar un sitio web

play16:39

y también lo va a vectorizar y de hecho

play16:43

podemos colocar que cada cierto tiempo

play16:45

se renueve me imagino que utilizarán

play16:48

algún splitter especial para html vamos

play16:51

al flujo en este componente hago la

play16:54

llamada a la base de conocimiento con la

play16:56

query del usuario ejecutemos el circuito

play16:59

y coloquemos la siguiente pregunta

play17:02

Perfecto es considerable la diferencia

play17:04

de tokens empleados respecto a un

play17:07

asistente para la misma base de

play17:09

conocimiento Igualmente la calidad de la

play17:11

respuesta al ser un gpt 35 es inferior a

play17:15

la del asistente que usé de Open veamos

play17:18

otra herramienta que ya mostré en el

play17:19

canal llamada

play17:21

wordpress aquí tengo un circuito similar

play17:23

al de boyflow la base de conocimiento se

play17:26

carga desde esta opción lateral y por

play17:29

tenemos una base de conocimiento que

play17:31

puede estar formada por múltiples

play17:33

documentos en varios formatos ya sea PDF

play17:35

txt o Word aparte de esto tenemos

play17:38

múltiples orígenes pero solo solo se van

play17:40

a vectorizar los que sean documentos por

play17:43

ahora subimos un archivo luego de unos

play17:45

segundos termina la vectorización y

play17:47

podemos ver cómo quedaron los chunks al

play17:50

igual que se podía en boyflow la

play17:52

búsqueda en la base de conocimiento se

play17:54

puede hacer de dos formas en el

play17:57

componente startar cada vez que llega

play17:59

una pregunta que en nuestro caso lo

play18:01

vamos a Deshabilitar y luego con este

play18:03

otro módulo que también sirve para hacer

play18:05

búsquedas en la base de conocimiento si

play18:08

no deshabilitamos el Start la búsqueda

play18:10

en la basa de conocimiento se va a hacer

play18:12

dos veces y nos va a consumir el doble

play18:14

de token luego debemos ir a la sección

play18:17

de asistentes para activar este en

play18:19

particular wordpress ofrece actualmente

play18:22

varios asistentes para que el asistente

play18:25

no conteste automáticamente sino que

play18:27

seamos nosotros qui es vamos a marcar la

play18:30

opción avanzada la siguiente opción es

play18:33

muy interesante podemos incluir

play18:34

información a la gente a través de dos

play18:37

variables una que controla el resumen de

play18:39

toda la conversación y otra que tiene la

play18:41

transcripción esto es similar a tener

play18:44

una memoria de todo lo que se habló

play18:46

parecido a los hos en los asistentes de

play18:49

Open Ai hay que tener en cuenta que para

play18:52

que funcionen esas variables debemos

play18:54

activar otro agente llamado summary

play18:57

agent Si quieren gastar menos token

play18:59

podrían eliminar eso Pero puede ser útil

play19:02

tener ese hilo de conversación

play19:03

Dependiendo el caso luego tenemos la

play19:05

elección del modelo pueden probar el 3.5

play19:08

que es el más rápido o el híbrido que lo

play19:12

que hace es probar el 3.5 y si no tuvo

play19:14

respuesta automáticamente pasa al cuatro

play19:17

lo que sig es una aclaración importante

play19:19

son estas dos variables una va a

play19:21

contener la respuesta y otra va a

play19:22

contener Cuáles bases de conocimiento

play19:24

fueron empleadas veamos el agente que

play19:27

hace el resumen y transcripción como

play19:29

dije antes no es obligatorio tenerlo

play19:31

activo en este agente podemos controlar

play19:34

el largo del resumen y la transcripción

play19:36

para que tampoco consuma tantos tokens

play19:39

ahora probemos a hacer la misma pregunta

play19:41

que en bflow a ver cuánto se gasta

play19:44

cuando termina eso está aquí en la

play19:46

sección de log si abrimos la opción de

play19:49

noled agent vemos que se usaron los 1es

play19:52

chuns de la base de conocimiento y por

play19:55

qué tantos en realidad todos es que

play19:57

wordpress ahora siempre usa 50 chunks de

play20:00

manera fija Así que si nuestra Ase tiene

play20:03

menos los vas usar a todos al usar

play20:06

tantos chunks la respuesta va a ser muy

play20:08

costosa les muestro la siguiente

play20:10

planilla en una prueba con un documento

play20:13

PDF que tenía más de 50 chuns Siempre la

play20:16

cantidad de tonkes rondaba los 16,000

play20:19

mucho más que la misma prueba en el

play20:21

asistente y que en boyflow en mi caso

play20:24

todos estos documentos tratan de

play20:26

distintos juegos de mesa un es el acone

play20:29

uno de carreras y uno de estrategia si

play20:32

subiera todos los archivos en la misma

play20:33

base de conocimiento el uso de 50 Chan

play20:37

sería innecesario para cada pregunta

play20:40

entonces una variante que hice solo para

play20:42

probar fue crear una base de

play20:44

conocimiento separada en la siguiente

play20:46

carpeta cada una con un archivo distinto

play20:49

Cómo hago para buscar en una o en otra

play20:51

bueno armé un circuito alternativo para

play20:54

cada pregunta la clasifica primero en

play20:57

qué juego corres y luego pueda decidir

play21:00

en cuál de ellos Buscar No digo que sea

play21:03

la mejor manera Pero puede servir para

play21:05

reducir los costos solo para que vean

play21:08

que funciona conecto el circuito y voy a

play21:11

realizar la

play21:13

pregunta perfecto Recuerden que los

play21:15

asistentes y muchas otras cosas siguen

play21:17

estando en modo beta investiguen prueben

play21:20

y no se frustren si no salen las cosas

play21:22

espero les haya gustado el video chao

Rate This

5.0 / 5 (0 votes)

Ähnliche Tags
Inteligencia ArtificialSistemas AsistentesTecnología RetrievalEstrategias de BúsquedaCostos de ImplementaciónConsistencia de DatosAlgoritmos de BúsquedaBase de ConocimientosDesarrollo de BotsOptimización de Costos
Benötigen Sie eine Zusammenfassung auf Englisch?