LangChain

Rockeando el Mundo de la IA con Modelos de Lenguaje Avanzados

En nuestro mundo siempre en evolución de la tecnología, es esencial apreciar el notable progreso del Procesamiento de Lenguaje Natural (NLP).

Regresando un poco en el tiempo, cada tarea de NLP necesitaba un modelo distinto, un proceso tedioso y que consumía mucho tiempo. Esto cambió con la introducción de los Transformers y el concepto de aprendizaje de transferencia en NLP.

LLMs Generalistas

Grandes corporaciones como Google encabezaron esta transformación al invertir pesadamente en la formación de modelos transformadores. Estos modelos funcionan como “generalistas“, con una sólida comprensión del lenguaje, lo que les permite realizar diversas tareas.

Hoy en día, este avance ha evolucionado hacia el uso de modelos de lenguaje de gran tamaño (LLMs) capaces de realizar tareas como clasificación o respuesta a preguntas.

Es asombroso darse cuenta de que la tecnología ha alcanzado una etapa tan sofisticada.

Alucinaciones

Aun así, estos modelos no están exentos de defectos. Para ilustrar, consideremos el ejemplo de GPT-4, uno de los modelos de lenguaje de gran tamaño más avanzados actualmente disponibles. Cuando se le plantea una pregunta específica sobre Langchain, se desvía para discutir una plataforma basada en blockchain con un sistema de tokens imaginario pero similar. Esta mala interpretación, o “alucinación“, es un problema común con los modelos de lenguaje de gran tamaño.

A pesar de estos desafíos, no se puede negar el impacto significativo y la popularidad de los modelos de lenguaje de gran tamaño.

Los LLMs están remodelando el mundo, proporcionando una plataforma para una miríada de startups y empresas establecidas para explorar el NLP y el aprendizaje automático. En el corazón de esta revolución se encuentra Langchain.

Langchain

Langchain sirve como un conducto para crear aplicaciones utilizando modelos de lenguaje:

Está compuesto de componentes modulares y cadenas, que son caminos preestablecidos para integrar sin problemas estos módulos.

Los elementos modulares consisten en:

  • Plantillas de indicaciones
  • Modelos de lenguaje de gran tamaño (LLMs)
  • Herramientas de indexación
  • Agentes
  • Memoria

Las plantillas de indicaciones guían la entrada al modelo, mientras que los LLMs como GPT procesan esta entrada.

Las herramientas de indexación median con las fuentes de datos, los agentes deciden el curso de acción y la memoria mantiene un registro de las interacciones pasadas con los modelos de lenguaje.

Las cadenas, en este contexto, se refieren a pasos predeterminados, mientras que los agentes toman acciones no deterministas, ajustando su comportamiento en base a las observaciones.

Un desarrollo interesante de Langchain es su esfuerzo por añadir seguridad de tipo a la salida del modelo de lenguaje, similar a lo que podríamos ver en los lenguajes de programación. Este enfoque novedoso sugiere un nuevo paradigma de lenguajes de programación.

Marco de Trabajo

Langchain presenta un marco de trabajo bien estructurado y las herramientas necesarias para utilizar eficazmente los modelos de lenguaje de gran tamaño en diversas aplicaciones.

Simplifica el proceso de utilizar estos modelos de formas intrigantes e innovadoras, impulsando el futuro de las aplicaciones de modelos de lenguaje.

Entender la importancia de los modelos de lenguaje en las interfaces públicas es fundamental en el mundo tecnológico de hoy.

Historial de Chat de ChatGPT

Un ejemplo principal es ChatGPT, que incorpora el modelo de lenguaje y el historial de chat, proporcionando a los usuarios una experiencia más interactiva. Sin embargo, hay que recordar que este historial de chat no es inherente al modelo, sino que los desarrolladores lo construyen alrededor de él dentro del marco de trabajo.

API sin Estado

Cuando se lanzó la API de ChatGPT, muchos asumieron que venía con almacenamiento de conversaciones incorporado.

Contrario a esta creencia, es una API sin estado, y la responsabilidad de gestionar la memoria recae en los desarrolladores, y aquí es donde Langchain brilla.

El poder de este modelo radica en su capacidad para facilitar preguntas de seguimiento y conversación natural en lugar de simplemente abordar consultas independientes. Esto abre una valiosa oportunidad de interfaz de usuario y experiencia de usuario.

Diálogo Interactivo

Al incorporar memoria y la capacidad de diálogo interactivo, los usuarios pueden guiar las respuestas de la IA en tiempo real.

Esta “memoria de conversación” desbloquea un valor inmenso para el usuario, moldeando la forma en que interactuamos con la IA.

En su núcleo, Langchain se esfuerza por servir como un marco de trabajo integral para construir con modelos de lenguaje.

Langchain ofrece un conjunto diverso de componentes, facilitando el desarrollo de aplicaciones. Aunque todavía estamos en los primeros días de estas aplicaciones, el objetivo es que Langchain se convierta en la plataforma de referencia para los desarrolladores.

Recordando algunas preocupaciones iniciales, Langchain encontró problemas con la salida de GPT-4, el modelo más reciente en tecnología de lenguaje. Cuando se le preguntó acerca de la cadena LM, GPT-4 la interpretó erróneamente como un modelo de lenguaje AI descentralizado basado en blockchain. Esto se debe al hecho de que los datos de entrenamiento del modelo solo se extienden hasta 2021 y, por lo tanto, no tiene conocimiento de los desarrollos recientes.

Sin embargo, implementamos un enfoque diferente con Langchain que dio mejores resultados.

El mismo modelo GPT-4, cuando se le preguntó acerca de la cadena LM, proporcionó una guía completa del código. Esto implica que si bien el modelo es el mismo, el método de obtención de información ha cambiado, utilizando un proceso conocido como complemento recuperable.

Complemento Recuperable (Retrievable Augmentation)

El complemento recuperable es una estrategia para complementar el conocimiento de un modelo de lenguaje de gran tamaño, limitado y desactualizado debido a su corte a fines de 2021, con información actualizada y relevante.

Este método se ha implementado en muchos chatbots recientes, lo que les permite acceder a diversas fuentes de información para obtener la información más actual y válida. Esto significa que los usuarios ya no tienen que confiar ciegamente en la salida del modelo de lenguaje de gran tamaño; pueden verificar sus fuentes.

El proceso de complemento recuperable consta de dos pasos, indexación y recuperación.

Indexación

El primero implica incrustar documentos en un modelo y almacenarlos en una base de datos de vectores. Una vez indexada, podemos alimentar esta información a nuestro modelo de lenguaje de gran tamaño.

Recuperación

Para la recuperación, Langchain introduce una consulta que se codifica en el mismo espacio de datos. Esta consulta luego escanea la base de datos de vectores en busca de vectores similares según el significado, devolviendo fragmentos relevantes de información de nuestros documentos indexados.

Cargadores de Documentos

Langchain hace que este proceso sea fluido. Incorpora cargadores de documentos que obtienen texto de archivos, páginas web y diversas fuentes, convirtiéndolos en un formato común que incluye texto y metadatos del documento.

Búsqueda Semántica de Recuperación

Las cadenas en Langchain, que son pasos predefinidos para utilizar estos componentes, adoptan diversas formas que utilizan esta abstracción de búsqueda semántica de recuperación con generación mejorada, incluyendo preguntas y respuestas en la base de datos de vectores con y sin fuentes, y preguntas y respuestas en la base de datos de vectores con memoria.

Langchain está revolucionando la forma en que interactuamos con los modelos de lenguaje de gran tamaño, proporcionando un marco de trabajo y herramientas necesarias para diversas aplicaciones. Simplifica el proceso de aprovechar estos modelos de formas innovadoras y convincentes.

Manejo de Extensos Fragmentos de Texto

Langchain ofrece una variedad de opciones para descomponer o “segmentar/chunking” documentos extensos, haciendo que el proceso sea intuitivo con numerosas utilidades prácticas.

Incrustaciones (ejemplo de Wikipedia)

Para ilustrar esto, es posible utilizar un pequeño conjunto de datos de Wikipedia y Langchain para producir incrustaciones con un modelo de incrustación. Luego, se inicializa la base de datos de vectores y se agregan vectores del conjunto de datos.

Destacando aún más las capacidades de Langchain, los desarrolladores deben demostrar cómo pueden recuperar información relevante. Se plantea una consulta, lo que lleva a la extracción de varios documentos de Wikipedia relevantes para la pregunta, mostrando así la eficacia de los mecanismos de recuperación de Langchain.

A continuación, es fácil integrar un modelo de lenguaje de gran tamaño, específicamente GPT, e inicializar la cadena dbqa de la base de datos de vectores.

La cadena acepta el modelo de lenguaje de gran tamaño y el Vectorstore y luego ejecuta el proceso, que implica alimentar la consulta inicial y los documentos previamente recuperados. Con la ayuda de la clase dbqa, este proceso se vuelve fluido, generando una respuesta concisa y mejorada en función de la información recuperada.

Además de esto, los desarrolladores deben mencionar el entrenamiento de la base de datos de vectores de preguntas y respuestas con fuentes, un componente esencial que proporciona la fuente de la información junto con la respuesta de la consulta. Aunque este artículo no profundizó en las funciones de preguntas y respuestas en el chat, es otra característica clave de Langchain que vale la pena explorar.

Paraíso para los Desarrolladores

Imagina cómo los desarrolladores pueden abordar diversas consultas sobre Langchain, como entrenar modelos de incrustación en datos propietarios, el enfoque óptimo de bajo código para utilizar Langchain y formas de aprovechar Langchain más allá de los datos propietarios.

Es una buena idea comenzar a explorar los métodos más efectivos para segmentar/chunking oraciones, las ventajas y desventajas de los vectores densos versus dispersos, la integración de barreras de protección dentro de Langchain y las herramientas de incrustación populares utilizadas en conjunto con Langchain.

En resumen, Langchain ofrece una variedad de herramientas y metodologías para procesar y recuperar datos con modelos de lenguaje de gran tamaño. Al simplificar estos procesos, Langchain mejora la usabilidad de estos modelos en numerosas aplicaciones, allanando el camino para nuevos avances en el campo.