[{"data":1,"prerenderedAt":715},["ShallowReactive",2],{"/de-de/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale":3,"navigation-de-de":40,"banner-de-de":458,"footer-de-de":471,"Susie Bitters":680,"footer-source-/de-de/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale/":694,"next-steps-de-de":700},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":29,"_id":33,"_type":34,"title":35,"_source":36,"_file":37,"_stem":38,"_extension":39},"/de-de/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 – Wie wir LLMs validieren & testen","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Entwicklung von GitLab Duo: Wie wir KI-Modelle im großen Maßstab validieren und testen\",\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","Unsere Blog-Serie beginnt mit einem Blick hinter die Kulissen, wie wir LLMs evaluieren, sie an Anwendungsfälle anpassen und sie optimieren, um bessere Ergebnisse für die Benutzer(innen) zu erzielen.","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":12,"authors":18,"heroImage":11,"date":20,"body":21,"category":22,"tags":23},"Entwicklung von GitLab Duo: Wie wir KI-Modelle im großen Maßstab validieren und testen",[19],"Susie Bitters","2024-05-09","**_Generative KI markiert einen monumentalen Wandel in der Softwareentwicklungsbranche, der es einfacher macht, Software zu entwickeln, sicherer zu machen und sie zu betreiben. Unsere neue Blog-Serie von unseren Produkt- und Entwicklungsteams gibt einen Einblick darin, wie wir die KI-Funktionen erstellen, testen und bereitstellen, die in deinem Unternehmen benötigt werden. Lerne neue Funktionen innerhalb von GitLab Duo kennen und wie sie DevSecOps-Teams dabei helfen, bessere Ergebnisse für Kund(inn)en zu erzielen._**\n\nGitLab schätzt das Vertrauen unserer Kund(inn)en in uns. Ein Teil der Aufrechterhaltung dieses Vertrauens ist die Transparenz darüber, wie wir die hochwertige Funktionalität unserer [GitLab Duo](https://about.gitlab.com/de-de/gitlab-duo/) KI-Funktionen erstellen, bewerten und gewährleisten. Die Funktionen von GitLab Duo basieren auf einer Vielzahl von Modellen, die es uns ermöglichen, eine Vielzahl von Anwendungsfällen zu unterstützen und unseren Kund(inn)en Flexibilität zu bieten. GitLab ist von vornherein nicht an einen einzigen Modellanbieter gebunden. Wir verwenden derzeit Foundation-Modelle von [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) und [Anthropic](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/ai_gateway/models/anthropic.py?ref_type=heads#L62). Wir wägen jedoch kontinuierlich ab, welche Modelle für die Anwendungsfälle von GitLab Duo geeignet sind. In diesem Artikel geben wir einen Einblick in unseren Validierungsprozess für KI-Modelle.\n\n## Was sind LLMs\n\nUmfangreiche Sprachmodelle (Large language models, LLMs) sind generative KI-Modelle, die viele KI-Funktionen innerhalb der GitLab Plattform unterstützen. LLMs wurden mit riesigen Datensätzen trainiert und prognostizieren das nächste Wort in einer Sequenz basierend auf dem vorhergehenden Kontext. Als Antwort auf eine Eingabe (Prompt) von Benutzer(innen) erzeugen sie Text, der der Antwort eines Menschen ähnelt, indem sie abhängig vom Prompt aus der Wahrscheinlichkeitsverteilung von Wörtern ein Muster wiedergeben.\n\nLLMs ermöglichen es, intelligente Codevorschläge, Konversations-Chatbots, Code-Erklärungen, Analysen von Sicherheitslücken und mehr umzusetzen. Ihre Fähigkeit, für einen bestimmten Prompt unterschiedliche Antworten zu erzeugen, macht eine standardisierte Qualitätsbewertung schwierig. Da LLMs für verschiedene Eigenschaften optimiert werden können, werden so viele unterschiedliche KI-Modelle aktiv entwickelt.\n\n## Testen im großen Maßstab\n\nIm Gegensatz zu herkömmlichen Softwaresystemen, bei denen Ein- und Ausgaben einfacher definiert und getestet werden können, erzeugen LLMs Ausgaben, die oft nuanciert, vielfältig und kontextabhängig sind. Um diese Modelle zu testen, sind umfassende Strategien erforderlich, die die subjektiven und variablen Interpretationen von Qualität sowie die stochastische Natur ihrer Ergebnisse berücksichtigen. Wir können daher die Qualität der Ergebnisse eines LLM nicht individuell oder anekdotisch beurteilen. Stattdessen müssen wir in der Lage sein, das Gesamtmuster des Verhaltens eines LLM zu untersuchen. Um ein Gefühl für diese Muster zu bekommen, müssen wir in großem Maßstab testen. Darunter versteht man den Prozess der Bewertung der Leistung, Zuverlässigkeit und Robustheit eines Systems oder einer Anwendung über eine große und vielfältige Anzahl von Datensätzen und Anwendungsfällen. Unser [Centralized Evaluation Framework (CEF)](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/) verwendet Tausende von Prompts, die mit Dutzenden von Anwendungsfällen verknüpft sind, um signifikante Muster zu identifizieren und das Gesamtverhalten unserer grundlegenden LLMs und der GitLab Duo-Funktionen, in die sie integriert sind, zu bewerten.\n\nTesten im großen Maßstab hilft uns bei der:\n\n- **Gewährleistung von Qualität:** Durch Tests im großen Maßstab können wir die Qualität und Zuverlässigkeit dieser Modelle in einer Vielzahl von Szenarien und Inputs bewerten. Indem wir die Ergebnisse dieser Modelle in großem Maßstab validieren, können wir Muster identifizieren und potenzielle Probleme wie systematische Verzerrungen, Anomalien und Ungenauigkeiten abmildern.\n- **Optimierung der Leistung:** Die Intensivierung der Tests ermöglicht es GitLab, die Leistung und Effizienz von LLMs unter realen Bedingungen zu beurteilen. Dazu gehört die Bewertung von Faktoren wie Ausgabequalität, Latenz und der Kosten für die Optimierung der Bereitstellung und des Einsatzes dieser Modelle in GitLab Duo-Funktionen.\n- **Minderung von Risiken:** Das Testen von LLMs im großen Maßstab trägt dazu bei, die mit der Bereitstellung von LLMs in kritischen Anwendungen verbundenen Risiken zu mindern. Durch gründliche Tests über verschiedene Datensätze und Anwendungsfälle hinweg können wir potenzielle Fehlermodi, Sicherheitslücken und ethische Bedenken identifizieren und diese adressieren und beheben, bevor sie sich auf unsere Kund(inn)en auswirken.\n\nDas Testen von LLMs im großen Maßstab ist unerlässlich, um ihre Zuverlässigkeit und Robustheit für ihre Bereitstellung innerhalb der GitLab-Plattform sicherzustellen. Durch die Investition in umfassende Teststrategien, die verschiedene Datensätze, Anwendungsfälle und Szenarien umfassen, arbeitet GitLab daran, das volle Potenzial von KI-gestützten Workflows auszuschöpfen und gleichzeitig potenzielle Risiken zu mindern.\n\n### Wie wir in großem Maßstab testen\n\nDies sind die notwendigen Schritte, um LLMs in großem Maßstab zu testen.\n\n#### Schritt 1: Erstellen einer Prompt-Bibliothek als Proxy für die Produktion\nWährend andere Unternehmen Kundendaten einsehen und verwenden, um ihre KI-Funktionen zu trainieren, tut GitLab dies derzeit nicht.  Deshalb mussten wir eine umfassende Prompt-Bibliothek entwickeln, die sowohl den Umfang als auch die Aktivität der Produktionsumgebung abbildet.\n\nDiese Prompt-Bibliothek besteht aus Fragen und Antworten. Die Fragen stellen die Art von Abfragen oder Eingaben dar, die wir in der Produktionsumgebung erwarten würden, während die Antworten eine Grundwahrheit darüber darstellen, was unsere ideale Antwort wäre. Diese Referenzantwort könnte auch als Zielantwort formuliert werden. Sowohl die Frage als auch die Antwort können, aber müssen nicht von Menschen generiert werden. Diese Frage-Antwort-Paare geben uns eine Vergleichsbasis und einen Bezugsrahmen, mit dem wir die Unterschiede zwischen Modellen und Funktionen herausarbeiten können. Wenn mehreren Modellen dieselbe Frage gestellt wird und sie unterschiedliche Antworten erzeugen, können wir anhand unserer Referenzantwort feststellen, welches Modell eine Antwort gegeben hat, die unserem Ziel am nächsten kommt, und sie entsprechend bewerten.\n\nAuch hier ist ein zentrales Element einer umfassenden Prompt-Bibliothek, dass sie repräsentativ für die Eingaben ist, die wir in der Produktionsumgebung erwarten. Wir möchten wissen, wie gut die grundlegenden Modelle zu unserem spezifischen Anwendungsfall passen und wie gut unsere Funktionen funktionieren. Es gibt zahlreiche Datensätze mit Benchmark-Prompts, aber diese Datensätze spiegeln möglicherweise nicht die Anwendungsfälle wider, die wir bei GitLab annehmen. Unsere Prompt-Bibliothek ist so konzipiert, dass sie speziell auf die Funktionen und Anwendungsfälle von GitLab zugeschnitten ist.\n\n#### Schritt 2: Leistung des Basismodells\n\nSobald wir eine Prompt-Bibliothek erstellt haben, die die Produktionsaktivitäten genau widerspiegelt, geben wir diese Fragen in [verschiedene Modelle](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/foundation_models/) ein, um zu testen, wie gut sie den Bedürfnissen unserer Kund(inn)en entsprechen. Wir vergleichen jede Antwort mit unserer Grundwahrheit und reihen sie in eine Rangfolge ein, die auf einer Reihe von Metriken basiert, wie zum Beispiel: [Cosine Similarity Score](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#similarity-scores), [Cross Similarity Score](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#cross-similarity-score),  [LLM Judge](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#llm-judge), und [Consensus Filtering mit LLM Judge](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#consensus-filtering-with-llm-judge). Diese erste Iteration liefert uns einen Anhaltspunkt dafür, wie gut die einzelnen Modelle abschneiden, und hilft uns bei der Auswahl eines grundlegenden Modells für unsere Einsatzbereiche. Um uns kurz zu fassen, werden wir hier nicht ins Detail gehen, aber du kannst [hier mehr über die Metriken erfahren](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/). Es ist wichtig zu wissen, dass dieses Problem nicht gelöst ist. Die KI-Branche forscht aktiv an neuen Techniken und entwickelt sie weiter. Das Modellvalidierungsteam von GitLab behält die Branche im Auge und arbeitet ständig daran, wie wir die von GitLab Duo verwendeten LLMs prüfen und bewerten.\n\n#### Schritt 3: Funktionsentwicklung\n\nJetzt, da wir eine Grundlage für die Leistung unseres ausgewählten Modells haben, können wir mit den gewonnen Daten unsere Plattform weiterentwickeln. Prompt-Engineering ist zwar sehr populär, aber wenn man sich ausschließlich darauf konzentriert, das Verhalten eines Modells durch Prompting (oder eine andere Technik) zu verändern, ohne es zu validieren, stochert man im Dunkeln und passt sein Prompting sehr wahrscheinlich zu stark an. Man löst vielleicht ein Problem, aber verursacht ein Dutzend andere. Und es würde wahrscheinlich nie auffallen. Wenn wir eine Grundlinie für die Leistung eines Modells festlegen, können wir verfolgen, wie sich das Verhalten im Laufe der Zeit für alle notwendigen Anwendungsfälle verändert. Bei GitLab überprüfen wir die Leistung unserer GitLab Duo Funktionen während der aktiven Entwicklung täglich neu, um sicherzustellen, dass alle Änderungen die Gesamtfunktionalität verbessern.\n\n#### Schritt 4: Iterieren, iterieren, iterieren\n\nUnsere experimentellen Iterationen funktionieren wie folgt: In jedem Durchgang untersuchen wir die Ergebnisse unserer Tests im großen Maßstab, um Muster zu erkennen:\n\n- Was haben unsere schwächsten Bereiche gemeinsam?\n- Verhält sich unsere Funktion für eine bestimmte Metrik oder in einem bestimmten Anwendungsfall ungünstig?\n- Gibt es bei bestimmten Fragen immer wieder dieselben Fehler?\n\nSolche Muster tauchen nur dann auf, wenn wir in großem Maßstab testen, und nur so können wir unsere Experimente optimieren. Auf der Grundlage dieser Muster schlagen wir verschiedene Experimente oder Ansätze vor, um die Leistung in einem bestimmten Bereich und für eine bestimmte Metrik zu verbessern.\n\nTesten im großen Maßstab ist jedoch sowohl teuer als auch zeitaufwendig. Um eine schnellere und kostengünstigere Iteration zu ermöglichen, erstellen wir einen kleineren Datensatz, der als Mini-Proxy fungiert. Die begrenzte Teilmenge wird so gewichtet, dass sie genau die Frage-Antwort-Paare enthält, die wir verbessern möchten. Die erweiterte Teilmenge enthält auch eine Auswahl aller anderen Anwendungsfälle und Bewertungen, um sicherzustellen, dass sich unsere Änderungen nicht nachteilig auf die allgemeine Funktionalität auswirken. Wir nehmen also Änderungen vor und überprüfen sie gegen eine begrenzte Teilmenge der Daten. Wie sieht die neue Antwort im Vergleich zur Ausgangslage aus? Wie verhält es sich mit der Grundwahrheit?\n\nSobald wir einen Prompt gefunden haben, der sich auf den spezifischen Anwendungsfall bezieht, an dem wir gerade mit der begrenzten Teilmenge arbeiten, validieren wir diesen Prompt anhand einer erweiterten Teilmenge von Daten, um sicherzustellen, dass er sich nicht nachteilig auf andere Bereiche auswirkt. Nur wenn wir durch die Validierungsmetriken der Meinung sind, dass der neue Prompt unsere Leistung in unserem Zielbereich verbessert UND die Leistung an anderer Stelle nicht verschlechtert, setzen wir diese Änderung in der Produktionsumgebung um.\n\nDas gesamte Centralized Evaluation Framework wird dann mit dem neuen Prompt ausgeführt und wir überprüfen, ob die Leistung der gesamten Funktionalität gegenüber der Ausgangssituation vom Vortag verbessert wurde. Auf diese Weise stellt GitLab durch ständige Iterationen sicher, dass du im gesamten GitLab-Ökosystem die neueste und beste Leistung der KI-gestützten Funktionen erhältst. So können wir sicherstellen, dass wir gemeinsam immer schneller arbeiten.\n\n### GitLab Duo noch besser machen\n\nWir hoffen, dass wir dir hiermit einen Einblick geben konnten, wie wir die Funktionen von GitLab Duo verantwortungsvoll entwickeln. Dieser Prozess wurde entwickelt, um [GitLab Duo Codevorschläge](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/) und [GitLab Duo Chat](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html) allgemein verfügbar zu machen. Wir haben diesen Validierungsprozess auch in unseren Entwicklungsprozess integriert, wenn wir die Funktionen von GitLab Duo weiterentwickeln. Es bedeutet unzählige Versuche und Fehlschläge, und oft macht die Korrektur eines Punkts drei andere kaputt. Aber wir erhalten dabei auch datengestützte Einblicke in diese Auswirkungen und können so sicherstellen, dass GitLab Duo immer besser wird.\n\n> Starte noch heute deine [kostenlose Testversion von GitLab Duo](https://about.gitlab.com/gitlab-duo/#free-trial)!\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",[24,25,26,27,28],"AI/ML","DevSecOps","DevSecOps platform","features","inside GitLab",{"slug":30,"featured":31,"template":32},"developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",true,"BlogPost","content:de-de: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","de-de/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale.yml","de-de/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale","yml",{"_path":41,"_dir":42,"_draft":6,"_partial":6,"_locale":7,"data":43,"_id":454,"_type":34,"title":455,"_source":36,"_file":456,"_stem":457,"_extension":39},"/shared/de-de/main-navigation","de-de",{"logo":44,"freeTrial":49,"sales":54,"login":59,"items":64,"search":395,"minimal":431,"duo":445},{"config":45},{"href":46,"dataGaName":47,"dataGaLocation":48},"/de-de/","gitlab logo","header",{"text":50,"config":51},"Kostenlose Testversion anfordern",{"href":52,"dataGaName":53,"dataGaLocation":48},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":55,"config":56},"Vertrieb kontaktieren",{"href":57,"dataGaName":58,"dataGaLocation":48},"/de-de/sales/","sales",{"text":60,"config":61},"Anmelden",{"href":62,"dataGaName":63,"dataGaLocation":48},"https://gitlab.com/users/sign_in/","sign in",[65,109,206,211,316,376],{"text":66,"config":67,"cards":69,"footer":92},"Plattform",{"dataNavLevelOne":68},"platform",[70,76,84],{"title":66,"description":71,"link":72},"Die umfassendste KI-basierte DevSecOps-Plattform",{"text":73,"config":74},"Erkunde unsere Plattform",{"href":75,"dataGaName":68,"dataGaLocation":48},"/de-de/platform/",{"title":77,"description":78,"link":79},"GitLab Duo (KI)","Entwickle Software schneller mit KI in jeder Phase der Entwicklung",{"text":80,"config":81},"Lerne GitLab Duo kennen",{"href":82,"dataGaName":83,"dataGaLocation":48},"/de-de/gitlab-duo/","gitlab duo ai",{"title":85,"description":86,"link":87},"Gründe, die für GitLab sprechen","10 Gründe, warum Unternehmen sich für GitLab entscheiden",{"text":88,"config":89},"Mehr erfahren",{"href":90,"dataGaName":91,"dataGaLocation":48},"/de-de/why-gitlab/","why gitlab",{"title":93,"items":94},"Erste Schritte mit",[95,100,105],{"text":96,"config":97},"Platform Engineering",{"href":98,"dataGaName":99,"dataGaLocation":48},"/de-de/solutions/platform-engineering/","platform engineering",{"text":101,"config":102},"Entwicklererfahrung",{"href":103,"dataGaName":104,"dataGaLocation":48},"/de-de/developer-experience/","Developer experience",{"text":106,"config":107},"MLOps",{"href":108,"dataGaName":106,"dataGaLocation":48},"/de-de/topics/devops/the-role-of-ai-in-devops/",{"text":110,"left":31,"config":111,"link":113,"lists":117,"footer":188},"Produkt",{"dataNavLevelOne":112},"solutions",{"text":114,"config":115},"Alle Lösungen anzeigen",{"href":116,"dataGaName":112,"dataGaLocation":48},"/de-de/solutions/",[118,144,166],{"title":119,"description":120,"link":121,"items":126},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":122},{"icon":123,"href":124,"dataGaName":125,"dataGaLocation":48},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[127,131,135,140],{"text":128,"config":129},"CI/CD",{"href":130,"dataGaLocation":48,"dataGaName":128},"/de-de/solutions/continuous-integration/",{"text":132,"config":133},"KI-unterstützte Entwicklung",{"href":82,"dataGaLocation":48,"dataGaName":134},"AI assisted development",{"text":136,"config":137},"Quellcodeverwaltung",{"href":138,"dataGaLocation":48,"dataGaName":139},"/de-de/solutions/source-code-management/","Source Code Management",{"text":141,"config":142},"Automatisierte Softwarebereitstellung",{"href":124,"dataGaLocation":48,"dataGaName":143},"Automated software delivery",{"title":145,"description":146,"link":147,"items":152},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":148},{"href":149,"dataGaName":150,"dataGaLocation":48,"icon":151},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[153,157,162],{"text":154,"config":155},"Application Security Testing",{"href":149,"dataGaName":156,"dataGaLocation":48},"Application security testing",{"text":158,"config":159},"Schutz der Software-Lieferkette",{"href":160,"dataGaLocation":48,"dataGaName":161},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":163,"config":164},"Software Compliance",{"href":165,"dataGaName":163,"dataGaLocation":48},"/de-de/solutions/software-compliance/",{"title":167,"link":168,"items":173},"Bewertung",{"config":169},{"icon":170,"href":171,"dataGaName":172,"dataGaLocation":48},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[174,178,183],{"text":175,"config":176},"Sichtbarkeit und Bewertung",{"href":171,"dataGaLocation":48,"dataGaName":177},"Visibility and Measurement",{"text":179,"config":180},"Wertstrommanagement",{"href":181,"dataGaLocation":48,"dataGaName":182},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":184,"config":185},"Analysen und Einblicke",{"href":186,"dataGaLocation":48,"dataGaName":187},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":189,"items":190},"GitLab für",[191,196,201],{"text":192,"config":193},"Enterprise",{"href":194,"dataGaLocation":48,"dataGaName":195},"/de-de/enterprise/","enterprise",{"text":197,"config":198},"Kleinunternehmen",{"href":199,"dataGaLocation":48,"dataGaName":200},"/de-de/small-business/","small business",{"text":202,"config":203},"den öffentlichen Sektor",{"href":204,"dataGaLocation":48,"dataGaName":205},"/de-de/solutions/public-sector/","public sector",{"text":207,"config":208},"Preise",{"href":209,"dataGaName":210,"dataGaLocation":48,"dataNavLevelOne":210},"/de-de/pricing/","pricing",{"text":212,"config":213,"link":215,"lists":219,"feature":303},"Ressourcen",{"dataNavLevelOne":214},"resources",{"text":216,"config":217},"Alle Ressourcen anzeigen",{"href":218,"dataGaName":214,"dataGaLocation":48},"/de-de/resources/",[220,253,275],{"title":221,"items":222},"Erste Schritte",[223,228,233,238,243,248],{"text":224,"config":225},"Installieren",{"href":226,"dataGaName":227,"dataGaLocation":48},"/de-de/install/","install",{"text":229,"config":230},"Kurzanleitungen",{"href":231,"dataGaName":232,"dataGaLocation":48},"/de-de/get-started/","quick setup checklists",{"text":234,"config":235},"Lernen",{"href":236,"dataGaLocation":48,"dataGaName":237},"https://university.gitlab.com/","learn",{"text":239,"config":240},"Produktdokumentation",{"href":241,"dataGaName":242,"dataGaLocation":48},"https://docs.gitlab.com/","product documentation",{"text":244,"config":245},"Best-Practice-Videos",{"href":246,"dataGaName":247,"dataGaLocation":48},"/de-de/getting-started-videos/","best practice videos",{"text":249,"config":250},"Integrationen",{"href":251,"dataGaName":252,"dataGaLocation":48},"/de-de/integrations/","integrations",{"title":254,"items":255},"Entdecken",[256,261,265,270],{"text":257,"config":258},"Kundenerfolge",{"href":259,"dataGaName":260,"dataGaLocation":48},"/de-de/customers/","customer success stories",{"text":262,"config":263},"Blog",{"href":264,"dataGaName":5,"dataGaLocation":48},"/de-de/blog/",{"text":266,"config":267},"Remote",{"href":268,"dataGaName":269,"dataGaLocation":48},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":271,"config":272},"TeamOps",{"href":273,"dataGaName":274,"dataGaLocation":48},"/de-de/teamops/","teamops",{"title":276,"items":277},"Vernetzen",[278,283,288,293,298],{"text":279,"config":280},"GitLab-Services",{"href":281,"dataGaName":282,"dataGaLocation":48},"/de-de/services/","services",{"text":284,"config":285},"Community",{"href":286,"dataGaName":287,"dataGaLocation":48},"/community/","community",{"text":289,"config":290},"Forum",{"href":291,"dataGaName":292,"dataGaLocation":48},"https://forum.gitlab.com/","forum",{"text":294,"config":295},"Veranstaltungen",{"href":296,"dataGaName":297,"dataGaLocation":48},"/events/","events",{"text":299,"config":300},"Partner",{"href":301,"dataGaName":302,"dataGaLocation":48},"/de-de/partners/","partners",{"backgroundColor":304,"textColor":305,"text":306,"image":307,"link":311},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":308,"config":309},"the source promo card",{"src":310},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":312,"config":313},"Lies die News",{"href":314,"dataGaName":315,"dataGaLocation":48},"/de-de/the-source/","the source",{"text":317,"config":318,"lists":320},"Unternehmen",{"dataNavLevelOne":319},"company",[321],{"items":322},[323,328,334,336,341,346,351,356,361,366,371],{"text":324,"config":325},"Über",{"href":326,"dataGaName":327,"dataGaLocation":48},"/de-de/company/","about",{"text":329,"config":330,"footerGa":333},"Karriere",{"href":331,"dataGaName":332,"dataGaLocation":48},"/jobs/","jobs",{"dataGaName":332},{"text":294,"config":335},{"href":296,"dataGaName":297,"dataGaLocation":48},{"text":337,"config":338},"Geschäftsführung",{"href":339,"dataGaName":340,"dataGaLocation":48},"/company/team/e-group/","leadership",{"text":342,"config":343},"Team",{"href":344,"dataGaName":345,"dataGaLocation":48},"/company/team/","team",{"text":347,"config":348},"Handbuch",{"href":349,"dataGaName":350,"dataGaLocation":48},"https://handbook.gitlab.com/","handbook",{"text":352,"config":353},"Investor Relations",{"href":354,"dataGaName":355,"dataGaLocation":48},"https://ir.gitlab.com/","investor relations",{"text":357,"config":358},"Trust Center",{"href":359,"dataGaName":360,"dataGaLocation":48},"/de-de/security/","trust center",{"text":362,"config":363},"AI Transparency Center",{"href":364,"dataGaName":365,"dataGaLocation":48},"/de-de/ai-transparency-center/","ai transparency center",{"text":367,"config":368},"Newsletter",{"href":369,"dataGaName":370,"dataGaLocation":48},"/company/contact/","newsletter",{"text":372,"config":373},"Presse",{"href":374,"dataGaName":375,"dataGaLocation":48},"/press/","press",{"text":377,"config":378,"lists":379},"Kontakt",{"dataNavLevelOne":319},[380],{"items":381},[382,385,390],{"text":55,"config":383},{"href":57,"dataGaName":384,"dataGaLocation":48},"talk to sales",{"text":386,"config":387},"Support",{"href":388,"dataGaName":389,"dataGaLocation":48},"/support/","get help",{"text":391,"config":392},"Kundenportal",{"href":393,"dataGaName":394,"dataGaLocation":48},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":396,"login":397,"suggestions":404},"Schließen",{"text":398,"link":399},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":400,"config":401},"gitlab.com",{"href":62,"dataGaName":402,"dataGaLocation":403},"search login","search",{"text":405,"default":406},"Vorschläge",[407,410,415,417,422,427],{"text":77,"config":408},{"href":82,"dataGaName":409,"dataGaLocation":403},"GitLab Duo (AI)",{"text":411,"config":412},"Code Suggestions (KI)",{"href":413,"dataGaName":414,"dataGaLocation":403},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":128,"config":416},{"href":130,"dataGaName":128,"dataGaLocation":403},{"text":418,"config":419},"GitLab auf AWS",{"href":420,"dataGaName":421,"dataGaLocation":403},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":423,"config":424},"GitLab auf Google Cloud",{"href":425,"dataGaName":426,"dataGaLocation":403},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":428,"config":429},"Warum GitLab?",{"href":90,"dataGaName":430,"dataGaLocation":403},"Why GitLab?",{"freeTrial":432,"mobileIcon":437,"desktopIcon":442},{"text":433,"config":434},"Kostenlos testen",{"href":435,"dataGaName":53,"dataGaLocation":436},"https://gitlab.com/-/trials/new/","nav",{"altText":438,"config":439},"GitLab-Symbol",{"src":440,"dataGaName":441,"dataGaLocation":436},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":438,"config":443},{"src":444,"dataGaName":441,"dataGaLocation":436},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":446,"mobileIcon":450,"desktopIcon":452},{"text":447,"config":448},"Erfahre mehr über GitLab Duo",{"href":82,"dataGaName":449,"dataGaLocation":436},"gitlab duo",{"altText":438,"config":451},{"src":440,"dataGaName":441,"dataGaLocation":436},{"altText":438,"config":453},{"src":444,"dataGaName":441,"dataGaLocation":436},"content:shared:de-de:main-navigation.yml","Main Navigation","shared/de-de/main-navigation.yml","shared/de-de/main-navigation",{"_path":459,"_dir":42,"_draft":6,"_partial":6,"_locale":7,"title":460,"button":461,"config":466,"_id":468,"_type":34,"_source":36,"_file":469,"_stem":470,"_extension":39},"/shared/de-de/banner","GitLab Duo Agent Platform ist jetzt in öffentlicher Beta!",{"text":462,"config":463},"Beta testen",{"href":464,"dataGaName":465,"dataGaLocation":48},"/de-de/gitlab-duo/agent-platform/","duo banner",{"layout":467},"release","content:shared:de-de:banner.yml","shared/de-de/banner.yml","shared/de-de/banner",{"_path":472,"_dir":42,"_draft":6,"_partial":6,"_locale":7,"data":473,"_id":676,"_type":34,"title":677,"_source":36,"_file":678,"_stem":679,"_extension":39},"/shared/de-de/main-footer",{"text":474,"source":475,"edit":481,"contribute":486,"config":491,"items":496,"minimal":668},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":476,"config":477},"Quelltext der Seite anzeigen",{"href":478,"dataGaName":479,"dataGaLocation":480},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":482,"config":483},"Diese Seite bearbeiten",{"href":484,"dataGaName":485,"dataGaLocation":480},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":487,"config":488},"Beteilige dich",{"href":489,"dataGaName":490,"dataGaLocation":480},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":492,"facebook":493,"youtube":494,"linkedin":495},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[497,520,575,604,638],{"title":66,"links":498,"subMenu":503},[499],{"text":500,"config":501},"DevSecOps-Plattform",{"href":75,"dataGaName":502,"dataGaLocation":480},"devsecops platform",[504],{"title":207,"links":505},[506,510,515],{"text":507,"config":508},"Tarife anzeigen",{"href":209,"dataGaName":509,"dataGaLocation":480},"view plans",{"text":511,"config":512},"Vorteile von Premium",{"href":513,"dataGaName":514,"dataGaLocation":480},"/de-de/pricing/premium/","why premium",{"text":516,"config":517},"Vorteile von Ultimate",{"href":518,"dataGaName":519,"dataGaLocation":480},"/de-de/pricing/ultimate/","why ultimate",{"title":521,"links":522},"Lösungen",[523,528,531,533,538,543,547,550,553,558,560,562,565,570],{"text":524,"config":525},"Digitale Transformation",{"href":526,"dataGaName":527,"dataGaLocation":480},"/de-de/topics/digital-transformation/","digital transformation",{"text":529,"config":530},"Sicherheit und Compliance",{"href":149,"dataGaName":156,"dataGaLocation":480},{"text":141,"config":532},{"href":124,"dataGaName":125,"dataGaLocation":480},{"text":534,"config":535},"Agile Entwicklung",{"href":536,"dataGaName":537,"dataGaLocation":480},"/de-de/solutions/agile-delivery/","agile delivery",{"text":539,"config":540},"Cloud-Transformation",{"href":541,"dataGaName":542,"dataGaLocation":480},"/de-de/topics/cloud-native/","cloud transformation",{"text":544,"config":545},"SCM",{"href":138,"dataGaName":546,"dataGaLocation":480},"source code management",{"text":128,"config":548},{"href":130,"dataGaName":549,"dataGaLocation":480},"continuous integration & delivery",{"text":179,"config":551},{"href":181,"dataGaName":552,"dataGaLocation":480},"value stream management",{"text":554,"config":555},"GitOps",{"href":556,"dataGaName":557,"dataGaLocation":480},"/de-de/solutions/gitops/","gitops",{"text":192,"config":559},{"href":194,"dataGaName":195,"dataGaLocation":480},{"text":197,"config":561},{"href":199,"dataGaName":200,"dataGaLocation":480},{"text":563,"config":564},"Öffentlicher Sektor",{"href":204,"dataGaName":205,"dataGaLocation":480},{"text":566,"config":567},"Bildungswesen",{"href":568,"dataGaName":569,"dataGaLocation":480},"/de-de/solutions/education/","education",{"text":571,"config":572},"Finanzdienstleistungen",{"href":573,"dataGaName":574,"dataGaLocation":480},"/de-de/solutions/finance/","financial services",{"title":212,"links":576},[577,579,581,583,586,588,590,592,594,596,598,600,602],{"text":224,"config":578},{"href":226,"dataGaName":227,"dataGaLocation":480},{"text":229,"config":580},{"href":231,"dataGaName":232,"dataGaLocation":480},{"text":234,"config":582},{"href":236,"dataGaName":237,"dataGaLocation":480},{"text":239,"config":584},{"href":241,"dataGaName":585,"dataGaLocation":480},"docs",{"text":262,"config":587},{"href":264,"dataGaName":5,"dataGaLocation":480},{"text":257,"config":589},{"href":259,"dataGaName":260,"dataGaLocation":480},{"text":266,"config":591},{"href":268,"dataGaName":269,"dataGaLocation":480},{"text":279,"config":593},{"href":281,"dataGaName":282,"dataGaLocation":480},{"text":271,"config":595},{"href":273,"dataGaName":274,"dataGaLocation":480},{"text":284,"config":597},{"href":286,"dataGaName":287,"dataGaLocation":480},{"text":289,"config":599},{"href":291,"dataGaName":292,"dataGaLocation":480},{"text":294,"config":601},{"href":296,"dataGaName":297,"dataGaLocation":480},{"text":299,"config":603},{"href":301,"dataGaName":302,"dataGaLocation":480},{"title":317,"links":605},[606,608,610,612,614,616,618,622,627,629,631,633],{"text":324,"config":607},{"href":326,"dataGaName":319,"dataGaLocation":480},{"text":329,"config":609},{"href":331,"dataGaName":332,"dataGaLocation":480},{"text":337,"config":611},{"href":339,"dataGaName":340,"dataGaLocation":480},{"text":342,"config":613},{"href":344,"dataGaName":345,"dataGaLocation":480},{"text":347,"config":615},{"href":349,"dataGaName":350,"dataGaLocation":480},{"text":352,"config":617},{"href":354,"dataGaName":355,"dataGaLocation":480},{"text":619,"config":620},"Sustainability",{"href":621,"dataGaName":619,"dataGaLocation":480},"/sustainability/",{"text":623,"config":624},"Vielfalt, Inklusion und Zugehörigkeit",{"href":625,"dataGaName":626,"dataGaLocation":480},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":357,"config":628},{"href":359,"dataGaName":360,"dataGaLocation":480},{"text":367,"config":630},{"href":369,"dataGaName":370,"dataGaLocation":480},{"text":372,"config":632},{"href":374,"dataGaName":375,"dataGaLocation":480},{"text":634,"config":635},"Transparenzerklärung zu moderner Sklaverei",{"href":636,"dataGaName":637,"dataGaLocation":480},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":639,"links":640},"Nimm Kontakt auf",[641,644,646,648,653,658,663],{"text":642,"config":643},"Sprich mit einem Experten/einer Expertin",{"href":57,"dataGaName":58,"dataGaLocation":480},{"text":386,"config":645},{"href":388,"dataGaName":389,"dataGaLocation":480},{"text":391,"config":647},{"href":393,"dataGaName":394,"dataGaLocation":480},{"text":649,"config":650},"Status",{"href":651,"dataGaName":652,"dataGaLocation":480},"https://status.gitlab.com/","status",{"text":654,"config":655},"Nutzungsbedingungen",{"href":656,"dataGaName":657,"dataGaLocation":480},"/terms/","terms of use",{"text":659,"config":660},"Datenschutzerklärung",{"href":661,"dataGaName":662,"dataGaLocation":480},"/de-de/privacy/","privacy statement",{"text":664,"config":665},"Cookie-Einstellungen",{"dataGaName":666,"dataGaLocation":480,"id":667,"isOneTrustButton":31},"cookie preferences","ot-sdk-btn",{"items":669},[670,672,674],{"text":654,"config":671},{"href":656,"dataGaName":657,"dataGaLocation":480},{"text":659,"config":673},{"href":661,"dataGaName":662,"dataGaLocation":480},{"text":664,"config":675},{"dataGaName":666,"dataGaLocation":480,"id":667,"isOneTrustButton":31},"content:shared:de-de:main-footer.yml","Main Footer","shared/de-de/main-footer.yml","shared/de-de/main-footer",[681],{"_path":682,"_dir":683,"_draft":6,"_partial":6,"_locale":7,"content":684,"config":689,"_id":691,"_type":34,"title":19,"_source":36,"_file":692,"_stem":693,"_extension":39},"/en-us/blog/authors/susie-bitters","authors",{"name":19,"config":685},{"headshot":686,"linkedin":687,"ctfId":688},"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":690},"BlogAuthor","content:en-us:blog:authors:susie-bitters.yml","en-us/blog/authors/susie-bitters.yml","en-us/blog/authors/susie-bitters",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":695,"content":696,"config":699,"_id":33,"_type":34,"title":35,"_source":36,"_file":37,"_stem":38,"_extension":39},{"ogTitle":9,"schema":10,"ogImage":11,"ogDescription":12,"ogSiteName":13,"noIndex":6,"ogType":14,"ogUrl":15,"title":9,"canonicalUrls":15,"description":12},{"title":17,"description":12,"authors":697,"heroImage":11,"date":20,"body":21,"category":22,"tags":698},[19],[24,25,26,27,28],{"slug":30,"featured":31,"template":32},{"_path":701,"_dir":42,"_draft":6,"_partial":6,"_locale":7,"header":702,"eyebrow":703,"blurb":704,"button":705,"secondaryButton":709,"_id":711,"_type":34,"title":712,"_source":36,"_file":713,"_stem":714,"_extension":39},"/shared/de-de/next-steps","Stelle jetzt bessere Software schneller bereit","Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab","Erlebe, was dein Team mit der intelligenten\n\n\nDevSecOps-Plattform erreichen kann.\n",{"text":50,"config":706},{"href":707,"dataGaName":53,"dataGaLocation":708},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":55,"config":710},{"href":57,"dataGaName":58,"dataGaLocation":708},"content:shared:de-de:next-steps.yml","Next Steps","shared/de-de/next-steps.yml","shared/de-de/next-steps",1761814372184]