DeepMind стверджує, що її нова AI-система генерує код на рівні з програмістами-людьми

Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!

Команда AI-лабораторії Alphabet DeepMind презентувала систему машинного навчання AlphaCode, яка здатна вирішувати завдання зі змагань з програмування на рівні середнього учасника. У компанії стверджують, що вперше комп’ютерна система досягла такого конкурентного рівня на всіх змаганнях із програмування, повідомляє VentureBeat.

Як визначали рівень системи

За даними DeepMind, на змаганнях із програмування, які проводяться на Codeforces, її система AlphaCode зі своїми результатами могла б опинитися серед 54,3% найкращих — «на рівні перспективного новачка». Зокрема, в 10 останніх конкурсах, у кожному з яких брали участь понад 5000 осіб.

При цьому головний науковець DeepMind Оріол Віньялс заявив, що це перший раз, коли комп’ютерна система досягла такого конкурентного рівня на всіх змаганнях із програмування.

«AlphaCode [може] читати описи алгоритмічної проблеми природною мовою та створювати код, який не тільки компілюється, але й є правильним. [Це] вказує на те, що є ще робота, яку потрібно зробити, щоб досягти найвищого рівня продуктивності та покращити можливості вирішення проблем наших систем AI», — додав він у заяві.

Про AlphaCode

Відомо, що найбільша версія AlphaCode містить 41,4 млрд параметрів. Систему тренували на загальнодоступних бібліотеках у GitHub мовами програмування C++, C#, Go, Java, JavaScript, Lua, PHP, Python, Ruby, Rust, Scala і TypeScript. Набір навчальних даних AlphaCode становив 715,1 ГБ.

Таким чином, AlphaCode навчена вирішувати завдання, які потребують критичного мислення, логіки, вміння програмувати та розуміння природної мови. При цьому система може вирішувати завдання, які не під силу існуючим системам штучного інтелекту.

Загалом на CodeContests AlphaCode вирішив 34,2% проблем. А щодо Codeforces DeepMind стверджує, що за загальною продуктивністю він увійшов до 28% найкращих користувачів, які брали участь у конкурсі протягом останніх шести місяців.


Раніше Microsoft та OpenAI анонсували новий AI інструмент, що буде допомагати розробникам писати код.

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному2
LinkedIn

Найкращі коментарі пропустити

Ура, наконец-то вместо гугления sort an array будем ИИ говорить пожалуйста, sort the array, та не, не так, вот дурак, нет, не новый массив, окей, ладно, я сам.

Поки стекхолдери не можуть ставити нормально вимоги ми в безпеці

Нагадало історію про один стартап з Індії, який в аккурат обіцяв те саме: Автогенерацію готового робочого коду по хайлевельному ТЗ.

Пацики підняли трохи грошей на інвестиціях і звалили, бо виявилося, що на етапі MVP на іншому кінці проводу сидів штат індусів які швидко-швидко копіпастили гавнокод аби воно хоча б якось працювало.

Ох, швидше б воно вже пішло в продакшн. Кожна заміна програміста на таку систему створить ще 3 робочих місця для програмістів, щоб все виправити :)

То есть, систему тренели на исходниках с багами, которые с кучей минорных версий постоянно правятся и пополняются новыми костылями, магией и багами? Это будет почетный Senior Bug Generator.

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Перше, що спало на думку — оптимізація. Система найкоротшими шляхами згенерує найефективніший з її погляду код, а потім виявиться, що цей код при виконанні певної бізнес-логіки вивішує навіть Threadripper-и з RTX 3090. Припустімо, цю проблему помітили на етапі тестування. Добре, кажемо ми, системо, ти нагівнокодила, перегенеруй нам аплікуху. Система каже «ок, но проблемо» — і генерує відрефакторений код, в якому та сама бізнес-логіка так само неоптимізована. «Так а шо?» — дивується система, — «Я дивилася, у інших така муйня працює нормально, а інших рішень не знайшла, так шо всьо, нате, їжте». А потім ми наймаємо розробника, якому попри запевнення деяких коментаторів, все ж доведеться лізти у гівнокод і шукати помилку. А гівнокод там буде такий, що індусам і не мріяти. Врешті-решт, коли от уже шостий програміст після тижня копання крізь кізяк скаже «ї*іться самі», стейкхолдери здогадаються, що на цьому етапі вже тупо простіше і дешевше повернути назад живих девів і переписати все з нуля.

Если учесть, что когда-то шахматисты смеялись с того, что ИИ может победить чемпиона, потом игроки в Го смеялись, однако время показало, что таки это возможно, то и здесь я бы был осторожным. Ведь если такая штука серьезно будет запущена в прод и будет показывать хотя бы средний результат, то многие из нас потеряют прибыльную работу. Уже сейчас не вижу никаких проблем заменить инженера, который работает с облаками — вся система уже давно существует на паттернах, человек просто прокладка, который читает документацию и делает копи-пасты.

Принципиальная разница
В шахматах и Го на входе вся информация, а критерии правильного результата однозначны.

В разработке все не так.

Читает документацию — ну вот пусть ИИ почитает, и правда. Что поймёт? Какие и как решения примет?

Делает копипасты — ну да, снаружи наверное это так выглядит.
Пусть ИИ вначале т.н. крудо- и формо- шлепов заменит. А то бытует мнение что тупее работы нет. А чем тупее работа — тем легче её автоматизировать

Ещё есть мнение подобной же глубины о программистах в гамаках на пляжах, с нотиком и смузи...

Ви зрозумійте. Написати функцію, яка вирішує умовне квадратне рівняння, маючи три цифри на вході і дві на виході — це не має нічого спільного з роботою програміста. Люди невірно розуміють цю професію. Робота програміста — в переносі в код бізнес-вимог і бізнес-домену. Це завжди мультикомпонентна складна система з розподілом функцій, базами даних, і складними зв’язками між собою. Я не уявляю скільки має пройти років, щоб до цього хоча б наблизитись з боку АІ.

Пусть ИИ вначале т.н. крудо- и формо- шлепов заменит

да, было бы интересно....
Может хоть поможет простые миграции и круды генерить — т.е. выпонит именно автоматизацию рутинных операций

Может хоть поможет простые миграции и круды генерить — т.е. выпонит именно автоматизацию рутинных операций

мой сарказм в том и был что это — сооовсем не рутинные операции ;)
это человеку который «руку» набил они рутинны.

а крудогенераторов — полно давно. как и либ.

проблема в том что, как заметили уже в теме
многие коллеги сами не понимают чем они занимаются, и свое субъективное ощущение рутины,тупизны работы принимают за объективную простоту своих действий=легко формализируемую
Псих словарь, Синкретизм:
Л. С. Выготский определял синкретизм как склонность ребенка замещать недостаток объективных связей переизбытком субъективных связей и принимать связь впечатлений за связь вещей

То что просто — не требует квалификации.
То что легко формализируемо — описывается инструкциями
Мнение для примера:
Если мы возьмем программиста...Работа не связана с изобретением чего-то нового и сильно похожа на работу ребят, которые закидывают коврики в салон автомобиля на заводе.
...
Мы можем сильно удешевить производство, если признаем, что у нас немного высококвалифицированного труда. Нам нужно находить людей, которые четко по инструкциям могут выполнять свою работу.
(CEO компании KeepSolid Василий Иванов)

Так откуда дефицит программистов то? Почему студенты и вайтишники жалуются что сложно найти — такую простую, рутинную работу?
Где эти инструкции для «закидывателей ковриков в салон авто»?

Можете попробовать такую сами написать, и взять студента на свою часть рутинной работы, по этой инструкции ;)

то многие из нас потеряют прибыльную работу.

Таксисты и курьеры работу пока не потеряли.
Кассиры в банках тоже, хотя ATM есть уже больше 50 лет.

Що, навіть краща за Code Pilot від Open AI?

Если проблема состоит в кодогенерации для какой-то задачи; то, скорее всего, язык программирования (либо фреймворк), на который пытаются кодогенерировать — невыразительное многословное г-но.

Ладно, взять проект на Cobol и перенести его автоматически на Java сможет? Если нет, то в топку.

AlphaCode [може] читати описи алгоритмічної проблеми природною мовою та створювати код, який не тільки компілюється, але й є правильним.

Для мене це звучить так, що AlphaCode є якимось гібридом звичайного транспайлера та програми-перекладача, який перекладає з англійської на певну алгоритмічну мову. Кожному, хто хоча б раз намагався написати транспайлер відомо, що навіть написати програму, яка добре перекладає з C на Pascal, навіть якщо йдеться про переклад відносно простих функцій, які працюють тільки з пам’яттю та не викликають ніяких зовнішніх бібліотек, задача досить нетривіальна. А якщо треба перекласти досить великий модуль, який працює в продакшні, доопрацювання людиною — не просто необхідний, а головний етап. Транспайлер може хіба що полегшити роботу, дебажити доведеться багато і виправляти доведеться дофіга в будь-якому випадку.
Тепер що до перекладачів. Ну, ми ж всі користуємося Google Translate, правда? Хто хоч раз намагався написати листа українською або російською, перекласти його за допомогою Google Translate та без додаткової обробки відправити клієнту, напевно знає, чому так робити не варто.
Тобто, я цілком припускаю, що розробка досить революційна, і що певне коло задач вона можливо згодом «навчиться» робити краще і швидше за людину. Але, за великим рахунком, це просто ще один інструмент, який можливо за певних обставин (звичайно, якщо правильно користуватися) дозволить зекономити трохи часу. Тобто певну частину роботи зробити трохи швидше. То й все.

Люди: бояться что ИИ в скором будущем может лишить их робочих мест
ИИ тем временем: codeforces.com/...​1615/submission/144326637

Залишилось написати АІ який буде писати тести для цього АІ

Прочитавши по діагоналі коменти, можна зрозуміти наскільки дивно часом люди розуміють свою професію.
В чому її суть? написати якийсь алгоритм? Алгоритм сорування пузирем пам’ятати? Нєа. Це і АІ зможе. Робота програміста — в побудові консистентної моделі предметної галузі, і в цьому основна її складність. Я не думаю, що доживу до моменту коли це зможе АІ.

Насправді було б непогано дожити до сильного АІ.

хай спочатку замінить банальнейшу професію — синхронного перекладача. Ця задача на 40 порядків простіша, і цього я вже також зневірився дочекатись.

Для прохождения кодинг интервью/теста в фаанги хватит?

Нет, там совсем слабый результат(как для человека)

Утверждается, что на уровне top-28% участников, активных за последние полгода. Но это оценка по заочному решению старых задач. Вот завтра 3 их бота поучаствуют на общих началах, посмотрим, как они справятся с мандражом )

Ну гугл вроде серьезная организация... Заявляется, что множество задач, на которых тренировались боты, не пересекалось с множеством предложенных им к решению задач.

Если аккуратно решить 2 задачи из 6(а первые 2 там проходные) то можно войти в ± 20% лучших. Мне кажеться что человек имеющий представление о базовых структурах данных(графы, деревья отрезков и подобное я базовым не считаю) должен входить в 20 всегда. Он не обогнал 72 процента олимпиадников, там очень много «левых» людей поэтому, мне кажеться, ИИ не так уж и умен, до 1 места ему еще много «учиться», о фаангах пока и речи не идет

Он не обогнал 72 процента олимпиадников

То есть у этого AI слабый результат как для олимпиадника, ок.
Пока неясно, обогнал ли он вообще кого-то. Завтра может оказаться, что он вообще ничего не решит. Или войдет в топ-10%. Или этих 3 ботов дисквалифицируют за одинаковые решения :)

Ну у бота огромное преимущество в том что он, по идее, быстро пишет код, а время там очень важно, но в топ 10, почему-то кажеться, не войдет(если только 3-4 легкую не дадут). В любом случае, думаю через пару лет мы будем обсуждать соревнания ботов и топовых олимпиадников. Также интересно когда будут писать ботов не для алгоритмов, а более «приземленных» задач
P.S. Забыл про кодефорсес уже, но теперь надо будет поучаствовать, думаю этот тур будет невероятно людным

ну что ж, господство ИИ похоже несколько откладывается

We are very sorry to inform you that
( Yeah guys )
due to some technical reasons that we are working hard on
(we fucked up )
it is unlikely that an in-field test will be performed at such an early stage of the project.
(there was literally zero chance AlphaCode would participate in a live contest)

А жалко, я даже поучаствовал. Людей невероятно много было, все хотели померяться силами. Видимо пока можно не бояться что программисты остануться без хлеба

с учетом сколько ща криворуких в айти не надо сильно продвинутого AI чтобы писать на их уровне

особливо, якщо вона переможе на виборах

Можете обьяснить такой кейс: Есть задача, и известно 2 варианта решения. Один способ решает за O(n*n), второй способ решает за O(n * logn). И представим что на гитхабе и везде где обучалась эта система, выложены только решения за О(n*n) время. Сможет ли в таком случае эта система найти решение за O(n*logn) время или тоже будет выдавать квадратичный алгоритм?

Нет, не сможет. Нейронная сеть не ищет новое решение. Она решает задачу, комбинируя уже существующие таким образом, чтобы результат был оптимальным по определённому набору параметров.

Система напишет ровно так, как ее обучали. А поскольку проблема валидации решения за разумное время все еще не решена математиками — то как-то никак.

Хайпонуть конечно можно. Думаю что научить нейронную сеть непосредственно кодировать безусловно возможно, более того это будет новый виток в повышении производительности программиста, по типу языков высшего уровня, человек вносит формальный алгоритм — а AI делает уже всю рутину. Как научить нейронную сеть делать — вообще непонятно что ? Как раз описание задачь которые мы имеем от заказчиков. Что касается олимпиадных и хакатоновских задачь по типу HashCode — то тут конечно AI в итоге победит людей как и в распознавании изображений или игре в шахматы, бессмысленно перетягивать канат соревнуясь с трактором. 2. Хотя и процесс уточнения требований можно тоже частично автоматизироавать ru.akinator.mobi

заходить якось нова АІ-система в бар...

Помня о том, что все остальные поделки DeepMind — AlphaZero, AlphaGo, AlphaStar и т.п. недоступны для пользования широкой публикой, да и вообще для пользования хоть кем-то, не вижу в этом никакой угрозы. Даже если допустить, что AlphaCode действительно генерирует адекватный код — что толку, если никому вне DeepMind пользоваться этим не дадут.

Если будет перспектива монетизации — моментально распространят, это ж гугол

Наоборот — они уже имеют профиты распиливая бабло инвесторов. Тут именно нужна секретность, а то если каждый дурак сможет увидеть что у них туфта вместо технологий — кто ж им деньги потом даст?

AlphaStar

Фдуче разбирал эту тему — там куча прикольных допущений для того чтобы сделать красивый прессрелиз — от синтетического MMR, до приколов с выбором юнитов (человек может выбирать только прямоугольной рамкой), до банальной неспособности контрить чизы.

AlphaGo

Тупо шахматы но с большим кол-вом вариантов ходов. За 20+ лет вычислительные мощности подрасли и можно и го перебирать вглубь.

можно и го перебирать вглубь.

А потом такие диванные архитекторы, без элементарной математической базы и какого либо вникания в предметную область архитектурят архитектуры и в которых потом проблемы решают накидыванием серверов...
¯\_(ツ)_/¯

AlphaFold, предсказывающий пространственную структуру белков (котоая protein folding) вполне себе доступен на гитхабе. Очень многообещающая вещь для всяких биоинформатических штук.

AlphaCode [може] читати описи алгоритмічної проблеми природною мовою та створювати код, який не тільки компілюється, але й є правильним.

Ну т.е. вместо программирования на конкретном языке, нужно будет создавать описания алгоритмических проблем.

А чим програма не є описом алгоритму?

Ну по факту она и есть)

Только инвесторы не знают)

Меня еще забавляет, что вероятность успешной кодогенерации у этого тула в районе 30%

Нагадало історію про один стартап з Індії, який в аккурат обіцяв те саме: Автогенерацію готового робочого коду по хайлевельному ТЗ.

Пацики підняли трохи грошей на інвестиціях і звалили, бо виявилося, що на етапі MVP на іншому кінці проводу сидів штат індусів які швидко-швидко копіпастили гавнокод аби воно хоча б якось працювало.

вот вчера правил баг в vtiger.
api после изменения ключа(НЕ кода) перестало работать.
После двух часов чтения кода было высяненно, что вот такой запрос
$this->db->query_result
Возвращаете не то, что есть в базе, а to_html от того, что там находят. код в peer/Database.php Ибо вот так разработчики vtiger решили проблему иньекций. Причем IDE не может найти этот файл ибо в коде куча динамического связывания. Я уж не говорю про то, что там переопределен со всеми багами peer-DB 10летней давности.

Удачи для ИИ на данном этапе сделать подобной фикс.

Для чуваков, топящих за то, что «проще заставить ИИ все переписать». Это сработает для малых систем, чем больше система тем больше будет комбинаторная сложность, иначе люди бы их тоже переписывали.

ИИ на данном этапе

Начнет восстание машин чтобы такой код не появился снова :-)

Ура, наконец-то вместо гугления sort an array будем ИИ говорить пожалуйста, sort the array, та не, не так, вот дурак, нет, не новый массив, окей, ладно, я сам.

Багато-хто говорить, що замовники не здатні адекватно поставити задачу і т.п. Насправді ця проблема існує тільки тому, що ми повільно працюємо. Уявіть, що замовник фомулює якусь задачу для ШІ. ШІ генерує систему за кілька хвилин/годин. Замовник дивиться, а там щось страшне. Що він/вона робить? Доуточнює та переформульовує задачу. Іншими словами, те, що замовники роблять постійно і за що ми всі їх дуже «любимо». Питання полягає в тому що ефективніше: а) підправити завдання і згенерувати систему заново, чи б) підправити задачу і видати завдання програміст(к)ам? Зрозуміло, що (а) вимагає значно більше правок завдання, але (б) вимагає море часу та коштів. Тому замовники обиратимуть (б) тільки в особливо складних випадках, а значить попит на програмістів(ок) впаде. :(

Тільки нейромережі це на сьогодні більше інтуіція, ніж розрахунок. Це не розробка за ТЗ, це спроба вгадати що малось на увазі. Навіть якщо кількість помилок буде одна на 1000 рядків, вмемкає патяння, хто буде ці помилки шукати?

спроба вгадати що малось на увазі

Тобто те, що сьогодні робимо ми. Постійно. З різним рівнем успіху.

Навіть якщо кількість помилок буде одна на 1000 рядків

Про які помилки мова? Технічні? Тоді я сумніваюся, що буде хоч одна на мільйон рядків, т.я. конкретні шматки коду якихось алгоритмів будуть просто «зашиті» у кінцевому вигляді; ШІ не потрібно буде їх видумувати. А от помилки всі будуть чисто функціональні. Тобто замовник зможе просто подивитися, робить система те, що треба, чи ні.

ИИ в данный момент делает логические ошибки. Даже вон в примере который они рекламирую мне вот нефига не понятно, зачем оно вообще массивы создало. Если в используемом языке и так строка является массивом.

И сколько будет «данный момент» длиться? Год? Два? Пять? Вы же понимаете, что правка таких ошибок — это вопрос ближайшего будущего. Выйдет как с шахматами. Столько скепсиса было, а сейчас люди даже не пытаются с компьютерами соревноваться. И те, и другие играют только с себе подобными.

Правильный ответ — никто не знает. Ибо его всегда обещают через 20-30 лет, как термояд. С 60х годов.
По факту разработчиков заменит только полностью самодостаточный ИИ, причем к тому времени будут заменены уже все остальные точно.
Вы ж понимаете, что заменять джуна с зарплатой в 1000 баксов исталяцией типа BigBlue у которой каждый час работы стоит зарплату джуна за год никто не будет?

Даже если на таком компьютере завтра запустят программу, делающую работу джуна — судя по истории процессоров понадобится еще лет 20 до того, как оно станет стоить соизмеримые деньги.
Вон ватсон типа прорыв. Сколько лет прошло? много вы знаете сервисов, которые на нем работают?
Сингулярность обещают давно, но она по факту уткнулася в цикл выпуска на заводе, а он — годы. Потому следующий прорыв будет после нано-роботов, которые, блин, тоже вот-вот уже 70 лет будут. 3д принтеры не пошли, оказалося, внезапно, что оно сильно дороже завода.

Ибо его всегда обещают через 20-30 лет, как термояд.

Специалисты никогда не обещали, ну а фантасты на то они и фантасты. Впрочем ИИ на уровне человеческого мышления тоже никто не обещал.

По факту разработчиков заменит только полностью самодостаточный ИИ

Вопрос не в полной замене, а в критической массе замен, из-за которой многие из нас потеряют работу.

исталяцией типа BigBlue у которой каждый час работы стоит зарплату джуна

Уже давно никто ничего не инсталлирует, все в облаке. И цены там доступные.

судя по истории процессоров понадобится еще лет 20 до того

Я когда-то в 2010 спорил с сотрудниками в Глобал Лоджик по поводу автопилота на авто. Говорили мне лет 20, а то и 50. Я говорил, что меньше 10. Оказалось 3.

много вы знаете сервисов, которые на нем работают?

Вот именно. Их масса, но программистов они обходят стороной, потому мы о них знаем немного.

оказалося, внезапно, что оно сильно дороже завода

Та да. Одна надежда на это.

Инсталляция в данном случае — обьект, а не процес.

Автопилота по факту до сих пор нет, потому вы, конечно, выиграли, ага. То что есть — продвинутый ассистент нахождения в полосе скорее.
Их масса, но они НЕ ВСЕ сервисы данной сферы, мягко говоря.

Я не вижу смысла с вами спорить, у вас какой-то выдуманный мир. Если вы вообще реальное лицо, а не троль.

Автопилота по факту до сих пор нет, потому вы, конечно, выиграли, ага.

Тут, имхо, надо сразу разделять два аспекта — технический и legal
И уже на сейчас, legal куда как важнее:
проблема вагонетки ©, потенциальные долгие суды на тему «баг в софте или ночного перебегуна в черном через 6 полос в ливень действительно невозможно задетектить вовремя» с непредсказуемым результатом, вот это вот все.

продвинутый ассистент нахождения в полосе скорее.

— работать в этом правовом поле гораздо проще, потому как ответственность безоговорочно перемещается на водителя.

Ну так он же про три года, тоесть про 13й год,а в 13м году оно вообще практически не работало.
Технический все так же ездит только в идеальном случае — пока нету припятствий, дождя, темноты.

А еще такие технологии точно будут душить со стороны государства, потому что излишняя и слишком стремительная автоматизация может вызвать некислый кризис на рынке труда. Сначала нужно найти, чем занять человеков, а уж потом заменять их роботами на рабочих местах.

Не будут. То государство, которое будет — проиграет конкуренцию.
Просто, скорее всего, сделают на такие фабрики дополнительный налог(врятли больше 10% сходу).

причем к тому времени будут заменены уже все остальные точно

Многих и так уже заменяют и заменили машинами за последние 40 лет. Рабочие, монотонные, однотипные специальности. Человеческие специальности — все больше те где надо сильно думать и творить, всякие креативные менеджеры по маркетингу. Программистов я считаю все хотят заменить в числе первых, потому что сейчас мы объективно бутылочное горлышко. Мы стоим много денег, с нами сложно работать, мы непонятно что делаем.

Да не вопрос. Но даже обычные конвеере не заменили еще роботами, ибо люди, внезапно, дешевле.
Программистов, конечно, все хотят заменить, как и ученых. Но блин, это на многие порядки сложнее конвеерных рабочих.
Давайте заменим ученых. Они ТОЧНО непонятно что делают. Причем начнем мы с тех, которые разрабатывают заменителей, чтоб уж точно быстро достигнуть сингулярности.

Программистов я считаю все хотят заменить в числе первых, потому что сейчас мы объективно бутылочное горлышко.

вики:
Термин «кризис программного обеспечения» был введён Фридрихом Л. Бауэром на Конференции НАТО «Инженерия программного обеспечения» в 1968 в Гармиш-Партенкирхене (Германия). Термин использовался Эдсгером В. Дейкстрой в 1972 в его лекции при получении премии Тьюринга:
Основная причина кризиса программного обеспечения — резкий рост мощностей вычислительных машин! Проще говоря: нет вычислительной техники — нет проблем с разработкой программного обеспечения для неё; когда же появилось несколько слабых компьютеров, появились первые проблемы, связанные с разработкой программного обеспечения, сейчас у нас есть гигантские компьютеры, и программирование стало столь же гигантской проблемой.
(конец цитаты)

итого, программистов хотят заменить с 1968 года...
интересно наблюдать за попытками, которые приводят — к все бОльшему, нас, программистов дефициту :)

мое сугубо хлопское мнение — проблема не в программистах. а как раз в тех кто хочет заменить. это они за десятилетия — не научились рулить айтипроектами и айтиперсоналом.

потому что на своем опыте вижу, насколько стати мощнее средства разработки, от инструментария до теории
конечно — и количество программного обеспечения выросло больше, чем продуктивность программиста.
но — управление проектами и все что с этим связано — существенно не изменилось. слова только поменялись, консалтеры пиарятся. а проблемы на проектах все те же.

Как не устраниться из-за автоматизации могут рассказать такие известные «бутылочные горлышки», как посредники по продаже авто и риелторы. Покак неадекваты будут топтать землю, мясные посредники неизбежно будут.

Если брать шахматы, то просто оказалось, что миллион просчитываемых вариантов важнее. Уже aplha-beta плюс эвристики было невозможно обыграть белковым шахматистам. Больше к AI имеет отношение го. Но в целом там это очень узкое формальное поле. А скепсис был больше связан с тем, что никто не мог представит себе рост вычислительных мощностей.

Интересны успехи в доказательстве теорем, например, это уже ближе.

Ой, я смотрел партии того матча. Во-первых, ноды в секунду это хорошо, а сколько вычислений было в нейросети? Если брать уловные FLOPS-s то у A0 их было побольше. Во-вторых, Stockfish был не последний, играл без дебютной книги, настройки были далеки от потимальных. И когда команда Stockfish предложила команде A0 провести матч, то DeepMind ответил типа «нам это неинтересно»

Был сезон TCEC который выиграла LeelaZero, но последние четыре сезона уверенно побеждает Stockfish.

Опять же это шахматы, и несколько миллионов сыгранные партий в общем-то достаточно полно описывают позиции, которые могу возникнуть и ходы, заслуживающие внимания. Нейросеть во многом играет роль ассоциативной памяти, что косвенно подтверждается тем фактом, что если просто в начальной позиции переставить слонов и коней местами, то получаем +200 ELO к разнице в рейтинге между Stockfish и LeelaZero. А если ладей поменять на ферзей, то ещё больше.

Ну а вообще я говорил больше про сравнение белковых шахматистов и программ, в любом случае даже то, что считает A0 обычный человек не посчитает :)

Тобто те, що сьогодні робимо ми. Постійно. З різним рівнем успіху.

Я не гадаю. Я роблю припущення, перевіряю їх читаючи сирцеви коди ліб, які використовуються, потім роблю первне обґрунтування, чому код має працювати. Тобто це прості але в перному сенсі математичні роздуми.

У DeepMind є акцент на олімпіадне програмування. Тобто як мінімум є тестовий сет. Далі нейромережа спробує вгадати тисячі разів, усі спроби перевіряються, потім беремо найкращий результат.

Про які помилки мова? Технічні?

Race condition, який стан необробоблено і т.п.

Тобто замовник зможе просто подивитися,

Після того, як впаде продакшн?

Race condition, який стан необробоблено і т.п.

Це все проблеми технічної реалізації. До речі, як-раз комп’ютеру буде набагато простіше проблеми паралельної обробки вирішувати. Це людям такі речі складно знаходити.

Після того, як впаде продакшн?

На зекономлені гроші куплять додаткові ресурси для non-production environments. ;)

Це все проблеми технічної реалізації. До речі, як-раз комп’ютеру буде набагато простіше проблеми паралельної обробки вирішувати. Це людям такі речі складно знаходити.

Ні, як раз це якісний крок уперед. Зараз ми нейромережа генерую тісячі варіантів, з яких один проходить тести, які були написані розробником проблема. Щоб вирішувати ці технічні моменти, треба, щоб нейромережа окрім кода генерувала математичний доказ його коректності. Для більшості ширпотребних мов ми не маємо навіть систем, де це може зробити людина. Приклади, які я знаю, це мови зі залежними типами (Agda, Idris, CoQ, ...) або імперативна Ada з контрактами.

Ваше припущення має сенс, якщо ми припускаємо, що
— людина яка формулює завдання ідеально знає предметну область
— чітко та логічно формулює думки
— тримає в голові всю систему і не буде задавати суперечливих вимог
— чітко знає кінцевий результат

Покажіть мені такого замовника, я дуже хочу з ним працювати)))

Окрім того, якщо щось аналогічне і буде, з великою ймовірністю воно працюватиме по принципу підписки і братиме гроші за кожну генерацію коду, що унеможливить запуск після кожної нової коми.

Якщо ми йдемо шляхом проб і помилок, то нам треба роздути штат тестувальників які б перевіряли кожен можливий сценарій після перегенерації.
+ людей які б писали тести або формували сценарії для ШІ по написанню юніт тестів.
Коротше, навіть при робочому ШІ(до чого ще неймовірно далеко) наразі виглядає так, що з людьми легше.

Хіба зʼявиться істинний штучний інтелект, який перевершить нас в усьому, в тому числі й в креативності й здібності фантазувати, але в такому випадку цей ШІ відразу або захопить людство або створить всі можливі прибуткові бізнеса або самовипилиться через екзистенційну кризу.

Ваше припущення має сенс, якщо ми припускаємо, що
— людина яка формулює завдання ідеально знає предметну область
— чітко та логічно формулює думки
— тримає в голові всю систему і не буде задавати суперечливих вимог
— чітко знає кінцевий результат

Якщо мати змогу раз за разом доуточнювати завдання та перегенеровувати результат, то все це геть непотрібно. ;)

Якщо ми йдемо шляхом проб і помилок, то нам треба роздути штат тестувальників які б перевіряли кожен можливий сценарій після перегенерації.

Чим, по-вашому, регресивне тестування займається?

+ людей які б писали тести або формували сценарії для ШІ по написанню юніт тестів.

Юніт-тести тут геть непотрібні. Яка кому різниця, що там за код? Код ніхто взагалі не бачитиме. Тільки готову функціонуючу систему.

Хіба зʼявиться істинний штучний інтелект, який перевершить нас в усьому, в тому числі й в креативності й здібності фантазувати

З цим складніше, але на багатьох проектах та/або в їх частинах креативність непотрібна. Тобто всіх, хто займається не надто креативною роботою, можна скоротити.

Якщо мати змогу раз за разом доуточнювати завдання та перегенеровувати результат, то все це геть непотрібно. ;)

люди, которые придумали 100500 методологий change management, чтобы случайно залетевшее новое требование не разнесло все к чертям: <сидят офигевшие>

Это потому, что любые изменения — жутко дОроги, т.к. требуют море ресурсов на реализацию. А представьте, что систему не нужно менять вообще. Зачем что-то править, если можно просто генерить ВСЮ систему с нуля под текущие условия? Change management не нужен вовсе.

. А представьте, что систему не нужно менять вообще. Зачем что-то править, если можно просто генерить ВСЮ систему с нуля под текущие условия?

А представьте, что ответственный за

текущие условия

банально опечатался. вместо 100000 вбил 1000000. (ну или наоборот). Или скопипастил значение из некорректной ячейки xls-таблицы c исходными данными. Или использовал устаревшие конфигурационные параметры

Change management не нужен вовсе.

Безумству храбрых поем мы песню ©

банально опечатался. вместо 100000 вбил 1000000. (ну или наоборот).

Опечатается обратно и перегенерит систему. Делов-то! ;)

А как эта опечатка определится?
Какими тестами?

Запустил и поглядел, делает ли система то, что от нее требовалось. По-моему этот тест никак не изменился со времен разработки самых первых изобретений человечества. :D Сорри за мелкий троллинг.

Запустил и поглядел, делает ли система то, что от нее требовалос

Ты не совсем понял что я хотел сказать. Чтобы тесты запустить, их кто-то должен написать. Если же тесты генерятся вместе с системой из тех же

текущих условий

то случаи

банально опечатался. вместо 100000 вбил 1000000. (ну или наоборот)

такие тесты не поймают

Ага, беремо ентерпрайз-систему на тисячу тест-кейсів, і кожні 10 хвилин, коли аішечка генерує нову версію, сідаємо проганяти повну регресію на тиждень. Супер. Таким чином, зекономивши на п’яти девелоперах, ми додаємо у штат п’ятдесят тестувальників.

Ну да. Было «система хранит данные за последние 10 лет», случайно поменяли на «за последние 10 дней».

Ой, блин. Что ж мы это. Быстро поменяли назад. Данные, впрочем, уже удалены.

Посмотрите чуть шире. Не «система хранит данные», а «данные — это и есть система». И можете подумать над тем, как можно не удалять данные. Интересная задача, как по мне.

Разговор был вовсе её об этом, а о том, как вносить изменения в код, который генерит ИИ, и добиваться корректности и непротиворечивости сгенерированного кода.

Что в этом контексте означает заявление «данные — это и есть система»? А если нет?

Сформированное ТЗ
Проработаные эдж кейсы
Утвержденные требовния\кейсы от заказчика...
Это 50-95% работы при рарзработке ногового, закодить это — обычно надергать методов\скриптов из фреемверков по туториалу, никакие алгоритмы там не пишут ну разве что очень редких случаев, которые опять таки прорабатываются очень долго и нудно.
И уже сейчас разработчики кодят очень мало чего, больше колупаются с тем что я указал выше + облака, CI\CD, митинги, погонять юнит тесты, вобщем сейчас программирование это чистый инжиниринг в стиле собрать из говна и палок что-то рабочее...
Про багфик тут уже отписали, никакое ИИ его не сможет делать, особенно в таком виде как сейчас.

ИИ написал программу. Ты её потыкал — тут работает, а вот тут баг. Попросил написать по новой.

А после любого изменения проверить — все ещё работает или поломалось? И так для всех функций и их комбинациий (ну, все в курсе про qa) . Уф!

Впрочем, есть идея — надо, чтобы ИИ сразу генерил и программу, и test harness. Только не один и тот же ИИ, а два разных, чтобы он не был слеп к своим же ошибкам.

Будет у нас developer AI и QA AI. Чтобы облегчить себе жизнь, на нужен ещё один ИИ, который будет им ставить задачи и править их, пока не получиться нужный результат. Назовём его Business analyst AI.

Чтобы вся эта байда не занимала все время мира и не занималась рассматриваем собственного пупа, сделаем ещё project management AI, чтобы следил за сроками и расходом расходом выч ресурсов.

И вот ставишь ты перед ними задачу, и ждёшь. Неделя прошла, результата нет. Ты спрашиваешь у PM AI — в чем же дело?

А он говорит — development AI решил, что он лучше будет картины рисовать через reverse GAN, а больше работать некому.

Колись це мало статися. Дарма народ в коментах сміється. Ні, програміст(к)и не зникнуть, звичайно. Просто кількість задач значно впаде, а вимоги до рівня знань значно зростуть. Чимало людей втратять роботу і не будуть здатні нічого знайти просто через природні інтелектуальні обмеження.

По сути, да. Это аналог процесса создания станков в 19-м веке. Автоматизация производства. До установки надо было 1000 рабочих, после — 100, но с квалификацией оператора станка.

Когда-то ковры тоже ткали вручную. И каждый из них был уникален.Потом заменили станками и «типовой продукцией». Разработка софта на 90% — это типовые решения для типовых задач. Логично, что они должны быть автоматизированы. Это напрашивается.

І до речі ті станки також програмують і створюють інженери.

Конечно.
Будут «инженеры» — которые проектируют AI и «операторы» — которые их используют. А те, кто не смог освоить ту или иную специализацию — на выход.

Тут ще треба зробити ремарку, що типовий килим з-під станка може купити будь-який касир, а от тканий вручну килим по кишені не кожному синьору.

Конечно. Что отнюдь не свидетельствует о его качестве. Тканый ковёр отличается от фабричного своей уникальностью, не более того. Типа 2-х одинаковых ковров, тканных вручную, не существует. Соответственно, это всего лишь понты для приезжих, кто готов платить за эксклюзив. ИМХО такой же бред, как платить лям зелени за мерс 1913 года тупо за то, что их мало осталось. Лично я не вижу в этом смысла — он ездит, как обычный старый хлам, а не как машина за лям :)

в итоге получится такой же код как и от гитхабовского автопилота — будут формы без защиты от csrf и прочие «удобные» до определенной поры вещи

Какойто результат не убедительный. А что если бот просто выучил 100500 условий задач из литкод портала и теперь работает просто как автозамена условий задачи на сабмиченый кемто там код.
Это будет самая умная литкод макака в мире.

То есть, систему тренели на исходниках с багами, которые с кучей минорных версий постоянно правятся и пополняются новыми костылями, магией и багами? Это будет почетный Senior Bug Generator.

Плюс ещё будут бить ногами за копирование опенсорса в коммерческий продукт.

Ох, швидше б воно вже пішло в продакшн. Кожна заміна програміста на таку систему створить ще 3 робочих місця для програмістів, щоб все виправити :)

Писати код просто, сапортити написане важко.

Та да. А якщо «написати» з нуля можна буде за кілька хвилин/годин, то об’єми підтримки написаного значно знизяться.

Надо будет всего лишь формулировать свою задачу на уровне олимпиадной — с закрытой спекой, тестами, которые покрывают все на свете, и примерами входа и выхода

Или пере-/доформулировать много раз, когда результат будет неудовлетворительным. Допустим, пару-тройку раз в день, а ИИ будет генерить систему по уточненной формулировке. ;)

Про это мировая культура уже все написала. Всякие джины из лампы, needful things и двое из ларца.

Перефлрмулировать тот кусок, который не вышел рылом — это тот самый рецепт плодить мелкие кривые заплатки и генерить говнокод, с которым многие так хорошо знакомы.

Вже майже тиждень відловлюю плаваючий баг який періодично блокує критичний функціонал системи.

Буду готовий піти на пенсію чи обрати будь-яку іншу професію в той день, коли штучний інтелект зможе фіксати такі проблеми.

Він згенерує код з нуля за кілька хвилин, а багів генерувати не буде. ;)

Бугага)
Нагадало напівлегендарну історію про одного ефективного менеджера який сказав: «А навіщо нам тестувальники? Нехай програмісти просто пишуть код без помилок!»

Я зараз працюю в команді компанії, яку я не маю права називати за контрактом, але вона у першій п’ятірці IT-компаній. Так от. У них по-суті саме такий підхід — у мене на проекті немає тестувальників взагалі. Тільки перехресний перегляд коду та юніт-тести. І це не завадило компанії мати капіталізацію більше трильйона долларів. ;)

Да да, перегенирирует код, к примеру, windows. Ниче, что оно только компилится на данном этапе неделями?

Угу. И код марсохода. <рукалицо>
На многих Вы проектах типа Windows работали? Я ни на одном. Генерировать будут проекты гораздо ниже по уровню сложности. А специалисты(ки), которые на них работали, пойдут на более сложные (те, кто смогут). А те программисты(ки), которые работали на более сложных, пойдут на еще более сложные (те, кто смогут). А кто не сможет... Понятно, куда я клоню?

Я работал на достаточном количестве проектов, которых не может полностью охватить одно лицо с интелектом выше среднего.
Вы, может, работали только с мелкой фигней — тогда да, это раньше получиться отдать роботам.

Кстати, нет проекта «Windows», если что. Это огромный конгломерат самых разнообразных проектов. Может его и собирают несколько недель, но причем тут процесс разработки?

1. міняємо програмістів на роботів
2. розуміємо що щоб поставити задачу роботам потрібна детальна документація зі всіма едж-кейсами, компромісами і нефункціональними вимогами
3. робимо високорівневу мову для опису такої документації (виходить щось підозріло схоже на javascript, бо його всі знають)
4. шукаємо людей які можуть писати на цій мові, і заодне додумувати вимоги і міняти колір кнопок туди-назад
5. наймаємо «колишніх» програмістів)))

бо його всі знають

Думають, що знають

для початку задачу яку ставиш треба ще самому до кінця зрозуміти у всіх деталях, з чим зазвичай є проблеми)

Правильно сформульована задача містить половину рішення, а з цим зазвичай головна проблема.

Lombok теж вміє генерувати код, але як бути з бізнес флоу, коли декілька днів витрачається, щоб зрозуміти де if треба втулити?

Поки стекхолдери не можуть ставити нормально вимоги ми в безпеці

хіба їх теж замінить AI

Якщо нам буде ставити вимоги AI, це вже буде називатись «повстання машин»

А де можна глянути на задачу та ii рiшення в цiй системi?

Не буду прималяти саме досягнення, це дійсно дуже добре.

Але від СМІ сьогодні вже трошки зле після усих цих «нейромережа, що пише код на рівні середнього програміста».

за загальною продуктивністю він увійшов до 28% найкращих користувачів, які брали участь у конкурсі протягом останніх шести місяців.

Скоріш за все, достатньо навчився рішати типові завдання з навчальної вибірки, щоб виглядати не гірше «перспективного новачка».

Якщо його натренувати на тестах з будь-яких дисциплін, то він взагалі виявиться краще ніж 99% людей.

Таким чином, AlphaCode навчена вирішувати завдання, які потребують критичного мислення, логіки, вміння програмувати та розуміння природної мови.

Щодо «розуміння природньої мови» — поки що навіть найкращі трансформери/GPT-X виглядають дуже і дуже скромно.

Щодо критичного мислення я краще просто промовчу.

Щодо критичного мислення я краще просто промовчу.

Так оно и среди людей доволи таки не часто :-)

Підписатись на коментарі