- LLM_모델_비교_분석.md: config.py 기본값 설명 추가 - 250906_gemini_model_optimization.md: 하드코딩 제거 및 config.py 기본값 변경 내용 추가
200 lines
6.5 KiB
Markdown
200 lines
6.5 KiB
Markdown
# LLM 모델 비교 분석
|
|
|
|
**최종 업데이트**: 2025-12-02
|
|
**초기 조사**: 2025-08-04
|
|
|
|
## 개요
|
|
로빙 프로젝트를 위한 멀티 LLM 전략 수립을 위해 주요 LLM 모델들의 성능, 비용, 품질을 비교 분석했습니다.
|
|
|
|
## 테스트 환경
|
|
- 테스트 도구: `/home/happybell/projects/ivada/test_llm/test_all_for_ro-being.py`
|
|
- 로빙 시스템 프롬프트 적용
|
|
- 한국어 테스트 케이스 사용
|
|
|
|
## 모델별 상세 분석
|
|
|
|
### 1. Gemini 2.5 Flash-Lite ⭐
|
|
- **가격**: $0.10 / $0.40 (입력/출력 per 1M tokens)
|
|
- **응답 시간**: 2.04초~2.76초
|
|
- **Rate Limit (무료 티어, 2025-12-02 기준)**:
|
|
- RPM (Requests Per Minute): 15회
|
|
- TPM (Tokens Per Minute): 250K
|
|
- RPD (Requests Per Day): 1K
|
|
- **특징**:
|
|
- 2025년 8월 1일 정식 출시
|
|
- 가장 저렴한 가격
|
|
- 안정적인 성능
|
|
- 무료 tier 활용 가능
|
|
- **추천 용도**: 메인 모델
|
|
|
|
### 2. Gemini 2.5 Flash
|
|
- **가격**: $0.30 / $2.50 (입력/출력 per 1M tokens)
|
|
- **Rate Limit (무료 티어, 2025-12-02 기준)**:
|
|
- RPM: 10회
|
|
- TPM: 250K
|
|
- RPD: 250회
|
|
- **특징**:
|
|
- Flash-Lite보다 약간 높은 가격이지만 더 나은 성능
|
|
- 일일 요청 제한(RPD)이 Flash-Lite보다 낮음 (250 vs 1K)
|
|
- **추천 용도**: Flash-Lite 대안, 더 높은 성능 필요 시
|
|
|
|
### 3. Gemini 2.5 Pro
|
|
- **가격**: $1.25 / $10.00 (입력/출력 per 1M tokens)
|
|
- **Rate Limit (무료 티어, 2025-12-02 기준)**:
|
|
- RPM: 2회
|
|
- TPM: 125K
|
|
- RPD: 50회
|
|
- **특징**:
|
|
- 가장 제한적인 무료 티어 (RPM 2회)
|
|
- 가장 높은 가격
|
|
- 최고 성능
|
|
- **추천 용도**: 무료 티어에서는 대량 호출 부적합, 유료 플랜 필요
|
|
|
|
### 4. GPT-4o-mini
|
|
- **가격**: $0.15 / $0.60
|
|
- **응답 시간**: 1.78초~4.68초
|
|
- **특징**:
|
|
- 균형잡힌 응답 품질
|
|
- 빠른 초기 응답
|
|
- OpenAI의 안정성
|
|
- **추천 용도**: 백업 모델
|
|
|
|
### 5. Mistral Small 3.1
|
|
- **가격**: $0.75 / $4.00
|
|
- **응답 시간**: 1.49초~3.02초
|
|
- **특징**:
|
|
- 가장 빠른 응답 속도
|
|
- 상세하고 체계적인 답변
|
|
- 토큰 효율적 (평균 200~300 토큰)
|
|
- **추천 용도**: 품질 우선 시
|
|
|
|
### 6. Claude 3.5 Haiku
|
|
- **가격**: 비공개 (사용량 기반)
|
|
- **응답 시간**: 2.57초~4.60초
|
|
- **특징**:
|
|
- 높은 응답 품질
|
|
- 대화형 응답
|
|
- 과부하 시 불안정 (529 에러)
|
|
- **추천 용도**: 복잡한 대화 필요 시
|
|
|
|
### 7. Grok (제외)
|
|
- **가격**: $2.00~$3.00 / $10.00~$15.00
|
|
- **특징**:
|
|
- X/Twitter 실시간 데이터 접근
|
|
- 너무 비싼 가격
|
|
- grok-3-mini는 빈 응답 문제
|
|
- **결론**: 특수 목적 외 비추천
|
|
|
|
## 성능 비교
|
|
|
|
### 응답 속도 순위
|
|
1. Mistral Small 3.1: 1.49초
|
|
2. GPT-4o-mini: 1.78초
|
|
3. Gemini 2.5 Flash-Lite: 2.04초
|
|
4. Claude 3.5 Haiku: 2.57초
|
|
|
|
### 비용 효율성 순위
|
|
1. Gemini 2.5 Flash-Lite: $0.10/$0.40
|
|
2. GPT-4o-mini: $0.15/$0.60
|
|
3. Mistral Small 3.1: $0.75/$4.00
|
|
4. Grok: $2.00/$10.00 이상
|
|
|
|
### Rate Limit 비교 (무료 티어, 2025-12-02 기준)
|
|
|
|
| 모델 | RPM | TPM | RPD | 비고 |
|
|
|------|-----|-----|-----|------|
|
|
| Gemini 2.5 Flash-Lite | 15 | 250K | 1K | 가장 유리 |
|
|
| Gemini 2.5 Flash | 10 | 250K | 250 | RPD 낮음 |
|
|
| Gemini 2.5 Pro | 2 | 125K | 50 | 가장 제한적 |
|
|
|
|
**주의**: IR Deck 평가 시 15페이지 이상일 경우 Flash-Lite도 Quota 초과 가능 (종합 1회 + 페이지별 15회 = 16회 호출)
|
|
|
|
### 응답 품질 특성
|
|
- **Mistral**: 가장 상세하고 체계적 (번호 목록, 이모지 활용)
|
|
- **GPT-4o-mini**: 균형잡힌 구조적 답변
|
|
- **Gemini**: 간결하면서도 핵심 포착 (표 활용)
|
|
- **Claude**: 대화형, 공감적 응답
|
|
|
|
## 로빙 프로젝트 추천 전략
|
|
|
|
### 멀티 LLM 전략
|
|
1. **메인 모델**: Gemini 2.5 Flash-Lite
|
|
- 가장 저렴한 비용
|
|
- 안정적인 성능
|
|
- 무료 tier 활용 (RPM 15회)
|
|
- **주의**: 15페이지 이상 평가 시 Quota 초과 가능
|
|
|
|
2. **백업 모델**: GPT-4o-mini
|
|
- 메인 모델 장애 시 대체
|
|
- 균형잡힌 성능
|
|
|
|
3. **보조 모델**: Mistral Small 3.1
|
|
- 고품질 응답 필요 시
|
|
- 빠른 응답 필요 시
|
|
|
|
### 환경변수 설정
|
|
```bash
|
|
# .env 파일
|
|
GEMINI_API_KEY=(Gemini API 키)
|
|
OPENAI_API_KEY=(OpenAI API 키)
|
|
MISTRAL_API_KEY=(Mistral API 키)
|
|
ANTHROPIC_API_KEY=(Anthropic API 키)
|
|
# XAI_API_KEY=(xAI API 키) # 비용 문제로 제외
|
|
|
|
# 기본 LLM 모델 설정 (모든 서비스에서 사용)
|
|
DEFAULT_LLM_MODEL=gemini-2.5-flash-lite
|
|
```
|
|
|
|
**참고**: 기본값은 `rb8001/app/core/config.py`에서 `gemini-2.5-flash-lite`로 설정되어 있으며, 환경변수 `DEFAULT_LLM_MODEL`로 오버라이드 가능합니다.
|
|
|
|
### 사용 예시
|
|
```python
|
|
# 환경변수에서 기본 모델 가져오기 (권장)
|
|
from app.core.config import settings
|
|
default_model = settings.DEFAULT_LLM_MODEL # "gemini-2.5-flash-lite" (기본값)
|
|
|
|
# 모델 선택 로직
|
|
if task_type == "general":
|
|
model = settings.DEFAULT_LLM_MODEL # 기본 모델 사용
|
|
elif task_type == "quality":
|
|
model = "mistral-small-latest" # 품질 우선
|
|
elif task_type == "fast":
|
|
model = "gpt-4o-mini" # 속도 우선
|
|
```
|
|
|
|
## Rate Limit 대응 전략
|
|
|
|
### 문제 상황
|
|
- IR Deck 평가 시 15페이지 이상: Flash-Lite RPM 15회 제한 초과
|
|
- 종합 평가 1회 + 페이지별 평가 N회 (N > 14) = 총 15회 이상
|
|
|
|
### 해결 방안
|
|
1. **배치 처리**: 페이지별 평가를 10-15페이지씩 묶어서 처리 (호출 횟수 감소)
|
|
2. **Rate Limiting**: 요청 간 간격 제어 (분당 15회 이하 유지)
|
|
3. **모델 전환**: Flash-Lite 대신 Flash 사용 (RPM 10회지만 RPD는 낮음)
|
|
4. **대기 시간**: 평가 시작 전 30-60초 대기 (이전 요청 쿼터 해제 대기)
|
|
|
|
## 결론
|
|
|
|
### 핵심 발견사항
|
|
1. Gemini 2.5 Flash-Lite가 비용 대비 최고 효율
|
|
2. 각 모델마다 고유한 강점 존재
|
|
3. 멀티 LLM 전략으로 안정성 확보 필요
|
|
4. 토큰 제한 설정 시 충분한 여유 필요 (500 토큰 이상)
|
|
5. **Rate Limit 고려 필수**: 15페이지 이상 평가 시 Quota 초과 주의
|
|
|
|
### 향후 고려사항
|
|
- 정기적인 모델 성능 재평가
|
|
- 새로운 모델 출시 모니터링
|
|
- 사용량 기반 비용 최적화
|
|
- 모델별 특화 작업 정의
|
|
- Rate Limit 모니터링 및 대응 전략 수립
|
|
|
|
## 참고 자료
|
|
- 테스트 코드: `/test_llm/test_all_for_ro-being.py`
|
|
- 개별 테스트: `/test_llm/test_*.py`
|
|
- 트러블슈팅: `/DOCS/troubleshooting/250804_happybell80_LLM멀티모델테스트.md`
|
|
- Gemini API Rate Limit: https://ai.dev/usage?tab=rate-limit (2025-12-02 기준)
|
|
- Vertex AI 가격 책정: https://docs.cloud.google.com/vertex-ai/generative-ai/pricing?hl=ko
|
|
|