[reinvent 2024] Retrieval Augmented Generation (RAG)만으로 충분한가?

Summary

Generative AI의 응답 정확도를 높이기 위해 Retrieval Augmented Generation (RAG)와 파인 튜닝 기법을 활용하는 방법을 배울 수 있습니다. Amazon Bedrock Knowledge Bases를 사용해 RAG를 쉽게 구현하는 방법과, Amazon SageMaker에서 AWS Trainium으로 모델을 파인 튜닝하고, AWS Inferentia에서 배포한 후, Amazon OpenSearch Service로 RAG 워크플로우를 구축하는 방법을 학습합니다. 각 접근 방법을 사용자의 필요에 맞게 최적화하는 방법도 함께 다룹니다.


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

Tech Blog

AWS re:Invent 2024 Tech Blog written by MegazoneCloud

Overview

  • Title: Is Retrieval Augmented Generation (RAG) all you need?
  • Date: 2024년 12월 4일(수)
  • Venue: Venetian | Level 3 | Murano 3201B
  • Speaker:
  • Amogh Gaikwad(Sr. Solutions Developer, Amazon Web Services)
  • Shane Thompson(Sr. Solutions Architect, Amazon Web Services)
  • Industry: –

들어가며

생성형 AI 응답의 정확도를 높이는 방법은 무엇일까요? 이번 워크숍에서는 Retrieval Augmented Generation (RAG)과 세부 조정(Fine-Tuning)을 통해 이를 해결하는 두 가지 접근법을 다룹니다.

먼저, Amazon Bedrock Knowledge Bases를 활용해 RAG를 빠르게 구현하는 방법을 배우고, 이후 Amazon SageMaker와 AWS Trainium으로 모델을 세부 조정한 뒤, AWS Inferentia에서 배포하며 Amazon OpenSearch Service로 RAG 워크플로를 구축하는 실습이 진행됩니다.

각 방법의 특징과 적용 시점을 학습하며, 실무에 필요한 도구와 기술을 익힐 수 있을 것으로 기대했습니다.

About LLM

대규모 언어 모델(LLM)은 인간과 유사한 텍스트를 생성하기 위해 단어 시퀀스를 예측하는 생성형 AI 모델입니다. LLM은 2017년에 발표된 Transformer 아키텍처를 기반으로 하며, 이 아키텍처는 “Attention is All You Need” 논문에서 처음 소개되었습니다. 이후, 더 큰 규모의 훈련 데이터셋과 파라미터를 활용하여 모델 크기가 급격히 확장됨에 따라 성능이 비약적으로 향상되었습니다.

하지만, 기존 LLM은 다음과 같은 한계를 가지고 있습니다.

  • 훈련 데이터에 의존: 모델의 성능이 사전 학습된 데이터에 국한되며, 도메인별 전문 지식이나 최신 정보는 포함되지 않는 경우가 많습니다.
  • 최신 정보 부족: 훈련 데이터의 시점 제한으로  최근 정보나 뉴스 데이터를 반영하지 못합니다.

이러한 제약으로 인해, LLM을 실질적인 비즈니스 워크로드에 활용하려면 “맞춤화(customization)”가 필요합니다. 맞춤화를 통해 도메인 지식을 추가하고, 특정 데이터셋에 모델을 적응시켜 더 정밀하고 신뢰성 있는 결과를 도출할 수 있습니다.

Customizing LLM

LLM을 비즈니스에 맞게 최적화하려면 다양한 맞춤화 방법을 사용할 수 있습니다. 각 방법은 목표와 필요에 따라 성능, 시간, 비용 측면에서 다르게 적용될 수 있습니다. 이번 세션에서는 가장 일반적인 맞춤화 기법인 프롬프트 엔지니어링, 정보 검색 증강 생성(RAG), 파인 튜닝(Fine-Tuning) 및 모델 학습을 비교하여, 어떤 상황에서 어떤 방법이 가장 적합한지 알아봅니다.

(1) 프롬프트 엔지니어링

프롬프트 엔지니어링은 모델에게 특정한 입력을 제공하여 원하는 형태의 출력을 유도하는 방법입니다. 이는 간단하고 빠르게 적용할 수 있는 기술로, 사용자가 모델에 제공하는 프롬프트(질문이나 지시)에 따라 모델의 반응을 조정할 수 있습니다. 예를 들어, 질문에 대한 명확한 답변을 유도하거나, 특정 스타일로 텍스트를 생성하도록 할 수 있습니다.

[ 장점 ]

간단한 설정으로 빠른 결과를 얻을 수 있으며, 모델을 재학습시키지 않고도 즉시 사용 가능합니다.

[ 단점 ]

복잡하거나 도메인 특화된 비즈니스 요구에는 한계가 있을 수 있습니다. 특히, 모델이 이해할 수 있는 범위 내에서만 반응하므로, 모델의 깊은 이해가 요구되는 문제에는 적합하지 않습니다.

(2) 정보 검색 증강 생성 (RAG)

RAG는 외부 데이터를 벡터 형식으로 인덱싱하여, 모델이 특정 쿼리나 요청에 대해 관련 정보를 실시간으로 검색하고 이를 바탕으로 응답을 생성하는 방법입니다. 이를 위해 벡터 데이터베이스를 사용해 도메인 관련 데이터를 임베딩(벡터화)하고, 쿼리가 들어오면 그와 관련된 데이터를 검색하여 모델에 제공하게 됩니다. 이렇게 모델은 기존에 훈련된 데이터 외에도 실시간으로 업데이트된 정보를 바탕으로 응답을 생성하게 되므로, 응답의 정확도와 신뢰성을 높일 수 있습니다.

[ 장점 ]

외부 데이터를 실시간으로 반영할 수 있어 최신 정보나 도메인 특화된 지식에 대한 정확도가 높아집니다.

[단점]

데이터 검색 및 제공 과정에서 시간이 소요될 수 있으며, 적절한 벡터화 및 데이터 관리가 필요합니다. 또한, 잘못된 데이터가 제공될 경우, 결과의 정확성에 영향을 줄 수 있습니다.

(3) 파인 튜닝(Fine-Tuning)

파인 튜닝은 사전 훈련된 모델의 파라미터를 조정하여 특정 도메인이나 사용 사례에 최적화된 성능을 발휘하게 만드는 과정입니다. 기존에 학습된 모델을 기반으로, 추가적인 데이터셋을 사용해 모델을 재학습시킴으로써 도메인 특화된 지식이나 사용자 요구에 맞는 결과를 제공할 수 있습니다. 예를 들어, 의료, 금융, 법률과 같은 특정 산업에 맞는 데이터를 통해 모델의 이해도를 높이고, 더 정확하고 구체적인 응답을 생성할 수 있습니다.

[ 장점 ]

특정 비즈니스 도메인에 맞는 매우 구체적이고 정확한 모델을 생성할 수 있으며, 데이터가 충분히 품질이 높으면 성능이 크게 향상됩니다.

[ 단점 ]

 많은 데이터와 시간이 필요하고, 이를 위해 상당한 계산 자원과 비용이 들어갑니다. 또한, 모델 파라미터를 변경하면서 기존 성능에 영향을 미칠 수 있어 신중한 접근이 필요합니다.

AWS Inferentia 2

AWS는 Inferentia와 Trillium이라는 맞춤형 AI 가속기를 통해, 더욱 최적화된 성능을 제공합니다. 이들 가속기는 특히 대규모 AI 모델을 배포하고, 실시간 추론을 처리하는 데 유리합니다. AWS는 이를 통해 비용 절감과 고성능 추론을 동시에 달성할 수 있도록 지원합니다.

  • Inferentia 2
    Inferentia 2는 AWS의 두 번째 세대 AI 가속기입니다. 모델 추론의 효율성을 극대화하며, 고성능 추론을 제공하는데 필요한 대규모 메모리와 빠른 데이터 처리 속도를 지원합니다.
    • 4배 높은 처리량과 10배 낮은 지연 시간 제공
    • 10TB/s의 메모리 대역폭과 384GB의 가속기 메모리
    • 175억 파라미터 모델을 단일 인스턴스에서 배포 가능

GPU 대비 낮은 비용으로 대규모 모델을 처리할 수 있으며, 모델 배포 비용과 연산 자원을 절반으로 줄여줍니다. 전력 소비도 절감할 수 있는 환경 친화적인 인스턴스입니다.

WorkShop

  • 개요
    이 워크샵은 AWS의 클라우드 인프라를 활용하여LLM을 효율적으로 배포하고 운영하는 방법을 배우는 것입니다. 특히, AWS Inferentia2 가속기를 사용하여 비용 효율적이고 성능이 뛰어난 AI 모델 배포를 실습합니다.
  • 사용 서비스
    • Amazon SageMaker: AWS의 머신러닝 플랫폼
    • AWS Inferentia 2: AI 모델 실행을 위한 전용 하드웨어
    • Amazon S3: 모델 파일을 저장하는 스토리지 서비스
  • 실습 과정 : Deploy Fine-Tuned Model on AWS Inferentia 2
    • 필요한 SDK와 라이브러리를 설치합니다.
    • S3에서 Model을 가져옵니다.
    • SageMaker Image와 Model Artifact를 가져와서 SageMaker Endpoint를 생성합니다.
    • Endpoint를 Inferentia2에 배포하고 추론 테스트를 합니다.

결론

이번 세션에서는 RAG와 Fine-Tuning을 활용한 LLM 맞춤화 기법에 대해 설명했습니다.  AWS Inferentia와 AWS Trainium과 같은 최적화된 하드웨어를 통해 모델 배포와 추론 효율성을 극대화할 수 있다는 점을 배울 수 있었으며, 실습을 통해 Amazon Bedrock Knowledge Bases, SageMaker, OpenSearch Service와 같은 서비스들을 활용해 실제 워크플로우를 구축하는 경험을 얻을 수 있었습니다.

세션에서 배운 내용을 통해, RAG와 Fine Tuning의 사용 시점을 잘 파악할 수 있었고, 특히 AWS 하드웨어 리소스를 최적화하여 효율적인 비용 관리가 가능하다는 점이 매우 유익했습니다. 또한, 다양한 실습을 통해 기술을 직접 체험할 수 있었던 점이 좋았고, Prompting도 여러번 테스트를 해보면서 최적의 프롬프트를 찾는 과정이 재미있었습니다.

글 │메가존클라우드, AI & Data Analytics Center (ADC), Data Architecture Team, 조민경 매니저
게시물 주소가 복사되었습니다.