Кто прикручивает "ручки" нейросетям и почему "примазывается" этот Вася?
В эфире рубрика "Скандалы, интриги, расследования"!
И сегодня я подробно отвечу на вопросы, заданные в комментарии на просторах vc. Надеюсь, что текст будет полезен для общего понимания технологии ИИ и того, как на её основе разрабатываются продукты.
1. Вопрос доверия.
Эта часть поста посвящена людям, которые стремятся к взаимовыгодному сотрудничеству, доверию и развитию, тем же кто склонен к паранойе могу сказать только одно - я тоже таким был, всё когда-то меняется.
Это может быть не очевидно с первого взгляда, но в сфере программных продуктов взаимодействие с любыми участниками (будь то крупные компании или разработчики ботов и расширений для браузеров) всегда строится на доверии.
Проверка редко возможна и требует высоких компетенций.
Таким образом, я готов предложить максимум из того, что в моих силах:
∘ следовать обозначенной Политике конфиденциальности;
∘ делать всё для безопасного использования ваших данных, например: я применяю официальные библиотеки от Google и передаю данные по шифрованному протоколу https;
∘ предлагать доступный и работающий продукт.
Помимо этого, в отличие от других решений, Жук не требует доступа к вашему Google-аккаунту, только к конкретной таблице. В любой момент этот доступ можно отключить, а данные таблиц удалить из бота.
2. Табличный жук и Gemini, что именно разработано мной?
На этот вопрос ответить непросто, по той причине, что он требует от читателя наличия определенных знаний.
Что такое ИИ-агент?
Это такая программа, которая способна к самостоятельному планированию и выполнению действий. Её отличает наличие инструментов для выполнения действий, некоторая автономность, а также специальные инструкции о том, как она должна работать и выполнять свои задачи.
Что такое Gemini?
Это большая языковая модель (LLM), которая способна понимать язык, генерировать осмысленный текст, делать определенные выводы из имеющейся информации. "Чат с Gemini", которым, возможно, вы пользовались, - это не сама LLM Gemini, а система на её основе (об этом ниже).
Чем LLM отличается от ИИ-агента?
Тем, что LLM не способна действовать, у неё отсутствуют для этого возможности (инструменты). Она может сгенерировать текст про то, что она что-то делает, но это не будет действиями. Также сама по себе LLM не хранит никакой истории вашего общения, она получает текст на вход и выдает текст на выходе, об истории сообщений должен позаботиться кто-то "снаружи".
Что такое чат с Gemini (в браузере и приложении)?
Когда вы заходите в чат с ИИ (будь то Gemini или ChatGpt), вы имеете дело уже не с чистой LLM, а можно сказать с ИИ-агентом, т.к. кто-то уже позаботился о том, чтобы LLM могла использовать такие инструменты, как поиск в интернете, могла выгрузить данные в виде файла и многое другое, в том числе "помнила", что вы ей написали и что она ответила.
Что такое инструменты?
Это, во-первых, специальные инструкции для LLM о том, что она может делать и какую команду она должна для этого вызвать, а во-вторых, и обязательно, это реальный код, который эту команду исполняет.
Приведу пример.
Например, у LLM есть инструкция о том, что она может узнать температуру воздуха в указанном городе. Пользователь пишет: «Сколько сейчас градусов в Москве».
LLM:
- не идёт в интернет!
- не знает температуру!
- она лишь решает: «нужно вызвать инструмент "узнатьТемпературу" с аргументом "Москва"»
Дальше:
- обрабатывающий сервер принимает эту команду
- обращается в сервис погоды
- получает, например, 0 °C
- и передаёт результат обратно модели
И только после этого LLM генерирует текст: "Любимый пользователь, в Москве сейчас 0 градусов по Цельсию! Хотите узнать что-нибудь еще?".
Что в ИИ-агенте Табличный Жук разработано мной?
Коротко: почти всё, кроме самой LLM.
Все инструменты и функции:
∘ для работы в таблицах
∘ для сохранения и загрузки листов
∘ для работы в Telegram
∘ функции приема и выгрузки файлов
∘ функции управления историей сообщений
∘ и другие функции - написаны мной и выполняются на отдельном сервере, арендованном под Жука.
Как я уже говорил, LLM не обладает памятью в привычном смысле.
Поэтому история диалога — это забота разработчика: сообщения пользователя, данные таблиц, предыдущие ответы модели, вызовы инструментов и результаты их выполнения собираются и передаются модели каждый раз заново.
Иными словами, «память» Табличного Жука — это не свойство Gemini, а часть системы, которую я реализую вокруг неё.
Помимо технической сферы, есть еще то что называется системными инструкциями. То, что превращает LLM с инструментами в ИИ-агента, ориентирующегося в какой-либо области. Это инструкции на естественном языке (я пишу их на русском), которые в общем виде объясняют самой LLM:
- как и что она должна делать;
- как поступать в определенных ситуациях;
- для чего она предназначена и какие есть ограничения;
- как вести себя при ошибках...
В отличие от промпта под одну задачу, системные инструкции - это универсальный промпт под все задачи и всех пользователей, правильное составление которого требует определенного опыта, а также времени на неизбежное исправление и улучшение.
3. За забором множество решений, которые работают в Google Таблицах, зачем мне этот Жук?
Отвечу на этот вопрос кратко и, возможно, освещу тему позже, тем более что даже проводил тесты некоторых решений.
Кратко - это не так, таких решений, на момент написания поста, немного. Часть из них - не специализированны на таблицах, часть - низкого качества, к другой части есть вопросы (избыток текстовой информации о любом действии, избыточное потребление ресурсов, скорость работы), однако, в целом, есть работоспособные варианты.
Отдельно стоит боковая панель Gemini, которая по сути является ИИ-агентом для работы в Google Sheets от Google.
UPD: сравнение Жука и боковой панели
Жук не имеет к ней отношения и работает с таблицами через стандартные библиотеки Google. При этом, умеет всё то, что умеет боковая панель и даже больше (прямая работа с диаграммами, управление доступом, отложенные задачи и напоминания, и др.).
Подробнее на канале Жука: Табличный Жук