[논문 리뷰] KnowCoder: Coding Structured Knowledge into LLMs for Universal Information Extraction
KnowCoder는 코드 스타일 스키마 표현과 LLM과 함께하는 범용 정보 추출을 위한 두 단계 학습 프레임워크를 도입하여 NER, RE, EE 작업에서 few-shot, zero-shot, 감독 학습 설정에서 강력한 성능을 달성합니다.
In this paper, we propose KnowCoder, a Large Language Model (LLM) to conduct Universal Information Extraction (UIE) via code generation. KnowCoder aims to develop a kind of unified schema representation that LLMs can easily understand and an effective learning framework that encourages LLMs to follow schemas and extract structured knowledge accurately. To achieve these, KnowCoder introduces a code-style schema representation method to uniformly transform different schemas into Python classes, with which complex schema information, such as constraints among tasks in UIE, can be captured in an LLM-friendly manner. We further construct a code-style schema library covering over $ extbf{30,000}$ types of knowledge, which is the largest one for UIE, to the best of our knowledge. To ease the learning process of LLMs, KnowCoder contains a two-phase learning framework that enhances its schema understanding ability via code pretraining and its schema following ability via instruction tuning. After code pretraining on around $1.5$B automatically constructed data, KnowCoder already attains remarkable generalization ability and achieves relative improvements by $ extbf{49.8%}$ F1, compared to LLaMA2, under the few-shot setting. After instruction tuning, KnowCoder further exhibits strong generalization ability on unseen schemas and achieves up to $ extbf{12.5%}$ and $ extbf{21.9%}$, compared to sota baselines, under the zero-shot setting and the low resource setting, respectively. Additionally, based on our unified schema representations, various human-annotated datasets can simultaneously be utilized to refine KnowCoder, which achieves significant improvements up to $ extbf{7.5%}$ under the supervised setting.
연구 동기 및 목표
- 통합된, LLM 친화적 스키마 표현을 개발하여 복잡한 UIE 지식(분류 체계, 제약 및 후처리)을 포착한다.
- 위키데이터의 수만 개의 개념을 포괄하는 대규모 코드 스타일 스키마 라이브러리 구축.
- 스키마 이해를 향상시키기 위한 두 단계 학습 프레임워크 제안(코드 프리트레이닝)와 스키마 추종(지시 미세조정).
- NER, RE, EE 작업에서 다양한 데이터 설정(few-shot, zero-shot, 저자원, 감독)에서 강력한 일반화 및 성능 향상을 입증.
- 추가 연구를 위한 스키마 라이브러리, 데이터, 코드 및 모델 공개.
제안 방법
- 코드 스타일 스키마 표현 도입: 엔티티, 관계, 이벤트 클래스, 분류 계층을 통한 분류 체계 상속, 제약에 대한 타입 힌트, 정의를 위한 클래스 주석, 후처리를 위한 클래스 메서드.
- 위키데이터에서 29k개 이상의 엔티티 유형, 876 관계 유형, 519 이벤트 유형으로 구성된 대규모 코드 스타일 스키마 라이브러리 구축.
- 두 단계 학습 프레임워크: (i) 스키마 정의 및 인스턴스 코드에 대한 코드 프리트레이닝을 통한 스키마 이해(약 1.5B 자동으로 구성된 데이터); (ii) 스키마 인지 프롬프트와 작업에 대한 지시 미세조정을 통한 스키마 추종.
- 정교화를 위해 인간 주석 IE 데이터셋을 활용하여 작업 전반의 성능을 추가로 향상.
- 학습 세부사항에는 백본으로 큰 맥락의 LLaMA2-base-7B, 스키마 임포트 전략, 이후 단계의 LoRA 기반 매개변수 효율적 미세조정을 포함.
- NER, RE, EE에 걸친 33개 IE 데이터셋 평가, 다수의 베이스라인 및 SOTA 결과와의 비교.
실험 결과
연구 질문
- RQ1일관된 코드 스타일 스키마 표현이 LLM에게 다양한 UIE 스키마를 이해하고 따르도록 할 수 있는가?
- RQ2코드 프리트레이닝 + 지시 미세조정의 두 단계 학습 프레임워크가 보이지 않는 스키마에 대한 일반화 및 UIE 작업의 성능을 향상시키는가?
- RQ3NER, RE, EE에서 few-shot, zero-shot, 저자원, 감독 설정에서 KnowCoder의 성능은 어떤가?
- RQ4통합된 스키마 라이브러리를 사용할 때 인간 주석 IE 데이터셋으로 정제하는 것이 KnowCoder의 영향은?
- RQ5대규모 코드 스타일 스키마 라이브러리가 여러 IE 데이터셋을 동시 사용에 효과적인가?
주요 결과
| 모델 | 영화 | 나머지 | AI | 문학 | 음악 | 정치 | 과학 | 평균 |
|---|---|---|---|---|---|---|---|---|
| LLaMA2-7B | 31.0 | 19.6 | 30.8 | 24.1 | 28.0 | 38.7 | 44.1 | 30.9 |
| LLaMA2-13B | 32.6 | 25.2 | 37.5 | 36.5 | 37.0 | 60.3 | 51.7 | 40.1 |
| KnowCoder-7B (SU. only) | 37.2 | 36.4 | 41.8 | 42.6 | 53.8 | 60.6 | 51.6 | 46.3 |
- KnowCoder의 코드 스타일 스키마 표현은 29k+ 엔티티 유형, 876 관계 유형, 519 이벤트 유형에 대한 통합 뷰를 지원하며 강력한 UIE 기능을 제공합니다.
- 코드 프리트레이닝을 위해 약 1.5B 자동 주석 데이터 후에, KnowCoder는 few-shot NER에서 LLaMA2 대비 상대적 F1이 49.8% 향상을 달성합니다.
- 지시 후 미세조정 후, 미지의 스키마에 대한 제로샷 및 저자원 일반화가 강력하며, 제로샷에서 최대 12.5%, 저자원에서 21.9% 평균 상대 개선을 보였습니다.
- 인간 주석 IE 데이터셋으로의 정제와 함께 감독 설정에서 IE 작업 전반에서 최대 7.5%의 절대 개선을 달성합니다.
- 제로샷 결과에서 KnowCoder-7B는 SU-만 사전학습으로 NER에서 평균 F1 46.3을 달성하여 LLaMA2-7B 대비 상당한 이점을 보이고 이 설정에서 다수의 정제된 베이스라인보다 앞섰습니다.
- 절단에 따르면 스키마 이해와 추종 단계 모두 상당히 기여하며, 형성 단계 제거 시 성능 저하가 나타나고 특히 스키마 추종 단계의 효과가 크다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.