>  기사  >  기술 주변기기  >  GraphRAG 이해(1): RAG의 과제

GraphRAG 이해(1): RAG의 과제

WBOY
WBOY앞으로
2024-04-30 19:10:011052검색

RAG(Risk Assessment Grid)는 보다 상황에 맞는 답변을 제공하기 위해 외부 지식 소스로 기존 LLM(대형 언어 모델)을 강화하는 방법입니다. RAG에서 검색 구성 요소는 추가 정보를 얻고 응답은 특정 소스를 기반으로 한 다음 이 정보를 LLM 프롬프트에 제공하여 LLM의 응답이 이 정보를 기반으로 합니다(향상 단계). RAG는 ​​트리밍과 같은 다른 기술에 비해 경제적입니다. 또한 이 정보(증강 단계)를 기반으로 추가 컨텍스트를 제공하여 환각을 줄이는 이점이 있습니다. RAG는 오늘날의 LLM 작업(예: 추천, 텍스트 추출, 감정 분석 등)을 위한 워크플로 방법이 됩니다.

GraphRAG 이해(1): RAG의 과제

이 아이디어를 더 세분화하면 사용자 의도에 따라 일반적으로 벡터 데이터베이스를 쿼리합니다. 벡터 데이터베이스는 연속 벡터 공간을 사용하여 근접 기반 검색을 통해 두 개념 간의 관계를 캡처합니다.

벡터 데이터베이스 개요

벡터 공간에서는 텍스트, 이미지, 오디오 또는 기타 유형의 정보가 벡터로 변환됩니다. 벡터는 고차원 공간의 데이터를 수치로 표현한 것입니다. 각 차원은 데이터의 특성에 해당하며, 각 차원의 값은 해당 특성의 강도나 존재 여부를 반영합니다. 벡터 표현을 통해 데이터에 대한 수학적 연산, 거리 계산, 유사성 비교 등을 수행할 수 있습니다. 다양한 치수에 해당하는 값은 기능의 강도 또는 존재 여부를 반영합니다. 텍스트 데이터를 예로 들면, 각 문서는 벡터로 표현될 수 있으며, 여기서 각 차원은 문서에 있는 단어의 빈도를 나타냅니다. 이런 방식으로 두 문서는

벡터 사이의 거리를 계산하고 해당 데이터베이스를 다른 벡터로 쿼리하고 벡터 공간 벡터에서 "가까운" 항목을 검색하여 데이터베이스에서 근접성 기반 검색을 수행할 수 있습니다. 벡터 사이의 근접성은 일반적으로 유클리드 거리, 코사인 유사성 또는 맨해튼 거리와 같은 거리 측정값에 의해 결정됩니다. 벡터 사이의 근접성은 일반적으로 유클리드 거리, 코사인 유사성 또는 맨해튼 거리와 같은 거리 측정값에 의해 결정됩니다.

데이터베이스 검색을 수행하면 시스템이 벡터로 변환하는 쿼리를 제공합니다. 그런 다음 데이터베이스는 이 쿼리 벡터와 이미 데이터베이스에 저장된 벡터 간의 거리 또는 유사성을 계산합니다. 선택한 메트릭에 따라 쿼리 벡터에 가까운 벡터가 가장 관련성이 높은 결과로 간주됩니다. 선택한 측정항목을 기준으로 쿼리 벡터에 가장 가까운 이러한 벡터는 가장 관련성이 높은 결과로 간주됩니다.

근접 기반 검색은 벡터 데이터베이스에서 특히 강력하며 추천 시스템, 정보 검색, 이상 탐지와 같은 작업에 적합합니다.

이 접근 방식을 사용하면 시스템이 표면 일치에만 의존하기보다는 데이터의 맥락과 더 깊은 의미를 이해함으로써 보다 직관적으로 작동하고 사용자 쿼리에 보다 효과적으로 응답할 수 있습니다.

그러나 데이터 품질, 동적 지식 처리 능력, 투명성 등 고급 검색을 위해 데이터베이스에 연결하는 애플리케이션에는 몇 가지 제한 사항이 있습니다.

RAG의 한계

RAG는 문서의 크기에 따라 크게 3가지로 분류됩니다. ), 쿼리에 대한 응답으로 인덱싱되고 사용되는 블록을 쿼리할 때 더 작은 데이터가 생성됩니다.

성공에도 불구하고 RAG에는 몇 가지 단점이 있습니다.

RAG의 성능을 측정하는 두 가지 주요 지표는 당혹감과 환각입니다. 당혹스러움은 텍스트 생성 과정에서 똑같이 가능한 다음 단어 선택 수를 나타냅니다. 즉, 언어 모델을 선택할 때 얼마나 "혼란"되는지를 나타냅니다. 환각은 AI가 만든 허위 또는 상상의 진술입니다.

RAG는 환각을 줄이는 데 도움이 되지만 완전히 없애지는 않습니다. 작고 간결한 문서가 있으면 혼란을 줄이고(LLM 옵션이 적기 때문에) 환각을 줄일 수 있습니다(문서에 내용만 묻는 경우). 물론, 단점은 하나의 작은 문서로 인해 사소한 응용 프로그램이 생성된다는 것입니다. 더 복잡한 애플리케이션의 경우 더 많은 컨텍스트를 제공할 수 있는 방법이 필요합니다.

예를 들어 "bark"라는 단어를 생각해 보세요. 최소한 두 가지 다른 컨텍스트가 있습니다.

나무 컨텍스트: "떡갈나무의 거친 껍질은 추위로부터 나무를 보호합니다." : "이웃집 개는 누군가 집을 지나갈 때마다 큰 소리로 짖습니다."

더 많은 맥락을 제공하는 한 가지 방법은 RAG와 지식 그래프(GRAPHRAG)를 결합하는 것입니다.

지식 그래프에서는 이러한 단어가 해당 단어와 관련된 문맥 및 의미와 연결되어 있습니다. 예를 들어, "bark"는 "tree"와 "dog"를 나타내는 노드에 연결됩니다. 다른 연결은 일반적인 행동(예: 나무의 "보호", 개의 "소음 만들기") 또는 속성(예: 나무의 "거칠기", 개의 "소리 크기")을 나타낼 수 있습니다. 이 구조화된 정보를 통해 언어 모델은 문장의 다른 단어나 대화의 전체 주제를 기반으로 적절한 의미를 선택할 수 있습니다.

다음 섹션에서는 RAG의 한계와 GRAPHRAG가 이를 해결하는 방법을 살펴보겠습니다.

원제: GraphRAG 이해 – 1: RAG의 과제

원작자: ajitjaokar

위 내용은 GraphRAG 이해(1): RAG의 과제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제