Специалист по машинному обучению Игорь Котенков рассказывает, так ли страшен искусственный интеллект, как его малюют, и какие сферы разработки явно переоценены
На фоне того, как айтишники стали новой модой, мы решили взять интервью у классного молодого разработчика Игоря Котенкова — однозначно одаренного специалиста по машинному обучению, в чьем послужном списке уже числятся «Сбер», «Яндекс», X5 Group, AliExpress и еще пара международных мест работы. Еще он успевает давать свою экспертизу в статьях о нейросетях и рассказывать про разработку на YouTube и ведет телеграм-канал «Сиолошная».
Интервью будет полезно тем, кто хочет узнать, почему в наше время нейросети вместо людей — это фантазия, в каких случаях поможет ИИ и когда не обойтись без человека, а также с чего начать путь в ИТ заинтересованному кандидату.
![Игорь Котенков, специалист по машинному обучению Игорь Котенков, специалист по машинному обучению](https://habrastorage.org/getpro/habr/upload_files/aae/8a6/6ec/aae8a66ec6b099afedc976611533eb5d.png)
Нейросети вместо людей — пока фантазия
Абсолютно точно сейчас на данном этапе развития технологий не идет речи про замену нейросетями кого угодно, хоть за последний год они приятно удивили своим прогрессом. Важно понимать их ограничения, особенно в разрезе интеграции в реальный мир. Думаю, что передовые технологии вроде ChatGPT, скорее, будут принимать на себя рутинные задачи вроде написания сопроводительной документации, где ошибки не столь критичны, писать автотесты и вылавливать баги. Сами модели пока не умеют реализовывать большие проекты с нуля, да и маленькие тоже.
Людям же начнут доставаться все более сложные задачи, требующие тонкого понимания проблем, креатива, разносторонних коммуникаций. У хорошего сеньорного программиста написание кода может занимать 25–30% рабочего времени. И это не потому, что он ленится. Даже если всю эту часть автоматизировать, все еще остается большое количество других задач, не связанных с кодом напрямую.
В обществе по отношению к ИИ сложилось три лагеря:
кто переживает и пытается донести свои опасения до других;
кто приветствует новые технологии, не думая о последствиях;
кому по барабану или кто еще, быть может, даже и не слышал о ChatGPT (такие и вправду есть!).
Как с силой приходит ответственность, так и с более качественными моделями приходит осознание их влияния на наш мир. Прародителя ChatGPT, модель GPT-2, к примеру, в самой компании OpenAI решили не выкладывать публично, опасаясь, что люди начнут генерировать недостоверную и провокационную информацию в больших объемах. Засорение медиапространства — это действительно не самая приятная вещь, но, по мере того как модели становятся умнее, способнее, количество проблем, которые они могут вызывать, увеличивается. Под «умом» в контексте языковых моделей я понимаю количество задач, решаемых автономно и без ошибок. Я могу долго распинаться про то, что можно дать модели задачу: выполнить что-либо плохое, — но лучше всего прочитать вторую часть моей статьи про GPT-4, где описаны подводные камни релизов LLM (Large Language Models, LLMs), или больших языковых моделей.
Если вкратце, то сейчас не существует гарантированных способов контроля поведения моделей, и если им предоставить интерфейс, например взаимодействия с реальным миром посредством интернета, с возможностью выполнения кода, то мы не знаем, к чему это приведет. Вернее, GPT-4, скорее всего, ничего не сделает, картиночная MidJourney и подавно: она не сможет начать обманывать людей, тысячами рассылать фишинговые сообщения, чтобы заработать денег на собственное поддержание и выполнение каких-то других задач.
Обо всем этом пишут в оригинальной статье про GPT-4: авторы пытались заставить модель «сбежать» в интернет, но пока безуспешно — слишком сложной оказалась задача. Однако модель, к примеру, справилась с наймом и обманом фрилансера для прохождения капчи. Вы наверняка видели кликбейтные заголовки типа «Нейросеть прикинулась слепым и обвела человека вокруг пальца!».
Но вот если появится более умная модель, которая выполняет поставленные задачи, умеет их декомпозировать, возможно, отдавать на исполнение другим своим копиям, то события могут начать развиваться стремительно. А понимания и гарантий того, в какую сторону будет «думать» модель, напомню, у нас нет.
Какие навыки противопоставить ИИ
![](https://habrastorage.org/getpro/habr/upload_files/b20/da8/308/b20da830811fd9ceb267e1b5f516b163.png)
В IT точно будут востребованы навыки общего мышления, узкая экспертиза в отдельных областях, способность решать проблемы с учетом специфики и ограничений. Ну и, очевидно, чем быстрее вы учитесь, чем эффективнее вы впитываете занания и чем больше паттернов видите, тем лучше. Так что важно углубиться сначала в одно направление, досконально его изучить, а затем начать захватывать и смежные области: обычно на их стыке и происходит самое интересное.
Отсюда совет: учиться, развиваться и знакомиться с новым нужно беспрерывно. Иными словами, нужно бежать очень быстро, просто чтобы не отставать. Но в такой беготне часто не хватает времени остановиться, осмотреться и подумать над общим планом, над общей стратегией и ответить для себя на вопрос: в какой точке вы хотите оказаться? Если грамотно балансировать между первым и вторым, то вы просто будете поражены тому, как быстро развиваетесь и учитесь. Тут в голову приходит фраза Илона Маска, не помню точной цитаты, но смысл в том, что вы должны сравнивать себя с самим же собой полгода назад и каждый раз поражаться проделанному пути. Если этого не происходит, вы стагнируете, и это нужно срочно менять.
Когда меня спрашивают, как айтишнику в постоянном изучении чего-то нового не умереть за компьютером, отвечаю, что не знаю, как сам еще не умер, так как за экраном провожу по 12, а то и 15 часов в день. Лично меня драйвит интерес, в мире столько всего происходит, столькому можно научиться, про столько вещей прочитать. Как можно этого не хотеть? Мне запомнилась одна цитата, я согласен с ней на 100%: «В здоровой ситуации, когда человек занимается любимым делом, реализует себя, свои идеи и таланты, он не делит время на работу и отдых, он просто живет». Вот это про меня. Очень рад, что мне удалось найти себя, и я искренне желаю каждому добиться того же.
Впечатления от азиатской разработки
Ходят слухи что в азиатских компаниях вообще все по-другому, люди умирают на работе и во всем потакают боссам. На самом деле азиатские гиганты давно поняли, что лучше отдавать управление локальными офисами тем, кто понимает местный рынок и имеет связи. Я бы сказал, что мой опыт работы в «Яндексе» не сильно отличался от опыта в AliExpress: на распорядок дня и формат работы куда больше влияет видение руководителя, а не расположение головного офиса. Даже формат работы во время ковида утверждался генеральным директором российского отделения компании.
То же можно сказать про встречи: как ежедневные стендапы, так и митинги на уровне целого департамента — они проводятся тогда, когда руководитель либо тимлид посчитает нужным или когда для этого есть повод. Мы, например, без согласования с кем-либо перенесли недельные планирования и демо, просто потому что посчитали, что нам так удобнее. Ну то есть именно так и должно быть. Крайне странно согласовывать подобное с абстрактными азиатскими коллегами, которых ни разу не видел.
Как и у любой большой технологической компании, у AliBaba и ее дочек есть свои инфраструктурные решения, свои наборы инструментов, внутренние порталы и так далее. Свой аналог MapReduce-платформ есть как у «Яндекса» с «Фейсбуком», так и у AliExpress: и там и там не получится погуглить информацию, если встретил непонятную ошибку. На помощь придут только коллеги, внутренняя документация да пара собственных рук.
Что касается китайских разработок и их локализации местными фичами (по слухам, пользователи AliExpress ругаются на поиск), нужно понимать, что единичные случаи, встречающиеся тут и там, не показывают целой картины. Наверное, скажу очевидную вещь, но средний пользователь приложения AliExpress очень отличается от активного интернет-юзера, замечающего огрехи и делающего об этом посты. Может случиться, что качество продукта даже упадет для целой группы пользователей, скажем, в отдельных категориях, а общие метрики бизнеса при этом вырастут. Вы же не думаете, что компания год за годом релизит системы, которые приносят ей убытки, и никто этого не замечает?
С чего сейчас начинать путь в IT
Самое главное, что нужно понять, если вы хотите вкатиться в программирование, — это то, что все рассказы про легкий беззаботный путь — неправда. Это очень тяжелый и длинный путь, требующий большого вливания ресурсов, в основном ментальных и временных. Нужно искренне болеть этим, чтобы преуспеть и выделяться на фоне тысяч и тысяч других кандидатов. Конкуренция просто дичайшая, на начальные позиции иной раз по 1000 откликов прилетает, если верить эйчарам и счетчикам на HH.
Люди, основной целью которых является начать больше зарабатывать, скорее всего, не смогут добиться успеха. К сожалению, такова правда — уж слишком много желающих. Поэтому крайне важно искать если не другие основные, то хотя бы дополнительные стимулы, которые помогут не сойти с пути на длинной дистанции.
Я считаю, что высшее образование, в том числе профильное, не является обязательным атрибутом программиста или аналитика, да что там — у меня и у самого его нет! Куда важнее способ мышления, внимательность и усидчивость, способность к абстрактному мышлению. Ну и память хорошая пригодится.
Рекомендаций и советов по конкретным школам и курсам я давать не буду: во-первых, потому что я от них очень далек (сам не обучался, кроме пары онлайн-курсов, да и тех бесплатных), а во-вторых, потому что не хочу брать на себя такую ответственность. Но отмечу, что важно выстроить правильные ожидания от подобных ресурсов: они не учат вас с нуля до сотни, чаще всего не ведут за ручку, подсвечивая каждую яму в темном мире непознанного. Они лишь задают структуру, программу, могут валидировать практические навыки и давать немного экспертизы. Основная часть работы будет на вас: изучать, разбираться, копаться, по 10 раз биться головой в одну и ту же стену и затем, наконец, достигать катарсиса от очередной решенной проблемы.
Я до сих пор помню одну из своих первых задач по машинному обучению, с которой столкнулся на Coursera. Недели три сидел, очень сильно тупил, но когда получилось, то был вне себя от радости, потому что на коленке сделал буквально конкурента Google! Правда, он работал на 10 разных предложениях (даже не текстах) вместо миллиардов веб-страниц, но какая разница?!
То, что я описал выше,— это параметры правильных курсов и школы. Те, которые, напротив, потакают студентам и не предоставляют самостоятельности, на самом деле оказывают медвежью услугу, потому что именно навыки самостоятельности и решения проблем являются ключевыми результатами обучения.
Получается, что отличие бесплатной открытой информации от платных школ и курсов заключается лишь в том, что у последних есть готовая программа, ну и какая-никакая поддержка, которая (иногда) вытащит из ямы непонимания. Большинство хороших специалистов, которых я знаю, учились самостоятельно, но это отнимает больше времени. Зато качество обучения в долгосрочной перспективе обычно возрастает. Нет какого-то общего плана, который подгоняет каждую неделю и не дает отойти от общей проторенной дорожки. Зато есть возможность выделить время и углубиться в разбор действительно интересного материала.
В последнее время много говорят о зерокодинге, но я в него не верю. Однако, кажется, с приходом продвинутых AI-ассистентов у такого подхода появится второе дыхание, из-за которого существенно снизится порог входа. Буквально каждый будет клепать плагины, сайты и приложения на коленке с минимальными навыками. Но чтобы пользоваться этими инструментами максимально эффективно, нужно все равно понимать принципы алгоритмов, логики и декомпозиции.
Какими AI-инструментами Игорь пользуется и что планирует
Так как моя работа и интересы почти не связаны с графикой, то я пользуюсь в основном языковыми моделями, а именно ChatGPT. Подписка у меня куплена, доступ к плагинам и веб-браузеру предоставили. Чаще всего прошу у модели переписать сообщение, документацию или отчет, выделить основные тезисы, ну и, чего стесняться, перевести набросок текста на русском в складный рассказ на английском.
Пару лет назад записался в бета-версию Copilot для VS Code, которая как раз помогает писать код, тесты и документацию. Сначала продукт был сыроват, но где-то спустя полгода я оплатил подписку и с тех пор пользуюсь помощником. Правда, сейчас код пишу куда реже :) Однако очень жду Copilot X, который будет делать ревью пулл-реквестов, искать баги и писать тесты. Думаю, это должно повысить качество разработки в команде, снизив количество времени, затрачиваемого на ревью и отлов ошибок.
Если говорить о моих персональных планах, то совсем недавно я нашел новую работу: уже вторую после AliExpress. Между ними успел побывать в одной международной компании, но меня, как и весь департамент с руководством, сократили в январе 2023-го. А сейчас моя основная цель — закрепиться на новом месте, начать преуспевать. Кстати, про компанию: это консалтинговое агентство с упором на Machine Learning, помогающее бизнесам внедрять AI-решения в свои продукты. У нас максимально разные проекты, что позволяет сильно прокачать насмотренность, погруженность в разные индустрии.
Там у меня менеджерская должность, однако от технических задач и обсуждений уходить не планирую, так как мне это нравится, да и необходимо оставаться в касании с командой. Думаю, что получаю тут очень ценный опыт, который будет востребован фактически в любом месте, прямо как и у обычных консультантов.