Первые результаты не заставили себя ждать. Когда в конце ноября 2021 г. Всемирная организация здравоохранения объявила о присвоении новому варианту SARS-CoV-2 под кодовым названием B.1.1.529 наименования Omicron, исследователь Колби Форд из Университета Северной Каролины применил AlphaFold 2 к последовательности аминокислот этого вируса и опубликовал полученные результаты в Сети. Форд поделился предсказанной AlphaFold 2 формой S-белка вируса, а также высказал соображения о том, что Omicron, по всей видимости, должен быть более устойчив ко многим имеющимся на данный момент вакцинам и лекарствам[3009], [3010]. После того как были получены лабораторные результаты исследования структуры белков вируса, выяснилось, что предсказания AlphaFold 2 были весьма точны: позиции центральных атомов в построенной модели отличались от реальных на совсем небольшие величины, приблизительно равные радиусу атома водорода[3011]. В конце июля 2022 г. DeepMind опубликовала огромную базу данных (AlphaFold Protein Structure Database, База данных структур белков AlphaFold), включающую в себя предсказанные AlphaFold 2 трёхмерные структуры около 200 миллионов белков (т. е. практически всех известных нам белков на планете)[3012].
В середине 2021 г. исследователи из Google рассказали в журнале Nature об успешном применении системы, основанной на обучении с подкреплением, для автоматической разработки новых интегральных схем. Новая система может менее чем за шесть часов спроектировать чип, на разработку которого у людей уходят месяцы, причём данный способ был с успехом опробован на практике при разработке нового TPU четвёртой версии от Google. По мнению создателей системы, достигнутый прогресс может серьёзно повлиять на весь полупроводниковый сектор[3013], позволив компаниям проводить крупномасштабные архитектурные исследования. «Разработка лекарств, белков, квантовая химия, новые материалы — только подумайте, возможно, не за горами появление сверхпроводника, работающего при комнатной температуре, — говорит Демис Хассабис, глава DeepMind. — Я мечтал о таком с тех пор, как был ребёнком и читал книги по физике»[3014]. Генеративные модели создают новые молекулы, новые структуры композитных материалов[3015], проектируют инженерные конструкции[3016], верстают сайты[3017], придумывают дизайн промышленных изделий[3018] и интерьера помещений[3019], логотипы[3020] и даже новые архитектуры нейросетевых моделей[3021]. За последние годы исследователи Google опубликовали сразу несколько работ[3022], [3023], [3024], [3025], посвящённых этому направлению — обычно его называют AutoML (Automated machine learning, автоматическое машинное обучение). Успехи нейросетевых моделей в области обработки естественного языка привели к тому, что исследователи попытались повторить эти успехи в смежной области — обработке языков программирования (Programming language processing, PLP). Практически для любой задачи из области NLP можно найти аналог в мире PLP. Например, задача машинного перевода соответствует задачам трансляции текста программы в псевдокод или машинный код, перевода текста программ с одного языка программирования на другой, а также декомпиляции. Задача генерации текста на естественном языке в мире PLP становится задачей генерации текста программы (например, автозавершение вводимого текста программы или даже генерация текста программы по его описанию на естественном языке). Сентимент-анализу соответствует поиск дефектов в программном коде (например, ошибок или уязвимостей) и так далее. Неудивительно, что в мире PLP сегодня господствуют родственники популярных NLP-моделей. Например, основанная на трансформерах модель PLBART[3026] приходится ближайшей родственницей модели BART[3027], модель CodeBERT[3028] основана на BERT, GPT-C[3029] — на GPT-2, code2vec[3030] отсылает нас к word2vec и так далее. В последние годы на основе подобных моделей появился целый ряд инструментов разработки, быстро завоевавших популярность, например Kite[3031], TabNine[3032] или Copilot[3033]. В начале февраля 2022 г. собственную модель для генерации кода, получившую название AlphaCode, представила и DeepMind. Модель справляется с решением задачек на сайте соревнований по спортивному программированию Codeforces на уровне, не уступающем средним программистам[3034]. Сегодня генеративные трансформерные модели, получая на вход текстовые описания, справляются с генерацией кода[3035], [3036] и даже с созданием несложных приложений[3037], а в задаче поиска дефектов и уязвимостей в коде они уже превосходят статические анализаторы кода, основанные на обширных наборах правил[3038], [3039], [3040]. В последнее время появилось и несколько открытых моделей, предназначенных для работы с программным кодом, например: InCoder[3041], CodeGen[3042], SantaCoder[3043], StarCoder[3044], Code Llama[3045], WizardCoder[3046] и Replit Code[3047]. Впрочем, не стоит предаваться чрезмерному оптимизму и думать, что с появлением таких моделей, как BERT, T5 или GPT-3, все творческие задачи в областях, где данные по своей структуре напоминают текст, уже решены или будут решены в ближайшее время. Точно так же не следует думать, что генеративно-состязательные сети в сочетании с глубокими свёрточными сетями раз и навсегда сделали творческие задачи, связанные со всем, что напоминает изображения, тривиальными. Ограничения реального мира в виде нехватки данных или вычислительных мощностей остаются серьёзными препятствиями на пути эффективного машинного творчества. Например, существующие базы данных расшифрованных последовательностей ДНК людей в сумме составляют немногим больше миллиона записей. Медицинская и биологическая информация нередко разбросана по сотням и тысячам относительно небольших баз данных, доступ исследователей к которым ограничен действующими законами и коммерческой тайной. С расшифрованными последовательностями ДНК других организмов дела обстоят не многим лучше — стоимость секвенирования пока что достаточно высока, и не все лаборатории стремятся предоставить открытый доступ к собранным ими данным. Если бы эта информация была столь же доступной, как фотографии или тексты, это могло бы помочь в создании генеративных моделей для разработки новых лекарств, генной терапии, генно-модифицированных организмов (для медицинских и других целей) и так далее. Но люди, к большому сожалению исследователей, выкладывают в социальные сети фотографии своих котиков, а не результаты секвенирования ДНК. Большие модели, подобные GPT-3, требуют при обучении не только гигантских объёмов данных, но и выдающихся вычислительных затрат, которые в наши дни по карману лишь крупным корпорациям. Кроме того, эти модели требуют больших объёмов вычислений не только на этапе обучения, но и на этапе использования.
вернуться Ford C. T. (2021). Protein Structure Prediction of the new B.1.1.529 SARS-CoV-2 Spike Variant with AlphaFold2 / Colby T. Ford, PhD, Nov 27, 2021 // https://colbyford.medium.com/protein-structure-prediction-of-b-1-1-529-sars-cov-2-spike-variant-with-alphafold2-39c5bf9cf9ed вернуться Ford C. T., Machado D. J., Janies D. A. (2021). Predictions of the SARS-CoV-2 Omicron Variant (B.1.1.529) Spike Protein Receptor-Binding Domain Structure and Neutralizing Antibody Interactions // https://doi.org/10.1101/2021.12.03.471024 вернуться Simonite T. (2022). This AI Software Nearly Predicted Omicron’s Tricky Structure / Wired, 01.10.2022 // https://www.wired.com/story/ai-software-nearly-predicted-omicrons-tricky-structure/ вернуться Hassabis D. (2022). AlphaFold reveals the structure of the protein universe / DeepMind blog, July 28, 2022 // https://www.deepmind.com/blog/alphafold-reveals-the-structure-of-the-protein-universe вернуться Jiang J. W., Songhori E., Wang S., Lee Y.-J., Johnson E., Pathak O., Nazi A., Pak J., Tong A., Srinivasa K., Hang W., Tuncer E., Le Q. V., Laudon J., Ho R., Carpenter R., Dean J. (2021). A graph placement methodology for fast chip design / Nature, Vol. 594, pp. 207—212 // https://doi.org/10.1038/s41586-021-03544-w вернуться Gershgorn D. (2017). DeepMind has a bigger plan for its newest Go-playing AI / Quartz, October 18, 2017 // https://qz.com/1105509/deepminds-new-alphago-zero-artificial-intelligence-is-ready-for-more-than-board-games/ вернуться Ren F., Ward L., Williams T., Laws K. J., Wolverton C., Hattrick-Simpers J., Mehta A. (2018). Accelerated discovery of metallic glasses through iteration of machine learning and high-throughput experiments / Science Advances, Vol. 4, No. 4 // https://doi.org/10.1126/sciadv.aaq1566 вернуться Hornby G. S., Globus A., Linden D. S., Lohn J. D. (2006). Automated antenna design with evolutionary algorithms // https://doi.org/10.2514/6.2006-7242 вернуться Robinson A. (2019). Sketch2code: Generating a website from a paper mockup // https://arxiv.org/abs/1905.13750 вернуться Dosovitskiy A., Springenberg J. T., Tatarchenko M., Brox T. (2014). Learning to Generate Chairs, Tables and Cars with Convolutional Networks // https://arxiv.org/abs/1411.5928 вернуться Spilka D. (2018). What Does AI mean for Interior Design? / MIPIM World Blog, May 3, 2018 // https://blog.mipimworld.com/innovation/ai-artificial-intelligence-mean-interior-design/ вернуться Злобин А. (2020). Студия Лебедева больше года выдавала искусственный интеллект за реального дизайнера / Forbes, 26.06.2020 // https://www.forbes.ru/newsroom/tehnologii/403795-studiya-lebedeva-bolshe-goda-vydavala-iskusstvennyy-intellekt-za-realnogo вернуться Jin H., Song Q., Hu X. (2018). Auto-Keras: An Efficient Neural Architecture Search System // https://arxiv.org/abs/1806.10282 вернуться Zoph B., Le Q. V. (2016). Neural Architecture Search with Reinforcement Learning // https://arxiv.org/abs/1611.01578 вернуться Kaiser L., Gomez A. N., Shazeer N., Vaswani A., Parmar N., Jones L., Uszkoreit J. (2017). One Model To Learn Them All // https://arxiv.org/abs/1706.05137 вернуться Howard A., Sandler M., Chu G., Chen L.-C., Chen B., Tan M., Wang W., Zhu Y., Pang R., Vasudevan V., Le Q. V., Adam H. (2019). Searching for MobileNetV3 // https://arxiv.org/abs/1905.02244v5 вернуться Xiong Y., Liu H., Gupta S., Akin B., Bender G., Kindermans P.-J., Tan M., Singh V., Chen B. (2020). MobileDets: Searching for Object Detection Architectures for Mobile Accelerators // https://arxiv.org/abs/2004.14525v2 вернуться Ahmad W. U., Chakraborty S., Ray B., Chang K.-W. (2021). Unified Pre-training for Program Understanding and Generation // https://arxiv.org/abs/2103.06333 вернуться Lewis M., Liu Y., Goyal N., Ghazvininejad M., Mohamed A., Levy O., Stoyanov V., Zettlemoyer L. (2019). BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension // https://arxiv.org/abs/1910.13461 вернуться Feng Z., Guo D., Tang D., Duan N., Feng X., Gong M., Shou L., Qin B., Liu T., Jiang D., Zhou M. (2020). CodeBERT: A Pre-Trained Model for Programming and Natural Languages // https://arxiv.org/abs/2002.08155 вернуться Svyatkovskiy A., Deng S. K., Fu S., Sundaresan N. (2020). IntelliCode Compose: Code Generation Using Transformer // https://arxiv.org/abs/2005.08025 вернуться Alon U., Zilberstein M., Levy O., Yahav E. (2018). code2vec: Learning Distributed Representations of Code // https://arxiv.org/abs/1803.09473 вернуться kite. Code Faster. Stay in Flow // https://www.kite.com/ вернуться TabNine. Code faster with AI completions // https://www.tabnine.com/ вернуться Copilot. Your AI pair programmer // https://copilot.github.com/ вернуться Li Y., Choi D., Chung J., Kushman N., Schrittwieser J., Leblond R., Eccles T., Keeling J., Gimeno F., Lago A. D., Hubert T., Choy P., de Masson d’Autume C., Babuschkin I., Chen X., Huang P.-S., Welbl J., Gowal S., Cherepanov A., Molloy J., Mankowitz D. J., Robson E. S., Kohli P., de Freitas N., Kavukcuoglu K., Vinyals O. (2022). Competition-Level Code Generation with AlphaCode // https://storage.googleapis.com/deepmind-media/AlphaCode/competition_level_code_generation_with_alphacode.pdf вернуться Perez L., Ottens L., Viswanathan S. (2021). Automatic Code Generation using Pre-Trained Language Models // https://arxiv.org/abs/2102.10535 вернуться Langston J. (2021). From conversation to code: Microsoft introduces its first product features powered by GPT-3 / Microsoft/The AI Blog, May 25, 2021 // https://blogs.microsoft.com/ai/from-conversation-to-code-microsoft-introduces-its-first-product-features-powered-by-gpt-3/ вернуться Hasan M., Mehrab K. S., Ahmad W. U., Shahriyar R. (2021). Text2App: A Framework for Creating Android Apps from Text Descriptions // https://arxiv.org/abs/2104.08301 вернуться Lin G., Wen S., Han Q.-L., Zhang J., Xiang Y. (2020). Software Vulnerability Detection Using Deep Neural Networks: A Survey / Proceedings of the IEEE, Vol. 108, Iss. 10, pp. 1825—1848 // https://doi.org/10.1109/JPROC.2020.2993293 вернуться Wu J. (2021). Literature review on vulnerability detection using NLP technology // https://arxiv.org/abs/2104.11230 вернуться Ziems N., Wu S. (2021). Security Vulnerability Detection Using Deep Learning Natural Language Processing // https://arxiv.org/abs/2105.02388 вернуться Fried D., Aghajanyan A., Lin J., Wang S., Wallace E., Shi F., Zhong R., Yih W.-T., Zettlemoyer L., Lewis M. (2022). InCoder: A Generative Model for Code Infilling and Synthesis // https://arxiv.org/abs/2204.05999 вернуться Nijkamp E., Pang B., Hayashi H., Tu L., Wang H., Zhou Y., Savarese S., Xiong C. (2022). CodeGen: An Open Large Language Model for Code with Multi-Turn Program Synthesis // https://arxiv.org/abs/2203.13474 вернуться Allal L. B., Li R., Kocetkov D., Mou C., Akiki C., Ferrandis C. M., Muennighoff N., Mishra M., Gu A., Dey M., Umapathi L. K., Anderson C. J., Zi Y., Poirier J. L., Schoelkopf H., Troshin S., Abulkhanov D., Romero M., Lappert M., Toni F. D., de Río B. G., Liu Q., Bose S., Bhattacharyya U., Zhuo T. Y., Yu I., Villegas P., Zocca M., Mangrulkar S., Lansky D., Nguyen H., Contractor D., Villa L., Li J., Bahdanau D., Jernite Y., Hughes S., Fried D., Guha A., de Vries H., von Werra L. (2023). SantaCoder: don't reach for the stars! // https://arxiv.org/abs/2301.03988 вернуться Li R., Allal L. B., Zi Y., Muennighoff N., Kocetkov D., Mou C., Marone M., Akiki C., Li J., Chim J., Liu Q., Zheltonozhskii E., Zhuo T. Y., Wang T., Dehaene O., Davaadorj M., Lamy-Poirier J., Monteiro J., Shliazhko O., Gontier N., Meade N., Zebaze A., Yee M., Umapathi L. K., Zhu J., Lipkin B., Oblokulov M., Wang Z., Murthy R., Stillerman J., Patel S. S., Abulkhanov D., Zocca M., Dey M., Zhang Z., Fahmy N., Bhattacharyya U., Yu W., Singh S., Luccioni S., Villegas P., Kunakov M., Zhdanov F., Romero M., Lee T., Timor N., Ding J., Schlesinger C., Schoelkopf H., Ebert J., Dao T., Mishra M., Gu A., Robinson J., Anderson C. J., Dolan-Gavitt B., Contractor D., Reddy S., Fried D., Bahdanau D., Jernite Y., Ferrandis C. M., Hughes S., Wolf T., Guha A., von Werra L., de Vries H. (2023). StarCoder: may the source be with you! // https://arxiv.org/abs/2305.06161 вернуться Rozière B., Gehring J., Gloeckle F., Sootla S., Gat I., Tan X. E., Adi Y., Liu J., Remez T., Rapin J., Kozhevnikov A., Evtimov I., Bitton J., Bhatt M., Ferrer C. C., Grattafiori A., Xiong W., Défossez A., Copet J., Azhar F., Touvron H., Martin L., Usunier N., Scialom T., Synnaeve G. (2023). Code Llama: Open Foundation Models for Code // https://arxiv.org/abs/2308.12950 вернуться Luo Z., Xu C., Zhao P., Sun Q., Geng X., Hu W., Tao C., Ma J., Lin Q., Jiang D. (2023). WizardCoder: Empowering Code Large Language Models with Evol-Instruct // https://arxiv.org/abs/2306.08568 вернуться Replit, Inc. (2023). replit-code-v1-3b // https://huggingface.co/replit/replit-code-v1-3b |