[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:fr":3,"public-menus:all":38,"post:mlops-vs-llmops-what-changes-when-the-model-is-an-llm:fr":205,"related:post:mlops-vs-llmops-what-changes-when-the-model-is-an-llm:fr:1":3398},{"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","fr","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":3397},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":1558,"featuredImage":1559,"featuredImageAlt":1560,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":1561,"publishedAt":1562,"createdAt":1563,"updatedAt":1564,"seoLocalePaths":1565,"categories":1574,"author":1591,"translations":1596},"493","MLOps vs LLMOps : qu'est-ce qui change lorsque le modèle est un LLM","mlops-vs-llmops-what-changes-when-the-model-is-an-llm","\u003Cp>MLOps est la discipline d'ingénierie permettant de développer, déployer, versionner et exploiter de manière fiable des systèmes d'apprentissage automatique ; LLMOps étend cette discipline aux applications construites autour de grands modèles de langage, où le comportement en production dépend non seulement d'un artefact de modèle mais aussi des prompts, du contexte, de la récupération, des versions de fournisseur\u002Fmodèle, des appels d'outils, des contrôles de sécurité et des pipelines d'évaluation. LLMOps ne remplace pas MLOps. Il fait passer l'unité opérationnelle de « un modèle plus un pipeline de service » vers « une application LLM en évolution dont le comportement émerge de plusieurs composants évoluant indépendamment ».\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\">Réponse directe\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>MLOps exploite les systèmes ML. LLMOps exploite les applications LLM.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Le MLOps classique se concentre généralement sur les pipelines de données, l&#39;entraînement, la validation, le registre de modèles, le déploiement, la dérive et le réentraînement. LLMOps conserve ces disciplines lorsqu&#39;elles sont pertinentes, mais ajoute souvent le versionnage des prompts\u002Fcontexte, l&#39;abstraction du modèle\u002Ffournisseur, les index RAG, les traces d&#39;agents\u002Foutils, les évaluations sémantiques, les tests de sécurité, la surveillance des tokens\u002Fcoûts et les tests de régression sur des instantanés de modèles évoluant rapidement.\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 n&#39;est pas seulement de la gestion de prompts\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Une application LLM en production peut échouer même lorsque le prompt est inchangé : le fournisseur peut modifier un instantané de modèle, un corpus RAG peut devenir obsolète, un reranker peut régresser, les permissions d&#39;outils peuvent changer, l&#39;assemblage du contexte peut perdre des preuves, ou un agent peut suivre une mauvaise trajectoire. LLMOps doit donc observer et versionner le système autour du modèle, pas seulement le texte du 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\">Frontière terminologique\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>LLMOps\u003C\u002Fstrong>, \u003Cstrong>GenAIOps\u003C\u002Fstrong> et les termes associés sont des étiquettes d&#39;ingénierie largement utilisées, mais ils ne constituent pas une norme formelle universelle avec un cycle de vie canonique unique. Microsoft décrit actuellement GenAIOps comme « parfois appelé LLMOps », tandis que MLflow regroupe les outils opérationnels autour des agents et des applications LLM. Cet article utilise LLMOps comme terme d&#39;architecture pratique pour l&#39;exploitation de systèmes de production dont le comportement dépend matériellement des 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\">Note sur les sources actuelles — 8 octobre 2026\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">La surface opérationnelle évolue rapidement. OpenAI recommande actuellement d&#39;épingler les instantanés de modèles et d&#39;exécuter des évaluations car le comportement de prompting peut changer entre les instantanés, et plusieurs anciennes surfaces de prompt\u002Févaluation spécifiques à la plateforme sont retirées en 2026. La leçon architecturale stable est de garder les prompts, les tests et les évaluations portables et versionnés avec l&#39;application plutôt que de dépendre du modèle objet du tableau de bord d&#39;un fournisseur.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Sommaire\">\u003Cstrong class=\"editorjs-toc__title\">Sommaire\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\">Ce que MLOps signifie réellement\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-11\" class=\"editorjs-toc__link\">Ce qui change lorsque le modèle est un LLM\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-15\" class=\"editorjs-toc__link\">L&#39;exemple le plus simple\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-20\" class=\"editorjs-toc__link\">Où l&#39;exemple simple s&#39;arrête\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 étend MLOps plutôt que de le remplacer\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-30\" class=\"editorjs-toc__link\">Que faut-il versionner dans LLMOps ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-32\" class=\"editorjs-toc__link\">Les snapshots de modèle deviennent des dépendances de publication\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-36\" class=\"editorjs-toc__link\">Le cycle de vie du fournisseur fait partie des opérations\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-40\" class=\"editorjs-toc__link\">Les prompts se comportent comme du code de production\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-44\" class=\"editorjs-toc__link\">L&#39;ingénierie du contexte devient une préoccupation opérationnelle\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-48\" class=\"editorjs-toc__link\">Le RAG crée son propre cycle de vie opérationnel\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-53\" class=\"editorjs-toc__link\">Les évaluations remplacent « ça me semble bon » par des preuves de mise en production\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-58\" class=\"editorjs-toc__link\">Le LLM comme juge est utile mais ne constitue pas une vérité de référence\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-62\" class=\"editorjs-toc__link\">Le traçage devient plus important que les journaux de point de terminaison\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-66\" class=\"editorjs-toc__link\">Les agents étendent le LLMOps aux opérations d&#39;exécution\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-71\" class=\"editorjs-toc__link\">Les tokens, les appels de modèle et le contexte deviennent des variables de coût\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-75\" class=\"editorjs-toc__link\">La mise en cache devient sémantique, pas seulement technique\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-79\" class=\"editorjs-toc__link\">La sécurité et les autorisations deviennent des critères de mise en production\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-83\" class=\"editorjs-toc__link\">À quoi ressemble le CI dans LLMOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-85\" class=\"editorjs-toc__link\">À quoi ressemble le CD dans LLMOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-89\" class=\"editorjs-toc__link\">L&#39;entraînement continu devient optionnel ; l&#39;évaluation continue devient centrale\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-93\" class=\"editorjs-toc__link\">Que faut-il surveiller en production ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-95\" class=\"editorjs-toc__link\">Les traces de production peuvent devenir des données d&#39;évaluation\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-99\" class=\"editorjs-toc__link\">La reproductibilité devient conditionnelle plutôt qu&#39;exacte\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-103\" class=\"editorjs-toc__link\">La lignée s&#39;étend de la lignée du modèle à la lignée de l&#39;application\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-107\" class=\"editorjs-toc__link\">Le routage multi-fournisseur et multi-modèle crée une politique opérationnelle\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-111\" class=\"editorjs-toc__link\">Preuves d&#39;implémentation originales\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 : fournisseur, modèle et environnement d&#39;exécution sont des objets opérationnels distincts\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-117\" class=\"editorjs-toc__link\">Source of Truth Research Engine : l&#39;état d&#39;une application LLM s&#39;étend au-delà du modèle\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-123\" class=\"editorjs-toc__link\">Modes de défaillance LLMOps courants\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-125\" class=\"editorjs-toc__link\">Idées fausses courantes\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-127\" class=\"editorjs-toc__link\">Une séquence de conception LLMOps pratique\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-129\" class=\"editorjs-toc__link\">Liste de contrôle d&#39;architecture LLMOps\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-131\" class=\"editorjs-toc__link\">Cas limites et limitations\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-137\" class=\"editorjs-toc__link\">Qu&#39;est-ce qui changerait cette réponse ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-141\" class=\"editorjs-toc__link\">Connaissances canoniques associées\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-147\" class=\"editorjs-toc__link\">Questions fréquentes\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-149\" class=\"editorjs-toc__link\">Glossaire\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-151\" class=\"editorjs-toc__link\">Conclusion\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-155\" class=\"editorjs-toc__link\">Sources primaires et documentation actuelle\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Ch2 id=\"section-7\">Ce que MLOps signifie réellement\u003C\u002Fh2>\n\u003Cp>MLOps applique la discipline du génie logiciel et de l'exploitation aux systèmes d'apprentissage automatique. Le défi de la production est plus large que l'entraînement d'un modèle : la collecte de données, la validation des données, l'expérimentation, la reproductibilité, l'évaluation des modèles, le déploiement, l'infrastructure et la surveillance doivent tous fonctionner ensemble.\u003C\u002Fp>\n\u003Cp>Les recommandations d'architecture MLOps de Google structurent la discipline autour de l'intégration continue, de la livraison continue et de l'entraînement continu. L'IC valide non seulement le code mais aussi les données, les schémas et les modèles ; la LC déploie les pipelines ML et les services de prédiction ; l'EC peut réentraîner et redéployer les modèles lorsque les données ou les implémentations changent.\u003C\u002Fp>\n\u003Cp>Les recommandations AWS ajoutent les mêmes préoccupations opérationnelles sous un autre angle : la traçabilité des modèles, la traçabilité modèle\u002Fversion, la surveillance de la dérive et la surveillance de la qualité en production sont des éléments essentiels pour maintenir la fiabilité des systèmes ML après le déploiement.\u003C\u002Fp>\n\u003Ch2 id=\"section-11\">Ce qui change lorsque le modèle est un LLM\u003C\u002Fh2>\n\u003Cp>Les grands modèles de langage modifient le problème de production car l'application ne possède souvent pas l'intégralité du cycle de vie d'entraînement du modèle. Une équipe peut appeler une API de modèle hébergé, exécuter un modèle ouvert localement, basculer entre fournisseurs ou utiliser plusieurs modèles pour différentes tâches.\u003C\u002Fp>\n\u003Cp>Le modèle n'est donc qu'une seule dépendance versionnée au sein d'un système comportemental plus vaste. Les prompts, les résultats de récupération, l'ordre du contexte, les outils, l'instantané du modèle, les paramètres de température\u002Fraisonnement, les filtres de sécurité et l'orchestration d'exécution peuvent tous modifier la sortie.\u003C\u002Fp>\n\u003Cp>Cela crée une question opérationnelle plus large : quelle combinaison de modèle, contexte, données, prompt, outils et environnement d'exécution a produit ce comportement ? LLMOps existe pour rendre cette question répondable et la réponse suffisamment reproductible pour le travail d'ingénierie.\u003C\u002Fp>\n\u003Ch2 id=\"section-15\">L'exemple le plus simple\u003C\u002Fh2>\n\u003Cp>Supposons qu'une application réponde à des questions de politique interne.\u003C\u002Fp>\n\u003Cp>Dans un cadre ML classique, vous pourriez versionner un classifieur entraîné, le déployer et surveiller la qualité des prédictions. Dans une application LLM, la réponse peut dépendre d'un instantané de modèle hébergé, d'un prompt système, d'un modèle d'embedding, d'un index vectoriel, de filtres de récupération, d'un reranker et du contexte final sélectionné.\u003C\u002Fp>\n\u003Cp>Modifier l'un de ces composants peut changer la réponse finale même si le point de terminaison de l'application et la question de l'utilisateur restent identiques.\u003C\u002Fp>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Un chemin de publication LLMOps typique\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. Modifier un composant\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Le prompt, le modèle, le fournisseur, le paramètre de récupération, le schéma d'outil ou le code de l'application changent.\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. Exécuter des tests déterministes\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Valider les schémas, les autorisations, les contrats d'outils, les filtres de récupération et le comportement de l'application.\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. Exécuter des évaluations comportementales\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Comparer les sorties représentatives, la qualité de récupération et les trajectoires d'agent\u002Foutil par rapport aux critères d'acceptation.\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. Comparer le coût et la latence\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Mesurer l'utilisation des tokens, les appels de modèle, la surcharge de récupération\u002Fd'outil et la latence de réponse.\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. Déployer une version contrôlée\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Livrer la configuration concrète de l'application avec les versions de modèle\u002Ffournisseur enregistrées.\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. Tracer le comportement en production\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Capturer les spans pertinents du modèle, de la récupération, des outils et de l'exécution.\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. Évaluer les traces de production\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Échantillonner des exécutions réelles pour la qualité, l'ancrage, la sécurité et la réussite des tâches.\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. Revenir en arrière ou itérer\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Utiliser les preuves de régression et les signaux opérationnels pour décider de la prochaine publication.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-20\">Où l'exemple simple s'arrête\u003C\u002Fh2>\n\u003Cp>Certains systèmes LLM entraînent ou affinent encore leurs propres modèles, de sorte que les pratiques MLOps traditionnelles telles que les pipelines d'entraînement, le registre de modèles et la traçabilité des données restent directement pertinentes.\u003C\u002Fp>\n\u003Cp>D'autres systèmes utilisent uniquement des API de modèles de fondation externes et n'exécutent jamais d'entraînement continu. Leur principale charge de travail opérationnelle est l'évaluation des applications, la gestion des changements de modèle\u002Ffournisseur, la gestion des versions de prompt\u002Fcontexte, la qualité de récupération et l'observabilité.\u003C\u002Fp>\n\u003Cp>Il n'existe donc pas de « pipeline LLMOps » universel unique. Le cycle de vie exact dépend de si vous entraînez, affinez, hébergez vous-même, récupérez des connaissances externes, exécutez des agents ou dépendez d'API de modèles gérées.\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\">Ce qui reste identique et ce qui s&#39;étend\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\">Unité opérationnelle principale\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\">Propriété du modèle\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\">Changement typique\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\">Évaluation\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\">Surveillance en production\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\">Entraînement continu\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\">Artefacts versionnés\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\">Cible de retour en arrière\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 étend MLOps plutôt que de le remplacer\u003C\u002Fh2>\n\u003Cp>Les principes opérationnels fondamentaux ne disparaissent pas : le contrôle de source, CI\u002FCD, la reproductibilité, la traçabilité, les contrôles de déploiement, la surveillance, le retour en arrière et les critères d'acceptation mesurables restent essentiels.\u003C\u002Fp>\n\u003Cp>L'extension est que davantage d'artefacts définissant le comportement se trouvent désormais en dehors des poids du modèle. Un modèle de fondation géré peut changer de comportement via des mises à niveau de snapshot, tandis que la sortie de l'application peut changer via des modifications de prompt ou de récupération sans aucun réentraînement du modèle.\u003C\u002Fp>\n\u003Cp>C'est pourquoi la hiérarchie utile est généralement DevOps → MLOps → LLMOps\u002FGenAIOps en tant que préoccupations opérationnelles de plus en plus spécialisées, et non trois pratiques mutuellement exclusives.\u003C\u002Fp>\n\u003Ch2 id=\"section-30\">Que faut-il versionner dans 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\">Artefact\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Pourquoi c'est important\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Code de l'application\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Définit l'orchestration, la validation, les tentatives et le comportement métier\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Famille de modèle + snapshot\u002Fversion\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Différents snapshots peuvent produire un comportement différent\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fournisseur \u002F point de terminaison\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modifie le flux de données, la latence, les limites, la tarification et la disponibilité\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Code de prompt\u002Finstruction\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modifie le comportement du modèle même avec le même modèle\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Paramètres de génération\u002Fraisonnement\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Peuvent altérer le déterminisme, la latence, la profondeur et le coût\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Jeu de données d'évaluation\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Définit ce par rapport à quoi « suffisamment bon » est testé\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Scoreurs \u002F évaluateurs\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Définissent comment la qualité est mesurée\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modèle d'embedding\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modifie la représentation vectorielle et le comportement de récupération\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Configuration de découpage\u002Findexation\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modifie ce qui peut être récupéré\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Reranker \u002F fusion de récupération\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modifie l'ordre des résultats\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Schémas d'outils\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modifient ce que le modèle peut demander et comment\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Profil d'autorisation\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modifie quelles actions d'outil peuvent réellement s'exécuter\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Règles d'assemblage du contexte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modifient quelles preuves et quel état atteignent le modèle\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Configuration de sécurité\u002Fgarde-fous\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modifie le comportement autorisé ou bloqué\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-32\">Les snapshots de modèle deviennent des dépendances de publication\u003C\u002Fh2>\n\u003Cp>Avec les LLM hébergés, l'équipe peut ne pas contrôler l'entraînement du modèle, mais elle contrôle toujours quel modèle ou snapshot l'application appelle.\u003C\u002Fp>\n\u003Cp>Les directives actuelles de l'API d'OpenAI avertissent explicitement que le comportement de prompt peut changer entre les snapshots de modèle et recommandent d'épingler les applications de production à des snapshots spécifiques là où la cohérence importe, puis d'exécuter des évaluations lors de la mise à niveau.\u003C\u002Fp>\n\u003Cp>La conséquence opérationnelle est simple : les mises à niveau de modèle doivent être traitées comme des publications d'application, et non comme une maintenance d'infrastructure invisible.\u003C\u002Fp>\n\u003Ch2 id=\"section-36\">Le cycle de vie du fournisseur fait partie des opérations\u003C\u002Fh2>\n\u003Cp>Les applications LLM dépendent souvent des limites de débit des fournisseurs, des calendriers de dépréciation, de la sémantique des API, des limites de contexte, des règles de traitement des données et de la tarification.\u003C\u002Fp>\n\u003Cp>Un fournisseur peut déprécier un modèle alors que le code de votre application reste inchangé. Le calendrier de dépréciation actuel d'OpenAI, par exemple, inclut des dates de retrait en 2026 pour d'anciens snapshots de modèles et surfaces de plateforme.\u003C\u002Fp>\n\u003Cp>LLMOps nécessite donc un suivi du cycle de vie des fournisseurs, des tests de migration et des décisions de repli en plus de la surveillance de la qualité des modèles.\u003C\u002Fp>\n\u003Ch2 id=\"section-40\">Les prompts se comportent comme du code de production\u003C\u002Fh2>\n\u003Cp>Les prompts sont une configuration comportementale exécutable. De petits changements peuvent altérer la qualité de sortie, la sélection d'outils et l'interprétation des politiques.\u003C\u002Fp>\n\u003Cp>Les recommandations actuelles d'OpenAI préconisent de stocker les prompts de production dans le code de l'application, de réviser les modifications de prompts via des pull requests, d'utiliser des entrées typées et de couvrir les changements par des tests et des contrôles d'évaluation.\u003C\u002Fp>\n\u003Cp>Cela rend le versionnage des prompts moins semblable à la modification d'un texte marketing et plus à la modification d'une fonction dont la sortie est probabiliste et dépendante du modèle.\u003C\u002Fp>\n\u003Ch2 id=\"section-44\">L'ingénierie du contexte devient une préoccupation opérationnelle\u003C\u002Fh2>\n\u003Cp>Le modèle de production ne reçoit que rarement un simple prompt statique. Il peut recevoir l'historique de conversation, des documents récupérés, des sorties d'outils, de la mémoire, l'état actuel de l'application et des instructions de politique.\u003C\u002Fp>\n\u003Cp>LLMOps doit donc observer l'assemblage du contexte : quelles preuves ont été sélectionnées, quelle version de l'état était active, si une troncature a eu lieu et si des instructions importantes ont survécu à la compaction.\u003C\u002Fp>\n\u003Cp>Une régression du modèle et une régression du contexte peuvent sembler identiques dans la réponse finale. C'est en traçant le chemin réel du contexte que l'équipe peut les distinguer.\u003C\u002Fp>\n\u003Ch2 id=\"section-48\">Le RAG crée son propre cycle de vie opérationnel\u003C\u002Fh2>\n\u003Cp>Un système RAG introduit un second pipeline de production à côté de l'inférence du modèle : ingestion, extraction, découpage, métadonnées, embeddings, index, récupération, reclassement et sélection du contexte.\u003C\u002Fp>\n\u003Cp>Le corpus de connaissances peut changer chaque jour même lorsque le modèle et le prompt ne changent pas. Un index obsolète ou un filtre de métadonnées défectueux peut donc dégrader la qualité des réponses sans aucune dérive du modèle.\u003C\u002Fp>\n\u003Cp>LLMOps pour le RAG devrait suivre la version du corpus\u002Findex, le modèle d'embedding, la politique de découpage, la configuration de récupération, la fraîcheur des sources et les métriques de récupération séparément de la qualité de génération.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Ffr\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\">Le RAG a échoué — mais quelle couche a réellement échoué ? Une méthode de diagnostic\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Un pipeline LLM de production nécessite une observabilité distincte pour la couverture des sources, la récupération, le classement, l'assemblage du contexte et la génération.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Lire la méthode de diagnostic RAG →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-53\">Les évaluations remplacent « ça me semble bon » par des preuves de mise en production\u003C\u002Fh2>\n\u003Cp>Les sorties génératives sont souvent ouvertes, de sorte que les tests de correspondance exacte sont insuffisants pour de nombreuses tâches. LLMOps ajoute des jeux de données d'évaluation et des évaluateurs capables de mesurer la réussite de la tâche, l'exactitude, la sécurité, l'ancrage, le style ou des critères d'acceptation spécifiques au domaine.\u003C\u002Fp>\n\u003Cp>La pile d'évaluation GenAI actuelle de MLflow prend en charge les jeux de données d'évaluation versionnés, les comparaisons de prompts\u002Fmodèles, les évaluateurs personnalisés et l'évaluation sur des traces complètes.\u003C\u002Fp>\n\u003Cp>La pratique la plus solide est le développement guidé par l'évaluation : définir des cas représentatifs et des critères d'acceptation avant ou parallèlement aux modifications, puis comparer les versions par rapport aux mêmes preuves.\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\">Les changements comportementaux nécessitent des tests comportementaux\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Un déploiement ne doit pas être considéré comme équivalent simplement parce que le contrat d&#39;API fonctionne toujours. Si le prompt, le modèle, la récupération ou les outils ont changé, la suite de tests de régression comportementale doit être réexécutée.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-58\">Le LLM comme juge est utile mais ne constitue pas une vérité de référence\u003C\u002Fh2>\n\u003Cp>Les juges LLM peuvent mettre à l'échelle l'évaluation pour des qualités coûteuses à encoder sous forme d'assertions déterministes, telles que la pertinence, le ton ou l'ancrage factuel.\u003C\u002Fp>\n\u003Cp>Cependant, le juge est un autre modèle avec ses propres biais, version et prompt. La configuration du juge doit donc être versionnée et calibrée par rapport à des cas de référence humains ou déterministes lorsque les conséquences sont importantes.\u003C\u002Fp>\n\u003Cp>Une évaluation en production peut combiner des vérifications déterministes, des métriques basées sur des références, des juges modèles et une revue humaine plutôt que de demander à une seule métrique de représenter toutes les dimensions de qualité.\u003C\u002Fp>\n\u003Ch2 id=\"section-62\">Le traçage devient plus important que les journaux de point de terminaison\u003C\u002Fh2>\n\u003Cp>Les journaux d'API traditionnels peuvent vous indiquer qu'une requête a pris deux secondes et a renvoyé HTTP 200. Ils ne peuvent pas vous dire quels segments récupérés ont été sélectionnés, quel outil l'agent a appelé ou quelle portée de modèle a consommé le plus de tokens.\u003C\u002Fp>\n\u003Cp>Le traçage GenAI actuel de MLflow capture les prompts, les récupérations, les appels d'outils et les portées applicatives, et son flux d'évaluation en production peut noter les informations de trajectoire intermédiaires plutôt que seulement le texte final.\u003C\u002Fp>\n\u003Cp>Il s'agit d'un changement majeur dans le LLMOps : l'observabilité suit le graphe comportemental de l'application, et non plus seulement le point de terminaison de service.\u003C\u002Fp>\n\u003Ch2 id=\"section-66\">Les agents étendent le LLMOps aux opérations d'exécution\u003C\u002Fh2>\n\u003Cp>Une application agentique peut effectuer plusieurs appels de modèle, invocations d'outils et transitions d'état avant de produire un résultat.\u003C\u002Fp>\n\u003Cp>L'exploitation d'agents nécessite donc des comptages d'étapes, des traces d'appels d'outils, des refus de permission, des tentatives, une détection de boucles, des approbations humaines et un état final vérifié, en plus des métriques ordinaires de latence et de tokens du modèle.\u003C\u002Fp>\n\u003Cp>Une réponse finale correcte peut masquer une mauvaise trajectoire, l'évaluation d'un agent doit donc inspecter le chemin autant que le résultat.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Ffr\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\">Fiabilité des agents IA : pourquoi la réponse finale ne suffit pas\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Pourquoi l'évaluation en production des agents doit inclure les appels d'outils, les transitions d'état, les approbations et la capacité de récupération.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Lire l'article sur la fiabilité des agents →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-71\">Les tokens, les appels de modèle et le contexte deviennent des variables de coût\u003C\u002Fh2>\n\u003Cp>Le coût d'inférence ML classique est souvent dominé par l'infrastructure de service ou le calcul par prédiction. Les applications LLM peuvent ajouter la tarification des tokens du fournisseur, les appels d'agents répétés, les appels d'embedding, le reranking et les frais généraux d'outils\u002Fd'exécution.\u003C\u002Fp>\n\u003Cp>Le coût doit donc être attribué à la tâche ou à la trace, et non seulement à un point de terminaison. Un flux de travail qui effectue huit appels de modèle cachés peut être fonctionnellement correct mais opérationnellement inacceptable.\u003C\u002Fp>\n\u003Cp>La latence se comporte de la même manière : la latence du modèle, la récupération, le reranking et les outils externes se composent en une latence utilisateur de bout en bout.\u003C\u002Fp>\n\u003Ch2 id=\"section-75\">La mise en cache devient sémantique, pas seulement technique\u003C\u002Fh2>\n\u003Cp>Les systèmes LLM peuvent mettre en cache des prompts, des embeddings, des résultats de récupération ou des réponses complètes, mais la clé de cache doit refléter la sémantique qui peut modifier le résultat.\u003C\u002Fp>\n\u003Cp>Un cache de réponses qui ignore la version du modèle, le locataire, les autorisations ou la fraîcheur des sources peut renvoyer une réponse techniquement valide mais sémantiquement invalide.\u003C\u002Fp>\n\u003Cp>LLMOps traite donc l'invalidation du cache comme faisant partie du versionnage modèle\u002Fcontexte\u002Fdonnées plutôt que comme une simple optimisation d'infrastructure.\u003C\u002Fp>\n\u003Ch2 id=\"section-79\">La sécurité et les autorisations deviennent des critères de mise en production\u003C\u002Fh2>\n\u003Cp>Les systèmes génératifs peuvent produire du texte non borné et les agents peuvent déclencher des actions externes. Les tests de sécurité se rapprochent donc davantage du CI\u002FCD ordinaire que dans de nombreux systèmes ML prédictifs classiques.\u003C\u002Fp>\n\u003Cp>Les contrôles d'autorisation, les tests d'injection de prompt, les tests d'isolation des locataires et les approbations d'effets de bord devraient être des tests de régression reproductibles là où ces risques existent.\u003C\u002Fp>\n\u003Cp>Le modèle peut suggérer une opération, mais l'exécution doit toujours appliquer l'autorisation. LLMOps est responsable des preuves que ces contrôles continuent de fonctionner après des changements de modèle, de prompt ou d'outil.\u003C\u002Fp>\n\u003Ch2 id=\"section-83\">À quoi ressemble le CI dans 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\">Couche CI\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Exemples de vérifications\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Code\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Tests unitaires, vérifications de types, validation de schéma\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\">Rendu de template, variables requises, texte de politique, revue de snapshot\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modèles\u002Ffournisseurs\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Compatibilité, schéma de sortie, tests de capacité et de régression\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 chunking, tests de filtres, Recall@k, régression du reranker\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Outils\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Tests de schéma d'entrée\u002Fsortie, tests d'autorisation, tests d'idempotence\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Agents\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fixtures de trajectoire, limites de boucle, tests de handoff\u002Fsélection d'outil\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sécurité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Injection de prompt, outils non autorisés, tests négatifs inter-locataires\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Évaluations comportementales\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Succès de la tâche, exactitude, ancrage, sécurité, critères de domaine\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Opérationnel\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Latence, budgets de tokens\u002Fcoût, comportement de timeout\u002Ffallback\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-85\">À quoi ressemble le CD dans LLMOps\u003C\u002Fh2>\n\u003Cp>Une mise en production peut ne déployer aucun nouvel artefact de modèle. Elle peut simplement livrer un nouveau prompt, une configuration de récupération, un ensemble d'outils ou un mappage de fournisseur.\u003C\u002Fp>\n\u003Cp>Le bundle de mise en production devrait donc identifier la configuration complète définissant le comportement plutôt que seulement l'image de conteneur de l'application.\u003C\u002Fp>\n\u003Cp>Les feature flags, le déploiement progressif, l'évaluation en shadow, le trafic canari et le rollback sont utiles car le comportement des LLM peut régresser de manières que les tests de contrat statiques ne détectent pas.\u003C\u002Fp>\n\u003Ch2 id=\"section-89\">L'entraînement continu devient optionnel ; l'évaluation continue devient centrale\u003C\u002Fh2>\n\u003Cp>Le MLOps traditionnel met souvent l'accent sur l'entraînement continu lorsque de nouvelles données ou une dérive justifient un réentraînement.\u003C\u002Fp>\n\u003Cp>De nombreuses applications LLM n'entraînent jamais le modèle de fondation. Leur boucle continue équivalente est l'évaluation continue : collecter les échecs et les cas de production représentatifs, les ajouter aux jeux de données d'évaluation, tester les modifications candidates de prompt\u002Fmodèle\u002Frécupération et redéployer uniquement lorsque les preuves s'améliorent.\u003C\u002Fp>\n\u003Cp>Le fine-tuning peut réintroduire un cycle de vie d'entraînement, mais il doit s'inscrire dans le même processus global d'évaluation et de publication.\u003C\u002Fp>\n\u003Ch2 id=\"section-93\">Que faut-il surveiller en production ?\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\">Classe de signal\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Exemples\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Santé du système\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Erreurs, délais d'attente, disponibilité des points de terminaison\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modèle\u002Ffournisseur\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">ID du modèle, instantané, limites de débit, erreurs du fournisseur\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Latence\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Bout en bout, modèle, récupération, outils et reranker\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Coût\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Jetons d'entrée\u002Fsortie, embeddings, dépenses d'outils\u002FAPI\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Qualité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Succès de tâche échantillonné, exactitude, pertinence, ancrage\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\">Indicateurs de rappel de récupération, récupération vide, sources obsolètes, couverture des citations\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Agents\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sélection d'outils, tentatives, boucles, transferts, fréquence d'approbation\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sécurité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Actions refusées, indicateurs d'injection de prompt, défaillances des limites de locataire\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Retour utilisateur\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Corrections, abandon, escalade, évaluations explicites\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Dérive des changements\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Changements de fournisseur\u002Fmodèle\u002Fconfiguration par rapport à la version approuvée\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-95\">Les traces de production peuvent devenir des données d'évaluation\u003C\u002Fh2>\n\u003Cp>L'un des modèles LLMOps modernes les plus utiles consiste à transformer des traces de production échantillonnées en enregistrements d'évaluation.\u003C\u002Fp>\n\u003Cp>MLflow prend actuellement en charge la récupération des traces de production et l'évaluation non seulement des sorties mais aussi des spans intermédiaires tels que les trajectoires de récupération ou d'appel d'outils.\u003C\u002Fp>\n\u003Cp>Cela ferme la boucle entre l'observabilité et le développement : les échecs réels peuvent devenir des cas de régression dans la prochaine version plutôt que de disparaître dans les journaux.\u003C\u002Fp>\n\u003Ch2 id=\"section-99\">La reproductibilité devient conditionnelle plutôt qu'exacte\u003C\u002Fh2>\n\u003Cp>La reproductibilité classique en ML vise souvent à recréer un modèle à partir de code, de données, d'environnement et de paramètres d'entraînement versionnés.\u003C\u002Fp>\n\u003Cp>Les applications LLM hébergées ne peuvent pas toujours reproduire une sortie identique jeton par jeton car la génération est probabiliste et les fournisseurs peuvent contrôler l'infrastructure.\u003C\u002Fp>\n\u003Cp>LLMOps vise donc une reproductibilité comportementale : enregistrer suffisamment de modèle\u002Ffournisseur\u002Fversion, de prompt, d'entrées de contexte, d'état de récupération et de configuration d'exécution pour reproduire les conditions et valider le comportement dans les tolérances attendues.\u003C\u002Fp>\n\u003Ch2 id=\"section-103\">La lignée s'étend de la lignée du modèle à la lignée de l'application\u003C\u002Fh2>\n\u003Cp>Les conseils MLOps d'AWS considèrent la lignée du modèle comme l'historique du code, des données, du modèle et des artefacts d'infrastructure nécessaires au diagnostic et à la reproductibilité.\u003C\u002Fp>\n\u003Cp>Pour les applications LLM, la lignée doit en outre relier les prompts, les jeux de données d'évaluation, les versions de récupération\u002Findex, les schémas d'outils, la configuration de l'agent\u002Fd'exécution et les instantanés de fournisseur\u002Fmodèle.\u003C\u002Fp>\n\u003Cp>La question cible devient : quelle configuration exacte de l'application a produit cette trace ?\u003C\u002Fp>\n\u003Ch2 id=\"section-107\">Le routage multi-fournisseur et multi-modèle crée une politique opérationnelle\u003C\u002Fh2>\n\u003Cp>Une fois qu'une application peut utiliser plusieurs fournisseurs ou modèles locaux, le routage devient une politique opérationnelle plutôt qu'une simple chaîne de modèle.\u003C\u002Fp>\n\u003Cp>Le routage peut dépendre de la capacité, de la latence, du coût, de la confidentialité, de la longueur du contexte, de la disponibilité, de la prise en charge des outils ou de la localisation. Un repli peut préserver la disponibilité tout en modifiant la qualité des réponses ou les hypothèses de traitement des données.\u003C\u002Fp>\n\u003Cp>LLMOps doit donc journaliser la route réellement sélectionnée et évaluer les routes indépendamment plutôt que de traiter chaque point de terminaison compatible comme comportementalement interchangeable.\u003C\u002Fp>\n\u003Ch2 id=\"section-111\">Preuves d'implémentation originales\u003C\u002Fh2>\n\u003Ch3 id=\"section-112\">Aaasaasa AI Client : fournisseur, modèle et environnement d'exécution sont des objets opérationnels distincts\u003C\u002Fh3>\n\u003Cp>Aaasaasa AI Client sépare l'agent\u002Fclient, le fournisseur, le modèle, l'emplacement d'exécution et les autorisations. Son AI Hub prend en charge Ollama, LM Studio\u002Fles points de terminaison compatibles OpenAI et d'autres protocoles de fournisseurs plutôt que de traiter « le modèle » comme un paramètre global unique.\u003C\u002Fp>\n\u003Cp>L'implémentation inclut la découverte dynamique des modèles locaux, le streaming, la sortie de réflexion et des contrôles explicites de chargement\u002Fdéchargement et de préchauffage Ollama. C'est une preuve opérationnelle que le service LLM local introduit des préoccupations de cycle de vie des ressources au-delà d'un nom de modèle d'API.\u003C\u002Fp>\n\u003Cp>L'état du fournisseur est interrogé via des adaptateurs de fournisseur, et les types de connexion distinguent les chemins locaux, API cloud, adossés à un compte, agent distant et client web. Ce sont des dimensions opérationnelles concrètes qu'une plateforme consciente des LLM doit exposer.\u003C\u002Fp>\n\u003Cp>Le dépôt préserve également une frontière importante : un environnement d'exécution local n'est pas automatiquement une inférence locale. L'emplacement du fournisseur, du modèle et de l'environnement d'exécution sont des préoccupations versionnées ou configurables qui affectent la confidentialité, la latence, le coût et la disponibilité.\u003C\u002Fp>\n\u003Ch3 id=\"section-117\">Source of Truth Research Engine : l'état d'une application LLM s'étend au-delà du modèle\u003C\u002Fh3>\n\u003Cp>Le Source of Truth Research Engine combine recherche lexicale, embeddings optionnels, instantanés de sources, identité SHA-256, affirmations, provenance et suivi des contradictions autour d'une recherche assistée par modèle local.\u003C\u002Fp>\n\u003Cp>C'est une preuve LLMOps utile car changer le modèle seul ne définit pas le système de recherche. La récupération, l'acquisition de sources, la classification des preuves et la provenance persistante sont des artefacts opérationnels indépendants.\u003C\u002Fp>\n\u003Cp>L'implémentation traite délibérément la similarité sémantique comme une découverte plutôt que comme une preuve, montrant pourquoi l'observabilité LLMOps doit distinguer le comportement de récupération de la validité des affirmations.\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\">Implémentation observée\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Leçon LLMOps\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Protocoles de fournisseurs multiples\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'identité du fournisseur est une dépendance opérationnelle\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Découverte dynamique des modèles\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les modèles disponibles peuvent changer indépendamment du code de l'application\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contrôles de chargement\u002Fdéchargement Ollama\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les modèles locaux ont un cycle de vie mémoire\u002Fressources\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Adaptateurs de santé\u002Fétat des fournisseurs\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La disponibilité des modèles nécessite une observabilité d'exécution\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Emplacement d'exécution et d'inférence distincts\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La topologie de déploiement n'est pas un simple booléen « local\u002Fcloud »\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Autorisations centralisées\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La capacité du modèle et l'autorité des outils doivent rester séparées\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pipeline de récupération lexicale + sémantique\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La configuration de récupération fait partie du comportement de l'application\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Persistance des sources\u002Fprovenance\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'état opérationnel et les preuves vivent en dehors des poids du modèle\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\">Frontière des preuves\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Ces projets démontrent des opérations multi-fournisseurs\u002Fmodèles locaux, la séparation des autorisations, l&#39;infrastructure de récupération et la persistance des preuves. Ils ne sont pas présentés comme une plateforme LLMOps commerciale complète ni comme une preuve de trafic de production à grande échelle.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-123\">Modes de défaillance LLMOps courants\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\">Mode de défaillance\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ce qui a réellement mal tourné\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Alias de modèle mis à jour silencieusement\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le comportement a changé sans version contrôlée\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Prompt modifié sans évaluations\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Une régression comportementale a passé les tests unitaires normaux\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Index RAG obsolète\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le modèle de génération a été blâmé pour une défaillance de récupération\u002Fdonnées\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Seule la réponse finale est journalisée\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La cause racine dans la trajectoire de récupération\u002Foutil\u002Fcontexte est invisible\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le repli de fournisseur est silencieux\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un chemin de modèle\u002Fdonnées différent modifie le comportement sans attribution\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Coût des tokens suivi globalement\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les flux de travail coûteux ne peuvent pas être localisés\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modèle juge modifié\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les scores d'évaluation dérivent sans changement d'application\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les traces de production ne deviennent jamais des tests\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les défaillances connues reviennent de manière répétée\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le modèle local reste chargé indéfiniment\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La pression VRAM\u002Fressources devient une instabilité opérationnelle\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Autorisations encodées uniquement dans le prompt\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le comportement du modèle est confondu avec l'autorisation\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un seul score d'évaluation conditionne tout\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Différentes dimensions de qualité sont réduites à un nombre trompeur\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le registre de modèles existe mais pas les versions de prompt\u002Findex\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La lignée de l'application reste incomplète\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-125\">Idées fausses courantes\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\">Idée fausse\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Correction\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« LLMOps remplace MLOps. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">LLMOps étend les principes MLOps au comportement applicatif spécifique aux LLM.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« LLMOps, c'est de l'ingénierie de prompt. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les prompts sont un artefact parmi les modèles, fournisseurs, contextes, récupérations, outils, évaluations et environnements d'exécution.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Les API hébergées suppriment le travail d'exploitation. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Elles suppriment une partie du travail de service\u002Fentraînement des modèles mais ajoutent la gestion du cycle de vie des fournisseurs, des versions et des dépendances.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Si l'API est stable, l'application est stable. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le comportement du modèle et les instantanés de fournisseur\u002Fmodèle peuvent changer indépendamment du schéma de l'API.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Le RAG n'est que du prétraitement de données. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">En production, il a son propre cycle de vie d'ingestion, d'index, de récupération et de fraîcheur.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Les sorties LLM ne peuvent pas être testées. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Elles peuvent être évaluées avec des critères déterministes, de référence, de juge et humains.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Les juges LLM sont une vérité terrain objective. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ce sont des évaluateurs basés sur des modèles qui nécessitent aussi calibration et contrôle de version.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Un modèle local élimine LLMOps. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le service local ajoute des préoccupations de fichiers de modèle, VRAM, chargement\u002Fdéchargement, santé d'exécution et mise à niveau.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Observabilité signifie comptage de tokens. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Une observabilité utile suit les prompts, récupérations, outils, spans de modèle et résultats.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« L'entraînement continu est obligatoire. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">De nombreuses applications LLM utilisent l'évaluation continue sans entraîner le modèle de fondation.\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-127\">Une séquence de conception LLMOps pratique\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Exploiter le système complet de production de comportement\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. Définir l'unité de comportement\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Lister chaque composant pouvant modifier matériellement la sortie : modèle, prompt, récupération, outils, contexte et politique.\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. Établir la lignée applicative\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Versionner le code, le modèle\u002Ffournisseur, les prompts, les jeux de données d'évaluation, la configuration de récupération et les contrats d'outils.\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. Construire des jeux de données d'évaluation représentatifs\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Utiliser les cas de succès\u002Féchec attendus issus de la conception et de la production.\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. Séparer les tests déterministes et comportementaux\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Garder les assertions de schéma\u002Fsécurité distinctes de l'évaluation sémantique des sorties.\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. Tracer l'exécution de bout en bout\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Instrumenter le modèle, la récupération, le reranking, les outils et les spans d'agent\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. Définir les portes de release\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Fixer des seuils de qualité, sûreté, latence et coût.\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. Épingler ou enregistrer explicitement les versions de modèle\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Traiter les changements de modèle\u002Ffournisseur comme des événements de release.\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. Déployer progressivement\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Utiliser des flags, canaris ou déploiement par étapes lorsque les conséquences le justifient.\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. Évaluer les traces de production\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Mesurer le comportement réel des tâches et identifier les défaillances récurrentes.\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. Réinjecter les échecs dans les jeux de données d'évaluation\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Transformer les incidents et corrections en couverture de régression 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. Surveiller les cycles de vie des fournisseurs et des données\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Suivre les dépréciations, la fraîcheur des index, les changements de sources et la disponibilité du 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. Retirer proprement les versions obsolètes\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Supprimer les anciens prompts\u002Fmodèles\u002Findex\u002Fidentifiants après migration et décisions de conservation des preuves.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-129\">Liste de contrôle d'architecture 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\">Question\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Preuve attendue\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quel modèle\u002Ffournisseur\u002Fversion a servi la requête ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Identité de modèle traçable\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quels prompts\u002Finstructions étaient actifs ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Code\u002Fconfig applicatif versionné\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quel contexte a atteint le modèle ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Trace de contexte\u002Frécupération\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quelle version de corpus\u002Findex a été utilisée ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Lignée de récupération\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quels outils étaient disponibles et appelés ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Schéma d'outil + trace de trajectoire\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quelles permissions s'appliquaient ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Enregistrement d'autorisation à l'exécution\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Comment la qualité est-elle mesurée ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Jeu de données d'évaluation versionné + évaluateurs\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Comment les mises à niveau de modèle sont-elles testées ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Suite de régression comportementale\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Comment la qualité en production est-elle échantillonnée ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Processus d'évaluation des traces\u002Fretour d'information\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un échec peut-il être reproduit approximativement ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Lignée modèle\u002Fcontexte\u002Ffournisseur\u002Fapplication\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Où le coût est-il dépensé ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Attribution par trace du modèle\u002Foutil\u002Frécupération\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Qu'est-ce qui déclenche un rollback ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Seuil défini de qualité\u002Fsûreté\u002Fcoût\u002Fdisponibilité\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Comment les dépréciations de fournisseur sont-elles gérées ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Processus de migration\u002Frepli\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Comment les modèles locaux sont-ils exploités ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contrôles de santé, ressources, chargement\u002Fdéchargement et version\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-131\">Cas limites et limitations\u003C\u002Fh2>\n\u003Cp>Une application simple qui appelle un modèle hébergé fixe sans récupération ni outils peut ne nécessiter qu'un LLMOps léger : code de prompt versionné, évaluations, épinglage de modèle, traçage de base et surveillance du fournisseur.\u003C\u002Fp>\n\u003Cp>Un modèle auto-hébergé affiné peut nécessiter presque toute la pile MLOps classique plus une évaluation applicative spécifique aux LLM, rendant la frontière entre MLOps et LLMOps intentionnellement floue.\u003C\u002Fp>\n\u003Cp>Une plateforme d'agents peut avoir des opérations d'entraînement de modèle minimales mais des opérations d'exécution substantielles car les défaillances surviennent dans la sélection d'outils, l'état et l'orchestration.\u003C\u002Fp>\n\u003Cp>Un système fortement basé sur RAG peut être opérationnellement dominé par l'ingestion de documents et la qualité de récupération plutôt que par le service de modèle.\u003C\u002Fp>\n\u003Cp>La terminologie continuera d'évoluer. La question architecturale durable n'est pas de savoir quelle étiquette « Ops » l'emporte, mais quels artefacts produisent le comportement et doivent donc être versionnés, évalués, observés et gouvernés.\u003C\u002Fp>\n\u003Ch2 id=\"section-137\">Qu'est-ce qui changerait cette réponse ?\u003C\u002Fh2>\n\u003Cp>Si les fournisseurs de modèles de fondation standardisaient un comportement de modèle parfaitement stable et un support de version à long terme, la gestion des fournisseurs\u002Fsnapshots pourrait devenir moins significative opérationnellement.\u003C\u002Fp>\n\u003Cp>Si les applications prennent de plus en plus en charge l'affinage ou l'entraînement, les préoccupations MLOps classiques redeviennent plus centrales.\u003C\u002Fp>\n\u003Cp>Le principe opérationnel resterait : chaque composant pouvant modifier matériellement le comportement en production appartient à la lignée, aux tests, à l'observabilité et au contrôle des changements.\u003C\u002Fp>\n\u003Ch2 id=\"section-141\">Connaissances canoniques associées\u003C\u002Fh2>\n\u003Cp>LLMOps se situe sous AI Governance et Enterprise AI Architecture : la gouvernance définit quels changements nécessitent des preuves et une approbation, tandis que LLMOps fournit la machinerie opérationnelle pour versionner, évaluer, déployer et observer ces changements.\u003C\u002Fp>\n\u003Cp>Context Engineering et RAG sont des sous-domaines opérationnels au sein de nombreuses applications LLM car le contexte et la récupération peuvent modifier le comportement indépendamment du modèle.\u003C\u002Fp>\n\u003Cp>Agentic AI étend LLMOps plus loin dans les opérations de trajectoire, de permissions et de runtime d'outils.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Ffr\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 mémoire des agents IA n'est pas du RAG : comment séparer mémoire, récupération, état et contexte\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">La fiabilité opérationnelle s'améliore lorsque la mémoire, la récupération, l'état de l'application et le contexte du modèle restent des objets de cycle de vie distincts.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Lire l'article sur l'architecture →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Ffr\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\">La frontière de validité des réponses : la couche manquante entre pertinence et réponses IA fiables\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">L'évaluation LLMOps doit préserver la version, la portée et les conditions de preuve dans lesquelles une réponse reste étayée.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Lire la frontière de validité des réponses →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-147\">Questions fréquentes\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\">FAQ 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\">Quelle est la différence entre MLOps et LLMOps ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">MLOps exploite des systèmes d&#39;apprentissage automatique à travers les données, l&#39;entraînement, le déploiement et la surveillance. LLMOps étend ces pratiques aux applications LLM où les prompts, le contexte, la récupération, les fournisseurs, les outils et les évaluations affectent également matériellement le comportement.\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 remplace-t-il MLOps ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Non. LLMOps réutilise les disciplines MLOps telles que CI\u002FCD, la traçabilité, l&#39;évaluation, le déploiement et la surveillance et ajoute des préoccupations opérationnelles spécifiques aux 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\">Les applications LLM ont-elles besoin d&#39;un entraînement continu ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Pas nécessairement. Beaucoup utilisent des modèles de fondation externes et s&#39;appuient plutôt sur l&#39;évaluation continue des prompts, des modèles, de la récupération et du comportement de l&#39;application. Les systèmes affinés ou auto-entraînés peuvent encore nécessiter des pipelines d&#39;entraînement.\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\">Pourquoi les évaluations sont-elles si importantes dans LLMOps ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Les sorties génératives sont ouvertes et le comportement du modèle peut changer selon les prompts, les instantanés et le contexte. Les évaluations fournissent des preuves reproductibles qu&#39;une version répond encore aux critères de qualité et de sécurité définis.\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\">Que faut-il versionner dans LLMOps ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Au minimum : le code de l&#39;application, le modèle\u002Ffournisseur\u002Fversion, les prompts, les jeux de données\u002Févaluateurs d&#39;évaluation, la configuration\u002Findex de récupération, les schémas d&#39;outils, les règles de contexte et la configuration pertinente de sécurité\u002Fpermissions.\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\">Le versionnement des prompts suffit-il ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Non. Le même prompt peut se comporter différemment avec un autre modèle, un autre ensemble de récupération, un autre ordre de contexte, une autre surface d&#39;outils ou un autre fournisseur.\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&#39;est-ce que GenAIOps ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">GenAIOps est un autre terme industriel pour l&#39;exploitation d&#39;applications d&#39;IA générative. Certains fournisseurs l&#39;utilisent de manière interchangeable ou comme une étiquette plus large 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\">Comment surveiller une application LLM ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Surveillez les traces de bout en bout incluant les appels de modèle, les prompts\u002Fcontexte, la récupération, les outils, la latence, les jetons\u002Fcoût, les échantillons de qualité, la sécurité et les résultats finaux des tâches.\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\">Les LLM locaux peuvent-ils utiliser les pratiques LLMOps ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Oui. Les modèles locaux ajoutent leurs propres préoccupations opérationnelles telles que les fichiers de modèle, le matériel\u002FVRAM, le chargement\u002Fdéchargement, la santé du runtime, la quantification et la gestion des mises à niveau.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-149\">Glossaire\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\">Termes clés MLOps et 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\">Pratiques d'ingénierie pour construire, déployer, surveiller et maintenir des systèmes d'apprentissage automatique et leur cycle de vie données\u002Fmodèle.\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\">Pratiques opérationnelles pour les applications en production dont le comportement dépend matériellement de grands modèles de langage et des prompts, du contexte, de la récupération, des outils et du runtime environnants.\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\">Discipline opérationnelle pour les applications d'IA générative ; souvent utilisée comme une étiquette plus large ou alternative pour 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\">Entraînement continu\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Réentraînement et mise en service automatisés ou répétés de modèles ML à mesure que les données ou les implémentations changent.\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\">Évaluation continue\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Évaluation répétée du comportement des IA candidates et en production par rapport à des jeux de données et des critères versionnés.\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\">Instantané de modèle\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une version concrète d'un modèle hébergé ou packagé dont le comportement peut être testé et référencé.\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\">Traçabilité de l'application\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Relation traçable entre le code, le modèle\u002Ffournisseur, les prompts, les données\u002Frécupération, les outils, le runtime et la configuration de version.\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\">Trace\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Enregistrement structuré d'une exécution d'application contenant des spans tels que les appels de modèle, les récupérations et les opérations d'outils.\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\">Jeu de données d'évaluation\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Ensemble versionné d'entrées représentatives, d'attentes et éventuellement de traces\u002Fsorties utilisé pour mesurer le comportement.\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\">Juge LLM\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un modèle de langage utilisé comme évaluateur pour des critères qualitatifs ou sémantiques ; il est lui-même une dépendance d'évaluation versionnée.\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\">Régression comportementale\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une dégradation de la sortie ou de la trajectoire de l'application malgré des interfaces et un code qui continuent de s'exécuter avec succès.\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\">Routage des fournisseurs\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Politique de sélection parmi les fournisseurs\u002Fpoints de terminaison de modèles disponibles selon la capacité, le coût, la latence, la confidentialité ou la disponibilité.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-151\">Conclusion\u003C\u002Fh2>\n\u003Cp>MLOps et LLMOps partagent le même objectif d'ingénierie : rendre les systèmes d'IA suffisamment reproductibles, suffisamment testables et suffisamment observables pour fonctionner de manière fiable en production.\u003C\u002Fp>\n\u003Cp>La différence réside dans la forme du système. Le MLOps classique se concentre souvent sur l'entraînement et la mise en service d'artefacts de modèle ; LLMOps doit exploiter une pile comportementale dans laquelle les instantanés de modèle, les prompts, le contexte, la récupération, les outils, les permissions et les fournisseurs peuvent changer indépendamment.\u003C\u002Fp>\n\u003Cp>La règle utile la plus courte est : versionner, évaluer et observer tout ce qui peut modifier matériellement le comportement de l'application LLM — pas seulement le modèle.\u003C\u002Fp>\n\u003Ch2 id=\"section-155\">Sources primaires et documentation actuelle\u003C\u002Fh2>\n\u003Cp>Les sources ci-dessous fondent la base MLOps et les modèles opérationnels actuels pour les applications LLM et agents. Les sections du projet sont des preuves d'implémentation originales et sont intentionnellement plus étroites que les affirmations concernant une plateforme LLMOps complète.\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 : pipelines de livraison continue et d&#39;automatisation\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Architecture de référence décrivant CI, CD, entraînement continu, registre de modèles, métadonnées, mise en service et surveillance pour les systèmes 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 — Traçabilité des modèles\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Conseils actuels pour suivre le code, les données, les modèles, les environnements et l&#39;infrastructure à travers les versions 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 — Observabilité et suivi des modèles\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Conseils actuels pour la surveillance des modèles en production, la dérive, la santé des points de terminaison et la traçabilité.\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 — Cycle de vie GenAIOps \u002F LLMOps\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Conseils officiels décrivant GenAIOps, parfois appelé LLMOps, à travers l&#39;initialisation, l&#39;expérimentation, l&#39;évaluation\u002Fraffinement et le déploiement.\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 — Agents et applications LLM\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentation actuelle sur les opérations GenAI couvrant la traçabilité, l&#39;évaluation, les prompts et l&#39;observabilité en production pour les applications LLM et les agents.\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 — Évaluation des traces de production\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Conseils actuels pour évaluer les traces complètes LLM\u002Fagent, y compris les trajectoires de récupération et d&#39;appels d&#39;outils.\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 — Évaluation des prompts\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Flux de travail actuel d&#39;évaluation des prompts\u002Fmodèles utilisant des prompts versionnés, des jeux de données, des évaluateurs et des traces.\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 OpenAI — Versionnage et instantanés de modèles\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Recommandations actuelles de l&#39;API préconisant des versions de modèles épinglées et des évaluations, car le comportement des prompts peut changer entre les instantanés.\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 — Ingénierie de prompts\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Recommandations actuelles pour traiter les prompts de production comme du code applicatif, les versionner via le contrôle de source et couvrir les modifications par des tests et des contrôles d&#39;évaluation.\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 — Dépréciations\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Preuves actuelles du cycle de vie du fournisseur montrant le retrait des modèles et des surfaces de plateforme comme une dépendance opérationnelle.\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 — Migration des flux de travail d&#39;évaluation vers Promptfoo\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Recommandations de migration actuelles de 2026 illustrant pourquoi les actifs d&#39;évaluation doivent rester portables lorsque les outils du fournisseur changent.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":1557},1791487588398,[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,1374,1379,1427,1432,1437,1442,1447,1452,1457,1467,1476,1485,1494,1503,1512,1521,1530,1539,1548],{"id":215,"data":216,"type":218,"tunes":219},"intro",{"text":217},"MLOps est la discipline d'ingénierie permettant de développer, déployer, versionner et exploiter de manière fiable des systèmes d'apprentissage automatique ; LLMOps étend cette discipline aux applications construites autour de grands modèles de langage, où le comportement en production dépend non seulement d'un artefact de modèle mais aussi des prompts, du contexte, de la récupération, des versions de fournisseur\u002Fmodèle, des appels d'outils, des contrôles de sécurité et des pipelines d'évaluation. LLMOps ne remplace pas MLOps. Il fait passer l'unité opérationnelle de « un modèle plus un pipeline de service » vers « une application LLM en évolution dont le comportement émerge de plusieurs composants évoluant indépendamment ».","paragraph",{},{"id":221,"data":222,"type":226,"tunes":227},"direct",{"body":223,"title":224,"variant":225},"\u003Cstrong>MLOps exploite les systèmes ML. LLMOps exploite les applications LLM.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Le MLOps classique se concentre généralement sur les pipelines de données, l'entraînement, la validation, le registre de modèles, le déploiement, la dérive et le réentraînement. LLMOps conserve ces disciplines lorsqu'elles sont pertinentes, mais ajoute souvent le versionnage des prompts\u002Fcontexte, l'abstraction du modèle\u002Ffournisseur, les index RAG, les traces d'agents\u002Foutils, les évaluations sémantiques, les tests de sécurité, la surveillance des tokens\u002Fcoûts et les tests de régression sur des instantanés de modèles évoluant rapidement.","Réponse directe","info","callout",{},{"id":229,"data":230,"type":226,"tunes":234},"boundary",{"body":231,"title":232,"variant":233},"Une application LLM en production peut échouer même lorsque le prompt est inchangé : le fournisseur peut modifier un instantané de modèle, un corpus RAG peut devenir obsolète, un reranker peut régresser, les permissions d'outils peuvent changer, l'assemblage du contexte peut perdre des preuves, ou un agent peut suivre une mauvaise trajectoire. LLMOps doit donc observer et versionner le système autour du modèle, pas seulement le texte du prompt.","LLMOps n'est pas seulement de la gestion 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> et les termes associés sont des étiquettes d'ingénierie largement utilisées, mais ils ne constituent pas une norme formelle universelle avec un cycle de vie canonique unique. Microsoft décrit actuellement GenAIOps comme « parfois appelé LLMOps », tandis que MLflow regroupe les outils opérationnels autour des agents et des applications LLM. Cet article utilise LLMOps comme terme d'architecture pratique pour l'exploitation de systèmes de production dont le comportement dépend matériellement des LLM.","Frontière terminologique","note",{},{"id":243,"data":244,"type":226,"tunes":247},"current",{"body":245,"title":246,"variant":240},"La surface opérationnelle évolue rapidement. OpenAI recommande actuellement d'épingler les instantanés de modèles et d'exécuter des évaluations car le comportement de prompting peut changer entre les instantanés, et plusieurs anciennes surfaces de prompt\u002Févaluation spécifiques à la plateforme sont retirées en 2026. La leçon architecturale stable est de garder les prompts, les tests et les évaluations portables et versionnés avec l'application plutôt que de dépendre du modèle objet du tableau de bord d'un fournisseur.","Note sur les sources actuelles — 8 octobre 2026",{},{"id":249,"data":250,"type":254,"tunes":255},"toc",{"title":251,"maxLevel":252,"minLevel":253},"Sommaire",3,2,"tableOfContents",{},{"id":257,"data":258,"type":42,"tunes":260},"h-meaning",{"text":259,"level":253},"Ce que MLOps signifie réellement",{},{"id":262,"data":263,"type":218,"tunes":265},"p-mlops-1",{"text":264},"MLOps applique la discipline du génie logiciel et de l'exploitation aux systèmes d'apprentissage automatique. Le défi de la production est plus large que l'entraînement d'un modèle : la collecte de données, la validation des données, l'expérimentation, la reproductibilité, l'évaluation des modèles, le déploiement, l'infrastructure et la surveillance doivent tous fonctionner ensemble.",{},{"id":267,"data":268,"type":218,"tunes":270},"p-mlops-2",{"text":269},"Les recommandations d'architecture MLOps de Google structurent la discipline autour de l'intégration continue, de la livraison continue et de l'entraînement continu. L'IC valide non seulement le code mais aussi les données, les schémas et les modèles ; la LC déploie les pipelines ML et les services de prédiction ; l'EC peut réentraîner et redéployer les modèles lorsque les données ou les implémentations changent.",{},{"id":272,"data":273,"type":218,"tunes":275},"p-mlops-3",{"text":274},"Les recommandations AWS ajoutent les mêmes préoccupations opérationnelles sous un autre angle : la traçabilité des modèles, la traçabilité modèle\u002Fversion, la surveillance de la dérive et la surveillance de la qualité en production sont des éléments essentiels pour maintenir la fiabilité des systèmes ML après le déploiement.",{},{"id":277,"data":278,"type":42,"tunes":280},"h-llmops",{"text":279,"level":253},"Ce qui change lorsque le modèle est un LLM",{},{"id":282,"data":283,"type":218,"tunes":285},"p-llmops-1",{"text":284},"Les grands modèles de langage modifient le problème de production car l'application ne possède souvent pas l'intégralité du cycle de vie d'entraînement du modèle. Une équipe peut appeler une API de modèle hébergé, exécuter un modèle ouvert localement, basculer entre fournisseurs ou utiliser plusieurs modèles pour différentes tâches.",{},{"id":287,"data":288,"type":218,"tunes":290},"p-llmops-2",{"text":289},"Le modèle n'est donc qu'une seule dépendance versionnée au sein d'un système comportemental plus vaste. Les prompts, les résultats de récupération, l'ordre du contexte, les outils, l'instantané du modèle, les paramètres de température\u002Fraisonnement, les filtres de sécurité et l'orchestration d'exécution peuvent tous modifier la sortie.",{},{"id":292,"data":293,"type":218,"tunes":295},"p-llmops-3",{"text":294},"Cela crée une question opérationnelle plus large : quelle combinaison de modèle, contexte, données, prompt, outils et environnement d'exécution a produit ce comportement ? LLMOps existe pour rendre cette question répondable et la réponse suffisamment reproductible pour le travail d'ingénierie.",{},{"id":297,"data":298,"type":42,"tunes":300},"h-simple",{"text":299,"level":253},"L'exemple le plus simple",{},{"id":302,"data":303,"type":218,"tunes":305},"p-simple-1",{"text":304},"Supposons qu'une application réponde à des questions de politique interne.",{},{"id":307,"data":308,"type":218,"tunes":310},"p-simple-2",{"text":309},"Dans un cadre ML classique, vous pourriez versionner un classifieur entraîné, le déployer et surveiller la qualité des prédictions. Dans une application LLM, la réponse peut dépendre d'un instantané de modèle hébergé, d'un prompt système, d'un modèle d'embedding, d'un index vectoriel, de filtres de récupération, d'un reranker et du contexte final sélectionné.",{},{"id":312,"data":313,"type":218,"tunes":315},"p-simple-3",{"text":314},"Modifier l'un de ces composants peut changer la réponse finale même si le point de terminaison de l'application et la question de l'utilisateur restent identiques.",{},{"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. Modifier un composant","Le prompt, le modèle, le fournisseur, le paramètre de récupération, le schéma d'outil ou le code de l'application changent.",{"label":324,"description":325},"2. Exécuter des tests déterministes","Valider les schémas, les autorisations, les contrats d'outils, les filtres de récupération et le comportement de l'application.",{"label":327,"description":328},"3. Exécuter des évaluations comportementales","Comparer les sorties représentatives, la qualité de récupération et les trajectoires d'agent\u002Foutil par rapport aux critères d'acceptation.",{"label":330,"description":331},"4. Comparer le coût et la latence","Mesurer l'utilisation des tokens, les appels de modèle, la surcharge de récupération\u002Fd'outil et la latence de réponse.",{"label":333,"description":334},"5. Déployer une version contrôlée","Livrer la configuration concrète de l'application avec les versions de modèle\u002Ffournisseur enregistrées.",{"label":336,"description":337},"6. Tracer le comportement en production","Capturer les spans pertinents du modèle, de la récupération, des outils et de l'exécution.",{"label":339,"description":340},"7. Évaluer les traces de production","Échantillonner des exécutions réelles pour la qualité, l'ancrage, la sécurité et la réussite des tâches.",{"label":342,"description":343},"8. Revenir en arrière ou itérer","Utiliser les preuves de régression et les signaux opérationnels pour décider de la prochaine publication.","Un chemin de publication LLMOps typique","auto","processFlow",{},{"id":349,"data":350,"type":42,"tunes":352},"h-stops",{"text":351,"level":253},"Où l'exemple simple s'arrête",{},{"id":354,"data":355,"type":218,"tunes":357},"p-stops-1",{"text":356},"Certains systèmes LLM entraînent ou affinent encore leurs propres modèles, de sorte que les pratiques MLOps traditionnelles telles que les pipelines d'entraînement, le registre de modèles et la traçabilité des données restent directement pertinentes.",{},{"id":359,"data":360,"type":218,"tunes":362},"p-stops-2",{"text":361},"D'autres systèmes utilisent uniquement des API de modèles de fondation externes et n'exécutent jamais d'entraînement continu. Leur principale charge de travail opérationnelle est l'évaluation des applications, la gestion des changements de modèle\u002Ffournisseur, la gestion des versions de prompt\u002Fcontexte, la qualité de récupération et l'observabilité.",{},{"id":364,"data":365,"type":218,"tunes":367},"p-stops-3",{"text":366},"Il n'existe donc pas de « pipeline LLMOps » universel unique. Le cycle de vie exact dépend de si vous entraînez, affinez, hébergez vous-même, récupérez des connaissances externes, exécutez des agents ou dépendez d'API de modèles gérées.",{},{"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","Unité opérationnelle principale",[381,381],"",{"id":383,"label":384,"values":385},"model","Propriété du modèle",[381,381],{"id":387,"label":388,"values":389},"change","Changement typique",[381,381],{"id":391,"label":392,"values":393},"eval","Évaluation",[381,381],{"id":395,"label":396,"values":397},"monitor","Surveillance en production",[381,381],{"id":399,"label":400,"values":401},"training","Entraînement continu",[381,381],{"id":403,"label":404,"values":405},"registry","Artefacts versionnés",[381,381],{"id":407,"label":408,"values":409},"rollback","Cible de retour en arrière",[381,381],"Ce qui reste identique et ce qui s'étend","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 étend MLOps plutôt que de le remplacer",{},{"id":427,"data":428,"type":218,"tunes":430},"p-extension-1",{"text":429},"Les principes opérationnels fondamentaux ne disparaissent pas : le contrôle de source, CI\u002FCD, la reproductibilité, la traçabilité, les contrôles de déploiement, la surveillance, le retour en arrière et les critères d'acceptation mesurables restent essentiels.",{},{"id":432,"data":433,"type":218,"tunes":435},"p-extension-2",{"text":434},"L'extension est que davantage d'artefacts définissant le comportement se trouvent désormais en dehors des poids du modèle. Un modèle de fondation géré peut changer de comportement via des mises à niveau de snapshot, tandis que la sortie de l'application peut changer via des modifications de prompt ou de récupération sans aucun réentraînement du modèle.",{},{"id":437,"data":438,"type":218,"tunes":440},"p-extension-3",{"text":439},"C'est pourquoi la hiérarchie utile est généralement DevOps → MLOps → LLMOps\u002FGenAIOps en tant que préoccupations opérationnelles de plus en plus spécialisées, et non trois pratiques mutuellement exclusives.",{},{"id":442,"data":443,"type":42,"tunes":445},"h-artifacts",{"text":444,"level":253},"Que faut-il versionner dans 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],"Artefact","Pourquoi c'est important",[454,455],"Code de l'application","Définit l'orchestration, la validation, les tentatives et le comportement métier",[457,458],"Famille de modèle + snapshot\u002Fversion","Différents snapshots peuvent produire un comportement différent",[460,461],"Fournisseur \u002F point de terminaison","Modifie le flux de données, la latence, les limites, la tarification et la disponibilité",[463,464],"Code de prompt\u002Finstruction","Modifie le comportement du modèle même avec le même modèle",[466,467],"Paramètres de génération\u002Fraisonnement","Peuvent altérer le déterminisme, la latence, la profondeur et le coût",[469,470],"Jeu de données d'évaluation","Définit ce par rapport à quoi « suffisamment bon » est testé",[472,473],"Scoreurs \u002F évaluateurs","Définissent comment la qualité est mesurée",[475,476],"Modèle d'embedding","Modifie la représentation vectorielle et le comportement de récupération",[478,479],"Configuration de découpage\u002Findexation","Modifie ce qui peut être récupéré",[481,482],"Reranker \u002F fusion de récupération","Modifie l'ordre des résultats",[484,485],"Schémas d'outils","Modifient ce que le modèle peut demander et comment",[487,488],"Profil d'autorisation","Modifie quelles actions d'outil peuvent réellement s'exécuter",[490,491],"Règles d'assemblage du contexte","Modifient quelles preuves et quel état atteignent le modèle",[493,494],"Configuration de sécurité\u002Fgarde-fous","Modifie le comportement autorisé ou bloqué",{},{"id":497,"data":498,"type":42,"tunes":500},"h-model-version",{"text":499,"level":253},"Les snapshots de modèle deviennent des dépendances de publication",{},{"id":502,"data":503,"type":218,"tunes":505},"p-model-version-1",{"text":504},"Avec les LLM hébergés, l'équipe peut ne pas contrôler l'entraînement du modèle, mais elle contrôle toujours quel modèle ou snapshot l'application appelle.",{},{"id":507,"data":508,"type":218,"tunes":510},"p-model-version-2",{"text":509},"Les directives actuelles de l'API d'OpenAI avertissent explicitement que le comportement de prompt peut changer entre les snapshots de modèle et recommandent d'épingler les applications de production à des snapshots spécifiques là où la cohérence importe, puis d'exécuter des évaluations lors de la mise à niveau.",{},{"id":512,"data":513,"type":218,"tunes":515},"p-model-version-3",{"text":514},"La conséquence opérationnelle est simple : les mises à niveau de modèle doivent être traitées comme des publications d'application, et non comme une maintenance d'infrastructure invisible.",{},{"id":517,"data":518,"type":42,"tunes":520},"h-provider",{"text":519,"level":253},"Le cycle de vie du fournisseur fait partie des opérations",{},{"id":522,"data":523,"type":218,"tunes":525},"p-provider-1",{"text":524},"Les applications LLM dépendent souvent des limites de débit des fournisseurs, des calendriers de dépréciation, de la sémantique des API, des limites de contexte, des règles de traitement des données et de la tarification.",{},{"id":527,"data":528,"type":218,"tunes":530},"p-provider-2",{"text":529},"Un fournisseur peut déprécier un modèle alors que le code de votre application reste inchangé. Le calendrier de dépréciation actuel d'OpenAI, par exemple, inclut des dates de retrait en 2026 pour d'anciens snapshots de modèles et surfaces de plateforme.",{},{"id":532,"data":533,"type":218,"tunes":535},"p-provider-3",{"text":534},"LLMOps nécessite donc un suivi du cycle de vie des fournisseurs, des tests de migration et des décisions de repli en plus de la surveillance de la qualité des modèles.",{},{"id":537,"data":538,"type":42,"tunes":540},"h-prompt",{"text":539,"level":253},"Les prompts se comportent comme du code de production",{},{"id":542,"data":543,"type":218,"tunes":545},"p-prompt-1",{"text":544},"Les prompts sont une configuration comportementale exécutable. De petits changements peuvent altérer la qualité de sortie, la sélection d'outils et l'interprétation des politiques.",{},{"id":547,"data":548,"type":218,"tunes":550},"p-prompt-2",{"text":549},"Les recommandations actuelles d'OpenAI préconisent de stocker les prompts de production dans le code de l'application, de réviser les modifications de prompts via des pull requests, d'utiliser des entrées typées et de couvrir les changements par des tests et des contrôles d'évaluation.",{},{"id":552,"data":553,"type":218,"tunes":555},"p-prompt-3",{"text":554},"Cela rend le versionnage des prompts moins semblable à la modification d'un texte marketing et plus à la modification d'une fonction dont la sortie est probabiliste et dépendante du modèle.",{},{"id":557,"data":558,"type":42,"tunes":560},"h-context",{"text":559,"level":253},"L'ingénierie du contexte devient une préoccupation opérationnelle",{},{"id":562,"data":563,"type":218,"tunes":565},"p-context-1",{"text":564},"Le modèle de production ne reçoit que rarement un simple prompt statique. Il peut recevoir l'historique de conversation, des documents récupérés, des sorties d'outils, de la mémoire, l'état actuel de l'application et des instructions de politique.",{},{"id":567,"data":568,"type":218,"tunes":570},"p-context-2",{"text":569},"LLMOps doit donc observer l'assemblage du contexte : quelles preuves ont été sélectionnées, quelle version de l'état était active, si une troncature a eu lieu et si des instructions importantes ont survécu à la compaction.",{},{"id":572,"data":573,"type":218,"tunes":575},"p-context-3",{"text":574},"Une régression du modèle et une régression du contexte peuvent sembler identiques dans la réponse finale. C'est en traçant le chemin réel du contexte que l'équipe peut les distinguer.",{},{"id":577,"data":578,"type":42,"tunes":580},"h-rag",{"text":579,"level":253},"Le RAG crée son propre cycle de vie opérationnel",{},{"id":582,"data":583,"type":218,"tunes":585},"p-rag-1",{"text":584},"Un système RAG introduit un second pipeline de production à côté de l'inférence du modèle : ingestion, extraction, découpage, métadonnées, embeddings, index, récupération, reclassement et sélection du contexte.",{},{"id":587,"data":588,"type":218,"tunes":590},"p-rag-2",{"text":589},"Le corpus de connaissances peut changer chaque jour même lorsque le modèle et le prompt ne changent pas. Un index obsolète ou un filtre de métadonnées défectueux peut donc dégrader la qualité des réponses sans aucune dérive du modèle.",{},{"id":592,"data":593,"type":218,"tunes":595},"p-rag-3",{"text":594},"LLMOps pour le RAG devrait suivre la version du corpus\u002Findex, le modèle d'embedding, la politique de découpage, la configuration de récupération, la fraîcheur des sources et les métriques de récupération séparément de la qualité de génération.",{},{"id":597,"data":598,"type":603,"tunes":604},"ref-rag-diagnostic",{"url":599,"title":600,"excerpt":601,"ctaLabel":602},"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","Le RAG a échoué — mais quelle couche a réellement échoué ? Une méthode de diagnostic","Un pipeline LLM de production nécessite une observabilité distincte pour la couverture des sources, la récupération, le classement, l'assemblage du contexte et la génération.","Lire la méthode de diagnostic RAG","referralArticle",{},{"id":606,"data":607,"type":42,"tunes":609},"h-evals",{"text":608,"level":253},"Les évaluations remplacent « ça me semble bon » par des preuves de mise en production",{},{"id":611,"data":612,"type":218,"tunes":614},"p-eval-1",{"text":613},"Les sorties génératives sont souvent ouvertes, de sorte que les tests de correspondance exacte sont insuffisants pour de nombreuses tâches. LLMOps ajoute des jeux de données d'évaluation et des évaluateurs capables de mesurer la réussite de la tâche, l'exactitude, la sécurité, l'ancrage, le style ou des critères d'acceptation spécifiques au domaine.",{},{"id":616,"data":617,"type":218,"tunes":619},"p-eval-2",{"text":618},"La pile d'évaluation GenAI actuelle de MLflow prend en charge les jeux de données d'évaluation versionnés, les comparaisons de prompts\u002Fmodèles, les évaluateurs personnalisés et l'évaluation sur des traces complètes.",{},{"id":621,"data":622,"type":218,"tunes":624},"p-eval-3",{"text":623},"La pratique la plus solide est le développement guidé par l'évaluation : définir des cas représentatifs et des critères d'acceptation avant ou parallèlement aux modifications, puis comparer les versions par rapport aux mêmes preuves.",{},{"id":626,"data":627,"type":226,"tunes":631},"eval-rule",{"body":628,"title":629,"variant":630},"Un déploiement ne doit pas être considéré comme équivalent simplement parce que le contrat d'API fonctionne toujours. Si le prompt, le modèle, la récupération ou les outils ont changé, la suite de tests de régression comportementale doit être réexécutée.","Les changements comportementaux nécessitent des tests comportementaux","success",{},{"id":633,"data":634,"type":42,"tunes":636},"h-judges",{"text":635,"level":253},"Le LLM comme juge est utile mais ne constitue pas une vérité de référence",{},{"id":638,"data":639,"type":218,"tunes":641},"p-judge-1",{"text":640},"Les juges LLM peuvent mettre à l'échelle l'évaluation pour des qualités coûteuses à encoder sous forme d'assertions déterministes, telles que la pertinence, le ton ou l'ancrage factuel.",{},{"id":643,"data":644,"type":218,"tunes":646},"p-judge-2",{"text":645},"Cependant, le juge est un autre modèle avec ses propres biais, version et prompt. La configuration du juge doit donc être versionnée et calibrée par rapport à des cas de référence humains ou déterministes lorsque les conséquences sont importantes.",{},{"id":648,"data":649,"type":218,"tunes":651},"p-judge-3",{"text":650},"Une évaluation en production peut combiner des vérifications déterministes, des métriques basées sur des références, des juges modèles et une revue humaine plutôt que de demander à une seule métrique de représenter toutes les dimensions de qualité.",{},{"id":653,"data":654,"type":42,"tunes":656},"h-tracing",{"text":655,"level":253},"Le traçage devient plus important que les journaux de point de terminaison",{},{"id":658,"data":659,"type":218,"tunes":661},"p-trace-1",{"text":660},"Les journaux d'API traditionnels peuvent vous indiquer qu'une requête a pris deux secondes et a renvoyé HTTP 200. Ils ne peuvent pas vous dire quels segments récupérés ont été sélectionnés, quel outil l'agent a appelé ou quelle portée de modèle a consommé le plus de tokens.",{},{"id":663,"data":664,"type":218,"tunes":666},"p-trace-2",{"text":665},"Le traçage GenAI actuel de MLflow capture les prompts, les récupérations, les appels d'outils et les portées applicatives, et son flux d'évaluation en production peut noter les informations de trajectoire intermédiaires plutôt que seulement le texte final.",{},{"id":668,"data":669,"type":218,"tunes":671},"p-trace-3",{"text":670},"Il s'agit d'un changement majeur dans le LLMOps : l'observabilité suit le graphe comportemental de l'application, et non plus seulement le point de terminaison de service.",{},{"id":673,"data":674,"type":42,"tunes":676},"h-agent",{"text":675,"level":253},"Les agents étendent le LLMOps aux opérations d'exécution",{},{"id":678,"data":679,"type":218,"tunes":681},"p-agent-1",{"text":680},"Une application agentique peut effectuer plusieurs appels de modèle, invocations d'outils et transitions d'état avant de produire un résultat.",{},{"id":683,"data":684,"type":218,"tunes":686},"p-agent-2",{"text":685},"L'exploitation d'agents nécessite donc des comptages d'étapes, des traces d'appels d'outils, des refus de permission, des tentatives, une détection de boucles, des approbations humaines et un état final vérifié, en plus des métriques ordinaires de latence et de tokens du modèle.",{},{"id":688,"data":689,"type":218,"tunes":691},"p-agent-3",{"text":690},"Une réponse finale correcte peut masquer une mauvaise trajectoire, l'évaluation d'un agent doit donc inspecter le chemin autant que le résultat.",{},{"id":693,"data":694,"type":603,"tunes":699},"ref-agent-reliability",{"url":695,"title":696,"excerpt":697,"ctaLabel":698},"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Fai-agent-reliability-why-the-final-answer-is-not-enough","Fiabilité des agents IA : pourquoi la réponse finale ne suffit pas","Pourquoi l'évaluation en production des agents doit inclure les appels d'outils, les transitions d'état, les approbations et la capacité de récupération.","Lire l'article sur la fiabilité des agents",{},{"id":701,"data":702,"type":42,"tunes":704},"h-cost",{"text":703,"level":253},"Les tokens, les appels de modèle et le contexte deviennent des variables de coût",{},{"id":706,"data":707,"type":218,"tunes":709},"p-cost-1",{"text":708},"Le coût d'inférence ML classique est souvent dominé par l'infrastructure de service ou le calcul par prédiction. Les applications LLM peuvent ajouter la tarification des tokens du fournisseur, les appels d'agents répétés, les appels d'embedding, le reranking et les frais généraux d'outils\u002Fd'exécution.",{},{"id":711,"data":712,"type":218,"tunes":714},"p-cost-2",{"text":713},"Le coût doit donc être attribué à la tâche ou à la trace, et non seulement à un point de terminaison. Un flux de travail qui effectue huit appels de modèle cachés peut être fonctionnellement correct mais opérationnellement inacceptable.",{},{"id":716,"data":717,"type":218,"tunes":719},"p-cost-3",{"text":718},"La latence se comporte de la même manière : la latence du modèle, la récupération, le reranking et les outils externes se composent en une latence utilisateur de bout en bout.",{},{"id":721,"data":722,"type":42,"tunes":724},"h-cache",{"text":723,"level":253},"La mise en cache devient sémantique, pas seulement technique",{},{"id":726,"data":727,"type":218,"tunes":729},"p-cache-1",{"text":728},"Les systèmes LLM peuvent mettre en cache des prompts, des embeddings, des résultats de récupération ou des réponses complètes, mais la clé de cache doit refléter la sémantique qui peut modifier le résultat.",{},{"id":731,"data":732,"type":218,"tunes":734},"p-cache-2",{"text":733},"Un cache de réponses qui ignore la version du modèle, le locataire, les autorisations ou la fraîcheur des sources peut renvoyer une réponse techniquement valide mais sémantiquement invalide.",{},{"id":736,"data":737,"type":218,"tunes":739},"p-cache-3",{"text":738},"LLMOps traite donc l'invalidation du cache comme faisant partie du versionnage modèle\u002Fcontexte\u002Fdonnées plutôt que comme une simple optimisation d'infrastructure.",{},{"id":741,"data":742,"type":42,"tunes":744},"h-safety",{"text":743,"level":253},"La sécurité et les autorisations deviennent des critères de mise en production",{},{"id":746,"data":747,"type":218,"tunes":749},"p-safety-1",{"text":748},"Les systèmes génératifs peuvent produire du texte non borné et les agents peuvent déclencher des actions externes. Les tests de sécurité se rapprochent donc davantage du CI\u002FCD ordinaire que dans de nombreux systèmes ML prédictifs classiques.",{},{"id":751,"data":752,"type":218,"tunes":754},"p-safety-2",{"text":753},"Les contrôles d'autorisation, les tests d'injection de prompt, les tests d'isolation des locataires et les approbations d'effets de bord devraient être des tests de régression reproductibles là où ces risques existent.",{},{"id":756,"data":757,"type":218,"tunes":759},"p-safety-3",{"text":758},"Le modèle peut suggérer une opération, mais l'exécution doit toujours appliquer l'autorisation. LLMOps est responsable des preuves que ces contrôles continuent de fonctionner après des changements de modèle, de prompt ou d'outil.",{},{"id":761,"data":762,"type":42,"tunes":764},"h-ci",{"text":763,"level":253},"À quoi ressemble le CI dans 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],"Couche CI","Exemples de vérifications",[773,774],"Code","Tests unitaires, vérifications de types, validation de schéma",[776,777],"Prompts","Rendu de template, variables requises, texte de politique, revue de snapshot",[779,780],"Modèles\u002Ffournisseurs","Compatibilité, schéma de sortie, tests de capacité et de régression",[782,783],"RAG","Fixtures de chunking, tests de filtres, Recall@k, régression du reranker",[785,786],"Outils","Tests de schéma d'entrée\u002Fsortie, tests d'autorisation, tests d'idempotence",[788,789],"Agents","Fixtures de trajectoire, limites de boucle, tests de handoff\u002Fsélection d'outil",[791,792],"Sécurité","Injection de prompt, outils non autorisés, tests négatifs inter-locataires",[794,795],"Évaluations comportementales","Succès de la tâche, exactitude, ancrage, sécurité, critères de domaine",[797,798],"Opérationnel","Latence, budgets de tokens\u002Fcoût, comportement de timeout\u002Ffallback",{},{"id":801,"data":802,"type":42,"tunes":804},"h-cd",{"text":803,"level":253},"À quoi ressemble le CD dans LLMOps",{},{"id":806,"data":807,"type":218,"tunes":809},"p-cd-1",{"text":808},"Une mise en production peut ne déployer aucun nouvel artefact de modèle. Elle peut simplement livrer un nouveau prompt, une configuration de récupération, un ensemble d'outils ou un mappage de fournisseur.",{},{"id":811,"data":812,"type":218,"tunes":814},"p-cd-2",{"text":813},"Le bundle de mise en production devrait donc identifier la configuration complète définissant le comportement plutôt que seulement l'image de conteneur de l'application.",{},{"id":816,"data":817,"type":218,"tunes":819},"p-cd-3",{"text":818},"Les feature flags, le déploiement progressif, l'évaluation en shadow, le trafic canari et le rollback sont utiles car le comportement des LLM peut régresser de manières que les tests de contrat statiques ne détectent pas.",{},{"id":821,"data":822,"type":42,"tunes":824},"h-ct",{"text":823,"level":253},"L'entraînement continu devient optionnel ; l'évaluation continue devient centrale",{},{"id":826,"data":827,"type":218,"tunes":829},"p-ct-1",{"text":828},"Le MLOps traditionnel met souvent l'accent sur l'entraînement continu lorsque de nouvelles données ou une dérive justifient un réentraînement.",{},{"id":831,"data":832,"type":218,"tunes":834},"p-ct-2",{"text":833},"De nombreuses applications LLM n'entraînent jamais le modèle de fondation. Leur boucle continue équivalente est l'évaluation continue : collecter les échecs et les cas de production représentatifs, les ajouter aux jeux de données d'évaluation, tester les modifications candidates de prompt\u002Fmodèle\u002Frécupération et redéployer uniquement lorsque les preuves s'améliorent.",{},{"id":836,"data":837,"type":218,"tunes":839},"p-ct-3",{"text":838},"Le fine-tuning peut réintroduire un cycle de vie d'entraînement, mais il doit s'inscrire dans le même processus global d'évaluation et de publication.",{},{"id":841,"data":842,"type":42,"tunes":844},"h-monitor",{"text":843,"level":253},"Que faut-il surveiller en production ?",{},{"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],"Classe de signal","Exemples",[853,854],"Santé du système","Erreurs, délais d'attente, disponibilité des points de terminaison",[856,857],"Modèle\u002Ffournisseur","ID du modèle, instantané, limites de débit, erreurs du fournisseur",[859,860],"Latence","Bout en bout, modèle, récupération, outils et reranker",[862,863],"Coût","Jetons d'entrée\u002Fsortie, embeddings, dépenses d'outils\u002FAPI",[865,866],"Qualité","Succès de tâche échantillonné, exactitude, pertinence, ancrage",[782,868],"Indicateurs de rappel de récupération, récupération vide, sources obsolètes, couverture des citations",[788,870],"Sélection d'outils, tentatives, boucles, transferts, fréquence d'approbation",[791,872],"Actions refusées, indicateurs d'injection de prompt, défaillances des limites de locataire",[874,875],"Retour utilisateur","Corrections, abandon, escalade, évaluations explicites",[877,878],"Dérive des changements","Changements de fournisseur\u002Fmodèle\u002Fconfiguration par rapport à la version approuvée",{},{"id":881,"data":882,"type":42,"tunes":884},"h-prod-eval",{"text":883,"level":253},"Les traces de production peuvent devenir des données d'évaluation",{},{"id":886,"data":887,"type":218,"tunes":889},"p-prod-1",{"text":888},"L'un des modèles LLMOps modernes les plus utiles consiste à transformer des traces de production échantillonnées en enregistrements d'évaluation.",{},{"id":891,"data":892,"type":218,"tunes":894},"p-prod-2",{"text":893},"MLflow prend actuellement en charge la récupération des traces de production et l'évaluation non seulement des sorties mais aussi des spans intermédiaires tels que les trajectoires de récupération ou d'appel d'outils.",{},{"id":896,"data":897,"type":218,"tunes":899},"p-prod-3",{"text":898},"Cela ferme la boucle entre l'observabilité et le développement : les échecs réels peuvent devenir des cas de régression dans la prochaine version plutôt que de disparaître dans les journaux.",{},{"id":901,"data":902,"type":42,"tunes":904},"h-repro",{"text":903,"level":253},"La reproductibilité devient conditionnelle plutôt qu'exacte",{},{"id":906,"data":907,"type":218,"tunes":909},"p-repro-1",{"text":908},"La reproductibilité classique en ML vise souvent à recréer un modèle à partir de code, de données, d'environnement et de paramètres d'entraînement versionnés.",{},{"id":911,"data":912,"type":218,"tunes":914},"p-repro-2",{"text":913},"Les applications LLM hébergées ne peuvent pas toujours reproduire une sortie identique jeton par jeton car la génération est probabiliste et les fournisseurs peuvent contrôler l'infrastructure.",{},{"id":916,"data":917,"type":218,"tunes":919},"p-repro-3",{"text":918},"LLMOps vise donc une reproductibilité comportementale : enregistrer suffisamment de modèle\u002Ffournisseur\u002Fversion, de prompt, d'entrées de contexte, d'état de récupération et de configuration d'exécution pour reproduire les conditions et valider le comportement dans les tolérances attendues.",{},{"id":921,"data":922,"type":42,"tunes":924},"h-lineage",{"text":923,"level":253},"La lignée s'étend de la lignée du modèle à la lignée de l'application",{},{"id":926,"data":927,"type":218,"tunes":929},"p-lineage-1",{"text":928},"Les conseils MLOps d'AWS considèrent la lignée du modèle comme l'historique du code, des données, du modèle et des artefacts d'infrastructure nécessaires au diagnostic et à la reproductibilité.",{},{"id":931,"data":932,"type":218,"tunes":934},"p-lineage-2",{"text":933},"Pour les applications LLM, la lignée doit en outre relier les prompts, les jeux de données d'évaluation, les versions de récupération\u002Findex, les schémas d'outils, la configuration de l'agent\u002Fd'exécution et les instantanés de fournisseur\u002Fmodèle.",{},{"id":936,"data":937,"type":218,"tunes":939},"p-lineage-3",{"text":938},"La question cible devient : quelle configuration exacte de l'application a produit cette trace ?",{},{"id":941,"data":942,"type":42,"tunes":944},"h-routing",{"text":943,"level":253},"Le routage multi-fournisseur et multi-modèle crée une politique opérationnelle",{},{"id":946,"data":947,"type":218,"tunes":949},"p-route-1",{"text":948},"Une fois qu'une application peut utiliser plusieurs fournisseurs ou modèles locaux, le routage devient une politique opérationnelle plutôt qu'une simple chaîne de modèle.",{},{"id":951,"data":952,"type":218,"tunes":954},"p-route-2",{"text":953},"Le routage peut dépendre de la capacité, de la latence, du coût, de la confidentialité, de la longueur du contexte, de la disponibilité, de la prise en charge des outils ou de la localisation. Un repli peut préserver la disponibilité tout en modifiant la qualité des réponses ou les hypothèses de traitement des données.",{},{"id":956,"data":957,"type":218,"tunes":959},"p-route-3",{"text":958},"LLMOps doit donc journaliser la route réellement sélectionnée et évaluer les routes indépendamment plutôt que de traiter chaque point de terminaison compatible comme comportementalement interchangeable.",{},{"id":961,"data":962,"type":42,"tunes":964},"h-implementation",{"text":963,"level":253},"Preuves d'implémentation originales",{},{"id":966,"data":967,"type":42,"tunes":969},"h-client",{"text":968,"level":252},"Aaasaasa AI Client : fournisseur, modèle et environnement d'exécution sont des objets opérationnels distincts",{},{"id":971,"data":972,"type":218,"tunes":974},"p-client-1",{"text":973},"Aaasaasa AI Client sépare l'agent\u002Fclient, le fournisseur, le modèle, l'emplacement d'exécution et les autorisations. Son AI Hub prend en charge Ollama, LM Studio\u002Fles points de terminaison compatibles OpenAI et d'autres protocoles de fournisseurs plutôt que de traiter « le modèle » comme un paramètre global unique.",{},{"id":976,"data":977,"type":218,"tunes":979},"p-client-2",{"text":978},"L'implémentation inclut la découverte dynamique des modèles locaux, le streaming, la sortie de réflexion et des contrôles explicites de chargement\u002Fdéchargement et de préchauffage Ollama. C'est une preuve opérationnelle que le service LLM local introduit des préoccupations de cycle de vie des ressources au-delà d'un nom de modèle d'API.",{},{"id":981,"data":982,"type":218,"tunes":984},"p-client-3",{"text":983},"L'état du fournisseur est interrogé via des adaptateurs de fournisseur, et les types de connexion distinguent les chemins locaux, API cloud, adossés à un compte, agent distant et client web. Ce sont des dimensions opérationnelles concrètes qu'une plateforme consciente des LLM doit exposer.",{},{"id":986,"data":987,"type":218,"tunes":989},"p-client-4",{"text":988},"Le dépôt préserve également une frontière importante : un environnement d'exécution local n'est pas automatiquement une inférence locale. L'emplacement du fournisseur, du modèle et de l'environnement d'exécution sont des préoccupations versionnées ou configurables qui affectent la confidentialité, la latence, le coût et la disponibilité.",{},{"id":991,"data":992,"type":42,"tunes":994},"h-sot",{"text":993,"level":252},"Source of Truth Research Engine : l'état d'une application LLM s'étend au-delà du modèle",{},{"id":996,"data":997,"type":218,"tunes":999},"p-sot-1",{"text":998},"Le Source of Truth Research Engine combine recherche lexicale, embeddings optionnels, instantanés de sources, identité SHA-256, affirmations, provenance et suivi des contradictions autour d'une recherche assistée par modèle local.",{},{"id":1001,"data":1002,"type":218,"tunes":1004},"p-sot-2",{"text":1003},"C'est une preuve LLMOps utile car changer le modèle seul ne définit pas le système de recherche. La récupération, l'acquisition de sources, la classification des preuves et la provenance persistante sont des artefacts opérationnels indépendants.",{},{"id":1006,"data":1007,"type":218,"tunes":1009},"p-sot-3",{"text":1008},"L'implémentation traite délibérément la similarité sémantique comme une découverte plutôt que comme une preuve, montrant pourquoi l'observabilité LLMOps doit distinguer le comportement de récupération de la validité des affirmations.",{},{"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],"Implémentation observée","Leçon LLMOps",[1018,1019],"Protocoles de fournisseurs multiples","L'identité du fournisseur est une dépendance opérationnelle",[1021,1022],"Découverte dynamique des modèles","Les modèles disponibles peuvent changer indépendamment du code de l'application",[1024,1025],"Contrôles de chargement\u002Fdéchargement Ollama","Les modèles locaux ont un cycle de vie mémoire\u002Fressources",[1027,1028],"Adaptateurs de santé\u002Fétat des fournisseurs","La disponibilité des modèles nécessite une observabilité d'exécution",[1030,1031],"Emplacement d'exécution et d'inférence distincts","La topologie de déploiement n'est pas un simple booléen « local\u002Fcloud »",[1033,1034],"Autorisations centralisées","La capacité du modèle et l'autorité des outils doivent rester séparées",[1036,1037],"Pipeline de récupération lexicale + sémantique","La configuration de récupération fait partie du comportement de l'application",[1039,1040],"Persistance des sources\u002Fprovenance","L'état opérationnel et les preuves vivent en dehors des poids du modèle",{},{"id":1043,"data":1044,"type":226,"tunes":1047},"impl-boundary",{"body":1045,"title":1046,"variant":240},"Ces projets démontrent des opérations multi-fournisseurs\u002Fmodèles locaux, la séparation des autorisations, l'infrastructure de récupération et la persistance des preuves. Ils ne sont pas présentés comme une plateforme LLMOps commerciale complète ni comme une preuve de trafic de production à grande échelle.","Frontière des preuves",{},{"id":1049,"data":1050,"type":42,"tunes":1052},"h-failures",{"text":1051,"level":253},"Modes de défaillance LLMOps courants",{},{"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],"Mode de défaillance","Ce qui a réellement mal tourné",[1061,1062],"Alias de modèle mis à jour silencieusement","Le comportement a changé sans version contrôlée",[1064,1065],"Prompt modifié sans évaluations","Une régression comportementale a passé les tests unitaires normaux",[1067,1068],"Index RAG obsolète","Le modèle de génération a été blâmé pour une défaillance de récupération\u002Fdonnées",[1070,1071],"Seule la réponse finale est journalisée","La cause racine dans la trajectoire de récupération\u002Foutil\u002Fcontexte est invisible",[1073,1074],"Le repli de fournisseur est silencieux","Un chemin de modèle\u002Fdonnées différent modifie le comportement sans attribution",[1076,1077],"Coût des tokens suivi globalement","Les flux de travail coûteux ne peuvent pas être localisés",[1079,1080],"Modèle juge modifié","Les scores d'évaluation dérivent sans changement d'application",[1082,1083],"Les traces de production ne deviennent jamais des tests","Les défaillances connues reviennent de manière répétée",[1085,1086],"Le modèle local reste chargé indéfiniment","La pression VRAM\u002Fressources devient une instabilité opérationnelle",[1088,1089],"Autorisations encodées uniquement dans le prompt","Le comportement du modèle est confondu avec l'autorisation",[1091,1092],"Un seul score d'évaluation conditionne tout","Différentes dimensions de qualité sont réduites à un nombre trompeur",[1094,1095],"Le registre de modèles existe mais pas les versions de prompt\u002Findex","La lignée de l'application reste incomplète",{},{"id":1098,"data":1099,"type":42,"tunes":1101},"h-misconceptions",{"text":1100,"level":253},"Idées fausses courantes",{},{"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],"Idée fausse","Correction",[1110,1111],"« LLMOps remplace MLOps. »","LLMOps étend les principes MLOps au comportement applicatif spécifique aux LLM.",[1113,1114],"« LLMOps, c'est de l'ingénierie de prompt. »","Les prompts sont un artefact parmi les modèles, fournisseurs, contextes, récupérations, outils, évaluations et environnements d'exécution.",[1116,1117],"« Les API hébergées suppriment le travail d'exploitation. »","Elles suppriment une partie du travail de service\u002Fentraînement des modèles mais ajoutent la gestion du cycle de vie des fournisseurs, des versions et des dépendances.",[1119,1120],"« Si l'API est stable, l'application est stable. »","Le comportement du modèle et les instantanés de fournisseur\u002Fmodèle peuvent changer indépendamment du schéma de l'API.",[1122,1123],"« Le RAG n'est que du prétraitement de données. »","En production, il a son propre cycle de vie d'ingestion, d'index, de récupération et de fraîcheur.",[1125,1126],"« Les sorties LLM ne peuvent pas être testées. »","Elles peuvent être évaluées avec des critères déterministes, de référence, de juge et humains.",[1128,1129],"« Les juges LLM sont une vérité terrain objective. »","Ce sont des évaluateurs basés sur des modèles qui nécessitent aussi calibration et contrôle de version.",[1131,1132],"« Un modèle local élimine LLMOps. »","Le service local ajoute des préoccupations de fichiers de modèle, VRAM, chargement\u002Fdéchargement, santé d'exécution et mise à niveau.",[1134,1135],"« Observabilité signifie comptage de tokens. »","Une observabilité utile suit les prompts, récupérations, outils, spans de modèle et résultats.",[1137,1138],"« L'entraînement continu est obligatoire. »","De nombreuses applications LLM utilisent l'évaluation continue sans entraîner le modèle de fondation.",{},{"id":1141,"data":1142,"type":42,"tunes":1144},"h-design",{"text":1143,"level":253},"Une séquence de conception LLMOps pratique",{},{"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. Définir l'unité de comportement","Lister chaque composant pouvant modifier matériellement la sortie : modèle, prompt, récupération, outils, contexte et politique.",{"label":1153,"description":1154},"2. Établir la lignée applicative","Versionner le code, le modèle\u002Ffournisseur, les prompts, les jeux de données d'évaluation, la configuration de récupération et les contrats d'outils.",{"label":1156,"description":1157},"3. Construire des jeux de données d'évaluation représentatifs","Utiliser les cas de succès\u002Féchec attendus issus de la conception et de la production.",{"label":1159,"description":1160},"4. Séparer les tests déterministes et comportementaux","Garder les assertions de schéma\u002Fsécurité distinctes de l'évaluation sémantique des sorties.",{"label":1162,"description":1163},"5. Tracer l'exécution de bout en bout","Instrumenter le modèle, la récupération, le reranking, les outils et les spans d'agent\u002Fruntime.",{"label":1165,"description":1166},"6. Définir les portes de release","Fixer des seuils de qualité, sûreté, latence et coût.",{"label":1168,"description":1169},"7. Épingler ou enregistrer explicitement les versions de modèle","Traiter les changements de modèle\u002Ffournisseur comme des événements de release.",{"label":1171,"description":1172},"8. Déployer progressivement","Utiliser des flags, canaris ou déploiement par étapes lorsque les conséquences le justifient.",{"label":1174,"description":1175},"9. Évaluer les traces de production","Mesurer le comportement réel des tâches et identifier les défaillances récurrentes.",{"label":1177,"description":1178},"10. Réinjecter les échecs dans les jeux de données d'évaluation","Transformer les incidents et corrections en couverture de régression permanente.",{"label":1180,"description":1181},"11. Surveiller les cycles de vie des fournisseurs et des données","Suivre les dépréciations, la fraîcheur des index, les changements de sources et la disponibilité du runtime.",{"label":1183,"description":1184},"12. Retirer proprement les versions obsolètes","Supprimer les anciens prompts\u002Fmodèles\u002Findex\u002Fidentifiants après migration et décisions de conservation des preuves.","Exploiter le système complet de production de comportement",{},{"id":1188,"data":1189,"type":42,"tunes":1191},"h-checklist",{"text":1190,"level":253},"Liste de contrôle d'architecture 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],"Question","Preuve attendue",[1200,1201],"Quel modèle\u002Ffournisseur\u002Fversion a servi la requête ?","Identité de modèle traçable",[1203,1204],"Quels prompts\u002Finstructions étaient actifs ?","Code\u002Fconfig applicatif versionné",[1206,1207],"Quel contexte a atteint le modèle ?","Trace de contexte\u002Frécupération",[1209,1210],"Quelle version de corpus\u002Findex a été utilisée ?","Lignée de récupération",[1212,1213],"Quels outils étaient disponibles et appelés ?","Schéma d'outil + trace de trajectoire",[1215,1216],"Quelles permissions s'appliquaient ?","Enregistrement d'autorisation à l'exécution",[1218,1219],"Comment la qualité est-elle mesurée ?","Jeu de données d'évaluation versionné + évaluateurs",[1221,1222],"Comment les mises à niveau de modèle sont-elles testées ?","Suite de régression comportementale",[1224,1225],"Comment la qualité en production est-elle échantillonnée ?","Processus d'évaluation des traces\u002Fretour d'information",[1227,1228],"Un échec peut-il être reproduit approximativement ?","Lignée modèle\u002Fcontexte\u002Ffournisseur\u002Fapplication",[1230,1231],"Où le coût est-il dépensé ?","Attribution par trace du modèle\u002Foutil\u002Frécupération",[1233,1234],"Qu'est-ce qui déclenche un rollback ?","Seuil défini de qualité\u002Fsûreté\u002Fcoût\u002Fdisponibilité",[1236,1237],"Comment les dépréciations de fournisseur sont-elles gérées ?","Processus de migration\u002Frepli",[1239,1240],"Comment les modèles locaux sont-ils exploités ?","Contrôles de santé, ressources, chargement\u002Fdéchargement et version",{},{"id":1243,"data":1244,"type":42,"tunes":1246},"h-edge",{"text":1245,"level":253},"Cas limites et limitations",{},{"id":1248,"data":1249,"type":218,"tunes":1251},"p-edge-1",{"text":1250},"Une application simple qui appelle un modèle hébergé fixe sans récupération ni outils peut ne nécessiter qu'un LLMOps léger : code de prompt versionné, évaluations, épinglage de modèle, traçage de base et surveillance du fournisseur.",{},{"id":1253,"data":1254,"type":218,"tunes":1256},"p-edge-2",{"text":1255},"Un modèle auto-hébergé affiné peut nécessiter presque toute la pile MLOps classique plus une évaluation applicative spécifique aux LLM, rendant la frontière entre MLOps et LLMOps intentionnellement floue.",{},{"id":1258,"data":1259,"type":218,"tunes":1261},"p-edge-3",{"text":1260},"Une plateforme d'agents peut avoir des opérations d'entraînement de modèle minimales mais des opérations d'exécution substantielles car les défaillances surviennent dans la sélection d'outils, l'état et l'orchestration.",{},{"id":1263,"data":1264,"type":218,"tunes":1266},"p-edge-4",{"text":1265},"Un système fortement basé sur RAG peut être opérationnellement dominé par l'ingestion de documents et la qualité de récupération plutôt que par le service de modèle.",{},{"id":1268,"data":1269,"type":218,"tunes":1271},"p-edge-5",{"text":1270},"La terminologie continuera d'évoluer. La question architecturale durable n'est pas de savoir quelle étiquette « Ops » l'emporte, mais quels artefacts produisent le comportement et doivent donc être versionnés, évalués, observés et gouvernés.",{},{"id":1273,"data":1274,"type":42,"tunes":1276},"h-change",{"text":1275,"level":253},"Qu'est-ce qui changerait cette réponse ?",{},{"id":1278,"data":1279,"type":218,"tunes":1281},"p-change-1",{"text":1280},"Si les fournisseurs de modèles de fondation standardisaient un comportement de modèle parfaitement stable et un support de version à long terme, la gestion des fournisseurs\u002Fsnapshots pourrait devenir moins significative opérationnellement.",{},{"id":1283,"data":1284,"type":218,"tunes":1286},"p-change-2",{"text":1285},"Si les applications prennent de plus en plus en charge l'affinage ou l'entraînement, les préoccupations MLOps classiques redeviennent plus centrales.",{},{"id":1288,"data":1289,"type":218,"tunes":1291},"p-change-3",{"text":1290},"Le principe opérationnel resterait : chaque composant pouvant modifier matériellement le comportement en production appartient à la lignée, aux tests, à l'observabilité et au contrôle des changements.",{},{"id":1293,"data":1294,"type":42,"tunes":1296},"h-related",{"text":1295,"level":253},"Connaissances canoniques associées",{},{"id":1298,"data":1299,"type":218,"tunes":1301},"p-related-1",{"text":1300},"LLMOps se situe sous AI Governance et Enterprise AI Architecture : la gouvernance définit quels changements nécessitent des preuves et une approbation, tandis que LLMOps fournit la machinerie opérationnelle pour versionner, évaluer, déployer et observer ces changements.",{},{"id":1303,"data":1304,"type":218,"tunes":1306},"p-related-2",{"text":1305},"Context Engineering et RAG sont des sous-domaines opérationnels au sein de nombreuses applications LLM car le contexte et la récupération peuvent modifier le comportement indépendamment du modèle.",{},{"id":1308,"data":1309,"type":218,"tunes":1311},"p-related-3",{"text":1310},"Agentic AI étend LLMOps plus loin dans les opérations de trajectoire, de permissions et de runtime d'outils.",{},{"id":1313,"data":1314,"type":603,"tunes":1319},"ref-memory",{"url":1315,"title":1316,"excerpt":1317,"ctaLabel":1318},"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","La mémoire des agents IA n'est pas du RAG : comment séparer mémoire, récupération, état et contexte","La fiabilité opérationnelle s'améliore lorsque la mémoire, la récupération, l'état de l'application et le contexte du modèle restent des objets de cycle de vie distincts.","Lire l'article sur l'architecture",{},{"id":1321,"data":1322,"type":603,"tunes":1327},"ref-avb",{"url":1323,"title":1324,"excerpt":1325,"ctaLabel":1326},"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Fthe-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers","La frontière de validité des réponses : la couche manquante entre pertinence et réponses IA fiables","L'évaluation LLMOps doit préserver la version, la portée et les conditions de preuve dans lesquelles une réponse reste étayée.","Lire la frontière de validité des réponses",{},{"id":1329,"data":1330,"type":42,"tunes":1332},"h-faq",{"text":1331,"level":253},"Questions fréquentes",{},{"id":1334,"data":1335,"type":1334,"tunes":1373},"faq",{"items":1336,"title":1372},[1337,1341,1345,1349,1353,1356,1360,1364,1368],{"id":1338,"answer":1339,"question":1340},"faq1","MLOps exploite des systèmes d'apprentissage automatique à travers les données, l'entraînement, le déploiement et la surveillance. LLMOps étend ces pratiques aux applications LLM où les prompts, le contexte, la récupération, les fournisseurs, les outils et les évaluations affectent également matériellement le comportement.","Quelle est la différence entre MLOps et LLMOps ?",{"id":1342,"answer":1343,"question":1344},"faq2","Non. LLMOps réutilise les disciplines MLOps telles que CI\u002FCD, la traçabilité, l'évaluation, le déploiement et la surveillance et ajoute des préoccupations opérationnelles spécifiques aux LLM.","LLMOps remplace-t-il MLOps ?",{"id":1346,"answer":1347,"question":1348},"faq3","Pas nécessairement. Beaucoup utilisent des modèles de fondation externes et s'appuient plutôt sur l'évaluation continue des prompts, des modèles, de la récupération et du comportement de l'application. Les systèmes affinés ou auto-entraînés peuvent encore nécessiter des pipelines d'entraînement.","Les applications LLM ont-elles besoin d'un entraînement continu ?",{"id":1350,"answer":1351,"question":1352},"faq4","Les sorties génératives sont ouvertes et le comportement du modèle peut changer selon les prompts, les instantanés et le contexte. Les évaluations fournissent des preuves reproductibles qu'une version répond encore aux critères de qualité et de sécurité définis.","Pourquoi les évaluations sont-elles si importantes dans LLMOps ?",{"id":1354,"answer":1355,"question":444},"faq5","Au minimum : le code de l'application, le modèle\u002Ffournisseur\u002Fversion, les prompts, les jeux de données\u002Févaluateurs d'évaluation, la configuration\u002Findex de récupération, les schémas d'outils, les règles de contexte et la configuration pertinente de sécurité\u002Fpermissions.",{"id":1357,"answer":1358,"question":1359},"faq6","Non. Le même prompt peut se comporter différemment avec un autre modèle, un autre ensemble de récupération, un autre ordre de contexte, une autre surface d'outils ou un autre fournisseur.","Le versionnement des prompts suffit-il ?",{"id":1361,"answer":1362,"question":1363},"faq7","GenAIOps est un autre terme industriel pour l'exploitation d'applications d'IA générative. Certains fournisseurs l'utilisent de manière interchangeable ou comme une étiquette plus large que LLMOps.","Qu'est-ce que GenAIOps ?",{"id":1365,"answer":1366,"question":1367},"faq8","Surveillez les traces de bout en bout incluant les appels de modèle, les prompts\u002Fcontexte, la récupération, les outils, la latence, les jetons\u002Fcoût, les échantillons de qualité, la sécurité et les résultats finaux des tâches.","Comment surveiller une application LLM ?",{"id":1369,"answer":1370,"question":1371},"faq9","Oui. Les modèles locaux ajoutent leurs propres préoccupations opérationnelles telles que les fichiers de modèle, le matériel\u002FVRAM, le chargement\u002Fdéchargement, la santé du runtime, la quantification et la gestion des mises à niveau.","Les LLM locaux peuvent-ils utiliser les pratiques LLMOps ?","FAQ MLOps vs LLMOps",{},{"id":1375,"data":1376,"type":42,"tunes":1378},"h-glossary",{"text":1377,"level":253},"Glossaire",{},{"id":1380,"data":1381,"type":1380,"tunes":1426},"glossary",{"title":1382,"entries":1383},"Termes clés MLOps et LLMOps",[1384,1386,1388,1392,1395,1399,1403,1407,1411,1414,1418,1422],{"term":415,"anchor":414,"definition":1385},"Pratiques d'ingénierie pour construire, déployer, surveiller et maintenir des systèmes d'apprentissage automatique et leur cycle de vie données\u002Fmodèle.",{"term":418,"anchor":417,"definition":1387},"Pratiques opérationnelles pour les applications en production dont le comportement dépend matériellement de grands modèles de langage et des prompts, du contexte, de la récupération, des outils et du runtime environnants.",{"term":1389,"anchor":1390,"definition":1391},"GenAIOps","genaiops","Discipline opérationnelle pour les applications d'IA générative ; souvent utilisée comme une étiquette plus large ou alternative pour LLMOps.",{"term":400,"anchor":1393,"definition":1394},"continuous-training","Réentraînement et mise en service automatisés ou répétés de modèles ML à mesure que les données ou les implémentations changent.",{"term":1396,"anchor":1397,"definition":1398},"Évaluation continue","continuous-evaluation","Évaluation répétée du comportement des IA candidates et en production par rapport à des jeux de données et des critères versionnés.",{"term":1400,"anchor":1401,"definition":1402},"Instantané de modèle","model-snapshot","Une version concrète d'un modèle hébergé ou packagé dont le comportement peut être testé et référencé.",{"term":1404,"anchor":1405,"definition":1406},"Traçabilité de l'application","application-lineage","Relation traçable entre le code, le modèle\u002Ffournisseur, les prompts, les données\u002Frécupération, les outils, le runtime et la configuration de version.",{"term":1408,"anchor":1409,"definition":1410},"Trace","trace","Enregistrement structuré d'une exécution d'application contenant des spans tels que les appels de modèle, les récupérations et les opérations d'outils.",{"term":469,"anchor":1412,"definition":1413},"eval-dataset","Ensemble versionné d'entrées représentatives, d'attentes et éventuellement de traces\u002Fsorties utilisé pour mesurer le comportement.",{"term":1415,"anchor":1416,"definition":1417},"Juge LLM","llm-judge","Un modèle de langage utilisé comme évaluateur pour des critères qualitatifs ou sémantiques ; il est lui-même une dépendance d'évaluation versionnée.",{"term":1419,"anchor":1420,"definition":1421},"Régression comportementale","behavioral-regression","Une dégradation de la sortie ou de la trajectoire de l'application malgré des interfaces et un code qui continuent de s'exécuter avec succès.",{"term":1423,"anchor":1424,"definition":1425},"Routage des fournisseurs","provider-routing","Politique de sélection parmi les fournisseurs\u002Fpoints de terminaison de modèles disponibles selon la capacité, le coût, la latence, la confidentialité ou la disponibilité.",{},{"id":1428,"data":1429,"type":42,"tunes":1431},"h-conclusion",{"text":1430,"level":253},"Conclusion",{},{"id":1433,"data":1434,"type":218,"tunes":1436},"p-conclusion-1",{"text":1435},"MLOps et LLMOps partagent le même objectif d'ingénierie : rendre les systèmes d'IA suffisamment reproductibles, suffisamment testables et suffisamment observables pour fonctionner de manière fiable en production.",{},{"id":1438,"data":1439,"type":218,"tunes":1441},"p-conclusion-2",{"text":1440},"La différence réside dans la forme du système. Le MLOps classique se concentre souvent sur l'entraînement et la mise en service d'artefacts de modèle ; LLMOps doit exploiter une pile comportementale dans laquelle les instantanés de modèle, les prompts, le contexte, la récupération, les outils, les permissions et les fournisseurs peuvent changer indépendamment.",{},{"id":1443,"data":1444,"type":218,"tunes":1446},"p-conclusion-3",{"text":1445},"La règle utile la plus courte est : versionner, évaluer et observer tout ce qui peut modifier matériellement le comportement de l'application LLM — pas seulement le modèle.",{},{"id":1448,"data":1449,"type":42,"tunes":1451},"h-sources",{"text":1450,"level":253},"Sources primaires et documentation actuelle",{},{"id":1453,"data":1454,"type":218,"tunes":1456},"p-sources-note",{"text":1455},"Les sources ci-dessous fondent la base MLOps et les modèles opérationnels actuels pour les applications LLM et agents. Les sections du projet sont des preuves d'implémentation originales et sont intentionnellement plus étroites que les affirmations concernant une plateforme LLMOps complète.",{},{"id":1458,"data":1459,"type":1465,"tunes":1466},"src-google-mlops",{"link":1460,"meta":1461},"https:\u002F\u002Fdocs.cloud.google.com\u002Farchitecture\u002Fmlops-continuous-delivery-and-automation-pipelines-in-machine-learning",{"image":1462,"title":1463,"description":1464},{"url":381},"Google Cloud — MLOps : pipelines de livraison continue et d'automatisation","Architecture de référence décrivant CI, CD, entraînement continu, registre de modèles, métadonnées, mise en service et surveillance pour les systèmes ML.","linkTool",{},{"id":1468,"data":1469,"type":1465,"tunes":1475},"src-aws-lineage",{"link":1470,"meta":1471},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fmachine-learning-lens\u002Fmlops02-bp04.html",{"image":1472,"title":1473,"description":1474},{"url":381},"AWS Machine Learning Lens — Traçabilité des modèles","Conseils actuels pour suivre le code, les données, les modèles, les environnements et l'infrastructure à travers les versions ML.",{},{"id":1477,"data":1478,"type":1465,"tunes":1484},"src-aws-monitor",{"link":1479,"meta":1480},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fmachine-learning-lens\u002Fmlops06-bp02.html",{"image":1481,"title":1482,"description":1483},{"url":381},"AWS Machine Learning Lens — Observabilité et suivi des modèles","Conseils actuels pour la surveillance des modèles en production, la dérive, la santé des points de terminaison et la traçabilité.",{},{"id":1486,"data":1487,"type":1465,"tunes":1493},"src-azure-llmops",{"link":1488,"meta":1489},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fmachine-learning\u002Fprompt-flow\u002Fhow-to-end-to-end-llmops-with-prompt-flow",{"image":1490,"title":1491,"description":1492},{"url":381},"Microsoft Azure — Cycle de vie GenAIOps \u002F LLMOps","Conseils officiels décrivant GenAIOps, parfois appelé LLMOps, à travers l'initialisation, l'expérimentation, l'évaluation\u002Fraffinement et le déploiement.",{},{"id":1495,"data":1496,"type":1465,"tunes":1502},"src-mlflow-genai",{"link":1497,"meta":1498},"https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002F",{"image":1499,"title":1500,"description":1501},{"url":381},"MLflow — Agents et applications LLM","Documentation actuelle sur les opérations GenAI couvrant la traçabilité, l'évaluation, les prompts et l'observabilité en production pour les applications LLM et les agents.",{},{"id":1504,"data":1505,"type":1465,"tunes":1511},"src-mlflow-traces",{"link":1506,"meta":1507},"https:\u002F\u002Fwww.mlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Feval-monitor\u002Frunning-evaluation\u002Ftraces\u002F",{"image":1508,"title":1509,"description":1510},{"url":381},"MLflow — Évaluation des traces de production","Conseils actuels pour évaluer les traces complètes LLM\u002Fagent, y compris les trajectoires de récupération et d'appels d'outils.",{},{"id":1513,"data":1514,"type":1465,"tunes":1520},"src-mlflow-prompt-eval",{"link":1515,"meta":1516},"https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Fprompt-registry\u002Fevaluate-prompts\u002F",{"image":1517,"title":1518,"description":1519},{"url":381},"MLflow — Évaluation des prompts","Flux de travail actuel d'évaluation des prompts\u002Fmodèles utilisant des prompts versionnés, des jeux de données, des évaluateurs et des traces.",{},{"id":1522,"data":1523,"type":1465,"tunes":1529},"src-openai-api",{"link":1524,"meta":1525},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Freference\u002Foverview",{"image":1526,"title":1527,"description":1528},{"url":381},"API OpenAI — Versionnage et instantanés de modèles","Recommandations actuelles de l'API préconisant des versions de modèles épinglées et des évaluations, car le comportement des prompts peut changer entre les instantanés.",{},{"id":1531,"data":1532,"type":1465,"tunes":1538},"src-openai-prompting",{"link":1533,"meta":1534},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompting",{"image":1535,"title":1536,"description":1537},{"url":381},"OpenAI — Ingénierie de prompts","Recommandations actuelles pour traiter les prompts de production comme du code applicatif, les versionner via le contrôle de source et couvrir les modifications par des tests et des contrôles d'évaluation.",{},{"id":1540,"data":1541,"type":1465,"tunes":1547},"src-openai-deprecations",{"link":1542,"meta":1543},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fdeprecations",{"image":1544,"title":1545,"description":1546},{"url":381},"OpenAI — Dépréciations","Preuves actuelles du cycle de vie du fournisseur montrant le retrait des modèles et des surfaces de plateforme comme une dépendance opérationnelle.",{},{"id":1549,"data":1550,"type":1465,"tunes":1556},"src-openai-promptfoo",{"link":1551,"meta":1552},"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fevaluation\u002Fmoving-from-openai-evals-to-promptfoo",{"image":1553,"title":1554,"description":1555},{"url":381},"OpenAI — Migration des flux de travail d'évaluation vers Promptfoo","Recommandations de migration actuelles de 2026 illustrant pourquoi les actifs d'évaluation doivent rester portables lorsque les outils du fournisseur changent.",{},"2.31","MLOps exploite les systèmes d'apprentissage automatique ; LLMOps étend ces pratiques aux prompts, au contexte, à la récupération, aux fournisseurs, aux outils, aux évaluations et au comportement d'exécution autour des grands modèles de langage.","\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":1566,"de":1567,"sr":1568,"es":1569,"fr":1570,"it":1571,"ru":1572,"zh":1573},"\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",[1575,1579,1583,1587],{"id":1576,"name":1577,"slug":1578},88,"Versioning (prompts, modèles)","versioning",{"id":1580,"name":1581,"slug":1582},91,"Monitoring (qualité, dérive)","monitoring",{"id":1584,"name":1585,"slug":1586},89,"Harnais d’évaluation","evaluation-harness",{"id":1588,"name":1589,"slug":1590},58,"Évaluation et garde-fous qualité","evaluation",{"id":1592,"login":1593,"email":1594,"displayName":1595},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[1597,2715],{"lang":1598,"title":1599,"content":1600,"contentJson":1601,"excerpt":2714},"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":1602,"blocks":1603,"version":2713},1791487321430,[1604,1608,1613,1618,1623,1628,1632,1636,1640,1644,1648,1652,1656,1660,1664,1668,1672,1676,1680,1709,1713,1717,1721,1725,1728,1760,1764,1768,1772,1776,1780,1829,1833,1837,1841,1845,1849,1853,1857,1861,1865,1869,1873,1877,1881,1885,1889,1893,1897,1901,1905,1909,1916,1920,1924,1928,1932,1937,1941,1945,1949,1953,1957,1961,1965,1969,1973,1977,1981,1985,1992,1996,2000,2004,2008,2012,2016,2020,2024,2028,2032,2036,2040,2044,2074,2078,2082,2086,2090,2094,2098,2102,2106,2110,2144,2148,2152,2156,2160,2164,2168,2172,2176,2180,2184,2188,2192,2196,2200,2204,2208,2212,2216,2220,2224,2228,2232,2236,2240,2244,2248,2279,2284,2288,2331,2335,2371,2375,2416,2420,2468,2472,2476,2480,2484,2488,2492,2496,2500,2504,2508,2512,2516,2520,2524,2531,2538,2542,2574,2578,2613,2616,2620,2624,2628,2632,2636,2643,2650,2657,2664,2671,2678,2685,2692,2699,2706],{"id":215,"data":1605,"type":218,"tunes":1607},{"text":1606},"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":1609,"type":226,"tunes":1612},{"body":1610,"title":1611,"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":1614,"type":226,"tunes":1617},{"body":1615,"title":1616,"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":1619,"type":226,"tunes":1622},{"body":1620,"title":1621,"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":1624,"type":226,"tunes":1627},{"body":1625,"title":1626,"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":1629,"type":254,"tunes":1631},{"title":1630,"maxLevel":252,"minLevel":253},"Contents",{},{"id":257,"data":1633,"type":42,"tunes":1635},{"text":1634,"level":253},"What MLOps really means",{},{"id":262,"data":1637,"type":218,"tunes":1639},{"text":1638},"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":1641,"type":218,"tunes":1643},{"text":1642},"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":1645,"type":218,"tunes":1647},{"text":1646},"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":1649,"type":42,"tunes":1651},{"text":1650,"level":253},"What changes when the model is an LLM",{},{"id":282,"data":1653,"type":218,"tunes":1655},{"text":1654},"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":1657,"type":218,"tunes":1659},{"text":1658},"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":1661,"type":218,"tunes":1663},{"text":1662},"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":1665,"type":42,"tunes":1667},{"text":1666,"level":253},"The simplest example",{},{"id":302,"data":1669,"type":218,"tunes":1671},{"text":1670},"Suppose an application answers internal policy questions.",{},{"id":307,"data":1673,"type":218,"tunes":1675},{"text":1674},"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":1677,"type":218,"tunes":1679},{"text":1678},"Changing any one of those components can change the final answer even though the application endpoint and user question stay identical.",{},{"id":317,"data":1681,"type":346,"tunes":1708},{"steps":1682,"title":1707,"orientation":345},[1683,1686,1689,1692,1695,1698,1701,1704],{"label":1684,"description":1685},"1. Change one component","Prompt, model, provider, retrieval setting, tool schema or application code changes.",{"label":1687,"description":1688},"2. Run deterministic tests","Validate schemas, permissions, tool contracts, retrieval filters and application behavior.",{"label":1690,"description":1691},"3. Run behavioral evals","Compare representative outputs, retrieval quality and agent\u002Ftool trajectories against acceptance criteria.",{"label":1693,"description":1694},"4. Compare cost and latency","Measure token use, model calls, retrieval\u002Ftool overhead and response latency.",{"label":1696,"description":1697},"5. Deploy controlled version","Ship the concrete application configuration with model\u002Fprovider versions recorded.",{"label":1699,"description":1700},"6. Trace production behavior","Capture relevant model, retrieval, tool and runtime spans.",{"label":1702,"description":1703},"7. Evaluate production traces","Sample real executions for quality, grounding, safety and task success.",{"label":1705,"description":1706},"8. Roll back or iterate","Use regression evidence and operational signals to decide the next release.","A typical LLMOps release path",{},{"id":349,"data":1710,"type":42,"tunes":1712},{"text":1711,"level":253},"Where the simple example stops",{},{"id":354,"data":1714,"type":218,"tunes":1716},{"text":1715},"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":1718,"type":218,"tunes":1720},{"text":1719},"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":1722,"type":218,"tunes":1724},{"text":1723},"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":1726,"type":42,"tunes":1727},{"text":371,"level":253},{},{"id":374,"data":1729,"type":419,"tunes":1759},{"rows":1730,"title":1755,"layout":411,"columns":1756},[1731,1734,1737,1740,1743,1746,1749,1752],{"id":378,"label":1732,"values":1733},"Primary operational unit",[381,381],{"id":383,"label":1735,"values":1736},"Model ownership",[381,381],{"id":387,"label":1738,"values":1739},"Typical change",[381,381],{"id":391,"label":1741,"values":1742},"Evaluation",[381,381],{"id":395,"label":1744,"values":1745},"Production monitoring",[381,381],{"id":399,"label":1747,"values":1748},"Continuous training",[381,381],{"id":403,"label":1750,"values":1751},"Versioned artifacts",[381,381],{"id":407,"label":1753,"values":1754},"Rollback target",[381,381],"What stays the same and what expands",[1757,1758],{"id":414,"label":415},{"id":417,"label":418},{},{"id":422,"data":1761,"type":42,"tunes":1763},{"text":1762,"level":253},"LLMOps extends MLOps rather than replacing it",{},{"id":427,"data":1765,"type":218,"tunes":1767},{"text":1766},"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":1769,"type":218,"tunes":1771},{"text":1770},"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":1773,"type":218,"tunes":1775},{"text":1774},"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":1777,"type":42,"tunes":1779},{"text":1778,"level":253},"What has to be versioned in LLMOps?",{},{"id":447,"data":1781,"type":411,"tunes":1828},{"content":1782,"stretched":43,"withHeadings":14},[1783,1786,1789,1792,1795,1798,1801,1804,1807,1810,1813,1816,1819,1822,1825],[1784,1785],"Artifact","Why it matters",[1787,1788],"Application code","Defines orchestration, validation, retries and business behavior",[1790,1791],"Model family + snapshot\u002Fversion","Different snapshots can produce different behavior",[1793,1794],"Provider \u002F endpoint","Changes data flow, latency, limits, pricing and availability",[1796,1797],"Prompt\u002Finstruction code","Changes model behavior even with same model",[1799,1800],"Generation\u002Freasoning parameters","Can alter determinism, latency, depth and cost",[1802,1803],"Eval dataset","Defines what “good enough” is tested against",[1805,1806],"Scorers \u002F graders","Define how quality is measured",[1808,1809],"Embedding model","Changes vector representation and retrieval behavior",[1811,1812],"Chunking\u002Findex configuration","Changes what can be retrieved",[1814,1815],"Reranker \u002F retrieval fusion","Changes result ordering",[1817,1818],"Tool schemas","Change what the model can request and how",[1820,1821],"Permission profile","Changes what tool actions may actually execute",[1823,1824],"Context assembly rules","Change what evidence and state reach the model",[1826,1827],"Safety\u002Fguardrail configuration","Changes allowed or blocked behavior",{},{"id":497,"data":1830,"type":42,"tunes":1832},{"text":1831,"level":253},"Model snapshots become release dependencies",{},{"id":502,"data":1834,"type":218,"tunes":1836},{"text":1835},"With hosted LLMs, the team may not control model training, but it still controls which model or snapshot the application calls.",{},{"id":507,"data":1838,"type":218,"tunes":1840},{"text":1839},"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":1842,"type":218,"tunes":1844},{"text":1843},"The operational consequence is straightforward: model upgrades should be treated as application releases, not invisible infrastructure maintenance.",{},{"id":517,"data":1846,"type":42,"tunes":1848},{"text":1847,"level":253},"Provider lifecycle becomes part of operations",{},{"id":522,"data":1850,"type":218,"tunes":1852},{"text":1851},"LLM applications often depend on provider rate limits, deprecation schedules, API semantics, context limits, data-handling rules and pricing.",{},{"id":527,"data":1854,"type":218,"tunes":1856},{"text":1855},"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":1858,"type":218,"tunes":1860},{"text":1859},"LLMOps therefore needs provider lifecycle tracking, migration testing and fallback decisions in addition to model-quality monitoring.",{},{"id":537,"data":1862,"type":42,"tunes":1864},{"text":1863,"level":253},"Prompts behave like production code",{},{"id":542,"data":1866,"type":218,"tunes":1868},{"text":1867},"Prompts are executable behavioral configuration. Small changes can alter output quality, tool selection and policy interpretation.",{},{"id":547,"data":1870,"type":218,"tunes":1872},{"text":1871},"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":1874,"type":218,"tunes":1876},{"text":1875},"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":1878,"type":42,"tunes":1880},{"text":1879,"level":253},"Context engineering becomes an operational concern",{},{"id":562,"data":1882,"type":218,"tunes":1884},{"text":1883},"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":1886,"type":218,"tunes":1888},{"text":1887},"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":1890,"type":218,"tunes":1892},{"text":1891},"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":1894,"type":42,"tunes":1896},{"text":1895,"level":253},"RAG creates its own operational lifecycle",{},{"id":582,"data":1898,"type":218,"tunes":1900},{"text":1899},"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":1902,"type":218,"tunes":1904},{"text":1903},"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":1906,"type":218,"tunes":1908},{"text":1907},"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":1910,"type":603,"tunes":1915},{"url":1911,"title":1912,"excerpt":1913,"ctaLabel":1914},"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":1917,"type":42,"tunes":1919},{"text":1918,"level":253},"Evals replace “looks good to me” with release evidence",{},{"id":611,"data":1921,"type":218,"tunes":1923},{"text":1922},"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":1925,"type":218,"tunes":1927},{"text":1926},"MLflow's current GenAI evaluation stack supports versioned evaluation datasets, prompt\u002Fmodel comparisons, custom scorers and evaluation over complete traces.",{},{"id":621,"data":1929,"type":218,"tunes":1931},{"text":1930},"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":1933,"type":226,"tunes":1936},{"body":1934,"title":1935,"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":1938,"type":42,"tunes":1940},{"text":1939,"level":253},"LLM-as-a-judge is useful but not ground truth",{},{"id":638,"data":1942,"type":218,"tunes":1944},{"text":1943},"LLM judges can scale evaluation for qualities that are expensive to encode as deterministic assertions, such as relevance, tone or groundedness.",{},{"id":643,"data":1946,"type":218,"tunes":1948},{"text":1947},"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":1950,"type":218,"tunes":1952},{"text":1951},"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":1954,"type":42,"tunes":1956},{"text":1955,"level":253},"Tracing becomes more important than endpoint logs",{},{"id":658,"data":1958,"type":218,"tunes":1960},{"text":1959},"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":1962,"type":218,"tunes":1964},{"text":1963},"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":1966,"type":218,"tunes":1968},{"text":1967},"This is a major LLMOps shift: observability follows the behavioral graph of the application, not only the serving endpoint.",{},{"id":673,"data":1970,"type":42,"tunes":1972},{"text":1971,"level":253},"Agents expand LLMOps into runtime operations",{},{"id":678,"data":1974,"type":218,"tunes":1976},{"text":1975},"An agentic application can perform several model calls, tool invocations and state transitions before producing a result.",{},{"id":683,"data":1978,"type":218,"tunes":1980},{"text":1979},"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":1982,"type":218,"tunes":1984},{"text":1983},"A correct final answer can hide a bad trajectory, so agent evaluation must inspect the path as well as the result.",{},{"id":693,"data":1986,"type":603,"tunes":1991},{"url":1987,"title":1988,"excerpt":1989,"ctaLabel":1990},"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":1993,"type":42,"tunes":1995},{"text":1994,"level":253},"Tokens, model calls and context become cost variables",{},{"id":706,"data":1997,"type":218,"tunes":1999},{"text":1998},"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":2001,"type":218,"tunes":2003},{"text":2002},"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":2005,"type":218,"tunes":2007},{"text":2006},"Latency behaves the same way: model latency, retrieval, reranking and external tools compose into end-to-end user latency.",{},{"id":721,"data":2009,"type":42,"tunes":2011},{"text":2010,"level":253},"Caching becomes semantic, not only technical",{},{"id":726,"data":2013,"type":218,"tunes":2015},{"text":2014},"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":2017,"type":218,"tunes":2019},{"text":2018},"A response cache that ignores model version, tenant, permissions or source freshness can return a technically valid but semantically invalid answer.",{},{"id":736,"data":2021,"type":218,"tunes":2023},{"text":2022},"LLMOps therefore treats cache invalidation as part of model\u002Fcontext\u002Fdata versioning rather than only infrastructure optimization.",{},{"id":741,"data":2025,"type":42,"tunes":2027},{"text":2026,"level":253},"Safety and permissions become release criteria",{},{"id":746,"data":2029,"type":218,"tunes":2031},{"text":2030},"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":2033,"type":218,"tunes":2035},{"text":2034},"Permission checks, prompt-injection tests, tenant-isolation tests and side-effect approvals should be reproducible regression tests where those risks exist.",{},{"id":756,"data":2037,"type":218,"tunes":2039},{"text":2038},"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":2041,"type":42,"tunes":2043},{"text":2042,"level":253},"What CI looks like in LLMOps",{},{"id":766,"data":2045,"type":411,"tunes":2073},{"content":2046,"stretched":43,"withHeadings":14},[2047,2050,2052,2054,2057,2059,2062,2064,2067,2070],[2048,2049],"CI layer","Example checks",[773,2051],"Unit tests, type checks, schema validation",[776,2053],"Template rendering, required variables, policy text, snapshot review",[2055,2056],"Models\u002Fproviders","Compatibility, output schema, capability and regression tests",[782,2058],"Chunking fixtures, filter tests, Recall@k, reranker regression",[2060,2061],"Tools","Input\u002Foutput schema tests, permission tests, idempotency tests",[788,2063],"Trajectory fixtures, loop limits, handoff\u002Ftool-selection tests",[2065,2066],"Security","Prompt injection, unauthorized tools, cross-tenant negative tests",[2068,2069],"Behavioral evals","Task success, correctness, grounding, safety, domain criteria",[2071,2072],"Operational","Latency, token\u002Fcost budgets, timeout\u002Ffallback behavior",{},{"id":801,"data":2075,"type":42,"tunes":2077},{"text":2076,"level":253},"What CD looks like in LLMOps",{},{"id":806,"data":2079,"type":218,"tunes":2081},{"text":2080},"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":2083,"type":218,"tunes":2085},{"text":2084},"The release bundle should therefore identify the complete behavior-defining configuration rather than only the application container image.",{},{"id":816,"data":2087,"type":218,"tunes":2089},{"text":2088},"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":2091,"type":42,"tunes":2093},{"text":2092,"level":253},"Continuous training becomes optional; continuous evaluation becomes central",{},{"id":826,"data":2095,"type":218,"tunes":2097},{"text":2096},"Traditional MLOps often emphasizes continuous training when new data or drift justifies retraining.",{},{"id":831,"data":2099,"type":218,"tunes":2101},{"text":2100},"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":2103,"type":218,"tunes":2105},{"text":2104},"Fine-tuning can reintroduce a training lifecycle, but it should sit inside the same broader evaluation and release process.",{},{"id":841,"data":2107,"type":42,"tunes":2109},{"text":2108,"level":253},"What should be monitored in production?",{},{"id":846,"data":2111,"type":411,"tunes":2143},{"content":2112,"stretched":43,"withHeadings":14},[2113,2116,2119,2122,2125,2128,2131,2133,2135,2137,2140],[2114,2115],"Signal class","Examples",[2117,2118],"System health","Errors, timeouts, endpoint availability",[2120,2121],"Model\u002Fprovider","Model ID, snapshot, rate limits, provider errors",[2123,2124],"Latency","End-to-end, model, retrieval, tool and reranker spans",[2126,2127],"Cost","Input\u002Foutput tokens, embeddings, tool\u002FAPI spend",[2129,2130],"Quality","Sampled task success, correctness, relevance, groundedness",[782,2132],"Retrieval recall proxies, empty retrieval, stale sources, citation coverage",[788,2134],"Tool selection, retries, loops, handoffs, approval frequency",[2065,2136],"Denied actions, prompt-injection indicators, tenant-boundary failures",[2138,2139],"User feedback","Corrections, abandonment, escalation, explicit ratings",[2141,2142],"Change drift","Provider\u002Fmodel\u002Fconfig changes relative to approved release",{},{"id":881,"data":2145,"type":42,"tunes":2147},{"text":2146,"level":253},"Production traces can become evaluation data",{},{"id":886,"data":2149,"type":218,"tunes":2151},{"text":2150},"One of the most useful modern LLMOps patterns is to turn sampled production traces into evaluation records.",{},{"id":891,"data":2153,"type":218,"tunes":2155},{"text":2154},"MLflow currently supports retrieving production traces and scoring not only outputs but intermediate spans such as retrieval or tool-call trajectories.",{},{"id":896,"data":2157,"type":218,"tunes":2159},{"text":2158},"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":2161,"type":42,"tunes":2163},{"text":2162,"level":253},"Reproducibility becomes conditional rather than exact",{},{"id":906,"data":2165,"type":218,"tunes":2167},{"text":2166},"Classical ML reproducibility often aims to recreate a model from versioned code, data, environment and training parameters.",{},{"id":911,"data":2169,"type":218,"tunes":2171},{"text":2170},"Hosted LLM applications cannot always reproduce identical output token-for-token because generation is probabilistic and providers may control infrastructure.",{},{"id":916,"data":2173,"type":218,"tunes":2175},{"text":2174},"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":2177,"type":42,"tunes":2179},{"text":2178,"level":253},"Lineage expands from model lineage to application lineage",{},{"id":926,"data":2181,"type":218,"tunes":2183},{"text":2182},"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":2185,"type":218,"tunes":2187},{"text":2186},"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":2189,"type":218,"tunes":2191},{"text":2190},"The target question becomes: Which exact application configuration produced this trace?",{},{"id":941,"data":2193,"type":42,"tunes":2195},{"text":2194,"level":253},"Multi-provider and model routing create operational policy",{},{"id":946,"data":2197,"type":218,"tunes":2199},{"text":2198},"Once an application can use several providers or local models, routing becomes an operational policy rather than a simple model string.",{},{"id":951,"data":2201,"type":218,"tunes":2203},{"text":2202},"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":2205,"type":218,"tunes":2207},{"text":2206},"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":2209,"type":42,"tunes":2211},{"text":2210,"level":253},"Original implementation evidence",{},{"id":966,"data":2213,"type":42,"tunes":2215},{"text":2214,"level":252},"Aaasaasa AI Client: provider, model and runtime are separate operational objects",{},{"id":971,"data":2217,"type":218,"tunes":2219},{"text":2218},"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":2221,"type":218,"tunes":2223},{"text":2222},"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":2225,"type":218,"tunes":2227},{"text":2226},"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":2229,"type":218,"tunes":2231},{"text":2230},"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":2233,"type":42,"tunes":2235},{"text":2234,"level":252},"Source of Truth Research Engine: LLM application state extends beyond the model",{},{"id":996,"data":2237,"type":218,"tunes":2239},{"text":2238},"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":2241,"type":218,"tunes":2243},{"text":2242},"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":2245,"type":218,"tunes":2247},{"text":2246},"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":2249,"type":411,"tunes":2278},{"content":2250,"stretched":43,"withHeadings":14},[2251,2254,2257,2260,2263,2266,2269,2272,2275],[2252,2253],"Observed implementation","LLMOps lesson",[2255,2256],"Multiple provider protocols","Provider identity is an operational dependency",[2258,2259],"Dynamic model discovery","Available models can change independently of application code",[2261,2262],"Ollama load\u002Funload controls","Local models have memory\u002Fresource lifecycle",[2264,2265],"Provider health\u002Fstatus adapters","Model availability needs runtime observability",[2267,2268],"Separate runtime and inference location","Deployment topology is not one boolean “local\u002Fcloud”",[2270,2271],"Central permissions","Model capability and tool authority must remain separate",[2273,2274],"Lexical + semantic retrieval pipeline","Retrieval configuration is part of application behavior",[2276,2277],"Source\u002Fprovenance persistence","Operational state and evidence live outside model weights",{},{"id":1043,"data":2280,"type":226,"tunes":2283},{"body":2281,"title":2282,"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":2285,"type":42,"tunes":2287},{"text":2286,"level":253},"Common LLMOps failure modes",{},{"id":1054,"data":2289,"type":411,"tunes":2330},{"content":2290,"stretched":43,"withHeadings":14},[2291,2294,2297,2300,2303,2306,2309,2312,2315,2318,2321,2324,2327],[2292,2293],"Failure mode","What actually went wrong",[2295,2296],"Model alias upgraded silently","Behavior changed without controlled release",[2298,2299],"Prompt changed without evals","Behavioral regression passed normal unit tests",[2301,2302],"RAG index stale","Generation model was blamed for retrieval\u002Fdata failure",[2304,2305],"Only final answer is logged","Root cause in retrieval\u002Ftool\u002Fcontext trajectory is invisible",[2307,2308],"Provider fallback is silent","Different model\u002Fdata path changes behavior without attribution",[2310,2311],"Token cost tracked globally","Expensive workflows cannot be localized",[2313,2314],"Judge model changed","Evaluation scores drift without application change",[2316,2317],"Production traces never become tests","Known failures repeatedly return",[2319,2320],"Local model stays loaded indefinitely","VRAM\u002Fresource pressure becomes operational instability",[2322,2323],"Permissions encoded only in prompt","Model behavior is mistaken for authorization",[2325,2326],"One eval score gates everything","Different quality dimensions are collapsed into a misleading number",[2328,2329],"Model registry exists but prompt\u002Findex versions do not","Application lineage remains incomplete",{},{"id":1098,"data":2332,"type":42,"tunes":2334},{"text":2333,"level":253},"Common misconceptions",{},{"id":1103,"data":2336,"type":411,"tunes":2370},{"content":2337,"stretched":43,"withHeadings":14},[2338,2340,2343,2346,2349,2352,2355,2358,2361,2364,2367],[2339,1108],"Misconception",[2341,2342],"“LLMOps replaces MLOps.”","LLMOps extends MLOps principles to LLM-specific application behavior.",[2344,2345],"“LLMOps is prompt engineering.”","Prompts are one artifact among models, providers, context, retrieval, tools, evals and runtime.",[2347,2348],"“Hosted APIs remove operations work.”","They remove some model-serving\u002Ftraining work but add provider lifecycle, version and dependency management.",[2350,2351],"“If the API is stable, the app is stable.”","Model behavior and provider\u002Fmodel snapshots can change independently of API schema.",[2353,2354],"“RAG is just data preprocessing.”","In production it has its own ingestion, index, retrieval and freshness lifecycle.",[2356,2357],"“LLM outputs cannot be tested.”","They can be evaluated with deterministic, reference, judge and human criteria.",[2359,2360],"“LLM judges are objective ground truth.”","They are model-based evaluators that also require calibration and version control.",[2362,2363],"“A local model eliminates LLMOps.”","Local serving adds model files, VRAM, load\u002Funload, runtime health and upgrade concerns.",[2365,2366],"“Observability means token counts.”","Useful observability follows prompts, retrievals, tools, model spans and outcomes.",[2368,2369],"“Continuous training is mandatory.”","Many LLM apps use continuous evaluation without training the foundation model.",{},{"id":1141,"data":2372,"type":42,"tunes":2374},{"text":2373,"level":253},"A practical LLMOps design sequence",{},{"id":1146,"data":2376,"type":346,"tunes":2415},{"steps":2377,"title":2414,"orientation":345},[2378,2381,2384,2387,2390,2393,2396,2399,2402,2405,2408,2411],{"label":2379,"description":2380},"1. Define the behavior unit","List every component that can materially change output: model, prompt, retrieval, tools, context and policy.",{"label":2382,"description":2383},"2. Establish application lineage","Version code, model\u002Fprovider, prompts, eval datasets, retrieval configuration and tool contracts.",{"label":2385,"description":2386},"3. Build representative eval datasets","Use expected success\u002Ffailure cases from design and production.",{"label":2388,"description":2389},"4. Separate deterministic and behavioral tests","Keep schema\u002Fsecurity assertions distinct from semantic output evaluation.",{"label":2391,"description":2392},"5. Trace end-to-end execution","Instrument model, retrieval, reranking, tools and agent\u002Fruntime spans.",{"label":2394,"description":2395},"6. Define release gates","Set quality, safety, latency and cost thresholds.",{"label":2397,"description":2398},"7. Pin or explicitly record model versions","Treat model\u002Fprovider changes as release events.",{"label":2400,"description":2401},"8. Deploy progressively","Use flags, canaries or staged rollout where consequence warrants it.",{"label":2403,"description":2404},"9. Evaluate production traces","Measure real task behavior and identify recurrent failures.",{"label":2406,"description":2407},"10. Feed failures back into eval datasets","Turn incidents and corrections into permanent regression coverage.",{"label":2409,"description":2410},"11. Monitor provider and data lifecycles","Track deprecations, index freshness, source changes and runtime availability.",{"label":2412,"description":2413},"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":2417,"type":42,"tunes":2419},{"text":2418,"level":253},"LLMOps architecture checklist",{},{"id":1193,"data":2421,"type":411,"tunes":2467},{"content":2422,"stretched":43,"withHeadings":14},[2423,2425,2428,2431,2434,2437,2440,2443,2446,2449,2452,2455,2458,2461,2464],[1197,2424],"Expected evidence",[2426,2427],"Which model\u002Fprovider\u002Fversion served the request?","Traceable model identity",[2429,2430],"Which prompt\u002Finstructions were active?","Versioned application code\u002Fconfig",[2432,2433],"Which context reached the model?","Context\u002Fretrieval trace",[2435,2436],"Which corpus\u002Findex version was used?","Retrieval lineage",[2438,2439],"Which tools were available and called?","Tool schema + trajectory trace",[2441,2442],"Which permissions applied?","Runtime authorization record",[2444,2445],"How is quality measured?","Versioned eval dataset + scorers",[2447,2448],"How are model upgrades tested?","Behavioral regression suite",[2450,2451],"How is production quality sampled?","Trace evaluation\u002Ffeedback process",[2453,2454],"Can one failure be reproduced approximately?","Model\u002Fcontext\u002Fprovider\u002Fapplication lineage",[2456,2457],"Where is cost spent?","Per-trace model\u002Ftool\u002Fretrieval attribution",[2459,2460],"What triggers rollback?","Defined quality\u002Fsafety\u002Fcost\u002Favailability threshold",[2462,2463],"How are provider deprecations handled?","Migration\u002Ffallback process",[2465,2466],"How are local models operated?","Health, resource, load\u002Funload and version controls",{},{"id":1243,"data":2469,"type":42,"tunes":2471},{"text":2470,"level":253},"Edge cases and limitations",{},{"id":1248,"data":2473,"type":218,"tunes":2475},{"text":2474},"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":2477,"type":218,"tunes":2479},{"text":2478},"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":2481,"type":218,"tunes":2483},{"text":2482},"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":2485,"type":218,"tunes":2487},{"text":2486},"A RAG-heavy system can be operationally dominated by document ingestion and retrieval quality rather than model serving.",{},{"id":1268,"data":2489,"type":218,"tunes":2491},{"text":2490},"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":2493,"type":42,"tunes":2495},{"text":2494,"level":253},"What would change this answer?",{},{"id":1278,"data":2497,"type":218,"tunes":2499},{"text":2498},"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":2501,"type":218,"tunes":2503},{"text":2502},"If applications increasingly own fine-tuning or training, classical MLOps concerns become more central again.",{},{"id":1288,"data":2505,"type":218,"tunes":2507},{"text":2506},"The operational principle would remain: every component that can materially change production behavior belongs in lineage, testing, observability and change control.",{},{"id":1293,"data":2509,"type":42,"tunes":2511},{"text":2510,"level":253},"Related canonical knowledge",{},{"id":1298,"data":2513,"type":218,"tunes":2515},{"text":2514},"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":2517,"type":218,"tunes":2519},{"text":2518},"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":2521,"type":218,"tunes":2523},{"text":2522},"Agentic AI extends LLMOps further into trajectory, permissions and tool-runtime operations.",{},{"id":1313,"data":2525,"type":603,"tunes":2530},{"url":2526,"title":2527,"excerpt":2528,"ctaLabel":2529},"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":2532,"type":603,"tunes":2537},{"url":2533,"title":2534,"excerpt":2535,"ctaLabel":2536},"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":2539,"type":42,"tunes":2541},{"text":2540,"level":253},"Frequently asked questions",{},{"id":1334,"data":2543,"type":1334,"tunes":2573},{"items":2544,"title":2572},[2545,2548,2551,2554,2557,2560,2563,2566,2569],{"id":1338,"answer":2546,"question":2547},"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":2549,"question":2550},"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":2552,"question":2553},"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":2555,"question":2556},"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":2558,"question":2559},"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":1357,"answer":2561,"question":2562},"No. The same prompt can behave differently with another model, retrieval set, context order, tool surface or provider.","Is prompt versioning enough?",{"id":1361,"answer":2564,"question":2565},"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":1365,"answer":2567,"question":2568},"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":1369,"answer":2570,"question":2571},"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":1375,"data":2575,"type":42,"tunes":2577},{"text":2576,"level":253},"Glossary",{},{"id":1380,"data":2579,"type":1380,"tunes":2612},{"title":2580,"entries":2581},"Key MLOps and LLMOps terms",[2582,2584,2586,2588,2590,2593,2596,2599,2601,2603,2606,2609],{"term":415,"anchor":414,"definition":2583},"Engineering practices for building, deploying, monitoring and maintaining machine-learning systems and their data\u002Fmodel lifecycle.",{"term":418,"anchor":417,"definition":2585},"Operational practices for production applications whose behavior materially depends on large language models and surrounding prompts, context, retrieval, tools and runtime.",{"term":1389,"anchor":1390,"definition":2587},"Operational discipline for generative-AI applications; often used as a broader or alternate label for LLMOps.",{"term":1747,"anchor":1393,"definition":2589},"Automated or repeated retraining and serving of ML models as data or implementations change.",{"term":2591,"anchor":1397,"definition":2592},"Continuous evaluation","Repeated evaluation of candidate and production AI behavior against versioned datasets and criteria.",{"term":2594,"anchor":1401,"definition":2595},"Model snapshot","A concrete version of a hosted or packaged model whose behavior can be tested and referenced.",{"term":2597,"anchor":1405,"definition":2598},"Application lineage","Traceable relationship among code, model\u002Fprovider, prompts, data\u002Fretrieval, tools, runtime and release configuration.",{"term":1408,"anchor":1409,"definition":2600},"Structured record of one application execution containing spans such as model calls, retrievals and tool operations.",{"term":1802,"anchor":1412,"definition":2602},"Versioned set of representative inputs, expectations and optionally traces\u002Foutputs used to measure behavior.",{"term":2604,"anchor":1416,"definition":2605},"LLM judge","A language model used as an evaluator for qualitative or semantic criteria; it is itself a versioned evaluation dependency.",{"term":2607,"anchor":1420,"definition":2608},"Behavioral regression","A degradation in application output or trajectory despite interfaces and code continuing to execute successfully.",{"term":2610,"anchor":1424,"definition":2611},"Provider routing","Policy for selecting among available model providers\u002Fendpoints according to capability, cost, latency, privacy or availability.",{},{"id":1428,"data":2614,"type":42,"tunes":2615},{"text":1430,"level":253},{},{"id":1433,"data":2617,"type":218,"tunes":2619},{"text":2618},"MLOps and LLMOps share the same engineering objective: make AI systems reproducible enough, testable enough and observable enough to operate reliably in production.",{},{"id":1438,"data":2621,"type":218,"tunes":2623},{"text":2622},"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":1443,"data":2625,"type":218,"tunes":2627},{"text":2626},"The shortest useful rule is: version, evaluate and observe everything that can materially change the LLM application's behavior — not only the model.",{},{"id":1448,"data":2629,"type":42,"tunes":2631},{"text":2630,"level":253},"Primary sources and current documentation",{},{"id":1453,"data":2633,"type":218,"tunes":2635},{"text":2634},"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":1458,"data":2637,"type":1465,"tunes":2642},{"link":1460,"meta":2638},{"image":2639,"title":2640,"description":2641},{"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":1468,"data":2644,"type":1465,"tunes":2649},{"link":1470,"meta":2645},{"image":2646,"title":2647,"description":2648},{"url":381},"AWS Machine Learning Lens — Model lineage","Current guidance for tracking code, data, models, environments and infrastructure across ML releases.",{},{"id":1477,"data":2651,"type":1465,"tunes":2656},{"link":1479,"meta":2652},{"image":2653,"title":2654,"description":2655},{"url":381},"AWS Machine Learning Lens — Model observability and tracking","Current guidance for production model monitoring, drift, endpoint health and lineage.",{},{"id":1486,"data":2658,"type":1465,"tunes":2663},{"link":1488,"meta":2659},{"image":2660,"title":2661,"description":2662},{"url":381},"Microsoft Azure — GenAIOps \u002F LLMOps lifecycle","Official guidance describing GenAIOps, sometimes called LLMOps, across initialization, experimentation, evaluation\u002Frefinement and deployment.",{},{"id":1495,"data":2665,"type":1465,"tunes":2670},{"link":1497,"meta":2666},{"image":2667,"title":2668,"description":2669},{"url":381},"MLflow — Agents and LLM applications","Current GenAI operations documentation covering tracing, evaluation, prompts and production observability for LLM applications and agents.",{},{"id":1504,"data":2672,"type":1465,"tunes":2677},{"link":1506,"meta":2673},{"image":2674,"title":2675,"description":2676},{"url":381},"MLflow — Evaluating production traces","Current guidance for evaluating complete LLM\u002Fagent traces, including retrieval and tool-call trajectories.",{},{"id":1513,"data":2679,"type":1465,"tunes":2684},{"link":1515,"meta":2680},{"image":2681,"title":2682,"description":2683},{"url":381},"MLflow — Evaluating prompts","Current prompt\u002Fmodel evaluation workflow using versioned prompts, datasets, scorers and traces.",{},{"id":1522,"data":2686,"type":1465,"tunes":2691},{"link":1524,"meta":2687},{"image":2688,"title":2689,"description":2690},{"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":1531,"data":2693,"type":1465,"tunes":2698},{"link":1533,"meta":2694},{"image":2695,"title":2696,"description":2697},{"url":381},"OpenAI — Prompting","Current guidance to treat production prompts as application code, version them through source control and cover changes with tests and evaluation checks.",{},{"id":1540,"data":2700,"type":1465,"tunes":2705},{"link":1542,"meta":2701},{"image":2702,"title":2703,"description":2704},{"url":381},"OpenAI — Deprecations","Current provider lifecycle evidence showing model and platform-surface retirement as an operational dependency.",{},{"id":1549,"data":2707,"type":1465,"tunes":2712},{"link":1551,"meta":2708},{"image":2709,"title":2710,"description":2711},{"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":2716,"excerpt":1558},{"time":212,"blocks":2717,"version":1557},[2718,2721,2724,2727,2730,2733,2736,2739,2742,2745,2748,2751,2754,2757,2760,2763,2766,2769,2772,2784,2787,2790,2793,2796,2799,2822,2825,2828,2831,2834,2837,2856,2859,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,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3068,3071,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,3159,3162,3165,3182,3185,3200,3203,3219,3222,3241,3244,3247,3250,3253,3256,3259,3262,3265,3268,3271,3274,3277,3280,3283,3286,3289,3292,3305,3308,3324,3327,3330,3333,3336,3339,3342,3347,3352,3357,3362,3367,3372,3377,3382,3387,3392],{"id":215,"data":2719,"type":218,"tunes":2720},{"text":217},{},{"id":221,"data":2722,"type":226,"tunes":2723},{"body":223,"title":224,"variant":225},{},{"id":229,"data":2725,"type":226,"tunes":2726},{"body":231,"title":232,"variant":233},{},{"id":236,"data":2728,"type":226,"tunes":2729},{"body":238,"title":239,"variant":240},{},{"id":243,"data":2731,"type":226,"tunes":2732},{"body":245,"title":246,"variant":240},{},{"id":249,"data":2734,"type":254,"tunes":2735},{"title":251,"maxLevel":252,"minLevel":253},{},{"id":257,"data":2737,"type":42,"tunes":2738},{"text":259,"level":253},{},{"id":262,"data":2740,"type":218,"tunes":2741},{"text":264},{},{"id":267,"data":2743,"type":218,"tunes":2744},{"text":269},{},{"id":272,"data":2746,"type":218,"tunes":2747},{"text":274},{},{"id":277,"data":2749,"type":42,"tunes":2750},{"text":279,"level":253},{},{"id":282,"data":2752,"type":218,"tunes":2753},{"text":284},{},{"id":287,"data":2755,"type":218,"tunes":2756},{"text":289},{},{"id":292,"data":2758,"type":218,"tunes":2759},{"text":294},{},{"id":297,"data":2761,"type":42,"tunes":2762},{"text":299,"level":253},{},{"id":302,"data":2764,"type":218,"tunes":2765},{"text":304},{},{"id":307,"data":2767,"type":218,"tunes":2768},{"text":309},{},{"id":312,"data":2770,"type":218,"tunes":2771},{"text":314},{},{"id":317,"data":2773,"type":346,"tunes":2783},{"steps":2774,"title":344,"orientation":345},[2775,2776,2777,2778,2779,2780,2781,2782],{"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":2785,"type":42,"tunes":2786},{"text":351,"level":253},{},{"id":354,"data":2788,"type":218,"tunes":2789},{"text":356},{},{"id":359,"data":2791,"type":218,"tunes":2792},{"text":361},{},{"id":364,"data":2794,"type":218,"tunes":2795},{"text":366},{},{"id":369,"data":2797,"type":42,"tunes":2798},{"text":371,"level":253},{},{"id":374,"data":2800,"type":419,"tunes":2821},{"rows":2801,"title":410,"layout":411,"columns":2818},[2802,2804,2806,2808,2810,2812,2814,2816],{"id":378,"label":379,"values":2803},[381,381],{"id":383,"label":384,"values":2805},[381,381],{"id":387,"label":388,"values":2807},[381,381],{"id":391,"label":392,"values":2809},[381,381],{"id":395,"label":396,"values":2811},[381,381],{"id":399,"label":400,"values":2813},[381,381],{"id":403,"label":404,"values":2815},[381,381],{"id":407,"label":408,"values":2817},[381,381],[2819,2820],{"id":414,"label":415},{"id":417,"label":418},{},{"id":422,"data":2823,"type":42,"tunes":2824},{"text":424,"level":253},{},{"id":427,"data":2826,"type":218,"tunes":2827},{"text":429},{},{"id":432,"data":2829,"type":218,"tunes":2830},{"text":434},{},{"id":437,"data":2832,"type":218,"tunes":2833},{"text":439},{},{"id":442,"data":2835,"type":42,"tunes":2836},{"text":444,"level":253},{},{"id":447,"data":2838,"type":411,"tunes":2855},{"content":2839,"stretched":43,"withHeadings":14},[2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854],[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":2857,"type":42,"tunes":2858},{"text":499,"level":253},{},{"id":502,"data":2860,"type":218,"tunes":2861},{"text":504},{},{"id":507,"data":2863,"type":218,"tunes":2864},{"text":509},{},{"id":512,"data":2866,"type":218,"tunes":2867},{"text":514},{},{"id":517,"data":2869,"type":42,"tunes":2870},{"text":519,"level":253},{},{"id":522,"data":2872,"type":218,"tunes":2873},{"text":524},{},{"id":527,"data":2875,"type":218,"tunes":2876},{"text":529},{},{"id":532,"data":2878,"type":218,"tunes":2879},{"text":534},{},{"id":537,"data":2881,"type":42,"tunes":2882},{"text":539,"level":253},{},{"id":542,"data":2884,"type":218,"tunes":2885},{"text":544},{},{"id":547,"data":2887,"type":218,"tunes":2888},{"text":549},{},{"id":552,"data":2890,"type":218,"tunes":2891},{"text":554},{},{"id":557,"data":2893,"type":42,"tunes":2894},{"text":559,"level":253},{},{"id":562,"data":2896,"type":218,"tunes":2897},{"text":564},{},{"id":567,"data":2899,"type":218,"tunes":2900},{"text":569},{},{"id":572,"data":2902,"type":218,"tunes":2903},{"text":574},{},{"id":577,"data":2905,"type":42,"tunes":2906},{"text":579,"level":253},{},{"id":582,"data":2908,"type":218,"tunes":2909},{"text":584},{},{"id":587,"data":2911,"type":218,"tunes":2912},{"text":589},{},{"id":592,"data":2914,"type":218,"tunes":2915},{"text":594},{},{"id":597,"data":2917,"type":603,"tunes":2918},{"url":599,"title":600,"excerpt":601,"ctaLabel":602},{},{"id":606,"data":2920,"type":42,"tunes":2921},{"text":608,"level":253},{},{"id":611,"data":2923,"type":218,"tunes":2924},{"text":613},{},{"id":616,"data":2926,"type":218,"tunes":2927},{"text":618},{},{"id":621,"data":2929,"type":218,"tunes":2930},{"text":623},{},{"id":626,"data":2932,"type":226,"tunes":2933},{"body":628,"title":629,"variant":630},{},{"id":633,"data":2935,"type":42,"tunes":2936},{"text":635,"level":253},{},{"id":638,"data":2938,"type":218,"tunes":2939},{"text":640},{},{"id":643,"data":2941,"type":218,"tunes":2942},{"text":645},{},{"id":648,"data":2944,"type":218,"tunes":2945},{"text":650},{},{"id":653,"data":2947,"type":42,"tunes":2948},{"text":655,"level":253},{},{"id":658,"data":2950,"type":218,"tunes":2951},{"text":660},{},{"id":663,"data":2953,"type":218,"tunes":2954},{"text":665},{},{"id":668,"data":2956,"type":218,"tunes":2957},{"text":670},{},{"id":673,"data":2959,"type":42,"tunes":2960},{"text":675,"level":253},{},{"id":678,"data":2962,"type":218,"tunes":2963},{"text":680},{},{"id":683,"data":2965,"type":218,"tunes":2966},{"text":685},{},{"id":688,"data":2968,"type":218,"tunes":2969},{"text":690},{},{"id":693,"data":2971,"type":603,"tunes":2972},{"url":695,"title":696,"excerpt":697,"ctaLabel":698},{},{"id":701,"data":2974,"type":42,"tunes":2975},{"text":703,"level":253},{},{"id":706,"data":2977,"type":218,"tunes":2978},{"text":708},{},{"id":711,"data":2980,"type":218,"tunes":2981},{"text":713},{},{"id":716,"data":2983,"type":218,"tunes":2984},{"text":718},{},{"id":721,"data":2986,"type":42,"tunes":2987},{"text":723,"level":253},{},{"id":726,"data":2989,"type":218,"tunes":2990},{"text":728},{},{"id":731,"data":2992,"type":218,"tunes":2993},{"text":733},{},{"id":736,"data":2995,"type":218,"tunes":2996},{"text":738},{},{"id":741,"data":2998,"type":42,"tunes":2999},{"text":743,"level":253},{},{"id":746,"data":3001,"type":218,"tunes":3002},{"text":748},{},{"id":751,"data":3004,"type":218,"tunes":3005},{"text":753},{},{"id":756,"data":3007,"type":218,"tunes":3008},{"text":758},{},{"id":761,"data":3010,"type":42,"tunes":3011},{"text":763,"level":253},{},{"id":766,"data":3013,"type":411,"tunes":3025},{"content":3014,"stretched":43,"withHeadings":14},[3015,3016,3017,3018,3019,3020,3021,3022,3023,3024],[770,771],[773,774],[776,777],[779,780],[782,783],[785,786],[788,789],[791,792],[794,795],[797,798],{},{"id":801,"data":3027,"type":42,"tunes":3028},{"text":803,"level":253},{},{"id":806,"data":3030,"type":218,"tunes":3031},{"text":808},{},{"id":811,"data":3033,"type":218,"tunes":3034},{"text":813},{},{"id":816,"data":3036,"type":218,"tunes":3037},{"text":818},{},{"id":821,"data":3039,"type":42,"tunes":3040},{"text":823,"level":253},{},{"id":826,"data":3042,"type":218,"tunes":3043},{"text":828},{},{"id":831,"data":3045,"type":218,"tunes":3046},{"text":833},{},{"id":836,"data":3048,"type":218,"tunes":3049},{"text":838},{},{"id":841,"data":3051,"type":42,"tunes":3052},{"text":843,"level":253},{},{"id":846,"data":3054,"type":411,"tunes":3067},{"content":3055,"stretched":43,"withHeadings":14},[3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066],[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":3069,"type":42,"tunes":3070},{"text":883,"level":253},{},{"id":886,"data":3072,"type":218,"tunes":3073},{"text":888},{},{"id":891,"data":3075,"type":218,"tunes":3076},{"text":893},{},{"id":896,"data":3078,"type":218,"tunes":3079},{"text":898},{},{"id":901,"data":3081,"type":42,"tunes":3082},{"text":903,"level":253},{},{"id":906,"data":3084,"type":218,"tunes":3085},{"text":908},{},{"id":911,"data":3087,"type":218,"tunes":3088},{"text":913},{},{"id":916,"data":3090,"type":218,"tunes":3091},{"text":918},{},{"id":921,"data":3093,"type":42,"tunes":3094},{"text":923,"level":253},{},{"id":926,"data":3096,"type":218,"tunes":3097},{"text":928},{},{"id":931,"data":3099,"type":218,"tunes":3100},{"text":933},{},{"id":936,"data":3102,"type":218,"tunes":3103},{"text":938},{},{"id":941,"data":3105,"type":42,"tunes":3106},{"text":943,"level":253},{},{"id":946,"data":3108,"type":218,"tunes":3109},{"text":948},{},{"id":951,"data":3111,"type":218,"tunes":3112},{"text":953},{},{"id":956,"data":3114,"type":218,"tunes":3115},{"text":958},{},{"id":961,"data":3117,"type":42,"tunes":3118},{"text":963,"level":253},{},{"id":966,"data":3120,"type":42,"tunes":3121},{"text":968,"level":252},{},{"id":971,"data":3123,"type":218,"tunes":3124},{"text":973},{},{"id":976,"data":3126,"type":218,"tunes":3127},{"text":978},{},{"id":981,"data":3129,"type":218,"tunes":3130},{"text":983},{},{"id":986,"data":3132,"type":218,"tunes":3133},{"text":988},{},{"id":991,"data":3135,"type":42,"tunes":3136},{"text":993,"level":252},{},{"id":996,"data":3138,"type":218,"tunes":3139},{"text":998},{},{"id":1001,"data":3141,"type":218,"tunes":3142},{"text":1003},{},{"id":1006,"data":3144,"type":218,"tunes":3145},{"text":1008},{},{"id":1011,"data":3147,"type":411,"tunes":3158},{"content":3148,"stretched":43,"withHeadings":14},[3149,3150,3151,3152,3153,3154,3155,3156,3157],[1015,1016],[1018,1019],[1021,1022],[1024,1025],[1027,1028],[1030,1031],[1033,1034],[1036,1037],[1039,1040],{},{"id":1043,"data":3160,"type":226,"tunes":3161},{"body":1045,"title":1046,"variant":240},{},{"id":1049,"data":3163,"type":42,"tunes":3164},{"text":1051,"level":253},{},{"id":1054,"data":3166,"type":411,"tunes":3181},{"content":3167,"stretched":43,"withHeadings":14},[3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180],[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":3183,"type":42,"tunes":3184},{"text":1100,"level":253},{},{"id":1103,"data":3186,"type":411,"tunes":3199},{"content":3187,"stretched":43,"withHeadings":14},[3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198],[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":3201,"type":42,"tunes":3202},{"text":1143,"level":253},{},{"id":1146,"data":3204,"type":346,"tunes":3218},{"steps":3205,"title":1185,"orientation":345},[3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217],{"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":3220,"type":42,"tunes":3221},{"text":1190,"level":253},{},{"id":1193,"data":3223,"type":411,"tunes":3240},{"content":3224,"stretched":43,"withHeadings":14},[3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239],[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":3242,"type":42,"tunes":3243},{"text":1245,"level":253},{},{"id":1248,"data":3245,"type":218,"tunes":3246},{"text":1250},{},{"id":1253,"data":3248,"type":218,"tunes":3249},{"text":1255},{},{"id":1258,"data":3251,"type":218,"tunes":3252},{"text":1260},{},{"id":1263,"data":3254,"type":218,"tunes":3255},{"text":1265},{},{"id":1268,"data":3257,"type":218,"tunes":3258},{"text":1270},{},{"id":1273,"data":3260,"type":42,"tunes":3261},{"text":1275,"level":253},{},{"id":1278,"data":3263,"type":218,"tunes":3264},{"text":1280},{},{"id":1283,"data":3266,"type":218,"tunes":3267},{"text":1285},{},{"id":1288,"data":3269,"type":218,"tunes":3270},{"text":1290},{},{"id":1293,"data":3272,"type":42,"tunes":3273},{"text":1295,"level":253},{},{"id":1298,"data":3275,"type":218,"tunes":3276},{"text":1300},{},{"id":1303,"data":3278,"type":218,"tunes":3279},{"text":1305},{},{"id":1308,"data":3281,"type":218,"tunes":3282},{"text":1310},{},{"id":1313,"data":3284,"type":603,"tunes":3285},{"url":1315,"title":1316,"excerpt":1317,"ctaLabel":1318},{},{"id":1321,"data":3287,"type":603,"tunes":3288},{"url":1323,"title":1324,"excerpt":1325,"ctaLabel":1326},{},{"id":1329,"data":3290,"type":42,"tunes":3291},{"text":1331,"level":253},{},{"id":1334,"data":3293,"type":1334,"tunes":3304},{"items":3294,"title":1372},[3295,3296,3297,3298,3299,3300,3301,3302,3303],{"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":444},{"id":1357,"answer":1358,"question":1359},{"id":1361,"answer":1362,"question":1363},{"id":1365,"answer":1366,"question":1367},{"id":1369,"answer":1370,"question":1371},{},{"id":1375,"data":3306,"type":42,"tunes":3307},{"text":1377,"level":253},{},{"id":1380,"data":3309,"type":1380,"tunes":3323},{"title":1382,"entries":3310},[3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322],{"term":415,"anchor":414,"definition":1385},{"term":418,"anchor":417,"definition":1387},{"term":1389,"anchor":1390,"definition":1391},{"term":400,"anchor":1393,"definition":1394},{"term":1396,"anchor":1397,"definition":1398},{"term":1400,"anchor":1401,"definition":1402},{"term":1404,"anchor":1405,"definition":1406},{"term":1408,"anchor":1409,"definition":1410},{"term":469,"anchor":1412,"definition":1413},{"term":1415,"anchor":1416,"definition":1417},{"term":1419,"anchor":1420,"definition":1421},{"term":1423,"anchor":1424,"definition":1425},{},{"id":1428,"data":3325,"type":42,"tunes":3326},{"text":1430,"level":253},{},{"id":1433,"data":3328,"type":218,"tunes":3329},{"text":1435},{},{"id":1438,"data":3331,"type":218,"tunes":3332},{"text":1440},{},{"id":1443,"data":3334,"type":218,"tunes":3335},{"text":1445},{},{"id":1448,"data":3337,"type":42,"tunes":3338},{"text":1450,"level":253},{},{"id":1453,"data":3340,"type":218,"tunes":3341},{"text":1455},{},{"id":1458,"data":3343,"type":1465,"tunes":3346},{"link":1460,"meta":3344},{"image":3345,"title":1463,"description":1464},{"url":381},{},{"id":1468,"data":3348,"type":1465,"tunes":3351},{"link":1470,"meta":3349},{"image":3350,"title":1473,"description":1474},{"url":381},{},{"id":1477,"data":3353,"type":1465,"tunes":3356},{"link":1479,"meta":3354},{"image":3355,"title":1482,"description":1483},{"url":381},{},{"id":1486,"data":3358,"type":1465,"tunes":3361},{"link":1488,"meta":3359},{"image":3360,"title":1491,"description":1492},{"url":381},{},{"id":1495,"data":3363,"type":1465,"tunes":3366},{"link":1497,"meta":3364},{"image":3365,"title":1500,"description":1501},{"url":381},{},{"id":1504,"data":3368,"type":1465,"tunes":3371},{"link":1506,"meta":3369},{"image":3370,"title":1509,"description":1510},{"url":381},{},{"id":1513,"data":3373,"type":1465,"tunes":3376},{"link":1515,"meta":3374},{"image":3375,"title":1518,"description":1519},{"url":381},{},{"id":1522,"data":3378,"type":1465,"tunes":3381},{"link":1524,"meta":3379},{"image":3380,"title":1527,"description":1528},{"url":381},{},{"id":1531,"data":3383,"type":1465,"tunes":3386},{"link":1533,"meta":3384},{"image":3385,"title":1536,"description":1537},{"url":381},{},{"id":1540,"data":3388,"type":1465,"tunes":3391},{"link":1542,"meta":3389},{"image":3390,"title":1545,"description":1546},{"url":381},{},{"id":1549,"data":3393,"type":1465,"tunes":3396},{"link":1551,"meta":3394},{"image":3395,"title":1554,"description":1555},{"url":381},{},"Post erfolgreich abgerufen",{"items":3399,"source":3479,"manualIds":3480,"manualMatchedIds":3481},[3400,3405,3411,3417,3424,3431,3438,3445,3452,3459,3466,3473],{"id":3401,"slug":3402,"title":3402,"excerpt":10,"featuredImage":3403,"publishedAt":3404},"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":3406,"slug":3407,"title":696,"excerpt":3408,"featuredImage":3409,"publishedAt":3410},"460","ai-agent-reliability-why-the-final-answer-is-not-enough","Une sortie correcte ne prouve pas un raisonnement correct, une exécution sûre ou un système digne de confiance.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-reliability-why-the-final-answer-is-not-enough-1788955466306-pl0qhz.webp","2026-09-09T04:01:00.000Z",{"id":3412,"slug":1586,"title":3413,"excerpt":3414,"featuredImage":3415,"publishedAt":3416},"434","Guide complet d'Evaluation Harness : Maîtriser l'évaluation des performances des LLM","Ce guide propose une présentation détaillée d'Evaluation Harness, un framework essentiel pour évaluer rigoureusement les capacités des grands modèles de langage (LLM) dans les pipelines LLMOps d'entreprise. Découvrez la configuration, les meilleures pratiques et les techniques avancées pour garantir un benchmarking et une optimisation fiables des modèles.","\u002Fuploads\u002F2026\u002F04\u002Fevaluation-harness-1775466944495-4s0xv2.webp","2026-03-01T17:50:00.000Z",{"id":3418,"slug":3419,"title":3420,"excerpt":3421,"featuredImage":3422,"publishedAt":3423},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama n'est pas le produit : construire des applications Open-LLM prêtes pour la production","Exécuter un modèle local avec Ollama est facile. Construire une application Open-LLM prête pour la production est plus difficile : cela nécessite du RAG, du contrôle d'accès, de l'abstraction de fournisseur, de l'évaluation, de la journalisation, de la discipline de déploiement et une couche applicative contrôlée autour du modèle.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":3425,"slug":3426,"title":3427,"excerpt":3428,"featuredImage":3429,"publishedAt":3430},"480","when-should-an-ai-stop-trusting-its-own-knowledge-the-retrieval-trigger","Quand une IA devrait-elle cesser de faire confiance à ses propres connaissances ? — Le déclencheur de récupération","Un modèle d'IA n'a pas besoin de récupération pour chaque question. Le problème important est de savoir quand ses connaissances internes ne suffisent plus. Le Déclencheur de Récupération est une frontière de décision pratique qui détermine quand un système d'IA devrait cesser de se fier uniquement aux connaissances du modèle et obtenir des preuves externes avant de répondre.","\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":3432,"slug":3433,"title":3434,"excerpt":3435,"featuredImage":3436,"publishedAt":3437},"384","new-qwen-3-5-plus","Nouveau Qwen 3.5-Plus : l'IA open-source passe aux choses sérieuses","Découvrez les fonctionnalités et avantages révolutionnaires de Qwen 3.5-Plus d'Alibaba, une IA open-source qui change la donne pour les développeurs.","\u002Fuploads\u002F2026\u002F02\u002Fnew-qwen-3-5-plus-1771515512741-dcbi9p.webp","2026-02-19T10:23:00.000Z",{"id":3439,"slug":3440,"title":3441,"excerpt":3442,"featuredImage":3443,"publishedAt":3444},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Maîtriser le flux de travail SEO : Stratégies d'optimisation essentielles pour la croissance organique","Un flux de travail SEO structuré est crucial pour une croissance organique durable. Découvrez les dix stratégies fondamentales, de la recherche de mots-clés et l'optimisation technique à la qualité du contenu et l'analyse des performances.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z",{"id":3446,"slug":3447,"title":3448,"excerpt":3449,"featuredImage":3450,"publishedAt":3451},"488","what-is-context-engineering-what-the-model-receives-before-it-answers","Qu’est-ce que l’ingénierie du contexte ? Ce que le modèle reçoit avant de répondre","L'ingénierie de contexte conçoit les informations qu'un modèle d'IA reçoit avant l'inférence, y compris les invites, la récupération, la mémoire, l'état de l'application, les résultats d'outils et l'historique des conversations.","\u002Fuploads\u002F2026\u002F10\u002Fwhat-is-context-engineering-what-the-model-receives-before-it-answers-1791480653258-018kcv.webp","2026-10-08T13:29:00.000Z",{"id":3453,"slug":3454,"title":3455,"excerpt":3456,"featuredImage":3457,"publishedAt":3458},"469","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","Échec du RAG — mais quelle couche a réellement échoué ? Une méthode de diagnostic","Lorsqu'une réponse RAG est erronée, blâmer la récupération ou le modèle est trop vague. Cette méthode de diagnostic isole la couverture des sources, la construction de la requête, la récupération, le classement, l'assemblage du contexte, la génération, l'attribution des preuves et la fraîcheur—afin que la défaillance réelle puisse être reproduite et corrigée.","\u002Fuploads\u002F2026\u002F09\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c.webp","2026-09-24T19:39:00.000Z",{"id":3460,"slug":3461,"title":3462,"excerpt":3463,"featuredImage":3464,"publishedAt":3465},"479","where-does-an-llm-get-its-data-rag-data-sources-in-python","D'où un LLM tire-t-il ses données ? Sources de données RAG en Python","Un LLM ne connaît pas magiquement vos fichiers, bases de données ou API. Cette suite pratique de la série sur le RAG montre, avec du Python simple, comment des données externes deviennent des preuves récupérables : des fichiers texte et du SQL à la recherche en texte intégral, aux embeddings, à l'assemblage du contexte et à l'appel final au 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":3467,"slug":3468,"title":3469,"excerpt":3470,"featuredImage":3471,"publishedAt":3472},"475","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","Harnais d'agent géré vs boucle d'agent auto-hébergée : ce que vous gagnez, ce que vous perdez","“Agent auto-hébergé” peut désigner des architectures très différentes. Ce guide distingue le harnais géré, l'environnement d'exécution auto-hébergé et la boucle d'agent entièrement auto-opérée—et montre de quelle frontière de contrôle les équipes ont réellement besoin.","\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":3474,"slug":3475,"title":3476,"excerpt":3477,"featuredImage":3436,"publishedAt":3478},"445","qwen-3-6-in-production-release-runbook-ai-rollback-and-llmops-versioning","Qwen 3.6 en production : Runbook de déploiement, Rollback IA et Versionnage LLMOps","Qwen 3.6 n'est pas seulement une autre mise à jour de modèle. C'est à la fois un événement de déploiement, un scénario de rollback et un problème de versionnage. Cet article explique comment Qwen 3.6 doit être géré en production à travers la discipline LLMOps, la traçabilité des prompts et des modèles, le déploiement contrôlé et une préparation au rollback basée sur des preuves.","2026-05-04T02:49:00.000Z","fallback",[],[]]