TL;DR
GraphRAG ingestion에서 LLM으로 엔터티와 관계를 순차적으로 생성할 때 발생하는 토큰 비용, 지연, 깨진 JSON 재시도 문제를 줄이기 위해 Cogito Estella가 개발됐습니다. 약 3,700만 파라미터의 non-autoregressive decoder가 SONAR sentence embedding을 입력으로 받아 엔터티와 typed relation을 한 번에 출력하므로 텍스트 생성이나 형식 검증이 필요하지 않습니다. held-out data에서 tool-call structures는 1.000 F1, python code는 0.781, entity candidates가 있는 prose는 0.827, open-vocab prose는 0.651을 기록했으며, `extract_batch`는 N개 청크를 한 encoder 호출로 처리합니다. 다만 SONAR encoder의 Meta CC-BY-NC 라이선스와 60개 동사로 제한된 관계 어휘가 상용 배포와 관계 표현의 정확성에 제약으로 남아 있습니다.
섹션별 상세
용어 해설
- 비자기회귀 디코더(Non-Autoregressive Decoder)
- — 이전 출력 토큰을 하나씩 생성하지 않고 입력 임베딩에서 엔터티와 관계를 한 번에 예측하는 디코더입니다. 토큰 생성 과정이 없으므로 잘못된 JSON 형식이 발생하지 않는 구조가 핵심입니다.
- 문장 임베딩(Sentence Embedding)
- — 문장 전체의 의미를 고정 길이 벡터로 바꾸는 표현입니다. 이 게시물에서는 SONAR가 만든 벡터를 디코더에 입력하고, 디코더가 텍스트를 다시 생성하지 않은 채 지식 그래프 트리플을 출력합니다.
- 지식 그래프(Knowledge Graph)
- — 엔터티를 노드로, 엔터티 사이의 typed relation을 엣지로 저장하는 구조입니다. Cogito Estella는 문장에서 문자열 트리플을 만들고 Neo4j용 Cypher MERGE와 엣지별 출처 정보로 변환합니다.
- 개방형 어휘 추출(Open-Vocabulary Extraction)
- — 미리 정해진 엔터티나 관계 후보 목록에 제한되지 않고 문장에 나타난 표현을 그대로 추출하는 방식입니다. 게시물의 측정값에서는 후보 기반 prose 추출보다 낮은 F1을 기록했습니다.
- F1 점수(F1 Score)
- — 정밀도와 재현율의 조화평균으로 추출 결과의 정확성과 누락 정도를 함께 평가하는 지표입니다. 게시물은 입력 양식별로 1.000, 0.781, 0.827, 0.651의 F1을 제시했습니다.
코드 예제
extractor = CogitoGraphExtractor(checkpoints, "vocab-prose.json")
triples = extractor.extract(node.text)
extractor.to_neo4j(driver, triples, source=node.id_)LlamaIndex 파이프라인의 텍스트 노드에서 트리플을 추출한 뒤 Neo4j에 출처 정보와 함께 저장합니다.
extract_batch여러 청크를 하나의 encoder 호출로 처리하는 배치 추출 메서드입니다.
언급된 도구
GraphRAG ingestion pipeline에 CogitoGraphExtractor를 연결하는 통합 계층입니다.
게시물에서 도입 마찰 요인으로 언급된 의존성입니다.
문장을 sentence embedding으로 변환해 그래프 디코더의 입력을 만드는 encoder입니다.
SONAR의 라이선스 제약을 피하기 위해 다음 단계에서 이전하려는 encoder입니다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.

