[reinvent 2024] AWS에서의 생성형 AI 성능 개선 방안
Summary
Amazon Bedrock을 이용해서 생성형 AI RAG 성능을 최적화하는 방법에 대한 세션입니다. 최적의 모델 선택, 하이브리드 검색 구현, 청킹 전략, reranking, 네트워크 구성 개선 등의 기술을 적용하여 응답의 효율성과 품질을 개선하는 방법에 대해 이야기 합니다.
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
1. 적절한 모델 선택
동일한 사용자의 질문 (What is Mandatory Coverage insurance requirements in aurora State for young adults?)을 두 모델에 각각 질문했을 때 벡터 데이터를 불러오는 동일한 프로세스를 거친 후 LLM을 통해 답변이 나오기까지의 걸린 시간과 최종 output 토큰, 비용을 계산한 결과입니다.
이렇게 모델마다 레이턴시, 비용 및 답변의 품질에 차이가 존재하므로 각각의 상황에 맞는 적절한 모델을 사용해야합니다.
2. Chunking 전략, RAG 및 하이브리드 서치
RAG란 Retrieval Augmented Generation으로 사용자의 input으로 구성해놓은 데이터 소스에서 관련된 컨텍스트를 검색하고, 검색된 컨텍스트를 사용하여 LLM 답변을 생성해내는 방법을 말합니다.
RAG는 다음과 같은 워크플로우로 동작합니다.
추가적으로 RAG를 구성하기 위해서는 가지고 있는 문서 등의 데이터를 벡터화 하여 저장하는 과정을 거쳐야합니다. Amazon Bedrock Knowledge Bases는 이러한 청킹 프로세스를 진행하는 서비스입니다. 원천 데이터 소스의 S3 위치와 최종적으로 벡터화 된 데이터가 저장될 벡터 DB를 지정해두면 S3의 데이터를 임베딩하여 저장하고, 그를 Gen AI Application에서 RAG에 사용할 수 있습니다.
RAG 기반의 어플리케이션일 경우 LLM에서 생성된 답변의 정확도는 RAG 되어 모델에 제공되는 컨텍스트에 따라 크게 달라집니다. 컨텍스트는 사용자의 질의를 기반으로 벡터 데이터베이스에서 검색되는데, 일반적으로 사용되는 표준이나 시멘틱 검색은 텍스트 기반의 답변을 하기엔 적절하지만 데이터의 임베팅 품질과도 정확성이 연관될 경우에는 텍스트기반 검색과 벡터 기반 검색을 결합한 하이브리드 기법을 사용할 경우 더 좋은 결과가 나올 수 있습니다.
3. Amazon Bedrock의 새로 출시된 기능
추가적으로 Amazon Bedrock은 지난주 다음과 같은 새로운 기능을 출시했습니다.
- RAG 평가 지원
- RAG 어플리케이션의 정확도를 높이기 위한 API 리랭킹
- 검색 기능 향상을 위한 자동 생성 쿼리 필터 서비스
- 사용자 지정 커넥터와 스트리밍 데이터 수집
새로 출시된 기능을 활용하여 RAG의 품질을 높일 수 있습니다.
4. Streaming 챗
Streaming을 사용해서 output을 출력하면 답변을 하기 시작하는 첫 단어가 나오는 속도가 한 번에 답변을 출력할 때보다 빨라져 사용자가 느끼는 시간이 감소합니다. 일반 사용자를 대상으로 하는 경우에는 streaming을 적용하면 사용자 경험이 좋아질 수 있습니다.
다음 이미지는 워크샵 세션의 예시 중 하나로 streaming 형태로 답변을 출력할 때와 답변이 모두 생성되었을 때 답변을 출력하는 경우 두 가지의 시간을 측정한 결과입니다.