Программисты создали проект «Этот код не существует»



    23 февраля 2021 года разработчики из MESS Lab (университет Нью-Йорка) открыли в общий доступ проект «Этот код не существует» (this code does not exist). На сайте doesnotexist.codes выводится листинг части кода на C/C++. Пользователю предлагается угадать — это настоящий код или его фрагменты были получены в результате работы нейросети GPT-2, обученной на 774 млн строк кода из 10 тыс. самых популярных пакетов Debian. Настоящие фрагменты кода также были взяты из того же набора пакетов.

    Нейросеть каждый раз генерирует новые примеры кода, путем запроса модели со 128 байтами из случайного файла исходного кода C/C++ из пакета Debian, не входящего в число первых 10 тыс. строк, на которых она обучалась.

    Этот проект фактически является продолжением серии проектов "This X Does Not Exist", где нейросети создают различные вариации чего-либо (картинки, стихи, визуальные образы), которых на самом деле нет.
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 19

      +16
      Тут иногда в реальности такой код увидишь, что первая мысль возникает, что «такой код не существует», а потом «а нет, вот же вполне реальный код, на котором проект проработал лет 5».
        +4
        И его написал ты сам несколько лет назад
        0

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

          +3

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


          Мой результат — 33/50.

            0
            Похоже на захардкоженные координаты чего-то.
            0

            Комментарии там глупые — и это легко, но в паре мест был очень, очень правдоподобный код — и это сложно.

              +2

              Знаю многих людей, которые пишут не реальный, а сгенерированный код.

              0

              выдал такой код:


              void AvatarShared::setFilePath(const QString &filePath)
              {
                  if (FilePath != filePatron) {
                      FilePath = filePath;
                      QString home = QDir::homePath();
                      if (!filePath.startsWith(home)) {
                          if (FilePath.contains(home)) {
                              File = filePath;
                              QFile file(FilePath);
                              if (!file.exists())
                                  storeSmallPixmap();
                          }
                      }
                  }
              }
              
              void AvatarShared::setAvatar(const Avatar &avatar)
              {
                  avatar = avatar;
              }
              

              Похоже, QT и обнаружена ошибка)

                0
                Бредовый код, на самом деле. Он, в теории, конечно может быть рабочим, но мешанина из filePath и FilePath, говорит о том что существуют глобальные переменные или поля класса с именами filePatron (кэмелкейс), File и FilePath (с большой буквы), что уже является весьма своеобразным отношением к naming conventions, да и логика в if'ах и дальше все равно получается какая-то наркоманская.
                Поэтому все-таки ставлю на нейросеть :)
                +1
                они просто тренируют какую то новую модель,
                  0

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


                  Подаем результат работы живых разработчиков на вход этой новой модели перед тем как Code Review живым человеком делать.

                  +2
                  почти все мои ошибки были сделаны с мыслью «ну не мог же живой человек написать такую дичь»
                    +3

                    Score: 18/23


                    Очень утомительная игра. Я имею в виду, что чтение сырцов (именно в таком режиме — посреди чёрти чего с попыткой понять непонятно что) — это одна из самых сложных частей моей работы. Где-то на 20ой задаче я почувствовал, что устал. Реально сильно устал.

                      +1
                      Вижу «typedef 0 NULL», жму GPT2. Результат: WRONG. Что?
                        0

                        Ну всё, ещё немного и код будут писать нейросети. А программисты будут только фиксить баги и покрывать его тестами (хотя для тестов тоже будет нейросеть).


                        [ирония. грустная. ]

                          0
                          А потом нейросети будут писать другие нейросети.
                            0
                            Нейросеть не напишет ничего нового, может разве что перемешать старое. Так они устроены. Так что не грустите, ничто живого человека не способно заменить ещё лет 500 будет. Я вот в этой игре просто смотрю на чёрный квадрат, зелёные и оранжевые полоски символов и неплохо угадываю, где real а где gpt в 75% случаев, не читая ни одного слова.
                            0

                            Скайнет. начало

                              +1
                              Замечательная идея для "хеш-стеганографии"!

                              Но… пока некогда. Если есть студенты, желающие получить эндорфин в мозг и покачать скиллы на интересной теме стеганографии — пишите в личку.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое