Cómo las soluciones GenAI revolucionan la automatización empresarial Desglosando las aplicaciones de LLM para ejecutivos

Las soluciones GenAI revolucionan la automatización empresarial y desglosan las aplicaciones de LLM para ejecutivos.

Cómo las empresas pueden aplicar el poder de los LLM para automatizar flujos de trabajo y obtener eficiencias de costos

Foto de Gerard Siderius en Unsplash

Introducción

En una reciente colaboración con ejecutivos de fabricación en una empresa de biotecnología, nos adentramos en el mundo de la IA generativa, específicamente en los modelos de lenguaje grandes (LLM), para explorar cómo se pueden utilizar para acelerar las investigaciones de calidad. Las investigaciones de calidad se activan cuando se identifican desviaciones en la fabricación o prueba de productos. Debido a los posibles riesgos para la salud del paciente y a los requisitos normativos, el lote se pone en espera y, dependiendo del impacto, incluso se puede suspender la producción. Acelerar las investigaciones para llevar a cabo un análisis de causa raíz e implementar un plan de acción correctivo y preventivo lo más rápido posible es fundamental. Nuestro objetivo era acelerar este proceso utilizando GenAI, siempre que fuera posible.

A medida que comenzamos a pensar en el producto mínimo viable (MVP, por sus siglas en inglés), nos enfrentamos a varias opciones sobre cómo GenAI podría automatizar diferentes etapas del proceso para mejorar el tiempo de ciclo y desbloquear lotes lo más rápido posible. Los ejecutivos eran expertos en su campo y habían recibido capacitación en GenAI. Sin embargo, era necesario profundizar en las capacidades de los LLM y en los diversos patrones de solución de GenAI para determinar en qué etapa del proceso de investigación de calidad priorizar el MVP, equilibrando la viabilidad de la solución a corto plazo y la mejora esperada del tiempo de ciclo.

Aunque en nuestro caso la discusión se centró en un proceso específico, el mismo patrón de solución se está aprovechando en diversas industrias y funciones para extraer eficiencias de costos y acelerar resultados. Entonces, ¿cómo pueden las soluciones de GenAI ayudar en este proceso?

Las Capacidades Únicas de los LLM

Antes del reciente auge de la popularidad de GenAI, las soluciones de automatización en el mundo corporativo se dirigían principalmente a tareas rutinarias basadas en reglas o se basaban en la Automatización de Procesos Robóticos (RPA, por sus siglas en inglés). Las aplicaciones de aprendizaje automático giraban principalmente en torno a la analítica, como el uso de modelos de regresión para predecir resultados como los volúmenes de ventas. Sin embargo, los últimos LLM se destacan por sus notables propiedades:

  1. Comprensión de contenido: Los LLM son capaces de “entender” el significado del texto
  2. Entrenamiento sobre la marcha: Los LLM pueden realizar nuevas tareas que no formaban parte de su entrenamiento original (también conocido como aprendizaje sin ejemplos) guiados por instrucciones en lenguaje natural y, opcionalmente, algunos ejemplos (aprendizaje con pocos ejemplos)
  3. Razonamiento: Los LLM pueden “pensar” y “razonar” posibles acciones hasta cierto punto (aunque con algunas limitaciones y riesgos)

En el aprendizaje automático “convencional”, el proceso para construir y utilizar un modelo generalmente implicaba recopilar datos, definir un “objetivo” manualmente y entrenar el modelo para predecir el “objetivo” dado otras propiedades. Entonces, los modelos podían realizar una tarea específica o responder a un tipo específico de pregunta. En cambio, simplemente podrías pedirle a un LLM pre-entrenado que evalúe una reseña de un cliente sobre aspectos específicos importantes para tu negocio que el LLM no haya visto antes ni se mencionen explícitamente en la reseña.

La Mecánica de las Soluciones Basadas en LLM

Muchas soluciones de LLM en la industria se centran en diseñar y proporcionar instrucciones detalladas para que los LLM realicen tareas específicas (esto se conoce como ingeniería de indicaciones). Una forma potente de amplificar el impacto de los LLM es permitirles acceder a la información patentada de una empresa de manera automatizada. La Generación Mejorada por Recuperación (RAG, por sus siglas en inglés) ha surgido como uno de los patrones de solución más comunes para lograr esto.

Vista General — Una vista desde los 10,000 pies

Una vista de alto nivel del flujo de trabajo de la solución de GenAI (fuente: Imagen del autor)

En términos simples, la solución tiene dos etapas:

  1. Búsqueda: Recuperar datos de la empresa relevantes para la solicitud del usuario. Por ejemplo, si la solicitud es escribir un informe en un formato o estilo específico, se recupera el texto de un informe anterior y se envía al LLM como ejemplo
  2. Generación: Compilar instrucciones y ejemplos (u otra información relevante) recuperados en la etapa anterior en una indicación de texto y enviarla al LLM para generar la salida deseada. En el caso del informe, la indicación podría ser,

Por favor, compile la siguiente información en un informe, utilizando el formato y estilo del ejemplo proporcionado. Aquí está el contenido: [contenido del informe…]. Aquí está el ejemplo: [Título del informe anterior Sección 1… Sección 2… Conclusión]

El Flujo de Trabajo RAG: una vista de 1,000 pies

Sumergámonos un poco más en las etapas de Búsqueda y Generación del patrón de solución.

Un Vistazo Más Detallado al Flujo de Trabajo de la Solución de Generación con Recuperación Mejorada (RAG) (fuente: Imagen del autor)

1. Word Embeddings: la base de la “comprensión” del lenguaje: Para facilitar la comprensión del lenguaje natural, el texto se pasa por algoritmos o por LLMs para obtener una representación numérica (conocida como embeddings vectoriales) que captura el significado y contexto de los datos. La longitud está determinada por el modelo utilizado para crear esta representación: algunos modelos como word2vec tienen longitudes de vectores de hasta 300, mientras que GPT-3 utiliza vectores de hasta una longitud de 12,288. Por ejemplo,

Embeddings Vectoriales (es decir, Representaciones Numéricas) de Oraciones de Muestra (fuente: Imagen del autor)

Así es cómo estas representaciones numéricas se mapean a un espacio bidimensional. Es interesante ver que las oraciones sobre temas similares se mapean cerca una de la otra.

Oraciones de Muestra con Embeddings Vectoriales Graficados en un Espacio Bidimensional (fuente: Imagen del autor, inspirado en una demostración en el curso Modelos de Lenguaje Amplio con Búsqueda Semántica en Deeplearning.ai)

2. Creación del Corpus de Conocimiento: El componente de búsqueda de la solución toma una pregunta entrante y realiza una búsqueda semántica para encontrar las piezas de información más similares disponibles en el corpus de conocimiento. Entonces, ¿cómo se crea este corpus de conocimiento? Los archivos que deben estar en el corpus de conocimiento son procesados por un modelo de embeddings, que crea representaciones numéricas. Estas representaciones numéricas se cargan en una base de datos especializada, generalmente una base de datos vectorial diseñada específicamente para almacenar este tipo de información de manera eficiente y recuperarla rápidamente cuando sea necesario.

3. Búsqueda de Información Similar en el Corpus de Conocimiento (es decir, Recuperación): Cuando un usuario envía una pregunta o una tarea a la solución, la solución utiliza un modelo de embeddings para convertir el texto de la pregunta en una representación numérica. Este vector de pregunta se compara con el corpus de conocimiento para encontrar las piezas de información más similares. Puede haber uno o más resultados de búsqueda devueltos, que pueden ser pasados a la siguiente etapa para generar una respuesta o salida.

4. Generación de Salida Utilizando LLM (es decir, Generación): Ahora que la solución ha logrado encontrar piezas relevantes de información que pueden ayudar al LLM a generar una salida significativa, todo el paquete, conocido como “prompt”, puede ser enviado al LLM. Este prompt incluye uno o más conjuntos estándar de instrucciones que guían al LLM, la pregunta real del usuario y finalmente las piezas de información recuperadas en la etapa de Búsqueda. La salida resultante del LLM puede ser procesada, si es necesario (por ejemplo, cargar las salidas en un formato específico en un documento de Word), antes de ser entregada de vuelta al usuario.

Una Mirada más Profunda a los Componentes de la Solución

Profundicemos un paso más en los componentes de la solución.

Una Mirada más Profunda a los Componentes del Flujo de Trabajo de la Solución RAG (los bloques de color púrpura muestran componentes opcionales). (fuente: Imagen del autor)

1. Crear Corpus de Conocimiento: Cargar documentos relevantes en un Corpus de Conocimiento tiene ciertos matices e involucra varias consideraciones.

  • Carga de Documentos: Diferentes documentos relevantes (pdfs, word, fuentes en línea, etc.) podrían necesitar ser importados a un repositorio de datos. Dependiendo del caso de uso, solo ciertas secciones de algunos documentos podrían ser relevantes. Por ejemplo, en una solución diseñada para analistas financieros que consultan informes 10-K de empresas, secciones como la página de título, la tabla de contenidos, información de cumplimiento estándar y algunos anexos pueden ser irrelevantes para el análisis financiero. Por lo tanto, estas secciones pueden ser omitidas del banco de conocimiento. Es crucial evitar información redundante en el banco de conocimiento para garantizar respuestas diversas y de alta calidad del modelo LLM.
  • División de Documentos: Una vez que se identifican las secciones relevantes del documento para incluir en el banco de conocimiento, el siguiente paso es determinar cómo dividir esta información y cargarla en la base de datos vectorial. La elección puede variar según el caso de uso. Un enfoque efectivo es dividir por párrafos con cierto solapamiento. Esto implica establecer un límite de palabras (o ‘tokens’, las unidades que los LLM utilizan para el procesamiento de texto) para retener un párrafo completo. Si un párrafo excede este límite, debe dividirse en varios registros para la base de datos vectorial. Normalmente, se mantiene cierto solapamiento de palabras para preservar el contexto. Por ejemplo, utilizando un límite de 1,000 palabras por vector con un solapamiento de 40 palabras.
  • Metadatos Adicionales: Mejorar la información en el banco de conocimiento implica etiquetar cada registro con metadatos significativos. Ejemplos básicos de metadatos incluyen el título original del documento del cual se extrajo la información y la jerarquía de secciones. Metadatos adicionales pueden mejorar aún más la calidad de la búsqueda y recuperación. Por ejemplo, los datos del balance extraídos de un informe 10-K podrían etiquetarse con metadatos como:

Título Original del Documento: Informe 10-K de la Compañía XYZAño: 2022Sección: Estados Financieros y Datos Suplementarios | Balance General

  • Almacenamiento: Existen varias opciones disponibles para almacenar información. Se puede utilizar una solución de base de datos vectoriales como chroma, o Faiss sobre Postgres / MySQL. Sin embargo, también se pueden utilizar bases de datos SQL, bases de datos NoSQL o almacenes de documentos, bases de datos de gráficos. Además, existen posibilidades de almacenamiento en memoria para reducir la latencia, así como escalamiento horizontal para mejorar la escalabilidad, disponibilidad, equilibrio de carga, etc.

2. Buscar Información Similar en el Corpus de Conocimiento (Recuperación): Para casos de uso sencillos, un enfoque de recuperación basado en la búsqueda de vectores similares dentro del banco de conocimiento, como se discutió en la sección anterior, debería ser suficiente. Un enfoque común de dos etapas equilibra la velocidad de búsqueda con la precisión:

  • Recuperación Densa: Inicialmente, se realiza un escaneo rápido del extenso corpus de conocimiento utilizando búsquedas aproximadas de vecinos más cercanos para una consulta de búsqueda. Esto produce decenas o cientos de resultados para una evaluación posterior.
  • Reclasificación: Entre los candidatos obtenidos, se pueden utilizar algoritmos que requieren más capacidad de cómputo para discernir entre resultados más y menos relevantes. Pueden calcularse puntajes de relevancia adicionales ya sea realizando un segundo paso sobre los candidatos obtenidos en la etapa de Recuperación Densa o utilizando características adicionales como el número de enlaces que apuntan a cada resultado de búsqueda (indicando credibilidad o autoridad temática), puntajes TF-IDF, o simplemente pidiéndole a un LLM que revise todos los candidatos y los clasifique por relevancia.

Para capacidades avanzadas, como mejorar la calidad de los resultados de búsqueda seleccionando información diversa, aplicando filtros basados en indicaciones de usuario en lenguaje sencillo, y más, puede ser necesaria un enfoque más sofisticado. Por ejemplo, en una consulta financiera donde un usuario pregunta: “¿Cuál fue la ganancia neta de la Compañía XYZ en 2020?”, la solución debe filtrar documentos para la Compañía XYZ y el año 2020. Una posible solución implica utilizar un LLM para dividir la solicitud en un componente de filtrado que reduce los objetivos de búsqueda semántica filtrando por el año 2020 utilizando metadatos. Luego, se realiza una búsqueda semántica para localizar “ganancia neta de la Compañía XYZ” dentro del banco de conocimiento.

3. Generar Resultados usando LLM (Generación): El paso final del proceso implica generar resultados utilizando un LLM

  • Enfoque Directo: El enfoque directo consiste en pasar toda la información recuperada de la Etapa de Búsqueda al LLM, junto con la indicación e instrucciones del usuario. Sin embargo, hay una limitación en cuanto a la cantidad de información que se puede pasar a un LLM. Por ejemplo, el modelo base GPT-4 de Azure OpenAI tiene un tamaño de contexto de 1024 tokens, aproximadamente equivalente a 2 páginas de texto. Dependiendo del caso de uso, puede ser necesario encontrar soluciones a esta limitación.
  • Cadenas: Para evitar el límite de tamaño de contexto, un enfoque es proporcionar sucesivamente piezas de información al modelo de lenguaje e instruirlo a construir y refinar su respuesta con cada iteración. El marco de trabajo LangChain ofrece métodos como “refinar,” “map_reduce,” y “map_rerank” para facilitar la generación de múltiples partes de respuestas utilizando un modelo de lenguaje y, en última instancia, combinarlas utilizando otra llamada a un LLM.

Conclusión

En una era de generación de datos creciente, aprovechar el poder de GenAI, nuestro asistente consciente del contexto y entrenable, nunca ha sido tan impactante. Este patrón de solución, como se describe en el artículo, aborda sin problemas el desafío de automatizar el procesamiento de datos y liberar recursos humanos para tareas más complejas. Con la creciente comoditización de los Modelos de Lenguaje Grande (LLMs, por sus siglas en inglés) y la estandarización de los componentes de la solución, es previsible que dichas soluciones pronto se vuelvan omnipresentes.

Preguntas Frecuentes (FAQs)

  • ¿El contenido generado se convierte en parte de la memoria del LLM y afecta la salida futura? Por ejemplo, ¿los resultados incorrectos generados por usuarios menos experimentados afectarán la calidad de salida de otros usuarios?No. En este enfoque de solución, el LLM no tiene “memoria” de lo que genera, cada solicitud comienza desde cero. A menos que se ajuste finamente el LLM (entrenándolo más) o la salida generada también se agregue a la base de conocimientos, las salidas futuras no se verán afectadas.
  • ¿El LLM aprende y mejora con el uso?No de forma automática. El patrón de solución RAG no es un sistema de aprendizaje por refuerzo. Sin embargo, la solución puede diseñarse de manera que los usuarios puedan proporcionar comentarios sobre la calidad de la salida, que luego se pueden usar para ajustar finamente el modelo. Las actualizaciones a la base de conocimientos o el uso de LLM mejorados también pueden mejorar la calidad de la salida de la solución.
  • ¿Se guardarán los vectores de incorporación en el almacén de datos fuente?Por lo general, no. Si bien los vectores de fragmentos de documentos técnicamente pueden almacenarse en el almacén de datos fuente, el propósito del almacén de datos fuente y la base de datos de vectores (o una base de datos SQL utilizada específicamente para almacenar vectores para la solución) son diferentes. Agregar vectores a la base de datos fuente probablemente creará dependencias operativas y costos adicionales, que pueden no ser necesarios o no generar ninguna recompensa.
  • ¿Cómo se actualizará la solución con nuevos datos?El pipeline de carga de datos (identificación de documentos a cargar, procesamiento, fragmentación, vectorización, carga en la base de datos de vectores) deberá ejecutarse en nuevos datos a medida que estén disponibles. Esto puede ser un proceso por lotes periódico. La frecuencia de las actualizaciones se puede adaptar al caso de uso.
  • ¿Cómo podemos asegurarnos de que la información confidencial en los documentos almacenados en la base de conocimientos no sea accesible al público o a los proveedores de LLM?Las empresas pueden utilizar el servicio Azure OpenAI como una solución de instancia única con una instancia privada de LLMs de OpenAI. Esto puede garantizar la privacidad y seguridad de los datos. Otra solución es implementar LLMs de Hugging Face en la infraestructura privada de la empresa para que los datos no salgan del perímetro de seguridad de la empresa (a diferencia de cuando se utiliza un LLM alojado públicamente).

Explora estos recursos para profundizar tu comprensión de los LLMs y sus aplicaciones:

  • Generative AI Defined: Cómo funciona, beneficios y peligros (techrepublic.com)
  • Lo que los líderes empresariales deben saber sobre el uso de LLMs como ChatGPT (forbes.com)

Para obtener una visión más detallada del patrón de solución RAG:

  • Respuesta a preguntas utilizando Generación Mejorada por Recuperación con modelos base en Amazon SageMaker JumpStart | Blog de Aprendizaje Automático de AWS
  • Curso de Deeplearning.ai: Modelos de Lenguaje Grande con Búsqueda Semántica
  • Curso de Deeplearning.ai: LangChain: Conversa con tus Datos