지식그래프 관련 업무를 한다고 하면, "지식그래프 그게 뭔데?" "지식그래프 그걸로 뭘 할 수 있는데?"라는 질문을 단골로 받았다.
마침 chatGPT로 핫해진 LLM과 지식그래프를 연관지은 서베이 논문(https://arxiv.org/abs/2306.08302)을 발견해서 소개해보고자 한다.
1. Introduction
대규모 말뭉치를 학습한 LLM(Large Language Model)은 다양한 자연어처리 task들(질의응답, 번역, 텍스트 생성 등)에서 좋은 성능을 내고 있다.
특히 최근 연구되고 있는 LLM은 학습 파라미터 수 등 모델 사이즈가 급격하게 커지면서
AGI(Artificial General Intelligence: 모든 상황에 적용할 수 있는, 인간 수준 이상으로 발전된 인공지능)로 적용시킬 수 있는 길을 열고 있다.
하지만 챗지피티를 쓰면서 많은 사람들이 "말은 잘하는데 뻔뻔하게 거짓말도 잘한다"고 하듯이,
LLM은 훈련 데이터에 없는 가짜 정보를 생성해내는 hallucination 문제가 있다.
또한 black box로서 LLM으로부터 얻은 정보에 대한 해석 및 검증에 대해서도 한계를 가지고 있다.
이런 부분을 해결해줄 수 있는 대안책으로 KG(Knowledge Graph: 지식그래프)가 제시되고 있다.
지식그래프는 정확하고 명시적으로 지식을 제공하고, 해석 가능한 결과를 생성해주기 때문이다.
하지만 지식그래프는 구축하기 어렵고 새로운 정보에 대해서는 부족한 부분이 있는데, 이런 부분은 LLM을 통해 해결할 수도 있다.
이처럼 LLM과 KG는 서로 시너지를 낼 수 있고, 해당 논문에서는 이렇게 시너지를 낼 수 있는 방법에 대해 소개하고 있다.
2. Background
우선 LLM과 KG 종류에 대해 알아보고, prompt engineering에 대해 간단히 살펴보고자 한다.
2-1. Large Language Models
대부분의 LLM은 문장을 모델이 알아들을 수 있는 벡터로 만들어주는 Encoder와 벡터를 출력 텍스트로 바꿔주는 Decoder가 포함되어 있는 Transformer 기반 구조로 되어 있는데, 세부적으로는 아래 3가지로 나눌 수 있다.
1) Encoder-only LLMs
encoder 모듈만으로 문장을 인코딩하고 단어 사이의 관계를 예측하는 Encoder-only LLM은
주로 마스킹된(가려진) 단어를 예측하는 학습 패러다임을 기반으로 학습된다.
정답 데이터가 없어도 되는 unsupervised 모델로,
대규모 corpus를 기반으로 훈련될 수 있어서 text classification이나 NER(Named Entity Recognition)에 효과적인데
다른 task를 수행하려면 추가적인 prediction head가 필요하다.
ex) BERT, ALBERT, RoBERTa, ELECTRA 등
2) Encoder-Decoder LLMs
encoder와 decoder 모듈 모두 적용된 Encoder-Decoder LLM은
입력 문장을 hidden layer로 인코딩시키고, 타겟 출력 텍스트로 디코딩되는 구조로 되어 있다.
훈련 전략이 더 유연하고, 일부 문맥을 기반으로 문장을 생성하는 요약, 번역, 질의응답 등에 적합하다.
ex) T5 (가려진 단어 일부를 예측하면서 pretrain), UL2 (다양한 마스킹 구간 및 빈도에 따라 여러 훈련 대상을 통합함)
3) Decoder-only LLMs
decoder 모듈만 이용해서 타겟 출력 텍스트를 생성하는 Decoder-only LLM은
큰 혁신을 일으킨 chatGPT가 사용하고 있는 구조이다.
다음 단어를 예측하는 학습 패러다임을 기반으로 학습되고,
prediction head나 fine tuning 없이도 다른 주제의 문제들(downstream tasks) 수행이 가능하다.
아쉽게도 decoder-only LLM의 sota(state-of-the-art: 현재 최고 수준의 결과)가 오픈소스가 아니라 연구가 쉽진 않다고 하지만,
아래 두 예시처럼 공개된 모델을 통해 내부 구조를 확인할 수 있다.
ex) Alpaca, Vicuna
2-2. Knowledge Graph
지식그래프 개념 설명 포스트 : https://heehehe-ds.tistory.com/191
지식그래프는 head - relation - tail 구조로 데이터를 표현할 수 있는 것으로,
entity들과 그 사이의 관계(relation)을 나타내는 구조로 되어 있다.
아래 4가지로 지식그래프 분류를 나눠볼 수 있다.
- Encyclopedic KGs
: 위키피디아 등 백과사전 같은 전문적인 지식을 포함하는 지식그래프 (ex: wikidata, freebase, dbpedia, yago) - Commonsense KGs
: 상식과 관련된 의미론적 지식을 포함하는 지식그래프 (ex: ConceptNet, ATOMIC, ASER) - Domain-specific KGs
: 의학, 화학 등 특정 도메인에 대한 지식그래프 (ex: UMLS) - Multi-modal KGs
: 이미지, 음향, 영상 등을 포함하는 지식그래프 (ex: IMGpedia, MMKG, Richpedia)
2-3. Prompt Engineering
prompt는 LLM에 입력할 자연어 입력 시퀀스로, 지식그래프를 LLM과 연결시킬 때 필요하게 된다.
prompt는 아래와 같이 3가지 요소로 구성될 수 있다.
- Instruction : 모델에게 특정 task를 수행하라고 지시하는 문장
- Context : 입력 텍스트 및 few-shot 예시
- Input text : 모델에 의해 처리되어야 할 문장
아래 Andrew Ng 선생님의 강의(https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/)에서 더욱 본격적으로 배울 수 있다.
3. Roadmap & Categorization
LLM과 KG가 서로 시너지를 낼 수 있는 방법에 대해 3가지로 분류해서 알아보고자 한다.
3.1 KG-enhanced LLMs
먼저 KG 기반으로 LLM을 향상시키는 방식으로,
hallucination issue를 해결하거나 부족한 해석 가능성을 KG를 통해 해결해줄 수 있다.
LLM을 pretrain하는 과정에서 KG를 포함하거나 추론 단계에서 KG를 이용할 수 있다.
- KG-enhanced LLM pre-training
: LLM의 pre-train 단계 동안 KG를 적용시키고 LLM의 knowledge expression을 향상시킨다. - KG-enhanced LLM inference
: LLM의 inference 단계 동안 KG를 이용해서 LLM이 재학습없이 최신 지식에 접근할 수 있다. - KG-enhanced LLM interpretability
: LLM이 학습한 지식을 이해하고 reasoning 단계에서 결과를 해석하기 위해 KG를 사용한다.
3.2 LLM-augmented KGs
지식그래프가 아무리 명시적인 지식을 가지고 있다고 하더라도,
여전히 incomplete한 정보를 가지고 있을 수 있다는 한계점과 텍스트 말뭉치를 처리하기 어렵다는 한계점을 갖고 있다.
이런 부분에서 LLM을 text encoder로 적용시킬 수 있고,
LLM을 통해 말뭉치를 처리해서 entity와 relation을 추출하는 KG construction을 진행할 수 있다.
앞서 나왔던 KG prompt를 통해 구조적인 지식그래프를 LLM이 이해할 수 있는 형식으로 바꿔서
KG completion, KG reasoning 등이 LLM에 바로 적용되도록 할 수 있다.
- LLM-augmented KG embedding
: LLM을 통해 entity들과 relation들에 대한 textual description을 인코딩해서 KG 표현을 풍부하게 한다. - LLM-augmented KG completion
: LLM을 통해 텍스트를 인코딩하거나 fact를 생성해서 KGC(KG completion) 성능을 향상시킨다. - LLM-augmented KG construction
: KG 구성을 위한 entity discovery, conference resolution, relation extraction task에서 LLM을 활용한다. - LLM-augmented KG-to-text Generation
: KG에 대한 fact를 표현하기 위해 LLM을 통해 자연어로 생성한다. - LLM-augmented KG question answering
: 자연어 질의와 응답 사이의 간극을 LLM을 통해 채울 수 있다.
3.3 Synergized LLMs + KGs
LLM과 KG가 서로 시너지를 내는 방식으로, knowledge representation 및 reasoning 등에 쓰일 수 있다.
아래와 같이 4가지 layer로 나눠 프레임워크를 구성할 수 있다.
- Data
: LLM과 KG가 각각 textual / structural data를 처리 - Synergized Model
: LLM과 KG가 서로 시너지 효과를 내며 학습 - Technique
: 각각 연관된 기술이 통합되어 성능 더욱 향상시킴 - Application
: 다양한 real-world application 처리
이처럼 LLM과 KG는 악어와 악어새처럼 서로 부족한 부분을 보강해주며 각각의 task를 수행할 수 있다.
References
https://mlabonne.github.io/blog/posts/Article_Improve_ChatGPT_with_Knowledge_Graphs.html
'DATA SCIENCE' 카테고리의 다른 글
GraphRAG: RAG에 지식그래프 더하기 (논문 Review - From Local to Global: A GraphRAG Approach (1) | 2024.11.10 |
---|---|
[KG] 세상의 모든 데이터를 하나로 연결하는 지식그래프 (Knowledge Graph) (1) | 2023.03.12 |
[Kaggle] kernel 내 plot에서 한글 깨짐 해결 (0) | 2020.07.05 |
[Kaggle] kernel에서 data 추가하기 (0) | 2020.07.05 |