[기획/PM] 생성형 AI 사용시 비용 및 토큰 최적화 방법

AI튜터랩
생성형 AI 비용과 토큰을 최적화하려면 “더 저렴한 모델을 쓰는 것”보다 먼저, 불필요한 입력·출력·호출 횟수를 줄이는 구조를 만드는 것이 중요합니다.
1. 비용이 발생하는 지점부터 구분하기
일반적으로 비용은 다음 요소에 의해 결정됩니다.
입력 토큰: 시스템 프롬프트, 사용자 질문, 대화 기록, 검색 문서
출력 토큰: AI가 생성한 답변
호출 횟수: API를 몇 번 실행했는지
모델 등급: 고성능 모델일수록 단가가 높은 경우가 많음
부가 기능: 이미지, 음성, 검색, 임베딩, 캐시, 에이전트 도구 호출
따라서 최적화 목표는 다음과 같습니다.
입력을 짧고 정확하게 만들고, 필요한 길이만 출력하게 하며, 고성능 모델은 꼭 필요한 작업에만 사용한다.
2. 가장 효과적인 토큰 절감 방법
대화 기록을 전부 보내지 않기
챗봇 API에서는 매 요청마다 이전 대화 전체를 다시 전달하는 구조가 많습니다. 대화가 길어질수록 같은 내용에 반복 비용이 발생합니다.
개선 방법:
최근 3~10개 메시지만 유지
오래된 대화는 요약문으로 교체
사용자 정보, 선호도, 프로젝트 상태를 별도 DB에 저장
현재 질문과 관련된 대화만 선택적으로 포함
예:
비효율적:
사용자의 지난 6개월 대화 전체 + 현재 질문
효율적:
최근 대화 5개 + 핵심 요약 500자 + 현재 질문
긴 문서를 통째로 넣지 않기
PDF나 사내 문서를 매번 전체 삽입하면 비용이 급격히 증가합니다.
권장 구조:
문서를 작은 단위로 분할
임베딩 생성
질문과 관련된 문서 조각만 검색
상위 3~5개 조각만 모델에 전달
즉, 전체 문서를 넣는 방식보다 RAG 방식이 효율적입니다.
다만 검색 결과를 너무 많이 넣으면 RAG도 비효율적입니다.
청크 크기: 보통 300~800토큰부터 테스트
검색 결과: 3~5개부터 시작
중복 청크 제거
질문과 관련성이 낮은 문서는 제외
3. 프롬프트 최적화
프롬프트는 길다고 성능이 항상 좋아지는 것이 아닙니다.
반복 문구 제거
비효율적인 프롬프트:
당신은 매우 훌륭하고 전문적이며 친절하고 정확하고 신중한 전문가입니다.
항상 최선을 다하고 상세하게 생각하고...
개선:
역할: B2B 마케팅 분석가
목표: 보고서 핵심 이슈 3개 추출
형식: 이슈, 근거, 권장 조치
분량: 500자 이내
지시사항을 구조화
다음 형식이 효율적입니다.
역할:
목표:
입력:
제약:
출력 형식:
예:
역할: 고객지원 상담원
목표: 고객 문의에 대한 답변 작성
제약:
- 300자 이내
- 확인되지 않은 내용은 추측하지 않음
- 환불 정책은 제공된 문서만 참고
출력:
- 답변 본문만 작성
예시는 최소화
Few-shot 예시는 성능 향상에 유용하지만, 매 요청마다 긴 예시를 여러 개 넣으면 입력 비용이 커집니다.
권장 방식:
가장 대표적인 예시 1~2개만 사용
유사한 예시는 제거
단순 분류 작업은 예시 없이 JSON 스키마만 제공
모델이 안정되면 예시 수를 줄여 재평가
4. 출력 토큰 줄이기
입력 토큰만큼 출력 토큰 관리도 중요합니다.
명확하게 제한하세요.
핵심 내용만 5개 항목으로 작성
각 항목은 2문장 이내
전체 700자 이내
설명 없이 JSON만 출력
비효율적인 지시:
자세히 설명해 주세요.
효율적인 지시:
의사결정에 필요한 핵심만 300자 이내로 요약하세요.
특히 데이터 처리 작업에서는 자연어 대신 구조화 출력을 사용하면 비용과 후처리 오류를 줄일 수 있습니다.
{
"category": "환불",
"priority": "높음",
"summary": "결제 후 서비스 미제공"
}
5. 모델을 작업별로 나누기
모든 요청에 최고 성능 모델을 사용할 필요는 없습니다.
소형·저비용 모델에 적합한 작업
문서 분류
키워드 추출
감성 분석
문장 정리
정해진 형식의 요약
FAQ 응답
데이터 정규화
간단한 번역
고성능 모델이 필요한 작업
복잡한 추론
다단계 의사결정
긴 문서 간 비교
고난도 코드 작성
법률·의료 등 정밀 검토
모호한 요구사항 해석
최종 품질 검수
권장 구조:
1차: 저비용 모델로 분류·요약
2차: 어려운 요청만 고성능 모델로 전달
3차: 중요한 결과만 고성능 모델이 검수
이를 모델 라우팅이라고 합니다.
6. 호출 횟수 최적화
여러 작업을 무조건 별도 호출로 나누면 비용과 지연이 증가합니다.
예를 들어:
1회차: 요약
2회차: 감성 분석
3회차: 카테고리 분류
4회차: 우선순위 결정
단순 작업이라면 한 번에 구조화해서 요청할 수 있습니다.
{
"summary": "",
"sentiment": "",
"category": "",
"priority": ""
}
다만 너무 많은 작업을 한 호출에 넣으면 정확도가 떨어질 수 있으므로, 다음 기준으로 판단합니다.
서로 연관된 단순 작업: 하나로 통합
복잡한 추론 단계: 분리
실패 시 재시도 비용이 큰 작업: 단계별 분리
병렬 처리가 가능한 작업: 병렬 호출
7. 캐시 활용
반복되는 입력은 캐싱하면 비용을 크게 줄일 수 있습니다.
캐시 대상:
긴 시스템 프롬프트
제품 설명
회사 정책
동일한 문서 배경
반복 FAQ 답변
동일 질문에 대한 결과
임베딩 결과
애플리케이션 수준 캐시 키 예시:
모델명 + 프롬프트 버전 + 사용자 질문 해시 + 문서 버전
주의할 점:
개인정보가 포함된 결과는 사용자별로 분리
문서가 변경되면 캐시 무효화
실시간 정보는 짧은 만료 시간 적용
모델이나 프롬프트가 바뀌면 캐시 키도 변경
8. 재시도와 오류 비용 줄이기
형식 오류로 API를 재호출하면 비용이 중복됩니다.
개선 방법:
JSON 스키마 사용
필수 필드 명시
출력 예시 최소 1개 제공
응답 검증 후 전체 재시도 대신 오류 부분만 수정
최대 재시도 횟수 설정
타임아웃과 백오프 적용
예:
출력은 반드시 유효한 JSON이어야 합니다.
추가 설명, 마크다운, 코드블록을 포함하지 마세요.
9. 비용 모니터링 지표
최적화는 반드시 측정과 함께 진행해야 합니다.
최소한 다음 지표를 기록하세요.
요청당 입력 토큰
요청당 출력 토큰
요청당 비용
사용자당 일·월 비용
기능별 비용
모델별 사용량
평균 호출 횟수
재시도율
캐시 적중률
응답 지연시간
성공률과 사용자 만족도
특히 유용한 지표는 다음입니다.
성공 요청 1건당 비용
업무 완료 1건당 비용
사용자 1명당 월평균 비용
단순히 토큰만 줄였더라도 정확도가 떨어져 재작업이 늘면 실제 비용은 증가할 수 있습니다.
10. 실무 적용 우선순위
효과가 큰 순서로 적용하면 다음과 같습니다.
최대 출력 길이 제한
대화 기록 축소 및 요약
문서 전체 입력을 RAG로 전환
저비용 모델과 고성능 모델 분리
반복 입력과 결과 캐싱
여러 단순 호출을 하나로 통합
JSON 등 구조화 출력 적용
토큰·비용 로그 수집
프롬프트 A/B 테스트
기능별 월 예산과 사용량 제한 설정
핵심 정리
생성형 AI 비용 최적화는 다음 공식으로 볼 수 있습니다.
총비용
= 요청 수
× 요청당 입력 토큰
× 입력 단가
+ 요청 수
× 요청당 출력 토큰
× 출력 단가
+ 도구 및 부가 기능 비용
따라서 가장 좋은 설계는 다음과 같습니다.
짧은 프롬프트, 관련 문서만 검색, 필요한 만큼만 출력, 단순 작업은 저비용 모델, 반복 데이터는 캐시, 전체 사용량은 지속적으로 측정.