Stummel Itamar Friedman, CEO und Mitbegründer von CodiumAI – Interviewreihe – Unite.AI
Vernetzen Sie sich mit uns

Interviews

Itamar Friedman, CEO und Mitbegründer von CodiumAI – Interviewreihe

mm

Veröffentlicht

 on

Itamar Friedman ist CEO und Mitbegründer von Codium KI. Codium konzentriert sich auf die „Codeintegrität“-Seite der Codegenerierung – die Generierung automatisierter Tests, Codeerklärungen und Überprüfungen. Sie haben Forschungsergebnisse zur Generierung von Codelösungen für wettbewerbsorientierte Programmierherausforderungen veröffentlicht, die Google DeepMind übertreffen.

Wann und wie haben Sie sich erstmals für KI interessiert?

2009 arbeitete ich bei Mellanox (Acq. by NVIDIA) und studierte Elektrotechnik. Als mir klar wurde, dass viele der langwierigen Entwicklungsprozesse in Mellanox durch maschinelle Lernalgorithmen automatisiert werden könnten, wechselte ich meine Hauptfächer auf Optimierung und maschinelles Lernen und schloss einen MSc in diesem Bereich ab. Im Jahr 2010 arbeitete ich bereits an einem Deep-Learning-Projekt (mit einem dreischichtigen tiefen neuronalen Netzwerk) und legte damit den Grundstein für meine Zeit bei Alibaba, wo ich eine Forschungsgruppe leitete, die sich auf die Suche nach neuronalen Architekturen, das Training von Modellen und die Entwicklung von AutoML-Tools für Entwickler spezialisierte. Um das Jahr 3 herum schämte ich mich nicht, unsere Arbeit „KI“ zu nennen, da große Sprachmodelle zu mächtigen Werkzeugen wurden und meine Vorstellungskraft darüber, was mit ihnen erreicht werden konnte, wuchs.

Ihr früheres auf Computer Vision fokussiertes Startup Visualead wurde schließlich von der Alibaba Group übernommen. Was war dieses Startup und was waren einige Ihrer wichtigsten Erkenntnisse aus dieser Erfahrung?

Visualead hat sich auf das Scannen von Logos, QR-Codes und allem dazwischen spezialisiert, einschließlich des Sicherns und Verbergens von Informationen in Bildern, um sichere P2P-Transaktionen und -Interaktionen zu ermöglichen. Bei Visualead führen wir seit 2012 Algorithmen auf Mobilgeräten aus, darunter auch Modelle. Damals war dies eine Herausforderung und knifflig, und wir haben viel über den Aufbau effizienter Modelle und Leitplanken rund um diese statistischen Kreaturen gelernt.

Bis heute wende ich die Erkenntnisse aus dieser Zeit auf aktuelle Projekte an, die ich durchführe – zum Beispiel bei der Entwicklung des Open-Source-Tools zur Lösungsgenerierung AlphaCodium Wir haben das Konzept des Flow Engineering eingeführt und dieses Konzept angewendet, um einen Fluss zu erstellen, um die Ausgabe von LLM-Modellen zu begrenzen.

Könnten Sie die Entstehungsgeschichte hinter der Einführung von CodiumAI erzählen?

Bei Alibaba habe ich aus erster Hand gesehen, wie ein Fehler im Code zu einem Millionen-Dollar-Problem führen kann und vor welchen Herausforderungen Entwickler stehen, um mit der Codegenerierung Schritt zu halten, ohne Abstriche bei Qualität oder Integrität zu machen. Dieses Problem besteht weiterhin, und heute wird minderwertiger Code einem immer größer werdenden Billionen-Dollar-Problem zugeschrieben.

Das Team von CodiumAI ist auf die Entwicklung KI-gestützter Tools im großen Maßstab spezialisiert und ist bestrebt, die Schwachstellen anzugehen, mit denen Entwickler konfrontiert sind. Mit der Einführung neuer LLM- und KI-Funktionen erkannten wir, dass dies unsere Chance war, eine ganzheitliche Code-Integritätsplattform aufzubauen, um vielbeschäftigten Teams wie uns dabei zu helfen, Fehler zu reduzieren und andere Integritätsprobleme zu entschärfen. Da immer mehr Code durch KI generiert wurde, wurde das Problem, diesen Code zu vergleichen und sicherzustellen, dass er wie beabsichtigt funktioniert, zu einem kritischen Problem, das wir unbedingt lösen wollten. Die Entwicklung KI-gestützter Tools im großen Maßstab und daher ist Benchmarking für uns ein wesentliches Konzept.

Als Gruppe erfahrener Entwickler verstehen wir es; Die Bewältigung mühsamer Aufgaben wie Tests und Codeüberprüfungen kann frustrierend sein. Wir sind sehr missionsorientiert, um vielbeschäftigten Teams endlich die Möglichkeit zu geben, ihre Codeintegrität zu erhöhen und zu verwalten.

Können Sie beschreiben, welche Arten von nicht-trivialen Analysen CodiumAI am Code durchführt und wie dies Entwickler bei der Verbesserung der Codequalität unterstützt?

Bis vor Kurzem boten die bestehenden Tools, die Entwicklern zur Verfügung standen, wenig Wert – aber mit der Einführung von LLMs (ChatGPT, Copilot usw.) beginnen die Fähigkeiten die Erwartungen zu übertreffen, und der Support, der Entwicklern zur Verfügung steht, ist nicht mehr trivial.

Der von CodiumAI entwickelte Codiumate Coding-Agent bietet Entwicklern einzigartige Tools zur Verbesserung ihres Arbeitsablaufs und zur Verbesserung der Codegenerierung. Codiumate rationalisiert den Entwicklungsprozess, indem es während der gesamten Codierungsaufgabe automatisierte Unterstützung bietet. Mithilfe der vorhandenen Codeausschnitte, die ein menschlicher Entwickler in seiner Umgebung hervorhebt, kann der Agent automatisch einen leicht verständlichen und zusammenhängenden Entwicklungsplan entwerfen, Code entsprechend diesem Plan schreiben, doppelten Code identifizieren, den der Entwickler möglicherweise verwenden oder entfernen möchte, und eine Dokumentation entwerfen und schlagen Tests vor, um sicherzustellen, dass der Code ordnungsgemäß funktioniert, bevor er in einer Live-Umgebung bereitgestellt wird.

Codiumate bietet Entwicklern eine detaillierte Verhaltensanalyse, die mögliche Verhaltensweisen und Verzweigungen beleuchtet, die der zu testende Code umfasst. Dies ermöglicht es dem Entwickler, den generierten Code zu untersuchen und Tests zu erstellen, die (Zweig-) alle Verhaltensweisen abdecken, wodurch der Code stärker verbessert wird, als wenn der Entwickler alle möglichen Fälle selbst berücksichtigt hätte.

Welche spezifischen Funktionalitäten bietet der PR-Agent für die Pull-Request-Analyse und wie optimiert er den Überprüfungsprozess auf Plattformen wie GitHub und GitLab?

Der PR-Agent bietet eine Vielzahl von Funktionen, die darauf ausgelegt sind, den Analyse- und Überprüfungsprozess für Pull Requests (PR) bei verschiedenen Git-Anbietern zu verbessern und zu rationalisieren.

Die automatische PR-Beschreibungsgenerierung generiert automatisch umfassende und detaillierte Beschreibungen für Pull-Requests. Diese Funktion behebt häufige Probleme, bei denen Entwickler aus Zeitgründen oder aus Versehen detaillierte PR-Beschreibungen überspringen könnten. Mit automatisierten Beschreibungen ist jeder PR mit ausreichend Kontext ausgestattet, sodass Prüfer die Änderungen leichter verstehen können, ohne die Codeunterschiede ausführlich entschlüsseln zu müssen. Wir haben auch eine automatische PR-Überprüfung integriert, um Entwicklern einen umfassenden Überblick über die PR zu bieten, sodass sie potenzielle Probleme wie Fehler, Sicherheitslücken oder Code-Smells proaktiv erkennen können. Dieses präventive Feedback ermöglicht es Entwicklern, vor dem Überprüfungsprozess Korrekturen vorzunehmen und so die Qualität des Codes, der die Prüfer erreicht, zu verbessern.

Durch den Einsatz von KI können automatisierte Codevorschläge auch Verbesserungen oder alternative Implementierungen direkt innerhalb der PR-Schnittstelle vorschlagen. Bei diesen Vorschlägen kann es sich um Optimierungen, die Einhaltung von Codierungsstandards oder sogar um Architekturverbesserungen handeln, die dazu beitragen, die Qualität der Codebasis schrittweise zu verbessern.

Der PR-Agent unterstützt zahlreiche Möglichkeiten zur individuellen Anpassung der angebotenen Befehle. Eine der hilfreichsten Anpassungsoptionen ist die Verwendung benutzerdefinierter Labels, um die Organisation und Verwaltung von Pull-Anfragen auf Plattformen wie GitHub und GitLab zu verbessern. Diese Funktionalität trägt zur betrieblichen Effizienz und Klarheit der Entwicklungs- und Überprüfungsprozesse bei.

Wie generiert CodiumAI aussagekräftige Tests und was macht diese Tests effektiver als Standard-Unit-Tests?

Wir verbessern die Testgenerierung, indem wir Code-Repositorys nach relevanten Snippets scannen, die sich auf den zu testenden Code beziehen. Unser Ansatz nutzt Chain-of-Think-Eingabeaufforderungen, um alle potenziellen Verhaltensweisen des Codes, einschließlich typischer Pfade und Randfälle, abzubilden. Er nutzt kontextspezifisches Abrufen und benutzerdefinierte Eingabeaufforderungen, die auf verschiedene Programmiersprachen zugeschnitten sind, und bindet Expertenwissen ein, um sicherzustellen, dass Tests den Industriestandards entsprechen. Darüber hinaus richtet CodiumAI spezielle Laufzeitumgebungen ein, um Fehler besser zu erkennen und Selbstheilungstests zu generieren. Diese Funktionen machen von CodiumAI generierte Tests umfassender als Standard-Unit-Tests, bei denen aufgrund der inhärenten Voreingenommenheit der Entwickler und der Einschränkungen bei der Vorhersage aller möglichen Szenarien häufig unbeabsichtigte Verhaltensweisen übersehen werden. Dies führt zu Tests, die nicht nur gründlich, sondern auch effektiver bei der Aufdeckung subtiler Fehler und Grenzfälle sind.

Was sind laut Benutzerfeedback die am meisten geschätzten Funktionen von CodiumAI und wie haben sich diese Funktionen auf die Produktivität von Entwicklern ausgewirkt?

Basierend auf dem Benutzerfeedback, das wir erhalten haben, sehen wir, dass /ask mit Codeblockkontext und /Testgenerierung Die Funktionen des Codiumate-Agenten sind sehr gefragt und verbessern den Entwickler-Workflow.

Mit der /ask mit Codeblockkontext (siehe Dokumentation hier: /fragen) Entwickler können während einer kostenlosen Chat-Sitzung offene Fragen zu ihrem Code stellen oder Codeverbesserungen oder Überprüfungen anfordern. Diese Funktion ist besonders hilfreich, um ein tieferes Verständnis der Codebasis zu erlangen, da das Modell den vollständigen Kontext des Projekts beibehält und so sehr detaillierte und spezifische Anfragen bearbeiten kann.

Das /Testgenerierung (siehe Dokumentation hier: / TestMit dem Tool können Entwickler mit nur einem Klick umfassende Testsuiten für ihren Code generieren. Das Erforschen des Codeverhaltens, das schnelle Erkennen und Beheben von Fehlern sowie die rasche Erweiterung der Codeabdeckung sind ein großer Vorteil für die Produktivität.

Der PR-Agent /Rezension (siehe Dokumentation hier – /Rezension)-Funktion scannt PR-Codeänderungen und generiert automatisch eine PR-Überprüfung, um Probleme zu erkennen, bevor Entwickler in die Produktion übergehen. Der

/beschreiben (siehe Dokumentation hier – /beschreibenDie Funktion scannt die Änderungen am PR-Code und generiert eine Beschreibung für die PR – Titel, Typ, Zusammenfassung, Komplettlösung und Beschriftungen. Das spart Entwicklern Zeit und Energie, die sie besser auf anspruchsvollere oder kreativere Aufgaben anwenden können.

Wie erkennt CodiumAI Grenzfälle und verdächtiges Verhalten im Code?

Unsere Tools durchsuchen das Repository des Entwicklers nach relevanten Codeausschnitten, die sich auf den zu testenden Code beziehen, und mithilfe von Gedankenketten-Eingabeaufforderungen bilden wir alle möglichen Codeverhaltensweisen ab und zeigen sie dem Entwickler an. CodiumAI kann verdächtiges Verhalten direkt identifizieren (unabhängig von den Testgenerationen), indem es Diskrepanzen oder Inkonsistenzen zwischen verschiedenen Code-Snippets oder Code-Snippets und der zugehörigen Dokumentation erkennt.

CodiumAI unterstützt die wichtigsten Programmiersprachen; Können Sie näher erläutern, wie mit sprachspezifischen Nuancen bei der Codeanalyse und Testgenerierung umgegangen wird?

Für die wichtigsten Programmiersprachen geht unsere Plattform über die grundlegende Unterstützung hinaus, indem sie spezielle Techniken implementiert. Dazu gehören kontextspezifisches Abrufen und benutzerdefinierte Eingabeaufforderungen, die auf die einzigartige Syntax und Semantik jeder Sprache zugeschnitten sind. Diese maßgeschneiderten Eingabeaufforderungen integrieren Expertenwissen in der jeweiligen Sprachdomäne, um Ergebnisse auf Branchenniveau zu erhalten. Darüber hinaus bieten wir Funktionen zum Einrichten einer Laufzeitumgebung speziell für diese Sprachen, wodurch die Fähigkeit unseres Tools verbessert wird, Fehler zu erkennen und Selbstreparaturtests effektiv zu generieren.

Für weniger verbreitete Sprachen nutzen wir große Sprachmodelle (LLMs), die von Natur aus mehrere Programmiersprachen verstehen. Ergänzt wird dies durch unsere allgemeine Kontextinfrastruktur und unser adaptives Eingabeaufforderungssystem, die zusammen eine genaue Codeanalyse und Testgenerierung in verschiedenen Programmierumgebungen ermöglichen. Durch einen zweistufigen Ansatz können wir eine umfassende Betreuung unabhängig von der verwendeten Programmiersprache gewährleisten.

Welche zukünftigen Verbesserungen sind für CodiumAI geplant, um die Aufgaben von Entwicklern weiter zu unterstützen und zu vereinfachen?

Die zukünftige Entwicklungsstrategie von CodiumAI legt den Schwerpunkt auf die Verbesserung der verfügbaren Suite von KI-Tools, um eine nahtlose Integration in allen Phasen des Softwareentwicklungslebenszyklus zu ermöglichen. Durch den Einsatz fortschrittlicher Flow-Engineering-Prinzipien zur Rationalisierung und Vereinfachung der Arbeitsabläufe der Entwickler werden unsere Agenten in verschiedenen Entwicklungsphasen einen erheblichen Mehrwert bieten. Darüber hinaus setzt sich CodiumAI dafür ein, dass diese Tools bei der Handhabung komplexer, realer Code- und Textszenarien hervorragende Leistungen erbringen und sie für alltägliche Programmieraufgaben unverzichtbar machen. Dieser ganzheitliche Ansatz zielt darauf ab, unser Angebot zu einem robusten, täglich einsetzbaren Tool für Entwickler zu machen und die Produktivität und Effizienz im Softwareentwicklungsprozess zu steigern.

Vielen Dank für das tolle Interview, Leser, die mehr erfahren möchten, sollten vorbeischauen Codium KI.

Ein Gründungspartner von unite.AI und Mitglied der Forbes Technology Council, Antoine ist ein Futurist der sich leidenschaftlich für die Zukunft von KI und Robotik interessiert.

Er ist auch der Gründer von Wertpapiere.io, eine Website, die sich auf Investitionen in bahnbrechende Technologien konzentriert.