Paper2Slides: 클릭 한 번으로 논문 및 기술 문서를 고품질 프레젠테이션으로 변환하는 도구

Paper2Slides 소개

Paper2Slides는 복잡한 연구 논문, 기술 보고서, 다양한 형식의 문서를 전문가 수준의 프레젠테이션 슬라이드나 학술 포스터로 자동 변환해 주는 오픈 소스 AI 도구입니다. 홍콩대학교 데이터 사이언스 연구소(HKUDS)에서 개발한 이 프로젝트는 단순히 텍스트를 요약하는 것을 넘어, 문서의 구조를 심층적으로 분석하고 시각적으로 매력적인 레이아웃을 생성하여 연구자와 개발자의 작업 시간을 획기적으로 단축합니다.

기존의 요약 툴들이 단순히 텍스트를 줄이는 데 그쳤다면, Paper2Slides는 문서의 논리적 구조를 파악하고 적절한 시각적 배치를 제안하는 데 특화되어 있습니다. 특히 대규모 언어 모델(LLM)의 고질적인 문제인 환각(Hallucination) 현상을 최소화하기 위해 검색 증강 생성(RAG, Retrieval-Augmented Generation) 기술을 핵심 아키텍처로 채택했습니다. 이를 통해 수백 페이지에 달하는 기술 문서나 복잡한 수식이 포함된 논문에서도 핵심 정보를 정확하게 추출하여 슬라이드에 배치합니다. 사용자는 PDF, Word, Excel 등 다양한 포맷의 파일을 입력할 수 있으며, CLI(명령줄 인터페이스)와 웹 GUI를 모두 지원하여 개발 환경에 맞춰 유연하게 사용할 수 있습니다. 이 프로젝트는 단순한 생산성 도구를 넘어, 비정형 데이터를 구조화된 시각 자료로 변환하는 AI 파이프라인의 모범 사례를 보여줍니다.

Paper2Slides의 주요 기능 (Key Features)

Paper2Slides는 단순한 요약 도구와 차별화되는 다음과 같은 강력한 기능을 제공합니다:

  • 광범위한 문서 지원 (Universal Document Support): PDF, Word(.docx), Excel(.xlsx), PowerPoint(.pptx), Markdown(.md) 등 다양한 형식의 파일을 처리할 수 있으며, 여러 파일을 동시에 입력받아 하나의 프레젠테이션으로 통합할 수도 있습니다.

  • RAG 기반 정밀 추출 (RAG-Powered Extraction): 긴 문서에서도 핵심 정보를 놓치지 않도록 RAG 기술을 사용하여 문서 전체의 지식 베이스를 구축합니다. 이를 통해 단순 텍스트뿐만 아니라 중요한 수치, 도표(Figure), 데이터 포인트를 정확히 포착합니다.

  • 출처 추적 (Source-Linked Accuracy): 생성된 슬라이드의 내용이 원본 문서의 어느 부분에서 왔는지 추적 가능하여, AI 환각(Hallucination) 현상으로 인한 정보 왜곡을 방지하고 신뢰성을 높입니다.

  • 유연한 스타일링 (Custom Styling): '학술적(Academic)', '도라에몽(Doraemon)' 같은 내장 테마뿐만 아니라, 자연어 프롬프트로 "따뜻한 느낌의 만화 스타일"과 같이 사용자가 원하는 디자인을 자유롭게 지정할 수 있습니다.

  • 중단점 저장 및 복구 (Seamless Session Management): 작업의 각 단계마다 자동으로 체크포인트(Checkpoint)를 저장합니다. 중간에 작업이 중단되거나 스타일만 변경하고 싶을 때, 처음부터 다시 시작할 필요 없이 해당 단계부터 즉시 재개할 수 있습니다.

Paper2Slides의 동작 원리: 4단계 파이프라인 (4-Stage Pipeline)

Paper2Slides가 높은 품질의 결과물을 만들어내는 비결은 정교하게 설계된 4단계 처리 과정에 있습니다. 이 파이프라인은 단순히 입력을 출력으로 바꾸는 것이 아니라, 마치 사람이 발표 자료를 만들듯 정보를 이해하고, 기획하고, 디자인하는 과정을 모방합니다.

가장 먼저 수행되는 단계는 RAG 및 문맥 분석(Retrieval & Context Analysis) 입니다. 긴 문서를 처리할 때 LLM의 컨텍스트 윈도우(Context Window) 한계를 극복하기 위해, 시스템은 문서를 의미 단위의 청크(Chunk)로 분할하고 벡터 데이터베이스에 인덱싱합니다. 사용자가 "Normal Mode"를 선택할 경우, 이 RAG 시스템이 문서 전체를 스캔하여 슬라이드 각 섹션에 필요한 정확한 근거 데이터를 검색해 옵니다. 이 과정은 정보의 누락을 방지하고 생성된 내용의 신뢰성을 담보하는 기반이 됩니다.

그다음은 심층 정보 추출 및 구조화(Extraction & Structuring) 단계입니다. 텍스트뿐만 아니라 논문에 포함된 도표(Figure), 그래프, 수치 데이터 등을 인식하여 추출합니다. Paper2Slides는 텍스트와 이미지를 분리하여 처리하지 않고, 해당 이미지가 어떤 텍스트 맥락에서 인용되었는지를 파악합니다. 이를 통해 "그림 1"이 슬라이드의 어느 페이지에 배치되어야 가장 효과적인지를 결정하며, 단순 텍스트 나열이 아닌 시각 자료가 풍부한 슬라이드를 기획합니다.

세 번째 단계는 스토리라인 기획(Planning & Storyboarding) 입니다. 확보된 핵심 정보와 시각 자료를 바탕으로 프레젠테이션의 전체 흐름을 설계합니다. 예를 들어, 도입부에는 연구의 배경을, 본론에는 방법론과 실험 결과를, 결론에는 기여점을 배치하는 식입니다. 이 단계에서 AI는 각 슬라이드의 제목, 본문 내용, 배치할 이미지 등을 결정하는 '청사진'을 작성합니다.

마지막으로 렌더링 및 스타일 적용(Rendering & Styling) 이 이루어집니다. 기획된 청사진을 실제 슬라이드 파일(PPTX 등)이나 포스터 이미지로 변환합니다. 이때 사용자가 지정한 스타일 프롬프트나 템플릿 엔진이 작동하여, 학술적인 느낌이나 캐주얼한 디자인 등 목적에 맞는 최종 결과물을 생성해 냅니다.

Paper2Slides 설치 및 사용 방법

Paper2Slides는 Python 환경에서 실행되며, 로컬 CLI 또는 웹 인터페이스로 사용할 수 있습니다.

# 저장소 복제
git clone https://github.com/HKUDS/Paper2Slides.git
cd Paper2Slides

# Conda 환경 생성 및 활성화
conda create -n paper2slides python=3.12 -y
conda activate paper2slides

# 의존성 설치
pip install -r requirements.txt

사용하기 전에 paper2slides/ 디렉토리에 .env 파일을 생성하고 LLM API 키(OpenAI, Gemini 등)를 설정해야 합니다.

LLM API 키를 설정한 뒤, 다음과 같이 CLI 명령어를 실행하여 사용할 수 있습니다:

  • 기본 슬라이드 생성:

    python -m paper2slides --input paper.pdf --output slides --length medium
    
  • 포스터 생성 (커스텀 스타일):

    python -m paper2slides --input paper.pdf --output poster --style "minimalist with blue theme"
    
  • 빠른 모드 (Fast Mode): RAG 인덱싱을 건너뛰고 빠르게 결과를 확인하고 싶을 때 사용합니다.

    python -m paper2slides --input paper.pdf --fast
    


또한, Paper2Slides는 웹 인터페이스를 지원하여, 웹에서 곧바로 결과물을 확인할 수 있습니다. 웹 인터페이스는 다음과 같이 실행합니다:

./scripts/start.sh
# 실행 후 http://localhost:5173 접속

라이선스

Paper2Slides 프로젝트는 MIT License로 공개 및 배포되고 있습니다. 상업적 이용, 수정 및 배포가 자유롭습니다.

:github: Paper2Slides 프로젝트 GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요