콜로소

전체 공개

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

AI튜터랩

AI튜터랩

조회수 1
발행2026.07.20 15:45
수정2026.08.05 11:01

생성형 AI 비용과 토큰을 최적화하려면 “더 저렴한 모델을 쓰는 것”보다 먼저, 불필요한 입력·출력·호출 횟수를 줄이는 구조를 만드는 것이 중요합니다.

1. 비용이 발생하는 지점부터 구분하기

일반적으로 비용은 다음 요소에 의해 결정됩니다.

  • 입력 토큰: 시스템 프롬프트, 사용자 질문, 대화 기록, 검색 문서

  • 출력 토큰: AI가 생성한 답변

  • 호출 횟수: API를 몇 번 실행했는지

  • 모델 등급: 고성능 모델일수록 단가가 높은 경우가 많음

  • 부가 기능: 이미지, 음성, 검색, 임베딩, 캐시, 에이전트 도구 호출

따라서 최적화 목표는 다음과 같습니다.

입력을 짧고 정확하게 만들고, 필요한 길이만 출력하게 하며, 고성능 모델은 꼭 필요한 작업에만 사용한다.


2. 가장 효과적인 토큰 절감 방법

대화 기록을 전부 보내지 않기

챗봇 API에서는 매 요청마다 이전 대화 전체를 다시 전달하는 구조가 많습니다. 대화가 길어질수록 같은 내용에 반복 비용이 발생합니다.

개선 방법:

  • 최근 3~10개 메시지만 유지

  • 오래된 대화는 요약문으로 교체

  • 사용자 정보, 선호도, 프로젝트 상태를 별도 DB에 저장

  • 현재 질문과 관련된 대화만 선택적으로 포함

예:

비효율적:
사용자의 지난 6개월 대화 전체 + 현재 질문

효율적:
최근 대화 5개 + 핵심 요약 500자 + 현재 질문

긴 문서를 통째로 넣지 않기

PDF나 사내 문서를 매번 전체 삽입하면 비용이 급격히 증가합니다.

권장 구조:

  1. 문서를 작은 단위로 분할

  2. 임베딩 생성

  3. 질문과 관련된 문서 조각만 검색

  4. 상위 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. 실무 적용 우선순위

효과가 큰 순서로 적용하면 다음과 같습니다.

  1. 최대 출력 길이 제한

  2. 대화 기록 축소 및 요약

  3. 문서 전체 입력을 RAG로 전환

  4. 저비용 모델과 고성능 모델 분리

  5. 반복 입력과 결과 캐싱

  6. 여러 단순 호출을 하나로 통합

  7. JSON 등 구조화 출력 적용

  8. 토큰·비용 로그 수집

  9. 프롬프트 A/B 테스트

  10. 기능별 월 예산과 사용량 제한 설정

핵심 정리

생성형 AI 비용 최적화는 다음 공식으로 볼 수 있습니다.

총비용
= 요청 수
× 요청당 입력 토큰
× 입력 단가
+ 요청 수
× 요청당 출력 토큰
× 출력 단가
+ 도구 및 부가 기능 비용

따라서 가장 좋은 설계는 다음과 같습니다.

짧은 프롬프트, 관련 문서만 검색, 필요한 만큼만 출력, 단순 작업은 저비용 모델, 반복 데이터는 캐시, 전체 사용량은 지속적으로 측정.