콘텐츠로 이동

M1: 기획 및 설계

항목 내용
기간 2026-03-03 -- 2026-03-28 (Week 1--4)
상태 완료 (90%)
핵심 목표 시스템 아키텍처 설계, EXAONE 모델 분석, 데이터 수집 환경 구축

개요

M1 단계에서는 프로젝트의 기반이 되는 기획, 설계, 데이터 수집 환경을 구축했다. 킥오프 문서 작성, 시스템 아키텍처 설계, 크롤러 프로토타입 개발을 완료하였으며, 10,000건 이상의 민원 데이터를 AI Hub에서 수집하여 전처리 파이프라인을 가동했다.


주차별 진행 내역

Week 1: 프로젝트 킥오프

프로젝트의 방향성을 정의하고 핵심 기술 스택을 선정했다.

  • 문제 정의서 작성: 공공기관 민원 데이터의 보안 리스크, 단순 키워드 분류의 한계, 수동 처리 비효율을 식별
  • EXAONE-Deep-7.8B 모델 분석: LG AI Research의 추론 강화 언어 모델을 분석하여 민원 도메인 적합성을 검증
  • PRD 표준 목차 수립: 프로젝트 요구사항 정의서의 구조를 확정

EXAONE-Deep-7.8B 모델 핵심 사양

항목 사양
총 파라미터 7.8B (임베딩 제외 6.98B)
레이어 수 32 Transformer 레이어
어텐션 GQA (32 Q-heads, 8 KV-heads)
컨텍스트 길이 32,768 토큰
어휘 크기 102,400
라이선스 EXAONE AI Model License 1.1-NC

모델 선정 근거: 한국어 표준 테스트(CSAT Math 2025) 89.9% 달성, GQA로 추론 효율성 우수, vLLM/AutoAWQ 공식 지원, 7.8B 규모로 소비자급 GPU에서 실행 가능

기술 스택 비교 분석

항목 후보 A 후보 B 최종 선정
베이스 모델 LLaMA-3-8B EXAONE-Deep-7.8B EXAONE-Deep-7.8B
파인튜닝 Full Fine-tuning QLoRA (4-bit) QLoRA
양자화 GPTQ AWQ (W4A16g128) AWQ
서빙 엔진 TGI vLLM vLLM
벡터 검색 ChromaDB FAISS IndexFlatIP FAISS
임베딩 모델 KoSimCSE multilingual-e5-large multilingual-e5-large

Week 2: 시스템 설계

시스템의 전체 아키텍처, 데이터베이스 구조, API 명세를 설계했다.

  • 시스템 아키텍처 다이어그램: FastAPI + vLLM + FAISS 기반 온프레미스 구조 설계
  • 데이터베이스 ERD: 민원, 답변, 피드백, 세션 테이블 설계
  • API 명세서 v1.0: RESTful API 4개 도메인 설계 완료

API 엔드포인트 설계

엔드포인트 메서드 기능
/complaints/analyze/category POST 민원 카테고리 자동 분류
/complaints/analyze/generate-answer POST 표준 답변 초안 생성 (Reasoning 포함)
/search/similar-cases POST FAISS 유사 민원 검색
/feedback/submit POST AI 답변 품질 피드백 수집
/system/health GET 서버 헬스체크 및 GPU 상태

Week 3: 데이터 수집 계획

학습 데이터 확보를 위한 수집 대상과 전처리 전략을 수립했다.

  • 크롤링 대상 목록 정의: 서울, 부산, 경기, 대구 등 8개 광역자치단체 공개민원 게시판
  • 크롤러 프로토타입 개발: Python + BeautifulSoup4 기반 수집기 구현
  • 데이터셋 및 학습 환경 명세서 작성: 하드웨어 사양, 소프트웨어 환경, 양자화 전략 정의

핵심 데이터 소스

소스 예상 규모 용도
AI Hub 71852 (공공 민원 상담 LLM) 15만 건+ 주 학습 데이터 (Instruction Tuning)
AI Hub 71844 (민간 민원 상담 LLM) 20만 건+ 보조 학습 데이터 (도메인 확장)
서울 열린데이터 광장 API 10만 건+ 최신 민원 트렌드 보완
공공데이터포털 API 100만 건+ 전국 지자체 통합 민원 분석

Week 4: 데이터 수집 실행

실제 데이터 수집 및 전처리 모듈을 구현하여 학습 데이터를 확보했다.

  • AI Hub 데이터 수집: 71852, 71844 데이터셋에서 약 10,000건 수집
  • 전처리 파이프라인 구축: PII 마스킹, 중복 제거, 길이 필터링, EXAONE Chat Template 변환
  • 데이터 분할: Train 80%, Validation 10%, Test 10%

전처리 파이프라인 구성

AI Hub 원본 데이터
    |
    v
aihub_collector.py    -- 데이터 수집
    |
    v
data_preprocessor.py  -- 중복 제거, 길이 필터링
    |
    v
pii_masking.py        -- 개인정보 비식별화 (이름, 주민번호, 전화번호)
    |
    v
calibration_dataset.py -- AWQ 캘리브레이션 데이터셋 생성
    |
    v
pipeline.py           -- 통합 파이프라인 실행
    |
    v
civil_complaint_train.jsonl (EXAONE Chat Template 형식)

산출물 체크리스트

산출물 위치 상태
문제 정의서 docs/outputs/M1_Planning/01_Kickoff/draft.md 완료
EXAONE 모델 분석 docs/outputs/M1_Planning/01_Kickoff/exaone_analysis.md 완료
시스템 아키텍처 다이어그램 docs/outputs/M1_Planning/02_System_Design/architecture_diagram.png 완료
데이터베이스 ERD docs/outputs/M1_Planning/02_System_Design/database_erd.png 완료
API 명세서 v1.0 docs/outputs/M1_Planning/02_System_Design/api_specification.md 완료
크롤링 대상 목록 docs/outputs/M1_Planning/03_Data_Collection/crawling_targets.md 완료
데이터셋 및 환경 명세서 docs/outputs/M1_Planning/03_Data_Collection/dataset_and_environment_specs.md 완료
크롤러 프로토타입 docs/outputs/M1_Planning/03_Data_Collection/crawler_prototype/ 완료
데이터 수집/전처리 모듈 src/data_collection_preprocessing/ 완료
발표 자료 (v1.0--v1.2) docs/outputs/M1_Planning/04_Presentation/ 완료

완료 기준 달성 현황

기준 목표 결과 달성
민원 데이터 수집 10,000건 이상 AI Hub 71852 + 71844 활용 달성
개인정보 비식별화 PII 마스킹 완료 pii_masking.py 구현 달성
시스템 아키텍처 문서 작성 완료 아키텍처, ERD, API 명세 확정 달성

관련 GitHub 이력

PR / Issue 내용
PR #5 PRD 추가 및 프로젝트 구조 업데이트
PR #7 PRD, WBS, Outputs 구조
PR #8 시스템 아키텍처, ERD, API 명세 추가
PR #9 데이터 수집 및 전처리 모듈 추가
Issue #6 On-Device AI 민원 분석 및 처리 시스템 PRD
Issue #15 Preprocessing Pipeline: PII Masking

결과 및 회고

잘된 점

  • 문제정의서를 통해 프로젝트 방향이 명확해졌다
  • PRD에 정량적 성공 지표를 포함하여 이후 마일스톤에서 객관적 평가가 가능해졌다
  • 기술 스택 비교 분석을 체계적으로 수행하여 이후 기술 변경 리스크를 최소화했다

개선할 점

  • 초기 일정 산정이 다소 낙관적이었다 -- M2에서 데이터 전처리 작업량을 과소평가했다
  • 킥오프 회의록, 기술 스택 선정 보고서 등 형식적 문서가 미완성이나, PRD와 EXAONE 분석 문서로 대체 가능하다

다음 마일스톤 연결

M1에서 수립한 기술 스택과 아키텍처를 바탕으로, M2에서 실제 QLoRA 파인튜닝과 AWQ 양자화를 진행한다.