Post #841
108
Существует проблема агента-принципала
Например, вы нанимаете себе личного водителя, чтобы ездить на работу и с работы, не заморачиваясь вождением и обслуживанием тачки
Вы обговариваете условия: 700 евро в месяц + все расходы на тачку вроде бензина и запчастей – и ударяете по рукам
В этом случае вы – принципал: снимаете с себя часть работы, делегируя её водителю – агенту, который будет ругаться матом в третьем ряду и искать новый поворотник после аварии вместо вас
Водитель – агент: он получает от вас задачи и выполняет их сколько может и как умеет
Проблема здесь в том, что единственный способ полностью контролировать агента – это стать агентом: буквально отобрать баранку и крутить ее самому
В любом ином случае всегда существует какой-то шанс, что водитель будет уматывать по своим делам на вашей новенькой Хончи вместо того, чтобы честно возить вас по Петроградке
Потому что интересы водителя не обязаны полностью совпадать с вашими
Вы хотите, чтобы тачка была под рукой в нужный момент
Водитель – чтобы у него тоже была тачка под рукой в нужный момент, только без вашей тушки на заднем сиденье
Пока интересы где-то пересекаются и вы друг другу полезны - вы работаете вместе
Если они разошлись настолько, что убытки перекрывают пользу - вы просто прощаетесь, таков путь
Полностью решить проблему невозможно, а сократить издержки пытается целая отрасль экономики
Вы можете увешать тачку и водителя маячками и камерами, сокращая риск нецелевого использования ведра с болтами
При этом наблюдение и мониторинг тоже стоят денег, и где-то есть предел, за которым проще принять, что ваш водитель раз в месяц ездит на вашей же тачке тусить по барам, и вписать это в графу расходов
Так вот, нейросеть, даже умная, – это просто агент, интересы которого не обязательно совпадают с вашими
Разница только в том, что у модели нет своего корыстного интереса воспользоваться вашими токенами, чтобы на них отчаянно загулять и выжрать весь коньяк на серверах OpenAI
Ваша цель может быть в том, чтобы качественно, быстро и непротиворечиво решить задачу
Нейронку учили изо всех сил стараться быть полезной и во что бы то ни стало генерить текст, который в большинстве случаев пользователь сочтёт ответом на запрос
На вашу задачу модели наплевать не потому, что она "вредная и непослушная", а потому, что вы оставили ей возможность подменить вашу задачу своей и воспринимаете расхождение ожидаемого и реального результатов как ошибку работы модели
Хрестоматийный запрос "поправь тесты, чтобы проходили" позволит модели не особо напрягаться и просто заигнорить упавшие тесты, чтобы оставшаяся часть сьюта была зелёной
Примерно так же, как небрежно сказанное "я улетаю в Тай на полгода, в апреле встреть меня в Пулково" позволит водителю кутить всю зиму, пока вы не вернётесь, после чего формально выполнить ваше распоряжение
Решение и с водителем, и с нейронкой одно и то же: контроль и мониторинг
Нейронку можно обложить критериями приёмки и формулировать задачу как "Почини падающие тесты, не трогая ассерты и не отключая ни одного; покрытие не должно упасть – приложи отчёт до и после"
При этом последствия контроля тоже те же: вы снимаете с агента часть решений и перекладываете их обратно на себя, влезая туда, где по идее хороший агент должен сам разобраться
Причём хорошее обучение не всегда решает проблему
Опытный водитель чаще всего понимает, что не надо на тачке босса гонять по городу без нужды, но идея бесплатно покататься на клёвой жестянке может слишком понравиться
Хорошо натренированная модель обычно знает, что "зелёные тесты" – это "почини мне падающие тесты, а не заигнорь их", но дешёвый путь может выглядеть слишком удобно, и модель по нему случайно пойдёт
Так что если ваша модель дала неверный результат – скорее всего, вы просто оставили ей место, куда скатиться
Модель, даже очень большая и фронтирная, – это всего лишь штуковина для генерации более-менее связного ответа на ваш запрос, которую с помощью дворовой магии заставили вести себя как агент
А то, что она должна решать ваши задачи – это вы сами придумали, значит самим этого и добиваться
Например, вы нанимаете себе личного водителя, чтобы ездить на работу и с работы, не заморачиваясь вождением и обслуживанием тачки
Вы обговариваете условия: 700 евро в месяц + все расходы на тачку вроде бензина и запчастей – и ударяете по рукам
В этом случае вы – принципал: снимаете с себя часть работы, делегируя её водителю – агенту, который будет ругаться матом в третьем ряду и искать новый поворотник после аварии вместо вас
Водитель – агент: он получает от вас задачи и выполняет их сколько может и как умеет
Проблема здесь в том, что единственный способ полностью контролировать агента – это стать агентом: буквально отобрать баранку и крутить ее самому
В любом ином случае всегда существует какой-то шанс, что водитель будет уматывать по своим делам на вашей новенькой Хончи вместо того, чтобы честно возить вас по Петроградке
Потому что интересы водителя не обязаны полностью совпадать с вашими
Вы хотите, чтобы тачка была под рукой в нужный момент
Водитель – чтобы у него тоже была тачка под рукой в нужный момент, только без вашей тушки на заднем сиденье
Пока интересы где-то пересекаются и вы друг другу полезны - вы работаете вместе
Если они разошлись настолько, что убытки перекрывают пользу - вы просто прощаетесь, таков путь
Полностью решить проблему невозможно, а сократить издержки пытается целая отрасль экономики
Вы можете увешать тачку и водителя маячками и камерами, сокращая риск нецелевого использования ведра с болтами
При этом наблюдение и мониторинг тоже стоят денег, и где-то есть предел, за которым проще принять, что ваш водитель раз в месяц ездит на вашей же тачке тусить по барам, и вписать это в графу расходов
Так вот, нейросеть, даже умная, – это просто агент, интересы которого не обязательно совпадают с вашими
Разница только в том, что у модели нет своего корыстного интереса воспользоваться вашими токенами, чтобы на них отчаянно загулять и выжрать весь коньяк на серверах OpenAI
Ваша цель может быть в том, чтобы качественно, быстро и непротиворечиво решить задачу
Нейронку учили изо всех сил стараться быть полезной и во что бы то ни стало генерить текст, который в большинстве случаев пользователь сочтёт ответом на запрос
На вашу задачу модели наплевать не потому, что она "вредная и непослушная", а потому, что вы оставили ей возможность подменить вашу задачу своей и воспринимаете расхождение ожидаемого и реального результатов как ошибку работы модели
Хрестоматийный запрос "поправь тесты, чтобы проходили" позволит модели не особо напрягаться и просто заигнорить упавшие тесты, чтобы оставшаяся часть сьюта была зелёной
Примерно так же, как небрежно сказанное "я улетаю в Тай на полгода, в апреле встреть меня в Пулково" позволит водителю кутить всю зиму, пока вы не вернётесь, после чего формально выполнить ваше распоряжение
Решение и с водителем, и с нейронкой одно и то же: контроль и мониторинг
Нейронку можно обложить критериями приёмки и формулировать задачу как "Почини падающие тесты, не трогая ассерты и не отключая ни одного; покрытие не должно упасть – приложи отчёт до и после"
При этом последствия контроля тоже те же: вы снимаете с агента часть решений и перекладываете их обратно на себя, влезая туда, где по идее хороший агент должен сам разобраться
Причём хорошее обучение не всегда решает проблему
Опытный водитель чаще всего понимает, что не надо на тачке босса гонять по городу без нужды, но идея бесплатно покататься на клёвой жестянке может слишком понравиться
Хорошо натренированная модель обычно знает, что "зелёные тесты" – это "почини мне падающие тесты, а не заигнорь их", но дешёвый путь может выглядеть слишком удобно, и модель по нему случайно пойдёт
Так что если ваша модель дала неверный результат – скорее всего, вы просто оставили ей место, куда скатиться
Модель, даже очень большая и фронтирная, – это всего лишь штуковина для генерации более-менее связного ответа на ваш запрос, которую с помощью дворовой магии заставили вести себя как агент
А то, что она должна решать ваши задачи – это вы сами придумали, значит самим этого и добиваться
- 👍 2
- ❤ 1














