공군 AiRWARDS Legal Document Parsing Contextual Embedding Development Note
Hierarchy Metadata Adaptive Chunking

Legal RAG Pipeline Contextual Embedding

법률 문서의 구조를 이해하는 RAG 파이프라인

공군 AiRWARDS RAG 파이프라인에서 공군규정, 국방부 행정규칙, 대한민국 법령을 검색하려면 조항 본문만으로는 부족했습니다. 장-절-조 헤더를 파싱해 각 chunk의 hierarchy metadata로 저장하고, 조항 길이에 따라 청크를 분할·병합해 법률 문서상의 위치 정보를 embedding 단계까지 보존했습니다.

  • 공군 AI신기술체계개발대 데이터플랫폼팀에서 복무하며, 공군인들이 사용하는 LLM 서비스 AiRWARDS를 위한 RAG 파이프라인을 연구개발했습니다.
  • 공군 내부에서 자주 참조하는 공군규정, 국방부 행정규칙, 대한민국 법령을 LLM이 이해하고 질의와 관련된 규정을 찾아 답변하도록 문서 전처리 방식을 설계했습니다.
  • 한국어 Legal Document는 대체로 장-절-조 계층을 따릅니다. 예를 들어 건강검진기본법 > 제3장 국가건강검진 > 제18조 검진자료의 활용 등처럼 상위 계층이 조항 의미를 결정합니다.
  • 법률 문서는 명확한 계층 구조를 가지므로, chunk가 문서상 어느 위치에 속하는지 알아야 조항의 의미를 정확하게 해석할 수 있습니다.
  • 하나의 장 또는 절은 여러 조로 구성됩니다. 하위 조항은 상위 헤더와 멀리 떨어져 있어, 일반 Document Chunking 과정에서 장·절 문맥이 chunk 경계 밖으로 사라지는 문제가 생깁니다.
  • 제18조 검진자료의 활용 등이라는 조항만 검색되면 어떤 검진자료를 말하는지 불명확합니다. 이 경우 필요한 조항이 검색되지 않거나, 무관한 질의에 잘못된 결과가 반환되어 환각을 유발할 수 있습니다.
  • 조항 길이도 일정하지 않습니다. 긴 조항은 중간에서 잘리고, 짧은 조항은 파편 chunk가 되어 Top-K를 낭비합니다.
Figure 1. 계층 문맥이 빠진 조항 chunk의 의미 손실
DOCUMENT HIERARCHY 건강검진기본법 제3장 국가건강검진 제18조 검진자료의 활용 등 naive chunking CHUNK TEXT ONLY 제18조 검진자료의 활용 등 상위 장·절 정보 없음 검색 의미가 모호해지고 환각 위험이 커짐
  • 한국 법령문서가 제n장, 제n절, 제n조(내용) 형식을 따른다는 점을 이용해 정규표현식으로 헤더를 파싱했습니다.
  • 파싱한 헤더로 법령 문서 트리를 만들고, 각 조항 chunk에 법령명, 장, 절, 조 정보를 hierarchy metadata로 저장했습니다.
  • 임베딩 단계에서는 조항 본문과 계층 metadata를 함께 반영해 Dense Retrieval이 조항의 상위 문맥을 같이 보도록 구성했습니다.
Figure 2. Header Parsing → Hierarchy Metadata → Contextual Embedding
01 PARSE Regex Header 제3장 제1절 제24조(고유식별정보...) 02 BUILD TREE 장-절-조 계층 법령명 제3장 개인정보의 처리 제24조 처리 제한 03 EMBED Contextual Chunk hierarchy: [법령명, 장, 절, 조] 본문 + 계층 metadata

조항 단락을 기준으로 일괄 분할하면 과대 chunk와 과소 chunk가 함께 생깁니다. 그래서 계층 구조를 유지한 상태에서 조항 길이에 따라 분할과 병합을 다르게 적용했습니다.

OVERSIZE

긴 조항은 재귀 분할

청크 크기 최대값을 넘는 조항은 RecursiveCharacterTextSplitter로 나눴습니다. 분할된 chunk들은 같은 hierarchy metadata를 공유합니다.

MERGE

합칠 수 있는 조항은 병합

목표 chunk size 안에서 합칠 수 있는 조항들은 서로 병합했습니다. 최소 chunk size에 미달하는 과소 chunk는 바로 이전 chunk에 붙였습니다.

BOTTOM-UP

Leaf를 모아 Parent 생성

Leaf Node들을 bottom-up으로 모아 목표 크기에 맞는 Parent Node를 만들었습니다. 검색 정밀도와 생성 문맥량의 균형을 잡기 위한 구조입니다.

Figure 3. Adaptive Chunking · split, merge, parent build
Article Units 긴 조항 짧은 조항들 Normalized Leaf Chunks split, same hierarchy merge small clauses Parent Node · bottom-up context package
  • 길이가 긴 규정 단락도 상위 법률 계층 문맥과 함께 LLM에 전달되어, 모델이 조항의 적용 범위를 더 안정적으로 해석했습니다.
  • 임베딩 과정에서 해당 chunk가 속한 법률 계층구조 hierarchy 필드를 반영해, Dense Retrieval이 질의와 관련된 규정을 더 잘 찾도록 개선했습니다.
  • 파편화된 chunk를 줄여 Top-K가 짧은 조각에 낭비되는 현상을 억제했습니다.
01

Context Preservation

조항 본문과 상위 장·절 정보를 함께 보존해 문서상 위치를 잃지 않았습니다.

02

Retrieval Precision

hierarchy metadata를 embedding에 반영해 조항명만으로 모호한 질의의 검색 단서를 보강했습니다.

03

Top-K Efficiency

너무 작은 chunk를 병합해 검색 결과 슬롯이 조각난 문단에 잠식되는 문제를 줄였습니다.

정규표현식 기반 파싱의 형식 의존성

법률 문서가 일정한 형식을 따른다는 전제에 의존합니다. 서식이 불균일한 내부 규정, 부칙, 별표, 별지는 장-절-조 구조만으로 안정적으로 파싱하기 어렵습니다.

계층 정보만으로 해결되지 않는 질의

포괄적이거나 암묵적인 질의는 hierarchy metadata만으로 의미적 간극을 완전히 줄이기 어렵습니다. Sparse Retrieval 또는 Hybrid Retrieval과의 결합이 필요합니다.

정량 평가의 필요

정성적 개선은 확인했지만, 일반 청킹, 조항 단위 청킹, hierarchy 기반 청킹 간 Recall@K, MRR, nDCG 비교가 추가로 필요합니다.

이 개발노트에서는 Legal Document의 장-절-조 계층 구조를 파싱하고, 이를 chunk의 hierarchy metadata로 반영하는 Contextual Embedding 방법론을 정리했습니다.

이 방식은 개별 조항이 문서상 어느 위치에 속하는지 보존하여, 단순 fixed-size chunking이나 조항 단위 chunking에서 발생하는 문맥 소실 문제를 완화합니다. 조항 길이에 따라 chunk를 동적으로 분할하거나 병합해 과대 chunk와 과소 chunk도 줄였습니다.

결과적으로 Legal Document Parsing 및 Contextual Embedding은 공군 내부 규정, 국방부 행정규칙, 대한민국 법령처럼 계층 구조가 중요한 문서를 대상으로 하는 RAG 파이프라인에서 검색 품질과 답변 신뢰성을 높이는 전처리 전략입니다.

EVALUATION

청킹 전략 비교 평가

  • 비교군 구성: fixed-size chunking, 조항 단위 chunking, hierarchy 기반 chunking을 같은 질의 세트로 비교합니다.
  • 검색 지표: Recall@K, MRR, nDCG로 정답 근거 조항이 상위 결과에 포함되는지 측정합니다.
RETRIEVAL

Hybrid Retrieval 결합

  • 법령명, 조항번호, 고유한 행정 용어가 포함된 질의는 Sparse Retrieval 신호가 강합니다.
  • Dense Retrieval과 BM25 계열 검색을 결합해 계층 의미와 키워드 일치를 함께 활용할 수 있습니다.
PARSER

부칙·별표·별지 처리

  • 장-절-조 구조에 잘 들어맞지 않는 부칙, 별표, 별지 문서를 별도 parser branch로 처리합니다.
  • 표 구조, 번호 목록, 개정 이력 정보를 metadata로 분리하면 법률 문서 검색의 안정성을 더 높일 수 있습니다.