Здравствуйте, Sinclair, Вы писали:
S>Вы, наверное, не видели джунов в их естественном состоянии
У меня таких все больше и больше среди заказчиков. Люди, которые, по легенде, разрабатывают приложения, и хотят интегрировать их с моими компонентами, все чаще и чаще ведут себя, как рядовые юзеры, в ответ на какое-нибудь "вам необходимо изменить настройки, чтобы..." лихорадочно ищущие большую кнопку, на которой написан в точности такой же текст. Многие из этих деятелей что-то пилят с помощью ИИ — может, это они и есть?
S>Агенты, которые ставятся как самостоятельные приложения, тащат песочницу с собой.
А как она выглядит, эта песочница? Как сплошной промежуточный интерфейс, типа брандмауэра, между агентами и системой, в которой они работают? Или просто как панель управления ими?
Здравствуйте, TailWind, Вы писали:
TW>Нет творчество он точно не умеет TW>Я много раз просил его именно придумать новый алгоритм TW>Он всегда советует то что уже знает
Вот это как раз может быть следствием той самой "недобросовестности", о которой я говорил в соседней теме — если более-менее подходящее решение лежит на поверхности, то модель не будет тратить ресурсы на попытки изобрести другое.
А так-то она вполне могла бы изобрести его типовым эволюционным путем — тупо пробуя случайные комбинации, проверяя их работоспособность, и отбрасывая неработающие. Но это затратно.
Здравствуйте, Sinclair, Вы писали:
S>ИИ помимо инструментов обладает навыками творчества — вот той самой бредогенерации. Именно она выгодно отличает его от привычных нам жёстких инструментов.
Лучше бы он этого не делал. Я категорически не согласен с тем, что это его выгодно отличает. Если бы он этого не делал, то его решения не приходилось бы вычитывать. Если бы оно писало, что у него нет решения для этого случая, то было бы проще.
Всё сказанное выше — личное мнение, если не указано обратное.
TW>>Он может спереть алгоритм TW>>Но имена функций, переменных будут другие
ЕМ>Что значит "будут другие"? Каким образом он сможет убедиться, что они отличаются от тех, что были в оригинале?
Ему то зачем убеждаться
Если перевести c++ код на русский (язык алгоритмов, предметов и действий), а потом обратно
Имена переменных будут другие, а действия примерно то же
Ну типа:
Открыть файл
Сохранить хэндл
Записать три байта
Закрыть хэндл
Имя хэндла не имеет значения для алгоритма. Будет выбрано любое
Здравствуйте, TailWind, Вы писали:
TW>Ему то зачем убеждаться
Чтобы утверждение "будут" стало истинным.
TW>Если перевести c++ код на русский (язык алгоритмов, предметов и действий), а потом обратно TW>Имена переменных будут другие
Вот был в обучающей выборке код, содержащий типовые имена:
Он был преобразован в алгоритм/псевдокод вида:
TW>Открыть файл TW>Сохранить хэндл TW>Записать три байта TW>Закрыть хэндл
Затем по этому алгоритму был сгенерирован код. Какие свойства процесса генерации позволяют ожидать, что имена будут отличаться от типовых?
TW>Имя хэндла не имеет значения для алгоритма. Будет выбрано любое
Здравствуйте, Философ, Вы писали:
Ф>Если бы оно писало, что у него нет решения для этого случая
Я бы хотел в таких случаях получать обоснование. Ответ "нет решения" предполагает, что постановка задачи содержит противоречия, которые предлагается искать самостоятельно, а это может потребовать бОльших ресурсов, чем проверка всех предложенных решений.
По сути, ИИ часто предлагает ответы/решения, вполне подходящие под заданный запрос, но неполные/неправильные — просто потому, что мы не сообщаем им подробностей, которые нам кажутся очевидными, но для ИИ они таковыми не являются. И тут дилемма: либо мы сперва старательно формулируем задачу, стремясь исключить любые возможные неточности, и получаем ответ, наиболее близкий к ожидаемому, либо формулируем, как придется, но сразу же предлагаем ему способы проверки годности решения (например, требование сделать заодно и тесты).
Но вычитывать все равно придется, даже если все тесты успешные. Ибо кто поручится за то, что он и в тестах не налажал?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>По сути, ИИ часто предлагает ответы/решения, вполне подходящие под заданный запрос, но неполные/неправильные — просто потому, что мы не сообщаем им подробностей, которые нам кажутся очевидными, но для ИИ они таковыми не являются....
Это ещё не всё: они слишком часто игнорируют отдельные условия задачи. Я каждый день с таким сталкиваюсь. Пример: я пытаю ИИ на тему безопасного использования стандартных устройств с инвертором. Сообщаю ему параметры меандра, говорю о выбросах на фронтах. Он спрашивает о характере нагрузки — я решаю проверить, а можно ли туда умножитель подключить. И он тут же игнорирует выбросы — считает di/dt для чистого меандра, притом вообще непонятно с каким фронтом. Этом притом, что до этого оно само писало о проблеме времени обратного восстановления диодов.
Я каждый день вижу, как ИИ пытается игнорировать отдельные ньюансы задачи — в программазме тоже самое.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Почему "бесплатному",
Потому что вы рассуждаете о чат-режиме, который предоставляется всем и бесплатно.
ЕМ>почему "всех"?
Потому что вы рассуждаете о чат-режиме, который один на всех. А не так, что отдельный чат-гпт для "Разработчиков на С++ под виндовс" и для "Разработчиков на питоне 2.17 под убунту 24.04".
ЕМ>Коли существует изрядное количество чисто онлайн-инструментов для разных задач, у которых нет полных локальных аналогов, то логично ожидать того же и от ИИ-движков с веб-интерфейсом — как бесплатных, так и платных.
Да, например есть специализированные движки для генерации картинок. И для генерации презентаций. И для генерации видео.
А также есть рудиментарные возможности по генерации, например, изображений, встроенные в разговорные чат-решения.
Но вот от чат-режима логично ожидать именно того поведения, которое мы наблюдаем: (весьма) ограниченный набор встроенных навыков, + расширение спектра возможностей благодаря одному универсальному навыку "генерация и исполнение питон-скриптов".
ЕМ>Ваши рассуждения выглядели бы разумно, если б ИИ-инструменты для генерации изображений не умели бы работать без условного локального Photoshop, инструменты для генерации музыки — без условного локального Logic и т.п. Но они вполне себе работают полностью онлайн, и к этому нет никаких технических или экономических противопоказаний.
У этих инструментов конечно же есть "локальный" (то есть расположенный там, где собственно происходит обработка вашего промпта) "Photoshop" и "Logic".
Не обязательно прямо сам фотошоп — скорее, коллекция фильтров и навыков, которые специально заточены на решение конкретного класса пользовательских задач.
Но вы не сможете заставить нано-банана-2 сгенерировать вам код нелинейного аудиофильтра на языке С с использованием функций WinAPI.
"К этом нет никаких технических или экономических показаний".
ЕМ>Области видимости тоже регулярными выражениями отслеживаются? Результаты подстановки шаблонов, тех же макросов, и подобное?
Нет, дополнительным анализом поверх лексера. Но нужно понимать, что этот "дополнительный анализ" очень сильно отличается от того, что делает компилятор. В частности, нечёткостью результата.
Поэтому если вы хотите получать детерминированный результат (например — код, в котором исправлена найденная ошибка и не внесены новые), то придётся проверять нечёткий результат через строгий инструмент.
В чате у вас этого никогда не будет. Это не означает, что локальный запуск агента — единственный способ решения задачи. Есть готовые коробочные инструменты, которые умеют, например
— посмотреть на код вашего проекта в гитхабе и "проанализировать его".
— сделать чекаут кода вашего проекта в специально созданный облачный workspace с нужным тулчейном, поработать с этим тулчейном там (например, проверив внесённые ИИ изменения), и подготовить PR или сразу сделать коммит в ваш репозиторий.
Но это, опять-таки, агентский режим работы. Если для работы надо запускать msvc.exe, то придётся запускать msvc.exe. Локально или в облаке. Нет никакого другого варианта. Нет варианта, что чат "в уме" выполнит полноценную компиляцию какого-нибудь хромиума, и получит хотя бы точный список всех диагностических сообщений компилятора, не говоря уже о бинаре.
Илон Маск, помнится, высказывался в том духе, что компилятор — это костыль для нынешних LLM, который в будущем можно будет выкинуть, и чат будет брать промпт, и выплёвывать готовый бинарь как "поток токенов", в том же стиле, как вы предлагали для .docx. Ну так это от того, что он плохо понимает проблематику этой предметной области.
ЕМ>Оно умеет работать с любым набором инструментов любого ЯП?
Да, конечно. Потому что любой набор инструментов доступен просто через запуск процесса с подсовыванием ему stdin и чтение его stdout/stderr.
ЕМ>Стандартного набора VS 2008 ей будет достаточно для работы с программами на C++, или скажет "не шмогла, дай мне хотя бы VS 2022"?
Странная поостановка вопроса. Если вы хотите компилировать программы на С++ с использованием VS 2008, то его и хватит. А если вы захотите, скажем, воспользоваться возможностями С++23, то не хватит.
Или если вы захотите собрать вашу программу под андроид.
ЕМ>Попросил ChatGPT создать файл DOCX, содержащий строку "проверка", скачал предложенный "proverka.docx", открыл — внутри запрошенная строка. Возможно, у него где-то есть готовый инструмент для создания DOCX, но с тем же успехом он мог бы создать его самостоятельно, если у него где-то есть хотя бы питон и среда для его исполнения (а они наверняка есть). Технических препятствий нет.
Ну так я же вам и объясняю, что у него там как раз есть питон и среда для его исполнения. Нажмите детализацию его "Thinking" да посмотрите, что именно он делает.
Он не порождает файл как поток бинарных токенов. Вместо этого он динамически порождает примерно вот такой скрипт и исполняет его в своей песочнице:
Этот способ заруливает все остальные фантазии по эффективности использования.
ЕМ>Не "должны", а "могут". В том смысле, что технически способны. Чуете разницу?
Чую. Ровно разница между фантазией и реальностью.
ЕМ>Это можно делать и в чат-режиме, просто менее удобно.
Помешают технические ограничения, продиктованные в первую очередь экономическими соображениями.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, TailWind, Вы писали:
TW>Нет творчество он точно не умеет TW>Я много раз просил его именно придумать новый алгоритм TW>Он всегда советует то что уже знает
Точно умеет.
И просто "придумай новый алгоритм" — неподходящая постановка задачи. Точно так же, как для живого человека.
А вот в диалоге он запросто придумывает достаточно новые решения задач.
Хоть они и сводятся в большинстве случаев к композиции уже известных решений, но и человеческие "изобретения" существуют не в вакууме.
Какой-нибудь паровой двигатель Уатта был изобретён не с нуля, а как доработка двигателя Ньюкомена.
И ДВС тоже был изобретён не с нуля, а как творческое развитие идей парового двигателя.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>А как она выглядит, эта песочница? Как сплошной промежуточный интерфейс, типа брандмауэра, между агентами и системой, в которой они работают? Или просто как панель управления ими?
Как обычная песочница. У каждого производителя — немного по-своему.
Вот например: https://code.claude.com/docs/ru/sandboxing
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Философ, Вы писали:
Ф>Я каждый день вижу, как ИИ пытается игнорировать отдельные ньюансы задачи — в программазме тоже самое.
Это означает, что вам нужно замыкать петлю обратной связи.
Например, взять какой-то инструмент моделирования схемотехники, и работать с ИИ-агентом в связке с этим инструментом.
То есть ИИ будет вам помогать вести "творческий поиск", а моделирующая среда валидировать результаты этого поиска.
Я, к сожалению, весьма далёк от этой области деятельности, поэтому конкретный инструмент не посоветую. Зато его (обычно) может посоветовать тот же ИИ-чат
Именно так мы доказывали корректность нашего алгоритма распределённого барьера: я спросил GPT, как верифицируются подобные вещи, он подсказал мне инструмент.
Я поставил инструмент (по инструкции, опять же, от ИИ), перешёл в агентский режим и предложил ему доказать нужную мне теорему.
Поначалу он пытался работать в режиме ментора (типа — он даёт мне советы по формулировкам, а я бегаю жаловаться на то, что TLA отказывается парсить предложенные фрагменты), но как только я заставил его самостоятельно запускать тулчейн — дело пошло. У него было очень много неудачных попыток и фальстартов (потому, что язык там нишевой, и для него в сети примеров на несколько порядков меньше, чем для топовых ЯП), но он таки пришёл к успеху и сгенерировал мне корректное доказательство, проходящее строгую верификацию.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, TailWind, Вы писали:
TW>>>Имя хэндла не имеет значения для алгоритма. Будет выбрано любое ЕМ>>Что значит "любое"? Случайное? TW>Ну да. Или наиболее вероятное. Или по смыслу подходящее
Согласно зарубежным источникам, у компании Samsung случилась утечка конфиденциальной информации из-за неправильного использования чат-бота ChatGPT. Три недели назад сотрудники южнокорейского технологического гиганта стали применять чат-бот, что привело к непреднамеренному разглашению важных данных.
Виной утечки стало то, что один из сотрудников Samsung внедрил код ChatGPT и попросил ИИ найти решение задачи, не учитывая, что это может привести к передаче информации в базу чат-бота. Другие работники также пытались оптимизировать код таким же способом, что усугубило ситуацию. Третья утечка произошла, когда сотрудник запросил у ИИ разработать протокол встречи.
То есть ChatGPT обучался на пользовательских данных, запомнил их, а потом выдал в исходном виде другим пользователям. И это не единственный подобный инцидент. Никто не исключает того, что "наиболее вероятное" решение окажется не статистически усреднённым, а вполне конкретной копией того, что было в обучающем датасете.
Здравствуйте, Философ, Вы писали:
Ф>я пытаю ИИ на тему безопасного использования стандартных устройств с инвертором. Сообщаю ему параметры меандра, говорю о выбросах на фронтах. Он спрашивает о характере нагрузки — я решаю проверить, а можно ли туда умножитель подключить. И он тут же игнорирует выбросы — считает di/dt для чистого меандра, притом вообще непонятно с каким фронтом. Этом притом, что до этого оно само писало о проблеме времени обратного восстановления диодов.
Вы упорно пытаетесь воспринимать LLM, как профильного специалиста, мотивированного изучать Ваши вопросы, когда она по сути похожа на сильно эрудированного неспециалиста, мотивированного давать как можно больше ответов "в тему".
Образованный и опытный специалист, составляя ответ на вопрос, автоматически проверяет его соответствие всем ограничениям, которые ему известны, и о которых он помнит в этот момент. Мощность LLM несравненно ниже, если она будет непрерывно перепроверять сама себя, то на мало-мальски неоднозначных вопросах будет часто впадать в ступор. Поэтому она обучена вываливать как можно больше слов и выражений, которые скорее всего сказал бы в такой ситуации реальный специалист. LLM "знает что-то практически обо всем", но жесткие ограничения в ней заложены только в отношении того, что определяется формально (например, она не будет называть напряжение "напряжанием". Все остальное она тупо подбирает по вероятности появления в гипотетической речи гипотетического специалиста — так же, как это делает эрудированный неспециалист, читавший много научпопа, слышавший много разговоров специалистов и т.п. Он знает, какие слова и выражения ассоциируются с какими предметами, областями и ситуациями, и может строить правдоподобные рассуждения, но у него нет образования и опыта, чтобы их верифицировать.
Поэтому точных ответов от LLM Вы сможете добиться только по хорошо известным и отработанным ситуациям — при условии, что они входили в обучающую выборку в достаточном количестве. В остальных случаях Вы получите только намеки, общие фразы, отсылки к литературе, предложения проверить самостоятельно, плюс те самые галлюцинации (то есть, словоблудие), когда модель "просто рассуждает на тему", по недомыслию оформляя это в языковой форме, в которой люди обычно подают установленные факты.
ЕМ>Поэтому точных ответов от LLM Вы сможете добиться только по хорошо известным и отработанным ситуациям — при условии, что они входили в обучающую выборку в достаточном количестве. В остальных случаях Вы получите только намеки, общие фразы, отсылки к литературе, предложения проверить самостоятельно, плюс те самые галлюцинации (то есть, словоблудие), когда модель "просто рассуждает на тему", по недомыслию оформляя это в языковой форме, в которой люди обычно подают установленные факты.
От себя — многое ИИ делает быстрее и даже лучше. Да где то надо направлять, подсказывать, проверять. Но это в большинстве случаев значительно быстрее чем писать самому.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Sinclair, Вы писали:
S>вы рассуждаете о чат-режиме, который предоставляется всем и бесплатно.
Я рассуждаю о разных чат-режимах — в том числе специализированных и платных. Но Вы почему-то упорно стремитесь свести возможные варианты только к тем, на которые Вам удобнее возражать.
S>от чат-режима логично ожидать именно того поведения, которое мы наблюдаем
Да с чего бы вдруг? Если Вы откроете в своей системе удаленный доступ к одному из Ваших локальных агентов, а я подключусь к нему терминалом — у него будет такое же поведение, как у веб-чатов типа GPT? Или это будет не чат? Если нет, то чем оно будет отличаться от чата?
S>благодаря одному универсальному навыку "генерация и исполнение питон-скриптов".
С чего Вы взяли, что набор его навыков ограничен питоном? Я понимаю, что в это верить наиболее удобно, но все же.
S>Но вы не сможете заставить нано-банана-2 сгенерировать вам код нелинейного аудиофильтра на языке С с использованием функций WinAPI.
Конкретно нано-банана-2, скорее всего, не смогу. Но Вы ж который раз давите на то, что любой чат якобы принципиально, технически неспособен на то, что делает локальный агент, а в качестве обоснования приводите примеры конкретных чатов, в которых это не реализовано чисто из соображений целесообразности. Если вдруг возникнет спрос — тут же появится и предложение. Оно, скорее всего, уже и есть, если поискать.
S>Поэтому если вы хотите получать детерминированный результат (например — код, в котором исправлена найденная ошибка и не внесены новые), то придётся проверять нечёткий результат через строгий инструмент. S>В чате у вас этого никогда не будет.
Вот это "никогда" меня каждый раз и умиляет. Даже интересно, уверены ли Вы в этом "никогда" настолько, чтоб заключить пари, тысяч на сто долларов.
S>Нет варианта, что чат "в уме" выполнит полноценную компиляцию какого-нибудь хромиума
Вариант исполнить скрипт на питоне есть, а выполнить компиляцию хромиума — нет? Почему вдруг?
S>и чат будет брать промпт, и выплёвывать готовый бинарь как "поток токенов", в том же стиле, как вы предлагали для .docx. Ну так это от того, что он плохо понимает проблематику этой предметной области.
Я вот тоже не вижу принципиальных технических ограничений на такой процесс. Просто сейчас эти модели требуют неадекватных ресурсов для этого, и оно попросту невыгодно. Но сейчас вполне себе выгодно гонять на четырехгигагерцовом процессоре код, которому полвека назад хватало простейшего микропроцессора. Откуда уверенность, что через 10-20-30 лет не станет выгодно делать бинарник, топологию и прочее непосредственно в модели?
ЕМ>>Оно умеет работать с любым набором инструментов любого ЯП?
S>Да, конечно. Потому что любой набор инструментов доступен просто через запуск процесса с подсовыванием ему stdin и чтение его stdout/stderr.
И в любом таком наборе всегда есть инструменты, которые она ожидает найти и применить?
S>Странная поостановка вопроса.
Она непосредственно вытекает из Вашей манеры подачи информации. О том, что я не спрашиваю напрямую, Вы каждый раз пишете чрезмерно подробно, но на прямые вопросы нередко отвечаете чрезмерно лаконично.
S>Если вы хотите компилировать программы на С++ с использованием VS 2008, то его и хватит.
Вы все время говорите о том, что агенту необходимо пользоваться локальными средствами для анализа кода. В стандартном наборе VS 2008 никаких спецутилит для анализа нет. Любой агент имеет все это у себя в комплекте? Или ожидает найти в локальной системе что-то еще, кроме компилятора, линкера и отладчика?
S>Он не порождает файл как поток бинарных токенов. Вместо этого он динамически порождает примерно вот такой скрипт и исполняет его в своей песочнице:
Если он в состоянии породить правильный скрипт, который в точности выполняет задачу, что технически мешает ему породить нужный поток токенов самостоятельно?
S>Этот способ заруливает все остальные фантазии по эффективности использования.
Именно что по эффективности, а не по возможности.
ЕМ>>Это можно делать и в чат-режиме, просто менее удобно.
S>Помешают технические ограничения, продиктованные в первую очередь экономическими соображениями.
Типа, если я выставлю предложение "плачу $200 за час пользования чатом тому, кто предоставит мне чат со всеми необходимыми инструментами внутри", то меня гарантированно пошлют, и никто не возьмется? А если предложу $500? $1000?