[{"data":1,"prerenderedAt":714},["ShallowReactive",2],{"/fr-fr/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale/":3,"navigation-fr-fr":41,"banner-fr-fr":460,"footer-fr-fr":473,"Susie Bitters":685,"next-steps-fr-fr":699},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":30,"_id":34,"_type":35,"title":36,"_source":37,"_file":38,"_stem":39,"_extension":40},"/fr-fr/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale","blog",false,"",{"ogTitle":9,"schema":10,"ogImage":11,"ogDescription":12,"ogSiteName":13,"noIndex":6,"ogType":14,"ogUrl":15,"title":9,"canonicalUrls":15,"description":12},"GitLab Duo : validation et tests des modèles d'IA","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Développement de GitLab Duo : comment nous validons et testons les modèles d'IA à grande échelle\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Susie Bitters\"}],\n        \"datePublished\": \"2024-05-09\",\n      }","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659856/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25.png","Découvrez comment nous évaluons les LLM, les adaptons à des cas d'utilisation et les affinons pour fournir de meilleures réponses aux utilisateurs. ","https://about.gitlab.com","article","https://about.gitlab.com/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",{"title":17,"description":18,"authors":19,"heroImage":11,"date":21,"body":22,"category":23,"tags":24},"GitLab Duo : comment nous validons et testons les modèles d'IA à grande échelle","Notre série d’articles de blog débute avec un aperçu de la façon dont nous évaluons les grands modèles de langage (LLM), les adaptons à des cas d'utilisation et les affinons pour fournir de meilleures réponses aux utilisateurs.",[20],"Susie Bitters","2024-05-09","***L'[IA générative](https://about.gitlab.com/fr-fr/topics/agentic-ai/ \"Qu'est-ce que l'IA générative ?\") marque une avancée majeure dans le domaine du développement logiciel, simplifiant le processus de développement, de sécurisation et d'exploitation des logiciels. Notre nouvelle série d’articles de blog, rédigée par nos équipes produit et ingénierie, vous propose un aperçu de notre processus de création, de test et de déploiement des fonctionnalités d'IA que vous avez besoin d'intégrer dans l'ensemble de l'entreprise. Explorez les nouvelles capacités de GitLab Duo et découvrez comment elles aideront les équipes [DevSecOps](https://about.gitlab.com/fr-fr/topics/devsecops/ \"Qu'est-ce que le DevSecOps?\") à livrer de meilleurs résultats aux clients.***\n\nGitLab attache une grande importance à la confiance que nos clients nous accordent. Maintenir cette confiance implique une transparence dans la manière dont nous concevons, évaluons et garantissons la qualité des fonctionnalités d'IA de [GitLab Duo](https://about.gitlab.com/fr-fr/gitlab-duo/ \"GitLab Duo\"). Les fonctionnalités de GitLab Duo reposent sur un ensemble diversifié de modèles, ce qui nous permet de prendre en charge une multitude de cas d'utilisation et apporte de la flexibilité à nos clients. GitLab n'est pas lié à un seul fournisseur de modèles. Nous utilisons actuellement les modèles de fondation de [Google](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/ai_gateway/models/vertex_text.py?ref_type=heads#L86) et [Anthropic](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/ai_gateway/models/anthropic.py?ref_type=heads#L62). Néanmoins, nous procédons continuellement à l'évaluation des modèles les plus adaptés aux cas d'utilisation de GitLab Duo. Dans cet article, nous vous présentons un aperçu de notre processus de validation des modèles d'IA.\n\n> [Essayez GitLab Duo gratuitement](https://about.gitlab.com/fr-fr/gitlab-duo/#free-trial \"Essai gratuit de GitLab Duo\") dès aujourd'hui !\n\n## Comprendre les grands modèles de langage (LLM)\n\nLes [grands modèles de langage (LLM)](https://about.gitlab.com/fr-fr/blog/large-language-model/ \"Qu'est-ce qu'un grand modèle de langage ?\") sont des modèles d'IA générative qui alimentent de nombreuses fonctionnalités d'IA sur l'ensemble de la plateforme. Entraînés sur de vastes ensembles de données, les LLM prédisent le mot suivant dans une séquence en fonction du contexte précédent. Sur la base d'un prompt, ils génèrent un texte semblable à celui d’un être humain en échantillonnant à partir de la distribution de probabilité des mots conditionnée par le prompt.\n\nLes LLM permettent des suggestions de code intelligentes, des chatbots conversationnels, des explications de code, des analyses de vulnérabilités et bien plus encore. Leur capacité à produire des résultats variés pour un prompt donné rend difficile l'évaluation standardisée de la qualité. Les LLM peuvent être optimisés pour différentes caractéristiques. C'est la raison pour laquelle tant de modèles d'IA sont en cours de développement.\n\n## Tester à grande échelle\n\nContrairement aux systèmes logiciels traditionnels où les entrées et les sorties peuvent être plus facilement définies et testées, les LLM produisent des résultats souvent nuancés, diversifiés et dépendants du contexte. Tester ces modèles nécessite des stratégies complètes qui tiennent compte des interprétations subjectives et variables de la qualité, ainsi que de la nature stochastique de leurs résultats. Nous ne pouvons donc pas juger de la qualité du résultat d'un LLM de manière individuelle ou anecdotique ; nous devons plutôt être capables d'examiner le schéma global du comportement d'un LLM. Pour avoir une idée de ces schémas, nous devons réaliser des tests à grande échelle. Les tests à grande échelle font référence au processus d'évaluation des performances, de la fiabilité et de la robustesse d'un système ou d'une application sur un large éventail de données et de cas d'utilisation. Notre [Framework d'évaluation centralisé (CEF)](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/) utilise des milliers de prompts liés à des dizaines de cas d'utilisation pour nous permettre d'identifier des schémas significatifs et d'évaluer le comportement global de nos modèles LLM de fondation et des fonctionnalités GitLab Duo dans lesquelles ils sont intégrés.\n\nLes tests à grande échelle nous aident à :\n\n* **Garantir la qualité :** les tests à grande échelle nous permettent d'évaluer la qualité et la fiabilité de ces modèles sur un large éventail de scénarios et d’entrées. En validant les résultats de ces modèles à grande échelle, nous pouvons commencer à identifier des schémas et à atténuer les problèmes potentiels tels que les biais systématiques, les anomalies et les inexactitudes.\n* **Optimiser les performances :** la mise à l'échelle des efforts de test permet à GitLab d'évaluer les performances et l'efficacité des LLM dans des conditions réelles. Cela comprend l'évaluation de facteurs tels que la qualité du résultat, la latence et le coût pour optimiser le déploiement et l'exploitation de ces modèles dans les fonctionnalités de GitLab Duo.\n* **Atténuer les risques :** tester les LLM à grande échelle contribue à atténuer les risques associés à leur déploiement dans des applications critiques. En effectuant des tests approfondis sur divers ensembles de données et cas d'utilisation, nous pouvons identifier et résoudre les défaillances potentielles, les vulnérabilités de sécurité et les considérations éthiques avant qu'ils n'affectent nos clients.\n\nTester les LLM à grande échelle est impératif pour garantir leur fiabilité et leur robustesse en vue de leur déploiement au sein de la [plateforme DevSecOps de GitLab](https://about.gitlab.com/fr-fr/platform/ \"Plateforme DevSecOps de GitLab\"). En investissant dans des stratégies de test complètes qui englobent divers ensembles de données, cas d'utilisation et scénarios, GitLab s'efforce de libérer tout le potentiel des workflows alimentés par l'IA tout en atténuant les risques potentiels.\n\n### Comment nous testons à grande échelle\n\nVoici les étapes que nous suivons pour tester les LLM à grande échelle.\n\n#### Étape 1 : Créer une bibliothèque de prompts comme proxy pour la production\n\nAlors que d'autres entreprises consultent et utilisent les données clients pour entraîner leurs fonctionnalités d'IA, GitLab ne procède actuellement pas de la sorte. En conséquence, nous avons dû développer une bibliothèque de prompts complète qui sert de proxy à la fois pour la mise à l'échelle et pour l'activité de production.\n\nCette bibliothèque de prompts est composée de questions et de réponses. Les questions représentent les types de requêtes ou d'entrées que nous nous attendons à voir en production, tandis que les réponses représentent une vérité terrain de ce que serait notre réponse idéale. Cette réponse de référence pourrait également être considérée mentalement comme une réponse cible. La question tout comme la réponse peuvent être générées par des humains, mais ne le sont pas nécessairement. Ces paires de questions/réponses nous offrent une base de comparaison et un cadre de référence qui nous permettent de faire ressortir les différences entre les modèles et les fonctionnalités. Lorsque l'on pose la même question à plusieurs modèles et qu'ils génèrent des réponses différentes, nous pouvons utiliser notre réponse de référence pour déterminer quel modèle a fourni une réponse qui est le plus étroitement alignée avec notre cible et les noter en conséquence.\n\nUne fois de plus, il est essentiel qu'une bibliothèque de prompts complète soit représentative des entrées que nous prévoyons de rencontrer en production. Nous voulons savoir dans quelle mesure les modèles de fondation s'adaptent à notre cas d'utilisation spécifique et dans quelle mesure nos fonctionnalités sont performantes. Il existe de nombreux ensembles de données de prompts de référence, mais ceux-ci peuvent ne pas correspondre aux cas d'utilisation que nous envisageons pour les fonctionnalités chez GitLab. Notre bibliothèque de prompts, en revanche, est conçue pour être spécifique aux fonctionnalités et aux cas d'utilisation de GitLab.\n\n#### Étape 2 : Performance du modèle de référence\n\nUne fois que nous avons créé une bibliothèque de prompts qui reflète avec précision l'activité de production, nous intégrons ces questions dans [différents modèles](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/foundation_models/) pour tester dans quelle mesure ils répondent aux besoins de nos clients. Nous comparons chaque réponse à notre vérité terrain et lui attribuons un classement basé sur une série de métriques, incluant : le [score de similarité cosinus](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#similarity-scores), le [score de similarité croisée](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#cross-similarity-score), le [juge LLM](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#llm-judge) et le [filtrage de consensus avec un juge LLM](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#consensus-filtering-with-llm-judge). Cette première itération nous fournit une base de référence pour évaluer la performance de chaque modèle et guide notre sélection d'un modèle de fondation pour nos fonctionnalités. Par souci de brièveté, nous n'entrerons pas dans les détails ici, mais nous vous encourageons à en savoir plus sur ces métriques [en consultant notre page AI Evaluation Metrics](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/). Il est important de noter que ce n'est pas un problème résolu ; l'industrie de l'IA au sens large mène activement des recherches et développe de nouvelles techniques. L'équipe de validation des modèles de GitLab reste à l'affût des actualités de ce secteur et itère continuellement sur la façon dont nous mesurons et évaluons les LLM que GitLab Duo utilise.\n\n#### Étape 3 : Développer des fonctionnalités\n\nMaintenant que nous disposons d'une base de référence pour les performances du modèle que nous avons sélectionné, nous pouvons commencer à développer nos fonctionnalités en toute confiance. Bien que l'ingénierie des prompts suscite beaucoup d'enthousiasme, se concentrer uniquement sur le changement du comportement d'un modèle via le prompting (ou toute autre technique) sans validation signifie que vous opérez à l'aveugle et que vous surajustez très probablement vos prompts. Vous pourriez résoudre un problème, mais en causer une dizaine d'autres sans le savoir. La création d'une base de référence pour évaluer les performances d'un modèle nous permet de suivre l'évolution du comportement au fil du temps pour tous les cas d'utilisation dont nous avons besoin. Chez GitLab, nous revalidons quotidiennement les performances de nos fonctionnalités pendant le développement actif pour nous assurer que toutes les modifications améliorent la fonctionnalité globale.\n\n#### Étape 4 : Itérer encore et encore\n\nVoici comment fonctionnent nos itérations expérimentales. À chaque cycle, nous examinons les scores de nos tests à grande échelle pour identifier des schémas :\n\n* Quels sont les points communs entre les domaines les moins performants de notre fonctionnalité ?\n* Notre fonctionnalité se comporte-t-elle mal en fonction d'une métrique spécifique ou d'un cas d'utilisation particulier ?\n* Observons-nous des erreurs récurrentes qui apparaissent en réponse à un certain type de question ?\n\nLes schémas de ce type ne commencent à émerger que lorsque nous effectuons des tests à grande échelle, ce qui nous permet de cibler nos versions expérimentales. Sur la base de ces schémas, nous proposons une variété de fonctionnalités expérimentales ou d'approches pour essayer d'améliorer les performances dans un domaine spécifique et sur une métrique spécifique.\n\nCependant, les tests à grande échelle sont à la fois coûteux et chronophages. Pour permettre une itération plus rapide et moins coûteuse, nous concevons un ensemble de données à plus petite échelle qui agira comme un mini-proxy. Le sous-ensemble ciblé sera pondéré pour inclure les paires de questions/réponses que nous souhaitons améliorer, et le sous-ensemble plus large comprendra également un échantillonnage de tous les autres cas d'utilisation et scores pour nous assurer que nos modifications n'affectent pas négativement la fonctionnalité de manière générale. Le but sera d'effectuer la modification et de l'exécuter sur le sous-ensemble de données ciblé et d'observer comment la nouvelle réponse se compare à la base de référence et comment elle se compare à la vérité terrain.\n\nUne fois que nous avons trouvé un prompt qui répond au cas d'utilisation spécifique sur lequel nous travaillons avec le sous-ensemble ciblé, nous validons ce prompt par rapport à un sous-ensemble de données plus large afin de nous assurer qu'il n'affecte pas négativement d'autres aspects de la fonctionnalité. Ce n'est que lorsque nous pensons que le nouveau prompt améliore nos performances dans notre domaine cible grâce aux métriques de validation ET qu'il ne dégrade pas les performances ailleurs, que nous poussons cette modification en production.\n\nL'ensemble du framework d'évaluation centralisé est ensuite exécuté avec le nouveau prompt et nous validons qu'il a augmenté les performances de l'ensemble de la fonctionnalité par rapport à la base de référence de la veille. C'est ainsi que GitLab itère constamment afin de s'assurer que vous tirez parti des meilleures et des plus récentes performances des fonctionnalités alimentées par l'IA dans l'écosystème GitLab. Cette approche nous permet de nous assurer que nous continuons à travailler plus rapidement, ensemble.\n\n### Rendre GitLab Duo encore meilleur\n\nNous espérons que cet article vous donnera un aperçu de la façon dont nous développons de manière responsable les fonctionnalités de GitLab Duo. Ce processus a été développé alors que nous avons mis les [suggestions de code GitLab Duo](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/) et le [GitLab Duo Chat](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html) en phase de disponibilité générale. Nous avons également intégré ce processus de validation dans notre processus de développement lorsque nous itérons sur les fonctionnalités de GitLab Duo. Il faut beaucoup de tâtonnements, et il arrive souvent qu'en corrigeant un élément, on en détériore trois autres. Mais nous disposons d’informations basées sur les données concernant ces impacts, ce qui nous aide à nous assurer que GitLab Duo s'améliore constamment.\n\n> [Essayez GitLab Duo gratuitement](https://about.gitlab.com/fr-fr/gitlab-duo/#free-trial \"Essai gratuit de GitLab Duo\") dès aujourd'hui !\n\n\u003Cfigure class=video_container>\n\u003Ciframe width=560 height=315 src=\"https://www.youtube-nocookie.com/embed/LifJdU3Qagw?si=A4kl6d32wPYC4168\" title=\"YouTube video player\" frameborder=0 allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen=\"\">\u003C/iframe>\n\u003C/figure>","ai-ml",[25,26,27,28,29],"AI/ML","DevSecOps","DevSecOps platform","features","inside GitLab",{"slug":31,"featured":32,"template":33},"developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",true,"BlogPost","content:fr-fr:blog:developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale.yml","yaml","Developing Gitlab Duo How We Validate And Test Ai Models At Scale","content","fr-fr/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale.yml","fr-fr/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale","yml",{"_path":42,"_dir":43,"_draft":6,"_partial":6,"_locale":7,"data":44,"_id":456,"_type":35,"title":457,"_source":37,"_file":458,"_stem":459,"_extension":40},"/shared/fr-fr/main-navigation","fr-fr",{"logo":45,"freeTrial":50,"sales":55,"login":60,"items":65,"search":397,"minimal":433,"duo":447},{"config":46},{"href":47,"dataGaName":48,"dataGaLocation":49},"/fr-fr/","gitlab logo","header",{"text":51,"config":52},"Commencer un essai gratuit",{"href":53,"dataGaName":54,"dataGaLocation":49},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":56,"config":57},"Contacter l'équipe commerciale",{"href":58,"dataGaName":59,"dataGaLocation":49},"/fr-fr/sales/","sales",{"text":61,"config":62},"Connexion",{"href":63,"dataGaName":64,"dataGaLocation":49},"https://gitlab.com/users/sign_in/","sign in",[66,110,208,213,318,378],{"text":67,"config":68,"cards":70,"footer":93},"Plateforme",{"dataNavLevelOne":69},"platform",[71,77,85],{"title":67,"description":72,"link":73},"La plateforme DevSecOps alimentée par l'IA la plus complète",{"text":74,"config":75},"Découvrir notre plateforme",{"href":76,"dataGaName":69,"dataGaLocation":49},"/fr-fr/platform/",{"title":78,"description":79,"link":80},"GitLab Duo (IA)","Créez des logiciels plus rapidement en tirant parti de l'IA à chaque étape du développement",{"text":81,"config":82},"Découvrez GitLab Duo",{"href":83,"dataGaName":84,"dataGaLocation":49},"/fr-fr/gitlab-duo/","gitlab duo ai",{"title":86,"description":87,"link":88},"Choisir GitLab","10 raisons pour lesquelles les entreprises choisissent GitLab",{"text":89,"config":90},"En savoir plus",{"href":91,"dataGaName":92,"dataGaLocation":49},"/fr-fr/why-gitlab/","why gitlab",{"title":94,"items":95},"Démarrer avec",[96,101,106],{"text":97,"config":98},"Ingénierie de plateforme",{"href":99,"dataGaName":100,"dataGaLocation":49},"/fr-fr/solutions/platform-engineering/","platform engineering",{"text":102,"config":103},"Expérience développeur",{"href":104,"dataGaName":105,"dataGaLocation":49},"/fr-fr/developer-experience/","Developer experience",{"text":107,"config":108},"MLOps",{"href":109,"dataGaName":107,"dataGaLocation":49},"/fr-fr/topics/devops/the-role-of-ai-in-devops/",{"text":111,"left":32,"config":112,"link":114,"lists":118,"footer":190},"Produit",{"dataNavLevelOne":113},"solutions",{"text":115,"config":116},"Voir toutes les solutions",{"href":117,"dataGaName":113,"dataGaLocation":49},"/fr-fr/solutions/",[119,145,168],{"title":120,"description":121,"link":122,"items":127},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":123},{"icon":124,"href":125,"dataGaName":126,"dataGaLocation":49},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[128,132,136,141],{"text":129,"config":130},"CI/CD",{"href":131,"dataGaLocation":49,"dataGaName":129},"/fr-fr/solutions/continuous-integration/",{"text":133,"config":134},"Développement assisté par l'IA",{"href":83,"dataGaLocation":49,"dataGaName":135},"AI assisted development",{"text":137,"config":138},"Gestion du code source",{"href":139,"dataGaLocation":49,"dataGaName":140},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":142,"config":143},"Livraison de logiciels automatisée",{"href":125,"dataGaLocation":49,"dataGaName":144},"Automated software delivery",{"title":146,"description":147,"link":148,"items":153},"Securité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":149},{"href":150,"dataGaName":151,"dataGaLocation":49,"icon":152},"/fr-fr/solutions/security-compliance/","security and compliance","ShieldCheckLight",[154,159,164],{"text":155,"config":156},"Application Security Testing",{"href":157,"dataGaName":158,"dataGaLocation":49},"/solutions/application-security-testing/","Application security testing",{"text":160,"config":161},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":162,"dataGaLocation":49,"dataGaName":163},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":165,"config":166},"Software Compliance",{"href":167,"dataGaName":165,"dataGaLocation":49},"/solutions/software-compliance/",{"title":169,"link":170,"items":175},"Mesures",{"config":171},{"icon":172,"href":173,"dataGaName":174,"dataGaLocation":49},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[176,180,185],{"text":177,"config":178},"Visibilité et mesures",{"href":173,"dataGaLocation":49,"dataGaName":179},"Visibility and Measurement",{"text":181,"config":182},"Gestion de la chaîne de valeur",{"href":183,"dataGaLocation":49,"dataGaName":184},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":186,"config":187},"Données d'analyse et informations clés",{"href":188,"dataGaLocation":49,"dataGaName":189},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":191,"items":192},"GitLab pour",[193,198,203],{"text":194,"config":195},"Entreprises",{"href":196,"dataGaLocation":49,"dataGaName":197},"/fr-fr/enterprise/","enterprise",{"text":199,"config":200},"PME",{"href":201,"dataGaLocation":49,"dataGaName":202},"/fr-fr/small-business/","small business",{"text":204,"config":205},"Secteur public",{"href":206,"dataGaLocation":49,"dataGaName":207},"/fr-fr/solutions/public-sector/","public sector",{"text":209,"config":210},"Tarifs",{"href":211,"dataGaName":212,"dataGaLocation":49,"dataNavLevelOne":212},"/fr-fr/pricing/","pricing",{"text":214,"config":215,"link":217,"lists":221,"feature":305},"Ressources",{"dataNavLevelOne":216},"resources",{"text":218,"config":219},"Afficher toutes les ressources",{"href":220,"dataGaName":216,"dataGaLocation":49},"/fr-fr/resources/",[222,255,277],{"title":223,"items":224},"Premiers pas",[225,230,235,240,245,250],{"text":226,"config":227},"Installation",{"href":228,"dataGaName":229,"dataGaLocation":49},"/fr-fr/install/","install",{"text":231,"config":232},"Guides de démarrage rapide",{"href":233,"dataGaName":234,"dataGaLocation":49},"/fr-fr/get-started/","quick setup checklists",{"text":236,"config":237},"Apprentissage",{"href":238,"dataGaLocation":49,"dataGaName":239},"https://university.gitlab.com/","learn",{"text":241,"config":242},"Documentation sur le produit",{"href":243,"dataGaName":244,"dataGaLocation":49},"https://docs.gitlab.com/","product documentation",{"text":246,"config":247},"Vidéos sur les bonnes pratiques",{"href":248,"dataGaName":249,"dataGaLocation":49},"/fr-fr/getting-started-videos/","best practice videos",{"text":251,"config":252},"Intégrations",{"href":253,"dataGaName":254,"dataGaLocation":49},"/fr-fr/integrations/","integrations",{"title":256,"items":257},"Découvrir",[258,263,267,272],{"text":259,"config":260},"Histoires de succès client",{"href":261,"dataGaName":262,"dataGaLocation":49},"/fr-fr/customers/","customer success stories",{"text":264,"config":265},"Blog",{"href":266,"dataGaName":5,"dataGaLocation":49},"/fr-fr/blog/",{"text":268,"config":269},"Travail à distance",{"href":270,"dataGaName":271,"dataGaLocation":49},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":273,"config":274},"TeamOps",{"href":275,"dataGaName":276,"dataGaLocation":49},"/fr-fr/teamops/","teamops",{"title":278,"items":279},"Connecter",[280,285,290,295,300],{"text":281,"config":282},"Services GitLab",{"href":283,"dataGaName":284,"dataGaLocation":49},"/fr-fr/services/","services",{"text":286,"config":287},"Communauté",{"href":288,"dataGaName":289,"dataGaLocation":49},"/community/","community",{"text":291,"config":292},"Forum",{"href":293,"dataGaName":294,"dataGaLocation":49},"https://forum.gitlab.com/","forum",{"text":296,"config":297},"Événements",{"href":298,"dataGaName":299,"dataGaLocation":49},"/events/","events",{"text":301,"config":302},"Partenaires",{"href":303,"dataGaName":304,"dataGaLocation":49},"/fr-fr/partners/","partners",{"backgroundColor":306,"textColor":307,"text":308,"image":309,"link":313},"#2f2a6b","#fff","L'avenir du développement logiciel. Tendances et perspectives.",{"altText":310,"config":311},"carte promo The Source",{"src":312},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":314,"config":315},"Lire les articles les plus récents",{"href":316,"dataGaName":317,"dataGaLocation":49},"/fr-fr/the-source/","the source",{"text":319,"config":320,"lists":322},"Société",{"dataNavLevelOne":321},"company",[323],{"items":324},[325,330,336,338,343,348,353,358,363,368,373],{"text":326,"config":327},"À propos",{"href":328,"dataGaName":329,"dataGaLocation":49},"/fr-fr/company/","about",{"text":331,"config":332,"footerGa":335},"Emplois",{"href":333,"dataGaName":334,"dataGaLocation":49},"/jobs/","jobs",{"dataGaName":334},{"text":296,"config":337},{"href":298,"dataGaName":299,"dataGaLocation":49},{"text":339,"config":340},"Leadership",{"href":341,"dataGaName":342,"dataGaLocation":49},"/company/team/e-group/","leadership",{"text":344,"config":345},"Équipe",{"href":346,"dataGaName":347,"dataGaLocation":49},"/company/team/","team",{"text":349,"config":350},"Manuel",{"href":351,"dataGaName":352,"dataGaLocation":49},"https://handbook.gitlab.com/","handbook",{"text":354,"config":355},"Relations avec les investisseurs",{"href":356,"dataGaName":357,"dataGaLocation":49},"https://ir.gitlab.com/","investor relations",{"text":359,"config":360},"Centre de confiance",{"href":361,"dataGaName":362,"dataGaLocation":49},"/fr-fr/security/","trust center",{"text":364,"config":365},"Centre pour la transparence de l'IA",{"href":366,"dataGaName":367,"dataGaLocation":49},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":369,"config":370},"Newsletter",{"href":371,"dataGaName":372,"dataGaLocation":49},"/company/contact/","newsletter",{"text":374,"config":375},"Presse",{"href":376,"dataGaName":377,"dataGaLocation":49},"/press/","press",{"text":379,"config":380,"lists":381},"Nous contacter",{"dataNavLevelOne":321},[382],{"items":383},[384,387,392],{"text":56,"config":385},{"href":58,"dataGaName":386,"dataGaLocation":49},"talk to sales",{"text":388,"config":389},"Aide",{"href":390,"dataGaName":391,"dataGaLocation":49},"/support/","get help",{"text":393,"config":394},"Portail clients GitLab",{"href":395,"dataGaName":396,"dataGaLocation":49},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":398,"login":399,"suggestions":406},"Fermer",{"text":400,"link":401},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":402,"config":403},"gitlab.com",{"href":63,"dataGaName":404,"dataGaLocation":405},"search login","search",{"text":407,"default":408},"Suggestions",[409,412,417,419,424,429],{"text":78,"config":410},{"href":83,"dataGaName":411,"dataGaLocation":405},"GitLab Duo (AI)",{"text":413,"config":414},"Suggestions de code (IA)",{"href":415,"dataGaName":416,"dataGaLocation":405},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":129,"config":418},{"href":131,"dataGaName":129,"dataGaLocation":405},{"text":420,"config":421},"GitLab sur AWS",{"href":422,"dataGaName":423,"dataGaLocation":405},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":425,"config":426},"GitLab sur Google Cloud ",{"href":427,"dataGaName":428,"dataGaLocation":405},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":430,"config":431},"Pourquoi utiliser GitLab ?",{"href":91,"dataGaName":432,"dataGaLocation":405},"Why GitLab?",{"freeTrial":434,"mobileIcon":439,"desktopIcon":444},{"text":435,"config":436},"Commencer votre essai gratuit",{"href":437,"dataGaName":54,"dataGaLocation":438},"https://gitlab.com/-/trials/new/","nav",{"altText":440,"config":441},"Icône GitLab",{"src":442,"dataGaName":443,"dataGaLocation":438},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":440,"config":445},{"src":446,"dataGaName":443,"dataGaLocation":438},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":448,"mobileIcon":452,"desktopIcon":454},{"text":449,"config":450},"En savoir plus sur GitLab Duo",{"href":83,"dataGaName":451,"dataGaLocation":438},"gitlab duo",{"altText":440,"config":453},{"src":442,"dataGaName":443,"dataGaLocation":438},{"altText":440,"config":455},{"src":446,"dataGaName":443,"dataGaLocation":438},"content:shared:fr-fr:main-navigation.yml","Main Navigation","shared/fr-fr/main-navigation.yml","shared/fr-fr/main-navigation",{"_path":461,"_dir":43,"_draft":6,"_partial":6,"_locale":7,"title":462,"titleMobile":462,"button":463,"config":468,"_id":470,"_type":35,"_source":37,"_file":471,"_stem":472,"_extension":40},"/shared/fr-fr/banner","La plateforme GitLab Duo Agent est maintenant disponible en version bêta publique !",{"text":464,"config":465},"Essayer la version bêta",{"href":466,"dataGaName":467,"dataGaLocation":49},"/fr-fr/gitlab-duo/agent-platform/","duo banner",{"layout":469},"release","content:shared:fr-fr:banner.yml","shared/fr-fr/banner.yml","shared/fr-fr/banner",{"_path":474,"_dir":43,"_draft":6,"_partial":6,"_locale":7,"data":475,"_id":681,"_type":35,"title":682,"_source":37,"_file":683,"_stem":684,"_extension":40},"/shared/fr-fr/main-footer",{"text":476,"source":477,"edit":483,"contribute":488,"config":493,"items":498,"minimal":672},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence",{"text":478,"config":479},"Afficher le code source de la page",{"href":480,"dataGaName":481,"dataGaLocation":482},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":484,"config":485},"Modifier cette page",{"href":486,"dataGaName":487,"dataGaLocation":482},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":489,"config":490},"Veuillez contribuer",{"href":491,"dataGaName":492,"dataGaLocation":482},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":494,"facebook":495,"youtube":496,"linkedin":497},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[499,522,576,609,643],{"title":67,"links":500,"subMenu":505},[501],{"text":502,"config":503},"Plateforme DevSecOps",{"href":76,"dataGaName":504,"dataGaLocation":482},"devsecops platform",[506],{"title":209,"links":507},[508,512,517],{"text":509,"config":510},"Voir les forfaits",{"href":211,"dataGaName":511,"dataGaLocation":482},"view plans",{"text":513,"config":514},"Pourquoi choisir GitLab Premium ?",{"href":515,"dataGaName":516,"dataGaLocation":482},"/fr-fr/pricing/premium/","why premium",{"text":518,"config":519},"Pourquoi choisir GitLab Ultimate ?",{"href":520,"dataGaName":521,"dataGaLocation":482},"/fr-fr/pricing/ultimate/","why ultimate",{"title":523,"links":524},"Solutions",[525,530,533,535,540,545,549,552,555,560,562,564,566,571],{"text":526,"config":527},"Transformation digitale",{"href":528,"dataGaName":529,"dataGaLocation":482},"/fr-fr/topics/digital-transformation/","digital transformation",{"text":531,"config":532},"Sécurité et conformité",{"href":157,"dataGaName":158,"dataGaLocation":482},{"text":142,"config":534},{"href":125,"dataGaName":126,"dataGaLocation":482},{"text":536,"config":537},"Développement agile",{"href":538,"dataGaName":539,"dataGaLocation":482},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":541,"config":542},"Transformation cloud",{"href":543,"dataGaName":544,"dataGaLocation":482},"/fr-fr/topics/cloud-native/","cloud transformation",{"text":546,"config":547},"SCM",{"href":139,"dataGaName":548,"dataGaLocation":482},"source code management",{"text":129,"config":550},{"href":131,"dataGaName":551,"dataGaLocation":482},"continuous integration & delivery",{"text":181,"config":553},{"href":183,"dataGaName":554,"dataGaLocation":482},"value stream management",{"text":556,"config":557},"GitOps",{"href":558,"dataGaName":559,"dataGaLocation":482},"/fr-fr/solutions/gitops/","gitops",{"text":194,"config":561},{"href":196,"dataGaName":197,"dataGaLocation":482},{"text":199,"config":563},{"href":201,"dataGaName":202,"dataGaLocation":482},{"text":204,"config":565},{"href":206,"dataGaName":207,"dataGaLocation":482},{"text":567,"config":568},"Formation",{"href":569,"dataGaName":570,"dataGaLocation":482},"/fr-fr/solutions/education/","education",{"text":572,"config":573},"Services financiers",{"href":574,"dataGaName":575,"dataGaLocation":482},"/fr-fr/solutions/finance/","financial services",{"title":214,"links":577},[578,580,582,584,587,589,593,595,597,599,601,603,605,607],{"text":226,"config":579},{"href":228,"dataGaName":229,"dataGaLocation":482},{"text":231,"config":581},{"href":233,"dataGaName":234,"dataGaLocation":482},{"text":236,"config":583},{"href":238,"dataGaName":239,"dataGaLocation":482},{"text":241,"config":585},{"href":243,"dataGaName":586,"dataGaLocation":482},"docs",{"text":264,"config":588},{"href":266,"dataGaName":5},{"text":590,"config":591},"Histoires de réussite client",{"href":592,"dataGaLocation":482},"/customers/",{"text":259,"config":594},{"href":261,"dataGaName":262,"dataGaLocation":482},{"text":268,"config":596},{"href":270,"dataGaName":271,"dataGaLocation":482},{"text":281,"config":598},{"href":283,"dataGaName":284,"dataGaLocation":482},{"text":273,"config":600},{"href":275,"dataGaName":276,"dataGaLocation":482},{"text":286,"config":602},{"href":288,"dataGaName":289,"dataGaLocation":482},{"text":291,"config":604},{"href":293,"dataGaName":294,"dataGaLocation":482},{"text":296,"config":606},{"href":298,"dataGaName":299,"dataGaLocation":482},{"text":301,"config":608},{"href":303,"dataGaName":304,"dataGaLocation":482},{"title":319,"links":610},[611,613,615,617,619,621,623,627,632,634,636,638],{"text":326,"config":612},{"href":328,"dataGaName":321,"dataGaLocation":482},{"text":331,"config":614},{"href":333,"dataGaName":334,"dataGaLocation":482},{"text":339,"config":616},{"href":341,"dataGaName":342,"dataGaLocation":482},{"text":344,"config":618},{"href":346,"dataGaName":347,"dataGaLocation":482},{"text":349,"config":620},{"href":351,"dataGaName":352,"dataGaLocation":482},{"text":354,"config":622},{"href":356,"dataGaName":357,"dataGaLocation":482},{"text":624,"config":625},"Sustainability",{"href":626,"dataGaName":624,"dataGaLocation":482},"/sustainability/",{"text":628,"config":629},"Diversité, inclusion et appartenance (DIB)",{"href":630,"dataGaName":631,"dataGaLocation":482},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":359,"config":633},{"href":361,"dataGaName":362,"dataGaLocation":482},{"text":369,"config":635},{"href":371,"dataGaName":372,"dataGaLocation":482},{"text":374,"config":637},{"href":376,"dataGaName":377,"dataGaLocation":482},{"text":639,"config":640},"Déclaration de transparence sur l'esclavage moderne",{"href":641,"dataGaName":642,"dataGaLocation":482},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":379,"links":644},[645,648,650,652,657,662,667],{"text":646,"config":647},"Échanger avec un expert",{"href":58,"dataGaName":59,"dataGaLocation":482},{"text":388,"config":649},{"href":390,"dataGaName":391,"dataGaLocation":482},{"text":393,"config":651},{"href":395,"dataGaName":396,"dataGaLocation":482},{"text":653,"config":654},"Statut",{"href":655,"dataGaName":656,"dataGaLocation":482},"https://status.gitlab.com/","status",{"text":658,"config":659},"Conditions d'utilisation",{"href":660,"dataGaName":661},"/terms/","terms of use",{"text":663,"config":664},"Déclaration de confidentialité",{"href":665,"dataGaName":666,"dataGaLocation":482},"/fr-fr/privacy/","privacy statement",{"text":668,"config":669},"Préférences en matière de cookies",{"dataGaName":670,"dataGaLocation":482,"id":671,"isOneTrustButton":32},"cookie preferences","ot-sdk-btn",{"items":673},[674,676,679],{"text":658,"config":675},{"href":660,"dataGaName":661,"dataGaLocation":482},{"text":677,"config":678},"Politique de confidentialité",{"href":665,"dataGaName":666,"dataGaLocation":482},{"text":668,"config":680},{"dataGaName":670,"dataGaLocation":482,"id":671,"isOneTrustButton":32},"content:shared:fr-fr:main-footer.yml","Main Footer","shared/fr-fr/main-footer.yml","shared/fr-fr/main-footer",[686],{"_path":687,"_dir":688,"_draft":6,"_partial":6,"_locale":7,"content":689,"config":694,"_id":696,"_type":35,"title":20,"_source":37,"_file":697,"_stem":698,"_extension":40},"/en-us/blog/authors/susie-bitters","authors",{"name":20,"config":690},{"headshot":691,"linkedin":692,"ctfId":693},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664195/Blog/Author%20Headshots/susiebittersheadshot.png","https://www.linkedin.com/in/susie-bitters-33268410/","7yiomgeGp9k4a4srjDU1QK",{"template":695},"BlogAuthor","content:en-us:blog:authors:susie-bitters.yml","en-us/blog/authors/susie-bitters.yml","en-us/blog/authors/susie-bitters",{"_path":700,"_dir":43,"_draft":6,"_partial":6,"_locale":7,"header":701,"eyebrow":702,"blurb":703,"button":704,"secondaryButton":708,"_id":710,"_type":35,"title":711,"_source":37,"_file":712,"_stem":713,"_extension":40},"/shared/fr-fr/next-steps","Commencez à livrer des logiciels de meilleurs qualité plus rapidement","Plus de 50 % des entreprises du classement Fortune 100 font confiance à GitLab","Découvrez comment la plateforme DevSecOps intelligente\n\n\npeut aider votre équipe.\n",{"text":51,"config":705},{"href":706,"dataGaName":54,"dataGaLocation":707},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":56,"config":709},{"href":58,"dataGaName":59,"dataGaLocation":707},"content:shared:fr-fr:next-steps.yml","Next Steps","shared/fr-fr/next-steps.yml","shared/fr-fr/next-steps",1758326254753]