[작성자:] sp

  • Modular & Multi‑Model LLM Dictionary Builder

    1. 프로젝트 개요

    본 프로젝트는 LLM 기반 영어 사전 생성기를 다루며, 외부 코퍼스 없이 **LLM 자체 능력만으로 단어 사전(Webster 유사)**을 구축하는 것을 목표로 합니다. 기존 단일 모델 기반 구조를 넘어, 여러 LLM 모델을 병렬로 요청하고 결과를 통합할 수 있도록 모듈화를 진행했습니다.


    2. 주요 특징

    • 모듈화된 구조: LLM 호출부를 인터페이스화(LLMClient), Ollama API 기반 클라이언트 구현.
    • 멀티모델 지원: 한 번에 여러 모델을 병렬 실행하여, 모델별 결과 비교 및 통합 가능.
    • 사전 구축 방식:
      • Prefix 기반 후보 단어 생성 (2letter, alpha, adaptive 모드 제공)
      • 단어형태 검증 및 필터링
      • LLM 검증(JSON 포맷)
      • Self-consistency 기법으로 다회 검증/투표
    • 진행 관리: 중간 저장(progress 파일), 실패 prefix 기록, 안전한 재시작 지원.
    • 출력 결과: 모델별 JSON 결과 + 모델 통합(UNION) 결과.

    3. 시스템 구조

    llm_dict/
    ├─ llm_clients/
    │  ├─ base.py          # LLMClient 추상 클래스 정의
    │  └─ ollama_client.py # Ollama 기반 LLM 호출 구현체
    ├─ builder.py          # WebsterBuilder 코어 로직
    ├─ run_single.py       # 단일 모델 실행 엔트리포인트
    └─ run_multi.py        # 다중 모델 병렬 실행 엔트리포인트

    4. 컴포넌트 상세

    4.1 llm_clients/base.py

    • 목적: 다양한 LLM API와 호환 가능한 인터페이스 정의.
    • 핵심 메서드:
      • name(): 모델 식별용 이름 반환
      • generate(prompt, ...): 프롬프트 기반 응답 생성

    4.2 llm_clients/ollama_client.py

    • 목적: Ollama API 호출 기능 제공.
    • 기능:
      • HTTP POST /api/generate 요청
      • 재시도/타임아웃 처리
      • 모델별 고유 네임스페이스 제공

    4.3 builder.py

    • WebsterBuilder 클래스:
      • Prefix 생성 (2letter / alpha / adaptive)
      • 후보 단어 요청 → 정제 → LLM 검증(JSON)
      • Self-consistency (다중 온도 검증 후 합의)
      • 결과 JSON 출력 (단어별 정의, 예문, 품사, 신뢰도, 희귀도 등)
    • 안전장치:
      • 진행 상황 저장/복구
      • 중복 제거 및 점수 기반 최적 결과 채택

    4.4 run_single.py

    • 단일 모델 실행 스크립트
    • CLI 옵션으로 모델명, 배치 크기, 모드, 파라미터 조정 가능

    4.5 run_multi.py

    • 다중 모델 병렬 실행 지원
    • ThreadPoolExecutor 활용
    • 모델별 결과 JSON + 합본(중복 제거/최고 점수 유지) JSON 생성

    5. 실행 예시

    단일 모델 실행

    python3 run_single.py \
      --model gpt-oss:120b --mode 2letter --batch 35 --resume

    다중 모델 실행 (예: gpt-oss + deepseek)

    python3 run_multi.py \
      --models gpt-oss:120b,deepseek-r1:32b \
      --mode 2letter --batch 35 --resume

    출력 결과

    • llm_dictionary_{mode}_{timestamp}_{model}.json (모델별 결과)
    • llm_dictionary_union_{mode}_{timestamp}.json (합본)

    6. 확장성

    • 멀티프로바이더 지원: 현재 Ollama 전용이나, OpenAI / Together 등 API 클라이언트를 추가 구현 시 그대로 활용 가능.
    • 모델 앙상블: self_consistency 단계에서 여러 모델의 응답을 받아 합의 기반 채택 가능.
    • 다국어 지원: 현재 영어 중심이지만, 프롬프트/검증 규칙 확장 시 다국어 사전으로 확장 가능.

    7. 기대 효과

    • 객관성: 여러 모델 병렬 비교로 단일 모델 편향 최소화.
    • 재현성: 진행 상황 저장/복원, 실험 로그 남김.
    • 확장성: 다양한 LLM 생태계에 즉시 연결 가능.
    • 활용성: 사전 데이터 구축 외에도, 번역·형태소 분석 등 다양한 언어 작업 파이프라인 기반으로 확장 가능.

    8. 결론

    본 프로젝트는 LLM 전용 사전 생성 파이프라인을 다중 모델 지원 구조로 확장하였음. 이를 통해:

    • 사전 품질 향상 (모델별 강점 보완)
    • 연구·상업적 활용성 확대
    • 다국어 확장 및 언어 연구 기여

    향후 발전 방향은 다국어 형태소 분석, 번역, 앙상블 합의 기반 신뢰도 향상 등으로 이어질 수 있음.