마크다운, RAG-LLM 기반 인공지능 시대에 현대 문서 작성의 새로운 지평을 열 수 있을까?
문서 작성은 오늘날 정보의 전달과 공유에 있어 필수적인 부분이다. 그런데 기존의 파일 형식들, 예를 들어 PDF, .txt, .doc 등은 복잡한 형식과 스타일을 내포하거나 가독성, 변환의 어려움 등의 문제가 있다. 이러한 배경에서 마크다운 (Markdown) 형식이 주목받고 있다. 마크다운은 간결성과 유연성을 바탕으로 현대 문서 작성에 새로운 패러다임을 제시할 수 있을 것으로 생각한다.
LLM과 PDF에서 구조화된 데이터를 추출할 때, Markdown 텍스트가 일반 텍스트보다 우월하다는 것은 명확한 사실이다. PDF 파일을 Markdown으로 변환하는 것은 데이터의 구조와 맥락을 유지하는 데 중요하다. 이는 특히 Retrieval-Augmented Generation(RAG) 응용 프로그램에서 중요하다.
Markdown이 유리한 이유는 다음과 같다:
구조 보존: Markdown은 PDF의 테이블, 헤딩, 목록 등 본질적인 구조를 보존한다. 이는 모델이 질문 응답이나 요약 작업을 수행할 때 이러한 구조를 이해하고 활용할 수 있게 한다.
의미 강화: 헤더(#,##), 굵은 글씨(**), 이탤릭(*), 코드 블록(\```) 같은 Markdown 요소는 텍스트의 중요성과 유형에 대한 의미적 단서를 추가한다. 이는 LLM이 텍스트의 의미를 더 잘 이해하게 도와준다.
깔끔한 표현: Markdown은 테이블 데이터를 보다 시각적으로 정돈되고 읽기 쉬운 형태로 제공한다. 이는 LLM이 정보를 처리하는 데 도움이 된다.
맥락 보존: 더 깔끔한 표현은 맥락을 보존하는 데 도움이 된다. 예를 들어, PDF에 그림이 포함되어 있다면, Markdown에서는 텍스트 맥락에서 이미지 링크나 대체 텍스트를 포함시킬 수 있다. 이는 LLM이 일반 텍스트에서는 누락될 수 있는 중요한 정보를 제공한다.
청크 나누기: RAG 시스템에 필수적인 청크 나누기는 문서를 더 작은 부분으로 나누어 처리하기 쉽게 만든다. Markdown은 벡터 데이터베이스 내에서 직접적으로 벡터 표현을 영향을 미치지는 않지만, RAG 시스템 내에서 문맥을 보존하고 활용하는 데 중요한 역할을 한다.
Markdown 사용법: PDF 처리 및 Markdown 생성
PDF Parsing과 Markdown 생성: PyMuPDF나 LlamaParse 같은 신뢰할 수 있는 PDF 파싱 라이브러리 또는 서비스를 사용하여 PDF에서 구조화된 텍스트를 추출한다. 이 과정에는 테이블, 헤더 등을 정확하게 식별하는 작업이 포함된다. 현재 우리는 LlamaParse를 사용하여 PDF 파일을 Markdown으로 변환하고 있다. LlamaParse는 헤더, 목록, 내장 테이블을 이해하고 이미지에서 텍스트를 자동으로 파싱하며 다양한 폰트를 처리할 수 있다.
임베딩 생성: PDF 파일은 워드 문서나 파워포인트 슬라이드와 같은 다양한 소스 파일에서 생성되거나 변환될 수 있다. 효과적인 청크 나누기(분할) 전략을 사용하면 관련 콘텐츠가 함께 유지되거나 청크 간에 일정 수준의 중복이 발생한다. 예를 들어, PPT를 PDF로 변환한 경우, PDF 파싱 후 페이지별로 청크를 나눈다.
LlamaParse 사용에 따른 주의점: LlamaParse는 독점적인 PDF 파싱 서비스이다. 이는 문서를 그들의 엔드포인트에 업로드해야 함을 의미하며, 이는 많은 사용 사례에 적합하지 않을 수 있다. 무료 플랜은 하루에 1000 페이지의 파싱을 허용한다.
예시 PDF: 이 예제 PDF는 인쇄 회사의 배송 영수증이다. 영수증에는 여러 페이지가 있으며 각 페이지에는 특정 헤더와 푸터가 있다. RAG를 사용한 Markdown 접근 방식을 따르면 필요한 최종 출력을 위해 컨텍스트를 분할하고 재구성할 수 있다.
주의 사항
복잡한 레이아웃을 가진 PDF: 복잡한 레이아웃과 구조를 가진 PDF는 적절한 형식으로 추출하기 어려울 수 있다. 최신 라이브러리나 특수 ML 서비스라 할지라도 형식을 정확하게 파싱하고 보존하는 것은 매우 어려울 수 있다.
일반 텍스트의 한계: 어떤 경우에는 공백이 포함된 일반 텍스트도 작동할 수 있지만, 이는 Markdown 형식만큼 견고하거나 다재다능하지 않다. 예를 들어, 공백만을 사용하여 헤더, 목록, 코드 또는 강조를 표현하려고 하면 빠르게 비현실적이고 신뢰할 수 없게 된다. 텍스트 형식을 통해 전달된 섬세한 세부사항은 일반 텍스트에서 손실된다.
요약
Markdown의 필요성: Markdown은 엄격한 요구사항은 아니지만, 구조가 출력의 질에 영향을 줄 수 있는 경우 형식이 많은 차이를 만들 수 있다.
LLM과의 사용: PDF에 구조화된 데이터가 포함되어 있고 LLM과 함께 사용하고자 한다면, Markdown은 그 구조를 유지하고 의미적 단서를 제공하는 방법을 제공한다. 이는 구조화되지 않은 일반 텍스트에 비해 더 나은 출력 성능을 가능하게 할 수 있다.
저널, 특히 의학저널은 복잡한 표, 그림, 그래프, flowchart, 2단구성등 매우 복잡한 스타일을 가지고 있다. 연구결과들을 PDF로 RAG-LLM을 적용하여 이용하기 위해서는 저널의 스타일부터 RAG-LLM에 적합하게 과감히 변경해야한다. 나는 이 부분이 가장 중요하다고 생각한다.