Литмир - Электронная Библиотека
Содержание  
A
A

Первые результаты не заставили себя ждать. Когда в конце ноября 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, требуют при обучении не только гигантских объёмов данных, но и выдающихся вычислительных затрат, которые в наши дни по карману лишь крупным корпорациям. Кроме того, эти модели требуют больших объёмов вычислений не только на этапе обучения, но и на этапе использования.

вернуться

3009

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

вернуться

3010

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

вернуться

3011

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/

вернуться

3012

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

вернуться

3013

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

вернуться

3014

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/

вернуться

3015

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

вернуться

3016

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

вернуться

3017

Robinson A. (2019). Sketch2code: Generating a website from a paper mockup // https://arxiv.org/abs/1905.13750

вернуться

3018

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

вернуться

3019

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/

вернуться

3020

Злобин А. (2020). Студия Лебедева больше года выдавала искусственный интеллект за реального дизайнера / Forbes, 26.06.2020 // https://www.forbes.ru/newsroom/tehnologii/403795-studiya-lebedeva-bolshe-goda-vydavala-iskusstvennyy-intellekt-za-realnogo

вернуться

3021

Jin H., Song Q., Hu X. (2018). Auto-Keras: An Efficient Neural Architecture Search System // https://arxiv.org/abs/1806.10282

вернуться

3022

Zoph B., Le Q. V. (2016). Neural Architecture Search with Reinforcement Learning // https://arxiv.org/abs/1611.01578

вернуться

3023

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

вернуться

3024

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

вернуться

3025

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

вернуться

3026

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

вернуться

3027

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

вернуться

3028

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

вернуться

3029

Svyatkovskiy A., Deng S. K., Fu S., Sundaresan N. (2020). IntelliCode Compose: Code Generation Using Transformer // https://arxiv.org/abs/2005.08025

вернуться

3030

Alon U., Zilberstein M., Levy O., Yahav E. (2018). code2vec: Learning Distributed Representations of Code // https://arxiv.org/abs/1803.09473

вернуться

3031

kite. Code Faster. Stay in Flow // https://www.kite.com/

вернуться

3032

TabNine. Code faster with AI completions // https://www.tabnine.com/

вернуться

3033

Copilot. Your AI pair programmer // https://copilot.github.com/

вернуться

3034

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

вернуться

3035

Perez L., Ottens L., Viswanathan S. (2021). Automatic Code Generation using Pre-Trained Language Models // https://arxiv.org/abs/2102.10535

вернуться

3036

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/

вернуться

3037

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

вернуться

3038

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

вернуться

3039

Wu J. (2021). Literature review on vulnerability detection using NLP technology // https://arxiv.org/abs/2104.11230

вернуться

3040

Ziems N., Wu S. (2021). Security Vulnerability Detection Using Deep Learning Natural Language Processing // https://arxiv.org/abs/2105.02388

вернуться

3041

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

вернуться

3042

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

вернуться

3043

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

вернуться

3044

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

вернуться

3045

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

вернуться

3046

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

вернуться

3047

Replit, Inc. (2023). replit-code-v1-3b // https://huggingface.co/replit/replit-code-v1-3b

302
{"b":"936964","o":1}