LLM ‘환각’과 ‘오류’, RAG와 RIG로 해소한다.

RAG, 응답 위해 외부 지식과 정보까지 접목, 증강된 검색 기능 RIG, 실시간 응답 도중, 새로운 정보 수시 삽입, 정확도 높여 클로드 ‘앤트로픽’, 정보 ‘조각’ 포괄한 ‘맥락 기반 검색’ 출시도

2024-12-12     전윤미 기자
 사진은 본문과 관련없음. (출처=애플경제)

[애플경제 전윤미 기자] LLM(대형언어모델)의 신뢰도와 정확도를 높여 오류나 환각을 막기 위해선 RAG(Retrieval-Augmented Generation: 검색 증강 생성)와 RIG(Retrieval-Integrated Generation: 검색 삽입 생성) 기법이 유용하다는 분석이다. 이는 AI모델이 대규모 지식 저장소에 접근, 실시간으로 정보를 활용하거나 사전 학습된 지식을 확장할 수 있게 한다.

그만큼 필요한 지식과 정보의 폭을 크게 넓히는 것이다. 단순히 이미 모델에서 학습된 데이터로부터 응답을 생성하는 것에 그치지 않는다. 실시간 데이터와 외부 지식 기반을 통합, 더 정교한 응답을 생성할 수 있도록 하는 것이다.

아무리 학급과 추론 기술을 향상시켜도 LLM은 여전히 부정확하거나, 엉뚱한 대답 즉 환각(hallucination) 문제를 자주 겪는다. 전문가들은 이에 학습과 논리 구조 생성 과정에서 간한 다른 어떤 노력에 앞서 RAG와 RIG를 그 해결책으로 들고 있다. 이에 관해 최근 분석 보고서를 내놓은 바 있는 삼성전자 황윤준 수석연구원은 구글의 ‘Data Gemma’라는 새로운 접근법을 소개했다. 이는 “구글의 경량화 모델인 Gemma와 Data Commons의 대규모 공공 데이터를 결합하여 정보의 정확성을 높이기 위한 방식”이라며 그 과정에서 공공 데이터 활용을 위해 RIG과 RAG의 두 가지 접근 방법을 사용하고 있음을 사례로 들었다.

실시간 데이터 삽입, 논리 증강 ‘RIG’

이에 따르면 RIG는 모델이 응답을 생성하는 도중에 실시간으로 데이터베이스와 상호작용, 데이터를 삽입해 논리를 증강시키는 방식이다. 즉 사용자의 프롬프트에 대한 응답을 하는 과정에서 모델이 스스로 자연어로 작성된 쿼리를 생성한다. 이를 통해 외부 데이터베이스와 소통 내지 피드백함으로써 사용자의 요청에 대한 응답을 탄력적으로 조정하며 정확한 결과를 도출하는 것이다.

사용자의 프롬프트에 대한 응답을 하는 도중에도, 더욱 정확한 결과를 도출하기 위해 수시로 또 다른 데이터들을 자연어 쿼리를 통해 탐색, 추론 과정에 삽입하는 것이다. 그런 과정에서 도출된 데이터를 실시간으로 반영하며, 결국 가장 정확한 대답을 내놓는 방식이다. 이는 실시간의 기민하게 실시간 응답에 적합한 방식이다.

이에 비해 RAG는 사용자의 질문에 필요한 외부 데이터를 ‘미리 검색’해 프롬프트에 보강한 후 응답을 생성하는 방식이다. 이 역시 정확도와 신뢰도를 높일 수는 있으나, 저장된지 오래된 데이터나 시간이 지나며 실시간 시점과는 맞지 않는 데이터를 통해 검색 증강을 할 수 있다는 문제점도 있다. 즉 “사전 검색된 데이터로 프롬프트가 보강되므로 대규모 데이터 세트를 다루는 쿼리에 유리하지만, 보강된 데이터가 때론 적절하지 않거나 프롬프트가 길어질 수 있다.”는 설명이다.

사전 저장 정보 활용 RAG, “각기 상황별 장단점”

RAG와 RIG는 모두 모델이 외부 데이터를 활용하게 함으로써 응답으로 내놓는 결과가 좀더 정확하고 신뢰할 만한 내용이 되도록 하는 것이다. 그러나 “각기 특성에 따라 상황별로 장단점과 차이가 있을 수 있다”는 지적이다.

RIG는 답변을 생성하는 도중에 필요한 정보를 실시간으로 검색하고 삽입할 수 있어 기민하고 탄력적으로 사용자 요청에 즉각 대응할 수 있다는 점이 특징이다. 또한 필요한 특정한 정보만을 선택적으로 검색, 즉시 반영할 수 있다는 장점도 있다. 실시간으로 변하는 추론 단계에 적합한 데이터를 동적으로 선별, 반영할 수 있는 것이다.

그러나 문제점도 있다. 우선 미세 조정된 모델이 외부 데이터 베이스 활용을 위해 자연어로 쿼리를 생성해야 한다. 쿼리 작성과 검색 데이터에 대한 추가 학습이 필요하다. 이는 응답 생성 과정에서 또 다른 단계를 거쳐야 함을 의미한다.

(사진=아이모어)

반면에 RAG는 그런 점에선 RIG보다 우수하다. 사전에 관련 데이터를 미리 검색하고 이를 프롬프트에 포함하여 답변을 보강하기 때문이다. 이는 대규모 검색 데이터가 필요할 경우 한층 효율적이다. 그러나 이 역시 단점도 있다. 앞서 지적되었듯이, 오래 저장하거나 그 동안 보강해온 데이터가 실시간 상황에 적합한지를 판단하기 어렵고, 보장할 수도 없다.

더욱이 사전에 저장된 후 보강된 데이터가 많으면 많을수록 이를 일일이 응답 과정에서 피드백해야 하므로 전체 응답 길이가 증가할 수 밖에 없다.

또한, RAG의 경우, 지식 베이스가 방대해질수록 개별 단위 조각에 대한 충분한 맥락이 부족하다. 다시 말해 실시간의 특정 시점의 응답을 위한 정보로서의 가치가 떨어질 수도 있다. 해당 시점에 맞는 의미와 용도, 사실관계 등이 부정확한 ‘한물 간 데이터’가 될 수도 있다는 지적이다. 그 결과 특정 시점의 프롬프트에 대한 응답 데이터가 정확하지 않을 가능성도 크다.

이는 특히 “데이터를 작은 단위 조각(chunk)으로 나누고, 임베딩을 통해 각 단위 조각을 벡터화하여 검색하기 때문에 더욱 가치가 떨어질 수도 있다”는 황 수석연구원의 지적이기도 하다.

한 가지 ‘사안’에 대한 정확한 내용을 묻는 프롬프트에 대해 그 ‘사안’을 구성하는 단어(vocabulary)나 사실(fact)별로 일일이 분석함으로써 하나의 맥락으로서 전체 ‘사안’을 오해할 수 있다는 지적이다. 즉 ‘사안’을 구성하는 작은 정보들을 조각을 내어, 탐색함으로써 전체와는 무관한 작은 ‘정보 조각’을 제시하기 십상이라 얘기다.

앤트로픽의 ‘맥락 임베딩’과 ‘맥락 BM25’

이러한 맥락 오류의 문제를 해결하기 위해 최근 클로드는 앤트로칙에서 이른바 ‘맥락 기반 검색(Contextual retrieval) 기능을 출시하기도 했다. 이는 ’맥락 임베딩‘(Contextual embeddings)과 ’맥락 BM25‘(Contextual Best Matching)을 결합한 것이다. 즉, 두 가지 기술을 결합하여 단위 조각을 넘어선 맥락을 제공함으로써 검색의 정확도를 높인 것이다.

이 방식은 “검색 실패율을 49%까지 줄이며, 추가로 재 순위화(Re-Rank) 기법을 결합하면 67%까지 줄일 수 있다”는게 클로드의 설명이다. 즉, ’정보 조각‘을 뛰어넘는 포괄적 맥락이 담긴 정보를 생성하고, 이를 임베딩에 추가함으로써 검색의 정확성을 높이는 방식이다.

반대로 맥락 임베딩은 단위 조각 간의 의미적 관계를 잘 묘사하지만, 각각의 특정 단어나 고유 식별자 검색에서는 정확도가 떨어질 수 있다. 이에 정보 조각과 단어에 대한 정확하 검색기능을 보완하기 위해 내놓은 것이 ’BM25‘ 기술이다. 이른바 ‘하이브리드’ 형태의 결합이다.

BM25는 정확한 단어나 구절이 전체 맥락과 일치하는지를 찾아낸다. 이를 위해 맥락 BM25는 이른바 ‘TF-IDF’(Term Frequence-Inverse Document Frequence: 단어 빈도-역문서 빈도) 개념을 구사, 특정 단어가 전체 맥락에서 갖는 ‘중요도’(의미)를 분석한다.