Поврзете се со нас

Интервјуа

Итамар Фридман, извршен директор и ко-основач на CodiumAI – серија на интервјуа

mm

Објавено

 on

Итамар Фридман, е извршен директор и ко-основач на CodiumAI. Codium се фокусира на страната на „интегритетот на кодот“ на генерирањето код - генерирање на автоматизирани тестови, објаснувања за кодови и прегледи. Тие објавија истражување за генерирање решенија за код за конкурентни програмски предизвици кои го надминуваат Google DeepMind.

Кога и како првично се заинтересиравте за вештачката интелигенција?

Во 2009 година, работев во Mellanox (Acq. by NVIDIA) и студирав електротехника. Сфаќајќи дека многу од досадните развојни процеси во Меланокс може да се автоматизираат со алгоритми за машинско учење, ги променив моите специјалност во оптимизација и машинско учење и завршив магистерски студии во просторот. До 2010 година веќе работев на проект за длабоко учење (со 3 слоја длабока невронска мрежа) поставувајќи ја основата за моето време во Alibaba, каде што водев истражувачка група специјализирана за пребарување на невронска архитектура, модели за обука и изградба на алатки AutoML за програмери. Околу 2021 година, не се срамев да ја наречам нашата работа „ВИ“, бидејќи големите јазични модели станаа моќни алатки, а мојата фантазија за тоа што може да се постигне со нив се зголеми.

Вашиот претходен стартап фокусиран на компјутерска визија Visualead на крајот беше купен од Alibaba Group, што беше овој стартап и кои беа некои од вашите клучни резултати од ова искуство?

Visualead специјализиран за скенирање логоа, QR-кодови и сè што е измеѓу, вклучително и обезбедување и криење информации во сликите за да овозможи безбедни P2P трансакции и ангажирање. Во Visualead, користевме алгоритми на мобилни уреди од 2012 година, вклучително и модели. Беше предизвик и незгодно да се направи тоа во минатото, и научивме многу за градењето ефикасни модели и заштитни огради околу овие статистички суштества.

До денес, сè уште ги применувам научените лекции од тоа време на тековните проекти што ги преземам - на пример, кога ја изградивме алатката за генерирање решенија со отворен код АлфаКодиум го воведовме концептот на Flow Engineering и го применивме овој концепт за да изградиме проток на излезот од моделите на LLM заштитни огради.

Можете ли да ја споделите приказната за генезата зад лансирањето на CodiumAI?

Во Alibaba, видов од прва рака како грешка во кодот може да доведе до проблем од милион долари и предизвиците со кои се соочија програмерите за да бидат во чекор со генерирањето код без да го жртвуваат квалитетот или интегритетот. Овој проблем опстојува, а денес кодот со низок квалитет се припишува на проблем од трилиони долари кој продолжува да расте.

Тимот на CodiumAI е специјализиран за изградба на алатки овластени со вештачка интелигенција во обем и е насочен да се справи со болните точки со кои се соочуваат програмерите. Со раѓањето на новите LLM и AI способности, разбравме дека ова е нашата можност да изградиме платформа за интегритет на холистички код за да им помогнеме на зафатените тимови како нас да ги намалат грешките и да ги ублажат другите проблеми со интегритетот. Како што се генерираше сè повеќе код од вештачката интелигенција, проблемот со бенчмаркирањето на овој код и обезбедувањето дека функционира како што е планирано стана критична точка на болка и проблем што бевме натерани да го решиме. Создавањето алатки зајакнати со вештачка интелигенција во обем, а со тоа и бенчмаркингот е суштински концепт за нас.

Како група на искусни програмери, го добиваме тоа; справувањето со досадни задачи како што се тестирање и преглед на код може да биде фрустрирачко. Ние сме многу водени од мисијата за конечно да им овозможиме на зафатените тимови да го зголемат и управуваат својот интегритет на кодот.

Можете ли да опишете какви видови нетривијални анализи ги врши CodiumAI на кодот и како тоа ги поддржува програмерите во подобрувањето на квалитетот на кодот?

До неодамна, постоечките алатки достапни за програмерите нудеа мала вредност - но со доаѓањето на LLM (ChatGPT, Copilot, итн.) способностите почнуваат да ги надминуваат очекувањата, а поддршката достапна за програмерите веќе не е тривијална.

Codiumate Coding-Agent развиен од CodiumAI им нуди на програмерите уникатни алатки за подобрување на нивниот работен тек и подобрување на генерирањето код. Codiumate го рационализира процесот на развој со обезбедување автоматска помош во текот на задачата за кодирање. Користејќи ги постојните фрагменти од код што ги истакнува човечкиот програмер во нивната околина, агентот може автоматски да изработи лесен за следење и кохезивен план за развој, да пишува код според тој план, да идентификува дупликат код што развивачот можеби сака да го користи или отстрани, нацрт документација , и предложи тестови за да се осигура дека кодот работи правилно пред да биде распореден во живо опкружување.

Codiumate им овозможува на програмерите длабинска анализа на однесувањето - ги осветлува можните однесувања и ги разгранува што ги опфаќа кодот под тест. Ова му овозможува на развивачот да го испита генерираниот код и да создаде тестови кои (гранка) ги покриваат сите однесувања, па оттука го подобрува кодот повеќе отколку кога развивачот сам ги отсликал сите можни случаи.

Кои специфични функционалности ги обезбедува PR-Agent за анализа на барањата за повлекување и како го рационализира процесот на преглед на платформи како GitHub и GitLab?

PR-Agent нуди разновидни функционалности дизајнирани да го подобрат и рационализираат процесот на анализа и преглед на барање за повлекување (PR) кај различни даватели на git.

Automatic PR Description Generation автоматски генерира сеопфатни и детални описи за барања за повлекување. Оваа функција се справува со вообичаени проблеми каде што програмерите може да прескокнат детални описи за односи со јавноста поради временски ограничувања или надзор. Со автоматизирани описи, секој ПР е опремен со доволен контекст, што им олеснува на рецензентите да ги разберат промените без потреба од опширно дешифрирање на разликите во кодот. Вградивме и автоматско PR преглед за да им обезбедиме на програмерите сеопфатен преглед на ПР што ќе им овозможи проактивно да забележат потенцијални проблеми како што се грешки, безбедносни пропусти или мирис на код. Оваа превентивна повратна информација им овозможува на програмерите да прават корекции пред процесот на прегледување, со што го подобруваат квалитетот на кодот што стигнува до рецензентите.

Искористувањето на вештачката интелигенција, предлозите за автоматизирани кодови, исто така, може да сугерираат подобрувања или алтернативни имплементации директно во интерфејсот за односи со јавноста. Овие предлози може да бидат оптимизации, почитување на стандардите за кодирање или дури и архитектонски подобрувања, кои помагаат постепено да се подигне квалитетот на базата на кодови.

PR-Agent поддржува бројни опции за прилагодување на командите што ги нуди. Една од најкорисните опции за прилагодување е употребата на сопствени етикети за подобрување на организацијата и управувањето со барањата за повлекување на платформи како GitHub и GitLab. Оваа функционалност придонесува за оперативната ефикасност и јасност на процесите на развој и преглед.

Како CodiumAI генерира значајни тестови и што ги прави овие тестови поефективни од стандардните единечни тестови?

Го подобруваме генерирањето тестови со скенирање на складиштата за кодови за соодветни фрагменти поврзани со кодот што се тестира. Употребувајќи синџир на мисли за да ги мапирате сите потенцијални однесувања на кодот, вклучувајќи ги типичните патеки и случаите на рабовите, нашиот пристап користи преземање специфични за контекст и приспособени потсетници приспособени на различни програмски јазици, вградувајќи стручно знаење за да се осигура дека тестовите ги исполнуваат индустриските стандарди. Дополнително, CodiumAI поставува специфични средини за извршување за подобро откривање на грешки и генерирање тестови за само-лекување. Овие способности ги прават тестовите генерирани од CodiumAI посеопфатни од стандардните единечни тестови, кои често пропуштаат ненамерно однесување поради вродените предрасуди на програмерите и ограничувањата во предвидувањето на сите можни сценарија. Ова резултира со тестови кои не само што се темелни, туку и поефикасни во откривањето на суптилни грешки и рабови.

Врз основа на повратните информации од корисниците, кои се најценетите карактеристики на CodiumAI и како овие карактеристики влијаеле на продуктивноста на програмерите?

Врз основа на повратните информации од корисниците што ги добивме, гледаме дека /прашај со контекст блок на код /генерирање на тестови карактеристиките на агентот Codiumate се многу барани и го подобруваат работниот тек на програмерите.

со /прашај со контекст блок на код (видете ја документацијата овде: /прашај) програмерите можат да поставуваат отворени прашања за нивниот код или да бараат подобрувања или прегледи на кодот за време на бесплатна сесија за разговор. Оваа карактеристика е особено корисна за стекнување подлабоко разбирање на базата на кодови, бидејќи моделот го задржува целосниот контекст на проектот, овозможувајќи му да одговори на многу детални и специфични прашања.

на /генерирање на тестови (видете ја документацијата овде: /тест) алатката им овозможува на програмерите да генерираат сеопфатни тест пакети за нивниот код со само еден клик. Истражувањето на однесувањето на кодот, идентификацијата и решавањето на грешките навремено и брзото проширување на покриеноста на кодот е огромна предност за продуктивноста.

Агентот за односи со јавноста /преглед (видете ја документацијата овде - /преглед) функцијата ги скенира промените на ПР-кодовите и автоматски генерира преглед за односи со јавноста за да се откријат проблемите пред програмерите да започнат со производство. На

/опишете (видете ја документацијата овде - /опишете) функцијата ги скенира промените на PR-кодот и генерира опис за ПР – наслов, тип, резиме, преглед и етикети заштедувајќи им време и енергија на програмерите што можат подобро да ги применат за попребирливи или креативни задачи.

Како CodiumAI ги идентификува рабовите случаи и сомнителните однесувања во кодот?

Нашите алатки го скенираат складиштето на програмерите за релевантни фрагменти од код што се однесуваат на кодот што е под тестирање, и користејќи совети за синџир на мисли, ги мапираме сите можни однесувања на кодот и ги прикажуваме на развивачот. CodiumAI може директно да идентификува сомнителни однесувања (без оглед на тест генерациите), со идентификување на несовпаѓања или недоследности помеѓу различни фрагменти од код или фрагменти од код и придружната документација.

CodiumAI поддржува големи програмски јазици; можеш ли да елаборираш како се справува со нијанси специфични за јазикот во анализата на кодот и генерирањето тестови?

За главните програмски јазици, нашата платформа ја надминува основната поддршка со имплементирање на специјализирани техники. Тие вклучуваат преземање специфично за контекст и приспособено поттикнување приспособено на уникатната синтакса и семантика на секој јазик. Овие приспособени поттикнувања вклучуваат стручно знаење од јазичниот домен за да се добијат резултати на ниво на индустрија. Дополнително, обезбедуваме можности за воспоставување средина за извршување специјално за овие јазици, што ја подобрува способноста на нашата алатка да открива грешки и ефикасно да генерира тестови за самолекување.

За помалку вообичаени јазици, користиме големи јазични модели (LLM) кои инхерентно разбираат повеќе програмски јазици. Ова е надополнето со нашата општа контекстна инфраструктура и адаптивниот систем за поттикнување, кои заедно ја олеснуваат точната анализа на кодот и генерирањето тестови низ различни програмски средини. Со преземање на пристап на двојно ниво, можеме да обезбедиме сеопфатна поддршка без оглед на употребениот програмски јазик.

Кои идни подобрувања се планираат за CodiumAI за понатамошна поддршка и поедноставување на задачите на програмерите?

Идната развојна стратегија на CodiumAI го нагласува подобрувањето на достапниот пакет алатки за вештачка интелигенција за беспрекорно интегрирање во сите фази од животниот циклус на развој на софтвер. Со користење на напредни принципи за инженерство на проток за да се насочат и поедностават работните текови на програмерите, нашите агенти ќе обезбедат значителна вредност во различни фази на развој. Понатаму, CodiumAI е посветена да обезбеди овие алатки да се истакнат во справувањето со сложени, реални сценарија за код и текст, што ги прави неопходни во секојдневните програмски задачи. Овој холистички пристап има за цел да ја подигне нашата понуда како робусна алатка за секојдневна употреба за програмери, зголемувајќи ја продуктивноста и ефикасноста во процесот на развој на софтвер.

Ви благодариме за одличното интервју, читателите кои сакаат да дознаат повеќе треба да го посетат CodiumAI.

Основачки партнер на unite.AI и член на Технолошкиот совет на Форбс, Антоан е а футуристички кој е страстен за иднината на вештачката интелигенција и роботиката.

Тој е и основач на Хартии од вредност.io, веб-страница која се фокусира на инвестирање во непушачка технологија.