3,583 papers
arXiv:2606.28062 72 26 июня 2026 г. FREE

Data Fusion Prompting: слияние конфликтующих данных из нескольких источников

КЛЮЧЕВАЯ СУТЬ
Парадокс: чем абстрактнее промпт для слияния данных, тем хуже результат. Когда пишешь «сущность/атрибут/источник» — отрезаешь модель от всего что она знает о реальных объектах. Метод Data Fusion позволяет сводить конфликтующие данные из нескольких источников в одну чистую запись — без ручного разбора каждого дубля. Замена абстрактного «атрибут» на конкретный «автор книги» буквально включает нужный контекст: модель понимает что «Tolkien» и «J.R.R. Tolkien» — один человек, что у книги может быть несколько жанров одновременно, а «40 Вт» и «40W RMS» — одно значение.
Адаптировать под запрос

TL;DR

Когда несколько источников говорят разное об одном и том же объекте, LLM можно попросить разобраться: какие значения истинные, какие — дубли в разных форматах, а что вообще противоречит. Ключевой механик — структурированный промпт с явными блоками: откуда данные, что делать, какие ограничения, в каком формате выдать.

Модели плохо справляются с задачей "в лоб" — когда пишешь просто "вот данные из трёх источников, найди правду". Без конкретики о предметной области ("автор книги", "режиссёр фильма") LLM путается в роли и выдаёт нечёткие результаты. Это особенно заметно когда у атрибута может быть несколько правильных значений одновременно — например, у книги несколько жанров или соавторов.

Метод решает это через доменно-зависимый промпт — вместо абстрактного "сущность/атрибут/источник" называешь конкретно: "книга/автор/продавец". Дополнительно добавляешь два ограничения: брать значения только из предоставленных источников и считать разные форматы одним значением. Один пример правильного слияния в начале промпта резко повышает качество.


🔬

Схема метода

Шаг 1: EXAMPLE (опционально) → один готовый пример слияния 
        [источник 1: данные] [источник 2: данные] → [результат]

Шаг 2: BODY → таблица конфликтующих данных по источникам
        "Объект: [конкретное название типа — Книга, Товар, Рейс]
         Атрибут: [конкретное название — Автор, Цена, Время прибытия]
         Источник 1: [значение]
         Источник 2: [значение]
         Источник 3: [значение]"

Шаг 3: QUESTION → задача слияния
        "Определи истинное значение атрибута для этого объекта"

Шаг 4: CONSTRAINTS → правила
        C1: "Используй только значения из источников выше"
        C2: "Если одно значение представлено в разных форматах — считай их одним"

Шаг 5: FORMAT → формат вывода
        "Ответ: [формат]"

Все шаги — в одном промпте. Отдельных запросов не нужно.


🚀

Пример применения

Задача: Ты запускаешь товар на маркетплейсах. Собрал информацию о конкурирующем продукте с Ozon, Wildberries и сайта производителя — данные везде разные. Нужно слить в одну карточку.

Промпт:

## ПРИМЕР
Товар: Беспроводные наушники Sony WH-1000XM5
Атрибут: Время работы от батареи

Источник 1 (Ozon): "до 30 часов"
Источник 2 (Wildberries): "30 h"
Источник 3 (DNS): "30 часов / 3 часа при быстрой зарядке"

Результат: {30 часов, быстрая зарядка за 3 часа}

---

## ДАННЫЕ
Товар: Bluetooth-колонка JBL Charge 5

Атрибут 1 — Мощность:
Источник 1 (Ozon): "40 Вт"
Источник 2 (Wildberries): "40W RMS"
Источник 3 (М.Видео): "мощность звука 40 Вт"

Атрибут 2 — Особенности:
Источник 1 (Ozon): "водонепроницаемая, PowerBank"
Источник 2 (Wildberries): "IP67, зарядка других устройств, стерео-режим"
Источник 3 (М.Видео): "защита от воды IP67, PartyBoost, powerbank функция"

## ЗАДАЧА
Для каждого атрибута этого товара определи истинные значения.
Там, где может быть несколько правильных значений — укажи все.
Там, где одно — укажи одно.

## ОГРАНИЧЕНИЯ
- Используй только значения из источников выше, не добавляй ничего от себя
- Если одно и то же значение написано по-разному ("40 Вт" и "40W RMS") — 
  считай это одним значением

## ФОРМАТ
Атрибут 1 — Мощность: [результат]
Атрибут 2 — Особенности: [результат]

Результат: Модель покажет для каждого атрибута: объединит очевидные дубли ("40 Вт" = "40W RMS"), соберёт все уникальные характеристики из разных источников (IP67, PartyBoost, PowerBank, стерео), отсечёт повторы. Получишь чистую карточку товара без противоречий.


🧠

Почему это работает

Слабость LLM: Без контекста о предметной области модель не знает, является ли "J.R.R. Tolkien" и "John Ronald Reuel Tolkien" одним человеком или двумя разными. Абстрактный промпт ("сущность", "источник") убирает все смысловые подсказки — и модель работает хуже.

Сильная сторона LLM: Модель хранит огромное количество знаний о реальных объектах — книгах, фильмах, товарах, людях. Когда промпт называет конкретный тип ("книга", "автор"), модель активирует нужный контекст и понимает, что "Tolkien" и "J.R.R. Tolkien" — одно лицо, что у книги может быть несколько жанров, что "40 Вт" и "40W" — одно значение.

Как метод использует это: Доменно-зависимый промпт буквально "включает" нужные знания. Ограничения убирают два главных источника ошибок: галлюцинации (C1 — не выдумывай) и дубли форматов (C2 — не считай их разными). Один пример (1-shot) показывает модели паттерн вывода — особенно помогает для сложных случаев.

Рычаги управления: - Многозначность — фраза "может быть несколько правильных значений" включает multi-truth режим: модель не будет выбирать одно, а соберёт все валидные - Constraint C1 — можно убрать если хочешь позволить модели нормализовать значения (например, дополнить аббревиатуру) - Constraint C2 — добавляй всегда когда источники могут использовать разные единицы, форматы дат, аббревиатуры - 1-shot пример — чем сложнее и специфичнее данные, тем важнее. Для простых данных можно убрать


📋

Шаблон промпта

## ПРИМЕР
Объект: {название_объекта}
Атрибут: {название_атрибута}

Источник 1 ({источник_1}): "{значение_1}"
Источник 2 ({источник_2}): "{значение_2}"
Источник 3 ({источник_3}): "{значение_3}"

Результат: {пример_слияния}

---

## ДАННЫЕ
Объект: {конкретное_название_объекта}

Атрибут 1 — {название_атрибута_1}:
Источник 1 ({источник_1}): "{значение}"
Источник 2 ({источник_2}): "{значение}"
Источник 3 ({источник_3}): "{значение}"

Атрибут 2 — {название_атрибута_2}:
Источник 1 ({источник_1}): "{значение}"
Источник 2 ({источник_2}): "{значение}"
Источник 3 ({источник_3}): "{значение}"

## ЗАДАЧА
Для каждого атрибута определи истинные значения.
Там, где может быть несколько правильных значений одновременно — укажи все.
Там, где одно — укажи одно.

## ОГРАНИЧЕНИЯ
- Используй только значения из источников выше, не добавляй ничего от себя
- Если одно и то же значение написано в разных форматах — считай их одним

## ФОРМАТ
Атрибут 1 — {название_атрибута_1}: [результат]
Атрибут 2 — {название_атрибута_2}: [результат]

Что подставлять: - {название_объекта} — конкретный тип: "Книга ISBN 978-...", "Товар Артикул 1234", "Рейс SU-215" - {название_атрибута} — конкретное свойство: "Автор", "Цена", "Время вылета", не "Атрибут 1" - {источник_N} — откуда данные: "Ozon", "Wildberries", "сайт производителя" - Убери блок ## ПРИМЕР если данные простые и однозначные - Убери ограничение C1 если хочешь позволить модели нормализовать/дополнить значения

🚀 Быстрый старт — вставь в чат:

Вот шаблон для слияния конфликтующих данных из нескольких источников.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит про тип объекта, названия атрибутов и откуда берёшь данные — потому что конкретные названия критичны для качества слияния. Она возьмёт паттерн из шаблона и адаптирует под твой кейс.


⚠️

Ограничения

⚠️ Доменно-независимые промпты работают хуже: Если заменить конкретные названия ("книга", "автор") на абстрактные ("сущность", "атрибут") — качество слияния падает значительно, особенно для сложных данных. Всегда называй конкретный тип объекта и атрибута.

⚠️ Constraint C1 в одиночку может навредить: Ограничение "бери только из источников" без C2 ("разные форматы = одно значение") иногда снижает точность — модель начинает избыточно буквально трактовать значения. Используй C1 и C2 вместе или только C2.

⚠️ Слабее работает для структурированных числовых данных: Расписания, временны́е данные, точные числа — LLM справляется хорошо, но небольшие расхождения (разница в 5 минут, разные часовые пояса) может проигнорировать. Для критически точных данных перепроверяй вручную.

⚠️ Требует, чтобы данные были уже собраны: Метод предполагает что ты уже скопировал данные из源 в промпт. Подходит для десятков записей — не для тысяч строк.


🔍

Как исследовали

Команда Манчестерского университета взяла три реальных датасета с заведомо конфликтующими данными: 894 источника с информацией о книгах, 15 сайтов с данными о фильмах (IMDb, Amazon, Metacritic и другие) и 38 источников о расписании рейсов. В каждом датасете есть "правильный ответ" (ground truth) — так что можно измерить точно.

Идея была простой: сравнить LLM-подходы с классическими алгоритмами слияния данных — голосованием большинства, взвешенным голосованием и байесовскими моделями. Интересно, что доменно-зависимые промпты обогнали все классические алгоритмы на датасете книг с большим отрывом. Но самое неожиданное: классические алгоритмы оказались неплохи на лётном датасете — там значения строго однозначные, и простое голосование работает.

Авторы намеренно проверили что произойдёт если убрать ID рейса из промпта ("obfuscated" настройка) — чтобы понять, не "подглядывает" ли модель ответ в обучающих данных. Результаты почти не изменились, что подтверждает: модель реально рассуждает, а не просто воспроизводит.


💡

Адаптации и экстраполяции

📌

🔧 Адаптация: слияние конкурирующих мнений, а не фактов

Оригинал заточен под фактические данные. Но тот же паттерн работает когда нужно собрать "коллективное мнение" из разных источников:

Замени: "Определи истинное значение" → "Определи общую позицию и точки разногласия"

Убери: Оба ограничения C1 и C2 (они блокируют синтез)

Добавь: "Если мнения противоречат — укажи это явно как спорный вопрос"

## ДАННЫЕ
Тема: SEO-стратегия для e-commerce в 2025 году

Эксперт 1 (блог Neilfound): "Контент — всё, ссылки умерли"
Эксперт 2 (Semrush-исследование): "Ссылочная масса по-прежнему топ-фактор"
Эксперт 3 (Яндекс.Вебмастер): "Поведенческие факторы важнее технического SEO"

## ЗАДАЧА
Определи: в чём эксперты сходятся, в чём расходятся, что считать рабочей позицией.

## ФОРМАТ
Консенсус: [что все признают]
Спорно: [где мнения расходятся и почему]
Рабочая позиция: [что стоит взять за основу и почему]
📌

🔧 Экстраполяция: слияние версий одного текста

Multi-truth принцип можно применить для сравнения редакций одного документа — когда несколько людей правили один текст и нужно найти "лучшую версию":

## ДАННЫЕ  
Документ: Оффер для landing page

Редакция 1 (маркетолог): "Автоматизируй рутину и освободи 3 часа в день"
Редакция 2 (копирайтер): "Перестань тратить время на задачи, которые делает бот"
Редакция 3 (CEO): "Инструмент для команд, которые ценят своё время"

## ЗАДАЧА
Определи лучшие элементы каждой редакции и создай итоговый вариант,
сохранив сильные части. Укажи, что взял из каждой версии.

## ОГРАНИЧЕНИЯ
Используй только формулировки из версий выше, не добавляй новые слова

🔗

Ресурсы

Статья: Single and Multi Truth Data Fusion using Large Language Models

Авторы: Hira Beril Kucuk, Norman W. Paton, Jiaoyan Chen, Zhenyu Wu — Department of Computer Science, University of Manchester

Код: github.com/hiraberil/LLM-DataFusion

Упомянутые методы-сравнения: LTM (Latent Truth Model), DART (Domain-Aware Truth Discovery), Majority Vote, Source Reliability Vote


📋 Дайджест исследования

Ключевая суть

Парадокс: чем абстрактнее промпт для слияния данных, тем хуже результат. Когда пишешь «сущность/атрибут/источник» — отрезаешь модель от всего что она знает о реальных объектах. Метод Data Fusion позволяет сводить конфликтующие данные из нескольких источников в одну чистую запись — без ручного разбора каждого дубля. Замена абстрактного «атрибут» на конкретный «автор книги» буквально включает нужный контекст: модель понимает что «Tolkien» и «J.R.R. Tolkien» — один человек, что у книги может быть несколько жанров одновременно, а «40 Вт» и «40W RMS» — одно значение.

Принцип работы

Модель не алгоритм сравнения строк. Она хранит знания о реальных объектах. Абстрактный промпт эти знания блокирует — модель видит просто строки и не понимает связей между ними. Конкретный тип («книга», «товар», «рейс») разблокирует нужный слой. Структура промпта: пример слияния → данные по источникам → задача → два ограничения → формат вывода — всё в одном запросе, ничего лишнего. Прикол: первое ограничение без второго может навредить. «Бери только из источников» без «разные форматы = одно значение» — и модель начинает слишком буквально трактовать «40 Вт» и «40W RMS» как разные значения. Используй оба или только второе.

Почему работает

LLM сильна в конкретике, слаба в абстракциях. Когда видит «автор книги» — активирует знания о том, что имя может быть сокращённым, что авторов бывает несколько, что «Толстой» и «Лев Николаевич Толстой» — одно лицо. Когда видит «атрибут 1» — таких знаний нет, остаётся только сравнивать строки посимвольно. Один пример в начале промпта резко снижает количество ошибок на сложных случаях — модель видит паттерн что считать результатом, и не изобретает формат вывода на ходу. Без примера на неоднозначных данных модель часто выдаёт то одно значение, то список — непредсказуемо.

Когда применять

Слияние данных из нескольких источников — карточки товаров с маркетплейсов (Ozon + Wildberries + сайт производителя), базы о книгах/фильмах/людях, объединение записей из разных систем управления клиентами. Особенно хорошо когда у атрибута может быть несколько правильных значений одновременно: жанры, соавторы, характеристики. Не подходит для тысяч строк в автоматическом режиме — данные вставляются в промпт вручную, это история про десятки записей, не про промышленные объёмы.

Мини-рецепт

1. Назови конкретно: не «объект» и «атрибут», а «книга» и «автор». Не «источник 1», а «Ozon» и «Wildberries». Чем конкретнее — тем лучше модель понимает предметную область.
2. Добавь пример слияния: один готовый случай в начале промпта. Особенно важно для сложных данных — модель видит паттерн и не придумывает формат сама.
3. Поставь оба ограничения вместе: «бери только из источников» + «разные форматы = одно значение». Первое без второго снижает точность. Оба вместе — убирают галлюцинации и дубли форматов.
4. Скажи про многозначность явно: если у атрибута может быть несколько правильных значений — пиши «укажи все». Без этого модель выберет одно и потеряет остальные.
5. Задай формат вывода: «Атрибут 1 — Автор: [результат]». Без этого получишь произвольный текст вместо структуры.

Примеры

[ПЛОХО] : У меня есть данные о товаре из трёх источников, они конфликтуют. Источник 1: 40Вт, водонепроницаемый. Источник 2: 40W RMS, IP67. Источник 3: мощность 40 Вт, защита IP67. Найди правильные значения.
[ХОРОШО] : ## ПРИМЕР Товар: Наушники Sony WH-1000XM5 Атрибут: Время работы Источник 1 (Ozon): "до 30 часов" Источник 2 (Wildberries): "30 h" Результат: {30 часов} --- ## ДАННЫЕ Товар: Bluetooth-колонка JBL Charge 5 Атрибут 1 — Мощность: Источник 1 (Ozon): "40 Вт" Источник 2 (Wildberries): "40W RMS" Источник 3 (М.Видео): "мощность звука 40 Вт" Атрибут 2 — Защита и функции: Источник 1 (Ozon): "водонепроницаемая, PowerBank" Источник 2 (Wildberries): "IP67, зарядка других устройств, стерео-режим" Источник 3 (М.Видео): "защита IP67, PartyBoost, powerbank функция" ## ЗАДАЧА Для каждого атрибута определи истинные значения. Где может быть несколько правильных значений — укажи все. Где одно — укажи одно. ## ОГРАНИЧЕНИЯ - Используй только значения из источников выше - Если одно значение написано по-разному — считай его одним ## ФОРМАТ Атрибут 1 — Мощность: [результат] Атрибут 2 — Защита и функции: [результат]
Источник: Single and Multi Truth Data Fusion using Large Language Models
ArXiv ID: 2606.28062 | Сгенерировано: 2026-06-29 05:24

Проблемы LLM

ПроблемаСутьКак обойти
Абстрактные метки отключают предметные знания моделиПишешь "сущность", "атрибут", "источник". Модель не понимает контекст. Не знает, что "Tolkien" и "J.R.R. Tolkien" — один человек. Не знает, что у книги бывает несколько жанров. Абстрактные слова убирают все смысловые подсказки — качество слияния падаетНазывай конкретно. Не "сущность" — а "Книга". Не "атрибут" — а "Автор". Конкретное слово включает нужные знания. Модель сразу понимает правила домена

Методы

МетодСуть
Структура промпта для слияния конфликтующих данныхОдин промпт из пяти блоков. ПРИМЕР — один готовый результат слияния (можно убрать для простых данных). ДАННЫЕ — таблица значений по источникам с конкретными названиями типа и атрибута. ЗАДАЧА — "определи истинные значения, там где несколько правильных — укажи все". ОГРАНИЧЕНИЯ — C1: "бери только из источников", C2: "разные форматы одного значения — считай одним". ФОРМАТ — шаблон ответа. Работает для товаров, книг, рейсов, контактов — любых данных из нескольких источников с противоречиями. Не работает для тысяч строк — только для десятков

Тезисы

ТезисКомментарий
Конкретные термины предметной области активируют нужные знания моделиМодель обучена на огромном массиве текстов о реальных объектах. Слово "Автор" лучше "Атрибут" — потому что запускает всё что модель знает об авторстве: псевдонимы, сокращения имён, соавторство. Это не стиль, это механика. Применяй: всегда называй тип объекта и атрибут конкретно. "Товар Цена" вместо "Сущность Атрибут 1"
📖 Простыми словами

Single and Multi Truth Data FusionusingLargeLanguageModels

arXiv: 2606.28062

Проблема в том, что данные из разных источников — это всегда информационная помойка. Один сайт пишет «J.R.R. Tolkien», другой — «Джон Толкин», а третий вообще ошибается в годе издания. Для обычного алгоритма это разные сущности, а для человека — очевидный дубль. Суть метода в том, что LLM теперь работает как умный фильтр, который не просто склеивает строки, а понимает контекст и вычисляет истину среди противоречий, используя структурированные блоки в промпте.

Это как если бы ты нанял трех разных детективов следить за объектом, и каждый принес свой отчет с кучей опечаток и путаницы. Вместо того чтобы самому сидеть с лупой, ты отдаешь эти бумажки опытному аналитику. Он видит, что «синий седан» и «темная машина» — это, скорее всего, одно и то же, а вот время прибытия у одного детектива явно взято с потолка. Модель делает ровно то же самое: она сопоставляет факты и отсеивает шум, который обычный код просто не переварит.

Чтобы эта магия сработала, исследователи используют структурированный промпт. Нельзя просто сказать «разберись тут», нужно четко разделить: вот источники, вот твоя задача, вот жесткие ограничения, а вот формат ответа. Главная фишка — семантическая склейка. Если модель понимает, что речь о книгах или запчастях, она использует свои внутренние знания, чтобы понять: «12 вольт» и «12V» — это одно и то же. Без этого контекста любая нейронка начинает тупить на ровном месте и плодить ошибки.

Метод тестировали на объединении данных, но принцип Data Fusion применим везде, где есть бардак в инпутах. Это работает для CRM-систем, где один и тот же клиент записан десять раз, для парсеров маркетплейсов или агрегаторов новостей. Если у тебя есть пять кривых описаний одного товара, LLM соберет из них одно идеальное, выкинув мусор и исправив ошибки. SEO-копирайтинг на стероидах превращается в чистую аналитику данных.

Короче: хватит пытаться чистить данные регулярными выражениями или сложными скриптами — это пустая трата времени. Проще и эффективнее скормить этот хаос модели через правильный шаблон, где четко прописаны роли и контекст. Либо ты учишься правильно «сливать» данные с помощью LLM, либо тонешь в дублях и противоречиях. Один структурированный промпт заменяет неделю работы программиста по очистке базы.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с