본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 16. 06:28

LegalGraphRAG: 멀티 에이전트 그래프 검색을 통합한 법률 판결 예측 평가 프레임워크

요약

LegalGraphRAG는 멀티 에이전트 그래프 검색을 통합하여 법률 판결을 예측하고 평가하는 프레임워크입니다. 다양한 LLM과 법률 데이터셋을 지원하며, 기존 베이스라인 모델들과의 재현 가능한 비교 기능을 제공합니다.

핵심 포인트

  • 멀티 에이전트 그래프 검색 기반의 법률 판결 예측 프레임워크
  • Qwen, DeepSeek, GPT, Gemma 등 다양한 LLM 지원
  • CAIL, CMDL 등 전문 법률 데이터셋 활용 및 자동 평가 기능
  • HippoRAG2, RAPTOR 등 기존 베이스라인과의 비교 가능

멀티 에이전트 (Multi-agent) 그래프 검색을 통합하고, 여러 모델 및 베이스라인 (Baselines) 간의 재현 가능한 비교를 지원하는 법률 판결 예측을 위한 평가 프레임워크입니다.


  • 자동 평가 (Automated Evaluation): 법률 판결 예측 작업을 위해 Accuracy (Acc)Micro-F1을 자동으로 계산합니다. - ✅
    멀티 모델 지원 (Multi-Model Support): Qwen, DeepSeek, GPT, InternLM, GLM, Gemma 등을 지원합니다. - ✅
    데이터셋 커버리지 (Dataset Coverage): CAIL 및 CMDL과 같은 법률 데이터셋을 포함합니다. - ✅
    베이스라인 비교 (Baseline Comparison): HippoRAG2, RAPTOR, LightRAG, LegalΔ, ADAPT와 직접적인 비교를 가능하게 합니다.
LegalGraphRAG/
├── core/ # 핵심 모듈 (Core modules)
│ ├── LegalGraphRAG.py # 메인 LegalGraphRAG 클래스
...
# 의존성 설치 (Install dependencies)
pip install -r requirements.txt
# 환경 파일 복사 및 설정 (Copy and configure environment file)
...

다음 소스 파일들을 ./raw_data/ 아래에 배치하세요:

final_test.json: 케이스 코퍼스 (Case corpus) 구축에 사용되는 원본 CAIL 사건 기록.
law_to_crime.json: 법 조항 ID에서 후보 범죄로의 기본 매핑.
criminal_law_processed.json: 구조화된 형법 조항 (조항 ID + 항목 텍스트).
judicial_explanations.json: 법 조항 ID와 연결된 사법 해석 스니펫 (Snippets).
law_corpus.jsonl: 법률 텍스트가 누락되었을 때 폴백 (Fallback) 용도로 사용되는 전체 법률 텍스트 코퍼스.

한 번의 명령으로 필요한 모든 데이터를 준비하세요:

python scripts/prepare_data.py --dotenv-path .env --raw-data-dir ./raw_data

이 파이프라인은 다음 네 가지 작업을 순서대로 수행합니다:

  • 원본 기록으로부터 샘플링된 CAIL 케이스를 구축합니다.
  • datasets/ 아래에 평가 입력 파일을 생성합니다.
  • LLM을 사용하여 구조화된 케이스 특징 (Case features)을 추출합니다.
  • LLM을 사용하여 법률 판결 의존성 힌트 (Law judgment dependency hints)를 생성합니다.
  • 법률 리소스를 최종 프로젝트 준비 완료 상태인 법률 매핑 데이터로 병합합니다.

이 단계들을 마친 후, 다음 파일들이 모두 존재하는지 확인하세요:

datas/cases_with_feature.json
datasets/crime_data_CAIL_small.json
datas/law_to_crime.json

python run.py --model qwen3 --datasets CAIL --devices cuda:2 cuda:3

주요 인자 (Main arguments)

--model : qwen3, qwen2_5, gemma3

,internlm3

,glm4

,deepseek_v3

,gpt4o_mini

--datasets

: 데이터셋 이름, 예: CAIL

,CMDL

--dotenv_path

: .env 파일의 경로

(기본값: .env)

--datasets_path

: 데이터셋 경로 (기본값: ./datasets)

--devices

: GPU 장치, 예: cuda:0 cuda:1

--no-build-graph

: 그래프가 이미 존재하는 경우 그래프 구축 (graph construction) 건너뛰기

--force-rebuild

: 아티팩트 (artifacts)가 이미 존재하는 경우에도 그래프 재구축 강제 실행

  • 예측 결과 (Prediction outputs):
    {output_dir}/{dataset}/{model}_results_combined.json

  • 통계 (Statistics):
    {output_dir}/{dataset}/{model}_stats.json

출력 요약 예시:

{
"model_name": "qwen3",
"dataset": "CAIL",
...

설정은 .env를 통해 관리됩니다.

주요 그룹은 다음과 같습니다:

모델 설정 (Model Configuration): 모델 이름, 장치 (devices), API 키, 생성 파라미터 (generation parameters)
데이터 설정 (Data Configuration): 데이터셋 경로 및 출력 디렉토리
그래프 설정 (Graph Configuration): 그래프 구축 및 검색 (retrieval) 설정

전체 설정 목록은 env.example을 참조하세요.

  • Qwen3-8B
  • Qwen2.5-7B-Instruct
  • DeepSeek-V3
  • GPT-4o-mini
  • InternLM3
  • GLM-4

여러 장치를 전달하여 여러 개의 GPU에서 실행할 수 있습니다:

python run.py --model qwen3 --datasets CAIL --devices cuda:0 cuda:1 cuda:2 cuda:3

케이스 (Cases)는 선택된 장치들에 자동으로 분산됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0