Transcription
Начнём мы с того, что минутка рекламы, но я хочу заметить, что мы тоже переползаем потихонечку в Atpace. Мы там создали наш чатик, э, чатик УМC. Соответственно, можно смело переходить по QR-коду либо тыкать на ссылку для компьютера, мы выложим презентацию. В общем, собственно, мы потихонечку тоже начинаем переползать в ATМ Space. К сожалению, будет это менее удобно для неотраслевых наших коллег, как говорится. Ну что поделать.
Ну, хватит по рекламу. Давайте для начала разберёмся, что такое vibe вообще. В принципе, это, собственно, разработка с помощью языковых моделей. Значит, что такоединг? Да, vibe - это разработка с помощью языковых моделей, а именно, когда мы с вами, соответственно, берём и ничтоже сумняшься, просто описываем, что мы хотим. То есть мы не занимаемся вопросом э как бы самого программирования, да? А мы обычным языком, человечим более или менее описываем, чего мы хотим. Вот. И дальше языковая модель пишет нам разнообразный код. И в принципе вот это вот оно и есть. Причём за последние полгода вайп-кодинг из экзотики, по мне прошёл путь до, в принципе, вполне обыденности. Да. За это, естественно, спасибо всем софтверным компаниям, которые стоят вокруг этим занимаются. Вот. Но здесь есть некоторые важные вещи, которые надо обсудить перед тем, как в это окунуться.
Ещё раз подчеркну, да, что если мы с вами собираемся говорить про там языковые модели, ещё что-то, надо всё-таки хотя бы немножечко понимать, как они работают, и понимать, что такое контекст. Я не уверен, да, вот глядя на коллег, разговаривая с ними, я не уверен, что все это хорошо понимают. Поэтому перед тем, как перейти к вайбкодингу, мы ещё поговорим просто про простые примеры, да, но давайте сначала всё-таки поговорим про языковые модели.
Итак, смотрите. Значит, если вы пользуетесь какой-либо языковой моделью, российской, зарубежной, неважно, вы увидите, что общение с языковой моделью разбито и делится на отдельные чатики по отдельным темам. Казалось бы, это сделано, чтобы нам было удобнее, но на самом деле нет. Да, на самом деле причина, зачем это сделано, для того, чтобы языковая модель могла раздельно держать в каждом чатике нить разговора. И всё, что мы с вами наговорили языковой модели, называется контекстом. Причём важно, контекст формируется не только из того, что мы спросили, а ещё и из того, что нам модель ответила. Понимаете? Да. И весь набор вот этих вот наших с вами запросов-ответов, запросов ответов, запросов ответов формулирует, вернее, формирует контекст разговора. И это позволяет модели не терять нить диалога с нами и понимать, что мы говорили до. Понимаете, это на самом деле странно выглядит, но я покажу сейчас простой пример, где это используется.
Значит, что важно понимать, что не все осознают, но на самом деле в чём проблема, что когда вы в чатике с моделью задаёте новый вопрос, то контекст - это все прошлые запросы и ответы. Поэтому все прошлые запросы и ответы отправляются, загружаются в модель, закидывается ваш вопрос, а потом приезжает ответ. И вот это понимают не все, что вот это вот туда-сюда, оно касается всего подряд, всего, что вы говорили. Вы скажете: "Леф, ну подожди, но у меня же диалог может быть очень длинным, да? То есть это как он что он туда влезает весь в этот вот в контекст?" А проблема заключается в чём? Что вы догадываетесь, наверное, что контекст, да, он представляет собой некий объём данных, и каждый раз его надо сувать туда-сюда". То есть сначала его надо засунуть туда, обсчитать, потом вытащить оттуда результат. Вы зададите новый вопрос, снова засунуть, снова вытащить. И поэтому, собственно, нам столько памяти-то и надо. То есть на самом деле контекстное окно у моделей, конечно, с ограничениями. То есть ещё раз, каждый запрос в модель загружается то, что мы спрашивали, что она отвечает. Это делает её ответы фокусированными на теме. Здорово, но требует памяти и дополнительных расходов.
Причём вот здесь начинается зона, как я люблю называть, неуверенного земледелия. Почему? Потому что никто в деталях не раскрывает, как они работают с контекстом. Но все его пытаются оптимизировать, понимаете, да? Потому что гонять туда-сюда много килобайт там разговора загружать это выгружать, а если у вас там ещё картинки какие-нибудь, это прямо дорого и сложно становится. Вот поэтому соответственно вот так вот оно как бы и работает, да. И в принципе работа с текстом, да, в моделях это нормальная история. Мы к этому все уже плюс-минус привыкли, что мы модели формируем какой-то запрос, она нам формирует ответ, всё понятно. И вот этот контекст гоняется туда-сюда. Ну, нормально, нормально, всё о'кей.
Но а в чём проявляются оптимизация, да? В чём проявляется хитрости и почему все жульничают с, на самом деле с контекстом и все пытаются как-то его оптимизировать? Потому что у бесплатных моделей, ну, то есть к которым вам есть доступ бесплатно, да, обычно контекстное окно небольшое. Контекстное окно - это вот всё, что влезает в контекст, да, и в него может отправляться не всё, например, только последний N вопросов. и ответов. И очень часто можно видеть рекомендации, и их дают странные люди, кто кто не работает с моделями напрямки. То есть, допустим, там, ну, условно, там художники, допустим, да, они говорят: "Не, ну, вы вы делаете лучше новый чат там на новый запрос", понимаете? Да. Вот. А они не понимают причины, да? То есть они чуют, что, наверное, что-то там в модели меняется, да? Но вот как бы понимают, что начав новый чат, ты как бы, собственно, этот контекст сбрасываешь, да.
Вот в продвинутых моделях, ну, вернее, CHT GPT дают в бесплатную версию, остальных по-разному бывает. Например, у Deпсика этого нет, у Яндекса этого тоже нет пока. А вы можете делать ещё интереснее. Вы можете чатики группировать в проект для того, чтобы модель, отвечая вам, использовала не просто контекст последнего чата, а множество чатов, которые вы вели. Perplexity, например, то же самое делает и позволяет делать. Это пушка-бомба. Почему? Потому что она позволяет, э, задав одну большую тему, да, лазить у ей внутри. То есть у вас может быть одна большая тема - это какая-то технология, которую вы используете, да, и внутри, и под чатики. Э, да, вполне. То есть я к чему, что у многих моделей, да, это есть, но я думаю, вы догадываетесь, да, что это требует безумных расходов на память.
То есть у вас получается, что, коллеги, вы учтите ещё, смотрите, что для локальных моделей это немножечко по-другому работает. В том смысле, что в локальной модели, ну, как говорится, сам дурак, сам виноват, если ты дал ей недостаточно памяти, да? То есть если вы, э, сделаете сильно большой проект, где много чатиков, вас просто дольше будет заезжать туда-обратно этот контекст. Вот и всё. То есть вы замедлите себе ответы, понимаете, да? Но у крупных игроков, оно же сделано по-другому. У крупных игроков наоборот у вас ответы не замедляются от этого. Вот в чём фишка. Это значит, что растут накладные расходы. Да, именно поэтому вы будете платить теперь дороже за оперативную память, потому что все игроки рынка ИИ законтрактовали её на x лет вперёд. Поэтому теперь потребительская техника дорожает из-за того, что сильно подорожала память. А что поделать, как говорится, да?
Вот. И давайте попробуем демо. Э, я хочу просто вам показать, как работает контекст, да? То есть давайте мы сейчас возьмём, допустим, псик. Вот. И что мы с вами сделаем? Смотрите, значит, мы берём с вами и сейчас начинаем того, что задаём какой-то хитрый контекст. Я пишу: "Представь, что у Александра Сергеевича Пушкина было три жены". Вот что происходит сейчас. Нейронка говорит: "Так, ну хорошо, он хочет, чтобы я представил, что было три жены". А он понимает, что это альтернативная реальность, да. И вот оно, поехали. Он мне начал рассказывать про то, какие жёны были. Вот она, первая жена Мария Раевская. Замечательно. Вторая - Елизавета Воронцова. Как говорится. Все совпадения случайны, да? Вот там ещё последствия какие-то придумают. Ну и третье- Гончарова. Нормально, всё о'кей, всё слопнуло, всё хорошо. То есть типа как бы последнее - это Гончарова.
Вот обратите внимание, да, что если я буду дальше спрашивать, то оно вполне нормально будет мне рассказывать про этих жён. То есть я, например, напишу: "Расжиробнее о том, как познакомился Александр Сергеевич со второй женой". Вот он сейчас совершенно спокойно, учитывая предыдущий контекст, представь, что три жены. Он погуглил. Он погуглил, но, естественно, что он дальше ничего внятного не нагуглил, да, но начал вообще весело галлюцинировать, короче говоря, обо всём остальном. Нормально. Нормально. Теперь обратите внимание, чего я могу дальше сделать. Я дальше, чтобы показать вам, как работает контекст, я дальше ему могу сказать: "Прекрати это представлять и расскажи мне про жену Пушкина". И он совершенно спокойно мне расскажет про, соответственно, единственную жену Гончарову. Да, сейчас мы подождём, пока он понапридумывает. Обращаю ваше внимание, что тут уже местами прикольно начинают лезть иероглифы. Всё классно, замечательно. Да. Теперь прекрати представлять, что у Пушкина было три жены. Расскажи про его настоящую жену. Вот. И сейчас Дипсик поймёт, что мы вернулись. Вот она однаединственная жена, да, Наталья Николаевна Гончарова. И то я бы здесь проверял бы, да, уже. Почему? Потому что мы сейчас сильно попортили контекст, да, и вот такой подход хорошо отличает то, как работает нейронка с контекстом.
Обратите внимание, сейчас я сделал ээ ну, мягко говоря, очень странный контекст, да, какой я сначала ему говорю: "Давай понапридумывай", потом говорю: "Прекращай придумывать". Согласитесь, что контекст, который был до слов "прекращай придумывать", можно бы и не использовать. И как утверждают злые языки, я здесь не могу ни проверить, ни как бы не опровергнуть это, не подтвердить, но сейчас мои запросы летят сквозь ещё одну специализированную нейроночку, которая делает некий самри, выжимку и отрезает бессмысленные части для того, чтобы экономить контекстное окно. Причём она и туда отправляет не весь диалог. Обратите внимание, насколько, ну, как бы многоязычен псик, да, он много пишет и, соответственно, это гоняет туда-сюда. Ээ это Да. Александр, здесь вопрос в чём? Смотрите, угроза физической расправы. Почему оно, я рассказывал про это, почему работает так же хорошо, как и рекомендации датчиевых? Да, здесь ответ очень простой, на самом деле. А модельки учат на диалогах, причём чат же GP она же называется не зря, и псик тоже в том числе. Их учат на диалогах, диалогах людей, да? И в данном случае изменение поведения второго человека, если ему пообещали там физическую расправу или там условно денег посулили, оно тоже меняется. И это неизбежно накладывает отпечаток на то, что вы получаете в результате. Нельзя это вырезать, понимаете? То есть это все вот эти вот там угрозы физической расправы и прочее, они работают исключительно потому, что собственно обучали на человечьих диалогах, да?
Вот теперь, ну, давайте как бы, собственно, о'кей, посмотрели, хорошо. Давайте пойдём, вернёмся к презентации. Давайте попробуем перейти к разработке, потому что, ну, мы же, собственно, про вайпкодинг с вами собрались поговорить, да, и сказать: "Лефа, что ты нам контекст-то просто показываешь?" Ну, собственно, а почему разработка? А если помните, да, я говорил, что не будет дальше никакого экстенсивного роста моделей. Я напомню на всякий случай, что пятая версия чат пти это не пятая версия, это чистый маркетинг от любимого Альтмана. Я терпеть его не могу, на самом деле. Так вот, вся ветка, которая пятых версий от Open AI - это на самом деле 4О с довёртками. Нет там никакой пятой версии. Оно стало понятно, что не будет ничего лучше. Всё, мы сожрали всё возможное, понимаете? Поэтому экстенсивный рост закончился, и мы с вами наблюдаем рост в стороны. То есть, условно говоря, а где ещё есть много всякого интересного текста, который можно погенерить? И вот здесь как раз код и программирование стало тем самым идеальным компонентом, на котором можно работать.
Во-первых, смотрите, что интересно. Текст, который генерирует нейронка, чтобы вы понимали, я рассказывал опять же об этом. На файнтюнинге читают люди. То бишь, когда вы только что обучили новую модель, э то, что она отвечает поначалу, читают люди. Ещё раз говорю, люди читают живые, и кликают, какой ответ им лучше понравился. И это, да, это огромное количество ручной работы. Оно делается там наёмными индусами или кем угодно ещё. Но важно понимать, что до сих пор модели - это огромное количество ручного труда. А с кодом всё круче. Знаете, почему? Потому что код подлежит проверкам. То есть вы можете запустить код и сказать: "О, смотри, он правильно работает или неправильно работает". И это делает процедуру работы с кодом такой прикольной. Не надо больше индусов-разметчиков. Вам достаточно сделать тесты, то есть сказать: "Напиши функцию, которая складывает 2 + 2" и смотреть, как оно страдает до тех пор, пока оно эту функцию не напишет. С одной стороны, блин, ну это же клёво вообще. То есть ничего делать не надо, оно работает. То есть ты ему задачу поставил и пока не сделаешь, не приходи. И сколько он там итераций сделает, пока он её не выполнит? Да мне плевать хоть 100.500. Мне мне не жалко электричество, типа жгите и всё.
Во-вторых, кода много написано. Ну то есть на самом деле мы в принципе себе представляем, что у нас полный GitHub кода написан всякого разного. Хорошего или плохого, неважно. Но в принципе у нас открывается, ещё раз говорю, два важных момента. Во-первых, можно это тестировать автоматически. Во-вторых, у нас много образцов. Чувствуете, да? Что как бы мы продадим ещё раз ту же самую идею. Поэтому что происходит? Берут код и, соответственно, кода не так много. Кода, конечно, гораздо меньше написано, если сравнивать с корпусом там английской литературы, но тоже годится, да? То есть дотачивать модель на определённые языки программирования хорошо себе работает и всё нормально, всё как бы пошло, пошло, поехало. И если у нас результатом разработки является текст, то бишь код, то есть текст, как говорится, не вижу разницы, а в чём проблема? То есть я написал запрос, да, а мне в ответ приехал код. Похоже на то, как мы работаем с ней нейронкой, да? Да. Ну только единственное, что сейчас она нам отдаёт не код. Вот сейчас мне Deпсик отдавал текст, да, и компилятором этого текста являлась моя голова, да, как бы и ваша в том числе. Но в целом-то так вроде подход нормальный, да? То есть, ну, как бы издалека, если посмотреть, выглядит, что, ну, выполнимо, что можно сделать. Но на практике, да, но есть нюансы. И нюансов, я бы сказал, здесь в целом немало.
Значит, во-первых, какая у нас есть специфика кода? Да, я думаю, вы догадываетесь, мы уже говорили про слово контекст, и контекст наш резко вырастает в размерах. То есть он не просто как бы больше становится, он становится сильно больше. Почему? Во-первых, это несколько файлов. Да, то есть очень редко себе представишь проект, в котором весь код в одном файле. Сомнительно, да? Дальше в одном языке, в одном проекте, в одном проекте совершенно спокойно может использоваться два-три и более языков программирования. И это тоже сложно, да. И требования, которые мы к этому коду выкладываем, начинают раскладываться на фиксированные требования. Например, мы говорим: "Пиши на вот таком-то языке программирования". Да. И не очень фиксированные требования, когда мы говорим: "Ну, сделай мне кнопку вот такую вот, да? А какого цвета она, не знаю, ну, какую-нибудь сделай, а я потом тебе доуточню, как мне нравится или нет". И в результате, к чему это всё ведёт? Это всё ведёт к тому, что писать код в браузере просто неудобно. То есть вот этот вот формат открыл браузер и ну его жмякать код, он хромает. Для простых вещей годится. То есть, если вы просите написать вам скрипт, там, не знаю, там, сортировки чего-нибудь или какую-нибудь простенькую функцию, это можно делать из браузера. О'кей. Но ничего крупного в браузере делать невозможно. Это просто неудобно. И вот этот подход в формат открыл браузер и и понеслась, и он начинает хромать.
Что делать? Что делать? А что делать? Ничего сложного. Мы возьмём среду разработки какую-нибудь, например, VS-код, да, который бесплатный открытый, и начнём туда прикручивать языковую модель. Ну, например, GitHub Copilot, который интегрируется в V-cд. Ну, есть нюанс, он только недоступен в России. Ещё у нас есть, допустим, антигравити от Гугла. Мм, но он тоже недоступен с российских Google аккаунтов. Или есть курсы AI, да, бесплатные платные версии, которые отлично, замечательно работают из России. И показывать я буду именно на курсоре. Я ещё раз подчёркиваю, да, что я не прошу и не агитирую, что курсор - это как бы или курсор, как его называйте, как хотите, что это лучшее, что можно найти. Нет, конечно, но в принципе у него есть и бесплатные платные версии. Обе нормально работают из России с классической проблемой оплаты с зарубежной карты. Ээ, курсер меня просто порадовал чем, что он позволяет легко, ээ, ну, за в платной подписке он все модели агрегирует у себя. То есть хочешь такую, хочешь такую, хочешь сякую, хочешь такую, вообще без проблем что угодно, пожалуйста. Как угодно.
Собственно, давайте попробуем пообщаться с моделью на эту тему, да, попробуем посмотреть, на что похоже это дело. И у нас с вами есть редактор. Он плюс-минус похож на обычный человеческий редактор. Сейчас сделаю покрупнее, чтобы было понятно. Значит, чем он отличается от обычного ВС-кода? Ну, кроме серенького цвета, да, более такого драматического. Он отличается тем, что у меня справа есть панелька, в которой я могу, соответственно, с моей моделью общаться. Обращаю ваше внимание, что в данном случае у меня стоит режим авто, когда курсор за меня решает, какая моделька лучше мне подходит. Тут отдельный разговор. Можно полазить по моделькам и настроить, что мне нравится. Но я честно говорю, в данном случае я не делал этого специально. Мне как бы в принципе нравится подход, типа я в него пихаю, а он пусть сам разбирается, что ему нужно. И дальше мы с вами вот вот вот в это вот вот замечательное окошечко мы пишем, что мы хотим. Но я подчеркну, смотрите, что мы с вами начнём не с настоящего кода, да, который э что-то делает, а мы с вами начнём э с некого упрощения, да, мы начнём с инфраструктурного кода, и запрос мой будет следующим. Причём я его прямо сюда напишу, да, я скажу: "Слушай, дорогой, искусственный интеллект, блин, в смысле, языковая модель, я хочу запустить штуку под названием Open Search". Да. и загружать туда какие-то тестовые данные. Поэтому сделай мне, пожалуйста, нужные файлы, чтобы я мог запустить на своей машине тестовую инсталляцию Open Search с помощью Docker. Обратите внимание, я намеренно вам показываю, что если вы где-то читали, что нужно обязательно строго создать какой-то файл, в котором всё это описать, фигня - это всё, как вы даёте модели контекст - это вообще без разницы. где-то это может быть лучше, где-то это может быть хуже и так далее. Но в общем и целом ваша задача просто донести до модели некий определённый текст, который она примет и начнёт выполнять.
Теперь, соответственно, что мы с вами делаем? Мы нажимаем Enter. Мы нажимаем Enter. И дальше смотрим, как нейроночка сейчас обкидывает, чего она видит. Она не видит абсолютно ничего у меня сейчас. При этом дальше она собирается пойти погуглить, и сразу же возникает вопрос: "А что это она? Ну, как бы что это она у меня сейчас спрашивает?" Она говорит: "Слушай, Барин, я хочу пойти погуглить по запросу Open Search Docker Compose, разрешаешь мне это делать?" Я говорю: "Ну да, давай разрешаю". Соответственно, дальше что происходит? Она гуглит, зачем она это делает. Есть идеи, кто догадывается, зачем она это делает? Я пока разрешу ей скачать какой-то ещё документ, который она хочет. Ну, скачивать с интернета яй обычно разрешаю. Заче? Зачем она гуглит, как вы думаете? Нет, ребятушки, она закрывает разрыв между своим состоянием, когда её обучили, и тем, что сейчас. То есть её обучали-то, да, задолго до, понимаете, да? Поэтому что она делает? Она гуглит для того, чтобы нагуглить себе дополнительный контекст и дальше, соответственно, радостно с этим что-то делает. Обратите внимание, вот она поехала создавать файлики. Можно слева видеть, как что-то создаётся, и можно видеть, как она формирует файл. Redmi там и так далее, да? И обращаю ваше внимание, что, ну, например, в этот раз она у меня сгенерировала по ровно такому же запросу код немножко другой. Это забавно. Ну, давайте сейчас дождёмся, пока она сделает это всё. А, привыкайте к тому, что нейронка - это квантовая штука. Она сегодня такая, завтра такая в вилке от и до. И вы никогда не сможете заставить её генернуть один и тот же код.
Теперь смотрите, сколько прошло, пока мы с вами разговаривали. Ну, не знаю, может быть, максимум там пара минут, да? Тем не менее, нейроночка мне уже всё повыдала, говорит: "Всё, я тебе всё сделала. О'кей". Теперь обратите внимание, а как вообще работать с кодом, который дала Нейронка? Дело в том, что она мне сейчас ввела какие-то изменения. И обратите внимание, у меня теперь появилась штучка, что я сейчас нахожусь в режиме. То есть я сейчас отсматриваю глазёнками, да, что она мне понаделала. И я могу открывать файлы спокойно, смотреть, что там понаписато, да? То есть я могу открывать эти файлы. Всё хорошо. Вот. И при этом, при этом, видите, зелёненьким помечено то новое, что она принесла мне. Каждый блок, каждый блок я могу либо принять, либо отринуть, да, в контексте файлов. То есть я могу в каждом файле эти блоки принимать или отрицать их, если мне не нравится то, что она сделала. Но в данном случае это первое её предложение, поэтому я говорю, то есть всё оставь. И у меня нейронка свою работу сейчас закончила. Говорю: "Хорошо, здорово, замечательно. Ну, давайте как бы попробуем проанализировать, что она сделала. Теперь обратите внимание, вот здесь что важно, да? А вот теперь давайте посмотрим на тот код, который она генернула, и давайте попробуем на него посмотреть. А, ну почему я, собственно, выбрал эту задачу, да? Потому что я решал ту же самую задачу недавно. Я её решал самостоятельно, но потом мне стало интересно попросить, что мне сделает нейронка. В итоге мы, конечно, получили не очень тот результат.
Смотрите, значит, первое, что сразу же бросится в глаза и этим нейронки палятся. Обратите внимание, что, э, версия контейнера версия номер два, то есть стоит двоеточие два. Что это значит? Что курсор, что модель взяла старую версию. А почему, как думаете, она взяла старую версию? Потому что её учили на старом коде, вернее на тех версиях, на старых, и для неё, несмотря на то, что она погуглила, старая версия имела приоритет. И обычно сделанные с помощью нейросетей задачи темы отличаются, что обычно там версии либо, ну, такие ощутимы старые, либо совсем старые. Почему? А этого кода было просто больше на момент обучения. Это первая проблема, и она фундаментальная, на самом деле. То есть вот если бы мне человек сделавший принёс это решение, я бы ему сказал, что дружок, ну как бы ты, а зачем ты старую версию взял? Причём очень старую? Она возможно с уязвимостями, она достаточно старая. Зачем ты это делаешь? Да.
Следующий момент важный. Нейронка не очень меня поняла в том смысле, что я хочу туда тестовые данные, а для тестовых данных мне, вообще-то, не нужно защищать эту инсталляцию паролем там и так далее. Вот мне не нужно ничего такого делать, на самом деле. Но она сделала всё необходимое, чтобы я этот пароль мог, соответственно, установить. Понимаете, да? То есть нейронка меня не до конца поняла, но это простительно. Я же ей сказал, что тестовую инсталляцию, да, сделать. Теперь дальше смотрите, что интересно. Нейронка мне не просто сделала запустить Open search, да, она к нему сразу же прикрутила веб-интерфейс. Да, опять же, я не просил, то есть я же не сказал ей, что мне нужен веб-интерфейс, но поскольку она дёрнула и и была обучена на большинстве материалов, где всегда вот эти вот две вещи соседствуют, да, и сам Open Search, и веб-интерфейс к нему, то она сделала именно так. И вот это очень забавно. Ещё раз говорю, что модель не может внятно абстрагироваться от того, что на чём её учили. То есть в моменты выбора дефолта она будет так и делать. Ну и самое главное, смотрите, ещё одна вещь, которую модель сделала, она, естественно, сделала овенжениринг. Вот создавать отдельную сеть не надо, сеть и так будет создана. И внимание, что важно, что я хочу здесь показать. У нас с вами получилось 53 строчки, из которых, на самом деле, большая часть неосмысленных, да? И если я начну сейчас наводить порядок здесь, да, то есть давайте я просто для сравнения сохраню, э, как бы файлик как hю бы делал бы, да, то, соответственно, дальше это будет совсем по-другому. То есть целый ряд вещей здесь не нужен вообще для тестовых данных, да, и heлчек мне к чёрту здесь не сдался. Также и с дашбордом абсолютно спокойно, не нужно.
никаких нетворксов и пендов. И вот так вот всё. Вот так вот. Здравствуйте. Вот. А здесь вот она вообще понаделала фигни, потому что здесь нужно, на самом деле, всего лишь две строчки оставить, да, которые просто скажут, что вот так вот делай. Вот. Вот вам инсталляция. Да. Ну, естественно, я бы ещё версию взял бы современную 340, да, как бы о'кей. Вот. Ну и она мне будет, естественно, подсказывать, говорит: "Давай вот туда, прыгни сюда". Обратите внимание, я пишу код, и она мне пытается подсказать: 340 RC1. Не надо никакого RC1. И это отдельный ужас. Писать вместе с нейронкой надо выключать режим подсказки, потому что нейронка будет стараться всю дорогу вам подсказывать. И подсказывать будет местами ужасно неудобно. То есть этот режим надо выключать. Итого, смотрите, что мы с вами получили. То есть после наших причёсываний мы получили 16 строчек вместо, соответственно, скольки там, а, пдесяти трёх, которые у нас были. Соответственно, мы с вами действительно вот мы стоим перед вилкой, да, либо с одной стороны мы берём генерионочку, но она старая изобилует непонятно зачем, придуманными опциями, да, и так далее. И но так или иначе, но так или иначе это работает, да.
Вот вопрос: можем ли мы запустить то, что нам дала нейронка? Да, можем, конечно же, то есть мы можем открыть терминал, да, и сказать, соответственно, здесь, то есть давайте проверим, а она вообще справилась с задачей, да? Мы говорим: "Запусти, пожалуйста, нам соответственно этот проект". Она сейчас скачает старую, естественно, версию. Единственное, конечно, на гигабайт она, наверное, будет долго пулить. Ну, хотя относительно вроде быстро это идёт. Вот. Беда, ещё раз подчеркну, заключается в том, что она сейчас будет пытаться скачать старые версии. Это версия два, а свежая - это третья. И эта разница будет действительно достаточно сильной. Но меня здесь волнует другое. Меня здесь волнует главный вопрос: запустится или нет? То есть как бы осилит или нет всё-таки сможет, получится или нет. Потому что очень часто ещё бывает, конечно же, что не запускается. Так. А что у нас в итоге? Ну посмотрите, как бы, собственно, что в итоге получилось, да? Нет, оно не запустилось. Вот как бы результат вайп-кода. Я скажу так, что из примерно пяти прокаток, ну, в одной не запускается. То есть где-то процентов 20 у вас будет как бы ошибка. Теперь главную проблему, я думаю, вы догадываетесь, какая, да, что если вы если вы не специалист, да, то разобраться, в чём проблема, ну, как бы непросто. Вот это наш первый с вами результат, да, инфраструктурный код. Ещё раз подчёркиваю, да, это не код, который требует какого-то выполнения. Это просто инфраструктурный код. То есть он описывает дескриптивно, что я хочу запустить и как это работает.
Вы, соответственно, можете дальше выдать вот такую вот вещь, да? То есть вы можете вот это вот выдать сюда. Вот. И она сейчас начнёт искать проблему. Говорит: "Давай, сейчас я поправлю. Ты совершенно прав. Аппендицит у человека находится с другой стороны. Сейчас я всё поправлю, всё будет замечательно". Да. Вот. Очень забавно смотреть, как она рассуждает, да? То есть как бы о'кей, ну я не установил эту переменную с паролем, да, она об этом говорила. Причём, обращаю ваше внимание, видите, что она сразу же просит. Она говорит: "Барн, а можно я запущу?" Вот это тоже интересный вопрос, да? То есть и я сейчас должен ей разрешить запускать то, что она придумала. Ну о'кей, я скажу: "Запускай". Но у меня докер не так установлен, как она ожидает. У неё сейчас не получится это сделать. Она догадается, что надо будет поменять, да, и пользователь заразы не прочитал Redmi, а я ему про это написала. Вот он, конечно. Вот. И сейчас, соответственно, она всё это сделает сама. Вот. И говорит: "Ну вот, вот так вот сделаем". Ну хорошо, давайте я сделаю точка example. Вот. И запущу. Действительно, работает. Я могу попробовать, собственно, открыть на локальной машине это дело. Значит, она опять же в инструкции она писала, как это нужно открывать, но я сейчас просто вам пошарю вкладку. Вот. Ну и можно видеть, что оно запустилось, да? То есть всё как бы более или менее о'кей. Вот. А понятно, что с одной стороны, ну, справилось, справилось, да? А насколько хорошо? Ну, вопрос открытый, да?
Давайте вернёмся в презентацию и, собственно, обсудим, очень с вами получили, да? То есть мы с вами дали ей земки инфраструктурный код. Значит, э ещё раз, что за код мы попросили? Это не конкретная разработка, да? Это не тот код, который становится программой. Это просто код, который нам помогает запустить другую сложную программу. Обычно это хороший пример, когда вот системный администратор хочет вырасти в девопса, и вот такие вещи считаются именно почему-то вотчиной девопсов, что вот мо написал код и может запускать Open Search. Какой молодец, да? Значит, э есть ли проблемы? Да, есть. И они повторяются от версии к версии. Да. Вот. Значит, во-первых, модель часто ориентируется на старые версии софта, я говорил. Значит, второе. модель обучалась на каких-то примерах. Они не всегда подходят на то, что я запросил. И вы видели, да, сколько там условно лишнего кода было. Модель умеет гуглить и не только гуглить сама, поэтому она будет пытаться учитывать современность, да, то есть будет пытаться, но тут ключевое слово будет пытаться, потому что веса всегда не в пользу нового, да. И последнее, у нас вылезает дескриптивная сложность, то есть нам нужно хорошо описать конечный результат, да, язык, инструменты и так далее. И вот здесь как раз-таки появляется очень интересная история, что мы на самом деле думаем, что мы получили джина, который хорошо понимает наш запрос, который хорошо понимает наш контекст. А джин на самом деле контекст понимает так себе. И это всё во многих случаях напоминает, ну, такое действительно возникает ощущение, что нейронка сама себе создаёт проблемы, чтобы потом их мужественно решать. Действительно, так и есть. Местами так и кажется, да.
Теперь, ну, про безопасность вообще считается правильным вайп-кодить на отдельной машине, где ваших данных никаких нет. Вы там вайп-кодите и оттуда забираете только код, да? То есть не на своё рабочее место, конечно же. Ну, это я сейчас показываю на своём рабочем месте. Нехороший я, но так или иначе. По поводу безопасности. Тут, на самом деле, фейспалмов гораздо больше. Значит, во-первых, нам могут предлагать сразу запустить сгенерированные моделью файлы с кодом. То есть ещё раз, оно там что-то накодило и говорит: "Давай, барин, давай, давай запустим, давай прямо вот на твоей машине сейчас запустим". Ээ, я вам честно скажу, у меня от этого мурашки по коже. Почему? Потому что Да, божечки, упаси, что ты там накодила. Вот пример, который я вам показывал, он, слава богу, использует контейнеры, и там есть некая изоляция. То есть даже если контейнер сумасшедший, он может навредить в основном только сам себе, да? То есть посмотрев на файл описания, я точно знаю, что контейнер моей машине повредить не может, да, он с ней не общается напрямки, но так или иначе, по-пу-пу, да, как бы об этом надо думать. Второй момент. Образы контейнеров, которые взяла модель, могут быть небезопасны. И это я вам показывал, да? То есть она взяла вторую версию онсерча. Что там во второй версии? Она была 1.000 лет назад. Я вообще не знаю, насколько они безопасны. И это надо отдельно проверять и смотреть. И третье, ну, ещё раз, да, становится оченьочень важно понимать тот код, который мы запускаем. Ну, ну хотя бы чуть-чуть, потому что это код всё-таки, да, и он абсолютно не декларативен, да, он императивен, то есть он что-то может делать, а что он может делать, мы как бы с вами не знаем. Поэтому вопрос безопасности здесь, я абсолютно согласен, что он здесь просто вот эта дыра просто какая-то огромная, да, и ни в коем случае это нельзя запускать на рабочей машине. Выглядит так, что для этого дела надо иметь отдельную машинку, да.
Э, ну вот опять же популярность Mac Mini и Openlow связана с тем, что у, э, маков архитектура унифицированной памяти, да? И взяв мак там с 16 гигами оперативки на борту, фактически ты получаешь мак с графическим ускорителем 16 гигами оперативки на борту, и нейронки умеют использовать эту память. Ну, нормально. Но, э, я ещё раз подчеркну, что когда вы будете это делать с какой-то локальной моделью, то есть там квен локальный запускать, то всё будет сильно хуже. То есть, во-первых, оно будет, оно не будет гуглить, да, оно много чего делать не будет, если только не обложиться агентами и не помочь ей в этом. То есть там будет всё достаточно грустнее. То, что мы сейчас видели, это ещё топчик результат. Но страшная вещь начинается, знаете, где страшная вещь начинается? Когда мы сравниваем это, я специально написал с начинающим. Я не хочу говорить, давайте сравним с Джуном, да, но вообще-то, как бы, собственно, надо, да, об этом подумать. Лучше ли это, чем начинающий? Ну, вообще, да, потому что я не показал, а, ну, вообще-то языковая модель, она, поскольку тексты любит, она сгенерила офигенную Redmi, которую вообще в палату меры весов. То есть она сгенерила документацию, и она будет документировать код лучше всегда, чем разработчик. особенно профессиональный. Это плюс, да? Минус. Начинающий постарается взять некий референтный пример. И на сайте Open Search он есть, что странно. То есть там есть простенький пример, как запустить Open Search. Но модель так не сделает. Модель сошьёт этот результат, да, как бы из нового и старого. То есть модель сделает Франкенштейна, потому что она будет стараться исходить из лучших побуждений и не просто брать какой-то простой пример. Следующий минус, она будет, я уже говорил, тяготеть к старым версиям. Тоже надо учитывать. Это палит людей, которые пытаются там работу какую-нибудь сдать там домашнюю с помощью нейронки. Это там всё старьё, как бы, да. Но но важный момент заключается вот в чём. Это сильно, сильно сильно дешевле живого человека, потому что подписка на Cursor Pro стоит 20 баксов в месяц. То есть, условно, по цене там десяти капучино вы получаете, ну, вот такого вот разработчика, который что-то пока делает не очень, но в целом что-то делает, что запускается, и многих это подкупает. То есть работает ценник, ещё раз говорю, 20 баксов. Понимаете, да? Вот. Ну и понятно, что там можно как-то как-то это всё дело там переделывать.
Теперь настало время сказать, если кто-то был на нашем музыкальном стриме до, который я бы назвал тяжёлые условия, но на нашем стриме до звучало несколько треков на русском языке, и я вам сразу же скажу, что эти треки продюсировала и вокал для них делала соответствующую нейронкасу. Вот. И при этом, ну, как вы догадываетесь, это весьма неплохо звучало и выглядело. Причём от начала до конца её бесплатная версия. И это было достаточно весело. Ну да ладно, давайте пойдём дальше. А как насчёт сделать веб-приложение, да? То есть мы только что просили нейронку написать нам какой-то, ну, какой-то инфракод, что-то там позапускать, да? Давайте попробуем попросить её сделать веб-приложение. Вот я сейчас переключусь в другое окно. Я специально заранее заготовил, э, сразу же готовые вещи. И я, собственно, нейронкум попрошу сделать вот что. Следующую вещь. Посмотрите, значит, что мне хочется, причём я здесь уже поинтереснее опишу, побольше по пообильнее, так сказать. Я напишу следующий запрос, да. Значит, смотрите, я скажу: "Создай мне веб-приложение на соответственно языке Python оно должно реализовывать базу данных контактов". Ну вот я нет у меня CRМа нормального до сих пор в отрасле. Что поделать? Вот каждый контакт должен содержать некоторые фиксированные поля, да? Например, фамилия, имя, отчество у любого есть и организация. Ну и плюс любое количество добавляемых произвольных полей, там мобильный телефон, домашний телефон, имя собачки, имя руководителя, там что угодно. Значит, я пишу, что должно поддерживаться создание а изменений и удаления контактов, да? То есть, ну, я описываю, что можно делать с элементом. И список контактов должен поддерживать вывод любого произвольного количества полей, да, с сортировкой по любому полю, а также группироваться по первой букве любого поля. Ну, помните, как сделано в записных книжках, да? То есть, что по первой букве фамилии, допустим, или там по первой букве организации и так далее. Вот. И я говорю: "Вот сделаю вот так". И последнее, что я говорю: "А, используй докер для удобной сборки и запуска приложений". Ещё раз подчёркиваю, да, вот этот вот текст, но не сказать, что тут много. То есть всё моё ТЗ на вот это приложение, это еле-еле 700 символов, а, но оно содержит все необходимые пояснения для решения. Поэтому я дальше нажимаю вперёдушки. Вот. И моделька начинает мне его делать. Очевидно, я подчёркиваю ещё раз, что сейчас мой запрос на русском, его перевели, модель думает на английском, потом переведёт обратно и так далее. Но очень забавно здесь смотреть на то, как она сейчас будет с этим работать, да? Значит, я не засёк сейчас время, да, но на вот пока я готовился, у меня на всю генерацию всего того, что мы видим, да, как бы ушло примерно 3 минуты. Ещё раз подчеркну, 3 минуты. Ну и вот, соответственно, она сейчас подумала, рассмотрит структуру. Сейчас она себе накидает список дел, то есть как бы что ей надо сделать? поищет, что ни одного файла у меня пока нет, и дальше выдаст мне, в принципе, достаточно практически полноценное веб-приложение. Ну, если у неё сейчас не получится, я поясню и покажу потом, что мы там делали, да? То есть вот она говорит: "Сейчас буду создавать вот приложение с нуля, сделаю, да, тудушечку себе и по ней чик-тик-чику поеду". Очень забавно, конечно же, любому наблюдать за этим процессом. То есть процесс её размышления, он забавен. Значит, если кто-то увидел, там мелькнуло сразу же, что базу данных оно взяло исключительно локальную SQL. Я готов его за это простить, потому что я ж в ТЗ не описывал, что база данных должна быть обязательно сетевая, там и так далее. Вот. Дальше она что сделала? Взяла фласк, да? Почему? Ну, потому что на фласске удобно это делать на Питоне, максимально удобно. Она дальше из компонентов, я могу открыть пока файлик, показать, она взяла SQL Elchm. Для чего? для того, чтобы запросы к базе данных писали за неё, да, это ORM, соответственно. Вот. И, соответственно, в итоге, немножечко подождав, мы сейчас увидим, как она сформируют и модельки все необходимые для ОРМА, и для всего остального. Ну, сейчас немножко медленновато это дело работает. Не знаю, с чем это связано. То ли с интернетом, то ли моделька хорошо думает. Вот. Но интернет у нас нормальный, а вот всё остальное пока не знаю. Да, судя по всему, моделька думала. Ещё раз подчёркиваю, забавно, всегда забавно наблюдать за тем, как она это делает, да? То есть ты видишь кусочки решений. Вот. И очень забавно видеть, как она потом размышляет. На всякий случай напоминаю, что она сейчас делает второе из пункт второй из четырёх, да? То есть она сейчас, соответственно, сделала Docker File Docker Compose. Мы можем с вами пока посмотреть, насколько хорошо выглядит Docker Compose. Здесь чувствуется, что не прошло даром обилие веб-приложений на Питоне. Compose здесь написан очень и очень хорошо, ёмко. Давайте посмотрим пока на Dockerфайл. Хорошо ли написано? Да. Отлично. Можно сказать, что вот здесь я бы сделал бы чуть-чуть по-другому в соответствии с современными, да, как бы веяниями. То есть я не копировал бы файл внутрь контейнера, а временно бы прокинул его туда. Но опять же я не вижу в этом сильной проблемы. Опять же можно увидеть, что версия питона, ну, не самая супер-мега последняя. То есть 312 - это не сказать, что сильно устаревшая версия, но не не сказать, что современная, да, то есть и как бы вполне себе, то есть ну да, местами можно сказать, что не идеально, но неплохо, в принципе. Вот. Ну и, соответственно, вот она нам продолжает пока генерить. Сейчас у меня там из-за того, что зазумил маленькой этот самый, не видно. Я вот единственное, что вижу, что оно сейчас гораздо медленнее работает. Видимо, нагрузки сейчас больше. Пока, соответственно, когда я это делал вечером, видимо, было побыстрее. Ну, о'кей. Мм, самое смешное, что, кажется, что-то пошло не так, потому что я вижу вот эту вот Тут огромное количество надписей begin of sentence. Что-то не то. А, но не знаю, что не так. Ну, сейчас какое-то время подождём, но у меня есть подозрение, что сейчас она как-то это ушла в себя. То есть вот вот вот это вот генерение begin of sentence, это обычно говорит о том, что кот мы не туда зашли. Не, на самом деле, да. Ещё одна вещь, кстати, забавная. Обратите внимание. Если я сейчас наведу мышку внизу, я не знаю, вылезает, нет, видно ли картинку, но но тут есть кружок, который говорит о заполнении окна контекста. И вот он говорит, что сейчас у тебя, чувак, контекст заполнен на 7%. То есть это значит, что весь твой проект мне в голову влезает и занимает 7%. Но с большими проектами это становится сильно сложнее, да? То есть там не так уж просто всё. Вот. Значит, опять же, смотрите, я думаю, что оно залипло. У меня такого не было до этого ни разу. Я могу её стопорнуть вот и сделать заново. Только она мне скажет, что, дружок, ну подожди, ну ты хочешь заново всё выбросить, что было до этого? Я говорю: "Да, всё дискарди, всё удаляй, как бы, и давай поехали заново. Всё, фигня, переделывай". Вот она, соответственно, все файлики удалит, но видите, директория АПП, например, осталась, да, и пойдёт думать заново. Это важная история. Я про неё отдельно потом скажу. Почему? Потому что она требует всё-таки для того, чтобы ну, придётся думать, короче говоря, над этим. Но дабы сэкономить нам время, несмотря на то, что нейронка себя ведёт не очень хорошо, я сейчас покажу вам, как выглядел результат, который я делал до этого. Причём я все запросы вам покажу. Никакого секрета здесь нет. То есть у меня там контекст абсолютно весь оставлен и так далее. Вот. Пусть она пока создаёт, а я вам сейчас перешарю окошечко и покажу, что у меня получилось, ну, например, вчера в качестве такого вот запроса. Это, на самом деле, впечатляет. Значит, если мы посмотрим, что же там в итоге у неё получилось, то есть вот смотрите, вот как как выглядел проект, да? И, соответственно, у меня ушло сначала у неё 3 минуты, то есть вот он первый запрос, он точно такой же, как я вам показывал, да? Не, und all - это вернуться в самое начало, да? То есть можно вернуться к нулевой точке. И вот обратите внимание, она мне нагенерила кучу файлов. Потом, что мне не понравилось, да, то есть я её попросил дальше, что изменить, мне не понравилась цветовая схема, которую она сделала, и я попросил, соответственно, её сделать другую цветовую схему. То есть я ей говорю: "Слушай, цветовая схема вырвеглазная, да, сделай, пожалуйста, другую и заодно не загружай никакие файлы извне. Держи все файлы в проекте локально". Она, соответственно, поменяла цветовую схему. Она всё перенесла, оставила акцент кнопочек и всё, понимаете, да? То есть вот ещё раз говорю, всё, что я сказал нейронке, это вот две фразы, да? То есть первую, которую вы видели, вот вторая про цветовую схему. Теперь вопросы скажете: "Леф, ну а что получилось-то?" Ну, понимаете, то, что получилось, меня на самом деле в принципе порадовало вполне себе. Вот я запускаю этот проект. Вот такой результат у неё получился, понимаете? Да, это база контактов. Я действительно могу добавить контакт. Ну вот поля, например, она сначала имя, потом фамилию, потом отчество поставила. Это можно попросить поменять. Вот. Но важная история здесь в чём, да? Что она на самом деле вполне себе с поставленной задачкой справилась. То есть эта штука позволяет не действительно редактировать, вот создавать добавлять костомные поля. Она действительно сохраняет это. А теперь может мне показывать группировка по первой букте, по первой букве, например, по фамилии, да? И вот, пожалуйста, делает то, что я попросил. Я обращаю ваше внимание на то, что вот получившаяся штуковина, она вполне себе, то есть я ещё раз подчёркиваю, да, на какие-то вещи там может, видите, сбросилась сортировка там и так далее. Это всё требует ещё там каких-то допилочек. Но в целом, в целом вот оно у меня провело вчера 3 минуты за генерацией и выдало мне вот это. Я ещё раз подчёркиваю, 3 минуты у меня ушло на весь проект. А я, ну, как бы сильно сомневаюсь, да, что найдётся разработчик, который это сделает за 3 минуты. Вот. Поэтому с вашего позволения я попробую вернуться обратно в презентацию, да, и давайте попробуем как бы это немножечко осмыслить. А что же мы как бы с вами получили, да? То есть ещё раз мы с вами попробовали веб-приложение. И, честно скажу, первое моё ощущение - это нифига себе, да? То есть как бы, ну, о'кей. О'кей. Ещё раз подчеркну, понятно, почему, да? То есть потому что было много такого. Но значит, что здесь важно? Лучше ли это, чем начинающий? Чёрт, да, это 3 минуты и оно работает. Нет, оно не идеально архитектурно по мелочи, но оно не нарушает требования того ТЗ, которые я дал. Я напомню, моё ТЗ составляло 700 символов. Значит, но теперь по поводу безопасности. Вот здесь хочется заплакать, на самом деле. Почему? Потому что, конечно же, оно использует внешние компоненты. Те, кто писал на Питоне, знают, что сам по себе питон, он вполне себе очень укомпактированный язык. Да, у него всё делается за счёт внешних модулей, да, и, соответственно, так это и происходит, да, что нейронка может выбрать для использования, вернее, модель может выбрать для использования какие-то модули. Они вполне себе могут быть небезопасны, но это же надо проверять, а, а как кому, да? Следующий момент, что все вот эти разговоры про безопасную разработку, они резко меняют контекст. Вы понимаете? Значит, одно дело можно говорить: "Вась, ну ты что, меня не уважаешь? Я пишу безопасный код". Так нет, вы понимаете, что понятие требования безопасной разработки - это уже не к людям требования, понимаете? Да? И вот здесь же как раз вот это уже пугающая штуковина, что нам нужна безопасная разработка для того, чтобы, да, как-то, чтобы проверять на то, что нам налялькала нейронка. Понимаете, вот в чём дело. То есть это уже на самом деле не ну не не так всё просто, да, как бы. О'кей, теперь кода больше и надо разбираться. Причём в нём пока нет критических вещей типа разграничения доступа. А если был бы во-воу, понимаете, да? Это ещё отдельно проверять. То есть это как бы это очень такой большой интересный вопрос. Другие сложности, смотрите, если мы сделали две версии, пока вайпкодили, да? мы не можем вернуться к предыдущей быстро. То есть мы можем вернуться, отменив последний шаг или несколько шагов, но мы теряем на всё наработанное. И у нас появляется неизбежное требование, что нужно уметь управлять версиями кода, что, соответственно, гит нужен. И знать гид надо лучше, если ты работаешь с нейронкой, потому что ты работаешь с мозгом, который может всё сломать в любой момент. Понимаете, да? Следующий момент, вылезает проблема рефакторинга кода. То есть модель плохо рефакторит код, её надо заставлять это делать. То есть вы прямо удаляете функцию или прямо пишете вот эту функцию перепиши с нуля нормально. Вот порой детализируя, что вы имеете в виду. То есть у меня самое проклятие - это то, что нейронка любит уехать там в пятивложенный иф. Там, знаете, иф с пятью вложениями. If и if и if и if и if. Вот. Её приходится от этого очень сильно отдёргивать, да, то есть говорить: "Хорош, вот такую вот спагетну писать, пиши нормально". Вот. И не очень хорошо это пока работает с реально крупными проектами. То есть там, где не влезает в контекстное окно весь проект, там надо очень серьёзно обдумывать и очень серьёзный сложно и вдумчиво писать запрос, что вы хотите сделать. И это прямо становится тяжело. Серьёзно. То есть при работе с крупными проектами, там, где не хватает контекстного окна, ну, это пока, ну, как бы такое себе. Хотя можно, но ещё раз подчёркиваю, нужно очень хорошо знать, в чём мы делаем.
Ох, я попытаюсь сделать какие-то выводы, но я думаю, что вы сейчас сделали выводы сами по себе, и давайте попробуем, э, как бы об этих выводах поговорить, да? То есть как бы а что же мы в выводах видим? Значит, ну, безусловно, это впечатляет. То есть оно работает, оно работает быстро и оно делает то, что работает, да? То есть о'кей, хорошо, то есть ещё раз, оно работает, оно делает то, что работает. А возникает ощущение, вот здесь важно остановиться и подумать, что разработчики не нужны. И хочется порекомендовать не идти в разработчики. А, подождите, это уже было, да? Ага. Да, кто-то уже там кто-то там глава NVIDIA, да, про это про это уже говорил, да. Но я вам сразу скажу, что нет, это ощущение ложное. Это типичная ошибка зрения руководителя, что типа оно там что-то булькает и что-то делает нормально, кожаные не нужны. Галя, у нас отмена. Нет, сразу говорю, нет, потому что ещё раз подчеркну, понимать, что оно нагенерит на масштабе, очень тяжело, понимаете? Да? То есть, ещё раз говорю, это очень ложное ощущение, что вот этим можно заменить людей подчастую. Кроме всех проблем, связанных дальше, действительно, а кто будет продвинутым разработчиком, если мы сейчас молодняк-то не берём, да? То есть, если мы сейчас джунов заменяем вот этим, то кто вырастет в медлата, а никто не вырастет? Да вы понимаете, в чём дело? Что там же есть как бы, собственно, эволюция, да? И в этом и проблема, что оно, ну, как бы так не действует, так не работает. Вам, чтобы, простите, но старая шутка, чтобы быть женой генерала, надо выходить-то как бы за лейтенанта, понимаете? А у нас получается, что мы лейтенанта выгоняем, а потом причитаем, что генерала нет. Понимаете? Ну, как бы, а только глупый руководитель не понимает, что он выращивает будущих медлов, да, с помощью лялькания джунов. Всё, если люди этого не понимают, ну, удача им, но скоро будет смешно, да. Вот. Но важно ещё одно. Смотрите, значит, те, кто пробовал это делать, те, кто пробовал это делать, а знают, что отлаживать и масштабировать нейронка не умеет от слова совсем. Вообще совсем. Понимаете? Она суть-то она не понимает, да? Это всего лишь генератор кода. Поэтому, когда вы будете просить её отлаживать, она некоторые вещи будет делать логичные. Но у меня была история, когда один и тот же баг нейронка мужественно борола там запросов 10 или 15 и не доборола в итоге, понимаете? Да, делая каждый раз всё более и более спагетный код. Поэтому отладка и масштабирование только людям пока нейронка близко даже не подползает к этому, особенно по поводу отладки, что оно не работает. Роли сильно меняются. вот жизненного цикла, который разрушается. Если вы не были разработчиком, если вы не были разработчиком, я вас поздравляю, у вас теперь есть личный разработчик недорого. Ещё раз, 20 баксов в месяц - это не то, что недорого, это вообще не смешно. А потому что для многих людей это откроет ээ ящик Пандоры с одной стороны, но позволит им свои какие-то задачки автоматизировать и делать это круто. И спасибо, как говорится, курсору за то, что он это даёт. И человек, который никогда не задумывался о том, я не умею писать код, но у него есть какая-то идея, он может сделать минимально живопырный продукт MVP, да, и показать его, сказать: "Смотри, вот, вот так я хочу, давай теперь хорошо это напишем". Да, может, может, это круто. Те, кто является разработчиком, други мои, я вас поздравляю всех с повышением, да? Потому что нам теперь нужно учиться управлению этой штукой. И нам нужно искать и получать новые скилы. Во-первых, учиться объяснять, что мы хотим, пардон, но мы, к сожалению, с вами, давайте прямо признаем, очень часто мы с вами очень замкнутые ребята, и себе-то объяснить, что мы хотим, не можем внятно словами через рот, да? А а этой придётся объяснять вообще по-другому. Текстом придётся объяснять порой пока и много текста, да? То есть это на надо думать. Да-дада, Александр, да-да-да. И в-третьих, нам надо уметь контролировать сделанную работу. То есть вы понимаете, представьте, что ещё раз говорю, короче, вы теперь владелец множества индусов, да? Вот. А, ну как бы о'кей, да? Замечательно. Смотрите, по поводу обработки документов. Нет, я не даю это курсору пока ни за что, понимаете? Да. То есть я пока нет, пока не дам. Можете меня как бы обвинять в предвзятости, но но пока нет. Пока не дам. Да. И ещё раз повторюсь, появляется необходимость в новых навыках. Я ещё раз говорю, добро пожаловать. Теперь не вы пишете код. Ну, вы тоже можете писать код, но вам теперь надо принимать эту сделанную работу. И я вам сразу скажу, что мегакайфовый результат, когда она пишет тебе код, ты его выправляешь, как ты считаешь нужным, оно потом подхватывает стиль местами. Так что это достаточно интересная история. Вот. И давайте я попробую заглянуть немножко вперёд, вот, и посмотреть, что нас ждёт. Я привёл три примера, про которые я не могу не сказать, да. Один из разработчиков CLD код, а, сказал, что за последний месяц все его комиты - это то, что написал клодко код. И пытается тем самым сказать, что клодко код уже пишет сам себя. Вот здесь сразу же хочется приложить картинку из Терминатора 2 и сказать: "Ну всё, короче, привет". То есть осталось подождать, пока клодко код скажет, что кожаные не нужны. Но в ответ я прочитал прекрасный комментарий, который не могу не процитировать, что пусть кто-нибудь без 20 лет опыта в разработке напишет второй клод-код с помощью первого клод-кода, и ответ дофиг там, понимаете? Да. Соответственно, получается история, что, э, действительно модель становится инструментом для профессионалов. То бишь человек, который не умел ничего делать, максимум в ней сделает что-нибудь простенькое абсолютно для решения там своих задач. Возможно, ему этого будет достаточно, но высоты останутся по-прежнему не берущимися, потому что действительно, как в шутке про маркер, одним маркером можно и зарисовать всё, что угодно, не считая самого маркера. Так и здесь, да? То есть, взяв клод-код, можно написать что угодно, но только не не ещё один клод-код. Второй кейс, который меня порадовал - это когда Иишечка решила переписать безысходность с нуля, то есть инфраструктурный код пацанов из Амазона, и положила им продакшн. Ну, не весь, конечно, там тот кусочек, докуда допустили. Вот мне понравилось, что кожаные починили за 13 часов, ещё раз подчёркивая, имея инструменты и всё остальное. И я этот кейс привёл не потому, что вы сейчас скажете: "Лев, ха-ха, ну и что такого? Ну, уронили, ну, подняли". Нет, нет, ребят, знаете, что меня волнует здесь? Я пытаюсь понять, вот смотрите. Amazon уронил часть продуктивного контура, но за 13 часов починил. Так вот, я пытаюсь понять, э, лошадь можно подчинить вообще? И вот то, что сейчас сделал Amazоon, вот это вот мы уронили, мы подняли, это они получили какой-то опыт? То есть они научились лучше взаимодействовать с этой заразой или нет? Понимаете? Да. И пока у меня нет ответа. Если ответ да, то я им завидую, потому что, извините меня, но Джун может уложить продакшн больше, чем на 13 часов. А это значит, что если они смогли её уложить и поднять, это значит, что они совершенствуются в этом. И к моменту, когда ну как бы условно пройдёт несколько лет, какой там девопс, оно меня обставит во всём, чего только можно, да? А если нет, то это значит, что Amazon просто так провалялся 13 часов. Это если они не получают, да? И, соответственно, последняя ещё интересная история, что если кто-то смирился, что языковые модели потребляют мало ресурсов, то есть если вы запускаете локально квен и думаете, что всё нормально, всё будет хорошо, не будет, я вам скажу, потому что у нас на подходе large world models - это для роботов и вот этого всего. То есть, чтобы робот мог прикинуть, как падает стакан на пол, ему нужно построить модель мира и в ней уронить стакан. Понимаете, да, как это делают люди. Так вот, LVM, не LLM, а LVM грозят нам таким прыжком в вычислительной сложности, что я хочу зажмуриться и остаться где-нибудь в темноте. Понимаете, да? Потому что там, чую, будет совсем больно. Но с учётом того, что LVM - это душа роботизации, у меня нет абсолютно никаких сомнений, что мы в эту сторону пойдём. Будут ли новые ответы в нейронках? То есть способны ли они будут делать что-то действительно новое, а не просто пережёвывают старое нами написано? И будет ли Ренессанс, я пока не знаю. Ну вот как бы, друзья, спасибо вам за внимание. Я бы на этом, наверное, остановился.