Lleva la búsqueda basada en IA a tu aplicación web

Rate this content
Bookmark

ChatGPT causó sensación en el mundo tecnológico. Todo el mundo habla de ello, desde tu CTO hasta tu peluquero (al menos el mío lo hace). Y hay muchas razones por las que todos deberíamos estar emocionados al respecto y muchas otras innovaciones de IA/ML.


Pero, ¿cómo las incorporas a tu pila tecnológica, a tu sitio web/backend, para trabajar con tus datos y proporcionar búsqueda impulsada por IA y aumento de datos?


Existe una nueva generación de bases de datos nativas de IA, que utilizan modelos de aprendizaje profundo para encontrar respuestas a consultas en lenguaje natural. Estamos hablando de la capacidad de buscar a través de texto, imágenes, videos, ADN o cualquier dato no estructurado, todo con una sola consulta.


La regla general es: si hay un modelo de ML, podemos buscar a través de él.


Únete a mí para aprender sobre los bloques fundamentales (LLMs y vector embeddings, Bases de datos vectoriales), cómo interactúan todos ellos y, lo más importante, cómo puedes construir algo tú mismo con tecnología de código abierto.


Y, por supuesto!!! Habrá una demostración de codificación en vivo, donde te guiaré a través de la experiencia de construir una búsqueda basada en IA, con Weaviate, una base de datos vectorial de código abierto, y agregarla a una aplicación. Ahora la pregunta... ¿deberíamos hacer esto en Angular, React, Vue o simplemente JS puro? ;)


#QueLosDiosesDeLaDemoEsténConNosotros


31 min
01 Jun, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla analiza el uso del aprendizaje automático en los motores de búsqueda, centrándose específicamente en la búsqueda semántica y los vectores de incrustación. Explora la integración de JavaScript y los modelos de aprendizaje automático, utilizando Weaviate como una base de datos vectorial de código abierto. La charla demuestra cómo conectarse a Weaviate, consultar datos y realizar consultas de aprendizaje automático. También destaca los beneficios de Weaviate, como su excelente experiencia para los desarrolladores y su rendimiento. Además, la charla aborda las opciones de personalización, las preocupaciones sobre la privacidad de los datos y la efectividad variable de diferentes modelos de aprendizaje automático.

Available in English

1. Introducción a Machine Learning y Búsqueda

Short description:

Estoy muy emocionado de presentarte este tema. No tenía idea de ello hace un año. Comencemos. Mi viaje comienza con una charla en una conferencia sobre machine learning. Al principio, estaba confundido y pensé que necesitaba un doctorado. Pero luego me di cuenta de que las herramientas de machine learning se han vuelto accesibles para todos. Me enfocaré en el tema de la búsqueda utilizando machine learning, ya que todo en Internet comienza con la búsqueda.

Así que, gracias por esta introducción tan amable. Y estoy muy emocionado de presentarte este tema que, seamos sinceros, hace un año no tenía idea. Así que te llevaré en mi viaje de un año conmigo. Comencemos. Escuchaste la introducción, mi nombre es Sebastian Vitales, construyo cosas geniales, y quiero hablar contigo sobre ello. Así que mi viaje comienza hace algunos años, hace mucho tiempo en una galaxia muy, muy lejana. Fui a una conferencia y hubo una charla muy interesante que me emocionó mucho que prometía que no necesitas un doctorado para entender machine learning. Y obviamente estaba muy emocionado al respecto porque, en primer lugar, no tenía ni idea de ML pero realmente quería involucrarme, como, hey, había una promesa, como, tal vez no necesitaba estudiar durante cinco años para hacer algo relacionado con ML. La cosa es que a los 10 minutos de esa charla estaba tan confundido que ni siquiera sabía cómo me llamaba. E inmediatamente mi suposición fue como, sí, necesitas un doctorado, nunca más voy a tocar ML en mi vida, ya sabes. Eso es todo. Terminado. Pero luego pensé, bueno, no me voy a rendir. Lo que cambió y está sucediendo últimamente, y estoy seguro de que todos lo están experimentando, es que todo el mundo está hablando de ChargPT, IA, ML, como todas esas cosas que estás escuchando. Como actualmente vivo en Dinamarca. No hablo danés pero si estoy en un café, hay personas hablando en danés al azar y atrapando ChargPT, algo, algo, como que sigues atrapándolo. Fui a cortarme el pelo, ¿verdad?, y mi peluquero se confundió. Fue como, bueno, voy a preguntarle a ChargPT qué tipo de corte de pelo te queda bien. Incluso ChargPT puede ayudar con eso, así que está bien. Y lo que cambió es que esas herramientas de machine learning se volvieron accesibles, ¿verdad? De repente, están al alcance de tus dedos. De repente, puedes ir, ya sabes, a OpenAI y crear una cuenta, y luego puedes comenzar a escribir comandos y hacer preguntas a la IA y esto es alucinante. Y hay tantas aplicaciones diferentes, todo tipo de generación de imágenes, todo tipo de cosas sucediendo. Pero solo tengo 20 minutos para la charla. Y los organizadores, como, ya me lo han preguntado cinco veces. Así que, voy a terminar a tiempo. Así que, me voy a enfocar y solo hablaré sobre una cosa muy específica del machine learning, especialmente porque tengo 20 minutos y también quiero hacer algo de programación en vivo. Así que, vamos a ceñirnos a eso. Entonces, el tema de la presentación era la búsqueda o el uso de machine learning, búsqueda. Y seamos sinceros, todo lo que hacemos en Internet comienza con la búsqueda, ¿verdad? ¿Quieres escuchar música? Buscas. ¿Quieres ver una película? ¿Vas de compras? ¿Quieres encontrar información? Vas a Wikipedia, siempre buscas.

2. Desafíos con la Búsqueda Tradicional

Short description:

La búsqueda funciona, pero podría ser mejor. Los motores de búsqueda tradicionales pueden no entender el significado de una pregunta, lo que lleva a resultados irrelevantes. Por otro lado, la búsqueda semántica se centra en el significado de la pregunta y puede proporcionar respuestas más precisas. Mediante el uso de machine learning, podemos mejorar el poder de la búsqueda semántica.

Y quiero decir, probablemente pienses que es como, bueno, ¿cuál es el problema? Hemos estado haciendo eso durante décadas. La búsqueda funciona. Bueno, yo difiero, ¿verdad? Como que funciona más o menos, pero podría ser mejor. Permíteme darte un ejemplo. Entonces, con la búsqueda tradicional, puedes enfrentar algunos desafíos. Si fueras y preguntaras, como, a un motor de búsqueda tradicional, como, ¿por qué vuelan los aviones? Tal vez tengas una database completa de documentos que lo expliquen. Podrías obtener una respuesta como, ¿por qué deberías volar con aviones caros? Y es como, bueno, quiero decir, está bastante bien porque coincide con aviones, coincide con por qué y vuelan y todo eso. ¿Por qué se queja este tipo? Es como una coincidencia perfecta. Bueno, quiero decir, en realidad, preguntamos cómo vuelan los aviones, y nos dijeron que voláramos con aerolíneas caras. Bueno, eso lo resuelve para mí. Gracias. Bueno, la solución para mí es más bien buscar la pregunta desde el punto de vista semántico. ¿Cuál es el significado de la pregunta y qué tipo de respuesta puedo encontrar para ti? Y en realidad, si pones esta pregunta en Google Search, obtendrás una respuesta como esta. Vas y encontrarás la dinámica del vuelo de la NASA. Y luego, allí, la parte que nos ayudó a encontrar la respuesta fue que las alas de los aviones están diseñadas para hacer que el aire se mueva más rápido sobre la parte superior del ala, blah, blah, blah, blah, blah. Como que realmente no tenemos ninguna coincidencia de palabras clave, pero el significado está ahí, ¿verdad? Y eso es básicamente el poder de la búsqueda semántica. Así que al observar esos dos ejemplos y el tipo de cosas que puedes obtener entre los dos, quiero decir, la conclusión es bastante clara, ¿verdad? Deberíamos ir y buscar más en el tipo de búsqueda semántica y usar machine learning para ello.

3. Modelos de Aprendizaje Automático y Vectores de Incrustación

Short description:

En el mundo del aprendizaje automático, tenemos modelos de aprendizaje automático que pueden generar vectores de incrustación. Estos vectores de incrustación representan información y datos en un espacio multidimensional. Al pasar una consulta a través de un modelo de aprendizaje automático, podemos obtener un vector que nos ayuda a encontrar artículos relevantes. Este proceso implica cálculos matemáticos y es accesible para personas sin un doctorado. Además, algunos modelos de aprendizaje automático pueden entender tanto texto como imágenes, lo que permite buscar a través de diferentes tipos de datos.

Entonces, ¿cómo funciona esto? Y un pequeño aviso, no es necesario que lo sepas, pero creo que es bastante interesante. Te resultará interesante, y tengo una explicación muy buena que no necesitas un doctorado para entender. Tal vez no sea una explicación de cuatro o cinco años, es más bien una explicación de hace unos 10 años, así que ten paciencia.

Primero que nada, en el mundo del aprendizaje automático, tenemos esta cosa llamada modelos de aprendizaje automático. Son como cajas negras que se construyen de tal manera que si les pasas cierta información, generarán lo que llamamos una incrustación de vector. Una incrustación de vector es básicamente una matriz de números. Es como un montón de números, y en realidad, es como las computadoras ven los datos y lo ven como binario, y las computadoras entienden, oh, esto es una pieza de información. Así es como piensa el aprendizaje automático. Si el aprendizaje automático ve la incrustación de vector, así es como entiende la información y los datos.

Así que si tomamos nuestros dos ejemplos anteriores y los pasamos por el modelo de aprendizaje automático, obtendremos una incrustación de vector. Si tomamos otro párrafo y lo pasamos nuevamente por el modelo de aprendizaje automático, obtendremos otra incrustación de vector. Y lo que estas cosas son, puedes imaginarlas como coordenadas en un espacio multidimensional. Imagínalo como si vieras en este espacio multidimensional un perro y un lobo justo en el lado izquierdo. Están muy cerca uno del otro, ¿verdad? Y un gato no está muy lejos, mientras que los plátanos y las manzanas están en lugares completamente diferentes. Y, por supuesto, nuestros cerebros están entrenados para pensar en tres dimensiones. Pero esos modelos de aprendizaje automático pueden ir a 300 dimensiones, miles o 10,000 dimensiones, por lo que pueden entender la información de una manera muy detallada.

Lo interesante ahora es que si quiero hacer una búsqueda, puedo tomar nuestra consulta original, pasarla por el modelo de aprendizaje automático y obtener un vector. Con ese vector, visualmente, para imaginarlo, podríamos decir, como, hey, mi información está en algún lugar aquí. Entonces, cualquier objeto que esté cerca de esa nueva posición del vector indicaría aquí están los artículos donde podría estar tu respuesta. Es realmente genial, ¿verdad? Al mirar allí, podemos encontrar, como, oh, sí, el artículo de la NASA estaba justo allí, y luego podemos pasarlo de vuelta. Todo es matemáticas. Todo es simplemente, como, agarrar y calcular esos vectores, lo cual es realmente, realmente genial. ¿Ves? Así que creo que incluso los niños de 10 años y las personas que no están en el aprendizaje automático pueden entender que no se necesita un doctorado. Creo que esto es bastante sencillo.

Así que hay una cosa adicional. Algunos de esos modelos de aprendizaje automático, y probablemente viste que había algunas imágenes, había algo de texto. Algunos de ellos pueden entender tanto texto como imágenes. También pueden entender muchas otras cosas. Pero en particular, hay uno llamado clip, y si le paso un párrafo que describe un vestido maxi de verano y una imagen del mismo vestido por separado, obtendría dos vectores que son muy similares, lo que básicamente significa que también podría usarlo para buscar a través de imágenes y texto de la manera que queramos hacerlo. Así que podría tener una base de datos de imágenes y podría escribir en inglés o en cualquier otro idioma, como, oh sí, muéstrame una imagen con una casa y un perro y un tornado en el fondo, ¿verdad? Y el vector nos ayudaría a encontrar esa imagen más tarde.

4. JavaScript, Modelos de Aprendizaje Automático y Weaviate

Short description:

Si lo tenemos en la base de datos, podríamos hacer imágenes y texto de una vez. JavaScript juega un papel en esto. Necesitas elegir un modelo de aprendizaje automático o un vectorizador. Empresas como Open AI, Cohere, Hug and Face y Google tienen modelos disponibles. Weaviate proporciona una base de datos de vectores de código abierto que se encarga de todo por ti. Una demostración muestra una base de datos con 10 millones de objetos, que incluyen párrafos de Wikipedia en diferentes idiomas.

Bueno, si lo tenemos en la base de datos. Sí, podríamos hacer imágenes y texto de una vez y muchas, muchas otras cosas más.

Entonces, este es un evento de JavaScript, y probablemente estés pensando, OK, ¿qué tiene que ver JavaScript con esto, verdad? Permíteme explicártelo.

Ahora hablemos de las cosas prácticas. Si tienes una aplicación de JavaScript, ya sea que tu búsqueda se realice en el backend o en el frontend, generalmente tienes algún tipo de aplicación de JavaScript y tienes datos que deseas poder buscar. Genial. Ese es el primer ingrediente que tenemos.

Luego, lo que necesitas hacer es elegir un modelo de aprendizaje automático o un vectorizador, como los llamamos y no necesariamente tienes que crear el tuyo propio. Hay empresas como Open AI. Probablemente los conozcas por ChargeAPT. Está Cohere, que tiene estos modelos multilingües que comprenden más de 100 idiomas diferentes. Tenemos Hug and Face. Hug and Face, tienen 80,000 modelos de aprendizaje automático. Recientemente, Google en Google I-O lanzó Palm 2, que también hace este trabajo. Así que no tienes que crearlos en realidad. Básicamente, solo necesitas encontrar un modelo que funcione para tus datos y estás listo. Todo está bien.

Entonces, teniendo todo esto, para unirlo todo, y por eso estoy aquí. Llevo una camiseta de Weaviate. Tenemos una base de datos de vectores de código abierto. Es básicamente una base de datos que se encarga de todo por ti, ¿verdad? Como, dices, hey, quiero usar este modelo de aprendizaje automático. Estos son mis datos. Adelante. ¿Verdad? Y ahora puedo escribir código en JavaScript u otros lenguajes para escribir mis consultas o realizar muchas otras cosas.

Así que quiero hacer algo de cocina y mostrarte una demostración realmente genial. Oops. No iba a hacer esto. Así que la primera demostración que tengo es esta base de datos con 10 millones de objetos. Estos son párrafos de Wikipedia. Y para mejorarlo, cada millón es un conjunto de artículos en diferentes idiomas.

5. Conexión a WeaveIt y Consulta de Datos

Short description:

Con WeaveIt, ya tengo los datos en mi base de datos. Me conecto a mi instancia en la nube usando la clave de API. Luego, creo un cliente para escribir códigos y consultas. Se utiliza el patrón de construcción para las consultas. Consulto mis artículos para obtener texto, URL y título. También puedo especificar la cantidad de objetos a recuperar. Finalmente, puedo realizar una consulta de aprendizaje automático utilizando el operador 'con neartext'.

Así que tengo algunos en inglés, algunos en francés, en alemán, algunos en hindi, en árabe, creo que también hay en japonés. Así que tenemos una base de datos bastante amplia. Lo que puedo hacer con ella no es enseñarte necesariamente, como, hey, esta es una aplicación React, así es como la conectas a la interfaz de usuario, ya conoces estas cosas, ¿verdad? Pero lo que realmente necesitas saber aquí es lo siguiente. Con WeaveIt, ya tengo los datos en mi base de datos. Lo primero que tenemos que hacer es conectarnos a mi instancia. Esta instancia específica se encuentra en la nube. Así que tenemos estos servicios en la nube donde en este caso, estoy alojando esta demostración y allí estoy pasando la clave de API de mi instancia en la nube. Pero además, estoy utilizando la API de Cohere, como un servicio de inferencia. Básicamente, les estoy diciendo, hey, esta es mi clave de API. Así que si Cohere necesita cobrarme, saben cómo encontrarme, ¿verdad? Así que creo este cliente y con este cliente, puedo comenzar a escribir códigos y luego escribir mis consultas. No te mostraré cómo importar los datos en este caso, solo quiero enfocarme en la parte de las consultas. Por el momento, estamos utilizando el patrón de construcción. Así que estoy obteniendo una consulta basada en GraphQL. Y luego tal vez tengamos con clase. Mis datos están en una colección llamada artículos. Oh, debería mostrarte esto en realidad. Entonces mi colección de artículos está definida para usar el texto de Cohere. Y en este caso, quiero usar este modelo multilingüe a partir de diciembre de 2022. Y también para que estés al tanto, tengo propiedades como texto, título, URL, wiki ID, vistas, etc., etc. Ahora usaré esos dos para consultar mis datos. Quiero consultar mis artículos y luego consultaremos, ¿qué es? Campos, y quiero obtener texto, URL y título. Eso está bien. Y luego tal vez solo quiero obtener los primeros 10 objetos. Entonces, si ejecuto esta consulta, podría buscar cómo vuelan los aviones. Por el momento, no estoy haciendo nada en particular. Solo estoy diciendo, dame un montón de objetos aleatorios. OK, eso está bien. Pero ahora quiero hacer una consulta de verdad. Y esta es la parte donde puedo hacer una consulta de aprendizaje automático con esta línea. Así que podría decir, con neartext, también hay diferentes operadores.

6. Consulta de Conceptos y Múltiples Idiomas

Short description:

Y puedo pasar conceptos. Y el concepto será la consulta que obtengo de la interfaz de usuario. Así que esta es la consulta que se me pasa. Y ahora, con esta línea, puedo obtener artículos relacionados con volar. Puedo abrir esto, y luego este es, ¿qué, italiano? Sí. Así que ahí está la página italiana en Wikipedia. Y encontré ese artículo allí. Esto es bastante genial. Y por supuesto, podemos hacer muchas otras consultas.

Y puedo pasar conceptos. Y el concepto será la consulta que obtengo de la interfaz de usuario. Así que esta es la consulta que se me pasa. Y ahora, con esta línea, puedo obtener artículos relacionados con volar. Puedo abrir esto, y luego este es, ¿qué, italiano? Sí. Así que ahí está la página italiana en Wikipedia. Y encontré ese artículo allí. Esto es bastante genial. Y por supuesto, podemos hacer muchas otras consultas.

Lo otro que puedo hacer es escribirlo en otros idiomas, ¿verdad? Instrumentos musicales. Así que esto está en polaco, como instrumentos musicales, ¿verdad? Y estoy buscando en mi base de datos, lo cual es muy genial. Y si solo quiero filtrar y mostrar solo respuestas en inglés, esto es para mostrar si lo que también podemos hacer consultas tradicionales de tipo base de datos, así que podemos hacer una búsqueda académica. Así que podría hacer con, necesito un punto. Así que con where. En realidad no voy a escribirlo manualmente, donde el idioma es inglés. Así que en este caso solo estoy diciendo, está bien, donde el idioma es igual a inglés. Esta vez puedo obtener solo resultados en inglés. Bastante genial.

Lo otro que puedo hacer como el siguiente nivel, tengo otra colección donde necesitaba hacer algunos cambios e introduje un modelo generativo. Este utiliza GPT de OpenAI. Y en realidad puedo hacer algunas cosas adicionales y luego hacer, como proporcionar indicaciones a la base de datos para realizar algunas operaciones adicionales. Así que vamos a intentarlo. Esta vez la colección se llama Wikipedia, pero es básicamente la misma data. Simplemente no tuve tiempo de reconstruir la otra. Vamos a omitir esta por ahora y luego tal vez pueda hacer con generar. Y luego en este caso, necesitamos, ¿qué necesitamos? Mostrar indicación. Y luego puedo decir resumir lo siguiente en un tweet. Y luego voy a pasar el texto, que es esta propiedad. Y porque estoy usando OpenAI esta vez, voy a agregar una clave de API. Así que la tengo en mi configuración local.

7. Ejecución de Consultas y Búsqueda de Imágenes

Short description:

No ejecutemos en 10 porque eso lleva mucho tiempo. Ejecutamos la consulta, obtenemos los resultados y los pasamos a OpenAI para vectorizar. Resumo lo siguiente como un poema haiku. Tenemos poemas haiku basados en el artículo con Galswin. La siguiente demostración es la búsqueda de imágenes. Tengo una carpeta con actores y celebridades famosos. Utilizo un modelo de clip para encontrar una celebridad que se parezca a Brad Pitt. Devuelvo dos objetos, como David Tennant y Stan Tucci. También hice lo mismo para los oradores de la conferencia, Jeff Cross y Mike Harrington.

No ejecutemos en 10 porque eso lleva mucho tiempo. Lo que sucederá es que ejecutamos la consulta, obtenemos los resultados y luego los pasamos a OpenAI para vectorizar. Y luego también necesito hacer un poco de análisis. Generar un solo resultado. No, no este. Demostración. Devolver. Generar. Es como un simple mapa. Solo estoy buscando este campo y reemplazaré el texto. Así que si vuelvo a ejecutar esto y ejecuto la búsqueda, eso llevará, generalmente, 10, 15 segundos, pero sí.

Toma cada uno de los resultados y luego crea un resumen. Lo que es realmente genial, todo es súper genial cuando estoy hablando en este momento, resumo lo siguiente como un poema haiku. Guardo esto y luego puedo volver a ejecutar esto y esto es alucinante. Así que lleva un tiempo. Y tenemos poemas haiku basados en el artículo con Galswin. Muy bien. La siguiente demostración que tengo para ustedes es, también se puede hacer una búsqueda de imágenes. Así que tengo esta tabla, colección, como quieran llamarla, donde, bueno, esto va a ser pequeño pero deberían poder ver ahora. Así que tengo una carpeta con actores famosos, celebridades famosas y esta vez estoy usando un modelo de clip. Así que podría, por ejemplo, hacer esto donde digo encontrar una celebridad que se parezca a Brad Pitt. ¡Y boom! Tenemos a Brad Pitt, pero siempre voy a devolver dos objetos, por lo que no todos serían perfectos. ¿A qué actor me parezco de los cien que tengo? Me parezco a David Tennant y Stan Tucci. Realmente están yendo tras mi calvicie aquí. Esto es ofensivo. Pero bueno, otro ejemplo, tengo una imagen de un suricata. Bueno, en realidad Ryan Gosling se parece un poco a un suricata, así que eso funciona bastante bien. E hice lo mismo para los oradores de la conferencia aquí. Hay una especie de broma recurrente cuando se trata de Jeff Cross y Mike Harrington. Por lo general, los confunden.

8. Construyendo una Aplicación de Búsqueda Basada en IA

Short description:

En un momento incluso intercambiaron sus fotos de perfil. Esto es realmente poderoso. Puedes cargarlas en Weave8 y luego ejecutarlas a través de un modelo de aprendizaje automático y hacer consultas. Como bonificación, nuestro sitio web utiliza búsqueda vectorial. En resumen, cualquier persona puede llevar la búsqueda basada en IA a su aplicación web.

En un momento incluso intercambiaron sus fotos de perfil. Si les muestro de nuevo la foto de Jeff, sabes, hay cierto parecido entre ellos también. Y si quieres buscar a Mishko, había una foto diferente de Mishko. Aún así, podemos encontrarla. Y esto es realmente poderoso.

Y esta aplicación la construí en Angular. Solo para mostrarte un poco cómo se hace esto. Tenemos este servicio de imágenes. Básicamente, el paso es que esta vez estoy usando el modelo clip para la vectorización o para entender nuestras imágenes. Y estoy diciendo, como, hey, tendremos nombre, URL e imagen. Y luego, después, importo los data. Esto no es muy importante. La búsqueda de imágenes es así. Básicamente, cuando me das un archivo para buscar, lo convierto a base 64. Y luego la consulta es como la que viste antes, con la diferencia de que ahora la hago con una imagen cercana. Así que paso esta nueva imagen como una representación en base 64, y boom, puedo hacer la búsqueda. Y ves, como, ninguno de este código te obliga a entender cómo funciona el aprendizaje automático por debajo. Solo tienes un trabajo que hacer.

Y así que si en tus sitios web o en tus sistemas backend, tal vez, no sé, tienes 500 millones de PDF que tu empresa ha estado almacenando durante los últimos 50 años, y luego nunca podrías buscar a través de ellos. Como, puedes cargarlos en Weave8 y luego ejecutarlos a través de un modelo de aprendizaje automático y luego hacer consultas. Algo que antes era inaccesible, ahora puedes ejecutarlo. Como bonificación, en nuestro sitio web, hemos agregado esto recientemente. Así que si hago Command K, en realidad usamos búsqueda vectorial en nuestro propio sitio web. Cómo eliminar un objeto, boom, aquí hay un artículo en la documentación. Estas son todas cosas realmente geniales. Así que, en resumen, cualquier persona puede llevar la búsqueda basada en IA a su aplicación web. Básicamente, necesitas tu aplicación JS, WebSum data, elige un modelo de aprendizaje automático y una base de datos vectorial. Y con eso, y luego, ¿qué, como 20 o 30 líneas de código, estás listo, y luego puedes usar la búsqueda de aprendizaje automático para tu uso. Así que sí, ese soy yo. Este es nuestro sitio web.

9. Beneficios y Diferencias con Pinecone

Short description:

WeaveIt es una base de datos de código abierto que se puede implementar en la nube o ejecutar con Docker y Kubernetes. La experiencia del desarrollador es superior, lo que permite ejecutar consultas con solo cinco líneas de código.

Este es nuestro Twitter. Entonces, la primera pregunta que tenemos, y no estoy muy familiarizado con este espacio, pero están preguntando cuáles son los beneficios o tal vez las diferencias con un producto llamado Pinecone? Oh, sí. Pinecone sería como nuestro competidor. Creo que una de las mayores diferencias, en primer lugar, es que WeaveIt es una base de datos de código abierto database y te ofrecemos tanto la opción de implementarla en la nube, como la opción de código abierto, puedes ejecutarlas con Docker y con Kubernetes. Pero lo otro también es que nuestra experiencia del desarrollador, creo que es superior. Así que el hecho de que pude ejecutar una consulta con solo cinco líneas de código, eso no es posible con ninguna otra base de datos vectorial que exista.

10. Comparación de algoritmo y rendimiento

Short description:

El algoritmo de comparación utilizado en Weaviate se basa en un mecanismo de indexación especial llamado HNSW. Este mecanismo permite una búsqueda rápida de vectores complejos y largos. Weaviate ha sido probado en casi mil millones de objetos, con consultas que se ejecutan en menos de 100 milisegundos incluso con 960 millones de objetos. Es realmente impresionante.

Correcto, eso es un buen punto. Y este siguiente pregunta se refiere al algoritmo de comparación, pero supongo que tiene que ver con cómo se manejan realmente esos vectores incrustados. Entonces, están preguntando cómo funciona ese algoritmo de comparación y qué tan eficiente es? Sí, cómo funciona es en realidad, podría dar una charla de una hora al respecto, por cierto, pero básicamente la idea es que debido a que los vectores son muy complejos, son largos y no se pueden ordenar por una sola cosa. Así que tenemos un mecanismo de indexación especial que permite buscar muy rápido. Uno de los primeros implementados se llama HNSW. Es muy técnico, pero la idea es que tenemos un mecanismo de índice específico para ello. ¿Qué tan eficiente es? Hemos probado Weaviate en casi mil millones de objetos, llegando a 960 millones porque nos quedamos sin data. Incluso con estos 960 millones, estamos ejecutando consultas en menos de 100 milisegundos, lo cual es increíble debido a la gran cantidad de data. Sí, es increíble.

QnA

Customizando la Métrica de Distancia y la Búsqueda de IA

Short description:

La siguiente pregunta es si se puede personalizar la métrica de distancia. De forma predeterminada, Weaviate admite múltiples métricas de distancia y es fácil agregar nuevas. Otra pregunta se refiere al uso de Postgres para la incrustación de vectores. Si bien es posible, Postgres puede tener dificultades con conjuntos de datos grandes, a diferencia de Weaviate. Entrenar la IA en Weaviate no lleva mucho tiempo, ya que el modelo de aprendizaje automático utilizado ya está entrenado. La importación de datos y su conversión en incrustaciones de vectores es la principal inversión de tiempo. En cuanto a la indexación de datos en formato PDF, Weaviate está trabajando en ello y ha publicado una entrada de blog que explica el proceso. La búsqueda de IA puede ser útil para búsquedas determinísticas, pero depende del caso específico.

La siguiente pregunta es si se puede personalizar la métrica de distancia. Entonces, como la similitud del coseno o Manhattan, ¿es algo que harías? Sí, básicamente, de forma predeterminada, admitimos cinco o seis métricas de distancia diferentes, pero Weaviate también es muy modular y de código abierto. Es muy fácil agregar nuevas métricas.

La siguiente pregunta se refiere a Postgres. Mencionaron que Postgres tiene incrustación de vectores, así que supongo que por qué usar algo como esto si Postgres ya admite algo similar? Esa es la cuestión. Técnicamente podría llevar un coche de Fórmula 1 a la calle y tratar de conducir. Y todo se trata de si la herramienta está construida para el trabajo que estoy intentando hacer. Y cuando se trata de búsqueda de incrustación de vectores, no hay comparación. Creo que se puede hacer en Postgres, pero en el momento en que llegues a medio millón de objetos, tendrás muchas dificultades. En nuestro caso, estamos hablando de miles de millones, y nos estamos quedando sin data. Y creo que eso es lo importante. Definitivamente. La siguiente pregunta es cuánto tiempo se necesita para entrenar la IA. Por ejemplo, en la Wiki. Y supongo que para probar mi propio entendimiento, ¿es básicamente el tiempo que lleva generar las incrustaciones de vectores? ¿Y en ese momento, estás listo para empezar? Sí, en realidad no es tanto un entrenamiento, porque el modelo de machine learning que usamos con Cohere ya está entrenado. Así que el único tiempo que tienes que invertir es al importar los data. Todos esos data deben convertirse en esas incrustaciones de vectores. Creo que importé esos 10 millones de objetos, me llevó un par de horas hacerlo desde mi portátil en una red deficiente en una cafetería local. Es una locura. Así que, ya sabes, se puede hacer, no es tan malo. Pero requiere una inversión de tiempo inicial. Vale, la siguiente pregunta es, ¿qué pasa si quieres indexar data en formato PDF? ¿Es un proceso similar? Es ligeramente diferente, pero en realidad estamos trabajando en ello. Publicamos una entrada de blog al respecto la semana pasada, el martes. Así que ve a nuestro sitio web y echa un vistazo a nuestros blogs. Pero sí, estamos lidiando con datos no estructurados. Creo que el truco es básicamente tener algo que pueda leer esos PDF y tal vez construir párrafos y luego pasarlos a Weave 8. Porque una de las cosas que vale la pena entender es que si pasas, por ejemplo, un libro completo a un modelo de aprendizaje automático, generará un solo vector. Como si ejecutaras una consulta, sería como, sí, es un promedio de todo el libro, todo el contenido. Entonces, lo que realmente quieres es algo que pueda encontrar partes específicas. Así que, ese fragmentado es a veces el proceso que requiere un poco de esfuerzo adicional. Pero, sí, en realidad en esa entrada de blog lo explicamos bastante bien. Así que se trata más de si puedo leerlo y fragmentar mi contenido de una manera agradable. Correcto.

Búsqueda de IA y Modelos de Entrenamiento

Short description:

La búsqueda de IA puede ser útil en ciertos casos, pero depende de la situación específica. Weaviate ofrece tanto búsqueda de IA como búsqueda híbrida, lo que permite a los usuarios elegir entre métodos tradicionales y búsqueda de IA. La experiencia del desarrollador es fluida, con una simple llamada de método para decidir si utilizar IA o no. La cantidad de datos necesarios para entrenar modelos y crear incrustaciones varía, pero en general, más datos conducen a mejores resultados. Sin embargo, no hay una respuesta definitiva sobre cuántos datos son suficientes. Cada modelo tiene sus propios vectores únicos y no son intercambiables.

La siguiente pregunta es si la búsqueda de IA es útil para búsquedas completamente deterministas o si es excesivo. Creo que depende del caso en particular. Y de hecho, por eso en Weaviate ofrecemos tanto búsqueda de IA como búsqueda híbrida, donde puedes usar tanto métodos tradicionales como búsqueda de IA en una sola operación. También admitimos un algoritmo llamado BM-25, que es una búsqueda basada en palabras clave, por lo que también puedes hacer eso. Así que según lo que necesites, puedes hacer cualquiera de las dos opciones.

Sí, hay casos en los que simplemente no tiene sentido, ¿verdad? Donde tienes, ya sabes, exactamente lo que estás buscando, no necesitas IA para eso. Así que en realidad, la búsqueda que mostré en el sitio web cuando estaba buscando cómo eliminar un objeto, usamos la búsqueda híbrida porque en algunos casos el modelo de ML puede no conocer algunos nombres de funciones que usamos. Y creo que al mirar la developer experience, es casi como con una llamada de método decides si quieres usar IA o no. Así que eso es bastante genial. Sí, eso es básicamente. Por cierto, construí esta demostración, la demostración de búsqueda de imágenes, en unas dos horas hace tres días. Estaba como en la noche, pensé, oh sí, quiero agregar otra demostración y solo me llevó dos horas, y la construí desde cero, incluyendo la instalación de Angular en mi portátil y todo eso. Genial. ¿Sería posible entrenar un modelo en, por ejemplo, cientos de manuales de productos como teléfonos o televisores y obtener resultados precisos, o se necesita una cantidad mayor? Supongo que para cualquier cosa en la que estés entrenando o creando las incrustaciones, ¿cuántosdata necesitas? Sí, esa sería una buena pregunta para alguien de mi equipo. Quiero decir, básicamente lo que me dicen es que cuanto más data tengas, mejores resultados de calidad puedes obtener. Así que creo que lo que ves con ChargeGPT, tenían suficiente data que tuvieron que pasar seis meses entrenándolo, así que estamos hablando de cantidades locas. Así que todo se trata de cuántos data tengas, cuanto más, mejor. Pero, ¿cuánto es suficiente? Eso es un poco difícil dependiendo de qué tan buenos sean los resultados que deseas. No tengo una buena respuesta para eso, lo siento. De acuerdo, no hay problema. No creo que haya una respuesta definitiva. Sí, supongo que depende. Tienes que probarlo y ver. Sí. La siguiente pregunta es, si obtienes data vectorial de algo como data de texto 002, ¿va a generar los mismos vectores que algún otro modelo? ¿Son intercambiables o no? No. Cada modelo tiene lo suyo. Así que la forma en que lo veo, uso esto como ejemplo. Imagina que tienes a alguien que trabaja en un centro comercial y sabe dónde están todas las tiendas y luego dices, como, café. Y él dice, este lugar, este lugar, ¿verdad? Y ahora lo llevas a Ámsterdam y lo pones en otro centro comercial, y le dices, la tienda de café está por aquí, por aquí. Te dará indicaciones incorrectas, ¿verdad? Entonces, eso es, en qué están entrenados, eso es lo que importa.

Incrustaciones, Agregando Vectores y Privacidad de Datos

Short description:

¿Has probado otras incrustaciones como GloVe o Word2Vec? ¿Qué tan mejor es en comparación con Transformers? ¿Siempre vale la pena? Es fácil probarlo en Wavi8. ¿Toma mucho tiempo agregar vectores para datos grandes? La demostración de Wikipedia se ejecuta en una instancia en la nube, mientras que la búsqueda de imágenes se ejecuta en una computadora portátil. Las bases de datos vectoriales requieren mucha memoria RAM, y ChatGPT utiliza consultas de entrada para entrenar sus solicitudes futuras. Si te preocupa la privacidad de los datos, evita poner información sensible en Internet.

Sí. Tiene sentido. ¿Has probado otras incrustaciones como GloVe o Word2Vec? No sé qué es eso, pero tal vez tú sí. ¿Qué tan mejor es en comparación con Transformers? ¿Siempre vale la pena? Imagina el costo de aprendizaje. Sí. Esa no es una buena pregunta para mí, sinceramente. Como, sí, esto será para, como, los científicos de datos en mi equipo.

De acuerdo. Definitivamente puedo decir que es fácil probarlo en Wavi8, así que solo animaré a cambiarlos y probar. Sí. Sí, y creo que ya lo mencionamos antes, pero ¿toma mucho tiempo agregar vectores para datos grandes? Pero supongo que mencionaste que pudiste entrenar en tu computadora portátil, así que... Sí. Quiero decir, la demostración de Wikipedia no se ejecuta en mi computadora portátil, en realidad tenemos una instancia en la nube. De acuerdo. La búsqueda de imágenes que hice, fue puramente en mi computadora portátil.

Sí. Creo que lo más importante que necesitas tener en cuenta cuando piensas en una base de datos vectorial es que es muy exigente en memoria RAM. Mm. Y la razón por la que el índice se ejecuta súper rápido es porque lo almacenamos en la RAM. Ya veo. Sí. De acuerdo. Y supongo que el último punto para terminar, la moral de todo esto, ¿deberíamos preocuparnos por compartir los datos de nuestra aplicación con una herramienta de IA como ChatGPT? Sí, quiero decir, hay algo de eso... Una cosa que sé es que si envías consultas a ChatGPT, ellos utilizan la entrada para entrenar sus solicitudes futuras. Y especialmente si, ya sabes, usas ChatGPT de forma gratuita, es como un intercambio. Les das datos de entrenamiento a cambio de lo que haces. Y creo que recientemente Apple prohibió a sus empleados usar ChatGPT para cualquier contenido. Así que podría haber algo en eso. Pero en general, no hay intención maliciosa como tal. Somos amigos, en realidad somos personas en OpenAI. Pero si realmente te preocupa y dices, hey, solo yo y otra persona deberíamos ver esta información, pues simplemente no la pongas en Internet, ¿verdad? Genial. Eso es todo lo que tenemos para ti. Muchas gracias, Sebastian. Gracias. Gracias por escuchar.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

JSNation 2023JSNation 2023
24 min
AI and Web Development: Hype or Reality
In this talk, we'll take a look at the growing intersection of AI and web development. There's a lot of buzz around the potential uses of AI in writing, understanding, and debugging code, and integrating it into our applications is becoming easier and more affordable. But there are also questions about the future of AI in app development, and whether it will make us more productive or take our jobs.
There's a lot of excitement, skepticism, and concern about the rise of AI in web development. We'll explore the real potential for AI in creating new web development frameworks, and separate fact from fiction.
So if you're interested in the future of web development and the role of AI in it, this talk is for you. Oh, and this talk abstract was written by AI after I gave it several of my unstructured thoughts.
React Summit US 2023React Summit US 2023
30 min
The Rise of the AI Engineer
We are observing a once in a generation “shift right” of applied AI, fueled by the emergent capabilities and open source/API availability of Foundation Models. A wide range of AI tasks that used to take 5 years and a research team to accomplish in 2013, now just require API docs and a spare afternoon in 2023. Emergent capabilities are creating an emerging title: to wield them, we'll have to go beyond the Prompt Engineer and write *software*. Let's explore the wide array of new opportunities in the age of Software 3.0!
JS GameDev Summit 2023JS GameDev Summit 2023
37 min
Building the AI for Athena Crisis
This talk will dive into how to build an AI for a turn based strategy game from scratch. When I started building Athena Crisis, I had no idea how to build an AI. All the available resources were too complex or confusing, so I just started building it based on how I would play the game. If you would like to learn how to build an AI, check out this talk!
TestJS Summit 2023TestJS Summit 2023
8 min
Code coverage with AI
In this lightning demo I will showcase how Codium, a cutting-edge generative AI tool, is revolutionizing code integrity. We will demonstrate Codium's ability to generate useful Mocha tests, taken from a public repository and highlight the seamless integration. You can see Codium as it transforms complex test scenarios into actionable insights, propelling code coverage forward. Join us for an insightful peek into the future of automated testing where speed meets quality!
TypeScript Congress 2022TypeScript Congress 2022
27 min
TypeScript and the Database: Who Owns the Types?
Top Content
We all love writing types in TypeScript, but we often find ourselves having to write types in another language as well: SQL. This talk will present the choose-your-own-adventure story that you face when combining TypeScript and SQL and will walk you through the tradeoffs between the various options. Combined poorly, TypeScript and SQL can be duplicative and a source of headaches, but done well they can complement one another by addressing each other's weaknesses.

Workshops on related topic

DevOps.js Conf 2024DevOps.js Conf 2024
163 min
AI on Demand: Serverless AI
Featured WorkshopFree
In this workshop, we discuss the merits of serverless architecture and how it can be applied to the AI space. We'll explore options around building serverless RAG applications for a more lambda-esque approach to AI. Next, we'll get hands on and build a sample CRUD app that allows you to store information and query it using an LLM with Workers AI, Vectorize, D1, and Cloudflare Workers.
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
How to Solve Real-World Problems with Remix
Featured Workshop
- Errors? How to render and log your server and client errorsa - When to return errors vs throwb - Setup logging service like Sentry, LogRocket, and Bugsnag- Forms? How to validate and handle multi-page formsa - Use zod to validate form data in your actionb - Step through multi-page forms without losing data- Stuck? How to patch bugs or missing features in Remix so you can move ona - Use patch-package to quickly fix your Remix installb - Show tool for managing multiple patches and cherry-pick open PRs- Users? How to handle multi-tenant apps with Prismaa - Determine tenant by host or by userb - Multiple database or single database/multiple schemasc - Ensures tenant data always separate from others
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Relational Database Modeling for GraphQL
Top Content
WorkshopFree
In this workshop we'll dig deeper into data modeling. We'll start with a discussion about various database types and how they map to GraphQL. Once that groundwork is laid out, the focus will shift to specific types of databases and how to build data models that work best for GraphQL within various scenarios.
Table of contentsPart 1 - Hour 1      a. Relational Database Data Modeling      b. Comparing Relational and NoSQL Databases      c. GraphQL with the Database in mindPart 2 - Hour 2      a. Designing Relational Data Models      b. Relationship, Building MultijoinsTables      c. GraphQL & Relational Data Modeling Query Complexities
Prerequisites      a. Data modeling tool. The trainer will be using dbdiagram      b. Postgres, albeit no need to install this locally, as I'll be using a Postgres Dicker image, from Docker Hub for all examples      c. Hasura
React Advanced Conference 2023React Advanced Conference 2023
98 min
Working With OpenAI and Prompt Engineering for React Developers
Workshop
In this workshop we'll take a tour of applied AI from the perspective of front end developers, zooming in on the emerging best practices when it comes to working with LLMs to build great products. This workshop is based on learnings from working with the OpenAI API from its debut last November to build out a working MVP which became PowerModeAI (A customer facing ideation and slide creation tool).
In the workshop they'll be a mix of presentation and hands on exercises to cover topics including:
- GPT fundamentals- Pitfalls of LLMs- Prompt engineering best practices and techniques- Using the playground effectively- Installing and configuring the OpenAI SDK- Approaches to working with the API and prompt management- Implementing the API to build an AI powered customer facing application- Fine tuning and embeddings- Emerging best practice on LLMOps
Node Congress 2023Node Congress 2023
33 min
Scaling up Your Database With ReadySet
WorkshopFree
The database can be one of the hardest parts of a web app to scale. Many projects end up using ad-hoc caching systems that are complex, error-prone, and expensive to build. What if you could drop in a ready-built caching system to enable better throughput and latency with no code changes to your application?
Join developers Aspen Smith and Nick Marino to see how you can change one line of config in your app and use ReadySet to scale up your query performance by orders of magnitude today.
Remix Conf Europe 2022Remix Conf Europe 2022
156 min
Building a Realtime App with Remix and Supabase
Workshop
Supabase and Remix make building fullstack apps easy. In this workshop, we are going to learn how to use Supabase to implement authentication and authorization into a realtime Remix application. Join Jon Meyers as he steps through building this app from scratch and demonstrating how you can harness the power of relational databases!