[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:es":3,"public-menus:all":38,"post:mlops-vs-llmops-what-changes-when-the-model-is-an-llm:es":205,"related:post:mlops-vs-llmops-what-changes-when-the-model-is-an-llm:es:1":3404},{"statusCode":4,"data":5,"message":37},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":10,"robotsIndex":14,"socialLinks":10,"reservedSlugs":10,"seoPolicy":15},"stajic","es","de","https:\u002F\u002Fstajic.de",null,"Stajic Platform","\u002FLogo_Planet.svg","Stajic Portal",true,{"branding":16,"relatedContent":17,"crossDomainLinks":18},{"logoUrl":12},{"enabled":14},[19,22,25,28,31,34],{"url":20,"label":21,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Ffigure.rocks","figure.rocks",{"url":23,"label":24,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":26,"label":27,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.com","bazify.com",{"url":29,"label":30,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.de","bazify.de",{"url":32,"label":33,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.at","bazify.at",{"url":35,"label":36,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.ba","bazify.ba","Portal settings resolved",[39,45],{"id":40,"name":41,"location":42,"isActive":14,"isDefault":43,"items":44},1,"main-navigation","header",false,[],{"id":46,"name":47,"location":48,"isActive":14,"isDefault":14,"items":49},4,"main-menu","sidebar",[50,66,79,93,103,118,133],{"id":51,"title":52,"url":60,"target":61,"icon":62,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":64,"portfolioId":10,"children":65},"item-18",{"de":53,"en":54,"es":55,"fr":56,"it":54,"ru":57,"sr":58,"zh":59},"Startseite","Home","Inicio","Accueil","Главная","Почетна","首页","\u002Ffull-stack-web-developer-munich-performance-seo-and-maintainable-builds","_self","i-lucide-home","page",111,[],{"id":67,"title":68,"url":75,"target":61,"icon":76,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":77,"portfolioId":10,"children":78},"item-22",{"de":69,"en":69,"es":70,"fr":69,"it":71,"ru":72,"sr":73,"zh":74},"Vision","Visión","Visione","Видение","Визија","想象","\u002Fueber-uns-webdesign-muenchen-webaplikation","i-lucide-eye",113,[],{"id":80,"title":81,"url":89,"target":61,"icon":90,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":91,"portfolioId":10,"children":92},"item-19",{"de":82,"en":83,"es":84,"fr":83,"it":85,"ru":86,"sr":87,"zh":88},"Leistungen","Services","Servicios","Servizi","Услуги","Услуге","服务","\u002Fservices-dienstleistungen-muenchen","i-lucide-wrench",116,[],{"id":94,"title":95,"url":99,"target":61,"icon":100,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":101,"portfolioId":10,"children":102},"item-23",{"de":96,"en":96,"es":96,"fr":96,"it":96,"ru":97,"sr":97,"zh":98},"Blog","Блог","博客","\u002Fblog","i-lucide-book-open",112,[],{"id":104,"title":105,"url":114,"target":61,"icon":115,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":116,"portfolioId":10,"children":117},"item-32",{"de":106,"en":107,"es":108,"fr":109,"it":110,"ru":111,"sr":112,"zh":113},"Neue Technologien","New Technologies","Nuevas tecnologías","Nouvelles technologies","Nuove tecnologie","Новые технологии","Нове технологије","新技术！","\u002Fneue-webtechnologien","i-lucide-sparkles",122,[],{"id":119,"title":120,"url":129,"target":61,"icon":130,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":131,"portfolioId":10,"children":132},"item-20",{"de":121,"en":122,"es":123,"fr":124,"it":125,"ru":126,"sr":127,"zh":128},"Kontakt","Contact us!","Contacto","Contact","Contatto","Контакт","Контактирајте нас","联系我们！","\u002Fcontact","i-lucide-mail",115,[],{"id":134,"title":135,"url":144,"target":61,"icon":145,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":147},"item-21",{"de":136,"en":137,"es":138,"fr":139,"it":140,"ru":141,"sr":142,"zh":143},"Unsere Arbeit","Our Work","Nuestro trabajo","Nos réalisations","I nostri lavori","Наши работы","Наши радови","文件夹","\u002Fportfolio","i-lucide-briefcase",114,[148,161,175,181,193],{"id":149,"title":150,"url":144,"target":61,"icon":159,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":160},"item-24",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Alle Projekte","All Projects","Todos los proyectos","Tous les projets","Tutti i progetti","Все проекты","Сви пројекти","所有项目","i-lucide-grid-3x3",[],{"id":162,"title":163,"url":171,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":174},"item-29",{"de":164,"en":165,"es":166,"fr":167,"it":168,"ru":169,"sr":170,"zh":143},"Local Roots, Global Reach","Local Roots - Global Reach","Empresa local ","Entreprise locale","Azienda locale","Местная компания","Локално предузеће глобално тржиште","\u002Fportfolio\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business","i-lucide-folder","custom",[],{"id":176,"title":177,"url":179,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":180},"item-28",{"de":178,"en":178,"es":178,"fr":178,"it":178,"ru":178,"sr":178,"zh":178},"Solr Suggester","\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung",[],{"id":182,"title":183,"url":191,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":192},"item-27",{"de":184,"en":185,"es":186,"fr":187,"it":188,"ru":189,"sr":190,"zh":185},"Firmenwebseite SEO","Company Website SEO","Sitio web corporativo SEO","Site web d’entreprise SEO","Sito web aziendale SEO","Корпоративный сайт SEO","Пословна веб-страница SEO","\u002Fportfolio\u002Fseo-sem-branding-mobile-webseite-muenchen",[],{"id":194,"title":195,"url":203,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":204},"item-31",{"de":196,"en":197,"es":198,"fr":199,"it":200,"ru":201,"sr":202,"zh":197},"Digitalisierungsportal","Digitalization Portal","Portal de digitalización","Portail de numérisation","Portale di digitalizzazione","Портал цифровизации","Портал за дигитализацију","\u002Fportfolio\u002Fdigitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods",[],{"statusCode":4,"data":206,"message":3403},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":1559,"featuredImage":1560,"featuredImageAlt":1561,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":1562,"publishedAt":1563,"createdAt":1564,"updatedAt":1565,"seoLocalePaths":1566,"categories":1575,"author":1592,"translations":1597},"493","MLOps vs LLMOps: qué cambia cuando el modelo es un LLM","mlops-vs-llmops-what-changes-when-the-model-is-an-llm","\u003Cp>MLOps es la disciplina de ingeniería para desarrollar, desplegar, versionar y operar sistemas de aprendizaje automático de forma fiable; LLMOps extiende esa disciplina a las aplicaciones construidas en torno a grandes modelos de lenguaje, donde el comportamiento en producción depende no solo de un artefacto de modelo, sino también de prompts, contexto, recuperación, versiones de proveedor\u002Fmodelo, llamadas a herramientas, controles de seguridad y pipelines de evaluación. LLMOps no reemplaza a MLOps. Cambia la unidad operativa de \"un modelo más un pipeline de servicio\" hacia \"una aplicación LLM en evolución cuyo comportamiento emerge de varios componentes que cambian de forma independiente\".\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--info my-6 rounded-xl border p-5 border-blue-300 bg-blue-50 dark:border-blue-900 dark:bg-blue-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Respuesta directa\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>MLOps opera sistemas de ML. LLMOps opera aplicaciones LLM.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>El MLOps clásico suele centrarse en pipelines de datos, entrenamiento, validación, registro de modelos, despliegue, drift y reentrenamiento. LLMOps mantiene esas disciplinas donde son relevantes, pero a menudo añade versionado de prompts\u002Fcontexto, abstracción de modelo\u002Fproveedor, índices RAG, trazas de agentes\u002Fherramientas, evaluaciones semánticas, pruebas de seguridad, monitoreo de tokens\u002Fcostos y pruebas de regresión a través de instantáneas de modelos que cambian rápidamente.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">LLMOps no es solo gestión de prompts\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Una aplicación LLM en producción puede fallar incluso cuando el prompt no ha cambiado: el proveedor puede cambiar una instantánea del modelo, un corpus RAG puede quedar obsoleto, un reranker puede degradarse, los permisos de herramientas pueden cambiar, el ensamblado de contexto puede omitir evidencia, o un agente puede tomar una trayectoria incorrecta. Por lo tanto, LLMOps tiene que observar y versionar el sistema alrededor del modelo, no solo el texto del prompt.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Frontera terminológica\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>LLMOps\u003C\u002Fstrong>, \u003Cstrong>GenAIOps\u003C\u002Fstrong> y términos relacionados son etiquetas de ingeniería ampliamente usadas, pero no constituyen un único estándar formal universal con un solo ciclo de vida canónico. Microsoft describe actualmente GenAIOps como &quot;a veces llamado LLMOps&quot;, mientras que MLflow agrupa herramientas operativas en torno a agentes y aplicaciones LLM. Este artículo usa LLMOps como un término de arquitectura práctico para operar sistemas en producción cuyo comportamiento depende materialmente de los LLM.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Nota de fuentes actuales — 8 de octubre de 2026\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">La superficie operativa está cambiando rápidamente. OpenAI recomienda actualmente fijar instantáneas de modelos y ejecutar evaluaciones porque el comportamiento del prompting puede cambiar entre instantáneas, y varias superficies antiguas de prompts\u002Fevaluación específicas de plataformas están siendo retiradas en 2026. La lección arquitectónica estable es mantener prompts, pruebas y evaluaciones portables y versionados con la aplicación en lugar de depender del modelo de objetos del panel de un único proveedor.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Contenido\">\u003Cstrong class=\"editorjs-toc__title\">Contenido\u003C\u002Fstrong>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-0\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-7\" class=\"editorjs-toc__link\">Qué significa realmente MLOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-11\" class=\"editorjs-toc__link\">Qué cambia cuando el modelo es un LLM\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-15\" class=\"editorjs-toc__link\">El ejemplo más simple\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-20\" class=\"editorjs-toc__link\">Dónde se detiene el ejemplo simple\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-24\" class=\"editorjs-toc__link\">MLOps vs LLMOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-26\" class=\"editorjs-toc__link\">LLMOps extiende MLOps en lugar de reemplazarlo\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-30\" class=\"editorjs-toc__link\">¿Qué debe versionarse en LLMOps?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-32\" class=\"editorjs-toc__link\">Las instantáneas de modelo se convierten en dependencias de lanzamiento\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-36\" class=\"editorjs-toc__link\">El ciclo de vida del proveedor se convierte en parte de las operaciones\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-40\" class=\"editorjs-toc__link\">Los prompts se comportan como código de producción\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-44\" class=\"editorjs-toc__link\">La ingeniería de contexto se convierte en una preocupación operativa\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-48\" class=\"editorjs-toc__link\">RAG crea su propio ciclo de vida operativo\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-53\" class=\"editorjs-toc__link\">Las evaluaciones reemplazan “me parece bien” con evidencia de lanzamiento\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-58\" class=\"editorjs-toc__link\">LLM como juez es útil pero no es la verdad absoluta\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-62\" class=\"editorjs-toc__link\">El trazado se vuelve más importante que los registros de endpoint\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-66\" class=\"editorjs-toc__link\">Los agentes expanden LLMOps hacia operaciones en tiempo de ejecución\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-71\" class=\"editorjs-toc__link\">Los tokens, las llamadas a modelos y el contexto se convierten en variables de costo\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-75\" class=\"editorjs-toc__link\">El almacenamiento en caché se vuelve semántico, no solo técnico\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-79\" class=\"editorjs-toc__link\">La seguridad y los permisos se convierten en criterios de lanzamiento\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-83\" class=\"editorjs-toc__link\">Cómo se ve CI en LLMOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-85\" class=\"editorjs-toc__link\">Cómo se ve CD en LLMOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-89\" class=\"editorjs-toc__link\">El entrenamiento continuo se vuelve opcional; la evaluación continua se vuelve central\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-93\" class=\"editorjs-toc__link\">¿Qué se debe monitorear en producción?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-95\" class=\"editorjs-toc__link\">Las trazas de producción pueden convertirse en datos de evaluación\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-99\" class=\"editorjs-toc__link\">La reproducibilidad se vuelve condicional en lugar de exacta\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-103\" class=\"editorjs-toc__link\">El linaje se expande del linaje del modelo al linaje de la aplicación\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-107\" class=\"editorjs-toc__link\">El enrutamiento multiproveedor y de modelos crea política operativa\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-111\" class=\"editorjs-toc__link\">Evidencia de implementación original\u003C\u002Fa>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-1\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-112\" class=\"editorjs-toc__link\">Aaasaasa AI Client: proveedor, modelo y tiempo de ejecución son objetos operativos separados\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-117\" class=\"editorjs-toc__link\">Source of Truth Research Engine: el estado de la aplicación LLM se extiende más allá del modelo\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-123\" class=\"editorjs-toc__link\">Modos de fallo comunes de LLMOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-125\" class=\"editorjs-toc__link\">Conceptos erróneos comunes\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-127\" class=\"editorjs-toc__link\">Una secuencia práctica de diseño de LLMOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-129\" class=\"editorjs-toc__link\">Lista de verificación de arquitectura LLMOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-131\" class=\"editorjs-toc__link\">Casos límite y limitaciones\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-137\" class=\"editorjs-toc__link\">¿Qué cambiaría esta respuesta?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-141\" class=\"editorjs-toc__link\">Conocimiento canónico relacionado\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-147\" class=\"editorjs-toc__link\">Preguntas frecuentes\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-149\" class=\"editorjs-toc__link\">Glosario\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-151\" class=\"editorjs-toc__link\">Conclusión\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-155\" class=\"editorjs-toc__link\">Fuentes primarias y documentación actual\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Ch2 id=\"section-7\">Qué significa realmente MLOps\u003C\u002Fh2>\n\u003Cp>MLOps aplica disciplina de ingeniería de software y operaciones a los sistemas de aprendizaje automático. El desafío de producción es más amplio que entrenar un modelo: la recolección de datos, la validación de datos, la experimentación, la reproducibilidad, la evaluación de modelos, el despliegue, la infraestructura y el monitoreo tienen que funcionar juntos.\u003C\u002Fp>\n\u003Cp>La guía de arquitectura MLOps de Google enmarca la disciplina en torno a la integración continua, la entrega continua y el entrenamiento continuo. CI valida no solo el código sino también los datos, los esquemas y los modelos; CD despliega pipelines de ML y servicios de predicción; CT puede reentrenar y redesplegar modelos a medida que cambian los datos o las implementaciones.\u003C\u002Fp>\n\u003Cp>La guía de AWS añade las mismas preocupaciones operativas desde otro ángulo: el linaje de modelos, la trazabilidad de modelo\u002Fversión, el monitoreo de drift y el monitoreo de calidad en producción son partes centrales para mantener los sistemas de ML fiables después del despliegue.\u003C\u002Fp>\n\u003Ch2 id=\"section-11\">Qué cambia cuando el modelo es un LLM\u003C\u002Fh2>\n\u003Cp>Los grandes modelos de lenguaje cambian el problema de producción porque la aplicación a menudo no posee el ciclo de vida completo de entrenamiento del modelo. Un equipo puede llamar a una API de modelo alojado, ejecutar un modelo abierto localmente, cambiar entre proveedores o usar varios modelos para diferentes tareas.\u003C\u002Fp>\n\u003Cp>Por lo tanto, el modelo es solo una dependencia versionada dentro de un sistema de comportamiento más amplio. Los prompts, los resultados de recuperación, el orden del contexto, las herramientas, la instantánea del modelo, la configuración de temperatura\u002Frazonamiento, los filtros de seguridad y la orquestación en tiempo de ejecución pueden cambiar la salida.\u003C\u002Fp>\n\u003Cp>Esto crea una pregunta operativa más amplia: ¿qué combinación de modelo, contexto, datos, prompt, herramientas y tiempo de ejecución produjo este comportamiento? LLMOps existe para hacer que esa pregunta sea respondible y la respuesta lo suficientemente reproducible para el trabajo de ingeniería.\u003C\u002Fp>\n\u003Ch2 id=\"section-15\">El ejemplo más simple\u003C\u002Fh2>\n\u003Cp>Supongamos que una aplicación responde preguntas sobre políticas internas.\u003C\u002Fp>\n\u003Cp>En un enfoque de ML clásico, podrías versionar un clasificador entrenado, desplegarlo y monitorear la calidad de las predicciones. En una aplicación LLM, la respuesta podría depender de una instantánea de modelo alojado, un prompt de sistema, un modelo de embeddings, un índice vectorial, filtros de recuperación, un reranker y el contexto final seleccionado.\u003C\u002Fp>\n\u003Cp>Cambiar cualquiera de esos componentes puede cambiar la respuesta final aunque el endpoint de la aplicación y la pregunta del usuario permanezcan idénticos.\u003C\u002Fp>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Una ruta típica de lanzamiento de LLMOps\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Cambiar un componente\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Cambian el prompt, el modelo, el proveedor, la configuración de recuperación, el esquema de herramientas o el código de la aplicación.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Ejecutar pruebas deterministas\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Validar esquemas, permisos, contratos de herramientas, filtros de recuperación y comportamiento de la aplicación.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Ejecutar evaluaciones de comportamiento\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Comparar salidas representativas, calidad de recuperación y trayectorias de agentes\u002Fherramientas con los criterios de aceptación.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Comparar costo y latencia\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Medir uso de tokens, llamadas al modelo, sobrecarga de recuperación\u002Fherramientas y latencia de respuesta.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Desplegar versión controlada\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Publicar la configuración concreta de la aplicación con las versiones de modelo\u002Fproveedor registradas.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Rastrear comportamiento en producción\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Capturar los spans relevantes de modelo, recuperación, herramientas y tiempo de ejecución.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">7\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">7. Evaluar trazas de producción\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Muestrear ejecuciones reales para calidad, fundamentación, seguridad y éxito de la tarea.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">8\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">8. Revertir o iterar\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Usar evidencia de regresión y señales operativas para decidir el siguiente lanzamiento.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-20\">Dónde se detiene el ejemplo simple\u003C\u002Fh2>\n\u003Cp>Algunos sistemas LLM todavía entrenan o ajustan sus propios modelos, por lo que las prácticas tradicionales de MLOps, como los pipelines de entrenamiento, el registro de modelos y el linaje de datos, siguen siendo directamente relevantes.\u003C\u002Fp>\n\u003Cp>Otros sistemas usan solo API externas de modelos fundacionales y nunca ejecutan entrenamiento continuo. Su principal carga operativa es la evaluación de aplicaciones, la gestión de cambios de modelo\u002Fproveedor, el versionado de prompts\u002Fcontexto, la calidad de recuperación y la observabilidad.\u003C\u002Fp>\n\u003Cp>Por lo tanto, no existe un único “pipeline de LLMOps” universal. El ciclo de vida exacto depende de si entrenas, ajustas, autoalojas, recuperas conocimiento externo, ejecutas agentes o dependes de API de modelos gestionados.\u003C\u002Fp>\n\u003Ch2 id=\"section-24\">MLOps vs LLMOps\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Qué permanece igual y qué se expande\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">MLOps\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">LLMOps\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Unidad operativa principal\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Propiedad del modelo\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Cambio típico\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Evaluación\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Monitoreo en producción\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Entrenamiento continuo\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Artefactos versionados\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Objetivo de reversión\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-26\">LLMOps extiende MLOps en lugar de reemplazarlo\u003C\u002Fh2>\n\u003Cp>Los principios operativos fundamentales no desaparecen: el control de código fuente, CI\u002FCD, la reproducibilidad, el linaje, los controles de despliegue, el monitoreo, la reversión y los criterios de aceptación medibles siguen siendo esenciales.\u003C\u002Fp>\n\u003Cp>La extensión es que ahora más artefactos que definen el comportamiento se encuentran fuera de los pesos del modelo. Un modelo fundacional gestionado puede cambiar su comportamiento mediante actualizaciones de instantáneas, mientras que la salida de la aplicación puede cambiar mediante cambios en el prompt o la recuperación sin ningún reentrenamiento del modelo.\u003C\u002Fp>\n\u003Cp>Por eso la jerarquía útil suele ser DevOps → MLOps → LLMOps\u002FGenAIOps como preocupaciones operativas cada vez más especializadas, no tres prácticas mutuamente excluyentes.\u003C\u002Fp>\n\u003Ch2 id=\"section-30\">¿Qué debe versionarse en LLMOps?\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Artefacto\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Por qué importa\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Código de la aplicación\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Define la orquestación, la validación, los reintentos y el comportamiento del negocio\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Familia de modelo + instantánea\u002Fversión\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Diferentes instantáneas pueden producir comportamientos diferentes\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Proveedor \u002F endpoint\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambia el flujo de datos, la latencia, los límites, los precios y la disponibilidad\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Código de prompt\u002Finstrucción\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambia el comportamiento del modelo incluso con el mismo modelo\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Parámetros de generación\u002Frazonamiento\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pueden alterar el determinismo, la latencia, la profundidad y el costo\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Conjunto de datos de evaluación\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Define contra qué se prueba que algo es “suficientemente bueno”\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Puntuadores \u002F evaluadores\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Definen cómo se mide la calidad\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modelo de embeddings\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambia la representación vectorial y el comportamiento de recuperación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Configuración de chunking\u002Fíndice\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambia qué se puede recuperar\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Reranker \u002F fusión de recuperación\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambia el orden de los resultados\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Esquemas de herramientas\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambian qué puede solicitar el modelo y cómo\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Perfil de permisos\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambia qué acciones de herramientas pueden ejecutarse realmente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Reglas de ensamblaje de contexto\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambian qué evidencia y estado llegan al modelo\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Configuración de seguridad\u002Fguardarraíles\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambia el comportamiento permitido o bloqueado\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-32\">Las instantáneas de modelo se convierten en dependencias de lanzamiento\u003C\u002Fh2>\n\u003Cp>Con los LLM alojados, el equipo puede no controlar el entrenamiento del modelo, pero sí controla qué modelo o instantánea llama la aplicación.\u003C\u002Fp>\n\u003Cp>La guía actual de la API de OpenAI advierte explícitamente que el comportamiento de los prompts puede cambiar entre instantáneas del modelo y recomienda fijar las aplicaciones en producción a instantáneas específicas cuando la consistencia importa, y luego ejecutar evaluaciones al actualizar.\u003C\u002Fp>\n\u003Cp>La consecuencia operativa es directa: las actualizaciones de modelo deben tratarse como lanzamientos de la aplicación, no como mantenimiento invisible de infraestructura.\u003C\u002Fp>\n\u003Ch2 id=\"section-36\">El ciclo de vida del proveedor se convierte en parte de las operaciones\u003C\u002Fh2>\n\u003Cp>Las aplicaciones LLM a menudo dependen de los límites de tasa del proveedor, los calendarios de descontinuación, la semántica de la API, los límites de contexto, las reglas de manejo de datos y los precios.\u003C\u002Fp>\n\u003Cp>Un proveedor puede descontinuar un modelo mientras el código de tu aplicación permanece sin cambios. El calendario de descontinuación actual de OpenAI, por ejemplo, incluye fechas de retiro en 2026 para instantáneas de modelos más antiguos y superficies de plataforma.\u003C\u002Fp>\n\u003Cp>Por lo tanto, LLMOps necesita seguimiento del ciclo de vida del proveedor, pruebas de migración y decisiones de respaldo además del monitoreo de la calidad del modelo.\u003C\u002Fp>\n\u003Ch2 id=\"section-40\">Los prompts se comportan como código de producción\u003C\u002Fh2>\n\u003Cp>Los prompts son configuración de comportamiento ejecutable. Pequeños cambios pueden alterar la calidad de la salida, la selección de herramientas y la interpretación de políticas.\u003C\u002Fp>\n\u003Cp>La guía actual de OpenAI recomienda almacenar los prompts de producción en el código de la aplicación, revisar los cambios de prompts mediante solicitudes de extracción, usar entradas tipadas y cubrir los cambios con pruebas y verificaciones de evaluación.\u003C\u002Fp>\n\u003Cp>Eso hace que el versionado de prompts se parezca menos a editar texto de marketing y más a cambiar una función cuya salida es probabilística y dependiente del modelo.\u003C\u002Fp>\n\u003Ch2 id=\"section-44\">La ingeniería de contexto se convierte en una preocupación operativa\u003C\u002Fh2>\n\u003Cp>El modelo de producción rara vez recibe solo un prompt estático. Puede recibir historial de conversación, documentos recuperados, salidas de herramientas, memoria, estado actual de la aplicación e instrucciones de política.\u003C\u002Fp>\n\u003Cp>Por lo tanto, LLMOps debe observar el ensamblaje del contexto: qué evidencia se seleccionó, qué versión de estado estaba vigente, si ocurrió truncamiento y si las instrucciones importantes sobrevivieron a la compactación.\u003C\u002Fp>\n\u003Cp>Una regresión del modelo y una regresión del contexto pueden verse idénticas en la respuesta final. Rastrear la ruta real del contexto es lo que permite al equipo separarlas.\u003C\u002Fp>\n\u003Ch2 id=\"section-48\">RAG crea su propio ciclo de vida operativo\u003C\u002Fh2>\n\u003Cp>Un sistema RAG introduce una segunda canalización de producción junto a la inferencia del modelo: ingesta, extracción, fragmentación, metadatos, incrustaciones, índices, recuperación, reordenamiento y selección de contexto.\u003C\u002Fp>\n\u003Cp>El corpus de conocimiento puede cambiar todos los días incluso cuando el modelo y el prompt no lo hacen. Por lo tanto, un índice obsoleto o un filtro de metadatos roto pueden degradar la calidad de las respuestas sin ninguna deriva del modelo.\u003C\u002Fp>\n\u003Cp>LLMOps para RAG debe rastrear la versión del corpus\u002Fíndice, el modelo de incrustación, la política de fragmentación, la configuración de recuperación, la frescura de las fuentes y las métricas de recuperación por separado de la calidad de generación.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fes\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method\" class=\"flex flex-col sm:flex-row gap-4 rounded-xl border border-gray-200 dark:border-gray-700 p-4 transition hover:border-primary-500\">\u003Cdiv class=\"min-w-0 flex-1\">\u003Cstrong class=\"block text-lg text-gray-900 dark:text-gray-100\">RAG falló — pero ¿qué capa falló realmente? Un método de diagnóstico\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Una canalización LLM de producción necesita observabilidad separada para la cobertura de fuentes, la recuperación, el ranking, el ensamblaje de contexto y la generación.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Lee el método de diagnóstico de RAG →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-53\">Las evaluaciones reemplazan “me parece bien” con evidencia de lanzamiento\u003C\u002Fh2>\n\u003Cp>Las salidas generativas a menudo son abiertas, por lo que las pruebas de coincidencia exacta son insuficientes para muchas tareas. LLMOps agrega conjuntos de datos de evaluación y calificadores que pueden medir el éxito de la tarea, la corrección, la seguridad, la fundamentación, el estilo o criterios de aceptación específicos del dominio.\u003C\u002Fp>\n\u003Cp>La pila de evaluación GenAI actual de MLflow admite conjuntos de datos de evaluación versionados, comparaciones de prompts\u002Fmodelos, evaluadores personalizados y evaluación sobre trazas completas.\u003C\u002Fp>\n\u003Cp>La práctica más sólida es el desarrollo guiado por evaluación: definir casos representativos y criterios de aceptación antes o junto con los cambios, y luego comparar las versiones contra la misma evidencia.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--success my-6 rounded-xl border p-5 border-emerald-300 bg-emerald-50 dark:border-emerald-900 dark:bg-emerald-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Los cambios de comportamiento necesitan pruebas de comportamiento\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Un despliegue no debe considerarse equivalente solo porque el contrato de la API siga funcionando. Si el prompt, el modelo, la recuperación o las herramientas cambiaron, la suite de regresión de comportamiento debe ejecutarse de nuevo.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-58\">LLM como juez es útil pero no es la verdad absoluta\u003C\u002Fh2>\n\u003Cp>Los jueces LLM pueden escalar la evaluación de cualidades que son costosas de codificar como aserciones deterministas, como la relevancia, el tono o la fundamentación.\u003C\u002Fp>\n\u003Cp>Sin embargo, el juez es otro modelo con su propio sesgo, versión y prompt. Por lo tanto, la configuración del juez debe versionarse y calibrarse contra casos de referencia humanos o deterministas cuando las consecuencias importan.\u003C\u002Fp>\n\u003Cp>Una evaluación de producción puede combinar comprobaciones deterministas, métricas basadas en referencia, jueces modelo y revisión humana en lugar de pedirle a una sola métrica que represente todas las dimensiones de calidad.\u003C\u002Fp>\n\u003Ch2 id=\"section-62\">El trazado se vuelve más importante que los registros de endpoint\u003C\u002Fh2>\n\u003Cp>Los registros de API tradicionales pueden decirte que una solicitud tardó dos segundos y devolvió HTTP 200. No pueden decirte qué fragmentos recuperados se seleccionaron, qué herramienta llamó el agente o qué span del modelo consumió la mayor cantidad de tokens.\u003C\u002Fp>\n\u003Cp>El trazado GenAI actual de MLflow captura prompts, recuperaciones, llamadas a herramientas y spans de la aplicación, y su flujo de evaluación de producción puede puntuar información de trayectoria intermedia en lugar de solo el texto final.\u003C\u002Fp>\n\u003Cp>Este es un cambio importante en LLMOps: la observabilidad sigue el grafo de comportamiento de la aplicación, no solo el endpoint de servicio.\u003C\u002Fp>\n\u003Ch2 id=\"section-66\">Los agentes expanden LLMOps hacia operaciones en tiempo de ejecución\u003C\u002Fh2>\n\u003Cp>Una aplicación agéntica puede realizar varias llamadas a modelos, invocaciones de herramientas y transiciones de estado antes de producir un resultado.\u003C\u002Fp>\n\u003Cp>Por lo tanto, operar agentes requiere recuentos de pasos, trazas de llamadas a herramientas, denegaciones de permisos, reintentos, detección de bucles, aprobaciones humanas y estado final verificado, además de las métricas ordinarias de latencia del modelo y tokens.\u003C\u002Fp>\n\u003Cp>Una respuesta final correcta puede ocultar una mala trayectoria, por lo que la evaluación de agentes debe inspeccionar tanto el camino como el resultado.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fes\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough\" class=\"flex flex-col sm:flex-row gap-4 rounded-xl border border-gray-200 dark:border-gray-700 p-4 transition hover:border-primary-500\">\u003Cdiv class=\"min-w-0 flex-1\">\u003Cstrong class=\"block text-lg text-gray-900 dark:text-gray-100\">Fiabilidad de agentes de IA: por qué la respuesta final no es suficiente\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Por qué la evaluación de producción de agentes debe incluir llamadas a herramientas, transiciones de estado, aprobaciones y capacidad de recuperación.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Leer el artículo sobre fiabilidad de agentes →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-71\">Los tokens, las llamadas a modelos y el contexto se convierten en variables de costo\u003C\u002Fh2>\n\u003Cp>El costo de inferencia de ML clásico a menudo está dominado por la infraestructura de servicio o el cómputo por predicción. Las aplicaciones LLM pueden añadir precios de tokens del proveedor, llamadas repetidas de agentes, llamadas de embedding, reranking y sobrecarga de herramientas\u002Ftiempo de ejecución.\u003C\u002Fp>\n\u003Cp>Por lo tanto, el costo debe atribuirse a la tarea o a la traza, no solo a un extremo. Un flujo de trabajo que realiza ocho llamadas ocultas al modelo puede ser funcionalmente correcto pero operativamente inaceptable.\u003C\u002Fp>\n\u003Cp>La latencia se comporta de la misma manera: la latencia del modelo, la recuperación, el reranking y las herramientas externas se combinan en la latencia de extremo a extremo del usuario.\u003C\u002Fp>\n\u003Ch2 id=\"section-75\">El almacenamiento en caché se vuelve semántico, no solo técnico\u003C\u002Fh2>\n\u003Cp>Los sistemas LLM pueden almacenar en caché prompts, embeddings, resultados de recuperación o respuestas completas, pero la clave de caché debe reflejar la semántica que puede cambiar el resultado.\u003C\u002Fp>\n\u003Cp>Una caché de respuestas que ignora la versión del modelo, el inquilino, los permisos o la frescura de la fuente puede devolver una respuesta técnicamente válida pero semánticamente inválida.\u003C\u002Fp>\n\u003Cp>Por lo tanto, LLMOps trata la invalidación de caché como parte del versionado de modelo\u002Fcontexto\u002Fdatos en lugar de solo una optimización de infraestructura.\u003C\u002Fp>\n\u003Ch2 id=\"section-79\">La seguridad y los permisos se convierten en criterios de lanzamiento\u003C\u002Fh2>\n\u003Cp>Los sistemas generativos pueden producir texto ilimitado y los agentes pueden desencadenar acciones externas. Por lo tanto, las pruebas de seguridad se acercan más al CI\u002FCD ordinario que en muchos sistemas clásicos de ML predictivo.\u003C\u002Fp>\n\u003Cp>Las verificaciones de permisos, las pruebas de inyección de prompts, las pruebas de aislamiento de inquilinos y las aprobaciones de efectos secundarios deben ser pruebas de regresión reproducibles donde existan esos riesgos.\u003C\u002Fp>\n\u003Cp>El modelo puede sugerir una operación, pero el tiempo de ejecución aún debe hacer cumplir la autorización. LLMOps posee la evidencia de que esos controles siguen funcionando después de cambios en el modelo, el prompt o las herramientas.\u003C\u002Fp>\n\u003Ch2 id=\"section-83\">Cómo se ve CI en LLMOps\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Capa de CI\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ejemplos de verificaciones\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Código\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pruebas unitarias, verificación de tipos, validación de esquemas\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Prompts\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Renderizado de plantillas, variables requeridas, texto de políticas, revisión de instantáneas\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modelos\u002Fproveedores\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Compatibilidad, esquema de salida, pruebas de capacidad y regresión\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">RAG\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fixtures de fragmentación, pruebas de filtros, Recall@k, regresión del reranker\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Herramientas\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pruebas de esquema de entrada\u002Fsalida, pruebas de permisos, pruebas de idempotencia\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Agentes\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fixtures de trayectoria, límites de bucle, pruebas de transferencia\u002Fselección de herramientas\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Seguridad\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Inyección de prompts, herramientas no autorizadas, pruebas negativas entre inquilinos\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Evaluaciones de comportamiento\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Éxito de la tarea, corrección, fundamentación, seguridad, criterios de dominio\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Operacional\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Latencia, presupuestos de tokens\u002Fcosto, comportamiento de tiempo de espera\u002Ffallback\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-85\">Cómo se ve CD en LLMOps\u003C\u002Fh2>\n\u003Cp>Un lanzamiento a producción puede no desplegar ningún artefacto de modelo nuevo. Puede simplemente enviar un nuevo prompt, configuración de recuperación, conjunto de herramientas o mapeo de proveedores.\u003C\u002Fp>\n\u003Cp>Por lo tanto, el paquete de lanzamiento debe identificar la configuración completa que define el comportamiento en lugar de solo la imagen del contenedor de la aplicación.\u003C\u002Fp>\n\u003Cp>Los indicadores de características, el despliegue por etapas, la evaluación en sombra, el tráfico canario y la reversión son útiles porque el comportamiento del LLM puede degradarse de maneras que las pruebas de contrato estáticas no detectan.\u003C\u002Fp>\n\u003Ch2 id=\"section-89\">El entrenamiento continuo se vuelve opcional; la evaluación continua se vuelve central\u003C\u002Fh2>\n\u003Cp>El MLOps tradicional a menudo enfatiza el entrenamiento continuo cuando nuevos datos o la deriva justifican el reentrenamiento.\u003C\u002Fp>\n\u003Cp>Muchas aplicaciones de LLM nunca entrenan el modelo fundacional. Su bucle continuo equivalente es la evaluación continua: recopilar fallos y casos de producción representativos, añadirlos a los conjuntos de datos de evaluación, probar cambios candidatos de prompt\u002Fmodelo\u002Frecuperación y volver a desplegar solo cuando la evidencia mejore.\u003C\u002Fp>\n\u003Cp>El ajuste fino puede reintroducir un ciclo de vida de entrenamiento, pero debería situarse dentro del mismo proceso más amplio de evaluación y lanzamiento.\u003C\u002Fp>\n\u003Ch2 id=\"section-93\">¿Qué se debe monitorear en producción?\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Clase de señal\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ejemplos\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Salud del sistema\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Errores, tiempos de espera, disponibilidad del endpoint\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modelo\u002Fproveedor\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">ID del modelo, snapshot, límites de tasa, errores del proveedor\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Latencia\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Extremo a extremo, modelo, recuperación, herramientas y spans del reranker\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Costo\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Tokens de entrada\u002Fsalida, embeddings, gasto en herramientas\u002FAPI\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Calidad\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Éxito de tarea muestreado, corrección, relevancia, fundamentación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">RAG\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Proxies de recall de recuperación, recuperación vacía, fuentes obsoletas, cobertura de citas\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Agentes\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Selección de herramientas, reintentos, bucles, transferencias, frecuencia de aprobación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Seguridad\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Acciones denegadas, indicadores de inyección de prompt, fallos de límite de inquilino\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Comentarios del usuario\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Correcciones, abandono, escalado, calificaciones explícitas\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Deriva por cambios\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cambios de proveedor\u002Fmodelo\u002Fconfiguración respecto al lanzamiento aprobado\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-95\">Las trazas de producción pueden convertirse en datos de evaluación\u003C\u002Fh2>\n\u003Cp>Uno de los patrones modernos de LLMOps más útiles es convertir trazas de producción muestreadas en registros de evaluación.\u003C\u002Fp>\n\u003Cp>MLflow actualmente admite la recuperación de trazas de producción y la puntuación no solo de salidas sino también de spans intermedios como trayectorias de recuperación o llamadas a herramientas.\u003C\u002Fp>\n\u003Cp>Esto cierra el bucle entre observabilidad y desarrollo: los fallos reales pueden convertirse en casos de regresión en el próximo lanzamiento en lugar de desaparecer dentro de los registros.\u003C\u002Fp>\n\u003Ch2 id=\"section-99\">La reproducibilidad se vuelve condicional en lugar de exacta\u003C\u002Fh2>\n\u003Cp>La reproducibilidad clásica de ML a menudo busca recrear un modelo a partir de código versionado, datos, entorno y parámetros de entrenamiento.\u003C\u002Fp>\n\u003Cp>Las aplicaciones de LLM alojadas no siempre pueden reproducir una salida idéntica token por token porque la generación es probabilística y los proveedores pueden controlar la infraestructura.\u003C\u002Fp>\n\u003Cp>Por lo tanto, LLMOps busca una reproducibilidad conductual: registrar suficiente modelo\u002Fproveedor\u002Fversión, prompt, entradas de contexto, estado de recuperación y configuración de tiempo de ejecución para reproducir las condiciones y validar el comportamiento dentro de tolerancias esperadas.\u003C\u002Fp>\n\u003Ch2 id=\"section-103\">El linaje se expande del linaje del modelo al linaje de la aplicación\u003C\u002Fh2>\n\u003Cp>La guía de MLOps de AWS trata el linaje del modelo como el historial de artefactos de código, datos, modelo e infraestructura necesarios para el diagnóstico y la reproducibilidad.\u003C\u002Fp>\n\u003Cp>Para las aplicaciones de LLM, el linaje debería conectar además prompts, conjuntos de datos de evaluación, versiones de recuperación\u002Fíndice, esquemas de herramientas, configuración de agente\u002Ftiempo de ejecución y snapshots de proveedor\u002Fmodelo.\u003C\u002Fp>\n\u003Cp>La pregunta objetivo se convierte en: ¿Qué configuración exacta de la aplicación produjo esta traza?\u003C\u002Fp>\n\u003Ch2 id=\"section-107\">El enrutamiento multiproveedor y de modelos crea política operativa\u003C\u002Fh2>\n\u003Cp>Una vez que una aplicación puede usar varios proveedores o modelos locales, el enrutamiento se convierte en una política operativa en lugar de una simple cadena de modelo.\u003C\u002Fp>\n\u003Cp>El enrutamiento puede depender de la capacidad, la latencia, el costo, la privacidad, la longitud del contexto, la disponibilidad, el soporte de herramientas o la localidad. Un respaldo puede preservar el tiempo de actividad mientras cambia la calidad de la respuesta o los supuestos de procesamiento de datos.\u003C\u002Fp>\n\u003Cp>Por lo tanto, LLMOps debería registrar qué ruta se seleccionó realmente y evaluar las rutas de forma independiente en lugar de tratar cada punto final compatible como conductualmente intercambiable.\u003C\u002Fp>\n\u003Ch2 id=\"section-111\">Evidencia de implementación original\u003C\u002Fh2>\n\u003Ch3 id=\"section-112\">Aaasaasa AI Client: proveedor, modelo y tiempo de ejecución son objetos operativos separados\u003C\u002Fh3>\n\u003Cp>Aaasaasa AI Client separa agente\u002Fcliente, proveedor, modelo, ubicación de tiempo de ejecución y permisos. Su AI Hub admite Ollama, LM Studio\u002Fpuntos finales compatibles con OpenAI y otros protocolos de proveedores en lugar de tratar “el modelo” como una única configuración global.\u003C\u002Fp>\n\u003Cp>La implementación incluye descubrimiento dinámico de modelos locales, transmisión, salida de pensamiento y controles explícitos de calentamiento\u002Fcarga y descarga de Ollama. Esa es evidencia operativa de que el servicio local de LLM introduce preocupaciones sobre el ciclo de vida de los recursos más allá de un nombre de modelo de API.\u003C\u002Fp>\n\u003Cp>El estado del proveedor se consulta a través de adaptadores de proveedor, y los tipos de conexión distinguen rutas locales, API en la nube, respaldadas por cuenta, agente remoto y cliente web. Estas son dimensiones operativas concretas que una plataforma consciente de LLM tiene que exponer.\u003C\u002Fp>\n\u003Cp>El repositorio también preserva un límite importante: un tiempo de ejecución local no es automáticamente inferencia local. La ubicación del proveedor\u002Fmodelo\u002Ftiempo de ejecución son preocupaciones versionadas o configurables que afectan la privacidad, la latencia, el costo y la disponibilidad.\u003C\u002Fp>\n\u003Ch3 id=\"section-117\">Source of Truth Research Engine: el estado de la aplicación LLM se extiende más allá del modelo\u003C\u002Fh3>\n\u003Cp>Source of Truth Research Engine combina búsqueda léxica, incrustaciones opcionales, instantáneas de fuentes, identidad SHA-256, afirmaciones, procedencia y seguimiento de contradicciones en torno a la investigación asistida por modelos locales.\u003C\u002Fp>\n\u003Cp>Esta es evidencia útil de LLMOps porque cambiar solo el modelo no define el sistema de investigación. La recuperación, la adquisición de fuentes, la clasificación de evidencia y la procedencia persistente son artefactos operativos independientes.\u003C\u002Fp>\n\u003Cp>La implementación trata deliberadamente la similitud semántica como descubrimiento en lugar de evidencia, mostrando por qué la observabilidad de LLMOps debería distinguir el comportamiento de recuperación de la validez de las afirmaciones.\u003C\u002Fp>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Implementación observada\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Lección de LLMOps\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Múltiples protocolos de proveedor\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La identidad del proveedor es una dependencia operativa\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Descubrimiento dinámico de modelos\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Los modelos disponibles pueden cambiar independientemente del código de la aplicación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Controles de carga\u002Fdescarga de Ollama\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Los modelos locales tienen ciclo de vida de memoria\u002Frecursos\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Adaptadores de salud\u002Festado del proveedor\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La disponibilidad del modelo necesita observabilidad en tiempo de ejecución\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ubicación separada de tiempo de ejecución e inferencia\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La topología de despliegue no es un único booleano “local\u002Fnube”\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Permisos centrales\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La capacidad del modelo y la autoridad de las herramientas deben permanecer separadas\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Canalización de recuperación léxica + semántica\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La configuración de recuperación es parte del comportamiento de la aplicación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Persistencia de fuente\u002Fprocedencia\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">El estado operativo y la evidencia viven fuera de los pesos del modelo\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Límite de evidencia\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Estos proyectos demuestran operaciones multiproveedor\u002Fmodelo local, separación de permisos, infraestructura de recuperación y persistencia de evidencia. No se presentan como una plataforma comercial completa de LLMOps ni como prueba de tráfico de producción a gran escala.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-123\">Modos de fallo comunes de LLMOps\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Modo de fallo\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Qué salió mal realmente\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Alias de modelo actualizado silenciosamente\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">El comportamiento cambió sin una versión controlada\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Prompt cambiado sin evaluaciones\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La regresión de comportamiento pasó las pruebas unitarias normales\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Índice RAG obsoleto\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Se culpó al modelo de generación por un fallo de recuperación\u002Fdatos\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Solo se registra la respuesta final\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La causa raíz en la trayectoria de recuperación\u002Fherramienta\u002Fcontexto es invisible\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">El respaldo del proveedor es silencioso\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un modelo\u002Fruta de datos diferente cambia el comportamiento sin atribución\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Costo de tokens rastreado globalmente\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Los flujos de trabajo costosos no se pueden localizar\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modelo juez cambiado\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Las puntuaciones de evaluación se desvían sin cambios en la aplicación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Los rastros de producción nunca se convierten en pruebas\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Los fallos conocidos regresan repetidamente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">El modelo local permanece cargado indefinidamente\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La presión de VRAM\u002Frecursos se convierte en inestabilidad operativa\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Permisos codificados solo en el prompt\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">El comportamiento del modelo se confunde con autorización\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Una puntuación de evaluación controla todo\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Diferentes dimensiones de calidad se colapsan en un número engañoso\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Existe el registro de modelos pero no las versiones de prompt\u002Fíndice\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">El linaje de la aplicación permanece incompleto\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-125\">Conceptos erróneos comunes\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Concepto erróneo\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Corrección\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“LLMOps reemplaza a MLOps.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">LLMOps extiende los principios de MLOps al comportamiento de aplicaciones específicas de LLM.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“LLMOps es ingeniería de prompts.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Los prompts son un artefacto entre modelos, proveedores, contexto, recuperación, herramientas, evaluaciones y tiempo de ejecución.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Las API alojadas eliminan el trabajo de operaciones.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Eliminan parte del trabajo de servicio\u002Fentrenamiento de modelos, pero agregan gestión del ciclo de vida del proveedor, versiones y dependencias.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Si la API es estable, la aplicación es estable.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">El comportamiento del modelo y las instantáneas de proveedor\u002Fmodelo pueden cambiar independientemente del esquema de la API.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“RAG es solo preprocesamiento de datos.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">En producción tiene su propio ciclo de vida de ingesta, índice, recuperación y frescura.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Las salidas de LLM no se pueden probar.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Se pueden evaluar con criterios deterministas, de referencia, de juez y humanos.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Los jueces LLM son verdad fundamental objetiva.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Son evaluadores basados en modelos que también requieren calibración y control de versiones.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Un modelo local elimina LLMOps.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">El servicio local agrega archivos de modelo, VRAM, carga\u002Fdescarga, salud del tiempo de ejecución y preocupaciones de actualización.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Observabilidad significa conteos de tokens.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La observabilidad útil sigue prompts, recuperaciones, herramientas, tramos de modelo y resultados.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“El entrenamiento continuo es obligatorio.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Muchas aplicaciones LLM usan evaluación continua sin entrenar el modelo base.\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-127\">Una secuencia práctica de diseño de LLMOps\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Operar el sistema completo que produce comportamiento\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Definir la unidad de comportamiento\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Enumera cada componente que pueda cambiar materialmente la salida: modelo, prompt, recuperación, herramientas, contexto y política.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Establecer el linaje de la aplicación\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Versiona el código, el modelo\u002Fproveedor, los prompts, los conjuntos de datos de evaluación, la configuración de recuperación y los contratos de herramientas.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Construir conjuntos de datos de evaluación representativos\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Usa casos esperados de éxito\u002Ffallo del diseño y de producción.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Separar las pruebas deterministas de las de comportamiento\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Mantén las aserciones de esquema\u002Fseguridad distintas de la evaluación semántica de la salida.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Trazar la ejecución de extremo a extremo\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Instrumenta el modelo, la recuperación, el reranking, las herramientas y los tramos del agente\u002Fruntime.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Definir las puertas de liberación\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Establece umbrales de calidad, seguridad, latencia y coste.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">7\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">7. Fijar o registrar explícitamente las versiones del modelo\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Trata los cambios de modelo\u002Fproveedor como eventos de liberación.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">8\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">8. Desplegar progresivamente\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Usa flags, canarios o despliegue por etapas cuando las consecuencias lo justifiquen.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">9\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">9. Evaluar las trazas de producción\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Mide el comportamiento real de las tareas e identifica fallos recurrentes.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">10\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">10. Alimentar los fallos de vuelta a los conjuntos de datos de evaluación\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Convierte incidentes y correcciones en cobertura de regresión permanente.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">11\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">11. Monitorizar los ciclos de vida del proveedor y de los datos\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Sigue las deprecaciones, la frescura del índice, los cambios en las fuentes y la disponibilidad del runtime.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">12\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">12. Retirar limpiamente las versiones obsoletas\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Elimina prompts\u002Fmodelos\u002Fíndices\u002Fcredenciales antiguos tras las decisiones de migración y retención de evidencia.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-129\">Lista de verificación de arquitectura LLMOps\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Pregunta\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Evidencia esperada\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Qué modelo\u002Fproveedor\u002Fversión atendió la solicitud?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Identidad del modelo rastreable\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Qué prompt\u002Finstrucciones estaban activos?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Código\u002Fconfiguración de la aplicación versionados\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Qué contexto llegó al modelo?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Traza de contexto\u002Frecuperación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Qué versión del corpus\u002Fíndice se usó?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Linaje de recuperación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Qué herramientas estaban disponibles y se llamaron?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Esquema de herramientas + traza de trayectoria\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Qué permisos se aplicaron?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Registro de autorización en tiempo de ejecución\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Cómo se mide la calidad?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Conjunto de datos de evaluación versionado + evaluadores\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Cómo se prueban las actualizaciones del modelo?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Suite de regresión de comportamiento\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Cómo se muestrea la calidad en producción?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Proceso de evaluación de trazas\u002Fretroalimentación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Se puede reproducir aproximadamente un fallo?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Linaje de modelo\u002Fcontexto\u002Fproveedor\u002Faplicación\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Dónde se gasta el coste?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Atribución de modelo\u002Fherramientas\u002Frecuperación por traza\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Qué desencadena la reversión?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Umbral definido de calidad\u002Fseguridad\u002Fcoste\u002Fdisponibilidad\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Cómo se gestionan las deprecaciones del proveedor?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Proceso de migración\u002Ffallback\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">¿Cómo se operan los modelos locales?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Controles de salud, recursos, carga\u002Fdescarga y versión\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-131\">Casos límite y limitaciones\u003C\u002Fh2>\n\u003Cp>Una aplicación simple que llama a un único modelo alojado fijo sin recuperación ni herramientas puede necesitar solo LLMOps ligero: código de prompt versionado, evaluaciones, fijación del modelo, trazabilidad básica y monitorización del proveedor.\u003C\u002Fp>\n\u003Cp>Un modelo autoalojado con ajuste fino puede requerir casi todo el stack clásico de MLOps más la evaluación de aplicaciones específica de LLM, lo que hace que la frontera entre MLOps y LLMOps sea intencionadamente difusa.\u003C\u002Fp>\n\u003Cp>Una plataforma de agentes puede tener operaciones mínimas de entrenamiento de modelos pero operaciones sustanciales en tiempo de ejecución porque los fallos ocurren en la selección de herramientas, el estado y la orquestación.\u003C\u002Fp>\n\u003Cp>Un sistema con mucho RAG puede estar dominado operativamente por la ingesta de documentos y la calidad de la recuperación más que por el servicio del modelo.\u003C\u002Fp>\n\u003Cp>La terminología seguirá evolucionando. La pregunta arquitectónica duradera no es qué etiqueta de “Ops” gana, sino qué artefactos producen comportamiento y, por tanto, deben ser versionados, evaluados, observados y gobernados.\u003C\u002Fp>\n\u003Ch2 id=\"section-137\">¿Qué cambiaría esta respuesta?\u003C\u002Fh2>\n\u003Cp>Si los proveedores de modelos fundacionales estandarizaran un comportamiento del modelo perfectamente estable y un soporte de versiones a largo plazo, la gestión de proveedores\u002Fsnapshots podría volverse menos significativa operativamente.\u003C\u002Fp>\n\u003Cp>Si las aplicaciones asumieran cada vez más el ajuste fino o el entrenamiento, las preocupaciones clásicas de MLOps volverían a ser más centrales.\u003C\u002Fp>\n\u003Cp>El principio operativo seguiría siendo: cada componente que pueda cambiar materialmente el comportamiento en producción pertenece al linaje, las pruebas, la observabilidad y el control de cambios.\u003C\u002Fp>\n\u003Ch2 id=\"section-141\">Conocimiento canónico relacionado\u003C\u002Fh2>\n\u003Cp>LLMOps se sitúa por debajo de AI Governance y Enterprise AI Architecture: la gobernanza define qué cambios requieren evidencia y aprobación, mientras que LLMOps proporciona la maquinaria operativa para versionar, evaluar, desplegar y observar esos cambios.\u003C\u002Fp>\n\u003Cp>Context Engineering y RAG son subdominios operativos dentro de muchas aplicaciones LLM porque el contexto y la recuperación pueden cambiar el comportamiento independientemente del modelo.\u003C\u002Fp>\n\u003Cp>Agentic AI extiende LLMOps aún más hacia las operaciones de trayectoria, permisos y runtime de herramientas.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fes\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context\" class=\"flex flex-col sm:flex-row gap-4 rounded-xl border border-gray-200 dark:border-gray-700 p-4 transition hover:border-primary-500\">\u003Cdiv class=\"min-w-0 flex-1\">\u003Cstrong class=\"block text-lg text-gray-900 dark:text-gray-100\">La memoria de los agentes de IA no es RAG: cómo separar memoria, recuperación, estado y contexto\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">La fiabilidad operativa mejora cuando la memoria, la recuperación, el estado de la aplicación y el contexto del modelo permanecen como objetos de ciclo de vida separados.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Leer el artículo de arquitectura →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fes\u002Fblog\u002Fthe-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers\" class=\"flex flex-col sm:flex-row gap-4 rounded-xl border border-gray-200 dark:border-gray-700 p-4 transition hover:border-primary-500\">\u003Cdiv class=\"min-w-0 flex-1\">\u003Cstrong class=\"block text-lg text-gray-900 dark:text-gray-100\">El límite de validez de la respuesta: la capa que falta entre la relevancia y las respuestas fiables de IA\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">La evaluación de LLMOps debe preservar la versión, el alcance y las condiciones de evidencia bajo las cuales una respuesta sigue estando respaldada.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Leer El límite de validez de la respuesta →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-147\">Preguntas frecuentes\u003C\u002Fh2>\n\u003Csection class=\"editorjs-faq my-6 rounded-xl border border-gray-200 p-5 dark:border-gray-700\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Preguntas frecuentes sobre MLOps vs LLMOps\u003C\u002Fh3>\u003Cdiv id=\"faq1\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">¿Cuál es la diferencia entre MLOps y LLMOps?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">MLOps opera sistemas de aprendizaje automático a lo largo de datos, entrenamiento, despliegue y monitoreo. LLMOps extiende esas prácticas a aplicaciones LLM donde los prompts, el contexto, la recuperación, los proveedores, las herramientas y las evaluaciones también afectan materialmente el comportamiento.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq2\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">¿LLMOps reemplaza a MLOps?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. LLMOps reutiliza disciplinas de MLOps como CI\u002FCD, linaje, evaluación, despliegue y monitoreo, y añade preocupaciones operativas específicas de LLM.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq3\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">¿Las aplicaciones LLM necesitan entrenamiento continuo?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No necesariamente. Muchas usan modelos fundacionales externos y en su lugar dependen de la evaluación continua de prompts, modelos, recuperación y comportamiento de la aplicación. Los sistemas ajustados o autoentrenados aún pueden requerir canalizaciones de entrenamiento.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq4\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">¿Por qué son tan importantes las evaluaciones en LLMOps?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Las salidas generativas son abiertas y el comportamiento del modelo puede cambiar entre prompts, instantáneas y contexto. Las evaluaciones proporcionan evidencia repetible de que una versión aún cumple con los criterios definidos de calidad y seguridad.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq5\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">¿Qué debería versionarse en LLMOps?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Como mínimo: código de la aplicación, modelo\u002Fproveedor\u002Fversión, prompts, conjuntos de datos\u002Fevaluadores de evaluación, configuración\u002Fíndices de recuperación, esquemas de herramientas, reglas de contexto y configuración relevante de seguridad\u002Fpermisos.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq6\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">¿Es suficiente el versionado de prompts?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. El mismo prompt puede comportarse de manera diferente con otro modelo, conjunto de recuperación, orden de contexto, superficie de herramientas o proveedor.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq7\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">¿Qué es GenAIOps?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">GenAIOps es otro término de la industria para operar aplicaciones de IA generativa. Algunos proveedores lo usan de forma intercambiable o como una etiqueta más amplia que LLMOps.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq8\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">¿Cómo se monitorea una aplicación LLM?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Monitorea trazas de extremo a extremo que incluyan llamadas al modelo, prompts\u002Fcontexto, recuperación, herramientas, latencia, tokens\u002Fcosto, muestras de calidad, seguridad y resultados finales de la tarea.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq9\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">¿Pueden los LLM locales usar prácticas de LLMOps?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Sí. Los modelos locales añaden sus propias preocupaciones operativas, como archivos de modelo, hardware\u002FVRAM, carga\u002Fdescarga, salud del entorno de ejecución, cuantización y gestión de actualizaciones.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-149\">Glosario\u003C\u002Fh2>\n\u003Csection class=\"editorjs-glossary my-6 rounded-xl border border-gray-200 dark:border-gray-700 p-5\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Términos clave de MLOps y LLMOps\u003C\u002Fh3>\u003Cdl>\u003Cdiv id=\"mlops\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">MLOps\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Prácticas de ingeniería para construir, desplegar, monitorear y mantener sistemas de aprendizaje automático y su ciclo de vida de datos\u002Fmodelos.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"llmops\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">LLMOps\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Prácticas operativas para aplicaciones en producción cuyo comportamiento depende materialmente de modelos de lenguaje grandes y de los prompts, contexto, recuperación, herramientas y entorno de ejecución que los rodean.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"genaiops\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">GenAIOps\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Disciplina operativa para aplicaciones de IA generativa; a menudo se usa como una etiqueta más amplia o alternativa para LLMOps.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"continuous-training\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Entrenamiento continuo\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Reentrenamiento y servicio automatizados o repetidos de modelos de ML a medida que cambian los datos o las implementaciones.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"continuous-evaluation\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Evaluación continua\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Evaluación repetida del comportamiento de IA candidato y en producción contra conjuntos de datos y criterios versionados.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"model-snapshot\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Instantánea de modelo\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Una versión concreta de un modelo alojado o empaquetado cuyo comportamiento puede probarse y referenciarse.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"application-lineage\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Linaje de aplicación\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Relación rastreable entre código, modelo\u002Fproveedor, prompts, datos\u002Frecuperación, herramientas, entorno de ejecución y configuración de la versión.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"trace\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Traza\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Registro estructurado de una ejecución de aplicación que contiene segmentos como llamadas al modelo, recuperaciones y operaciones de herramientas.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"eval-dataset\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Conjunto de datos de evaluación\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Conjunto versionado de entradas representativas, expectativas y, opcionalmente, trazas\u002Fsalidas usadas para medir el comportamiento.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"llm-judge\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Juez LLM\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un modelo de lenguaje usado como evaluador para criterios cualitativos o semánticos; es en sí mismo una dependencia de evaluación versionada.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"behavioral-regression\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Regresión de comportamiento\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Una degradación en la salida o trayectoria de la aplicación a pesar de que las interfaces y el código siguen ejecutándose correctamente.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"provider-routing\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Enrutamiento de proveedores\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Política para seleccionar entre proveedores\u002Fendpoints de modelos disponibles según capacidad, costo, latencia, privacidad o disponibilidad.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-151\">Conclusión\u003C\u002Fh2>\n\u003Cp>MLOps y LLMOps comparten el mismo objetivo de ingeniería: hacer que los sistemas de IA sean lo suficientemente reproducibles, comprobables y observables para operar de manera fiable en producción.\u003C\u002Fp>\n\u003Cp>La diferencia es la forma del sistema. El MLOps clásico a menudo se centra en entrenar y servir artefactos de modelos; LLMOps debe operar una pila de comportamiento en la que las instantáneas de modelos, prompts, contexto, recuperación, herramientas, permisos y proveedores pueden cambiar de forma independiente.\u003C\u002Fp>\n\u003Cp>La regla útil más breve es: versiona, evalúa y observa todo lo que pueda cambiar materialmente el comportamiento de la aplicación LLM, no solo el modelo.\u003C\u002Fp>\n\u003Ch2 id=\"section-155\">Fuentes primarias y documentación actual\u003C\u002Fh2>\n\u003Cp>Las fuentes a continuación fundamentan la base de MLOps y los patrones operativos actuales para aplicaciones LLM y de agentes. Las secciones del proyecto son evidencia de implementación original y son intencionalmente más limitadas que las afirmaciones sobre una plataforma LLMOps completa.\u003C\u002Fp>\n\u003Ca href=\"https:\u002F\u002Fdocs.cloud.google.com\u002Farchitecture\u002Fmlops-continuous-delivery-and-automation-pipelines-in-machine-learning\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Google Cloud — MLOps: canalizaciones de entrega continua y automatización\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Arquitectura de referencia que describe CI, CD, entrenamiento continuo, registro de modelos, metadatos, servicio y monitoreo para sistemas de ML.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fmachine-learning-lens\u002Fmlops02-bp04.html\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">AWS Machine Learning Lens — Linaje de modelos\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guía actual para rastrear código, datos, modelos, entornos e infraestructura a lo largo de las versiones de ML.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fmachine-learning-lens\u002Fmlops06-bp02.html\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">AWS Machine Learning Lens — Observabilidad y seguimiento de modelos\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guía actual para el monitoreo de modelos en producción, deriva, salud de endpoints y linaje.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fmachine-learning\u002Fprompt-flow\u002Fhow-to-end-to-end-llmops-with-prompt-flow\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Microsoft Azure — Ciclo de vida de GenAIOps \u002F LLMOps\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guía oficial que describe GenAIOps, a veces llamado LLMOps, a lo largo de inicialización, experimentación, evaluación\u002Frefinamiento y despliegue.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">MLflow — Agentes y aplicaciones LLM\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentación actual de operaciones GenAI que cubre trazabilidad, evaluación, prompts y observabilidad en producción para aplicaciones LLM y agentes.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.mlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Feval-monitor\u002Frunning-evaluation\u002Ftraces\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">MLflow — Evaluación de trazas de producción\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guía actual para evaluar trazas completas de LLM\u002Fagentes, incluidas trayectorias de recuperación y llamadas a herramientas.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Fprompt-registry\u002Fevaluate-prompts\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">MLflow — Evaluación de prompts\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Flujo de trabajo actual de evaluación de prompts\u002Fmodelos usando prompts versionados, conjuntos de datos, evaluadores y trazas.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Freference\u002Foverview\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">API de OpenAI — Versionado y snapshots de modelos\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guía actual de la API que recomienda versiones de modelo fijadas y evaluaciones porque el comportamiento de los prompts puede cambiar entre snapshots.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompting\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Prompting\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guía actual para tratar los prompts de producción como código de aplicación, versionarlos mediante control de código fuente y cubrir los cambios con pruebas y comprobaciones de evaluación.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fdeprecations\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Deprecaciones\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Evidencia actual del ciclo de vida del proveedor que muestra la retirada de modelos y superficies de plataforma como una dependencia operativa.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fevaluation\u002Fmoving-from-openai-evals-to-promptfoo\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Migración de flujos de trabajo de evaluación a Promptfoo\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Guía de migración actual de 2026 que ilustra por qué los activos de evaluación deben permanecer portables a medida que cambian las herramientas del proveedor.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":1558},1791487524858,[214,220,228,235,242,248,256,261,266,271,276,281,286,291,296,301,306,311,316,348,353,358,363,368,373,421,426,431,436,441,446,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,596,605,610,615,620,625,632,637,642,647,652,657,662,667,672,677,682,687,692,700,705,710,715,720,725,730,735,740,745,750,755,760,765,800,805,810,815,820,825,830,835,840,845,880,885,890,895,900,905,910,915,920,925,930,935,940,945,950,955,960,965,970,975,980,985,990,995,1000,1005,1010,1042,1048,1053,1097,1102,1140,1145,1187,1192,1242,1247,1252,1257,1262,1267,1272,1277,1282,1287,1292,1297,1302,1307,1312,1320,1328,1333,1375,1380,1428,1433,1438,1443,1448,1453,1458,1468,1477,1486,1495,1504,1513,1522,1531,1540,1549],{"id":215,"data":216,"type":218,"tunes":219},"intro",{"text":217},"MLOps es la disciplina de ingeniería para desarrollar, desplegar, versionar y operar sistemas de aprendizaje automático de forma fiable; LLMOps extiende esa disciplina a las aplicaciones construidas en torno a grandes modelos de lenguaje, donde el comportamiento en producción depende no solo de un artefacto de modelo, sino también de prompts, contexto, recuperación, versiones de proveedor\u002Fmodelo, llamadas a herramientas, controles de seguridad y pipelines de evaluación. LLMOps no reemplaza a MLOps. Cambia la unidad operativa de \"un modelo más un pipeline de servicio\" hacia \"una aplicación LLM en evolución cuyo comportamiento emerge de varios componentes que cambian de forma independiente\".","paragraph",{},{"id":221,"data":222,"type":226,"tunes":227},"direct",{"body":223,"title":224,"variant":225},"\u003Cstrong>MLOps opera sistemas de ML. LLMOps opera aplicaciones LLM.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>El MLOps clásico suele centrarse en pipelines de datos, entrenamiento, validación, registro de modelos, despliegue, drift y reentrenamiento. LLMOps mantiene esas disciplinas donde son relevantes, pero a menudo añade versionado de prompts\u002Fcontexto, abstracción de modelo\u002Fproveedor, índices RAG, trazas de agentes\u002Fherramientas, evaluaciones semánticas, pruebas de seguridad, monitoreo de tokens\u002Fcostos y pruebas de regresión a través de instantáneas de modelos que cambian rápidamente.","Respuesta directa","info","callout",{},{"id":229,"data":230,"type":226,"tunes":234},"boundary",{"body":231,"title":232,"variant":233},"Una aplicación LLM en producción puede fallar incluso cuando el prompt no ha cambiado: el proveedor puede cambiar una instantánea del modelo, un corpus RAG puede quedar obsoleto, un reranker puede degradarse, los permisos de herramientas pueden cambiar, el ensamblado de contexto puede omitir evidencia, o un agente puede tomar una trayectoria incorrecta. Por lo tanto, LLMOps tiene que observar y versionar el sistema alrededor del modelo, no solo el texto del prompt.","LLMOps no es solo gestión de prompts","warning",{},{"id":236,"data":237,"type":226,"tunes":241},"term-note",{"body":238,"title":239,"variant":240},"\u003Cstrong>LLMOps\u003C\u002Fstrong>, \u003Cstrong>GenAIOps\u003C\u002Fstrong> y términos relacionados son etiquetas de ingeniería ampliamente usadas, pero no constituyen un único estándar formal universal con un solo ciclo de vida canónico. Microsoft describe actualmente GenAIOps como \"a veces llamado LLMOps\", mientras que MLflow agrupa herramientas operativas en torno a agentes y aplicaciones LLM. Este artículo usa LLMOps como un término de arquitectura práctico para operar sistemas en producción cuyo comportamiento depende materialmente de los LLM.","Frontera terminológica","note",{},{"id":243,"data":244,"type":226,"tunes":247},"current",{"body":245,"title":246,"variant":240},"La superficie operativa está cambiando rápidamente. OpenAI recomienda actualmente fijar instantáneas de modelos y ejecutar evaluaciones porque el comportamiento del prompting puede cambiar entre instantáneas, y varias superficies antiguas de prompts\u002Fevaluación específicas de plataformas están siendo retiradas en 2026. La lección arquitectónica estable es mantener prompts, pruebas y evaluaciones portables y versionados con la aplicación en lugar de depender del modelo de objetos del panel de un único proveedor.","Nota de fuentes actuales — 8 de octubre de 2026",{},{"id":249,"data":250,"type":254,"tunes":255},"toc",{"title":251,"maxLevel":252,"minLevel":253},"Contenido",3,2,"tableOfContents",{},{"id":257,"data":258,"type":42,"tunes":260},"h-meaning",{"text":259,"level":253},"Qué significa realmente MLOps",{},{"id":262,"data":263,"type":218,"tunes":265},"p-mlops-1",{"text":264},"MLOps aplica disciplina de ingeniería de software y operaciones a los sistemas de aprendizaje automático. El desafío de producción es más amplio que entrenar un modelo: la recolección de datos, la validación de datos, la experimentación, la reproducibilidad, la evaluación de modelos, el despliegue, la infraestructura y el monitoreo tienen que funcionar juntos.",{},{"id":267,"data":268,"type":218,"tunes":270},"p-mlops-2",{"text":269},"La guía de arquitectura MLOps de Google enmarca la disciplina en torno a la integración continua, la entrega continua y el entrenamiento continuo. CI valida no solo el código sino también los datos, los esquemas y los modelos; CD despliega pipelines de ML y servicios de predicción; CT puede reentrenar y redesplegar modelos a medida que cambian los datos o las implementaciones.",{},{"id":272,"data":273,"type":218,"tunes":275},"p-mlops-3",{"text":274},"La guía de AWS añade las mismas preocupaciones operativas desde otro ángulo: el linaje de modelos, la trazabilidad de modelo\u002Fversión, el monitoreo de drift y el monitoreo de calidad en producción son partes centrales para mantener los sistemas de ML fiables después del despliegue.",{},{"id":277,"data":278,"type":42,"tunes":280},"h-llmops",{"text":279,"level":253},"Qué cambia cuando el modelo es un LLM",{},{"id":282,"data":283,"type":218,"tunes":285},"p-llmops-1",{"text":284},"Los grandes modelos de lenguaje cambian el problema de producción porque la aplicación a menudo no posee el ciclo de vida completo de entrenamiento del modelo. Un equipo puede llamar a una API de modelo alojado, ejecutar un modelo abierto localmente, cambiar entre proveedores o usar varios modelos para diferentes tareas.",{},{"id":287,"data":288,"type":218,"tunes":290},"p-llmops-2",{"text":289},"Por lo tanto, el modelo es solo una dependencia versionada dentro de un sistema de comportamiento más amplio. Los prompts, los resultados de recuperación, el orden del contexto, las herramientas, la instantánea del modelo, la configuración de temperatura\u002Frazonamiento, los filtros de seguridad y la orquestación en tiempo de ejecución pueden cambiar la salida.",{},{"id":292,"data":293,"type":218,"tunes":295},"p-llmops-3",{"text":294},"Esto crea una pregunta operativa más amplia: ¿qué combinación de modelo, contexto, datos, prompt, herramientas y tiempo de ejecución produjo este comportamiento? LLMOps existe para hacer que esa pregunta sea respondible y la respuesta lo suficientemente reproducible para el trabajo de ingeniería.",{},{"id":297,"data":298,"type":42,"tunes":300},"h-simple",{"text":299,"level":253},"El ejemplo más simple",{},{"id":302,"data":303,"type":218,"tunes":305},"p-simple-1",{"text":304},"Supongamos que una aplicación responde preguntas sobre políticas internas.",{},{"id":307,"data":308,"type":218,"tunes":310},"p-simple-2",{"text":309},"En un enfoque de ML clásico, podrías versionar un clasificador entrenado, desplegarlo y monitorear la calidad de las predicciones. En una aplicación LLM, la respuesta podría depender de una instantánea de modelo alojado, un prompt de sistema, un modelo de embeddings, un índice vectorial, filtros de recuperación, un reranker y el contexto final seleccionado.",{},{"id":312,"data":313,"type":218,"tunes":315},"p-simple-3",{"text":314},"Cambiar cualquiera de esos componentes puede cambiar la respuesta final aunque el endpoint de la aplicación y la pregunta del usuario permanezcan idénticos.",{},{"id":317,"data":318,"type":346,"tunes":347},"simple-flow",{"steps":319,"title":344,"orientation":345},[320,323,326,329,332,335,338,341],{"label":321,"description":322},"1. Cambiar un componente","Cambian el prompt, el modelo, el proveedor, la configuración de recuperación, el esquema de herramientas o el código de la aplicación.",{"label":324,"description":325},"2. Ejecutar pruebas deterministas","Validar esquemas, permisos, contratos de herramientas, filtros de recuperación y comportamiento de la aplicación.",{"label":327,"description":328},"3. Ejecutar evaluaciones de comportamiento","Comparar salidas representativas, calidad de recuperación y trayectorias de agentes\u002Fherramientas con los criterios de aceptación.",{"label":330,"description":331},"4. Comparar costo y latencia","Medir uso de tokens, llamadas al modelo, sobrecarga de recuperación\u002Fherramientas y latencia de respuesta.",{"label":333,"description":334},"5. Desplegar versión controlada","Publicar la configuración concreta de la aplicación con las versiones de modelo\u002Fproveedor registradas.",{"label":336,"description":337},"6. Rastrear comportamiento en producción","Capturar los spans relevantes de modelo, recuperación, herramientas y tiempo de ejecución.",{"label":339,"description":340},"7. Evaluar trazas de producción","Muestrear ejecuciones reales para calidad, fundamentación, seguridad y éxito de la tarea.",{"label":342,"description":343},"8. Revertir o iterar","Usar evidencia de regresión y señales operativas para decidir el siguiente lanzamiento.","Una ruta típica de lanzamiento de LLMOps","auto","processFlow",{},{"id":349,"data":350,"type":42,"tunes":352},"h-stops",{"text":351,"level":253},"Dónde se detiene el ejemplo simple",{},{"id":354,"data":355,"type":218,"tunes":357},"p-stops-1",{"text":356},"Algunos sistemas LLM todavía entrenan o ajustan sus propios modelos, por lo que las prácticas tradicionales de MLOps, como los pipelines de entrenamiento, el registro de modelos y el linaje de datos, siguen siendo directamente relevantes.",{},{"id":359,"data":360,"type":218,"tunes":362},"p-stops-2",{"text":361},"Otros sistemas usan solo API externas de modelos fundacionales y nunca ejecutan entrenamiento continuo. Su principal carga operativa es la evaluación de aplicaciones, la gestión de cambios de modelo\u002Fproveedor, el versionado de prompts\u002Fcontexto, la calidad de recuperación y la observabilidad.",{},{"id":364,"data":365,"type":218,"tunes":367},"p-stops-3",{"text":366},"Por lo tanto, no existe un único “pipeline de LLMOps” universal. El ciclo de vida exacto depende de si entrenas, ajustas, autoalojas, recuperas conocimiento externo, ejecutas agentes o dependes de API de modelos gestionados.",{},{"id":369,"data":370,"type":42,"tunes":372},"h-compare",{"text":371,"level":253},"MLOps vs LLMOps",{},{"id":374,"data":375,"type":419,"tunes":420},"main-comparison",{"rows":376,"title":410,"layout":411,"columns":412},[377,382,386,390,394,398,402,406],{"id":378,"label":379,"values":380},"unit","Unidad operativa principal",[381,381],"",{"id":383,"label":384,"values":385},"model","Propiedad del modelo",[381,381],{"id":387,"label":388,"values":389},"change","Cambio típico",[381,381],{"id":391,"label":392,"values":393},"eval","Evaluación",[381,381],{"id":395,"label":396,"values":397},"monitor","Monitoreo en producción",[381,381],{"id":399,"label":400,"values":401},"training","Entrenamiento continuo",[381,381],{"id":403,"label":404,"values":405},"registry","Artefactos versionados",[381,381],{"id":407,"label":408,"values":409},"rollback","Objetivo de reversión",[381,381],"Qué permanece igual y qué se expande","table",[413,416],{"id":414,"label":415},"mlops","MLOps",{"id":417,"label":418},"llmops","LLMOps","comparison",{},{"id":422,"data":423,"type":42,"tunes":425},"h-extension",{"text":424,"level":253},"LLMOps extiende MLOps en lugar de reemplazarlo",{},{"id":427,"data":428,"type":218,"tunes":430},"p-extension-1",{"text":429},"Los principios operativos fundamentales no desaparecen: el control de código fuente, CI\u002FCD, la reproducibilidad, el linaje, los controles de despliegue, el monitoreo, la reversión y los criterios de aceptación medibles siguen siendo esenciales.",{},{"id":432,"data":433,"type":218,"tunes":435},"p-extension-2",{"text":434},"La extensión es que ahora más artefactos que definen el comportamiento se encuentran fuera de los pesos del modelo. Un modelo fundacional gestionado puede cambiar su comportamiento mediante actualizaciones de instantáneas, mientras que la salida de la aplicación puede cambiar mediante cambios en el prompt o la recuperación sin ningún reentrenamiento del modelo.",{},{"id":437,"data":438,"type":218,"tunes":440},"p-extension-3",{"text":439},"Por eso la jerarquía útil suele ser DevOps → MLOps → LLMOps\u002FGenAIOps como preocupaciones operativas cada vez más especializadas, no tres prácticas mutuamente excluyentes.",{},{"id":442,"data":443,"type":42,"tunes":445},"h-artifacts",{"text":444,"level":253},"¿Qué debe versionarse en LLMOps?",{},{"id":447,"data":448,"type":411,"tunes":495},"artifact-table",{"content":449,"stretched":43,"withHeadings":14},[450,453,456,459,462,465,468,471,474,477,480,483,486,489,492],[451,452],"Artefacto","Por qué importa",[454,455],"Código de la aplicación","Define la orquestación, la validación, los reintentos y el comportamiento del negocio",[457,458],"Familia de modelo + instantánea\u002Fversión","Diferentes instantáneas pueden producir comportamientos diferentes",[460,461],"Proveedor \u002F endpoint","Cambia el flujo de datos, la latencia, los límites, los precios y la disponibilidad",[463,464],"Código de prompt\u002Finstrucción","Cambia el comportamiento del modelo incluso con el mismo modelo",[466,467],"Parámetros de generación\u002Frazonamiento","Pueden alterar el determinismo, la latencia, la profundidad y el costo",[469,470],"Conjunto de datos de evaluación","Define contra qué se prueba que algo es “suficientemente bueno”",[472,473],"Puntuadores \u002F evaluadores","Definen cómo se mide la calidad",[475,476],"Modelo de embeddings","Cambia la representación vectorial y el comportamiento de recuperación",[478,479],"Configuración de chunking\u002Fíndice","Cambia qué se puede recuperar",[481,482],"Reranker \u002F fusión de recuperación","Cambia el orden de los resultados",[484,485],"Esquemas de herramientas","Cambian qué puede solicitar el modelo y cómo",[487,488],"Perfil de permisos","Cambia qué acciones de herramientas pueden ejecutarse realmente",[490,491],"Reglas de ensamblaje de contexto","Cambian qué evidencia y estado llegan al modelo",[493,494],"Configuración de seguridad\u002Fguardarraíles","Cambia el comportamiento permitido o bloqueado",{},{"id":497,"data":498,"type":42,"tunes":500},"h-model-version",{"text":499,"level":253},"Las instantáneas de modelo se convierten en dependencias de lanzamiento",{},{"id":502,"data":503,"type":218,"tunes":505},"p-model-version-1",{"text":504},"Con los LLM alojados, el equipo puede no controlar el entrenamiento del modelo, pero sí controla qué modelo o instantánea llama la aplicación.",{},{"id":507,"data":508,"type":218,"tunes":510},"p-model-version-2",{"text":509},"La guía actual de la API de OpenAI advierte explícitamente que el comportamiento de los prompts puede cambiar entre instantáneas del modelo y recomienda fijar las aplicaciones en producción a instantáneas específicas cuando la consistencia importa, y luego ejecutar evaluaciones al actualizar.",{},{"id":512,"data":513,"type":218,"tunes":515},"p-model-version-3",{"text":514},"La consecuencia operativa es directa: las actualizaciones de modelo deben tratarse como lanzamientos de la aplicación, no como mantenimiento invisible de infraestructura.",{},{"id":517,"data":518,"type":42,"tunes":520},"h-provider",{"text":519,"level":253},"El ciclo de vida del proveedor se convierte en parte de las operaciones",{},{"id":522,"data":523,"type":218,"tunes":525},"p-provider-1",{"text":524},"Las aplicaciones LLM a menudo dependen de los límites de tasa del proveedor, los calendarios de descontinuación, la semántica de la API, los límites de contexto, las reglas de manejo de datos y los precios.",{},{"id":527,"data":528,"type":218,"tunes":530},"p-provider-2",{"text":529},"Un proveedor puede descontinuar un modelo mientras el código de tu aplicación permanece sin cambios. El calendario de descontinuación actual de OpenAI, por ejemplo, incluye fechas de retiro en 2026 para instantáneas de modelos más antiguos y superficies de plataforma.",{},{"id":532,"data":533,"type":218,"tunes":535},"p-provider-3",{"text":534},"Por lo tanto, LLMOps necesita seguimiento del ciclo de vida del proveedor, pruebas de migración y decisiones de respaldo además del monitoreo de la calidad del modelo.",{},{"id":537,"data":538,"type":42,"tunes":540},"h-prompt",{"text":539,"level":253},"Los prompts se comportan como código de producción",{},{"id":542,"data":543,"type":218,"tunes":545},"p-prompt-1",{"text":544},"Los prompts son configuración de comportamiento ejecutable. Pequeños cambios pueden alterar la calidad de la salida, la selección de herramientas y la interpretación de políticas.",{},{"id":547,"data":548,"type":218,"tunes":550},"p-prompt-2",{"text":549},"La guía actual de OpenAI recomienda almacenar los prompts de producción en el código de la aplicación, revisar los cambios de prompts mediante solicitudes de extracción, usar entradas tipadas y cubrir los cambios con pruebas y verificaciones de evaluación.",{},{"id":552,"data":553,"type":218,"tunes":555},"p-prompt-3",{"text":554},"Eso hace que el versionado de prompts se parezca menos a editar texto de marketing y más a cambiar una función cuya salida es probabilística y dependiente del modelo.",{},{"id":557,"data":558,"type":42,"tunes":560},"h-context",{"text":559,"level":253},"La ingeniería de contexto se convierte en una preocupación operativa",{},{"id":562,"data":563,"type":218,"tunes":565},"p-context-1",{"text":564},"El modelo de producción rara vez recibe solo un prompt estático. Puede recibir historial de conversación, documentos recuperados, salidas de herramientas, memoria, estado actual de la aplicación e instrucciones de política.",{},{"id":567,"data":568,"type":218,"tunes":570},"p-context-2",{"text":569},"Por lo tanto, LLMOps debe observar el ensamblaje del contexto: qué evidencia se seleccionó, qué versión de estado estaba vigente, si ocurrió truncamiento y si las instrucciones importantes sobrevivieron a la compactación.",{},{"id":572,"data":573,"type":218,"tunes":575},"p-context-3",{"text":574},"Una regresión del modelo y una regresión del contexto pueden verse idénticas en la respuesta final. Rastrear la ruta real del contexto es lo que permite al equipo separarlas.",{},{"id":577,"data":578,"type":42,"tunes":580},"h-rag",{"text":579,"level":253},"RAG crea su propio ciclo de vida operativo",{},{"id":582,"data":583,"type":218,"tunes":585},"p-rag-1",{"text":584},"Un sistema RAG introduce una segunda canalización de producción junto a la inferencia del modelo: ingesta, extracción, fragmentación, metadatos, incrustaciones, índices, recuperación, reordenamiento y selección de contexto.",{},{"id":587,"data":588,"type":218,"tunes":590},"p-rag-2",{"text":589},"El corpus de conocimiento puede cambiar todos los días incluso cuando el modelo y el prompt no lo hacen. Por lo tanto, un índice obsoleto o un filtro de metadatos roto pueden degradar la calidad de las respuestas sin ninguna deriva del modelo.",{},{"id":592,"data":593,"type":218,"tunes":595},"p-rag-3",{"text":594},"LLMOps para RAG debe rastrear la versión del corpus\u002Fíndice, el modelo de incrustación, la política de fragmentación, la configuración de recuperación, la frescura de las fuentes y las métricas de recuperación por separado de la calidad de generación.",{},{"id":597,"data":598,"type":603,"tunes":604},"ref-rag-diagnostic",{"url":599,"title":600,"excerpt":601,"ctaLabel":602},"https:\u002F\u002Fstajic.de\u002Fes\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","RAG falló — pero ¿qué capa falló realmente? Un método de diagnóstico","Una canalización LLM de producción necesita observabilidad separada para la cobertura de fuentes, la recuperación, el ranking, el ensamblaje de contexto y la generación.","Lee el método de diagnóstico de RAG","referralArticle",{},{"id":606,"data":607,"type":42,"tunes":609},"h-evals",{"text":608,"level":253},"Las evaluaciones reemplazan “me parece bien” con evidencia de lanzamiento",{},{"id":611,"data":612,"type":218,"tunes":614},"p-eval-1",{"text":613},"Las salidas generativas a menudo son abiertas, por lo que las pruebas de coincidencia exacta son insuficientes para muchas tareas. LLMOps agrega conjuntos de datos de evaluación y calificadores que pueden medir el éxito de la tarea, la corrección, la seguridad, la fundamentación, el estilo o criterios de aceptación específicos del dominio.",{},{"id":616,"data":617,"type":218,"tunes":619},"p-eval-2",{"text":618},"La pila de evaluación GenAI actual de MLflow admite conjuntos de datos de evaluación versionados, comparaciones de prompts\u002Fmodelos, evaluadores personalizados y evaluación sobre trazas completas.",{},{"id":621,"data":622,"type":218,"tunes":624},"p-eval-3",{"text":623},"La práctica más sólida es el desarrollo guiado por evaluación: definir casos representativos y criterios de aceptación antes o junto con los cambios, y luego comparar las versiones contra la misma evidencia.",{},{"id":626,"data":627,"type":226,"tunes":631},"eval-rule",{"body":628,"title":629,"variant":630},"Un despliegue no debe considerarse equivalente solo porque el contrato de la API siga funcionando. Si el prompt, el modelo, la recuperación o las herramientas cambiaron, la suite de regresión de comportamiento debe ejecutarse de nuevo.","Los cambios de comportamiento necesitan pruebas de comportamiento","success",{},{"id":633,"data":634,"type":42,"tunes":636},"h-judges",{"text":635,"level":253},"LLM como juez es útil pero no es la verdad absoluta",{},{"id":638,"data":639,"type":218,"tunes":641},"p-judge-1",{"text":640},"Los jueces LLM pueden escalar la evaluación de cualidades que son costosas de codificar como aserciones deterministas, como la relevancia, el tono o la fundamentación.",{},{"id":643,"data":644,"type":218,"tunes":646},"p-judge-2",{"text":645},"Sin embargo, el juez es otro modelo con su propio sesgo, versión y prompt. Por lo tanto, la configuración del juez debe versionarse y calibrarse contra casos de referencia humanos o deterministas cuando las consecuencias importan.",{},{"id":648,"data":649,"type":218,"tunes":651},"p-judge-3",{"text":650},"Una evaluación de producción puede combinar comprobaciones deterministas, métricas basadas en referencia, jueces modelo y revisión humana en lugar de pedirle a una sola métrica que represente todas las dimensiones de calidad.",{},{"id":653,"data":654,"type":42,"tunes":656},"h-tracing",{"text":655,"level":253},"El trazado se vuelve más importante que los registros de endpoint",{},{"id":658,"data":659,"type":218,"tunes":661},"p-trace-1",{"text":660},"Los registros de API tradicionales pueden decirte que una solicitud tardó dos segundos y devolvió HTTP 200. No pueden decirte qué fragmentos recuperados se seleccionaron, qué herramienta llamó el agente o qué span del modelo consumió la mayor cantidad de tokens.",{},{"id":663,"data":664,"type":218,"tunes":666},"p-trace-2",{"text":665},"El trazado GenAI actual de MLflow captura prompts, recuperaciones, llamadas a herramientas y spans de la aplicación, y su flujo de evaluación de producción puede puntuar información de trayectoria intermedia en lugar de solo el texto final.",{},{"id":668,"data":669,"type":218,"tunes":671},"p-trace-3",{"text":670},"Este es un cambio importante en LLMOps: la observabilidad sigue el grafo de comportamiento de la aplicación, no solo el endpoint de servicio.",{},{"id":673,"data":674,"type":42,"tunes":676},"h-agent",{"text":675,"level":253},"Los agentes expanden LLMOps hacia operaciones en tiempo de ejecución",{},{"id":678,"data":679,"type":218,"tunes":681},"p-agent-1",{"text":680},"Una aplicación agéntica puede realizar varias llamadas a modelos, invocaciones de herramientas y transiciones de estado antes de producir un resultado.",{},{"id":683,"data":684,"type":218,"tunes":686},"p-agent-2",{"text":685},"Por lo tanto, operar agentes requiere recuentos de pasos, trazas de llamadas a herramientas, denegaciones de permisos, reintentos, detección de bucles, aprobaciones humanas y estado final verificado, además de las métricas ordinarias de latencia del modelo y tokens.",{},{"id":688,"data":689,"type":218,"tunes":691},"p-agent-3",{"text":690},"Una respuesta final correcta puede ocultar una mala trayectoria, por lo que la evaluación de agentes debe inspeccionar tanto el camino como el resultado.",{},{"id":693,"data":694,"type":603,"tunes":699},"ref-agent-reliability",{"url":695,"title":696,"excerpt":697,"ctaLabel":698},"https:\u002F\u002Fstajic.de\u002Fes\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","Fiabilidad de agentes de IA: por qué la respuesta final no es suficiente","Por qué la evaluación de producción de agentes debe incluir llamadas a herramientas, transiciones de estado, aprobaciones y capacidad de recuperación.","Leer el artículo sobre fiabilidad de agentes",{},{"id":701,"data":702,"type":42,"tunes":704},"h-cost",{"text":703,"level":253},"Los tokens, las llamadas a modelos y el contexto se convierten en variables de costo",{},{"id":706,"data":707,"type":218,"tunes":709},"p-cost-1",{"text":708},"El costo de inferencia de ML clásico a menudo está dominado por la infraestructura de servicio o el cómputo por predicción. Las aplicaciones LLM pueden añadir precios de tokens del proveedor, llamadas repetidas de agentes, llamadas de embedding, reranking y sobrecarga de herramientas\u002Ftiempo de ejecución.",{},{"id":711,"data":712,"type":218,"tunes":714},"p-cost-2",{"text":713},"Por lo tanto, el costo debe atribuirse a la tarea o a la traza, no solo a un extremo. Un flujo de trabajo que realiza ocho llamadas ocultas al modelo puede ser funcionalmente correcto pero operativamente inaceptable.",{},{"id":716,"data":717,"type":218,"tunes":719},"p-cost-3",{"text":718},"La latencia se comporta de la misma manera: la latencia del modelo, la recuperación, el reranking y las herramientas externas se combinan en la latencia de extremo a extremo del usuario.",{},{"id":721,"data":722,"type":42,"tunes":724},"h-cache",{"text":723,"level":253},"El almacenamiento en caché se vuelve semántico, no solo técnico",{},{"id":726,"data":727,"type":218,"tunes":729},"p-cache-1",{"text":728},"Los sistemas LLM pueden almacenar en caché prompts, embeddings, resultados de recuperación o respuestas completas, pero la clave de caché debe reflejar la semántica que puede cambiar el resultado.",{},{"id":731,"data":732,"type":218,"tunes":734},"p-cache-2",{"text":733},"Una caché de respuestas que ignora la versión del modelo, el inquilino, los permisos o la frescura de la fuente puede devolver una respuesta técnicamente válida pero semánticamente inválida.",{},{"id":736,"data":737,"type":218,"tunes":739},"p-cache-3",{"text":738},"Por lo tanto, LLMOps trata la invalidación de caché como parte del versionado de modelo\u002Fcontexto\u002Fdatos en lugar de solo una optimización de infraestructura.",{},{"id":741,"data":742,"type":42,"tunes":744},"h-safety",{"text":743,"level":253},"La seguridad y los permisos se convierten en criterios de lanzamiento",{},{"id":746,"data":747,"type":218,"tunes":749},"p-safety-1",{"text":748},"Los sistemas generativos pueden producir texto ilimitado y los agentes pueden desencadenar acciones externas. Por lo tanto, las pruebas de seguridad se acercan más al CI\u002FCD ordinario que en muchos sistemas clásicos de ML predictivo.",{},{"id":751,"data":752,"type":218,"tunes":754},"p-safety-2",{"text":753},"Las verificaciones de permisos, las pruebas de inyección de prompts, las pruebas de aislamiento de inquilinos y las aprobaciones de efectos secundarios deben ser pruebas de regresión reproducibles donde existan esos riesgos.",{},{"id":756,"data":757,"type":218,"tunes":759},"p-safety-3",{"text":758},"El modelo puede sugerir una operación, pero el tiempo de ejecución aún debe hacer cumplir la autorización. LLMOps posee la evidencia de que esos controles siguen funcionando después de cambios en el modelo, el prompt o las herramientas.",{},{"id":761,"data":762,"type":42,"tunes":764},"h-ci",{"text":763,"level":253},"Cómo se ve CI en LLMOps",{},{"id":766,"data":767,"type":411,"tunes":799},"ci-table",{"content":768,"stretched":43,"withHeadings":14},[769,772,775,778,781,784,787,790,793,796],[770,771],"Capa de CI","Ejemplos de verificaciones",[773,774],"Código","Pruebas unitarias, verificación de tipos, validación de esquemas",[776,777],"Prompts","Renderizado de plantillas, variables requeridas, texto de políticas, revisión de instantáneas",[779,780],"Modelos\u002Fproveedores","Compatibilidad, esquema de salida, pruebas de capacidad y regresión",[782,783],"RAG","Fixtures de fragmentación, pruebas de filtros, Recall@k, regresión del reranker",[785,786],"Herramientas","Pruebas de esquema de entrada\u002Fsalida, pruebas de permisos, pruebas de idempotencia",[788,789],"Agentes","Fixtures de trayectoria, límites de bucle, pruebas de transferencia\u002Fselección de herramientas",[791,792],"Seguridad","Inyección de prompts, herramientas no autorizadas, pruebas negativas entre inquilinos",[794,795],"Evaluaciones de comportamiento","Éxito de la tarea, corrección, fundamentación, seguridad, criterios de dominio",[797,798],"Operacional","Latencia, presupuestos de tokens\u002Fcosto, comportamiento de tiempo de espera\u002Ffallback",{},{"id":801,"data":802,"type":42,"tunes":804},"h-cd",{"text":803,"level":253},"Cómo se ve CD en LLMOps",{},{"id":806,"data":807,"type":218,"tunes":809},"p-cd-1",{"text":808},"Un lanzamiento a producción puede no desplegar ningún artefacto de modelo nuevo. Puede simplemente enviar un nuevo prompt, configuración de recuperación, conjunto de herramientas o mapeo de proveedores.",{},{"id":811,"data":812,"type":218,"tunes":814},"p-cd-2",{"text":813},"Por lo tanto, el paquete de lanzamiento debe identificar la configuración completa que define el comportamiento en lugar de solo la imagen del contenedor de la aplicación.",{},{"id":816,"data":817,"type":218,"tunes":819},"p-cd-3",{"text":818},"Los indicadores de características, el despliegue por etapas, la evaluación en sombra, el tráfico canario y la reversión son útiles porque el comportamiento del LLM puede degradarse de maneras que las pruebas de contrato estáticas no detectan.",{},{"id":821,"data":822,"type":42,"tunes":824},"h-ct",{"text":823,"level":253},"El entrenamiento continuo se vuelve opcional; la evaluación continua se vuelve central",{},{"id":826,"data":827,"type":218,"tunes":829},"p-ct-1",{"text":828},"El MLOps tradicional a menudo enfatiza el entrenamiento continuo cuando nuevos datos o la deriva justifican el reentrenamiento.",{},{"id":831,"data":832,"type":218,"tunes":834},"p-ct-2",{"text":833},"Muchas aplicaciones de LLM nunca entrenan el modelo fundacional. Su bucle continuo equivalente es la evaluación continua: recopilar fallos y casos de producción representativos, añadirlos a los conjuntos de datos de evaluación, probar cambios candidatos de prompt\u002Fmodelo\u002Frecuperación y volver a desplegar solo cuando la evidencia mejore.",{},{"id":836,"data":837,"type":218,"tunes":839},"p-ct-3",{"text":838},"El ajuste fino puede reintroducir un ciclo de vida de entrenamiento, pero debería situarse dentro del mismo proceso más amplio de evaluación y lanzamiento.",{},{"id":841,"data":842,"type":42,"tunes":844},"h-monitor",{"text":843,"level":253},"¿Qué se debe monitorear en producción?",{},{"id":846,"data":847,"type":411,"tunes":879},"monitor-table",{"content":848,"stretched":43,"withHeadings":14},[849,852,855,858,861,864,867,869,871,873,876],[850,851],"Clase de señal","Ejemplos",[853,854],"Salud del sistema","Errores, tiempos de espera, disponibilidad del endpoint",[856,857],"Modelo\u002Fproveedor","ID del modelo, snapshot, límites de tasa, errores del proveedor",[859,860],"Latencia","Extremo a extremo, modelo, recuperación, herramientas y spans del reranker",[862,863],"Costo","Tokens de entrada\u002Fsalida, embeddings, gasto en herramientas\u002FAPI",[865,866],"Calidad","Éxito de tarea muestreado, corrección, relevancia, fundamentación",[782,868],"Proxies de recall de recuperación, recuperación vacía, fuentes obsoletas, cobertura de citas",[788,870],"Selección de herramientas, reintentos, bucles, transferencias, frecuencia de aprobación",[791,872],"Acciones denegadas, indicadores de inyección de prompt, fallos de límite de inquilino",[874,875],"Comentarios del usuario","Correcciones, abandono, escalado, calificaciones explícitas",[877,878],"Deriva por cambios","Cambios de proveedor\u002Fmodelo\u002Fconfiguración respecto al lanzamiento aprobado",{},{"id":881,"data":882,"type":42,"tunes":884},"h-prod-eval",{"text":883,"level":253},"Las trazas de producción pueden convertirse en datos de evaluación",{},{"id":886,"data":887,"type":218,"tunes":889},"p-prod-1",{"text":888},"Uno de los patrones modernos de LLMOps más útiles es convertir trazas de producción muestreadas en registros de evaluación.",{},{"id":891,"data":892,"type":218,"tunes":894},"p-prod-2",{"text":893},"MLflow actualmente admite la recuperación de trazas de producción y la puntuación no solo de salidas sino también de spans intermedios como trayectorias de recuperación o llamadas a herramientas.",{},{"id":896,"data":897,"type":218,"tunes":899},"p-prod-3",{"text":898},"Esto cierra el bucle entre observabilidad y desarrollo: los fallos reales pueden convertirse en casos de regresión en el próximo lanzamiento en lugar de desaparecer dentro de los registros.",{},{"id":901,"data":902,"type":42,"tunes":904},"h-repro",{"text":903,"level":253},"La reproducibilidad se vuelve condicional en lugar de exacta",{},{"id":906,"data":907,"type":218,"tunes":909},"p-repro-1",{"text":908},"La reproducibilidad clásica de ML a menudo busca recrear un modelo a partir de código versionado, datos, entorno y parámetros de entrenamiento.",{},{"id":911,"data":912,"type":218,"tunes":914},"p-repro-2",{"text":913},"Las aplicaciones de LLM alojadas no siempre pueden reproducir una salida idéntica token por token porque la generación es probabilística y los proveedores pueden controlar la infraestructura.",{},{"id":916,"data":917,"type":218,"tunes":919},"p-repro-3",{"text":918},"Por lo tanto, LLMOps busca una reproducibilidad conductual: registrar suficiente modelo\u002Fproveedor\u002Fversión, prompt, entradas de contexto, estado de recuperación y configuración de tiempo de ejecución para reproducir las condiciones y validar el comportamiento dentro de tolerancias esperadas.",{},{"id":921,"data":922,"type":42,"tunes":924},"h-lineage",{"text":923,"level":253},"El linaje se expande del linaje del modelo al linaje de la aplicación",{},{"id":926,"data":927,"type":218,"tunes":929},"p-lineage-1",{"text":928},"La guía de MLOps de AWS trata el linaje del modelo como el historial de artefactos de código, datos, modelo e infraestructura necesarios para el diagnóstico y la reproducibilidad.",{},{"id":931,"data":932,"type":218,"tunes":934},"p-lineage-2",{"text":933},"Para las aplicaciones de LLM, el linaje debería conectar además prompts, conjuntos de datos de evaluación, versiones de recuperación\u002Fíndice, esquemas de herramientas, configuración de agente\u002Ftiempo de ejecución y snapshots de proveedor\u002Fmodelo.",{},{"id":936,"data":937,"type":218,"tunes":939},"p-lineage-3",{"text":938},"La pregunta objetivo se convierte en: ¿Qué configuración exacta de la aplicación produjo esta traza?",{},{"id":941,"data":942,"type":42,"tunes":944},"h-routing",{"text":943,"level":253},"El enrutamiento multiproveedor y de modelos crea política operativa",{},{"id":946,"data":947,"type":218,"tunes":949},"p-route-1",{"text":948},"Una vez que una aplicación puede usar varios proveedores o modelos locales, el enrutamiento se convierte en una política operativa en lugar de una simple cadena de modelo.",{},{"id":951,"data":952,"type":218,"tunes":954},"p-route-2",{"text":953},"El enrutamiento puede depender de la capacidad, la latencia, el costo, la privacidad, la longitud del contexto, la disponibilidad, el soporte de herramientas o la localidad. Un respaldo puede preservar el tiempo de actividad mientras cambia la calidad de la respuesta o los supuestos de procesamiento de datos.",{},{"id":956,"data":957,"type":218,"tunes":959},"p-route-3",{"text":958},"Por lo tanto, LLMOps debería registrar qué ruta se seleccionó realmente y evaluar las rutas de forma independiente en lugar de tratar cada punto final compatible como conductualmente intercambiable.",{},{"id":961,"data":962,"type":42,"tunes":964},"h-implementation",{"text":963,"level":253},"Evidencia de implementación original",{},{"id":966,"data":967,"type":42,"tunes":969},"h-client",{"text":968,"level":252},"Aaasaasa AI Client: proveedor, modelo y tiempo de ejecución son objetos operativos separados",{},{"id":971,"data":972,"type":218,"tunes":974},"p-client-1",{"text":973},"Aaasaasa AI Client separa agente\u002Fcliente, proveedor, modelo, ubicación de tiempo de ejecución y permisos. Su AI Hub admite Ollama, LM Studio\u002Fpuntos finales compatibles con OpenAI y otros protocolos de proveedores en lugar de tratar “el modelo” como una única configuración global.",{},{"id":976,"data":977,"type":218,"tunes":979},"p-client-2",{"text":978},"La implementación incluye descubrimiento dinámico de modelos locales, transmisión, salida de pensamiento y controles explícitos de calentamiento\u002Fcarga y descarga de Ollama. Esa es evidencia operativa de que el servicio local de LLM introduce preocupaciones sobre el ciclo de vida de los recursos más allá de un nombre de modelo de API.",{},{"id":981,"data":982,"type":218,"tunes":984},"p-client-3",{"text":983},"El estado del proveedor se consulta a través de adaptadores de proveedor, y los tipos de conexión distinguen rutas locales, API en la nube, respaldadas por cuenta, agente remoto y cliente web. Estas son dimensiones operativas concretas que una plataforma consciente de LLM tiene que exponer.",{},{"id":986,"data":987,"type":218,"tunes":989},"p-client-4",{"text":988},"El repositorio también preserva un límite importante: un tiempo de ejecución local no es automáticamente inferencia local. La ubicación del proveedor\u002Fmodelo\u002Ftiempo de ejecución son preocupaciones versionadas o configurables que afectan la privacidad, la latencia, el costo y la disponibilidad.",{},{"id":991,"data":992,"type":42,"tunes":994},"h-sot",{"text":993,"level":252},"Source of Truth Research Engine: el estado de la aplicación LLM se extiende más allá del modelo",{},{"id":996,"data":997,"type":218,"tunes":999},"p-sot-1",{"text":998},"Source of Truth Research Engine combina búsqueda léxica, incrustaciones opcionales, instantáneas de fuentes, identidad SHA-256, afirmaciones, procedencia y seguimiento de contradicciones en torno a la investigación asistida por modelos locales.",{},{"id":1001,"data":1002,"type":218,"tunes":1004},"p-sot-2",{"text":1003},"Esta es evidencia útil de LLMOps porque cambiar solo el modelo no define el sistema de investigación. La recuperación, la adquisición de fuentes, la clasificación de evidencia y la procedencia persistente son artefactos operativos independientes.",{},{"id":1006,"data":1007,"type":218,"tunes":1009},"p-sot-3",{"text":1008},"La implementación trata deliberadamente la similitud semántica como descubrimiento en lugar de evidencia, mostrando por qué la observabilidad de LLMOps debería distinguir el comportamiento de recuperación de la validez de las afirmaciones.",{},{"id":1011,"data":1012,"type":411,"tunes":1041},"impl-table",{"content":1013,"stretched":43,"withHeadings":14},[1014,1017,1020,1023,1026,1029,1032,1035,1038],[1015,1016],"Implementación observada","Lección de LLMOps",[1018,1019],"Múltiples protocolos de proveedor","La identidad del proveedor es una dependencia operativa",[1021,1022],"Descubrimiento dinámico de modelos","Los modelos disponibles pueden cambiar independientemente del código de la aplicación",[1024,1025],"Controles de carga\u002Fdescarga de Ollama","Los modelos locales tienen ciclo de vida de memoria\u002Frecursos",[1027,1028],"Adaptadores de salud\u002Festado del proveedor","La disponibilidad del modelo necesita observabilidad en tiempo de ejecución",[1030,1031],"Ubicación separada de tiempo de ejecución e inferencia","La topología de despliegue no es un único booleano “local\u002Fnube”",[1033,1034],"Permisos centrales","La capacidad del modelo y la autoridad de las herramientas deben permanecer separadas",[1036,1037],"Canalización de recuperación léxica + semántica","La configuración de recuperación es parte del comportamiento de la aplicación",[1039,1040],"Persistencia de fuente\u002Fprocedencia","El estado operativo y la evidencia viven fuera de los pesos del modelo",{},{"id":1043,"data":1044,"type":226,"tunes":1047},"impl-boundary",{"body":1045,"title":1046,"variant":240},"Estos proyectos demuestran operaciones multiproveedor\u002Fmodelo local, separación de permisos, infraestructura de recuperación y persistencia de evidencia. No se presentan como una plataforma comercial completa de LLMOps ni como prueba de tráfico de producción a gran escala.","Límite de evidencia",{},{"id":1049,"data":1050,"type":42,"tunes":1052},"h-failures",{"text":1051,"level":253},"Modos de fallo comunes de LLMOps",{},{"id":1054,"data":1055,"type":411,"tunes":1096},"failure-table",{"content":1056,"stretched":43,"withHeadings":14},[1057,1060,1063,1066,1069,1072,1075,1078,1081,1084,1087,1090,1093],[1058,1059],"Modo de fallo","Qué salió mal realmente",[1061,1062],"Alias de modelo actualizado silenciosamente","El comportamiento cambió sin una versión controlada",[1064,1065],"Prompt cambiado sin evaluaciones","La regresión de comportamiento pasó las pruebas unitarias normales",[1067,1068],"Índice RAG obsoleto","Se culpó al modelo de generación por un fallo de recuperación\u002Fdatos",[1070,1071],"Solo se registra la respuesta final","La causa raíz en la trayectoria de recuperación\u002Fherramienta\u002Fcontexto es invisible",[1073,1074],"El respaldo del proveedor es silencioso","Un modelo\u002Fruta de datos diferente cambia el comportamiento sin atribución",[1076,1077],"Costo de tokens rastreado globalmente","Los flujos de trabajo costosos no se pueden localizar",[1079,1080],"Modelo juez cambiado","Las puntuaciones de evaluación se desvían sin cambios en la aplicación",[1082,1083],"Los rastros de producción nunca se convierten en pruebas","Los fallos conocidos regresan repetidamente",[1085,1086],"El modelo local permanece cargado indefinidamente","La presión de VRAM\u002Frecursos se convierte en inestabilidad operativa",[1088,1089],"Permisos codificados solo en el prompt","El comportamiento del modelo se confunde con autorización",[1091,1092],"Una puntuación de evaluación controla todo","Diferentes dimensiones de calidad se colapsan en un número engañoso",[1094,1095],"Existe el registro de modelos pero no las versiones de prompt\u002Fíndice","El linaje de la aplicación permanece incompleto",{},{"id":1098,"data":1099,"type":42,"tunes":1101},"h-misconceptions",{"text":1100,"level":253},"Conceptos erróneos comunes",{},{"id":1103,"data":1104,"type":411,"tunes":1139},"misconceptions-table",{"content":1105,"stretched":43,"withHeadings":14},[1106,1109,1112,1115,1118,1121,1124,1127,1130,1133,1136],[1107,1108],"Concepto erróneo","Corrección",[1110,1111],"“LLMOps reemplaza a MLOps.”","LLMOps extiende los principios de MLOps al comportamiento de aplicaciones específicas de LLM.",[1113,1114],"“LLMOps es ingeniería de prompts.”","Los prompts son un artefacto entre modelos, proveedores, contexto, recuperación, herramientas, evaluaciones y tiempo de ejecución.",[1116,1117],"“Las API alojadas eliminan el trabajo de operaciones.”","Eliminan parte del trabajo de servicio\u002Fentrenamiento de modelos, pero agregan gestión del ciclo de vida del proveedor, versiones y dependencias.",[1119,1120],"“Si la API es estable, la aplicación es estable.”","El comportamiento del modelo y las instantáneas de proveedor\u002Fmodelo pueden cambiar independientemente del esquema de la API.",[1122,1123],"“RAG es solo preprocesamiento de datos.”","En producción tiene su propio ciclo de vida de ingesta, índice, recuperación y frescura.",[1125,1126],"“Las salidas de LLM no se pueden probar.”","Se pueden evaluar con criterios deterministas, de referencia, de juez y humanos.",[1128,1129],"“Los jueces LLM son verdad fundamental objetiva.”","Son evaluadores basados en modelos que también requieren calibración y control de versiones.",[1131,1132],"“Un modelo local elimina LLMOps.”","El servicio local agrega archivos de modelo, VRAM, carga\u002Fdescarga, salud del tiempo de ejecución y preocupaciones de actualización.",[1134,1135],"“Observabilidad significa conteos de tokens.”","La observabilidad útil sigue prompts, recuperaciones, herramientas, tramos de modelo y resultados.",[1137,1138],"“El entrenamiento continuo es obligatorio.”","Muchas aplicaciones LLM usan evaluación continua sin entrenar el modelo base.",{},{"id":1141,"data":1142,"type":42,"tunes":1144},"h-design",{"text":1143,"level":253},"Una secuencia práctica de diseño de LLMOps",{},{"id":1146,"data":1147,"type":346,"tunes":1186},"design-flow",{"steps":1148,"title":1185,"orientation":345},[1149,1152,1155,1158,1161,1164,1167,1170,1173,1176,1179,1182],{"label":1150,"description":1151},"1. Definir la unidad de comportamiento","Enumera cada componente que pueda cambiar materialmente la salida: modelo, prompt, recuperación, herramientas, contexto y política.",{"label":1153,"description":1154},"2. Establecer el linaje de la aplicación","Versiona el código, el modelo\u002Fproveedor, los prompts, los conjuntos de datos de evaluación, la configuración de recuperación y los contratos de herramientas.",{"label":1156,"description":1157},"3. Construir conjuntos de datos de evaluación representativos","Usa casos esperados de éxito\u002Ffallo del diseño y de producción.",{"label":1159,"description":1160},"4. Separar las pruebas deterministas de las de comportamiento","Mantén las aserciones de esquema\u002Fseguridad distintas de la evaluación semántica de la salida.",{"label":1162,"description":1163},"5. Trazar la ejecución de extremo a extremo","Instrumenta el modelo, la recuperación, el reranking, las herramientas y los tramos del agente\u002Fruntime.",{"label":1165,"description":1166},"6. Definir las puertas de liberación","Establece umbrales de calidad, seguridad, latencia y coste.",{"label":1168,"description":1169},"7. Fijar o registrar explícitamente las versiones del modelo","Trata los cambios de modelo\u002Fproveedor como eventos de liberación.",{"label":1171,"description":1172},"8. Desplegar progresivamente","Usa flags, canarios o despliegue por etapas cuando las consecuencias lo justifiquen.",{"label":1174,"description":1175},"9. Evaluar las trazas de producción","Mide el comportamiento real de las tareas e identifica fallos recurrentes.",{"label":1177,"description":1178},"10. Alimentar los fallos de vuelta a los conjuntos de datos de evaluación","Convierte incidentes y correcciones en cobertura de regresión permanente.",{"label":1180,"description":1181},"11. Monitorizar los ciclos de vida del proveedor y de los datos","Sigue las deprecaciones, la frescura del índice, los cambios en las fuentes y la disponibilidad del runtime.",{"label":1183,"description":1184},"12. Retirar limpiamente las versiones obsoletas","Elimina prompts\u002Fmodelos\u002Fíndices\u002Fcredenciales antiguos tras las decisiones de migración y retención de evidencia.","Operar el sistema completo que produce comportamiento",{},{"id":1188,"data":1189,"type":42,"tunes":1191},"h-checklist",{"text":1190,"level":253},"Lista de verificación de arquitectura LLMOps",{},{"id":1193,"data":1194,"type":411,"tunes":1241},"checklist-table",{"content":1195,"stretched":43,"withHeadings":14},[1196,1199,1202,1205,1208,1211,1214,1217,1220,1223,1226,1229,1232,1235,1238],[1197,1198],"Pregunta","Evidencia esperada",[1200,1201],"¿Qué modelo\u002Fproveedor\u002Fversión atendió la solicitud?","Identidad del modelo rastreable",[1203,1204],"¿Qué prompt\u002Finstrucciones estaban activos?","Código\u002Fconfiguración de la aplicación versionados",[1206,1207],"¿Qué contexto llegó al modelo?","Traza de contexto\u002Frecuperación",[1209,1210],"¿Qué versión del corpus\u002Fíndice se usó?","Linaje de recuperación",[1212,1213],"¿Qué herramientas estaban disponibles y se llamaron?","Esquema de herramientas + traza de trayectoria",[1215,1216],"¿Qué permisos se aplicaron?","Registro de autorización en tiempo de ejecución",[1218,1219],"¿Cómo se mide la calidad?","Conjunto de datos de evaluación versionado + evaluadores",[1221,1222],"¿Cómo se prueban las actualizaciones del modelo?","Suite de regresión de comportamiento",[1224,1225],"¿Cómo se muestrea la calidad en producción?","Proceso de evaluación de trazas\u002Fretroalimentación",[1227,1228],"¿Se puede reproducir aproximadamente un fallo?","Linaje de modelo\u002Fcontexto\u002Fproveedor\u002Faplicación",[1230,1231],"¿Dónde se gasta el coste?","Atribución de modelo\u002Fherramientas\u002Frecuperación por traza",[1233,1234],"¿Qué desencadena la reversión?","Umbral definido de calidad\u002Fseguridad\u002Fcoste\u002Fdisponibilidad",[1236,1237],"¿Cómo se gestionan las deprecaciones del proveedor?","Proceso de migración\u002Ffallback",[1239,1240],"¿Cómo se operan los modelos locales?","Controles de salud, recursos, carga\u002Fdescarga y versión",{},{"id":1243,"data":1244,"type":42,"tunes":1246},"h-edge",{"text":1245,"level":253},"Casos límite y limitaciones",{},{"id":1248,"data":1249,"type":218,"tunes":1251},"p-edge-1",{"text":1250},"Una aplicación simple que llama a un único modelo alojado fijo sin recuperación ni herramientas puede necesitar solo LLMOps ligero: código de prompt versionado, evaluaciones, fijación del modelo, trazabilidad básica y monitorización del proveedor.",{},{"id":1253,"data":1254,"type":218,"tunes":1256},"p-edge-2",{"text":1255},"Un modelo autoalojado con ajuste fino puede requerir casi todo el stack clásico de MLOps más la evaluación de aplicaciones específica de LLM, lo que hace que la frontera entre MLOps y LLMOps sea intencionadamente difusa.",{},{"id":1258,"data":1259,"type":218,"tunes":1261},"p-edge-3",{"text":1260},"Una plataforma de agentes puede tener operaciones mínimas de entrenamiento de modelos pero operaciones sustanciales en tiempo de ejecución porque los fallos ocurren en la selección de herramientas, el estado y la orquestación.",{},{"id":1263,"data":1264,"type":218,"tunes":1266},"p-edge-4",{"text":1265},"Un sistema con mucho RAG puede estar dominado operativamente por la ingesta de documentos y la calidad de la recuperación más que por el servicio del modelo.",{},{"id":1268,"data":1269,"type":218,"tunes":1271},"p-edge-5",{"text":1270},"La terminología seguirá evolucionando. La pregunta arquitectónica duradera no es qué etiqueta de “Ops” gana, sino qué artefactos producen comportamiento y, por tanto, deben ser versionados, evaluados, observados y gobernados.",{},{"id":1273,"data":1274,"type":42,"tunes":1276},"h-change",{"text":1275,"level":253},"¿Qué cambiaría esta respuesta?",{},{"id":1278,"data":1279,"type":218,"tunes":1281},"p-change-1",{"text":1280},"Si los proveedores de modelos fundacionales estandarizaran un comportamiento del modelo perfectamente estable y un soporte de versiones a largo plazo, la gestión de proveedores\u002Fsnapshots podría volverse menos significativa operativamente.",{},{"id":1283,"data":1284,"type":218,"tunes":1286},"p-change-2",{"text":1285},"Si las aplicaciones asumieran cada vez más el ajuste fino o el entrenamiento, las preocupaciones clásicas de MLOps volverían a ser más centrales.",{},{"id":1288,"data":1289,"type":218,"tunes":1291},"p-change-3",{"text":1290},"El principio operativo seguiría siendo: cada componente que pueda cambiar materialmente el comportamiento en producción pertenece al linaje, las pruebas, la observabilidad y el control de cambios.",{},{"id":1293,"data":1294,"type":42,"tunes":1296},"h-related",{"text":1295,"level":253},"Conocimiento canónico relacionado",{},{"id":1298,"data":1299,"type":218,"tunes":1301},"p-related-1",{"text":1300},"LLMOps se sitúa por debajo de AI Governance y Enterprise AI Architecture: la gobernanza define qué cambios requieren evidencia y aprobación, mientras que LLMOps proporciona la maquinaria operativa para versionar, evaluar, desplegar y observar esos cambios.",{},{"id":1303,"data":1304,"type":218,"tunes":1306},"p-related-2",{"text":1305},"Context Engineering y RAG son subdominios operativos dentro de muchas aplicaciones LLM porque el contexto y la recuperación pueden cambiar el comportamiento independientemente del modelo.",{},{"id":1308,"data":1309,"type":218,"tunes":1311},"p-related-3",{"text":1310},"Agentic AI extiende LLMOps aún más hacia las operaciones de trayectoria, permisos y runtime de herramientas.",{},{"id":1313,"data":1314,"type":603,"tunes":1319},"ref-memory",{"url":1315,"title":1316,"excerpt":1317,"ctaLabel":1318},"https:\u002F\u002Fstajic.de\u002Fes\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","La memoria de los agentes de IA no es RAG: cómo separar memoria, recuperación, estado y contexto","La fiabilidad operativa mejora cuando la memoria, la recuperación, el estado de la aplicación y el contexto del modelo permanecen como objetos de ciclo de vida separados.","Leer el artículo de arquitectura",{},{"id":1321,"data":1322,"type":603,"tunes":1327},"ref-avb",{"url":1323,"title":1324,"excerpt":1325,"ctaLabel":1326},"https:\u002F\u002Fstajic.de\u002Fes\u002Fblog\u002Fthe-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers","El límite de validez de la respuesta: la capa que falta entre la relevancia y las respuestas fiables de IA","La evaluación de LLMOps debe preservar la versión, el alcance y las condiciones de evidencia bajo las cuales una respuesta sigue estando respaldada.","Leer El límite de validez de la respuesta",{},{"id":1329,"data":1330,"type":42,"tunes":1332},"h-faq",{"text":1331,"level":253},"Preguntas frecuentes",{},{"id":1334,"data":1335,"type":1334,"tunes":1374},"faq",{"items":1336,"title":1373},[1337,1341,1345,1349,1353,1357,1361,1365,1369],{"id":1338,"answer":1339,"question":1340},"faq1","MLOps opera sistemas de aprendizaje automático a lo largo de datos, entrenamiento, despliegue y monitoreo. LLMOps extiende esas prácticas a aplicaciones LLM donde los prompts, el contexto, la recuperación, los proveedores, las herramientas y las evaluaciones también afectan materialmente el comportamiento.","¿Cuál es la diferencia entre MLOps y LLMOps?",{"id":1342,"answer":1343,"question":1344},"faq2","No. LLMOps reutiliza disciplinas de MLOps como CI\u002FCD, linaje, evaluación, despliegue y monitoreo, y añade preocupaciones operativas específicas de LLM.","¿LLMOps reemplaza a MLOps?",{"id":1346,"answer":1347,"question":1348},"faq3","No necesariamente. Muchas usan modelos fundacionales externos y en su lugar dependen de la evaluación continua de prompts, modelos, recuperación y comportamiento de la aplicación. Los sistemas ajustados o autoentrenados aún pueden requerir canalizaciones de entrenamiento.","¿Las aplicaciones LLM necesitan entrenamiento continuo?",{"id":1350,"answer":1351,"question":1352},"faq4","Las salidas generativas son abiertas y el comportamiento del modelo puede cambiar entre prompts, instantáneas y contexto. Las evaluaciones proporcionan evidencia repetible de que una versión aún cumple con los criterios definidos de calidad y seguridad.","¿Por qué son tan importantes las evaluaciones en LLMOps?",{"id":1354,"answer":1355,"question":1356},"faq5","Como mínimo: código de la aplicación, modelo\u002Fproveedor\u002Fversión, prompts, conjuntos de datos\u002Fevaluadores de evaluación, configuración\u002Fíndices de recuperación, esquemas de herramientas, reglas de contexto y configuración relevante de seguridad\u002Fpermisos.","¿Qué debería versionarse en LLMOps?",{"id":1358,"answer":1359,"question":1360},"faq6","No. El mismo prompt puede comportarse de manera diferente con otro modelo, conjunto de recuperación, orden de contexto, superficie de herramientas o proveedor.","¿Es suficiente el versionado de prompts?",{"id":1362,"answer":1363,"question":1364},"faq7","GenAIOps es otro término de la industria para operar aplicaciones de IA generativa. Algunos proveedores lo usan de forma intercambiable o como una etiqueta más amplia que LLMOps.","¿Qué es GenAIOps?",{"id":1366,"answer":1367,"question":1368},"faq8","Monitorea trazas de extremo a extremo que incluyan llamadas al modelo, prompts\u002Fcontexto, recuperación, herramientas, latencia, tokens\u002Fcosto, muestras de calidad, seguridad y resultados finales de la tarea.","¿Cómo se monitorea una aplicación LLM?",{"id":1370,"answer":1371,"question":1372},"faq9","Sí. Los modelos locales añaden sus propias preocupaciones operativas, como archivos de modelo, hardware\u002FVRAM, carga\u002Fdescarga, salud del entorno de ejecución, cuantización y gestión de actualizaciones.","¿Pueden los LLM locales usar prácticas de LLMOps?","Preguntas frecuentes sobre MLOps vs LLMOps",{},{"id":1376,"data":1377,"type":42,"tunes":1379},"h-glossary",{"text":1378,"level":253},"Glosario",{},{"id":1381,"data":1382,"type":1381,"tunes":1427},"glossary",{"title":1383,"entries":1384},"Términos clave de MLOps y LLMOps",[1385,1387,1389,1393,1396,1400,1404,1408,1412,1415,1419,1423],{"term":415,"anchor":414,"definition":1386},"Prácticas de ingeniería para construir, desplegar, monitorear y mantener sistemas de aprendizaje automático y su ciclo de vida de datos\u002Fmodelos.",{"term":418,"anchor":417,"definition":1388},"Prácticas operativas para aplicaciones en producción cuyo comportamiento depende materialmente de modelos de lenguaje grandes y de los prompts, contexto, recuperación, herramientas y entorno de ejecución que los rodean.",{"term":1390,"anchor":1391,"definition":1392},"GenAIOps","genaiops","Disciplina operativa para aplicaciones de IA generativa; a menudo se usa como una etiqueta más amplia o alternativa para LLMOps.",{"term":400,"anchor":1394,"definition":1395},"continuous-training","Reentrenamiento y servicio automatizados o repetidos de modelos de ML a medida que cambian los datos o las implementaciones.",{"term":1397,"anchor":1398,"definition":1399},"Evaluación continua","continuous-evaluation","Evaluación repetida del comportamiento de IA candidato y en producción contra conjuntos de datos y criterios versionados.",{"term":1401,"anchor":1402,"definition":1403},"Instantánea de modelo","model-snapshot","Una versión concreta de un modelo alojado o empaquetado cuyo comportamiento puede probarse y referenciarse.",{"term":1405,"anchor":1406,"definition":1407},"Linaje de aplicación","application-lineage","Relación rastreable entre código, modelo\u002Fproveedor, prompts, datos\u002Frecuperación, herramientas, entorno de ejecución y configuración de la versión.",{"term":1409,"anchor":1410,"definition":1411},"Traza","trace","Registro estructurado de una ejecución de aplicación que contiene segmentos como llamadas al modelo, recuperaciones y operaciones de herramientas.",{"term":469,"anchor":1413,"definition":1414},"eval-dataset","Conjunto versionado de entradas representativas, expectativas y, opcionalmente, trazas\u002Fsalidas usadas para medir el comportamiento.",{"term":1416,"anchor":1417,"definition":1418},"Juez LLM","llm-judge","Un modelo de lenguaje usado como evaluador para criterios cualitativos o semánticos; es en sí mismo una dependencia de evaluación versionada.",{"term":1420,"anchor":1421,"definition":1422},"Regresión de comportamiento","behavioral-regression","Una degradación en la salida o trayectoria de la aplicación a pesar de que las interfaces y el código siguen ejecutándose correctamente.",{"term":1424,"anchor":1425,"definition":1426},"Enrutamiento de proveedores","provider-routing","Política para seleccionar entre proveedores\u002Fendpoints de modelos disponibles según capacidad, costo, latencia, privacidad o disponibilidad.",{},{"id":1429,"data":1430,"type":42,"tunes":1432},"h-conclusion",{"text":1431,"level":253},"Conclusión",{},{"id":1434,"data":1435,"type":218,"tunes":1437},"p-conclusion-1",{"text":1436},"MLOps y LLMOps comparten el mismo objetivo de ingeniería: hacer que los sistemas de IA sean lo suficientemente reproducibles, comprobables y observables para operar de manera fiable en producción.",{},{"id":1439,"data":1440,"type":218,"tunes":1442},"p-conclusion-2",{"text":1441},"La diferencia es la forma del sistema. El MLOps clásico a menudo se centra en entrenar y servir artefactos de modelos; LLMOps debe operar una pila de comportamiento en la que las instantáneas de modelos, prompts, contexto, recuperación, herramientas, permisos y proveedores pueden cambiar de forma independiente.",{},{"id":1444,"data":1445,"type":218,"tunes":1447},"p-conclusion-3",{"text":1446},"La regla útil más breve es: versiona, evalúa y observa todo lo que pueda cambiar materialmente el comportamiento de la aplicación LLM, no solo el modelo.",{},{"id":1449,"data":1450,"type":42,"tunes":1452},"h-sources",{"text":1451,"level":253},"Fuentes primarias y documentación actual",{},{"id":1454,"data":1455,"type":218,"tunes":1457},"p-sources-note",{"text":1456},"Las fuentes a continuación fundamentan la base de MLOps y los patrones operativos actuales para aplicaciones LLM y de agentes. Las secciones del proyecto son evidencia de implementación original y son intencionalmente más limitadas que las afirmaciones sobre una plataforma LLMOps completa.",{},{"id":1459,"data":1460,"type":1466,"tunes":1467},"src-google-mlops",{"link":1461,"meta":1462},"https:\u002F\u002Fdocs.cloud.google.com\u002Farchitecture\u002Fmlops-continuous-delivery-and-automation-pipelines-in-machine-learning",{"image":1463,"title":1464,"description":1465},{"url":381},"Google Cloud — MLOps: canalizaciones de entrega continua y automatización","Arquitectura de referencia que describe CI, CD, entrenamiento continuo, registro de modelos, metadatos, servicio y monitoreo para sistemas de ML.","linkTool",{},{"id":1469,"data":1470,"type":1466,"tunes":1476},"src-aws-lineage",{"link":1471,"meta":1472},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fmachine-learning-lens\u002Fmlops02-bp04.html",{"image":1473,"title":1474,"description":1475},{"url":381},"AWS Machine Learning Lens — Linaje de modelos","Guía actual para rastrear código, datos, modelos, entornos e infraestructura a lo largo de las versiones de ML.",{},{"id":1478,"data":1479,"type":1466,"tunes":1485},"src-aws-monitor",{"link":1480,"meta":1481},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fmachine-learning-lens\u002Fmlops06-bp02.html",{"image":1482,"title":1483,"description":1484},{"url":381},"AWS Machine Learning Lens — Observabilidad y seguimiento de modelos","Guía actual para el monitoreo de modelos en producción, deriva, salud de endpoints y linaje.",{},{"id":1487,"data":1488,"type":1466,"tunes":1494},"src-azure-llmops",{"link":1489,"meta":1490},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fmachine-learning\u002Fprompt-flow\u002Fhow-to-end-to-end-llmops-with-prompt-flow",{"image":1491,"title":1492,"description":1493},{"url":381},"Microsoft Azure — Ciclo de vida de GenAIOps \u002F LLMOps","Guía oficial que describe GenAIOps, a veces llamado LLMOps, a lo largo de inicialización, experimentación, evaluación\u002Frefinamiento y despliegue.",{},{"id":1496,"data":1497,"type":1466,"tunes":1503},"src-mlflow-genai",{"link":1498,"meta":1499},"https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002F",{"image":1500,"title":1501,"description":1502},{"url":381},"MLflow — Agentes y aplicaciones LLM","Documentación actual de operaciones GenAI que cubre trazabilidad, evaluación, prompts y observabilidad en producción para aplicaciones LLM y agentes.",{},{"id":1505,"data":1506,"type":1466,"tunes":1512},"src-mlflow-traces",{"link":1507,"meta":1508},"https:\u002F\u002Fwww.mlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Feval-monitor\u002Frunning-evaluation\u002Ftraces\u002F",{"image":1509,"title":1510,"description":1511},{"url":381},"MLflow — Evaluación de trazas de producción","Guía actual para evaluar trazas completas de LLM\u002Fagentes, incluidas trayectorias de recuperación y llamadas a herramientas.",{},{"id":1514,"data":1515,"type":1466,"tunes":1521},"src-mlflow-prompt-eval",{"link":1516,"meta":1517},"https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Fprompt-registry\u002Fevaluate-prompts\u002F",{"image":1518,"title":1519,"description":1520},{"url":381},"MLflow — Evaluación de prompts","Flujo de trabajo actual de evaluación de prompts\u002Fmodelos usando prompts versionados, conjuntos de datos, evaluadores y trazas.",{},{"id":1523,"data":1524,"type":1466,"tunes":1530},"src-openai-api",{"link":1525,"meta":1526},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Freference\u002Foverview",{"image":1527,"title":1528,"description":1529},{"url":381},"API de OpenAI — Versionado y snapshots de modelos","Guía actual de la API que recomienda versiones de modelo fijadas y evaluaciones porque el comportamiento de los prompts puede cambiar entre snapshots.",{},{"id":1532,"data":1533,"type":1466,"tunes":1539},"src-openai-prompting",{"link":1534,"meta":1535},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompting",{"image":1536,"title":1537,"description":1538},{"url":381},"OpenAI — Prompting","Guía actual para tratar los prompts de producción como código de aplicación, versionarlos mediante control de código fuente y cubrir los cambios con pruebas y comprobaciones de evaluación.",{},{"id":1541,"data":1542,"type":1466,"tunes":1548},"src-openai-deprecations",{"link":1543,"meta":1544},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fdeprecations",{"image":1545,"title":1546,"description":1547},{"url":381},"OpenAI — Deprecaciones","Evidencia actual del ciclo de vida del proveedor que muestra la retirada de modelos y superficies de plataforma como una dependencia operativa.",{},{"id":1550,"data":1551,"type":1466,"tunes":1557},"src-openai-promptfoo",{"link":1552,"meta":1553},"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fevaluation\u002Fmoving-from-openai-evals-to-promptfoo",{"image":1554,"title":1555,"description":1556},{"url":381},"OpenAI — Migración de flujos de trabajo de evaluación a Promptfoo","Guía de migración actual de 2026 que ilustra por qué los activos de evaluación deben permanecer portables a medida que cambian las herramientas del proveedor.",{},"2.31","MLOps opera sistemas de aprendizaje automático; LLMOps extiende esas prácticas a prompts, contexto, recuperación, proveedores, herramientas, evaluaciones y comportamiento en tiempo de ejecución en torno a modelos de lenguaje grandes.","\u002Fuploads\u002F2026\u002F10\u002Fmlops-vs-llmops-what-changes-when-the-model-is-an-llm-1791487319869-2v7hxo.webp","mlops-vs-llmops-what-changes-when-the-model-is-an-llm-1791487319869-2v7hxo","PUBLISHED","2026-10-08T15:20:00.000Z","2026-10-08T19:20:01.249Z","2026-10-08T19:31:17.955Z",{"en":1567,"de":1568,"sr":1569,"es":1570,"fr":1571,"it":1572,"ru":1573,"zh":1574},"\u002Fblog\u002Fmlops-vs-llmops-what-changes-when-the-model-is-an-llm","\u002Fde\u002Fblog\u002Fmlops-vs-llmops-what-changes-when-the-model-is-an-llm","\u002Fsr\u002Fblog\u002Fmlops-vs-llmops-what-changes-when-the-model-is-an-llm","\u002Fes\u002Fblog\u002Fmlops-vs-llmops-what-changes-when-the-model-is-an-llm","\u002Ffr\u002Fblog\u002Fmlops-vs-llmops-what-changes-when-the-model-is-an-llm","\u002Fit\u002Fblog\u002Fmlops-vs-llmops-what-changes-when-the-model-is-an-llm","\u002Fru\u002Fblog\u002Fmlops-vs-llmops-what-changes-when-the-model-is-an-llm","\u002Fzh\u002Fblog\u002Fmlops-vs-llmops-what-changes-when-the-model-is-an-llm",[1576,1580,1584,1588],{"id":1577,"name":1578,"slug":1579},88,"Versionado (prompts, modelos)","versioning",{"id":1581,"name":1582,"slug":1583},91,"Monitoreo (calidad, deriva)","monitoring",{"id":1585,"name":1586,"slug":1587},89,"Arnés de evaluación","evaluation-harness",{"id":1589,"name":1590,"slug":1591},58,"Evaluación y compuertas de calidad","evaluation",{"id":1593,"login":1594,"email":1595,"displayName":1596},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[1598,2721],{"lang":1599,"title":1600,"content":1601,"contentJson":1602,"excerpt":2720},"en","MLOps vs LLMOps: What Changes When the Model Is an LLM","{\"time\":1791487321430,\"blocks\":[{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"MLOps is the engineering discipline for reliably developing, deploying, versioning and operating machine-learning systems; LLMOps extends that discipline to applications built around large language models, where production behavior depends not only on a model artifact but also on prompts, context, retrieval, provider\u002Fmodel versions, tool calls, safety controls and evaluation pipelines. LLMOps does not replace MLOps. It changes the operational unit from “a model plus serving pipeline” toward “an evolving LLM application whose behavior emerges from several independently changing components.”\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Direct answer\",\"body\":\"\u003Cstrong>MLOps operates ML systems. LLMOps operates LLM applications.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Classical MLOps commonly centers on data pipelines, training, validation, model registry, deployment, drift and retraining. LLMOps keeps those disciplines where relevant, but often adds prompt\u002Fcontext versioning, model\u002Fprovider abstraction, RAG indexes, agent\u002Ftool traces, semantic evaluations, safety tests, token\u002Fcost monitoring and regression testing across rapidly changing model snapshots.\"},\"tunes\":{}},{\"id\":\"boundary\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"LLMOps is not just prompt management\",\"body\":\"A production LLM application can fail even when the prompt is unchanged: the provider can change a model snapshot, a RAG corpus can become stale, a reranker can regress, tool permissions can change, context assembly can drop evidence, or an agent can take a wrong trajectory. LLMOps therefore has to observe and version the system around the model, not only prompt text.\"},\"tunes\":{}},{\"id\":\"term-note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"Terminology boundary\",\"body\":\"\u003Cstrong>LLMOps\u003C\u002Fstrong>, \u003Cstrong>GenAIOps\u003C\u002Fstrong> and related terms are widely used engineering labels, but they are not one universal formal standard with a single canonical lifecycle. Microsoft currently describes GenAIOps as “sometimes called LLMOps,” while MLflow groups operational tooling around agents and LLM applications. This article uses LLMOps as a practical architecture term for operating production systems whose behavior materially depends on LLMs.\"},\"tunes\":{}},{\"id\":\"current\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"Current-source note — 8 October 2026\",\"body\":\"The operational surface is changing quickly. OpenAI currently recommends pinning model snapshots and running evals because prompting behavior can change between snapshots, and several older platform-specific prompt\u002Feval surfaces are being retired in 2026. The stable architectural lesson is to keep prompts, tests and evals portable and versioned with the application rather than depend on one provider's dashboard object model.\"},\"tunes\":{}},{\"id\":\"toc\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Contents\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"h-meaning\",\"type\":\"header\",\"data\":{\"text\":\"What MLOps really means\",\"level\":2},\"tunes\":{}},{\"id\":\"p-mlops-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MLOps applies software-engineering and operational discipline to machine-learning systems. The production challenge is broader than training a model: data collection, data validation, experimentation, reproducibility, model evaluation, deployment, infrastructure and monitoring all have to work together.\"},\"tunes\":{}},{\"id\":\"p-mlops-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Google's MLOps architecture guidance frames the discipline around continuous integration, continuous delivery and continuous training. CI validates not only code but also data, schemas and models; CD deploys ML pipelines and prediction services; CT can retrain and redeploy models as data or implementations change.\"},\"tunes\":{}},{\"id\":\"p-mlops-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"AWS guidance adds the same operational concerns from another angle: model lineage, model\u002Fversion traceability, drift monitoring and production-quality monitoring are core parts of keeping ML systems reliable after deployment.\"},\"tunes\":{}},{\"id\":\"h-llmops\",\"type\":\"header\",\"data\":{\"text\":\"What changes when the model is an LLM\",\"level\":2},\"tunes\":{}},{\"id\":\"p-llmops-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Large language models change the production problem because the application often does not own the complete model-training lifecycle. A team may call a hosted model API, run an open model locally, switch between providers or use several models for different tasks.\"},\"tunes\":{}},{\"id\":\"p-llmops-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The model is therefore only one versioned dependency inside a larger behavioral system. Prompts, retrieval results, context order, tools, model snapshot, temperature\u002Freasoning settings, safety filters and runtime orchestration can all change the output.\"},\"tunes\":{}},{\"id\":\"p-llmops-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"This creates a broader operational question: which combination of model, context, data, prompt, tools and runtime produced this behavior? LLMOps exists to make that question answerable and the answer reproducible enough for engineering work.\"},\"tunes\":{}},{\"id\":\"h-simple\",\"type\":\"header\",\"data\":{\"text\":\"The simplest example\",\"level\":2},\"tunes\":{}},{\"id\":\"p-simple-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Suppose an application answers internal policy questions.\"},\"tunes\":{}},{\"id\":\"p-simple-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"In a classical ML framing, you might version a trained classifier, deploy it and monitor prediction quality. In an LLM application, the answer might depend on a hosted model snapshot, a system prompt, an embedding model, a vector index, retrieval filters, a reranker and the final selected context.\"},\"tunes\":{}},{\"id\":\"p-simple-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Changing any one of those components can change the final answer even though the application endpoint and user question stay identical.\"},\"tunes\":{}},{\"id\":\"simple-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"A typical LLMOps release path\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Change one component\",\"description\":\"Prompt, model, provider, retrieval setting, tool schema or application code changes.\"},{\"label\":\"2. Run deterministic tests\",\"description\":\"Validate schemas, permissions, tool contracts, retrieval filters and application behavior.\"},{\"label\":\"3. Run behavioral evals\",\"description\":\"Compare representative outputs, retrieval quality and agent\u002Ftool trajectories against acceptance criteria.\"},{\"label\":\"4. Compare cost and latency\",\"description\":\"Measure token use, model calls, retrieval\u002Ftool overhead and response latency.\"},{\"label\":\"5. Deploy controlled version\",\"description\":\"Ship the concrete application configuration with model\u002Fprovider versions recorded.\"},{\"label\":\"6. Trace production behavior\",\"description\":\"Capture relevant model, retrieval, tool and runtime spans.\"},{\"label\":\"7. Evaluate production traces\",\"description\":\"Sample real executions for quality, grounding, safety and task success.\"},{\"label\":\"8. Roll back or iterate\",\"description\":\"Use regression evidence and operational signals to decide the next release.\"}]},\"tunes\":{}},{\"id\":\"h-stops\",\"type\":\"header\",\"data\":{\"text\":\"Where the simple example stops\",\"level\":2},\"tunes\":{}},{\"id\":\"p-stops-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Some LLM systems still train or fine-tune their own models, so traditional MLOps practices such as training pipelines, model registry and data lineage remain directly relevant.\"},\"tunes\":{}},{\"id\":\"p-stops-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Other systems use only external foundation-model APIs and never run continuous training. Their main operational workload is application evaluation, model\u002Fprovider change management, prompt\u002Fcontext versioning, retrieval quality and observability.\"},\"tunes\":{}},{\"id\":\"p-stops-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"There is therefore no single universal “LLMOps pipeline.” The exact lifecycle depends on whether you train, fine-tune, self-host, retrieve external knowledge, run agents or depend on managed model APIs.\"},\"tunes\":{}},{\"id\":\"h-compare\",\"type\":\"header\",\"data\":{\"text\":\"MLOps vs LLMOps\",\"level\":2},\"tunes\":{}},{\"id\":\"main-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"What stays the same and what expands\",\"layout\":\"table\",\"columns\":[{\"id\":\"mlops\",\"label\":\"MLOps\"},{\"id\":\"llmops\",\"label\":\"LLMOps\"}],\"rows\":[{\"id\":\"unit\",\"label\":\"Primary operational unit\",\"values\":[\"\",\"\"]},{\"id\":\"model\",\"label\":\"Model ownership\",\"values\":[\"\",\"\"]},{\"id\":\"change\",\"label\":\"Typical change\",\"values\":[\"\",\"\"]},{\"id\":\"eval\",\"label\":\"Evaluation\",\"values\":[\"\",\"\"]},{\"id\":\"monitor\",\"label\":\"Production monitoring\",\"values\":[\"\",\"\"]},{\"id\":\"training\",\"label\":\"Continuous training\",\"values\":[\"\",\"\"]},{\"id\":\"registry\",\"label\":\"Versioned artifacts\",\"values\":[\"\",\"\"]},{\"id\":\"rollback\",\"label\":\"Rollback target\",\"values\":[\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"h-extension\",\"type\":\"header\",\"data\":{\"text\":\"LLMOps extends MLOps rather than replacing it\",\"level\":2},\"tunes\":{}},{\"id\":\"p-extension-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The core operational principles do not disappear: source control, CI\u002FCD, reproducibility, lineage, deployment controls, monitoring, rollback and measurable acceptance criteria remain essential.\"},\"tunes\":{}},{\"id\":\"p-extension-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The extension is that more behavior-defining artifacts now sit outside the model weights. A managed foundation model can change behavior through snapshot upgrades, while application output can change through prompt or retrieval changes without any model retraining.\"},\"tunes\":{}},{\"id\":\"p-extension-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is why the useful hierarchy is usually DevOps → MLOps → LLMOps\u002FGenAIOps as increasingly specialized operational concerns, not three mutually exclusive practices.\"},\"tunes\":{}},{\"id\":\"h-artifacts\",\"type\":\"header\",\"data\":{\"text\":\"What has to be versioned in LLMOps?\",\"level\":2},\"tunes\":{}},{\"id\":\"artifact-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Artifact\",\"Why it matters\"],[\"Application code\",\"Defines orchestration, validation, retries and business behavior\"],[\"Model family + snapshot\u002Fversion\",\"Different snapshots can produce different behavior\"],[\"Provider \u002F endpoint\",\"Changes data flow, latency, limits, pricing and availability\"],[\"Prompt\u002Finstruction code\",\"Changes model behavior even with same model\"],[\"Generation\u002Freasoning parameters\",\"Can alter determinism, latency, depth and cost\"],[\"Eval dataset\",\"Defines what “good enough” is tested against\"],[\"Scorers \u002F graders\",\"Define how quality is measured\"],[\"Embedding model\",\"Changes vector representation and retrieval behavior\"],[\"Chunking\u002Findex configuration\",\"Changes what can be retrieved\"],[\"Reranker \u002F retrieval fusion\",\"Changes result ordering\"],[\"Tool schemas\",\"Change what the model can request and how\"],[\"Permission profile\",\"Changes what tool actions may actually execute\"],[\"Context assembly rules\",\"Change what evidence and state reach the model\"],[\"Safety\u002Fguardrail configuration\",\"Changes allowed or blocked behavior\"]]},\"tunes\":{}},{\"id\":\"h-model-version\",\"type\":\"header\",\"data\":{\"text\":\"Model snapshots become release dependencies\",\"level\":2},\"tunes\":{}},{\"id\":\"p-model-version-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"With hosted LLMs, the team may not control model training, but it still controls which model or snapshot the application calls.\"},\"tunes\":{}},{\"id\":\"p-model-version-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"OpenAI's current API guidance explicitly warns that prompting behavior can change between model snapshots and recommends pinning production applications to specific snapshots where consistency matters, then running evals when upgrading.\"},\"tunes\":{}},{\"id\":\"p-model-version-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The operational consequence is straightforward: model upgrades should be treated as application releases, not invisible infrastructure maintenance.\"},\"tunes\":{}},{\"id\":\"h-provider\",\"type\":\"header\",\"data\":{\"text\":\"Provider lifecycle becomes part of operations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-provider-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLM applications often depend on provider rate limits, deprecation schedules, API semantics, context limits, data-handling rules and pricing.\"},\"tunes\":{}},{\"id\":\"p-provider-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A provider can deprecate a model while your application code remains unchanged. OpenAI's current deprecation schedule, for example, includes 2026 retirement dates for older model snapshots and platform surfaces.\"},\"tunes\":{}},{\"id\":\"p-provider-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLMOps therefore needs provider lifecycle tracking, migration testing and fallback decisions in addition to model-quality monitoring.\"},\"tunes\":{}},{\"id\":\"h-prompt\",\"type\":\"header\",\"data\":{\"text\":\"Prompts behave like production code\",\"level\":2},\"tunes\":{}},{\"id\":\"p-prompt-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Prompts are executable behavioral configuration. Small changes can alter output quality, tool selection and policy interpretation.\"},\"tunes\":{}},{\"id\":\"p-prompt-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"OpenAI's current guidance recommends storing production prompts in application code, reviewing prompt changes through pull requests, using typed inputs and covering changes with tests and evaluation checks.\"},\"tunes\":{}},{\"id\":\"p-prompt-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"That makes prompt versioning less like editing marketing copy and more like changing a function whose output is probabilistic and model-dependent.\"},\"tunes\":{}},{\"id\":\"h-context\",\"type\":\"header\",\"data\":{\"text\":\"Context engineering becomes an operational concern\",\"level\":2},\"tunes\":{}},{\"id\":\"p-context-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The production model rarely receives only a static prompt. It may receive conversation history, retrieved documents, tool outputs, memory, current application state and policy instructions.\"},\"tunes\":{}},{\"id\":\"p-context-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLMOps must therefore observe context assembly: which evidence was selected, which state version was current, whether truncation occurred and whether important instructions survived compaction.\"},\"tunes\":{}},{\"id\":\"p-context-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"A model regression and a context regression can look identical at the final answer. Tracing the actual context path is what lets the team separate them.\"},\"tunes\":{}},{\"id\":\"h-rag\",\"type\":\"header\",\"data\":{\"text\":\"RAG creates its own operational lifecycle\",\"level\":2},\"tunes\":{}},{\"id\":\"p-rag-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A RAG system introduces a second production pipeline beside model inference: ingestion, extraction, chunking, metadata, embeddings, indexes, retrieval, reranking and context selection.\"},\"tunes\":{}},{\"id\":\"p-rag-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The knowledge corpus can change every day even when the model and prompt do not. A stale index or broken metadata filter can therefore degrade answer quality without any model drift.\"},\"tunes\":{}},{\"id\":\"p-rag-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLMOps for RAG should track corpus\u002Findex version, embedding model, chunking policy, retrieval configuration, source freshness and retrieval metrics separately from generation quality.\"},\"tunes\":{}},{\"id\":\"ref-rag-diagnostic\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method\",\"title\":\"RAG Failed — But Which Layer Actually Failed? A Diagnostic Method\",\"excerpt\":\"A production LLM pipeline needs separate observability for source coverage, retrieval, ranking, context assembly and generation.\",\"ctaLabel\":\"Read the RAG diagnostic method\"},\"tunes\":{}},{\"id\":\"h-evals\",\"type\":\"header\",\"data\":{\"text\":\"Evals replace “looks good to me” with release evidence\",\"level\":2},\"tunes\":{}},{\"id\":\"p-eval-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Generative outputs are often open-ended, so exact-match tests are insufficient for many tasks. LLMOps adds evaluation datasets and scorers that can measure task success, correctness, safety, groundedness, style or domain-specific acceptance criteria.\"},\"tunes\":{}},{\"id\":\"p-eval-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"MLflow's current GenAI evaluation stack supports versioned evaluation datasets, prompt\u002Fmodel comparisons, custom scorers and evaluation over complete traces.\"},\"tunes\":{}},{\"id\":\"p-eval-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The strongest practice is evaluation-driven development: define representative cases and acceptance criteria before or alongside changes, then compare releases against the same evidence.\"},\"tunes\":{}},{\"id\":\"eval-rule\",\"type\":\"callout\",\"data\":{\"variant\":\"success\",\"title\":\"Behavioral changes need behavioral tests\",\"body\":\"A deployment should not be considered equivalent merely because the API contract still works. If the prompt, model, retrieval or tools changed, the behavioral regression suite should run again.\"},\"tunes\":{}},{\"id\":\"h-judges\",\"type\":\"header\",\"data\":{\"text\":\"LLM-as-a-judge is useful but not ground truth\",\"level\":2},\"tunes\":{}},{\"id\":\"p-judge-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLM judges can scale evaluation for qualities that are expensive to encode as deterministic assertions, such as relevance, tone or groundedness.\"},\"tunes\":{}},{\"id\":\"p-judge-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"However, the judge is another model with its own bias, version and prompt. Judge configuration should therefore be versioned and calibrated against human or deterministic reference cases where consequence matters.\"},\"tunes\":{}},{\"id\":\"p-judge-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"A production eval can mix deterministic checks, reference-based metrics, model judges and human review rather than asking one metric to represent every quality dimension.\"},\"tunes\":{}},{\"id\":\"h-tracing\",\"type\":\"header\",\"data\":{\"text\":\"Tracing becomes more important than endpoint logs\",\"level\":2},\"tunes\":{}},{\"id\":\"p-trace-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Traditional API logs can tell you that a request took two seconds and returned HTTP 200. They cannot tell you which retrieved chunks were selected, which tool the agent called or which model span consumed most tokens.\"},\"tunes\":{}},{\"id\":\"p-trace-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"MLflow's current GenAI tracing captures prompts, retrievals, tool calls and application spans, and its production evaluation flow can score intermediate trajectory information rather than only final text.\"},\"tunes\":{}},{\"id\":\"p-trace-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is a major LLMOps shift: observability follows the behavioral graph of the application, not only the serving endpoint.\"},\"tunes\":{}},{\"id\":\"h-agent\",\"type\":\"header\",\"data\":{\"text\":\"Agents expand LLMOps into runtime operations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-agent-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"An agentic application can perform several model calls, tool invocations and state transitions before producing a result.\"},\"tunes\":{}},{\"id\":\"p-agent-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Operating agents therefore requires step counts, tool-call traces, permission denials, retries, loop detection, human approvals and verified final state in addition to ordinary model latency and token metrics.\"},\"tunes\":{}},{\"id\":\"p-agent-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"A correct final answer can hide a bad trajectory, so agent evaluation must inspect the path as well as the result.\"},\"tunes\":{}},{\"id\":\"ref-agent-reliability\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough\",\"title\":\"AI Agent Reliability: Why the Final Answer Is Not Enough\",\"excerpt\":\"Why agent production evaluation must include tool calls, state transitions, approvals and recoverability.\",\"ctaLabel\":\"Read the agent reliability article\"},\"tunes\":{}},{\"id\":\"h-cost\",\"type\":\"header\",\"data\":{\"text\":\"Tokens, model calls and context become cost variables\",\"level\":2},\"tunes\":{}},{\"id\":\"p-cost-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Classical ML inference cost is often dominated by serving infrastructure or per-prediction compute. LLM applications can add provider token pricing, repeated agent calls, embedding calls, reranking and tool\u002Fruntime overhead.\"},\"tunes\":{}},{\"id\":\"p-cost-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Cost therefore has to be attributed to task or trace, not only to one endpoint. A workflow that makes eight hidden model calls can be functionally correct but operationally unacceptable.\"},\"tunes\":{}},{\"id\":\"p-cost-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Latency behaves the same way: model latency, retrieval, reranking and external tools compose into end-to-end user latency.\"},\"tunes\":{}},{\"id\":\"h-cache\",\"type\":\"header\",\"data\":{\"text\":\"Caching becomes semantic, not only technical\",\"level\":2},\"tunes\":{}},{\"id\":\"p-cache-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLM systems can cache prompts, embeddings, retrieval results or full responses, but the cache key must reflect the semantics that can change the result.\"},\"tunes\":{}},{\"id\":\"p-cache-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A response cache that ignores model version, tenant, permissions or source freshness can return a technically valid but semantically invalid answer.\"},\"tunes\":{}},{\"id\":\"p-cache-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLMOps therefore treats cache invalidation as part of model\u002Fcontext\u002Fdata versioning rather than only infrastructure optimization.\"},\"tunes\":{}},{\"id\":\"h-safety\",\"type\":\"header\",\"data\":{\"text\":\"Safety and permissions become release criteria\",\"level\":2},\"tunes\":{}},{\"id\":\"p-safety-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Generative systems can produce unbounded text and agents can trigger external actions. Safety testing therefore sits closer to ordinary CI\u002FCD than in many classical predictive ML systems.\"},\"tunes\":{}},{\"id\":\"p-safety-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Permission checks, prompt-injection tests, tenant-isolation tests and side-effect approvals should be reproducible regression tests where those risks exist.\"},\"tunes\":{}},{\"id\":\"p-safety-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The model may suggest an operation, but the runtime still has to enforce authorization. LLMOps owns the evidence that those controls continue to work after model, prompt or tool changes.\"},\"tunes\":{}},{\"id\":\"h-ci\",\"type\":\"header\",\"data\":{\"text\":\"What CI looks like in LLMOps\",\"level\":2},\"tunes\":{}},{\"id\":\"ci-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"CI layer\",\"Example checks\"],[\"Code\",\"Unit tests, type checks, schema validation\"],[\"Prompts\",\"Template rendering, required variables, policy text, snapshot review\"],[\"Models\u002Fproviders\",\"Compatibility, output schema, capability and regression tests\"],[\"RAG\",\"Chunking fixtures, filter tests, Recall@k, reranker regression\"],[\"Tools\",\"Input\u002Foutput schema tests, permission tests, idempotency tests\"],[\"Agents\",\"Trajectory fixtures, loop limits, handoff\u002Ftool-selection tests\"],[\"Security\",\"Prompt injection, unauthorized tools, cross-tenant negative tests\"],[\"Behavioral evals\",\"Task success, correctness, grounding, safety, domain criteria\"],[\"Operational\",\"Latency, token\u002Fcost budgets, timeout\u002Ffallback behavior\"]]},\"tunes\":{}},{\"id\":\"h-cd\",\"type\":\"header\",\"data\":{\"text\":\"What CD looks like in LLMOps\",\"level\":2},\"tunes\":{}},{\"id\":\"p-cd-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A production release may deploy no new model artifact at all. It may simply ship a new prompt, retrieval configuration, tool set or provider mapping.\"},\"tunes\":{}},{\"id\":\"p-cd-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The release bundle should therefore identify the complete behavior-defining configuration rather than only the application container image.\"},\"tunes\":{}},{\"id\":\"p-cd-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Feature flags, staged rollout, shadow evaluation, canary traffic and rollback are useful because LLM behavior can regress in ways that static contract tests do not detect.\"},\"tunes\":{}},{\"id\":\"h-ct\",\"type\":\"header\",\"data\":{\"text\":\"Continuous training becomes optional; continuous evaluation becomes central\",\"level\":2},\"tunes\":{}},{\"id\":\"p-ct-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Traditional MLOps often emphasizes continuous training when new data or drift justifies retraining.\"},\"tunes\":{}},{\"id\":\"p-ct-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Many LLM applications never train the foundation model. Their equivalent continuous loop is continuous evaluation: collect failures and representative production cases, add them to evaluation datasets, test candidate prompt\u002Fmodel\u002Fretrieval changes and redeploy only when evidence improves.\"},\"tunes\":{}},{\"id\":\"p-ct-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Fine-tuning can reintroduce a training lifecycle, but it should sit inside the same broader evaluation and release process.\"},\"tunes\":{}},{\"id\":\"h-monitor\",\"type\":\"header\",\"data\":{\"text\":\"What should be monitored in production?\",\"level\":2},\"tunes\":{}},{\"id\":\"monitor-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Signal class\",\"Examples\"],[\"System health\",\"Errors, timeouts, endpoint availability\"],[\"Model\u002Fprovider\",\"Model ID, snapshot, rate limits, provider errors\"],[\"Latency\",\"End-to-end, model, retrieval, tool and reranker spans\"],[\"Cost\",\"Input\u002Foutput tokens, embeddings, tool\u002FAPI spend\"],[\"Quality\",\"Sampled task success, correctness, relevance, groundedness\"],[\"RAG\",\"Retrieval recall proxies, empty retrieval, stale sources, citation coverage\"],[\"Agents\",\"Tool selection, retries, loops, handoffs, approval frequency\"],[\"Security\",\"Denied actions, prompt-injection indicators, tenant-boundary failures\"],[\"User feedback\",\"Corrections, abandonment, escalation, explicit ratings\"],[\"Change drift\",\"Provider\u002Fmodel\u002Fconfig changes relative to approved release\"]]},\"tunes\":{}},{\"id\":\"h-prod-eval\",\"type\":\"header\",\"data\":{\"text\":\"Production traces can become evaluation data\",\"level\":2},\"tunes\":{}},{\"id\":\"p-prod-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"One of the most useful modern LLMOps patterns is to turn sampled production traces into evaluation records.\"},\"tunes\":{}},{\"id\":\"p-prod-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"MLflow currently supports retrieving production traces and scoring not only outputs but intermediate spans such as retrieval or tool-call trajectories.\"},\"tunes\":{}},{\"id\":\"p-prod-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"This closes the loop between observability and development: real failures can become regression cases in the next release rather than disappear inside logs.\"},\"tunes\":{}},{\"id\":\"h-repro\",\"type\":\"header\",\"data\":{\"text\":\"Reproducibility becomes conditional rather than exact\",\"level\":2},\"tunes\":{}},{\"id\":\"p-repro-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Classical ML reproducibility often aims to recreate a model from versioned code, data, environment and training parameters.\"},\"tunes\":{}},{\"id\":\"p-repro-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Hosted LLM applications cannot always reproduce identical output token-for-token because generation is probabilistic and providers may control infrastructure.\"},\"tunes\":{}},{\"id\":\"p-repro-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLMOps therefore aims for behavioral reproducibility: record enough model\u002Fprovider\u002Fversion, prompt, context inputs, retrieval state and runtime configuration to reproduce the conditions and validate behavior within expected tolerances.\"},\"tunes\":{}},{\"id\":\"h-lineage\",\"type\":\"header\",\"data\":{\"text\":\"Lineage expands from model lineage to application lineage\",\"level\":2},\"tunes\":{}},{\"id\":\"p-lineage-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"AWS's MLOps guidance treats model lineage as the history of code, data, model and infrastructure artifacts needed for diagnosis and reproducibility.\"},\"tunes\":{}},{\"id\":\"p-lineage-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"For LLM applications, lineage should additionally connect prompts, eval datasets, retrieval\u002Findex versions, tool schemas, agent\u002Fruntime configuration and provider\u002Fmodel snapshots.\"},\"tunes\":{}},{\"id\":\"p-lineage-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The target question becomes: Which exact application configuration produced this trace?\"},\"tunes\":{}},{\"id\":\"h-routing\",\"type\":\"header\",\"data\":{\"text\":\"Multi-provider and model routing create operational policy\",\"level\":2},\"tunes\":{}},{\"id\":\"p-route-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Once an application can use several providers or local models, routing becomes an operational policy rather than a simple model string.\"},\"tunes\":{}},{\"id\":\"p-route-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Routing may depend on capability, latency, cost, privacy, context length, availability, tool support or locality. A fallback can preserve uptime while changing answer quality or data-processing assumptions.\"},\"tunes\":{}},{\"id\":\"p-route-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLMOps should therefore log which route was actually selected and evaluate routes independently rather than treat every compatible endpoint as behaviorally interchangeable.\"},\"tunes\":{}},{\"id\":\"h-implementation\",\"type\":\"header\",\"data\":{\"text\":\"Original implementation evidence\",\"level\":2},\"tunes\":{}},{\"id\":\"h-client\",\"type\":\"header\",\"data\":{\"text\":\"Aaasaasa AI Client: provider, model and runtime are separate operational objects\",\"level\":3},\"tunes\":{}},{\"id\":\"p-client-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Aaasaasa AI Client separates agent\u002Fclient, provider, model, runtime location and permissions. Its AI Hub supports Ollama, LM Studio\u002FOpenAI-compatible endpoints and other provider protocols rather than treating “the model” as one global setting.\"},\"tunes\":{}},{\"id\":\"p-client-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The implementation includes dynamic local model discovery, streaming, thinking output and explicit Ollama warm\u002Fload and unload controls. That is operational evidence that local LLM serving introduces resource lifecycle concerns beyond an API model name.\"},\"tunes\":{}},{\"id\":\"p-client-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Provider status is queried through provider adapters, and connection types distinguish local, cloud API, account-backed, remote-agent and web-client paths. These are concrete operational dimensions an LLM-aware platform has to surface.\"},\"tunes\":{}},{\"id\":\"p-client-4\",\"type\":\"paragraph\",\"data\":{\"text\":\"The repository also preserves an important boundary: a local runtime is not automatically local inference. Provider\u002Fmodel\u002Fruntime location are versioned or configurable concerns that affect privacy, latency, cost and availability.\"},\"tunes\":{}},{\"id\":\"h-sot\",\"type\":\"header\",\"data\":{\"text\":\"Source of Truth Research Engine: LLM application state extends beyond the model\",\"level\":3},\"tunes\":{}},{\"id\":\"p-sot-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The Source of Truth Research Engine combines lexical search, optional embeddings, source snapshots, SHA-256 identity, claims, provenance and contradiction tracking around local model-assisted research.\"},\"tunes\":{}},{\"id\":\"p-sot-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is useful LLMOps evidence because changing the model alone does not define the research system. Retrieval, source acquisition, evidence classification and persistent provenance are independent operational artifacts.\"},\"tunes\":{}},{\"id\":\"p-sot-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The implementation deliberately treats semantic similarity as discovery rather than evidence, showing why LLMOps observability should distinguish retrieval behavior from claim validity.\"},\"tunes\":{}},{\"id\":\"impl-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Observed implementation\",\"LLMOps lesson\"],[\"Multiple provider protocols\",\"Provider identity is an operational dependency\"],[\"Dynamic model discovery\",\"Available models can change independently of application code\"],[\"Ollama load\u002Funload controls\",\"Local models have memory\u002Fresource lifecycle\"],[\"Provider health\u002Fstatus adapters\",\"Model availability needs runtime observability\"],[\"Separate runtime and inference location\",\"Deployment topology is not one boolean “local\u002Fcloud”\"],[\"Central permissions\",\"Model capability and tool authority must remain separate\"],[\"Lexical + semantic retrieval pipeline\",\"Retrieval configuration is part of application behavior\"],[\"Source\u002Fprovenance persistence\",\"Operational state and evidence live outside model weights\"]]},\"tunes\":{}},{\"id\":\"impl-boundary\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"Evidence boundary\",\"body\":\"These projects demonstrate multi-provider\u002Flocal-model operations, permission separation, retrieval infrastructure and evidence persistence. They are not presented as a complete commercial LLMOps platform or proof of large-scale production traffic.\"},\"tunes\":{}},{\"id\":\"h-failures\",\"type\":\"header\",\"data\":{\"text\":\"Common LLMOps failure modes\",\"level\":2},\"tunes\":{}},{\"id\":\"failure-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Failure mode\",\"What actually went wrong\"],[\"Model alias upgraded silently\",\"Behavior changed without controlled release\"],[\"Prompt changed without evals\",\"Behavioral regression passed normal unit tests\"],[\"RAG index stale\",\"Generation model was blamed for retrieval\u002Fdata failure\"],[\"Only final answer is logged\",\"Root cause in retrieval\u002Ftool\u002Fcontext trajectory is invisible\"],[\"Provider fallback is silent\",\"Different model\u002Fdata path changes behavior without attribution\"],[\"Token cost tracked globally\",\"Expensive workflows cannot be localized\"],[\"Judge model changed\",\"Evaluation scores drift without application change\"],[\"Production traces never become tests\",\"Known failures repeatedly return\"],[\"Local model stays loaded indefinitely\",\"VRAM\u002Fresource pressure becomes operational instability\"],[\"Permissions encoded only in prompt\",\"Model behavior is mistaken for authorization\"],[\"One eval score gates everything\",\"Different quality dimensions are collapsed into a misleading number\"],[\"Model registry exists but prompt\u002Findex versions do not\",\"Application lineage remains incomplete\"]]},\"tunes\":{}},{\"id\":\"h-misconceptions\",\"type\":\"header\",\"data\":{\"text\":\"Common misconceptions\",\"level\":2},\"tunes\":{}},{\"id\":\"misconceptions-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Misconception\",\"Correction\"],[\"“LLMOps replaces MLOps.”\",\"LLMOps extends MLOps principles to LLM-specific application behavior.\"],[\"“LLMOps is prompt engineering.”\",\"Prompts are one artifact among models, providers, context, retrieval, tools, evals and runtime.\"],[\"“Hosted APIs remove operations work.”\",\"They remove some model-serving\u002Ftraining work but add provider lifecycle, version and dependency management.\"],[\"“If the API is stable, the app is stable.”\",\"Model behavior and provider\u002Fmodel snapshots can change independently of API schema.\"],[\"“RAG is just data preprocessing.”\",\"In production it has its own ingestion, index, retrieval and freshness lifecycle.\"],[\"“LLM outputs cannot be tested.”\",\"They can be evaluated with deterministic, reference, judge and human criteria.\"],[\"“LLM judges are objective ground truth.”\",\"They are model-based evaluators that also require calibration and version control.\"],[\"“A local model eliminates LLMOps.”\",\"Local serving adds model files, VRAM, load\u002Funload, runtime health and upgrade concerns.\"],[\"“Observability means token counts.”\",\"Useful observability follows prompts, retrievals, tools, model spans and outcomes.\"],[\"“Continuous training is mandatory.”\",\"Many LLM apps use continuous evaluation without training the foundation model.\"]]},\"tunes\":{}},{\"id\":\"h-design\",\"type\":\"header\",\"data\":{\"text\":\"A practical LLMOps design sequence\",\"level\":2},\"tunes\":{}},{\"id\":\"design-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"Operate the complete behavior-producing system\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Define the behavior unit\",\"description\":\"List every component that can materially change output: model, prompt, retrieval, tools, context and policy.\"},{\"label\":\"2. Establish application lineage\",\"description\":\"Version code, model\u002Fprovider, prompts, eval datasets, retrieval configuration and tool contracts.\"},{\"label\":\"3. Build representative eval datasets\",\"description\":\"Use expected success\u002Ffailure cases from design and production.\"},{\"label\":\"4. Separate deterministic and behavioral tests\",\"description\":\"Keep schema\u002Fsecurity assertions distinct from semantic output evaluation.\"},{\"label\":\"5. Trace end-to-end execution\",\"description\":\"Instrument model, retrieval, reranking, tools and agent\u002Fruntime spans.\"},{\"label\":\"6. Define release gates\",\"description\":\"Set quality, safety, latency and cost thresholds.\"},{\"label\":\"7. Pin or explicitly record model versions\",\"description\":\"Treat model\u002Fprovider changes as release events.\"},{\"label\":\"8. Deploy progressively\",\"description\":\"Use flags, canaries or staged rollout where consequence warrants it.\"},{\"label\":\"9. Evaluate production traces\",\"description\":\"Measure real task behavior and identify recurrent failures.\"},{\"label\":\"10. Feed failures back into eval datasets\",\"description\":\"Turn incidents and corrections into permanent regression coverage.\"},{\"label\":\"11. Monitor provider and data lifecycles\",\"description\":\"Track deprecations, index freshness, source changes and runtime availability.\"},{\"label\":\"12. Retire obsolete versions cleanly\",\"description\":\"Remove old prompts\u002Fmodels\u002Findexes\u002Fcredentials after migration and evidence retention decisions.\"}]},\"tunes\":{}},{\"id\":\"h-checklist\",\"type\":\"header\",\"data\":{\"text\":\"LLMOps architecture checklist\",\"level\":2},\"tunes\":{}},{\"id\":\"checklist-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Question\",\"Expected evidence\"],[\"Which model\u002Fprovider\u002Fversion served the request?\",\"Traceable model identity\"],[\"Which prompt\u002Finstructions were active?\",\"Versioned application code\u002Fconfig\"],[\"Which context reached the model?\",\"Context\u002Fretrieval trace\"],[\"Which corpus\u002Findex version was used?\",\"Retrieval lineage\"],[\"Which tools were available and called?\",\"Tool schema + trajectory trace\"],[\"Which permissions applied?\",\"Runtime authorization record\"],[\"How is quality measured?\",\"Versioned eval dataset + scorers\"],[\"How are model upgrades tested?\",\"Behavioral regression suite\"],[\"How is production quality sampled?\",\"Trace evaluation\u002Ffeedback process\"],[\"Can one failure be reproduced approximately?\",\"Model\u002Fcontext\u002Fprovider\u002Fapplication lineage\"],[\"Where is cost spent?\",\"Per-trace model\u002Ftool\u002Fretrieval attribution\"],[\"What triggers rollback?\",\"Defined quality\u002Fsafety\u002Fcost\u002Favailability threshold\"],[\"How are provider deprecations handled?\",\"Migration\u002Ffallback process\"],[\"How are local models operated?\",\"Health, resource, load\u002Funload and version controls\"]]},\"tunes\":{}},{\"id\":\"h-edge\",\"type\":\"header\",\"data\":{\"text\":\"Edge cases and limitations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-edge-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A simple application that calls one fixed hosted model with no retrieval or tools may need only lightweight LLMOps: versioned prompt code, evals, model pinning, basic tracing and provider monitoring.\"},\"tunes\":{}},{\"id\":\"p-edge-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A self-hosted fine-tuned model may require nearly the full classical MLOps stack plus LLM-specific application evaluation, making the boundary between MLOps and LLMOps intentionally blurry.\"},\"tunes\":{}},{\"id\":\"p-edge-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"An agent platform can have minimal model-training operations but substantial runtime operations because failures occur in tool selection, state and orchestration.\"},\"tunes\":{}},{\"id\":\"p-edge-4\",\"type\":\"paragraph\",\"data\":{\"text\":\"A RAG-heavy system can be operationally dominated by document ingestion and retrieval quality rather than model serving.\"},\"tunes\":{}},{\"id\":\"p-edge-5\",\"type\":\"paragraph\",\"data\":{\"text\":\"Terminology will continue to evolve. The durable architecture question is not which “Ops” label wins, but which artifacts produce behavior and therefore must be versioned, evaluated, observed and governed.\"},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"What would change this answer?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"If foundation-model providers standardize perfectly stable model behavior and long-term version support, provider\u002Fsnapshot management could become less operationally significant.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"If applications increasingly own fine-tuning or training, classical MLOps concerns become more central again.\"},\"tunes\":{}},{\"id\":\"p-change-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The operational principle would remain: every component that can materially change production behavior belongs in lineage, testing, observability and change control.\"},\"tunes\":{}},{\"id\":\"h-related\",\"type\":\"header\",\"data\":{\"text\":\"Related canonical knowledge\",\"level\":2},\"tunes\":{}},{\"id\":\"p-related-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"LLMOps sits below AI Governance and Enterprise AI Architecture: governance defines which changes require evidence and approval, while LLMOps provides the operational machinery to version, evaluate, deploy and observe those changes.\"},\"tunes\":{}},{\"id\":\"p-related-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Context Engineering and RAG are operational subdomains inside many LLM applications because context and retrieval can change behavior independently of the model.\"},\"tunes\":{}},{\"id\":\"p-related-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Agentic AI extends LLMOps further into trajectory, permissions and tool-runtime operations.\"},\"tunes\":{}},{\"id\":\"ref-memory\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context\",\"title\":\"AI Agent Memory Is Not RAG: How to Separate Memory, Retrieval, State and Context\",\"excerpt\":\"Operational reliability improves when memory, retrieval, application state and model context remain separate lifecycle objects.\",\"ctaLabel\":\"Read the architecture article\"},\"tunes\":{}},{\"id\":\"ref-avb\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Fthe-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers\",\"title\":\"The Answer Validity Boundary: The Missing Layer Between Relevance and Reliable AI Answers\",\"excerpt\":\"LLMOps evaluation should preserve the version, scope and evidence conditions under which an answer remains supported.\",\"ctaLabel\":\"Read the Answer Validity Boundary\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"Frequently asked questions\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"MLOps vs LLMOps FAQ\",\"items\":[{\"id\":\"faq1\",\"question\":\"What is the difference between MLOps and LLMOps?\",\"answer\":\"MLOps operates machine-learning systems across data, training, deployment and monitoring. LLMOps extends those practices to LLM applications where prompts, context, retrieval, providers, tools and evaluations also materially affect behavior.\"},{\"id\":\"faq2\",\"question\":\"Does LLMOps replace MLOps?\",\"answer\":\"No. LLMOps reuses MLOps disciplines such as CI\u002FCD, lineage, evaluation, deployment and monitoring and adds LLM-specific operational concerns.\"},{\"id\":\"faq3\",\"question\":\"Do LLM applications need continuous training?\",\"answer\":\"Not necessarily. Many use external foundation models and instead rely on continuous evaluation of prompts, models, retrieval and application behavior. Fine-tuned or self-trained systems can still require training pipelines.\"},{\"id\":\"faq4\",\"question\":\"Why are evals so important in LLMOps?\",\"answer\":\"Generative outputs are open-ended and model behavior can change across prompts, snapshots and context. Evals provide repeatable evidence that a release still meets defined quality and safety criteria.\"},{\"id\":\"faq5\",\"question\":\"What should be versioned in LLMOps?\",\"answer\":\"At minimum: application code, model\u002Fprovider\u002Fversion, prompts, eval datasets\u002Fscorers, retrieval configuration\u002Findexes, tool schemas, context rules and relevant safety\u002Fpermission configuration.\"},{\"id\":\"faq6\",\"question\":\"Is prompt versioning enough?\",\"answer\":\"No. The same prompt can behave differently with another model, retrieval set, context order, tool surface or provider.\"},{\"id\":\"faq7\",\"question\":\"What is GenAIOps?\",\"answer\":\"GenAIOps is another industry term for operating generative-AI applications. Some vendors use it interchangeably or as a broader label than LLMOps.\"},{\"id\":\"faq8\",\"question\":\"How do you monitor an LLM application?\",\"answer\":\"Monitor end-to-end traces including model calls, prompts\u002Fcontext, retrieval, tools, latency, token\u002Fcost, quality samples, safety and final task outcomes.\"},{\"id\":\"faq9\",\"question\":\"Can local LLMs use LLMOps practices?\",\"answer\":\"Yes. Local models add their own operational concerns such as model files, hardware\u002FVRAM, load\u002Funload, runtime health, quantization and upgrade management.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Glossary\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Key MLOps and LLMOps terms\",\"entries\":[{\"term\":\"MLOps\",\"definition\":\"Engineering practices for building, deploying, monitoring and maintaining machine-learning systems and their data\u002Fmodel lifecycle.\",\"anchor\":\"mlops\"},{\"term\":\"LLMOps\",\"definition\":\"Operational practices for production applications whose behavior materially depends on large language models and surrounding prompts, context, retrieval, tools and runtime.\",\"anchor\":\"llmops\"},{\"term\":\"GenAIOps\",\"definition\":\"Operational discipline for generative-AI applications; often used as a broader or alternate label for LLMOps.\",\"anchor\":\"genaiops\"},{\"term\":\"Continuous training\",\"definition\":\"Automated or repeated retraining and serving of ML models as data or implementations change.\",\"anchor\":\"continuous-training\"},{\"term\":\"Continuous evaluation\",\"definition\":\"Repeated evaluation of candidate and production AI behavior against versioned datasets and criteria.\",\"anchor\":\"continuous-evaluation\"},{\"term\":\"Model snapshot\",\"definition\":\"A concrete version of a hosted or packaged model whose behavior can be tested and referenced.\",\"anchor\":\"model-snapshot\"},{\"term\":\"Application lineage\",\"definition\":\"Traceable relationship among code, model\u002Fprovider, prompts, data\u002Fretrieval, tools, runtime and release configuration.\",\"anchor\":\"application-lineage\"},{\"term\":\"Trace\",\"definition\":\"Structured record of one application execution containing spans such as model calls, retrievals and tool operations.\",\"anchor\":\"trace\"},{\"term\":\"Eval dataset\",\"definition\":\"Versioned set of representative inputs, expectations and optionally traces\u002Foutputs used to measure behavior.\",\"anchor\":\"eval-dataset\"},{\"term\":\"LLM judge\",\"definition\":\"A language model used as an evaluator for qualitative or semantic criteria; it is itself a versioned evaluation dependency.\",\"anchor\":\"llm-judge\"},{\"term\":\"Behavioral regression\",\"definition\":\"A degradation in application output or trajectory despite interfaces and code continuing to execute successfully.\",\"anchor\":\"behavioral-regression\"},{\"term\":\"Provider routing\",\"definition\":\"Policy for selecting among available model providers\u002Fendpoints according to capability, cost, latency, privacy or availability.\",\"anchor\":\"provider-routing\"}]},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"MLOps and LLMOps share the same engineering objective: make AI systems reproducible enough, testable enough and observable enough to operate reliably in production.\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The difference is the shape of the system. Classical MLOps often centers on training and serving model artifacts; LLMOps must operate a behavioral stack in which model snapshots, prompts, context, retrieval, tools, permissions and providers can change independently.\"},\"tunes\":{}},{\"id\":\"p-conclusion-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The shortest useful rule is: version, evaluate and observe everything that can materially change the LLM application's behavior — not only the model.\"},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Primary sources and current documentation\",\"level\":2},\"tunes\":{}},{\"id\":\"p-sources-note\",\"type\":\"paragraph\",\"data\":{\"text\":\"The sources below ground the MLOps baseline and the current operational patterns for LLM and agent applications. Project sections are original implementation evidence and are intentionally narrower than claims about a complete LLMOps platform.\"},\"tunes\":{}},{\"id\":\"src-google-mlops\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdocs.cloud.google.com\u002Farchitecture\u002Fmlops-continuous-delivery-and-automation-pipelines-in-machine-learning\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Google Cloud — MLOps: Continuous delivery and automation pipelines\",\"description\":\"Reference architecture describing CI, CD, continuous training, model registry, metadata, serving and monitoring for ML systems.\"}},\"tunes\":{}},{\"id\":\"src-aws-lineage\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fmachine-learning-lens\u002Fmlops02-bp04.html\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"AWS Machine Learning Lens — Model lineage\",\"description\":\"Current guidance for tracking code, data, models, environments and infrastructure across ML releases.\"}},\"tunes\":{}},{\"id\":\"src-aws-monitor\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fmachine-learning-lens\u002Fmlops06-bp02.html\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"AWS Machine Learning Lens — Model observability and tracking\",\"description\":\"Current guidance for production model monitoring, drift, endpoint health and lineage.\"}},\"tunes\":{}},{\"id\":\"src-azure-llmops\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fmachine-learning\u002Fprompt-flow\u002Fhow-to-end-to-end-llmops-with-prompt-flow\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Microsoft Azure — GenAIOps \u002F LLMOps lifecycle\",\"description\":\"Official guidance describing GenAIOps, sometimes called LLMOps, across initialization, experimentation, evaluation\u002Frefinement and deployment.\"}},\"tunes\":{}},{\"id\":\"src-mlflow-genai\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"MLflow — Agents and LLM applications\",\"description\":\"Current GenAI operations documentation covering tracing, evaluation, prompts and production observability for LLM applications and agents.\"}},\"tunes\":{}},{\"id\":\"src-mlflow-traces\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.mlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Feval-monitor\u002Frunning-evaluation\u002Ftraces\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"MLflow — Evaluating production traces\",\"description\":\"Current guidance for evaluating complete LLM\u002Fagent traces, including retrieval and tool-call trajectories.\"}},\"tunes\":{}},{\"id\":\"src-mlflow-prompt-eval\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Fprompt-registry\u002Fevaluate-prompts\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"MLflow — Evaluating prompts\",\"description\":\"Current prompt\u002Fmodel evaluation workflow using versioned prompts, datasets, scorers and traces.\"}},\"tunes\":{}},{\"id\":\"src-openai-api\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Freference\u002Foverview\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI API — Versioning and model snapshots\",\"description\":\"Current API guidance recommending pinned model versions and evals because prompting behavior can change between snapshots.\"}},\"tunes\":{}},{\"id\":\"src-openai-prompting\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompting\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Prompting\",\"description\":\"Current guidance to treat production prompts as application code, version them through source control and cover changes with tests and evaluation checks.\"}},\"tunes\":{}},{\"id\":\"src-openai-deprecations\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fdeprecations\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Deprecations\",\"description\":\"Current provider lifecycle evidence showing model and platform-surface retirement as an operational dependency.\"}},\"tunes\":{}},{\"id\":\"src-openai-promptfoo\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fevaluation\u002Fmoving-from-openai-evals-to-promptfoo\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Moving evaluation workflows to Promptfoo\",\"description\":\"Current 2026 migration guidance illustrating why evaluation assets should remain portable as provider tooling changes.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":1603,"blocks":1604,"version":2719},1791487321430,[1605,1609,1614,1619,1624,1629,1633,1637,1641,1645,1649,1653,1657,1661,1665,1669,1673,1677,1681,1710,1714,1718,1722,1726,1729,1761,1765,1769,1773,1777,1781,1830,1834,1838,1842,1846,1850,1854,1858,1862,1866,1870,1874,1878,1882,1886,1890,1894,1898,1902,1906,1910,1917,1921,1925,1929,1933,1938,1942,1946,1950,1954,1958,1962,1966,1970,1974,1978,1982,1986,1993,1997,2001,2005,2009,2013,2017,2021,2025,2029,2033,2037,2041,2045,2077,2081,2085,2089,2093,2097,2101,2105,2109,2113,2147,2151,2155,2159,2163,2167,2171,2175,2179,2183,2187,2191,2195,2199,2203,2207,2211,2215,2219,2223,2227,2231,2235,2239,2243,2247,2251,2282,2287,2291,2334,2338,2375,2379,2420,2424,2473,2477,2481,2485,2489,2493,2497,2501,2505,2509,2513,2517,2521,2525,2529,2536,2543,2547,2579,2583,2619,2623,2627,2631,2635,2639,2643,2650,2657,2664,2671,2678,2685,2692,2699,2705,2712],{"id":215,"data":1606,"type":218,"tunes":1608},{"text":1607},"MLOps is the engineering discipline for reliably developing, deploying, versioning and operating machine-learning systems; LLMOps extends that discipline to applications built around large language models, where production behavior depends not only on a model artifact but also on prompts, context, retrieval, provider\u002Fmodel versions, tool calls, safety controls and evaluation pipelines. LLMOps does not replace MLOps. It changes the operational unit from “a model plus serving pipeline” toward “an evolving LLM application whose behavior emerges from several independently changing components.”",{},{"id":221,"data":1610,"type":226,"tunes":1613},{"body":1611,"title":1612,"variant":225},"\u003Cstrong>MLOps operates ML systems. LLMOps operates LLM applications.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Classical MLOps commonly centers on data pipelines, training, validation, model registry, deployment, drift and retraining. LLMOps keeps those disciplines where relevant, but often adds prompt\u002Fcontext versioning, model\u002Fprovider abstraction, RAG indexes, agent\u002Ftool traces, semantic evaluations, safety tests, token\u002Fcost monitoring and regression testing across rapidly changing model snapshots.","Direct answer",{},{"id":229,"data":1615,"type":226,"tunes":1618},{"body":1616,"title":1617,"variant":233},"A production LLM application can fail even when the prompt is unchanged: the provider can change a model snapshot, a RAG corpus can become stale, a reranker can regress, tool permissions can change, context assembly can drop evidence, or an agent can take a wrong trajectory. LLMOps therefore has to observe and version the system around the model, not only prompt text.","LLMOps is not just prompt management",{},{"id":236,"data":1620,"type":226,"tunes":1623},{"body":1621,"title":1622,"variant":240},"\u003Cstrong>LLMOps\u003C\u002Fstrong>, \u003Cstrong>GenAIOps\u003C\u002Fstrong> and related terms are widely used engineering labels, but they are not one universal formal standard with a single canonical lifecycle. Microsoft currently describes GenAIOps as “sometimes called LLMOps,” while MLflow groups operational tooling around agents and LLM applications. This article uses LLMOps as a practical architecture term for operating production systems whose behavior materially depends on LLMs.","Terminology boundary",{},{"id":243,"data":1625,"type":226,"tunes":1628},{"body":1626,"title":1627,"variant":240},"The operational surface is changing quickly. OpenAI currently recommends pinning model snapshots and running evals because prompting behavior can change between snapshots, and several older platform-specific prompt\u002Feval surfaces are being retired in 2026. The stable architectural lesson is to keep prompts, tests and evals portable and versioned with the application rather than depend on one provider's dashboard object model.","Current-source note — 8 October 2026",{},{"id":249,"data":1630,"type":254,"tunes":1632},{"title":1631,"maxLevel":252,"minLevel":253},"Contents",{},{"id":257,"data":1634,"type":42,"tunes":1636},{"text":1635,"level":253},"What MLOps really means",{},{"id":262,"data":1638,"type":218,"tunes":1640},{"text":1639},"MLOps applies software-engineering and operational discipline to machine-learning systems. The production challenge is broader than training a model: data collection, data validation, experimentation, reproducibility, model evaluation, deployment, infrastructure and monitoring all have to work together.",{},{"id":267,"data":1642,"type":218,"tunes":1644},{"text":1643},"Google's MLOps architecture guidance frames the discipline around continuous integration, continuous delivery and continuous training. CI validates not only code but also data, schemas and models; CD deploys ML pipelines and prediction services; CT can retrain and redeploy models as data or implementations change.",{},{"id":272,"data":1646,"type":218,"tunes":1648},{"text":1647},"AWS guidance adds the same operational concerns from another angle: model lineage, model\u002Fversion traceability, drift monitoring and production-quality monitoring are core parts of keeping ML systems reliable after deployment.",{},{"id":277,"data":1650,"type":42,"tunes":1652},{"text":1651,"level":253},"What changes when the model is an LLM",{},{"id":282,"data":1654,"type":218,"tunes":1656},{"text":1655},"Large language models change the production problem because the application often does not own the complete model-training lifecycle. A team may call a hosted model API, run an open model locally, switch between providers or use several models for different tasks.",{},{"id":287,"data":1658,"type":218,"tunes":1660},{"text":1659},"The model is therefore only one versioned dependency inside a larger behavioral system. Prompts, retrieval results, context order, tools, model snapshot, temperature\u002Freasoning settings, safety filters and runtime orchestration can all change the output.",{},{"id":292,"data":1662,"type":218,"tunes":1664},{"text":1663},"This creates a broader operational question: which combination of model, context, data, prompt, tools and runtime produced this behavior? LLMOps exists to make that question answerable and the answer reproducible enough for engineering work.",{},{"id":297,"data":1666,"type":42,"tunes":1668},{"text":1667,"level":253},"The simplest example",{},{"id":302,"data":1670,"type":218,"tunes":1672},{"text":1671},"Suppose an application answers internal policy questions.",{},{"id":307,"data":1674,"type":218,"tunes":1676},{"text":1675},"In a classical ML framing, you might version a trained classifier, deploy it and monitor prediction quality. In an LLM application, the answer might depend on a hosted model snapshot, a system prompt, an embedding model, a vector index, retrieval filters, a reranker and the final selected context.",{},{"id":312,"data":1678,"type":218,"tunes":1680},{"text":1679},"Changing any one of those components can change the final answer even though the application endpoint and user question stay identical.",{},{"id":317,"data":1682,"type":346,"tunes":1709},{"steps":1683,"title":1708,"orientation":345},[1684,1687,1690,1693,1696,1699,1702,1705],{"label":1685,"description":1686},"1. Change one component","Prompt, model, provider, retrieval setting, tool schema or application code changes.",{"label":1688,"description":1689},"2. Run deterministic tests","Validate schemas, permissions, tool contracts, retrieval filters and application behavior.",{"label":1691,"description":1692},"3. Run behavioral evals","Compare representative outputs, retrieval quality and agent\u002Ftool trajectories against acceptance criteria.",{"label":1694,"description":1695},"4. Compare cost and latency","Measure token use, model calls, retrieval\u002Ftool overhead and response latency.",{"label":1697,"description":1698},"5. Deploy controlled version","Ship the concrete application configuration with model\u002Fprovider versions recorded.",{"label":1700,"description":1701},"6. Trace production behavior","Capture relevant model, retrieval, tool and runtime spans.",{"label":1703,"description":1704},"7. Evaluate production traces","Sample real executions for quality, grounding, safety and task success.",{"label":1706,"description":1707},"8. Roll back or iterate","Use regression evidence and operational signals to decide the next release.","A typical LLMOps release path",{},{"id":349,"data":1711,"type":42,"tunes":1713},{"text":1712,"level":253},"Where the simple example stops",{},{"id":354,"data":1715,"type":218,"tunes":1717},{"text":1716},"Some LLM systems still train or fine-tune their own models, so traditional MLOps practices such as training pipelines, model registry and data lineage remain directly relevant.",{},{"id":359,"data":1719,"type":218,"tunes":1721},{"text":1720},"Other systems use only external foundation-model APIs and never run continuous training. Their main operational workload is application evaluation, model\u002Fprovider change management, prompt\u002Fcontext versioning, retrieval quality and observability.",{},{"id":364,"data":1723,"type":218,"tunes":1725},{"text":1724},"There is therefore no single universal “LLMOps pipeline.” The exact lifecycle depends on whether you train, fine-tune, self-host, retrieve external knowledge, run agents or depend on managed model APIs.",{},{"id":369,"data":1727,"type":42,"tunes":1728},{"text":371,"level":253},{},{"id":374,"data":1730,"type":419,"tunes":1760},{"rows":1731,"title":1756,"layout":411,"columns":1757},[1732,1735,1738,1741,1744,1747,1750,1753],{"id":378,"label":1733,"values":1734},"Primary operational unit",[381,381],{"id":383,"label":1736,"values":1737},"Model ownership",[381,381],{"id":387,"label":1739,"values":1740},"Typical change",[381,381],{"id":391,"label":1742,"values":1743},"Evaluation",[381,381],{"id":395,"label":1745,"values":1746},"Production monitoring",[381,381],{"id":399,"label":1748,"values":1749},"Continuous training",[381,381],{"id":403,"label":1751,"values":1752},"Versioned artifacts",[381,381],{"id":407,"label":1754,"values":1755},"Rollback target",[381,381],"What stays the same and what expands",[1758,1759],{"id":414,"label":415},{"id":417,"label":418},{},{"id":422,"data":1762,"type":42,"tunes":1764},{"text":1763,"level":253},"LLMOps extends MLOps rather than replacing it",{},{"id":427,"data":1766,"type":218,"tunes":1768},{"text":1767},"The core operational principles do not disappear: source control, CI\u002FCD, reproducibility, lineage, deployment controls, monitoring, rollback and measurable acceptance criteria remain essential.",{},{"id":432,"data":1770,"type":218,"tunes":1772},{"text":1771},"The extension is that more behavior-defining artifacts now sit outside the model weights. A managed foundation model can change behavior through snapshot upgrades, while application output can change through prompt or retrieval changes without any model retraining.",{},{"id":437,"data":1774,"type":218,"tunes":1776},{"text":1775},"This is why the useful hierarchy is usually DevOps → MLOps → LLMOps\u002FGenAIOps as increasingly specialized operational concerns, not three mutually exclusive practices.",{},{"id":442,"data":1778,"type":42,"tunes":1780},{"text":1779,"level":253},"What has to be versioned in LLMOps?",{},{"id":447,"data":1782,"type":411,"tunes":1829},{"content":1783,"stretched":43,"withHeadings":14},[1784,1787,1790,1793,1796,1799,1802,1805,1808,1811,1814,1817,1820,1823,1826],[1785,1786],"Artifact","Why it matters",[1788,1789],"Application code","Defines orchestration, validation, retries and business behavior",[1791,1792],"Model family + snapshot\u002Fversion","Different snapshots can produce different behavior",[1794,1795],"Provider \u002F endpoint","Changes data flow, latency, limits, pricing and availability",[1797,1798],"Prompt\u002Finstruction code","Changes model behavior even with same model",[1800,1801],"Generation\u002Freasoning parameters","Can alter determinism, latency, depth and cost",[1803,1804],"Eval dataset","Defines what “good enough” is tested against",[1806,1807],"Scorers \u002F graders","Define how quality is measured",[1809,1810],"Embedding model","Changes vector representation and retrieval behavior",[1812,1813],"Chunking\u002Findex configuration","Changes what can be retrieved",[1815,1816],"Reranker \u002F retrieval fusion","Changes result ordering",[1818,1819],"Tool schemas","Change what the model can request and how",[1821,1822],"Permission profile","Changes what tool actions may actually execute",[1824,1825],"Context assembly rules","Change what evidence and state reach the model",[1827,1828],"Safety\u002Fguardrail configuration","Changes allowed or blocked behavior",{},{"id":497,"data":1831,"type":42,"tunes":1833},{"text":1832,"level":253},"Model snapshots become release dependencies",{},{"id":502,"data":1835,"type":218,"tunes":1837},{"text":1836},"With hosted LLMs, the team may not control model training, but it still controls which model or snapshot the application calls.",{},{"id":507,"data":1839,"type":218,"tunes":1841},{"text":1840},"OpenAI's current API guidance explicitly warns that prompting behavior can change between model snapshots and recommends pinning production applications to specific snapshots where consistency matters, then running evals when upgrading.",{},{"id":512,"data":1843,"type":218,"tunes":1845},{"text":1844},"The operational consequence is straightforward: model upgrades should be treated as application releases, not invisible infrastructure maintenance.",{},{"id":517,"data":1847,"type":42,"tunes":1849},{"text":1848,"level":253},"Provider lifecycle becomes part of operations",{},{"id":522,"data":1851,"type":218,"tunes":1853},{"text":1852},"LLM applications often depend on provider rate limits, deprecation schedules, API semantics, context limits, data-handling rules and pricing.",{},{"id":527,"data":1855,"type":218,"tunes":1857},{"text":1856},"A provider can deprecate a model while your application code remains unchanged. OpenAI's current deprecation schedule, for example, includes 2026 retirement dates for older model snapshots and platform surfaces.",{},{"id":532,"data":1859,"type":218,"tunes":1861},{"text":1860},"LLMOps therefore needs provider lifecycle tracking, migration testing and fallback decisions in addition to model-quality monitoring.",{},{"id":537,"data":1863,"type":42,"tunes":1865},{"text":1864,"level":253},"Prompts behave like production code",{},{"id":542,"data":1867,"type":218,"tunes":1869},{"text":1868},"Prompts are executable behavioral configuration. Small changes can alter output quality, tool selection and policy interpretation.",{},{"id":547,"data":1871,"type":218,"tunes":1873},{"text":1872},"OpenAI's current guidance recommends storing production prompts in application code, reviewing prompt changes through pull requests, using typed inputs and covering changes with tests and evaluation checks.",{},{"id":552,"data":1875,"type":218,"tunes":1877},{"text":1876},"That makes prompt versioning less like editing marketing copy and more like changing a function whose output is probabilistic and model-dependent.",{},{"id":557,"data":1879,"type":42,"tunes":1881},{"text":1880,"level":253},"Context engineering becomes an operational concern",{},{"id":562,"data":1883,"type":218,"tunes":1885},{"text":1884},"The production model rarely receives only a static prompt. It may receive conversation history, retrieved documents, tool outputs, memory, current application state and policy instructions.",{},{"id":567,"data":1887,"type":218,"tunes":1889},{"text":1888},"LLMOps must therefore observe context assembly: which evidence was selected, which state version was current, whether truncation occurred and whether important instructions survived compaction.",{},{"id":572,"data":1891,"type":218,"tunes":1893},{"text":1892},"A model regression and a context regression can look identical at the final answer. Tracing the actual context path is what lets the team separate them.",{},{"id":577,"data":1895,"type":42,"tunes":1897},{"text":1896,"level":253},"RAG creates its own operational lifecycle",{},{"id":582,"data":1899,"type":218,"tunes":1901},{"text":1900},"A RAG system introduces a second production pipeline beside model inference: ingestion, extraction, chunking, metadata, embeddings, indexes, retrieval, reranking and context selection.",{},{"id":587,"data":1903,"type":218,"tunes":1905},{"text":1904},"The knowledge corpus can change every day even when the model and prompt do not. A stale index or broken metadata filter can therefore degrade answer quality without any model drift.",{},{"id":592,"data":1907,"type":218,"tunes":1909},{"text":1908},"LLMOps for RAG should track corpus\u002Findex version, embedding model, chunking policy, retrieval configuration, source freshness and retrieval metrics separately from generation quality.",{},{"id":597,"data":1911,"type":603,"tunes":1916},{"url":1912,"title":1913,"excerpt":1914,"ctaLabel":1915},"https:\u002F\u002Fstajic.de\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","RAG Failed — But Which Layer Actually Failed? A Diagnostic Method","A production LLM pipeline needs separate observability for source coverage, retrieval, ranking, context assembly and generation.","Read the RAG diagnostic method",{},{"id":606,"data":1918,"type":42,"tunes":1920},{"text":1919,"level":253},"Evals replace “looks good to me” with release evidence",{},{"id":611,"data":1922,"type":218,"tunes":1924},{"text":1923},"Generative outputs are often open-ended, so exact-match tests are insufficient for many tasks. LLMOps adds evaluation datasets and scorers that can measure task success, correctness, safety, groundedness, style or domain-specific acceptance criteria.",{},{"id":616,"data":1926,"type":218,"tunes":1928},{"text":1927},"MLflow's current GenAI evaluation stack supports versioned evaluation datasets, prompt\u002Fmodel comparisons, custom scorers and evaluation over complete traces.",{},{"id":621,"data":1930,"type":218,"tunes":1932},{"text":1931},"The strongest practice is evaluation-driven development: define representative cases and acceptance criteria before or alongside changes, then compare releases against the same evidence.",{},{"id":626,"data":1934,"type":226,"tunes":1937},{"body":1935,"title":1936,"variant":630},"A deployment should not be considered equivalent merely because the API contract still works. If the prompt, model, retrieval or tools changed, the behavioral regression suite should run again.","Behavioral changes need behavioral tests",{},{"id":633,"data":1939,"type":42,"tunes":1941},{"text":1940,"level":253},"LLM-as-a-judge is useful but not ground truth",{},{"id":638,"data":1943,"type":218,"tunes":1945},{"text":1944},"LLM judges can scale evaluation for qualities that are expensive to encode as deterministic assertions, such as relevance, tone or groundedness.",{},{"id":643,"data":1947,"type":218,"tunes":1949},{"text":1948},"However, the judge is another model with its own bias, version and prompt. Judge configuration should therefore be versioned and calibrated against human or deterministic reference cases where consequence matters.",{},{"id":648,"data":1951,"type":218,"tunes":1953},{"text":1952},"A production eval can mix deterministic checks, reference-based metrics, model judges and human review rather than asking one metric to represent every quality dimension.",{},{"id":653,"data":1955,"type":42,"tunes":1957},{"text":1956,"level":253},"Tracing becomes more important than endpoint logs",{},{"id":658,"data":1959,"type":218,"tunes":1961},{"text":1960},"Traditional API logs can tell you that a request took two seconds and returned HTTP 200. They cannot tell you which retrieved chunks were selected, which tool the agent called or which model span consumed most tokens.",{},{"id":663,"data":1963,"type":218,"tunes":1965},{"text":1964},"MLflow's current GenAI tracing captures prompts, retrievals, tool calls and application spans, and its production evaluation flow can score intermediate trajectory information rather than only final text.",{},{"id":668,"data":1967,"type":218,"tunes":1969},{"text":1968},"This is a major LLMOps shift: observability follows the behavioral graph of the application, not only the serving endpoint.",{},{"id":673,"data":1971,"type":42,"tunes":1973},{"text":1972,"level":253},"Agents expand LLMOps into runtime operations",{},{"id":678,"data":1975,"type":218,"tunes":1977},{"text":1976},"An agentic application can perform several model calls, tool invocations and state transitions before producing a result.",{},{"id":683,"data":1979,"type":218,"tunes":1981},{"text":1980},"Operating agents therefore requires step counts, tool-call traces, permission denials, retries, loop detection, human approvals and verified final state in addition to ordinary model latency and token metrics.",{},{"id":688,"data":1983,"type":218,"tunes":1985},{"text":1984},"A correct final answer can hide a bad trajectory, so agent evaluation must inspect the path as well as the result.",{},{"id":693,"data":1987,"type":603,"tunes":1992},{"url":1988,"title":1989,"excerpt":1990,"ctaLabel":1991},"https:\u002F\u002Fstajic.de\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","AI Agent Reliability: Why the Final Answer Is Not Enough","Why agent production evaluation must include tool calls, state transitions, approvals and recoverability.","Read the agent reliability article",{},{"id":701,"data":1994,"type":42,"tunes":1996},{"text":1995,"level":253},"Tokens, model calls and context become cost variables",{},{"id":706,"data":1998,"type":218,"tunes":2000},{"text":1999},"Classical ML inference cost is often dominated by serving infrastructure or per-prediction compute. LLM applications can add provider token pricing, repeated agent calls, embedding calls, reranking and tool\u002Fruntime overhead.",{},{"id":711,"data":2002,"type":218,"tunes":2004},{"text":2003},"Cost therefore has to be attributed to task or trace, not only to one endpoint. A workflow that makes eight hidden model calls can be functionally correct but operationally unacceptable.",{},{"id":716,"data":2006,"type":218,"tunes":2008},{"text":2007},"Latency behaves the same way: model latency, retrieval, reranking and external tools compose into end-to-end user latency.",{},{"id":721,"data":2010,"type":42,"tunes":2012},{"text":2011,"level":253},"Caching becomes semantic, not only technical",{},{"id":726,"data":2014,"type":218,"tunes":2016},{"text":2015},"LLM systems can cache prompts, embeddings, retrieval results or full responses, but the cache key must reflect the semantics that can change the result.",{},{"id":731,"data":2018,"type":218,"tunes":2020},{"text":2019},"A response cache that ignores model version, tenant, permissions or source freshness can return a technically valid but semantically invalid answer.",{},{"id":736,"data":2022,"type":218,"tunes":2024},{"text":2023},"LLMOps therefore treats cache invalidation as part of model\u002Fcontext\u002Fdata versioning rather than only infrastructure optimization.",{},{"id":741,"data":2026,"type":42,"tunes":2028},{"text":2027,"level":253},"Safety and permissions become release criteria",{},{"id":746,"data":2030,"type":218,"tunes":2032},{"text":2031},"Generative systems can produce unbounded text and agents can trigger external actions. Safety testing therefore sits closer to ordinary CI\u002FCD than in many classical predictive ML systems.",{},{"id":751,"data":2034,"type":218,"tunes":2036},{"text":2035},"Permission checks, prompt-injection tests, tenant-isolation tests and side-effect approvals should be reproducible regression tests where those risks exist.",{},{"id":756,"data":2038,"type":218,"tunes":2040},{"text":2039},"The model may suggest an operation, but the runtime still has to enforce authorization. LLMOps owns the evidence that those controls continue to work after model, prompt or tool changes.",{},{"id":761,"data":2042,"type":42,"tunes":2044},{"text":2043,"level":253},"What CI looks like in LLMOps",{},{"id":766,"data":2046,"type":411,"tunes":2076},{"content":2047,"stretched":43,"withHeadings":14},[2048,2051,2054,2056,2059,2061,2064,2067,2070,2073],[2049,2050],"CI layer","Example checks",[2052,2053],"Code","Unit tests, type checks, schema validation",[776,2055],"Template rendering, required variables, policy text, snapshot review",[2057,2058],"Models\u002Fproviders","Compatibility, output schema, capability and regression tests",[782,2060],"Chunking fixtures, filter tests, Recall@k, reranker regression",[2062,2063],"Tools","Input\u002Foutput schema tests, permission tests, idempotency tests",[2065,2066],"Agents","Trajectory fixtures, loop limits, handoff\u002Ftool-selection tests",[2068,2069],"Security","Prompt injection, unauthorized tools, cross-tenant negative tests",[2071,2072],"Behavioral evals","Task success, correctness, grounding, safety, domain criteria",[2074,2075],"Operational","Latency, token\u002Fcost budgets, timeout\u002Ffallback behavior",{},{"id":801,"data":2078,"type":42,"tunes":2080},{"text":2079,"level":253},"What CD looks like in LLMOps",{},{"id":806,"data":2082,"type":218,"tunes":2084},{"text":2083},"A production release may deploy no new model artifact at all. It may simply ship a new prompt, retrieval configuration, tool set or provider mapping.",{},{"id":811,"data":2086,"type":218,"tunes":2088},{"text":2087},"The release bundle should therefore identify the complete behavior-defining configuration rather than only the application container image.",{},{"id":816,"data":2090,"type":218,"tunes":2092},{"text":2091},"Feature flags, staged rollout, shadow evaluation, canary traffic and rollback are useful because LLM behavior can regress in ways that static contract tests do not detect.",{},{"id":821,"data":2094,"type":42,"tunes":2096},{"text":2095,"level":253},"Continuous training becomes optional; continuous evaluation becomes central",{},{"id":826,"data":2098,"type":218,"tunes":2100},{"text":2099},"Traditional MLOps often emphasizes continuous training when new data or drift justifies retraining.",{},{"id":831,"data":2102,"type":218,"tunes":2104},{"text":2103},"Many LLM applications never train the foundation model. Their equivalent continuous loop is continuous evaluation: collect failures and representative production cases, add them to evaluation datasets, test candidate prompt\u002Fmodel\u002Fretrieval changes and redeploy only when evidence improves.",{},{"id":836,"data":2106,"type":218,"tunes":2108},{"text":2107},"Fine-tuning can reintroduce a training lifecycle, but it should sit inside the same broader evaluation and release process.",{},{"id":841,"data":2110,"type":42,"tunes":2112},{"text":2111,"level":253},"What should be monitored in production?",{},{"id":846,"data":2114,"type":411,"tunes":2146},{"content":2115,"stretched":43,"withHeadings":14},[2116,2119,2122,2125,2128,2131,2134,2136,2138,2140,2143],[2117,2118],"Signal class","Examples",[2120,2121],"System health","Errors, timeouts, endpoint availability",[2123,2124],"Model\u002Fprovider","Model ID, snapshot, rate limits, provider errors",[2126,2127],"Latency","End-to-end, model, retrieval, tool and reranker spans",[2129,2130],"Cost","Input\u002Foutput tokens, embeddings, tool\u002FAPI spend",[2132,2133],"Quality","Sampled task success, correctness, relevance, groundedness",[782,2135],"Retrieval recall proxies, empty retrieval, stale sources, citation coverage",[2065,2137],"Tool selection, retries, loops, handoffs, approval frequency",[2068,2139],"Denied actions, prompt-injection indicators, tenant-boundary failures",[2141,2142],"User feedback","Corrections, abandonment, escalation, explicit ratings",[2144,2145],"Change drift","Provider\u002Fmodel\u002Fconfig changes relative to approved release",{},{"id":881,"data":2148,"type":42,"tunes":2150},{"text":2149,"level":253},"Production traces can become evaluation data",{},{"id":886,"data":2152,"type":218,"tunes":2154},{"text":2153},"One of the most useful modern LLMOps patterns is to turn sampled production traces into evaluation records.",{},{"id":891,"data":2156,"type":218,"tunes":2158},{"text":2157},"MLflow currently supports retrieving production traces and scoring not only outputs but intermediate spans such as retrieval or tool-call trajectories.",{},{"id":896,"data":2160,"type":218,"tunes":2162},{"text":2161},"This closes the loop between observability and development: real failures can become regression cases in the next release rather than disappear inside logs.",{},{"id":901,"data":2164,"type":42,"tunes":2166},{"text":2165,"level":253},"Reproducibility becomes conditional rather than exact",{},{"id":906,"data":2168,"type":218,"tunes":2170},{"text":2169},"Classical ML reproducibility often aims to recreate a model from versioned code, data, environment and training parameters.",{},{"id":911,"data":2172,"type":218,"tunes":2174},{"text":2173},"Hosted LLM applications cannot always reproduce identical output token-for-token because generation is probabilistic and providers may control infrastructure.",{},{"id":916,"data":2176,"type":218,"tunes":2178},{"text":2177},"LLMOps therefore aims for behavioral reproducibility: record enough model\u002Fprovider\u002Fversion, prompt, context inputs, retrieval state and runtime configuration to reproduce the conditions and validate behavior within expected tolerances.",{},{"id":921,"data":2180,"type":42,"tunes":2182},{"text":2181,"level":253},"Lineage expands from model lineage to application lineage",{},{"id":926,"data":2184,"type":218,"tunes":2186},{"text":2185},"AWS's MLOps guidance treats model lineage as the history of code, data, model and infrastructure artifacts needed for diagnosis and reproducibility.",{},{"id":931,"data":2188,"type":218,"tunes":2190},{"text":2189},"For LLM applications, lineage should additionally connect prompts, eval datasets, retrieval\u002Findex versions, tool schemas, agent\u002Fruntime configuration and provider\u002Fmodel snapshots.",{},{"id":936,"data":2192,"type":218,"tunes":2194},{"text":2193},"The target question becomes: Which exact application configuration produced this trace?",{},{"id":941,"data":2196,"type":42,"tunes":2198},{"text":2197,"level":253},"Multi-provider and model routing create operational policy",{},{"id":946,"data":2200,"type":218,"tunes":2202},{"text":2201},"Once an application can use several providers or local models, routing becomes an operational policy rather than a simple model string.",{},{"id":951,"data":2204,"type":218,"tunes":2206},{"text":2205},"Routing may depend on capability, latency, cost, privacy, context length, availability, tool support or locality. A fallback can preserve uptime while changing answer quality or data-processing assumptions.",{},{"id":956,"data":2208,"type":218,"tunes":2210},{"text":2209},"LLMOps should therefore log which route was actually selected and evaluate routes independently rather than treat every compatible endpoint as behaviorally interchangeable.",{},{"id":961,"data":2212,"type":42,"tunes":2214},{"text":2213,"level":253},"Original implementation evidence",{},{"id":966,"data":2216,"type":42,"tunes":2218},{"text":2217,"level":252},"Aaasaasa AI Client: provider, model and runtime are separate operational objects",{},{"id":971,"data":2220,"type":218,"tunes":2222},{"text":2221},"Aaasaasa AI Client separates agent\u002Fclient, provider, model, runtime location and permissions. Its AI Hub supports Ollama, LM Studio\u002FOpenAI-compatible endpoints and other provider protocols rather than treating “the model” as one global setting.",{},{"id":976,"data":2224,"type":218,"tunes":2226},{"text":2225},"The implementation includes dynamic local model discovery, streaming, thinking output and explicit Ollama warm\u002Fload and unload controls. That is operational evidence that local LLM serving introduces resource lifecycle concerns beyond an API model name.",{},{"id":981,"data":2228,"type":218,"tunes":2230},{"text":2229},"Provider status is queried through provider adapters, and connection types distinguish local, cloud API, account-backed, remote-agent and web-client paths. These are concrete operational dimensions an LLM-aware platform has to surface.",{},{"id":986,"data":2232,"type":218,"tunes":2234},{"text":2233},"The repository also preserves an important boundary: a local runtime is not automatically local inference. Provider\u002Fmodel\u002Fruntime location are versioned or configurable concerns that affect privacy, latency, cost and availability.",{},{"id":991,"data":2236,"type":42,"tunes":2238},{"text":2237,"level":252},"Source of Truth Research Engine: LLM application state extends beyond the model",{},{"id":996,"data":2240,"type":218,"tunes":2242},{"text":2241},"The Source of Truth Research Engine combines lexical search, optional embeddings, source snapshots, SHA-256 identity, claims, provenance and contradiction tracking around local model-assisted research.",{},{"id":1001,"data":2244,"type":218,"tunes":2246},{"text":2245},"This is useful LLMOps evidence because changing the model alone does not define the research system. Retrieval, source acquisition, evidence classification and persistent provenance are independent operational artifacts.",{},{"id":1006,"data":2248,"type":218,"tunes":2250},{"text":2249},"The implementation deliberately treats semantic similarity as discovery rather than evidence, showing why LLMOps observability should distinguish retrieval behavior from claim validity.",{},{"id":1011,"data":2252,"type":411,"tunes":2281},{"content":2253,"stretched":43,"withHeadings":14},[2254,2257,2260,2263,2266,2269,2272,2275,2278],[2255,2256],"Observed implementation","LLMOps lesson",[2258,2259],"Multiple provider protocols","Provider identity is an operational dependency",[2261,2262],"Dynamic model discovery","Available models can change independently of application code",[2264,2265],"Ollama load\u002Funload controls","Local models have memory\u002Fresource lifecycle",[2267,2268],"Provider health\u002Fstatus adapters","Model availability needs runtime observability",[2270,2271],"Separate runtime and inference location","Deployment topology is not one boolean “local\u002Fcloud”",[2273,2274],"Central permissions","Model capability and tool authority must remain separate",[2276,2277],"Lexical + semantic retrieval pipeline","Retrieval configuration is part of application behavior",[2279,2280],"Source\u002Fprovenance persistence","Operational state and evidence live outside model weights",{},{"id":1043,"data":2283,"type":226,"tunes":2286},{"body":2284,"title":2285,"variant":240},"These projects demonstrate multi-provider\u002Flocal-model operations, permission separation, retrieval infrastructure and evidence persistence. They are not presented as a complete commercial LLMOps platform or proof of large-scale production traffic.","Evidence boundary",{},{"id":1049,"data":2288,"type":42,"tunes":2290},{"text":2289,"level":253},"Common LLMOps failure modes",{},{"id":1054,"data":2292,"type":411,"tunes":2333},{"content":2293,"stretched":43,"withHeadings":14},[2294,2297,2300,2303,2306,2309,2312,2315,2318,2321,2324,2327,2330],[2295,2296],"Failure mode","What actually went wrong",[2298,2299],"Model alias upgraded silently","Behavior changed without controlled release",[2301,2302],"Prompt changed without evals","Behavioral regression passed normal unit tests",[2304,2305],"RAG index stale","Generation model was blamed for retrieval\u002Fdata failure",[2307,2308],"Only final answer is logged","Root cause in retrieval\u002Ftool\u002Fcontext trajectory is invisible",[2310,2311],"Provider fallback is silent","Different model\u002Fdata path changes behavior without attribution",[2313,2314],"Token cost tracked globally","Expensive workflows cannot be localized",[2316,2317],"Judge model changed","Evaluation scores drift without application change",[2319,2320],"Production traces never become tests","Known failures repeatedly return",[2322,2323],"Local model stays loaded indefinitely","VRAM\u002Fresource pressure becomes operational instability",[2325,2326],"Permissions encoded only in prompt","Model behavior is mistaken for authorization",[2328,2329],"One eval score gates everything","Different quality dimensions are collapsed into a misleading number",[2331,2332],"Model registry exists but prompt\u002Findex versions do not","Application lineage remains incomplete",{},{"id":1098,"data":2335,"type":42,"tunes":2337},{"text":2336,"level":253},"Common misconceptions",{},{"id":1103,"data":2339,"type":411,"tunes":2374},{"content":2340,"stretched":43,"withHeadings":14},[2341,2344,2347,2350,2353,2356,2359,2362,2365,2368,2371],[2342,2343],"Misconception","Correction",[2345,2346],"“LLMOps replaces MLOps.”","LLMOps extends MLOps principles to LLM-specific application behavior.",[2348,2349],"“LLMOps is prompt engineering.”","Prompts are one artifact among models, providers, context, retrieval, tools, evals and runtime.",[2351,2352],"“Hosted APIs remove operations work.”","They remove some model-serving\u002Ftraining work but add provider lifecycle, version and dependency management.",[2354,2355],"“If the API is stable, the app is stable.”","Model behavior and provider\u002Fmodel snapshots can change independently of API schema.",[2357,2358],"“RAG is just data preprocessing.”","In production it has its own ingestion, index, retrieval and freshness lifecycle.",[2360,2361],"“LLM outputs cannot be tested.”","They can be evaluated with deterministic, reference, judge and human criteria.",[2363,2364],"“LLM judges are objective ground truth.”","They are model-based evaluators that also require calibration and version control.",[2366,2367],"“A local model eliminates LLMOps.”","Local serving adds model files, VRAM, load\u002Funload, runtime health and upgrade concerns.",[2369,2370],"“Observability means token counts.”","Useful observability follows prompts, retrievals, tools, model spans and outcomes.",[2372,2373],"“Continuous training is mandatory.”","Many LLM apps use continuous evaluation without training the foundation model.",{},{"id":1141,"data":2376,"type":42,"tunes":2378},{"text":2377,"level":253},"A practical LLMOps design sequence",{},{"id":1146,"data":2380,"type":346,"tunes":2419},{"steps":2381,"title":2418,"orientation":345},[2382,2385,2388,2391,2394,2397,2400,2403,2406,2409,2412,2415],{"label":2383,"description":2384},"1. Define the behavior unit","List every component that can materially change output: model, prompt, retrieval, tools, context and policy.",{"label":2386,"description":2387},"2. Establish application lineage","Version code, model\u002Fprovider, prompts, eval datasets, retrieval configuration and tool contracts.",{"label":2389,"description":2390},"3. Build representative eval datasets","Use expected success\u002Ffailure cases from design and production.",{"label":2392,"description":2393},"4. Separate deterministic and behavioral tests","Keep schema\u002Fsecurity assertions distinct from semantic output evaluation.",{"label":2395,"description":2396},"5. Trace end-to-end execution","Instrument model, retrieval, reranking, tools and agent\u002Fruntime spans.",{"label":2398,"description":2399},"6. Define release gates","Set quality, safety, latency and cost thresholds.",{"label":2401,"description":2402},"7. Pin or explicitly record model versions","Treat model\u002Fprovider changes as release events.",{"label":2404,"description":2405},"8. Deploy progressively","Use flags, canaries or staged rollout where consequence warrants it.",{"label":2407,"description":2408},"9. Evaluate production traces","Measure real task behavior and identify recurrent failures.",{"label":2410,"description":2411},"10. Feed failures back into eval datasets","Turn incidents and corrections into permanent regression coverage.",{"label":2413,"description":2414},"11. Monitor provider and data lifecycles","Track deprecations, index freshness, source changes and runtime availability.",{"label":2416,"description":2417},"12. Retire obsolete versions cleanly","Remove old prompts\u002Fmodels\u002Findexes\u002Fcredentials after migration and evidence retention decisions.","Operate the complete behavior-producing system",{},{"id":1188,"data":2421,"type":42,"tunes":2423},{"text":2422,"level":253},"LLMOps architecture checklist",{},{"id":1193,"data":2425,"type":411,"tunes":2472},{"content":2426,"stretched":43,"withHeadings":14},[2427,2430,2433,2436,2439,2442,2445,2448,2451,2454,2457,2460,2463,2466,2469],[2428,2429],"Question","Expected evidence",[2431,2432],"Which model\u002Fprovider\u002Fversion served the request?","Traceable model identity",[2434,2435],"Which prompt\u002Finstructions were active?","Versioned application code\u002Fconfig",[2437,2438],"Which context reached the model?","Context\u002Fretrieval trace",[2440,2441],"Which corpus\u002Findex version was used?","Retrieval lineage",[2443,2444],"Which tools were available and called?","Tool schema + trajectory trace",[2446,2447],"Which permissions applied?","Runtime authorization record",[2449,2450],"How is quality measured?","Versioned eval dataset + scorers",[2452,2453],"How are model upgrades tested?","Behavioral regression suite",[2455,2456],"How is production quality sampled?","Trace evaluation\u002Ffeedback process",[2458,2459],"Can one failure be reproduced approximately?","Model\u002Fcontext\u002Fprovider\u002Fapplication lineage",[2461,2462],"Where is cost spent?","Per-trace model\u002Ftool\u002Fretrieval attribution",[2464,2465],"What triggers rollback?","Defined quality\u002Fsafety\u002Fcost\u002Favailability threshold",[2467,2468],"How are provider deprecations handled?","Migration\u002Ffallback process",[2470,2471],"How are local models operated?","Health, resource, load\u002Funload and version controls",{},{"id":1243,"data":2474,"type":42,"tunes":2476},{"text":2475,"level":253},"Edge cases and limitations",{},{"id":1248,"data":2478,"type":218,"tunes":2480},{"text":2479},"A simple application that calls one fixed hosted model with no retrieval or tools may need only lightweight LLMOps: versioned prompt code, evals, model pinning, basic tracing and provider monitoring.",{},{"id":1253,"data":2482,"type":218,"tunes":2484},{"text":2483},"A self-hosted fine-tuned model may require nearly the full classical MLOps stack plus LLM-specific application evaluation, making the boundary between MLOps and LLMOps intentionally blurry.",{},{"id":1258,"data":2486,"type":218,"tunes":2488},{"text":2487},"An agent platform can have minimal model-training operations but substantial runtime operations because failures occur in tool selection, state and orchestration.",{},{"id":1263,"data":2490,"type":218,"tunes":2492},{"text":2491},"A RAG-heavy system can be operationally dominated by document ingestion and retrieval quality rather than model serving.",{},{"id":1268,"data":2494,"type":218,"tunes":2496},{"text":2495},"Terminology will continue to evolve. The durable architecture question is not which “Ops” label wins, but which artifacts produce behavior and therefore must be versioned, evaluated, observed and governed.",{},{"id":1273,"data":2498,"type":42,"tunes":2500},{"text":2499,"level":253},"What would change this answer?",{},{"id":1278,"data":2502,"type":218,"tunes":2504},{"text":2503},"If foundation-model providers standardize perfectly stable model behavior and long-term version support, provider\u002Fsnapshot management could become less operationally significant.",{},{"id":1283,"data":2506,"type":218,"tunes":2508},{"text":2507},"If applications increasingly own fine-tuning or training, classical MLOps concerns become more central again.",{},{"id":1288,"data":2510,"type":218,"tunes":2512},{"text":2511},"The operational principle would remain: every component that can materially change production behavior belongs in lineage, testing, observability and change control.",{},{"id":1293,"data":2514,"type":42,"tunes":2516},{"text":2515,"level":253},"Related canonical knowledge",{},{"id":1298,"data":2518,"type":218,"tunes":2520},{"text":2519},"LLMOps sits below AI Governance and Enterprise AI Architecture: governance defines which changes require evidence and approval, while LLMOps provides the operational machinery to version, evaluate, deploy and observe those changes.",{},{"id":1303,"data":2522,"type":218,"tunes":2524},{"text":2523},"Context Engineering and RAG are operational subdomains inside many LLM applications because context and retrieval can change behavior independently of the model.",{},{"id":1308,"data":2526,"type":218,"tunes":2528},{"text":2527},"Agentic AI extends LLMOps further into trajectory, permissions and tool-runtime operations.",{},{"id":1313,"data":2530,"type":603,"tunes":2535},{"url":2531,"title":2532,"excerpt":2533,"ctaLabel":2534},"https:\u002F\u002Fstajic.de\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","AI Agent Memory Is Not RAG: How to Separate Memory, Retrieval, State and Context","Operational reliability improves when memory, retrieval, application state and model context remain separate lifecycle objects.","Read the architecture article",{},{"id":1321,"data":2537,"type":603,"tunes":2542},{"url":2538,"title":2539,"excerpt":2540,"ctaLabel":2541},"https:\u002F\u002Fstajic.de\u002Fblog\u002Fthe-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers","The Answer Validity Boundary: The Missing Layer Between Relevance and Reliable AI Answers","LLMOps evaluation should preserve the version, scope and evidence conditions under which an answer remains supported.","Read the Answer Validity Boundary",{},{"id":1329,"data":2544,"type":42,"tunes":2546},{"text":2545,"level":253},"Frequently asked questions",{},{"id":1334,"data":2548,"type":1334,"tunes":2578},{"items":2549,"title":2577},[2550,2553,2556,2559,2562,2565,2568,2571,2574],{"id":1338,"answer":2551,"question":2552},"MLOps operates machine-learning systems across data, training, deployment and monitoring. LLMOps extends those practices to LLM applications where prompts, context, retrieval, providers, tools and evaluations also materially affect behavior.","What is the difference between MLOps and LLMOps?",{"id":1342,"answer":2554,"question":2555},"No. LLMOps reuses MLOps disciplines such as CI\u002FCD, lineage, evaluation, deployment and monitoring and adds LLM-specific operational concerns.","Does LLMOps replace MLOps?",{"id":1346,"answer":2557,"question":2558},"Not necessarily. Many use external foundation models and instead rely on continuous evaluation of prompts, models, retrieval and application behavior. Fine-tuned or self-trained systems can still require training pipelines.","Do LLM applications need continuous training?",{"id":1350,"answer":2560,"question":2561},"Generative outputs are open-ended and model behavior can change across prompts, snapshots and context. Evals provide repeatable evidence that a release still meets defined quality and safety criteria.","Why are evals so important in LLMOps?",{"id":1354,"answer":2563,"question":2564},"At minimum: application code, model\u002Fprovider\u002Fversion, prompts, eval datasets\u002Fscorers, retrieval configuration\u002Findexes, tool schemas, context rules and relevant safety\u002Fpermission configuration.","What should be versioned in LLMOps?",{"id":1358,"answer":2566,"question":2567},"No. The same prompt can behave differently with another model, retrieval set, context order, tool surface or provider.","Is prompt versioning enough?",{"id":1362,"answer":2569,"question":2570},"GenAIOps is another industry term for operating generative-AI applications. Some vendors use it interchangeably or as a broader label than LLMOps.","What is GenAIOps?",{"id":1366,"answer":2572,"question":2573},"Monitor end-to-end traces including model calls, prompts\u002Fcontext, retrieval, tools, latency, token\u002Fcost, quality samples, safety and final task outcomes.","How do you monitor an LLM application?",{"id":1370,"answer":2575,"question":2576},"Yes. Local models add their own operational concerns such as model files, hardware\u002FVRAM, load\u002Funload, runtime health, quantization and upgrade management.","Can local LLMs use LLMOps practices?","MLOps vs LLMOps FAQ",{},{"id":1376,"data":2580,"type":42,"tunes":2582},{"text":2581,"level":253},"Glossary",{},{"id":1381,"data":2584,"type":1381,"tunes":2618},{"title":2585,"entries":2586},"Key MLOps and LLMOps terms",[2587,2589,2591,2593,2595,2598,2601,2604,2607,2609,2612,2615],{"term":415,"anchor":414,"definition":2588},"Engineering practices for building, deploying, monitoring and maintaining machine-learning systems and their data\u002Fmodel lifecycle.",{"term":418,"anchor":417,"definition":2590},"Operational practices for production applications whose behavior materially depends on large language models and surrounding prompts, context, retrieval, tools and runtime.",{"term":1390,"anchor":1391,"definition":2592},"Operational discipline for generative-AI applications; often used as a broader or alternate label for LLMOps.",{"term":1748,"anchor":1394,"definition":2594},"Automated or repeated retraining and serving of ML models as data or implementations change.",{"term":2596,"anchor":1398,"definition":2597},"Continuous evaluation","Repeated evaluation of candidate and production AI behavior against versioned datasets and criteria.",{"term":2599,"anchor":1402,"definition":2600},"Model snapshot","A concrete version of a hosted or packaged model whose behavior can be tested and referenced.",{"term":2602,"anchor":1406,"definition":2603},"Application lineage","Traceable relationship among code, model\u002Fprovider, prompts, data\u002Fretrieval, tools, runtime and release configuration.",{"term":2605,"anchor":1410,"definition":2606},"Trace","Structured record of one application execution containing spans such as model calls, retrievals and tool operations.",{"term":1803,"anchor":1413,"definition":2608},"Versioned set of representative inputs, expectations and optionally traces\u002Foutputs used to measure behavior.",{"term":2610,"anchor":1417,"definition":2611},"LLM judge","A language model used as an evaluator for qualitative or semantic criteria; it is itself a versioned evaluation dependency.",{"term":2613,"anchor":1421,"definition":2614},"Behavioral regression","A degradation in application output or trajectory despite interfaces and code continuing to execute successfully.",{"term":2616,"anchor":1425,"definition":2617},"Provider routing","Policy for selecting among available model providers\u002Fendpoints according to capability, cost, latency, privacy or availability.",{},{"id":1429,"data":2620,"type":42,"tunes":2622},{"text":2621,"level":253},"Conclusion",{},{"id":1434,"data":2624,"type":218,"tunes":2626},{"text":2625},"MLOps and LLMOps share the same engineering objective: make AI systems reproducible enough, testable enough and observable enough to operate reliably in production.",{},{"id":1439,"data":2628,"type":218,"tunes":2630},{"text":2629},"The difference is the shape of the system. Classical MLOps often centers on training and serving model artifacts; LLMOps must operate a behavioral stack in which model snapshots, prompts, context, retrieval, tools, permissions and providers can change independently.",{},{"id":1444,"data":2632,"type":218,"tunes":2634},{"text":2633},"The shortest useful rule is: version, evaluate and observe everything that can materially change the LLM application's behavior — not only the model.",{},{"id":1449,"data":2636,"type":42,"tunes":2638},{"text":2637,"level":253},"Primary sources and current documentation",{},{"id":1454,"data":2640,"type":218,"tunes":2642},{"text":2641},"The sources below ground the MLOps baseline and the current operational patterns for LLM and agent applications. Project sections are original implementation evidence and are intentionally narrower than claims about a complete LLMOps platform.",{},{"id":1459,"data":2644,"type":1466,"tunes":2649},{"link":1461,"meta":2645},{"image":2646,"title":2647,"description":2648},{"url":381},"Google Cloud — MLOps: Continuous delivery and automation pipelines","Reference architecture describing CI, CD, continuous training, model registry, metadata, serving and monitoring for ML systems.",{},{"id":1469,"data":2651,"type":1466,"tunes":2656},{"link":1471,"meta":2652},{"image":2653,"title":2654,"description":2655},{"url":381},"AWS Machine Learning Lens — Model lineage","Current guidance for tracking code, data, models, environments and infrastructure across ML releases.",{},{"id":1478,"data":2658,"type":1466,"tunes":2663},{"link":1480,"meta":2659},{"image":2660,"title":2661,"description":2662},{"url":381},"AWS Machine Learning Lens — Model observability and tracking","Current guidance for production model monitoring, drift, endpoint health and lineage.",{},{"id":1487,"data":2665,"type":1466,"tunes":2670},{"link":1489,"meta":2666},{"image":2667,"title":2668,"description":2669},{"url":381},"Microsoft Azure — GenAIOps \u002F LLMOps lifecycle","Official guidance describing GenAIOps, sometimes called LLMOps, across initialization, experimentation, evaluation\u002Frefinement and deployment.",{},{"id":1496,"data":2672,"type":1466,"tunes":2677},{"link":1498,"meta":2673},{"image":2674,"title":2675,"description":2676},{"url":381},"MLflow — Agents and LLM applications","Current GenAI operations documentation covering tracing, evaluation, prompts and production observability for LLM applications and agents.",{},{"id":1505,"data":2679,"type":1466,"tunes":2684},{"link":1507,"meta":2680},{"image":2681,"title":2682,"description":2683},{"url":381},"MLflow — Evaluating production traces","Current guidance for evaluating complete LLM\u002Fagent traces, including retrieval and tool-call trajectories.",{},{"id":1514,"data":2686,"type":1466,"tunes":2691},{"link":1516,"meta":2687},{"image":2688,"title":2689,"description":2690},{"url":381},"MLflow — Evaluating prompts","Current prompt\u002Fmodel evaluation workflow using versioned prompts, datasets, scorers and traces.",{},{"id":1523,"data":2693,"type":1466,"tunes":2698},{"link":1525,"meta":2694},{"image":2695,"title":2696,"description":2697},{"url":381},"OpenAI API — Versioning and model snapshots","Current API guidance recommending pinned model versions and evals because prompting behavior can change between snapshots.",{},{"id":1532,"data":2700,"type":1466,"tunes":2704},{"link":1534,"meta":2701},{"image":2702,"title":1537,"description":2703},{"url":381},"Current guidance to treat production prompts as application code, version them through source control and cover changes with tests and evaluation checks.",{},{"id":1541,"data":2706,"type":1466,"tunes":2711},{"link":1543,"meta":2707},{"image":2708,"title":2709,"description":2710},{"url":381},"OpenAI — Deprecations","Current provider lifecycle evidence showing model and platform-surface retirement as an operational dependency.",{},{"id":1550,"data":2713,"type":1466,"tunes":2718},{"link":1552,"meta":2714},{"image":2715,"title":2716,"description":2717},{"url":381},"OpenAI — Moving evaluation workflows to Promptfoo","Current 2026 migration guidance illustrating why evaluation assets should remain portable as provider tooling changes.",{},"2.31.6","MLOps operates machine-learning systems; LLMOps extends those practices to prompts, context, retrieval, providers, tools, evaluations and runtime behavior around large language models.",{"lang":7,"title":208,"content":210,"contentJson":2722,"excerpt":1559},{"time":212,"blocks":2723,"version":1558},[2724,2727,2730,2733,2736,2739,2742,2745,2748,2751,2754,2757,2760,2763,2766,2769,2772,2775,2778,2790,2793,2796,2799,2802,2805,2828,2831,2834,2837,2840,2843,2862,2865,2868,2871,2874,2877,2880,2883,2886,2889,2892,2895,2898,2901,2904,2907,2910,2913,2916,2919,2922,2925,2928,2931,2934,2937,2940,2943,2946,2949,2952,2955,2958,2961,2964,2967,2970,2973,2976,2979,2982,2985,2988,2991,2994,2997,3000,3003,3006,3009,3012,3015,3018,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3074,3077,3080,3083,3086,3089,3092,3095,3098,3101,3104,3107,3110,3113,3116,3119,3122,3125,3128,3131,3134,3137,3140,3143,3146,3149,3152,3165,3168,3171,3188,3191,3206,3209,3225,3228,3247,3250,3253,3256,3259,3262,3265,3268,3271,3274,3277,3280,3283,3286,3289,3292,3295,3298,3311,3314,3330,3333,3336,3339,3342,3345,3348,3353,3358,3363,3368,3373,3378,3383,3388,3393,3398],{"id":215,"data":2725,"type":218,"tunes":2726},{"text":217},{},{"id":221,"data":2728,"type":226,"tunes":2729},{"body":223,"title":224,"variant":225},{},{"id":229,"data":2731,"type":226,"tunes":2732},{"body":231,"title":232,"variant":233},{},{"id":236,"data":2734,"type":226,"tunes":2735},{"body":238,"title":239,"variant":240},{},{"id":243,"data":2737,"type":226,"tunes":2738},{"body":245,"title":246,"variant":240},{},{"id":249,"data":2740,"type":254,"tunes":2741},{"title":251,"maxLevel":252,"minLevel":253},{},{"id":257,"data":2743,"type":42,"tunes":2744},{"text":259,"level":253},{},{"id":262,"data":2746,"type":218,"tunes":2747},{"text":264},{},{"id":267,"data":2749,"type":218,"tunes":2750},{"text":269},{},{"id":272,"data":2752,"type":218,"tunes":2753},{"text":274},{},{"id":277,"data":2755,"type":42,"tunes":2756},{"text":279,"level":253},{},{"id":282,"data":2758,"type":218,"tunes":2759},{"text":284},{},{"id":287,"data":2761,"type":218,"tunes":2762},{"text":289},{},{"id":292,"data":2764,"type":218,"tunes":2765},{"text":294},{},{"id":297,"data":2767,"type":42,"tunes":2768},{"text":299,"level":253},{},{"id":302,"data":2770,"type":218,"tunes":2771},{"text":304},{},{"id":307,"data":2773,"type":218,"tunes":2774},{"text":309},{},{"id":312,"data":2776,"type":218,"tunes":2777},{"text":314},{},{"id":317,"data":2779,"type":346,"tunes":2789},{"steps":2780,"title":344,"orientation":345},[2781,2782,2783,2784,2785,2786,2787,2788],{"label":321,"description":322},{"label":324,"description":325},{"label":327,"description":328},{"label":330,"description":331},{"label":333,"description":334},{"label":336,"description":337},{"label":339,"description":340},{"label":342,"description":343},{},{"id":349,"data":2791,"type":42,"tunes":2792},{"text":351,"level":253},{},{"id":354,"data":2794,"type":218,"tunes":2795},{"text":356},{},{"id":359,"data":2797,"type":218,"tunes":2798},{"text":361},{},{"id":364,"data":2800,"type":218,"tunes":2801},{"text":366},{},{"id":369,"data":2803,"type":42,"tunes":2804},{"text":371,"level":253},{},{"id":374,"data":2806,"type":419,"tunes":2827},{"rows":2807,"title":410,"layout":411,"columns":2824},[2808,2810,2812,2814,2816,2818,2820,2822],{"id":378,"label":379,"values":2809},[381,381],{"id":383,"label":384,"values":2811},[381,381],{"id":387,"label":388,"values":2813},[381,381],{"id":391,"label":392,"values":2815},[381,381],{"id":395,"label":396,"values":2817},[381,381],{"id":399,"label":400,"values":2819},[381,381],{"id":403,"label":404,"values":2821},[381,381],{"id":407,"label":408,"values":2823},[381,381],[2825,2826],{"id":414,"label":415},{"id":417,"label":418},{},{"id":422,"data":2829,"type":42,"tunes":2830},{"text":424,"level":253},{},{"id":427,"data":2832,"type":218,"tunes":2833},{"text":429},{},{"id":432,"data":2835,"type":218,"tunes":2836},{"text":434},{},{"id":437,"data":2838,"type":218,"tunes":2839},{"text":439},{},{"id":442,"data":2841,"type":42,"tunes":2842},{"text":444,"level":253},{},{"id":447,"data":2844,"type":411,"tunes":2861},{"content":2845,"stretched":43,"withHeadings":14},[2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860],[451,452],[454,455],[457,458],[460,461],[463,464],[466,467],[469,470],[472,473],[475,476],[478,479],[481,482],[484,485],[487,488],[490,491],[493,494],{},{"id":497,"data":2863,"type":42,"tunes":2864},{"text":499,"level":253},{},{"id":502,"data":2866,"type":218,"tunes":2867},{"text":504},{},{"id":507,"data":2869,"type":218,"tunes":2870},{"text":509},{},{"id":512,"data":2872,"type":218,"tunes":2873},{"text":514},{},{"id":517,"data":2875,"type":42,"tunes":2876},{"text":519,"level":253},{},{"id":522,"data":2878,"type":218,"tunes":2879},{"text":524},{},{"id":527,"data":2881,"type":218,"tunes":2882},{"text":529},{},{"id":532,"data":2884,"type":218,"tunes":2885},{"text":534},{},{"id":537,"data":2887,"type":42,"tunes":2888},{"text":539,"level":253},{},{"id":542,"data":2890,"type":218,"tunes":2891},{"text":544},{},{"id":547,"data":2893,"type":218,"tunes":2894},{"text":549},{},{"id":552,"data":2896,"type":218,"tunes":2897},{"text":554},{},{"id":557,"data":2899,"type":42,"tunes":2900},{"text":559,"level":253},{},{"id":562,"data":2902,"type":218,"tunes":2903},{"text":564},{},{"id":567,"data":2905,"type":218,"tunes":2906},{"text":569},{},{"id":572,"data":2908,"type":218,"tunes":2909},{"text":574},{},{"id":577,"data":2911,"type":42,"tunes":2912},{"text":579,"level":253},{},{"id":582,"data":2914,"type":218,"tunes":2915},{"text":584},{},{"id":587,"data":2917,"type":218,"tunes":2918},{"text":589},{},{"id":592,"data":2920,"type":218,"tunes":2921},{"text":594},{},{"id":597,"data":2923,"type":603,"tunes":2924},{"url":599,"title":600,"excerpt":601,"ctaLabel":602},{},{"id":606,"data":2926,"type":42,"tunes":2927},{"text":608,"level":253},{},{"id":611,"data":2929,"type":218,"tunes":2930},{"text":613},{},{"id":616,"data":2932,"type":218,"tunes":2933},{"text":618},{},{"id":621,"data":2935,"type":218,"tunes":2936},{"text":623},{},{"id":626,"data":2938,"type":226,"tunes":2939},{"body":628,"title":629,"variant":630},{},{"id":633,"data":2941,"type":42,"tunes":2942},{"text":635,"level":253},{},{"id":638,"data":2944,"type":218,"tunes":2945},{"text":640},{},{"id":643,"data":2947,"type":218,"tunes":2948},{"text":645},{},{"id":648,"data":2950,"type":218,"tunes":2951},{"text":650},{},{"id":653,"data":2953,"type":42,"tunes":2954},{"text":655,"level":253},{},{"id":658,"data":2956,"type":218,"tunes":2957},{"text":660},{},{"id":663,"data":2959,"type":218,"tunes":2960},{"text":665},{},{"id":668,"data":2962,"type":218,"tunes":2963},{"text":670},{},{"id":673,"data":2965,"type":42,"tunes":2966},{"text":675,"level":253},{},{"id":678,"data":2968,"type":218,"tunes":2969},{"text":680},{},{"id":683,"data":2971,"type":218,"tunes":2972},{"text":685},{},{"id":688,"data":2974,"type":218,"tunes":2975},{"text":690},{},{"id":693,"data":2977,"type":603,"tunes":2978},{"url":695,"title":696,"excerpt":697,"ctaLabel":698},{},{"id":701,"data":2980,"type":42,"tunes":2981},{"text":703,"level":253},{},{"id":706,"data":2983,"type":218,"tunes":2984},{"text":708},{},{"id":711,"data":2986,"type":218,"tunes":2987},{"text":713},{},{"id":716,"data":2989,"type":218,"tunes":2990},{"text":718},{},{"id":721,"data":2992,"type":42,"tunes":2993},{"text":723,"level":253},{},{"id":726,"data":2995,"type":218,"tunes":2996},{"text":728},{},{"id":731,"data":2998,"type":218,"tunes":2999},{"text":733},{},{"id":736,"data":3001,"type":218,"tunes":3002},{"text":738},{},{"id":741,"data":3004,"type":42,"tunes":3005},{"text":743,"level":253},{},{"id":746,"data":3007,"type":218,"tunes":3008},{"text":748},{},{"id":751,"data":3010,"type":218,"tunes":3011},{"text":753},{},{"id":756,"data":3013,"type":218,"tunes":3014},{"text":758},{},{"id":761,"data":3016,"type":42,"tunes":3017},{"text":763,"level":253},{},{"id":766,"data":3019,"type":411,"tunes":3031},{"content":3020,"stretched":43,"withHeadings":14},[3021,3022,3023,3024,3025,3026,3027,3028,3029,3030],[770,771],[773,774],[776,777],[779,780],[782,783],[785,786],[788,789],[791,792],[794,795],[797,798],{},{"id":801,"data":3033,"type":42,"tunes":3034},{"text":803,"level":253},{},{"id":806,"data":3036,"type":218,"tunes":3037},{"text":808},{},{"id":811,"data":3039,"type":218,"tunes":3040},{"text":813},{},{"id":816,"data":3042,"type":218,"tunes":3043},{"text":818},{},{"id":821,"data":3045,"type":42,"tunes":3046},{"text":823,"level":253},{},{"id":826,"data":3048,"type":218,"tunes":3049},{"text":828},{},{"id":831,"data":3051,"type":218,"tunes":3052},{"text":833},{},{"id":836,"data":3054,"type":218,"tunes":3055},{"text":838},{},{"id":841,"data":3057,"type":42,"tunes":3058},{"text":843,"level":253},{},{"id":846,"data":3060,"type":411,"tunes":3073},{"content":3061,"stretched":43,"withHeadings":14},[3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072],[850,851],[853,854],[856,857],[859,860],[862,863],[865,866],[782,868],[788,870],[791,872],[874,875],[877,878],{},{"id":881,"data":3075,"type":42,"tunes":3076},{"text":883,"level":253},{},{"id":886,"data":3078,"type":218,"tunes":3079},{"text":888},{},{"id":891,"data":3081,"type":218,"tunes":3082},{"text":893},{},{"id":896,"data":3084,"type":218,"tunes":3085},{"text":898},{},{"id":901,"data":3087,"type":42,"tunes":3088},{"text":903,"level":253},{},{"id":906,"data":3090,"type":218,"tunes":3091},{"text":908},{},{"id":911,"data":3093,"type":218,"tunes":3094},{"text":913},{},{"id":916,"data":3096,"type":218,"tunes":3097},{"text":918},{},{"id":921,"data":3099,"type":42,"tunes":3100},{"text":923,"level":253},{},{"id":926,"data":3102,"type":218,"tunes":3103},{"text":928},{},{"id":931,"data":3105,"type":218,"tunes":3106},{"text":933},{},{"id":936,"data":3108,"type":218,"tunes":3109},{"text":938},{},{"id":941,"data":3111,"type":42,"tunes":3112},{"text":943,"level":253},{},{"id":946,"data":3114,"type":218,"tunes":3115},{"text":948},{},{"id":951,"data":3117,"type":218,"tunes":3118},{"text":953},{},{"id":956,"data":3120,"type":218,"tunes":3121},{"text":958},{},{"id":961,"data":3123,"type":42,"tunes":3124},{"text":963,"level":253},{},{"id":966,"data":3126,"type":42,"tunes":3127},{"text":968,"level":252},{},{"id":971,"data":3129,"type":218,"tunes":3130},{"text":973},{},{"id":976,"data":3132,"type":218,"tunes":3133},{"text":978},{},{"id":981,"data":3135,"type":218,"tunes":3136},{"text":983},{},{"id":986,"data":3138,"type":218,"tunes":3139},{"text":988},{},{"id":991,"data":3141,"type":42,"tunes":3142},{"text":993,"level":252},{},{"id":996,"data":3144,"type":218,"tunes":3145},{"text":998},{},{"id":1001,"data":3147,"type":218,"tunes":3148},{"text":1003},{},{"id":1006,"data":3150,"type":218,"tunes":3151},{"text":1008},{},{"id":1011,"data":3153,"type":411,"tunes":3164},{"content":3154,"stretched":43,"withHeadings":14},[3155,3156,3157,3158,3159,3160,3161,3162,3163],[1015,1016],[1018,1019],[1021,1022],[1024,1025],[1027,1028],[1030,1031],[1033,1034],[1036,1037],[1039,1040],{},{"id":1043,"data":3166,"type":226,"tunes":3167},{"body":1045,"title":1046,"variant":240},{},{"id":1049,"data":3169,"type":42,"tunes":3170},{"text":1051,"level":253},{},{"id":1054,"data":3172,"type":411,"tunes":3187},{"content":3173,"stretched":43,"withHeadings":14},[3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186],[1058,1059],[1061,1062],[1064,1065],[1067,1068],[1070,1071],[1073,1074],[1076,1077],[1079,1080],[1082,1083],[1085,1086],[1088,1089],[1091,1092],[1094,1095],{},{"id":1098,"data":3189,"type":42,"tunes":3190},{"text":1100,"level":253},{},{"id":1103,"data":3192,"type":411,"tunes":3205},{"content":3193,"stretched":43,"withHeadings":14},[3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204],[1107,1108],[1110,1111],[1113,1114],[1116,1117],[1119,1120],[1122,1123],[1125,1126],[1128,1129],[1131,1132],[1134,1135],[1137,1138],{},{"id":1141,"data":3207,"type":42,"tunes":3208},{"text":1143,"level":253},{},{"id":1146,"data":3210,"type":346,"tunes":3224},{"steps":3211,"title":1185,"orientation":345},[3212,3213,3214,3215,3216,3217,3218,3219,3220,3221,3222,3223],{"label":1150,"description":1151},{"label":1153,"description":1154},{"label":1156,"description":1157},{"label":1159,"description":1160},{"label":1162,"description":1163},{"label":1165,"description":1166},{"label":1168,"description":1169},{"label":1171,"description":1172},{"label":1174,"description":1175},{"label":1177,"description":1178},{"label":1180,"description":1181},{"label":1183,"description":1184},{},{"id":1188,"data":3226,"type":42,"tunes":3227},{"text":1190,"level":253},{},{"id":1193,"data":3229,"type":411,"tunes":3246},{"content":3230,"stretched":43,"withHeadings":14},[3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245],[1197,1198],[1200,1201],[1203,1204],[1206,1207],[1209,1210],[1212,1213],[1215,1216],[1218,1219],[1221,1222],[1224,1225],[1227,1228],[1230,1231],[1233,1234],[1236,1237],[1239,1240],{},{"id":1243,"data":3248,"type":42,"tunes":3249},{"text":1245,"level":253},{},{"id":1248,"data":3251,"type":218,"tunes":3252},{"text":1250},{},{"id":1253,"data":3254,"type":218,"tunes":3255},{"text":1255},{},{"id":1258,"data":3257,"type":218,"tunes":3258},{"text":1260},{},{"id":1263,"data":3260,"type":218,"tunes":3261},{"text":1265},{},{"id":1268,"data":3263,"type":218,"tunes":3264},{"text":1270},{},{"id":1273,"data":3266,"type":42,"tunes":3267},{"text":1275,"level":253},{},{"id":1278,"data":3269,"type":218,"tunes":3270},{"text":1280},{},{"id":1283,"data":3272,"type":218,"tunes":3273},{"text":1285},{},{"id":1288,"data":3275,"type":218,"tunes":3276},{"text":1290},{},{"id":1293,"data":3278,"type":42,"tunes":3279},{"text":1295,"level":253},{},{"id":1298,"data":3281,"type":218,"tunes":3282},{"text":1300},{},{"id":1303,"data":3284,"type":218,"tunes":3285},{"text":1305},{},{"id":1308,"data":3287,"type":218,"tunes":3288},{"text":1310},{},{"id":1313,"data":3290,"type":603,"tunes":3291},{"url":1315,"title":1316,"excerpt":1317,"ctaLabel":1318},{},{"id":1321,"data":3293,"type":603,"tunes":3294},{"url":1323,"title":1324,"excerpt":1325,"ctaLabel":1326},{},{"id":1329,"data":3296,"type":42,"tunes":3297},{"text":1331,"level":253},{},{"id":1334,"data":3299,"type":1334,"tunes":3310},{"items":3300,"title":1373},[3301,3302,3303,3304,3305,3306,3307,3308,3309],{"id":1338,"answer":1339,"question":1340},{"id":1342,"answer":1343,"question":1344},{"id":1346,"answer":1347,"question":1348},{"id":1350,"answer":1351,"question":1352},{"id":1354,"answer":1355,"question":1356},{"id":1358,"answer":1359,"question":1360},{"id":1362,"answer":1363,"question":1364},{"id":1366,"answer":1367,"question":1368},{"id":1370,"answer":1371,"question":1372},{},{"id":1376,"data":3312,"type":42,"tunes":3313},{"text":1378,"level":253},{},{"id":1381,"data":3315,"type":1381,"tunes":3329},{"title":1383,"entries":3316},[3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328],{"term":415,"anchor":414,"definition":1386},{"term":418,"anchor":417,"definition":1388},{"term":1390,"anchor":1391,"definition":1392},{"term":400,"anchor":1394,"definition":1395},{"term":1397,"anchor":1398,"definition":1399},{"term":1401,"anchor":1402,"definition":1403},{"term":1405,"anchor":1406,"definition":1407},{"term":1409,"anchor":1410,"definition":1411},{"term":469,"anchor":1413,"definition":1414},{"term":1416,"anchor":1417,"definition":1418},{"term":1420,"anchor":1421,"definition":1422},{"term":1424,"anchor":1425,"definition":1426},{},{"id":1429,"data":3331,"type":42,"tunes":3332},{"text":1431,"level":253},{},{"id":1434,"data":3334,"type":218,"tunes":3335},{"text":1436},{},{"id":1439,"data":3337,"type":218,"tunes":3338},{"text":1441},{},{"id":1444,"data":3340,"type":218,"tunes":3341},{"text":1446},{},{"id":1449,"data":3343,"type":42,"tunes":3344},{"text":1451,"level":253},{},{"id":1454,"data":3346,"type":218,"tunes":3347},{"text":1456},{},{"id":1459,"data":3349,"type":1466,"tunes":3352},{"link":1461,"meta":3350},{"image":3351,"title":1464,"description":1465},{"url":381},{},{"id":1469,"data":3354,"type":1466,"tunes":3357},{"link":1471,"meta":3355},{"image":3356,"title":1474,"description":1475},{"url":381},{},{"id":1478,"data":3359,"type":1466,"tunes":3362},{"link":1480,"meta":3360},{"image":3361,"title":1483,"description":1484},{"url":381},{},{"id":1487,"data":3364,"type":1466,"tunes":3367},{"link":1489,"meta":3365},{"image":3366,"title":1492,"description":1493},{"url":381},{},{"id":1496,"data":3369,"type":1466,"tunes":3372},{"link":1498,"meta":3370},{"image":3371,"title":1501,"description":1502},{"url":381},{},{"id":1505,"data":3374,"type":1466,"tunes":3377},{"link":1507,"meta":3375},{"image":3376,"title":1510,"description":1511},{"url":381},{},{"id":1514,"data":3379,"type":1466,"tunes":3382},{"link":1516,"meta":3380},{"image":3381,"title":1519,"description":1520},{"url":381},{},{"id":1523,"data":3384,"type":1466,"tunes":3387},{"link":1525,"meta":3385},{"image":3386,"title":1528,"description":1529},{"url":381},{},{"id":1532,"data":3389,"type":1466,"tunes":3392},{"link":1534,"meta":3390},{"image":3391,"title":1537,"description":1538},{"url":381},{},{"id":1541,"data":3394,"type":1466,"tunes":3397},{"link":1543,"meta":3395},{"image":3396,"title":1546,"description":1547},{"url":381},{},{"id":1550,"data":3399,"type":1466,"tunes":3402},{"link":1552,"meta":3400},{"image":3401,"title":1555,"description":1556},{"url":381},{},"Post erfolgreich abgerufen",{"items":3405,"source":3486,"manualIds":3487,"manualMatchedIds":3488},[3406,3413,3420,3427,3434,3441,3447,3454,3461,3466,3472,3479],{"id":3407,"slug":3408,"title":3409,"excerpt":3410,"featuredImage":3411,"publishedAt":3412},"469","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","RAG falló — ¿Pero qué capa falló realmente? Un método de diagnóstico","Cuando una respuesta RAG es incorrecta, culpar a la recuperación o al modelo es demasiado vago. Este método de diagnóstico aísla la cobertura de fuentes, la construcción de consultas, la recuperación, el ranking, el ensamblaje del contexto, la generación, la atribución de evidencia y la actualidad, de modo que el fallo real puede reproducirse y corregirse.","\u002Fuploads\u002F2026\u002F09\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c.webp","2026-09-24T19:39:00.000Z",{"id":3414,"slug":3415,"title":3416,"excerpt":3417,"featuredImage":3418,"publishedAt":3419},"445","qwen-3-6-in-production-release-runbook-ai-rollback-and-llmops-versioning","Qwen 3.6 en producción: Runbook de lanzamiento, rollback de IA y versionado de LLMOps","Qwen 3.6 no es solo otra actualización de modelo. Es un evento de lanzamiento, un escenario de reversión y un problema de versionado al mismo tiempo. Este artículo explica cómo debe manejarse Qwen 3.6 en producción a través de la disciplina de LLMOps, la trazabilidad de prompts y modelos, el despliegue controlado y la preparación para la reversión basada en evidencia.","\u002Fuploads\u002F2026\u002F02\u002Fnew-qwen-3-5-plus-1771515512741-dcbi9p.webp","2026-05-04T02:49:00.000Z",{"id":3421,"slug":3422,"title":3423,"excerpt":3424,"featuredImage":3425,"publishedAt":3426},"480","when-should-an-ai-stop-trusting-its-own-knowledge-the-retrieval-trigger","¿Cuándo debería una IA dejar de confiar en su propio conocimiento? — El desencadenante de la recuperación","Un modelo de IA no necesita recuperación para cada pregunta. El problema importante es saber cuándo su conocimiento interno ya no es suficiente. El Disparador de Recuperación es un límite de decisión práctico que determina cuándo un sistema de IA debe dejar de depender únicamente del conocimiento del modelo y obtener evidencia externa antes de responder.","\u002Fuploads\u002F2026\u002F09\u002Fwhen-should-an-ai-stop-trusting-its-own-knowledge-the-retrieval-trigger-1790574991244-f4rpyg.webp","2026-09-28T01:49:00.000Z",{"id":3428,"slug":3429,"title":3430,"excerpt":3431,"featuredImage":3432,"publishedAt":3433},"455","zbt-z8102ax-dual-sim-failover-test","Conmutación por error de doble SIM del ZBT Z8102AX: qué funciona, qué falta y qué necesita un mejor firmware","El ZBT Z8102AX es un router OpenWrt 5G de doble SIM, pero el hardware de doble SIM por sí solo no es lo mismo que una conmutación por error inteligente. El router reconoce la SIM y se conecta correctamente, pero el cambio automático, la recuperación del módem, las decisiones basadas en la señal y una lógica de conmutación por error limpia aún necesitan pruebas más profundas.","\u002Fuploads\u002F2026\u002F06\u002Fopenwrt-router-review-dual-sim-03-1781620592829-7t77j7.webp","2026-06-16T10:40:00.000Z",{"id":3435,"slug":3436,"title":3437,"excerpt":3438,"featuredImage":3439,"publishedAt":3440},"479","where-does-an-llm-get-its-data-rag-data-sources-in-python","¿De dónde obtiene sus datos un LLM? Fuentes de datos RAG en Python","Un LLM no conoce mágicamente tus archivos, bases de datos o APIs. Esta continuación práctica de la serie RAG muestra, con Python sencillo, cómo los datos externos se convierten en evidencia recuperable: desde archivos de texto y SQL hasta búsqueda de texto completo, embeddings, ensamblaje de contexto y la llamada final al LLM.","\u002Fuploads\u002F2026\u002F09\u002Fwhere-does-an-llm-get-its-data-rag-data-sources-in-python-1790517200521-nfsi5i.webp","2026-09-27T05:51:00.000Z",{"id":3442,"slug":3443,"title":3444,"excerpt":3445,"featuredImage":3418,"publishedAt":3446},"384","new-qwen-3-5-plus","Nuevo Qwen 3.5-Plus: La IA de código abierto se ha puesto seria","Descubre las características y beneficios innovadores de Qwen 3.5-Plus de Alibaba, una IA de código abierto que cambia las reglas del juego para desarrolladores.","2026-02-19T10:23:00.000Z",{"id":3448,"slug":3449,"title":3450,"excerpt":3451,"featuredImage":3452,"publishedAt":3453},"477","computer-use-agents-why-a-successful-demo-can-still-be-an-unreliable-system","Agentes de uso de computadoras: por qué una demostración exitosa aún puede ser un sistema poco confiable","Los agentes de uso de computadoras ahora pueden completar impresionantes flujos de trabajo en el navegador y en el escritorio, pero una ejecución exitosa demuestra capacidad—no fiabilidad. Este artículo muestra cómo probar la repetibilidad, la robustez ambiental, el control de horizonte largo, la conciencia del estado, la verificación de resultados y la gestión segura de objetivos.","\u002Fuploads\u002F2026\u002F09\u002Fcomputer-use-agents-why-a-successful-demo-can-still-be-an-unreliable-system-1790352854690-75qnrg.webp","2026-09-25T12:13:00.000Z",{"id":3455,"slug":3456,"title":3457,"excerpt":3458,"featuredImage":3459,"publishedAt":3460},"475","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","Harness de agente gestionado vs. bucle de agente autohospedado: lo que ganas, lo que pierdes","“Agente autoalojado” puede significar arquitecturas muy diferentes. Esta guía separa el arnés gestionado, el entorno de ejecución autoalojado y el bucle de agente totalmente autooperado—y muestra qué límite de control necesitan realmente los equipos.","\u002Fuploads\u002F2026\u002F09\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose-1790352403475-kj10jh.webp","2026-09-25T12:05:00.000Z",{"id":3462,"slug":3463,"title":3463,"excerpt":10,"featuredImage":3464,"publishedAt":3465},"369","git-with-automatic-upload-and-synchronization-to-a-production-server","\u002Fuploads\u002F2024\u002F05\u002Fstep-by-step-guide-illustration-showing-the-process-of-setting-up-Git-with-auto-upload-and-synchronization-to-a-production-server-large.webp","2024-05-28T22:48:00.000Z",{"id":3467,"slug":1587,"title":3468,"excerpt":3469,"featuredImage":3470,"publishedAt":3471},"434","Guía completa de Evaluation Harness: Dominando la evaluación del rendimiento de LLM","Esta guía proporciona un recorrido detallado de Evaluation Harness, un marco de trabajo esencial para evaluar rigurosamente las capacidades de los modelos de lenguaje extensos (LLM) en los pipelines de LLMOps empresariales. Conozca la configuración, las mejores prácticas y las técnicas avanzadas para garantizar una evaluación comparativa y optimización de modelos confiables.","\u002Fuploads\u002F2026\u002F04\u002Fevaluation-harness-1775466944495-4s0xv2.webp","2026-03-01T17:50:00.000Z",{"id":3473,"slug":3474,"title":3475,"excerpt":3476,"featuredImage":3477,"publishedAt":3478},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama no es el producto: Construcción de aplicaciones de LLM abiertos listas para producción","Ejecutar un modelo local con Ollama es fácil. Construir una aplicación Open-LLM lista para producción es más difícil: requiere RAG, control de acceso, abstracción de proveedores, evaluación, registro, disciplina de despliegue y una capa de aplicación controlada alrededor del modelo.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":3480,"slug":3481,"title":3482,"excerpt":3483,"featuredImage":3484,"publishedAt":3485},"478","what-is-rag-the-simplest-explanation-of-how-it-works","¿Qué es RAG? La explicación más sencilla de cómo funciona","RAG suena complicado, pero la idea es simple: antes de que una IA responda, primero busca información útil de una fuente de conocimiento y le da esa información al modelo de lenguaje. Esta guía explica RAG, los LLM, el estado, la memoria y las herramientas usando un modelo mental simple.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works-1790377492124-khjagt.webp","2026-09-25T19:03:00.000Z","fallback",[],[]]