
기업이 AI 시스템을 도입할 때 초기에는 높은 정확도만을 목표로 삼기 쉽습니다. 그러나 대규모 운영 환경에서는 정확도와 비용의 트레이드오프를 고려한 설계가 필수적입니다. 같은 수준의 비즈니스 가치를 훨씬 낮은 비용으로 제공할 수 있는 아키텍처를 설계하는 것이 중요합니다.
AI 비용 최적화는 단순히 싼 모델을 선택하는 것이 아닙니다. 오히려 각 단계에서 필요한 정확도를 정의하고 그에 맞는 기술을 선택하는 것입니다. 예를 들어 정확도 95%가 필요한 작업에 98% 정확도를 목표로 설계하면 불필요하게 높은 비용을 지불하게 됩니다.
또한 비용 최적화는 전체 시스템의 관점에서 접근해야 합니다. 한 단계의 비용을 줄이면 다음 단계의 비용이 증가할 수 있기 때문입니다. 예를 들어 초기 필터링 단계에서 저렴한 모델을 사용하면 나중에 더 많은 데이터가 고비용의 상세 분석 단계로 진행될 수 있습니다. 따라서 전체 워크플로우의 비용을 최소화하는 설계가 필요합니다.
AI 시스템에서 모든 요청을 동일한 강력한 모델로 처리하면 비용이 과도해질 수 있습니다. 대신 여러 계층의 모델을 조합하여 효율성을 높일 수 있습니다.
빠르고 저렴한 휴리스틱 또는 규칙 기반 시스템입니다. 이 계층에서는 간단한 규칙으로 해결할 수 있는 요청을 필터링합니다. 예를 들어 고객 서비스에서 자주 묻는 질문에 대해서는 미리 정해진 답변을 제공하므로 AI 모델을 사용할 필요가 없습니다. 이 방식은 비용이 거의 들지 않으면서도 상당한 요청을 처리할 수 있습니다.
경량 머신러닝 모델입니다. 규칙으로는 처리할 수 없지만 복잡한 추론이 필요하지 않은 요청을 처리합니다. 텍스트 분류, 감정 분석, 개체명 인식 같은 작업들은 비교적 작은 모델로도 충분한 성능을 제공할 수 있습니다.
중간 규모의 언어 모델입니다. 일부 추론이 필요하거나 더 높은 정확도가 요구되는 요청을 처리합니다.
대규모 모델입니다. 복잡한 추론, 창의적인 작업, 또는 매우 높은 정확도가 필수적인 요청에만 사용됩니다.
이러한 계층화를 통해 대부분의 요청은 저렴한 계층에서 처리되고 소수의 요청만 고비용의 모델을 사용합니다. 결과적으로 전체 시스템의 평균 비용이 크게 감소합니다.

요청이 들어왔을 때 어느 계층의 모델로 처리할지를 동적으로 결정하는 것이 중요합니다. 모든 요청을 미리 정해진 계층으로 보내면 일부 요청은 불필요하게 높은 비용으로 처리되거나 낮은 품질로 처리될 수 있습니다.
의도 분류기(intent classifier)를 첫 번째 단계에 배치하면 효과적입니다. 들어온 요청을 분석하여 어떤 유형의 요청인지, 예상 복잡도는 얼마인지를 판단합니다. 이 의도 분류기는 매우 가볍고 빠르게 작동해야 합니다.
또한 신뢰도 임계값을 설정할 수 있습니다. 낮은 계층의 모델이 높은 신뢰도로 답변을 생성하면 그것을 최종 답변으로 사용합니다. 반면 신뢰도가 낮으면 다음 계층의 더 강력한 모델로 보냅니다. 이렇게 하면 확신이 있는 경우는 저렴하게 처리하고 어려운 경우만 비용을 들여 해결할 수 있습니다.
사용자의 특성이나 요청의 맥락도 고려할 수 있습니다. 예를 들어 중요한 고객이나 높은 가치의 거래인 경우 더 강력한 모델을 사용하도록 라우팅할 수 있습니다. 반면 일반적인 요청은 저렴한 모델로 처리합니다.

동일하거나 유사한 요청에 대해 매번 새롭게 계산하는 것은 낭비입니다. 캐싱을 통해 이전에 계산한 결과를 재사용하면 상당한 비용을 절감할 수 있습니다.
정확한 일치 캐시는 완전히 동일한 요청에 대한 이전 결과를 저장하고 재사용합니다. 이는 매우 효과적이지만 정확한 일치는 드물기 때문에 적용 범위가 제한될 수 있습니다.
의미 기반 캐시는 더 광범위하게 적용할 수 있습니다. 의미는 같지만 표현이 다른 요청들을 식별하여 같은 결과를 사용합니다. 예를 들어 "날씨가 어떻게 되나요?"와 "오늘 날씨는?"은 의미가 같으므로 같은 결과를 사용할 수 있습니다.
또한 계산 중간 결과를 캐싱할 수도 있습니다. 여러 요청이 같은 중간 계산을 공유하는 경우 그 부분만 한 번 수행하고 결과를 다시 사용할 수 있습니다. 캐싱 수명을 데이터의 특성에 따라 설정하여 오래된 캐시로 인한 부정확한 결과를 방지합니다.

실시간 응답이 필수적이지 않은 작업은 배치 처리 방식으로 전환하면 대폭적인 비용 절감이 가능합니다. 많은 AI 시스템에서 실시간 처리의 필요성이 생각보다 낮습니다.
배치 처리는 여러 요청을 모아서 한 번에 처리합니다. 이렇게 하면 고정 오버헤드가 여러 요청에 분산되어 요청당 비용이 감소합니다. 또한 배치 처리 API가 실시간 API보다 더 저렴한 요금을 제공하는 경우가 많습니다.
비동기 워크플로우도 효율성을 높일 수 있습니다. 사용자의 요청에 즉시 응답하되 실제 AI 처리는 나중에 백그라운드에서 수행하는 방식입니다. 결과는 사용자가 나중에 확인하거나 이메일로 받을 수 있습니다. 이렇게 하면 시스템 자원을 더 효율적으로 사용할 수 있습니다.
또한 요청 예약 시스템을 통해 저비용 시간대에 처리를 집중할 수 있습니다. 많은 클라우드 서비스는 사용량이 적은 시간대에 더 저렴한 요금을 제공하므로 중요하지 않은 작업은 그 시간대에 예약할 수 있습니다.

고비용의 AI 모델에 입력되는 데이터의 양을 줄이면 전체 비용이 감소합니다. 이를 위해 입력 데이터를 사전에 처리하고 정제할 수 있습니다.
불필요한 데이터를 제거하면 AI 모델이 처리해야 할 데이터양이 감소합니다. 예를 들어 문서에서 핵심 내용만 추출하고 불필요한 이미지나 서식은 제거하면 더 작은 프롬프트로 작업을 수행할 수 있습니다.
또한 데이터를 요약하거나 압축하여 입력 크기를 줄일 수 있습니다. 긴 문서의 경우 먼저 간단한 모델로 요약한 후 그 요약본을 강력한 모델에 입력하는 방식입니다. 이렇게 하면 입력 토큰 수가 크게 감소합니다.
데이터 정규화도 도움이 됩니다. 텍스트 정규화(대소문자 통일, 특수문자 제거 등)를 통해 의미적으로 같은 입력들이 동일하게 표현되도록 하면 캐시 히트율이 증가합니다.

비용 최적화 아키텍처를 설계한 후에도 지속적인 모니터링과 조정이 필요합니다. 실제 운영 환경에서의 성능이 설계 단계의 기대와 다를 수 있기 때문입니다.
각 계층의 성능을 개별적으로 추적해야 합니다. 첫 번째 계층이 처리한 요청의 비율, 그 결과의 정확도, 다음 계층으로 넘어간 요청의 비율 등을 기록합니다. 이를 통해 각 계층이 제대로 역할을 하고 있는지를 확인할 수 있습니다.
만약 특정 계층이 기대보다 많은 요청을 다음 계층으로 보내거나 정확도가 낮다면 조정이 필요합니다. 임계값을 변경하거나 해당 계층의 모델을 개선할 수 있습니다.
또한 새로운 기술의 도입으로 인한 비용 변화를 모니터링합니다. 새로운 모델이 출시되거나 기존 모델의 가격이 변하면 아키텍처를 재검토할 수 있습니다.
