[reinvent 2024] 서버리스 컨테이너와 RAG를 활용한 생성형 AI의 기능 확장

Summary

Amazon ECS와 AWS Fargate, Retrieval Augmented Generation(RAG), Opensearch Serverless를 사용하여 서버리스 환경에 컨테이너 기반 생성형 AI 어플리케이션을 구축하는 방법 및 고려해야할 사항, 모범 사례를 살펴봅니다.


리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?

Tech Blog

AWS re:Invent 2024 Tech Blog written by MegazoneCloud

Overview

  • Title: Extend generative AI capabilities with serverless containers and RAG
  • Date: 2024년 12월 2일(월)
  • Venue: Caesars Forum | Level 1 | Summit 232 | Content Hub | Builder’s 2
  • Speaker:
  • YoungJoon Jeong(Sr. Container Specialist SA, AWS)
  • Doruk Ozturk(Senior Solutions Architect, AWS)
  • Jooyoung Kim(Senior Containers Specialist Solutions Architect, AWS)
  • Jungseob Shin(Solutions Architect, AWS)
  • Chance Lee(sr. container specialist solutions architect, AWS)
  • Industry: Cross-Industry Solutions

들어가며

이번 세션에서는 서버리스 인프라만을 활용하여 Gen AI 어플리케이션을 배포하고, RAG를 통해 LLM의 성능을 강화하는 실습을 진행하였습니다. Gen AI 어플리케이션을 완전한 서버리스 환경에 배포할 때의 인프라 구성과 함께 서버리스의 특징이 Gen AI에 접목될 경우 어떠한 이점이 있는지 전달드리겠습니다.

1. RAG의 개념 및 구현 방안

고객은 Gen AI를 도입하기에 앞서 다음과 같은 과정을 거치게 됩니다. 먼저 use case를 정의하고, Gen AI 어플리케이션이 기존 서비스보다 더 가치 있을지, 투자대비 충분한 가치를 제공하는지를 판단합니다. 또 어떤 모델이 적절한지, 어떤 환경이 적절한지, 보안이 필요한 데이터는 어떻게 사용해야할지 등을 고려합니다. 

본 세션에서는 이런 고객의 요구 사항을 해결하는 실질적인 방안으로 RAG (Retrieval Augmented Generation)를 제안합니다.

RAG는 LLM을 재학습 시키지 않고, fine tuning 시키지 않고도 최신화된 데이터 소스를 활용해 유연성을 높일 수 있으며 모델의 편향성을 최소화 할 수 있습니다. 

다음 이미지는 RAG를 하는 과정에 대한 워크플로우 입니다. 데이터 소스를 임베딩하여 벡터 스토어에 저장하면, 사용자의 입력이 있을 때 시멘틱 서치를 통해 컨텍스트를 검색할 수 있습니다. 검색된 컨텍스트와 LLM을 통해 사용자의 의도에 맞는 답변을 제공할 수 있습니다.

2. 컨테이너 기반의 배포

컨테이너는 어플리케이션을 독립적으로 패키징해서 실행이 가능해 스케일링 등을 적용하는데에 유용하며 AWS에서는 Amazon ECS를 사용해 효율적으로 관리할 수 있습니다. 또, 서버리스 환경은 인프라의 관리를 최소화 하며 자동화를 시키기 좋다는 이점이 있습니다. 따라서 서버리스와 컨테이너 기반의 배포 방법을 Gen AI 어플리케이션에 적용시 각각의 강점을 사용해 빠르고 효율적인 배포가 가능합니다.

3. Fargate를 활용한 서버리스 Gen AI 아키텍처

서버리스 환경은 빠르고 간단하게 배포가 가능하다는 장점이 있습니다. 이 장점을 Gen AI 배포에 적용하면 더 혁신적인 기능을 더 빠르게 배포가 가능하며 관리 부담을 줄일 수 있습니다.

AWS Fargate를 사용한 RAG의 워크로드는 다음 이미지와 같습니다. RAG 데이터는 Amazon Bedrock의 Knowledge Base를 활용하여 앞서 말한 RAG를 위한 데이터 소스를 임베딩하여 Opensearch Serverless 서비스에 저장합니다. 저장된 벡터 데이터를 사용자의 입력이 들어올 때마다 Retrieve API를 사용하여 컨텍스트를 검색할 수 있습니다. 

전반적인 플로우는 다음과 같습니다. 사용자가 질문을 해 AWS Fargate를 통해 API를 콜하면, 해당 사용자의 질문을 사용하여 Retrieve API를 사용해 관련된 RAG 데이터를 검색해 옵니다. 그리고 검색된 데이터와 사용자의 질문, 시스템 프롬프트를 함께 Foundation 모델에 넣어 받은 최종 답변을 사용자에게 전달해 줍니다.

결론

이번 세션은 완전한 서버리스 환경에서 Gen AI를 구축하는 방법과 함께 그런 환경을 구축할 때의 장점에 대해 알아보았습니다. Gen AI와 같은 어플리케이션은 효율적인 리소스 관리와 확장성이 중요하여 컨테이너 기반과 서버리스 환경을 사용시 더욱 유연하게 배포 및 관리할 수 있다는 인사이트를 얻을 수 있었습니다.
컨테이너 기반의 Gen AI 어플리케이션 뿐만 아니라 완전히 서버리스 형태로 AWS Fargate를 사용하여 배포하는 아키텍처에 대해 직접 실습해볼 수 있어, 이후 비용 효율성 등의 이유로 서버리스 환경을 사용하게 될 경우 이런 아키텍처를 적용해볼 수 있을 것 같습니다.
글 │메가존클라우드, AI & Data Analytics Center(ADC), Data Application Support Team, 엄유진 매니저
게시물 주소가 복사되었습니다.