AI

Как ограничение объёма знаний ИИ может привести к сбоям в коде

Однажды я занимался обновлением TYPO3 до версии 14. У меня есть собственные навыки работы с ИИ, которые помогают быстрее выполнять обновления. Каждый сайт индивидуален, поэтому эти навыки могут быть очень полезны, но это не универсальное решение. Во многих случаях мне приходится предоставлять ИИ дополнительную информацию, а также просить его останавливаться на определенных этапах, чтобы я мог проверить, что он сделал. У меня есть опыт взаимодействия с ИИ, и я знаю, как давать ему подсказки для эффективной работы. При обновлении с версии 11 до версии 14 всё работало довольно хорошо. С 11 до 13 всё шло нормально, а вот с 14 начались проблемы. Я посмотрел, что он сделал, и вдруг заметил, что здесь что-то не так. Он писал код, который больше не был совместим с TYPO3 14. Большинство изменений были совместимы, поскольку очень напоминали версию 13, но некоторые — нет. Он пытался использовать несуществующие API. Я удивлённо поднял бровь, но решил подождать.

ИИ закончил и сообщил мне, что всё готово: он протестировал фронтенд, и тот работал. «Значит, обновление прошло успешно», — сказал ИИ.

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

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

Почему возникла эта проблема?

В области искусственного интеллекта существует термин «предел знаний».

Когда создатели обучают модель, ей предоставляется большой объём данных, на которых она и обучается. Однако по окончании обучения это всё, что знает модель. То есть, если модель знает о TYPO3 версий 11, 12 и 13, то на этом всё. Она не знает о версии 14. Она не знает, что некоторые API были удалены или изменены. Она может написать для вас код для версий 11, 12 или 13, не обращаясь к документации. Однако если вы попросите её написать код для версии 14, в большинстве случаев она без предупреждения сделает это, но будет использовать API из версии 13. Если эти API уже были объявлены устаревшими в версии 13 и их больше нет в версии 14, модель всё равно будет их использовать. Она не знает, что их больше нет.

Что нужно делать в таких случаях? Нужно дать ему указатели, и в данном случае это была моя ошибка: я не указал их там. После этого случая я усовершенствовал свои навыки по обновлению ИИ и добавил указатели в информацию. Я попросил ИИ проанализировать ситуацию и определить, помогло бы наличие этих указателей ранее. ИИ ответил, что да, это помогло бы и ошибки не возникло бы.

Практические выводы

Если вы работаете с навыками, учитывайте ограничения по дате обновления знаний. Обязательно указывайте ссылки на обновленные версии вашей библиотеки или названия новых моделей ИИ, если вы используете их в своём проекте, поскольку ИИ даже не будет знать о том, что после его обучения были выпущены новые модели. Вы можете указать: «Используй модель X1000», но система может незаметно заменить её на «X900», поскольку посчитает, что пользователь допустил ошибку и «X1000» не существует. Укажите URL-адрес страницы модели.

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

Почему в этом блоге нет комментариев? Вот почему.