Pull to refresh

Comments 179

Мы (люди) так и так этим занимаемся: объясняем тем самым неструктурированным неоднозначным естественным языком друг другу разные штуки, чтобы один из нас сделал то, чего хочет другой.

Да, есть непонятки. Да, есть встречные вопросы. Да, есть понятие приёмки - а значит исполнитель тратит какое-то время на работу, которую, возможно, выкинет в корзину просто потому, что не так понял объяснения.

Но этот этап уже есть и никуда из цикла создания нового не денется. И если уж мы научились с ним работать на одном этапе цикла - нет проблем работать и на другом.

В этом‑то и парадокс: если вам надо описать задачу исполнителю, вы должны обладать некоторой долей экспертности в его сфере, чтобы грамотно донести задачу и получить желаемый результат. Чем лучше у вас экспертность, тем лучший результат вы получите. 

В случае с машиной вам нужно уже обладать экспертностью в двух сферах: о том, как разговаривать с машиной, и о сфере, для которой вы хотите получить нужный софт

Согласен с прокомментировавшим. Вопрос всего-лишь насколько ясно люди могут выражать свои мысли. Если изложить всё четко, то наш русский язык намного круче для разработки потому что обладает большей глубиной, чем английский. Одновременно в спецификациях сразу будут видны термины на английском и смысл на русском. Вообще идеально.

Вопрос всего-лишь насколько ясно люди могут выражать свои мысли.

Человек может, конечно же, максимально ясно выразить свою мысль, но тогда на описание простейшей задачи придётся писать промты длиной в тысячи слов. Это не очень-то эффективно и мы уже так не взаимодействуем с нейросетями. Современные LLM хорошо справляются с пониманием естесственного языка, потому что они содержат в себе огромный контекст: грубо говоря, все знания интернета, в том числе ситуацию в разных странах, оценку рынков, деятельность отдельных компаний, описание существующего софта и т. д. и т.п. То есть достаточно информации, чтобы дополнить промт "сделай мне интернет-магазин" необходимым контекстом для правильного понимания задачи.

Однако, необъятная ширина этого контекста - это и благословение и проклятье одновременно. Как LLM напишет вам софт для налоговой отчётности, если он понятия не имеет, в какой стране вы находитесь? Напишет, конечно же, потому что все без исключения LLM должны выдавать правдоподобный ответ - это их базовая функция, просто использует самый удобный для себя способ.

Тут возникает конфликт интересов: для корректного решения идельно, чтобы в задаче вы описали весь доступный контекст: где, что, кого, зачем. Однако, вам же наверняка хочется, чтобы вы не тратили на один промт целый день.

наш русский язык намного круче для разработки потому что обладает большей глубиной, чем английский

И двусмыссленностью. Богатство языка в этом случае вовсе не плюс. Даже тот факт, что порядок слов в русском не имеет значения, на самом деле для LLM беда, ибо не позволяет эффективно токенизировать текст.

Также очевидный факт для вас: все крупные LLM обучены в первую очередь на английском, потому что интернет в большинстве своём англоязычный. Следовательно, общение с LLM на английском - самое эффективное.

все крупные LLM обучены в первую очередь на английском

Сам себя поправлю: китайские, конечно же, на китайском. У них там свой Интернет. Насчёт отечественных затрудняюсь ответить, но они пока далеко не в топе.

Современные уже учат сразу на всех

Язык уже давно не играет особой роли при общении с моделями. Поймут на любых основных.

Насчёт отечественных затрудняюсь ответить, но они пока далеко не в топе.

Я какое-то время назад развлекался, зарашивая у наших ИИ "Цветные гвозди" (nails).
ИИ выдавали мне цветные ногти (nails)

Непонятно. Вы на русском спрашивали или на английском?

Спрашивал на русском "Нарисуй цветные гвозди"

Ну тогда смешно :) У меня тоже были случаи, когда я спрашивал на русском, получал ответ на русском, но из ответа было видно, что внутри всё происходило на английском.

Также очевидный факт для вас: все крупные LLM обучены в первую очередь на английском, потому что интернет в большинстве своём англоязычный. Следовательно, общение с LLM на английском - самое эффективное.

LLM обучены на данных которые смогли найти в интернете. Поэтому нужно смотреть распространение языка в сети. Английский там конечно лидирует, но по сравнения с прочими, русский в топе: https://ru.wikipedia.org/wiki/Языки_в_Интернете

Это на 2019 год. Сейчас (по тем же самым метрикам, посчитанным той же самой компанией) доля русскоязычного контента уже всего 3,6%, а многие другие языки наоборот выросли.

P.S. ну и даже тогда русский был наравне с немецким, а отставание от английского было совершенно безнадёжным.

А как вы себе представляете падение в 2 раза? вдруг сайтов на русском стало в 2 раза меньше? Кто-то удалил половину википедии на русском, все сайты со статьями и книгами? Это как сказать что вдруг доля русского в классической литературе упала... Он никуда не денется, данные для обучения берут не на текущий момент, а собирали их давно, и они там точно ничего не удаляют, это не в интересах обучения. И странного говорить про безнадёжность, по вашему обучать ни на чем кроме английского не нужно тогда, немецкий тоже "в топку".

Например, стало больше популярных сайтов на других языках (испанском, португальском, немецком, ...). У английского, если что, тоже доля упала.

по вашему обучать ни на чем кроме английского не нужно

Этого я не говорил. То, что понимание английского у LLM будет лучше, чем понимание других языков, не значит, что последнее не нужно.

Внезапно но русскоговорящего населения в мире пара процентов и уменьшается, за счет уменьшения населения самой России, увядания русского в республиках. Только то, что у нас был очень крутой интернет по отношению к остальному позволило прыгнуть так высоко, лет через 100 у тебя какой-нибудь узбекский догонит русский по распространенности если считать демографические тенденции неизменными...

我觉一百年后... Подозреваю, что лет через 100 если не все образованные люди в мире будут говорить по-китайски, то образованные узбеки точно.

Хотя русский язык останется очень пригоден для военного дела в связи с большой помехозащищённостью.

в связи с большой помехозащищённостью.

Как навахо ?

С навахо в obscurity было дело.

А китайский язык я просто не представляю как можно успешно применять в суматохе боя, когда малейший нюанс произношения часто полностью меняет смысл фразы.

भारतीयों को अन्यायपूर्ण तरीके से क्यों भुला दिया गया? Не более половины на китайском...

Хотя русский язык останется очень пригоден для военного дела в связи с большой помехозащищённостью.

Тут надо военных билингвов спрашивать, что-то у меня есть сомнения что короткий английский, проигрывает русскому, где как раз по-моему вынуждены просто прожёвывать часть слова, типа, (го)товсь...

Индийцам бы для начала между собой договориться, в том числе и о языке, а не то что культурную экспансию вести. Объективно, никаких причин учить хинди как иностранный в обозримом будущем не просматривается.

Что касается английского, то он, разумеется, технически тоже отлично подходит для военного дела, как и русский, и может быть даже имеет преимущество в виде чёткой системы модальностей. Но в гипотетическом синоцентричном мире перспективы англоязычной культуры неясны.

Есть ощущение что он очень гипотетический изза неэкспансиониской культуры. На наше "европейское или греко-римо-германо-балто-славянское" счастье... ну и географии скажем спасибо...

на описание простейшей задачи придётся писать промты длиной в тысячи слов.

Какая-то совершенно надуманная проблема. Напоминает рассуждения креационистов о том, что вероятность появления человека путём слепой эволюции такая же, как вероятность, что ураган на свалке соберёт самолёт. Сначала некорректно описывается ситуация, потом получается абсурдный вывод. Это и к этом сообщению и к оригинальному посту относится.

Зачем описывать задачу сразу до всех деталей? У вас что, ограничение на количество промптов? Думаю, ни один заказчик, и уж точно далёкий от IT сферы заказчик не может заранее сказать во всех деталях что ему нужно и вот сразу предусмотреть всё. Есть какое-то видение, идея, её можно итеративно реализовывать, переписывая, уточняя в чате с моделью как что лучше сделать (да, она часто предложит вариант, лучший из известных, о котором вы даже и не подумали). Наоборот, часто не стоит давать слишком строгих формулировок - может и выполнит, но не факт, что это будет лучше и то, что вам надо. Ну, конечно, если за спиной не стоит маньяк-дизайнер или очень привередливый заказчик, которому вот надо так и только так. Доделывать, менять что-то довольно легко и приятно, хотя можно неожиданно, конечно, упереться во что-то. Так, она может полностью переделать какую-то сложную логику без единой ошибки, но когда надо по-особому выровнять кнопочки, может, это проще окажется сделать самому. Что-то может быть полезным "отдать на аутсорс" другим моделям - дизайн, анализ ошибок в логике, оптимизации. Одна не будет прямо всё делать хорошо. Но это уже и не совсем про программирование.

И традиционный вопрос, какой ваш опыт - какие способы кодинга с AI и с какими моделями использовали, что столкнулись с тем, что "языка недостаточно для кодинга"?

итеративно реализовывать, переписывая, уточняя в чате с моделью как что лучше сделать

THIS

то наш русский язык намного круче для разработки потому что обладает большей глубиной, чем английский.

Вряд ли они с вами согласны. И аргументы у них точно есть.

Вопрос всего‑лишь насколько ясно люди могут выражать свои мысли.

«Однажды человек сделал доброе дело волшебнику.
— Проси у меня что хочешь! — сказал волшебник.
— Я хочу, чтобы у меня был член до земли! — ответил человек. Волшебник кивнул, взмахнул волшебной палочкой — и у человека резко укоротились ноги.

Так выпьем же за то, чтобы всегда правильно формулировать задание на разработку конструкторской документации!»

зато теперь Победой будет удобно летать, колени не будут упираться.

русский язык намного круче для разработки потому что обладает большей глубиной, чем английский

Это скорее минус. Для программирования нужна строгая логика, четкая структура и однозначность. Английский тут явно побеждает.

Было же исследование. Побеждает польский, потом русский, потом английский (плюс какие-то посадочные варианты). Но разница невелика

Так используйте русский со строгой логикой, можете даже северорусские "артикли" добавить. Вертеть слов порядком, чтоб получить Йоды магистра текст - опция...

наш русский язык намного круче для разработки потому что обладает большей глубиной, чем английский.

Возможность составить осмысленное предложение из разных форм слова "х*й" - это еще не "глубина".

Все же помнят стихотворение на букву К? А в неповторимом польском оригинале оно на букву C.

Как насчет осмысленного техзадания на одну букву? ;)

Если изложить всё четко, то наш русский язык намного круче для разработки потому что обладает большей глубиной, чем английский

Так эта глубина там совсем не нужна. Что бы примерно понять "крутость" нашего языка (не только русского) почитайте законодательные или юридические документы. Как там выражается чёткость изложения.

Согласна про четкость, но "круче" - вряд ли. Глубина русского как раз мешает: для машины чем больше синонимов и контекста, тем хуже. Английский в технике хорош своей примитивностью и однозначностью. Термины на английском, логика на русском - так уже работает. Писать код на родном языке = создавать лишний слой неопределенности.

Английский в технике хорош своей примитивностью и однозначностью

Технический английский, хехе. Пишите на техническом русском, кто запрещает.

нужно уже обладать экспертностью в двух сферах: о том, как разговаривать с машиной, и о сфере, для которой вы хотите получить нужный софт

Опять же, ничего нового) Сейчас ровно так же продакт менеджер, скажем, должен обладать экспертностью как в продукте (сфере, домене, как угодно), так и в менеджменте, или софт-скиллах - что в целом можно обобщить до "как разговаривать с людьми".

Я просто раз за разом вижу ошибку - люди пытаются воспринимать промты как ещё один язык программирования. В итоге идёт борьба за написание некоего самого правильного промта, который даст на выходе готовый результат.

По факту же это примеривание привычной парадигмы на чуждый инструмент. Гораздо эффективнее процесс строить примерно вот по такой схеме:

"У меня есть команда (с обязанностями и паттернами поведения, описанными в agents.md) - моя задача вложить в их кремниевые головы образ желаемого и критерии его готовности (definition of done). А для этого у меня есть возможность провести серию диалогов со всеми вместе или с каждым по отдельности, дать им документацию плюс возможность обмениваться уже своими наработками через общие файлы"

Это чисто софт-скилловая работа. Она не дублирует один-к-одному ту, что применяется к людям, доучиваться в любом случае надо. Но и работе с людьми мы, как индустрия, когда-то учились.

Есть одна проблема: в кремниевой голове нет образа желаемого. Там только слова и результаты их переработки.

А в белковых образ желаемого в какой форме хранится? Фактор слов для нас тоже очень важен, особенно при создании нового, когда сослаться на предыдущий опыт не получится.

А в белковых образ желаемого в какой форме хранится?

В виде свёртки нейросигналов от органов чувств, из которых созерцание текста занимает ничтожную долю.

Что касается невозможности ссылки на предыдущий опыт, то это аргумент скорее против вас. Когда сослаться на предыдущий опыт невозможно, то обычно и слов нет.

Попробуйте пропроцессить этот чувственный опыт. Не просто на уровне "светофор зелёный - иду", а сделать какие-то многоступенчатые сложные выводы из наблюдений (принципиально нетекстовых даже). На каком-то этапе в слова или соскользьнёте, просто картинами, звуками, запахами думать не получится. Или в инфографику - но она как раз в слова хорошо конвертируется.

А что до предыдущего опыта - он никогда не бывает совсем нулевой. ТЗ формата "такое же, но красненькое" вы можете сформулировать и понять даже если до сих пор чувственно воспринимали такое только синим.

А в большинстве случаев не надо делать многоступенчатые сложные выводы. Вы хотя бы на уровне лошади ИИ научите, без многоступенчатых выводов, чисто с телегой домой возвращаться. Или на уровне собаки, чужому горло перегрызть. Вот это стоит денег, а не многоступенчатые рефлексии.

Ну, по крайней мере нас так в институте учили ИИ. Целесообразное поведение.

Ну вот набрали вы команду копирайтеров, пролистнули у них перед глазами чертежами всех самолётов, дали им задание на разработку вертолёта, и ждёте, что полученная вундервафля полетит.

С человеками это примерно так и работает. Только вот "пролистывание перед глазами" растягивается на 11+5+N лет, а у железки - сильно быстрее.

Не работает. Копирайтера никто не возьмёт на должность инженера даже если у него есть 20 лет опыта копирайтинга чертежей.

А ребёнка берут на должность инженера после 11+5 лет опыта чтения учебников, вот парадокс!

Будем продолжать котятам дверцы приделывать?

Не берут. Джуны и так никому не нужны. А тупые тем более.

В этом‑то и парадокс: если вам надо описать задачу исполнителю, вы должны обладать некоторой долей экспертности в его сфере, чтобы грамотно донести задачу и получить желаемый результат.

Не совсем так. Вам не нужно уметь программировать чтобы сказать "я хочу чтобы при нажатии на эту кнопку делалось то-то и то-то". Грубо говоря - вам нужна экспертность только в предметной области (но не в программировании, если конечно оно само не является предметной областью). Далее вы описываете исполнителю (программисту) что вы хотите получить, а он уже подумает как это сделать.

Разница как будто в том, что ИИ сейчас подхалимничает. Программист может прямо сказать - это сейчас трудновыполнимо или на это понадобится столько то времени. А ИИ просто начнет делать выписывая тысячи строк кода в пустоту просто потому что вы попросили. ИИ вряд ли скажет - такое требование не ложится в архитектуру приложения, нужно подобрать другое решение. Но это, думаю, изменится в будущем.

Экспертность иногда полезна, иногда наоборот создаёт зашоренный взгляд на вещи. Но иногда бывает нужно ее остановить от явно ошибочных направлений. А вот чтобы ИИ говорила, что требование не ложится в архитектуру приложения, надо её... спрашивать. Неожиданно, да? :) Но вот именно такой режим мне кажется оптимальным, особенно если вы выходите чуть из вашей предметной области, где точно эксперт. А быть экспертом во всём даже в рамках IT ну никак невозможно. Дайте ей описание того, что вы хотите, чего опасаетесь, какой результат был бы оптимален, что сейчас есть. Переключите в режим планирования, тогда не будет сразу бежать исполнять. Пообщайтесь с моделью, это полезно. И она лучше требования уловит, подтянет правильные куски латентного пространства к контексту, и вы её будете контролировать и много нового узнавать. Когда инструмент уже не код, а речь, нужно и способ общения менять.

Мы (люди) так и так этим занимаемся: объясняем тем самым неструктурированным неоднозначным естественным языком друг другу разные штуки, чтобы один из нас сделал то, чего хочет другой.

После окончания вуза за 30 лет в разработке я ни разу не видел, чтобы исполнитель сделал то, чего хотел или тем более что описал заказчик. Это часто и к лучшему, потому что заказчик обычно хочет всякой фигни, но аргументом в пользу естественного языка точно не нравится.

я ни разу не видел, чтобы исполнитель сделал то, чего хотел или тем более что описал заказчик.

Классика жеж!

Да, я эту картинку и предствлял себе (только ранний вариант, на мой взгляд, был точнее).

Мы (люди) так и так этим занимаемся: объясняем тем самым неструктурированным неоднозначным естественным языком друг другу разные штуки, чтобы один из нас сделал то, чего хочет другой.

Вот только мысли эти, которые человек пытается донести, скорее всего у него в голове однозначны и структурированы, и выражены не естественным языком, а неким прикладным (или образно) - схемы, модели, графы, формулы, алгоритмы и т.п. И, как мне кажется, это всё проще описать сразу подходящим формальным языком, чем подбирать нужные слова на естественном. Хотя, возможно, это зависит от особенностей мышления конкретного человека.

Да нету ни у кого в голове UML диаграммы или сводной таблицы Excel вот так, сразу. Она в какой-то момент может возникнуть, но уже после того, как человек мысль в голове покрутит - на вербальном уровне.

И весь посыл в том, что это самое кручение необязательно изолировать в своей голове. Можно "подумать об коллегу". Можно - "об LLM".

Ну либо ты описываешь промпт для нейросети, либо ты теми же словами описываешь его для программиста. И кто из них сделает сайт с возможностью корректировки в течении 3-4 лет - это ещё вопрос. Или по вашему программисты безгрешны и не ошибаются?)

Так в том и прикол, пока сам не понимаешь в чем то не сможешь найти ни грамотного исполнителя, ни грамотное описание сделать

Все программисты грешны, как и все нейросети, потому что их тоже создают программисты).

Можно попробовать убрать всех посредников и общаться с машиной только на языке, на котором она понимает).

Надо сказать, когда писали на понятном ей языке, программы работали на килобайтах памяти... и Буран на по сути калькуляторе по нынешним меркам совершил беспилотный полёт вокруг Земли, и Вояджеры не на том же питоне или яваскрипте писали))

Этот буран написанный в пару килобайт - это изначально просчитаная людьми целая модель полёта, физика и математика, тонна инженерных решений, в программе лишь последовательность впрысков в двигатели. Это единичная миссия на которую брошены лучшие умы с неограниченными бюджетами, нужно один раз все расчитать и не менять. Интернет магазин это мелкий или средний бизнес, который каждый новый день требует мелких изменений. Совсем другая задача и совсем другие бюджеты. Экономически просто выгодно и по скорости и по финансам использовать менее оптимизированные но более общие решения, которых будет хватать. Python потому так и популярен - дёшево, быстро, пусть неоптимизировано, но в принципе ок. Да и быстро там что-то поменять. Не будете же вы нанимать команду инженеров, которые на чистом байткоде для супер конкретной машины писать супер попёр оптимизированный сайт на млн пользователей.

Питон уж быстрее некоторых штук этак в разы, хоть и интерпретатор. На днях специально сравнивал простую обработку изображения - поправить яркость, контраст, насыщенность на наборе из 2 тысяч изображений. Faststone в режиме пакетной обработки думает довольно долго, даже с параллелизмом. GM в виде bat-файла примерно по скорости чуть быстрее. Питон с библиотекой pillow на той же задаче быстрее примерно в пять раз, причем в однопотоке и без всяких gpu. Разницы в выходных файлах не заметил, ну или там разница от кодировщика не критичная.

с библиотекой pillow

Так сама ж она не на Питоне?

Тут ключевое "с библиотекой". Сам питон тут — хреновина, которая просто делает удобные ручки к библиотекам, написанным далеко не на питоне. И основная работа делается далеко не им, а оптимизированными кем-то библиотеками на чём-то компилируемом, причём, возможно, со вставками на ассемблере, как libjpeg-turbo, от которого pillow таки зависит.

Вобщем, не надо про то, что "интерпретируемый, а быстрее". В обработке графики он не особо участвует.

удобные ручки

Для переноски?

для верчения во все стороны :-)

это изначально просчитаная людьми целая модель полёта, физика и математика, тонна инженерных решений, в программе лишь последовательность впрысков в двигатели.

Да? и заход на полосу для посадки с другой стороны тоже заранее спланировали? https://habr.com/ru/articles/86876/

Недавно в препринтах ИПМ им. Келдыша выложили очень интересную статью про историю разработки и отладки алгоритмов системы управления "Бурана" https://keldysh.ru/papers/2026/prep2026_1.pdf

заход на полосу для посадки с другой стороны тоже заранее спланировали?

Сами-то как думаете? Может планёр совершить успешную посадку с незапланированной стороны?

Ничего подобного. Историю почитайте. Буран «сам» (без команд с Земли) «решил», что заходить на посадку лучше с другой стороны, потому что там ветер помогал. Естественно, по программе — но дело в том, что программу не идиоты писали, они и такой вариант заложили.

Python потому так и популярен - дёшево, быстро, пусть неоптимизировано, но в принципе ок.

А ви таки куда-то торопитесь?

Программисты находятся в одной с вами реальности и обладают схожим с вашим контекстом. В LLM заложен, условно, весь контекст человечества, поэтому интерпретировать ваши слова она может ох как по-разному.

Это потому, что LLM сейчас используют подход "Искусственного Оракула". Сидит такая Пифия в интернет-храме и отвечает на вопросы посетителей, особо не вникая в контекст каждого.

Когда появятся модели, динамически обучающиеся контексту, всё изменится. Вам не нужно будет объяснять ИИ каждый раз, что живёте в России, и вас интересуют программы на Питоне а не на жабаскрипте. И даже свои косяки он сможет запомнить чтобы повторно на те же грабли не наступать.

И вся боль топикстартера, собственно, об этом и есть. Огромный контекст тут уже не плюс, а минус - модель "плутает" в противоречивых инструкциях, данных за последние N часов. И одновременно не помнит, что вчера вы ей уже указывали на эту ошибку и он уже её исправлял.

А это уже в какой-то мере есть. Я вот в Курсоре небольшой проект пилю, там есть БД. Соответственно, для каждого изменения БД мне нейросетка генерила SQL файл миграции.

Плюс у меня есть "большой" SQL файл, который должен создавать БД с нуля (на всякий случай) - и после каждого изменения структуры я делал отдельный запрос на обновление этого большого файла, чтобы он оставался актуальным.

Где-то после пятого такого изменения с отдельным запросом нейросетка мне сама предложила и файл миграции, и обновление файла для создания с нуля. Т.е. где-то вот этот паттерн сохранился - то ли в скрытом мастер-промте, то ли пробежавшись по папке с SQL-ями нейросеть отсекла, что обновления большого файла подозрительно совпадают с появлением атомарных миграций. ХЗ.

Дальше я догадался это дело явно в rules.md прописать)

А вы менеджер миграций не пробовали использовать? Flyway, liquibase и прочие? Смысл хранить два различных скрипта? А вот риск промахнуться и сделать эти скриптв разными есть. И тогда можно странные приколы словить.

У меня максимально любительский проект, я пока эти миграции глазами могу вычитать)

Но спасибо за наводку в любом случае.

Только слова человечества.

Эту проблему, кстати, индийские философы распедалили ещё тысячу лет назад, введя различие между понятием истины, полученной из непосредственного опыта, и истины, полученной из слов авторитетного источника. Но кто ж этих папуасов читает, да?

В некоторых языках (тюркских, например) даже особая форма глагола используется, для описания событий, которые ты не сам наблюдал, а слышал о них от кого-то.

Ну по-русски тоже можно сказать "говорят", "дескать" или "со слов потерпевшего", однако проблема в том, что этими возможностями языка систематически пользуются только профессиональные юристы. Тут дело скорее в категориальном различении самих таких понятий, что требует определённых умственных усилий.

О, наш язык может изучать двусмысленно, но, проблема нейросетей, по моему наблюдению, это ещё и то, что они плохо держат контекст, а когда данных очень много - они игнорируют некоторые данные. Особенно если много входных и выходных данных. Поэтому, на данном этапе они не могут заменить человека. Что то простое делать они могут, как раз если входные данные небольшие. Делать компоненты чего то большого да, делать сразу что то большое - нет,

Опять же, чисто менеджерская задача. Начать "что-то большое" с запроса к нейросети же на декомпозицию)

В принципе да,

Это пока, пока весь пользовательский опыт не завернут в общий интеллект. Тогда дорога в интерактивность с ИИ явится под новыми красками. Тупо просчитает все подводные камни твоего проекта, попутно ремонтируя себя сам в процессе продвижения на рынке

Если такое произойдёт, остаётся только один вопрос: зачем искусственному интеллекту мы, если он станет полностью самодостаточным).

Вояки разберутся, или их ИИ договорится с их ИИ или ИИ во Вселенную сбежит, как бы не уже, где-то там)

Ну если ИИ сможет себе поставить такой вопрос, то да, тогда не зачем

Он уже, условно, завёрнут, но вам же не нужен весь пользовательский опыт? Вы хотите одну конкретную вещь, которая релевантна именно для вас.

Тут скорее проблема не в полноте мирового контекста, а в том, чтобы определить кто именно общается с LLM и каков его личный контекст.

Можно спорить с автором про LLM, но вот это, по моему, золотые слова:

Многие не понимают, что в наше время нет проблемы, к примеру, быстро разработать сайт за 1-2 дня, настоящая проблема поддерживать работу такого сайта 3-4 года. За время которого сайт переживет сотни изменений, но всё равно будет продолжать корректно работать и приносить деньги. 

А в чем же проблема поддерживать работу сайта с какими угодно изменениями?

Проблема в том, что изменения не должны ничего сломать.

Это вопрос не кода, а процесса - тестирования, выкатки, откатов, бэкапов.

а вообще так прикольно наблюдать за тем, как некоторые надеятся на ИИ. мол теперь он точно всех заменит, люди не нужны будут, да и программы тоже

во-первых если бы не эти самые "ненужные программы", то фиг бы вы сейчас пользовались условным чатом жпт. а во-вторых язык, он многогранен, и каким бы хорошим не был ИИ, но порой ему придется прописывать маааленькие нюансы

да и в целом... чтобы за вас все писал интеллект? это ж насколько надо было облениться.. ну, или верить в розовых пони и радужное небо 🌚🌚

Песню помните? "Нажми на кнопку - получишь результат, и твоя мечта осуществится" xD

Насколько я понимаю, разговоры о замене программистов подразумевают, что на вход будет поступать PDF с бизнес требованиями, а описанные в статье проблемы нейросеть будет выполнять сама. И, справедливости ради, на данный момент нет оснований утверждать, что учёт сотен условий и аппаратных ограничений компьютера для нейросетей не подвластен принципиально. Как и выполнение других задач, требующихся для поддержки сайта

В этом‑то и проблема: PDF с бизнес‑требованиями не является исчерпывающим документом для того, чтобы машина выполнила вашу задачу без ошибок, вы никак не избавитесь от двусмысленности команд. Единственный способ получить от машины именно то, что вы ожидаете, это заменить PDF с бизнес‑требованиями, например, на Java‑файл (или файл на любом другом языке программирования) с бизнес‑требованиями. Тогда машина выполнит только то, что вы в нём написали, и ничего больше.

Мы такими темпами придём к тому, что единственный способ получения от машины ожидаемого результата - дать ей машинный код на понятном ей языке :)

Да какая двусмысленность команд, откуда эти надуманные проблемы? Я вот за 25+ лет работы не сталкивался с проектами, которые бы были детально описаны и по этому описанию без изменений реализовывались. Очень давно да, пытались в ТЗ, но те времена уже давно прошли. Проекты - результат постоянного взаимодействия. Для этого и придумали эдайл всякий, спринты. Есть MVP, описанный больше как набор идей, из которых дизайнер или команда будет что-то создавать, есть подгонка под реальность, которая тоже постоянно меняется, есть изменение видения того, как что должно работать и что удобнее после отзывов. Любую задачу можно декомпозировать и описывать по частям, эволюционно. Всё это вполне однозначно описывается человеческим языком. Кроме может дизайна и логотипов каких-то, но для этого есть другие инструменты.

Всё правильно. Все формальные языки неполны. Все полные языки неформальны.

...если под полнотой понимать возможность написания чуши.

К сожалению, чушь можно написать и на максимально формальном языке.

Но она не пройдёт формальную верификацию.

Мы, люди, общаясь на одном языке, не всегда можем грамотно объяснить наши мысли или описать какие-то действия другому человеку, не говоря уж о машине.

Я тут, признаться, ожидал развития этой мысли. Например, дать определение этому феномену - семантическая энтропия. А также хорошо было бы дать небольшой истрический экскурс о том, насколько давно люди знают об этой проблеме и как пытаются с ней бороться.

Код - это логическое продолжение перечисленных выше истрических процессов и это всё ещё самый точный и краткий способ записи последовательности действий, которые субъект 1 хочет добиться от субъекта 2. Любое описание на естесственном языке будет либо больше, либо двусмысленнее.

Естественный язык нужен совсем для другого. Он нужен, чтобы описать внешние проявления программы. "Хочу программу, чтобы тут была кнопочка, тут пимпочка, нажал и вуаля!". А на языке программирования ты описываешь как конкретно он должен реализовать эту кнопочку и пимпочку. Можно сказать, что язык программирования по отношению к естественному языку это как машинные коды по отношению к Питону.

"Как" ты описываешь на императивных языках, а есть и декларативные, в которых описывается "что", а "как" - это уже вопрос компилятора/интерпретатора.

Аристотель, между прочим, был мужиком очень умным, и никогда не утверждал, что его логика единственно возможная или исчерпывающая.

Вот-вот, а народ хочет, чтобы целые программные продукты писались в формате "Э, слышь, сайт мне запили. Ну чтобы норм было, как у людей".

Ну в такой-то постановке как раз можно и запилить. Проблема будет, когда не как у людей.

Валидно

Чем дальше двигаемся, тем больше деградируем. Сейчас многие несложное уровнение без интернета и калькулятора не могут посчитать

Можно, но зачем? (c)

Ну либо считают без калькулятора, но не могут предложение без ошибки написать :)

Об этом еще Сократ писал! И после него почти все. Получается, каждое поколение деградирует по сравнению с предыдущим. Посчитайте насколько вы деградировали по сравнению с Сократом, если принять скорость деградирования за

  • 1% за поколение.

  • 3% за поколение.

  • 5,5% за поколение.

  • 0,15% за поколение.

Чо вы тут лечите, это вы необразованных от ИИ отогнать пытаетесь или что?)) приукрасили уж конечно)

Каждый день статьи в духе "ИИ — отстой!", все уже привыкли.

Ежедневный обязательный набор: новость про Andrej Karpathy + мнение о том, что ИИ пользоваться нельзя.

Всё хорошо.

Только написал ответ, и тут же + ещё одно мнение 😅

Ага, уже весь Хабр этим заспамили. Нормальных статей в разы меньше стало, по крайней мере на фоне этого "слопа". К слову, автор не постеснялся сделать не пост, а именно статью (https://habr.com/ru/articles/1011178).

Писать статьи о том, что ИИ это плохо, при этом используя ИИ для их написания) Ирония, достойная аплодисментов!

А еще важная часть это контекстное окно, и тут уже китайский язык выходит на первую строчку, ведь он может уместить промпт в 3-4 раза короче. Ну и на китайском языке тоже хорошо обучение модели.

Не совсем. Токен != символ, в английском целые слова могут быть отдельными токенами.

Вопреки общему мнению китайский язык не такой уж и краткий. Совсем немного слов состоят из 1 иероглифа. Гораздо чаще 2-3

Обычно 2, но иногда как 3-4, так и 1. Однако эти два иероглифа китайского слова иногда соответствуют двум словам других языков. Например, слово 牛奶 состоит из знаков "корова" и "молоко" и переводится "коровье молоко". Или 手表 – "наручные часы". Не будем уж говорить про всякие 外孙女 – "внучка по линии дочери". В целом, концепция деления китайского текста на слова вообще не всеми разделяется, ведь то же самое 外孙女 можно было бы прочесть и по отдельным знакам как "чужая внучная женщина".

Плюс часть информации в китайском, в отличие от русского, кодируется позиционнно.

В общем, если сопоставить длину достаточно длинного текста на китайском и его перевода на русский или английский, то китайский будет значительно короче. Как и английский короче русского.

у многих появляется непреодолимое желание написать, что языки программирования больше не нужны

Это всё довольно наивно. Изучение ЯП – это самая простая часть программирования

Если нет ЧП, то и того, что в классической программной инженерии "выше ЯП" тоже нет.

Что такое ЧП в вашей формулировке?

подозреваю опечатку в "ЯП")

Цитата (скорректированная): "...тем грамотнее вы опишЕте свою будущую программу,...".

Практически каламбурчик :)

Claude хорошо понимает псевдокод в виде смеси css и json. Грубо говоря, так:

projectInfo

{

files:"2";

file1:"code of tetris html5 game";

file2:"readme.md";

fullRealisationMode; !important

}

А так, конечно, гораздо лучше делать код прямыми руками и с минимумом ИИ, дабы мозги "не отсохли", а если уж и писать с ИИ - то вчитываться и давать более подробные инструкции. Это лишь 1 из вариантов.

Естественный язык ужасен для программирования именно из-за своей избыточности и контекстной зависимости. Слово "сделай" может означать тысячу разных действий в зависимости от интонации, предыдущей фразы и настроения говорящего. Формальные языки создавались именно для того, чтобы убрать эту амбивалентность

Естественный язык прекрасен тем, что он для нас лучший. ИИ должны учить наш язык.
Нет другого более удобного языка для человека чем естественный.

Нет другого более удобного языка для человека чем естественный.

#f

Про какой из тыщи языков идет речь?

Сложность программирования не в том чтобы написать код. Программы писать сложно не потому что языки сложные и неудобные. А потому что не всегда сразу понятно что нужно получить и ИИ тут никак этому не поможет. Да, теперь дополнение кода предлагает не только название метода, а может накидать код. Да, раньше нужно было шерстить stackowerflow, а сейчас это за нас делает "умные" поисковик. ИИ это хороший и полезный инструмент в руках того кто понимает что делает, а тому кто не понимает, он не поможет.

Языки программирования как раз удобные. Они всю историю развивались так, чтобы упростить донесение человеческой мысли до компьютера и сделать это как можно более выразительно и кратко.

Поэтому любая система, которая пишет программы, потребует в итоге формализма эквивалентного ЯП. Иначе это превратится в бесконечную «угадайку» чего там на самом деле хотел человек.

До компьютера надо доносить мысль? Однако! Компьютер тупо выполняет приказы. У него нет вариантов и свободы воли.

Я напомню, что исправный компьютер всегда выдаёт верный результат работы программы. Если вы считаете его неверным, то это просто неправильно написанная программа.

И языки разрабатываются, чтобы человек сам понял, чего сказал.

ИИ это уже давно не только про дополнение кода.

 Используйте ИИ с умом, и будет вам невиданные до селе мощь и счастье.

Заказчикам ИТ-продуктов не нужно знать языки программирования. И они как-то справлялись всё это время до появления т.н. ИИ

Часто постулируется факт, что ни один ИИ никогда не дорастёт своим скудным электронным умишком и не сравнится в гениальности распознавания запросов заказчика так, как это делает программист.

Программиста для этого часто не хватает, к нему подключается команда из бизнес-аналитика, продажника, деливери менеджера и т.д.

Авторы таких текстов, вы себя убеждаете что ИИ бесполезен или других?
В бизнесе люди привыкли голосовать деньгами. Если вы считает что ИИ бесполезен, можете поставить на бирже против акций ИИ компаний. Сомневаюсь что вы готовы подкрепить свои слова рублем.

Автор этого не писал, это какое-то очень странное лично ваше восприятие.

Шортить против пузыря - так себе идея. Очевидно, что он лопнет и акции AI компаний рухнут, но до этого их ещё могут накачивать достаточно долго. Не у каждого ликвидности хватит.

Ии золотое дно для ит, чем больше говна нагенерят, чем больше контор за счет халявного говнокода свяжут свою бизнес модель с ит, и понятно уже не захотят бросать. Тем больше потом будет работы для нормальных специалистов.

Объём будущего легаси сейчас генерится просто с промышленной скоростью)

нет проблемы, к примеру, к примеру, быстро разработать сайт за 1-2 дня, настоящая проблема поддерживать работу такого сайта 3-4 года.

Зачем его поддерживать 3-4 года, если его можно переписать за 1-2 дня?

То есть вместо точечной правки 2 дня работы? Ну, можно и так ;)

Простите что влезаю с соседней колокольни, но применительно к КДПВ можно не описывать словами, а просто показать нейросети картинку. (Есть же простые сайты написанные нейросетью по нескольким эскизам.) Не стоит зацикливаться на одном лишь тексте. Нейросети давно мультимодальны, как и человек. Не использует же человек только текст в общении (или только речь). Для сложных разработок используют схемы и чертежи, которые главнее текстовых ПЗ. И кроме того, LLM не единственная архитектура НС и не она будет в качестве AGI (если таковой вообще будет достигнут). Составной частью, возможно, но не более того.

Ждём, когда программисты захватят мир и объявят python основным языком общения.

Python уже пару лет в начале топ-5 ЯП

И любой бытовой спор будет падать с syntax error где-то на середине фразы

Для интерпретируемого языка код, не падающий по syntax error - не бог весть какая сложность.

любая последовательность символов является программой на perl ;)

нейросети показали, что такое возможно, прелесть такого подхода в том, что вам не надо учить языки программирования, просто описали своими словами, что вам нужно, и компьютер выполнит вашу задачу.

не показали. Нейросети показали что можно сгенерить бойлер плейт код который составляет 2/3 проекта и если вы знаете что вы хотите то можно реализовать нужные фичи. Но это предполагает что вы умеете проектировать системы. Запрос «сделай нам хорошо» не работает ни с людьми ни с ИИ.

Две недели собирал требования, трижды переписал ТЗ, пять созвонов, митинги, дейлики, заманал ментора, забодал тимлида, задолбал коллег, оборвал телефон в техслужбе клиента - нормальный процесс разработки, кодер молодец, вникает в процесс.

Накропал три куцых абзаца, ничего не вышло --> нейросеть тупая, что и требовалось доказать.

Вот краткая суть претензий к роботу, языкам и контексту.

Тут надо начать с того, что не любая разработка идёт от сбора требований.

Примерно половина рынка устроена таким образом: "сделаем-ка мы что-нибудь, чтобы плательщик офигел".

Когда разрабатывался айфон, ни у кого из покупателей не было требований к смартфону (в современном понимании этого слова).

сделаем-ка мы что-нибудь, чтобы плательщик офигел

Сбор требований может и так выглядеть.

Это не требование, а внутреннее побуждение.

Неважно. Прессформы для корпуса делались согласно требованиям а не побуждениям.

Требования собираются всегда. Не всегда в лоб "а что вы хотите?" - просто потому, что это самый ненадёжный сбор требований.

Анализируются сценарии, анализируются конкретные задачи, которые пользователи решают в этих сценариях, анализируется костыльность этих решений. Если она высокая - то тут есть место для продукта.

Взять тот же айфон. К 2006-2007 году уже стало ясно, что люди активно используют телефоны для браузинга - статистика Opera Mini это ясно показывала. Но Opera Mini - объективно-то костыль тот ещё. В итоге когда Джобс вышел на сцену, у него за спиной красовались 3 слова: iPod, Phone и Internet.

Как вы понимаете семантику выражения "сбор требований"? Кто в данном случае требует и кто собирает?

Собирает компания-разработчик, точнее, её продуктовая команда.

А требует рынок. Не отдельный гражданин, а некое их множество, готовое заплатить деньги за реализацию этого требования. Собственно, факт оплаты - лучшее доказательство, что требование таки имеется, пусть и не сформулировано.

Язык это "Аналоговый сигнал", а программный код "Цифра".
Чем язык более формализованный тем ближе он к "Цифре", тем точнее он переводится в программный код.
Русский язык менее формализован чем английский, следовательно его сложней превращать в код.
Может сумбурно высказался, но как то так.

В каком месте он аналоговый?

Если бы язык не был аналоговым, то одинаковые сюжеты во всех художественных произведениях были бы написаны как под копирку, слово в слово.
А раз этого не происходит значит язык является аналоговым сигналом.

В семантике.

Естественный язык хорош, пока задача маленькая и все ещё помнят, что имелось в виду. Как только проект разрастается, каждая недосказанность начинает мстить

Что мешает сразу писать тест кейсы и ничего не будет мстить, код-то всё равно никуда не девается. Разработали, получили желаемое, покрыли тестами.

Какая разница на каком языке общаться с генеративной llm? Она не знает язык. Весь текст переводится в цепочку смыслов(векторов). Слово "машина" в русском может обозначать автомобиль, стиралку, посудомойку, компьютер и т.д, но с точки зрения нейронки, слово машина - это некая сущность примерно похожая на все вышеперечисленное, а так же на car. При достаточном контексте llm разберется, что ты имеешь ввиду или уточнит у тебя, если двусмысленность сохранится.

Ну да, для того трансформеры и придумывали, чтобы контекст улавливать. Проблема надуманная поднята, актуальная только если задача по 1 (одному) промпту сделать сразу сложное приложение и менять его запрещено.

У такой концепции есть фундаментальный недостаток, это двусмысленность человеческого языка. Мы, люди, общаясь на одном языке, не всегда можем грамотно объяснить наши мысли или описать какие-то действия другому человеку, не говоря уж о машине.

С тем же столкнулись в эпоху символического ИИ, ЭС, см. обзор широко обсуждавшейся в то время критики в работах Дрейфуса, что способствовало появлению концепции когнитивной архитектуры. Он надеялся, что подобные проблемы обучения, общения с ИИ будут решены в моделях нейросетевого интеллекта. Но то же сказываются.

Интересно на каком именно опыте основано мнение автора, работал ли он с агентскими системами типа Gemini CLI, Codex или только с китайскими языковыми моделями через чат? Вижу набор чрезвычайно странных, далёких от реальности заявлений просто, вроде "проблемы начнутся позже, когда вся логика вашего сайта свяжется в один большой клубок, в котором любая новая фича ломает существующий функционал." Почему, собственно? Модели пишут код чище, чем тот, что я видел за десятилетия работы. Рефакторинг при необходимости производится за минуты, тестами тоже покроют быстрее и качественней, если только не сложный UI. Его тоже можно, но надо больше с инструментами и MCP экспериментировать. Да, ошибки могут быть и это не человеческие ошибки, другого рода и бороться с ними надо по-другому, но это вполне реально.

до сегодняшнего времени никому не удавалось реализовать

Из этого вовсе не следует, что это невозможно

вам, чтобы избегать двусмысленности, пришлось бы досконально описывать все нюансы

Именно этим сейчас занимаются специально обученные люди с профессией "юрист"

потому что у нейросети нет четкого понимания

Вы постоянно забываете добавлять одно слово. Ключевое. "Потому что у нейросети СЕЙЧАС нет четкого понимания ". Это относится ко всей статье

вам всё равно не избавится от аппаратных ограничений компьютера или платформы,

С чего вы взяли, что любая задача будет упираться в ограничения?

любой софт легче пишется, когда он начинается с самого нуля

Что есть"ноль"?

нет проблемы, к примеру, к примеру, быстро разработать сайт за 1-2 дня, настоящая проблема поддерживать работу такого сайта 3-4 года.

Зачем его поддерживать 3-4 года, если его можно переписать за 1-2 дня?

Вы можете минимизировать такую проблему, еще более досконально описав программу, но никак от этого не избавитесь, потому что у нейросети нет четкого понимания слов и смысла или даже спецификаций человеческого языка, чтобы каждый раз возвращать один и тот же результат на каждый одинаковый запрос.

Проблема даже не в нейросети. Даже у людей нет общего понимания смысла слов. А эти смыслы, к тому же, со временем меняются.

Я почему-то сразу представил эту картинку

"люди сегодня очарованы работой современными нейросетями"

Дальше читать на смог, простите.

Просто пытался завести службу nekobox_core фоновой службой консилиумом с chatgpt и Gemini. С чего начать? Что нейронки дают неправильный путь к бинарнику и неправильные флаги? В общем, ошибки победил, конфиг переписал, но так и не завел коннект. Сгорело у меня знатно, в очередной раз. Получилось на другом стеке.

Плюс в этом один: нейронки в сложных вопросах ошибаются так часто, что неизбежно приходится вникать в вопрос глубоко и узнавать его достаточно. Нет эффекта [написал запрос -> получил результатя] == 100% результата, но +0 скиллов и +0 знаний.

Опять в крайности, как говорил Брюс Ли Я боюсь того, кто изучает один удар 10 000 раз . Пробуй дальше и ИИ тебя начет понимать

В таком случае идеальным языком для составления промптов будет эсперанто. Напомню, в этом языке каждое слово имеет единственное значение.

в этом языке каждое слово имеет единственное значение

Очень странное заявление, учитывая, что значения слов культурно обусловлены.

Например, слово frato на эсперанто имеет единственное значение "брат" для русского человека, но для китайца это либо 哥哥 (старший брат), либо 弟弟 (младший брат). То же самое с известным примером с видами снега в языках северных народов (к которым относимся и мы), мастях верблюдов и т.д.

хорошая статья. Ведь, например, рисовать они действительно могут эффективнее, потому что там нет четкого языка для написания картины, и разбирать картину на слои или менять краски потом не надо. Но в программировании это совсем другая ситуация.

Sign up to leave a comment.

Articles