- Un desarrollador aprendiendo IA
- Posts
- #4 Langchaing para desarrolladores
#4 Langchaing para desarrolladores
Todo lo que necesitas saber
En las últimas semanas hemos hablado mucho de LangChain, que se ha convertido en un standard de facto dentro del stack de aplicaciones para desarrollar aplicaciones LLMs. También explicábamos que había habido cierto revuelo en el mundo de desarrolladores sobre su diseño, su complejidad más allá de las recetas del cookbook y su validez en producción.
Aún así, los objetivos que persigue son muy lógicos y se han aplicado en otros momentos a la hora de diseñar frameworks que hicieran de capa de intermediación con varias implementación:
Facilitar el desarrollo de aplicaciones utilizando las características generales del área, más allá de las distintas implementaciones, APIs, SDKs ... que cada una de ellas pudiera tener.
Facilitar el cambio entre distintas de esas implementaciones sin tener que cambiar la implementación específica de tu aplicación, más allá de elementos de configuración específicos (p.e. URLs de los end points, nombre de la plataforma, etc.)
Facilitar la extensión con nuevas funcionalidades generales, por encima de las disponibles en cada una de las implementaciones específicas.
Por eso esta semana os traemos otros dos cursos cortos para desarrolladores de la mano de DeepLearning.ai y el creador de Langchain Harrison Chase.
Curso corto: LangChain for LLM Application Development
Python, nivel básico. Ofrece un entorno para poder ejecutar los ejemplos del curso y poder expandirlos con otros. Aunque dice que es 1h aprox., diría que jugando con los ejemplos te puede llevar a 2h. Tiene subtítulos.
En LangChain for LLM Application Development cubre los componentes básicos de la arquitectura de Langchain, con algunos ejemplos base que pueden expandir a otros casos de uso. Cubre los siguientes temas:
Modelos, prompts y parsers de textos
Memorias para LLM: distintas clases para para almacenar conversaciones y administrar un espacio de contexto limitado tanto por el modelo como por el caso de uso.
Cadenas / Chains: creación de secuencias de operaciones que permiten incrementar la complejidad de nuestra aplicación.
Respuesta a preguntas sobre documentos / Question-Answering over documents: aunque no es una modificación del modelo en si, permite utilizar sus documentos para afinar el contexto de los prompts en una fase anterior a llegar al LLM.
Agentes: componentes que permiten la ejecución de operaciones de razonamiento, toma de decisiones para la ejecución de herramientas externas.
Curso corto: LangChain: Chat with Your Data
Python, nivel básico. Ofrece un entorno para poder ejecutar los ejemplos del curso y poder expandirlos con otros. Aunque dice que es 1h aprox., diría que jugando con los ejemplos te puede llevar a 2h. Tiene subtítulos.
Este curso se centra en dos aspectos fundamentales:
Lo que se denomina Retrieval Augmented Generation (RAG)*, un patrón común en las aplicaciones de LLMs que consiste en la recuperación de información textual de un conjunto de datos externo. Este es un enfoque habitual porque permite incluir documentos personales, de la empresa, etc. como parte del contexto que se da en los prompts a los LLMs y así encajar mucho mejor en el dominio.
Una guía paso a paso para la construcción de un chatbot que responda a consultas basadas en los documentos del paso anterior, y así mejore las que podría dar con los modelos ya entrenados.
Los distintos módulos de los que se compone el curso son los siguientes:
Document Loading: fundamentos para la carga de datos. LangChain dispone de 80+ tipos, todo tipo de documentos, pero también a plataformas como YouTube o Notion.
Document Splitting: los documentos deben ser divididos en parters -*chunks*- para facilitar crear las estructuras internas que determinan el contexto de los grupos de palabras -*embeddings*.
Vector stores and embeddings: para aquellos que conoces los mecanismos de information retrieval como son los buscadores indexados, esta parte consiste en la integración que LangChain tiene con herramientas especificas para crear embeddings, vectores con la probabilidad de que el resto de palabras aparezca en el contexto de otra y que se almacenan en motores específicos de este área denominados vector stores (o almacenamiento de vectores)
Retrieval: las distintas técnicas para recuperar documentos más cercanos al prompt y utilizarlo como parte de la respuesta.
Question Answering: cómo componer la conversación del usuario, con prompts internos que permitan acceder a las fuentes de datos propios y dárselo a los LLMs para que formen una respuesta.
Chat: y todo lo anterior conectado con un chat bot.