Capítulo 4. Capacidades adicionales de la nube y la IA
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Las aplicaciones de IA generativa son mucho más que "sólo un gran modelo". Como ya has visto, los LLM desempeñan un papel central, pero hay otras piezas relevantes que complementan las capacidades del Servicio Azure OpenAI: el ajuste mediante las API o los playgrounds de Azure OpenAI, el enraizamiento con Azure Cognitive Search y/o las incrustaciones de Azure OpenAI, las capacidades de búsqueda en vivo con la API de Bing Search, etc.
Además, disponemos de nuevos tipos de herramientas que nos permiten ampliar aún más las capacidades de los LLM de . Una selección curada para cualquier adoptante de IA generativa y Azure OpenAI podría incluir plug-ins, integración de LMM, bases de datos y mucho más. Profundicemos en ellas con más detalle.
Plug-ins
Uno de los nuevos términos más importantes en las aplicaciones de IA es la noción de "plug-ins". Podemos definirlos como interfaces directas a funcionalidades avanzadas, que interconectan Azure OpenAI de Microsoft (o ChatGPT de OpenAI) con otros sistemas. Por ejemplo, hay plug-ins de empresas como Expedia, FiscalNote, Instacart, KAYAK, Klarna, Milo, OpenTable, Shopify, Slack, Speak, Wolfram y Zapier. Son externos a Azure OpenAI, y su naturaleza y modelos de negocio dependen de las empresas desarrolladoras.
Además, Microsoft anunció en mayo de 2023 su propia colección de plug-ins, definiéndolos como "interfaces estandarizadas que permiten a los desarrolladores construir y consumir API para ampliar las capacidades de los grandes modelos lingüísticos (LLM) y posibilitar una profunda integración de GPT en Azure y el ecosistema de Microsoft". Estos complementos incluyen interfaces directas con Bing Search, Azure Cognitive Search, Azure SQL, Azure Cosmos DB y Microsoft Translator. Como desarrollador, eso significa que puedes conectar Azure OpenAI con otras piezas relacionadas con Microsoft y Azure, con un mínimo esfuerzo de desarrollo e integración.
Desarrollo, orquestación e integración del LLM
También hay piezas orientadas al desarrollador que permiten combinar los LLM existentes con otros servicios, independientemente del lenguaje de programación. Profundicemos ahora en algunas de esas opciones.
LangCadena
LangChain es un framework de código abierto que puedes utilizar para desarrollar aplicaciones impulsadas por modelos lingüísticos. Proporciona varias utilidades y herramientas relacionadas con el lenguaje (por ejemplo, incrustaciones, canalizaciones, agentes, complementos) y es uno de los componentes clave de algunos de los aceleradores que has visto antes en el Capítulo 3. La documentación oficial habla de seis áreas clave, señaladas en orden creciente de complejidad:
- LLMs y prompts
-
Esto incluye la gestión de avisos , la optimización de avisos, una interfaz genérica para todos los LLM y utilidades comunes para trabajar con los LLM.
- Cadenas
-
Las cadenas van más allá de una única llamada al LLM e implican secuencias de llamadas (ya sea a un LLM o a una utilidad diferente). LangChain proporciona una interfaz estándar para cadenas, muchas integraciones con otras herramientas y cadenas de extremo a extremo para aplicaciones comunes .
- Generación aumentada por datos
-
Generación aumentada por datos implica tipos específicos de cadenas que primero interactúan con una fuente de datos externa para obtener datos que se utilizarán en el paso de generación. Algunos ejemplos son el resumen de fragmentos largos de texto y las preguntas/respuestas sobre fuentes de datos específicas.
- Agentes
-
Agentes implican que un LLM tome decisiones sobre qué acciones emprender, realice esa acción, vea una observación y repita eso hasta que termine. LangChain proporciona una interfaz estándar para agentes, una selección de agentes entre los que elegir y ejemplos de agentes de extremo a extremo.
- Memoria
-
La memoria se refiere a la persistencia del estado entre llamadas de una cadena/agente. LangChain proporciona una interfaz estándar para la memoria, una colección de implementaciones de memoria y ejemplos de cadenas/agentes que utilizan memoria.
- Evaluación
-
Los modelos generativos son notoriamente difíciles de evaluar con las métricas tradicionales. Una nueva forma de evaluarlos es utilizar los propios modelos lingüísticos para realizar la evaluación. LangChain proporciona algunas indicaciones/cadenas para ayudar en esto.
El artículo "Introducing LangChain Agents" de Valentina Alto, especialista en IA de Microsoft y autora de Modern Generative AI with ChatGPT and OpenAI Models (Packt), explica un ejemplo de implementación para Azure OpenAI Service con LangChain. También puedes consultar el documento oficial de integración de LangChain y el Servicio Azure OpenAI .
Núcleo semántico
Semantic Kernel es un SDK de código abierto que ayuda a combinar Azure OpenAI Service y otros LLM con lenguajes de programación normales como C#, Java y Python. El SDK incluye funciones como el encadenamiento de instrucciones, el razonamiento recursivo, el resumen, el aprendizaje sin disparos/con pocos disparos, la memoria contextual, la memoria a largo plazo, las incrustaciones, la indexación semántica, la planificación, la generación aumentada por recuperación, los almacenes de conocimiento externos y la opción "utiliza tus propios datos".
La noción de extremo a extremo del núcleo incluye los bloques de construcción que puedes ver en la Figura 4-1.
Veamos cada parte de la figura con más detalle:
- PREGUNTA A
-
Se refiere a la entrada que presentas al Núcleo Semántico, que puede ser una pregunta o una directiva en lenguaje natural. Algunos ejemplos son preguntas como "¿Puedes nombrar la montaña más alta del mundo?" u órdenes como "Condensa este trozo de texto". El Núcleo Semántico trata de interpretar tu PETICIÓN y atenderla utilizando sus diversas capacidades.
- Núcleo
-
Representa el núcleo del procesador que gestiona tu ASK, coreografiando una mezcla de servicios de IA, memorias, modelos y complementos para elaborar una respuesta. Tienes flexibilidad para adaptar los ajustes y parámetros del núcleo según tus preferencias.
- Planificador
-
Una faceta intrínseca del núcleo, el planificador cose ingeniosamente las funciones, formulando una estrategia para responder a tu PREGUNTA. Si se le plantea una petición como "Componer un haiku sobre la luna", el planificador podría amalgamar funciones relacionadas con el inicio del tema, la rima y la estructuración del poema.
- Reúne
-
En esta coyuntura del plan, el núcleo se embarca en la recopilación de datos de una serie de puntos de venta que incluyen modelos de IA, almacenamiento en memoria, conectores o incluso vastos repositorios externos de conocimiento. Si tienes curiosidad sobre "el mamífero más grande de la Tierra", el núcleo podría recurrir a recursos como Bing o Wikipedia para obtener respuestas.
- Habilidades
-
Epitomiza la gama de competencias del Núcleo Semántico al abordar tus ASKs, aprovechando sus vastos componentes. Las habilidades pueden abarcar un espectro que va de lo básico a lo intrincado, en función de la complejidad de los pasos y las fuentes utilizadas. Ejemplos de habilidades incluyen áreas como elucidación, interpretación, elaboración, categorización e incluso respuesta a consultas. Considera las habilidades como la "anatomía" funcional de tu aplicación de IA.
- Recuerdos
-
Es la capacidad del sistema para almacenar, recordar y procesar información derivada de interacciones previas, tareas o datos adquiridos externamente. Es análogo al funcionamiento de la memoria humana, pero en formato digital.
- Conectores
-
Los conectores actúan como puentes, permitiendo al Semantic Kernel interactuar con un espectro de plataformas de IA, modelos, memorias o tesoros de datos externos. Utilizando conectores, se puede acceder a plataformas como OpenAI, Azure OpenAI, o incluso a modelos como ChatGPT, así como a sistemas de memoria o paraísos de información como la Enciclopedia Británica.
- Informa a
-
En esta fase, el núcleo te informa del resultado de tu PREGUNTA, que puede manifestarse en forma de texto, imágenes, audio o una actividad concreta. Supongamos que pides: "Ilustra un bosque tranquilo"; el núcleo podría responder curando una consulta basada en imágenes y proyectando la imagen resultante.
- Pasos
-
Constituyendo los bloques fundacionales del plan para abordar tu PREGUNTA, cada paso podría enmarcarse como una prompt o una función innata. Las indicaciones implican directivas basadas en el lenguaje que se envían a los modelos Azure OpenAI. En cambio, las funciones innatas se refieren a operaciones de codificación estandarizadas, a menudo guionizadas en lenguajes como C# o Python. Por ejemplo, en respuesta a "Describe el proceso de la fotosíntesis", un paso puede implicar una indicación que señale los mecanismos principales, mientras que otro aprovecha una función nativa para alinearlos en un formato de viñetas.
- Tuberías
-
Esencialmente, una serie de acciones iniciadas para abordar tu PETICIÓN. Los procesos pueden ser preestablecidos o creados dinámicamente por el planificador. Para una petición como "Escribe una narración sobre la evolución de la tecnología", el proceso podría abarcar etapas como el esbozo, la elaboración de una introducción, la articulación del contenido principal, la conclusión y el arreglo final.
- OBTENER
-
Indica una operación que puedes iniciar en el Núcleo Semántico para obtener detalles o datos de sus componentes. Podrías, por ejemplo, utilizar GET para echar un vistazo al banco de memoria del núcleo, explorando su reserva de conocimientos pasados.
Por último, pero no por ello menos importante, Semantic Kernel es uno de los proyectos internos de Microsoft para la IA generativa, un esfuerzo dirigido por el Dr. John Maeda, y la información está disponible en el repositorio oficial de GitHub. Aquí tienes algunos recursos adicionales si quieres seguir explorando el Núcleo Semántico :
-
Algunas palabras de los creadores(entrevista y vídeo)
LlamaIndex
LlamaIndex es un marco de datos para aplicaciones LLM. Es otra alternativa para tus aplicaciones de IA generativa con Azure OpenAI e incluye opciones empresariales y de código abierto. Ofrece simplicidad a través de un conjunto de escenarios RAG y capacidades de orquestación que combinan LLM y fuentes de datos internas, y tiene buena tracción entre la comunidad de desarrolladores . Dependiendo de cómo lo utilices, puede ser un equivalente, una alternativa o un complemento tanto de Semantic Kernel como de LangChain.
Marco Bot
El Microsoft Bot Framework es un clásico de la era bot anterior a ChatGPT. No se basa en Azure OpenAI Service, pero algunos usuarios lo están utilizando para integraciones en escenarios específicos (por ejemplo, para desplegar proyectos habilitados para GPT dentro de Microsoft Teams u otros canales de comunicación), e incluye un conjunto de herramientas y servicios destinados a ayudar a construir, probar, implementar y gestionar chatbots inteligentes:
- SDK del Marco Bot
-
Un kit modular y extensible de desarrollo de software que te permite construir bots en C#, JavaScript, Python o Java. El SDK proporciona bibliotecas y plantillas para escenarios bot comunes, como diálogos, gestión de estados, autenticación, etc.
- Bot Framework Compositor
-
Una herramienta de autoría visual de código abierto que te permite crear bots utilizando una interfaz gráfica y preguntas en lenguaje natural. Puedes utilizar el Compositor para diseñar diálogos, habilidades y respuestas para tu bot sin escribir código.
- Servicio Azure Bot
-
Un servicio en la nube que te permite alojar tu bot en Azure y conectarlo a varios canales y dispositivos, como Facebook Messenger, Microsoft Teams, Skype, chat web, etc. Azure Bot Service también proporciona funciones como análisis, depuración, seguridad, etc.
- Emulador Bot Framework
-
Una aplicación de escritorio que te permite probar y depurar tu bot local o remotamente. Puedes utilizar el Emulador para enviar y recibir mensajes de tu bot, inspeccionar el estado y las actividades del bot y acceder a los registros del bot.
- Conector Bot Framework
-
Un servicio que gestiona la comunicación entre tu bot y los canales o usuarios. El Conector define una API REST y un protocolo de actividad para que tu bot pueda enviar y recibir mensajes y eventos.
Como puedes ver, el Microsoft Bot Framework es una solución completa para escenarios bot clásicos (no LLM), con Azure Bot Service como parte de algunos de los Aceleradores Azure OpenAI oficiales. La especificación completa está disponible en su repositorio oficial de GitHub.
Power Platform, Microsoft Copilot y AI Builder
Además de los SDK y los marcos de desarrollo, hay otras piezas para implementaciones sin código y de bajo código. La suite Power Platform de herramientas y servicios ayuda a construir y gestionar aplicaciones de bajo código, automatizar flujos de trabajo, analizar datos y construir chatbots, conectándolos a cualquier función de Azure habilitada para IA, incluida Azure OpenAI . Microsoft Copilot/Power Virtual Agents (PVAs) es uno de los componentes de Power Platform que te permite crear chatbots inteligentes utilizando una interfaz gráfica de bajo código. Puedes utilizar PVAs para crear bots que puedan dar respuestas, realizar acciones e interactuar con los usuarios en lenguaje natural.
Hay tres formas diferentes en que estos componentes pueden interactuar con Azure OpenAI para aplicaciones de IA generativa sin código/con código bajo:
-
Utilizando un conector Azure OpenAI de Microsoft Copilot/PVAs, a través de las API Azure OpenAI. Hay disponible en línea un ejemplo de implementación para ese escenario. Se trata de una opción muy manual, pero sencilla de implementar.
-
Aprovechando la función de conversaciones Boost (también conocida como respuestas generativas) de PVA. Esta funcionalidad permite al bot encontrar y presentar información de múltiples fuentes. Las respuestas generativas pueden utilizarse como solución principal en el chatbot, o como solución de emergencia cuando otros temas de autor no puedan responder a la consulta de un usuario.
-
Además de estas dos aplicaciones tipo bot, también puedes aprovechar el componente AI Builder de Power Platform y su integración con Azure OpenAI para la automatización y las aplicaciones. Un vídeo de demostración en YouTube ilustra el proceso de implementación.
Estos bloques de desarrollo son tus herramientas para seguir evolucionando tus proyectos de IA generativa con Azure OpenAI. La lista probablemente crecerá con el tiempo, pero esta selección representa algunas de las piezas más relevantes para cualquier profesional de la IA generativa en la actualidad. Comprobemos ahora las bases de datos de vectores disponibles para implementaciones Azure-first, que habilitarán tus proyectos basados en incrustaciones con Azure OpenAI y te permitirán guardar los vectores generados.
Bases de datos y almacenes vectoriales
Como ya se ha dicho, las incrustaciones son una técnica que genera representaciones matemáticas de las distancias entre temas, y esa información es lo que llamamos un "vector." Han adquirido relevancia en el espacio de la IA generativa por su capacidad para conectar información relacionada lingüísticamente. Esto es relevante para los motores de búsqueda, la recuperación de documentos durante las sesiones de chat, etc. Para ello, nos basamos en un tipo específico de base de datos llamada base de datos vectorial, ya que es más adecuada para almacenar y gestionar este tipo de información.
La principal ventaja de una base de datos vectorial es que permite buscar y recuperar datos de forma rápida y precisa basándose en su distancia vectorial o similitud. Esto significa que, en lugar de utilizar los métodos tradicionales de consulta de bases de datos basados en coincidencias exactas o criterios predefinidos, puedes utilizar una base de datos vectorial para encontrar los datos más similares o relevantes basándote en su significado semántico o contextual. Las bases de datos vectoriales se utilizan para almacenar, buscar y recuperar vectores (generados previamente mediante técnicas de incrustación) que representan documentos, imágenes y otros tipos de datos utilizados en aplicaciones de aprendizaje automático.
Desde el punto de vista del Servicio Azure OpenAI, hay diferentes servicios nativos de Azure, o piezas de código abierto desplegables a través de Azure, que servirán como bases de datos vectoriales. Veámoslos ahora.
Búsqueda vectorial de Azure AI Search
La búsqueda vectorial es una función reciente de uno de los servicios existentes de Microsoft Azure AI, concretamente Azure AI Search. Esta pieza forma parte de la implementación de enfoques basados tanto en la incrustación como en la recuperación.
La búsqueda vectorial es una nueva capacidad para indexar, almacenar y recuperar incrustaciones vectoriales de un índice de búsqueda. Puedes utilizarla para habilitar casos típicos como la búsqueda por similitud, la búsqueda multimodal, los motores de recomendaciones o las implementaciones grounding/RAG. El principal diferenciador (según palabras de su creador) es la capacidad de permitir no sólo la búsqueda vectorial clásica, sino también "un enfoque de búsqueda híbrido que aprovecha tanto las puntuaciones vectoriales como las de palabras clave tradicionales [y] ofrece una calidad de los resultados de recuperación aún mejor que un único método de búsqueda", como se ilustra en la Figura 4-2.
Puedes aprovechar la documentación oficial de esta tecnología en plena evolución, así como las guías técnicas sobre cómo guardar tus vectores generados previamente y cómo realizar consultas vectoriales a través de la función de búsqueda vectorial de Azure AI Search.
Búsqueda vectorial de Cosmos DB
La búsqueda vectorial es una función vectorial similar de un servicio nativo de Azure diferente, en este caso Azure Cosmos DB, que es una base de datos NoSQL multitipo gestionada que admite varios tipos de formatos clave-valor, columna, gráfico y documento. Incluye opciones de código abierto como PostgreSQL, MongoDB y Apache Cassandra.
La función de búsqueda vectorial procede del producto Azure Cosmos DB para MongoDB vCore, que proporciona un servicio de base de datos totalmente gestionado compatible con MongoDB en Azure. La nueva funcionalidad se anunció en mayo de 2023, y es una alternativa a la opción Azure Cognitive Search. Se trata de una opción para entornos en los que MongoDB ya forma parte de la pila tecnológica. Puedes ver un repositorio adicional con muestras de implementación, e implementaciones con Semantic Kernel como orquestador.
Azure Databricks Búsqueda vectorial
Al igual que con Azure AI Search y Cosmos DB, existe otra excelente opción nativa con Azure Databricks. Ofrece la función Databricks Vector Search, que se integra directamente en el motor sin servidor y en Unity Catalog para la gobernanza de los datos y la IA. Es una buena opción si quieres aprovechar una plataforma nativa de extremo a extremo en Azure y conectar Azure OpenAI al almacén de vectores aprovechando diversos motores de orquestación (por ejemplo, LlamaIndex, LangChain).
Bases de datos Redis en Azure
Una opción alternativa de es Azure Cache para Redis, que es una solución para acelerar la capa de datos de las aplicaciones mediante el almacenamiento en caché en memoria basado en las bases de datos de código abierto Redis. Contiene RediSearch, que es un módulo de Redis que proporciona capacidades de búsqueda de texto completo. La versión para Azure está construida sobre el motor Redis y está diseñada para utilizarse con Redis Enterprise.
Al igual que las dos opciones anteriores, Azure Cache for Redis ha evolucionado e incorpora una nueva función de búsqueda vectorial que combina la potencia de una solución de almacenamiento en caché de alto rendimiento con la versatilidad de una base de datos vectorial, abriendo nuevas fronteras para desarrolladores y empresas. Al igual que con Cosmos DB, esta opción es estupenda para las empresas que ya utilizan Redis o Azure Cache para Redis como parte de su pila tecnológica.
Otras bases de datos relevantes (incluidas las de código abierto)
Hay otras opciones disponibles, incluidas soluciones nativas y de código abierto que puedes aprovechar a través de Azure:
- pgvector
-
Para el vector búsqueda de similitud en Cosmos DB para Post greSQL y Azure Database para PostgreSQL, las opciones nativas para PostgreSQL en Azure.
- Base de datos vectorial Elasticsearch
-
Disponible en Azure OpenAI Playground, directamente integrado en la función En tus datos.
- Neo4j
-
Te permite implementar patrones RAG con datos de gráficos. Una buena opción para aprovechar la potencia de los grafos de conocimiento, disponibles en Azure, incluyendo aceleradores para probarlo.
- Piña en Azure
-
Disponible en vista previa privada desde julio de 2023, permite la implementación de una base de datos vectorial Pinecone (comercial, totalmente gestionada) directamente a través de Azure. Aquí tienes un ejemplo de implementación con Azure OpenAI Service y la base de datos Pinecone.
- Milvus
-
Un proyecto de código abierto para bases de datos vectoriales, disponible en Azure. Es uno de los principales contendientes del código abierto, y un proyecto graduado de la Fundación Linux.
- Explorador de Datos Azure
-
Para la búsqueda de similitud vectorial , otra opción de almacenamiento vectorial para almacenar incrustaciones utilizando un servicio nativo de Azure. Aquí tienes una explicación paso a paso.
- Otras bases de datos vectoriales, para implementación mediante contenedores (no PaaS)
Además, y aunque no sea un almacén de vectores (sólo una biblioteca que crea un almacén de vectores en memoria), también puedes explorar Faiss, la biblioteca de Meta para la búsqueda eficiente de similitudes y la agrupación de vectores densos. Su herramienta Index Lookup a través de Azure ML Prompt Flow permite realizar consultas dentro de un almacén vectorial basado en Faiss proporcionado por el usuario.
Siéntete libre de explorar todas estas opciones de almacenes vectoriales y bases de datos, y otras de la lista del Libro de cocina de OpenAI. La forma más sencilla de empezar es aprovechando servicios nativos como Azure Cognitive Search o Azure Cosmos DB, pero la elección dependerá de tu enfoque de implementación. Echemos ahora un vistazo a algunos componentes tecnológicos adicionales que puedes necesitar para tus proyectos de IA generativa.
Elementos adicionales de Microsoft para la IA Generativa
Además de lo que ya hemos tratado en este capítulo, hay algunos servicios consolidados y proyectos de investigación en curso que podemos aprovechar para nuestros proyectos de Azure OpenAI. Profundicemos en algunos de ellos.
Azure AI Document Intelligence (antes Azure Form Recognizer) para OCR
Algunos de los escenarios de la base que analizamos anteriormente se basan en imágenes y documentos PDF como fuente principal de conocimiento, además del LLM base. Si queremos combinar el conocimiento del LLM con la información de esas imágenes y PDF, necesitamos extraer previamente la información de esos documentos, y transformarla desde la fuente a formatos relevantes como JSON o JSONL.
Para los PDF, la técnica clásica que extrae el texto del documento es el OCR (reconocimiento óptico de caracteres). Se trata de una técnica madura que reconoce cada carácter de un documento, para leerlo y extraer su información para su uso posterior.
Si queremos aprovechar los servicios nativos de Azure para realizar tareas de OCR, existe un servicio de IA de Azure llamado AI Document Intelligence (antes llamado Form Recognizer). Según el sitio web oficial, es "un servicio de IA que aplica aprendizaje automático avanzado para extraer texto, pares clave-valor, tablas y estructuras de documentos de forma automática y precisa". Se trata de un paso preliminar antes de realizar el ajuste fino, las incrustaciones, etc. Este artículo oficial explica el proceso de principio a fin que combina AI Document Intelligence y el servicio Azure OpenAI para lanzar directamente consultas contra el documento.
Como alternativa, el servicio Azure AI Search mencionado anteriormente incluye una habilidad cognitiva OCR similar que funciona tanto con imágenes (que contienen texto) como con documentos.
La casa del lago de Microsoft Fabric
Esta opción es imprescindible para cualquier empresa que quiera implantar su estrategia de datos basada en Microsoft Azure para una arquitectura de lago : Microsoft Fabric. Este recurso podría ser tema para todo un libro nuevo, pero debes saber que es una plataforma que ayuda a crear, utilizar y gobernar las perspectivas de los datos en toda una organización. Como puedes ver en la Figura 4-3, incluye herramientas de integración y ciencia de datos, lagos de datos, gobernanza y elementos de visualización. La relación entre Fabric y Azure OpenAI es bidireccional. Los datos de Microsoft Fabric pueden servir como fuente para los patrones RAG, pero también puedes aprovechar los modelos de Azure OpenAI dentro de las herramientas de datos de Microsoft Fabric. También contiene un Copiloto habilitado para GPT para el análisis de datos con lenguaje natural. Si quieres saber más, puedes explorar la documentación oficial, ejemplos concretos y la especificación de la API REST.
Microsoft Azure AI Habla
Otro servicio complementario de es Azure AI Speech, que incluye capacidades de conversión de voz a texto, de texto a voz, de traducción de voz y de reconocimiento de hablantes para funciones habilitadas por voz que puedes utilizar para tus aplicaciones habilitadas para Azure OpenAI. Esto es muy útil para interfaces accesibles en las que los usuarios pueden comunicarse con el motor de IA generativa mediante la voz. Además, en hay funcionalidades de avatar visual que te ayudarán a añadir caras virtuales a tus implementaciones.
Gestión de API de Microsoft Azure
Azure API Management es un elemento transversal que da soporte a todas tus Implementaciones de Azure OpenAI de nivel empresarial, permitiéndote gestionar, equilibrar y monitorizar tus diferentes suscripciones, modelos y claves de API. Es ideal para la gestión de costes y la devolución de cargos multidepartamento.
Proyectos en curso de Microsoft de código abierto e investigación
A continuación revisaremos una selección de proyectos de investigación en curso de Microsoft, todos ellos relacionados con el desarrollo de la IA generativa. La mayoría de ellos no son bloques de construcción listos para la producción, pero aunque no vayan a ser utilizados por los profesionales habituales de la IA generativa, puede que te interese echar un vistazo y ver los últimos desarrollos relacionados con la IA generativa:
- DeepSpeed
-
Una biblioteca de optimización del aprendizaje profundo desarrollada por Microsoft, diseñada para ayudar a los investigadores a entrenar modelos a gran escala de forma más rápida y eficiente, entre 10 y 100 veces más grandes de lo que era posible anteriormente. Además, DeepSpeed Chat es un marco de sistema abierto para permitir una experiencia de entrenamiento RLHF de extremo a extremo para generar modelos de IA generativos a todas las escalas.
- Tiempo de ejecución de ONNX
-
Un acelerador de aprendizaje automático de inferencia y entrenamiento multiplataforma, destinado a mejorar la experiencia del cliente (proporcionando una inferencia más rápida del modelo) y a reducir los costes de entrenamiento. Microsoft lo desarrolló en código abierto en 2019, y se basa en el formato abierto ONNX (codesarrollado por Microsoft con Meta y AWS). Incluye el proveedor de ejecución DirectML, un componente de ONNX Runtime para acelerar la inferencia de modelos ONNX.
- JARVIS/AbrazoGPT
-
Un proyecto para utilizar LLMs como interfaces para conectar diferentes modelos de IA de Hugging Face y otros para resolver complicadas tareas de IA.
- ToxiGen
-
Un gran conjunto de datos generado por máquinas para la detección de discursos de odio, de Microsoft.
- LLM-Augmentador
-
Un proyecto que pretende reducir las alucinaciones (es decir, que los LLM den respuestas incorrectas) utilizando conocimientos externos para los LLM y comentarios automatizados.
- AdaTest
-
Un proyecto de Microsoft para encontrar y corregir errores en modelos de lenguaje natural/aprendizaje automático mediante pruebas adaptativas.
- LoRA (Adaptación de bajo rango)
-
Ayuda a reducir el número de parámetros de entrenamiento para los LLM, haciendo que este proceso requiera menos almacenamiento e informática.
- Orientación
-
Un proyecto de Microsoft que permite controlar los modelos lingüísticos modernos de forma más eficaz y eficiente que los avisos o encadenamientos tradicionales.
- PromptCraft-Robótica
-
Un proyecto de investigación que pretende combinar ChatGPT y sistemas robóticos como drones, robots con cámara, etc.
- Gorila LLM
-
Una colaboración entre Microsoft Research y la Universidad de Berkeley, que han desarrollado un LLM conectado a API, lo que significa que puede proporcionar llamadas a API apropiadas para diferentes temas, incluidos PyTorch Hub, TensorFlow Hub, HuggingFace, Kubernetes, OpenAPI y otros. Un gran paso hacia un tipo de inteligencia más general.
- PowerProxy AI
-
Un proyecto que ayuda a monitorizar y procesar el tráfico hacia y desde los puntos finales del Servicio Azure OpenAI.
- AutoGen
-
Un marco que permite el desarrollo de aplicaciones LLM utilizando múltiples agentes que pueden conversar entre sí para resolver tareas.
- UniLM
-
Un repositorio de Microsoft que contiene una serie de artículos de investigación y enlaces a otros repositorios de GitHub relacionados con el LLM.
- LIDA
-
Una biblioteca de Microsoft para la generación automática de visualizaciones e infografías con LLMs.
- "Algoritmo de Pensamientos"
-
Un trabajo de investigación que explora posibles mejoras del LLM con técnicas de razonamiento similares a las humanas.
- PromptBench
- Promptbase
-
Una recopilación de buenas prácticas para obtener el mejor rendimiento de los LLM.
- AICI
-
Una Interfaz de Controlador de Inteligencia Artificial que limita y dirige la salida de los LLM en tiempo real.
- Oliva
-
Una herramienta de optimización de modelos consciente del hardware para compresión, optimización y compilación.
- Phi-3
-
Un revolucionario modelo de lenguaje reducido (SLM) de código abierto disponible a través de Azure AI Studio y Hugging Face.
- Orca/Orca-2
-
Un proyecto de investigación de Microsoft para especializar los SLM con datos específicos del dominio.
- PyRIT (Herramienta Python de Identificación de Riesgos para la IA generativa)
-
Un potente marco para permitir actividades de equipo rojo para tus aplicaciones de IA generativa con Azure OpenAI y otros LLM.
- LLMLingua
-
Un método de compresión rápida que acelera la inferencia LLM con una pérdida mínima de rendimiento, haciendo que los modelos sean más eficientes desde el punto de vista del consumo de tokens y de la latencia.
Dado que la IA generativa es un área en plena evolución, mi objetivo era proporcionarte una rápida visión general de lo que el sector está tratando de conseguir, además de las capacidades básicas de Azure OpenAI LLM que ya conoces.
Conclusión
Este capítulo es una continuación de lo que cubrimos en el Capítulo 3, e incluye un ecosistema de proyectos y tecnologías que puedes aprovechar para crear arquitecturas nativas de la nube muy avanzadas. La mayoría de ellos son adicionales y complementarios a Azure OpenAI y necesarios para aplicar algunos de los enfoques técnicos del Capítulo 3.
Se trata de un área en plena evolución, así que considera este capítulo como una caja de herramientas inicial para tu viaje como profesional de la IA generativa. El próximo capítulo se centrará en la noción de LLMOps (operaciones LLM, una evolución de los conceptos DevOps y MLOps), y en cómo manejar temas a nivel de producción como el rendimiento, la seguridad y la privacidad. Explorémoslo juntos.
Get Servicio Azure OpenAI para aplicaciones nativas en la nube now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.