Los LLM están de moda, pero hay un ecosistema emergente a su alrededor que abre la puerta a nuevas formas de crear soluciones de IA.
Decir que la IA ha puesto el mundo patas arriba es poco menos que quedarse corto. Para bien o para mal, el lanzamiento de ChatGPT abrió las compuertas a una audiencia más amplia. Hoy en día, encuentras gente hablando de IA de la misma manera que hablarías de política, sus pasatiempos o sus últimas tendencias. Sí, sí, todos sabemos que la IA es más que PNL y transformadores generativos, pero no podemos negar que ChatGPT (y Bard y Bing) es la aplicación de IA asesina a los ojos de los usuarios.
OpenAI ha abierto GPT-4 para su API a todos los usuarios, Meta ha lanzado Llama2 bajo una de las licencias más completas, no del todo abiertas pero aún así muy flexibles del mercado, Huggingface está viendo más usuarios que nunca. y Microsoft está haciendo todo lo posible para posicionar a Azure como la verdadera solución para las aplicaciones de IA . Y eso es sólo la punta del iceberg. Vivimos en una época llena de oportunidades para que las empresas establecidas y las nuevas empresas jueguen con la IA e integrenla en sus productos.
¿Pero por dónde empezar? La IA generativa no es una caja mágica. No es que pueda convertirse en una aplicación completamente funcional (¡todavía!). Tampoco puede descartar un script corto que realice una llamada API a un servidor para generar algo y dar por terminado el día. Esto podría haber funcionado hace unos años, cuando los chatbots podían denominarse “aplicaciones complementarias” . E incluso entonces, la mayoría de estas aplicaciones necesitaban tener un cierto nivel de complejidad para agregar contexto, memoria y otros factores para que una conversación fuera viable.
Hoy vamos a hablar sobre software complementario, soluciones que han surgido de la moda de la IA y que pueden ayudar a todos, desde desarrolladores senior hasta entusiastas del código sin código, a crear soluciones de IA que satisfagan sus necesidades y sus proyectos. Pero antes de entrar en materia, deberíamos hablar de un número clave llamado Jerônimo Bruner .
La psicología narrativa como marco para la IA
Si bien la naturaleza de este artículo es explorar y comprender qué herramientas tenemos a nuestra disposición para crear mejores soluciones de IA, creemos que es importante comenzar pensando en cómo usaremos estas herramientas.
Para ser franco, la IA no es una solución en sí misma. Debe tener un objetivo claro de lo que quiere lograr y, lo más importante, debe tener una pila de tecnología capaz de gestionar el alcance y la intención de su proyecto.
Entonces, ¿qué tiene que ver la psicología con la IA? Mucho, en realidad. Por un lado, los laboratorios de IA como OpenAI utilizan principios de la psicología del comportamiento para enseñar a sus máquinas; El aprendizaje por refuerzo es una tecnología aplicada que debe mucho al enorme trabajo de BF Skinner.
Pero hoy no vamos a hablar de los principios del conductismo. Ese sería un tema en sí mismo. No. Hoy vamos a hablar de la psicología cognitiva, un campo que debe mucho a la informática y que, a su vez, tiene mucho que enseñarnos en cuanto a procesar la información de nuevas formas.
Durante la primera mitad del siglo XX, la psicología se centró en observar y analizar conductas. Había poco interés en lo que sucedía dentro de la mente. Primero, porque la psicología intentaba distanciarse de la filosofía y su enfoque de la mente, y segundo, porque no teníamos las herramientas para medir cómo el cerebro procesa la información.
Entonces la psicología recurrió a la informática y la teoría de la información en busca de soluciones. Así como un algoritmo modela un proceso sin transmitir con precisión cómo una CPU maneja la información, los psicólogos crearon modelos que explicaban cómo funciona la mente sin tener que explicar lo que estaba sucediendo en términos de células cerebrales.
En cierto modo, fue una solución fantástica al problema que atormentaba a la psicología estadounidense, pero se produjo a costa de los prejuicios que plagan el campo hasta el día de hoy. Los algoritmos y modelos tienden a favorecer procesos lineales y lógicos y, para bien o para mal, los humanos no somos racionales ; por lo tanto, los modelos tienden a fallar cuando tomamos en cuenta comportamientos e ideas complejos.
Jerome Bruner es uno de los psicólogos cognitivos que se sintió desilusionado con los resultados poco ideales que estaba obteniendo el campo y, en respuesta, publicó en la década de 1970 un libro fantástico llamado Mentes reales, mundos posibles . En él sentaría las bases de una nueva teoría de la mente basada en el lenguaje y la narrativa.
Sus ideas nos alientan a pensar críticamente sobre cómo debería funcionar también la IA. Gracias a estos nuevos modelos de lenguaje, hemos visto el surgimiento de agentes autónomos como BabyAGI: software informático con una apariencia de “diálogo interno” junto con memoria a corto y largo plazo. La IA puede planificar, priorizar, ejecutar y evaluar.
Sí, las instrucciones subyacentes siguen siendo ceros y unos (después de todo, es un programa de computadora), pero podríamos decir algo similar sobre la actividad cerebral. Después de todo, ¿qué hay detrás de nuestros pensamientos sino la actividad eléctrica de nuestro cerebro (al menos en parte)?
¿Debería la IA depender exclusivamente de algoritmos y patrones de datos, o debería también “comprender” historias y contextos? Un ejemplo notable es la IA en la atención médica, donde comprender la historia de fondo de un paciente (compuesta por elecciones de estilo de vida, antecedentes familiares y prácticas culturales) es tan fundamental para diagnósticos concluyentes como interpretar datos médicos.
Bruner también defiende la flexibilidad cognitiva, implicando mundos posibles (o realidades) que pueden moldearse mediante cambios en nuestros modelos mentales. Por lo tanto, cuando se trabaja con IA, esta flexibilidad sugiere emplear múltiples técnicas de modelado que se adapten a diversos escenarios, en lugar de adherirse rígidamente a un enfoque único para todos.
Considere el pronóstico del tiempo: si bien generalmente utilizamos modelos de regresión basados en datos históricos para predecir condiciones futuras, es posible que necesitemos diferentes modelos que prioricen las imágenes satelitales en tiempo real sobre registros históricos obsoletos durante eventos adversos como ciclones o inundaciones.
Además, Bruner presenta la tolerancia a la ambigüedad como un atributo humano intrínseco, un recordatorio para que trabajemos con la IA para diseñar estos sistemas para que sean resilientes frente a flujos de datos inciertos, en lugar de solo flujos precisos.
Los vehículos autónomos ilustran perfectamente este principio: mientras que conducir en condiciones climáticas despejadas puede gestionarse mediante sensores precisos y bases de datos de mapas, navegar en mañanas con niebla requiere una mayor tolerancia a la información visual ambigua: ¡una estrategia completamente alternativa!
Por último, pero no menos importante, la forma en que los factores culturales influyen en la cognición proporciona una visión fascinante que nos invita a crear herramientas de IA más sensibles a la cultura. Empresas como Google ya han empezado a adoptar esta idea; Su software de traducción ahora considera la jerga informal junto con las reglas lingüísticas oficiales al interpretar idiomas.
Pero, ¿no serían menos lógicas, menos precisas y más propensas a errores las soluciones que funcionan como los humanos? Bueno, sí, pero eso es una característica, no un error. Muchas empresas se beneficiarán de la implementación de agentes humanos complejos como parte del servicio; por ejemplo, un artista que utiliza IA generativa para crear imágenes inspiradoras puede inspirarse en un “error”.
Piense en cuántas veces le ha sorprendido el ingenio de alguien; por ejemplo, cómo los niños crean historias y arte fantásticos porque es menos probable que se sientan abrumados por el sentido común. No usaríamos una IA alucinante para realizar inversiones de alto riesgo, pero un escritor que busca a alguien con quien intercambiar ideas no podría pedir nada mejor.
Entonces, con estas ideas en mente, hablemos de herramientas y de cómo pueden ayudarnos a crear agentes parecidos a los humanos.
Cadena Lang
Podríamos escribir un millón de artículos sobre Langchain, y no sería suficiente ni siquiera arañar la superficie de este marco extremadamente poderoso. Para citar su sitio web : "LangChain es un marco para desarrollar aplicaciones basadas en modelos de lenguaje".
Si crear una aplicación impulsada por IA desde cero es como construir un edificio con ladrillos y concreto, usar langchain es como ensamblar un edificio con bloques de Lego. Y si bien esta analogía puede parecer un poco restrictiva al principio, no olvidemos que la gente ha logrado construir la Estrella de la Muerte con Legos.
Dejando a un lado las comparaciones tontas, Langchain presenta una arquitectura modular, con diferentes módulos, cada uno diseñado para una funcionalidad específica. Por ejemplo, el módulo Modelos integra varios modelos y tipos de lenguaje, actuando como la columna vertebral de cualquier aplicación basada en Langchain. Un ejemplo práctico sería la integración de un modelo “BERT” que proporciona comprensión semántica para un Chatbot desarrollado en Langchain.
Otro ejemplo, el módulo Avisos, se centra en gestionar y optimizar avisos, mejorando así la relevancia y precisión del resultado. Por ejemplo, si estuviéramos desarrollando una aplicación de asistente personal, ajustar las indicaciones podría mejorar potencialmente sus habilidades de conversación al proporcionar respuestas personalizadas al usuario.
Revisar cada módulo llevaría mucho tiempo, por lo que recomendamos recursos como la documentación oficial de Langchain y los tutoriales de Langchain . Estas guías prácticas están repletas de ejemplos que brindan información valiosa sobre cómo trabajar con Langchain y crear aplicaciones impulsadas por IA desde cero.
En cambio, centrémonos en cómo se pueden implementar herramientas como Langchain. Como algunos de ustedes ya habrán adivinado, Langchain funciona agregando una capa de abstracción. Por ejemplo, en lugar de realizar llamadas API directas a un modelo de lenguaje, Langchain se encarga de esta molestia por nosotros.
Esto nos lleva al primer beneficio. Dado que no trabajamos directamente con llamadas API o bibliotecas para una solución LLM específica, es relativamente fácil cambiar de proveedor de IA (o mezclar y combinar con facilidad). Si hacemos nuestro trabajo correctamente, cambiar entre LLM será tan fácil como cambiar una sola línea de código.
Esto le brinda una enorme flexibilidad y control sobre su proyecto. Los proveedores de servicios a veces cambian sus políticas sin mucha preocupación por el impacto que podría tener en sus clientes; por ejemplo, el desastre de la API de Reddit . Si está atado a un solo proveedor, es más vulnerable a cambios repentinos que podrían afectar su producto. Langchain le ayuda a mantener su código base lo más reutilizable y preparado para el futuro posible.
El poder de Langchain va más allá de sus módulos principales, gracias a sus amplias integraciones con múltiples proveedores de modelos de lenguaje, proveedores de modelos de incrustación de texto, cargadores de documentos y divisores de texto, entre otros. Por ejemplo, Langchain no sólo tiene un sistema modular y amplias integraciones, sino también una amplia gama de aplicaciones del mundo real, desde el desarrollo de agentes autónomos que toman decisiones basadas en circunstancias cambiantes hasta la creación de asistentes personales que recuerdan las interacciones.
El oleoducto Langchain se basa en la idea de construir cadenas de acciones. Por ejemplo, si emulamos un agente autónomo, podríamos diseñar varios eslabones para construir la cadena, como por ejemplo:
- Un módulo que toma la información del usuario y la clasifica, y basándose en esa clasificación, envía la información a un "cerebro" especializado
- Una serie de módulos especializados para cada área; por ejemplo, modelos entrenados a medida para cada área de nuestro negocio para que sirvan como chatbots para los usuarios
- Un módulo que, a partir de la solicitud del usuario, crea una serie de pasos para lograr su objetivo.
- Un módulo que prioriza qué paso dar primero
- Un módulo que puede buscar en la web y extraer páginas web para proporcionar resultados más precisos.
- Un módulo que, a partir de las diferentes respuestas de cada paso, construye una respuesta final
Tenga en cuenta que lo que estamos haciendo aquí es una extensión de lo que Bruner nos dice sobre la cognición humana. En términos humanos, simplemente estamos creando “voces internas” que manejan diferentes tareas, tal como “hablas contigo mismo” cuando estás analizando algo o como algunas personas hablan consigo mismas cuando están pensando.
Un caso de uso que encontramos particularmente notable es la capacidad de Langchain para consultar datos tabulares. Imagine una aplicación donde un usuario puede solicitar encontrar en la base de datos de una empresa a todos los empleados que se incorporaron en los últimos 6 meses y viven en una determinada ciudad. Al aprovechar Langchain, puede lograr esto mediante el uso de modelos de lenguaje para interactuar y extraer información de datos estructurados.
Langchain es una herramienta versátil con un gran potencial de aplicación en múltiples dominios. Comenzar a aprender Langchain puede parecer desalentador, pero si cuentas con los recursos adecuados y una curiosidad insaciable, estarás en el camino correcto. En el lado positivo, Langchain es compatible con Python y Javascript, por lo que no es necesario aprender un nuevo idioma desde cero.
La piña como solución de IA
¿Qué es la piña? Pinecone es una base de datos vectorial administrada diseñada para aplicaciones de aprendizaje automático. Básicamente es como darle una buena actualización a nuestras soluciones LLM, como pasar de una bicicleta a un auto deportivo completamente equipado.
Ahora bien, si no tienes idea de qué es Pinecone, no te preocupes; tú no estás solo. Muchos lo encuentran tan desconcertante como los crucigramas que vemos en nuestros periódicos matutinos. Pero estamos aquí para resolver estos problemas de confusión.
Pinecone es una base de datos vectorial diseñada específicamente para aplicaciones de aprendizaje automático. En pocas palabras, las bases de datos vectoriales son un tipo de software diseñado para manejar datos multidimensionales pesados que a menudo se encuentran en aplicaciones de inteligencia artificial y aprendizaje automático.
Imagine que está comprando en línea un nuevo par de zapatillas y el sitio web le sugiere artículos según sus búsquedas y preferencias. Se trata básicamente de una función de IA conocida remotamente como “motor de recomendación”. Estos motores extraen toneladas de datos para sugerir elementos relevantes. ¡Eso sí que supone mucho trabajo pesado en términos de datos! Ahí es donde entra en juego nuestra estrella principal, Pinecone. Indexa datos de alta dimensión de manera más eficiente, lo que hace que las plataformas de inteligencia artificial como el "motor de recomendación" funcionen de manera más eficiente. ¿Guay, verdad?
Tejiendo una capa más técnica, Pinecone utiliza estructuras de datos conocidas como "Espacios vectoriales". Visualice un vasto cosmos donde cada estrella es un punto de datos. Algunas de estas estrellas son vecinas cercanas, mientras que otras son galaxias muy, muy lejanas. La proximidad entre estrellas determina su relación o similitud.
Pinecone te ayuda a encontrar a estos vecinos de manera eficiente y precisa. Esta capacidad forma la columna vertebral de los algoritmos en los sistemas de recomendación, los motores de búsqueda, la personalización y la detección de anomalías, donde las relaciones entre los puntos de datos son el pan de cada día.
¿Recuerdas esa vez que buscaste un video de gatos y caíste en la madriguera de videos de animales lindos durante la siguiente hora? Este es un ejemplo típico de un sistema de recomendación de IA en funcionamiento, habilitado por motores como Pinecone.
Nuestro primer truco para aprovechar Pinecone es deshacerse de las soluciones de bases de datos tradicionales y adoptar búsquedas de similitudes. Pinecone utiliza incrustación de vectores, lo que nos permite recuperar elementos en función de su similitud relacional en lugar de coincidencias exactas. Esto significa que nuestras soluciones LLM pueden comprender el contexto como nunca antes.
Pintemos un cuadro aquí. Imagínate tener que buscar un par de zapatos azules en un armario enorme. Los métodos tradicionales nos obligarían a revisar cada zapato. ¡No con piña! Cabría en todos los zapatos azules que tenemos en segundos.
Ahora, a continuación, hablemos de la escalabilidad que ofrece Pinecone. Sabemos que ampliar las capacidades del aprendizaje automático puede ser una tarea difícil. Pinecone, sin embargo, nos permite escalar horizontalmente fácilmente, haciendo posible manejar grandes volúmenes de datos sin sacrificar la velocidad o la eficiencia.
Además, Pinecone pone en nuestras manos una enorme cantidad de poder con el procesamiento en tiempo real. Entonces, en lugar de esperar los resultados hasta que el sistema procese nuestro lote habitual de datos (como ver una temporada completa en una noche), obtenemos resultados rápidos y en tiempo real (como la transmisión en vivo de un emocionante juego deportivo).
Por último, no se debe subestimar la facilidad de uso de Pinecone. Después de todo, queremos dedicar nuestro tiempo a ideas innovadoras y no a resolver problemas de implementación. Con su enfoque de servicio gestionado, Pinecone elimina la complejidad de la ecuación. Tan fácil como un pastel, ¿verdad?
En Acts of Meaning , Bruner explica que los humanos somos narradores de historias por naturaleza. En lugar de recordar cosas como una imagen perfecta, recordamos fragmentos de información y los conectamos con los mismos principios que utilizan los autores para escribir historias. Estas historias, a su vez, están fuertemente influenciadas por las ideas y conceptos compartidos por una comunidad.
Entonces, ¿qué significa esto para nuestra IA? Simple. Digamos que te gustan los videojuegos y miras videos sobre ellos en YouTube. Ahora, un sistema de recomendación simple seguiría arrojándote contenido de videojuegos sin parar. ¿Pero qué pasa si el sistema detecta que te gusta un tipo de videojuego concreto? Por ejemplo, vídeos centrados en las bases filosóficas de los juegos.
De repente ves una recomendación de un canal de filosofía, pero ¿qué pasa? Nunca te ha interesado la filosofía, ¿verdad? Bueno, juegas y te absorbes por el contenido. La IA simplemente adivinó la proximidad que te ayudó a descubrir un interés que no sabías que tenías.
Pinecone nos permite almacenar el lenguaje de una forma muy natural, en lugar de depender de tablas. Podemos tener documentos de diferentes conversaciones y resultados de búsqueda, y utilizamos este estilo de búsqueda dinámica para encontrar resultados por proximidad.
No, aquí no estamos creando conciencia; Lo que intentamos decir es que tenemos una oportunidad fantástica para repensar la forma en que abordamos la IA como productos y servicios: una forma que sea más humana, que brinde otra forma de entender la información que no se base en la lógica y la razón.
Herramientas como Langchain y Pinecone son sólo dos ejemplos de cómo podemos construir sistemas complejos con relativa facilidad gracias a la creatividad y el esfuerzo comunitario. Y a medida que estas herramientas sigan creciendo, puede estar seguro de que el futuro de la IA será extremadamente brillante.
Si le gustó esto, asegúrese de consultar nuestros otros artículos sobre IA.
- La revolución de la visión por computadora está aquí, y es sorprendente
- Computadoras conscientes: ¿el futuro de la PNL?
- Fugas del código corporativo ChatGPT: el dilema de Samsung
- ¿Podríamos desarrollar un sistema similar a JARVIS?
- Nueve habilidades esenciales que los trabajadores tecnológicos necesitan en la era emergente de la IA
Fuente: BairesDev