Das Codieren mit großen Sprachmodellen (LLMs) ist vielversprechend, deckt aber auch einige seit langem bestehende Mängel in der Software program auf: Code, der chaotisch ist, sich nur schwer sicher ändern lässt und oft nicht clear macht, was wirklich unter der Haube passiert. Forscher am Pc Science and Synthetic Intelligence Laboratory (CSAIL) des MIT planen einen „modulareren“ Weg.

Ihr neuer Ansatz unterteilt Systeme in „Konzepte“, separate Teile eines Programs, von denen jeder darauf ausgelegt ist, eine Aufgabe intestine zu erfüllen, und „Synchronisationen“, explizite Regeln, die genau beschreiben, wie diese Teile zusammenpassen. Das Ergebnis ist eine Software program, die modularer, transparenter und verständlicher ist. Eine kleine domänenspezifische Sprache (DSL) ermöglicht es, Synchronisationen einfach und in einer Type auszudrücken, die LLMs zuverlässig generieren können. In einer Fallstudie aus der Praxis zeigte das Workforce, wie diese Methode Funktionen zusammenführen kann, die sonst über mehrere Dienste verteilt wären.

Das Workforce, bestehend aus Daniel Jackson, einem MIT-Professor für Elektrotechnik und Informatik (EECS) und stellvertretender CSAIL-Direktor, und Eagon Meng, einem EECS-Doktoranden, CSAIL-Accomplice und Designer des neuen Synchronisations-DSL, untersucht diesen Ansatz in seinem Artikel „Was Sie sehen, ist, was es tut: Ein Strukturmuster für lesbare Software program„, das sie im Oktober auf der Splash-Konferenz in Singapur vorstellten. Die Herausforderung, so erklären sie, besteht darin, dass in den meisten modernen Systemen eine einzelne Funktion nie völlig eigenständig ist. Das Hinzufügen einer „Teilen“-Schaltfläche zu einer sozialen Plattform wie Instagram beispielsweise ist nicht in nur einem Dienst verankert. Seine Funktionalität ist auf Code aufgeteilt, der das Posten, die Benachrichtigung, die Authentifizierung von Benutzern und mehr übernimmt. Alle diese Teile müssen, obwohl sie über den Code verstreut sind, sorgfältig aufeinander abgestimmt werden, und jede Änderung birgt das Risiko unbeabsichtigter Nebenwirkungen an anderer Stelle.

Jackson nennt diese „Funktionsfragmentierung“ ein zentrales Hindernis für die Softwarezuverlässigkeit. „Bei der Artwork und Weise, wie wir heute Software program erstellen, ist die Funktionalität nicht lokalisiert. Sie möchten verstehen, wie „Sharing“ funktioniert, aber Sie müssen an drei oder vier verschiedenen Stellen danach suchen, und wenn Sie sie finden, sind die Verbindungen im Low-Stage-Code vergraben“, sagt Jackson.

Konzepte und Synchronisationen sollen dieses Drawback angehen. Ein Konzept bündelt eine einzelne, zusammenhängende Funktionalität wie Teilen, Liken oder Folgen sowie seinen Standing und die Aktionen, die es ausführen kann. Synchronisierungen hingegen beschreiben auf einer höheren Ebene, wie diese Konzepte interagieren. Anstatt unübersichtlichen Low-Stage-Integrationscode zu schreiben, können Entwickler eine kleine domänenspezifische Sprache verwenden, um diese Verbindungen direkt zu formulieren. In diesem DSL sind die Regeln einfach und klar: Die Aktion eines Konzepts kann ein anderes auslösen, sodass eine Änderung in einem Zustand mit einem anderen synchron gehalten werden kann.

„Stellen Sie sich Konzepte als Module vor, die völlig sauber und unabhängig sind. Synchronisierungen wirken dann wie Verträge – sie sagen genau, wie Konzepte interagieren sollen. Das ist wirkungsvoll, weil es das System sowohl für Menschen einfacher zu verstehen als auch für Instruments wie LLMs einfacher macht, es korrekt zu generieren“, sagt Jackson. „Warum können wir Code nicht wie ein Buch lesen? Wir glauben, dass Software program im Sinne unseres Verständnisses lesbar und geschrieben sein sollte: Unsere Hoffnung ist, dass Konzepte auf bekannte Phänomene abgebildet werden und Synchronisierungen unsere Instinct darüber widerspiegeln, was passiert, wenn sie zusammenkommen“, sagt Meng.

Die Vorteile gehen über die Klarheit hinaus. Da Synchronisierungen explizit und deklarativ sind, können sie von einem LLM analysiert, verifiziert und natürlich generiert werden. Dies öffnet die Tür zu einer sichereren, stärker automatisierten Softwareentwicklung, bei der KI-Assistenten neue Funktionen vorschlagen können, ohne dass versteckte Nebenwirkungen auftreten.

In ihrer Fallstudie ordneten die Forscher Funktionen wie Liken, Kommentieren und Teilen jeweils einem einzelnen Konzept zu – ähnlich einer Microservices-Architektur, aber modularer. Ohne dieses Muster waren diese Funktionen auf viele Dienste verteilt, sodass sie schwer zu finden und zu testen waren. Mithilfe des Konzepts-und-Synchronisations-Ansatzes wurde jedes Merkmal zentralisiert und lesbar, während die Synchronisationen genau darlegten, wie die Konzepte interagierten.

Die Studie zeigte auch, wie Synchronisierungen häufige Probleme wie Fehlerbehandlung, Antwortformatierung oder dauerhafte Speicherung ausschließen können. Anstatt diese Particulars in jeden Dienst einzubetten, können sie durch die Synchronisierung nur einmal verarbeitet werden, wodurch die Konsistenz im gesamten System gewährleistet wird.

Auch fortgeschrittenere Richtungen sind möglich. Synchronisierungen könnten verteilte Systeme koordinieren, Replikate auf verschiedenen Servern im Gleichschritt halten oder gemeinsam genutzten Datenbanken eine saubere Interaktion ermöglichen. Eine Schwächung der Synchronisationssemantik könnte eine letztendliche Konsistenz ermöglichen und gleichzeitig die Klarheit auf der Architekturebene bewahren.

Jackson sieht Potenzial für einen umfassenderen kulturellen Wandel in der Softwareentwicklung. Eine Idee ist die Erstellung von „Konzeptkatalogen“, gemeinsamen Bibliotheken bewährter, domänenspezifischer Konzepte. Bei der Anwendungsentwicklung könnte es dann weniger darum gehen, Code von Grund auf zusammenzufügen, als vielmehr darum, die richtigen Konzepte auszuwählen und die Synchronisierungen zwischen ihnen zu schreiben. „Konzepte könnten zu einer neuen Artwork von Programmiersprache auf hohem Niveau werden, mit Synchronisationen als in dieser Sprache geschriebenen Programmen.“

„Es ist eine Möglichkeit, die Zusammenhänge in der Software program sichtbar zu machen“, sagt Jackson. „Heute verbergen wir diese Zusammenhänge im Code. Aber wenn man sie explizit sehen kann, kann man auf einer viel höheren Ebene über die Software program nachdenken. Man muss sich immer noch mit der inhärenten Komplexität der interagierenden Funktionen auseinandersetzen. Aber jetzt ist es offen, nicht verstreut und verdeckt.“

„Das Erstellen von Software program für den menschlichen Gebrauch auf der Grundlage von Abstraktionen zugrunde liegender Computermaschinen hat die Welt mit Software program belastet, deren Verständnis und Verwendung allzu oft kostspielig, frustrierend und sogar gefährlich ist“, sagt Kevin Sullivan, Affiliate Professor an der College of Virginia, der nicht an der Forschung beteiligt battle. „Die Auswirkungen (z. B. im Gesundheitswesen) waren verheerend. Meng und Jackson drehen das Drehbuch um und bestehen darauf, interaktive Software program auf der Grundlage von Abstraktionen des menschlichen Verständnisses zu entwickeln, die sie „Konzepte“ nennen. Sie kombinieren ausdrucksstarke mathematische Logik und natürliche Sprache, um solche zielgerichteten Abstraktionen zu spezifizieren und eine Grundlage für die Überprüfung ihrer Bedeutungen, ihre Zusammensetzung zu Systemen und ihre Verfeinerung in für den menschlichen Gebrauch geeignete Programme zu schaffen. Es ist eine neue und wichtige Richtung in der Theorie und Praxis des Softwaredesigns, die es wert ist, beobachtet zu werden.“

„Seit vielen Jahren ist klar, dass wir bessere Möglichkeiten brauchen, um zu beschreiben und zu spezifizieren, was Software program tun soll“, fügt Thomas Ball, Honorarprofessor der Lancaster College und angegliederte Fakultät der College of Washington, hinzu, der ebenfalls nicht an der Forschung beteiligt battle. „Die Fähigkeit von LLMs, Code zu generieren, hat das Spezifikationsfeuer nur noch weiter angeheizt. Die Arbeit von Meng und Jackson zum Konzeptdesign bietet eine vielversprechende Möglichkeit, auf modulare Weise zu beschreiben, was wir von Software program erwarten. Ihre Konzepte und Spezifikationen eignen sich intestine für die Kombination mit LLMs, um die Absicht des Designers zu erreichen.“

Mit Blick auf die Zukunft hoffen die Forscher, dass ihre Arbeit Einfluss darauf haben kann, wie Industrie und Wissenschaft über Softwarearchitektur im Zeitalter der KI denken. „Wenn Software program vertrauenswürdiger werden soll, brauchen wir Schreibweisen, die ihre Absichten clear machen“, sagt Jackson. „Konzepte und Synchronisationen sind ein Schritt in Richtung dieses Ziels.“

Diese Arbeit wurde teilweise von der Machine Studying Purposes (MLA) Initiative der CSAIL Alliances finanziert. Zum Zeitpunkt der Finanzierung bestand der Vorstand der Initiative aus British Telecom, Cisco und Ernst and Younger.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert