Re[14]: И еще рассуждения об ИИ
От: Pavel Dvorkin Россия  
Дата: 04.02.26 12:16
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Или не удалять постфактум (то есть после моих замечаний) свою строку. Я-то первый раз цитировал, когда она там еще была

S>Я ничего не удалял.

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

PD>>Вполне. Ради бога, я же не против. Я вполне за. Было N инструментов, добавился N+1-й. Очень хорошо. Только панацею из него делать не надо.

S>Никто и не делает. Вы спрашиваете — мы отвечаем.

Ну и хорошо.

PD>>Как сказать... Вообще-то хороший набор тестов даст и то (в принципе даже все даст), что и статический анализ.

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

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

PD>Как сказать... Вообще-то хороший набор тестов даст и то (в принципе даже все даст), что и статический анализ. Аргумент тут простой — статический анализ , не запуская код, обнаруживает ошибки, значит, может быть и тест, который эту же ошибку обнаружит. Если такой тест сделать вообще нельзя, то это ошибка ли ?


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

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


PD>>Все было бы верно, если бы не пресловутая удаленная фраза насчет работы ИИ после юнит-тестов.

S>Нет никакой удалённой строчки. Просто кое-кто прочёл "после" как "на основе", и отсюда пошла целая ветка заблуждений.

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


PD>>Я эту фразу понял как способность ИИ запускать тесты и анализировать их прохождение.

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

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

PD>>Ну не совсем поверх, скорее параллельно. Поверх профайлера он все же не работает, как мы выяснили уже.

S>Повторю простую мысль: и поверх профайлера он тоже может работать. Просто в указанном мной примере он этого не делает.

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

PD>>В том-то и дело, что черт его знает. Не принять точечное изменение, которое сделала IDEA — несложно. И то, если пустить ее на автомате делать эти изменения, потом придется просматривать все изменения. А вот если это сделает ИИ, да еще на per-project основе, внося изменения по данной проблеме в несколько файлов кода — поди потом найди изменения, относящиеся именно к этой проблеме и отличи их от других.

S>Что за странные фантазии?
S>Во-первых, есть системы контроля версий и инструменты diff.
S>Во-вторых, ИИ-агентов тоже не идиоты писали, поэтому любой агент показывает, что именно он изменил, не заставляя разработчика бегать за ним вручную и реконструировать набор правок.
S>Более того, он эти диффы снабжает пояснениями на человеческом языке — что именно он сделал и зачем.
S>И в зависимости от настроек он эти диффы может не применять даже локально, пока пользователь их не подтвердит.

О господи! Ну неужели я не знаю про cvs и diff ? Я же вовсе не о том говорю, как эти изменения потом увидеть человеку. Это и так понятно. А вот как потом определить, с какими изменениями стоит согласиться, какие стоит отвергнуть, а какие, возможно, не принять, но внести изменения самому, при том, что эти изменения могут иметь достаточно сложную логику и затрагивать несколько файлов — вот это и вопрос.

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

S>Ну так это и к кожаным мешкам тоже относится. Как поставлена задача — так и будет делать. Попросишь решить сразу семь проблем — займётся семью проблемами.
S>Потребуешь решить одну — постарается решить одну, а если потребуется вылезти за пределы выданных полномочий — попросит разрешения.

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

PD>>Звучит хорошо. Насколько реально все это можно, и не будет ли ситуации вроде ответа от вполне человеческих служб (ну вроде чата поддержки какого-то банка, где уже удалось пробиться через бота к реальному человеку, но этот человек все шлет и шлет свои стандартные ответы вместо того, чтобы ответить по существу — и делает это потому, что среди стандартных ответов у него ответа на мой вопрос нет, а за их пределы он выйти не имеет права) — не знаю. Но хотелось бы посмотреть на реальный лог таких общений по какому-то, пусть не слишком сложному проекту. Чтобы понять, что из этого фактически сейчас имеет место быть

S>А что останавливает? Сбер свои инструменты бесплатно вроде раздаёт. Это если жалко двух тыщ рублей за полноценного агента.

Да нет, поздно мне уже. Я лучше просто посмотрю, что у других получится.

PD>>Про тесты понятно. И покрыто было. И после его изменений половина тестов упала. А вот про любые идеи про починку понятно меньше. Я же написал — начиная проект, я на отладку этого кода и часа не запланировал, да и не помню уже его деталей. Так что на починку может уйти очень много времени.

S>Тогда делаем revert и едем дальше.

Это не сложно, но это просто отказ от его изменений.

S>Против так против. А зачем тогда спрашивать "а может ли ИИ автоматически редактировать код"?


А я разве спрашивал, может ли он это делать ? Особенно с учетом того, что я как раз и приводил примеры, когда это делается автоматически даже без всякого ИИ (в той же IDEA). Я несколько о другом говорил — стоит ли ему это доверять, и если доверять, какие тут проблемы могут возникнуть.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.