원문 : Entity Matching with 7B LLMs: A Study on Prompting Strategies and Hardware Limitations
Problem
- 종래 EM solution의 문제 (룰 기반, 유사도 매칭, 머신러닝) :
- 복잡한 언어적 다양성과 문백 이해에 어려움이 있음. (사실상 이를 반영할 수 없음)
- 결국엔 도메인 전문가의 검수가 필요하고 수작업이 매우 많이 필요함.
- 최근에는 이를 DL 방식의 접근법으로 해결하려 함. --> 하지만 DL은 근본적으로 매우 많은 학습 데이터가 필요하다는 한계가 있음
- => 최근에는 LLM으로 EM 문제를 해결하고자하는 방법이 제안되고 있음. 무엇보다 LLM기반의 EM은 zero-shot setting 에서 수행될 수도 있음. -> 학습 인스턴스가 필요하지 않고, out-of-the-box solution임(즉, 블랙박스 모델을 건드릴 필요 없이 수행할 수 있다는 것)
- 본 논문에서는 7B규모의 파라미터를 가진 LLM을 이용하여 EM task 를 수행했을 때의 성능을 평가함. -> 현실적 조건의 상용 하드웨어에서 이러한 작업을 수행할 수 있다는 점을 강조.
- 매칭 정확도 향상을 위해 zero shot, few-shot, 일반적인 매칭 정의 프롬프트 정의 전략을 적용하고 매칭 정확도를 올리는데 있어서의 효율성을 평가
- 종래 EM 방법론에 비교했을 때 LLM-EM의 장점
- 맥락 이해
- 강건성(robustness) : 다양한 도메인 다룰 수 있음
- 매칭 결정에 대한 소량의 예시 or 예시가 없는 경우도 가능
- Can Foundation Models Wrangle Your Data?
- 세 가지의 주요 파라미터 제시 (1) 문제 정의 : few-shot이 zero-shot 성능 능가. 문제 정의가 성능에 상당한 영향을 미침 (2) in-context learning : 모든 속성을 다 선택하는 것보다 일부 속성을 선택하여 사용하는 것이 더 좋은 성능 (3) entity serialization
- Entity matching using large language models
- 하나의 프롬프트로 다양한 시나리오 적용하는 것은 효과적이지 않음
- few-shot 이 zero-shot보단 나음
- zero-shot setting에서도 llm-based 방식이 dl 기반 방식과 거의 비슷한 수준의 성능 보임
- fine-tuning을 거치면 확실히 매칭 성능 올라감
- LoRa 기법 사용.
- 구체적 실험 환경 : “We run the open-source LLMs on a local machine with an AMD EPYC 7413 processor, 1024GB RAM, and four NVIDIA RTX6000 GPUs.” ([Peeters et al., 2024, p. 2)
- 파인튜닝의 경우 GPT는 API 썼고, 오픈소스 모델은 로컬 머신 썼다고 함.
- For the Llama models, we fine-tune using 4-bit quantization to manage the high VRAM requirements of the 70B models. We employ Low-Rank Adaptation (LoRA) and also train for 10 epochs.
- 한계 : 위치 편향 문제(position-bias) -> 중복 레코드가 후보군 리스트의 낮은 순위에 있다면 정확도가 떨어진다는 문제가 있음.
- BatchER
- 배치 작업을 통해 hosted LLM의 비용을 감소하는 것이 목표
- 다양성 기반 질문 배치 + 커버링(?) 기반 시연 선택
- 효과, 비용 측면에서 match prompt보다 우수
- => prompt engineering의 중요성, open source model의 경쟁력, 배치 전략의 효율성
- 기존 연구와는 달리, 본 연구에서는 경량 모델을 사용. => 현실 세계의 em 문제와 고급 LLM 모델 사이의 갭을 줄일 수 있는 방법에 대한 인사이트 될 것.
Methods
- EM task는 기본적으로 자연어 추론문제로 프레이밍 됨.
- EM performance 측정
- 정확률 : 전체 예측 매치들 중 정확히 식별된 매치의 비율
- 재현률 : 전체 실제 정답 매치 중, 실제 정확히 식별된 정답 매치 비율
- F-measure : 정확률과 재현율의 조화평균 (조화 평균 : 주어진 수의 역수의 산술평균 역수 -> 평균적인 변화율 구할 때 사용) ==>f(r1, r2) --> {0,1} 함수에서 1로 분류된 값에 대해 계산. 높아질수록 높은 효과 나타냄
- Run time : ER 과정이 완료되기까지 걸리는 시간
==> 낮은 값일수록 높은 시간효율성 갖는다고 봄
- EM prompt
- zero-shot : 입력, 원하는 출력에 대해 설명하는 지침으로 구성됨. -> 훈련받지 않은 새로운 작업이나 도메인에서의 일반화 능력 테스트
- few-shot : 지침 + 매칭 엔티티에 대한 쌍 예시 + non-matching 엔티티에 대한 쌍 매칭
- 예시문은 아주 약한 수준의 감독 기능 수행함
- few-shot은 위치 편향이 있음 -> 예시문이 오는 순서에 따라 결과문에 영향을 끼칠 수 있음.=> 두 가지 종류의 프롬프트를 구성 : 첫 번째는 TF 조합, 두 번째는 FT 조합.
- 예시 개수가 늘어나면, 예시 배열도 다양해짐 -> 그래서 일단 본 논문에서는 두 가지 베리에이션 갖는 프롬프트만 사용
- 두 가지의 쿼리 방법
- 합집합 : TF나 FT 중 어느 하나가 True면 나머지도 True
- 교집합 : 둘다 참이어야만 True
- 도메인 특화 zero-shot prompt
- 일반적인 매칭 정의를 포함하는 제로샷 프롬프트 사용 -> 두 레코드가 동일한 제품을 참조하는지 확인하는 방법에 대한 명확한 지침을 제공
- 중심 가정 : 레코드가 정제되어 있고 정렬되어 있음 -> 중복 레코드에 대한 스키마 인식적인 일반적 정의를 설정하는데 필수적임.
- composite domain-specific EM prompt
- 여러 속성값을 이용
- 제품 매칭에 대한 4가지 카테고리 모두 연결함. -> 보다 뉘앙스적인 매칭 결정을 가능하게 하기 위함
- atomic domain-specific EM prompt
- 한 개의 컬럼만 이용
- 가장 정제되어 있고 유니크한 모델 번호만 일치 기준으로 사용
Experiment
- 실험 환경 : “All experiments were implemented in Python v3.12.0 and Ollama1 v0.1.22. All experiments were carried out on a server running Ubuntu 22.04.1 LTS, equipped with Intel Core i7-9700K 8 core @ 3.6 GHz, 32GB RAM and NVIDIA GeForce GTX 1080 Ti 11GB.” (pdf)
- vram 한계가 있어서 양자화(quantization) 방식으로 LLM 최적화 함 (양자화 : 모델을 압축하여 빠르고 효율적으로 동작하게 함-> 높은 정밀도의 숫자를 낮은 정밀도 숫자로 변환 --> 메모리랑 디스크 아끼려고 가중치 파라미터 값을 4비트 정수로 조정한다는 얘긴듯..)
- 파라미터 수 적어지고 가중치 정밀도 낮아짐 -> 성능이 좀 낮아지긴 해도(정보 손실) 실행시간, 메모리 소비량 획기적으로 줄일 수 있음. =>( 좋은 장비 살 수 있으면 8-bit 양자화까진 해볼 수 있을듯..?) GGML, GGUF 사용한다고 함
- LLM models
- llama2, mistral , Orca(L), zephyr(m), llama pro , openHermes(m) (대부분 mistral, llama 계열)
- datasets
- 제품에 관한 실세계 데이터 사용
- (D1)AbtBuy dataset : 전자제품 목록
- (D2)Walmart-amazon dataset : 월마트, 아마존 소매상 판매 제품 데이터
- 프롬프트에 들어갈 제품 후보군 선정 : SOTA blocking으로 구현된 PyJedAI 활용
- 후보군 추출 - kNN Join 방식으로 근접 이웃 탐색
- zero-shot result
- 모든 모델이 정확률보다 재현율이 높게 나옴 -> 즉, False Positive가 많다
- 다만 Orca2의 경우 정확률이 꽤 높게 나왔음
- 또한, 모든 모델이 D2에서의 성능이 낮게 나왔음 -> D2는 품목도 다양하고 데이터도 훨씬 많음
- +) D1의 일대일 매칭 비율이 D2보다 높음
- few-shot result
- zero shot에서 낮은 성능을 보였던mistral, orca1, stable beluga, llama pro는 사용하지 않고, orca2, openhermes, zephyr만 사용
- openHermes : TF, FT 결과 차이 별로 없음 -> 높은 강건성
- Zephyr : TF일 때 더 성능 좋음
- => position bias가 미치는 영향이 명백함
- few-shot도 높은 재현율을 보임
- OpenHermes, Zephyr > FT의 f-measure 높음. 모두 일치하는 것만 중복으로 간주 => 재현율의 감소폭이 정밀도 증가폭보다 낮음.
- ==> TF, FT의 공통 일치만을 고려하는 것이 정확률 높일 수 있음.
- Orca2 : FT-few shot에서 가장 효과적
- OpenHermes, Zephyr : FT, TF 교집합이 효과적
- domain-specific zero-shot
- 모든 경우에서 atomic prompt가 복합 프롬프트보다 우수했음.
- orca2가 일관되게 우수한 성능 보임
- 도메인 특정 제로샷 프롬프트는 잘 정돈된 스키마 갖춘 데이터세트에서 효과적이고 신뢰성있음
- result
- D1+Orca2 : FT-few shot,특히 도메인 특화 프롬프트가 성능과 시간 효율성 간의 균형을 개선 다만 D2에서는 제로샷 방법보다 런타임이 조금 더 오래걸림
- OpenHermes : 세 가지 프롬프트 전략에서 그다지 큰 차이 보이지 않고, zero-shot에서 실행 시간이 약간 짧다는 정도
- Zephyr : D1에서의 성능(특히 교집합)이 확연히 좋았음. 다만 런타임 매우 오래걸림. -> D2에서 도메인 특화 프롬프트 사용했을 때 10%정도 빨라짐. => TF-FT intersection few-shot
- 하지만 이들 중 , 두 데이터 세트에서 가장 좋은 성능 보여준 것은 Orca2+atomic domain platform
- Baseline과의 비교
- SOTA EM 접근법들과 비교
- Zero-ER : 비지도 방식 접근, gaussian mixture model로 match, unmatch 후보군 학습
- Magellan : 지도방식 + 이진분류 , 문자열 유사도 계산에 기반하여 수작업으로 피쳐 제작
- DeepMatcher : LM과 DL 분류의 시너지를 활용하도록 하는 프레임워크
- -> D1에서는 모든 LLM 구성이 세 방법을 초과함
- 심지어 zero-shot의 경우에도 전문 지식을 필요로 하는 DeepMatcher나 Magellan보다 훨씬 더 높은 성능 보임.
- 다만, D2의 경우는 정반대의 결과를 보임. 준수한 성능을 보이던 Orca2의 경우에도 baseline보다 훨씬 낮은 성능 보임
- D2는 노이즈, 공백값 많고 레코드도 훨씬 긺 -> attention window 제한 때문에 성능 제한이 나타난것으로 추측됨.
- 또한 정밀도보다 재현율이 강조됨 -> 매치 비율도 낮음-> F-Measure가 낮아짐
Conclusion
- few-shot, domain-specific (zero-shot) : task-specific 프롬프트의 값을 강조함
- few-shot prompt에서의 예시 순서에 따라 답변 생성에 큰 영향을 받음
- Orca2는 다른 오픈 소스 LLM보다 높은 강건성과 효율성을 보임 + 모델 성능은 세 가지 프롬프트 비교군에서 거의 일관적으로 나타남.
- 4bit 양자화, 7b 모델사용으로 제한적인 컴퓨팅 환경에서 효과적인 EM을 증명함
- 기존 baseline과 비교하였을 때 경쟁력있음 -> 특히 결측 비율 낮고 엔티티 설명이 짧은 경우에 효과적
- 향후연구 : 다양한 언어에서의 엔티티 매칭 능력 탐구, LLM 결정의 해석 가능성과 설명 가능성의 향상