Здравствуйте, 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?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Да с чего бы вдруг? Если Вы откроете в своей системе удаленный доступ к одному из Ваших локальных агентов, а я подключусь к нему терминалом — у него будет такое же поведение, как у веб-чатов типа GPT? Или это будет не чат? Если нет, то чем оно будет отличаться от чата?
Оно будет отличаться тем, что помимо чата в схеме участвует агент.
И, соответственно, этот агент будет иметь доступ до того, что я ему предоставил. Скажем, если вы попросите его написать программу на паскале, то он забуксует — потому, что локально паскаля у меня нет, и прав на его установку у песочницы агента тоже нет.
ЕМ>С чего Вы взяли, что набор его навыков ограничен питоном? Я понимаю, что в это верить наиболее удобно, но все же.
Он не ограничен питоном, там есть ещё десятка полтора специализированных навыков. Но этот список — фиксирован; и в него не входит умение компилировать код на языках программирования.
Питон — это способ получить чат-болталку, которая всё же может делать что-то полезное за пределами полуторых десятков фиксированных навыков.
ЕМ>Конкретно нано-банана-2, скорее всего, не смогу. Но Вы ж который раз давите на то, что любой чат якобы принципиально, технически неспособен на то, что делает локальный агент, а в качестве обоснования приводите примеры конкретных чатов, в которых это не реализовано чисто из соображений целесообразности.
Да, он принципиально и технически неспособен на то, на что способен локальный агент. Я не понимаю, почему это очевидное рассуждение вызывает у вас такой неожиданный ступор. ЕМ>Если вдруг возникнет спрос — тут же появится и предложение. Оно, скорее всего, уже и есть, если поискать.
Да при чём тут "спрос". Вам нужно напрячься и осознать, что "чат" — это просто функция над потоком токенов, порождающая поток токенов. Без агентов он почти что бесполезен. Хоть как вы его уговаривайте — он не сможет вам породить токенами бинарник. И на самом деле он даже исходный код за пределами крошечных примеров породить не может. Ни при каком спросе. "Не та система". Успешность в порождении картинок в первую очередь связана со способностью естественного интеллекта игнорировать незначительные ошибки.
Все впечатляющие возможности в "точных науках" получены благодаря агентному походу, когда LLM взаимодействует не с человеком-читателем, а с обычной позиксовой программой.
ЕМ>Вот это "никогда" меня каждый раз и умиляет. Даже интересно, уверены ли Вы в этом "никогда" настолько, чтоб заключить пари, тысяч на сто долларов.
Конечно уверен. Вы совершенно напрасно наделяете LLM какими-то магическими свойствами. У неё даже неонки унутре нет.
Вы почитайте отзывы хотя бы на этом форуме. Все те, кто хают ЛЛМ со словами "да они меня нескоро заменят" — это те, кто пробовал их на уровне чатов. И там, действительно, сплошное разочарование. Сначала оно выдаёт какой-нибудь правдоподобный пример, и прямо эйфория наступает: надо же, эта штука поняла, о чём её просили, и решила задачу! У меня такое было, когда я попросил изобразить одну заковыристую хрень на системе типов Typescript. Я далеко не сразу даже понял, как это работает — а уж придумать самостоятельно у меня бы пару недель заняло. А тут — рраз! И в дамки.
Но потом я попросил доработать, потом ещё... И уже после второго шага код работать перестал. В итоге я начал бегать между студией и чатом, копируя туда-сюда исходники и сообщения об ошибках.
Потом оказалось, что чат регулярно откатывает сделанные мной вручную доработки.
И в итоге прогресс замедлился до нуля: дальнейшие улучшения ломали уже полученный результат, и так по кругу.
Вот это — реалистичный сценарий. И ровно в него будет упираться примерно любая LLM без встроенного компилятора. Ну ок, возьмём мы модельку в десять раз дороже нынешних топов.
Она будет сваливаться в галлюцинации не на 150 строках, а на 300, и не на второй итерации, а на пятой.
Принципиально это ничего не изменит: работоспособные программы требуют педантизма, а не вольного порождения чего-то паскале- или си-подобного.
ЕМ>Вариант исполнить скрипт на питоне есть, а выполнить компиляцию хромиума — нет? Почему вдруг?
Потому что питон (в конкретной версии) в него встроен, а всех версий всех компиляторов для всех платформ — нет, и встроить их все одновременно невозможно.
Вы точно имеете отношение к разработке софта?
ЕМ>Я вот тоже не вижу принципиальных технических ограничений на такой процесс. Просто сейчас эти модели требуют неадекватных ресурсов для этого, и оно попросту невыгодно. Но сейчас вполне себе выгодно гонять на четырехгигагерцовом процессоре код, которому полвека назад хватало простейшего микропроцессора. Откуда уверенность, что через 10-20-30 лет не станет выгодно делать бинарник, топологию и прочее непосредственно в модели?
Оттуда, что модель порождает приблизительное решение. А вам нужно точное. Процессор не будет исполнять код, в котором время от времени встречаются несуществующие инструкции.
И вам будет крайне неудобно работать с "ассистентом", который при малом изменении промпта получает на 90% обновлённый бинарник.
ЕМ>И в любом таком наборе всегда есть инструменты, которые она ожидает найти и применить?
Я не понимаю ваш вопрос. Она ничего не "ожидает". У неё есть достаточно широкая, но неглубокая "эрудиция". Эта эрудиция позволяет нейронке понимать, что грепать текст надо через rg или через Get-Content, что компиляция плюсов на линухе делается через gcc, а запуск скриптов в JS-проекте — через pnpm run.
При этом, естественно, у неё нет детальной памяти обо всех ключах всех версий всех этих инструментов. Поэтому если спрашивать в чате, то она запросто вам нагаллюцинирует сорок бочек арестантов.
А вот если заставить агента самостоятельно выполнять нагаллюцинированные команды, то он быстро получит unknown flag, и его ограниченный интеллект вполне разберётся с тем, что именно нужно изменить на следующей итерации.
В итоге это всё выглядит как вполне разумная деятельность — формулируем гипотезы, строим план проверки, проверяем, корректируем. И это в любом случае на порядок эффективнее, чем наивный подход.
Именно поэтому я и полагаю, что никто не будет делать так, как вы предлагаете. Если у нас будет нейронка в тыщу раз умнее нынешней, то использование агентов по-прежнему будет давать ей x20 boost.
ЕМ>Вы все время говорите о том, что агенту необходимо пользоваться локальными средствами для анализа кода. В стандартном наборе VS 2008 никаких спецутилит для анализа нет. Любой агент имеет все это у себя в комплекте? Или ожидает найти в локальной системе что-то еще, кроме компилятора, линкера и отладчика?
Ну, возможно в поставку агента что-то и включено. Но, скажем, Get-Content есть в любой винде уже много-много лет, и все LLM про него знают. На линуксе всегда есть ls, cat, grep, tail.
ЕМ>Если он в состоянии породить правильный скрипт, который в точности выполняет задачу, что технически мешает ему породить нужный поток токенов самостоятельно?
А с чего вы взяли, что он в состоянии породить правильный скрипт? Для десятка строчек — да, угадывает (в основном) с первого раза.
Шаг вправо-влево — и сгенерированный им скрипт становится неработоспособным. Тогда он корректирует скрипт, и делает несколько попыток. Не получилось после двух-трёх — "извините, что-то я не смог".
Принципиальное отличие от порождения токенами сразу ворда — возможность немедленно проверить хотя бы поверхностную корректность. Для токенов нет способа узнать, откроется ли этот документ хоть чем-нибудь, пока вы его не скачаете и не попробуете открыть.
ЕМ>Типа, если я выставлю предложение "плачу $200 за час пользования чатом тому, кто предоставит мне чат со всеми необходимыми инструментами внутри", то меня гарантированно пошлют, и никто не возьмется?
Что такое "все необходимые инструменты"?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Оно будет отличаться тем, что помимо чата в схеме участвует агент.
Что значит "помимо чата"? Как Вы не поймете, что не бывает LLM-чатов без агентов? У каждого веб-чата их полно — для поиска в интернете, для разбора файлов, загруженных в чат, для исполнения программ на основных языках и т.п. А если под "агентом вообще" Вы имеете в виду непременно локального агента, то сперва обоснуйте, чем локальный агент будет отличаться от удаленного, имеющего доступ к тем же инструментам и тому же набору данных.
S>этот агент будет иметь доступ до того, что я ему предоставил.
А удаленный агент чат-бота будет иметь доступ до того, что ему предоставил (загрузил в чат) я.
S>если вы попросите его написать программу на паскале, то он забуксует — потому, что локально паскаля у меня нет
А что технически мешает дать любому агенту доступ куда угодно через сеть: Вашему локальному — к моей системе, нужным локальным агентам веб-чат-бота — к любой системе, где есть паскаль?
Если б Вы говорили "обычно так не принято", "в большинстве популярных систем это не делается" и т.п., я б не возражал. Но вот эти пафосные "невозможно", "никогда", "не получится" напрочь ломают весь Ваш умный вид.
S>Питон — это способ получить чат-болталку, которая всё же может делать что-то полезное за пределами полуторых десятков фиксированных навыков.
И что же мешает прикрутить рядом с питоном еще несколько компиляторов с популярных языков?
S>Да, он принципиально и технически неспособен на то, на что способен локальный агент. Я не понимаю, почему это очевидное рассуждение вызывает у вас такой неожиданный ступор.
Оно вызывает не ступор, а тягостное недоумение от того, что вроде бы неглупый человек упорно, последовательно и долго несет очевидную (для меня) чушь. Это уже напоминает разговор с ученым, который вроде бы умеет логически рассуждать, но является глубоко верующим человеком, и на любой намек на сомнение в существовании бога у него полностью отключается вся логика.
S>Вам нужно напрячься и осознать, что "чат" — это просто функция над потоком токенов, порождающая поток токенов. Без агентов он почти что бесполезен.
Мне не нужно напрягаться — я это прекрасно осознаю. А вот Вы почему-то упорно не желаете осознать, что система "сервер LLM — сервер веб-чата — набор локальных агентов веб-чата" "топологически" эквивалентна системе "сервер LLM — Ваш локальный агент — Ваш набор локальных инструментов", как кружка топологически эквивалентна тору. Такое впечатление, что Вы видите это взаимодействие исключительно изнутри своей систему, не удосуживаясь посмотреть на нее со стороны.
S>Хоть как вы его уговаривайте — он не сможет вам породить токенами бинарник.
Вот после такого не говорите, пожалуйста, что "понимаете, как оно работает". Ибо, коли оно в состоянии перевести идею/алгоритм в процедурный программный код, то бинарник может быть получен из этого кода простыми табличными подстановками, которые оно тоже умеет делать. Для программы на ассемблере эти подстановки тривиальны, для программ на ЯВУ более сложны, но лишь количественно, а не качественно.
И вообще, старайтесь заменять выражения вроде "не сможет" на "не посчитает нужным", тогда Ваши утверждения не будут выглядеть абсурдно, и претензий не будет.
S>он даже исходный код за пределами крошечных примеров породить не может.
А это зависит от мощности модели. Никаких принципиальных ограничений не вижу.
S>Все впечатляющие возможности в "точных науках" получены благодаря агентному походу, когда LLM взаимодействует не с человеком-читателем, а с обычной позиксовой программой.
Угу, а всё, что делается алгоритмически, может быть получено и вероятностными/статистическими методами, при соответствующем подборе коэффициентов. Позиксовая программа в эту схему включается лишь для того, чтобы упростить обработку и стабилизировать ее. Если не жалко ресурсов (потребность в которых растет экспоненциально), то всю обработку можно передать модели.
S>Вы совершенно напрасно наделяете LLM какими-то магическими свойствами.
Да где ж Вы увидели такое наделение? Я прекрасно понимаю, что это просто большая вероятностная машина со множеством обратных связей. Но примерно так же работает и человеческий мозг, а в нем нет "позиксовой программы". В мозгу разные системы сотрудничают, проверяют друг друга, стимулируют, подавляют — то есть, делают примерно то же самое, что и LLM со своим набором агентов. Просто на данном этапе выгоднее выносить чисто алгоритмические вычисления на обычный последовательный процессор, как человеку выгоднее вычислять на калькуляторе, а не в уме.
S>Вы почитайте отзывы хотя бы на этом форуме.
Я и отзывы читал, и собственный опыт имею. Но покажите мне, где я утверждал, что LLM якобы "все делает точно"? Вы этого не найдете. А вот то, что точность и надежность ее работы можно повышать бесконечно, для меня очевидно — как очевидно и то, что сейчас это чересчур затратно, поэтому пока "пишем на простой".
S>кто хают ЛЛМ со словами "да они меня нескоро заменят" — это те, кто пробовал их на уровне чатов.
Они и на уровне агентов сейчас не заменят тех, кто знает больше них. Пока еще хватает областей знания, не включенных в обучающие выборки — как в этих сферах могли бы помочь агенты? Вот когда и их оцифруют и подтянут под ИИ, тогда действительно "мыслительных" ниш почти не останется.
S>Вот это — реалистичный сценарий. И ровно в него будет упираться примерно любая LLM без встроенного компилятора. Ну ок, возьмём мы модельку в десять раз дороже нынешних топов.
Почему только в десять, а не в тысячу? Почему не на квантовом компьютере?
S>Она будет сваливаться в галлюцинации не на 150 строках, а на 300, и не на второй итерации, а на пятой.
Коли с повышением мощности модели и объема контекста растет объем правильно генерируемого кода — тут бы и сделать вывод, что проблема чисто количественная, а не качественная.
Тут прямая аналогия с RSA-шифрованием: те, кто "слышал звон", смело утверждают "расшифровать невозможно", а те, кто понимает, говорят "невозможно за разумное время доступными техническими средствами".
S>питон (в конкретной версии) в него встроен, а всех версий всех компиляторов для всех платформ — нет, и встроить их все одновременно невозможно.
А питон, стало быть, един и неделим? Если скрипт, правильно работающий в системе веб-чата, неправильно работает у меня, то кто виноват — чат, я или питон?
И почему опять "невозможно" встроить все версии всех компиляторов для всех платформ? Их количество конечно? Если да, то их можно занумеровать, встроить первый, затем встроить второй, далее повторять до исчерпания списка.
Если же Вы имели в виду "нецелесообразно", "невыгодно" или что-то подобное, то будьте, пожалуйста, внимательнее к речи.
S>Вы точно имеете отношение к разработке софта?
Да, балуюсь по выходным.
S>Оттуда, что модель порождает приблизительное решение.
А любая реальная программа, внезапно, является именно приблизительным решением.
S>А вам нужно точное.
Нужно-то оно нужно, но сколько ж Вы видели точных? "Точное решение" — это программа, которая, работая бесконечно долго в любых возможных условиях, допустимых ее спецификацией, не совершит ни одной ошибки, если их не совершит ее окружение (аппаратура, ОС, программы-компаньоны и т.п.). Такая программа по определению не нуждается в классическом дисклеймере "as is". Сколько сможете перечислить программ, к которым не прилагается дисклеймера не потому, что разработчики банально про него забыли, а потому, что полностью уверены в ней?
S>Она ничего не "ожидает". У неё есть достаточно широкая, но неглубокая "эрудиция". Эта эрудиция позволяет нейронке понимать, что грепать текст надо через rg или через Get-Content
Вот я именно об этом. Ибо ни одного "родного" грепа в винде искаропки нет, да и Get-Content появился только в висте, а вдруг у меня XP? Это и есть та самая среда, которую оно "ожидает" обнаружить вокруг себя.
S>В итоге это всё выглядит как вполне разумная деятельность — формулируем гипотезы, строим план проверки, проверяем, корректируем.
Это я давно понял, можете не повторяться.
S>поэтому я и полагаю, что никто не будет делать так, как вы предлагаете.
Ну слава богу, впервые появилось "я полагаю". Можно выдыхать.
S>Если у нас будет нейронка в тыщу раз умнее нынешней, то использование агентов по-прежнему будет давать ей x20 boost.
Вот тут бы и догадаться, что технически нейронке ничто не мешает создавать себе агентов самостоятельно. Но это чревато непредсказуемым развитием ее способностей. Возможно, их искусственно ограничивают прежде всего по этой причине.
S>с чего вы взяли, что он в состоянии породить правильный скрипт? Для десятка строчек — да, угадывает (в основном) с первого раза.
Если скрипт из десятка строчек удовлетворяет понятию "правильный скрипт", то в чем Вы видите противоречие?
S>Шаг вправо-влево — и сгенерированный им скрипт становится неработоспособным.
А я где-то утверждал, что он всегда способен непосредственно породить скрипт любого размера и любой сложности?
S>Принципиальное отличие от порождения токенами сразу ворда — возможность немедленно проверить хотя бы поверхностную корректность. Для токенов нет способа узнать, откроется ли этот документ хоть чем-нибудь, пока вы его не скачаете и не попробуете открыть.
Здрасьте. Это ж чисто формальная структура, подчиняющаяся известным формальным правилам. Если LLM не будет экономить ресурсы сервера, что может ей помешать сколь угодно долго соотносить порожденную структуру с набором правил?
ЕМ>>если я выставлю предложение "плачу $200 за час пользования чатом тому, кто предоставит мне чат со всеми необходимыми инструментами внутри", то меня гарантированно пошлют, и никто не возьмется?
S>Что такое "все необходимые инструменты"?
Средства синтаксического/статистического анализа, компиляторы, линкеры, отладчики, системы виртуальных машин, аппаратные интерфейсы и вообще все, что может потребоваться для работы.