Connect with us

Itamar Friedman, CEO & Co-Founder von CodiumAI – Interview-Serie

Interviews

Itamar Friedman, CEO & Co-Founder von CodiumAI – Interview-Serie

mm

Itamar Friedman ist der CEO und Co-Founder von CodiumAI. Codium konzentriert sich auf die “Code-Integrität”-Seite der Code-Generierung – Generierung automatisierter Tests, Code-Erklärungen und -Überprüfungen. Sie haben Forschungsergebnisse über die Generierung von Code-Lösungen für Wettbewerbs-Programmierherausforderungen veröffentlicht, die Google DeepMind überbieten.

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

Im Jahr 2009 arbeitete ich bei Mellanox (Acq. von NVIDIA) und studierte Elektrotechnik. Als ich erkannte, dass viele der mühsamen Entwicklungsprozesse bei Mellanox durch maschinelle Lernalgorithmen automatisiert werden konnten, wechselte ich mein Studienfach zu Optimierung und maschinellem Lernen und absolvierte einen Master-Abschluss in diesem Bereich. Bereits 2010 arbeitete ich an einem Deep-Learning-Projekt (mit 3 Schichten tiefem neuronalen Netzwerk), das den Grundstein für meine Zeit bei Alibaba legte, wo ich eine Forschungsgruppe leitete, die sich auf die Suche nach neuronalen Architekturen, das Training von Modellen und den Bau von AutoML-Tools für Entwickler spezialisierte. Um 2021 herum war ich nicht mehr scheu, unsere Arbeit als “KI” zu bezeichnen, da große Sprachmodelle zu leistungsfähigen Werkzeugen wurden und meine Vorstellung davon, was mit ihnen erreicht werden konnte, wuchs.

Ihre vorherige Startup-Unternehmen Visualead, das auf Computer-Vision spezialisiert war, wurde schließlich von der Alibaba Group übernommen. Was war dies für ein Startup und welche waren einige Ihrer wichtigsten Erkenntnisse aus dieser Erfahrung?

Visualead spezialisierte sich auf das Scannen von Logos, QR-Codes und allem dazwischen, einschließlich der Sicherung und Versteckung von Informationen in Bildern, um sichere P2P-Transaktionen und -Interaktionen zu ermöglichen. Bei Visualead führten wir seit 2012 Algorithmen auf mobilen Geräten aus, einschließlich Modelle. Es war herausfordernd und trickreich, dies damals zu tun, und wir lernten viel über den Bau effizienter Modelle und die Schaffung von Schutzmechanismen um diese statistischen Kreaturen.

Bis heute wende ich noch die Lektionen an, die ich damals gelernt habe, auf aktuelle Projekte an, an denen ich arbeite – zum Beispiel, als wir das Open-Source-Lösungsgenerations-Tool AlphaCodium entwickelten, führten wir das Konzept der Flow-Engineering ein und wendeten dieses Konzept an, um einen Fluss zu schaffen, der die Ausgabe von LLM-Modellen sichert.

Können Sie die Entstehungsgeschichte hinter der Gründung von CodiumAI teilen?

Bei Alibaba sah ich mit eigenen Augen, wie ein Bug im Code zu einem millionenschweren Problem führen konnte und welche Herausforderungen Entwickler hatten, um mit der Code-Generierung Schritt zu halten, ohne die Qualität oder Integrität zu opfern. Dieses Problem besteht noch immer, und heute wird schlechter Code als ein trillionenschweres Problem angesehen, das weiter wächst.

Das Team bei CodiumAI spezialisiert sich auf den Bau von KI-gestützten Tools im großen Maßstab und ist bestrebt, die Schmerzpunkte zu bekämpfen, mit denen Entwickler konfrontiert sind. Mit der Geburt neuer LLM- und KI-Fähigkeiten verstanden wir, dass dies unsere Chance war, eine umfassende Code-Integritätsplattform zu bauen, um beschäftigten Teams wie uns zu helfen, Fehler zu reduzieren und andere Integritätsprobleme zu mindern. Da immer mehr Code von KI generiert wird, wurde das Problem der Bewertung dieses Codes und der Gewährleistung, dass er wie beabsichtigt funktioniert, zu einem kritischen Schmerzpunkt, den wir lösen wollten. Der Bau von KI-gestützten Tools im großen Maßstab und damit die Bewertung ist für uns ein wesentliches Konzept.

Als Gruppe von erfahrenen Entwicklern verstehen wir es; das Umgang mit mühsamen Aufgaben wie Tests und Code-Überprüfungen kann frustrierend sein. Wir sind sehr missionarisch bestrebt, endlich beschäftigten Teams zu ermöglichen, ihre Code-Integrität zu erhöhen und zu verwalten.

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

Bis vor kurzem boten die bestehenden Tools, die Entwicklern zur Verfügung standen, wenig Wert – aber mit dem Erscheinen von LLMs (ChatGPT, Copilot usw.) übertreffen die Fähigkeiten nun die Erwartungen, und die Unterstützung, die Entwicklern zur Verfügung steht, ist nicht mehr trivial.

Der Codiumate-Coding-Agent, der von CodiumAI entwickelt wurde, bietet Entwicklern einzigartige Tools, um ihre Arbeitsabläufe zu verbessern und die Code-Generierung zu optimieren. Codiumate strukturiert den Entwicklungsprozess, indem er automatisierte Unterstützung während der Codierung bietet. Mithilfe der vorhandenen Code-Snippets, die ein menschlicher Entwickler in seiner Umgebung hervorhebt, kann der Agent automatisch einen einfachen und kohärenten Entwicklungsplan erstellen, Code gemäß diesem Plan schreiben, duplizierten Code identifizieren, den der Entwickler verwenden oder entfernen möchte, Dokumentation erstellen und Tests vorschlagen, um sicherzustellen, dass der Code ordnungsgemäß funktioniert, bevor er in einer Live-Umgebung bereitgestellt wird.

Codiumate bietet Entwicklern eine tiefgehende Verhaltensanalyse – es beleuchtet mögliche Verhaltensweisen und Zweige, die der zu testende Code umfasst. Dies ermöglicht es dem Entwickler, den generierten Code zu untersuchen und Tests zu erstellen, die (Zweige) alle Verhaltensweisen abdecken, was die Code-Qualität verbessert, 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 Analyse von Pull-Requests und wie vereinfacht er den Überprüfungsprozess auf Plattformen wie GitHub und GitLab?

Der PR-Agent bietet eine Vielzahl von Funktionalitäten, die darauf ausgelegt sind, den Pull-Request-Analyse- und -Überprüfungsprozess auf verschiedenen Git-Anbietern zu verbessern und zu vereinfachen.

Die automatische PR-Beschreibungsgenerierung generiert automatisch umfassende und detaillierte Beschreibungen für Pull-Requests. Diese Funktion löst häufige Probleme, bei denen Entwickler aus Zeitgründen oder wegen Nachlässigkeit detaillierte PR-Beschreibungen übersehen. Durch automatisierte Beschreibungen verfügt jeder PR über ausreichenden Kontext, was es den Überprüfern erleichtert, die Änderungen zu verstehen, ohne dass sie den Code-Diffs umfassend entschlüsseln müssen. Wir haben auch eine automatische PR-Überprüfung entwickelt, um Entwicklern eine umfassende Übersicht über den PR zu geben, mit der sie potenzielle Probleme wie Fehler, Sicherheitslücken oder Code-Gerüche proaktiv erkennen können. Diese vorbeugende Rückmeldung ermöglicht es Entwicklern, Korrekturen vorzunehmen, bevor der Überprüfungsprozess beginnt, was die Qualität des Codes verbessert, der die Überprüfer erreicht.

Mithilfe von KI können auch automatisierte Code-Vorschläge direkt im PR-Interface Vorschläge für Verbesserungen oder alternative Implementierungen machen, wie z.B. Optimierungen, Einhaltung von Codierungsstandards oder sogar architektonische Verbesserungen, um die Qualität der Code-Basis schrittweise zu erhöhen.

Der PR-Agent unterstützt zahlreiche Optionen für die Anpassung der Befehle, die er bietet. Eine der nützlichsten Anpassungsoptionen ist die Verwendung von benutzerdefinierten Labels, um die Organisation und Verwaltung von Pull-Requests auf Plattformen wie GitHub und GitLab zu verbessern. Diese Funktionalität trägt zur operativen Effizienz und Klarheit der Entwicklungs- und Überprüfungsprozesse bei.

Wie generiert CodiumAI sinnvolle Tests und was macht diese Tests effektiver als Standard-Einheitstests?

Wir verbessern die Testgenerierung, indem wir Code-Repositorys nach relevanten Snippets scannen, die mit dem zu testenden Code in Zusammenhang stehen. Durch die Verwendung von chain-of-thought-Prompts kartieren wir alle möglichen Code-Verhaltensweisen, einschließlich typischer Pfade und Randfälle, und unsere Methode nutzt kontextspezifisches Abrufen und maßgeschneiderte Prompts, die auf verschiedene Programmiersprachen zugeschnitten sind, und integriert Expertenwissen, um sicherzustellen, dass die Tests Branchenstandards erfüllen. Zusätzlich richtet CodiumAI spezifische Laufzeitumgebungen ein, um besser Fehler zu erkennen und selbstheilende Tests zu generieren. Diese Fähigkeiten machen die von CodiumAI generierten Tests umfassender als Standard-Einheitstests, die oft ungewollte Verhaltensweisen aufgrund der inhärenten Vorurteile der Entwickler und der Einschränkungen bei der Vorhersage aller möglichen Szenarien verpassen. Dies führt zu Tests, die nicht nur gründlich, sondern auch effektiver bei der Aufdeckung subtiler Fehler und Randfälle sind.

Basierend auf Nutzerfeedback, welche sind die am meisten geschätzten Funktionen von CodiumAI und wie haben diese Funktionen die Produktivität von Entwicklern beeinflusst?

Basierend auf dem Nutzerfeedback, das wir erhalten haben, sehen wir, dass die /ask mit Code-Block-Kontext und /Test-Generierung-Funktionen des Codiumate-Agents sehr gefragt sind und den Entwickler-Workflow verbessern.

Mit /ask mit Code-Block-Kontext (siehe Dokumentation hier: /ask) können Entwickler offene Fragen zu ihrem Code stellen oder Code-Verbesserungen oder -Überprüfungen während einer kostenlosen Chat-Sitzung anfordern. Diese Funktion ist besonders nützlich, um ein tieferes Verständnis der Code-Basis zu erlangen, da das Modell den vollen Kontext des Projekts beibehält, was es ermöglicht, sehr detaillierte und spezifische Anfragen zu beantworten.

Das /Test-Generierung-Tool (siehe Dokumentation hier: /test) ermöglicht es Entwicklern, umfassende Test-Suiten für ihren Code mit nur einem Klick zu generieren. Durch die Untersuchung des Code-Verhaltens, die Identifizierung und Lösung von Fehlern sowie die schnelle Erhöhung der Code-Abdeckung ist dies ein großer Gewinn für die Produktivität.

Die PR-Agent /Überprüfung-Funktion (siehe Dokumentation hier – /review) scannet die PR-Code-Änderungen und generiert automatisch eine PR-Überprüfung, um Probleme zu erkennen, bevor Entwickler Änderungen in die Produktion übernehmen. Die

/Beschreibung-Funktion (siehe Dokumentation hier – /describe) scannet die PR-Code-Änderungen und generiert eine Beschreibung für den PR – Titel, Typ, Zusammenfassung, Durchlauf und Labels, was Entwicklern Zeit und Energie spart, die sie besser für anspruchsvollere oder kreativere Aufgaben einsetzen können.

Wie identifiziert CodiumAI Randfälle und verdächtige Verhaltensweisen im Code?

Unsere Tools scannen das Repository des Entwicklers nach relevanten Code-Snippets, die mit dem zu testenden Code in Zusammenhang stehen, und verwenden chain-of-thought-Prompts, um alle möglichen Code-Verhaltensweisen zu kartieren und diese dem Entwickler anzuzeigen. CodiumAI kann verdächtige Verhaltensweisen direkt (unabhängig von der Testgenerierung) identifizieren, indem es Ungereimtheiten oder Inkonsistenzen zwischen verschiedenen Code-Snippets oder Code-Snippets und der begleitenden Dokumentation identifiziert.

CodiumAI unterstützt wichtige Programmiersprachen; können Sie erläutern, wie es sprachspezifische Nuancen in der Code-Analyse und Test-Generierung behandelt?

Für wichtige Programmiersprachen geht unsere Plattform über die grundlegende Unterstützung hinaus, indem sie spezielle Techniken implementiert. Dazu gehören kontextspezifisches Abrufen und maßgeschneiderte Prompts, die auf die einzigartige Syntax und Semantik jeder Sprache zugeschnitten sind. Diese maßgeschneiderten Prompts integrieren sprachspezifisches Expertenwissen, um Branchenergebnisse zu erzielen. Zusätzlich bieten wir die Möglichkeit, eine Laufzeitumgebung speziell für diese Sprachen einzurichten, was unsere Fähigkeit verbessert, Fehler zu erkennen und selbstheilende Tests zu generieren. Für weniger gebräuchliche Sprachen nutzen wir große Sprachmodelle (LLMs), die mehrere Programmiersprachen inhärent verstehen. Dies wird durch unsere allgemeine Kontext-Infrastruktur und unser adaptives Prompt-System ergänzt, das zusammen eine genaue Code-Analyse und Test-Generierung in verschiedenen Programmierumgebungen ermöglicht. Durch die Verwendung eines dualen Ansatzes können wir eine umfassende Unterstützung 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 konzentriert sich auf die Verbesserung des verfügbaren Satzes von KI-Tools, um sie nahtlos in alle Phasen des Software-Entwicklungslebenszyklus zu integrieren. Durch die Anwendung fortschrittlicher Flow-Engineering-Prinzipien, um die Arbeitsabläufe von Entwicklern zu strukturieren und zu vereinfachen, werden unsere Agenten einen erheblichen Wert über verschiedene Entwicklungsstadien hinweg bieten. Darüber hinaus ist CodiumAI bestrebt, sicherzustellen, dass diese Tools hervorragend mit komplexen, realen Code- und Textszenarien umgehen können, was sie unverzichtbar im täglichen Programmieralltag macht. Dieser umfassende Ansatz zielt darauf ab, unser Angebot als robustes, tägliches Werkzeug für Entwickler zu stärken, um die Produktivität und Effizienz im Software-Entwicklungsprozess zu steigern.

Vielen Dank für das großartige Interview. Leser, die mehr erfahren möchten, sollten CodiumAI besuchen.

Antoine ist ein visionärer Führer und Gründungspartner von Unite.AI, getrieben von einer unerschütterlichen Leidenschaft für die Gestaltung und Förderung der Zukunft von KI und Robotik. Ein Serienunternehmer, glaubt er, dass KI so disruptiv für die Gesellschaft sein wird wie Elektrizität, und wird oft dabei ertappt, wie er über das Potenzial disruptiver Technologien und AGI schwärmt.

Als futurist ist er darauf fokussiert, zu erforschen, wie diese Innovationen unsere Welt formen werden. Zusätzlich ist er der Gründer von Securities.io, einer Plattform, die sich auf Investitionen in hochmoderne Technologien konzentriert, die die Zukunft neu definieren und ganze Branchen umgestalten.