Объединение текста и изображений
Единые мультимодальные подсказки
«Объединение текста и изображений» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.
Единый мультимодальный запрос
Мультимодальный запрос — это не текст с прикреплённым изображением. Это единая чередующаяся последовательность, в которой токены изображения и токены текста находятся в одном контексте и взаимно учитываются механизмом внимания. Модель не «смотрит на картинку, а затем читает текст» — она обрабатывает объединённый поток токенов.
- Фрагменты изображения преобразуются в то же пространство представлений, что и токены текста.
- Порядок имеет значение: вопрос, размещённый перед изображением, задаёт внимание иначе, чем вопрос, размещённый после него.
- Вы создаёте один запрос с двумя формами представления, а не два запроса.
Порядок чередования и привязка
Расположение изображения относительно инструкции меняет поведение модели. Размещение инструкции после изображения позволяет модели сформировать ответ на вопрос с учётом уже закодированного содержимого; размещение инструкции перед изображением превращает изображение в свидетельство для заранее поставленной задачи.
В запросах с несколькими изображениями помечайте каждое изображение прямо в тексте, чтобы последующий текст мог однозначно ссылаться на него ([Image 1], [Image 2]).
messages = [
{'role': 'user', 'content': [
{'type': 'text', 'text': 'You will see two product photos.'},
{'type': 'text', 'text': 'Image 1:'},
{'type': 'image', 'source': img_a},
{'type': 'text', 'text': 'Image 2:'},
{'type': 'image', 'source': img_b},
{'type': 'text', 'text': 'Which has better lighting? Cite the image label.'}
]}
]Формулировка задачи перед кодированием
Визуальные кодировщики работают с потерями: детали, не относящиеся к неявной задаче, могут отбрасываться при агрегации признаков. Если указать задачу до изображения, Вы направите внимание модели на важные области.
- Общие запросы на создание подписей дают общие признаки.
- Конкретный вопрос («посчитать резисторы на плате») направляет бюджет представления на нужные подрегионы.
Заранее формулируйте задачу как можно точнее, если нужны мелкие детали.
Бюджеты разрешения и разбиения на фрагменты
Большинство моделей зрения разбивает изображения высокого разрешения на фрагменты фиксированного размера, каждый из которых расходует токены. Изображение размером 2000x2000 может быть разделено на множество фрагментов, каждый из которых уменьшается. Бюджет токенов — это скрытое ограничение мультимодальных запросов.
- Выполните crop области интереса перед отправкой — не рассчитывайте, что модель сама приблизит изображение.
- Для плотных документов отправляйте фрагменты страниц, а не одно изображение всей страницы.
- Узнайте максимальное число фрагментов у Вашего поставщика: после его превышения мелкий текст становится нечитаемым.
def estimate_image_tokens(w, h, tile=512, per_tile=256):
import math
tiles = math.ceil(w / tile) * math.ceil(h / tile)
return tiles * per_tile + per_tile # + thumbnailТекст как структурированная схема для зрения
Объединяйте изображение с явной схемой вывода в текстовом канале. Изображение предоставляет содержимое, а текст — правила взаимодействия. Это намного надёжнее, чем описание в свободной форме.
Попросите вернуть JSON с ключами, соответствующими ожидаемым сущностям, и укажите модели выводить null для невидимых полей — это подавляет выдуманные детали.
instruction = (
'Extract from the receipt image. Return JSON: '
'{"merchant": str|null, "total": number|null, '
'"date": str|null, "line_items": [{"name": str, "price": number}]}. '
'Use null when a field is not legible. Do not invent values.'
)Уточнение с помощью указательных ссылок
Указательные ссылки («это», «объект слева», «выделенная рамка») связывают текст с областями изображения. Если Вы можете заранее аннотировать изображение (нарисовать рамку, добавить стрелку), текстовая ссылка становится намного надёжнее, чем одни пространственные описания.
- Пространственные слова («вверху справа») часто дают ошибки при повороте или crop.
- Наложенный нумерованный маркер вместе с фразой «объект № 3» не оставляет двусмысленности.
- Предварительная обработка изображения для добавления маркеров — вполне допустимый приём составления запросов.
Обучение по нескольким примерам в смешанных модальностях
Вы можете предоставить примеры преобразования изображения в текст, чтобы зафиксировать формат и стиль рассуждений. Каждый пример представляет собой чередующуюся пару (изображение, идеальный ответ). Модель выводит соответствие из этих демонстраций.
Изображения-примеры должны отражать реальное распределение данных: пример из другой области научит модель выбирать неправильные признаки.
shots = [
('image', chart_a), ('text', 'Trend: upward. Peak: Q3. Anomaly: none.'),
('image', chart_b), ('text', 'Trend: flat. Peak: Q1. Anomaly: Q4 dip.'),
('image', target_chart), ('text', 'Trend:') # model completes
]Привязка утверждений к пикселям
При извлечении данных с высокими последствиями требуйте от модели указывать где именно в изображении находится источник каждого утверждения. Приблизительные ограничивающие рамки или цитаты текста с изображения служат проверяемым свидетельством и значительно сокращают число уверенно выдуманных сведений.
- «Для каждого значения приведите точную подпись, которую Вы прочитали».
- «Укажите приблизительную нормализованную рамку [x0,y0,x1,y1] для каждого поля».
Привязка превращает непрозрачный ответ в проверяемый.
Сбои, которых следует избегать
Мультимодальные модели дают характерные сбои:
- Смещение OCR на мелких или стилизованных шрифтах — цифры вроде 1/7 и 0/O путаются.
- Срыв подсчёта при количестве похожих объектов больше примерно 6.
- Смещение подписей: модель описывает типичную сцену, а не конкретную.
- Подмена текстовым каналом: уверенное ошибочное утверждение в тексте может подавить правильные визуальные свидетельства.
Снизить риск можно, попросив модель сначала вывести сведения из изображения, а затем сопоставить их с утверждениями в тексте.
Запросы для согласования
Когда текстовый контекст и изображение противоречат друг другу, необходимо явно задать приоритет — у модели нет надёжной политики по умолчанию. Укажите её: «Если изображение противоречит предоставленным метаданным, доверяйте изображению и отмечайте расхождение».
Это единственное предложение превращает скрытую ошибку в явный обнаруженный конфликт, который последующий конвейер может направить на проверку.
policy = (
'You are given metadata AND a photo. '
'When they disagree, prefer the photo as ground truth. '
'Emit {"value": ..., "conflict": bool, "note": str}.'
)Проектирование конвейера объединения
Мультимодальные запросы в рабочей системе — это конвейер, а не один вызов:
- Предварительная обработка: выполните crop, добавьте аннотации и уменьшите разрешение в соответствии с бюджетом.
- Объединение: чередуйте данные с инструкцией, в которой задача указана первой, и со схемой вывода.
- Привязка: требуйте свидетельство для каждого утверждения.
- Согласование: укажите приоритет модальностей.
- Проверка: разберите JSON, проверьте пустые значения и флаги конфликтов.
Каждый этап уменьшает область возможных сбоев, которые невозможно устранить одними запросами.
Быстрая проверка
Вам необходимо извлечь мелкий текст из скана договора с высоким разрешением и получить надёжные числа.
Повторение: объединение текста и изображений
Единый мультимодальный запрос представляет собой один чередующийся поток токенов. Основные приёмы: формулировка задачи в начале, чтобы направить визуальный кодировщик, учёт разрешения и разбиения на фрагменты с помощью обрезки, явные схемы вывода с полями, допускающими пустые значения, привязка к пикселям для каждого утверждения и заданный приоритет модальностей при конфликтах. Рассматривайте это как конвейер — предварительная обработка, объединение, привязка, согласование, проверка — и хрупкие места запросов для работы со зрением станут управляемыми.
Изучай AI Prompt Engineering с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 53
- Уроки
- 199
Часто задаваемые вопросы
Урок «Объединение текста и изображений» бесплатный?
Да — полный текст урока «Объединение текста и изображений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.
Чему я научусь в уроке «Объединение текста и изображений»?
Единые мультимодальные подсказки Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Prompt Engineering?
Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Объединение текста и изображений»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Prompt Engineering?
Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Объединение текста и изображений
- Привязка между модальностями
- Аудио, текст и изображение вместе
- Управление мультимодальным выводом