LLM을 활용한 Single/Multi Truth Data Fusion
Single and Multi Truth Data Fusion using Large Language Models
TL;DR Highlight
여러 소스의 충돌하는 데이터를 GPT-4o-mini 프롬프트로 병합하면 기존 비지도 방법보다 일관되게 F1 점수가 높다.
Who Should Read
여러 외부 소스에서 데이터를 수집해 하나의 레코드로 합쳐야 하는 데이터 엔지니어나 백엔드 개발자. 특히 상품 정보, 영화 메타데이터, 항공편 정보처럼 소스마다 값이 달라 충돌이 자주 발생하는 파이프라인을 운영하는 팀.
Core Mechanics
- Data Fusion(여러 소스의 충돌 값 중 정답을 가려내는 작업)을 LLM 프롬프트만으로 해결하는 접근을 처음으로 체계적으로 벤치마킹했다.
- 프롬프트를 DD(Domain-Dependent, 도메인 특화 용어 포함)와 DI(Domain-Independent, 추상 용어 사용), 그리고 single-truth / multi-truth 네 가지로 분류해 각각 0-shot / 1-shot 조합으로 실험했다.
- 도메인 특화 용어를 프롬프트에 넣은 DD 방식이 Book 데이터셋 8/8, Movie 8/8, Flight 6/8 케이스에서 DI보다 높은 F1을 기록했다. 즉 '저자', '감독' 같은 필드명을 명시하는 게 효과적이다.
- 제약 조건 C1('소스에 있는 값만 써라')과 C2('같은 포맷 변형은 하나로 봐라')는 일관된 성능 향상을 주지 않았다. Book/Movie에서는 C1이 오히려 성능을 떨어뜨리는 경우도 있었다.
- Flight ID를 AA-1007-MIA-PHX 대신 FLIGHT-001 형태로 난독화해도 F1이 평균 0.014만 떨어졌다. LLM이 배경지식보다 소스 간 일관성 패턴을 보고 결정한다는 뜻이다.
- GPT-4o-mini, GPT-4o, Claude Sonnet 4.6 중 GPT-4o-mini가 Movie·Flight에서 최고 F1을 기록했고, Claude Sonnet 4.6은 Flight 단일값 프롬프트에서 F1 0.3362로 크게 실패했다.
Evidence
- Book 데이터셋에서 최고 성능 LLM(DD-1shot) F1=0.7817 vs 기존 최고 베이스라인 LTM F1=0.6955, 약 8.6%p 향상.
- Movie 데이터셋에서 LLM DD-1shot F1=0.8172 vs LTM F1=0.7959, 2.1%p 향상. DI 방식도 F1≈0.78로 경쟁력 있음.
- Flight 데이터셋에서 LLM DD-C1-0shot F1=0.9119 vs 기존 최고 베이스라인 LTM/SRV F1=0.8214, 약 9%p 향상.
- Flight ID 난독화 실험에서 15/16 LLM 구성이 최고 베이스라인(F1=0.8214)보다 높은 F1을 기록. 배경지식 의존도가 낮음을 확인.
How to Apply
- 상품 카탈로그처럼 여러 판매자에서 수집한 속성 값이 충돌할 때, 필드명(예: '브랜드', '카테고리')을 프롬프트에 명시하는 DD 방식을 먼저 시도하면 된다. 추상적인 'attribute 1' 식 DI 프롬프트보다 일관되게 성능이 좋다.
- 장르나 태그처럼 정답이 여러 개일 수 있는 multi-truth 필드는 MT 프롬프트 구조를 써서 여러 값을 JSON 배열로 출력하도록 FORMAT 블록을 설계하면 된다. 단일값 필드와 프롬프트를 분리하는 게 핵심이다.
- 비용이 걱정된다면 GPT-4o-mini로 시작하면 충분하다. Book(894소스) 전체 퓨전 비용이 $0.57, Movie는 $0.15 수준이었으며, 요청당 평균 1~3초대 응답속도를 보였다.
Code Example
# DD-MT 1-shot 프롬프트 구조 예시 (Book 데이터셋 기준)
system_prompt = """You are a data fusion assistant."""
example_block = """
[EXAMPLE]
Book ISBN: 9780261102217
Seller 1 | Author: Tolkien, J.R.R.
Seller 2 | Author: J. R. R. Tolkien
Seller 3 | Author: John Ronald Reuel Tolkien
Fused Author: J.R.R. Tolkien
"""
def build_fusion_prompt(isbn, sources: dict) -> str:
body = f"Book ISBN: {isbn}\n"
for seller, attrs in sources.items():
body += f"{seller} | Author: {attrs['author']}\n"
question = "Based on the sources above, what is the correct Author value(s) for this book?"
format_block = "Return a JSON array of strings. Example: [\"Author Name 1\", \"Author Name 2\"]"
return f"{example_block}\n[BODY]\n{body}\n[QUESTION]\n{question}\n[FORMAT]\n{format_block}"
# 호출 예시 (openai SDK)
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
temperature=0,
max_tokens=256,
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": build_fusion_prompt(
isbn="9780547928227",
sources={
"Seller 1": {"author": "J.R.R. Tolkien"},
"Seller 2": {"author": "John Ronald Reuel Tolkien"},
"Seller 3": {"author": "Tolkien, J. R. R."},
}
)}
]
)
print(response.choices[0].message.content)
# 예상 출력: ["J.R.R. Tolkien"]Terminology
관련 논문
다국어 Reasoning Cascade는 더 많은 Context가 필요하다
번역 cascade 파이프라인에서 원본 질문을 마지막까지 유지하면 추가 학습 없이 다국어 성능이 크게 오른다.
Back-and-Forth를 줄여라: Structured Prompting 비교 연구
체크리스트 형식으로 프롬프트를 구조화하면 LLM 답변 품질도 높아지고 토큰도 적게 쓴다.
Training-Free Cultural Alignment: Persona 불일치를 활용한 LLM 문화적 정렬
재학습 없이 각 나라의 도덕적 가치관에 맞게 LLM 출력을 조정하는 추론 시점 기법 DISCA 제안
Claude Code에서 HTML을 출력 포맷으로 쓰는 이유: Markdown보다 나은 점들
Claude Code 팀이 Markdown 대신 HTML을 LLM 출력 포맷으로 선호하기 시작한 이유와 그 실용적 장점을 정리한 글로, AI와 함께 문서/스펙/대시보드를 만드는 워크플로우에 직접적인 영향을 준다.
언제 투표하고 언제 다시 쓸까: Disagreement 기반 Test-Time Scaling 전략 라우팅
모델 출력이 얼마나 일치하는지 보고 쉬운 문제엔 majority voting, 어려운 문제엔 문제 rewriting을 자동으로 선택해 정확도 3~7% 올리고 샘플링 비용도 줄이는 학습 불필요 프레임워크.
Less Is More: Android 앱에 On-Device Small Language Model 통합할 때 실제로 겪는 엔지니어링 문제들
Wordle 게임에 온디바이스 SLM(Gemma 4 E2B, Qwen3 0.6B)을 5일간 붙여보면서 발견한 5가지 실패 유형과 8가지 실용 해결책 정리
확장 가능한 Synthetic Data 생성을 위한 Dynamic Context Evolution
Related Resources
Original Abstract (Expand)
Data fusion, also known as truth discovery, is a data integration problem that aims to determine the correct value or set of values for each attribute of an object when presented with potentially conflicting values from multiple sources. Data fusion tasks belong to two main categories: single-truth scenarios, where each attribute has only one correct value, and multi-truth scenarios, where multiple values can be valid simultaneously. This paper investigates the use of Large Language Models (LLMs) in data fusion tasks for tabular data. Various prompting strategies, encompassing both single-truth and multi-truth scenarios, are investigated empirically. Domain-dependent, domain-independent, zero-shot and one-shot prompts are evaluated on three different benchmark datasets. Experimental results demonstrate that LLM-based approaches outperform traditional unsupervised truth discovery methods, such as DART and LTM, across all datasets. The codebase of this study has been made publicly available on GitHub.