보안정보
전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.
RAG(Retrieval-Augmented Generation): LLM의 한계와 보완 방법
2024.09.04
49,741
01. 대형 언어 모델(Large Language Model, LLM) 트렌드
2022년 11월, 미국 Open AI가 공개한 ChatGPT는 전 세계에 큰 충격을 선사했다. ChatGPT는 대형 언어 모델(Large Language Model, LLM)을 활용한 인공지능 챗봇 서비스로, 방대한 데이터를 학습하여 인간의 언어나 복잡한 데이터로 구성된 질문을 이해하고 적절한 답변을 생성한다.
ChatGPT의 공개 이후, LLM은 AI 분야의 핵심 기술로 주목받고 있다. 구글의 PaLM, 메타의 LLaMA와 같은 인공지능 모델부터 Microsoft의 Copilot, 네이버의 CLOVA X 같은 서비스에 이르기까지, 국내외 많은 기업들이 LLM 기반의 생성형 AI 제품과 서비스를 잇따라 출시하고 있다.
02. LLM의 한계
트렌드를 따라 사업 및 서비스 혁신, 생산성 향상을 위해 LLM을 도입하려는 기업이 증가하고 있다. 반대로, LLM의 여러 취약점으로 인해 도입을 주저하거나 사용을 금지하는 기업도 늘어나고 있다. 이러한 상황에서 국가는 AI의 부작용을 방지하고 안정성을 강화하기 위해 AI 규제를 시행하고 있다.
국제 웹 보안 분야의 비영리 재단인 OWASP(The Open Web Application Security Project)는 LLM 애플리케이션의 가장 치명적인 취약점 10가지를 다음과 같이 발표했다.
프롬프트 주입 (Prompt Injection)
악의적인 프롬프트(질문)를 입력하여 LLM이 본래 정책이나 가이드라인에 구애받지 않고 공격자 의도대로 작동하도록 하는 취약점이다. LLM 접근 권한 제어 강화와 외부 콘텐츠 분리 등을 통해 완화할 수 있다.
불완전한 출력 처리 (Insecure Output Handling)
LLM에서 생성된 출력이 충분한 검증 과정 없이 다른 시스템으로 전달될 경우, 원격 코드 실행 등의 위협이 발생할 수 있다. 제로 트러스트 접근 방식 사용과 입력 유효성 검사 등을 통해 예방할 수 있다.
학습 데이터 중독 (Training Data Poisoning)
사전 학습 데이터를 조작하여 모델의 보안성과 효율성을 손상시키는 취약점이다. 사용자가 오염된 정보에 노출되거나 시스템 성능 저하를 초래할 수 있다. 안정성이 검증된 학습 데이터를 사용하여 예방할 수 있다.
모델 서비스 거부 (Model Denial of Service)
공격자가 대량의 리소스를 소모시켜 다른 사용자의 서비스 품질을 저하시키고 높은 리소스 비용을 발생시킨다. 사용자 입력 제한 규칙 준수와 리소스 사용량 제한 등을 통해 예방할 수 있다.
공급망 취약점 (Supply Chain Vulnerabilities)
체계적인 방식이나 도구 없이 LLM 공급망을 관리하기 어렵기 때문에, 소프트웨어 공급망 취약점과 유사한 위협이 발생할 수 있다. 신뢰할 수 있는 공급 업체 사용과 패치 정책 구현 등을 고려해야 한다.
민감 정보 노출 (Sensitive Information Disclosure)
LLM의 답변을 통해 민감한 정보가 노출될 수 있으며, 이로 인해 개인 정보 침해나 지적 재산에 대한 무단 액세스가 발생할 수 있다. 적절한 데이터 정제 기술을 사용하여 민감 데이터가 학습 데이터에 포함되지 않도록 해야 한다.
불완전 플러그인 설계 (Insecure Plugin Design)
LLM 플러그인은 사용자가 다른 애플리케이션 사용 중 자동으로 호출되는 확장 기능이다. 모델이 다른 플랫폼에서 제공될 경우 애플리케이션 실행을 제어할 수 없으므로 원격 코드 실행 등의 위협이 발생할 수 있다. 민감한 작업 실행 시 수동 승인을 요구하고 인증 ID를 적용하는 등의 방법으로 예방할 수 있다.
과도한 에이전시 (Excessive Agency)
기능 호출 권한을 가진 에이전트가 LLM의 출력에 대응하여 해로운 작업을 수행할 수 있다. 세분화된 기능을 갖춘 플러그인을 사용하고 최소한의 권한으로 제한하는 등의 방법으로 예방할 수 있다.
과도한 의존 (Overreliance)
LLM이 사실과 다른 정보나 부적절한 콘텐츠를 생성하는 환각 현상이 발생할 수 있다. 이러한 결과를 검토하지 않고 신뢰하면 잘못된 정보가 전달될 수 있다. 파인튜닝, 임베딩, RAG 기법 등을 활용하여 출력 품질을 개선하고, 전문가 검증을 받으며, 사용자가 LLM의 한계를 명확히 인식하도록 하는 방법으로 예방할 수 있다.
모델 도난 (Model Theft)
공격자가 해킹을 통해 LLM 모델에 무단으로 접근하거나 모델이 유출될 수 있다. 강력한 보안 조치를 통해 예방할 수 있다.
[그림 2]는 LLM 애플리케이션의 데이터 플로우에서 발생할 수 있는 10가지 취약점을 보여준다.
그 외에도 모델의 정보가 최신이 아니거나, 균형 잡히지 않은 데이터를 학습하여 편향되거나 차별적인 답변을 할 수 있다는 단점이 있다.
정리하자면, LLM의 안정성을 강화하기 위해서는 학습 데이터의 무결성 확보, 권한 및 접근 제어 강화, 모델 관리 및 모니터링, 사용자의 LLM 한계 인식이 필요하다.
03. 검색 증강 생성(Retrieval-Augmented Generation, RAG)
학습 데이터의 무결성을 확보하기 위한 방법으로 검색 증강 생성(Retrieval-Augmented Generation, RAG)을 소개한다.
기존 LLM은 사용자 입력을 받아 학습된 데이터를 기반으로 답변을 생성한다. 사용자가 학습되지 않은 질문을 하면, 보유한 데이터 중에서 가장 확률이 높은 정보를 조합하여 답변을 생성한다. 이 과정에서 허위 정보나 오래된 정보를 사실인 것처럼 제공하는 환각 현상이 발생할 수 있다.
이러한 환각 현상을 보완하기 위한 방법 중 하나가 RAG이다. RAG는 LLM이 답변을 생성하기 전에 외부의 학습 데이터 소스를 참조하여 답변의 정확도를 높이는 방식이다. 방대한 양의 데이터를 학습한 LLM이 특정 도메인이나 조직의 내부 데이터를 활용함으로써 보다 정밀한 답변을 생성할 수 있다.
1) RAG의 작동 방식
[그림 4]는 데이터 생성부터 사용자 질문에 대한 답변 생성까지 RAG의 작동 방식을 단계별로 보여준다.
외부 데이터 생성
API, 데이터베이스, 문서 등의 다양한 데이터 소스에서 원하는 데이터를 가져온다. 데이터는 파일, 데이터베이스 레코드, 텍스트 등 여러 형식이 가능하다. LLM이 이해할 수 있도록 복잡한 데이터를 임베딩 언어 모델을 사용하여 벡터 형태로 변환한다. 변환된 벡터 데이터를 벡터 데이터베이스에 저장하여 LLM이 이해할 수 있는 지식 라이브러리를 생성한다.
관련 정보 검색
사용자가 프롬프트(질문 또는 쿼리)를 입력하면, 질의 인코더(Query Encoder)가 사용자 프롬프트를 벡터 형태로 인코딩한다. 인코딩된 프롬프트와 관련된 정보를 벡터 데이터베이스에서 검색하여 가져온다. 관련 정보를 검색하기 위해 다음과 같은 방법을 사용할 수 있다. 검색 키워드가 많이 포함된 문서를 찾는 키워드 검색, 의미를 분석하여 벡터 간의 유사도를 계산하는 시맨틱 검색, 이 두 방법을 결합한 하이브리드 검색 방법이다.
LLM 프롬프트 확장
검색된 데이터를 컨텍스트(Context)에 추가하여 사용자 프롬프트를 보강한다. 이렇게 확장된 프롬프트를 LLM에 전달하면, LLM이 검색된 데이터를 활용하여 답변을 생성한다.
외부 데이터 업데이트
최신 데이터를 유지하기 위해 문서를 비동기적으로 업데이트한다.
2) RAG VS 파인튜닝(Fine-Tuning)
LLM의 환각 현상을 줄이기 위한 또 다른 방법으로는 파인튜닝(Fine-Tuning)이 있다. 파인튜닝은 LLM에 도메인 특화 데이터를 학습시켜 맞춤형 모델로 업데이트하는 방법이다.
[표 1]을 통해 RAG와 파인튜닝을 비교하고, 개발 목적에 맞는 방법을 선택하는 데 참고할 수 있다.
3) RAG를 적용한 상용 서비스
RAG가 적용된 상용 서비스는 사용자 정의 검색 환경 구축, 답변의 정확성 향상, 내용 요약 등을 지원한다.
Microsoft – Bing Search
Microsoft는 Bing 검색 엔진에 RAG 기술을 적용한 대화형 AI 기능을 추가했다. 이 기능은 사용자의 검색 질의에 대해 웹 페이지의 정보를 활용하여 답변을 생성하며, 제공된 답변에는 출처 웹 페이지 링크도 함께 표시된다.
AWS – Amazon Kendra
여러 데이터 저장소를 인덱스에 연결하여 사용자 정의 검색 환경을 구축할 수 있으며, 의미 기반 검색 서비스를 제공한다. 다른 AWS 서비스와 통합되어 있어 확장성이 뛰어나며, 모니터링을 위한 대시보드와 API 등의 추가 기능도 제공한다.
04. LLM의 한계를 보완하는 RAG
앞서 언급한 바와 같이, LLM은 AI 분야의 핵심 기술로 자리 잡았으며 현재 매우 성숙하고 유익한 수준에 도달했다고 평가받고 있다. LLM의 주요 취약점인 환각 현상, 데이터 관리, 에이전트 권한 관리 등에 대한 연구도 활발히 진행되고 있으며, 특히 환각 현상 보완과 데이터 개선이 주요 연구 주제로 다뤄지고 있다.
RAG는 이러한 문제를 완화하고 데이터 접근성을 혁신할 수 있는 방법으로 주목받고 있다. RAG는 외부 데이터를 벡터 데이터베이스에 저장하고, 사용자 프롬프트와 관련된 문서를 검색하여 이를 기반으로 답변을 생성한다. 파인튜닝과 달리 최신 정보를 제공하기 용이하며, 출처가 확실한 데이터를 기반으로 답변을 생성하기 때문에 품질 유지와 비용 측면에서도 각광받고 있다.
2024년에는 RAG 기반 LLM 모델이 증가할 것으로 예상되며, 이후에는 데이터 처리 및 분석 발전의 원동력이 될 전망이다. 따라서 기업은 끊임없이 확장되는 인공지능 환경에서 최신 비즈니스 정보에 효과적으로 액세스하고, AI 기반 생산성의 잠재력을 최대한 활용하기 위해 RAG 기술을 수용하고 데이터를 강화해 나가야 한다.
05. 참고 자료
https://owasp.org/www-project-top-10-for-large-language-model-applications/assets/PDF/OWASP-Top-10-for-LLMs-2023-v1_1.pdf
https://www.digitalmarket.kr/web/board/BD_board.view.do?domainCd=2&bbsCd=1030&bbscttSeq=20240430133208995&monarea=00008
https://aws.amazon.com/ko/what-is/retrieval-augmented-generation/
https://www.skelterlabs.com/blog/hybrid-search
https://www.skelterlabs.com/blog/rag-vs-finetuning
https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html
https://www.skelterlabs.com/blog/2024-year-of-the-rag
https://www.gttkorea.com/news/articleView.html?idxno=8443
https://www.gttkorea.com/news/articleView.html?idxno=7812