Inhaltsverzeichnis
Software-Engineering = Interaktionsprotokoll
Multitask-Modell in der Softwareentwicklung
Bauen Sie einen Programmierer für das KI-Modell zusammen
Heim Technologie-Peripheriegeräte KI Google stellt sein eigenes „AI+ Software Engineering'-Framework DIDACT vor: Tausende Entwickler haben es intern getestet und alle sagen, dass es nach der Verwendung äußerst produktiv ist

Google stellt sein eigenes „AI+ Software Engineering'-Framework DIDACT vor: Tausende Entwickler haben es intern getestet und alle sagen, dass es nach der Verwendung äußerst produktiv ist

Jun 07, 2023 pm 05:25 PM
ai 开发

Jede umfangreiche Software wird nicht von Anfang an vollständig konzipiert, sondern von Entwicklern verbessert, bearbeitet, in Einheiten getestet, repariert, Codeüberprüfungen gelöst und Probleme werden wiederholt gelöst, bis die Online-Anforderungen erfüllt sind Repository.

Das Wissen über die Steuerung des gesamten Prozesses wird als Software Engineering bezeichnet.

Software-Engineering ist kein unabhängiger Prozess, sondern besteht aus der Kommunikation zwischen Entwicklern, Code-Reviewern, Bug-Reportern, Software-Architekten und verschiedenen Entwicklungstools (wie Compilern, Unit-Tests, Konnektoren, statischen Analysatoren).

Kürzlich hat Google sein eigenes DIDACT (Dynamic Integrated Developer ACTivity, dynamische integrierte Entwickleraktivität) -Framework angekündigt, das KI-Technologie zur Verbesserung der Softwareentwicklung nutzt und den Zwischenstatus der Softwareentwicklung als Trainingsdaten nutzt, um Entwickler beim Schreiben zu unterstützen , Ändern Sie Code und erfahren Sie mehr über Softwareentwicklung in Echtzeit.

Google stellt sein eigenes „AI+ Software Engineering-Framework DIDACT vor: Tausende Entwickler haben es intern getestet und alle sagen, dass es nach der Verwendung äußerst produktiv ist

DIDACT ist ein Multitasking-Modell, das auf Entwicklungsaktivitäten wie Bearbeiten, Debuggen, Korrigieren und Codeüberprüfung trainiert ist.

Die Forscher haben intern drei DIDACT-Tools entwickelt und bereitgestellt: Annotation-Parsing und Build-Reparatur und Hinweisvorhersage: Jedes Tool wird in einer anderen Phase des Entwicklungsworkflows integriert.

Software-Engineering = Interaktionsprotokoll

Seit Jahrzehnten speichert die Software-Engineering-Toolchain von Google jeden Code-bezogenen Vorgang als Interaktionsprotokoll zwischen dem Tool und dem Entwickler.

Im Prinzip können Benutzer diese Datensätze verwenden, um den wichtigsten Änderungsprozess im Softwareentwicklungsprozess im Detail nachzuvollziehen, d. h. wie die Codebasis von Google gebildet wurde, einschließlich aller Codebearbeitungen, Kompilierungen, Kommentare, Variablenumbenennungen usw. .

Das Entwicklungsteam von Google speichert den Code in einem Monorepo (Mono-Repository), einem Code-Repository, das alle Tools und Systeme enthält.

Softwareentwickler experimentieren oft mit Codeänderungen in einem lokalen Copy-on-Write-Arbeitsbereich, der von Clients in the Cloud (CitC)-Systemen verwaltet wird.

Wenn ein Entwickler bereit ist, eine Reihe von Codeänderungen zusammenzufassen, um eine bestimmte Aufgabe zu erfüllen (z. B. das Beheben eines Fehlers), muss eine Änderungsliste (CL) im Codeüberprüfungssystem Critique von Google erstellt werden.

Wie bei herkömmlichen Code-Review-Systemen kommunizieren Entwickler mit Peer-Reviewern über Funktionalität und Stil und bearbeiten dann CL, um Probleme zu beheben, die bei Review-Kommentaren aufgeworfen werden.

Schließlich erklärte der Prüfer den Code „LGTM!“ und fügte den CL in die Codebasis ein.

Natürlich müssen Entwickler neben Gesprächen mit Codeprüfern auch eine große Anzahl von „Dialogen“ mit anderen Software-Engineering-Tools führen, darunter Compiler, Test-Frameworks, Linker, statische Analysatoren, Fuzz-Testtools usw. .

Google stellt sein eigenes „AI+ Software Engineering-Framework DIDACT vor: Tausende Entwickler haben es intern getestet und alle sagen, dass es nach der Verwendung äußerst produktiv ist

Darstellung des komplexen Netzwerks von Aktivitäten bei der Softwareentwicklung: Entwickleraktivitäten, Interaktionen mit Codeprüfern und Aufrufe von Tools wie Compilern.

Multitask-Modell in der Softwareentwicklung

DIDACT nutzt die Interaktion zwischen Ingenieuren und Tools, um Modelle für maschinelles Lernen zu stärken und die Teilnahme von Google-Entwicklern zu unterstützen, indem es Entwickleraktionen bei der Durchführung von Softwareentwicklungsaufgaben vorschlägt oder optimiert. Softwareentwicklungsprozess.

Zu diesem Zweck definierten die Forscher eine Reihe von Aufgaben in Bezug auf einzelne Entwickleraktivitäten: Beheben defekter Builds, Vorhersage von Code-Review-Kommentaren, Verarbeiten von Code-Review-Kommentaren, Umbenennen von Variablen, Bearbeiten von Dateien usw.

Dann definieren Sie ein gemeinsames Formular für jede Aktivität: Rufen Sie einen bestimmten Status (Codedatei), eine Absicht (eine für eine Aktivität spezifische Annotation, z. B. eine Annotation zur Codeüberprüfung oder einen Compilerfehler) ab und generieren Sie eine Aktion (zur Verarbeitung verwendete Aktionen). Aufgaben).

Action ist wie eine Mini-Programmiersprache, die um neu hinzugefügte Aktivitäten erweitert werden kann, darunter Bearbeiten, Hinzufügen von Kommentaren, Umbenennen von Variablen, Markieren von Codefehlern usw. Diese Sprache kann auch DevScript genannt werden.

Die Eingabeaufforderungen des DIDACT-Modells sind Aufgaben, Codeausschnitte und Kommentare im Zusammenhang mit der Aufgabe, und die Ausgabe sind Entwicklungsaktionen wie Bearbeitungen oder Kommentare

State-Intent-Action (State-Intent-Action) Definitionsformular Da DevScript in der Lage ist, verschiedene Aufgaben auf vielseitige Weise zu erfassen, und was noch wichtiger ist, kann es komplexe Aktionen prägnant ausdrücken, ohne dass der gesamte Status (Originalcode) nach dem Auftreten der Aktion ausgegeben werden muss, wodurch das Modell effektiver und interpretierbarer wird.

Zum Beispiel kann das Umbenennen mehrere Stellen in der Codedatei ändern, aber das Modell muss nur einen Umbenennungsvorgang vorhersagen.

Bauen Sie einen Programmierer für das KI-Modell zusammen

DIDACT eignet sich sehr gut für persönliche Hilfsaufgaben. Das folgende Beispiel zeigt beispielsweise die Codebereinigungsarbeit von DIDACT nach Abschluss der Funktion, indem zunächst die letzten Kommentare des Codeprüfers eingegeben werden (beschriftet). (Mensch im Bild) und prognostizieren Sie dann die Operationen, die zur Lösung des in der Anmerkung angesprochenen Problems erforderlich sind (dargestellt mit diff).

... Die multimodale Natur von Python hat auch zu einigen neuen Verhaltensweisen geführt, die sich bei der Skalierung ergeben. Eine dieser Funktionen ist die Erweiterung des Verlaufs, die über Eingabeaufforderungen aktiviert werden kann, um zu erfahren, was der Entwickler in letzter Zeit getan hat.

Google stellt sein eigenes „AI+ Software Engineering-Framework DIDACT vor: Tausende Entwickler haben es intern getestet und alle sagen, dass es nach der Verwendung äußerst produktiv ist

Demonstration der verlaufsverstärkten Codevervollständigung


Google stellt sein eigenes „AI+ Software Engineering-Framework DIDACT vor: Tausende Entwickler haben es intern getestet und alle sagen, dass es nach der Verwendung äußerst produktiv istDie Aufgabe zur verlaufsverstärkten Codevervollständigung kann diese Fähigkeit demonstrieren Bewegen Sie den Cursor in das Dokument (2). Basierend auf dem Bearbeitungsverlauf des Entwicklers und der Cursorposition ist das Modell in der Lage, den Docstring-Eintrag für den neuen Parameter genau vorherzusagen und den dritten Schritt abzuschließen.

Bei der schwierigeren Aufgabe der geschichtsgestützten Bearbeitungsvorhersage ist das Modell in der Lage, den Ort der nächsten Bearbeitung auf historisch konsistente Weise auszuwählen.

Demonstration der Bearbeitungsvorhersage über mehrere verkettete Iterationen

Google stellt sein eigenes „AI+ Software Engineering-Framework DIDACT vor: Tausende Entwickler haben es intern getestet und alle sagen, dass es nach der Verwendung äußerst produktiv istWenn der Entwickler das Funktionsargument (1) entfernt, kann das Modell Dokumentzeichen für die entfernte Argumentzeichenfolge (2) historisch korrekt vorhersagen und wird aktualisiert (ohne dass der menschliche Entwickler den Cursor manuell dort platzieren muss) und die Anweisung in Funktion (3) wird syntaktisch (und möglicherweise auch semantisch) korrekt aktualisiert.

Mit der Historie kann das Modell eindeutig entscheiden, wie der „Code-Bearbeitungsprozess“ korrekt fortgesetzt wird, während das Modell ohne Historie keine Möglichkeit hat zu wissen, dass die fehlenden Funktionsparameter beabsichtigt waren (da der Entwickler an einer längeren Version gearbeitet hat). Bearbeitungsvorgang zum Entfernen des Parameters) oder eine unerwartete Situation (das Modell sollte den Parameter erneut hinzufügen, um das Problem zu beheben).

Darüber hinaus kann das Modell auch weitere Aufgaben erledigen, z. B. von einer leeren Datei ausgehen und vom Modell verlangen, die nächsten Bearbeitungsvorgänge kontinuierlich vorherzusagen, bis eine vollständige Codedatei geschrieben ist.

Das Beste daran ist, dass dieses Modell Schritt für Schritt beim Schreiben von Code hilft, was für Entwickler selbstverständlich ist:

Erstellen Sie zunächst einen vollständigen Job mit Importen, Flags und einem grundlegenden Hauptfunktions-Framework Fügen Sie schrittweise neue Funktionen hinzu, z. B. das Lesen und Schreiben von Ergebnissen aus Dateien und die Möglichkeit, bestimmte Zeilen basierend auf vom Benutzer bereitgestellten regulären Ausdrücken zu filtern.

Fazit

DIDACT wandelt den Softwareentwicklungsprozess von Google in Trainingsdemos für Entwicklerassistenten für maschinelles Lernen um und verwendet diese Demodaten, um Modelle zu trainieren, Code Schritt für Schritt zu erstellen und mit Tools und Codeprüfern zu interagieren.

DIDACT-Methoden ergänzen die großartigen Errungenschaften groß angelegter Sprachmodelle von Google und anderen Unternehmen, um die Arbeitsbelastung zu reduzieren, die Produktivität zu steigern und die Qualität der Arbeit von Softwareentwicklern zu verbessern.

Das obige ist der detaillierte Inhalt vonGoogle stellt sein eigenes „AI+ Software Engineering'-Framework DIDACT vor: Tausende Entwickler haben es intern getestet und alle sagen, dass es nach der Verwendung äußerst produktiv ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CentOS Shutdown -Befehlszeile CentOS Shutdown -Befehlszeile Apr 14, 2025 pm 09:12 PM

Der Befehl centOS stilldown wird heruntergefahren und die Syntax wird von [Optionen] ausgeführt [Informationen]. Zu den Optionen gehören: -h das System sofort stoppen; -P schalten Sie die Leistung nach dem Herunterfahren aus; -r neu starten; -t Wartezeit. Zeiten können als unmittelbar (jetzt), Minuten (Minuten) oder als bestimmte Zeit (HH: MM) angegeben werden. Hinzugefügten Informationen können in Systemmeldungen angezeigt werden.

Was sind die Backup -Methoden für Gitlab auf CentOS? Was sind die Backup -Methoden für Gitlab auf CentOS? Apr 14, 2025 pm 05:33 PM

Backup- und Wiederherstellungsrichtlinie von GitLab im Rahmen von CentOS -System Um die Datensicherheit und Wiederherstellung der Daten zu gewährleisten, bietet GitLab on CentOS eine Vielzahl von Sicherungsmethoden. In diesem Artikel werden mehrere gängige Sicherungsmethoden, Konfigurationsparameter und Wiederherstellungsprozesse im Detail eingeführt, um eine vollständige GitLab -Sicherungs- und Wiederherstellungsstrategie aufzubauen. 1. Manuell Backup Verwenden Sie den GitLab-RakegitLab: Backup: Befehl erstellen, um die manuelle Sicherung auszuführen. Dieser Befehl unterstützt wichtige Informationen wie GitLab Repository, Datenbank, Benutzer, Benutzergruppen, Schlüssel und Berechtigungen. Die Standardsicherungsdatei wird im Verzeichnis/var/opt/gitlab/backups gespeichert. Sie können /etc /gitlab ändern

So überprüfen Sie die CentOS -HDFS -Konfiguration So überprüfen Sie die CentOS -HDFS -Konfiguration Apr 14, 2025 pm 07:21 PM

Vollständige Anleitung zur Überprüfung der HDFS -Konfiguration in CentOS -Systemen In diesem Artikel wird die Konfiguration und den laufenden Status von HDFS auf CentOS -Systemen effektiv überprüft. Die folgenden Schritte helfen Ihnen dabei, das Setup und den Betrieb von HDFs vollständig zu verstehen. Überprüfen Sie die Hadoop -Umgebungsvariable: Stellen Sie zunächst sicher, dass die Hadoop -Umgebungsvariable korrekt eingestellt ist. Führen Sie im Terminal den folgenden Befehl aus, um zu überprüfen, ob Hadoop ordnungsgemäß installiert und konfiguriert ist: Hadoopsion-Check HDFS-Konfigurationsdatei: Die Kernkonfigurationsdatei von HDFS befindet sich im/etc/hadoop/conf/verzeichnis, wobei core-site.xml und hdfs-site.xml von entscheidender Bedeutung sind. verwenden

Was sind die Methoden zur Abstimmung der Leistung von Zookeeper auf CentOS Was sind die Methoden zur Abstimmung der Leistung von Zookeeper auf CentOS Apr 14, 2025 pm 03:18 PM

Die Zookeper -Leistungsstimmung auf CentOS kann von mehreren Aspekten beginnen, einschließlich Hardwarekonfiguration, Betriebssystemoptimierung, Konfigurationsparameteranpassung, Überwachung und Wartung usw. Hier finden Sie einige spezifische Tuning -Methoden: SSD wird für die Hardwarekonfiguration: Da die Daten von Zookeeper an Disk geschrieben werden, wird empfohlen, SSD zu verbessern, um die I/O -Leistung zu verbessern. Genug Memory: Zookeeper genügend Speicherressourcen zuweisen, um häufige Lesen und Schreiben von häufigen Festplatten zu vermeiden. Multi-Core-CPU: Verwenden Sie Multi-Core-CPU, um sicherzustellen, dass Zookeeper es parallel verarbeiten kann.

Wie ist die GPU -Unterstützung für Pytorch bei CentOS? Wie ist die GPU -Unterstützung für Pytorch bei CentOS? Apr 14, 2025 pm 06:48 PM

Aktivieren Sie die Pytorch -GPU -Beschleunigung am CentOS -System erfordert die Installation von CUDA-, CUDNN- und GPU -Versionen von Pytorch. Die folgenden Schritte führen Sie durch den Prozess: Cuda und Cudnn Installation Bestimmen Sie die CUDA-Version Kompatibilität: Verwenden Sie den Befehl nvidia-smi, um die von Ihrer NVIDIA-Grafikkarte unterstützte CUDA-Version anzuzeigen. Beispielsweise kann Ihre MX450 -Grafikkarte CUDA11.1 oder höher unterstützen. Download und installieren Sie Cudatoolkit: Besuchen Sie die offizielle Website von Nvidiacudatoolkit und laden Sie die entsprechende Version gemäß der höchsten CUDA -Version herunter und installieren Sie sie, die von Ihrer Grafikkarte unterstützt wird. Installieren Sie die Cudnn -Bibliothek:

Detaillierte Erklärung des Docker -Prinzips Detaillierte Erklärung des Docker -Prinzips Apr 14, 2025 pm 11:57 PM

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

CentOS installieren MySQL CentOS installieren MySQL Apr 14, 2025 pm 08:09 PM

Die Installation von MySQL auf CentOS umfasst die folgenden Schritte: Hinzufügen der entsprechenden MySQL Yum -Quelle. Führen Sie den Befehl mySQL-server aus, um den MySQL-Server zu installieren. Verwenden Sie den Befehl mySQL_SECURE_INSTALLATION, um Sicherheitseinstellungen vorzunehmen, z. B. das Festlegen des Stammbenutzerkennworts. Passen Sie die MySQL -Konfigurationsdatei nach Bedarf an. Tune MySQL -Parameter und optimieren Sie Datenbanken für die Leistung.

CentOS8 startet SSH CentOS8 startet SSH Apr 14, 2025 pm 09:00 PM

Der Befehl zum Neustart des SSH -Dienstes lautet: SystemCTL Neustart SSHD. Detaillierte Schritte: 1. Zugriff auf das Terminal und eine Verbindung zum Server; 2. Geben Sie den Befehl ein: SystemCTL Neustart SSHD; 1. Überprüfen Sie den Dienststatus: SystemCTL -Status SSHD.

See all articles