이 콘텐츠는 어떠셨나요?
- 학습
- 확장 가능한 AI 에이전트 구축: AWS 기반 서버리스 아키텍처
확장 가능한 AI 에이전트 구축: AWS 기반 서버리스 아키텍처
생성형 AI 시대에 소프트웨어를 구축하는 것은 역설적인 일입니다. 한편으로는 프론티어 지식 모델이 매우 강력해졌기 때문에 AI 기반 애플리케이션의 초기 버전을 만드는 일은 간단한 챗 API 호출만으로도(그리고 코딩 에이전트가 코드 대부분을 작성해 주는 것만으로도) 가능해졌습니다. 반면, 프로덕션급 AI 애플리케이션에 필요한 수준의 정확성, 성능 및 비용 최적화를 달성하기 위해서는 복잡한 기술 아키텍처가 필요한 경우가 많습니다.
이러한 복잡성은 부분적으로 생성형 AI 알고리즘이 결정론적이기보다는 확률론적인 특성을 지녔기 때문에 발생합니다. 개발자는 모델 출력의 편차를 줄이고 신뢰성을 개선하기 위해 '좋은' 응답에 대한 예시를 제공하거나 모델이 출력 생성 시 고려할 수 있는 추가 정보('컨텍스트')를 포함하는 등의 기법을 사용합니다. 따라서 AI 기반 애플리케이션의 코드는 모델의 챗 API를 간단히 호출하는 수준을 넘어 훨씬 더 복잡해집니다. 개발자는 모델에 제공할 컨텍스트를 구성하기 위해, 특수한 데이터베이스 호출을 포함하는 최소 하나 이상의 데이터 서빙 계층을 추가해야 합니다.
하지만 복잡성은 여기서 끝나지 않습니다. 개발자는 AI 기반 애플리케이션에 더 많은 기능을 추가함에 따라, 다양한 컨텍스트와 다양한 프롬프트 세트가 필요한 경우를 자주 마주하게 됩니다. 따라서 개발자는 추상화를 선호하기 때문에 이처럼 다양한 기능을 지원하는 코드를 독립형 모듈로 구조화하게 됩니다. AI 분야에서 이러한 유형의 디자인 패턴은 '에이전트'라고 알려져 있습니다.
에이전트 집합: 생성형 AI의 복잡성 극복
에이전트는 생성형 AI 모델을 사용하여 특정 작업을 자율적으로 수행하는 코드 모듈입니다. 에이전트는 단독으로 또는 다른 에이전트와 연계하여 구동할 수 있습니다. 또한 에이전트는 일반적으로 API 또는 함수 형태로 제공되는 '도구'를 직접적으로 호출할 수도 있는데, 이는 에이전트가 사용할 수 있는 컨텍스트에 포함되어 있습니다. 소프트웨어 설계에 대한 이러한 에이전트 접근 방식의 최종 결과로, 컨텍스트 엔지니어링(에이전트가 작업을 완료하는 데 필요한 관련 데이터를 가져오는 프로세스)이 더욱 복잡해집니다. 또한 에이전트 자체를 메인 애플리케이션 외부에서 비동기적으로 실행해야 하는 경우가 많습니다(민감한 데이터에 액세스해야 하는 에이전트의 경우 특히 그렇습니다). 이로 인해 자격 증명뿐만 아니라 완전히 별도의 런타임 환경을 관리해야 할 수 있습니다.
일반적인 에이전틱 AI 애플리케이션은 다음과 같은 구성 요소로 나눌 수 있습니다.
- 우선, 일반적으로 대규모 언어 모델(LLM) 및 이에 대한 액세스를 제공하는 API를 포함하는 생성형 AI 모델입니다.
- 그리고 하위 수준 모델 API에 편리한 추상화를 제공하는 소프트웨어 프레임워크와 에이전트를 구축하고 컨텍스트 엔지니어링에 필요한 대량의 데이터 액세스 작업을 수행하기 위한 소프트웨어 개발 키트가 있습니다.
- 데이터 서비스 구성 요소는 에이전트에 제공된 컨텍스트에 포함된 정보를 제공합니다. 이들은 관계형 데이터베이스 관리 시스템 및 NoSQL 데이터베이스 등과 같은 다양한 데이터 저장소로 구성될 수 있지만, 거의 대부분 시맨틱 검색 서비스 형태를 포함합니다. 에이전틱 애플리케이션의 경우 일반적으로 벡터 저장소에 오프로드되며, 벡터 저장소에는 임베딩이라는 텍스트 데이터의 수치형 표현이 저장됩니다.
- 에이전트를 위한 런타임 환경이 있습니다. 단순한 에이전틱 애플리케이션의 경우, 에이전트가 애플리케이션 코드와 함께 프로세스 내에서 실행될 수 있습니다. 하지만 대부분의 경우 에이전트는 메인 애플리케이션에서 샌드박싱된 자체 프로세스 스페이스에서 실행되어야 합니다.
여러 구성 요소가 함께 작동해야 하는 모든 소프트웨어 아키텍처와 마찬가지로 이러한 구성 요소들의 복원성, 중복성 및 성능을 보장하려면 상당한 양의 획일적인 작업이 필요합니다. 다행스럽게도 에이전틱 AI 애플리케이션은 기존 애플리케이션과 동일한 클라우드 네이티브 아키텍처의 이점을 누릴 수 있습니다. 서버리스 아키텍처는 특히 에이전틱 AI 애플리케이션에 매우 적합하며, AWS는 개발자가 빠르고 간편하고 효율적인 비용으로 에이전틱 AI 애플리케이션을 구축할 수 있도록 다양한 서버리스 제품을 제공합니다.
추론의 실제 적용
가장 잘 알려진 구성 요소인 생성형 AI 모델 자체부터 시작해 보겠습니다. 모델 서빙을 위한 용어는 '추론'이라 하며, 서버리스 추론의 경우, Amazon Bedrock은 생성형 AI 기반 모델을 실행하고 액세스하기 위한 관리형 서비스를 제공합니다. 여기에는 Anthropic의 Claude와 같은 최첨단 지식 기반 LLM부터 Amazon Nova Sonic과 같은 음성 기반 모델, 그리고 OpenAI 및 Mistral의 개방형 모델에 이르기까지 다양하며, 모두 통합 API를 통해 액세스할 수 있습니다.
다음은 추론입니다. 이는 일반적으로 복잡하며 GPU와 같은 특수 하드웨어와 GPU 클러스터가 서로 통신할 수 있게 하는 하위 수준 네트워킹 프레임워크에 대한 깊은 이해가 필요합니다. 기존에는 이로 인해 운영상의 문제와 접근성 장벽이 발생했습니다. 특히 스타트업의 경우가 그러했습니다. Amazon Bedrock은 사용자가 솔루션의 API 사용법만 익히면 되기 때문에 이러한 장벽을 해소합니다.
인텔리전트 임베딩: 지식 기반 및 벡터 스토어
추론 및 모델 서빙 외에도, Amazon Bedrock 또한 에이전틱 AI 스택에서 가장 일반적인 데이터 서비스 구성 요소를 완벽하게 지원합니다. 예를 들면, Amazon Bedrock Knowledge Bases는 시맨틱 검색에 사용할 수 있으며, 시맨틱 검색에는 쿼리의 텍스트와 의미상 유사한 문서 모음을 검색하는 작업이 포함됩니다. 이는 AI 에이전트가 해당 컨텍스트에서 추가 정보를 필요로 하는 경우에 매우 중요합니다.
예를 들어, 고객 서비스 상담원은 고객이 요청하는 정보와 일치하는 FAQ 문서를 참조해야 할 수 있습니다. 예컨대 고객은 ‘내 계정과 연결된 주소를 변경하려면 어떻게 해야 하나요?’와 같은 질문을 할 수 있습니다. Amazon Bedrock Knowledge Bases를 사용하면 FAQ 문서를 Amazon S3버킷에 저장하고 해당 버킷을 Bedrock Knowledge Bases의 데이터 소스로 구성하여 시맨틱 검색을 위해 해당 문서를 인덱싱할 수 있습니다. 이 서비스는 문서를 더 작은 단위로 분할하는 '청킹', 텍스트에 대한 수치적 임베딩을 생성하도록 각 청크에 대해 '벡터화'하는 작업, 관련 청크가 시맨틱 쿼리로 반환될 수 있도록 청크와 임베딩을 저장 및 상호 연관시키는 작업을 다룹니다.
이러한 임베딩이 생성되면 임베딩을 위한 특수 데이터베이스 또는 벡터 저장소에 저장해야 합니다. Amazon Bedrock Knowledge Bases는 Amazon S3에 구축된 서버리스 벡터 데이터베이스인 Amazon S3 Vectors를 비롯한 여러 벡터 저장소 옵션을 지원합니다. 이러한 유형의 데이터 서빙 계층을 검색 증강 생성(RAG)이라고 하며, Amazon Bedrock Knowledge Bases, S3 및 S3 Vectors를 사용하여 간단하게 구현할 수 있습니다. 이를 통해 개발자는 복잡한 데이터 서빙 인프라를 관리하는 대신 AI 에이전트의 기능에 집중할 수 있습니다.
구축, 실행, 확장
임베딩이 벡터 저장소에 저장되어 액세스가 가능해지면, 다음 단계는 해당 데이터를 활용하는 AI 에이전트를 실행하는 것입니다. Amazon Bedrock AgentCore는 개발자를 위한 서버리스 런타임 환경을 제공합니다. 에이전트는 LangChain, Strands와 같은 프레임워크를 사용하거나 자체 개발한 프레임워크를 사용하여 구축할 수 있습니다. 이후 개발자는 에이전트를 zip 아카이브로 패키징하고 S3에 로드하거나, 컨테이너 이미지를 만들어 Amazon Elastic Container Registry(Amazon ECR)로 푸시할 수 있습니다. 코드가 S3 또는 ECR에 있게 되면, 서버를 관리할 필요 없이 클라우드에서 에이전트를 실행하도록 AgentCore를 구성할 수 있습니다. 또한 AgentCore는 인증과 같은 운영 프로세스도 처리하여 내장된 AWS Identity and Access Management 역할 또는 기업 ID 공급자를 통해 로그인할 수 있는 JSON Web Token을 지원합니다.
Amazon Bedrock과 AgentCore는 더 많은 서버리스 기능을 제공하지만, 이 문서에서는 RAG를 완벽하게 지원하는 에이전틱 AI 애플리케이션 개발을 위한 이상적인 출발점을 제공하는 다음 세 가지에 대해 자세히 설명합니다. 첫째, 다양한 모델을 통한 추론을 위한 Amazon Bedrock, 둘째, 문서 인덱싱 및 시맨틱 검색을 위한 Amazon Bedrock Knowledge Bases 및 S3 Vectors, 그리고 마지막으로 에이전트를 안전하고 비용 효율적인 방식으로 실행할 수 있는 Amazon AgentCore입니다.
에이전틱 AI 애플리케이션 개발은 전통적으로 복잡하고 어려운 작업이었으며, 특히 제한된 리소스로 운영되는 스타트업의 경우 더욱 그러했습니다. 서버리스 아키텍처는 엔지니어가 기본 인프라를 구축하고 관리할 필요성을 제거하여 이러한 복잡성을 줄여줍니다. 숙련된 에이전틱 AI 개발자이든 이제 막 시작하는 개발자이든, Amazon Bedrock은 포괄적인 도구 및 서비스 세트를 제공하여 개발자가 애플리케이션을 자신 있게 구축 및 확장할 수 있도록 지원합니다.
AWS에서 에이전틱 AI 구축을 시작할 준비가 되셨나요? AWS Activate는 이 문서에서 다루는 솔루션과 다양한 기타 서비스의 비용을 상쇄하는 데 사용할 수 있는 AWS 크레딧에 대한 액세스를 제공합니다. AWS Activate는 2013년 출시 이후, 전 세계 스타트업에 80억 달러 이상의 크레딧을 제공했습니다. 또한 창업자는 프로그램과 리소스, 기술 지원, 비즈니스 멘토십, 글로벌 스타트업 커뮤니티와의 긴밀한 관계를 활용하는 혜택을 얻을 수 있습니다. 수백만 명의 다른 창업자와 함께 아이디어 구상 단계에서 클라우드에 바로 적용 가능한 단계까지 발전시키는 방법을 알아보세요.
이 콘텐츠는 어떠셨나요?