✅ 개요
이번 프로젝트에서는 6가지 카테고리(여행, 스포츠, 패션, 문화, 맛집, 기타)에 대해 하루에 한 개씩 새로운 질문을 받아볼 수 있어야 한다는 요구사항이 존재한다.
이때 질문 생성은 생성형 AI를 활용하기로 하였다. 현재 시중에는 수 많은 생성형 AI 모델이 존재한다. 이 모델들은 각기 다른 성능, 가격을 가지고 있기 때문에 어떤 모델이 현재 프로젝트에 적합한지 비교하는 과정이 필요하다.
지금부터 시중에서 가장 많이 사용되고 있는 여러가지 모델들을 비교해 프로젝트에 적합한 모델을 선별해 내도록 하겠다.
✅ AI 후보군
✔️ 선정 기준
- 시장 점유율
- Top3 회사의 상위 모델과 보급형 모델 1개씩 선정
- 참고링크: https://www.economidaily.com/view/20241121182051600?utm_source=chatgpt.com
- Spring AI에서 지원하는 모델인가
✔️ 후보
- Open AI
- GPT 4o
- GPT 4o mini
- Antropic
- Claude 3.5 Sonnet
- Claude 3 Haiku
- Google
- Gemini 1.5 Pro
- Gemini 1.5 Flash
✅ AI 모델 비교
📑 프롬프트
테스트를 위해 프로젝트 요구사항에 맞는 프롬프트를 작성하였다. 해당 프롬프트로 다양한 모델에게 테스트를 해 여러가지 지표를 비교해볼 생각이다.
당신의 임무는 여행, 맛집, 영화, 음악, 독서, 스포츠의 6가지 카테고리에 대해 각각 하나씩 흥미롭고 관련성 높은 질문을 만드는 것이야.(임무지정)
대상은 한국의 20~30대 MZ세대야.(청중 설정)
질문은 한국어로 작성하며 ‘마크다운 없이 순수 JSON 형식(```json 포함X)’으로만 답변해줘. (답변 형식 지정)
Example format: {
"travel": "질문",
"deliciousRestaurant": "질문",
"movie": "질문",
"music": "질문",
"reading": "질문",
"sports": "질문"
}
토큰의 효율이 한글에 비해 영어가 더 좋기 때문에 영어로 프롬프트 작성
You are an expert assistant that creates engaging and relevant content for the MZ generation in their 20s and 30s in Korea. Your task is to provide natural and appealing responses.
Your task is to create one engaging and relevant question for each of the {categoriesSize} categories: {categories}The target audience is the MZ generation in their 20s and 30s in Korea. Provide the questions in Korean and ensure the response is a 'pure JSON object without any Markdown formatting(do not include ```json)'. Ensure the questions are natural and appealing.
Generate a "completely" different question from the following content.{questionBlackList}Ensure that the new question has no semantic, structural, or thematic similarity to the above questions. Avoid rephrasing or minor changes."""
Example format: {
"travel": "질문",
"deliciousRestaurant": "질문",
"movie": "질문",
"music": "질문",
"reading": "질문",
"sports": "질문"
}
💰 가격
모델명 | 제공사 | 입력 토큰 가격 (1M당) | 출력 토큰 가격 (1M당) | 특이사항 |
GPT-4o | OpenAI | $2.50 | $10.00 | 한국어 토큰 최적화 |
GPT-4o mini | OpenAI | $0.15 | $0.60 | 한국어 토큰 최적화 |
Claude 3.5 Sonnet | Anthropic | $3.00 | $15.00 | |
Claude 3 Haiku | Anthropic | $0.25 | $1.25 | |
Gemini 1.5 Pro | $1.25 | $5.00 | 분당 2개 요청 무료 | |
Gemini 1.5 Flash | $0.075 | $0.30 | 분당 15번 요청 무료 |
1번의 질문 생성당 비용 (한국 원화)
위에서 작성한 프롬프트를 AI에게 전달해 1번의 요청당 비용이 얼만큼 드는지 비교해보았다.
요청당 토큰 소모량
출력은 생성되는 질문의 길이에 따라 달라지기 때문에 10번 실행해서 평균값을 매겼음
- GPT-4o - 입력: 140, 출력: 120
- GPT-4o-mini - 입력: 140, 출력: 120
- Claude 3.5 Sonnet - 입력: 150, 출력: 280
- Claude 3 Haiku - 입력: 150, 출력: 350
- Gemini 1.5 Pro - 입력: 130 출력: 300
- Gemini 1.5 Flash - 입력: 130 출력: 250
모델명 | 입력 토큰 비용 (달러) | 출력 토큰 비용 (달러) | 총 비용 (달러) | 총 비용 (원화) |
GPT-4o | $0.00035 | $0.00120 | $0.00155 | 2.17원 |
GPT-4o mini | $0.000021 | $0.000072 | $0.000093 | 0.13원 |
Claude 3.5 Sonnet | $0.00045 | $0.00420 | $0.00465 | 6.51원 |
Claude 3 Haiku | $0.0000375 | $0.0004375 | $0.000475 | 0.665원 |
Gemini 1.5 Pro | $0.0001625 | $0.00150 | $0.0016625 | 2.33원 |
Gemini 1.5 Flash | $0.00000975 | $0.000075 | $0.00008475 | 0.1187원 |
🔋 성능(질문의 매력도)
총 10번씩 질문을 생성하였고 관련성과 문장 유려성은 10번 중 임의로 하나를 선정해 프로젝트 팀원들에게 투표를 받았다.
속도는 10번의 평균치이다.
평가 기준
*상-5점, 중-3점, 하-1점
- 1. 관련성: 질문이 해당 각 카테고리에 적합한 질문들인가
모델명 관련성 평가 점수 순위 GPT-4o 상8 중2 46 3 GPT-4o mini 상10 50 1 Claude 3.5 Sonnet 상9 중1 48 2 Claude 3 Haiku 상8 중2 46 3 Gemini 1.5 Pro 상7 중3 44 6 Gemini 1.5 Flash 상8 중2 45 5 - 2. 문장 유려성: 각 문장이 (사람이 말하는 것처럼)매끄럽고 자연스러운 흐름을 가지고 있는가?
모델명 문장 유려성 평가 점수 순위 GPT-4o 상6 중4 42 3 GPT-4o mini 상4 중6 38 6 Claude 3.5 Sonnet 상8 중2 46 1 Claude 3 Haiku 상6 중 4 42 3 Gemini 1.5 Pro 상7 중3 44 2 Gemini 1.5 Flash 상5 중5 40 5 - 3. 속도: 질문 생성 속도는 빠른가
모델명 평균 실행 속도 GPT-4o 4.10s GPT-4o mini 2.79s Claude 3.5 Sonnet 6.47s Claude 3 Haiku 3.10s Gemini 1.5 Pro 9.35s Gemini 1.5 Flash 4.82s
✅ AI 모델 선정 결과
모델명 | 비용(40점) | 관련성(25점) | 문장 유려성(25점) | 속도(10점) | 총점 |
GPT-4o | 2 | 23 | 23 | 7 | 55 |
GPT-4o mini | 37 | 25 | 21 | 10 | 93 |
Claude 3.5 Sonnet | 1 | 24 | 25 | 4 | 54 |
Claude 3 Haiku | 7 | 23 | 23 | 9 | 62 |
Gemini 1.5 Pro | 2 | 22 | 24 | 3 | 51 |
Gemini 1.5 Flash | 40 | 23 | 22 | 6 | 91 |
✔️ 점수 배분 기준
- 관련성 & 문장 유려성 - 서비스에 있어서 가장 중요한 부분이라고 할 수 있지만 추후 프롬프트 엔지니어링을 통해 개선될 여지가 있기 때문에 중간정도의 점수 배분
- 속도 - 서비스 요구사항이 하루에 카테고리별로 1개씩 질문을 생성하는 것이기 때문에 속도의 중요성을 그리 크지 않다고 판단해 낮은 점수 배분
✔️ 점수 계산 방식
- 비용, 속도: 1등이 만점, 나머지는 1등을 기준으로 비율을 계산해 소수점 첫째자리에서 반올림
- 정확성, 문장 유려성: 투표를 진행해서 1등이 만점, 나머지는 1등을 기준으로 비율을 계산해서 소수점 첫째자리에서 반올림
🥇 선정 결과
GPT-4o-mini가 선정되었다.
✅ 참고자료
https://openai.com/api/pricing/
https://www.anthropic.com/pricing#anthropic-api
'데브코스 > 실습 & 프로젝트' 카테고리의 다른 글
[최종 프로젝트] 질문 생성 기능 - 3. 질문의 벡터를 저장하기 위한 Redis Vector Database & Vector Search (Spring AI) (0) | 2024.12.30 |
---|---|
[최종 프로젝트] 질문 생성 기능 - 2. 중복 질문 방지를 위한 텍스트 임베딩 모델 조사 (2) | 2024.12.29 |
[최종 프로젝트] Jira 도입기 ( + 회고) (2) | 2024.12.27 |
[2-3차 프로젝트] Prometheus 도입 (5) | 2024.11.05 |
[2-3차 프로젝트] PLG 스택 운영환경에 배포 하기 (1) | 2024.11.05 |