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 전용 사전 생성 파이프라인을 다중 모델 지원 구조로 확장하였음. 이를 통해:

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

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

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다