Introducción a LLMOps: Construcción de mejores aplicaciones de IA
La aparición de ChatGPT de OpenAI ha catalizado una ola de interés en los modelos de lenguaje grandes (LLMs) entre las corporaciones. Las principales empresas tecnológicas y organizaciones de investigación están haciendo que los LLMs sean ahora más accesibles, esforzándose por mejorar la infraestructura de datos, ajustar modelos para aplicaciones personalizadas y supervisar problemas como las alucinaciones y los sesgos. Este creciente interés también ha provocado un aumento en la demanda de proveedores tecnológicos que dan soporte a las operaciones de modelos de lenguaje grandes (LLMOps). Estos proveedores ofrecen flujos de trabajo integrales para desarrollar, ajustar e implementar LLMs en entornos de producción.
En nuestro reciente Unstructured Data Meetup, Sage Elliott, ingeniero de aprendizaje automático en Union.ai, habló sobre la implementación y gestión de LLMs, ofreciendo valiosos conocimientos sobre las herramientas, estrategias y mejores prácticas necesarias para integrar estos modelos en aplicaciones empresariales. Su presentación fue especialmente útil para desarrolladores de IA y gerentes de operaciones, centrándose en garantizar la fiabilidad y escalabilidad de las aplicaciones de LLM en entornos de producción.
En esta publicación, recapitularemos las ideas clave de la charla de Sage y analizaremos el concepto y las metodologías de LLMOps.
<< Ver la repetición de la charla de Sage Elliott >>
¿Qué son las LLMOps?
LLMOps significa Operaciones de Modelos de Lenguaje Grandes, que son análogas a MLOps, pero específicamente para modelos de lenguaje grandes (LLMs). Para entender LLMOps, primero analicemos MLOps.
MLOps (Operaciones de Aprendizaje Automático) se refiere a las prácticas y herramientas utilizadas para implementar y mantener de manera eficiente modelos de aprendizaje automático en entornos de producción. Es una extensión de DevOps (Desarrollo y Operaciones), que integra el desarrollo y las operaciones de aplicaciones en un proceso cohesivo. Este enfoque garantiza que tanto el desarrollo como las operaciones se consideren conjuntamente, en lugar de funcionar en silos separados.
¿Qué son las MLOps?
¿Qué son las MLOps? Fuente de la imagen: https://ml-ops.org/content/MLOps-principles
Antes de que surgiera la metodología DevOps, los equipos de desarrollo se centraban en escribir aplicaciones o actualizaciones lo más rápido posible, mientras que los equipos de operaciones priorizaban la estabilidad, eficacia y experiencia de usuario de la aplicación. Este enfoque compartimentado a menudo generaba ineficiencias, lo que daba lugar a aplicaciones subóptimas con un desarrollo lento y actualizaciones poco frecuentes.
DevOps transforma este proceso al fomentar la colaboración entre los equipos de desarrollo y operaciones, garantizando un flujo de trabajo más optimizado y eficiente. MLOps extiende estos principios al aprendizaje automático, abordando los desafíos de implementar y mantener modelos de ML.
LLMOps se centra en el enfoque holístico de MLOps aplicando sus principios a las aplicaciones de modelos de lenguaje grandes (LLM). Se ocupa de todos los aspectos del desarrollo, implementación, mantenimiento y mejora continua de las aplicaciones de LLM.
La filosofía central de cooperación también es inherente a la definición de Sage de LLMOps: “Construir IA juntos”, que enfatiza la idea de que todas las unidades de negocio relevantes, por ejemplo, desarrollo, operaciones, gestión de productos, etc., deben trabajar juntas para producir las aplicaciones de LLM con mejor rendimiento de manera oportuna y rentable.
Integración continua y entrega/implementación continua (CI/CD)
Al igual que con DevOps, uno de los principios fundamentales de LLMOps es la Integración Continua/Implementación Continua (CI/CD): el proceso de automatizar el ciclo de vida del desarrollo de aplicaciones de LLM.
La integración continua (CI) es la práctica de tomar automáticamente las actualizaciones de una aplicación y fusionarlas con la rama principal, es decir, la versión de la aplicación LLM que se está ejecutando actualmente en producción. Cuando un desarrollador envía código a un repositorio, como GitHub, esta acción desencadena un flujo de trabajo automatizado que valida si las actualizaciones están listas para la integración. La CI fomenta los cambios frecuentes por parte de los equipos de desarrollo y ayuda a evitar conflictos de fusión de código.
La entrega/despliegue continuo (CD) se refiere al proceso de desplegar automáticamente cambios en la aplicación en un entorno de producción después de la integración y la validación. Este proceso incluye pruebas adicionales, como pruebas funcionales y de aceptación de usuario, y configuración de infraestructura.
Aunque la entrega continua y el despliegue continuo suelen usarse indistintamente, hay una diferencia entre ellos. La entrega continua se detiene antes del despliegue automático en producción, normalmente para revisiones finales humanas que garanticen el cumplimiento organizativo y normativo. Por el contrario, el despliegue continuo publica automáticamente las actualizaciones de la aplicación para los usuarios. Con este concepto en mente, el verdadero despliegue continuo es poco común, especialmente en el desarrollo de aplicaciones LLM, que aún se encuentra en una fase incipiente.
¿Quién debería usar LLMOps?
En resumen, cualquiera que desarrolle una aplicación LLM debería utilizar LLMOps en cierta medida.
Por un lado, LLMOps es esencial para aplicaciones de IA de nivel de producción, con la infraestructura exacta en función de las necesidades de la aplicación. En cambio, incluso un proyecto de IA sencillo y personal se beneficiará de implementar una canalización simple de LLMOps.
Integrar LLMOps en tu aplicación de IA ofrece los siguientes beneficios:
Gestión de recursos y escalabilidad: ser consciente del uso de tus recursos computacionales para ofrecer una experiencia de usuario óptima. Los LLM requieren grandes cantidades de memoria para ejecutarse eficazmente, por lo que poder determinar si tu hardware, es decir, las GPU, es suficiente para las necesidades de tu aplicación es crucial.
Actualización y mejoras del modelo: ser consciente de los fallos o deficiencias de un modelo en menos tiempo y actualizarlo en consecuencia.
Prácticas de IA éticas y responsables: ser consciente del propósito previsto de tu aplicación de IA y de las posibles consecuencias de su mal funcionamiento. Una de las principales preocupaciones sobre los LLM es su tendencia a “alucinar”, es decir, a proporcionar resultados inexactos o irrelevantes; este problema podría resultar catastrófico en una aplicación para dar consejos médicos, por ejemplo.
Ejemplo simplificado de canalización LLMOps
El mapa de mercado creado por CBInsights identifica más de 90 empresas en 12 categorías que ayudan a las empresas a gestionar proyectos LLM de principio a fin. Este panorama también muestra el tamaño del mercado de LLMOps.
Panorama del mercado de LLMOps
Panorama del mercado de LLMOps: más de 90 empresas en 12 categorías diferentes que ayudan a las empresas a llevar proyectos LLM de principio a fin.
Para que sea más fácil de entender, Sage creó una canalización simplificada de LLMOps.
Una canalización simplificada de LLMOps
Expliquemos los elementos de este diagrama:
Sys Prompt: La entrada del usuario pasa a formar parte del prompt del sistema y se introduce en el LLM.
Model: El LLM sustenta la aplicación para la generación de respuestas.
Guardrail: Los controles que has establecido para garantizar que el usuario solo introduzca entradas apropiadas, es decir, intentar que el modelo genere contenido dañino u ofensivo.
Almacén de datos: Bases de datos vectoriales como Milvus y Zilliz Cloud (el Milvus gestionado). Estas bases de datos proporcionan al LLM memoria a largo plazo e información contextual de consultas, y ayudan al LLM a generar resultados más precisos. Este componente es particularmente beneficioso en aplicaciones de Generación Aumentada por Recuperación (RAG).
Monitor: Las herramientas utilizadas para monitorear continuamente la aplicación LLM
Orquestador de CI/CD: Una plataforma que gestiona tu aplicación y ayuda a automatizar su integración y despliegue en entornos de producción.
Primeros pasos con LLMOps
Aunque LLMOps está cambiando rápidamente y los proveedores lanzan nuevas herramientas de LLMOps a diario, afortunadamente, los principios fundamentales de LLMOps siguen siendo los mismos.
Aquí tienes una filosofía sencilla de tres pasos para comenzar con LLMOps.
Envía el modelo
Monitorea el rendimiento del modelo
Mejora el modelo
Veamos cada paso con mayor detalle.
Envía tu modelo
Enviar el modelo se refiere a desplegar tu aplicación LLM en un entorno de producción lo antes posible. Este enfoque es esencial, ya que te permite obtener datos precisos de los usuarios que interactúan con el modelo y aprender rápidamente cómo ajustar tu aplicación LLM a las necesidades del usuario. Un ejemplo claro es una aplicación de chatbot, donde resulta mucho más útil obtener ejemplos de entradas reales de usuarios y lo que el modelo genera como respuesta que simplemente predecir entradas en un entorno de prueba.
HuggingFace Spaces es un recurso fantástico que agiliza el envío de tu modelo a producción. Es una plataforma de alojamiento para la mayoría de las aplicaciones de ML, que proporciona GPU en la nube de bajo costo para impulsar LLMs, lo que la hace ideal para la creación de prototipos. También puedes desplegar tu aplicación en un espacio privado, proporcionando acceso limitado a quienes quieres que prueben tu aplicación LLM, o hacerla pública para obtener comentarios de la amplia y activa comunidad de HuggingFace.
HuggingFace Spaces
HuggingFace Spaces
HuggingFace ofrece más que solo Spaces para el despliegue de modelos; proporciona un ecosistema integral para desarrollar y desplegar aplicaciones. En el centro de su oferta hay una vasta colección de más de 640.000 modelos de ML de código abierto, incluidos modelos de voz, visión por computadora y lenguaje. Además, HuggingFace proporciona varias bibliotecas que incluyen todos los componentes necesarios para crear aplicaciones LLM de extremo a extremo, junto con los conjuntos de datos necesarios para el entrenamiento.
Para ilustrar cómo puedes crear aplicaciones LLM con HuggingFace, veamos cómo descargar y entrenar un modelo utilizando sus bibliotecas Transformer (para acceder a los LLMs) y Datasets (para acceder a los datos de entrenamiento).
Primero, necesitas instalar las bibliotecas adecuadas:
pip install torch transformers datasets
A continuación, descargaremos el LLM que deseamos usar dentro de nuestra aplicación. Como se indicó anteriormente, HuggingFace cuenta con cientos de miles de modelos, cada uno proporcionando el código necesario para integrarse en tu aplicación. Por ejemplo, vamos a cargar el modelo Llama 3 de la siguiente manera:
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("meta-llama/Meta-Llama-3-8B-Instruct”)
A continuación, necesitamos cargar el conjunto de datos para ajustar el modelo. Para este ejemplo, usaremos uno de los muchos conjuntos de datos disponibles de HuggingFace. Sin embargo, si prefieres usar tus propios datos para un propósito específico de dominio o específico de tarea, simplemente necesitas reemplazar la ruta del archivo por la que apunta a tu carpeta de datos de entrenamiento.
from datasets import load_dataset
dataset = load_dataset("talkmap/telecom-conversation-corpus")
Después de cargar el conjunto de datos, necesitamos tokenizarlo convirtiéndolo en tokens de subpalabras que el LLM pueda procesar fácilmente. Debemos usar el tokenizador asociado con el modelo Llama 3 para garantizar que los datos se tokenicen de forma coherente con el proceso de preentrenamiento y mantengan los mismos tokens a índice, o "vocabulario". Puedes completar este paso con solo unas pocas líneas de código.
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B-Instruct")
# Define tokenizer function
def tokenize_function(examples):
return tokenizer(examples["text"], padding="True", truncation=True)
tokenized_dataset = dataset.map(tokenize_function, batched=True)
Ahora, necesitamos establecer las configuraciones de hiperparámetros para ajustar nuestro modelo usando un objeto TrainingArguments. Esta configuración ofrece 109 parámetros opcionales, lo que te da un control granular sobre el proceso de entrenamiento. Si lo prefieres, puedes confiar en la configuración predeterminada al no pasar ningún parámetro específico.
from transformers import TrainingArguments
training_args = TrainingArguments()
Por último, después de definir los elementos de nuestro modelo, solo necesitamos colocarlos dentro de un objeto de entrenamiento y llamar a la función de entrenamiento asociada de la siguiente manera:
Con los elementos de nuestro objeto trainer configurados, todo lo que queda es unirlo todo y llamar a la función train para ajustar nuestro modelo base Llama 3.
from transformers import Trainer
trainer = Trainer(
model=model,
dataset=dataset,
args=training_args,
)
trainer.train()
Y eso es todo: con solo unas pocas líneas de código, puedes descargar y entrenar un modelo de lenguaje que se puede usar para impulsar una aplicación de LLM.
Para ver un ejemplo más específico y detallado de cómo HuggingFace simplifica el desarrollo de aplicaciones de LLM, consulta nuestro tutorial sobre cómo crear una aplicación de QA con Milvus
Monitoreo y evaluación continuos
Una vez que implementes tu aplicación de LLM en un entorno de producción, es esencial monitorear tu aplicación por las siguientes razones:
Para determinar cómo se desempeña tu modelo en producción, ¿cumplen su caso de uso previsto? ¿Se alinea con las expectativas del usuario?
¿Cómo puedes mejorar el modelo?
Posteriormente, cuando realizas mejoras en el modelo, ¿producen las mejoras de rendimiento esperadas o se requieren cambios adicionales?
Los recursos computacionales que consume tu modelo: ¿Necesitas asignar más recursos, por ejemplo, GPUs, para que tu aplicación funcione mejor? Además, con los recursos que consume, ¿qué tan escalable es tu aplicación?
¿Cómo se desempeña después de cambios, por ejemplo, entrenamiento adicional, ajuste fino?
Las métricas de evaluación te ayudan a medir la capacidad de tu modelo para producir una salida correcta en respuesta al prompt de un usuario. Las métricas más utilizadas incluyen BLEU, ROUGE y BERTScore, que se describen a continuación.
| Métrica | Propósito |
| BLEU (Bilingual Evaluation Understudy) | Utilizado a menudo en traducción automática, mide la similitud entre el texto generado por el modelo y el texto de referencia basándose en la superposición de n-gramas (n palabras consecutivas) |
| ROUGE (Recall-Oriented Understudy for Gisting Evaluation) | Evalúa la calidad de los resúmenes generados por el modelo comparando la superposición de n-gramas, secuencias de palabras y pares de palabras con resúmenes de referencia. |
| Puntuación BERTScore (Bidirectional Encoder Representations from Transformers) | Mide la similitud textual aprovechando los embeddings de BERT para capturar el significado semántico; proporciona una evaluación más detallada que la superposición superficial de n-gramas, como con BLEU y ROUGE. |
Además, existen otras formas cualitativas de evaluar el rendimiento de tu aplicación de LLM.
Evaluar la precisión y relevancia de la salida: una respuesta puede estar bien elaborada, pero ¿qué tan útil es respecto al prompt de entrada? ¿Proporciona el valor que el usuario espera?
Determinar cómo usan los usuarios tu aplicación de LLM y si debes ajustarla finamente en consecuencia.
Evaluar el sentimiento de las respuestas: ¿responde la aplicación con el tono deseado?
¿Hay intentos de jailbreaking, es decir, de intentar hacer que el modelo produzca una salida que no debería? Por ejemplo, preguntar a un chatbot cómo fabricar armas caseras. Este enfoque determina si debes incluir barreras de protección en tu aplicación o mejorar las que ya hayas implementado.
Monitorear continuamente tus aplicaciones de LLM no es complicado. Hay muchas herramientas disponibles en el mercado para evaluar tus aplicaciones impulsadas por LLM, incluidas LangKit, como destacó Sage en su charla, Ragas, Continuous Eval, TruLens-Eval, LlamaIndex, Phoenix, DeepEval, LangSmith y OpenAI Evals.
Para obtener más información sobre la evaluación de aplicaciones de LLM, consulta nuestro artículo sobre evaluación de RAG.
Mejorar tu modelo
Utilizando las métricas y los comentarios del monitoreo de tu modelo, puedes realizar nuevas iteraciones de tus LLM en mucho menos tiempo. Una forma potente y eficiente de implementar mejoras es integrar un orquestador de MLOps como Flyte en tu pipeline. Un orquestador de MLOps simplifica la gestión de tu aplicación de LLM de las siguientes maneras:
Pruebas automatizadas: ejecutar pruebas automáticamente cada vez que se realizan cambios.
Compilaciones de software: compilar el código y prepararlo para el despliegue.
Despliegue: mover la versión más reciente de la aplicación a producción.
Monitoreo e informes: hacer seguimiento del estado de las compilaciones, pruebas y despliegues, y proporcionar comentarios.
Un orquestador gestiona tu aplicación mediante flujos de trabajo, que son una serie de pasos necesarios para ejecutar una tarea u objetivo específico. Cada paso dentro de un flujo de trabajo puede ejecutarse, probarse y verificarse individualmente, mientras el orquestador gestiona la secuencia en la que se realiza cada tarea. Algunos ejemplos de flujos de trabajo incluyen entrenar o ajustar un LLM, desplegar una aplicación en un entorno o integrar nuevas funcionalidades en una aplicación que se ejecuta en producción.
Los flujos de trabajo optimizan el desarrollo y el mantenimiento de aplicaciones de LLM de varias maneras. En primer lugar, los flujos de trabajo son reproducibles, por lo que un flujo de trabajo existente puede copiarse en diferentes pipelines, lo que ahorra una cantidad considerable de tiempo y esfuerzo. Del mismo modo, los flujos de trabajo pueden versionarse, lo que garantiza que puedas revertir un pipeline a cómo estaba en un momento determinado.
En realidad, un orquestador de MLOps es más adecuado para aplicaciones de LLM de nivel empresarial desarrolladas por varias personas o equipos, y probablemente sea excesivo para una aplicación más pequeña. En lugar de un orquestador, llevar tu modelo a producción, monitorear su uso y actualizar manualmente tu aplicación de acuerdo con los conocimientos que hayas obtenido es un enfoque más práctico.
Resumen
Entonces, para recapitular la charla de Sage Elliot sobre LLMOps:
LLMOps se refiere a una colección de filosofías y tecnologías que facilitan el desarrollo, despliegue, mantenimiento y mejora eficientes de aplicaciones de LLM.
LLMOps también puede definirse como "Construir IA juntos", lo que significa que, al igual que DevOps (de donde se deriva), diferentes equipos dentro de una organización colaboran para crear aplicaciones de LLM en lugar de operar en silos con objetivos contrapuestos.
A pesar de parecer abrumador, puedes comenzar con LLMOps con un proceso de tres pasos:
Enviar: despliega un modelo en producción lo antes posible para obtener comentarios de usuarios reales
Monitorear: utiliza métricas para evaluar su rendimiento
Mejorar: utiliza los conocimientos obtenidos del monitoreo para mejorar tu aplicación.
HuggingFace es un recurso excelente para desplegar rápidamente prototipos en producción. La biblioteca Transformer te permite descargar y ajustar modelos fácilmente, la biblioteca Datasets proporciona los datos para ajustarlo, y Spaces proporciona una plataforma de alojamiento para desplegarlo rápidamente en producción.
Flyte es un ejemplo de un orquestador de MLOps que simplifica la gestión de tu aplicación de LLM.
Recursos adicionales
Te animamos a explorar los recursos a continuación para profundizar tu comprensión de LLMOps y aprender cómo aplicarlo a tu proceso de desarrollo de aplicaciones de IA.
Para obtener más información sobre bases de datos vectoriales, modelos de lenguaje grandes (LLMs) y otros conceptos clave de IA y aprendizaje automático, visita la base de conocimientos Zilliz Learn .
Sigue leyendo

Zilliz Cloud Audit Logs Goes GA: Security, Compliance, and Transparency at Scale
Zilliz Cloud Audit Logs are now GA, giving enterprises real-time visibility, compliance-ready trails, and stronger security across AWS, GCP, and Azure.

Introducing Zilliz MCP Server: Natural Language Access to Your Vector Database
Developers can easily manage and query vector databases with natural language via Zilliz MCP Server in AI-native environments.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.


