늦깎이 공대생의 인공지능 연구실

AI 모델에서 복합 AI 시스템으로의 변화 (The Shift from Models to Compound AI Systems) 본문

BAIR

AI 모델에서 복합 AI 시스템으로의 변화 (The Shift from Models to Compound AI Systems)

Justin T. 2024. 3. 23. 23:58

 2023년 AI는 명령어만으로 번역이나 코딩과 같은 일반적인 작업을 수행하도록 지시할 수 있는 대규모 언어 모델(LLM)로 많은 주목을 받았습니다. 이는 자연스럽게 AI 애플리케이션 개발의 주요 요소인 모델에 대한 집중적인 연구로 이어졌고, 모두가 새로운 LLM이 어떤 기능을 제공할지 관심을 갖게 되었습니다. 그런데 더 많은 개발자가 LLM을 사용하여 개발하기 시작하면서 이러한 관점이 빠르게 변화하고 있으며, 단일 모델이 아닌 여러 구성 요소가 포함된 복합 시스템에서 최첨단 AI 결과를 얻는 경우가 점점 더 많아지고 있습니다.

 

 예를 들어 Google의 AlphaCode 2는 LLM을 사용하여 하나의 작업에 대해 최대 100만 개의 가능한 솔루션을 생성한 다음 세심하게 설계된 시스템을 통해 프로그래밍의 가장 최신 결과를 설정하고 필터링합니다. AlphaGeometry도 마찬가지로 LLM과 기존의 상징적 해결책을 결합하여 올림피아드 문제를 해결합니다. 데이터브릭스의 직원들은 기업 내에서 LLM 애플리케이션의 60% 정도가 검색 증강 생성(RAG)을 사용하고, 30%가 Multi-step 체인을 사용한다는 사실을 발견했습니다. 단일 LLM 호출로 결과를 보고하던 기존의 언어 모델 작업을 수행하는 연구자들도 이제는 점점 더 복잡한 추론 전략으로 결과를 보고하고 있습니다: Microsoft는 의료 검사에서 GPT-4의 정확도를 9% 초과하는 체인을 사용한 전략을 발표했고, Google의 Gemini 출시 게시글에서는 모델을 32번 호출하는 새로운 CoT@32 추론 전략을 사용해 MMLU 벤치마크 결과를 측정했는데, 이는 GPT-4에 대한 단일 호출과 비교했을 때도 차이가 있다는 점을 제기했습니다. 복합 시스템으로의 변화는 여러 가지 흥미로운 질문들을 제기하지만, 단순히 학습을 대규모로 늘리는 것뿐 아니라 정교한 엔지니어링을 통해 우수한 AI 결과를 얻을 수 있기에 더욱 흥미로운 일이기도 합니다.

 

 본 포스팅에서는 복합 AI 시스템의 트렌드를 분석하고 이러한 트렌드가 AI 개발자에게 어떤 의미를 갖는지 살펴보겠습니다. 개발자들이 왜 복합 시스템을 구축할까요? 모델이 개선됨에 따라 이러한 패러다임은 계속 유지될까요? 그리고 모델 훈련보다 훨씬 덜 연구된 분야인 이러한 시스템을 개발하고 최적화하기 위한 새로운 도구는 무엇일까요? 앞으로 복합 AI 시스템이 AI 결과를 극대화하는 가장 좋은 방법이 될 것이며, 2024년 AI 분야에서 가장 영향력 있는 트렌드 중 하나가 될 것으로 전망됩니다.

새로운 AI 연구 성과들이 갈수록 복합 시스템에서 점점 더 많이 쏟아져 나오고 있다.

복합 AI 시스템을 사용하는 이유는?

 복합 AI 시스템은 여러 개의 복합 모델, 검색기 또는 여러 외부 도구를 호출하는 등 상호 작용하는 여러 구성 요소를 사용하여 AI 작업을 처리하는 시스템으로 정의합니다. 이와 대조적으로 단일 AI 모델은 텍스트의 다음 토큰을 예측하는 트랜스포머와 같은 단순한 통계 모델입니다.

 AI 모델은 지속적으로 개선되고 있고 그 확장에 대한 명확한 끝이 보이지 않지만, 복합 시스템을 사용하여 점점 더 많은 최고 수준의 결과를 얻을 수 있습니다. 그 이유는 무엇일까요? 여기에는 몇 가지 뚜렷한 이유가 있습니다:

  1. 어떤 작업은 시스템 설계를 통해 더 쉽게 개선할 수 있습니다. LLM은 더 많은 컴퓨팅을 통해 더 나은 결과를 예측 가능하게 산출하는 놀라운 확장 법칙을 따르는 것처럼 보이지만, 많은 애플리케이션에서 확장은 복합 시스템을 구축하는 것보다 비용 대비 수익이 낮습니다. 예를 들어, 현재 최고의 LLM이 코딩 대회 문제의 30%를 해결할 수 있고 훈련 예산을 3배로 늘리면 이 비율이 35%로 증가한다고 가정할 때, 이 정도로는 코딩 대회에서 우승할 만큼 충분히 신뢰할 수 없습니다! 이와는 대조적으로 모델에서 여러 번의 샘플을 추출하고 각 샘플을 테스트하는 시스템을 엔지니어링하면 AlphaCode와 같은 작업에서 볼 수 있다시피 오늘날의 모델로 성능을 80%까지 높일 수 있습니다. 더 중요한 것은 시스템 설계를 반복하는 것이 훈련 실행을 기다리는 것보다 훨씬 빠르다는 점입니다. 고부가가치 애플리케이션에서 개발자는 AI 품질을 극대화하기 위해 가능한 모든 도구를 사용하기를 원할 것이므로 확장 외에도 시스템 아이디어를 사용할 것이라고 믿습니다. 좋은 LLM이 매력적이지만 실망스러울 정도로 신뢰할 수 없는 첫 번째 데모를 만든 다음 엔지니어링 팀에서 체계적으로 품질을 높이기 위해 노력하는 경우를 종종 볼 수 있습니다.
  2. 시스템은 동적일 수 있습니다. 머신러닝 모델은 정적 데이터셋에 대해 학습되므로 '지식'이 고정되어 있기 때문에 근본적으로 한계가 있습니다. 따라서 개발자는 적시에 데이터를 통합하기 위해 모델을 Search 및 Retrieval과 같은 다른 구성 요소와 결합해야 합니다. 또한 학습을 통해 모델이 전체 학습 집합을 '볼' 수 있으므로 사용자가 접근할 수 있는 파일만을 기반으로 사용자의 질문에 답하는 등의 접근 제어 기능을 갖춘 AI 애플리케이션을 구축하려면 더 복잡한 시스템이 필요합니다.
  3. 시스템을 사용하면 제어와 신뢰를 개선하기가 더 쉽습니다. 신경망 모델만으로는 학습을 통해 영향을 받기는 하지만, 모델이 특정 행동을 피한다고 보장하기는 거의 불가능합니다. 모델 대신 AI 시스템을 사용하면 개발자가 모델 출력을 필터링하는 등 행동을 보다 엄격하게 제어할 수 있습니다. 마찬가지로, 최고의 LLM도 여전히 오류를 범할 수 있지만, LLM과 Retrieval을 결합한 시스템은 인용을 제공하거나 팩트를 자동으로 확인함으로써 사용자의 신뢰를 높일 수 있습니다.
  4. AI 모델의 성능 목표치는 매우 다양합니다. 각 AI 모델에는 고정된 품질 수준과 비용이 있지만 애플리케이션에 따라 이러한 매개변수를 변경해야 하는 경우가 많습니다. 인라인 코드 제안과 같은 일부 애플리케이션에서는 최고의 AI 모델이 너무 비싸기 때문에 Github Copilot과 같은 도구는 신중하게 조정된 작은 모델과 다양한 검색 휴리스틱을 사용하여 결과를 제공합니다. 다른 애플리케이션에서는 GPT-4와 같은 대규모 모델도 매우 저렴합니다! 많은 사용자가 GPT-4에 의뢰하는 데 드는 몇 센트의 비용 대신 정확한 법률 의견을 얻기 위해 기꺼이 몇 달러를 지불할 의향이 있지만, 개발자는 이보다 더 큰 예산을 활용하기 위해 AI 시스템을 설계해야 합니다.

 생성 AI에서 복합 시스템으로의 전환은 자율주행차와 같은 다른 AI 분야의 업계 트렌드와도 일치합니다. 대부분의 최신 기술 구현에는 여러 전문 구성 요소가 포함된 시스템이 사용됩니다(자세한 내용은 이곳에서 확인할 수 있습니다). 이러한 이유로 복합 AI 시스템은 모델이 개선되더라도 여전히 선도적인 패러다임으로 남을 것으로 예상됩니다.

복합 AI 시스템 개발

 복합 AI 시스템은 분명한 이점을 제공할 수 있지만, 이를 설계, 최적화 및 운영하는 기술 또한 여전히 발전하고 있습니다. 겉으로 보기에 AI 시스템은 기존 소프트웨어와 AI 모델의 조합으로 보이지만, 흥미로운 설계 관련 질문이 많이 있습니다. 예를 들어, 전체 '제어 로직'을 기존 코드(예: LLM을 호출하는 Python 코드)로 작성해야 할까요, 아니면 AI 모델(예: 외부 도구를 호출하는 LLM 에이전트)에 의해 구동되어야 할까요? 마찬가지로, 복합 시스템에서 개발자가 리소스를 어디에 투자해야 할까요(예: RAG 파이프라인), Retriever에 더 많은 FLOPS를 사용해야 할까요, 아니면 LLM을 여러 번 호출하는 것이 더 나을까요? 마지막으로, 신경망을 학습시키는 것과 같은 방식으로 메트릭을 최대화하기 위해 개별 구성 요소가 있는 AI 시스템을 End-to-end로 최적화하려면 어떻게 해야 할까요? 이 섹션에서는 몇 가지 AI 시스템의 예를 자세히 살펴본 다음 이러한 과제와 이에 대한 최근 연구에 대해 살펴보겠습니다.

AI 시스템 설계 공간

아래는 다양한 설계 선택의 가능성을 보여주는 몇 가지 최근에 개발된 복합 AI 시스템입니다

AI시스템 구성요소 설계 결과
AlphaCode 2
  • 샘플링 및 채점 프로그램을 위한 정밀 튜닝된 LLM
  • 코드 실행 모듈
  • 클러스터링 모델
코딩 문제에 대해 최대 1백만 개의 솔루션을 생성한 다음 필터링하고 점수를 매김 코딩 대회에서 상위 85% 수준의 실력을 가진 사람과 일치함
AlphaGeometry
  • 미세 튜닝된 LLM
  • 기호 수학 엔진
LLM을 통해 기하학 문제에서 반복적으로 구조를 제안하고 기호 엔진이 생성한 추론된 사실을 확인함. 제한 시간 내 시험에서 은메달과 금메달을 받은 국제 수학 올림피아드 메달리스트 사이의 실력
Medprompt
  • GPT-4 LLM
  • 정확한 예제 DB에서 가장 최근접 이웃 검색(Nearest-neighbor search)
  • LLM으로 생성된 생각의 사슬(Chain-of-thought) 예제
  • 여러 샘플 및 앙상블
유사한 예제를 검색하여 Few-Shot 프롬프트를 구성하고 각 예제에 대해 모델 생성 생각의 사슬을 추가하고 최대 11개의 솔루션을 생성 및 판단하여 의학 질문에 대한 답변 제공 더 간단한 프롬프트 전략으로 사용되는 Med-PaLM과 같은 전문 의학 모델보다 성능이 뛰어남
Gemini on MMLU
  • Gemini LLM
  • 사용자 지정 추론 로직
MMLU 벤치마크를 위한 Gemini의 CoT@32 추론 전략은 모델에서 32개의 생각의 사슬 답변을 샘플링하고, 그 중 충분히 일치하는 경우 최상위 선택을 리턴하고, 그렇지 않은 경우 생각의 사슬 없이 생성을 사용함. 5-shot 프롬프트가 있는 GPT-4의 86.4% 또는 5-shot 프롬프트가 있는 Gemini의 83.7%에 비해 MMLU에서는 90.04%입니다.
ChatGPT Plus
  • LLM
  • 시의적절한 콘텐츠 검색을 위한 웹 브라우저 플러그인
  • Python 실행을 위한 코드 인터프리터 플러그인
  • DALL-E 이미지 생성기
ChatGPT 플러스 서비스는 웹 브라우징과 같은 도구를 호출하여 질문에 답변할 수 있으며, LLM은 각 도구가 응답할 때 언제 어떻게 호출할지 결정. 수백만 명의 유료 구독자를 보유한 인기 소비자 AI 제품
RAG, ORQA, Bing, Baleen, etc
  • LLM (때때로 여러 번 호출)
  • Retrieval system
LLM에 검색 쿼리를 생성하도록 요청하거나 현재 컨텍스트를 직접 검색하는 등 다양한 방식으로 LLM과 검색 시스템을 결합 검색 엔진 및 기업용 앱에서 널리 사용되는 기술

복합 AI 시스템의 주요 과제

복합 AI 시스템은 AI 모델에 비해 설계, 최적화 및 운영 측면에서 새로운 도전 과제를 해결해야 합니다.

설계 공간

 주어진 작업에 대해 가능한 시스템 설계의 범위는 방대합니다. 간단한 예로, 검색기와 언어 모델을 사용하는 검색 증강 생성(RAG)의 경우만 보더라도 다음과 같이 여러 가지 경우가 있습니다: (i) 선택할 수 있는 수많은 검색 및 언어 모델, (ii) 쿼리 확장 또는 재순위 지정 모델과 같은 검색 품질을 개선하는 기타 기술, (iii) LLM의 생성된 출력을 개선하는 기술(예: 출력이 검색된 구절과 관련이 있는지 확인하기 위해 다른 LLM을 실행하는 것) 등이 있습니다. 개발자는 좋은 설계안을 찾기 위해 이 방대한 공간을 탐색해야 합니다.

 또한 개발자는 지연 시간 및 비용 예산과 같은 제한된 리소스를 시스템 구성 요소 간에 할당해야 합니다. 예를 들어, 100ms 안에 RAG 질문에 답하려면 검색기에 20ms, LLM에 80ms를 투자해야 할까요, 아니면 그 반대의 경우 예산을 책정해야 할까요?

최적화

 ML에서 복합 시스템의 품질을 극대화하려면 구성 요소가 함께 잘 작동하도록 공동 최적화해야 하는 경우가 많습니다. 예를 들어, LLM이 사용자 질문을 보고 검색 쿼리를 생성하여 Retriever에게 전송한 다음 답변을 생성하는 간단한 RAG 애플리케이션을 생각해 보겠습니다. 이상적으로는 LLM이 특정 Retriever에 적합한 쿼리를 생성하도록 조정되고, Retriever는 해당 LLM에 적합한 답변을 선호하도록 조정됩니다.

 

 PyTorch와 같은 단일 모델 개발에서는 전체 모델이 차별화 가능하기 때문에 사용자가 모델을 end-to-end로 쉽게 최적화할 수 있습니다. 그러나 복합 AI 시스템에는 검색 엔진이나 코드 인터프리터와 같이 차별화할 수 없는 구성 요소가 포함되어 있으므로 새로운 최적화 방법이 필요합니다. 이러한 복합 AI 시스템을 최적화하는 것은 아직 새로운 연구 분야로, 예를 들어 DSPy는 사전 학습된 LLM 및 기타 구성 요소의 파이프라인을 위한 일반 최적화 도구를 제공하는 반면, LaMDA, ToolformerAlphaGeometry와 같은 다른 시스템은 모델 학습 중에 도구 호출을 사용하여 해당 도구에 맞게 모델을 최적화합니다.

운영

기계 학습 운영(MLOps)은 복합 AI 시스템에서 더욱 까다로워집니다. 예를 들어, 스팸 분류기와 같은 기존 ML 모델의 성공률은 쉽게 추적할 수 있지만, 메시지를 분류하기 위해 다양한 '반영' 단계 또는 외부 API 호출을 사용할 수 있는 동일한 작업에 대해 개발자는 LLM 에이전트의 성능을 어떻게 추적하고 디버깅해야 할까요? 이러한 문제를 해결하기 위해 차세대 MLOps 도구가 개발될 것으로 예상됩니다. 흥미로운 문제는 다음과 같습니다:

 

  • 모니터링: 개발자가 복잡한 AI 시스템의 추적을 가장 효율적으로 로그, 분석 및 디버그하려면 어떻게 할 수 있을까요?
  • 데이터 운영(DataOps): 많은 AI 시스템에는 벡터 DB와 같은 데이터 서비스 구성 요소가 포함되며, 이러한 시스템의 동작은 제공되는 데이터의 품질에 따라 달라지므로, 이러한 시스템의 운영에 초점을 맞추려면 데이터 파이프라인을 추가로 포함해야 합니다.
  • 보안: 연구결과에 따르면 콘텐츠 필터가 있는 LLM 챗봇과 같은 복합 AI 시스템은 개별 모델에 비해 예상치 못한 보안 위험을 초래할 수 있는 것으로 나타났습니다. 이러한 시스템을 보호하려면 새로운 도구가 필요합니다.

새로운 패러다임

 복합 AI 시스템 구축의 과제를 해결하기 위해 산업계와 학계에서 여러 가지 새로운 접근 방식이 등장하고 있습니다. 이러한 과제를 해결하기 위해 가장 널리 사용되는 몇 가지 방법과 연구 사례를 소개합니다.

 

AI 시스템 설계: 구성 프레임워크와 전략 현재 많은 개발자가 AI 모델 및 기타 구성 요소에 대한 여러 호출을 통해 애플리케이션을 구축할 수 있는 '언어 모델 프로그래밍' 프레임워크를 사용하고 있습니다. 여기에는 개발자가 기존 프로그램에서 호출하는 LangChainLlamaIndex와 같은 구성 요소 라이브러리, LLM이 애플리케이션을 구동하도록 하는 AutoGPTBabyAGI와 같은 에이전트 프레임워크,  Guardrails, Outlines, LMQLSGLang과 같은 LM 출력을 제어하는 도구가 포함됩니다. 이와 동시에 연구원들은 생각의 사슬(chain-of-thought), 자기 일관성(self-consistency), WikiChat, RAG 등과 같은 모델과 도구를 호출하여 더 나은 결과를 생성하기 위한 수많은 새로운 추론 전략을 개발하고 있습니다.

 

품질 자동 최적화: DSPy. 학계에서 시작된 DSPy는 LLM 호출 및 기타 도구로 구성된 시스템을 최적화하여 목표 지표를 극대화하는 것을 목표로 하는 최초의 프레임워크입니다. 사용자가 LLM 및 기타 도구에 대한 호출로 애플리케이션을 작성하고 유효성 검사 세트에 정확도와 같은 목표 지표를 제공하면 DSPy는 각 모듈에 대한 프롬프트 지시, 몇 가지 예제 및 기타 파라미터 선택을 생성하여 파이프라인을 자동으로 조정하여 End-to-end 성능을 최대화합니다. 이 효과는 PyTorch에서 다층 신경망의 End-to-end 최적화와 유사하지만, DSPy의 모듈이 항상 구분 가능한 레이어가 아니라는 점을 빼면 다릅니다. 각 모듈을 지정하기 위해 사용자는 입력 및 출력 필드의 이름이 의미 있는 user_question -> search_query와 같은 자연어 서명을 작성하면 DSPy는 이를 지시, 몇 개의 예제 또는 기본 언어 모델에 대한 가중치 업데이트가 포함된 적절한 프롬프트로 자동 변환합니다.

 

비용 최적화: FrugalGPT와 AI 게이트웨이. 다양한 AI 모델과 서비스를 사용할 수 있기 때문에 애플리케이션에 적합한 모델을 선정하는 것이 쉽지만은 않습니다. 게다가 모델마다 입력에 따라 더 나은 성능을 발휘할 수도 있습니다. FrugalGPT는 목표 예산에 따라 품질을 극대화하기 위해 다양한 AI 모델을 자동적으로 여러 개의 계단식 입력으로 라우팅하는 프레임워크입니다. 작은 예제 세트를 기반으로 동일한 비용으로 최고의 LLM 서비스를 최대 4%까지 능가하거나 품질은 유지하면서 비용을 최대 90%까지 절감할 수 있는 라우팅 전략을 학습합니다. FrugalGPT는 AI 애플리케이션의 각 구성 요소의 성능을 최적화하기 위해 Databricks AI GatewayOpenRouterMartian과 같은 소프트웨어에서 구현되는 광범위한 AI 게이트웨이 또는 라우터 개념의 한 사례입니다. 이러한 시스템은 AI 작업을 복합 시스템에서 더 작은 모듈식 단계로 나누고 게이트웨이가 각 단계별로 라우팅을 개별적으로 최적화할 수 있을 때 더욱 효과적으로 작동합니다.

 

운영: LLMOps 및 DataOps. AI 애플리케이션을 안정적으로 실행하려면 항상 모델 출력과 데이터 파이프라인을 주의 깊게 모니터링해야 합니다. 그러나 복합 AI 시스템의 경우, 각 입력에 대한 시스템의 동작이 훨씬 더 복잡할 수 있으므로 애플리케이션과 중간 출력에서 수행되는 모든 단계를 추적하는 것이 중요합니다. LangSmith, Phoenix Traces, Databricks Inference Tables 같은 소프트웨어는 이러한 출력을 세밀하게 추적, 시각화, 평가할 수 있으며, 경우에 따라 데이터 파이프라인 품질 및 다운스트림 메트릭과도 연관시킬 수 있습니다. 리서치 업계에서는 DSPy Assertion을 통해 AI 시스템에서 직접 모니터링 점검의 피드백을 활용하여 결과물을 개선하고자 하며, MT-Bench, FAVAARES와 같은 AI 기반 품질 평가 방법은 품질 모니터링을 자동화하는 것을 목표로 합니다.

결론

 생성 AI는 자연어 프롬프트를 통해 다양한 기능을 구현함으로써 모든 개발자를 열광시켰습니다. 그러나 데모를 넘어 AI 애플리케이션의 품질을 극대화하고자 하는 개발자들의 목표가 높아지면서 LLM의 기능을 제어하고 향상시키는 자연스러운 방법으로 복합 AI 시스템을 점점 더 많이 활용하고 있습니다. 복합 AI 시스템 개발을 위한 모범 사례를 파악하는 것은 아직 해결되지 않은 문제이지만, 설계, End-to-end 최적화 및 운영을 지원하는 흥미로운 접근 방식이 이미 존재합니다. 복합 AI 시스템은 앞으로도 AI 애플리케이션의 품질과 안정성을 극대화하는 가장 좋은 방법이 될 것이며, 2024년 AI의 가장 중요한 트렌드 중 하나가 될 것으로 예상됩니다.

 

참고자료: https://bair.berkeley.edu/blog/2024/02/18/compound-ai-systems/

 

The Shift from Models to Compound AI Systems

The BAIR Blog

bair.berkeley.edu

 

반응형