PyTorchKR
- InfiniFlow의 RAGFlow가 2024년 4월 1일에 공식적으로 Apache 2.0 라이선스를 적용하며 오픈소스로 전환되었습니다. InfiniFlow에서 오픈소스 전환과 함께 RAGFlow에 대한 소개 글을 작성하여 이를 소개합니다. '설명가능한 RAG(Explainable RAG)'를 표방하는 RAGFlow의 주요 기능들을 함께 알아보시죠.
소개
RAGFlow는 문서 구조 인식 모델을 기반으로 한 맞춤형, 신뢰할 수 있고, 설명 가능한 RAG 엔진입니다. 다양한 형식의 문서를 업로드하고 관리할 수 있게 해주는 종합적인 RAG 솔루션으로, 사용자는 PDF, Word, PPT, Excel, TXT 등 다양한 형식의 문서를 업로드할 수 있습니다. 지능적인 파싱을 통해 데이터가 데이터베이스에 정확하게 입력되어 사용자가 업로드한 문서를 어떤 대규모 언어 모델을 사용하여도 쿼리할 수 있습니다.
RAGFlow는 개별 사용자 및 소규모 비즈니스가 사용하는 많은 질문-답변 시스템에 구체적으로 필요하지 않을 수 있는 RAG(Retrieval-Augmented Generation)에 대한 접근 방식과 LLM(Large Language Models)의 결합을 통해, AI 기반 문서 처리 및 질문 응답 시스템의 발전에 기여하고 있습니다. 이러한 시스템은 다음과 같은 핵심 문제를 해결하는 데 중점을 두고 있습니다:
1. LLM 관련 문제 및 해결
LLM은 대규모 토큰을 활용하여 광범위한 맥락에서 중요 정보를 추출하는 능력, 즉 "바늘 찾기"의 능력을 향상시키는 등 RAG의 발전에 있어 중요한 도전과제 중 하나를 해결하고 있습니다. LLM의 핵심 기능은 다음과 같습니다:
-
요약(Summarization): 복잡한 텍스트나 데이터에서 중요한 정보를 요약하여 제공합니다.
-
번역(Translation): 언어 간의 장벽을 넘어 정보를 전달하는 데 필수적입니다.
-
제어 가능성(Controllability): 사용자의 요구에 따라 출력을 조정할 수 있는 능력입니다.
이러한 기능들은 LLM이 현재 직면한 주요 한계 중 일부이며, 이를 극복하지 않으면 추론 및 다양한 에이전트 간의 자율적 의사결정 개념이 실현되기 어렵습니다.
RAGFlow는 요약, 번역, 제어 가능성 등 LLM의 핵심 기능을 강화하는 데 초점을 맞춥니다. 이를 위해 RAGFlow는 다음과 같은 접근 방식을 사용하여 LLM 관련 문제들을 해결합니다:
-
고급 NLP 기법: 문서 내용을 정교하게 처리하고 요약하기 위해, 최신 NLP(Natural Language Processing) 기술을 활용합니다. 이는 Transformer 기반 모델을 포함한 최신 언어 모델을 사용하여 텍스트를 더 잘 이해하고 요약합니다.
-
언어간 번역 지원: 다국어 지원을 통해 전 세계의 다양한 문서 형식과 언어를 처리할 수 있도록 합니다. 이는 글로벌 비즈니스와 연구에서 요구되는 다양한 언어의 문서에 대한 접근성을 향상시킵니다.
-
사용자 제어 가능성: RAGFlow는 사용자가 시스템의 출력을 더 잘 제어할 수 있도록 사용자 인터페이스(UI)와 사용자 경험(UX)을 최적화합니다. 사용자는 자신의 요구 사항에 맞게 결과를 조정할 수 있습니다.
2. RAG 관련 문제 및 해결
RAG 시스템 자체에서 발생하는 문제로는 데이터베이스 문제와 데이터 문제가 있습니다:
-
데이터베이스 문제: 다중 호출(multiple recall)의 중요성은 RAG에서 핵심적인 기능으로, 기본 지식 베이스조차 이 기능 없이는 제대로 작동하기 어렵습니다. 따라서 RAG 시스템의 데이터베이스는 순수 벡터 데이터베이스에 의존하지 않고 다중 호출 기능을 갖추어야 합니다.
-
데이터 문제: RAG에 익숙하지 않은 신규 사용자에게 즉각적으로 명확하지 않을 수 있는 이 문제는, 다양한 벡터 데이터베이스 및 RAG 오케스트레이션 도구를 활용하여 RAG 시스템을 쉽게 구축할 수 있음에도 불구하고, 데이터를 효과적으로 처리하지 못하는 경우가 많습니다. 이는 복잡한 문서 형식을 데이터베이스에 무질서하게 통합하여 최종적으로 "쓰레기 들어가면 쓰레기 나온다(Garbage In Garbage Out)" 결과를 초래합니다.
RAGFlow는 RAG 시스템에서 나타난 데이터베이스 문제와 데이터 문제를 해결하기 위해 설계되었습니다. 다음과 같은 접근으로 RAG 관련 문제들을 해결합니다:
-
다중 호출 기능: RAGFlow의 데이터베이스는 다중 호출 기능을 지원합니다. 이는 복잡한 질의에 대해 여러 소스에서 정보를 검색할 수 있도록 하여, 단일 벡터 데이터베이스에만 의존하는 대신 더 다양하고 정확한 답변을 생성할 수 있게 합니다.
-
지능형 문서 처리: RAGFlow는 문서의 구조를 인식하고 분석하는 고급 문서 구조 인식 기술을 사용합니다. 이를 통해 텍스트, 이미지, 표 등을 포함한 다양한 문서 요소를 정확하게 파싱하고 처리할 수 있습니다. 이 과정에서 "지능형 문서 처리 시스템"은 복잡한 문서 형식을 효과적으로 처리하며, "Garbage In, Garbage Out" 문제를 해결합니다.
핵심 특징
RAGFlow의 주요 특징으로는 다양한 지능형 문서 처리 기능이 있습니다. 이는 "쓰레기 들어가면 쓰레기 나온다"에서 "질 좋은 입력이면 질 좋은 출력이 나온다"로 전환을 보장합니다. RAGFlow는 기존 RAG 미들웨어에 의존하지 않고 지능형 문서 이해 시스템의 완전한 재개발을 통해 이를 달성합니다. 이 시스템은 RAG 작업 오케스트레이션 시스템을 구축하는 기반으로, 문서의 레이아웃을 자동으로 인식하고, 표와 같은 복잡한 요소까지도 처리할 수 있습니다.
다양한 형식의 문서 처리
RAGFlow는 사용자가 업로드한 문서의 레이아웃을 자동으로 인식합니다. 이는 문서의 제목, 단락, 줄바꿈 뿐만 아니라 이미지 및 표와 같은 복잡한 요소를 포함합니다. 특히 표에 대해서는, 표의 레이아웃을 인식하고 각 셀을 식별하는 능력을 가지며, 여러 행의 텍스트를 단일 셀로 병합하는 기능도 제공합니다. 이러한 고급 기능은 RAG가 문서 내의 특정 세부 정보를 효과적으로 찾아내는 데 도움을 줍니다.
지능형 문서 처리 시스템
RAGFlow는 다양한 템플릿을 사용하는 지능형 문서 처리 시스템입니다. 이는 회계사, HR 전문가, 연구자 등 다양한 업계 및 직역에서 필요로 하는 문서 유형에 따라 맞춤화된 처리 요구사항을 제공합니다. 예를 들어, 회계사는 특정 날짜에 발행된 바우처와 그 총액을 식별할 수 있어야 하며, HR 전문가는 특정 대학의 특정 경험 수준을 가진 후보자를 식별할 수 있어야 합니다.
시각화 및 설명 가능성
RAGFlow는 사용자가 업로드한 문서가 어떻게 처리되었는지 이해할 수 있도록 시각화와 설명 기능을 제공합니다. 사용자는 처리된 텍스트와 원본 텍스트 사이의 차이를 비교하고, 정보를 추가, 수정 또는 삭제할 수 있습니다. 이는 PDF 문서와 같이 다양한 형식으로 널리 사용되는 문서를 처리할 때 특히 중요합니다.
사용 방법
사용자가 문서를 업로드하면, 이 시스템은 자동으로 문서의 레이아웃을 인식하여 데이터를 데이터베이스로 올바르게 전송합니다. 이를 통해 RAG는 이러한 광범위한 숫자 내의 특정 세부 정보를 효과적으로 찾아낼 수 있습니다. 또한, RAGFlow는 다양한 산업 및 역할에 필요한 다양한 문서 유형을 지원합니다. 예를 들어, 회계사는 특정 날짜에 발행된 바우처와 그 총액을 식별하거나, HR 전문가는 특정 엘리트 대학에서 특정 경험 수준을 가진 알고리즘 엔지니어를 식별하는 등의 쿼리를 수행할 수 있습니다.
더 읽어보기
InfiniFlow의 RAGFlow 소개 글
RAGFlow 홈페이지
RAGFlow 저장소
RAGFlow 데모
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~