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
요청 - 재시도/타임아웃 처리
- 모델별 고유 네임스페이스 제공
- HTTP POST
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 전용 사전 생성 파이프라인을 다중 모델 지원 구조로 확장하였음. 이를 통해:
- 사전 품질 향상 (모델별 강점 보완)
- 연구·상업적 활용성 확대
- 다국어 확장 및 언어 연구 기여
향후 발전 방향은 다국어 형태소 분석, 번역, 앙상블 합의 기반 신뢰도 향상 등으로 이어질 수 있음.
답글 남기기