지식그래프와 ChatGPT 활용
ChatGPT는 이제 누구나 어느 정도 잘 알게 되는 상황으로 보여진다.
주어진 단어 이후에 다음 단어를 예측하는 뛰어난 성능으로 인해 다양한 작업에서 유용하게 사용될 수 있다.
하지만 어디까지나 예측이기 때문에 종종 오류가 발생하기도 한다.
한국의 영화와 배우에 대하여 몇가지 질문을 해보면 무언가 답을 내놓기는 한데 자세히 쳐다보면 오류가 있음을 볼 수 있다.
마지막의 경우 전지현이 아이언맨2에 출연을 했었나? 내가 못본걸까? 하는 생각도 잠시 들게 한다.
거대한 데이터셋을 통해 학습을 한 기반으로 대답을 예측하기 때문에 오류가 위와 같이 오류가 발생한다.
이에 대한 보완책으로 지식그래프를 활용하면 오류를 내놓는 대답을 어느 정도 개선 시킬 수가 있다.
지식그래프는 잘 정리되고 구조화된 데이터를 가지고 관계를 기반으로 지식을 표현하기 때문에 어느 정도 신뢰성을 가지고 있다.
이전에 한국 영화에 대하여 영화진흥위원회의 데이터를 가져와 지식그래프 형태로 구축한 결과물이 있는데
이를 이용해 한국 영화에 관한 대답에 대하여 정확한 대답을 할 수 있도록 개선을 하도록 해보았다.
구조는 간단하다. 라마인덱스라는 데이터 프레임워크를 사용해 자연어를 SPARQL 쿼리문으로 바꾸도록 학습시키고, SPARQL 질의 결과를 자연어로 바꾸도록 학습시켜서 사용하는 구조이다.
이는 지식그래프와 LLM 간 상호 보완적은 관계로 활용할 수 있는 구조로서 많이들 이야기 되고 있는 형태이다.
LLM을 통해 검색을 찾는 입장에서는 보다 정확한 정보를 찾을 수 있다는 점과
지식그래프를 사용하는 입장에서는 자연어를 통해 결과를 찾을 수 있다는 점이 유용할 것이라고 보여진다.
다만 자연어를 SPARQL로 만들 때와 그 반대의 경우 에 대하여 2번의 openai 의 API를 거쳐야 하기에 시간이 조금 걸린다는 단점이 존재한다.
그럼에도 정확한 답변이나 일반적인 도메인이 아닌 경우에 LLM을 적용하여 사용하고자 하는 경우에는 지식그래프와 함께 사용하는 것도 하나의 방안이라고 보여진다.
끝.
활용 라이브러리 및 사이트
https://gpt-index.readthedocs.io/en/latest/
https://openai.com/