DeepNexus Quick Start

Initial Idea는 RAG, Fine-tuning, and more. 공인 중개사 시험 문제 생성기로 발전하여 (Idea Expansion and Development), 다양한 공인 시험의 문제 생성기로 범용화


A. 지능형 RAG with Small FTed LLM — 최적 흐름

1. q = 사용자 입력
2. refined_q = 질의 정제 (Query Rewriting: LLM or rule-based)
3. argumented_q = DB 검색 (Vector DB → 관련 문서 추출)
4. reranked_docs = 관련성 재정렬 (Reranker 모델)
5. final_prompt = Prompt 구성 (문서 + 지시어 + q 포함)
6. output = Small FTed LLM 문제 생성

🔁 각 단계 요약

단계설명추천 도구
1. q사용자 원질문-
2. refined_qLLM 기반 질의 정제 or keyword 추출ko-mt5, tinyllama, or 룰 기반
3. argumented_q벡터 DB 문서 검색Chroma, Qdrant, bge-m3
4. reranked_docs문서 중요도 재정렬bge-reranker, cross-encoder
5. final_prompt문서 + 스타일 템플릿으로 구성템플릿 엔진 (jinja2 등)
6. output작은 FTed LLM이 문제 생성Llama 3 8B FTed or TinyLlama FTed

B. 예시 (공인중개사 문제 생성)

q:

"간판 철거 요건 관련 문제 만들어줘"

refined_q:

"공인중개사법에서 중개업자의 간판 철거 요건이 명시된 조항은 무엇인가?"

argumented_q:

→ Chroma DB 검색 결과 (예: 법 제18조 제2항, 시행규칙 제X조 등)

reranked_docs:

bge-reranker로 법 조항 우선순위 정렬

final_prompt:

[법령 발췌]
공인중개사법 제18조 제2항: 중개업자가 폐업신고를 한 경우, 간판을 지체 없이 철거해야 한다.

아래 조건에 맞게 객관식 문제를 생성하라:
- 문제 유형: basic
- 보기 5개, 정답 1~2개 가능
- 해설 포함
- 형식: JSON

output:

→ FTed LLM이 문제 JSON 출력


💡 포인트

  • Small FTed LLM을 쓰기 때문에 입력 prompt가 핵심
    → prompt 품질만 높으면 성능 매우 우수
  • LLM에 맡기는 건 "스타일 재현"
    → 지식은 전적으로 RAG가 공급
  • refined_q 단계는 LLM 없이 룰 기반으로도 가능 (빠름)

🔧 필요한 구성 요소 (미니멀한 구조)

구성 요소추천 기술
Vector DBChroma or Qdrant
Embeddingbge-m3 or ko-simcse
Rerankerbge-reranker
Prompt Enginejinja2, or 간단한 Python 템플릿
FTed 모델Llama3-8B, TinyLlama, Phi, Mistral 등 로컬 실행
API LayerFastAPI, Gradio, HF Spaces

C. 실전문제 DB 구조 (궁극 목표)

📦 DB 구성 3층 구조

레벨유형설명비고
📘 1기존 기출문제실제 시험 기반 440문항 × 과목수작업 또는 OCR
✍️ 2기출문제 변형/업데이트법령 변경, 사례 보완 등FTed 모델 생성 or OpenAI API
✨ 3신규 생성 문제출제경향 기반, 또는 사용자 질의 기반OpenAI API 또는 RAG 기반 자동 생성

D. 사용 흐름 (문제 응답 + DB 강화)

사용자 입력 q

   ├─> 🔍 Step 1: 기존 DB 검색 (실전문제DB + 유사도 기반)
   │     ├─> 유사 문제 있으면 → ✅ 즉시 리턴
   │     └─> 없으면 → Step 2

   └─> 🤖 Step 2: OpenAI API로 신규 문제 생성
            └─> ✅ 사용자에게 즉시 응답 + 문제 JSON 저장 (DB 누적)

✅ 누적 방식

  • q + 생성된 문제 + 생성 일시 + 토큰/비용 기록 저장
  • 반복 질문은 비용 없이 기존 문제 제공 가능
  • FT 재훈련 or 품질 평가에도 활용 가능

E. 궁극 구조 요약

요소기능비고
실전문제 DB질의 응답 캐싱 + 수동 문제 보존벡터 검색 지원
OpenAI API빈 문제영역 자동 생성임시 모델 또는 지속
FTed LLM기출 스타일 학습된 문제 생성기스타일/해설용
RAG법령 기반 문제 생성최신 정보 대응
누적 저장사용자 질문 → API 응답 → DB 보강증강 loop

장점

  • 사용자는 항상 신선한 문제를 받음
  • 시스템은 점점 풍부한 문제은행을 구축함
  • 나중에 RAG + FT 재훈련을 위한 고급 학습데이터 확보
  • 비용 절감: 유사 질의는 캐싱된 문제 제공

기술 구현 핵심 포인트

항목구현 포인트
벡터 검색기출문제 임베딩 후 similarity search
신규질문 판단cosine similarity + threshold (예: 0.75 이하일 경우 생성)
저장 구조질문 + 생성문제 JSON + 생성방법 + source(openai/FTed)
중복방지질문 hash + 유사도 이중 필터링
사용자 응답 시간 단축검색 먼저, 생성은 백업 플랜

F. 시스템의 본질 요약

개념의미
Element 분화시스템을 작은, 명확한 단위로 나눠서 각자 "한 가지 일만" 잘하게 만든다
지능형 작동FTed LLM, RAG, reranker, API 생성기 각각이 똑똑하게 작동
누적형 학습사용자 입력 하나하나가 데이터가 되고, 시스템이 성장한다
속도와 품질빠르게 응답하되, 실전 퀄리티를 유지하는 설계
복잡성의 함정시스템이 커질수록 유지보수가 어려워진다 → 구조화가 생명

지금 해야 할 건?

"Element 분화를 유지하면서 전체 시스템의 복잡성을 누르는 아키텍처 설계"


G. 구조화 원칙 (복잡성 통제 5원칙)

원칙설명적용 예시
1. 기능 단일성각 모듈은 한 가지 목적만FTed LLM = 문제 스타일 생성 전용
2. I/O 명확성입력과 출력 명시적으로 정의모든 모듈은 JSON in → JSON out
3. 독립 실행 가능성모든 컴포넌트는 단독으로도 작동 가능예: rerankervector search 없이도 테스트 가능
4. 에러 격리실패한 컴포넌트는 전체에 영향 X문제 생성 실패 시 캐시 fallback
5. 추가 모듈은 플러그인처럼전체 설계는 열려 있어야 한다이후에 사용자 성취도 기반 추천 모듈 추가해도 설계 변경 최소화

H. 실행 전략: "4코어 모듈" 중심의 시스템 설계

모듈기능호출 위치
🔍 SearchCore실전문제 벡터 검색사용자 질문 직후
🧠 GenCore문제 생성기 (OpenAI / FTed LLM)검색 실패 시
📦 SaveCore생성된 문제 저장 / 누적항상
🧮 RouteCore유사도 기반 분기 (search or generate)항상

각 모듈은 독립적 FastAPI or 함수로도 실행 가능, 스케일링 가능


I. 전체 흐름 정리 (최종 설계)

[사용자 질문] → RouteCore

     ├─> SearchCore → 유사 문제 → 반환

     └─> GenCore (OpenAI or FTed LLM)

            SaveCore → DB에 누적

           사용자에게 문제 + 해설 응답

Was this page helpful?