본문 바로가기
ML & DL/논문리뷰

Seven Failure Points When Engineering a Retrieval AugmentedGeneration System

by 공부하는 무니 2024. 6. 9.
반응형

원문: https://arxiv.org/pdf/2401.05856

ABSTRACT

RAG(검색 증강 생성) 시스템은 검색과 생성 기능을 결합한 것으로, 소프트웨어 엔지니어들이 애플리케이션에 의미적 검색 기능을 추가하는 전략입니다. 이 시스템은 질문에 맞는 문서를 찾고, 그 문서를 ChatGPT 같은 대형 언어 모델(LLM)에 전달해 올바른 답을 추출하는 방식입니다.

 

RAG 시스템의 목표!
1. LLM의 환각 응답 문제를 줄이기
2. 생성된 응답에 출처/참조를 연결하기
3. 문서에 메타데이터를 주석 달 필요를 없애기

하지만, RAG 시스템은 정보 검색 시스템과 LLM에 의존하는 한계가 있습니다. 이 논문에서는 연구, 교육, 생의학 세 가지 도메인에서 RAG 시스템의 실패 사례를 통해 얻은 경험을 공유하고, 설계 시 고려해야 할 7가지 실패 지점을 제시합니다.

 

논문에서 제시하는 주요 시사점 두 가지
1. RAG 시스템의 검증은 운영 중에만 가능하다.
2. RAG 시스템의 견고성은 처음부터 설계되는 것이 아니라 점진적으로 발전한다.

논문 후반부에는 소프트웨어 엔지니어링 커뮤니티를 위한 RAG 시스템의 잠재적 연구 방향을 제시합니다.

 

1 INTRODUCTION

LLM의 발전, 특히 ChatGPT와 같은 모델은 소프트웨어 엔지니어들에게 새로운 세계를 열어주었죠. 이 모델들은 새로운 HCI(인간-컴퓨터 상호작용) 솔루션을 구축하고, 복잡한 작업을 완료하며, 문서를 요약하고, 특정 기사에 대한 질문에 답하고, 새로운 콘텐츠를 생성하는 등의 기능을 수행할 수 있습니다. 그러나 LLM은 최신 지식이나 특정 도메인 지식을 포함하는 회사의 저장소에 있는 지식에 대해서는 한계가 있습니다.

이 문제를 해결하는 두 가지 방법은 다음과 같습니다.
1. LLM을 도메인 특화 아티팩트를 사용해 미세 조정하는 것(추가 학습)
2. 기존의 지식 아티팩트를 사용하여 답변을 생성하는 RAG(검색 증강 생성) 시스템을 사용하는 것

두 가지 방법 모두 데이터의 프라이버시/보안, 확장성, 비용, 필요한 기술 등에 관련된 장단점이 있습니다. 이 논문에서는 RAG 시스템에 초점을 맞춥니다.

RAG 시스템은 이러한 문제에 대한 매력적인 솔루션을 제공합니다. 검색 메커니즘과 LLM의 생성 기능을 통합하여, RAG 시스템은 문맥적으로 관련 있고 정확하며 최신 정보를 종합할 수 있습니다. RAG 시스템은 정보 검색 기능과 LLM의 생성 능력을 결합합니다. 검색 구성 요소는 데이터 저장소에서 사용자 쿼리에 대한 관련 정보를 검색하는 데 중점을 두고, 생성 구성 요소는 검색된 정보를 문맥으로 사용하여 사용자 쿼리에 대한 답변을 생성합니다. RAG 시스템은 모든 비정형 정보를 인덱싱하고 쿼리할 수 있게 하여 지식 그래프 생성과 데이터 큐레이션 및 정리 시간을 줄입니다.

RAG 시스템을 구축하는 소프트웨어 엔지니어는 다양한 형식의 도메인 지식을 전처리하고, 처리된 정보를 적절한 데이터 저장소(벡터 데이터베이스)에 저장하며, 올바른 쿼리-아티팩트 매칭 전략을 구현하거나 통합하고, 일치된 아티팩트를 순위 매기고, 사용자 쿼리와 문맥 문서를 LLM API에 전달하는 등의 작업을 수행해야 합니다. RAG 시스템 구축을 위한 새로운 발전이 계속 나오고 있지만, 특정 응용 프로그램 맥락에서 이들이 어떻게 관련되고 성능을 발휘하는지는 발견되어야 합니다.

이 연구에서는 세 가지 사례 연구에서 얻은 교훈과 7가지 실패 지점을 제시합니다. 

이 논문의 목적은 다음과 같습니다
1. 실무자들에게 참고 자료를 제공
2. RAG 시스템을 위한 연구 로드맵을 제시

우리의 지식으로는, 우리는 강력한 RAG 시스템을 만드는 데 있어 발생하는 문제들에 대한 첫 번째 경험적 통찰을 제공합니다. LLM의 발전이 계속됨에 따라 소프트웨어 엔지니어링 커뮤니티는 LLM으로 강력한 시스템을 실현하는 방법에 대한 지식을 제공할 책임이 있습니다. 이 연구는 강력한 RAG 시스템 구축을 위한 중요한 단계입니다.

연구 질문은 다음과 같습니다.
- RAG 시스템을 엔지니어링할 때 발생하는 실패 지점은 무엇인가? (섹션 5)
- BioASQ 데이터 세트를 사용한 실험을 통해 잠재적 실패 지점을 보고합니다. 이 실험에는 15,000개의 문서와 1,000개의 질문과 답변 쌍이 포함되었습니다. 모든 문서를 인덱싱한 후 쿼리를 실행하고 GPT-4를 사용하여 생성된 응답을 저장했습니다. 모든 질문과 답변 쌍은 OpenAI evals 1로 검증되었으며, 수동 검사(모든 불일치, 모두 부정확한 것으로 표시된 것 및 올바른 라벨의 샘플)를 통해 패턴을 분석했습니다.
- RAG 시스템을 엔지니어링할 때의 주요 고려 사항은 무엇인가? (섹션 6)
- RAG 시스템 구현과 관련된 세 가지 사례 연구에서 얻은 교훈을 제시합니다. 이는 직면한 도전 과제와 얻은 통찰을 포함합니다.

논문의 기여 포인트는 다음과 같습니다.
- RAG 시스템에서 발생하는 실패 지점(FP) 목록
- RAG 시스템 구현에 대한 세 가지 사례 연구의 경험 보고서.

(위 두 개는 Deakin University에서 현재 실행 중입니다.)
- 세 가지 사례 연구에서 얻은 교훈을 바탕으로 한 RAG 시스템 연구 방향

2 RELATED WORK

Retrieval Augmented Generation(RAG) 시스템은 문서를 사용하여 대형 언어 모델(LLM)을 보강하는 방식입니다. RAG 시스템은 사전 학습 혹은 추론 단계에서 문서를 활용합니다. RAG를 학습이나 파인 튜닝 없이 사용하는 것은 계산 비용, 데이터 준비 시간 및 필요한 자원 때문에 매력적입니다. 하지만 LLM을 사용하여 정보 추출을 할 때 긴 텍스트에서의 성능 문제 등의 도전 과제가 있습니다.

최근의 설문 조사에 따르면, RAG 파이프라인에서는 검색기, 데이터 생성기, 리라이터(재작성기), 리더(독자) 등 다양한 단계에서 대형 언어 모델이 사용됩니다. 우리의 연구는 소프트웨어 엔지니어링 관점에서 RAG 시스템 구현 시 직면하게 되는 문제와 이를 해결하기 위한 연구의 필요성을 조명합니다.

최신 연구는 RAG 시스템의 벤치마킹을 다루고 있지만, 구현 중 발생하는 실패에 대해서는 다루지 않았습니다. 소프트웨어 엔지니어링 연구는 코드 관련 작업에 RAG 시스템을 사용하는 것을 조사해 왔으나, RAG 시스템의 응용 범위는 소프트웨어 엔지니어링 작업보다 넓습니다. 이 논문은 실무자들이 RAG 시스템을 구현할 때 직면하는 도전 과제에 중점을 두어 기존 연구를 보완합니다.

RAG 시스템에서 발생하는 오류와 실패는 다른 정보 검색 시스템과 겹치는 부분이 있습니다. 여기에는 쿼리 재작성에 대한 메트릭이 없고, 문서 재랭킹, 효과적인 콘텐츠 요약 등이 포함됩니다. 우리의 결과는 이러한 점을 확인시켜 줍니다. RAG 시스템의 고유한 측면은 LLM의 의미적 및 생성적 특성과 관련된 사실적 정확성 평가 등이 있습니다.

3 RETRIEVAL AUGMENTED GENERATION

최근 ChatGPT, Claude, Bard와 같은 대형 언어 모델 서비스의 인기가 급증하면서, 이들을 질문 및 응답 시스템으로 사용하는 방법이 탐구되고 있습니다.

이러한 모델의 성능은 인상적이지만 두 가지 근본적인 문제가 있습니다.
1. 환각(hallucinations): LLM이 겉보기에는 맞는 것처럼 보이지만 실제로는 틀린 응답을 생성하는 경우.
2. 비한정성(unbounded): 출력 내용을 지시하거나 업데이트할 방법이 없다는 점(프롬프트 엔지니어링을 제외하고).

RAG(검색 증강 생성) 시스템은 LLM을 직접 사용하는 것의 한계를 극복하기 위해 고안된 정보 검색 접근 방식입니다.
RAG 시스템의 작동 방식은 다음과 같습니다.
1. 자연어 쿼리를 임베딩으로 변환합니다.
2. 변환된 임베딩을 사용하여 문서 집합을 의미적으로 검색합니다.
3. 검색된 문서를 대형 언어 모델에 전달하여 답변을 생성합니다.

RAG 시스템의 개요는 두 개의 별도 프로세스, 즉 인덱스(Index)와 쿼리(Query)로 나뉘어 있습니다. 

3.1 Index Process

RAG 시스템에서 검색 시스템은 문서의 의미적 표현을 압축한 임베딩을 사용하여 작동합니다. 임베딩은 숫자 벡터로 표현됩니다. 인덱스 프로세스 동안 각 문서는 더 작은 조각으로 나뉘어 임베딩 모델을 사용하여 임베딩으로 변환됩니다. 원래의 조각과 임베딩은 데이터베이스에 인덱싱됩니다.

소프트웨어 엔지니어들은 문서를 어떻게 나누고 조각의 크기를 얼마나 크게 할지에 대한 설계 결정을 내려야 합니다. 조각이 너무 작으면 특정 질문에 답할 수 없고, 조각이 너무 길면 답변에 잡음이 포함됩니다.

다양한 유형의 문서에는 다른 조각화 및 처리 단계가 필요합니다. 예를 들어, 비디오 콘텐츠는 오디오를 추출하고 텍스트로 변환하는 전사 파이프라인이 필요합니다(4.2절 참조). 어떤 임베딩을 사용할지 선택하는 것도 중요합니다. 임베딩 전략을 변경하면 모든 조각을 다시 인덱싱해야 하기 때문입니다. 임베딩은 의미적으로 정확한 응답을 검색할 수 있는 능력에 따라 선택되어야 합니다. 이 프로세스는 조각의 크기, 예상되는 질문의 유형, 콘텐츠의 구조 및 응용 분야에 따라 달라집니다.

3.2 Query Process

쿼리 프로세스는 런타임에 발생합니다. 자연어로 표현된 질문은 먼저 일반 쿼리로 변환됩니다. 이 일반화된 쿼리를 만들기 위해 대형 언어 모델이 사용되며, 이전 채팅 기록과 같은 추가적인 문맥을 새 쿼리에 포함할 수 있게 해줍니다. 새로운 쿼리로부터 임베딩이 계산되어 데이터베이스에서 관련 문서를 찾는 데 사용됩니다. 코사인 유사도와 같은 유사도 방법을 사용하여 가장 유사한 상위 k개의 문서가 검색됩니다(벡터 데이터베이스는 검색 시간을 단축하기 위해 역인덱스와 같은 기술을 사용합니다). 직관적으로 쿼리와 의미적으로 가까운 조각들이 답변을 포함할 가능성이 높습니다.

검색된 문서는 답변이 포함된 조각이 상위에 위치하도록 재정렬됩니다. 다음 단계는 Consolidator로, 조각을 처리하는 역할을 합니다. 이 단계는 대형 언어 모델의 한계인 1) 토큰 제한 및 2) 속도 제한을 극복하기 위해 필요합니다. OpenAI와 같은 서비스는 프롬프트에 포함할 수 있는 텍스트 양에 엄격한 한계를 두고 있습니다. 이는 답변을 추출하기 위해 프롬프트에 포함할 수 있는 조각 수를 제한하며, 답변을 얻기 위해 프롬프트를 체인으로 연결하는 축소 전략이 필요합니다. 이러한 온라인 서비스는 시간당 사용할 수 있는 토큰 수를 제한하여 시스템의 지연 시간에 제약을 줍니다. 소프트웨어 엔지니어는 RAG 시스템을 설계할 때 이러한 절충점을 고려해야 합니다.

RAG 파이프라인의 최종 단계는 생성된 텍스트에서 답변을 추출하는 것입니다. 독자(Reader)는 프롬프트의 잡음을 필터링하고, 포맷 지침을 준수하며(예: 질문에 대한 답변을 옵션 목록으로 작성), 쿼리에 반환할 출력을 생성하는 역할을 합니다. RAG 시스템의 구현은 질문과 답변을 처리하기 위해 여러 프롬프트를 사용자 정의하는 것을 필요로 합니다. 이 과정은 도메인에 관련된 질문들이 반환되도록 보장합니다. 문서에서 실시간으로 질문에 답변하기 위해 대형 언어 모델을 사용하는 것은 새로운 응용 분야를 열어줍니다. 따라서, RAG 시스템은 테스트하기가 어려운데, 기존 데이터가 없기 때문에 a) 합성 데이터 생성, 또는 b) 최소한의 테스트로 시스템을 파일럿팅하여 실험적으로 발견해야 합니다.

4 CASE STUDIES

이 연구에서는 RAG 시스템을 구현할 때 발생하는 문제를 발견하기 위해 세 가지 사례 연구를 수행했습니다. 각 사례 연구의 요약은 표 1에 나와 있습니다. BioASQ 사례 연구와 관련된 모든 스크립트, 데이터 및 각 실패 지점의 예시는 온라인에서 확인할 수 있습니다. 다른 두 가지 사례 연구는 기밀 문제로 인해 제외되었습니다.

4.1 Cognitive Reviewer

Cognitive Reviewer는 연구자들이 과학 문서를 분석하는 것을 지원하기 위해 설계된 RAG 시스템입니다. 연구자들은 연구 질문이나 목표를 지정하고 관련된 연구 논문들을 업로드합니다. 시스템은 이 문서들을 연구자가 수동으로 검토할 수 있도록 목표에 따라 순위를 매깁니다. 연구자는 또한 모든 문서에 대해 직접 질문을 할 수 있습니다. 현재 Deakin University의 박사과정 학생들이 문헌 검토를 지원받기 위해 Cognitive Reviewer를 사용하고 있습니다. 이 시스템은 업로드된 문서를 처리하기 위해 실시간으로 인덱스 과정을 수행하고, 강력한 데이터 처리 파이프라인에 의존하여 문서의 품질을 관리합니다. 또한, 문서를 정렬하기 위해 랭킹 알고리즘을 사용합니다.

4.2 AI Tutor

AI Tutor는 학생들이 과목에 대해 질문을 하면 학습 자료에서 답변을 제공하는 시스템입니다. 학생들은 답변의 출처를 확인할 수 있습니다. 이 시스템은 Deakin 대학의 학습 관리 시스템에 통합되어 PDF, 비디오, 텍스트 문서를 인덱싱합니다. 비디오는 Whisper 모델을 사용해 텍스트로 변환한 후 처리됩니다. AI Tutor는 2023년 8월부터 11월까지 개발되었고, 2023년 10월 30일부터 200명의 학생을 대상으로 파일럿 테스트가 시작되었습니다. 이 시스템은 질문을 명확하게 다시 작성해 주는 기능도 포함하고 있습니다.

4.3 Biomedical Question and Answer

이전 사례 연구들은 작은 규모의 문서를 다루었습니다. 더 큰 규모에서의 문제를 탐구하기 위해, 우리는 BioASQ 데이터셋을 사용하여 RAG 시스템을 만들었습니다. BioASQ 데이터셋은 질문, 문서 링크, 그리고 답변으로 구성되어 있으며, 답변 유형은 예/아니오, 텍스트 요약, 사실 정보, 목록입니다. 이 데이터셋은 생의학 전문가들이 준비한 도메인 특정 질문과 답변 쌍을 포함합니다. 우리는 BioASQ 데이터셋에서 4017개의 오픈 액세스 문서를 다운로드하고 총 1000개의 질문을 사용했습니다. 모든 문서를 인덱싱하고 RAG 시스템을 통해 질문을 했습니다. 생성된 질문은 OpenAI의 OpenEvals 기법을 사용해 평가했습니다. 생성된 질문들 중 40개의 문제를 수동으로 검사했고, OpenEvals에서 부정확하다고 표시된 모든 문제를 검토했습니다. 자동 평가가 인간 평가자보다 더 비관적이라는 것을 발견했지만, 이는 BioASQ가 도메인 특정 데이터셋이고 리뷰어들이 전문가가 아니었기 때문에 유효성에 위협이 될 수 있습니다. 즉, 대형 언어 모델이 비전문가보다 더 많이 알 수 있습니다.

5 FAILURE POINTS OF RAG SYSTEMS

사례 연구를 통해 RAG 시스템을 설계할 때 발생하는 실패 지점을 식별했습니다. RAG 시스템을 엔지니어링할 때 발생하는 실패 지점은 무엇일까요?


실패 지점 (Failure Points, FP)
FP1. 내용 누락(Missing Content)
- 질문에 대한 답변이 문서에 없을 때 발생합니다. 이상적인 경우, RAG 시스템은 "죄송합니다, 모르겠습니다"와 같은 응답을 해야 합니다. 그러나 문서와 관련된 내용이지만 문서에는 답변이 없는 질문의 경우, 시스템이 잘못된 응답을 제공할 수 있습니다.(할루시네이션)

FP2. 상위 랭크 문서 누락(Missed the Top Ranked Documents)
- 문서에 답변이 있지만, 검색 결과에서 상위에 랭크되지 않아 사용자에게 제공되지 않을 때 발생합니다. 이론적으로는 모든 문서가 랭크되어 사용되어야 하지만, 실제로는 성능을 고려하여 상위 K개의 문서만 사용됩니다.

FP3. 문맥 부족 - 통합 전략 한계(Not in Context - Consolidation Strategy Limitations)
- 데이터베이스에서 답변이 포함된 문서를 찾았지만, 답변 생성을 위한 문맥에 포함되지 않을 때 발생합니다. 이는 많은 문서가 검색되고 이를 통합하는 과정에서 일어날 수 있습니다.

FP4. 추출 실패(Not Extracted)
- 답변이 문맥에 있음에도 불구하고, 언어 모델이 정확한 답변을 추출하지 못할 때 발생합니다. 이는 주로 문맥에 너무 많은 노이즈나 모순되는 정보가 있을 때 일어납니다.

FP5. 잘못된 형식(Wrong Format)
- 질문이 표나 목록과 같은 특정 형식으로 정보를 추출하는 것을 요구했지만 대형 언어 모델이 이 지침을 무시한 경우입니다.

FP6. 부정확한 구체성(Incorrect Specificity)
- 응답에 답변이 포함되어 있지만, 사용자의 요구에 비해 너무 구체적이거나 일반적일 때 발생합니다. 이는 RAG 시스템 설계자가 특정 질문에 대해 원하는 결과를 설정한 경우, 예를 들어 학생들을 위한 교사의 경우 단순한 답변이 아닌 구체적인 교육 내용을 제공해야 할 때 발생할 수 있습니다. 또한 사용자가 질문을 어떻게 해야 할지 모르고 너무 일반적으로 질문할 때도 발생합니다.

FP7. 불완전한 답변(Incomplete)
- 불완전한 답변은 틀리지는 않지만, 문맥에 있고 추출 가능했던 정보를 놓친 경우입니다. 예를 들어, "문서 A, B, C에서 다루는 주요 포인트는 무엇인가요?"라는 질문에 대해 각각의 문서에 대한 질문을 별도로 하는 것이 더 나은 접근 방식일 수 있습니다.

6 LESSONS AND FUTURE RESEARCH DIRECTIONS

위에서 언급한 세 가지 사례 연구를 통해 얻은 시사점입니다. RAG 시스템을 엔지니어링할 때 고려해야 할 주요 사항은 무엇인지에 대한 대답이 됩니다. 

6.1 Chunking and Embeddings

문서 청킹은 단순해 보일 수 있지만, 조각화의 품질은 검색 과정에 큰 영향을 미칩니다. 조각의 임베딩이 사용자 쿼리와의 유사성 및 일치성에 영향을 미치기 때문입니다.

문서 청킹 방법에는 두 가지가 있습니다.
1. 휴리스틱 기반 조각화: 구두점, 문단 끝 등을 기준으로 조각을 나눔.
2. 의미적 조각화: 텍스트의 의미를 고려하여 조각의 시작과 끝을 결정.

 추가 연구 필요성
이 두 방법의 장단점을 탐구하고, 조각화 방식이 임베딩 및 유사성 매칭과 같은 후속 프로세스에 미치는 영향을 연구해야 합니다. 쿼리 관련성 및 검색 정확성과 같은 메트릭을 비교하는 체계적인 평가 프레임워크가 필요합니다.

임베딩 연구
임베딩 생성은 활발한 연구 분야입니다. 테이블, 그림, 수식 등 멀티미디어와 다중 모드 조각을 위한 임베딩 생성도 포함됩니다. 조각 임베딩은 시스템 개발 중 또는 새 문서가 인덱싱될 때 한 번 생성됩니다. 쿼리 전처리는 특히 부정적이거나 모호한 쿼리를 처리할 때 RAG 시스템의 성능에 큰 영향을 미칩니다. 임베딩의 고유한 한계를 해결하기 위한 아키텍처 패턴과 접근 방식에 대한 추가 연구가 필요합니다.

6.2 RAG vs Finetuning

대형 언어 모델(LLM)은 많은 양의 훈련 데이터와 모델 출시 전에 적용된 미세 조정 작업 덕분에 훌륭한 세계 모델입니다. 그러나 이러한 모델은 일반 목적의 모델로 특정 도메인의 세부 사항을 잘 알지 못할 수 있으며, 지식의 기준 날짜 이후로 업데이트되지 않습니다. 모델을 맞춤화하기 위해 미세 조정과 RAG(검색 증강 생성) 두 가지 방법이 있습니다. 각 방법에는 고유한 장단점이 있습니다.

Fine-tuning
- 장점: 내부 데이터셋을 사용해 모델을 조정하고 훈련시켜 특정 도메인에 적합하게 만들 수 있음.
- 단점: 모든 데이터를 모델에 포함해야 하며, 보안/프라이버시 문제를 해결해야 함. 또한, 모델이 진화하거나 새로운 데이터를 추가할 때마다 다시 파인 튜닝을 해야 함.

RAG시스템
- 장점: 필요한 데이터를 청크로 나누어 관련된 청크만을 사용해 모델에 문맥을 제공하여 답변을 생성하게 함. 새로운 문서로 지식을 지속적으로 업데이트할 수 있으며, 사용자가 접근할 수 있는 조각을 제어할 수 있음.
- 단점: 청크 임베딩, 검색, 문맥 통합의 최적 전략은 여전히 활발한 연구 영역임.

파인튜닝과 RAG 패러다임을 정확도, 지연 시간, 운영 비용, 견고성 등의 요소를 기준으로 체계적으로 비교하는 추가 연구가 필요합니다.

6.3 Testing and Monitoring RAG systems

RAG(검색 증강 생성) 시스템에 대한 소프트웨어 엔지니어링 최선의 실천 방법은 아직 발전 중입니다. 특히 소프트웨어 테스트와 테스트 케이스 생성 분야에서 개선이 필요합니다. RAG 시스템은 특정 응용 프로그램에 맞는 질문과 답변이 필요하지만, 비정형 문서를 인덱싱할 때 이러한 데이터가 종종 부족합니다. 최근 연구는 LLM을 사용해 여러 문서에서 질문을 생성하는 방법을 고려하고 있습니다. 그러나 현실적이고 도메인 관련성이 높은 질문과 답변을 생성하는 것은 여전히 해결되지 않은 문제입니다.

적절한 테스트 데이터가 마련되면, 품질 트레이드오프를 결정하는 데 도움이 되는 품질 메트릭도 필요합니다. 대형 언어 모델 사용은 비용이 많이 들고 지연 시간 문제를 초래하며, 새 버전이 출시될 때마다 성능 특성이 변화합니다. 이러한 특성은 이전에 머신 러닝 시스템에서 연구되었지만, LLM 기반 시스템(RAG 시스템 등)에 필요한 적응은 아직 적용되지 않았습니다.

또한, 자기 적응 시스템에서 아이디어를 차용해 RAG 시스템의 모니터링과 적응을 지원하는 방안도 고려되고 있으며, 이는 다른 머신 러닝 응용 프로그램에서 초기 연구가 시작된 상태입니다.

7 CONCLUSION

RAG 시스템은 대형 언어 모델(LLMs)을 활용하는 새로운 정보 검색 방식입니다. 소프트웨어 엔지니어들은 점점 더 RAG 시스템과 상호작용하게 되는데, 이는 주로 두 가지 방식으로 이루어집니다. 첫째는 의미 검색(semantic search)을 구현하는 것이고, 둘째는 코드에 의존하는 새로운 작업을 수행하는 것입니다.

이 논문에서는 15,000개의 문서와 1,000개의 질문을 포함한 실증적 연구를 비롯하여 3가지 사례 연구에서 얻은 교훈을 제시했습니다. 연구 결과는 RAG 시스템을 구현할 때 직면하는 도전과제를 보여줌으로써 실무자들에게 지침을 제공합니다. 또한 RAG 시스템과 관련된 미래 연구 방향으로 1) 청킹(chunking)과 임베딩(embeddings), 2) RAG와 파인튜닝(Finetuning)의 비교, 3) 테스팅과 모니터링 등을 제시했습니다.

대형 언어 모델은 엔지니어와 연구자들에게 관심을 끄는 새로운 능력을 계속 얻어갈 것입니다. 이 논문은 소프트웨어 엔지니어링 관점에서 RAG 시스템에 대한 첫 번째 연구 결과를 제시합니다. 

앞으로 RAG 시스템은 더욱 발전할 것이며, 이에 따라 소프트웨어 엔지니어들도 새로운 도전에 직면하게 될 것입니다. 이러한 도전을 극복하고 RAG 시스템의 성능을 향상시키기 위해서는 지속적인 연구와 실무 경험의 축적이 필요할 것입니다. 이 논문이 제시한 교훈과 미래 연구 방향은 이 과정에서 소중한 지침이 될 수 있을 것입니다.

반응형

댓글