Compounded AI System : The Shift from Models to Compound AI Systems

Ash-Hun·2024년 5월 18일
0

Paper-Review

목록 보기
3/7
post-thumbnail

Model에서 Compound AI Systems로의 전환

Matei Zaharia , Omar Khattab , Lingjiao Chen , Jared Quincy Davis , Heather Miller , Chris Potts , James Zou , Michael Carbin , Jonathan Frankle , Naveen Rao , Ali Ghodsi   

2024년 2월 18일

AI는 2023년에 프롬프트만으로 번역이나 코딩 등의 일반적인 작업을 수행하도록 지시할 수 있는 LLM으로 모든 사람의 관심을 끌었습니다. 이로 인해 자연스럽게 AI Application 개발의 주요 요소로서 모델에 집중하게 되었고, 모두가 새로운 LLM이 어떤 기능을 가져올지 궁금해했습니다. 그러나 더 많은 개발자가 LLM을 사용하여 구축하기 시작하면서 이러한 초점이 빠르게 변화하고 있다고 생각합니다. 가장 최고의 AI를 이용한 결과는 단일 모델이 아닌 여러 구성 요소가 있는 복합 시스템(=Compound AI System)에서 점점 더 많이 얻어지고 있습니다 .

예를 들어, Google의 AlphaCode 2는 LLM을 사용하여 작업에 대해 최대 100만 개의 가능한 솔루션을 생성한 다음 필터링하는 방식의 신중하게 설계된 시스템을 통해 프로그래밍하고 최고의 결과를 만듭니다. 마찬가지로 AlphaGeometry 는 LLM과 기존 Symbolic Solver를 결합하여 올림피아드 문제를 해결합니다.

기업에서 Databricks의 동료들은 LLM 애플리케이션의 60%가 일종의 검색 증강 생성(RAG) 형식을 사용 하고 30%가 multi-step chain을 사용한다는 사실을 발견했습니다. 단일 LLM 호출의 결과를 보고했던 전통적인 언어 모델 작업을 수행하는 연구원조차도 이제 점점 더 복잡해지는 추론 전략의 결과를 보고하고 있습니다. Microsoft는 의료 검사에서 GPT-4의 정확도를 9% 초과하는 연결 전략에 대해 썼습니다. Google의 Gemini 출시 게시물은 모델을 32번 호출하는 새로운 CoT@32 추론 전략을 사용하여 MMLU 벤치마크 결과를 측정했는데, 이는 GPT-4에 대한 단일 호출과의 비교에 대한 의문을 제기했습니다. 이러한 Compound AI System으로의 전환은 많은 흥미로운 설계 질문을 불러일으키지만, 교육을 확장하는 것뿐만 아니라 영리한 엔지니어링을 통해 선도적인 AI 결과를 달성할 수 있다는 의미이기 때문에 흥미롭기도 합니다.

이번 포스팅에서는 Compound AI System의 추세와 이것이 AI 개발자에게 어떤 의미인지 분석합니다.

개발자가 복합 시스템을 구축하는 이유는 무엇인지? 모델이 개선됨에 따라 이 패러다임이 계속 유지되는지? 그리고 그러한 시스템을 개발하고 최적화하기 위한 새로운 도구는 무엇이 있는지? 이 분야는 모델 교육보다 훨씬 적은 연구를 받았는지? 등 우리는 Compound AI System이 미래에 AI 결과를 극대화하는 가장 좋은 방법이 될 것이며 2024년 AI에서 가장 영향력 있는 트렌드 중 하나가 될 수 있다고 주장합니다.

점점 더 많은 새로운 AI 결과가 복합 시스템에서 나옵니다.

Compound AI System을 사용하는 이유는 무엇입니까?

우리는 Compound AI System을 모델, 검색기 또는 외부 도구에 대한 다중 호출을 포함하여 상호 작용하는 여러 구성 요소를 사용하여 AI 작업을 처리하는 시스템으로 정의합니다.

대조적으로, AI 모델은 단순히 통계 모델 입니다 (예: 텍스트의 다음 토큰을 예측하는 것).

AI 모델은 지속적으로 향상되고 확장에 대한 명확한 끝이 보이지 않지만 복합 시스템을 사용하여 점점 더 많은 최첨단 결과를 얻습니다. 왜 그런 걸까요? 몇 가지 뚜렷한 이유를 확인했습니다.

  1. 일부 작업은 시스템 설계를 통해 개선하기가 더 쉽습니다.
    LLM(대규모 언어 모델)은 더 많은 연산 자원을 투입할수록 예측 가능한 법칙에 따라 더 나은 결과를 도출하는 놀라운 확장 법칙을 따르는 것으로 보이지만, 많은 응용 분야에서는 단순히 확장하는 것보다 복합 시스템을 구축하는 것이 비용 대비 효율이 더 높은 경우가 많습니다. 예를 들어, 현재 최고 성능의 LLM이 코딩 대회 문제를 30%의 확률로 해결할 수 있고, 학습 예산을 세 배로 늘리면 이 확률이 35%로 증가한다고 가정해 봅시다. 이는 여전히 코딩 대회에서 승리하기에 충분히 신뢰할 수 있는 성능은 아닙니다! 반면에 모델에서 여러 번 샘플을 추출하고 각 샘플을 테스트하는 시스템을 설계하면 오늘날의 모델을 사용하여 성능을 80%까지 향상시킬 수 있습니다. 이는 AlphaCode와 같은 연구에서 보여준 바와 같습니다. 더욱 중요한 것은 시스템 설계 반복이 학습 실행을 기다리는 것보다 훨씬 빠르다는 점입니다. 우리는 높은 가치가 있는 어떤 응용 분야에서든 개발자들이 AI 품질을 극대화하기 위해 가능한 모든 도구를 사용하고자 할 것이라고 믿습니다. 따라서 확장과 함께 시스템 아이디어도 사용할 것입니다. 우리는 좋은 LLM이 설득력 있지만 실망스럽게도 신뢰할 수 없는 첫 번째 데모를 만드는 경우가 많고, 이후 엔지니어링 팀이 체계적으로 품질을 높이는 것을 자주 목격합니다.
  2. 시스템은 동적일 수 있습니다.
    기계 학습 모델은 고정된 데이터셋으로 학습되기 때문에 그들의 "지식"은 고정되어 있습니다. 따라서 개발자들은 최신 데이터를 통합하기 위해 모델을 검색 및 검색과 같은 다른 구성 요소와 결합해야 합니다. 또한 학습은 모델이 전체 학습 세트를 "보게" 하기 때문에, 접근 제어가 필요한 AI 애플리케이션을 구축하려면 더 복잡한 시스템이 필요합니다 (예: 사용자가 접근할 수 있는 파일을 기반으로 사용자 질문에 답변).
  3. 시스템을 통해 제어와 신뢰를 향상시키는 것이 더 쉽습니다.
    신경망 모델 단독으로는 제어하기 어렵습니다. 학습을 통해 모델에 영향을 미칠 수는 있지만, 특정 행동을 피하도록 보장하는 것은 거의 불가능합니다. 모델 대신 AI 시스템을 사용하면, 예를 들어 모델 출력을 필터링하여 개발자가 행동을 더 엄격하게 제어할 수 있습니다. 마찬가지로, 최고의 LLM조차도 여전히 환각을 일으키지만, LLM을 검색과 결합한 시스템은 인용을 제공하거나 사실을 자동으로 확인함으로써 사용자 신뢰를 높일 수 있습니다.
  4. 성능 목표는 다양합니다.
    각 AI 모델은 고정된 품질 수준과 비용을 가지지만, 애플리케이션은 종종 이러한 매개변수를 다양하게 조정할 필요가 있습니다. 예를 들어, 인라인 코드 제안과 같은 일부 애플리케이션에서는 최고의 AI 모델이 너무 비싸기 때문에, Github Copilot과 같은 도구는 신중하게 조정된 더 작은 모델과 다양한 검색 휴리스틱을 사용하여 결과를 제공합니다. 다른 애플리케이션에서는 GPT-4와 같은 가장 큰 모델조차도 너무 저렴합니다! 많은 사용자는 GPT-4에 몇 센트를 지불하는 대신 올바른 법적 의견을 위해 몇 달러를 기꺼이 지불할 것입니다. 하지만 개발자는 이 더 큰 예산을 활용할 AI 시스템을 설계해야 합니다.

Generative AI에서 Compound AI System으로의 전환은 자율 주행차와 같은 다른 AI 분야의 산업 동향과도 일치합니다. 최신 구현의 대부분은 여러 전문 구성 요소를 갖춘 시스템입니다. 이러한 이유로 모델이 개선되더라도 복합 AI 시스템이 여전히 주요 패러다임으로 남을 것이라고 믿습니다.

Compound AI System의 개발

Compound AI System이 분명한 이점을 제공할 수 있지만, 이를 설계하고 최적화하며 운영하는 기술은 아직 초기 단계에 있습니다. 표면적으로 AI 시스템은 전통적인 소프트웨어와 AI 모델의 조합이지만, 많은 흥미로운 설계 질문이 존재합니다. 예를 들어, 전체 "제어 로직"을 전통적인 코드(예: LLM을 호출하는 Python 코드)로 작성해야 할까요, 아니면 AI 모델(예: 외부 도구를 호출하는 LLM 에이전트)에 의해 구동되어야 할까요? 마찬가지로, 복합 시스템에서는 개발자가 어디에 자원을 투자해야 할까요? 예를 들어 RAG 파이프라인에서, 검색기(retriever)에 더 많은 FLOPS를 사용하는 것이 더 나을까요, 아니면 LLM에 더 많은 FLOPS를 사용하는 것이 나을까요, 또는 LLM을 여러 번 호출하는 것이 나을까요? 마지막으로, 신경망을 학습시키는 방식과 같이 분리된 구성 요소를 갖춘 AI 시스템을 최적화하여 특정 지표를 최대화하려면 어떻게 해야 할까요? 이 섹션에서는 몇 가지 AI 시스템의 예를 설명한 후, 이러한 도전 과제와 이에 대한 최신 연구에 대해 논의합니다.

AI 시스템 디자인 공간

다음은 디자인 선택의 폭을 보여주는 몇 가지 최근 복합 AI 시스템입니다.

List of Ai Systems

Compound AI System의 주요 과제

Compound AI System은 AI 모델에 비해 설계, 최적화 및 운영 측면에서 새로운 과제를 제기합니다.

Design Space

주어진 작업에 대한 시스템 설계의 범위는 매우 광범위합니다. 예를 들어, 검색 증강 생성(RAG)에서 검색기와 언어 모델을 사용하는 간단한 경우에도 다음과 같은 다양한 선택지가 있습니다:

(i) 선택할 수 있는 많은 검색 및 언어 모델,

(ii) 쿼리 확장이나 재정렬 모델과 같은 검색 품질을 향상시키는 다른 기술,

(iii) LLM의 생성된 출력을 개선하는 기술 (예: 다른 LLM을 실행하여 출력이 검색된 문단과 관련이 있는지 확인).

개발자들은 이 광범위한 공간을 탐색하여 좋은 설계를 찾아야 합니다. 또한 개발자들은 제한된 자원, 예를 들어 지연 시간과 비용 예산을 시스템 구성 요소 간에 배분해야 합니다. 예를 들어, RAG 질문에 100밀리초 내에 답변하려면, 검색기에 20밀리초를 할당하고 LLM에 80밀리초를 할당할 것인지, 아니면 반대로 할 것인지를 결정해야 합니다.

Optimization

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

PyTorch와 같은 단일 모델 개발에서는 전체 모델이 미분 가능하기 때문에 사용자가 모델을 쉽게 끝까지 최적화할 수 있습니다. 그러나 복합 AI 시스템에는 검색 엔진이나 코드 해석기와 같은 비미분 가능 구성 요소가 포함되어 있어 새로운 최적화 방법이 필요합니다. 이러한 복합 AI 시스템을 최적화하는 것은 여전히 새로운 연구 분야입니다. 예를 들어, DSPy는 사전 학습된 LLM 및 기타 구성 요소의 파이프라인에 대한 일반적인 최적화 도구를 제공하며, LaMDA, Toolformer, AlphaGeometry와 같은 시스템은 모델 학습 중에 도구 호출을 사용하여 해당 도구에 최적화된 모델을 만듭니다.

Operation

Compound AI System에서는 머신 러닝 운영(MLOps)이 더욱 어려워집니다. 예를 들어, 스팸 분류기와 같은 전통적인 ML 모델의 성공률을 추적하는 것은 쉬운 일이지만, 동일한 작업을 수행하는 LLM 에이전트의 성능을 추적하고 디버그하려면 어떻게 해야 할까요? LLM 에이전트는 메시지를 분류하기 위해 가변적인 수의 “반사” 단계나 외부 API 호출을 사용할 수 있습니다. 이러한 문제를 해결하기 위해 새로운 세대의 MLOps 도구가 개발될 것이라고 믿습니다. 흥미로운 문제는 다음을 포함합니다:

  • Monitoring: 개발자들이 복잡한 AI 시스템에서 생성된 로그를 가장 효율적으로 기록하고, 분석하며, 디버그할 수 있는 방법은 무엇일까요?
  • DataOps: 많은 AI 시스템에는 벡터 데이터베이스와 같은 데이터 제공 구성 요소가 포함되어 있으며, 이들의 동작은 제공되는 데이터의 품질에 따라 달라집니다. 따라서 이러한 시스템의 운영에 대한 초점은 데이터 파이프라인까지 확장되어야 합니다.
  • Security:
    연구에 따르면 콘텐츠 필터가 포함된 LLM 챗봇과 같은 복합 AI 시스템은 개별 모델에 비해 예기치 않은 보안 위험을 초래할 수 있습니다. 이러한 시스템을 보호하기 위한 새로운 도구가 필요할 것입니다.

Emerging Paradigms

복합 AI 시스템 구축의 어려움을 해결하기 위해 산업계와 연구에서 여러 새로운 접근법이 등장하고 있습니다. 우리는 이러한 문제를 해결하기 위해 널리 사용되는 몇 가지 접근법과 연구에서의 예시를 강조하고자 합니다.

AI 시스템 설계
많은 개발자들이 이제 여러 AI 모델 호출 및 기타 구성 요소로 애플리케이션을 구축할 수 있게 해주는 "언어 모델 프로그래밍" 프레임워크를 사용하고 있습니다. 여기에는 전통적인 프로그램에서 호출할 수 있는 LangChain 및 LlamaIndex와 같은 구성 요소 라이브러리, LLM이 애플리케이션을 구동할 수 있게 하는 AutoGPT 및 BabyAGI와 같은 에이전트 프레임워크, Guardrails, Outlines, LMQL 및 SGLang과 같은 LM 출력을 제어하기 위한 도구가 포함됩니다. 동시에, 연구자들은 모델 및 도구 호출을 사용하여 더 나은 출력을 생성하기 위한 새로운 추론 전략을 다수 개발하고 있습니다. 이러한 전략에는 Chain-of-thought, Self-consistency, WikiChat, RAG 등이 포함됩니다.

품질 자동 최적화: DSPy. 
학계에서 시작된 DSPy는 LLM 호출 및 기타 도구로 구성된 시스템을 최적화하여 목표 지표를 최대화하려는 첫 번째 프레임워크입니다. 사용자는 LLM 및 기타 도구 호출로 애플리케이션을 작성하고, 검증 세트에서 정확도와 같은 목표 지표를 제공합니다. 그런 다음 DSPy는 각 모듈에 대한 프롬프트 지시문, 몇 가지 예시, 기타 매개변수 선택을 생성하여 파이프라인을 자동으로 조정하여 끝에서 끝까지 성능을 최대화합니다. 그 효과는 PyTorch에서 다층 신경망의 끝에서 끝까지 최적화하는 것과 유사하지만, DSPy의 모듈은 항상 미분 가능한 계층이 아닙니다. 이를 위해 DSPy는 LLM의 언어 능력을 깔끔하게 활용합니다. 각 모듈을 지정하기 위해 사용자는 user_question -> search_query와 같은 자연어 서명을 작성하며, 여기서 입력 및 출력 필드의 이름이 의미를 갖습니다. DSPy는 이를 지시문, 몇 가지 예시 또는 기본 언어 모델에 대한 가중치 업데이트를 포함한 적절한 프롬프트로 자동 변환합니다.

비용 최적화: FrugalGPT 및 AI Gateway

사용 가능한 다양한 AI 모델과 서비스로 인해 애플리케이션에 적합한 모델을 선택하는 것이 어렵습니다. 게다가, 다른 모델은 다른 입력에서 더 나은 성능을 발휘할 수 있습니다. FrugalGPT는 목표 예산에 맞춰 품질을 극대화하기 위해 입력을 다양한 AI 모델 캐스케이드로 자동 라우팅하는 프레임워크입니다. 소량의 예시를 기반으로 라우팅 전략을 학습하여 동일한 비용으로 최고의 LLM 서비스보다 최대 4% 더 나은 성능을 발휘하거나, 동일한 품질을 유지하면서 비용을 최대 90% 절감할 수 있습니다. FrugalGPT는 AI 게이트웨이 또는 라우터의 더 넓은 개념의 일례로, Databricks AI Gateway, OpenRouter, Martian 등의 소프트웨어로 구현되어 AI 애플리케이션의 각 구성 요소의 성능을 최적화합니다. 이러한 시스템은 AI 작업을 복합 시스템의 작은 모듈식 단계로 분해하고, 게이트웨이가 각 단계를 별도로 최적화할 때 더 잘 작동합니다.

Operation: LLMOps 및 DataOps. 

AI 애플리케이션은 항상 신뢰성 있게 작동하기 위해 모델 출력과 데이터 파이프라인을 신중하게 모니터링해야 했습니다. 그러나 복합 AI 시스템에서는 각 입력에 대한 시스템의 동작이 상당히 더 복잡해질 수 있으므로 애플리케이션이 수행한 모든 단계와 중간 출력을 추적하는 것이 중요합니다. LangSmith, Phoenix Traces, Databricks Inference Tables와 같은 소프트웨어는 이러한 출력을 세밀하게 추적, 시각화 및 평가할 수 있으며, 일부 경우 데이터 파이프라인 품질 및 하위 지표와도 상관관계를 나타냅니다. 연구 분야에서는 DSPy Assertions가 모니터링 검사에서 피드백을 직접 AI 시스템에 활용하여 출력을 개선하려고 하며, MT-Bench, FAVA, ARES와 같은 AI 기반 품질 평가 방법은 품질 모니터링을 자동화하는 것을 목표로 하고 있습니다.

Conclusion

Generative AI는 자연어 프롬프트를 통해 다양한 기능을 제공하여 모든 개발자를 흥분시켰습니다. 그러나 개발자들이 데모를 넘어서 AI 애플리케이션의 품질을 극대화하려고 할 때, 복합 AI 시스템을 LLM의 기능을 제어하고 향상시키는 자연스러운 방법으로 점점 더 많이 활용하고 있습니다. 복합 AI 시스템을 개발하기 위한 최선의 방법을 찾는 것은 여전히 미해결 과제이지만, 설계, 끝에서 끝까지 최적화, 운영을 지원하는 흥미로운 접근법들이 이미 있습니다. 우리는 복합 AI 시스템이 앞으로도 AI 애플리케이션의 품질과 신뢰성을 극대화하는 최선의 방법으로 남을 것이며, 2024년 AI 분야에서 가장 중요한 트렌드 중 하나가 될 것이라고 믿습니다.


느낀점

본 아티클은 Berkely Artificial Intelligence Research Blog에 올라온 내용입니다. LLM의 발전속도는 굉장히 빠르게 이루어지고 있고 다양한 응용분야와 현업에서 점점 도입을 고려하고 있는것 같습니다. 기술의 발전을 보면 감탄만 나오다가도 현실에 도입을 하고자하는 순간 막막하고 생각해야될게 굉장히 많아지죠. 그러한 관점에서 이번에 소개하고 알아본 Compound AI System은 굉장히 실리적이고 효용성이 짙은 개념이라고 생각합니다. 개인적으로는 앞으로 AI를 포함한 서비스는 이러한 방향으로 나아가야 맞는거구나 싶더라구요! 누군가는 "엥, 당연히 이렇게 해야하는거 아니야?"라고 말할 수도 있지만 제대로 알고 적용하는것이 더 좋다고 생각이 듭니다. 저를 포함한 많은 생성형 AI Researcher 혹은 Engineer분들께서 각 도메인 영역과 산업군에 어떻게 하면 요 기술을 잘 적용할 수 있을까 고민하고 계실텐데요, 그에 대한 하나의 좋은 참고자료가 되었으면 좋겠습니다 🤭


원문 : https://bair.berkeley.edu/blog/2024/02/18/compound-ai-systems/

profile
Deep Burst 🔥🔥🔥

0개의 댓글