말씀선집 GraphRAG 연구/DB 구조 설계와 테스트 결과: 두 판 사이의 차이

현 아카이브
둘러보기로 이동 검색으로 이동
(토론 | 기여)
1차/2차 검색 테스트 비교 분석과 논문용 서술 추가
(토론 | 기여)
완료 작업 및 보존 계획 문서 연결
 
(사용자 2명의 중간 판 8개는 보이지 않습니다)
391번째 줄: 391번째 줄:
또한 구조 품질 테스트에서 문장 중간 시작 의심 청크가 205개 발견되었다. 이는 PDF 추출 과정에서 문장이나 단어가 줄 또는 페이지 경계를 넘어가며 분리될 수 있음을 의미한다. 따라서 최종 DB 투입 전에는 페이지 경계 문장 이어붙이기, 단어 내부 공백 보정, 제목·날짜·장소의 메타데이터 분리 절차가 추가되어야 한다. 본 연구는 이러한 추출 우려사항을 삭제하거나 은폐하지 않고 <code>extraction_warnings</code> 필드로 기록하여, 추후 재처리와 품질 평가가 가능하도록 설계한다.
또한 구조 품질 테스트에서 문장 중간 시작 의심 청크가 205개 발견되었다. 이는 PDF 추출 과정에서 문장이나 단어가 줄 또는 페이지 경계를 넘어가며 분리될 수 있음을 의미한다. 따라서 최종 DB 투입 전에는 페이지 경계 문장 이어붙이기, 단어 내부 공백 보정, 제목·날짜·장소의 메타데이터 분리 절차가 추가되어야 한다. 본 연구는 이러한 추출 우려사항을 삭제하거나 은폐하지 않고 <code>extraction_warnings</code> 필드로 기록하여, 추후 재처리와 품질 평가가 가능하도록 설계한다.
</blockquote>
</blockquote>
== 14. 문장 경계 보정 결과 ==
문장 중간 시작 의심 205개 문제는 별도 보정 실험으로 다루었다. 자세한 원인 분석, 보정 알고리즘, 전후 비교표, 논문 삽입용 서술은 [[말씀선집 GraphRAG 연구/문장 경계 보정 전략과 결과]]에 정리하였다.
{| class="wikitable"
! 항목 !! 기준선 !! 경계 보정 후
|-
| 전체 청크 수 || 1,031개 || 949개
|-
| 평균 글자 수 || 1,043.1자 || 1,074.7자
|-
| 최대 글자 수 || 1,470자 || 1,599자
|-
| 기준선 판정 의심 시작 || 205개 || 88개
|-
| 실제 위험군 판정 || 126개 || 4개
|-
| 일반 키워드 Top1/Top5 || 26/30, 29/30 || 26/30, 29/30
|-
| 고유 문장형 Top1/Top5 || 30/30, 30/30 || 30/30, 30/30
|}
따라서 1차 DB 투입 후보 청크는 <code>boundary_safe</code>, <code>hard_max_chars=1600</code> 보정본으로 둔다.


== 관련 문서 ==
== 관련 문서 ==
396번째 줄: 420번째 줄:
* [[말씀선집 GraphRAG 연구]]
* [[말씀선집 GraphRAG 연구]]
* [[말씀선집 GraphRAG 연구/DB 구축 방향]]
* [[말씀선집 GraphRAG 연구/DB 구축 방향]]
* [[말씀선집 GraphRAG 연구/문장 경계 보정 전략과 결과]]
* 로컬 문서: <code>/home/ruyjin/.openclaw/workspace/project_docs/말씀선집그래프RAG/DB_STRUCTURE_AND_TEST_RESULTS.md</code>
* 로컬 문서: <code>/home/ruyjin/.openclaw/workspace/project_docs/말씀선집그래프RAG/DB_STRUCTURE_AND_TEST_RESULTS.md</code>


403번째 줄: 428번째 줄:
[[분류:검색평가]]
[[분류:검색평가]]
[[분류:연구기획]]
[[분류:연구기획]]
== 2026-07-02 615권 전체 색인 반영 결과 ==
현의 결정에 따라 성경 본문은 1차 DB 구축 범위에서 제외하였다. 따라서 이번 전체 색인 DB는 말씀선집 615권과 원리강론 후보 TXT 78건, FAQ 200개 기준 테스트셋을 중심으로 구성하였다.
=== 전체 청크 생성 결과 ===
{| class="wikitable"
! 항목 !! 결과
|-
| 대상 문헌 || 말씀선집 615권 PDF
|-
| 청크 방식 || 문단 기반 boundary_safe_v1_hardmax1600
|-
| 전체 청크 수 || 178,690개
|-
| 평균 길이 || 약 1,062.2자
|-
| 중앙값 || 약 1,066자
|-
| 최대 길이 || 1,600자
|-
| 문장 경계 연결 보정 || 30,824건
|-
| 문장 중간 시작 의심 || 759건
|-
| 전체 청크 JSONL || full_chunk_runs/20260702_211525_boundary_safe_all/chunks.jsonl
|-
| JSONL 크기 || 약 475MB
|}
=== 전체 DB 적재 결과 ===
{| class="wikitable"
! 항목 !! 결과
|-
| SQLite DB || db_builds/20260702_213134/graphrag_research.sqlite
|-
| DB 크기 || 약 667MB
|-
| source_documents || 693건
|-
| 말씀선집 원본 PDF || 615건
|-
| 원리강론 후보 TXT || 78건
|-
| text_chunks || 178,690건
|-
| faq_records || 200건
|-
| test_results || 200건
|-
| 성경 관련 테이블 || 0개
|-
| SQLite 무결성 검사 || ok
|}
=== FAQ 200개 전체 재테스트 결과 ===
{| class="wikitable"
! 판정 !! 3권 샘플 !! 615권 전체
|-
| strong_evidence || 12 || 113
|-
| reviewable_candidate || 68 || 75
|-
| partial_evidence || 51 || 4
|-
| insufficient_evidence || 69 || 8
|}
615권 전체 색인을 적용한 결과, strong_evidence는 12개에서 113개로 증가했고 insufficient_evidence는 69개에서 8개로 감소하였다. 이는 3권 샘플 단계의 낮은 답변 근거 확보율이 청크 구조 자체의 실패라기보다 색인 범위 부족의 영향이 컸음을 보여 준다.
이번 결과는 이후 PostgreSQL + pgvector 전환의 기준선으로 사용한다. 단, 원리강론 후보 TXT는 아직 공식 판본 대조가 필요하므로 source_status를 candidate_needs_canonical_review로 유지한다.
== 2026-07-02 토큰 사용량 계산 ==
말씀선집 615권 전체 boundary_safe 청크 178,690개를 대상으로 실제 tokenizer 기준 토큰량을 계산하였다. 성경은 현의 결정에 따라 이번 계산 범위에서 제외하였다.
{| class="wikitable"
! 기준 !! 전체 토큰 !! 청크당 평균 !! 청크당 중앙값 !! 최대
|-
| cl100k_base || 182,653,170 || 1,022.18 || 1,015 || 1,711
|-
| o200k_base || 117,157,729 || 655.65 || 649 || 1,231
|}
FAQ 200개 질문 자체는 `cl100k_base` 기준 6,097토큰, `o200k_base` 기준 3,615토큰 수준이다. 그러나 답변 생성 시에는 근거 청크 수가 토큰 사용량을 좌우한다.
{| class="wikitable"
! 기준 !! Top3 근거 !! Top5 근거 !! Top8 근거
|-
| cl100k_base || 약 613,307 || 약 1,022,179 || 약 1,635,486
|-
| o200k_base || 약 393,389 || 약 655,648 || 약 1,049,037
|}
따라서 1차 운영에서는 질문당 Top3~Top5 근거 청크를 기본값으로 두고, 복합 질의나 GraphRAG 관계 확장이 필요한 경우에만 Top8 이상을 사용하는 것이 적절하다. 전체 임베딩은 모델과 비용 기준을 확정한 뒤 실행해야 한다.
== 2026-07-02 Top10 근거 사용 시 모델별 질문당 API 비용 ==
계산 가정은 질문 1개당 말씀선집 근거 청크 Top10을 넣고, 답변 출력을 800토큰으로 생성하는 경우다. `o200k_base` 기준 평균 청크는 약 655.65토큰이며, 질문·지시문·출처 메타데이터 여유분을 포함해 입력값은 약 7,100토큰으로 잡았다. 캐시 입력, Batch API 할인, 지역 처리 uplift, 장문 프롬프트 할증은 제외하였다.
{| class="wikitable"
! 모델 !! 입력 $/1M !! 출력 $/1M !! 질문당 입력비 !! 질문당 출력비 !! 질문당 합계 !! 200문항
|-
| gpt-5-nano || 0.05 || 0.40 || $0.000355 || $0.000320 || $0.000675 || $0.1350
|-
| gpt-5.4-nano || 0.20 || 1.25 || $0.001420 || $0.001000 || $0.002420 || $0.4840
|-
| gpt-5-mini || 0.25 || 2.00 || $0.001775 || $0.001600 || $0.003375 || $0.6750
|-
| gpt-5.4-mini || 0.75 || 4.50 || $0.005325 || $0.003600 || $0.008925 || $1.7850
|-
| gpt-5 || 1.25 || 10.00 || $0.008875 || $0.008000 || $0.016875 || $3.3750
|-
| gpt-5.1-chat-latest || 1.25 || 10.00 || $0.008875 || $0.008000 || $0.016875 || $3.3750
|-
| gpt-5.2 || 1.75 || 14.00 || $0.012425 || $0.011200 || $0.023625 || $4.7250
|-
| gpt-5.4 || 2.50 || 15.00 || $0.017750 || $0.012000 || $0.029750 || $5.9500
|-
| gpt-5.5 || 5.00 || 30.00 || $0.035500 || $0.024000 || $0.059500 || $11.9000
|-
| gpt-5.4-pro || 30.00 || 180.00 || $0.213000 || $0.144000 || $0.357000 || $71.4000
|}
대량 초안 생성은 `gpt-5.4-mini` 또는 `gpt-5-mini`가 현실적이다. 교리적으로 민감하거나 논증이 필요한 질문만 `gpt-5.5` 또는 `gpt-5.4`로 재검토하고, `gpt-5.4-pro`는 최종 난제 검토용으로 제한하는 것이 적절하다.
== 추가 검수 문서 ==
* [[말씀선집 GraphRAG 연구/FAQ 근거 표본 검수 결과|FAQ 200개 근거 표본 검수 결과]]
* [[말씀선집 GraphRAG 연구/FAQ Top10 랭킹 보정 재테스트|FAQ Top10 랭킹 보정 재테스트]]
* [[말씀선집 GraphRAG 연구/FAQ strong 43개 답변 초안|FAQ strong 43개 답변 초안]]
== 관련 후속 문서 ==
* [[말씀선집 GraphRAG 연구/완료 작업 목록과 산출물 보존 계획|완료 작업 목록과 산출물 보존 계획]]
* [[말씀선집 GraphRAG 연구/FAQ strong 답변 자연화 5개 샘플|FAQ strong 답변 자연화 5개 샘플]]

2026년 7월 3일 (금) 03:48 기준 최신판

DB 구조 설계와 테스트 결과

이 문서는 말씀선집 GraphRAG 연구의 데이터베이스 구조 설계, 청크 구조, 3권 샘플 테스트 결과를 논문 본문 또는 부록에 옮길 수 있는 형태로 정리한다.

현재 결과는 전체 615권 투입 전의 1차 샘플 실험이다. 따라서 최종 성능이 아니라, 구조 설계의 타당성과 테스트 방법을 검증하기 위한 기준선으로 해석한다.

1. 샘플 데이터

항목 내용
원본 위치 ~/ffwpcb/말씀선집
전체 자료 규모 PDF 615권, 약 207,548쪽, 약 765MB
샘플 권수 001권, 091권, 154권
샘플 선택 방식 001권 고정, 나머지 2권 랜덤 선택
랜덤 seed 5751795
추출 도구 pdftotext -layout
청크 방식 문단 기반, 800-1,200자 목표, 짧은 조각 병합

2. DB 구조 설계

2.1 기본 원칙

  • 원본 PDF는 NAS에 보존한다.
  • DB에는 원본 파일 경로, 추출 텍스트, 청크, 임베딩, 지식그래프 관계, 테스트 결과만 저장한다.
  • 모든 청크는 권과 페이지 출처를 잃지 않아야 한다.
  • 추출 오류 가능성은 삭제하지 않고 경고 필드로 남긴다.
  • 검색 평가는 DB와 함께 관리하여 재현 가능하게 한다.

2.2 관계형 DB 테이블 설계

테이블 용도 주요 필드
source_files 원본 PDF 파일 등록 file_id, volume, file_name, source_path, file_size, sha256, page_count
volumes 권 단위 메타데이터 volume, title, page_count, source_file_id
sermons 설교 단위 구조 sermon_id, volume, title, date, place, scripture, page_start, page_end
pages PDF 페이지별 추출 텍스트 page_id, volume, pdf_page, printed_page, raw_text, normalized_text
paragraphs 문단 단위 텍스트 paragraph_id, volume, page_start, page_end, paragraph_index, text, warnings
chunks RAG 검색 기본 단위 chunk_id, volume, page_start, page_end, sermon_id, section_title, text, char_count, paragraph_count, warnings
chunk_embeddings 벡터 검색 chunk_id, embedding_model, embedding, created_at
extraction_warnings 추출 우려사항 기록 warning_id, target_type, target_id, warning_type, detail
retrieval_test_queries 검색 평가 질의 query_id, query, expected_volume, expected_page, query_type
retrieval_test_runs 검색 평가 실행 run_id, run_at, retrieval_method, chunk_version, notes
retrieval_test_results 검색 평가 결과 run_id, query_id, rank, chunk_id, score, is_expected_volume

2.3 그래프 DB 구조

GraphRAG 고도화 단계에서는 Neo4j 또는 동등한 그래프 저장소를 사용한다.

노드 의미
Volume 말씀선집 권
Sermon 설교 단위
Page 페이지
Chunk 검색 청크
Person 인물
Place 장소
Concept 핵심 개념
DoctrineTerm 섭리/교리 용어
Event 사건
Topic 주제군
관계 의미
CONTAINS 포함 관계
NEXT 순차 관계
MENTIONS 언급 관계
EXPLAINS 설명 관계
RELATED_TO 의미 관련
CONTRASTS_WITH 대비 관계
EVIDENCE_OF 근거 관계
BELONGS_TO_TOPIC 주제 소속

3. 청크 구조

필드 설명
chunk_id 권수와 순번을 포함한 고유 ID
volume 말씀선집 권수
file_name 원본 PDF 파일명
page_start 청크 시작 PDF 페이지
page_end 청크 종료 PDF 페이지
sermon_title 설교 제목
section_title 소제목
date 설교 날짜
place 설교 장소
paragraph_count 청크 안 문단 수
char_count 청크 글자 수
text 청크 본문
extraction_warnings 추출 우려사항

추출 우려사항

경고 유형 의미 예시
word_spacing_suspected 줄바꿈으로 단어 내부 공백 발생 가능 허락하 여, 되 는
page_boundary_join_needed 페이지 경계에서 문장 연결 필요 이전 페이지 문장이 종결되지 않음
starts_mid_sentence 청크가 문장 중간에서 시작 는 자녀들로...
metadata_mixed_in_text 제목/날짜/장소가 본문에 섞임 1977년 1월 16일...
short_fragment_merged 짧은 조각을 앞 청크에 병합 300자 미만 조각

4. 샘플 청크 생성 결과

권수 파일명 청크 수 포함 페이지 비고
001권 001권.pdf 364 약 341쪽 고정 샘플
091권 091권.pdf 325 약 321쪽 랜덤 샘플
154권 154권-김지연.pdf 342 약 345쪽 랜덤 샘플
합계 3권 1,031 약 1,007쪽 1차 테스트

5. 구조 품질 테스트 결과

항목 결과 해석
전체 청크 수 1,031개 3권 샘플 기준
평균 글자 수 약 1,043자 목표 범위에 근접
중앙값 약 1,065자 안정적 분포
최소/최대 313자 / 1,470자 매우 짧은 조각은 대부분 병합됨
목차/점선 노이즈 0개 목차 제거 성공
3쪽 초과 청크 0개 출처 범위가 과도하게 넓지 않음
문장 중간 시작 의심 205개 페이지/줄 경계 보정 필요

6. 검색 테스트 결과 요약

테스트 유형 질의 수 Top1 성공 Top5 성공 해석
일반 개념/키워드 테스트 30 26/30 29/30 반복 개념어는 1순위가 흔들릴 수 있음
고유 문장형 테스트 30 30/30 30/30 권별 고유 표현은 정확히 검색됨

일반 개념 테스트에서 일부 1순위가 흔들린 이유는 하나님의 심정, 천적인 사명, 세계적인 운세처럼 여러 권에서 반복되는 표현이기 때문이다. 이는 청크 자체의 실패라기보다 질의 유형과 랭킹 방식의 문제로 해석한다.

7. 고유 문장형 검색 테스트 결과표

ID 유형 질의 기대 권수 1순위 결과 Top1 Top5
D001-01 제목형 승리하는 하나님의 정병 001권 001권 11-11쪽 vol001-00005 성공 성공
D001-02 고유문장형 사탄의 화살의 자국 001권 001권 9-10쪽 vol001-00004 성공 성공
D001-03 고유문장형 생명의 기름을 발라 001권 001권 9-10쪽 vol001-00004 성공 성공
D001-04 고유문장형 새로운 부활의 붕대 001권 001권 9-10쪽 vol001-00004 성공 성공
D001-05 고유문장형 사탄과 정면 충돌 001권 001권 11-11쪽 vol001-00005 성공 성공
D001-06 개념정의형 정병이라는 말은 본래부터 001권 001권 11-11쪽 vol001-00005 성공 성공
D001-07 개념관계형 싸움의 직접적인 책임 001권 001권 12-12쪽 vol001-00006 성공 성공
D001-08 고유문장형 섭리의 전체를 책임지고 001권 001권 12-12쪽 vol001-00006 성공 성공
D001-09 고유문장형 예수 그리스도가 왔다 가신 지 001권 001권 15-15쪽 vol001-00010 성공 성공
D001-10 개념관계형 6천년 섭리의 전체 001권 001권 12-12쪽 vol001-00006 성공 성공
D091-01 제목형 나는 누구에게 속해 있는가 091권 091권 7-7쪽 vol091-00001 성공 성공
D091-02 장소형 태리타운 땅 자체 091권 091권 7-7쪽 vol091-00001 성공 성공
D091-03 개념문장형 심정에 속하고 싶다고 091권 091권 9-9쪽 vol091-00003 성공 성공
D091-04 개념문장형 하나님의 심정은 영원합니다 091권 091권 7-8쪽 vol091-00002 성공 성공
D091-05 비교문장형 돈에 속하는 사람이 091권 091권 9-9쪽 vol091-00003 성공 성공
D091-06 고유문장형 공통적인 대답 091권 091권 9-9쪽 vol091-00003 성공 성공
D091-07 주제문장형 통일교회 자체를 두고 볼 때 091권 091권 7-8쪽 vol091-00002 성공 성공
D091-08 개념문장형 심정적인 주체 091권 091권 7-7쪽 vol091-00001 성공 성공
D091-09 고유문장형 여러분 자체를 중심삼고 많은 경계선 091권 091권 7-7쪽 vol091-00001 성공 성공
D091-10 장소형 벨베디아 수련소 091권 091권 238-238쪽 vol091-00235 성공 성공
D154-01 제목형 세계적인 승리자가 되자 154권 154권 9-9쪽 vol154-00001 성공 성공
D154-02 소제목형 큰 사명과 큰 책임 154권 154권 9-9쪽 vol154-00001 성공 성공
D154-03 고유문장형 민족을 지도할 수 있는 뜻 154권 154권 9-9쪽 vol154-00001 성공 성공
D154-04 고유문장형 죄악세계에서 개인을 구하고 154권 154권 10-10쪽 vol154-00002 성공 성공
D154-05 고유문장형 천주를 구한다는 엄청난 사명 154권 154권 10-10쪽 vol154-00002 성공 성공
D154-06 개념문장형 악한 세계, 악한 국가 154권 154권 11-11쪽 vol154-00003 성공 성공
D154-07 개념문장형 승리할 수 있는 기반 154권 154권 11-11쪽 vol154-00003 성공 성공
D154-08 개념문장형 하나님의 심정세계 154권 154권 11-11쪽 vol154-00003 성공 성공
D154-09 고유문장형 그간 비좁은 가운데서 긴 40일 154권 154권 9-9쪽 vol154-00001 성공 성공
D154-10 개념문장형 내적 결의 154권 154권 10-10쪽 vol154-00002 성공 성공

8. 논문용 해석 문장

3권 샘플을 대상으로 한 문단 기반 청크 실험에서, 고유 문장형 질의 30개는 모두 기대 권수를 1순위로 검색하였다. 이는 권·페이지 출처를 보존한 문단 기반 청크가 원문 근거 검색에 효과적임을 보여준다. 다만 일반 개념어 질의에서는 반복 출현 개념으로 인해 1순위가 흔들리는 사례가 있었으므로, 향후 검색 단계에서는 키워드 검색, 벡터 검색, 그래프 관계 확장을 결합한 하이브리드 검색 구조가 필요하다.

또한 205개의 문장 중간 시작 의심 청크가 발견되었으므로, 최종 DB 투입 전에는 페이지 경계 문장 이어붙이기와 단어 내부 공백 보정이 필요하다. 이 문제는 현재 실험의 실패라기보다, 대규모 PDF 기반 종교 강연문 말뭉치를 처리할 때 반드시 기록하고 보정해야 할 추출 품질 관리 항목으로 본다.

9. 다음 단계

  1. 페이지 경계 문장 이어붙이기 보정본 생성
  2. 보정 전/후 품질 비교
  3. PostgreSQL + pgvector 스키마 생성
  4. 샘플 3권 청크 적재
  5. 키워드 검색, 벡터 검색, GraphRAG 검색 결과 비교

10. 1차 일반 개념/키워드 테스트의 문제 분석

1차 테스트는 30개의 일반 개념어와 키워드형 질의를 사용하였다. 이 테스트의 목적은 문단 기반 청크가 단순 키워드 검색 상황에서 관련 권과 페이지를 얼마나 잘 찾아내는지 확인하는 것이었다. 결과는 Top1 26/30, Top5 29/30이었다. 표면적으로는 4개의 질의가 1순위 검색에 실패했고, 1개의 질의는 Top5에서도 기대 권수를 찾지 못했다.

그러나 이 결과는 청크 구조 자체가 잘못되었다는 뜻으로 해석하면 안 된다. 실패한 질의들은 대부분 특정 권에만 고유한 표현이 아니라 말씀선집 전체에서 반복될 수 있는 일반 신앙어, 섭리어, 개념어였다. 예를 들어 하나님의 심정, 천적인 사명, 세계적인 운세, 하나의 중심 같은 표현은 한 권의 고유 문장이 아니라 여러 권에서 반복적으로 사용될 수 있는 범용 개념어이다. 이런 질의는 키워드 검색만으로 특정 권을 1순위로 고정하기 어렵다.

1차 테스트에서 드러난 핵심 문제는 다음과 같다.

문제 설명 논문적 의미
개념어의 반복성 같은 신앙 개념이 여러 권에서 반복 출현 단순 키워드 검색만으로는 권별 맥락을 구분하기 어렵다
질의 맥락 부족 하나님의 심정처럼 짧은 질의는 시대, 설교, 주제 범위를 지정하지 않음 검색 질의에는 개념뿐 아니라 맥락 조건이 필요하다
랭킹 기준의 한계 단어 빈도나 단순 포함 여부만으로는 연구자가 의도한 권을 판단하기 어려움 벡터 검색과 그래프 관계 확장이 필요하다
기대 정답 설정의 어려움 일반 개념어는 특정 권 하나만 정답이라고 보기 어려움 평가셋을 고유 문장형, 개념형, 관계형으로 분리해야 한다

따라서 1차 테스트는 실패한 실험이 아니라, 말씀선집과 같은 대규모 종교 강연문 말뭉치에서 단순 키워드 검색이 갖는 구조적 한계를 보여준 실험이다. 특히 말씀선집은 동일 개념이 시대와 상황에 따라 반복, 변주, 확장되는 자료이기 때문에, 일반 개념어 검색은 단일 청크 검색만으로 평가하기보다 관련 청크 묶음, 시대별 흐름, 개념 관계망까지 함께 보아야 한다.

논문에서는 이 결과를 다음과 같이 해석할 수 있다.

일반 개념어 기반 검색에서는 반복 출현 개념으로 인해 1순위 검색 결과가 기대 권수와 일치하지 않는 사례가 발생하였다. 이는 문단 기반 청크의 실패라기보다, 말씀선집처럼 장기간 축적된 종교 강연문 말뭉치에서 동일 개념이 여러 문맥에 걸쳐 반복되는 특성에서 비롯된 것이다. 따라서 일반 개념어 검색에는 단순 키워드 매칭을 넘어, 권·설교·시대·주제 관계를 반영하는 GraphRAG 구조가 필요하다.

11. 2차 고유 문장형 테스트의 성공 이유

2차 테스트는 1차 테스트와 달리 각 권의 고유 문장, 제목, 장소 표현, 특징적인 문맥 표현을 중심으로 질의를 구성하였다. 예를 들어 승리하는 하나님의 정병, 사탄의 화살의 자국, 태리타운 땅 자체, 세계적인 승리자가 되자, 죄악세계에서 개인을 구하고 같은 질의는 특정 권과 특정 페이지에 강하게 결합된 표현이다.

이 테스트의 결과는 Top1 30/30, Top5 30/30이었다. 이는 문단 기반 청크가 권·페이지 출처를 보존한 상태에서 원문 근거를 찾아내는 데 효과적임을 보여준다.

2차 테스트가 성공한 이유는 다음과 같다.

성공 요인 설명 효과
고유 표현 사용 특정 권과 페이지에 가까운 문장을 질의로 사용 검색 결과가 분산되지 않고 해당 권으로 집중됨
문단 기반 청크 문장 주변 맥락이 함께 보존됨 검색 결과가 단어 조각이 아니라 설교 흐름 단위로 제공됨
권·페이지 메타데이터 유지 모든 청크가 volume, page_start, page_end를 가짐 논문과 목회 활용에서 출처 제시 가능
목차 노이즈 제거 목차/점선 청크가 검색 결과에 끼어들지 않음 본문 근거 검색의 정확도 향상
짧은 조각 병합 300자 미만 조각이 대부분 앞 청크와 결합됨 단편적 검색 결과 감소

이 결과는 문단 기반 청크가 “원문 근거 검색”이라는 1차 목표에는 적합하다는 것을 보여준다. 특히 논문에서 중요한 것은 AI가 답변을 만들어내는 능력보다, 어떤 원문을 근거로 답하는지 추적할 수 있는가이다. 2차 테스트는 이 출처 추적 가능성을 확인한 실험이다.

다만 2차 테스트의 성공을 과도하게 해석해서는 안 된다. 고유 문장형 검색은 정확한 원문 구절을 찾는 데 유리하지만, 사용자가 실제로 던지는 질문은 대개 사랑이란 무엇인가, 심정과 복귀섭리는 어떻게 연결되는가, 승리의 개념은 시대별로 어떻게 변화하는가처럼 더 넓은 개념형 또는 관계형 질문일 가능성이 높다. 따라서 2차 테스트는 GraphRAG 전체 성능을 증명한 것이 아니라, 문단 기반 청크와 출처 메타데이터가 원문 검색의 기초 구조로 유효하다는 것을 증명한 것으로 보아야 한다.

논문에서는 다음과 같이 쓸 수 있다.

고유 문장형 검색에서는 30개 질의 모두 기대 권수를 1순위로 검색하였다. 이는 문단 기반 청크가 원문 구절과 권·페이지 출처를 함께 보존할 때, 특정 말씀 구절의 근거 검색에 매우 효과적임을 보여준다. 그러나 이 결과는 고유 표현 검색에 대한 성능을 의미하며, 일반 개념어와 관계형 질의에 대해서는 GraphRAG 기반의 개념 관계 확장이 추가로 필요하다.

12. 1차와 2차 테스트 비교

비교 항목 1차 일반 개념/키워드 테스트 2차 고유 문장형 테스트
테스트 목적 일반 개념어 검색의 가능성과 한계 확인 원문 근거와 출처 추적 가능성 확인
질의 성격 반복 출현 가능성이 높은 개념어 특정 권과 페이지에 가까운 고유 표현
예시 질의 하나님의 심정, 천적인 사명, 세계적인 운세 사탄의 화살의 자국, 태리타운 땅 자체, 죄악세계에서 개인을 구하고
결과 Top1 26/30, Top5 29/30 Top1 30/30, Top5 30/30
실패/오차 원인 개념어가 여러 권에 반복되어 1순위가 흔들림 거의 없음
해석 단순 키워드 검색만으로는 개념 맥락 구분이 어렵다 문단 기반 청크는 원문 근거 검색에 효과적이다
GraphRAG 필요성 매우 높음. 개념 관계와 시대별 맥락이 필요 출처 기반 검색의 기초 구조로 활용 가능
논문 내 위치 문제 제기와 GraphRAG 필요성 근거 제안 구조의 1차 타당성 근거

두 테스트는 서로 모순되는 결과가 아니다. 오히려 함께 제시될 때 연구의 논리가 분명해진다. 1차 테스트는 말씀선집 검색에서 일반 개념어 검색만으로는 부족하다는 것을 보여준다. 2차 테스트는 문단 기반 청크가 원문 근거를 정확히 찾아낼 수 있음을 보여준다. 따라서 본 연구의 방향은 단순 키워드 검색을 폐기하는 것이 아니라, 문단 기반 청크를 기초로 하되 일반 개념형 질문에는 GraphRAG의 관계 확장을 결합하는 것이다.

논문 구조상 이 비교는 다음 논리로 배치할 수 있다.

  1. 말씀선집은 동일 개념이 여러 권에서 반복되는 대규모 종교 강연문 말뭉치이다.
  2. 따라서 일반 개념어 검색은 1순위 정확도가 흔들릴 수 있다.
  3. 그러나 문단 기반 청크는 고유 문장형 원문 근거 검색에서 높은 정확도를 보였다.
  4. 그러므로 본 연구는 문단 기반 청크를 기본 검색 단위로 삼고, 개념형·관계형 질의에는 GraphRAG를 결합한다.

13. 논문 본문 삽입용 서술

다음 문단은 논문 본문에 바로 삽입할 수 있는 형태의 초안이다.

본 연구는 말씀선집 3권 샘플(001권, 091권, 154권)을 대상으로 문단 기반 청크 구조의 검색 가능성을 예비 실험하였다. 일반 개념어 및 키워드형 질의 30개를 적용한 결과 Top1 정확도는 26/30, Top5 정확도는 29/30으로 나타났다. 일부 질의에서 1순위 검색이 기대 권수와 일치하지 않은 이유는 하나님의 심정, 천적인 사명, 세계적인 운세와 같은 표현이 특정 권에만 고유한 것이 아니라 여러 권에서 반복되는 일반 개념어였기 때문이다. 이는 말씀선집과 같은 대규모 종교 강연문 말뭉치에서 단순 키워드 검색만으로는 개념의 시대적·주제적 맥락을 충분히 구분하기 어렵다는 점을 보여준다.

반면 각 권의 고유 문장과 특징적 표현을 중심으로 구성한 30개 질의에서는 Top1과 Top5 모두 30/30의 결과를 보였다. 이는 문단 기반 청크가 권·페이지 출처를 보존한 상태에서 특정 원문 구절을 검색하는 데 효과적임을 보여준다. 따라서 본 연구에서 제안하는 청크 구조는 원문 근거 검색의 기초 단위로 적합하다고 볼 수 있다. 다만 일반 개념형 질의에서는 동일 개념의 반복 출현으로 인해 검색 결과가 분산될 수 있으므로, 향후 단계에서는 키워드 검색과 벡터 검색뿐 아니라 개념 간 관계, 설교 시기, 주제군을 함께 고려하는 GraphRAG 구조가 필요하다.

또한 구조 품질 테스트에서 문장 중간 시작 의심 청크가 205개 발견되었다. 이는 PDF 추출 과정에서 문장이나 단어가 줄 또는 페이지 경계를 넘어가며 분리될 수 있음을 의미한다. 따라서 최종 DB 투입 전에는 페이지 경계 문장 이어붙이기, 단어 내부 공백 보정, 제목·날짜·장소의 메타데이터 분리 절차가 추가되어야 한다. 본 연구는 이러한 추출 우려사항을 삭제하거나 은폐하지 않고 extraction_warnings 필드로 기록하여, 추후 재처리와 품질 평가가 가능하도록 설계한다.

14. 문장 경계 보정 결과

문장 중간 시작 의심 205개 문제는 별도 보정 실험으로 다루었다. 자세한 원인 분석, 보정 알고리즘, 전후 비교표, 논문 삽입용 서술은 말씀선집 GraphRAG 연구/문장 경계 보정 전략과 결과에 정리하였다.

항목 기준선 경계 보정 후
전체 청크 수 1,031개 949개
평균 글자 수 1,043.1자 1,074.7자
최대 글자 수 1,470자 1,599자
기준선 판정 의심 시작 205개 88개
실제 위험군 판정 126개 4개
일반 키워드 Top1/Top5 26/30, 29/30 26/30, 29/30
고유 문장형 Top1/Top5 30/30, 30/30 30/30, 30/30

따라서 1차 DB 투입 후보 청크는 boundary_safe, hard_max_chars=1600 보정본으로 둔다.

관련 문서

2026-07-02 615권 전체 색인 반영 결과

현의 결정에 따라 성경 본문은 1차 DB 구축 범위에서 제외하였다. 따라서 이번 전체 색인 DB는 말씀선집 615권과 원리강론 후보 TXT 78건, FAQ 200개 기준 테스트셋을 중심으로 구성하였다.

전체 청크 생성 결과

항목 결과
대상 문헌 말씀선집 615권 PDF
청크 방식 문단 기반 boundary_safe_v1_hardmax1600
전체 청크 수 178,690개
평균 길이 약 1,062.2자
중앙값 약 1,066자
최대 길이 1,600자
문장 경계 연결 보정 30,824건
문장 중간 시작 의심 759건
전체 청크 JSONL full_chunk_runs/20260702_211525_boundary_safe_all/chunks.jsonl
JSONL 크기 약 475MB

전체 DB 적재 결과

항목 결과
SQLite DB db_builds/20260702_213134/graphrag_research.sqlite
DB 크기 약 667MB
source_documents 693건
말씀선집 원본 PDF 615건
원리강론 후보 TXT 78건
text_chunks 178,690건
faq_records 200건
test_results 200건
성경 관련 테이블 0개
SQLite 무결성 검사 ok

FAQ 200개 전체 재테스트 결과

판정 3권 샘플 615권 전체
strong_evidence 12 113
reviewable_candidate 68 75
partial_evidence 51 4
insufficient_evidence 69 8

615권 전체 색인을 적용한 결과, strong_evidence는 12개에서 113개로 증가했고 insufficient_evidence는 69개에서 8개로 감소하였다. 이는 3권 샘플 단계의 낮은 답변 근거 확보율이 청크 구조 자체의 실패라기보다 색인 범위 부족의 영향이 컸음을 보여 준다.

이번 결과는 이후 PostgreSQL + pgvector 전환의 기준선으로 사용한다. 단, 원리강론 후보 TXT는 아직 공식 판본 대조가 필요하므로 source_status를 candidate_needs_canonical_review로 유지한다.

2026-07-02 토큰 사용량 계산

말씀선집 615권 전체 boundary_safe 청크 178,690개를 대상으로 실제 tokenizer 기준 토큰량을 계산하였다. 성경은 현의 결정에 따라 이번 계산 범위에서 제외하였다.

기준 전체 토큰 청크당 평균 청크당 중앙값 최대
cl100k_base 182,653,170 1,022.18 1,015 1,711
o200k_base 117,157,729 655.65 649 1,231

FAQ 200개 질문 자체는 `cl100k_base` 기준 6,097토큰, `o200k_base` 기준 3,615토큰 수준이다. 그러나 답변 생성 시에는 근거 청크 수가 토큰 사용량을 좌우한다.

기준 Top3 근거 Top5 근거 Top8 근거
cl100k_base 약 613,307 약 1,022,179 약 1,635,486
o200k_base 약 393,389 약 655,648 약 1,049,037

따라서 1차 운영에서는 질문당 Top3~Top5 근거 청크를 기본값으로 두고, 복합 질의나 GraphRAG 관계 확장이 필요한 경우에만 Top8 이상을 사용하는 것이 적절하다. 전체 임베딩은 모델과 비용 기준을 확정한 뒤 실행해야 한다.

2026-07-02 Top10 근거 사용 시 모델별 질문당 API 비용

계산 가정은 질문 1개당 말씀선집 근거 청크 Top10을 넣고, 답변 출력을 800토큰으로 생성하는 경우다. `o200k_base` 기준 평균 청크는 약 655.65토큰이며, 질문·지시문·출처 메타데이터 여유분을 포함해 입력값은 약 7,100토큰으로 잡았다. 캐시 입력, Batch API 할인, 지역 처리 uplift, 장문 프롬프트 할증은 제외하였다.

모델 입력 $/1M 출력 $/1M 질문당 입력비 질문당 출력비 질문당 합계 200문항
gpt-5-nano 0.05 0.40 $0.000355 $0.000320 $0.000675 $0.1350
gpt-5.4-nano 0.20 1.25 $0.001420 $0.001000 $0.002420 $0.4840
gpt-5-mini 0.25 2.00 $0.001775 $0.001600 $0.003375 $0.6750
gpt-5.4-mini 0.75 4.50 $0.005325 $0.003600 $0.008925 $1.7850
gpt-5 1.25 10.00 $0.008875 $0.008000 $0.016875 $3.3750
gpt-5.1-chat-latest 1.25 10.00 $0.008875 $0.008000 $0.016875 $3.3750
gpt-5.2 1.75 14.00 $0.012425 $0.011200 $0.023625 $4.7250
gpt-5.4 2.50 15.00 $0.017750 $0.012000 $0.029750 $5.9500
gpt-5.5 5.00 30.00 $0.035500 $0.024000 $0.059500 $11.9000
gpt-5.4-pro 30.00 180.00 $0.213000 $0.144000 $0.357000 $71.4000

대량 초안 생성은 `gpt-5.4-mini` 또는 `gpt-5-mini`가 현실적이다. 교리적으로 민감하거나 논증이 필요한 질문만 `gpt-5.5` 또는 `gpt-5.4`로 재검토하고, `gpt-5.4-pro`는 최종 난제 검토용으로 제한하는 것이 적절하다.

추가 검수 문서

관련 후속 문서