Bitte benutzen Sie diese Referenz, um auf diese Ressource zu verweisen: doi:10.22028/D291-44016
Titel: AI code generation models : opportunities and risks
VerfasserIn: Hajipour, Hossein
Sprache: Englisch
Erscheinungsjahr: 2024
DDC-Sachgruppe: 004 Informatik
600 Technik
Dokumenttyp: Dissertation
Abstract: In recent years, the advancements in artificial intelligence (AI) for software engineering have opened up transformative possibilities in software development and automation. AI progress in natural language processing has paved the way for similar breakthroughs in AI models developed to generate and understand code. These advancements are gradually reshaping the programming landscape, enabling developers to leverage AI-driven tools for tasks that traditionally required significant manual effort, including code summarization, code completion, and even program repair. As a result, AI is not only enhancing productivity but also lowering the barriers to entering the field of software development for beginners and non-experts. For instance, AI programming tools like GitHub Copilot, TabNine, and others have begun to impact the industry, assisting developers and democratizing access to programming. These tools offer features such as automatic text-to-code generation, code documentation, and test generation, allowing developers to focus on higher-level problem-solving. However, these advancements are accompanied by significant risks and challenges, particularly regarding the security and trustworthiness of the generated code. For instance, studies have demonstrated that a significant portion of AI-generated code samples can be prone to serious security vulnerabilities, necessitating a thorough understanding of the implications these models hold for software security. This thesis aims to investigate both the capabilities and associated risks of AI code generation models in various dimensions, focusing on automatic program repair, reverse engineering, out-of-distribution (OOD) generalization, and software security. We begin by studying the capabilities of neural-based code generation models, particularly in automating program repair and reverse-engineering black-box functions. The automated fixing of common programming errors—such as missing scope delimiters or incorrect symbols—can greatly enhance productivity for developers at different experience levels. Our proposed model, framed as a deep conditional variational autoencoder, generates multiple potential fixes for a given erroneous code, improving the diversity and accuracy of repairs compared to existing methods. Similarly, our approach to reverse-engineering black-box functions through an iterative neural program synthesizer demonstrates the model's ability to uncover underlying functionality without access to privileged information. In the second part, we address the risks and challenges associated with these models, particularly in terms of OOD generalization and software security issues. Our work includes the development of a systematic approach to simulate OOD scenarios for the code data in various dimensions, revealing that even state-of-the-art models struggle to generalize to rare or unseen code structures. Furthermore, we propose a novel method for automatically evaluating AI code generation models in terms of generating vulnerable code. By generating prompts that can lead the models to the generation of vulnerable code instances, we provide a comprehensive benchmark for assessing the software security issues that can be posed by these models. Motivated by the prevalence of vulnerable code samples generated by AI models, in the third part, we focus on the goal of secure code generation by proposing HexaCoder, a method designed to fine-tune code generation models to improve their ability in generating secure code. HexaCoder employs state-of-the-art models and a security oracle to automatically synthesize pairs of vulnerable and secure code examples. This generated dataset is then leveraged for model fine-tuning. Our approach significantly reduces the occurrence of vulnerabilities in the generated code, contributing toward a safer AI model for software development. Through these contributions, the thesis seeks to advance AI's capabilities in code generation and highlight the importance of addressing the reliability and software security issues of AI code generation models. By focusing on automated program repair, reverse engineering, OOD generalization, and secure code generation, we provide new insights into enhancing the capabilities and safety of AI code generation models. Our work highlights the importance of developing more reliable and trustworthy AI models, ultimately paving the way for safer and more effective integration of AI in the future of software engineering.
In den letzten Jahren haben die Fortschritte im Bereich der Künstlichen Intelligenz (KI) für die Softwareentwicklung neue Möglichkeiten für die Softwareentwicklung und -automatisierung eröffnet. KI-Fortschritte bei der Verarbeitung natürlicher Sprache haben den Weg für ähnliche Durchbrüche bei KI-Modellen geebnet, die zum Generieren und Verstehen von Code entwickelt wurden. Diese Fortschritte verändern allmählich die Programmierungslandschaft und ermöglichen es Entwicklern, KI-gesteuerte Tools für Aufgaben zu nutzen, die bisher einen erheblichen manuellen Aufwand erforderten, z. B. Codezusammenfassung, Codevervollständigung und sogar Programmreparatur. Infolgedessen steigert KI nicht nur die Produktivität, sondern senkt auch die Hürden für den Einstieg in die Softwareentwicklung für Anfänger und Nicht-Experten. So haben beispielsweise KI-Programmiertools wie GitHub Copilot, TabNine und andere begonnen, die Branche zu beeinflussen, Entwickler zu unterstützen und den Zugang zur Programmierung zu demokratisieren. Diese Tools bieten Funktionen wie automatische Text-zu-Code-Generierung, Code-Dokumentation und Testgenerierung und ermöglichen es Entwicklern, sich auf die Lösung von Problemen auf höherer Ebene zu konzentrieren. Diese Fortschritte sind jedoch mit erheblichen Risiken und Herausforderungen verbunden, insbesondere hinsichtlich der Sicherheit und Vertrauenswürdigkeit des generierten Codes. So haben Studien gezeigt, dass ein beträchtlicher Teil der von KI generierten Codebeispiele für schwerwiegende Sicherheitslücken anfällig sein kann, was ein gründliches Verständnis der Auswirkungen dieser Modelle auf die Software-Sicherheit erfordert. Ziel dieser Dissertation ist es, sowohl die Fähigkeiten als auch die damit verbundenen Risiken von KI-Codegenerierungsmodellen in verschiedenen Dimensionen zu untersuchen, wobei der Schwerpunkt auf automatischer Programmreparatur, Reverse Engineering, Out-of-Distribution (OOD) Generalisierung und Softwaresicherheit liegt. Wir beginnen mit der Untersuchung der Fähigkeiten von neural Codegenerierungsmodellen, insbesondere bei der Automatisierung von Programmreparaturen und dem Reverse-Engineering von Black-Box-Funktionen. Die automatische Behebung von häufigen Programmierfehlern - wie fehlende Bereichsbegrenzer oder falsche Symbole - kann die Produktivität von Entwicklern auf verschiedenen Erfahrungsstufen erheblich steigern. Das von uns vorgeschlagene Modell, das als tiefer konditionaler Variations-Autoencoder konzipiert ist, generiert mehrere potenzielle Korrekturen für einen gegebenen fehlerhaften Code und verbessert so die Vielfalt und Genauigkeit der Reparaturen im Vergleich zu bestehenden Methoden. In ähnlicher Weise zeigt unser Ansatz zum Reverse-Engineering von Black-Box-Funktionen durch einen iterativen neuronalen Programmsynthesizer die Fähigkeit des Modells, die zugrunde liegende Funktionalität ohne Zugang zu privilegierten Informationen aufzudecken. Im zweiten Teil befassen wir uns mit den Risiken und Herausforderungen, die mit diesen Modellen verbunden sind, insbesondere im Hinblick auf die OOD-Verallgemeinerung und Software-Sicherheitsprobleme. Unsere Arbeit umfasst die Entwicklung eines systematischen Ansatzes zur Simulation von OOD-Szenarien für die Codedaten in verschiedenen Dimensionen und zeigt, dass selbst modernste Modelle Schwierigkeiten bei der Verallgemeinerung auf seltene oder unbekannte Codestrukturen haben. Darüber hinaus schlagen wir eine neuartige Methode zur automatischen Evaluierung von KI-Codegenerierungsmodellen im Hinblick auf die Generierung von anfälligem Code vor. Durch die Generierung von Aufforderungen, die die Modelle zur Generierung anfälliger Code-Instanzen führen können, bieten wir einen umfassenden Maßstab für die Bewertung der Software-Sicherheitsprobleme, die von diesen Modellen aufgeworfen werden können. Motiviert durch die Häufigkeit von verwundbaren Codebeispielen, die von KI-Modellen generiert werden, konzentrieren wir uns im dritten Teil auf das Ziel der sicheren Codegenerierung, indem wir HexaCoder vorschlagen, eine Methode zur Feinabstimmung von Codegenerierungsmodellen, um so deren Fähigkeit zur Generierung von sicherem Code zu verbessern. HexaCoder verwendet modernste Modelle und ein Sicherheitsorakel, um automatisch Paare von anfälligen und sicheren Codebeispielen zu synthetisieren. Dieser generierte Datensatz wird dann für die Feinabstimmung des Modells genutzt. Unser Ansatz reduziert das Auftreten von Schwachstellen im generierten Code erheblich und trägt so zu einem sichereren KI-Modell für die Softwareentwicklung bei. Mit diesen Beiträgen bestrebt diese Dissertation die Fähigkeiten der KI bei der Codegenerierung zu verbessern und die Bedeutung der Behandlung von Fragen der Zuverlässigkeit und Softwaresicherheit von KI-Codegenerierungsmodellen hervorzuheben. Durch die Fokussierung auf automatisierte Programmreparatur, Reverse-Engineering, OOD-Generalisierung und sichere Codegenerierung liefern wir neue Erkenntnisse zur Verbesserung der Fähigkeiten und Sicherheit von KI-Codegenerierungsmodellen. Unsere Arbeit unterstreicht die Bedeutung der Entwicklung zuverlässigerer und vertrauenswürdigerer KI-Modelle und ebnet den Weg für eine sicherere und effektivere Integration von KI in der Zukunft der Softwareentwicklung.
Link zu diesem Datensatz: urn:nbn:de:bsz:291--ds-440162
hdl:20.500.11880/39390
http://dx.doi.org/10.22028/D291-44016
Erstgutachter: Fritz, Mario
Tag der mündlichen Prüfung: 8-Jan-2025
Datum des Eintrags: 16-Jan-2025
Fakultät: MI - Fakultät für Mathematik und Informatik
Fachrichtung: MI - Informatik
Professur: MI - Prof. Dr. Mario Fritz
Sammlung:SciDok - Der Wissenschaftsserver der Universität des Saarlandes

Dateien zu diesem Datensatz:
Datei Beschreibung GrößeFormat 
Thesis_Hossein_Hajipour.pdfPhD Dissertation13,5 MBAdobe PDFÖffnen/Anzeigen


Diese Ressource wurde unter folgender Copyright-Bestimmung veröffentlicht: Lizenz von Creative Commons Creative Commons