Главные новости за 24 мая
Медики из Нидерландов и Дании разработали сверточную нейросеть для распознавания снимков флюорографии и компьютерной томографии. Сеть анализирует снимки пациентов, у которых есть подозрение на рак легких. Обучение проводили на нескольких тысячах снимков - и здоровых легких и органов с онкологией. Сеть работает хорошо: онкологию даже на ранней стадии она распознает как минимум не хуже, чем врачебный консилиум - с точность 95%. Может быть, самое интересное, что работу выполнили сотрудники медицинских организацией и исследовательских центров, то есть работали не специалисты по ИИ, а профессиональные медики, конечно, хорошо разбирающиеся и в программировании. И как раз то, что такие, еще несколько лет назад революционные методы постепенно становятся такой же привычной процедурой как флюорография или КТ, это-то и удивляет.
Распознавание картинок - это хорошо определенная задача: нейросеть заранее знает, что ей искать, и ее можно подготовить на размеченных человеком данных. Но конечно, не все задачи, которые человек решает, так хорошо определены. Например, в программировании все совсем не так. Чтобы сверточная сеть научилась распознавать рак, ее надо было сначала написать. И сделать это было непросто.
Сотрудники отдела ИИ корпорации IBM всерьез решили помочь как раз программистам. Вообще-то во всем, что касается приложений программирования, программисты сначала всегда заботились о себе. Так для себя они придумывают и новые языки, и среды программирования. Но вот нейросети, которая хотя бы немного облегчила работу программиста, до сих пор не было. Разработка IBM получила название CodeNet. Название дано скорее авансом - по аналогии с ImageNet: так называется база картинок для распознавания, которая стала толчком для быстрого прогресса в развитии сверточных сетей.
CodeNet - это собрание из 14 миллионов блоков кода (500 миллионов строк) на 55 языках программирования. Код собирали из открытых баз и больше всего собрали на С++, что совсем неудивительно. Но и другие языки тоже широко представлены. Нейросети, которые обучали на этой базе, - самые разные: от простых многослойных перцептронов до продвинутых трансформеров. Но сети работают. Сегодня лучше всего они решают задачу перевода с языка на язык, например, с COBOL на Python Когда Google Translator переводит с английского на русский и делает ошибку - это нестрашно, человек его поймет. А вот когда CodeNet при переводе ошибается - полученная программа работать не будет. А CodeNet выдает точный код в 90% случаев. Но это все равно очень здорово. Это значит, что программу на новом языке уже не надо писать с нуля, ее достаточно поправить. А это много проще.
Кроме того, теперь программисты ждут, когда CodeNet сделает следующий шаг (а он анонсирован) - начнет создавать блоки кода по текстовому описанию на естественном языке: ты пишешь по-русски, чего ты хочешь, а за тебя CodeNet программирует на С++, например. Это очень серьезно. Даже пускай в созданном коде будут ошибки, это сэкономит время на рутинных фрагментах. Похоже, нейросети начинают думать и об удобстве своих создателей - программистов.