데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      OpenLab - LLMOps, GraphRAG의 Graph를 평가하는 방식과 LLM Reasoning 성능

      그래프맨 24.07.03
      2,304 0 0
      DEVOTEE 요약
      GraphRAG 평가 방식에 대해 다뤄봤습니다. GraphRAG는 subgraph extraction 결과물을 token 형태로 변형한 후 token-based retrieval evaluator를 적용해 평가합니다. 이를 위해 대표적인 그래프 형태로 LPG와 RDF를 활용하고, 그래프 구조에 따라 다양한 알고리즘과 규칙을 적용해 평가 지표를 사용합니다.
      DEVOTEE 추천 블로그

      안녕하세요! 그래프맨 정이태입니다.


      오늘은 GraphRAG 평가 방식에 대해 이야기해보려고 합니다. RAG 평가하면 흔히들 떠오르는 방식이 무엇이 있을까요?

      먼저 retrieval, generation 두 분류로 나누어 평가 방식을 생각하시겠죠. Retrieval에서는 NDCG, MRR, MAP 등이 있겠고,

      Generation에서는 Bleu, ROUGE, BERT Score, METEOR 등이 있겠습니다.

      • autorag documentation 기반 (https://github.com/Marker-Inc-Korea/AutoRAG)

      또한 LLM을 평가주체로 활용한 single point, reference-based, pairwise-based scoring 방식도 있습니다. LLM as judge 방식뿐만 아니라,

      ARES, RAGAS 같은 평가 프레임워크들은 정답을 만드는 LLM과 정답을 맞추는 LLM(RAG generation LLM)을 분리하여,

      정답지 생성부터 평가까지 LLM에게 맡길 만큼 LLM에 대한 의존성이 점점 커져가는 트렌드를 보여줍니다.


      그럼 여기서 과연 GraphRAG는 어떻게 평가할까요? 핵심은 subgraph extraction으로 나온 결과물을 token 형태로 변형한 뒤,

      token-based retrieval evaluator를 적용하는 것이라고 할 수 있습니다.

      Subgraph를 추출하기 전에 GraphRAG에서 활용하는 대표적인 subgraph 형태를 잠시 짚고 가보겠습니다.

      대략적으로 두 가지 형태를 주로 활용하고, 이를 분류할 수 있겠네요.

      image.png

      그림1. 데이터를 LPG 와 RDF 형태로 각각 표현했을때를 비교한 그림


      첫 번째는 LPG(label property graph) 형태에서 용이한 문서-청크 형태의 unstructured graph입니다.

      image.png

      그림2. LPG 형태를 활용한 GraphRAG 그래프 모델링 예시


      두 번째는 RDF(resource description framework) 형태에서 용이한 주어-서술어-목적어 형태의 logical reasoning graph입니다.


      위 두 가지 LPG , RDF 형태처럼 그래프를 어떤 형태로 관리하고 활용할지에 따라 그래프 저장 방식을 구분할 수 있고, GraphRAG에서 활용할 수 있습니다.

      그럼 이 subgraph를 어떻게 잘 추출할 수 있을까요? 첫 번째인 LPG에서는 그래프 내에 property라는 명목으로 데이터를 추가 저장할 수 있기에,

      property 기반으로 추출하는 관점을 고려해 보아야 합니다.


      텍스트 임베딩 값을 활용해 vector indexing을 한다거나, 프로퍼티 값들 중 하나를 메타로 지정해 meta filtering을 한다던지요.

      혹은, 텍스트 그 자체의 값을 활용해 full text search와 같은 exact search 계열을 활용하여 연관성 있는 서브그래프를 추출할 수 있습니다.


      두 번째 RDF에서는 주어-서술어-목적어와 같이 논리적인 구조를 띈 데이터들이 대다수이기에

      주어부터 목적어까지 귀납적이나 연역적으로 추론하기 위한 추론 규칙들을 rule-based로 설계합니다.


      혹은 RDF는 구조가 다양하기에 이를 고려하여 어디서부터 어디까지를 가져올지 선정하는 path finding 알고리즘과 graph structure를 조화롭게 배치하여

      graph search 및 retrieval을 해야 만족스러운 값을 얻을 수 있습니다.


      반면에 LPG는 구조보다 임베딩 기반 유사한 값들끼리 연관성을 적절하게 발견하여 새로운 연결을 만들어준 뒤,

      community detection과 같은 클러스터링 알고리즘을 활용해 연관성 있는 지식그래프 클러스터를 만들어 준 뒤,

      커뮤니티 내 intra-inter 위계를 활용해 총체적인 관점으로 답변을 내놓습니다.

      *최근 Microsoft에서 공개한 GraphRAG 방식입니다.


      최종적으로 이렇게 두 가지 관점으로 설계된 지식그래프로부터 subgraph를 추출합니다.

      이를 통해 도출된 결과물들을 text (token) format으로 변경해주고 이를 token F1, recall 등과 같은 지표로 평가해주는 거죠.


      좀 더 그래프 구조에 치중하여 이를 판단하고 개선하고 싶으시면 구글에서 최근 publish한 아래 논문을 추천드립니다.

      설계된 지식그래프들이 결국엔 대다수 그래프 구조 중 하나의 형태를 띠기 때문입니다.

      논문에서 그 구조마다의 특성 그리고 답변 결과에 얼마나 영향을 미칠것인가 사고 실험을 해보시고, 이에 따라 knowledge graph search를 어떻게 할 지 디자인해보는 거죠.

      image.png

      그림3. 대표적인 그래프 구조들


      그림2에서 표현된 그래프 구조 7가지가 저희가 흔히 마주할 수 있는 그래프 구조들이라 할 수 있습니다.

      RDF 혹은 LPG로 구성한 후, 서브그래프를 추출했을 때 다음 7가지 구조 중 하나에 속한 구조들을 마주할 확률이 높습니다.

      그렇기에, 이 구조들 속에서 어떻게 유의미한 노드,엣지를 추출하는지가 핵심입니다.

      image.png

      그림4. 그래프 구조가 LLM performance에 유의미한 영향을 미친다를 설명한 단락


      위 그림4 이외에도 Graph Encoding Function , Prompt Question Model Capacity 와 Graph Reasoning 간의 관계

      그리고 Reasoning 시 Edge 의 부재에 따라 달라지는 성능 와 같은 다양한 실험들이 논문에 작성되어 있기 때문에,

      관심 있으신 분들은 한 번 살펴보시는 걸 추천드립니다.


      그래프 구조가 어떤 구조가 있으며, 이 구조마다 성능이 어떻게 달라짐을 논문의 그림 그리고 글을 통해 살펴봤습니다.

      이를 통해, 기업의 데이터를 그래프 형태로 변환했을시 어떤 그래프 형태이며 이 그래프 형태가 LLM 성능에 유의미한 영향을 줄지를 유추해볼수 있는 하나의 근거로써 활용할 수 있음이

      본 논문에서 얻을 수 있는 인사이트라고 할 수 있겠네요. 자세한 내용은 본 포스팅 끝에 작성되어있는 Reference 를 통해 살펴볼 수 있습니다.


      오늘은 GraphRAG 평가를 위해 고려해야 할 요소들 그리고 어떻게 고려해야 할지에 대해 이야기해 봤습니다.

      LPG와 RDF 관점으로 설계되는 지식그래프가 각각 다르며 이를 retrieval하는 그래프들도 다르기에 무엇을 목적으로 GraphRAG를 쓰는지 되새겨보고 이에 따라 설계해야 하며,

      설계된 지식그래프는 token 형태로 관리하고 평가한다가 이 글의 골자입니다. RAG의 성능개선을 통해 많이들 GraphRAG를 활용하고자 고민이 많으신데,

      본 포스팅을 통해 그 고민이 조금이나마 해소되었으면 하네요. 그럼 긴 글 읽어주셔서 감사합니다. 좋은 하루 되세요.


      Reference

      1.Edge, Darren, et al. "From local to global: A graph rag approach to query-focused summarization." arXiv preprint arXiv:2404.16130 (2024).

      2.Fatemi, Bahare, Jonathan Halcrow, and Bryan Perozzi. "Talk like a graph: Encoding graphs for large language models." arXiv preprint arXiv:2310.04560 (2023).

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      그래프맨 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기