아마존웹서비스(AWS) 전현상 솔루션즈 아키텍트

아마존웹서비스(AWS) 전현상 솔루션즈 아키텍트
아마존웹서비스(AWS) 전현상 솔루션즈 아키텍트

[컴퓨터월드] 대규모 언어 모델(Large Language Models; LLM)에 대한 관심이 급증하면서, 많은 개발자와 조직이 이를 활용해 다양한 애플리케이션을 개발하고 있다. 하지만 사전 훈련된 LLM이 항상 예상대로 또는 기대한 대로 작동하지 않는 문제점들이 발생한다. 특히 작은 파라미터를 가진 소규모 LLM(sLLM)이나 특정 도메인에 대한 사전 학습이 부족한 일반 LLM에서 모델의 환각 현상이 자주 나타난다.

지난 호 LLM의 오류들과 환각 발생을 어떻게 완화할 수 있는지, 그리고 사실 기반 데이터를 활용해 응답하는 최근 방법들에 대해 소개한데 이어 이번 호에서는 LLM의 오류들과 환각 발생을 어떻게 완화할 수 있는지, 그리고 사실 기반 데이터를 활용해 응답하는 최근 방법들에 대해 소개한다. 특히 프롬프트 엔지니어링, 검색 증강 생성(RAG) 기법, 그리고 고급 RAG까지 LLM의 성능을 어떻게 향상시킬 수 있는지에 대한 다양한 접근 방법을 소개한다.


1. 검색 증강 생성(Retrieval-Augmented Generation; RAG)

최근 기업들이 보유하고 있는 독점적인 데이터로 LLM을 강화할 수 있다는 사실을 깨달은 이후 LLM의 일반 지식과 독점 데이터 사이의 격차를 가장 효과적으로 메우는 방법에 대한 논의가 이뤄지고 있다. 전통적으로 신경망 모델은 학습 데이터들을 파인튜닝해 도메인별 또는 독점 정보에 맞게 튜닝했다. 파인튜닝은 효과적이지만 계산 집약적이며 비용이 많이 들고 기술 전문 지식이 필요하므로 변화하는 정보에 적응하는 민첩성이 떨어지는 편이다.

이에 대한 대안으로 2020년 루이스(Lewis)1) 등은 생성 모델과 검색 모듈을 결합해 외부 지식원에서 추가 정보를 쉽게 업데이트하고 제공할 수 있는 방법인 RAG를 소개했다.

● 파라미터 지식: 파인튜닝 같은 모델 학습 중 업데이트되며 신경망 가중치에 암시적으로 저장됨.

● 비 파라미터 지식: RAG에서 사용하며 벡터 데이터 베이스와 같은 외부 지식 저장소에 저장됨.

RAG는 LLM의 정확도와 맥락을 개선하기 위한 혁신적인 기법이다. 기존의 LLM은 방대한 데이터에 기반해 일반적인 지식을 학습하지만, 항상 최신이거나 특정 도메인에 특화된 정보를 포함하고 있는 것은 아니다. 특히 훈련 데이터에 포함되지 않은 최신 또는 도메인 특화되거나 독점적 정보를 요구하는 질문에 대해 오류가 발생하기 쉽다. 예컨대 “2022년 미국 인플레이션율은 몇 퍼센트였나요?”와 같은 질의에 대한 LLM의 문제는 모델이 실시간 정보나 도메인 특화 지식 없이는 정확한 답변을 생성하기 어렵다는 점이다2).

검색 증강 생성의 워크플로우는 다음과 같다.

검색 증강 생성 워크플로우
검색 증강 생성 워크플로우

● 검색(Retrieve): 사용자의 질의를 기반으로 외부 데이터 소스에서 관련 컨텍스트를 검색하며 질의는 벡터 데이터베이스의 추가 컨텍스트와 동일한 벡터 공간으로 임베딩돼 유사성 검색을 수행하고 가장 관련성 높은 데이터를 반환한다.

● 증강(Agument): 검색된 추가 컨텍스트와 사용자 질의를 프롬프트 템플릿에 저장한다.

● 생성(Generate): 검색 증강 프롬프트를 LLM에 제공해 최종적인 응답을 생성한다.

아래 그림은 아마존 세이지메이커와 아마존 켄드라(Amazon Kendra)를 활용한 일반적 RAG의 예시다2).

아마존 세이지메이커 엔드포인트와 아마존 켄드라를 활용한 일반적 검색 증강 생성
아마존 세이지메이커 엔드포인트와 아마존 켄드라를 활용한 일반적 검색 증강 생성

아마존 세이지메이커에서 엔드포인트 API로 배포한 라마3-8B-인스트럭트(Llama3-8B-Instruct) sLLM 모델만을 이용해 “2022년 미국 인플레이션율은 얼마인가요?”라고 질의하면 6.5%라고 언급하지만 실제 미국 2022년 인플레이션율3)은 8.00%였다. 아마존 켄드라에 1960~2024년 미국 인플레이션율에 대한 웹사이트 데이터를 크롤링하고, 전 처리한 CSV 파일을 S3에 저장한 다음 켄드라가 벡터 데이터로 사용하도록 구성했다. 그다음 동일한 질문을 하면 아마존 켄드라에서 검색된 인플레이션율 정보가 컨텍스트로 프롬프트 구성되고 관련 정보가 라마3-8B-인스트럭트 모델로 전달되도록 구성했다.

최종 응답은 “문서에 따르면 2022년 미국의 인플레이션율은 8.00%였고, 이건 2021년보다 3.3% 증가한 수치입니다”라는 정확한 답변을 했다. 벡터 검색 저장소의 경우 다양한 이기종 비정형 데이터의 타입을 저장할 수 있어야 하며 질의에 따라 각각의 저장소를 검색하도록 테이블을 분리해야 한다. 아마존 켄드라는 50여 가지 데이터 커넥트 인터페이스를 가지고 있고, 하나의 인덱스에서 서로 다른 타입의 카테고리 비정형 데이터 파일을 생성형 AI 기술을 활용해 자동 인덱스 검색 처리하기 때문에 검색 적용이 쉬운 편이다.


2.1 RAG에서 프롬프트 엔지니어링의 중요성

RAG를 효과적으로 활용하기 위해서는 검색과 증강 과정에서 프롬프트 엔지니어링 기법의 적절한 적용이 필수적이다. RAG에서 벡터 데이터 저장소에서 검색된 컨텍스트를 모델 입력에 효과적으로 통합해 최종 출력의 정확도와 관련성을 크게 향상시키는 기술이 필요하기 때문이다. RAG에서 증강 부분의 프롬프트 엔지니어링은 검색된 정보를 LLM이 처리할 수 있는 형태로 변환하고, 이 정보를 활용해 보다 정확한 답변을 생성할 수 있도록 돕는다.

아래는 LLM이 CS센터 직원처럼 친절하게 대답하도록 페르소나를 지시하고 아마존 오픈서치(Amazon Opensearch)에서 검색된 정보를 재구성한 뒤 요약 응답하도록 처리한 설계 예시이다.

아마존 세이지메이커 엔드포인트와 아마존 오픈서치를 활용한 일반적 검색 증강 생성
아마존 세이지메이커 엔드포인트와 아마존 오픈서치를 활용한 일반적 검색 증강 생성

증강 부분에서 검색된 컨텍스트를 모델의 프롬프트에 어떻게 증강할지는 RAG 시스템의 성공여부를 결정하는 주요 요소다. 잘 설계된 프롬프트는 LLM이 제공된 정보를 최대한 활용해 정확한 결과를 도출할 수 있게 만들며, 잘못된 정보 추론이나 데이터의 오해를 말하지 않도록 미연에 방지할 수도 있다. 따라서 효과적인 프롬프트 설계는 RAG의 핵심 구성 요소로서, 모델의 성능을 최적화하고 실제 적용 시의 유용성을 보장한다.


2.2 고급 검색 증강 생성(Advanced Retrieval-Augmented Generation)

검색 증강 생성은 LLM의 성능 이전에 외부 저장소에서 검색하는 질의 처리 결과에 따라 프롬프트로 구성할 수 있는 데이터의 질에 영향을 받는다. 최근 이런 일반적인 RAG의 한계를 해결하는 것을 목표로 하는 고급 검색 증강 생성(Advanced Retrieval-Augmented Generation; Advanced RAG) 방법론이 제시되고 있다.

고급 검색 증강 생성은 검색 증강 생성 기법의 진화된 형태로, 일반적인 RAG의 한계를 극복하고자 다양한 최적화 기법을 적용한 접근 방식이다. 고급 검색 증강 생성은 검색 부분을 ‘사전 검색’, ‘검색’, ‘사후 검색’ 단계에서 각각의 최적화를 실시해 정보의 정확성과 처리 효율을 향상시키는 것을 목표로 한다.

일반 RAG와 고급 RAG 워크플로우 차이
일반 RAG와 고급 RAG 워크플로우 차이

검색 전 최적화

사전 검색 최적화는 데이터 인덱싱과 쿼리 최적화에 중점을 둔다. 데이터 인덱싱 최적화는 데이터를 효율적으로 검색할 수 있도록 저장 구조를 개선하는 여러 기법을 포함한다.

예를 들어 벡터 데이터베이스에 데이터를 토크나이징할 때, 입력 데이터의 청크 슬라이딩 윈도우 기법은 데이터 청크 사이에 중복을 허용해 검색 효율을 높이는 방법이다.

아래 그림과 같이, 문단이나 단일 문장으로 분리한 컨텍스트 창을 3으로 지정한다면 결과 창은 포함된 문장의 이전 문장에서 시작해 뒤의 문장에 걸쳐 세 문장 길이가 된다.

사전검색 최적화
사전검색 최적화

검색하는 동안 질의와 일치하는 문장의 앞뒤를 확인하며 검색할 수 있다. 또한 데이터 세분화를 통해 불필요한 정보를 제거하고 정확성을 확인하는 등의 데이터 클리닝 기법이 적용된다. 이외에 청크 데이터를 추가하면서 필터링 목적으로 날짜나, 팀 이름, 문서의 카테고리 등을 메타데이터로 추가하는 방법도 있다.


검색 최적화

검색 단계에서는 질의와 인덱싱된 데이터 간의 의미적 유사성을 계산해 가장 관련성 높은 컨텍스트를 식별한다. 이 단계의 최적화 기법으로는 임베딩 모델의 파인튜닝이 될 수 있으며, 특히 도메인 특화적 컨텍스트에 맞게 튜닝돼 더욱 정확한 검색 결과를 제공한다. 예를 들어 기업의 고유명사나 도메인 특화 희귀한 영어가 있는 경우 도메인별 컨텍스트에 맞게 임베딩 모델을 사용자 정의 후 파인튜닝하는 과정도 검색 최적화에 포함된다.

하이브리드 검색은 벡터 검색과 키워드 기반 검색을 결합해 특정 키워드가 정확히 일치해야 하는 검색 요구에 효과적이다. 아래 그림은 하이브리드 검색처리에 대한 예시다.

고급 검색 증강 생성의 하이브리드 검색
고급 검색 증강 생성의 하이브리드 검색

렉시컬 서치는 텍스트 기반 전통적 검색 방식으로, 의미 기반 검색의 단점을 채워줄 수 있다. 하나의 쿼리에 대해 시멘틱과 렉시컬 검색을 동시에 수행하는 하이브리드 검색 방법은 보다 나은 RAG 검색 성능을 개선할 수 있다. 아마존 오픈서치를 활용해 두 가지 검색 방식을 모두 지원해 시너지 효과를 거둘 수 있다.


검색 후 최적화

사후 검색 최적화 기법으로는 프롬프트 압축과 재순위(re-ranking) 부여가 있다. 프롬프트 압축은 불필요한 컨텍스트를 제거하고 중요한 정보를 강조해 전체 프롬프트의 길이를 줄이는 방법이다. 반면 재순위 부여는 검색된 컨텍스트의 관련성 점수를 재계산해 더욱 정확한 결과를 도출할 수 있도록 한다. 아래 그림은 재순위 부여에 대한 예시 그림이다.

재순위 부여, 검색 후 최적화
재순위 부여, 검색 후 최적화

재순위 부여의 기본 원리와 접근 방법은 아래와 같다.

● 초기 검색 단계: 사용자의 질의에 기반해 초기 검색 수행, 이때 벡터 데이터베이스나 다른 검색 엔진을 사용해 문서나 데이터 조각들이 검색된다.

● 초기 순위화: 초기 검색 결과는 질의어와 벡터 데이터의 유사성 점수(similarity score)를 기준으로 일반적으로 순위가 매겨진다. 이 점수는 질의와 문서 사이의 거리 또는 유사성을 기반으로 계산된다.

● 재순위화를 위한 데이터 선택: 재순위 부여 과정에서는 초기 순위화된 목록에서 상위에 위치한 항목들을 선택해 더 세밀한 평가를 진행한다. 이 과정에서 LLM 모델이나 추가적인 규칙 기반의 로직을 적용할 수 있다.

● 재순위 부여 알고리즘 적용: 선택된 데이터는 다양한 기준에 따라 재평가한다. 이 기준에는 문맥적 적합성, 정보의 신선도, 사용자 행동 데이터, 문서의 권위성 등이 포함될 수 있다. 프롬프트 체인을 통해 다음 프롬프트는 LLM에 전달되며, 검색된 각 항목의 새로운 순위 점수를 계산하고, 이를 기반으로 최종적인 순위를 다시 매긴다.

● 최적화된 결과 제공: 재순위화된 결과는 최종 사용자에게 제공된다. 이 결과는 초기 검색보다 훨씬 더 정확하고 개인화된 응답을 제공할 수 있다.

재순위 부여의 장점은 정보의 정확성과 관련성을 크게 향상시킬 수 있다는 점이다7). 특히 복잡한 질의에 대해 다양한 데이터 소스에서 검색된 결과를 통합할 때 유용하다. 또한 LLM이 검색된 정보를 더 잘 이해하고 활용하도록 프롬프트 체인을 실행한다.

사후 최적화 작업은 고급 RAG에서 검색된 정보를 보다 효과적으로 LLM에 통합해 더 정확하고 관련성 높은 출력을 생성할 수 있도록 만든다.

고급 RAG는 특히 복잡하거나 최신 정보를 필요로 하는 질의에 대해 탁월한 성능을 보여줄 수 있다.

예를 들어 최신 금융 데이터나 특정 과학적 주제에 관한 최근 연구 결과를 포함해 질의응답 시스템을 구축할 때, 고급 RAG는 LLM이 기존에 학습한 일반적 지식 외에도 실시간으로 업데이트된 데이터를 활용해 응답을 구성할 수 있게 돕는다. 이는 특히 급변하는 시장 조건이나 과학적 발견이 중요한 분야에서 매우 유용할 수 있다.

따라서 고급 RAG의 구현은 LLM의 활용 범위를 확장하고, 모델의 적용성과 정확성을 향상시키는 중요한 전략이다.


3. 결론

생성형 AI 중 LLM은 AI 기술의 최전선에서 혁신을 이끌고 있으며, 지금도 그 가능성은 무궁무진하다. 이 글에서는 LLM의 한계를 극복하기 위해 제안되고 있는 다양한 기술들을 소개했다. 프롬프트 엔지니어링, RAG, 고급 검색 증강 생성과 같은 기술들은 AI 모델의 정확도를 향상시키고, 환각을 줄이며, 특정 도메인에 대한 적용성을 높이는 데 중요한 역할을 한다. 이 기술들은 LLM을 실제 세계의 문제 해결에 더욱 효과적으로 활용할 수 있게 만들어, 실용적인 애플리케이션에서의 그 가치를 크게 높일 것이다.

또한 고급 검색 증강 생성과 같은 최신 기술은 일반적인 RAG의 패러다임을 극복하고 LLM이 다양한 데이터 소스로부터 얻은 지식의 검색을 보다 잘 활용할 수 있게 함으로써, 모델의 적용 범위를 넓히고 사용자에게 더 정확하고 신뢰할 수 있는 정보를 제공할 수 있도록 돕는다. 이는 특히 빠르게 변화하는 금융 시장이나 최신 IT, 제조 과학 연구와 같은 엔터프라이즈 영역에서 매우 중요하다.

RAG에서 프롬프트 엔지니어링을 세밀하게 조율하고 결합하는 것은 특히 생성형 AI 애플리케이션의 품질을 높이는 데 효과적인 전략이며, LLM은 다양한 질의에 대해 더 정확한 답변을 제공하고, 사용자의 의도와 맥락을 더 잘 이해할 수 있을 것이다.

앞으로 생성형 AI의 기술 발전은 지금보다 가속화될 것이며, LLM의 구조를 이해하고, 적절히 활용한다면 LLM은 더욱 강력한 도구로 자리 잡을 수 있을 것이다.


참조

1) Lewis et al. “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” Facebook AI Research and University College London, New York University.

2) 전현상, 곽영화. “데이터 인사이트의 혁신: Amazon AI 서비스 활용법” : 생성형 AI 기반 기술 혁신 세션, AWS Summit Seoul, 2024.

3) “U.S. Inflation Rate 1960-2024” Macrotrends.,https://www.macrotrends.net/global-metrics/countries/USA/united-states/inflation-rate-cpi.

4) aws-samples. “금융 데이터를 활용한 RAG Workshop” GitHub repository, https://github.com/aws-samples/aws-ai-ml-workshop-kr/tree/master/genai/aws-gen-ai-kr/20_applications/04_rag_finance_opensearch_sllm_workshop.

5) Leonie. “Advanced Retrieval-Augmented Generation: From Theory to LlamaIndex Implementation” Towards Data Science.

6) 문곤수, “클라우드 기반의 생성형 AI Application 프러덕션 전략 및 AWS 생성형 AI 기술과 사례”, 2024 Gen Con: Super Human Powered by AI, 2024.

7) 전현상, “클라우드 환경에서 생성형 AI의 미래 전략과 AWS 생성형 AI 기술과 사례”, 2024 클라우드 컨퍼런스⑨, ITDAILY, 2024.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지