1. 프로젝트 개요

QLoRA 파인튜닝 기반 특허 심사 결과 예측 시스템

USPTO 공개 특허 출원 데이터(725만 건, 71GB)를 정제·구조화하고, 출원 시점 텍스트만으로 승인/거절을 예측하는 AI 시스템.

데이터 구축 → 학습 → 평가 → 서빙까지 전체 ML 파이프라인을 1인으로 설계·구현.

항목 내용
기간 2025.12 ~ 진행 중
역할 System Architect & Lead Developer (1인 개발)
목표 미래편향(Look-ahead Bias) 제거한 특허 승인 예측 모델 구축
모델 Qwen3-8B (QLoRA 4-bit) — DGX Spark GB10 128GB
데이터 7,253,578건 (grants 4.88M + applications 7.63M 매칭)
기술 스택 Python, QLoRA (peft + bitsandbytes), HuggingFace, FAISS, BM25, Cross-Encoder, FastAPI, Docker, DGX

주요 성과


2. 시스템 아키텍처

flowchart TB
    subgraph Data["Phase 1: Data Engineering"]
        XML["USPTO XML\\n1,133 ZIPs"] --> Parse["병렬 XML 파싱\\nlxml + multiprocessing"]
        Parse --> Apps["applications.db\\n7.63M"]
        Parse --> Grants["grants.db\\n4.88M"]
        Apps --> Match["출원-등록 매칭"]
        Grants --> Match
        Match --> Train["training_data.db\\n7,253,578건"]
        Train --> Export["Temporal Split Export\\nParquet (1만/10만/30만/50만)"]
    end

    subgraph Training["Phase 2: QLoRA Training"]
        Export --> Local["Local Training\\nQwen3-8B 4-bit"]
        Export --> DGX["DGX Remote Training\\nSSH + Docker"]
        Local --> Adapter["LoRA Adapter\\nrank=16, α=32"]
        DGX --> Adapter
    end

    subgraph RAG["Phase 3-4: RAG Inference & Eval"]
        Adapter --> LLM["LoRA LLM\\n+ RAG Context"]
        Export --> FAISS["FAISS Vector DB\\nall-MiniLM-L6-v2"]
        Export --> BM25["BM25 Index"]
        FAISS --> RRF["RRF Fusion\\nk=60"]
        BM25 --> RRF
        RRF --> CE["Cross-Encoder\\n재순위"]
        CE --> LLM
        CE --> KNN["k-NN Fallback"]
        LLM --> Eval["Batch Evaluation\\nAccuracy/F1/AUC"]
        KNN --> Eval
    end

    subgraph UI["FastAPI + 6 Phase UI"]
        Monitor["SSE 실시간 모니터링\\nLoss · Per-class Accuracy"]
    end

3. 핵심 설계 포인트

A. 대용량 데이터 엔지니어링

문제