TL;DR
CaRGo-T — техника, которая заставляет модель сначала построить причинно-следственный граф (в виде псевдокода) для картинки, и только потом отвечать на вопрос. Модель перечисляет все сущности на изображении — людей, объекты, абстрактные понятия — их свойства, а затем явно прописывает: что из чего следует. Финальный ответ она строит уже на основе этой карты, а не "с потолка".
Модели плохо объясняют сложные картинки — мемы, сатиру, метафоры. Просят "почему это смешно?" — и получают поверхностное описание того, что видно на картинке, без понимания связей между элементами. Обычный Chain-of-Thought тут не спасает: модель начинает рассуждать общими фразами, а не разбирает конкретные причины и следствия — что из-за чего произошло, кто на что реагирует.
CaRGo-T решает это, разбивая задачу на два явных шага в одном запросе: сначала модель строит структурированную карту — кто/что есть на картинке → какие у них свойства → что вызывает что, потом опираясь на эту карту отвечает на вопрос. Явная структура не даёт модели соскользнуть в общие рассуждения.
Схема метода
ШАГ 1: Построй причинно-следственный граф → код/псевдокод:
- Сущности (люди, объекты, абстрактные понятия, события)
- Свойства каждой сущности
- Пары "причина → следствие" между сущностями
ШАГ 2: На основе графа дай финальный ответ на вопрос → текст
(Оба шага — в одном запросе, один ответ модели)
Пример применения
Задача: Ты ведёшь маркетинговый канал и хочешь разобрать, почему рекламный креатив конкурента "заходит" — например, реклама с мемом или ироничный билборд, который все репостят.
Промпт:
Посмотри на это изображение [прикрепи картинку].
Сначала построй причинно-следственный граф в виде псевдокода:
- Entities: перечисли всех людей, объекты, абстрактные понятия и события на изображении
- Properties: для каждой сущности укажи ключевые свойства
- CauseEffect: список пар "причина → следствие" между сущностями
Затем, основываясь на этом графе, объясни: почему это изображение вызывает такую реакцию у аудитории? Что именно делает его смешным/цепляющим?
Результат: Модель сначала выдаст структурированный список — сущности с их свойствами, потом цепочку причин и следствий (например: "высокие каблуки → неудобство → контраст с модным образом → комический эффект"), и только после этого — развёрнутое объяснение, почему это работает. Объяснение будет опираться на конкретные связи из графа, а не на общие фразы вроде "потому что тут ирония".
Почему это работает
Модель хорошо генерирует структурированный текст по чёткому шаблону — код, списки, таблицы. Но когда её просят просто "порассуждай", она часто выдаёт правдоподобно звучащие, но пустые рассуждения — потому что свободная форма не заставляет её зафиксировать конкретные связи.
CaRGo-T использует эту сильную сторону: структура графа принуждает модель явно проговорить, что из чего следует, прежде чем формулировать вывод. Это похоже на то, как проще спорить с человеком, который сначала расписал аргумент по пунктам, чем с тем, кто говорит общими словами.
Рычаги управления: - Убери "в виде псевдокода" → граф будет более человекочитаемым текстом, но чуть менее строгим - Добавь "начни с 3-5 ключевых сущностей" → ограничит граф, ускорит ответ на простых задачах - Приложи 2-3 примера с готовыми графами (few-shot) → модель точнее держит структуру, но по данным исследования выигрыш от увеличения числа примеров быстро выходит на плато — 2 примера почти так же хороши, как 5
Шаблон промпта
Посмотри на это изображение (и текст, если он есть): {контент}
{вопрос_по_задаче}
Сначала построй причинно-следственный граф в виде псевдокода:
- Entities: перечисли людей, объекты, абстрактные понятия и события, изображённые на входе
- Properties: для каждой сущности — её ключевые свойства
- CauseEffect: список пар "причина → следствие", построенных из сущностей и их свойств
Затем, опираясь на этот граф, дай финальный ответ на вопрос выше.
{контент} — картинка/мем/скрин, который нужно разобрать. {вопрос_по_задаче} — конкретный вопрос: "почему это смешно", "в чём ирония", "почему эта реклама сработала", "что здесь не так с логикой".
🚀 Быстрый старт — вставь в чат:
Вот шаблон CaRGo-T для разбора сложного визуального контента через причинно-следственный граф. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какой конкретно контент разбираем и какой вопрос задаём — потому что без этого граф строить не из чего. Она возьмёт структуру (Entities → Properties → CauseEffect → Ответ) и подгонит под твою картинку.
Ограничения
⚠️ Зависимость от размера модели: метод работает заметно лучше на крупных моделях (GPT-4o), которые хорошо генерируют структурированный текст. На более слабых моделях выигрыш почти пропадает.
⚠️ Маленький эффект на простых да/нет вопросах: если нужно просто определить "смешно это или нет" (бинарный ответ), улучшение минимальное — метод раскрывается там, где нужно объяснить, а не классифицировать.
⚠️ Отдача от примеров быстро падает: добавление большого числа примеров-образцов в контекст не даёт пропорционального роста качества — 2 примера почти так же хороши, как 5.
Как исследовали
Исследователи проверили CaRGo-T на трёх наборах данных — сатирические картинки, мемы и саркастичные посты с текстом — и на трёх моделях: GPT-4o, GPT-4o-mini и открытая MiniCPM. Сравнивали с обычным промптом без рассуждений, с Chain-of-Thought, Chain-of-Draft и ещё одной техникой на основе графов сцены (CCoT).
Результат: CaRGo-T выигрывает у всех конкурентов в задаче "объясни, почему смешно" — прирост от 1% до 20% в зависимости от модели и датасета, а в задаче "смешно или нет" — скромнее, 1-3%. Интересный момент: чем крупнее модель, тем лучше работает граф — потому что построение точного псевдокода требует хорошего понимания структуры, а маленькие модели путаются. Ещё исследователи через анализ информации показали, что граф CaRGo-T содержит больше данных, релевантных правильному ответу, чем рассуждения в свободной форме — то есть модель не просто пишет длиннее, а пишет по делу.
