LLM 상용화 시, 비용을 낮추면서 성능 향상을 위한 3가지 전략 (feat. FrugalGPT by Portkey)

FrugalGPT 구현을 통해 얻은, LLM 비용을 줄이면서 성능을 향상시키기 위한 노력들 (feat. FrugalGPT by Portkey)

개요

LLM을 서비스에 접목하려는 시도들이 늘어나며, 점차 많은 기업들이 LLM Application들을 상용 환경(Production)에 구축하고 있습니다. 이러한 상황 속에서 Portkey에서 지난 4월 말 공개한 글FrugalGPT의 사례를 통해 LLM 비용을 줄이면서 성능을 향상시키는 방법에 대해 적고 있습니다. 어떠한 내용들을 다루고 있는지 함께 살펴보시죠. :smiley:

:warning: 아래 내용은 GPT 모델을 통해 요약한 것으로, 원문을 읽기 전 필요한 내용이 있는지 등을 살펴보시는데 사용해주세요. 더 풍부한 사례와 코드, 내용들은 원문을 통해 참고해주시기를 부탁드립니다.

들어가기 전에

FrugalGPT 소개

먼저 FrugalGPT에 대해서 살펴보겠습니다. FrugalGPT는 대규모 언어 모델(LLM)을 보다 효율적으로 사용하는 데 필요한 다양한 기술을 제공하는 것을 목표로 하는 프로젝트로, 스탠포드 대학의 Future Data 시스템 연구소에서 개발한 프레임워크입니다. 이 프로젝트는 비용을 절감하면서도 품질을 유지하는 방법에 초점을 맞추고 있으며, 구체적인 기술과 방법론을 제공하여 개발자들이 자원을 효율적으로 사용할 수 있도록 지원합니다. 이러한 배경으로, LLM의 접근성을 높이고, 더 넓은 범위의 응용 프로그램 개발을 가능하게 하는 것이 이 프로젝트의 주된 목적입니다.

FrugalGPT에 관련하여서는 학술적 논문(FrugalGPT: How to Use Large Language Models While Reducing Cost and Improving Performance)트위터에 올렸던 소개 글을 통해 살펴볼 수 있습니다.

Portkey 소개

이번에 소개하는 글( :star: Implementing FrugalGPT: Reducing LLM Costs & Improving Performance)을 작성한 Portkey인공지능(AI) 애플리케이션 개발, 출시, 유지 관리 및 반복을 가속화하는 플랫폼을 제공하는 회사입니다. 이들은 특히 대형 언어 모델(LLM)을 활용하는 비즈니스와 개발자들에게 다양한 도구와 인프라를 제공하여, AI 기반 앱과 기능의 개발 속도를 높이는 데 중점을 두고 있습니다.

글 소개: FrugalGPT: 비용 효율적인 대형 언어 모델 사용 전략

대형 언어 모델(LLM)의 비용과 성능을 최적화하는 것은 AI 개발자들에게 중요한 과제입니다. FrugalGPT는 이러한 과제를 해결하기 위해 세 가지 핵심 전략을 제안하고 있는데, 각각의 전략들은 LLM을 사용하는 비용을 대폭 줄이면서도 성능을 유지하거나 향상시킬 수 있도록 설계되었습니다.

  1. 프롬프트 적응(Prompt Adaptation)
  2. LLM 근사화(LLM Approximation)
  3. LLM 캐스케이드(LLM Cascade)

1. 프롬프트 적응 (Prompt Adaptation)

프롬프트 적응은 모델에게 보내는 질문이나 명령어를 간결하고 최적화된 방식으로 구성하여 처리 비용을 최소화하는 기술입니다. 이 접근 방식은 불필요한 정보를 제거하고, 가장 효과적인 예시만을 포함시키는 방법으로 프롬프트의 길이를 줄입니다. 예를 들어, 이메일 분류 작업을 위해 수십 개의 예시를 포함하는 대신 가장 대표적인 몇 가지만을 사용할 수 있습니다.

구체적인 기술

  • 프롬프트 최적화: 가장 정보적인 내용만을 포함시킴으로써 프롬프트 크기를 감소시키고, 비용을 절감합니다.
    FrugalGPT suggests identifying the best examples to be used instead of all of them.

  • 중복 최소화: 비슷한 요청들을 하나의 프롬프트로 통합하여 중복을 방지하고, 비용을 추가로 절감합니다.

  • (보너스) 작은 모델을 활용하여 더 최적화된 프롬프트 얻기

  • (보너스) 프롬프트 압축하기

2. LLM 근사화 (LLM Approximation)

LLM 근사화는 비용이 많이 드는 모델을 반복적으로 쿼리하는 대신, 캐시와 모델의 미세 조정을 활용하여 비용을 절감합니다. 캐시는 동일한 요청에 대한 응답을 저장해두었다가 필요할 때 바로 제공함으로써, 모델을 새로 요청하는 비용과 시간을 절약합니다.

구체적인 기술

  • LLM 요청 캐시: 동일한 요청에 대해 이전에 계산된 결과를 저장하고 재사용합니다. 또한, 의미적으로 유사한 요청을 파악하여 캐시된 결과를 제공함으로써 더욱 효율적으로 처리합니다.
    Cache LLM Requests

  • 모델 미세조정: 특정 작업에 대해 더 작은 모델을 미세 조정하여 큰 모델의 성능을 모방하면서 비용은 절감합니다.

3. LLM 캐스케이드 (LLM Cascade)

LLM 캐스케이드는 입력에 따라 쿼리할 LLM의 최적 집합을 동적으로 선택하는 기술입니다. 가장 비용이 낮은 모델부터 시작하여 필요한 경우 더 비싼 모델로 넘어가는 방식으로, 쿼리의 비용을 최소화하면서 필요한 정보를 효과적으로 얻을 수 있습니다.

구체적인 기술

  • 생성 점수 함수: 각 모델의 응답에 대한 신뢰도 점수를 계산하여, 다음 모델을 쿼리할지 여부를 결정합니다.

  • LLM 라우터: 쿼리에 가장 적합한 모델 순서를 학습하고 최적화합니다.

이 세 가지 전략은 모두 LLM을 보다 경제적으로 사용할 수 있게 하면서, 개발자들이 AI 솔루션을 보다 효율적으로 구현할 수 있도록 돕습니다. FrugalGPT는 AI의 미래를 보다 지속 가능하고 접근 가능하게 만드는 중요한 도구입니다.

결론 (All Together Now)

FrugalGPT는 대형 언어 모델(LLM) 사용을 최적화하면서 비용을 줄이고 성능을 유지하는 종합적인 전략을 제공합니다. 프롬프트 적응, LLM 근사화, 그리고 LLM 캐스케이드와 같은 기법들을 구현함으로써, 개발자와 기업은 AI 기반 애플리케이션의 품질을 손상시키지 않으면서 LLM 운영 비용을 크게 줄일 수 있습니다. 이 글에서 제공된 실용적인 예시와 코드 스니펫은 FrugalGPT의 이론을 실제로 적용하는 방법을 보여줍니다. 이러한 기법들을 채택하고 특정 사용 사례에 맞게 조정함으로써, 보다 효율적이고 비용 효과적이며 성능이 우수한 LLM 기반 솔루션을 만들 수 있습니다.

더 읽어보기

Portkey의 원문 글

FrugalGPT 논문

https://arxiv.org/pdf/2305.05176

FrugalGPT GitHub 저장소

Portkey 홈페이지




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: