Я, как и многие здесь, программист. Я учился программированию с 2003 по 2008 годы, хотя и до этого меня тянуло к технике, программированию и подобным вещам.
Перед тем как я расскажу о своих доводах, хочу прояснить несколько моментов.
Глава ноль: Определение пары терминов
Первая и очень важная вещь: глупость — это когда ты не знаешь, что должно быть там изначально.
Когда ты приходишь в дом и пытаешься повесить ключи на крючок, а крючка там нет, потому что его кто-то решил убрать - ключи летят на пол и ты выглядишь глупо. Это не очень обидно, и тебе даже станет весело, когда ты поймёшь, что не знал об изменении местоположения крючка. Но можно привести более серьёзные и обидные примеры. Например, когда ты стоишь в автосервисе и слушаешь лекцию о том, что автомобилю писец, потому что ты залил дизель в бензиновый двигатель. Ты не знал, что твой двигатель бензиновый. Теперь это — очень дорогая и обидная глупость. Каждый раз, когда ты себя чувствовал глупым, это происходило потому, что кто-то решил что-то о чём-то, а ты об этом не знал.
Вторая, не менее важная вещь: рабочим может называться только то, что работает само по себе, без надзора. Его не надо придерживать, подталкивать, нажимать и подклеивать, чтобы оно работало.
Да, большинство машин требует определённого ухода, например, смены масла или работы антивируса на сервере. Но это — рутинные действия по обслуживанию, которые известны. Если перед тем как напечатать страницу на новом принтере, тебе надо открыть новое приложение, нажать “Выход” трижды, потом запустить старую версию приложения, а после этого переоткрыть новое приложение, то это нельзя назвать рабочим приложением. Оно сломано.
Следующий момент. В дипломе у меня написано — инженер-программист. Слово “инженер” само по себе подразумевает, что я умею выдумывать, создавать, обслуживать и управлять различными программами и компьютерной аппаратурой. Я могу настроить что-то, создать что-то новое или удалить что-то ненужное. Неважно, что это: будь то драйвер для мышки на Windows 95 или распределённая система на Кубере — я могу с ней справиться. А если не знаю, как с ней справляться, то у меня есть необходимые инструменты, которые позволят найти инструкцию, выучить и понять её, после чего я таки разберусь с драйвером мышки или Кубером.
Далее — самый главный момент.
Компьютер — это устройство, которое умеет собирать, хранить, обрабатывать и передавать информацию. Обработка информации происходит путём выполнения чёткой последовательности команд, которые были записаны в компьютер.
Глава один: Что такое программирование
Программирование — это точная наука. Я не только могу точно сказать, что произойдёт при использовании какой-то команды, но и могу оценить надёжность той или иной системы с определённой вероятностью. Также в программировании есть несколько способов построения отказоустойчивых систем.
Мы можем создавать системы, где любой узел можно на лету заменить на другой узел. Также существуют системы реального времени — это компьютеры, которые выдают результат вычислений за определённое, физически ограниченное время. Такие используются в ракетах и самолётах. Телефонные станции работают на таких системах.
Существуют банковские системы, которые очень точно оперируют цифрами, чтобы внимательно следить за балансом и абсолютно точно его вычислять, обсчитывая своих клиентов так, чтобы те не замечали этого.
Компьютеры умеют повторять одно и то же действие без изменений бесконечно долго. И это то, почему нам так нужны компьютеры. Никто из вас не хочет сидеть перед Excel’ем и складывать цифры в столбик. На самом деле, само значение слова “компьютер” произошло именно из этого. “Компьютерами”, т.е. “высчитывателями”, называли в 50-х годах людей, которые складывали цифры для космических и военных служб в США.
Глава два: И вот, встречайте — ИИ!
2025 год. У нас есть т.н. “искусственный интеллект”.
Это — офигительная система, потому что это компьютер, который делает вещи не так, как их делает компьютер. По факту — это большая перемножалка матриц, которая добавляет рандомные числа в свои ответы и позволяет нам ворочать данные по-иному.
Только вот момент в том, что это умение добавлять нечёткости в ответы компьютера совсем нарушает само определение слова “компьютер”. Компьютер — это то, что должно всегда выдавать точный ответ.
Я вижу гигантские деньги, которые выливают в ИИ. Буквально, это та самая чёрная дыра из ОNN, в которую сливают доллары. Эта дыра перехайплена до безобразия. У нас есть NVIDIA. Они получали деньги с компьютерных игр. Потом пришли майнеры — и они получали деньги с майнеров. Теперь пришли ИИшники — и они безостановочно гребут деньги с ИИшников. H200 — это карта от NVIDIA, которая стоит 35 000 долларов. Одна. Карта. А их закупают по 150 000 за раз.
Электроэнергия — это вообще швах. В США сейчас инвесторы ходят и готовы запихивать в глотки деньги тем, кто строит электростанции. Кстати, я не шучу. Я могу помочь. Если у тебя есть компания, которая может строить электростанции где угодно в мире за пределами РФ — пингани меня в телеге. 250 миллиардов долларов надо потратить до конца года.
Всё это надо для того, чтобы обслуживать ИИ.
И это — замечательно! NVIDIA не обрушилась. Рынок растёт и пухнет.
Вопрос просто вот в чём: а в чём смысл ИИ? Каково предназначение систем ИИ? Какой от них выхлоп?
Понимаешь, выхлоп есть очевидный. Они помогают обрабатывать большое количество информации достаточно быстро. И действительно, это круто. Мне не надо писать код руками. За меня его пишут боты.
Но проблема в том, что ни одна ИИ-модель не может и никогда вообще не сможет гарантировать 100% корректный результат. Поэтому для программирования компьютеров их можно использовать достаточно ограниченно. За примером сходи в соседний пост. Мы там как раз и говорим о том, что как ты эту шарманку не закручивай, рано или поздно у неё болт за шайбу залетит, и она начнёт фигачить почём попало. Понимаешь, по факту, твой ИИ-ассистент нельзя назвать рабочей системой. За ним нужен уход.
При работе с системами ИИ надо строго выдерживать баланс. Тебе нужно чётко понимать, сколько работы ты можешь отгрузить на ИИ и сколько тебе надо делать самому. Если ты вообще не используешь системы ИИ, то ты будешь слишком медленным. Если ты отгрузишь слишком много, то ты будешь проводить часы в попытках починить то, что ИИ наломал.
Где-то посередине есть баланс. Можно прилично ускорить рабочий процесс при использовании ИИ. Насколько ускорить — это вопрос последний. Но можно ускорить.
Момент в том, что если на ИИ полагаться чрезвычайно часто, то очень быстро можно скатиться в абсолютную глупость. Незнание разницы между rm ./* -rf
и rm . /* -rf
будет фатальным. Это не только сделает тебя глупым, но может стоить тебе работы. Непонимание и невычитывание команд, выдаваемых ИИ — это бич современной разработки. В прод идёт всё, неважно, как оно написано.
Я вижу это с немного другого бока. Я работаю в банковской разработке. Тут, когда ты приходишь и предлагаешь внедрить ИИ, на тебя смотрят вот так.
Глава три: Кому действительно нужен ИИ?
Система бухучёта работает по определённым алгоритмам, которые написаны в 1980-х годах. Её не будут менять. Её не нужно менять. Всё зависит от того, производит ли система в 2025 году те же самые ответы, что она производила в 1990-м.
Более того, сами системы ИИ бесконечно плохо умеют в любое нишевое программирование.
Что самое интересное — ИИ-системы очень хорошо справляются с определённым, очень ограниченным кругом задач. В частности — предсказание и обработка big data. Посмотри на замечательные модели Гугла по предсказанию погоды. Понимаешь? Предсказание. Мы уже не уверены в результате. Ответ на вопрос “Будет ли ураган во Флориде?” очень важен. Пока что ответ этот — 50% на 50%. Он либо будет, либо не будет. Мы не знаем.
Но, добро пожаловать в LLM и обработку Big Data. Теперь мы можем дать чуть более чёткую, но всё же неопределённую оценку. Отлично!
Обработка текстов с LLM — это круто. “Перепиши мне этот текст, и замени все тыкания на выкания.” Отлично! “Перепиши этот текст в старинном стиле.” Запросто! Потом мне просто надо сесть и вычитать этот текст. Но сойдёт.
Понимаешь, LLM хорошо обрабатывают вещи, в которых не нужен чёткий результат. Можно было открыть Word и заменить все “ты” на “вы” путём автозамены. Результат был бы отвратительным. Но, спасибо LLM-кам, теперь у нас есть возможность поменять “ты” на “вы” с результатом в 99,95% правильного выхлопа.
Переводы? Запросто, если тебе не нужен точный перевод. LLM-ка будет использовать неправильные оттеночные слова и идиомы. Но она будет в разы лучше, чем моя любимая копипаста:
Почистите вашу мышь. Отсоедините ее поводок от компьютера, вытащите гениталий и промойте его и ролики внутренностей спиртом. Снова зашейте мышь. Проверьте на переломы поводка. Подсоедините мышь к компьютеру. Приглядитесь к вашей прокладке (подушке) — она не должна быть источником мусора и пыли в гениталии и роликах. Поверхность прокладки не должна стеснять движения мыши. (https://www.lib.ru/ANEKDOTY/mouse_driver.txt)
Такой перевод заменяет тебе часы в попытках понять, о чём текст. Но он не канает, когда нужен хороший художественный перевод фильма или качественный перевод стихотворения.
Глава четвёртая: Человеческий фактор
Самое больное место удара у нас будет в человеческом факторе. Представим на секунду, что у тебя свой бизнес. Тебе нужен программист. Ты выставляешь вакансию на каком-то сайте и настраиваешь LLM следить за резюме, отсеивая неподходящих кандидатов.
Если у тебя работают три программиста, и ты ищешь четвёртого — то ты его долго не увидишь. А если у тебя есть десять тысяч программистов, и на каждую вакансию появляется по 1500 резюме в день, то ты не сможешь нанять без ИИ.
Тут момент в том, что надо понимать: на любой “нет”, который ИИ может выдать в отношении резюме человека, у самого человека есть вполне разумное оправдание или причина. То есть, у тебя не получится просто нанять с помощью ИИ. Тебе надо будет приготовиться к тому факту, что с кандидатом надо будет говорить вживую.
И там ты узнаешь, что ИИ без задней мысли пропустит к тебе самого большого урода, с которым ты бы никогда не захотел работать в жизни. Или наоборот — замечательный человек, который не знает по памяти, чему равен квадратный корень из интеграла сорок второй степени, может пролететь на интервью с ИИ.
Вывод
То, что тебе говорят: ИИ — это золотая жила, в которой невозможно проиграть.
Что на самом деле: ИИ — это ещё одна технология, которую надо учить, знать и уметь применять.
Любая идея, какой бы прекрасной она ни была, будет испорчена, если её использовать слишком мало или слишком много. ИИ повсюду — это глупость. ИИ только в окошке ChatGPT раз в месяц — это отставание.
Не следует вестись на каждый маркетинговый ход. Лучше — проси графики продаж и заработков тех компаний, которые тебе заливают о том, что ИИ должен быть везде.
Не обязательно. Есть куча примеров того, что работает только под надзором.
Программирование это вообще не наука.
Внезапно, как и человек :)
Лет 15 назад банки смотрели так же, когда им предлагали внедрить облачные сервера. 7 лет назад они смотрели так на kubernetes, но по итогу внедрили и то и то. Так же внедрят и AI (конечно, не везде, но это другая история).
Ваня, нравится читать твои посты/комментарии, но этот текст для меня лично заучит немного как копинг
Я могу сделать предположение, что возможно в твоём инфо-поле много цыган, и поэтому хочется жестко ставить стоп и включать скептис аля "это просто перемножалка матриц" (чисто предположил)
Я лично слежу за более чем десяток разных каналов и реддитов и понял вот что: вовлекаться в шум мне дорого. Натурально стоадает психика, да еще впридачу хочется всем доказывать как они неправы.
Если все шум, что тогда полезный сигнал?
Я часто видел, что более-менее осознанный народ уже давно посмотрел лекции товарища Карпатого и хорошо понимает то, что это недетерминированные системы, как работает токенизация и почему 9.9 < 9.11.
Опытные программисты, работающие с кодовыми базами на миллионы строк уже давно упёрлись в ограничения контекста, какой бы сложности агент ни был, на шаге N+1 агента вероятность выдачи правильного ответа снижается иногда экспоненциально.
И, эти более опытные люди часто просто... Устали и ушли из инфополя.
Менее опытные люди начали переизобретать программирование, разбивать задачи на более мелкие, вводить условные best practices типа TDD через LLM и кричать в своих базовых блог постах про эти инсайты.
Очевидно не всё так дуально, но в целом даже твой пост подтверждает фрустрацию. Опытный человек видит что происходит, но глобально, похоже, не очень понимает че вообще делать
Предлагаю ли я больше писать таких постов как у тебя, чтобы сбалансировать инфополе? Хз, вряд ли)
Мне кажется хорошая тактика просто выбрать несколько профессиональных каналов и следить только за ними, без отвлечения на темщиков
Ой-вей...
Начнем с того, что определение - то еще шило. Мне больше нравится Мерриэм-Уэбстер - "exhibiting or indicative of a lack of common sense or sound judgment". Пример с ключом - свойство малодинамичной системы (фурнитура в доме) иметь предсказуемые долгосрочные измения не было соблюдено. "А какого хера крючок переставили на другое место в первую очередь?!". Перепридумывать то, что используется всеми в другом смысле - обычно нужно оправдывать такие фокусы. Потому что запутать людей легко.
Туда же. Уже прописано, что это не так.
Инженерная дисциплина. Либо процесс написания инструкций. Даже не обязательно компьютеров. Гарантий даже в программировании детерминированного кода нет, но это вопрос и проблемы юзера в лучшем случае, проблемы заказчика в худшем. Детерминизм компьютера заканчивается в голове и IDE, короче. Для машинного обучения кстати тоже, потому что код также детерминирован, входные данные уже нет, соответственно и выход - модель. Не нравится мой тейк, вот Дейкстра: "Testing shows the presence, not the absence of bugs".
Начнем с "ИИ". Вы, мракетологи, определитесь блин наконец с тем, что чем вы называете. Хотя не надо, проще будет работать. Перестанем долбиться в дефайны, они и дальше отвратительны. И до самой мякотки достаточно почитать выше комментарий. Перейдем к мякотке:
Ну штош, понеслась...
Приходит Дионис с ведром регэкспов и эксель-макросами и говорит "Вот он, ИИ!".
Детерминированный код тоже не может. Иначе тестировщик как профессия не существовала бы.
Во всем параграфе заменяем ИИ на "Круглолицый Ванька", "опытный сеньор с 3 годами опыта" и это будет верным текстом. Кому как, для меня это симптом плохого аргумента.
Скоринг - с 80х. Алгоритмы, полученные при помощи машинного обучения, решали кому давать кредит, а кому нет ещё тогда, когда ни меня, ни тебя не было. Можно сказать, что банки и стали early adopters of AI.
При помощи проптинга и незнания доменной области смог отгрузить рабочее решение в узком домене. Неумение промптить не равно ИИ плохо что-то умеют. На недавнем турнире по фиктивной задаче оптимизации лучше ИИ оказался один лишь поляк с никнеймом Psyho. По словам человека, что крутится в олимпиадном программировании, не спавший пару дней и приболевший на ту неделю.
Посмотри на AlphaFold2 от гугла. Посмотри на предсказание погоды Яндексом/meteum. Личная реклама, ибо знаю что там прошаренные, посмотри на Rainbow Weather.
Всё верно, задай вопрос с субъективным ответом и вероятностная модель сможет сгенерировать правдоподобный подходящий ответ. Всё верно, отбойным молотком можно забивать гвозди. Пример с переводом вообще отличный. Сначала мы задаём задачу с субьективной мерой оценки, где точность всегда by proxy. Потом говорим про точные метрики.
Не по теме этой странной писанины о детерминизме програмного кода, вроде бы, но: хайринг сломан, все кто юзают ЛЛМ для прескрининга усугубляют ситуацию.
Без контекста - разумный мысль. В контексте же не хватает "а так хотелось бы..." после пассажа.
Выводы:
Я тут о другом подумал. Что в руках опытных людей ИИ может быть сейчас полезным инструментом, и это местами экономит время и порождает деньги. А с другой стороны, всем известно, что ИИ крадет рабочие места у начинающих.
И вот на пересечении этих двух трендов я боюсь, что на средней дистанции появится дефицит этих самых опытных людей. Люди предсказуемо взрослеют, им нужна замена; но в мире растущего ИИ никому не нужны начинающие... Откуда тогда появятся новые опытные люди?
Вопрос риторический, но скорбный.
А где такое говорят? Возможно это просто общий фон от того что инвесторы закидывают деньгами любой стартап с AI в названии? Но так происходит с любой новой технологией.
У меня в окружении преобладают скептики и уж точно нет ниодного евангелиста.
The em dash (—) has become a noticeable characteristic of text generated by ChatGPT and other AI writing assistants, leading some to humorously refer to it as the "ChatGPT hyphen" or "AI hyphen".
;)
Боль про хайп из каждого утюга понятная.
Я не смог построить логическую цепочку из пунктов в выводы, так что прокомментирую только выводы:
ИИ это конечно еще одна технология. Но ее потенциал и значимость таковы, что индустрию разработки он изменит до неузнаваемости уже в самое ближайшее время.
Можно ли считать это золотой жилой? На мой взгляд да.
А где конкретно пихать ИИ это глупость? Я могу разве что одно место придумать, если не брать то, где ии очевидно не подходит по своим свойствам (ну типа использовать ии как калькулятор очевидно глупо)
Выше люди уже отметили, что тема несколько не раскрыта, но у меня ровно одно замечание - программисты и инженеры, с которыми мне доводилось работать, делают ошибки ровно так же, как и ИИ. Основное отличие - за работой ИИ мы наблюдаем буквально стоя за плечом, и не можем нормально реинфорсить его поведение. Если инженер делает тупую ошибку, мы ожидаем, что он больше ее не допустит. Если же нет, мы с ним либо прощаемся, либо переводим на менее ответственные задачи. Я это всё к тому, что проблема, которую нам нужно решить с нейронками, не столько в качестве их работы, сколько в корректировке их поведения.