MM Harness [1/x]
Уже немало времени посвятил изучению мультимодальных харнесов. Если раньше, когда занимался моделями, я думал что беды существуют только на уровне модели, то увы, я прям очень сильно ошибался: сложность решений здесь растёт по экспоненте — и примерно по той же кривой растёт желание разработчиков (и иногда моё) забить на эту мультимодальность.
Ниже — список вопросов, на которые стоит ответить до того, как вы начнёте проектировать мультимодальную систему (ну или по пути, как пойдёт).
Давайте сейчас будем считать модели токенодробилками, а потому не будем углубляться в их строение, а рассмотрим систему вокруг. Допустим, мы делаем какого-нибудь агента, с которым ещё и можем общаться в формате диалога.
Интерфейс
Проблемы начинаются уже в тот момент, когда пользователь прикладывает картинку.
1. Загружаем оригинал или жмём? А если пользователь сидит на мобильном интернете и хочет экономить трафик?
2. Сохраняем метаданные EXIF или дропаем? Разные библиотеки по-разному обрабатывают, например, ориентацию изображения, поэтому об этом лучше подумать сразу.
3. Поддерживаем несколько изображений в одном сообщении? Если да, все остальные проблемы множатся.
Контекстный менеджер
Допустим, картинки всё-таки долетели до бэкенда и попали в контекстный менеджер.
1. Ресайзим ли мы их? До какого размера? Есть ли замеры влияния на качество? Чем больше изображение, тем больше токенов оно может занять — хотя тут всё зависит от препроцессинга конкретной модели.
2. Сколько картинок держим в контексте? Можно очень просто забить весь контекст изображениями!
3. Что делаем с картинками, которые в контекст уже не помещаются? Оставляем ли хотя бы описание или идентификатор, чтобы агент мог к ним вернуться?
Модель и инструменты
Дальше изображения уходят в модель. При этом модель может вызывать тулы, которые тоже возвращают изображения.
1. Как кладём эти картинки в контекст? Передаём модели сами изображения или только подпись "тул вернул такие-то картинки"? Другими словами, должна ли модель посмотреть на картинки, которые вернул условный поиск?
2. А в сами тулы мы какую картинку подаём? Ту самую пожатую и с ресайзом? Или какую-то другую?
3. А если передаём модели сами картинки, как поступаем, когда контекст уже ими забит?
И это только базовые вопросы доставки и управления контекстом, где правильного решения нет — есть только ваше, скорее всего компромиссное. И всё это добавляется к уже известным сложностям текстовых агентов.
Мы ещё не дошли до хранения, кеширования, безопасности и различных UI-фич.
Продолжение следует...
P.S. Календарь перевернули?)
Post #576
1.96K
- 🔥 9
- ❤ 8