온톨로지 빌드 파이프라인
파싱·청킹·개체 추출·계층 구성으로 그래프를 생성하는 빌드 파이프라인
Posts 3
업로드마다 LLM을 부르는 빌드는 자동으로 켜 둘 수 없었습니다
온톨로지가 문서를 올릴 때마다 만들어지려면 기본 빌드에는 호출 비용이 없어야 했습니다. 표 구조와 형태소, 한국어 패턴만으로 클래스·개체·상하위를 세우고 관계 추출은 옵션 단계로 분리한 과정과, 그 뒤 드러난 문서 500개 상한 결함을 정리합니다.
작업은 성공이라고 나왔는데 그래프가 비어 있었습니다
추출 모델을 로컬 소형 모델로 바꾸자 배치가 끝나지 않거나, 성공으로 기록된 작업이 빈 그래프를 남겼습니다. 잘린 JSON과 시간 초과가 빈 결과처럼 처리되고 있었습니다. 실패를 실패로 만든 과정입니다.
질문이 답의 범위까지 정하고 있었습니다
역량 질문을 먼저 정하고 답에 필요한 개념을 찾는 방식이었습니다. 배송과 반품을 묻는 질문만 있으면 원문의 예외 승인 절차는 그래프에 남지 않았습니다. 질문을 빌드에서 빼고 평가에 남긴 과정입니다.
Engineering 4
온톨로지 빌드 2단계 분리: LLM 0회 기본 빌드와, 검색을 해치지 않을 때까지 다시 설계한 관계 형성
업로드마다 LLM 추출을 실행하면 비용을 감당할 수 없어, 개체 추출은 LLM 0회 기본 빌드로, 관계 추출은 사용자가 켤 때만 실행하는 관계 형성으로 나눴습니다. 기본 빌드가 표를 행 단위 사실로 읽게 하고, 관계 형성은 원문 단위 위의 번호 분류와 어휘 우선 구조로 다시 설계한 뒤 같은 검색 코드로 번갈아 측정했습니다.
증분 빌드라 불렀지만 비용은 전량이었습니다: 청크 기준선, 조회 상한 500, 이름 색인으로 끊은 비례
문서를 추가할 때마다 온톨로지 빌드가 전체를 다시 처리하거나, 새 문서가 없는데도 같은 빌드를 반복하고 있었습니다. 빌드된 청크 집합을 PostgreSQL 기준선으로 두고 SDK 기본 조회 상한 500 때문에 문서 57.8%가 그래프에서 빠지던 결함을 고친 뒤, 대상 조회·후처리·감분 단계마다 비용이 전체가 아니라 변경분에 비례하도록 바꿨습니다.
완료로 기록된 빈 그래프: 구조 복원, 부분 커밋, 출력 예산 기반 배치 사이징
빌드는 완료로 표시되는데 그래프가 비어 있거나 구조가 무너진 문제를 석 달에 걸쳐 추적했습니다. 리팩토링이 지운 중복 제거·상속 로직을 복원하고, 오진을 세 번 정정하며 예외를 삼키던 배치 처리와 all-or-nothing 저장을 찾아냈고, 배치 크기를 모델 출력 한도에서 산출해 절단 시 반분 재시도하게 바꿨습니다.
빌드 진행률은 어디서 읽어야 하는가: 그래프 역산을 걷어내고 PostgreSQL 카운터를 정본으로
진행률을 RDF 그래프 역질의로 복원하던 구조 때문에 74초 걸리는 진행률 API, 좀비 잡, 빌드 중 전체 API 무응답이 겹쳤습니다. 정본을 PostgreSQL로 옮겼다가 되돌리고 다시 옮긴 경위와, 진행 상태와 빌드 결과를 분리한 네 가지 원칙, 이벤트 루프 오프로드의 실측을 정리합니다.