Aprende sobre Embeddings de OpenAI
Vložit
- čas přidán 23. 07. 2024
- En este video veremos como usar los embeddings de OpenAI para hacer un chatbot y un sistema que lee tus PDFs y responde a tus preguntas.
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
🖥️ El código este en este repositorio dentro de la carpeta de "embeddings" 🖥️
github.com/puigalex/GPT3
- 🔊 Si quieres apoyar al canal 🫶 para que haya mas y mejor contenido (ganar-ganar-ganar jaja) puedes hacerlo por Patreon! 🔊
/ amptech_cc
0:00 - Intro
0:24 - Explicacion de embeddings
1:29 - Codigo
1:58 - Embedding basico
3:32 - Comparar dos vectores
5:38 - Sumar vectores
7:00 - Chatbot
11:35 - PDF
19:55 - Preguntando algo que no sabe - Věda a technologie
Un consejo qué les doy a todos para almacenar los archivos con los embediings es que nos los guarden en csv, sino en un archivo pickle, de esta manera al leer el archivo nos aseguramos de que los embediings se lean como arreglos de numpy y no como un str.
Para hacer eso con el mismo pandas: pd.to_pickle('nameFile.pkl')
Para leerlo se usa: pd.read_pickle('nameFile.pkl')
Podría hacerle una pull request al repositorio
Claro que si!
No he podido conectarlo ni a Whatsapp ni a IG, como puedo solucionarlo?
@@cristopherjaque3965 cual es el procedimiento que estas siguiendo o en que repo esta para revisar
Que opinas de guardarlo en base de datos con json_array_pack, es mas costoso en base de datos o en archivos?
Cada sílabas que has compartido la he saboreado. 100% .
Excelente Alex,.como siempre.....Me interesa aprender más sobre Lang Chain, Llama y gradio. Espero puedas dedicar algún próximo video a estos temas. Saludos
Anotado a la lista de siguientes ideas!
@@AMPTech igual yo saludos
La clase de video que hace falta en internet. Muchas gracias .
El profesor Alex es el más chingón y el más actualizado 😎👌🏽
Muchas gracias, con este vídeo se puede ver un poco de cómo funciona ChatGPT por dentro, muy bien explicado!
Excelente video, muy ilustrador , gracias x compartir y difundir conocimiento ‼️
La explicación mas clara que vi hasta ahora sobre embeddings! gracias!
Genial ver más videos así, lo de gradio también parece interesante
Excelente como siempre. Muy bien explicado. Felicitaciones!!!
Muchas gracias José!
Excelente Alex...se aclaran muchos conceptos. Excelente video!
Excelente como siempre Alex! Muy agradecido con tu contenido!
Muchas gracias!
muchas gracias, lo explicaste muy claro ahora entiendo como funciona mejor todo esto
Muchas gracias por el vídeo, como siempre claro y con ejemplos prácticos. Me uno a la petición de LangChain y de gradio, saludos.
Se me esta juntando la chamba! jaja Muchas gracias por el comentario y listo ya tengo contemplado esos dos videos para el futuro no muy lejano.
Saludos!
Extraordinario tutorial. Enhorabuena
Gracias por este video. Lo has explicado muy claro 🙂👍
Gran aporte tuyo... gracias por esta importante divulgación de tu conocimiento... 👍
Muchas gracias por el comentario Juan, que bueno que te sirvió!
Exelente video, muy claro y consiso, me gustaria aprender mas sobre langChain de tu mano!
No se diga mas! Ya esta anotado para alguno de los siguientes videos. Gracias por tu comentario
Excelente contenido! Gracias por explicar Vector embedding de una manera tan fácil de comprender. Grande Abrazo desde Barcelona!
Muchas gracias Demian
Excelente vídeo! gracias por compartir
Gracias compi, muy bien explicado todo.
Magnífica explicación, muy buen contenido , saludos
Muy buen tutorial!!! Gracias por compartir!
Alex muchísimas gracias por tu tiempo para este agregado a las herramientas de IA. Ojalá puedas hacer un video con modelos open source que tengan un alto porcentaje de comparación con el de openAI, y si no es mucho pedir otro video con tu expertice sobre AutoChatGPT. Saludos.
Muchas gracias, me ha servido muchísimo!
Me da mucho gusto! Saludos!
¡Excelente! El ejemplo es perfecto para mí por que mis hijos juegan Magic y me han intentado explicar las reglas, sin éxito. Voy a montar este ejemplo y testarlo con mis hijos. Un par de comentarios: cuando se hace el troceo de los textos conviene dejar un poco de solapamiento, porque a veces gran parte del significado está en la relación entre dos textos contiguos. Lo segundo es que aunque obtener la lista de párrafos (o trozos) más parecidos a la pregunta, y por lo tanto más cerca de proveer una respuesta, está genial, lo que tal vez es mejor es aprovechar chatgpt para que busque en ese contenido la respuesta a tu pregunta. Aprovechando que no hay que pasarle el pdf completo sino sólo un grupo pequeños de textos, se puede hacer un prompt que los incluya junto con la pregunta. Las ventajas son que la respuesta puede venir de forma muy concisa, en forma de respuesta, y que además usó información de múltiples trozos, incluso que vienen de partes diferentes del texto.
Hola Santiago,
Tienes razón. De hecho si tenia pensado explicar el tema de solapamiento con embeddings, pero por alguna razón al momento de hacer el código final lo olvide por completo. Es algo que tal vez actualizare en el repositorio para los que lo usen puedan ver ahi el parámetro y sepan un poco sobre lo que hace.
Saludos!
Wow, la idea de pasar los párrafos como promts es algo que no había pensado. Tengo curiosidad, ¿ya lo has probado? De ser así, ¿cuál fue tu resultado?
Saludos, si, que bueno un curso sobre Lang Chain!!!
Anotado! Saludos
Muchas gracias, excelente video.
Queremos aprender más sobre LangChain y ya de paso gradio, pero sobre todo langchain :) muhcas gracias
Ya esta en mi lista para siguientes videos. Creo que es una herramienta suuper valiosa para acelerar y escalar soluciones con LLMs. Saludos!
Excelente video, muy clara la explicación!
Muchas gracias Adrian!
Eres un crack, muy buenas explicaciones
Excelente video doc!!! te has ganado un nuevo seguidor.
Muchas gracias!
Muchas gracias, ¡saludos!
Buenísima la explicación, puntos extra por MTG!
genial bro, me ayudaste a entender esto de los embeddins, pensé que solo se usaba para diagramas de datos y así
Que bueno que te ayudó para aclararlos. Si, al principio es un concepto muy ambiguo, pero ya que lo entiendes empiezas a ver todo como embeddings jajaja
esto de es mucha utilidad, gracias por compartir
Me da mucho gusto escuchar eso!
Excelente contenido, me gustaría ver la explicación y el uso de la herramienta Gradio. 👍
Gracias BRO, muy bueno!!!
Muchas gracias Jorge!
Super poderosa esta herramienta la verdad, gracias
Totalmente, aparte esta divertido, porque como son números pues puedes ponerte creativo a ver que puedes hacer (como el ejemplo de las sumas)
@@AMPTech Bro dame un route map para poder programar eso como tu por fa
Muchas gracias👍
Excelente contenido
Excelente ! Mas que una explicación es un taller para aprender como funciona prácticamente!
Jaja si! siempre empiezo con un video de 5-10 minutos en mente y termino entrando a detalle en mas cosas y termina uno como este video. Pero pues es mejor entenderlo todo a quedarse con algunas dudas.
Muchas gracias por tu comentario!
Muy interesante el contenido... 🤘
Muchs gracias, Rafael
Me interesa mucho lo que mocionas de hacer un video sobre cómo generar la interfaz gráfica 😊
Gracias amigo estaba esperando algo asi ya que los tutoriales y otros no estan tan claros
Con gusto! Intente ser muy claro en la explicación, por eso los 20 minutos jaja
Genial todo el contenido Yo si quisiera conocer acerca d LangChain
Trabajando en ese video ahorita mismo!
Excelente video, y solamente usaste lo mas simple y basico ya que hay ejemplo que usan Pinecone como base de datos de Vectores, aunque me surgio la duda que beneficios tiene si lo puedes tener un un archivo.
Hola, muy buenos tus videos, puedes hacer uno con un archivo pickle, como comento Miguel Murillo? y probarlo, Gracias por ofrecernos tu tiempo y conocimientos.
Excelente, gracias. LangChain por favor!
Anotado!
Mano, muchas gracias por compartir tus conocimientos tan generosamente. Disculpa mi ignorancia hermanito: veo que con el split y langchain indexas el texto en un array y de ahí el langchain interpreta a vectores cada una de esas líneas. Mi pregunta es si es posible aplicar el corte de forma dinámica en el split, es decir, si en lugar de cortar a 300, le dices al sistema que corte el texto cada vez que se encuentre con un punto y aparte, eso es posible? Gracias.
Hola alex. Genial tu video como siempre. En cuanto al problema q citás en el final de tu video respecto de la posibilidad de que ante una pregunta que nada tenga q ver con el tema que trata tu pdf pueda responder cualquier cosa, no hay una forma de ver el nivel de confianza de la respuesta de modo de que si ése nivel es bajo pueda responder algo como NO TENGO RTA P ESA PREGUNTA?
Gracias por tus buenos vídeos, te pregunto, podría realizar esto conectándolo a una base de datos que tiene varios registros?
Impecable! Excelente explicación!.... Se puede descargar el archivo de embeddings para trabajarlo en forma local?
Hola, gracias por compartir tu conocimiento. Una pregunta pará realizar análisis de información estadista, qué me sugieres. La idea qué traigo es realizar análisis del censo de población y sus diferentes segmentos qué tiene, haciendo predicciones
Excelente, existen muchos tutoriales en ingles y sería bueno tenerlo en español, me interesa aprender sobre Lang Chain, Llama Index.
Hola Miguel!
Gracias por el comentario, agregado entonces estos temas a mi lista de ideas para siguientes videos!
X2...
X3
Muito bom 🎉
Excelente video!, he visto algunos tik toks de gente usando IA para usar la voz de algun cantante famoso y hacer que cante lo que ellos quieran, conoces de que IA se trata?
.
perfecto
Teniendo en cuenta la velocidad de procesamiento y optimización ¿que es mejor guardar el embedding en un fichero o en una base de datos?
Buen vídeo hermano, me gustaría que hicieras un vídeo dedicado a lang chain, siento que puede ser una herramienta muy fuerte a explotar en este caso
Gracias
Totalmente! Acabo de publicar un intro y estaré subiendo unos ejemplos prácticos estas semanas.
Muchas gracias bro! Todo muy bien explicado, solamente tengo una duda. Si tengo varios PDFs como fuente de datos cómo le podría hacer para que el chatbot logre identificar si le están preguntando sobre algún pdf en específico o si el usuario quiere la respuesta más completa utilizando toda la información de los pdfs?
Excelente video! Si, haz más contenido así, y de LangChain! :D
Pregunta Alex, se puede hacer PCA sobre los embeddings? y así quizas ahorrarse feria $?
Gracias, saludos!
Justo estoy trabajando LangChain. Para ahorrarte el dinero, también estoy viendo hacer un video con unos embeddings de huggingface que no requieren $$$
esta interesante para un chat bot sobre un tema en especifico, pero solo se ajusta a la base de datos que se le asigne
Muy interesante, muchas gracias!... Podrías trabajar en este mismo sentido con AI que funcionan de manera local como por ejemplo ChatGPT4ALL ?
Si, ahorita he hecho unas pruebas con gpt4all y aun no esta integrado el tema de embeddings. La ventaja que tienen es que desde hace una semana usan gptj en vez de llama. El desempeño es peor jaja pero se puede usar un estornos comerciales a diferencia de Llama
Hola Alex! mucho gusto! Soy maxi, me enseñarias que preciso dominar para usar de referencia el historial de respuestas de una ACC de wasap mia? me gustaria que aprenda a responder como yo, y que solo me llegue una notificacion cuando digan determinada palabra, por ejemplo COMPRAR o Significados similares.
Muy buen trabajo Alex, tus vídeos son increíbles. Tengo una duda, cómo puedo incluir en un promots un conjunto de embeddings muy grandes como contexto en el system prompt? Necesito enviar una serie de datos bastante grande en cada llamada a la API de OPEN AI y estoy teniendo el problema de que superó los máximo de tokens por minuto que puedo enviar en una llamada a la API
Genial, exelente video. Una consulta de estas posibles respuestas, ejemplo tomo la primera y pudiera pasarle a chatgpt para que la randomize y no se sienta tan repetitivo?
Si se puede hacer. Solo incluyes la respuesta que te dan los embedding al prompt hacia gpt. Y le mencionas a gpt convertir el texto a algo mas casual, formal, o le das unos ejemplos del estilo que te gustaría.
Gracias amigos una pregunta se puede hacer este mismo codigo en NodeJS tienes algun ejemplo?
E#xcelente!
Gracias!
Como se haría con información que está cambiando constantemente y se requiere que el sistema conteste en base a lo que se actualiza ? Ejemplo en una asignación de citas medicas tengo 10 citas pero después ya bajan a 8 citas y así sucesivamente incluso se aumenta de más citas disponibles
.
Me fascino este video y ya estoy jugando con estas tecnologías, una duda ¿hay forma de que si a respuesta no esta en la base de conocimiento pueda dar un simple: no lo se...insertando algún tipo de libreria o quizá una condicional en el código?😅 y por supuesto que me gustaría mucho saber mas de gradio y langchain, y mucha gracias por compartir tu conocimiento bro..
Imagino podrias ponerle que si no cumple con un umbral de similutud, entonces usas chatGPT para generarla. Pero pues con el tema de posibles alucinaciones.
crack
queria consultar en base a tu experiencia , me podrias ayudar con algunas ideas para realizar un trabajo final de MASTER ? tengo varias ideas relacionado con el tema del video pero quizas con tus ideas imnovadoras podria ser mejor . gracias .
¿Puedo utilizar este mismo método en Java o PHP? O todavía no existen las bibliotecas para hacer esto mismo y trabajar con IA
Hola! Muy bueno ! Sigo sin entender como se haría si el usuario pregunta cualquier cosa fuera de contexto para no responder
Sabras si se puede colocar un historial,algo asi como lo que se hace con catgpt, donde chatgpt te da seguimiento a tu conversacion.
langchain con otros llm para trabajar en local, por favor! LLama creo que se podria?
Hola soy nuevo en esto, tengo una duda como se puede hacer un servicio API para consumir esos datos y mostrar en un chatbot?
buen video, existe la forma de usarlo en local? o hay alguna otra alternativa sin tener que enviar los datos a openia? gracias
.
disculpa que editor de texto estas usando no se si es google colab o visual studio
Hola, muchas gracias por compartir tu conocimiento en este tema que muy pocos comprenden. Podrias por favor decime porque al ejecutar esta linea "datos["Similitud"] = datos['Embedding'].apply(lambda x: cosine_similarity(x ,busqueda_embed))" me sale este error -> UFuncTypeError: ufunc 'multiply' did not contain a loop with signature matching types (dtype('
Creo que puede ser porque existe algún inconveniente con utils.
Si el inconveniente es con el cosine_similarity, podrías crear la función, que es la misma que se encuentra en el github de openai
def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
Interesante video es lo que estaba buscando, pero si hacemos una pregunta que no tiene nada que ver con la base de datos o la respuesta no es lo que esperábamos, podemos hacer que solite información y la almacene para tener una respuesta en el futuro?
por favor, detalla mas el tema de guardar el archivo en una base de datos para despues utilizarlo. existe alguna manera de usar otros motores con embedings para no utilizar openAI? o se podrian crear embedings de manera local?
Hay algún paquete para hacer embeddings de manera eficiente y rápida sin el api de openAI (para uso offline).
No pude emmbeber un pdf porque no me deja instalar las paqueterias de OpenAI. Será que del momento que lo hiciste a hoy cambio algo?
Consulta, el significado semantico quien se lo otorga a la herramienta, esto ya viene desde Open IA, entiendo bien?
Por la manera en la que lo entrenan, el modelo aprende a asignarlo. Dependiendo de la relación que tiene una palabra con todas las palabras que lo rodean, sumale esto a un set de datos gigante. El modelo entendiendo "el significado" de algunas palabras y su relación con las demás.
Una pregunta, en que ID lo esta programando? es VS code? como haces para que se vea asi por pasos?
Amigo, seguimos esperando los vídeos de langchain!
Esta semana que viene sale una intro y después codigo.
Para preguntar a una base de datos de PDF de 600 páginas, ¿Qué es mejor Fine Tuning o Embedding?
Ya vi la solución a mi problema de código jajaja
Pero como se hace para detectar que detecte que no puede responder la pregunta con los embeddings que tiene? como en el caso de la tienda, si pregunto por un producto que no tiene, pero igual vectoriza la respuesta que se relacione y efectivamente se va a relacionar más ese vector a un vector generico de negación ej. si pregunto en una tiene de ropa, cuanto cuesta la camisa roja (y no tienen camisa roja, pero si blanca) lo va a asociar a la camisa blanca y no a una respuesta "no tenemos ese producto"
Me gustaría hacer esto con archivos CSV, pero no me queda claro cómo enfocarlo o dividir la info de los CSV
Hola amigo. He estafó buscando un bot virtual interactivo y no lo encuentro. Podrías asesorar como empezaría hacer mi propio robot virtual interactivo que lo pueda usar como maestro de inglés?
Pregunto. En el ejemplo se utiliza un PDF muy pequeño. El contexto de GPT4 es mayor que eso.
Funcionaría con archivos mayores, véase libros completos de 500- mil páginas?
Con embeddings si se puede, no importa la longitud. Con gpt4 si estas limitado al numero máximo de tokens que procesa.
@@AMPTech Entonces, eso es para mí una herramienta súper poderosa.
Apenas estoy comenzando a programar. Creo que lo voy a tomar como proyecto de aprendizaje
Buen vídeo! Pero me quedé con la duda con respecto al tamaño 300, me hace pensar que habrá párrafos que serán cortados a la mitad si tiene por ejemplo 350 de tamaño, y al brindar una respuesta que coincida con ese párrafo, de una respuesta incorrecta 😅
En ese caso lo mejor es experimentar para tu caso de uso. Si usaba un tamaño muy grande no me podia responder bien. Ahorita que me preguntas esto me di cuenta que olvide explicar un parametro que se puede poner que es overlap, para que permitas tambien que entre bloques se empalmen, para asegurarte de no tomar la parte inicial o la final sino una especia de conjunto.
Buenas tardes, una pregunta, que programa usas para hacer tu vídeo. Gracias.
Hola Alberto, utilizo DaVinci Resolve 18 para editarlos.
Saludos!
Existe alguna manera de contactarte o tienes algún grupo de discord?
El discord lo estaré probando inicialmente con un grupo de "beta testers" de mi patreon, pero mientras puedes contactarme por twitter que es la red social que mas uso (@amptech_cc).
Saludos!
Gracias por tus videos! Son muy interesantes!.
Entiendo la lógica de vectorizar y guardar la información, pero no tengo muy claro cómo funcionan las consultas: Cada vez que se consulta el modelo, se están utilizando tokens con toda la información indexada?. Eso cómo es viable?. Gracias
Si, cada vez que haces un embedding te cobran. Peeero, puedes salvar los embeddings que ya tienes hechos en una base de datos y ya solo consultas directo de ahi. Ejemplo, perro siempre va a tener el mismo embedding, asi que si sabes que vas a usar mas de una vez ese dato, pasalo a una base de datos, una columna el vector y otra columna la palabra.
que tan grande puede ser el pdf?
osea 1gb o tal vez 2?
No se si tenga un limite. Pero si lo tiene solo fraccionas el pdf es varios
Alex podrías explicar como guardar los embedding en un diccionario para un archivo de pdf, para que no me cobren a cada rato y pueda hacer el chatbot de ese texto? te lo agradezco
.
Hola Diego, En el código viene una linea donde grabo el dataframe a un csv. Asi puedes hacerlo, y cuando necesites solo lees el CSV.
Saludos!
el video esta super genial pero le faltaria ver los costos para ver que tan caro puede salirme hacer las pruebas jaja
Todas las pruebas que corrí para este video tuvieron un costo de $0.10 USD. Si vas a hacer pruebas te recomendaría que empieces con unos archivos chicos para que veas mas o menos el costo para el uso que tienes en mente.
La plataforma te muestra en casi tiempo real (con unos 5 o 10 minutos de retraso) cuantos tokens y dolares has consumido.