이제 RAG 파이프라인은 이렇게 구축하지 마세요... 대신 MarkItDown을 사용하세요

BBetter Stack
Computing/SoftwareInternet Technology

Transcript

00:00:00우리는 AI 앱을 만드는 것보다 문서를 처리하는 데 훨씬 더 많은 시간을 씁니다.
00:00:05여러 라이브러리를 연결해서 겨우 PDF를 파이프라인에 넣어도, LLM은 여전히 엉뚱한 답변을 내놓죠.
00:00:11모델이 나빠서가 아니라, 마크다운(markdown)이 엉망이기 때문입니다.
00:00:14이것이 바로 마크다운입니다.
00:00:16마이크로소프트가 만든 도구로, 깃허브에서 별 11만 개 이상을 받으며 급부상했죠.
00:00:21거의 단 한 줄의 코드로 전체 파이프라인 문제를 해결해 줍니다.
00:00:24몇 분 안에 이게 어떻게 작동하는지 보여드리겠습니다.
00:00:30[음악]
00:00:33자, 기본적으로 모든 AI 프로젝트는 똑같은 방식으로 시작됩니다.
00:00:36파일은 도처에 널려 있죠. 워드 문서, 슬라이드, 스프레드시트, PDF 스크린샷, 심지어 오디오 파일까지요.
00:00:43그러고 나서 개발자들이 좋아하는 멋진 부분이 등장합니다.
00:00:46실제로 도구들을 쌓아 올리기 시작하는 거죠.
00:00:49PDF용 도구, 엑셀용 도구, 워드용 도구 등을 가져오는 식입니다.
00:00:54이 파이프라인을 구축하기 위해 연결하는 모든 라이브러리들이죠.
00:00:59처음에는 괜찮은 것 같고, 잘 작동하는 듯 보입니다.
00:01:02그러다 문제가 생기기 시작합니다.
00:01:04표의 구조는 깨지고, 제목은 사라지며, 토큰 사용량은 급증하기 시작하죠.
00:01:10이제 RAG 파이프라인은 쓰레기 데이터만 가져오고, 에이전트는 엉터리 답변을 내놓습니다.
00:01:16우리는 제품을 출시하는 대신 데이터 수집 과정만 디버깅하게 되죠.
00:01:19도대체 이게 무슨 짓일까요?
00:01:21그저 시간 낭비일 뿐입니다.
00:01:22매주 몇 분이 아니라, 몇 시간씩 날리는 셈이죠.
00:01:25그러니 모델을 고치려 하지 말고, 입력을 고쳐야 합니다.
00:01:29실제로 어떻게 하는지 보여드리겠습니다.
00:01:31워크플로 속도를 높여주는 도구가 마음에 드신다면 구독 부탁드립니다.
00:01:35관련 영상이 계속 올라올 예정이거든요.
00:01:37좋습니다, 빠르게 한번 살펴볼게요.
00:01:39전부 파이썬 기반이라 아주 간단합니다.
00:01:42먼저 가상 환경에 pip install로 설치합니다.
00:01:45여기에 'doc.pdf'라는 PDF 파일이 하나 있습니다.
00:01:48이걸 터미널에서 실행해 보겠습니다.
00:01:50마크다운 명령어에 doc.pdf와 출력 파일명 output.md를 입력합니다.
00:01:55그게 전부입니다.
00:01:56자동으로 파일을 만들어주죠.
00:01:58파일을 열어보면 우리가 기대했던 결과물이 담겨 있습니다.
00:02:03제목은 깔끔하고, 표도 제대로 표처럼 보이며, 구조가 그대로 유지되어 있습니다.
00:02:08이제 파이썬으로 코드를 작성하면 훨씬 더 많은 일을 할 수 있습니다.
00:02:13임포트 후 OpenAI를 사용하여 클라이언트와 마크다운 객체를 만듭니다.
00:02:20API 키와 사용할 모델을 전달하면 끝이죠.
00:02:25코드를 실행하면 터미널에 아주 깔끔한 결과가 생성됩니다.
00:02:29더 좋은 점은 PNG 이미지도 처리할 수 있다는 겁니다.
00:02:33예시로 엔비디아(NVIDIA) 차트를 하나 가져왔습니다.
00:02:35데이터가 포함된 이미지 파일입니다.
00:02:39이제 이 차트를 마크다운으로 변환할 수 있습니다.
00:02:42변환(convert) 기능을 사용하기만 하면 마크다운이 알아서 처리해주죠.
00:02:47이번에는 PNG 이미지를 입력값으로 줍니다.
00:02:50이제 차트에 대한 요약과 RAG에 활용할 수 있는 추출 정보가 나옵니다.
00:02:56이건 정말 엄청난 기능입니다. 코드 내에서 필요한 정보를 더 빨리 추출할 수 있게 해주니까요.
00:03:01여러 창을 왔다 갔다 할 필요 없이 계속 작업을 이어갈 수 있죠.
00:03:05그렇다면 마크다운은 정확히 무엇일까요?
00:03:07마이크로소프트 리서치에서 만든 오픈소스 파이썬 도구입니다.
00:03:11MIT 라이선스이며, LLM 워크플로를 위해 특별히 설계되었습니다.
00:03:16지저분한 파일들을 깨끗한 마크다운 형식으로 바꾸는 것이 핵심이죠.
00:03:19그래야 모델이 내용을 제대로 이해할 수 있으니까요.
00:03:22생각보다 훨씬 더 다양한 형식을 지원합니다.
00:03:25워드, 파워포인트, 엑셀, PDF, 오디오, 이미지, 링크 등 무엇이든 가능합니다.
00:03:32심지어 MCP 서버도 지원해서 클로드 데스크톱이나 직접 만든 에이전트에 바로 연결할 수 있습니다.
00:03:40플러그인까지 갖추고 있고요.
00:03:41이제 복잡한 수집 파이프라인을 직접 구축할 필요 없이 도구 하나만 호출하면 됩니다.
00:03:47개발자들을 괴롭혔던 건 모델이 아니라 입력값이었습니다.
00:03:51우리는 그저 더 좋은 모델을 쓰라는 압박을 받아왔죠.
00:03:55하지만 진실은 '더 좋은 입력이 곧 더 좋은 결과물'이라는 겁니다.
00:04:00이제 깨지기 쉬운 스크립트를 짜는 대신, 마크다운이라는 하나의 도구로 모든 것을 해결합니다.
00:04:06RAG 파이프라인, 에이전트, 파인튜닝 데이터셋, 지식 베이스, 문서 분석 등 우리가 하던 모든 일에 쓰이죠.
00:04:13그리고 대부분이 놓치는 핵심은, 이 도구가 토큰 효율적이고 구조화된 마크다운을 생성한다는 점입니다.
00:04:20불필요한 노이즈는 줄고 더 나은 답변을 얻게 되는 거죠.
00:04:24물론 완벽하다는 뜻은 아닙니다.
00:04:26지금 사용 중이거나 흔히 본 도구들과 비교해 보겠습니다.
00:04:31판독(Pandoc)이라는 도구가 있으니 이게 더 낫지 않을까 생각하실 겁니다.
00:04:36하지만 판독은 마크다운과는 해결하려는 문제가 다릅니다.
00:04:40판독은 사람을 위한 도구죠. 출판, 서식, LaTeX 등을 위한 것입니다.
00:04:44마크다운은 기계와 LLM, 파이프라인 자동화를 위한 것입니다.
00:04:48비슷해 보여도 목적이 전혀 다른 셈입니다.
00:04:51언스트럭처드(Unstructured)나 닥링크(DocLink) 같은 도구들도 있죠.
00:04:55훌륭하지만 매우 무거운 도구들입니다.
00:04:58ML 모델을 사용하고 설정이 복잡해서, 아주 복잡한 문서를 처리할 때는 더 유리합니다.
00:05:03마크다운은 그와 반대의 접근 방식을 취합니다.
00:05:05설정이 쉽고 결과가 빠르며, 대부분의 파일에 충분히 강력하죠.
00:05:11여기서 진짜 상충하는 요소가 발생합니다.
00:05:12완벽한 추출을 원하시나요, 아니면 빠르고 안정적인 도구를 원하시나요?
00:05:18대부분의 경우 속도가 승리할 겁니다.
00:05:20물론 단점도 있습니다. 복잡한 PDF는 여전히 처리가 어려울 수 있죠.
00:05:24특히 빽빽한 표나 이상한 레이아웃이 있는 경우 말입니다.
00:05:27매일 엉망인 문서들을 처리한다면 닥링크나 언스트럭처드가 훨씬 나을 겁니다.
00:05:32하지만 이미지 설명을 원한다면 LLM을 추가로 연결해야 합니다.
00:05:36완벽하진 않아도, 아주 골치 아픈 문제를 해결해 주는 멋진 도구임은 확실합니다.
00:05:41그래서 사용할 가치가 있을까요?
00:05:43네, 대부분의 분들께는 확실히 그렇습니다.
00:05:45지금 AI 앱을 빌드 중이라면, 이게 바로 여러분의 데이터 수집 레이어가 되어야 합니다.
00:05:50마크다운을 꼭 사용해 보세요.
00:05:52RAG나 에이전트를 위해 깨끗한 입력 데이터가 필요하다면 말이죠.
00:05:56다양한 파일 형식을 다루신다면 더더욱 좋습니다.
00:05:58정말 유용한 도구거든요.
00:05:59금방이라도 고장 날 것 같은 스크립트를 계속 관리하고 싶지는 않으시죠?
00:06:03매일같이 극도로 복잡한 PDF를 다루는 게 아니라면 말입니다.
00:06:08물론 다른 도구들도 많이 있습니다.
00:06:09이런 오픈소스 도구와 코딩 팁이 마음에 드셨다면 Better Stack 채널을 구독해 주세요.
00:06:15다음 영상에서 뵙겠습니다.

Key Takeaway

복잡한 데이터 수집 파이프라인을 직접 구축하는 대신, 마이크로소프트의 MarkItDown 도구를 사용하여 LLM에 최적화된 구조화된 데이터를 생성함으로써 RAG 파이프라인의 성능과 효율을 즉각적으로 개선할 수 있습니다.

Highlights

MarkItDown은 워드, 파워포인트, 엑셀, PDF, 오디오, 이미지 등 다양한 파일을 LLM 처리에 적합한 마크다운 형식으로 변환하는 파이썬 오픈소스 도구입니다.

기존 RAG 파이프라인에서 발생하는 표 구조 파손, 제목 누락, 토큰 낭비 문제를 입력 데이터의 마크다운 형식을 개선하여 해결합니다.

단 한 줄의 명령어로 PDF 파일을 마크다운으로 변환하며, 이미지 파일 내의 데이터를 추출하여 RAG에 활용할 수 있는 요약 정보를 제공합니다.

마이크로소프트 리서치에서 개발한 MIT 라이선스 도구로 LLM 워크플로 자동화에 최적화되어 있습니다.

복잡한 문서 처리 전용 도구인 Unstructured나 DocLink에 비해 설정이 쉽고 실행 속도가 빠릅니다.

Timeline

RAG 파이프라인의 데이터 수집 문제

  • PDF 등 다양한 소스 파일을 연결하는 과정에서 표 구조가 깨지거나 데이터가 손실됩니다.
  • 잘못된 입력 데이터 형식은 RAG 파이프라인의 토큰 사용량을 급증시키고 에이전트의 답변 정확도를 떨어뜨립니다.
  • 데이터 수집 과정의 반복적인 디버깅은 제품 개발 시간을 낭비하는 원인이 됩니다.

AI 애플리케이션 개발자들은 모델 성능 향상에 집중하기보다 데이터 소스 연결에 더 많은 시간을 할애합니다. 워드, 엑셀, PDF 등 파편화된 소스를 결합할 때 데이터의 구조가 유지되지 않아 LLM이 엉뚱한 답변을 생성하는 문제가 발생합니다. 모델을 탓하기 전에 입력 데이터의 형식을 먼저 교정하는 접근 방식이 필요합니다.

MarkItDown의 작동 방식과 기능

  • pip install로 설치 가능하며 터미널 명령어 한 줄로 PDF를 마크다운 파일로 변환합니다.
  • PNG 이미지 파일을 입력하면 차트 내용 요약 및 RAG에 즉시 사용 가능한 추출 데이터를 생성합니다.
  • 파이썬 API를 사용하여 OpenAI 클라이언트와 통합하면 코드 내에서 문서 분석을 자동화할 수 있습니다.

MarkItDown은 파이썬 기반의 도구로, PDF 변환 시 표의 구조와 제목 등 원본의 핵심 서식을 유지합니다. 이미지 형태의 차트도 변환 기능을 통해 텍스트 데이터로 추출하여 별도의 창 전환 없이 LLM 작업 워크플로에 즉시 통합할 수 있습니다.

타 도구와의 비교 및 선택 기준

  • 마크다운 변환 도구는 출판용인 Pandoc과 달리 기계와 LLM의 파이프라인 자동화를 목적으로 설계되었습니다.
  • Unstructured나 DocLink는 복잡한 문서에는 유리하지만 설정이 무겁고 복잡합니다.
  • 대부분의 AI 앱 개발 시 MarkItDown은 속도와 안정성 측면에서 효율적인 선택지입니다.

Pandoc은 서식 중심의 사람을 위한 도구인 반면, MarkItDown은 LLM의 이해도를 높이기 위한 구조화된 텍스트 생성에 집중합니다. 매우 복잡한 레이아웃을 가진 문서를 매일 다루는 경우가 아니라면, 가볍고 빠른 MarkItDown이 데이터 수집 레이어로서 더 적합합니다.

Community Posts

View all posts